<?xml version="1.0" encoding="UTF-8"?>
<!---->
<!--################################################################################       -->
<!--# Redfish Schema:  PCIeDevice v1.11.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://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:Include Namespace="Validation.v1_0_0" Alias="Validation"/>
  </edmx:Reference>
  <edmx:Reference Uri="http://redfish.dmtf.org/schemas/v1/Chassis_v1.xml">
    <edmx:Include Namespace="Chassis"/>
  </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/PCIeFunctionCollection_v1.xml">
    <edmx:Include Namespace="PCIeFunctionCollection"/>
  </edmx:Reference>
  <edmx:Reference Uri="http://redfish.dmtf.org/schemas/v1/Assembly_v1.xml">
    <edmx:Include Namespace="Assembly"/>
  </edmx:Reference>
  <edmx:Reference Uri="http://redfish.dmtf.org/schemas/v1/EnvironmentMetrics_v1.xml">
    <edmx:Include Namespace="EnvironmentMetrics"/>
  </edmx:Reference>
  <edmx:Reference Uri="http://redfish.dmtf.org/schemas/v1/Switch_v1.xml">
    <edmx:Include Namespace="Switch"/>
  </edmx:Reference>
  <edmx:Reference Uri="http://redfish.dmtf.org/schemas/v1/CXLLogicalDeviceCollection_v1.xml">
    <edmx:Include Namespace="CXLLogicalDeviceCollection"/>
  </edmx:Reference>

  <edmx:DataServices>

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

      <EntityType Name="PCIeDevice" BaseType="Resource.v1_0_0.Resource" Abstract="true">
        <Annotation Term="OData.Description" String="The PCIeDevice schema describes the properties of a PCIe device that is attached to a system."/>
        <Annotation Term="OData.LongDescription" String="This resource shall represent a PCIe device 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="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}/PCIeDevices/{PCIeDeviceId}</String>
            <String>/redfish/v1/Systems/{ComputerSystemId}/PCIeDevices/{PCIeDeviceId}</String>
            <String>/redfish/v1/CompositionService/ResourceBlocks/{ResourceBlockId}/Systems/{ComputerSystemId}/PCIeDevices/{PCIeDeviceId}</String>
            <String>/redfish/v1/ResourceBlocks/{ResourceBlockId}/Systems/{ComputerSystemId}/PCIeDevices/{PCIeDeviceId}</String>
          </Collection>
        </Annotation>
      </EntityType>

      <ComplexType Name="PCIeInterface" Abstract="true">
        <Annotation Term="OData.AdditionalProperties" Bool="false"/>
        <Annotation Term="OData.Description" String="This type describes a PCIe Interface."/>
        <Annotation Term="OData.LongDescription" String="This type shall describe the PCIe interface characteristics of a PCIe device."/>
      </ComplexType>

      <ComplexType Name="PCIeErrors" Abstract="true">
        <Annotation Term="OData.AdditionalProperties" Bool="false"/>
        <Annotation Term="OData.Description" String="The PCIe errors associated with this device."/>
        <Annotation Term="OData.LongDescription" String="This property shall contain properties that describe the PCIe errors associated with this device."/>
      </ComplexType>

      <EnumType Name="PCIeTypes">
        <Annotation Term="Redfish.Revisions">
          <Collection>
            <Record>
              <PropertyValue Property="Kind" EnumMember="Redfish.RevisionKind/Added"/>
              <PropertyValue Property="Version" String="v1_3_0"/>
            </Record>
          </Collection>
        </Annotation>
        <Member Name="Gen1">
          <Annotation Term="OData.Description" String="A PCIe v1.0 slot."/>
        </Member>
        <Member Name="Gen2">
          <Annotation Term="OData.Description" String="A PCIe v2.0 slot."/>
        </Member>
        <Member Name="Gen3">
          <Annotation Term="OData.Description" String="A PCIe v3.0 slot."/>
        </Member>
        <Member Name="Gen4">
          <Annotation Term="OData.Description" String="A PCIe v4.0 slot."/>
        </Member>
        <Member Name="Gen5">
          <Annotation Term="OData.Description" String="A PCIe v5.0 slot."/>
        </Member>
      </EnumType>

    </Schema>

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

      <EntityType Name="PCIeDevice" BaseType="PCIeDevice.PCIeDevice">
        <Property Name="Manufacturer" Type="Edm.String">
          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
          <Annotation Term="OData.Description" String="The manufacturer of this PCIe device."/>
          <Annotation Term="OData.LongDescription" String="This property shall contain the name of the organization responsible for producing the PCIe device.  This organization may be the entity from whom the PCIe device is purchased, but this is not necessarily true."/>
        </Property>
        <Property Name="Model" Type="Edm.String">
          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
          <Annotation Term="OData.Description" String="The model number for the PCIe device."/>
          <Annotation Term="OData.LongDescription" String="This property shall contain the name by which the manufacturer generally refers to the PCIe device."/>
        </Property>
        <Property Name="SKU" Type="Edm.String">
          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
          <Annotation Term="OData.Description" String="The SKU for this PCIe device."/>
          <Annotation Term="OData.LongDescription" String="This property shall contain the stock-keeping unit number for this PCIe device."/>
        </Property>
        <Property Name="SerialNumber" Type="Edm.String">
          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
          <Annotation Term="OData.Description" String="The serial number for this PCIe device."/>
          <Annotation Term="OData.LongDescription" String="This property shall contain a manufacturer-allocated number that identifies the PCIe device."/>
        </Property>
        <Property Name="PartNumber" Type="Edm.String">
          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
          <Annotation Term="OData.Description" String="The part number for this PCIe device."/>
          <Annotation Term="OData.LongDescription" String="This property shall contain a part number assigned by the organization that is responsible for producing or manufacturing the PCIe device."/>
        </Property>
        <Property Name="AssetTag" Type="Edm.String">
          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/ReadWrite"/>
          <Annotation Term="OData.Description" String="The user-assigned asset tag for this PCIe device."/>
          <Annotation Term="OData.LongDescription" String="This property shall contain an identifying string that tracks the PCIe device for inventory purposes."/>
        </Property>

        <Property Name="DeviceType" Type="PCIeDevice.v1_0_0.DeviceType" Nullable="false">
          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
          <Annotation Term="OData.Description" String="The device type for this PCIe device."/>
          <Annotation Term="OData.LongDescription" String="This property shall contain the device type of the PCIe device such as `SingleFunction` or `MultiFunction`."/>
        </Property>
        <Property Name="FirmwareVersion" Type="Edm.String">
          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
          <Annotation Term="OData.Description" String="The version of firmware for this PCIe device."/>
          <Annotation Term="OData.LongDescription" String="This property shall contain the firmware version of the PCIe device."/>
        </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="Links" Type="PCIeDevice.v1_0_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="This property shall contain links to resources that are related to but are not contained by, or 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="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="Chassis" Type="Collection(Chassis.Chassis)">
          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
          <Annotation Term="OData.Description" String="An array of links to the chassis in which the PCIe device is contained."/>
          <Annotation Term="OData.LongDescription" String="This property shall contain an array of links to resources of type Chassis that represent the physical containers associated with this resource."/>
          <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 PCIe functions exposed by this device."/>
          <Annotation Term="OData.LongDescription" String="This property shall contain an array of links to resources of type PCIeFunction that represent the PCIe functions this device exposes."/>
          <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 PCIeFunctions property in the root that provides a link to a resource collection."/>
              </Record>
            </Collection>
          </Annotation>
        </NavigationProperty>
      </ComplexType>

      <EnumType Name="DeviceType">
        <Member Name="SingleFunction">
          <Annotation Term="OData.Description" String="A single-function PCIe device."/>
        </Member>
        <Member Name="MultiFunction">
          <Annotation Term="OData.Description" String="A multi-function PCIe device."/>
        </Member>
        <Member Name="Simulated">
          <Annotation Term="OData.Description" String="A PCIe device that is not currently physically present, but is being simulated by the PCIe infrastructure."/>
        </Member>
        <Member Name="Retimer">
          <Annotation Term="OData.Description" String="A PCIe retimer device."/>
          <Annotation Term="Redfish.Revisions">
            <Collection>
              <Record>
                <PropertyValue Property="Kind" EnumMember="Redfish.RevisionKind/Added"/>
                <PropertyValue Property="Version" String="v1_10_0"/>
              </Record>
            </Collection>
          </Annotation>
        </Member>
      </EnumType>

    </Schema>

    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="PCIeDevice.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="PCIeDevice" BaseType="PCIeDevice.v1_0_0.PCIeDevice"/>
    </Schema>

    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="PCIeDevice.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="PCIeDevice" BaseType="PCIeDevice.v1_0_1.PCIeDevice"/>
    </Schema>

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

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

    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="PCIeDevice.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="PCIeDevice" BaseType="PCIeDevice.v1_0_4.PCIeDevice"/>
    </Schema>

    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="PCIeDevice.v1_0_6">
      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
      <Annotation Term="OData.Description" String="This version was created to correct various description to use proper normative terminology."/>
      <EntityType Name="PCIeDevice" BaseType="PCIeDevice.v1_0_5.PCIeDevice"/>
    </Schema>

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

      <EntityType Name="PCIeDevice" BaseType="PCIeDevice.v1_0_2.PCIeDevice">
        <Property Name="Actions" Type="PCIeDevice.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="PCIeDevice.v1_1_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="PCIeDevice.v1_1_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="PCIeDevice" BaseType="PCIeDevice.v1_1_0.PCIeDevice"/>
    </Schema>

    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="PCIeDevice.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 URI properties use the uri-reference format."/>
      <EntityType Name="PCIeDevice" BaseType="PCIeDevice.v1_1_1.PCIeDevice"/>
    </Schema>

    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="PCIeDevice.v1_1_3">
      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
      <Annotation Term="OData.Description" String="This version was created to correct various description to use proper normative terminology."/>
      <EntityType Name="PCIeDevice" BaseType="PCIeDevice.v1_1_2.PCIeDevice"/>
    </Schema>

    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="PCIeDevice.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="PCIeDevice" BaseType="PCIeDevice.v1_1_3.PCIeDevice"/>
    </Schema>

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

      <EntityType Name="PCIeDevice" BaseType="PCIeDevice.v1_1_0.PCIeDevice">
        <NavigationProperty Name="Assembly" Type="Assembly.Assembly" Nullable="false">
          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
          <Annotation Term="OData.Description" String="The link to the assembly associated with this PCIe device."/>
          <Annotation Term="OData.LongDescription" String="This property shall contain a link to a resource of type Assembly."/>
          <Annotation Term="OData.AutoExpandReferences"/>
        </NavigationProperty>
      </EntityType>
    </Schema>

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

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

    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="PCIeDevice.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="PCIeDevice" BaseType="PCIeDevice.v1_2_2.PCIeDevice"/>
    </Schema>

    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="PCIeDevice.v1_2_4">
      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
      <Annotation Term="OData.Description" String="This version was created to correct various description to use proper normative terminology."/>
      <EntityType Name="PCIeDevice" BaseType="PCIeDevice.v1_2_3.PCIeDevice"/>
    </Schema>

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

      <EntityType Name="PCIeDevice" BaseType="PCIeDevice.v1_2_1.PCIeDevice">
        <Property Name="PCIeInterface" Type="PCIeDevice.v1_3_0.PCIeInterface" Nullable="false">
          <Annotation Term="OData.Description" String="The PCIe interface details for this PCIe device."/>
          <Annotation Term="OData.LongDescription" String="This property shall contain details for the PCIe interface that connects this PCIe device to its host or upstream switch."/>
        </Property>
      </EntityType>

      <ComplexType Name="PCIeInterface" BaseType="PCIeDevice.PCIeInterface">
        <Annotation Term="OData.Description" String="Properties that describe a PCIe interface."/>
        <Annotation Term="OData.LongDescription" String="This type shall contain the definition for a PCIe interface 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="MaxPCIeType" Type="PCIeDevice.PCIeTypes">
          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
          <Annotation Term="OData.Description" String="The highest version of the PCIe specification supported by this device."/>
          <Annotation Term="OData.LongDescription" String="This property shall contain the maximum PCIe specification that this device supports."/>
        </Property>
        <Property Name="PCIeType" Type="PCIeDevice.PCIeTypes">
          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
          <Annotation Term="OData.Description" String="The version of the PCIe specification in use by this device."/>
          <Annotation Term="OData.LongDescription" String="This property shall contain the negotiated PCIe interface version in use by this device."/>
        </Property>
        <Property Name="MaxLanes" Type="Edm.Int64">
          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
          <Annotation Term="OData.Description" String="The number of PCIe lanes supported by this device."/>
          <Annotation Term="OData.LongDescription" String="This property shall contain the maximum number of PCIe lanes supported by this device."/>
          <Annotation Term="Validation.Maximum" Int="32"/>
        </Property>
        <Property Name="LanesInUse" Type="Edm.Int64">
          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
          <Annotation Term="OData.Description" String="The number of PCIe lanes in use by this device."/>
          <Annotation Term="OData.LongDescription" String="This property shall contain the number of PCIe lanes in use by this device, which shall be equal to or less than the MaxLanes property value."/>
          <Annotation Term="Validation.Maximum" Int="32"/>
        </Property>
      </ComplexType>
    </Schema>

    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="PCIeDevice.v1_3_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 PCIeInterface to disallow it from being null."/>
      <EntityType Name="PCIeDevice" BaseType="PCIeDevice.v1_3_0.PCIeDevice"/>
    </Schema>

    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="PCIeDevice.v1_3_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="PCIeDevice" BaseType="PCIeDevice.v1_3_1.PCIeDevice"/>
    </Schema>

    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="PCIeDevice.v1_3_3">
      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
      <Annotation Term="OData.Description" String="This version was created to correct various description to use proper normative terminology."/>
      <EntityType Name="PCIeDevice" BaseType="PCIeDevice.v1_3_2.PCIeDevice"/>
    </Schema>

    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="PCIeDevice.v1_4_0">
      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
      <Annotation Term="Redfish.Release" String="2019.2"/>
      <Annotation Term="OData.Description" String="This version was created to add a PCIeFunction Resource Collection and to deprecate the Link to an array of PCIeFunction instances."/>

      <EntityType Name="PCIeDevice" BaseType="PCIeDevice.v1_3_2.PCIeDevice">
        <NavigationProperty Name="PCIeFunctions" Type="PCIeFunctionCollection.PCIeFunctionCollection" ContainsTarget="true" Nullable="false">
          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
          <Annotation Term="OData.Description" String="The link to the collection of PCIe functions associated with this PCIe device."/>
          <Annotation Term="OData.LongDescription" String="This property shall contain a link to a Resource Collection of type PCIeFunctionCollection.  This property should not be present if DeviceType contains `Retimer`."/>
          <Annotation Term="OData.AutoExpandReferences"/>
        </NavigationProperty>
      </EntityType>
    </Schema>

    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="PCIeDevice.v1_4_1">
      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
      <Annotation Term="OData.Description" String="This version was created to correct various description to use proper normative terminology."/>
      <EntityType Name="PCIeDevice" BaseType="PCIeDevice.v1_4_0.PCIeDevice"/>
    </Schema>

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

      <EntityType Name="PCIeDevice" BaseType="PCIeDevice.v1_4_0.PCIeDevice">
        <Property Name="UUID" Type="Resource.UUID">
          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
          <Annotation Term="OData.Description" String="The UUID for this PCIe device."/>
          <Annotation Term="OData.LongDescription" String="This property shall contain the universal unique identifier number for this PCIe device."/>
        </Property>
      </EntityType>
    </Schema>

    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="PCIeDevice.v1_5_1">
      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
      <Annotation Term="OData.Description" String="This version was created to correct various description to use proper normative terminology."/>
      <EntityType Name="PCIeDevice" BaseType="PCIeDevice.v1_5_0.PCIeDevice"/>
    </Schema>

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

      <EntityType Name="PCIeDevice" BaseType="PCIeDevice.v1_5_0.PCIeDevice">
        <Property Name="SparePartNumber" Type="Edm.String">
          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
          <Annotation Term="OData.Description" String="The spare part number of the PCIe device."/>
          <Annotation Term="OData.LongDescription" String="This property shall contain the spare part number of the PCIe device."/>
        </Property>
      </EntityType>
    </Schema>

    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="PCIeDevice.v1_6_1">
      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
      <Annotation Term="OData.Description" String="This version was created to correct various description to use proper normative terminology."/>
      <EntityType Name="PCIeDevice" BaseType="PCIeDevice.v1_6_0.PCIeDevice"/>
    </Schema>

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

      <EntityType Name="PCIeDevice" BaseType="PCIeDevice.v1_6_1.PCIeDevice">
        <Property Name="ReadyToRemove" Type="Edm.Boolean">
          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/ReadWrite"/>
          <Annotation Term="OData.Description" String="An indication of whether the PCIe device is prepared by the system for removal."/>
          <Annotation Term="OData.LongDescription" String="This property shall indicate whether the PCIe device is ready for removal.  Setting the value to `true` shall cause the service to perform appropriate actions to quiesce the device.  A task may spawn while the device is quiescing."/>
        </Property>
        <NavigationProperty Name="EnvironmentMetrics" Type="EnvironmentMetrics.EnvironmentMetrics" Nullable="false">
          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
          <Annotation Term="OData.Description" String="The link to the environment metrics for this PCIe device."/>
          <Annotation Term="OData.LongDescription" String="This property shall contain a link to a resource of type EnvironmentMetrics that specifies the environment metrics for this PCIe device."/>
          <Annotation Term="OData.AutoExpandReferences"/>
        </NavigationProperty>
      </EntityType>
    </Schema>

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

      <EntityType Name="PCIeDevice" BaseType="PCIeDevice.v1_7_0.PCIeDevice"/>

      <ComplexType Name="PCIeErrors" BaseType="PCIeDevice.PCIeErrors">
        <Property Name="CorrectableErrorCount" Type="Edm.Int64">
          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
          <Annotation Term="OData.Description" String="The total number of the PCIe correctable errors for this device."/>
          <Annotation Term="OData.LongDescription" String="This property shall contain the total number of the PCIe correctable errors for this device."/>
        </Property>
        <Property Name="NonFatalErrorCount" Type="Edm.Int64">
          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
          <Annotation Term="OData.Description" String="The total number of the PCIe non-fatal errors for this device."/>
          <Annotation Term="OData.LongDescription" String="This property shall contain the total number of the PCIe non-fatal errors for this device."/>
        </Property>
        <Property Name="FatalErrorCount" Type="Edm.Int64">
          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
          <Annotation Term="OData.Description" String="The total number of the PCIe fatal errors for this device."/>
          <Annotation Term="OData.LongDescription" String="This property shall contain the total number of the PCIe fatal errors for this device."/>
        </Property>
        <Property Name="L0ToRecoveryCount" Type="Edm.Int64">
          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
          <Annotation Term="OData.Description" String="The total number of times the PCIe link states transitioned from L0 to the recovery state for this device."/>
          <Annotation Term="OData.LongDescription" String="This property shall contain the total number of times the PCIe link transitioned from L0 to the recovery state for this device."/>
        </Property>
        <Property Name="ReplayCount" Type="Edm.Int64">
          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
          <Annotation Term="OData.Description" String="The total number of the PCIe replays issued by this device."/>
          <Annotation Term="OData.LongDescription" String="This property shall contain the total number of the replays issued on the PCIe link by this device.  A replay is a retransmission of a TLP and occurs because the ACK timer is expired, which means that the receiver did not send the ACK or this device did not properly decode the ACK."/>
        </Property>
        <Property Name="ReplayRolloverCount" Type="Edm.Int64">
          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
          <Annotation Term="OData.Description" String="The total number of the PCIe replay rollovers issued by this device."/>
          <Annotation Term="OData.LongDescription" String="This property shall contain the total number of the replay rollovers issued on the PCIe link by this device.  A replay rollover occurs when consecutive replays failed to resolve the errors on the link, which means that this device forced the link into the recovery state."/>
        </Property>
        <Property Name="NAKSentCount" Type="Edm.Int64">
          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
          <Annotation Term="OData.Description" String="The total number of NAKs issued on the PCIe link by this device."/>
          <Annotation Term="OData.LongDescription" String="This property shall contain the total number of NAKs issued on the PCIe link by this device.  A NAK is issued by the device when it detects that a TLP from the receiver was missed.  This could be because the receiver did not transmit it, or because this device could not properly decode the packet."/>
        </Property>
        <Property Name="NAKReceivedCount" Type="Edm.Int64">
          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
          <Annotation Term="OData.Description" String="The total number of NAKs issued on the PCIe link by the receiver."/>
          <Annotation Term="OData.LongDescription" String="This property shall contain the total number of NAKs issued on the PCIe link by the receiver.  A NAK is issued by the receiver when it detects that a TLP from this device was missed.  This could be because this device did not transmit it, or because the receiver could not properly decode the packet."/>
        </Property>
      </ComplexType>
    </Schema>

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

      <EntityType Name="PCIeDevice" BaseType="PCIeDevice.v1_8_0.PCIeDevice">
        <Property Name="Slot" Type="PCIeDevice.v1_9_0.Slot">
          <Annotation Term="OData.Description" String="Information about the slot for this PCIe device."/>
          <Annotation Term="OData.LongDescription" String="This property shall contain information about the PCIe slot for this PCIe device."/>
        </Property>
      </EntityType>

      <ComplexType Name="Slot">
        <Annotation Term="OData.AdditionalProperties" Bool="false"/>
        <Annotation Term="OData.Description" String="The PCIe slot associated with a PCIe device."/>
        <Annotation Term="OData.LongDescription" String="This object shall contain properties that describe the PCIe slot associated with a PCIe device."/>
        <Property Name="PCIeType" Type="PCIeDevice.PCIeTypes">
          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
          <Annotation Term="OData.Description" String="The PCIe specification this slot supports."/>
          <Annotation Term="OData.LongDescription" String="This property shall contain the maximum PCIe specification that this slot supports."/>
        </Property>
        <Property Name="SlotType" Type="PCIeDevice.v1_9_0.SlotType">
          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
          <Annotation Term="OData.Description" String="The PCIe slot type."/>
          <Annotation Term="OData.LongDescription" String="This property shall contain the PCIe slot type."/>
        </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="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 property, of the associated PCIe slot."/>
        </Property>
        <Property Name="LaneSplitting" Type="PCIeDevice.v1_9_0.LaneSplittingType">
          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
          <Annotation Term="OData.Description" String="The lane splitting strategy used in the PCIe slot."/>
          <Annotation Term="OData.LongDescription" String="This property shall contain lane splitting information of the associated PCIe slot."/>
        </Property>
      </ComplexType>

      <EnumType Name="SlotType">
        <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."/>
        </Member>
        <Member Name="OCP3Large">
          <Annotation Term="OData.Description" String="Open Compute Project 3.0 large form factor slot."/>
        </Member>
        <Member Name="U2">
          <Annotation Term="OData.Description" String="U.2 / SFF-8639 slot or bay."/>
        </Member>
      </EnumType>

      <EnumType Name="LaneSplittingType">
        <Member Name="None">
          <Annotation Term="OData.Description" String="The slot has no lane splitting."/>
        </Member>
        <Member Name="Bridged">
          <Annotation Term="OData.Description" String="The slot has a bridge to share the lanes with associated devices."/>
        </Member>
        <Member Name="Bifurcated">
          <Annotation Term="OData.Description" String="The slot is bifurcated to split the lanes with associated devices."/>
        </Member>
      </EnumType>
    </Schema>

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

      <EntityType Name="PCIeDevice" BaseType="PCIeDevice.v1_9_0.PCIeDevice"/>

      <ComplexType Name="Links" BaseType="PCIeDevice.v1_0_0.Links">
        <NavigationProperty Name="Switch" Type="Switch.Switch">
          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
          <Annotation Term="OData.Description" String="The link to a switch that is associated with this PCIe device."/>
          <Annotation Term="OData.LongDescription" String="This property shall contain a link to a resource of type Switch that is associated with this PCIe device."/>
          <Annotation Term="OData.AutoExpandReferences"/>
        </NavigationProperty>
      </ComplexType>
    </Schema>

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

      <EntityType Name="PCIeDevice" BaseType="PCIeDevice.v1_10_0.PCIeDevice">
        <Property Name="CXLDevice" Type="PCIeDevice.v1_11_0.CXLDevice">
          <Annotation Term="OData.Description" String="The CXL-specific properties of this PCIe device."/>
          <Annotation Term="OData.LongDescription" String="This property shall contain CXL-specific properties of this PCIe device."/>
        </Property>
        <Property Name="StagedVersion" Type="Edm.String" Nullable="false">
          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
          <Annotation Term="OData.Description" String="The staged firmware version for this PCIe device, but is not yet active."/>
          <Annotation Term="OData.LongDescription" String="This property shall contain the staged firmware version for this PCIe device, but is not yet active."/>
        </Property>
        <NavigationProperty Name="CXLLogicalDevices" Type="CXLLogicalDeviceCollection.CXLLogicalDeviceCollection" Nullable="false">
          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
          <Annotation Term="OData.Description" String="The link to the collection of CXL logical devices within this PCIe device."/>
          <Annotation Term="OData.LongDescription" String="This property shall contain a link to a resource collection of type CXLLogicalDeviceCollection."/>
          <Annotation Term="OData.AutoExpandReferences"/>
        </NavigationProperty>
      </EntityType>

      <ComplexType Name="CXLDevice">
        <Annotation Term="OData.AdditionalProperties" Bool="false"/>
        <Annotation Term="OData.Description" String="The CXL-specific properties of a PCIe device."/>
        <Annotation Term="OData.LongDescription" String="This type shall contain CXL-specific properties of a PCIe device."/>
        <Property Name="MaxNumberLogicalDevices" Type="Edm.Decimal">
          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
          <Annotation Term="OData.Description" String="The maximum number of logical devices supported by this CXL device."/>
          <Annotation Term="OData.LongDescription" String="This property shall contain the maximum number of logical devices supported by this CXL device."/>
        </Property>
        <Property Name="EgressPortCongestionSupport" Type="Edm.Boolean">
          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
          <Annotation Term="OData.Description" String="Indicates whether the CXL device supports egress port congestion management."/>
          <Annotation Term="OData.LongDescription" String="This property shall indicate whether the CXL device supports the CXL Specification-defined 'Egress Port Congestion' mechanism."/>
        </Property>
        <Property Name="ThroughputReductionSupport" Type="Edm.Boolean">
          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
          <Annotation Term="OData.Description" String="Indicates whether the CXL device supports throughput reduction."/>
          <Annotation Term="OData.LongDescription" String="This property shall indicate whether the CXL device supports the CXL Specification-defined 'Throughput Reduction' mechanism."/>
        </Property>
        <Property Name="Timestamp" Type="Edm.DateTimeOffset" Nullable="false">
          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/ReadWrite"/>
          <Annotation Term="OData.Description" String="The timestamp set on the CXL device."/>
          <Annotation Term="OData.LongDescription" String="This property shall contain the timestamp set on the CXL device."/>
        </Property>
        <Property Name="DeviceType" Type="PCIeDevice.v1_11_0.CXLDeviceType">
          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
          <Annotation Term="OData.Description" String="The CXL device type."/>
          <Annotation Term="OData.LongDescription" String="This property shall contain the CXL device type."/>
        </Property>
      </ComplexType>

      <EnumType Name="CXLDeviceType">
        <Member Name="Type1">
          <Annotation Term="OData.Description" String="A CXL Type 1 device."/>
          <Annotation Term="OData.LongDescription" String="This value shall indicate a CXL Specification-defined Type 1 device."/>
        </Member>
        <Member Name="Type2">
          <Annotation Term="OData.Description" String="A CXL Type 2 device."/>
          <Annotation Term="OData.LongDescription" String="This value shall indicate a CXL Specification-defined Type 2 device."/>
        </Member>
        <Member Name="Type3">
          <Annotation Term="OData.Description" String="A CXL Type 3 device."/>
          <Annotation Term="OData.LongDescription" String="This value shall indicate a CXL Specification-defined Type 3 device."/>
        </Member>
      </EnumType>
    </Schema>

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