aboutsummaryrefslogtreecommitdiffstats
path: root/docs/apis/OOF_HAS_R2_Interface.rst
blob: ea6eab27151a5d96c2bbd88cf9c359d7d3fa42b7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
.. This work is licensed under a Creative Commons Attribution 4.0 International License.
.. http://creativecommons.org/licenses/by/4.0

******************
OOF-HAS Interfaces
******************

OOF-HAS Create/Update API
#########################

+--------------------+-------------------------------------+
|Interface Definition|Description                          |
+====================+=====================================+
|URI                 |{serverRoot}/oof-osdf/v2/placement   |
+--------------------+-------------------------------------+
|Operation Type      |POST                                 |
+--------------------+-------------------------------------+
|Content-Type        |application/json                     |
+--------------------+-------------------------------------+


Request Header
**************

+----------------+-----------+-------------------------------------------------------------------------------------------+
| Header Name    | Required  | Description                                                                               |
+================+===========+===========================================================================================+
| Accept         | N         | Determines the format of the body of the response. Valid value is “application/json”    |
+----------------+-----------+-------------------------------------------------------------------------------------------+
| Authorization  | Y         | Supplies Basic Authentication credentials for the request. If the Authorization header is |
|                |           | missing, then an HTTP 400 Invalid Request response is returned. If the string supplied is |
|                |           | invalid, then an HTTP 401 Unauthorized response is returned.                              |
+----------------+-----------+-------------------------------------------------------------------------------------------+
| Content-Type   | Y         | Determines the format of the request content. Only application/json is supported.         |
+----------------+-----------+-------------------------------------------------------------------------------------------+
| Content-Length | N         | Number of bytes in the body of the request. Note that content length is limited to 1 MB.  |
+----------------+-----------+-------------------------------------------------------------------------------------------+


Request Body
************

+---------------+-----------+-------------+----------------------+---------------+------------------------------------------+
| Attribute     | Qualifier | Cardinality | Content              | Domain Values | Description                              |
+===============+===========+=============+======================+===============+==========================================+
| requestInfo   | M         | 1           | RequestInfo Object   | -             | The content of the RequestInfo object.   |
+---------------+-----------+-------------+----------------------+---------------+------------------------------------------+
| placementInfo | M         | 1           | PlacementInfo Object | -             | The Content of the PlacementInfo object. |
+---------------+-----------+-------------+----------------------+---------------+------------------------------------------+
| licenseInfo   | M         | 1           | LicenseInfo Object   | -             | The Content of the LicenseInfo object.   |
+---------------+-----------+-------------+----------------------+---------------+------------------------------------------+
| serviceInfo   | M         | 1           | ServiceInfo Object   | -             | The Content of the ServiceInfo object.   |
+---------------+-----------+-------------+----------------------+---------------+------------------------------------------+


RequestInfo Object:

+---------------+-----------+-------------+-----------------+---------------+-----------------------------------------------------------------------+
| Attribute     | Qualifier | Cardinality | Content         | Domain Values | Description                                                           |
+===============+===========+=============+=================+===============+=======================================================================+
| transactionId | M         | 1           | UUID/String     | -             | A unique ID to track an ONAP transaction.                             |
+---------------+-----------+-------------+-----------------+---------------+-----------------------------------------------------------------------+
| requestId     | M         | 1           | UUID/String     | -             | A unique ID to track multiple requests associated with a transaction. |
+---------------+-----------+-------------+-----------------+---------------+-----------------------------------------------------------------------+
| callbackUrl   | M         | 1           | URL             | -             | The end point of a callback service where recommendations are posted. |
+---------------+-----------+-------------+-----------------+---------------+-----------------------------------------------------------------------+
| sourceId      | M         | 1           | String          | -             | The unique ID of a client making an optimization call.                |
+---------------+-----------+-------------+-----------------+---------------+-----------------------------------------------------------------------+
| requestType   | M         | 1           | String          | create,       | The type of a request                                                 |
|               |           |             |                 | update,       |                                                                       |
|               |           |             |                 | delete        |                                                                       |
+---------------+-----------+-------------+-----------------+---------------+-----------------------------------------------------------------------+
| numSolutions  | O         | 1           | Integer         | -             | Expected number of solutions.                                         |
+---------------+-----------+-------------+-----------------+---------------+-----------------------------------------------------------------------+
| optimizers    | M         | 1..N        | List of Strings | placement     | A list of optimization services.                                      |
+---------------+-----------+-------------+-----------------+---------------+-----------------------------------------------------------------------+
| timeout       | M         | 1           | Integer         | -             | A tolerance window (in second) for expecting solutions.               |
+---------------+-----------+-------------+-----------------+---------------+-----------------------------------------------------------------------+


