<?xml version="1.0" encoding="UTF-8"?>
<!---->
<!--################################################################################       -->
<!--# Redfish Schema:  ConnectionMethod v1.3.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-2026 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:Reference>
  <edmx:Reference Uri="http://redfish.dmtf.org/schemas/v1/AggregationSource_v1.xml">
    <edmx:Include Namespace="AggregationSource"/>
  </edmx:Reference>
  <edmx:Reference Uri="http://redfish.dmtf.org/schemas/v1/SerialInterface_v1.xml">
    <edmx:Include Namespace="SerialInterface"/>
  </edmx:Reference>

  <edmx:DataServices>

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

      <EntityType Name="ConnectionMethod" BaseType="Resource.v1_0_0.Resource" Abstract="true">
        <Annotation Term="OData.Description" String="The `ConnectionMethod` schema describes the protocol, provider, or other method used to communicate to a given access point for a Redfish aggregation service."/>
        <Annotation Term="OData.LongDescription" String="This resource shall represent a connection method 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="false"/>
          </Record>
        </Annotation>
        <Annotation Term="Capabilities.DeleteRestrictions">
          <Record>
            <PropertyValue Property="Deletable" Bool="false"/>
          </Record>
        </Annotation>
        <Annotation Term="Redfish.Uris">
          <Collection>
            <String>/redfish/v1/AggregationService/ConnectionMethods/{ConnectionMethodId}</String>
          </Collection>
        </Annotation>
      </EntityType>

    </Schema>

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

      <EntityType Name="ConnectionMethod" BaseType="ConnectionMethod.ConnectionMethod">
        <Property Name="ConnectionMethodType" Type="ConnectionMethod.v1_0_0.ConnectionMethodType">
          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
          <Annotation Term="OData.Description" String="The type of connection method."/>
          <Annotation Term="OData.LongDescription" String="This property shall contain an identifier of the connection method."/>
        </Property>
        <Property Name="ConnectionMethodVariant" Type="Edm.String">
          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
          <Annotation Term="OData.Description" String="The variant of connection method."/>
          <Annotation Term="OData.LongDescription" String="This property shall contain an additional identifier of the connection method.  This property shall be present if `ConnectionMethodType` is `OEM`."/>
        </Property>
        <Property Name="Links" Type="ConnectionMethod.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>
        <Property Name="Actions" Type="ConnectionMethod.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="AggregationSources" Type="Collection(AggregationSource.AggregationSource)">
          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
          <Annotation Term="OData.Description" String="An array of links to the access points using this connection method."/>
          <Annotation Term="OData.LongDescription" String="This property shall contain an array of links to resources of type `AggregationSource` that are using this connection method."/>
          <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="ConnectionMethod.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>

      <EnumType Name="ConnectionMethodType">
        <Member Name="Redfish">
          <Annotation Term="OData.Description" String="Redfish connection method."/>
          <Annotation Term="OData.LongDescription" String="This value shall indicate the connection method is Redfish."/>
        </Member>
        <Member Name="SNMP">
          <Annotation Term="OData.Description" String="SNMP connection method."/>
          <Annotation Term="OData.LongDescription" String="This value shall indicate the connection method is SNMP."/>
          <Annotation Term="Redfish.Revisions">
            <Collection>
              <Record>
                <PropertyValue Property="Kind" EnumMember="Redfish.RevisionKind/Deprecated"/>
                <PropertyValue Property="Version" String="v1_3_0"/>
                <PropertyValue Property="Description" String="This value has been deprecated in favor of `SNMPv1`, `SNMPv2c`, and `SNMPv3` to provide the specific SNMP protocol version used by this connection method."/>
              </Record>
            </Collection>
          </Annotation>
        </Member>
        <Member Name="SNMPv1">
          <Annotation Term="OData.Description" String="SNMPv1 connection method."/>
          <Annotation Term="OData.LongDescription" String="This value shall indicate the connection method is SNMPv1."/>
          <Annotation Term="Redfish.Revisions">
            <Collection>
              <Record>
                <PropertyValue Property="Kind" EnumMember="Redfish.RevisionKind/Added"/>
                <PropertyValue Property="Version" String="v1_3_0"/>
              </Record>
            </Collection>
          </Annotation>
        </Member>
        <Member Name="SNMPv2c">
          <Annotation Term="OData.Description" String="SNMPv2c connection method."/>
          <Annotation Term="OData.LongDescription" String="This value shall indicate the connection method is SNMPv2c."/>
          <Annotation Term="Redfish.Revisions">
            <Collection>
              <Record>
                <PropertyValue Property="Kind" EnumMember="Redfish.RevisionKind/Added"/>
                <PropertyValue Property="Version" String="v1_3_0"/>
              </Record>
            </Collection>
          </Annotation>
        </Member>
        <Member Name="SNMPv3">
          <Annotation Term="OData.Description" String="SNMPv3 connection method."/>
          <Annotation Term="OData.LongDescription" String="This value shall indicate the connection method is SNMPv3."/>
          <Annotation Term="Redfish.Revisions">
            <Collection>
              <Record>
                <PropertyValue Property="Kind" EnumMember="Redfish.RevisionKind/Added"/>
                <PropertyValue Property="Version" String="v1_3_0"/>
              </Record>
            </Collection>
          </Annotation>
        </Member>
        <Member Name="IPMI15">
          <Annotation Term="OData.Description" String="IPMI 1.5 connection method."/>
          <Annotation Term="OData.LongDescription" String="This value shall indicate the connection method is IPMI 1.5."/>
        </Member>
        <Member Name="IPMI20">
          <Annotation Term="OData.Description" String="IPMI 2.0 connection method."/>
          <Annotation Term="OData.LongDescription" String="This value shall indicate the connection method is IPMI 2.0."/>
        </Member>
        <Member Name="NETCONF">
          <Annotation Term="OData.Description" String="NETCONF connection method."/>
          <Annotation Term="OData.LongDescription" String="This value shall indicate the connection method is NETCONF."/>
        </Member>
        <Member Name="OEM">
          <Annotation Term="OData.Description" String="OEM connection method."/>
          <Annotation Term="OData.LongDescription" String="This value shall indicate the connection method is OEM.  The `ConnectionMethodVariant` property shall contain further identification information."/>
        </Member>
        <Member Name="ModbusSerial">
          <Annotation Term="OData.Description" String="Modbus serial connection method."/>
          <Annotation Term="OData.LongDescription" String="This value shall indicate the connection method is Modbus serial (RTU)."/>
          <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="ModbusTCP">
          <Annotation Term="OData.Description" String="Modbus TCP connection method."/>
          <Annotation Term="OData.LongDescription" String="This value shall indicate the connection method is Modbus TCP."/>
          <Annotation Term="Redfish.Revisions">
            <Collection>
              <Record>
                <PropertyValue Property="Kind" EnumMember="Redfish.RevisionKind/Added"/>
                <PropertyValue Property="Version" String="v1_2_0"/>
              </Record>
            </Collection>
          </Annotation>
        </Member>
      </EnumType>
    </Schema>

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

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

      <EntityType Name="ConnectionMethod" BaseType="ConnectionMethod.v1_0_0.ConnectionMethod">
        <Property Name="TunnelingProtocol" Type="ConnectionMethod.v1_1_0.TunnelingProtocolType">
          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
          <Annotation Term="OData.Description" String="The tunneling protocol used for this connection method."/>
          <Annotation Term="OData.LongDescription" String="This property shall contain the tunneling protocol used for this connection method."/>
        </Property>
      </EntityType>

      <EnumType Name="TunnelingProtocolType">
        <Member Name="SSH">
          <Annotation Term="OData.Description" String="SSH tunneling."/>
          <Annotation Term="OData.LongDescription" String="This value shall indicate that the tunneling protocol is SSH."/>
        </Member>
        <Member Name="OEM">
          <Annotation Term="OData.Description" String="OEM tunneling."/>
          <Annotation Term="OData.LongDescription" String="This value shall indicate that the tunneling protocol is OEM-specific."/>
        </Member>
      </EnumType>
    </Schema>

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

    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="ConnectionMethod.v1_2_0">
      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
      <Annotation Term="Redfish.Release" String="2025.2"/>
      <Annotation Term="OData.Description" String="This version was created to add `ModbusSerial` and `ModbusTCP` to `ConnectionMethodType`."/>

      <EntityType Name="ConnectionMethod" BaseType="ConnectionMethod.v1_1_1.ConnectionMethod"/>

      <ComplexType Name="Links" BaseType="ConnectionMethod.v1_0_0.Links">
        <NavigationProperty Name="SerialInterface" Type="SerialInterface.SerialInterface" Nullable="false">
          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
          <Annotation Term="OData.Description" String="The link to the serial interface for this connection method."/>
          <Annotation Term="OData.LongDescription" String="This property shall contain a link to a resource of type `SerialInterface` that represents the serial interface for this connection method."/>
          <Annotation Term="OData.AutoExpandReferences"/>
        </NavigationProperty>
      </ComplexType>
    </Schema>

    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="ConnectionMethod.v1_3_0">
      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
      <Annotation Term="Redfish.Release" String="2026.1"/>
      <Annotation Term="OData.Description" String="This version was created to deprecate `SNMP` and add `SNMPv1`, `SNMPv2c` and `SNMPv3` to `ConnectionMethodType`."/>

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

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