<?xml version="1.0" encoding="UTF-8"?>
<!---->
<!--################################################################################       -->
<!--# Redfish Schema:  MemoryDomain v1.5.0                                                 -->
<!--#                                                                                      -->
<!--# For a detailed change log, see the README file contained in the DSP8010 bundle,      -->
<!--# available at http://www.dmtf.org/standards/redfish                                   -->
<!--# Copyright 2014-2022 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://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://docs.oasis-open.org/odata/odata/v4.0/errata03/csd01/complete/vocabularies/Org.OData.Measures.V1.xml">
    <edmx:Include Namespace="Org.OData.Measures.V1" Alias="Measures"/>
  </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/RedfishExtensions_v1.xml">
    <edmx:Include Namespace="RedfishExtensions.v1_0_0" Alias="Redfish"/>
  </edmx:Reference>
  <edmx:Reference Uri="http://redfish.dmtf.org/schemas/v1/Memory_v1.xml">
    <edmx:Include Namespace="Memory"/>
  </edmx:Reference>
  <edmx:Reference Uri="http://redfish.dmtf.org/schemas/v1/MemoryChunksCollection_v1.xml">
    <edmx:Include Namespace="MemoryChunksCollection"/>
  </edmx:Reference>
  <edmx:Reference Uri="http://redfish.dmtf.org/schemas/v1/MediaController_v1.xml">
    <edmx:Include Namespace="MediaController"/>
  </edmx:Reference>
  <edmx:Reference Uri="http://redfish.dmtf.org/schemas/v1/FabricAdapter_v1.xml">
    <edmx:Include Namespace="FabricAdapter"/>
  </edmx:Reference>
  <edmx:Reference Uri="http://redfish.dmtf.org/schemas/v1/PCIeFunction_v1.xml">
    <edmx:Include Namespace="PCIeFunction"/>
  </edmx:Reference>
  <edmx:Reference Uri="http://redfish.dmtf.org/schemas/v1/CXLLogicalDevice_v1.xml">
    <edmx:Include Namespace="CXLLogicalDevice"/>
  </edmx:Reference>

  <edmx:DataServices>

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

      <EntityType Name="MemoryDomain" BaseType="Resource.v1_0_0.Resource" Abstract="true">
        <Annotation Term="OData.Description" String="The MemoryDomain schema describes a memory domain and its configuration.  Memory domains indicate to the client which memory, or DIMMs, can be grouped together in memory chunks to represent addressable memory."/>
        <Annotation Term="OData.LongDescription" String="This Resource shall represent memory domains in a Redfish implementation."/>
        <Annotation Term="OData.AdditionalProperties" Bool="false"/>
        <Annotation Term="Capabilities.InsertRestrictions">
          <Record>
            <PropertyValue Property="Insertable" Bool="false"/>
          </Record>
        </Annotation>
        <Annotation Term="Capabilities.UpdateRestrictions">
          <Record>
            <PropertyValue Property="Updatable" Bool="false"/>
          </Record>
        </Annotation>
        <Annotation Term="Capabilities.DeleteRestrictions">
          <Record>
            <PropertyValue Property="Deletable" Bool="false"/>
          </Record>
        </Annotation>
        <Annotation Term="Redfish.Uris">
          <Collection>
            <String>/redfish/v1/Systems/{ComputerSystemId}/MemoryDomains/{MemoryDomainId}</String>
            <String>/redfish/v1/Chassis/{ChassisId}/MemoryDomains/{MemoryDomainId}</String>
            <String>/redfish/v1/CompositionService/ResourceBlocks/{ResourceBlockId}/Systems/{ComputerSystemId}/MemoryDomains/{MemoryDomainId}</String>
            <String>/redfish/v1/ResourceBlocks/{ResourceBlockId}/Systems/{ComputerSystemId}/MemoryDomains/{MemoryDomainId}</String>
          </Collection>
        </Annotation>
      </EntityType>

    </Schema>

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

      <EntityType Name="MemoryDomain" BaseType="MemoryDomain.MemoryDomain">

        <Property Name="AllowsMemoryChunkCreation" Type="Edm.Boolean" DefaultValue="false">
          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
          <Annotation Term="OData.Description" String="An indication of whether this memory domain supports the creation of memory chunks."/>
          <Annotation Term="OData.LongDescription" String="This property shall indicate whether this memory domain supports the creation of memory chunks."/>
        </Property>
        <Property Name="AllowsBlockProvisioning" Type="Edm.Boolean" DefaultValue="false">
          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
          <Annotation Term="OData.Description" String="An indication of whether this memory domain supports the provisioning of blocks of memory."/>
          <Annotation Term="OData.LongDescription" String="This property shall indicate whether this memory domain supports the creation of blocks of memory."/>
        </Property>
        <NavigationProperty Name="MemoryChunks" Type="MemoryChunksCollection.MemoryChunksCollection" ContainsTarget="true" Nullable="false">
          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
          <Annotation Term="OData.Description" String="The link to the collection of memory chunks associated with this memory domain."/>
          <Annotation Term="OData.LongDescription" String="This property shall contain a link to a Resource Collection of type MemoryChunkCollection."/>
          <Annotation Term="OData.AutoExpandReferences"/>
        </NavigationProperty>
        <Property Name="InterleavableMemorySets" Type="Collection(MemoryDomain.v1_0_0.MemorySet)" Nullable="false">
          <Annotation Term="OData.Description" String="The interleave sets for the memory chunk."/>
          <Annotation Term="OData.LongDescription" String="This property shall represent the interleave sets for the memory chunk."/>
        </Property>
      </EntityType>

      <ComplexType Name="MemorySet">
        <Annotation Term="OData.Description" String="The interleave sets for a memory chunk."/>
        <Annotation Term="OData.LongDescription" String="This type shall represent the interleave sets for a memory chunk."/>
        <NavigationProperty Name="MemorySet" Type="Collection(Memory.Memory)">
          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
          <Annotation Term="OData.Description" String="The set of memory for a particular interleave set."/>
          <Annotation Term="OData.LongDescription" String="The values in this array shall be links to Resources of the Memory type."/>
          <Annotation Term="OData.AutoExpandReferences"/>
        </NavigationProperty>
      </ComplexType>

    </Schema>

    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="MemoryDomain.v1_0_1">
      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
      <Annotation Term="OData.Description" String="This version was created to show that annotations in previous namespaces were updated."/>
      <EntityType Name="MemoryDomain" BaseType="MemoryDomain.v1_0_0.MemoryDomain"/>
    </Schema>

    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="MemoryDomain.v1_0_2">
      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
      <Annotation Term="OData.Description" String="This version was created to show that annotations in previous namespaces were updated."/>
      <EntityType Name="MemoryDomain" BaseType="MemoryDomain.v1_0_1.MemoryDomain"/>
    </Schema>

    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="MemoryDomain.v1_0_3">
      <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."/>
      <EntityType Name="MemoryDomain" BaseType="MemoryDomain.v1_0_2.MemoryDomain"/>
    </Schema>

    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="MemoryDomain.v1_0_4">
      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
      <Annotation Term="OData.Description" String="This version was created to force the regeneration of JSON Schema so that URI properties use the uri-reference format.  It was also created to add a missing term on MemoryChunks and InterleavableMemorySets to not allow them to be null."/>
      <EntityType Name="MemoryDomain" BaseType="MemoryDomain.v1_0_3.MemoryDomain"/>
    </Schema>

    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="MemoryDomain.v1_0_5">
      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
      <Annotation Term="OData.Description" String="This version was created to update descriptions that this schema defines."/>
      <EntityType Name="MemoryDomain" BaseType="MemoryDomain.v1_0_4.MemoryDomain"/>
    </Schema>

    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="MemoryDomain.v1_1_0">
      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
      <Annotation Term="Redfish.Release" String="2016.3"/>
      <EntityType Name="MemoryDomain" BaseType="MemoryDomain.v1_0_1.MemoryDomain">
        <Property Name="AllowsMirroring" Type="Edm.Boolean" DefaultValue="false">
          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
          <Annotation Term="OData.Description" String="An indication of whether this memory domain supports the creation of memory chunks with mirroring enabled."/>
          <Annotation Term="OData.LongDescription" String="This property shall indicate whether this memory domain supports the creation of memory chunks with mirroring enabled."/>
        </Property>
        <Property Name="AllowsSparing" Type="Edm.Boolean" DefaultValue="false">
          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
          <Annotation Term="OData.Description" String="An indication of whether this memory domain supports the creation of memory chunks with sparing enabled."/>
          <Annotation Term="OData.LongDescription" String="This property shall indicate whether this memory domain supports the creation of memory chunks with sparing enabled."/>
        </Property>
      </EntityType>
    </Schema>

    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="MemoryDomain.v1_1_1">
      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
      <Annotation Term="OData.Description" String="This version was created to show that annotations in previous namespaces were updated."/>
      <EntityType Name="MemoryDomain" BaseType="MemoryDomain.v1_1_0.MemoryDomain"/>
    </Schema>

    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="MemoryDomain.v1_1_2">
      <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."/>
      <EntityType Name="MemoryDomain" BaseType="MemoryDomain.v1_1_1.MemoryDomain"/>
    </Schema>

    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="MemoryDomain.v1_1_3">
      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
      <Annotation Term="OData.Description" String="This version was created to force the regeneration of JSON Schema so that URI properties use the uri-reference format.  It was also created to add a missing term on MemoryChunks and InterleavableMemorySets to not allow them to be null."/>
      <EntityType Name="MemoryDomain" BaseType="MemoryDomain.v1_1_2.MemoryDomain"/>
    </Schema>

    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="MemoryDomain.v1_1_4">
      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
      <Annotation Term="OData.Description" String="This version was created to update descriptions that this schema defines."/>
      <EntityType Name="MemoryDomain" BaseType="MemoryDomain.v1_1_3.MemoryDomain"/>
    </Schema>

    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="MemoryDomain.v1_2_0">
      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
      <Annotation Term="Redfish.Release" String="2017.1"/>
      <EntityType Name="MemoryDomain" BaseType="MemoryDomain.v1_1_1.MemoryDomain">
        <Property Name="Actions" Type="MemoryDomain.v1_2_0.Actions" Nullable="false">
          <Annotation Term="OData.Description" String="The available actions for this Resource."/>
          <Annotation Term="OData.LongDescription" String="This 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="MemoryDomain.v1_2_0.OemActions" Nullable="false">
          <Annotation Term="OData.Description" String="The available OEM-specific actions for this Resource."/>
          <Annotation Term="OData.LongDescription" String="This property shall contain the available OEM-specific 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 the available OEM-specific actions for this Resource."/>
      </ComplexType>
    </Schema>

    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="MemoryDomain.v1_2_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."/>
      <EntityType Name="MemoryDomain" BaseType="MemoryDomain.v1_2_0.MemoryDomain"/>
    </Schema>

    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="MemoryDomain.v1_2_2">
      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
      <Annotation Term="OData.Description" String="This version was created to force the regeneration of JSON Schema so that URI properties use the uri-reference format.  It was also created to add a missing term on MemoryChunks and InterleavableMemorySets to not allow them to be null."/>
      <EntityType Name="MemoryDomain" BaseType="MemoryDomain.v1_2_1.MemoryDomain"/>
    </Schema>

    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="MemoryDomain.v1_2_3">
      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
      <Annotation Term="OData.Description" String="This version was created to update descriptions that this schema defines."/>
      <EntityType Name="MemoryDomain" BaseType="MemoryDomain.v1_2_2.MemoryDomain"/>
    </Schema>

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

      <EntityType Name="MemoryDomain" BaseType="MemoryDomain.v1_2_3.MemoryDomain">
        <Property Name="Links" Type="MemoryDomain.v1_3_0.Links" Nullable="false">
          <Annotation Term="OData.Description" String="The links to other Resources that are related to this Resource."/>
          <Annotation Term="OData.LongDescription" String="The Redfish Specification-described Links Property shall contain links to Resources related to but not subordinate to this Resource."/>
        </Property>
      </EntityType>

      <ComplexType Name="Links" BaseType="Resource.Links">
        <Annotation Term="OData.Description" String="The links to other Resources that are related to this Resource."/>
        <Annotation Term="OData.LongDescription" String="The Redfish Specification-described type shall contain links to Resources related to but not subordinate to this Resource."/>
        <NavigationProperty Name="MediaControllers" Type="Collection(MediaController.MediaController)">
          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
          <Annotation Term="OData.Description" String="An array of links to the media controllers for this memory domain."/>
          <Annotation Term="OData.LongDescription" String="This property shall contain an array of links to Resources of type MediaController that are associated with this memory domain."/>
          <Annotation Term="OData.AutoExpandReferences"/>
          <Annotation Term="Redfish.Revisions">
            <Collection>
              <Record>
                <PropertyValue Property="Kind" EnumMember="Redfish.RevisionKind/Deprecated"/>
                <PropertyValue Property="Version" String="v1_4_0"/>
                <PropertyValue Property="Description" String="This property has been deprecated in favor of the FabricAdapters property."/>
              </Record>
            </Collection>
          </Annotation>
        </NavigationProperty>
      </ComplexType>
    </Schema>

    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="MemoryDomain.v1_4_0">
      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
      <Annotation Term="OData.Description" String="This version was created to deprecate MediaControllers in Links in favor of FabricAdapters."/>
      <Annotation Term="Redfish.Release" String="2022.1"/>

      <EntityType Name="MemoryDomain" BaseType="MemoryDomain.v1_3_0.MemoryDomain"/>

      <ComplexType Name="Links" BaseType="MemoryDomain.v1_3_0.Links">
        <NavigationProperty Name="FabricAdapters" Type="Collection(FabricAdapter.FabricAdapter)">
          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
          <Annotation Term="OData.Description" String="An array of links to the fabric adapters providing this memory domain."/>
          <Annotation Term="OData.LongDescription" String="This property shall contain an array of links to resources of type FabricAdapter with which this memory domain is associated."/>
          <Annotation Term="OData.AutoExpandReferences"/>
        </NavigationProperty>
      </ComplexType>
    </Schema>

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

      <EntityType Name="MemoryDomain" BaseType="MemoryDomain.v1_4_0.MemoryDomain">
        <Property Name="Status" Type="Resource.Status" Nullable="false">
          <Annotation Term="OData.Description" String="The status and health of the resource and its subordinate or dependent resources."/>
          <Annotation Term="OData.LongDescription" String="This property shall contain any status or health properties of the resource."/>
        </Property>
        <Property Name="MinMemoryChunkSizeMiB" Type="Edm.Int64">
          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
          <Annotation Term="OData.Description" String="The minimum size allowed for a memory chunk within this domain in mebibytes (MiB)."/>
          <Annotation Term="OData.LongDescription" String="This property shall contain the minimum size allowed for a memory chunk within this domain in mebibytes (MiB)."/>
          <Annotation Term="Measures.Unit" String="MiBy"/>
        </Property>
        <Property Name="MemoryChunkIncrementMiB" Type="Edm.Int64">
          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
          <Annotation Term="OData.Description" String="The incremental size, from the minimum size, allowed for a memory chunk within this domain in mebibytes (MiB)."/>
          <Annotation Term="OData.LongDescription" String="This property shall contain the incremental size, from MemoryChunkIncrementMiB, allowed for a memory chunk within this domain in mebibytes (MiB)."/>
          <Annotation Term="Measures.Unit" String="MiBy"/>
        </Property>
        <Property Name="MemorySizeMiB" Type="Edm.Int64">
          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
          <Annotation Term="OData.Description" String="The total size of the memory domain in mebibytes (MiB)."/>
          <Annotation Term="OData.LongDescription" String="This property shall contain the total size of the memory domain in mebibytes (MiB)."/>
          <Annotation Term="Measures.Unit" String="MiBy"/>
        </Property>
      </EntityType>

      <ComplexType Name="Links" BaseType="MemoryDomain.v1_3_0.Links">
        <NavigationProperty Name="FabricAdapters" Type="Collection(FabricAdapter.FabricAdapter)">
          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
          <Annotation Term="OData.Description" String="An array of links to the fabric adapters that present this memory domain to a fabric."/>
          <Annotation Term="OData.LongDescription" String="This property shall contain an array of links to resources of type FabricAdapter that represent the fabric adapters that present this memory domain to a fabric."/>
          <Annotation Term="OData.AutoExpandReferences"/>
        </NavigationProperty>
        <NavigationProperty Name="PCIeFunctions" Type="Collection(PCIeFunction.PCIeFunction)">
          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
          <Annotation Term="OData.Description" String="An array of links to the PCIe functions representing this memory domain."/>
          <Annotation Term="OData.LongDescription" String="This property shall contain an array of links to resources of type PCIeFunction that represent the PCIe functions representing this memory domain."/>
          <Annotation Term="OData.AutoExpandReferences"/>
        </NavigationProperty>
        <NavigationProperty Name="CXLLogicalDevices" Type="Collection(CXLLogicalDevice.CXLLogicalDevice)">
          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
          <Annotation Term="OData.Description" String="An array of links to the CXL logical devices associated with this memory domain."/>
          <Annotation Term="OData.LongDescription" String="This property shall contain an array of links to resources of type CXLLogicalDevice that represent the CXL logical devices that are associated with this memory domain."/>
          <Annotation Term="OData.AutoExpandReferences"/>
        </NavigationProperty>
      </ComplexType>
    </Schema>

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