PlacementInfo Object:

+-------------------+-----------+-------------+--------------------------------+---------------+---------------------------------------------------+
| Attribute         | Qualifier | Cardinality | Content                        | Domain Values | Description                                       |
+===================+===========+=============+================================+===============+===================================================+
| requestParameters | M         | 1           | JSON BLOB                      | -             | A service ordering information.                   |
+-------------------+-----------+-------------+--------------------------------+---------------+---------------------------------------------------+
| placementDemands  | M         | 1..N        | List of PlacementDemand Object | -             | The resource information for a placement service. |
+-------------------+-----------+-------------+--------------------------------+---------------+---------------------------------------------------+


PlacementDemand Object:

+--------------------+-----------+-------------+----------------------+---------------+-----------------------------------------------------------------+
| Attribute          | Qualifier | Cardinality | Content              | Domain Values | Description                                                     |
+====================+===========+=============+======================+===============+=================================================================+
| resourceModuleName | M         | 1           | String               | -             | A resource name as defined in a service model.                  |
+--------------------+-----------+-------------+----------------------+---------------+-----------------------------------------------------------------+
| serviceResourceId  | M         | 1           | String               | -             | A unique resource Id with a local scope between client and OOF. |
+--------------------+-----------+-------------+----------------------+---------------+-----------------------------------------------------------------+
| givenPlacement     | O         | 1           | KeyValuePairs        | -             | placement parameters defined in the ordering system,            |
|                    |           |             |                      |               | keyname include tenantId.                                       |
+--------------------+-----------+-------------+----------------------+---------------+-----------------------------------------------------------------+
| resourceModelInfo  | M         | 1           | ModelMetaData Object | -             | Resource model information as defined in SDC.                   |
+--------------------+-----------+-------------+----------------------+---------------+-----------------------------------------------------------------+
| existingCandidates | O         | 1           | Candidates Object    | -             | The existing placement information of a resource.               |
+--------------------+-----------+-------------+----------------------+---------------+-----------------------------------------------------------------+
| excludedCandidates | O         | 1           | Candidates Object    | -             | Candidates that need to be excluded from solutions.             |
+--------------------+-----------+-------------+----------------------+---------------+-----------------------------------------------------------------+
| requiredCandidates | O         | 1           | Candidates Object    | -             | Candidates that must be included in solutions.                  |
+--------------------+-----------+-------------+----------------------+---------------+-----------------------------------------------------------------+


ModelMetaData Object:

+------------------------+-----------+-------------+---------+---------------+-----------------------------------------------------------+
| Attribute              | Qualifier | Cardinality | Content | Domain Values | Description                                               |
+========================+===========+=============+=========+===============+===========================================================+
| modelInvariantId       | M         | 1           | String  | -             | A model invariant Id as defined in a service model.       |
+------------------------+-----------+-------------+---------+---------------+-----------------------------------------------------------+
| modelVersionId         | M         | 1           | String  | -             | A unique model Id as defined in a service model.          |
+------------------------+-----------+-------------+---------+---------------+-----------------------------------------------------------+
| modelName              | O         | 1           | String  | -             | A model name as defined in a service model.               |
+------------------------+-----------+-------------+---------+---------------+-----------------------------------------------------------+
| modelType              | O         | 1           | String  | -             | A model type as defined in a service model.               |
+------------------------+-----------+-------------+---------+---------------+-----------------------------------------------------------+
| modelVersion           | O         | 1           | String  | -             | A model version as defined in a service model.            |
+------------------------+-----------+-------------+---------+---------------+-----------------------------------------------------------+
| modelCustomizationName | O         | 1           | String  | -             | A model customization name as defined in a service model. |
+------------------------+-----------+-------------+---------+---------------+-----------------------------------------------------------+


