add sections
[optf/osdf.git] / docs / sections / offeredapis.rst
1 .. This work is licensed under a Creative Commons Attribution 4.0 International License.
2 .. http://creativecommons.org/licenses/by/4.0
3
4 ******************
5 Offered APIs
6 ******************
7
8 OOF-HAS Create/Update API
9 #########################
10
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 +--------------------+-------------------------------------+
20
21
22 Request Header
23 **************
24
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 +----------------+-----------+-------------------------------------------------------------------------------------------+
38
39
40 Request Body
41 ************
42
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 +---------------+-----------+-------------+----------------------+---------------+------------------------------------------+
54
55
56 RequestInfo Object:
57
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                                                 |
70 |               |           |             |                 | update,       |                                                                       |
71 |               |           |             |                 | delete        |                                                                       |
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 +---------------+-----------+-------------+-----------------+---------------+-----------------------------------------------------------------------+
79
80
81 PlacementInfo Object:
82
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 +-------------------+-----------+-------------+--------------------------------+---------------+---------------------------------------------------+
90
91
92 PlacementDemand Object:
93
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 +--------------------+-----------+-------------+----------------------+---------------+-----------------------------------------------------------------+
112
113
114 ModelMetaData Object:
115
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 +------------------------+-----------+-------------+---------+---------------+-----------------------------------------------------------+
131
132
133 Candidates Object:
134
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 +----------------+-----------+-------------+-----------------+----------------------+--------------------------+
144
145
146 ServiceInfo Object:
147
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 +-------------------+-----------+-------------+----------------------+---------------+--------------------------------------------------+
155
156
157 LicenseInfo Object:
158
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 +----------------+-----------+-------------+-------------------------------+---------------+--------------------------------------------+
164
165
166 LicenseDemands Object:
167
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 +--------------------+-----------+-------------+----------------------+---------------+-----------------------------------------------------------------+
179
180
181 LicenseModel Object:
182
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 +---------------------+-----------+-------------+-----------------+---------------+----------------------------------------------------+
190
191
192 Synchronous Response Body:
193
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 +---------------+-----------+-------------+-------------+------------------+------------------------------------------------------------------------+
205
206
207 Asynchronous Response Body:
208
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 +---------------+-----------+-------------+-----------------+---------------+------------------------------------------------------------------------+
224
225
226 Solutions Object:
227
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 +--------------------+-----------+-------------+--------------------------------------+---------------+--------------------------------+
235
236
237
238 ComprehensiveSolution Object:
239
240 +-----------+-----------+-------------+----------------------------------+---------------+--------------------------------+
241 | Attribute | Qualifier | Cardinality | Content                          | Domain Values | Description                    |
242 +===========+===========+=============+==================================+===============+================================+
243 | -         | M         | 1..N        | List of PlacementSolution Object | -             | A list of placement solutions. |
244 +-----------+-----------+-------------+----------------------------------+---------------+--------------------------------+
245
246
247 PlacementSolution Object:
248
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.          |
261 |                    |           |             | object                 |                     |                                                         |
262 +--------------------+-----------+-------------+------------------------+---------------------+---------------------------------------------------------+
263
264
265 AssignmentInfo Object:
266
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 +-----------+-----------+-------------+---------+---------------+---------------------+
274
275
276 LicenseSolutions Object:
277
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 +------------------------------+-----------+-------------+----------------+---------------+------------------------------------------+
293
294
295 HTTP Response Code
296 ++++++++++++++++++
297
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 +-----------+-----------------------+---------------------------------------------------------------+
315
316
317