<?xml version="1.0" encoding="UTF-8"?>
<!---->
<!-- Copyright 2015-2019 Storage Networking Industry Association (SNIA), USA. All rights reserved.-->
<edmx:Edmx xmlns:edmx="http://docs.oasis-open.org/odata/ns/edmx" Version="4.0">
  <edmx:Reference Uri="http://docs.oasis-open.org/odata/odata/v4.0/errata03/csd01/complete/vocabularies/Org.OData.Core.V1.xml">
    <edmx:Include Namespace="Org.OData.Core.V1" Alias="OData"/>
  </edmx:Reference>
  <edmx:Reference Uri="http://docs.oasis-open.org/odata/odata/v4.0/errata03/csd01/complete/vocabularies/Org.OData.Capabilities.V1.xml">
    <edmx:Include Namespace="Org.OData.Capabilities.V1" Alias="Capabilities"/>
  </edmx:Reference>
  <edmx:Reference Uri="http://redfish.dmtf.org/schemas/v1/Resource_v1.xml">
    <edmx:Include Namespace="Resource"/>
    <edmx:Include Namespace="Resource.v1_0_0"/>
  </edmx:Reference>
  <edmx:Reference Uri="http://redfish.dmtf.org/schemas/v1/Endpoint_v1.xml">
    <edmx:Include Namespace="Endpoint"/>
  </edmx:Reference>
  <edmx:Reference Uri="http://redfish.dmtf.org/schemas/v1/EndpointCollection_v1.xml">
    <edmx:Include Namespace="EndpointCollection"/>
  </edmx:Reference>
  <edmx:Reference Uri="http://redfish.dmtf.org/schemas/v1/RedfishExtensions_v1.xml">
    <edmx:Include Namespace="RedfishExtensions.v1_0_0" Alias="Redfish"/>
  </edmx:Reference>

  <edmx:DataServices>
    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="EndpointGroup">
      <Annotation Term="Redfish.OwningEntity" String="SNIA"/>
      <EntityType Name="EndpointGroup" BaseType="Resource.v1_0_0.Resource" Abstract="true">
        <Annotation Term="OData.Description" String="A group of endpoints that are managed as a unit."/>
        <Annotation Term="OData.LongDescription" String="A group of endpoints that shall be managed as a unit."/>

        <Annotation Term="Capabilities.InsertRestrictions">
          <Record>
            <PropertyValue Property="Insertable" Bool="false"/>
          </Record>
        </Annotation>
        <Annotation Term="Capabilities.UpdateRestrictions">
          <Record>
            <PropertyValue Property="Updatable" Bool="true"/>
            <Annotation Term="OData.Description" String="EndpointGroup resources can be updated to change the writable properties."/>
          </Record>
        </Annotation>
        <Annotation Term="Capabilities.DeleteRestrictions">
          <Record>
            <PropertyValue Property="Deletable" Bool="true"/>
            <Annotation Term="OData.Description" String="EndpointGroup resources can be deleted by deleting the EndpointGroup resource."/>
          </Record>
        </Annotation>

        <Annotation Term="Redfish.Uris">
          <Collection>
            <String>/redfish/v1/Storage/{StorageId}/EndpointGroups/{EndpointGroupId}</String>
            <String>/redfish/v1/Systems/{ComputerSystemId}/Storage/{StorageId}/EndpointGroups/{EndpointGroupId}</String>
            <String>/redfish/v1/StorageServices/{StorageServiceId}/EndpointGroups/{EndpointGroupId}</String>
          </Collection>
        </Annotation>
      </EntityType>

      <EnumType Name="AccessState">
        <Annotation Term="OData.Description" String="Describes the options for the access characteristics of an endpoint."/>
        <Annotation Term="OData.LongDescription" String="Access to all associated resources through all aggregated endpoints shall share this access state."/>
        <Member Name="Optimized">
          <Annotation Term="OData.Description" String="The endpoint(s) are in an Active/Optimized state."/>
          <Annotation Term="OData.LongDescription" String="In the context of this enumeration literal, each endpoint shall be in an Active/Optimized state."/>
        </Member>
        <Member Name="NonOptimized">
          <Annotation Term="OData.Description" String="The endpoint(s) are in an Active/NonOptimized state."/>
          <Annotation Term="OData.LongDescription" String="In the context of this enumeration literal, each endpoint shall be in an Active/NonOptimized state."/>
        </Member>
        <Member Name="Standby">
          <Annotation Term="OData.Description" String="The endpoint(s) are in a Standby state."/>
          <Annotation Term="OData.LongDescription" String="In the context of this enumeration literal, each endpoint shall be in a Standby state."/>
        </Member>
        <Member Name="Unavailable">
          <Annotation Term="OData.Description" String="The endpoint(s) are unavailable."/>
          <Annotation Term="OData.LongDescription" String="In the context of this enumeration literal, each endpoint shall be in an unavailable state."/>
        </Member>
        <Member Name="Transitioning">
          <Annotation Term="OData.Description" String="The endpoint(s) are transitioning to a new AccessState."/>
          <Annotation Term="OData.LongDescription" String="In the context of this enumeration literal, at least one endpoint shall be transitioning to a new AccessState."/>
        </Member>
      </EnumType>
    </Schema>

    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="EndpointGroup.v1_0_0">
      <Annotation Term="Redfish.OwningEntity" String="SNIA"/>
      <Annotation Term="Redfish.Release" String="TP v1.0.3"/>
      <EntityType Name="EndpointGroup" BaseType="EndpointGroup.EndpointGroup">
        <Annotation Term="OData.Description" String="A group of endpoints that are managed as a unit."/>
        <Annotation Term="OData.LongDescription" String="A group of endpoints that shall be managed as a unit."/>
        <Property Name="Identifier" Type="Resource.Identifier" Nullable="false">
          <Annotation Term="OData.Description" String="The value identifies this resource."/>
          <Annotation Term="OData.LongDescription" String="The value shall be unique within the managed ecosystem."/>
        </Property>
        <Property Name="GroupType" Type="EndpointGroup.v1_0_0.GroupType">
          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/ReadWrite"/>
          <Annotation Term="OData.Description" String="Endpoint group type."/>
          <Annotation Term="OData.LongDescription" String="The group contains only endpoints of a given type Client/Initiator or Server/Target.  If this endpoint group represents a SCSI target group, the value of GroupType shall be Server."/>
        </Property>
        <Property Name="AccessState" Type="EndpointGroup.AccessState">
          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/ReadWrite"/>
          <Annotation Term="OData.Description" String="Access State for this group."/>
          <Annotation Term="OData.LongDescription" String="Access to all associated resources through all aggregated endpoints shall share this access state."/>
        </Property>
        <Property Name="TargetEndpointGroupIdentifier" Type="Edm.Int64">
          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/ReadWrite"/>
          <Annotation Term="OData.Description" String="A defined identifier for this group."/>
          <Annotation
            Term="OData.LongDescription"
            String="If this endpoint group represents a SCSI target group, the value of this property shall contain a SCSI defined identifier for this group, which corresponds to the TARGET PORT GROUP field in the REPORT TARGET PORT GROUPS response and the TARGET PORT GROUP field in an INQUIRY VPD page 85 response, type 5h identifier. See the INCITS SAM-5 specification."/>
        </Property>
        <Property Name="Preferred" Type="Edm.Boolean" DefaultValue="false">
          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/ReadWrite"/>
          <Annotation Term="OData.Description" String="Access to resource is preferred."/>
          <Annotation
            Term="OData.LongDescription"
            String="A value of True in this property shall indicate that access to the associated resource through the endpoints in this  endpoint group is preferred over access through other endpoints. The default value for this property is false."/>
            <Annotation Term="Redfish.Deprecated" String="Deprecated in favor of use of AccessState."/>
        </Property>
        <NavigationProperty Name="Endpoints" Type="Collection(Endpoint.Endpoint)" ContainsTarget="true">
          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/ReadWrite"/>
          <Annotation Term="OData.Description" String="The Endpoints."/>
          <Annotation Term="OData.LongDescription" String="The value of each entry shall reference an Endpoint resource."/>
        </NavigationProperty>
        <Property Name="Links" Type="EndpointGroup.v1_0_0.Links" Nullable="false">
          <Annotation Term="OData.Description" String="Contains links to other resources that are related to this resource."/>
          <Annotation Term="OData.LongDescription" String="This structure shall contain references to resources that are not contained within this resource."/>
        </Property>
      </EntityType>

      <ComplexType Name="Links" BaseType="Resource.Links">
        <Annotation Term="OData.Description" String="Contains links to other resources that are related to this resource."/>
        <Annotation Term="OData.LongDescription" String="This structure shall contain references to resources that are not contained within this resource."/>
      </ComplexType>

      <EnumType Name="GroupType">
        <Member Name="Client">
          <Annotation Term="OData.Description" String="The group contains the client (initiator) endpoints."/>
        </Member>
        <Member Name="Server">
          <Annotation Term="OData.Description" String="The group contains the server (target) endpoints."/>
        </Member>
      </EnumType>
    </Schema>

    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="EndpointGroup.v1_0_1">
      <Annotation Term="Redfish.OwningEntity" String="SNIA"/>
      <Annotation Term="OData.Description" String="This version was created to force the regeneration of JSON Schema so that OData properties are marked as required, and integer properties are marked as integer rather than number."/>
      <EntityType Name="EndpointGroup" BaseType="EndpointGroup.v1_0_0.EndpointGroup"/>
    </Schema>

    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="EndpointGroup.v1_0_2">
      <Annotation Term="Redfish.OwningEntity" String="SNIA"/>
      <Annotation Term="OData.Description" String="This version was created to fix CSDL errors and adds both Redfish Uris and Capability Annotations."/>
      <EntityType Name="EndpointGroup" BaseType="EndpointGroup.v1_0_1.EndpointGroup"/>
    </Schema>

    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="EndpointGroup.v1_1_0">
      <Annotation Term="Redfish.OwningEntity" String="SNIA"/>
      <Annotation Term="Redfish.Release" String="WIP v1.0.5"/>
      <EntityType Name="EndpointGroup" BaseType="EndpointGroup.v1_0_0.EndpointGroup">
        <Property Name="Actions" Type="EndpointGroup.v1_1_0.Actions" Nullable="false">
          <Annotation Term="OData.Description" String="The available actions for this resource."/>
          <Annotation Term="OData.LongDescription" String="The Actions property shall contain the available actions for this resource."/>
        </Property>
      </EntityType>

      <ComplexType Name="Actions">
        <Annotation Term="OData.AdditionalProperties" Bool="false"/>
        <Annotation Term="OData.Description" String="The available actions for this resource."/>
        <Annotation Term="OData.LongDescription" String="This type shall contain the available actions for this resource."/>
        <Property Name="Oem" Type="EndpointGroup.v1_1_0.OemActions" Nullable="false">
          <Annotation Term="OData.Description" String="This property contains the available OEM specific actions for this resource."/>
          <Annotation Term="OData.LongDescription" String="This property shall contain any additional OEM actions for this resource."/>
        </Property>
      </ComplexType>

      <ComplexType Name="OemActions">
        <Annotation Term="OData.AdditionalProperties" Bool="true"/>
        <Annotation Term="OData.Description" String="The available OEM specific actions for this resource."/>
        <Annotation Term="OData.LongDescription" String="This type shall contain any additional OEM actions for this resource."/>
      </ComplexType>
    </Schema>

    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="EndpointGroup.v1_1_1">
      <Annotation Term="Redfish.OwningEntity" String="SNIA"/>
      <Annotation Term="OData.Description" String="Move enums to unversioned namespace.  Change references to unversioned."/>
      <EntityType Name="EndpointGroup" BaseType="EndpointGroup.v1_1_0.EndpointGroup"/>
    </Schema>

    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="EndpointGroup.v1_1_2">
      <Annotation Term="Redfish.OwningEntity" String="SNIA"/>
      <Annotation Term="OData.Description" String="This version was created to force the regeneration of JSON Schema so that OData properties are marked as required, and integer properties are marked as integer rather than number."/>
      <EntityType Name="EndpointGroup" BaseType="EndpointGroup.v1_1_1.EndpointGroup"/>
    </Schema>

    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="EndpointGroup.v1_1_3">
      <Annotation Term="Redfish.OwningEntity" String="SNIA"/>
      <Annotation Term="OData.Description" String="This version was created to fix CSDL errors and adds both Redfish Uris and Capability Annotations."/>
      <EntityType Name="EndpointGroup" BaseType="EndpointGroup.v1_1_2.EndpointGroup"/>
    </Schema>

    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="EndpointGroup.v1_2_0">
      <Annotation Term="Redfish.OwningEntity" String="SNIA"/>
      <Annotation Term="Redfish.Release" String="WIP v1.1.0"/>
      <Annotation Term="OData.Description" String="This version changes Endpoint groups to an array instead of a collection. This version also fixes CSDL errors and adds both Redfish Uris and Capability Annotations."/>
      <EntityType Name="EndpointGroup" BaseType="EndpointGroup.v1_1_1.EndpointGroup"/>
    </Schema>

    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="EndpointGroup.v1_2_1">
      <Annotation Term="Redfish.OwningEntity" String="SNIA"/>
      <Annotation Term="OData.Description" String="This version deprecates the use of Preferred in favor of AccessState."/>
      <EntityType Name="EndpointGroup" BaseType="EndpointGroup.v1_2_0.EndpointGroup"/>
    </Schema>

  </edmx:DataServices>
</edmx:Edmx>