Candidates Object:

+----------------+-----------+-------------+-----------------+----------------------+--------------------------+
| Attribute      | Qualifier | Cardinality | Content         | Domain Values        | Description              |
+================+===========+=============+=================+======================+==========================+
| identifierType | M         | 1           | String          | service_instance_id, | The type of a candidate. |
|                |           |             |                 | vnf_name,            |                          |
|                |           |             |                 | cloud_region_id      |                          |
+----------------+-----------+-------------+-----------------+----------------------+--------------------------+
| identifiers    | M         | 1..N        | List of Strings | -                    | A list of identifiers.   |
+----------------+-----------+-------------+-----------------+----------------------+--------------------------+


ServiceInfo Object:

+-------------------+-----------+-------------+----------------------+---------------+--------------------------------------------------+
| Attribute         | Qualifier | Cardinality | Content              | Domain Values | Description                                      |
+===================+===========+=============+======================+===============+==================================================+
| serviceInstanceId | M         | 1           | String               | -             | A service instance id associated with a request. |
+-------------------+-----------+-------------+----------------------+---------------+--------------------------------------------------+
| serviceModelInfo  | M         | 1           | ModelMetaData Object | -             | A list of identifiers.                           |
+-------------------+-----------+-------------+----------------------+---------------+--------------------------------------------------+


LicenseInfo Object:

+----------------+-----------+-------------+-------------------------------+---------------+--------------------------------------------+
| Attribute      | Qualifier | Cardinality | Content                       | Domain Values | Description                                |
+================+===========+=============+===============================+===============+============================================+
| licenseDemands | M         | 1..N        | List of LicenseDemands Object | -             | A list of resources for license selection. |
+----------------+-----------+-------------+-------------------------------+---------------+--------------------------------------------+


LicenseDemands Object:

+--------------------+-----------+-------------+----------------------+---------------+-----------------------------------------------------------------+
| Attribute          | Qualifier | Cardinality | Content              | Domain Values | Description                                                     |
+====================+===========+=============+======================+===============+=================================================================+
| resourceModuleName | M         | 1           | String               | -             | A resource name as defined in a service model.                  |
+--------------------+-----------+-------------+----------------------+---------------+-----------------------------------------------------------------+
| serviceResourceId  | M         | 1           | String               | -             | A unique resource Id with a local scope between client and OOF. |
+--------------------+-----------+-------------+----------------------+---------------+-----------------------------------------------------------------+
| resourceModelInfo  | M         | 1           | ModelMetaData Object | -             | Resource model information as defined in a service model.       |
+--------------------+-----------+-------------+----------------------+---------------+-----------------------------------------------------------------+
| existingLicenses   | O         | 1           | LicenseModel Object  | -             | Existing license information assigned to a resource.            |
+--------------------+-----------+-------------+----------------------+---------------+-----------------------------------------------------------------+


LicenseModel Object:

+---------------------+-----------+-------------+-----------------+---------------+----------------------------------------------------+
| Attribute           | Qualifier | Cardinality | Content         | Domain Values | Description                                        |
+=====================+===========+=============+=================+===============+====================================================+
| entitlementPoolUUID | M         | 1..N        | List of Strings | -             | Entitlement pool UUIDs associated with a resource. |
+---------------------+-----------+-------------+-----------------+---------------+----------------------------------------------------+
| licenseKeyGroupUUID | M         | 1..N        | List of Strings | -             | License key groups associated with a resource      |
+---------------------+-----------+-------------+-----------------+---------------+----------------------------------------------------+


