<?xml version="1.0" encoding="UTF-8"?>
<!---->
<!--################################################################################       -->
<!--# Redfish Schema:  CollectionCapabilities  v1.1.1-->
<!--#                                                                                      -->
<!--# For a detailed change log, see the README file contained in the DSP8010 bundle,      -->
<!--# available at http://www.dmtf.org/standards/redfish                                   -->
<!--# Copyright 2014-2018 DMTF.                                                            -->
<!--# For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright -->
<!--################################################################################       -->
<!---->
<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://redfish.dmtf.org/schemas/v1/RedfishExtensions_v1.xml">
    <edmx:Include Namespace="RedfishExtensions.v1_0_0" Alias="Redfish"/>
  </edmx:Reference>
  <edmx:Reference Uri="http://redfish.dmtf.org/schemas/v1/Resource_v1.xml">
    <edmx:Include Namespace="Resource"/>
  </edmx:Reference>

  <edmx:DataServices>

    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="CollectionCapabilities">
      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
      <ComplexType Name="CollectionCapabilities" Abstract="true"/>
    </Schema>

    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="CollectionCapabilities.v1_0_0">
      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
      <Annotation Term="Redfish.Release" String="2017.1"/>

      <ComplexType Name="CollectionCapabilities" BaseType="CollectionCapabilities.CollectionCapabilities">
        <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
        <Annotation Term="OData.AdditionalProperties" Bool="false"/>
        <Annotation Term="OData.Description" String="This type describes the capabilities of a collection."/>
        <Annotation Term="OData.LongDescription" String="This type shall describe any capabilities of a collection in terms of how a client is able to create new resources within the collection."/>
        <Property Name="Capabilities" Type="Collection(CollectionCapabilities.v1_0_0.Capability)" Nullable="false">
          <Annotation Term="OData.Description" String="This property contains the list of capabilities supported by this resource."/>
          <Annotation Term="OData.LongDescription" String="The value of this property shall be an array of Capability structures."/>
        </Property>
      </ComplexType>

      <ComplexType Name="Capability">
        <Annotation Term="OData.AdditionalProperties" Bool="false"/>
        <Annotation Term="OData.Description" String="This type describes a specific capability of a collection for a given use case."/>
        <Annotation Term="OData.LongDescription" String="This type shall describe a specific capability of a collection in terms of how a client is able to create new resources within the collection for the specified use case."/>
        <NavigationProperty Name="CapabilitiesObject" Type="Resource.Item" Nullable="false">
          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
          <Annotation Term="OData.Description" String="Reference to the resource the client may GET to in order to understand how to form a POST request for a given collection."/>
          <Annotation Term="OData.LongDescription" String="The value of this property shall be a reference to a Resource that matches the type for the given collection and shall contain annotations that describe the properties allowed in the POST request."/>
          <Annotation Term="OData.AutoExpandReferences"/>
          <Annotation Term="Redfish.Required"/>
        </NavigationProperty>
        <Property Name="UseCase" Type="CollectionCapabilities.v1_0_0.UseCase" Nullable="false">
          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
          <Annotation Term="OData.Description" String="This property represents the use case in which a client may issue a POST request to the collection."/>
          <Annotation Term="OData.LongDescription" String="The value of this property shall be an enumerated value describing the use case for this capability instance."/>
          <Annotation Term="Redfish.Required"/>
        </Property>
        <Property Name="Links" Type="CollectionCapabilities.v1_0_0.Links" Nullable="false">
          <Annotation Term="OData.Description" String="Contains references to other resources that are related to this resource."/>
          <Annotation Term="OData.LongDescription" String="The Links property, as described by the Redfish Specification, shall contain references to resources that are related to, but not contained by (subordinate to), this resource."/>
          <Annotation Term="Redfish.Required"/>
        </Property>
      </ComplexType>

      <EnumType Name="UseCase">
        <Member Name="ComputerSystemComposition">
          <Annotation Term="OData.Description" String="This capability describes a client creating a new ComputerSystem instance from a set of disaggregated hardware."/>
        </Member>
        <Member Name="ComputerSystemConstrainedComposition">
          <Annotation Term="OData.Description" String="This capability describes a client creating a new ComputerSystem instance from a set of constraints."/>
          <Annotation Term="Redfish.Revisions">
            <Collection>
              <Record>
                <PropertyValue Property="Kind" EnumMember="Redfish.RevisionKind/Added"/>
                <PropertyValue Property="Version" String="v1_1_0"/>
              </Record>
            </Collection>
          </Annotation>
        </Member>
        <Member Name="VolumeCreation">
          <Annotation Term="OData.Description" String="This capability describes a client creating a new Volume instance as part of an existing storage subsystem."/>
        </Member>
      </EnumType>

      <ComplexType Name="Links" BaseType="Resource.Links">
        <Annotation Term="OData.Description" String="Contains references to other resources that are related to this resource."/>
        <Annotation Term="OData.LongDescription" String="This type, as described by the Redfish Specification, shall contain references to resources that are related to, but not contained by (subordinate to), this resource."/>
        <NavigationProperty Name="TargetCollection" Type="Resource.ResourceCollection" Nullable="false">
          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
          <Annotation Term="OData.Description" String="Reference to the collection that this capabilities structure is describing."/>
          <Annotation Term="OData.LongDescription" String="The value of this property shall be a reference to a Resource Collection that this structure is describing.  This structure may be used by a client in order to understand how to form the POST request for the given collection."/>
          <Annotation Term="OData.AutoExpandReferences"/>
          <Annotation Term="Redfish.Required"/>
        </NavigationProperty>
        <NavigationProperty Name="RelatedItem" Type="Collection(Resource.Item)">
          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
          <Annotation Term="OData.Description" String="The ID(s) of the resources associated with this capability."/>
          <Annotation Term="OData.LongDescription" String="The value of this property shall be an array of IDs containing pointers consistent with JSON pointer syntax to the resource that is related to this capability."/>
          <Annotation Term="OData.AutoExpandReferences"/>
        </NavigationProperty>
      </ComplexType>

    </Schema>

    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="CollectionCapabilities.v1_0_1">
      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
      <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."/>
      <ComplexType Name="CollectionCapabilities" BaseType="CollectionCapabilities.v1_0_0.CollectionCapabilities"/>
    </Schema>

    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="CollectionCapabilities.v1_0_2">
      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
      <Annotation Term="OData.Description" String="This version was created to make use of the new Revisions annotation."/>
      <ComplexType Name="CollectionCapabilities" BaseType="CollectionCapabilities.v1_0_1.CollectionCapabilities"/>
    </Schema>

    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="CollectionCapabilities.v1_1_0">
      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
      <Annotation Term="Redfish.Release" String="2018.2"/>
      <Annotation Term="OData.Description" String="This version was created to add ComputerSystemConstrainedComposition to the UseCase enum."/>
      <ComplexType Name="CollectionCapabilities" BaseType="CollectionCapabilities.v1_0_1.CollectionCapabilities"/>
    </Schema>

    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="CollectionCapabilities.v1_1_1">
      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
      <Annotation Term="OData.Description" String="This version was created to make use of the new Revisions annotation."/>
      <ComplexType Name="CollectionCapabilities" BaseType="CollectionCapabilities.v1_1_0.CollectionCapabilities"/>
    </Schema>

  </edmx:DataServices>
</edmx:Edmx>
