<?xml version="1.0" encoding="UTF-8"?>
<!---->
<!--################################################################################       -->
<!--# Redfish Schema:  PCIeSlots v1.6.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-2024 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://redfish.dmtf.org/schemas/v1/RedfishExtensions_v1.xml">
    <edmx:Include Namespace="RedfishExtensions.v1_0_0" Alias="Redfish"/>
    <edmx:Include Namespace="Validation.v1_0_0" Alias="Validation"/>
  </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/PCIeDevice_v1.xml">
    <edmx:Include Namespace="PCIeDevice"/>
  </edmx:Reference>
  <edmx:Reference Uri="http://redfish.dmtf.org/schemas/v1/Processor_v1.xml">
    <edmx:Include Namespace="Processor"/>
  </edmx:Reference>

  <edmx:DataServices>

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

      <EntityType Name="PCIeSlots" BaseType="Resource.v1_0_0.Resource" Abstract="true">
        <Annotation Term="OData.Description" String="The `PCIeSlots` schema describes PCIe slot properties."/>
        <Annotation Term="OData.LongDescription" String="This resource shall represent a set of PCIe slot information for a Redfish implementation."/>
        <Annotation Term="Capabilities.InsertRestrictions">
          <Record>
            <PropertyValue Property="Insertable" Bool="false"/>
          </Record>
        </Annotation>
        <Annotation Term="Capabilities.UpdateRestrictions">
          <Record>
            <PropertyValue Property="Updatable" Bool="true"/>
          </Record>
        </Annotation>
        <Annotation Term="Capabilities.DeleteRestrictions">
          <Record>
            <PropertyValue Property="Deletable" Bool="false"/>
          </Record>
        </Annotation>
        <Annotation Term="Redfish.Uris">
          <Collection>
            <String>/redfish/v1/Chassis/{ChassisId}/PCIeSlots</String>
          </Collection>
        </Annotation>
        <Annotation Term="Redfish.Revisions">
          <Collection>
            <Record>
              <PropertyValue Property="Kind" EnumMember="Redfish.RevisionKind/Deprecated"/>
              <PropertyValue Property="Version" String="v1_6_0"/>
              <PropertyValue Property="Description" String="This schema has been deprecated in favor of the `PCIeDevice` schema.  Empty PCIe slots should be represented by `PCIeDevice` resources using the `Absent` value of the `State` property within `Status`."/>
            </Record>
          </Collection>
        </Annotation>
      </EntityType>

    </Schema>

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

      <EntityType Name="PCIeSlots" BaseType="PCIeSlots.PCIeSlots">
        <Property Name="Slots" Type="Collection(PCIeSlots.v1_0_0.PCIeSlot)" Nullable="false">
          <Annotation Term="OData.Description" String="An array of PCI Slot information."/>
          <Annotation Term="OData.LongDescription" String="This array shall contain an entry for each PCIe slot, including empty slots (with no device or card installed)."/>
        </Property>
        <Property Name="Actions" Type="PCIeSlots.v1_0_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="PCIeSlot">
        <Annotation Term="OData.AdditionalProperties" Bool="false"/>
        <Annotation Term="OData.Description" String="This type defines information for a PCIe slot."/>
        <Annotation Term="OData.LongDescription" String="These properties shall contain the definition for a PCIe slot for a Redfish implementation."/>
        <Property Name="Oem" Type="Resource.Oem" Nullable="false">
          <Annotation Term="OData.Description" String="The OEM extension property."/>
          <Annotation Term="OData.LongDescription" String="This property shall contain the OEM extensions.  All values for properties contained in this object shall conform to the Redfish Specification-described requirements."/>
        </Property>
        <Property Name="PCIeType" Type="PCIeDevice.PCIeTypes">
          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
          <Annotation Term="OData.Description" String="The PCIe specification supported by this slot."/>
          <Annotation Term="OData.LongDescription" String="This property shall contain the maximum PCIe specification that this slot supports."/>
        </Property>
        <Property Name="SlotType" Type="PCIeSlots.v1_0_0.SlotTypes">
          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
          <Annotation Term="OData.Description" String="The PCIe slot type for this slot."/>
          <Annotation Term="OData.LongDescription" String="This property shall contain the slot type as specified by the PCIe specification."/>
        </Property>
        <Property Name="Lanes" Type="Edm.Int64">
          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
          <Annotation Term="OData.Description" String="The number of PCIe lanes supported by this slot."/>
          <Annotation Term="OData.LongDescription" String="This property shall contain the maximum number of PCIe lanes supported by the slot."/>
          <Annotation Term="Validation.Maximum" Int="32"/>
        </Property>
        <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="Location" Type="Resource.Location" Nullable="false">
          <Annotation Term="OData.Description" String="The location of the PCIe slot."/>
          <Annotation Term="OData.LongDescription" String="This property shall contain part location information, including a `ServiceLabel` of the associated PCIe slot."/>
        </Property>
        <Property Name="Links" Type="PCIeSlots.v1_0_0.PCIeLinks" Nullable="false">
          <Annotation Term="OData.Description" String="The links to other resources that are related to this resource."/>
          <Annotation Term="OData.LongDescription" String="This property shall contain links to resources that are related to but are not contained by, or subordinate to, this resource."/>
        </Property>
      </ComplexType>

      <ComplexType Name="PCIeLinks" BaseType="Resource.Links">
        <Annotation Term="OData.Description" String="The links to other resources that are related to this resource."/>
        <Annotation Term="OData.LongDescription" String="This Redfish Specification-described type shall contain links to resources that are related to but are not contained by, or subordinate to, this resource."/>
        <NavigationProperty Name="PCIeDevice" Type="Collection(PCIeDevice.PCIeDevice)">
          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
          <Annotation Term="OData.Description" String="An array of links to the PCIe devices contained in this slot."/>
          <Annotation Term="OData.LongDescription" String="This property shall contain an array of links to resources of type `PCIeDevice` with which this physical slot is associated.  If the `State` property in `Status` of this slot is `Absent`, this property shall not appear in the resource."/>
          <Annotation Term="OData.AutoExpandReferences"/>
        </NavigationProperty>
      </ComplexType>

      <EnumType Name="SlotTypes">
        <Member Name="FullLength">
          <Annotation Term="OData.Description" String="Full-Length PCIe slot."/>
        </Member>
        <Member Name="HalfLength">
          <Annotation Term="OData.Description" String="Half-Length PCIe slot."/>
        </Member>
        <Member Name="LowProfile">
          <Annotation Term="OData.Description" String="Low-Profile or Slim PCIe slot."/>
        </Member>
        <Member Name="Mini">
          <Annotation Term="OData.Description" String="Mini PCIe slot."/>
        </Member>
        <Member Name="M2">
          <Annotation Term="OData.Description" String="PCIe M.2 slot."/>
        </Member>
        <Member Name="OEM">
          <Annotation Term="OData.Description" String="An OEM-specific slot."/>
        </Member>
        <Member Name="OCP3Small">
          <Annotation Term="OData.Description" String="Open Compute Project 3.0 small form factor slot."/>
          <Annotation Term="Redfish.Revisions">
            <Collection>
              <Record>
                <PropertyValue Property="Kind" EnumMember="Redfish.RevisionKind/Added"/>
                <PropertyValue Property="Version" String="v1_2_0"/>
              </Record>
            </Collection>
          </Annotation>
        </Member>
        <Member Name="OCP3Large">
          <Annotation Term="OData.Description" String="Open Compute Project 3.0 large form factor slot."/>
          <Annotation Term="Redfish.Revisions">
            <Collection>
              <Record>
                <PropertyValue Property="Kind" EnumMember="Redfish.RevisionKind/Added"/>
                <PropertyValue Property="Version" String="v1_2_0"/>
              </Record>
            </Collection>
          </Annotation>
        </Member>
        <Member Name="U2">
          <Annotation Term="OData.Description" String="U.2 / SFF-8639 slot or bay."/>
          <Annotation Term="Redfish.Revisions">
            <Collection>
              <Record>
                <PropertyValue Property="Kind" EnumMember="Redfish.RevisionKind/Added"/>
                <PropertyValue Property="Version" String="v1_3_0"/>
              </Record>
            </Collection>
          </Annotation>
        </Member>
      </EnumType>

      <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="PCIeSlots.v1_0_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="PCIeSlots.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 URI properties use the uri-reference format, and to add a missing term to `Links` and `Slots` to disallow them from being `null`."/>
      <EntityType Name="PCIeSlots" BaseType="PCIeSlots.v1_0_0.PCIeSlots"/>
    </Schema>

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

    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="PCIeSlots.v1_0_3">
      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
      <Annotation Term="OData.Description" String="This version was created to correct typographic errors in the `Location` description."/>
      <EntityType Name="PCIeSlots" BaseType="PCIeSlots.v1_0_2.PCIeSlots"/>
    </Schema>

    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="PCIeSlots.v1_0_4">
      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
      <Annotation Term="OData.Description" String="This version was created to force the regeneration of OpenAPI schemas to properly express nullable properties with external references.  It was also created to correct various typographical errors."/>
      <EntityType Name="PCIeSlots" BaseType="PCIeSlots.v1_0_3.PCIeSlots"/>
    </Schema>

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

      <EntityType Name="PCIeSlots" BaseType="PCIeSlots.v1_0_1.PCIeSlots"/>
      <ComplexType Name="PCIeSlot" BaseType="PCIeSlots.v1_0_0.PCIeSlot">
        <Property Name="HotPluggable" Type="Edm.Boolean">
          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
          <Annotation Term="OData.Description" String="An indication of whether this PCIe slot supports hotplug."/>
          <Annotation Term="OData.LongDescription" String="This property shall contain indicating whether this PCIe slot supports hotplug."/>
        </Property>
      </ComplexType>
    </Schema>

    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="PCIeSlots.v1_1_1">
      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
      <Annotation Term="OData.Description" String="This version was created to correct the parent namespace of HotPluggable property from `PCIeSlots` to `PCIeSlot`.  It was also created to update descriptions that this schema defines."/>
      <EntityType Name="PCIeSlots" BaseType="PCIeSlots.v1_1_0.PCIeSlots"/>
    </Schema>

    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="PCIeSlots.v1_1_2">
      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
      <Annotation Term="OData.Description" String="This version was created to correct typographic errors in the `Location` description."/>
      <EntityType Name="PCIeSlots" BaseType="PCIeSlots.v1_1_1.PCIeSlots"/>
    </Schema>

    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="PCIeSlots.v1_1_3">
      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
      <Annotation Term="OData.Description" String="This version was created to force the regeneration of OpenAPI schemas to properly express nullable properties with external references.  It was also created to correct various typographical errors."/>
      <EntityType Name="PCIeSlots" BaseType="PCIeSlots.v1_1_2.PCIeSlots"/>
    </Schema>

    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="PCIeSlots.v1_2_0">
      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
      <Annotation Term="Redfish.Release" String="2019.4"/>
      <Annotation Term="OData.Description" String="This version was created to add the Open Compute Project 3.0 form factors to PCIe `SlotType`."/>

      <EntityType Name="PCIeSlots" BaseType="PCIeSlots.v1_1_2.PCIeSlots"/>
    </Schema>

    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="PCIeSlots.v1_2_1">
      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
      <Annotation Term="OData.Description" String="This version was created to force the regeneration of OpenAPI schemas to properly express nullable properties with external references.  It was also created to correct various typographical errors."/>
      <EntityType Name="PCIeSlots" BaseType="PCIeSlots.v1_2_0.PCIeSlots"/>
    </Schema>

    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="PCIeSlots.v1_3_0">
      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
      <Annotation Term="Redfish.Release" String="2020.1"/>
      <Annotation Term="OData.Description" String="This version was created to add the U.2 form factor to PCIe `SlotType`."/>

      <EntityType Name="PCIeSlots" BaseType="PCIeSlots.v1_2_0.PCIeSlots"/>
    </Schema>

    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="PCIeSlots.v1_3_1">
      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
      <Annotation Term="OData.Description" String="This version was created to force the regeneration of OpenAPI schemas to properly express nullable properties with external references.  It was also created to correct various typographical errors."/>
      <EntityType Name="PCIeSlots" BaseType="PCIeSlots.v1_3_0.PCIeSlots"/>
    </Schema>

    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="PCIeSlots.v1_4_0">
      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
      <Annotation Term="Redfish.Release" String="2020.3"/>
      <Annotation Term="OData.Description" String="This version was created to add the `LocationIndicatorActive` property, but the property was incorrectly defined at the root of the resource rather than part of the `PCIeSlot` array.  The definition for `LocationIndicatorActive` was corrected in v1_4_1."/>

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

      <ComplexType Name="PCIeSlot" BaseType="PCIeSlots.v1_1_0.PCIeSlot">
        <Property Name="LocationIndicatorActive" Type="Edm.Boolean">
          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/ReadWrite"/>
          <Annotation Term="OData.Description" String="An indicator allowing an operator to physically locate this resource."/>
          <Annotation Term="OData.LongDescription" String="This property shall contain the state of the indicator used to physically identify or locate this resource.  A write to this property shall update the value of `IndicatorLED` in this resource, if supported, to reflect the implementation of the locating function."/>
        </Property>
      </ComplexType>
    </Schema>

    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="PCIeSlots.v1_4_1">
      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
      <Annotation Term="OData.Description" String="This version was created to correct the definition of the `LocationIndicatorActive` property."/>
      <EntityType Name="PCIeSlots" BaseType="PCIeSlots.v1_4_0.PCIeSlots"/>
    </Schema>

    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="PCIeSlots.v1_4_2">
      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
      <Annotation Term="OData.Description" String="This version was created to force the regeneration of OpenAPI schemas to properly express nullable properties with external references.  It was also created to correct various typographical errors."/>
      <EntityType Name="PCIeSlots" BaseType="PCIeSlots.v1_4_1.PCIeSlots"/>
    </Schema>

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

      <EntityType Name="PCIeSlots" BaseType="PCIeSlots.v1_4_1.PCIeSlots"/>

      <ComplexType Name="PCIeLinks" BaseType="PCIeSlots.v1_0_0.PCIeLinks">
        <NavigationProperty Name="Processors" Type="Collection(Processor.Processor)">
          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
          <Annotation Term="OData.Description" String="An array of links to the processors that are directly connected or directly bridged to this PCIe slot."/>
          <Annotation Term="OData.LongDescription" String="This property shall contain an array of links to resources of type `Processor` that represent processors that are directly connected or directly bridged to this PCIe slot."/>
          <Annotation Term="OData.AutoExpandReferences"/>
        </NavigationProperty>
      </ComplexType>
    </Schema>

    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="PCIeSlots.v1_5_1">
      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
      <Annotation Term="OData.Description" String="This version was created to force the regeneration of OpenAPI schemas to properly express nullable properties with external references.  It was also created to correct various typographical errors."/>
      <EntityType Name="PCIeSlots" BaseType="PCIeSlots.v1_5_0.PCIeSlots"/>
    </Schema>

    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="PCIeSlots.v1_6_0">
      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
      <Annotation Term="OData.Description" String="This version was created to deprecate the schema."/>
      <Annotation Term="Redfish.Release" String="2023.2"/>

      <EntityType Name="PCIeSlots" BaseType="PCIeSlots.v1_5_0.PCIeSlots"/>
    </Schema>

    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="PCIeSlots.v1_6_1">
      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
      <Annotation Term="OData.Description" String="This version was created to force the regeneration of OpenAPI schemas to properly express nullable properties with external references.  It was also created to correct various typographical errors."/>
      <EntityType Name="PCIeSlots" BaseType="PCIeSlots.v1_6_0.PCIeSlots"/>
    </Schema>

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