Synchronous Response Body:

+---------------+-----------+-------------+-------------+------------------+------------------------------------------------------------------------+
| Attribute     | Qualifier | Cardinality | Content     | Domain Values    | Description                                                            |
+===============+===========+=============+=============+==================+========================================================================+
| requestId     | M         | 1           | UUID/String | -                | A unique Id for an ONAP transaction.                                   |
+---------------+-----------+-------------+-------------+------------------+------------------------------------------------------------------------+
| transactionId | M         | 1           | UUID/String | -                | A unique ID to track multiple requests associated with a transaction.  |
+---------------+-----------+-------------+-------------+------------------+------------------------------------------------------------------------+
| statusMessage | O         | 1           | String      | -                | Reasoning if a requestStatus is failure.                               |
+---------------+-----------+-------------+-------------+------------------+------------------------------------------------------------------------+
| requestStatus | M         | 1           | String      | success, failure | The status of a request.                                               |
+---------------+-----------+-------------+-------------+------------------+------------------------------------------------------------------------+


Asynchronous Response Body:

+---------------+-----------+-------------+-----------------+---------------+------------------------------------------------------------------------+
| Attribute     | Qualifier | Cardinality | Content         | Domain Values | Description                                                            |
+===============+===========+=============+=================+===============+========================================================================+
| requestId     | M         | 1           | UUID/String     | -             | A unique Id for an ONAP transaction.                                   |
+---------------+-----------+-------------+-----------------+---------------+------------------------------------------------------------------------+
| transactionId | M         | 1           | UUID/String     | -             | A unique ID to track multiple requests associated with a transaction.  |
+---------------+-----------+-------------+-----------------+---------------+------------------------------------------------------------------------+
| statusMessage | O         | 1           | String          | -             | Reasoning if requestStatus is failure.                                 |
+---------------+-----------+-------------+-----------------+---------------+------------------------------------------------------------------------+
| requestStatus | M         | 1           | String          | success,      | The status of a request.                                               |
|               |           |             |                 | failure,      |                                                                        |
|               |           |             |                 | pending       |                                                                        |
+---------------+-----------+-------------+-----------------+---------------+------------------------------------------------------------------------+
| solutions     | M         | 1           | Solutions Object| -             | Solutions related to a request.                                        |
+---------------+-----------+-------------+-----------------+---------------+------------------------------------------------------------------------+


Solutions Object:

+--------------------+-----------+-------------+--------------------------------------+---------------+--------------------------------+
| Attribute          | Qualifier | Cardinality | Content                              | Domain Values | Description                    |
+====================+===========+=============+======================================+===============+================================+
| placementSolutions | M         | 1..N        | List of ComprehensiveSolution Object | -             | A list of placement solutions. |
+--------------------+-----------+-------------+--------------------------------------+---------------+--------------------------------+
| licenseSolutions   | M         | 1..N        | List of LicenseSolution Object       | -             | A list of license solutions    |
+--------------------+-----------+-------------+--------------------------------------+---------------+--------------------------------+



ComprehensiveSolution Object:

+-----------+-----------+-------------+----------------------------------+---------------+--------------------------------+
| Attribute | Qualifier | Cardinality | Content                          | Domain Values | Description                    |
+===========+===========+=============+==================================+===============+================================+
| -         | M         | 1..N        | List of PlacementSolution Object | -             | A list of placement solutions. |
+-----------+-----------+-------------+----------------------------------+---------------+--------------------------------+


PlacementSolution Object:

