1<?xml version="1.0" encoding="UTF-8"?>
2<!---->
3<!--################################################################################       -->
4<!--# Redfish Schema:  CompositionService v1.2.3                                           -->
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
14  <edmx:Reference Uri="http://docs.oasis-open.org/odata/odata/v4.0/errata03/csd01/complete/vocabularies/Org.OData.Core.V1.xml">
15    <edmx:Include Namespace="Org.OData.Core.V1" Alias="OData"/>
16  </edmx:Reference>
17  <edmx:Reference Uri="http://docs.oasis-open.org/odata/odata/v4.0/errata03/csd01/complete/vocabularies/Org.OData.Capabilities.V1.xml">
18    <edmx:Include Namespace="Org.OData.Capabilities.V1" Alias="Capabilities"/>
19  </edmx:Reference>
20  <edmx:Reference Uri="http://redfish.dmtf.org/schemas/v1/RedfishExtensions_v1.xml">
21    <edmx:Include Namespace="RedfishExtensions.v1_0_0" Alias="Redfish"/>
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/ResourceBlockCollection_v1.xml">
28    <edmx:Include Namespace="ResourceBlockCollection"/>
29  </edmx:Reference>
30  <edmx:Reference Uri="http://redfish.dmtf.org/schemas/v1/ZoneCollection_v1.xml">
31    <edmx:Include Namespace="ZoneCollection"/>
32  </edmx:Reference>
33  <edmx:Reference Uri="http://redfish.dmtf.org/schemas/v1/Manifest_v1.xml">
34    <edmx:Include Namespace="Manifest"/>
35  </edmx:Reference>
36  <edmx:Reference Uri="http://redfish.dmtf.org/schemas/v1/CompositionReservationCollection_v1.xml">
37    <edmx:Include Namespace="CompositionReservationCollection"/>
38  </edmx:Reference>
39
40  <edmx:DataServices>
41
42    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="CompositionService">
43      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
44      <Annotation Term="Redfish.Language" String="en"/>
45
46      <EntityType Name="CompositionService" BaseType="Resource.v1_0_0.Resource" Abstract="true">
47        <Annotation Term="OData.Description" String="The `CompositionService` schema describes a composition service and its properties and links to the resources available for composition."/>
48        <Annotation Term="OData.LongDescription" String="This resource shall represent the composition service and its properties for a Redfish implementation."/>
49        <Annotation Term="Capabilities.InsertRestrictions">
50          <Record>
51            <PropertyValue Property="Insertable" Bool="false"/>
52          </Record>
53        </Annotation>
54        <Annotation Term="Capabilities.UpdateRestrictions">
55          <Record>
56            <PropertyValue Property="Updatable" Bool="true"/>
57            <Annotation Term="OData.Description" String="Some properties, such as `ServiceEnabled`, can be updated for the composition service."/>
58          </Record>
59        </Annotation>
60        <Annotation Term="Capabilities.DeleteRestrictions">
61          <Record>
62            <PropertyValue Property="Deletable" Bool="false"/>
63          </Record>
64        </Annotation>
65        <Annotation Term="Redfish.Uris">
66          <Collection>
67            <String>/redfish/v1/CompositionService</String>
68          </Collection>
69        </Annotation>
70      </EntityType>
71
72      <Action Name="Compose" IsBound="true">
73        <Annotation Term="OData.Description" String="This action performs a set of operations specified by a manifest."/>
74        <Annotation Term="OData.LongDescription" String="This action shall perform a set of operations specified by a manifest.  Services shall not apply any part of the manifest unless all operations specified by the manifest are successful."/>
75        <Parameter Name="CompositionService" Type="CompositionService.v1_0_0.Actions"/>
76        <Parameter Name="RequestFormat" Type="CompositionService.v1_2_0.ComposeRequestFormat" Nullable="false">
77          <Annotation Term="OData.Description" String="The format of the request."/>
78          <Annotation Term="OData.LongDescription" String="This parameter shall contain the format of the request."/>
79        </Parameter>
80        <Parameter Name="RequestType" Type="CompositionService.v1_2_0.ComposeRequestType" Nullable="false">
81          <Annotation Term="OData.Description" String="The type of request."/>
82          <Annotation Term="OData.LongDescription" String="This parameter shall contain the type of request."/>
83        </Parameter>
84        <Parameter Name="Manifest" Type="Manifest.Manifest">
85          <Annotation Term="OData.Description" String="The manifest containing the compose operation request."/>
86          <Annotation Term="OData.LongDescription" String="This parameter shall contain the manifest containing the compose operation request.  This parameter shall be required if `RequestFormat` contains the value `Manifest`."/>
87        </Parameter>
88        <Parameter Name="ReservationId" Type="Edm.String">
89          <Annotation Term="OData.Description" String="The identifier of the composition reservation if applying a reservation.  The value for this parameter is obtained from the response of a `Compose` action where the RequestType parameter contains the value `PreviewReserve`."/>
90          <Annotation Term="OData.LongDescription" String="This parameter shall contain the value of the `Id` property of the `CompositionReservation` resource for applying a reservation."/>
91        </Parameter>
92        <ReturnType Type="CompositionService.v1_2_0.ComposeResponse" Nullable="false"/>
93        <Annotation Term="Redfish.Revisions">
94          <Collection>
95            <Record>
96              <PropertyValue Property="Kind" EnumMember="Redfish.RevisionKind/Added"/>
97              <PropertyValue Property="Version" String="v1_2_0"/>
98            </Record>
99          </Collection>
100        </Annotation>
101      </Action>
102    </Schema>
103
104    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="CompositionService.v1_0_0">
105      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
106      <Annotation Term="Redfish.Release" String="2017.1"/>
107
108      <EntityType Name="CompositionService" BaseType="CompositionService.CompositionService">
109        <Property Name="Status" Type="Resource.Status" Nullable="false">
110          <Annotation Term="OData.Description" String="The status and health of the resource and its subordinate or dependent resources."/>
111          <Annotation Term="OData.LongDescription" String="This property shall contain any status or health properties of the resource."/>
112        </Property>
113        <Property Name="ServiceEnabled" Type="Edm.Boolean">
114          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/ReadWrite"/>
115          <Annotation Term="OData.Description" String="An indication of whether this service is enabled."/>
116          <Annotation Term="OData.LongDescription" String="This property shall indicate whether this service is enabled."/>
117        </Property>
118        <Property Name="Actions" Type="CompositionService.v1_0_0.Actions" Nullable="false">
119          <Annotation Term="OData.Description" String="The available actions for this resource."/>
120          <Annotation Term="OData.LongDescription" String="This property shall contain the available actions for this resource."/>
121        </Property>
122        <NavigationProperty Name="ResourceBlocks" Type="ResourceBlockCollection.ResourceBlockCollection" ContainsTarget="true" Nullable="false">
123          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
124          <Annotation Term="OData.Description" String="The resource blocks available on the service."/>
125          <Annotation Term="OData.LongDescription" String="This property shall contain a link to a resource collection of type `ResourceBlockCollection`."/>
126          <Annotation Term="OData.AutoExpandReferences"/>
127        </NavigationProperty>
128        <NavigationProperty Name="ResourceZones" Type="ZoneCollection.ZoneCollection" ContainsTarget="true" Nullable="false">
129          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
130          <Annotation Term="OData.Description" String="The resource zones available on the service."/>
131          <Annotation Term="OData.LongDescription" String="This property shall contain a link to a resource collection of type `ZoneCollection`."/>
132          <Annotation Term="OData.AutoExpandReferences"/>
133        </NavigationProperty>
134      </EntityType>
135
136      <ComplexType Name="Actions">
137        <Annotation Term="OData.AdditionalProperties" Bool="false"/>
138        <Annotation Term="OData.Description" String="The available actions for this resource."/>
139        <Annotation Term="OData.LongDescription" String="This type shall contain the available actions for this resource."/>
140        <Property Name="Oem" Type="CompositionService.v1_0_0.OemActions" Nullable="false">
141          <Annotation Term="OData.Description" String="The available OEM-specific actions for this resource."/>
142          <Annotation Term="OData.LongDescription" String="This property shall contain the available OEM-specific actions for this resource."/>
143        </Property>
144      </ComplexType>
145
146      <ComplexType Name="OemActions">
147        <Annotation Term="OData.AdditionalProperties" Bool="true"/>
148        <Annotation Term="OData.Description" String="The available OEM-specific actions for this resource."/>
149        <Annotation Term="OData.LongDescription" String="This type shall contain the available OEM-specific actions for this resource."/>
150      </ComplexType>
151    </Schema>
152
153    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="CompositionService.v1_0_1">
154      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
155      <Annotation Term="OData.Description" String="This version was created to update the descriptions that this schema defines."/>
156      <EntityType Name="CompositionService" BaseType="CompositionService.v1_0_0.CompositionService"/>
157    </Schema>
158
159    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="CompositionService.v1_0_2">
160      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
161      <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."/>
162      <EntityType Name="CompositionService" BaseType="CompositionService.v1_0_1.CompositionService"/>
163    </Schema>
164
165    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="CompositionService.v1_0_3">
166      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
167      <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."/>
168      <EntityType Name="CompositionService" BaseType="CompositionService.v1_0_2.CompositionService"/>
169    </Schema>
170
171    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="CompositionService.v1_0_4">
172      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
173      <Annotation Term="OData.Description" String="This version was created to update descriptions that this schema defines."/>
174      <EntityType Name="CompositionService" BaseType="CompositionService.v1_0_3.CompositionService"/>
175    </Schema>
176
177    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="CompositionService.v1_0_5">
178      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
179      <Annotation Term="OData.Description" String="This version was created to correct various typographical errors."/>
180      <EntityType Name="CompositionService" BaseType="CompositionService.v1_0_4.CompositionService"/>
181    </Schema>
182
183    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="CompositionService.v1_0_6">
184      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
185      <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."/>
186      <EntityType Name="CompositionService" BaseType="CompositionService.v1_0_5.CompositionService"/>
187    </Schema>
188
189    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="CompositionService.v1_1_0">
190      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
191      <Annotation Term="Redfish.Release" String="2018.2"/>
192      <EntityType Name="CompositionService" BaseType="CompositionService.v1_0_2.CompositionService">
193        <Property Name="AllowOverprovisioning" Type="Edm.Boolean">
194          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/ReadWrite"/>
195          <Annotation Term="OData.Description" String="An indication of whether this service is allowed to overprovision a composition relative to the composition request."/>
196          <Annotation Term="OData.LongDescription" String="This property shall indicate whether this service is allowed to overprovision a composition relative to the composition request."/>
197        </Property>
198        <Property Name="AllowZoneAffinity" Type="Edm.Boolean">
199          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
200          <Annotation Term="OData.Description" String="An indication of whether a client can request that a specific resource zone fulfill a composition request."/>
201          <Annotation Term="OData.LongDescription" String="This property shall indicate whether a client can request that a specific resource zone fulfill a composition request."/>
202        </Property>
203      </EntityType>
204    </Schema>
205
206    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="CompositionService.v1_1_1">
207      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
208      <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."/>
209      <EntityType Name="CompositionService" BaseType="CompositionService.v1_1_0.CompositionService"/>
210    </Schema>
211
212    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="CompositionService.v1_1_2">
213      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
214      <Annotation Term="OData.Description" String="This version was created to update descriptions that this schema defines."/>
215      <EntityType Name="CompositionService" BaseType="CompositionService.v1_1_1.CompositionService"/>
216    </Schema>
217
218    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="CompositionService.v1_1_3">
219      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
220      <Annotation Term="OData.Description" String="This version was created to correct various typographical errors."/>
221      <EntityType Name="CompositionService" BaseType="CompositionService.v1_1_2.CompositionService"/>
222    </Schema>
223
224    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="CompositionService.v1_1_4">
225      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
226      <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."/>
227      <EntityType Name="CompositionService" BaseType="CompositionService.v1_1_3.CompositionService"/>
228    </Schema>
229
230    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="CompositionService.v1_2_0">
231      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
232      <Annotation Term="Redfish.Release" String="2021.1"/>
233      <Annotation Term="OData.Description" String="This version was created to add the `Compose` action."/>
234
235      <EntityType Name="CompositionService" BaseType="CompositionService.v1_1_3.CompositionService">
236        <NavigationProperty Name="ActivePool" Type="ResourceBlockCollection.ResourceBlockCollection" ContainsTarget="true" Nullable="false">
237          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
238          <Annotation Term="OData.Description" String="The link to the collection of resource blocks within the active pool.  Resource blocks in the active pool are contributing to at least one composed resource as a result of a composition request."/>
239          <Annotation Term="OData.LongDescription" String="This property shall contain a link to a resource collection of type `ResourceBlockCollection`.  The members of this collection shall represent the resource blocks in the active pool.  Services shall filter members of this collection based on the requesting client."/>
240        </NavigationProperty>
241        <NavigationProperty Name="FreePool" Type="ResourceBlockCollection.ResourceBlockCollection" ContainsTarget="true" Nullable="false">
242          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
243          <Annotation Term="OData.Description" String="The link to the collection of resource blocks within the free pool.  Resource blocks in the free pool are not contributing to any composed resources."/>
244          <Annotation Term="OData.LongDescription" String="This property shall contain a link to a resource collection of type `ResourceBlockCollection`.  The members of this collection shall represent the resource blocks in the free pool.  Services shall filter members of this collection based on the requesting client."/>
245        </NavigationProperty>
246        <NavigationProperty Name="CompositionReservations" Type="CompositionReservationCollection.CompositionReservationCollection" ContainsTarget="true" Nullable="false">
247          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
248          <Annotation Term="OData.Description" String="The link to the collection of reservations with the composition reservation collection."/>
249          <Annotation Term="OData.LongDescription" String="This property shall contain a link to a resource collection of type `CompositionReservationCollection`.  The members of this collection shall contain links to reserved resource blocks and the related document that caused the reservations.  Services shall filter members of this collection based on the requesting client."/>
250        </NavigationProperty>
251        <Property Name="ReservationDuration" Type="Edm.Duration">
252          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/ReadWrite"/>
253          <Annotation Term="OData.Description" String="The length of time a composition reservation is held before the service deletes the reservation and marks any related resource blocks as no longer reserved."/>
254          <Annotation Term="OData.LongDescription" String="This property shall contain the length of time a composition reservation is held before the service deletes the reservation and marks any related resource blocks as no longer reserved."/>
255        </Property>
256      </EntityType>
257
258      <ComplexType Name="ComposeResponse">
259        <Annotation Term="OData.AdditionalProperties" Bool="false"/>
260        <Annotation Term="OData.Description" String="The response body for the `Compose` action."/>
261        <Annotation Term="OData.LongDescription" String="This type shall contain the properties found in the response body for the `Compose` action."/>
262        <Property Name="RequestFormat" Type="CompositionService.v1_2_0.ComposeRequestFormat" Nullable="false">
263          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
264          <Annotation Term="OData.Description" String="The format of the request."/>
265          <Annotation Term="OData.LongDescription" String="This property shall contain the format of the request."/>
266          <Annotation Term="Redfish.Required"/>
267        </Property>
268        <Property Name="RequestType" Type="CompositionService.v1_2_0.ComposeRequestType" Nullable="false">
269          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
270          <Annotation Term="OData.Description" String="The type of request."/>
271          <Annotation Term="OData.LongDescription" String="This property shall contain the type of request."/>
272          <Annotation Term="Redfish.Required"/>
273        </Property>
274        <Property Name="Manifest" Type="Manifest.Manifest" Nullable="false">
275          <Annotation Term="OData.Description" String="The manifest containing the compose operation response."/>
276          <Annotation Term="OData.LongDescription" String="This property shall contain the manifest containing the compose operation response.  This property shall be required if `RequestFormat` contains the value `Manifest`."/>
277        </Property>
278        <Property Name="ReservationId" Type="Edm.String" Nullable="false">
279          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
280          <Annotation Term="OData.Description" String="The identifier of the composition reservation that was created."/>
281          <Annotation Term="OData.LongDescription" String="This property shall contain the value of the `Id` property of the `CompositionReservation` resource that was created.  This property shall be required if `RequestType` contains the value `PreviewReserve`."/>
282        </Property>
283      </ComplexType>
284
285      <EnumType Name="ComposeRequestType">
286        <Member Name="Preview">
287          <Annotation Term="OData.Description" String="Preview the outcome of the operations specified by the manifest."/>
288          <Annotation Term="OData.LongDescription" String="This value shall indicate that the request is to preview the outcome of the operations specified by the manifest to show what the service will do based on the contents of the request, and not affect any resources within the service."/>
289        </Member>
290        <Member Name="PreviewReserve">
291          <Annotation Term="OData.Description" String="Preview the outcome of the operations specified by the manifest and reserve resources."/>
292          <Annotation Term="OData.LongDescription" String="This value shall indicate that the request is to preview the outcome of the operations specified by the manifest to show what the service will do based on the contents of the request.  Resources that would have been affected by this request shall be marked as reserved but otherwise shall not be affected."/>
293        </Member>
294        <Member Name="Apply">
295          <Annotation Term="OData.Description" String="Perform the requested operations specified by the manifest and modify resources as needed."/>
296          <Annotation Term="OData.LongDescription" String="This value shall indicate that the request is to apply the requested operations specified by the manifest and modify resources as needed."/>
297        </Member>
298      </EnumType>
299
300      <EnumType Name="ComposeRequestFormat">
301        <Member Name="Manifest">
302          <Annotation Term="OData.Description" String="The request body contains a manifest."/>
303          <Annotation Term="OData.LongDescription" String="This value shall indicate that the request contains a manifest as defined by the Redfish `Manifest` schema."/>
304        </Member>
305      </EnumType>
306    </Schema>
307
308    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="CompositionService.v1_2_1">
309      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
310      <Annotation Term="OData.Description" String="This version was created to correct the regular expression pattern for duration properties in JSON Schema and OpenAPI to not allow for negative values."/>
311      <EntityType Name="CompositionService" BaseType="CompositionService.v1_2_0.CompositionService"/>
312    </Schema>
313
314    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="CompositionService.v1_2_2">
315      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
316      <Annotation Term="OData.Description" String="This version was created to correct various typographical errors."/>
317      <EntityType Name="CompositionService" BaseType="CompositionService.v1_2_1.CompositionService"/>
318    </Schema>
319
320    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="CompositionService.v1_2_3">
321      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
322      <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."/>
323      <EntityType Name="CompositionService" BaseType="CompositionService.v1_2_2.CompositionService"/>
324    </Schema>
325
326  </edmx:DataServices>
327</edmx:Edmx>
328