1 .. This work is licensed under a Creative Commons Attribution 4.0 International License.
2 .. http://creativecommons.org/licenses/by/4.0
8 OOF-HAS Create/Update API
9 #########################
11 +--------------------+-------------------------------------+
12 |Interface Definition|Description |
13 +====================+=====================================+
14 |URI |{serverRoot}/oof-osdf/v2/placement |
15 +--------------------+-------------------------------------+
16 |Operation Type |POST |
17 +--------------------+-------------------------------------+
18 |Content-Type |application/json |
19 +--------------------+-------------------------------------+
25 +----------------+-----------+-------------------------------------------------------------------------------------------+
26 | Header Name | Required | Description |
27 +================+===========+===========================================================================================+
28 | Accept | N | Determines the format of the body of the response. Valid value is “application/json” |
29 +----------------+-----------+-------------------------------------------------------------------------------------------+
30 | Authorization | Y | Supplies Basic Authentication credentials for the request. If the Authorization header is |
31 | | | missing, then an HTTP 400 Invalid Request response is returned. If the string supplied is |
32 | | | invalid, then an HTTP 401 Unauthorized response is returned. |
33 +----------------+-----------+-------------------------------------------------------------------------------------------+
34 | Content-Type | Y | Determines the format of the request content. Only application/json is supported. |
35 +----------------+-----------+-------------------------------------------------------------------------------------------+
36 | Content-Length | N | Number of bytes in the body of the request. Note that content length is limited to 1 MB. |
37 +----------------+-----------+-------------------------------------------------------------------------------------------+
43 +---------------+-----------+-------------+----------------------+---------------+------------------------------------------+
44 | Attribute | Qualifier | Cardinality | Content | Domain Values | Description |
45 +===============+===========+=============+======================+===============+==========================================+
46 | requestInfo | M | 1 | RequestInfo Object | - | The content of the RequestInfo object. |
47 +---------------+-----------+-------------+----------------------+---------------+------------------------------------------+
48 | placementInfo | M | 1 | PlacementInfo Object | - | The Content of the PlacementInfo object. |
49 +---------------+-----------+-------------+----------------------+---------------+------------------------------------------+
50 | licenseInfo | M | 1 | LicenseInfo Object | - | The Content of the LicenseInfo object. |
51 +---------------+-----------+-------------+----------------------+---------------+------------------------------------------+
52 | serviceInfo | M | 1 | ServiceInfo Object | - | The Content of the ServiceInfo object. |
53 +---------------+-----------+-------------+----------------------+---------------+------------------------------------------+
58 +---------------+-----------+-------------+-----------------+---------------+-----------------------------------------------------------------------+
59 | Attribute | Qualifier | Cardinality | Content | Domain Values | Description |
60 +===============+===========+=============+=================+===============+=======================================================================+
61 | transactionId | M | 1 | UUID/String | - | A unique ID to track an ONAP transaction. |
62 +---------------+-----------+-------------+-----------------+---------------+-----------------------------------------------------------------------+
63 | requestId | M | 1 | UUID/String | - | A unique ID to track multiple requests associated with a transaction. |
64 +---------------+-----------+-------------+-----------------+---------------+-----------------------------------------------------------------------+
65 | callbackUrl | M | 1 | URL | - | The end point of a callback service where recommendations are posted. |
66 +---------------+-----------+-------------+-----------------+---------------+-----------------------------------------------------------------------+
67 | sourceId | M | 1 | String | - | The unique ID of a client making an optimization call. |
68 +---------------+-----------+-------------+-----------------+---------------+-----------------------------------------------------------------------+
69 | requestType | M | 1 | String | create, | The type of a request |
72 +---------------+-----------+-------------+-----------------+---------------+-----------------------------------------------------------------------+
73 | numSolutions | O | 1 | Integer | - | Expected number of solutions. |
74 +---------------+-----------+-------------+-----------------+---------------+-----------------------------------------------------------------------+
75 | optimizers | M | 1..N | List of Strings | placement | A list of optimization services. |
76 +---------------+-----------+-------------+-----------------+---------------+-----------------------------------------------------------------------+
77 | timeout | M | 1 | Integer | - | A tolerance window (in second) for expecting solutions. |
78 +---------------+-----------+-------------+-----------------+---------------+-----------------------------------------------------------------------+
83 +-------------------+-----------+-------------+--------------------------------+---------------+---------------------------------------------------+
84 | Attribute | Qualifier | Cardinality | Content | Domain Values | Description |
85 +===================+===========+=============+================================+===============+===================================================+
86 | requestParameters | M | 1 | JSON BLOB | - | A service ordering information. |
87 +-------------------+-----------+-------------+--------------------------------+---------------+---------------------------------------------------+
88 | placementDemands | M | 1..N | List of PlacementDemand Object | - | The resource information for a placement service. |
89 +-------------------+-----------+-------------+--------------------------------+---------------+---------------------------------------------------+
92 PlacementDemand Object:
94 +--------------------+-----------+-------------+----------------------+---------------+-----------------------------------------------------------------+
95 | Attribute | Qualifier | Cardinality | Content | Domain Values | Description |
96 +====================+===========+=============+======================+===============+=================================================================+
97 | resourceModuleName | M | 1 | String | - | A resource name as defined in a service model. |
98 +--------------------+-----------+-------------+----------------------+---------------+-----------------------------------------------------------------+
99 | serviceResourceId | M | 1 | String | - | A unique resource Id with a local scope between client and OOF. |
100 +--------------------+-----------+-------------+----------------------+---------------+-----------------------------------------------------------------+
101 | givenPlacement | O | 1 | KeyValuePairs | - | placement parameters defined in the ordering system, |
102 | | | | | | keyname include tenantId. |
103 +--------------------+-----------+-------------+----------------------+---------------+-----------------------------------------------------------------+
104 | resourceModelInfo | M | 1 | ModelMetaData Object | - | Resource model information as defined in SDC. |
105 +--------------------+-----------+-------------+----------------------+---------------+-----------------------------------------------------------------+
106 | existingCandidates | O | 1 | Candidates Object | - | The existing placement information of a resource. |
107 +--------------------+-----------+-------------+----------------------+---------------+-----------------------------------------------------------------+
108 | excludedCandidates | O | 1 | Candidates Object | - | Candidates that need to be excluded from solutions. |
109 +--------------------+-----------+-------------+----------------------+---------------+-----------------------------------------------------------------+
110 | requiredCandidates | O | 1 | Candidates Object | - | Candidates that must be included in solutions. |
111 +--------------------+-----------+-------------+----------------------+---------------+-----------------------------------------------------------------+
114 ModelMetaData Object:
116 +------------------------+-----------+-------------+---------+---------------+-----------------------------------------------------------+
117 | Attribute | Qualifier | Cardinality | Content | Domain Values | Description |
118 +========================+===========+=============+=========+===============+===========================================================+
119 | modelInvariantId | M | 1 | String | - | A model invariant Id as defined in a service model. |
120 +------------------------+-----------+-------------+---------+---------------+-----------------------------------------------------------+
121 | modelVersionId | M | 1 | String | - | A unique model Id as defined in a service model. |
122 +------------------------+-----------+-------------+---------+---------------+-----------------------------------------------------------+
123 | modelName | O | 1 | String | - | A model name as defined in a service model. |
124 +------------------------+-----------+-------------+---------+---------------+-----------------------------------------------------------+
125 | modelType | O | 1 | String | - | A model type as defined in a service model. |
126 +------------------------+-----------+-------------+---------+---------------+-----------------------------------------------------------+
127 | modelVersion | O | 1 | String | - | A model version as defined in a service model. |
128 +------------------------+-----------+-------------+---------+---------------+-----------------------------------------------------------+
129 | modelCustomizationName | O | 1 | String | - | A model customization name as defined in a service model. |
130 +------------------------+-----------+-------------+---------+---------------+-----------------------------------------------------------+
135 +----------------+-----------+-------------+-----------------+----------------------+--------------------------+
136 | Attribute | Qualifier | Cardinality | Content | Domain Values | Description |
137 +================+===========+=============+=================+======================+==========================+
138 | identifierType | M | 1 | String | service_instance_id, | The type of a candidate. |
139 | | | | | vnf_name, | |
140 | | | | | cloud_region_id | |
141 +----------------+-----------+-------------+-----------------+----------------------+--------------------------+
142 | identifiers | M | 1..N | List of Strings | - | A list of identifiers. |
143 +----------------+-----------+-------------+-----------------+----------------------+--------------------------+
148 +-------------------+-----------+-------------+----------------------+---------------+--------------------------------------------------+
149 | Attribute | Qualifier | Cardinality | Content | Domain Values | Description |
150 +===================+===========+=============+======================+===============+==================================================+
151 | serviceInstanceId | M | 1 | String | - | A service instance id associated with a request. |
152 +-------------------+-----------+-------------+----------------------+---------------+--------------------------------------------------+
153 | serviceModelInfo | M | 1 | ModelMetaData Object | - | A list of identifiers. |
154 +-------------------+-----------+-------------+----------------------+---------------+--------------------------------------------------+
159 +----------------+-----------+-------------+-------------------------------+---------------+--------------------------------------------+
160 | Attribute | Qualifier | Cardinality | Content | Domain Values | Description |
161 +================+===========+=============+===============================+===============+============================================+
162 | licenseDemands | M | 1..N | List of LicenseDemands Object | - | A list of resources for license selection. |
163 +----------------+-----------+-------------+-------------------------------+---------------+--------------------------------------------+
166 LicenseDemands Object:
168 +--------------------+-----------+-------------+----------------------+---------------+-----------------------------------------------------------------+
169 | Attribute | Qualifier | Cardinality | Content | Domain Values | Description |
170 +====================+===========+=============+======================+===============+=================================================================+
171 | resourceModuleName | M | 1 | String | - | A resource name as defined in a service model. |
172 +--------------------+-----------+-------------+----------------------+---------------+-----------------------------------------------------------------+
173 | serviceResourceId | M | 1 | String | - | A unique resource Id with a local scope between client and OOF. |
174 +--------------------+-----------+-------------+----------------------+---------------+-----------------------------------------------------------------+
175 | resourceModelInfo | M | 1 | ModelMetaData Object | - | Resource model information as defined in a service model. |
176 +--------------------+-----------+-------------+----------------------+---------------+-----------------------------------------------------------------+
177 | existingLicenses | O | 1 | LicenseModel Object | - | Existing license information assigned to a resource. |
178 +--------------------+-----------+-------------+----------------------+---------------+-----------------------------------------------------------------+
183 +---------------------+-----------+-------------+-----------------+---------------+----------------------------------------------------+
184 | Attribute | Qualifier | Cardinality | Content | Domain Values | Description |
185 +=====================+===========+=============+=================+===============+====================================================+
186 | entitlementPoolUUID | M | 1..N | List of Strings | - | Entitlement pool UUIDs associated with a resource. |
187 +---------------------+-----------+-------------+-----------------+---------------+----------------------------------------------------+
188 | licenseKeyGroupUUID | M | 1..N | List of Strings | - | License key groups associated with a resource |
189 +---------------------+-----------+-------------+-----------------+---------------+----------------------------------------------------+
192 Synchronous Response Body:
194 +---------------+-----------+-------------+-------------+------------------+------------------------------------------------------------------------+
195 | Attribute | Qualifier | Cardinality | Content | Domain Values | Description |
196 +===============+===========+=============+=============+==================+========================================================================+
197 | requestId | M | 1 | UUID/String | - | A unique Id for an ONAP transaction. |
198 +---------------+-----------+-------------+-------------+------------------+------------------------------------------------------------------------+
199 | transactionId | M | 1 | UUID/String | - | A unique ID to track multiple requests associated with a transaction. |
200 +---------------+-----------+-------------+-------------+------------------+------------------------------------------------------------------------+
201 | statusMessage | O | 1 | String | - | Reasoning if a requestStatus is failure. |
202 +---------------+-----------+-------------+-------------+------------------+------------------------------------------------------------------------+
203 | requestStatus | M | 1 | String | success, failure | The status of a request. |
204 +---------------+-----------+-------------+-------------+------------------+------------------------------------------------------------------------+
207 Asynchronous Response Body:
209 +---------------+-----------+-------------+-----------------+---------------+------------------------------------------------------------------------+
210 | Attribute | Qualifier | Cardinality | Content | Domain Values | Description |
211 +===============+===========+=============+=================+===============+========================================================================+
212 | requestId | M | 1 | UUID/String | - | A unique Id for an ONAP transaction. |
213 +---------------+-----------+-------------+-----------------+---------------+------------------------------------------------------------------------+
214 | transactionId | M | 1 | UUID/String | - | A unique ID to track multiple requests associated with a transaction. |
215 +---------------+-----------+-------------+-----------------+---------------+------------------------------------------------------------------------+
216 | statusMessage | O | 1 | String | - | Reasoning if requestStatus is failure. |
217 +---------------+-----------+-------------+-----------------+---------------+------------------------------------------------------------------------+
218 | requestStatus | M | 1 | String | success, | The status of a request. |
219 | | | | | failure, | |
220 | | | | | pending | |
221 +---------------+-----------+-------------+-----------------+---------------+------------------------------------------------------------------------+
222 | solutions | M | 1 | Solutions Object| - | Solutions related to a request. |
223 +---------------+-----------+-------------+-----------------+---------------+------------------------------------------------------------------------+
228 +--------------------+-----------+-------------+--------------------------------------+---------------+--------------------------------+
229 | Attribute | Qualifier | Cardinality | Content | Domain Values | Description |
230 +====================+===========+=============+======================================+===============+================================+
231 | placementSolutions | M | 1..N | List of ComprehensiveSolution Object | - | A list of placement solutions. |
232 +--------------------+-----------+-------------+--------------------------------------+---------------+--------------------------------+
233 | licenseSolutions | M | 1..N | List of LicenseSolution Object | - | A list of license solutions |
234 +--------------------+-----------+-------------+--------------------------------------+---------------+--------------------------------+
238 ComprehensiveSolution Object:
240 +-----------+-----------+-------------+----------------------------------+---------------+--------------------------------+
241 | Attribute | Qualifier | Cardinality | Content | Domain Values | Description |
242 +===========+===========+=============+==================================+===============+================================+
243 | - | M | 1..N | List of PlacementSolution Object | - | A list of placement solutions. |
244 +-----------+-----------+-------------+----------------------------------+---------------+--------------------------------+
247 PlacementSolution Object:
249 +--------------------+-----------+-------------+------------------------+---------------------+---------------------------------------------------------+
250 | Attribute | Qualifier | Cardinality | Content | Domain Values | Description |
251 +====================+===========+=============+========================+=====================+=========================================================+
252 | resourceModuleName | M | 1 | String | - | The name of a resource as defined in the service model. |
253 +--------------------+-----------+-------------+------------------------+---------------------+---------------------------------------------------------+
254 | serviceResourceId | M | 1 | String | - | A resource Id as defined in a service model. |
255 +--------------------+-----------+-------------+------------------------+---------------------+---------------------------------------------------------+
256 | identifierType | M | 1 | String | service_instance_id | The type of a candidate. |
257 +--------------------+-----------+-------------+------------------------+---------------------+---------------------------------------------------------+
258 | identifier | M | 1 | String | - | The id of a candidate. |
259 +--------------------+-----------+-------------+------------------------+---------------------+---------------------------------------------------------+
260 | assignmentInfo | O | 1..N | List of AssignmentInfo | - | Additional information related to a candidate. |
262 +--------------------+-----------+-------------+------------------------+---------------------+---------------------------------------------------------+
265 AssignmentInfo Object:
267 +-----------+-----------+-------------+---------+---------------+---------------------+
268 | Attribute | Qualifier | Cardinality | Content | Domain Values | Description |
269 +===========+===========+=============+=========+===============+=====================+
270 | key | M | 1 | String | - | An attribute name. |
271 +-----------+-----------+-------------+---------+---------------+---------------------+
272 | value | M | 1 | String | - | An attribute value. |
273 +-----------+-----------+-------------+---------+---------------+---------------------+
276 LicenseSolutions Object:
278 +------------------------------+-----------+-------------+----------------+---------------+------------------------------------------+
279 | Attribute | Qualifier | Cardinality | Content | Domain Values | Description |
280 +==============================+===========+=============+================+===============+==========================================+
281 | resourceModuleName | M | 1 | String | - | A resource name as defined in a service. |
282 +------------------------------+-----------+-------------+----------------+---------------+------------------------------------------+
283 | serviceResourceId | M | 1 | String | - | A resource Id as defined in a service. |
284 +------------------------------+-----------+-------------+----------------+---------------+------------------------------------------+
285 | entitlementPoolUUID | M | 1..N | List of String | - | A list of entitlementPoolUUIDs. |
286 +------------------------------+-----------+-------------+----------------+---------------+------------------------------------------+
287 | licenseKeyGroupUUID | M | 1..N | List of String | - | A list of licenseKeyGroupUUID. |
288 +------------------------------+-----------+-------------+----------------+---------------+------------------------------------------+
289 | entitlementPoolInvariantUUID | M | 1..N | List of String | - | A list of entitlementPoolInvariantUUID . |
290 +------------------------------+-----------+-------------+----------------+---------------+------------------------------------------+
291 | licenseKeyGroupInvariantUUID | M | 1..N | List of String | - | A list of licenseKeyGroupInvariantUUID . |
292 +------------------------------+-----------+-------------+----------------+---------------+------------------------------------------+
298 +-----------+-----------------------+---------------------------------------------------------------+
299 | HTTP Code | Response Phrase | Description |
300 +===========+=======================+===============================================================+
301 | 201 | Created | An optimization solution is found. |
302 +-----------+-----------------------+---------------------------------------------------------------+
303 | 202 | Accepted | An optimization request is accepted. |
304 +-----------+-----------------------+---------------------------------------------------------------+
305 | 400 | Bad request | Bad request. |
306 +-----------+-----------------------+---------------------------------------------------------------+
307 | 401 | Unauthorized | Request body is not compliant with the API definition. |
308 +-----------+-----------------------+---------------------------------------------------------------+
309 | 404 | Not found | The server cannot find the requested URI. |
310 +-----------+-----------------------+---------------------------------------------------------------+
311 | 405 | Method not found | The requested method is not supported by a server. |
312 +-----------+-----------------------+---------------------------------------------------------------+
313 | 500 | Internal server error | The server encountered an internal server error or timed out. |
314 +-----------+-----------------------+---------------------------------------------------------------+