+--------------------+-----------+-------------+------------------------+---------------------+---------------------------------------------------------+
| Attribute          | Qualifier | Cardinality | Content                | Domain Values       | Description                                             |
+====================+===========+=============+========================+=====================+=========================================================+
| resourceModuleName | M         | 1           | String                 | -                   | The name of a resource as defined in the service model. |
+--------------------+-----------+-------------+------------------------+---------------------+---------------------------------------------------------+
| serviceResourceId  | M         | 1           | String                 | -                   | A resource Id as defined in a service model.            |
+--------------------+-----------+-------------+------------------------+---------------------+---------------------------------------------------------+
| identifierType     | M         | 1           | String                 | service_instance_id | The type of a candidate.                                |
+--------------------+-----------+-------------+------------------------+---------------------+---------------------------------------------------------+
| identifier         | M         | 1           | String                 | -                   | The id of a candidate.                                  |
+--------------------+-----------+-------------+------------------------+---------------------+---------------------------------------------------------+
| assignmentInfo     | O         | 1..N        | List of AssignmentInfo | -                   | Additional information related to a candidate.          |
|                    |           |             | object                 |                     |                                                         |
+--------------------+-----------+-------------+------------------------+---------------------+---------------------------------------------------------+


AssignmentInfo Object:

+-----------+-----------+-------------+---------+---------------+---------------------+
| Attribute | Qualifier | Cardinality | Content | Domain Values | Description         |
+===========+===========+=============+=========+===============+=====================+
| key       | M         | 1           | String  | -             | An attribute name.  |
+-----------+-----------+-------------+---------+---------------+---------------------+
| value     | M         | 1           | String  | -             | An attribute value. |
+-----------+-----------+-------------+---------+---------------+---------------------+


LicenseSolutions Object:

+------------------------------+-----------+-------------+----------------+---------------+------------------------------------------+
| Attribute                    | Qualifier | Cardinality | Content        | Domain Values | Description                              |
+==============================+===========+=============+================+===============+==========================================+
| resourceModuleName           | M         | 1           | String         | -             | A resource name as defined in a service. |
+------------------------------+-----------+-------------+----------------+---------------+------------------------------------------+
| serviceResourceId            | M         | 1           | String         | -             | A resource Id as defined in a service.   |
+------------------------------+-----------+-------------+----------------+---------------+------------------------------------------+
| entitlementPoolUUID          | M         | 1..N        | List of String | -             | A list of entitlementPoolUUIDs.          |
+------------------------------+-----------+-------------+----------------+---------------+------------------------------------------+
| licenseKeyGroupUUID          | M         | 1..N        | List of String | -             | A list of licenseKeyGroupUUID.           |
+------------------------------+-----------+-------------+----------------+---------------+------------------------------------------+
| entitlementPoolInvariantUUID | M         | 1..N        | List of String | -             | A list of entitlementPoolInvariantUUID . |
+------------------------------+-----------+-------------+----------------+---------------+------------------------------------------+
| licenseKeyGroupInvariantUUID | M         | 1..N        | List of String | -             | A list of licenseKeyGroupInvariantUUID . |
+------------------------------+-----------+-------------+----------------+---------------+------------------------------------------+


HTTP Response Code
++++++++++++++++++

+-----------+-----------------------+---------------------------------------------------------------+
| HTTP Code | Response Phrase       | Description                                                   |
+===========+=======================+===============================================================+
| 201       | Created               | An optimization solution is found.                            |
+-----------+-----------------------+---------------------------------------------------------------+
| 202       | Accepted              | An optimization request is accepted.                          |
+-----------+-----------------------+---------------------------------------------------------------+
| 400       | Bad request           | Bad request.                                                  |
+-----------+-----------------------+---------------------------------------------------------------+
| 401       | Unauthorized          | Request body is not compliant with the API definition.        |
+-----------+-----------------------+---------------------------------------------------------------+
| 404       | Not found             | The server cannot find the requested URI.                     |
+-----------+-----------------------+---------------------------------------------------------------+
| 405       | Method not found      | The requested method is not supported by a server.            |
+-----------+-----------------------+---------------------------------------------------------------+
| 500       | Internal server error | The server encountered an internal server error or timed out. |
+-----------+-----------------------+---------------------------------------------------------------+