<?xml version="1.0" encoding="UTF-8"?>
<!---->
<!--################################################################################       -->
<!--# Redfish Schema:  Switch v1.9.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/Chassis_v1.xml">
    <edmx:Include Namespace="Chassis"/>
  </edmx:Reference>
  <edmx:Reference Uri="http://redfish.dmtf.org/schemas/v1/Manager_v1.xml">
    <edmx:Include Namespace="Manager"/>
  </edmx:Reference>
  <edmx:Reference Uri="http://redfish.dmtf.org/schemas/v1/Redundancy_v1.xml">
    <edmx:Include Namespace="Redundancy"/>
  </edmx:Reference>
  <edmx:Reference Uri="http://redfish.dmtf.org/schemas/v1/PortCollection_v1.xml">
    <edmx:Include Namespace="PortCollection"/>
  </edmx:Reference>
  <edmx:Reference Uri="http://redfish.dmtf.org/schemas/v1/LogServiceCollection_v1.xml">
    <edmx:Include Namespace="LogServiceCollection"/>
  </edmx:Reference>
  <edmx:Reference Uri="http://redfish.dmtf.org/schemas/v1/Protocol_v1.xml">
    <edmx:Include Namespace="Protocol"/>
  </edmx:Reference>
  <edmx:Reference Uri="http://redfish.dmtf.org/schemas/v1/Endpoint_v1.xml">
    <edmx:Include Namespace="Endpoint"/>
  </edmx:Reference>
  <edmx:Reference Uri="http://redfish.dmtf.org/schemas/v1/PCIeDevice_v1.xml">
    <edmx:Include Namespace="PCIeDevice"/>
  </edmx:Reference>
  <edmx:Reference Uri="http://redfish.dmtf.org/schemas/v1/CertificateCollection_v1.xml">
    <edmx:Include Namespace="CertificateCollection"/>
  </edmx:Reference>
  <edmx:Reference Uri="http://redfish.dmtf.org/schemas/v1/SoftwareInventory_v1.xml">
    <edmx:Include Namespace="SoftwareInventory"/>
  </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/SwitchMetrics_v1.xml">
    <edmx:Include Namespace="SwitchMetrics"/>
  </edmx:Reference>

  <edmx:DataServices>

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

      <EntityType Name="Switch" BaseType="Resource.v1_0_0.Resource" Abstract="true">
        <Annotation Term="OData.Description" String="The Switch schema contains properties that describe a fabric switch."/>
        <Annotation Term="OData.LongDescription" String="This resource contains a switch 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"/>
            <Annotation Term="OData.Description" String="Any writable properties, such as AssetTag, can be updated for switches."/>
          </Record>
        </Annotation>
        <Annotation Term="Capabilities.DeleteRestrictions">
          <Record>
            <PropertyValue Property="Deletable" Bool="false"/>
          </Record>
        </Annotation>
        <Annotation Term="Redfish.Uris">
          <Collection>
            <String>/redfish/v1/Fabrics/{FabricId}/Switches/{SwitchId}</String>
          </Collection>
        </Annotation>
      </EntityType>

      <Action Name="Reset" IsBound="true">
        <Annotation Term="OData.Description" String="This action resets this switch."/>
        <Annotation Term="OData.LongDescription" String="This action shall reset this switch."/>
        <Parameter Name="Switch" Type="Switch.v1_0_0.Actions"/>
        <Parameter Name="ResetType" Type="Resource.ResetType">
          <Annotation Term="OData.Description" String="The type of reset."/>
          <Annotation Term="OData.LongDescription" String="This parameter shall contain the type of reset.  The service can accept a request without this parameter and can complete an implementation-specific default reset."/>
        </Parameter>
      </Action>
    </Schema>

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

      <EntityType Name="Switch" BaseType="Switch.Switch">
        <Property Name="SwitchType" Type="Protocol.Protocol">
          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
          <Annotation Term="OData.Description" String="The protocol being sent over this switch."/>
          <Annotation Term="OData.LongDescription" String="This property shall contain the protocol being sent over this switch.  For a switch that supports multiple protocols, the value should be `MultiProtocol` and the SupportedProtocols property should be used to describe the supported protocols."/>
        </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="Manufacturer" Type="Edm.String">
          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
          <Annotation Term="OData.Description" String="The manufacturer of this switch."/>
          <Annotation Term="OData.LongDescription" String="This property shall contain the name of the organization responsible for producing the switch.  This organization may be the entity from which the switch 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 product model number of this switch."/>
          <Annotation Term="OData.LongDescription" String="This property shall contain the manufacturer-provided model information of this switch."/>
        </Property>
        <Property Name="SKU" Type="Edm.String">
          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
          <Annotation Term="OData.Description" String="The SKU for this switch."/>
          <Annotation Term="OData.LongDescription" String="This property shall contain the SKU number for this switch."/>
        </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 switch."/>
          <Annotation Term="OData.LongDescription" String="This property shall contain a manufacturer-allocated number that identifies the switch."/>
        </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 switch."/>
          <Annotation Term="OData.LongDescription" String="This property shall contain the manufacturer-provided part number for the switch."/>
        </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 switch."/>
          <Annotation Term="OData.LongDescription" String="This property shall contain the user-assigned asset tag, which is an identifying string that tracks the drive for inventory purposes."/>
        </Property>
        <Property Name="DomainID" Type="Edm.Int64">
          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
          <Annotation Term="OData.Description" String="The domain ID for this switch."/>
          <Annotation Term="OData.LongDescription" String="This property shall contain The domain ID for this switch.  This property has a scope of uniqueness within the fabric of which the switch is a member."/>
        </Property>
        <Property Name="IsManaged" Type="Edm.Boolean">
          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/ReadWrite"/>
          <Annotation Term="OData.Description" String="An indication of whether the switch is in a managed or unmanaged state."/>
          <Annotation Term="OData.LongDescription" String="This property shall indicate whether this switch is in a managed or unmanaged state."/>
        </Property>
        <Property Name="TotalSwitchWidth" Type="Edm.Int64">
          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
          <Annotation Term="OData.Description" String="The total number of lanes, phys, or other physical transport links that this switch contains."/>
          <Annotation Term="OData.LongDescription" String="This property shall contain the number of physical transport lanes, phys, or other physical transport links that this switch contains.  For PCIe, this value shall be the lane count."/>
        </Property>
        <Property Name="IndicatorLED" Type="Resource.IndicatorLED">
          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/ReadWrite"/>
          <Annotation Term="OData.Description" String="The state of the indicator LED, which identifies the switch."/>
          <Annotation Term="OData.LongDescription" String="This property shall contain the state of the indicator light associated with this switch."/>
          <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 LocationIndicatorActive property."/>
              </Record>
            </Collection>
          </Annotation>
        </Property>
        <Property Name="PowerState" Type="Resource.PowerState">
          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
          <Annotation Term="OData.Description" String="The current power state of the switch."/>
          <Annotation Term="OData.LongDescription" String="This property shall contain the power state of the switch."/>
        </Property>
        <NavigationProperty Name="Ports" Type="PortCollection.PortCollection" ContainsTarget="true" Nullable="false">
          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
          <Annotation Term="OData.Description" String="The link to the collection ports for this switch."/>
          <Annotation Term="OData.LongDescription" String="This property shall contain a link to a resource collection of type PortCollection."/>
          <Annotation Term="OData.AutoExpandReferences"/>
        </NavigationProperty>
        <NavigationProperty Name="Redundancy" Type="Collection(Redundancy.Redundancy)" ContainsTarget="true">
          <Annotation Term="OData.Description" String="Redundancy information for the switches."/>
          <Annotation Term="OData.LongDescription" String="This property shall contain an array that shows how this switch is grouped with other switches for form redundancy sets."/>
          <Annotation Term="OData.AutoExpand"/>
        </NavigationProperty>
        <Property Name="Links" Type="Switch.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>
        <NavigationProperty Name="LogServices" Type="LogServiceCollection.LogServiceCollection" ContainsTarget="true" Nullable="false">
          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
          <Annotation Term="OData.Description" String="The link to the collection of log services associated with this switch."/>
          <Annotation Term="OData.LongDescription" String="This property shall contain a link to a resource collection of type LogServiceCollection."/>
          <Annotation Term="OData.AutoExpandReferences"/>
        </NavigationProperty>
        <Property Name="Actions" Type="Switch.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="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="Chassis.Chassis" Nullable="false">
          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
          <Annotation Term="OData.Description" String="The link to the chassis that contains this switch."/>
          <Annotation Term="OData.LongDescription" String="This property shall contain a link to a resource of type Chassis with which this switch is associated."/>
          <Annotation Term="OData.AutoExpandReferences"/>
        </NavigationProperty>
        <NavigationProperty Name="ManagedBy" Type="Collection(Manager.Manager)">
          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
          <Annotation Term="OData.Description" String="An array of links to the managers that manage this switch."/>
          <Annotation Term="OData.LongDescription" String="This property shall contain an array of links to resources of type Manager with which this switch is associated."/>
          <Annotation Term="OData.AutoExpandReferences"/>
        </NavigationProperty>
      </ComplexType>

      <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="Switch.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="Switch.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="Switch" BaseType="Switch.v1_0_0.Switch"/>
    </Schema>

    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="Switch.v1_0_2">
      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
      <Annotation Term="OData.Description" String="This version was created to remove the Nullable facet on NavigationProperties of the Collection type."/>
      <EntityType Name="Switch" BaseType="Switch.v1_0_1.Switch"/>
    </Schema>

    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="Switch.v1_0_3">
      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
      <Annotation Term="OData.Description" String="This version was created to change IndicatorLED, PowerState, and Protocol to use the unversioned definition, and correct the short and long descriptions in the defined actions."/>
      <EntityType Name="Switch" BaseType="Switch.v1_0_2.Switch"/>
    </Schema>

    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="Switch.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 OData properties are marked as required, and integer properties are marked as integer rather than number."/>
      <EntityType Name="Switch" BaseType="Switch.v1_0_3.Switch"/>
    </Schema>

    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="Switch.v1_0_5">
      <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 the LogServices property to disallow it from being `null`."/>
      <EntityType Name="Switch" BaseType="Switch.v1_0_4.Switch"/>
    </Schema>

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

    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="Switch.v1_0_7">
      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
      <Annotation Term="OData.Description" String="This version was created to correct various typographical errors."/>
      <EntityType Name="Switch" BaseType="Switch.v1_0_6.Switch"/>
    </Schema>

    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="Switch.v1_0_8">
      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
      <Annotation Term="OData.Description" String="This version was created specify 64-bit integers in OpenAPI."/>
      <EntityType Name="Switch" BaseType="Switch.v1_0_7.Switch"/>
    </Schema>

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

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

      <EntityType Name="Switch" BaseType="Switch.v1_0_3.Switch">
        <Property Name="Location" Type="Resource.Location" Nullable="false">
          <Annotation Term="OData.Description" String="The location of the switch."/>
          <Annotation Term="OData.LongDescription" String="This property shall contain location information of the associated switch."/>
        </Property>
      </EntityType>
    </Schema>

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

    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="Switch.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, and to add a missing term to the LogServices property to disallow it from being null."/>
      <EntityType Name="Switch" BaseType="Switch.v1_1_1.Switch"/>
    </Schema>

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

    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="Switch.v1_1_4">
      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
      <Annotation Term="OData.Description" String="This version was created to correct various typographical errors."/>
      <EntityType Name="Switch" BaseType="Switch.v1_1_3.Switch"/>
    </Schema>

    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="Switch.v1_1_5">
      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
      <Annotation Term="OData.Description" String="This version was created specify 64-bit integers in OpenAPI."/>
      <EntityType Name="Switch" BaseType="Switch.v1_1_4.Switch"/>
    </Schema>

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

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

      <EntityType Name="Switch" BaseType="Switch.v1_1_3.Switch">
        <Property Name="FirmwareVersion" Type="Edm.String">
          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
          <Annotation Term="OData.Description" String="The firmware version of this switch."/>
          <Annotation Term="OData.LongDescription" String="This property shall contain the firmware version as defined by the manufacturer for the associated switch."/>
        </Property>
      </EntityType>
    </Schema>

    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="Switch.v1_2_1">
      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
      <Annotation Term="OData.Description" String="This version was created to correct various typographical errors."/>
      <EntityType Name="Switch" BaseType="Switch.v1_2_0.Switch"/>
    </Schema>

    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="Switch.v1_2_2">
      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
      <Annotation Term="OData.Description" String="This version was created to correct various typographical errors."/>
      <EntityType Name="Switch" BaseType="Switch.v1_2_1.Switch"/>
    </Schema>

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

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

      <EntityType Name="Switch" BaseType="Switch.v1_2_0.Switch">
        <Property Name="SupportedProtocols" Type="Collection(Protocol.Protocol)" Nullable="false">
          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
          <Annotation Term="OData.Description" String="The protocols this switch supports."/>
          <Annotation Term="OData.LongDescription" String="The property shall contain an array of protocols this switch supports.  If the value of SwitchType is `MultiProtocol`, this property shall be required."/>
        </Property>
        <Property Name="UUID" Type="Resource.UUID">
          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
          <Annotation Term="OData.Description" String="The UUID for this switch."/>
          <Annotation Term="OData.LongDescription" String="This property shall contain a universal unique identifier number for the switch."/>
        </Property>
      </EntityType>

      <ComplexType Name="Links" BaseType="Switch.v1_0_0.Links">
        <NavigationProperty Name="Endpoints" Type="Collection(Endpoint.Endpoint)">
          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
          <Annotation Term="OData.Description" String="An array of links to the endpoints that connect to this switch."/>
          <Annotation Term="OData.LongDescription" String="This property shall contain an array of links to resources of type Endpoint with which this switch is associated."/>
          <Annotation Term="OData.AutoExpandReferences"/>
        </NavigationProperty>
      </ComplexType>
    </Schema>

    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="Switch.v1_3_1">
      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
      <Annotation Term="OData.Description" String="This version was created to correct various typographical errors."/>
      <EntityType Name="Switch" BaseType="Switch.v1_3_0.Switch"/>
    </Schema>

    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="Switch.v1_3_2">
      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
      <Annotation Term="OData.Description" String="This version was created to correct various typographical errors."/>
      <EntityType Name="Switch" BaseType="Switch.v1_3_1.Switch"/>
    </Schema>

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

    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="Switch.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 LocationIndicatorActive, CurrentBandwidthGbps, and MaxBandwidthGbps.  It was also created to deprecate IndicatorLED properties."/>

      <EntityType Name="Switch" BaseType="Switch.v1_3_1.Switch">
        <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>
        <Property Name="CurrentBandwidthGbps" Type="Edm.Decimal">
          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
          <Annotation Term="OData.Description" String="The current internal bandwidth of this switch."/>
          <Annotation Term="OData.LongDescription" String="This property shall contain the internal bandwidth of this switch currently negotiated and running."/>
          <Annotation Term="Measures.Unit" String="Gbit/s"/>
        </Property>
        <Property Name="MaxBandwidthGbps" Type="Edm.Decimal">
          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
          <Annotation Term="OData.Description" String="The maximum internal bandwidth of this switch as currently configured."/>
          <Annotation Term="OData.LongDescription" String="This property shall contain the maximum internal bandwidth this switch is capable of being configured.  If capable of autonegotiation, the switch shall attempt to negotiate to the specified maximum bandwidth."/>
          <Annotation Term="Measures.Unit" String="Gbit/s"/>
        </Property>
      </EntityType>

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

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

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

    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="Switch.v1_5_0">
      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
      <Annotation Term="Redfish.Release" String="2020.4"/>
      <Annotation Term="OData.Description" String="This version was created to add Certificates and Measurements to devices for attestation and identity management."/>

      <EntityType Name="Switch" BaseType="Switch.v1_4_1.Switch">
        <NavigationProperty Name="Certificates" Type="CertificateCollection.CertificateCollection" ContainsTarget="true" Nullable="false">
          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
          <Annotation Term="OData.Description" String="The link to a collection of certificates for device identity and attestation."/>
          <Annotation Term="OData.LongDescription" String="This property shall contain a link to a resource collection of type CertificateCollection that contains certificates for device identity and attestation."/>
          <Annotation Term="OData.AutoExpandReferences"/>
        </NavigationProperty>
        <Property Name="Measurements" Type="Collection(SoftwareInventory.MeasurementBlock)" Nullable="false">
          <Annotation Term="OData.Description" String="An array of DSP0274-defined measurement blocks."/>
          <Annotation Term="OData.LongDescription" String="This property shall contain an array of DSP0274-defined measurement blocks."/>
          <Annotation Term="Redfish.Revisions">
            <Collection>
              <Record>
                <PropertyValue Property="Kind" EnumMember="Redfish.RevisionKind/Deprecated"/>
                <PropertyValue Property="Version" String="v1_8_0"/>
                <PropertyValue Property="Description" String="This property has been deprecated in favor of the ComponentIntegrity resource."/>
              </Record>
            </Collection>
          </Annotation>
        </Property>
      </EntityType>
    </Schema>

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

    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="Switch.v1_5_2">
      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
      <Annotation Term="OData.Description" String="This version was created to correct version tags within the schema file."/>
      <EntityType Name="Switch" BaseType="Switch.v1_5_1.Switch"/>
    </Schema>

    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="Switch.v1_6_0">
      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
      <Annotation Term="Redfish.Release" String="2021.1"/>
      <Annotation Term="OData.Description" String="This version was created to add the Enabled property and a link to EnvironmentMetrics."/>

      <EntityType Name="Switch" BaseType="Switch.v1_5_0.Switch">
        <Property Name="Enabled" Type="Edm.Boolean" Nullable="false">
          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/ReadWrite"/>
          <Annotation Term="OData.Description" String="An indication of whether this switch is enabled."/>
          <Annotation Term="OData.LongDescription" String="The value of this property shall indicate if this switch is enabled."/>
        </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 switch."/>
          <Annotation Term="OData.LongDescription" String="This property shall contain a link to a resource of type EnvironmentMetrics that specifies the environment metrics for this switch."/>
          <Annotation Term="OData.AutoExpandReferences"/>
        </NavigationProperty>
      </EntityType>
    </Schema>

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

      <EntityType Name="Switch" BaseType="Switch.v1_6_0.Switch">
        <NavigationProperty Name="Metrics" Type="SwitchMetrics.SwitchMetrics" Nullable="false">
          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
          <Annotation Term="OData.Description" String="The link to the metrics associated with this switch."/>
          <Annotation Term="OData.LongDescription" String="This property shall contain a link to the metrics associated with this switch."/>
          <Annotation Term="OData.AutoExpandReferences"/>
        </NavigationProperty>
      </EntityType>
    </Schema>

    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="Switch.v1_8_0">
      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
      <Annotation Term="Redfish.Release" String="2021.4"/>
      <Annotation Term="OData.Description" String="This version was created to deprecate Measurements in favor of measurement reporting in the ComponentIntegrity resource."/>

      <EntityType Name="Switch" BaseType="Switch.v1_7_0.Switch"/>
    </Schema>

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

      <EntityType Name="Switch" BaseType="Switch.v1_8_0.Switch">
        <Property Name="CXL" Type="Switch.v1_9_0.CXL" Nullable="false">
          <Annotation Term="OData.Description" String="CXL properties for this switch."/>
          <Annotation Term="OData.LongDescription" String="This property shall contain CXL-specific properties for this switch."/>
        </Property>
      </EntityType>

      <ComplexType Name="CXL">
        <Annotation Term="OData.Description" String="CXL properties for a switch."/>
        <Annotation Term="OData.LongDescription" String="This type shall contain CXL-specific properties for a switch."/>
        <Property Name="MaxVCSsSupported" Type="Edm.Int64" Nullable="false">
          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
          <Annotation Term="OData.Description" String="The maximum number of Virtual CXL Switches (VCSs) supported in this switch."/>
          <Annotation Term="OData.LongDescription" String="This property shall contain the maximum number of Virtual CXL Switches (VCSs) supported in this switch."/>
        </Property>
        <Property Name="TotalNumbervPPBs" Type="Edm.Int64" Nullable="false">
          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
          <Annotation Term="OData.Description" String="The total number of virtual PCI-to-PCI bridges (vPPBs) supported in this switch."/>
          <Annotation Term="OData.LongDescription" String="This property shall contain the total number of virtual PCI-to-PCI bridges (vPPBs) supported in this switch."/>
        </Property>
        <Property Name="VCS" Type="Switch.v1_9_0.VCSSwitch" Nullable="false">
          <Annotation Term="OData.Description" String="Virtual CXL Switch (VCS) properties for this switch."/>
          <Annotation Term="OData.LongDescription" String="This property shall contain Virtual CXL Switch (VCS) properties for this switch."/>
        </Property>
      </ComplexType> 

      <ComplexType Name="VCSSwitch">
        <Annotation Term="OData.Description" String="Virtual CXL Switch (VCS) properties for a switch."/>
        <Annotation Term="OData.LongDescription" String="This type shall contain Virtual CXL Switch (VCS) properties for a switch."/>
        <Property Name="HDMDecoders" Type="Edm.Int64" Nullable="false">
          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
          <Annotation Term="OData.Description" String="The number of Host Device Memory (HDM) Decoders supported by this switch."/>
          <Annotation Term="OData.LongDescription" String="This property shall contain the number of Host Device Memory (HDM) Decoders supported by this switch."/>
        </Property>
      </ComplexType>
    </Schema>

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