1<?xml version="1.0" encoding="UTF-8"?>
2<!---->
3<!--################################################################################       -->
4<!--# Redfish Schema:  OutboundConnection v1.0.2                                           -->
5<!--#                                                                                      -->
6<!--# For a detailed change log, see the README file contained in the DSP8010 bundle,      -->
7<!--# available at http://www.dmtf.org/standards/redfish                                   -->
8<!--# Copyright 2014-2024 DMTF.                                                            -->
9<!--# For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright -->
10<!--################################################################################       -->
11<!---->
12<edmx:Edmx xmlns:edmx="http://docs.oasis-open.org/odata/ns/edmx" Version="4.0">
13  <edmx:Reference Uri="http://docs.oasis-open.org/odata/odata/v4.0/errata03/csd01/complete/vocabularies/Org.OData.Core.V1.xml">
14    <edmx:Include Namespace="Org.OData.Core.V1" Alias="OData"/>
15  </edmx:Reference>
16  <edmx:Reference Uri="http://docs.oasis-open.org/odata/odata/v4.0/errata03/csd01/complete/vocabularies/Org.OData.Capabilities.V1.xml">
17    <edmx:Include Namespace="Org.OData.Capabilities.V1" Alias="Capabilities"/>
18  </edmx:Reference>
19  <edmx:Reference Uri="http://redfish.dmtf.org/schemas/v1/RedfishExtensions_v1.xml">
20    <edmx:Include Namespace="RedfishExtensions.v1_0_0" Alias="Redfish"/>
21    <edmx:Include Namespace="Validation.v1_0_0" Alias="Validation"/>
22  </edmx:Reference>
23  <edmx:Reference Uri="http://redfish.dmtf.org/schemas/v1/Resource_v1.xml">
24    <edmx:Include Namespace="Resource"/>
25    <edmx:Include Namespace="Resource.v1_0_0"/>
26  </edmx:Reference>
27  <edmx:Reference Uri="http://redfish.dmtf.org/schemas/v1/CertificateCollection_v1.xml">
28    <edmx:Include Namespace="CertificateCollection"/>
29  </edmx:Reference>
30  <edmx:Reference Uri="http://redfish.dmtf.org/schemas/v1/Session_v1.xml">
31    <edmx:Include Namespace="Session"/>
32  </edmx:Reference>
33
34  <edmx:DataServices>
35
36    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="OutboundConnection">
37      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
38      <Annotation Term="Redfish.Language" String="en"/>
39
40      <EntityType Name="OutboundConnection" BaseType="Resource.v1_0_0.Resource" Abstract="true">
41        <Annotation Term="OData.Description" String="The `OutboundConnection` schema defines how the Redfish service connects to a remote client over a WebSocket connection.  This allows a service behind a firewall to establish a connection to a remote client outside of the firewall."/>
42        <Annotation Term="OData.LongDescription" String="This resource shall represent the connection configuration necessary to connect to a remote client.  Services shall initiate the outbound connection over a WebSocket defined in the 'Outbound connections' clause of the Redfish Specification."/>
43        <Annotation Term="Capabilities.InsertRestrictions">
44          <Record>
45            <PropertyValue Property="Insertable" Bool="false"/>
46          </Record>
47        </Annotation>
48        <Annotation Term="Capabilities.UpdateRestrictions">
49          <Record>
50            <PropertyValue Property="Updatable" Bool="true"/>
51          </Record>
52        </Annotation>
53        <Annotation Term="Capabilities.DeleteRestrictions">
54          <Record>
55            <PropertyValue Property="Deletable" Bool="true"/>
56          </Record>
57        </Annotation>
58        <Annotation Term="Redfish.Uris">
59          <Collection>
60            <String>/redfish/v1/AccountService/OutboundConnections/{OutboundConnectionId}</String>
61          </Collection>
62        </Annotation>
63      </EntityType>
64    </Schema>
65
66    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="OutboundConnection.v1_0_0">
67      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
68      <Annotation Term="Redfish.Release" String="2023.2"/>
69
70      <EntityType Name="OutboundConnection" BaseType="OutboundConnection.OutboundConnection">
71        <Property Name="Status" Type="Resource.Status" Nullable="false">
72          <Annotation Term="OData.Description" String="The status and health of the resource and its subordinate or dependent resources."/>
73          <Annotation Term="OData.LongDescription" String="This property shall contain any status or health properties of the resource."/>
74        </Property>
75        <Property Name="Actions" Type="OutboundConnection.v1_0_0.Actions" Nullable="false">
76          <Annotation Term="OData.Description" String="The available actions for this resource."/>
77          <Annotation Term="OData.LongDescription" String="This property shall contain the available actions for this resource."/>
78        </Property>
79        <Property Name="Authentication" Type="OutboundConnection.v1_0_0.AuthenticationType">
80          <Annotation Term="Redfish.RequiredOnCreate"/>
81          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
82          <Annotation Term="OData.Description" String="The authentication mechanism for the WebSocket connection."/>
83          <Annotation Term="OData.LongDescription" String="This property shall contain the authentication mechanism for the WebSocket connection."/>
84        </Property>
85        <NavigationProperty Name="Certificates" Type="CertificateCollection.CertificateCollection" ContainsTarget="true" Nullable="false">
86          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
87          <Annotation Term="OData.Description" String="The link to a collection of server certificates for the remote client referenced by the `EndpointURI` property."/>
88          <Annotation Term="OData.LongDescription" String="This property shall contain a link to a resource collection of type `CertificateCollection` that represents the server certificates for the remote client referenced by the `EndpointURI` property.  If the `Authentication` property contains `MTLS`, the service shall compare the certificates in this collection with the certificate obtained during handshaking with the WebSocket service to verify the identity of the remote client prior to completing the connection.  If the remote client cannot be verified, the service shall not complete the connection.  Regardless of the contents of this collection, services may perform additional verification based on other factors, such as the configuration of the `SecurityPolicy` resource."/>
89          <Annotation Term="OData.AutoExpandReferences"/>
90        </NavigationProperty>
91        <NavigationProperty Name="ClientCertificates" Type="CertificateCollection.CertificateCollection" ContainsTarget="true" Nullable="false">
92          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
93          <Annotation Term="OData.Description" String="The link to a collection of client identity certificates provided to the remote client referenced by the `EndpointURI` property."/>
94          <Annotation Term="OData.LongDescription" String="This property shall contain a link to a resource collection of type `CertificateCollection` that represents the client identity certificates for the service.  If the `Authentication` property contains `MTLS`, these certificates are provided to the remote client referenced by the `EndpointURI` property as part of TLS handshaking."/>
95          <Annotation Term="OData.AutoExpandReferences"/>
96        </NavigationProperty>
97        <Property Name="ConnectionEnabled" Type="Edm.Boolean">
98          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/ReadWrite"/>
99          <Annotation Term="OData.Description" String="Indicates if the outbound connection is enabled."/>
100          <Annotation Term="OData.LongDescription" String="This property shall indicate if the outbound connection is enabled.  If `true`, the service shall attempt to establish an outbound connection to the remote client specified by the `EndpointURI` property.  If `false`, the service shall not attempt to establish a connection to the remote client and shall close the connection if one is already established.  When a connection is established, the service shall create a Session resource to represent the active connection.  When a connection is closed, the service shall delete the connection's respective Session resource.  If the client does not provide this property, the service shall default this value to `true`."/>
101        </Property>
102        <Property Name="EndpointURI" Type="Edm.String" Nullable="false">
103          <Annotation Term="Redfish.RequiredOnCreate"/>
104          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
105          <Annotation Term="OData.Description" String="The URI of the WebSocket connection to the remote client."/>
106          <Annotation Term="OData.LongDescription" String="This property shall contain the WebSocket URI to the external web service of the remote client.  The value shall follow the URI format defined in RFC6455.  Services shall reject URIs that do not contain the scheme `wss`."/>
107          <Annotation Term="OData.IsURL"/>
108        </Property>
109        <Property Name="Links" Type="OutboundConnection.v1_0_0.Links" Nullable="false">
110          <Annotation Term="OData.Description" String="The links to other resources that are related to this resource."/>
111          <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."/>
112        </Property>
113        <Property Name="PreUpgradeHTTPHeaders" Type="OutboundConnection.v1_0_0.HTTPHeaderProperty" Nullable="false">
114          <Annotation Term="OData.Description" String="The HTTP headers to send to the remote client during the initial connection prior to the WebSocket upgrade.  This property is an empty object in responses."/>
115          <Annotation Term="OData.LongDescription" String="This property shall contain an object consisting of the names and values of HTTP headers to send to the remote client during the initial connection prior to the WebSocket upgrade.  This property shall be an empty object in responses."/>
116        </Property>
117        <Property Name="RetryPolicy" Type="OutboundConnection.v1_0_0.RetryPolicyType" Nullable="false">
118          <Annotation Term="OData.Description" String="The retry policy for this outbound connection."/>
119          <Annotation Term="OData.LongDescription" String="This property shall contain the retry policy for this outbound connection.  If not specified by the client in the create request, the service shall assume ConnectionRetryPolicy contains `None`."/>
120        </Property>
121        <Property Name="Roles" Type="Collection(Edm.String)">
122          <Annotation Term="Redfish.RequiredOnCreate"/>
123          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
124          <Annotation Term="OData.Description" String="The Redfish roles that contain the privileges of the remote client for the outbound connection."/>
125          <Annotation Term="OData.LongDescription" String="This property shall contain the Redfish roles that contain the privileges of the remote client for the outbound connection."/>
126        </Property>
127        <Property Name="WebSocketPingIntervalMinutes" Type="Edm.Int64">
128          <Annotation Term="Redfish.RequiredOnCreate"/>
129          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/ReadWrite"/>
130          <Annotation Term="OData.Description" String="Interval for sending the WebSocket ping opcode in minutes.  The value `0` indicates the ping opcode is not sent."/>
131          <Annotation Term="OData.LongDescription" String="This property shall contain the interval for the service to send the WebSocket ping opcode to the remote client in minutes.  If `0`, the service shall not send the WebSocket ping opcode to the remote client."/>
132          <Annotation Term="Validation.Minimum" Int="0"/>
133          <Annotation Term="Validation.Maximum" Int="65535"/>
134        </Property>
135      </EntityType>
136
137      <EnumType Name="OutboundConnectionRetryPolicyType">
138        <Member Name="None">
139          <Annotation Term="OData.Description" String="No retries."/>
140          <Annotation Term="OData.LongDescription" String="This value shall indicate the service will not attempt to re-establish the outbound connection if the connection is dropped or not established.  If the connection is dropped or not established, the service shall set the `ConnectionEnabled` property to `false`."/>
141        </Member>
142        <Member Name="RetryForever">
143          <Annotation Term="OData.Description" String="Retry forever."/>
144          <Annotation Term="OData.LongDescription" String="This value shall indicate the service will attempt to re-establish the outbound connection at the interval specified by the `RetryIntervalMinutes` property regardless of the number of retries."/>
145        </Member>
146        <Member Name="RetryCount">
147          <Annotation Term="OData.Description" String="Retry until a maximum count is reached."/>
148          <Annotation Term="OData.LongDescription" String="This value shall indicate the service will attempt to re-establish the outbound connection at the interval specified by the `RetryIntervalMinutes` property until the number of retries reaches the count specified by the `RetryCount` property.  If the limit is reached, the service shall set the `ConnectionEnabled` property to `false`.  If a connection is established, the service shall reset the count."/>
149        </Member>
150      </EnumType>
151
152      <EnumType Name="AuthenticationType">
153        <Member Name="MTLS">
154          <Annotation Term="OData.Description" String="Mutual TLS."/>
155          <Annotation Term="OData.LongDescription" String="This value shall indicate the service will exchange and verify certificates during TLS handshaking when establishing the outbound connecting."/>
156        </Member>
157        <Member Name="JWT">
158          <Annotation Term="OData.Description" String="JSON Web Token."/>
159          <Annotation Term="OData.LongDescription" String="This value shall indicate an RFC7519-defined JSON Web Token (JWT) is specified in one of the HTTP headers in the `PreUpgradeHTTPHeaders` property.  This is typically encoded in the `Authorization` header with the scheme `Bearer`."/>
160        </Member>
161        <Member Name="None">
162          <Annotation Term="OData.Description" String="No authentication."/>
163          <Annotation Term="OData.LongDescription" String="This value shall indicate the service does not provide any authentication information to the remote client."/>
164        </Member>
165        <Member Name="OEM">
166          <Annotation Term="OData.Description" String="OEM-specific."/>
167          <Annotation Term="OData.LongDescription" String="This value shall indicate an OEM-specific authentication mechanism."/>
168        </Member>
169      </EnumType>
170
171      <ComplexType Name="HTTPHeaderProperty">
172        <Annotation Term="OData.AdditionalProperties" Bool="false"/>
173        <Annotation Term="OData.Description" String="The HTTP header value is the property value.  The header name is the property name."/>
174        <Annotation Term="OData.LongDescription" String="This type shall contain the HTTP header name and value to add to the Redfish responses over the WebSocket."/>
175        <Annotation Term="Redfish.DynamicPropertyPatterns">
176          <Collection>
177            <Record>
178              <PropertyValue Property="Pattern" String="^[^:\\s]+$"/>
179              <PropertyValue Property="Type" String="Edm.String"/>
180            </Record>
181          </Collection>
182        </Annotation>
183      </ComplexType>
184
185      <ComplexType Name="RetryPolicyType">
186        <Annotation Term="OData.AdditionalProperties" Bool="false"/>
187        <Annotation Term="OData.Description" String="The retry policy for an outbound connection."/>
188        <Annotation Term="OData.LongDescription" String="This type shall contain the retry policy for an outbound connection."/>
189        <Property Name="ConnectionRetryPolicy" Type="OutboundConnection.v1_0_0.OutboundConnectionRetryPolicyType">
190          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
191          <Annotation Term="OData.Description" String="The type of retry policy for this outbound connection."/>
192          <Annotation Term="OData.LongDescription" String="This property shall contain the type of retry policy for this outbound connection."/>
193        </Property>
194        <Property Name="RetryIntervalMinutes" Type="Edm.Int64">
195          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/ReadWrite"/>
196          <Annotation Term="OData.Description" String="The retry interval in minutes."/>
197          <Annotation Term="OData.LongDescription" String="This property shall contain the interval for the service to retry connecting to remote client in minutes."/>
198        </Property>
199        <Property Name="RetryCount" Type="Edm.Int64">
200          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/ReadWrite"/>
201          <Annotation Term="OData.Description" String="The number of retries to attempt if the retry policy specifies a maximum number of retries."/>
202          <Annotation Term="OData.LongDescription" String="This property shall contain the number of retries to attempt if the retry policy specifies a maximum number of retries."/>
203        </Property>
204      </ComplexType>
205
206      <ComplexType Name="Actions">
207        <Annotation Term="OData.AdditionalProperties" Bool="false"/>
208        <Annotation Term="OData.Description" String="The available actions for this resource."/>
209        <Annotation Term="OData.LongDescription" String="This type shall contain the available actions for this resource."/>
210        <Property Name="Oem" Type="OutboundConnection.v1_0_0.OemActions" Nullable="false">
211          <Annotation Term="OData.Description" String="The available OEM-specific actions for this resource."/>
212          <Annotation Term="OData.LongDescription" String="This property shall contain the available OEM-specific actions for this resource."/>
213        </Property>
214      </ComplexType>
215
216      <ComplexType Name="OemActions">
217        <Annotation Term="OData.AdditionalProperties" Bool="true"/>
218        <Annotation Term="OData.Description" String="The available OEM-specific actions for this resource."/>
219        <Annotation Term="OData.LongDescription" String="This type shall contain the available OEM-specific actions for this resource."/>
220      </ComplexType>
221
222      <ComplexType Name="Links" BaseType="Resource.Links">
223        <Annotation Term="OData.Description" String="The links to other resources that are related to this resource."/>
224        <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."/>
225        <NavigationProperty Name="Session" Type="Session.Session">
226          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
227          <Annotation Term="OData.Description" String="The link to the session for this outbound connection."/>
228          <Annotation Term="OData.LongDescription" String="This property shall contain the link to a resource of type `Session` that represents the active connection for this outbound connection."/>
229          <Annotation Term="OData.AutoExpandReferences"/>
230        </NavigationProperty>
231      </ComplexType>
232    </Schema>
233
234    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="OutboundConnection.v1_0_1">
235      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
236      <Annotation Term="OData.Description" String="This version was created to correct various typographical errors."/>
237      <EntityType Name="OutboundConnection" BaseType="OutboundConnection.v1_0_0.OutboundConnection"/>
238    </Schema>
239
240    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="OutboundConnection.v1_0_2">
241      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
242      <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."/>
243      <EntityType Name="OutboundConnection" BaseType="OutboundConnection.v1_0_1.OutboundConnection"/>
244    </Schema>
245
246  </edmx:DataServices>
247</edmx:Edmx>
248