update OOF_HAS_R2_Interface.rst
[optf/osdf.git] / docs / apis / OOF_HAS_R2_Interface.rst
index d55a0f9..ea6eab2 100644 (file)
-.. This work is licensed under a Creative Commons Attribution 4.0 International License.\r
-.. http://creativecommons.org/licenses/by/4.0\r
-\r
-******************\r
-OOF-HAS Interfaces\r
-******************\r
-\r
-OOF-HAS Create/Update API\r
-#########################\r
-\r
-+--------------------+-------------------------------------+\r
-|Interface Definition|Description                          |\r
-+====================+=====================================+\r
-|URI                 |{serverRoot}/oof/has/v2              |\r
-+--------------------+-------------------------------------+\r
-|Operation Type      |POST                                 |\r
-+--------------------+-------------------------------------+\r
-|Content-Type        |application/json                     |\r
-+--------------------+-------------------------------------+\r
-\r
-\r
-Request Header\r
-**************\r
-\r
-+----------------+-----------+-------------------------------------------------------------------------------------------+\r
-| Header Name    | Qualifier | Description                                                                               |\r
-+================+===========+===========================================================================================+\r
-| Accept         | N         | Determines the format of the body of the response. Valid value is “application/json”      |\r
-+----------------+-----------+-------------------------------------------------------------------------------------------+\r
-| Authorization  | Y         | Supplies Basic Authentication credentials for the request. If the Authorization header is |\r
-|                |           | missing, then an HTTP 400 Invalid Request response is returned. If the string supplied is |\r
-|                |           | invalid, then an HTTP 401 Unauthorized response is returned.                              |\r
-+----------------+-----------+-------------------------------------------------------------------------------------------+\r
-| Content-Type   | Y         | Determines the format of the request content. Only application/json is supported.         |\r
-+----------------+-----------+-------------------------------------------------------------------------------------------+\r
-| Content-Length | N         | Number of bytes in the body of the request. Note that content length is limited to 1 MB.  |\r
-+----------------+-----------+-------------------------------------------------------------------------------------------+\r
-\r
-\r
-Request Body\r
-************\r
-\r
-+---------------+-----------+-------------+----------------------+---------------+------------------------------------------+\r
-| Attribute     | Qualifier | Cardinality | Content              | Domain Values | Description                              |\r
-+===============+===========+=============+======================+===============+==========================================+\r
-| requestInfo   | M         | 1           | RequestInfo Object   | -             | The content of the RequestInfo object.   |\r
-+---------------+-----------+-------------+----------------------+---------------+------------------------------------------+\r
-| placementInfo | M         | 1           | PlacementInfo Object | -             | The Content of the PlacementInfo object. |\r
-+---------------+-----------+-------------+----------------------+---------------+------------------------------------------+\r
-| licenseInfo   | M         | 1           | LicenseInfo Object   | -             | The Content of the LicenseInfo object.   |\r
-+---------------+-----------+-------------+----------------------+---------------+------------------------------------------+\r
-| serviceInfo   | M         | 1           | ServiceInfo Object   | -             | The Content of the ServiceInfo object.   |\r
-+---------------+-----------+-------------+----------------------+---------------+------------------------------------------+\r
-\r
-\r
-RequestInfo Object:\r
-\r
-+---------------+-----------+-------------+-----------------+---------------+-----------------------------------------------------------------------+\r
-| Attribute     | Qualifier | Cardinality | Content         | Domain Values | Description                                                           |\r
-+===============+===========+=============+=================+===============+=======================================================================+\r
-| transactionId | M         | 1           | UUID/String     | -             | A unique ID to track an ONAP transaction.                             |\r
-+---------------+-----------+-------------+-----------------+---------------+-----------------------------------------------------------------------+\r
-| requestId     | M         | 1           | UUID/String     | -             | A unique ID to track multiple requests associated with a transaction. |\r
-+---------------+-----------+-------------+-----------------+---------------+-----------------------------------------------------------------------+\r
-| callbackUrl   | M         | 1           | URL             | -             | The end point of a callback service where recommendations are posted. |\r
-+---------------+-----------+-------------+-----------------+---------------+-----------------------------------------------------------------------+\r
-| sourceId      | M         | 1           | String          | -             | The unique ID of a client making an optimization call.                |\r
-+---------------+-----------+-------------+-----------------+---------------+-----------------------------------------------------------------------+\r
-| requestType   | M         | 1           | String          | create,       | The type of a request                                                 |\r
-|               |           |             |                 | update,       |                                                                       |\r
-|               |           |             |                 | delete        |                                                                       |\r
-+---------------+-----------+-------------+-----------------+---------------+-----------------------------------------------------------------------+\r
-| numSolutions  | O         | 1           | Integer         | -             | Expected number of solutions.                                         |\r
-+---------------+-----------+-------------+-----------------+---------------+-----------------------------------------------------------------------+\r
-| optimizers    | M         | 1..N        | List of Strings | placement     | A list of optimization services.                                      |\r
-+---------------+-----------+-------------+-----------------+---------------+-----------------------------------------------------------------------+\r
-| timeout       | M         | 1           | Integer         | -             | A tolerance window (in min) for expecting solutions.                  |\r
-+---------------+-----------+-------------+-----------------+---------------+-----------------------------------------------------------------------+\r
-\r
-\r
-PlacementInfo Object:\r
-\r
-+-------------------+-----------+-------------+--------------------------------+---------------+---------------------------------------------------+\r
-| Attribute         | Qualifier | Cardinality | Content                        | Domain Values | Description                                       |\r
-+===================+===========+=============+================================+===============+===================================================+\r
-| requestParameters | M         | 1           | JSON BLOB                      | -             | A service ordering information.                   |\r
-+-------------------+-----------+-------------+--------------------------------+---------------+---------------------------------------------------+\r
-| placementDemands  | M         | 1..N        | List of PlacementDemand Object | -             | The resource information for a placement service. |\r
-+-------------------+-----------+-------------+--------------------------------+---------------+---------------------------------------------------+\r
-\r
-\r
-PlacementDemand Object:\r
-\r
-+--------------------+-----------+-------------+----------------------+---------------+-----------------------------------------------------------------+\r
-| Attribute          | Qualifier | Cardinality | Content              | Domain Values | Description                                                     |\r
-+====================+===========+=============+======================+===============+=================================================================+\r
-| resourceModuleName | M         | 1           | String               | -             | A resource name as defined in a service model.                  |\r
-+--------------------+-----------+-------------+----------------------+---------------+-----------------------------------------------------------------+\r
-| serviceResourceId  | M         | 1           | String               | -             | A unique resource Id with a local scope between client and OOF. |\r
-+--------------------+-----------+-------------+----------------------+---------------+-----------------------------------------------------------------+\r
-| tenantId           | O         | 1           | String               | -             | A tenant Id as defined in the ordering system.                  |\r
-+--------------------+-----------+-------------+----------------------+---------------+-----------------------------------------------------------------+\r
-| resourceModelInfo  | M         | 1           | ModelMetaData Object | -             | Resource model information as defined in SDC.                   |\r
-+--------------------+-----------+-------------+----------------------+---------------+-----------------------------------------------------------------+\r
-| existingCandidates | O         | 1           | Candidates Object    | -             | The existing placement information of a resource.               |\r
-+--------------------+-----------+-------------+----------------------+---------------+-----------------------------------------------------------------+\r
-| excludedCandidates | O         | 1           | Candidates Object    | -             | Candidates that need to be excluded from solutions.             |\r
-+--------------------+-----------+-------------+----------------------+---------------+-----------------------------------------------------------------+\r
-| requiredCandidates | O         | 1           | Candidates Object    | -             | Candidates that must be included in solutions.                  |\r
-+--------------------+-----------+-------------+----------------------+---------------+-----------------------------------------------------------------+\r
-\r
-\r
-ModelMetaData Object:\r
-\r
-+------------------------+-----------+-------------+---------+---------------+-----------------------------------------------------------+\r
-| Attribute              | Qualifier | Cardinality | Content | Domain Values | Description                                               |\r
-+========================+===========+=============+=========+===============+===========================================================+\r
-| modelInvariantId       | M         | 1           | String  | -             | A model invariant Id as defined in a service model.       |\r
-+------------------------+-----------+-------------+---------+---------------+-----------------------------------------------------------+\r
-| modelVersionId         | M         | 1           | String  | -             | A unique model Id as defined in a service model.          |\r
-+------------------------+-----------+-------------+---------+---------------+-----------------------------------------------------------+\r
-| modelName              | O         | 1           | String  | -             | A model name as defined in a service model.               |\r
-+------------------------+-----------+-------------+---------+---------------+-----------------------------------------------------------+\r
-| modelType              | O         | 1           | String  | -             | A model type as defined in a service model.               |\r
-+------------------------+-----------+-------------+---------+---------------+-----------------------------------------------------------+\r
-| modelVersion           | O         | 1           | String  | -             | A model version as defined in a service model.            |\r
-+------------------------+-----------+-------------+---------+---------------+-----------------------------------------------------------+\r
-| modelCustomizationName | O         | 1           | String  | -             | A model customization name as defined in a service model. |\r
-+------------------------+-----------+-------------+---------+---------------+-----------------------------------------------------------+\r
-\r
-\r
-Candidates Object:\r
-\r
-+----------------+-----------+-------------+-----------------+----------------------+--------------------------+\r
-| Attribute      | Qualifier | Cardinality | Content         | Domain Values        | Description              |\r
-+================+===========+=============+=================+======================+==========================+\r
-| identifierType | M         | 1           | String          | service_instance_id, | The type of a candidate. |\r
-|                |           |             |                 | vnf_name,            |                          |\r
-|                |           |             |                 | cloud_region_id      |                          |\r
-+----------------+-----------+-------------+-----------------+----------------------+--------------------------+\r
-| identifiers    | M         | 1..N        | List of Strings | -                    | A list of identifiers.   |\r
-+----------------+-----------+-------------+-----------------+----------------------+--------------------------+\r
-\r
-\r
-ServiceInfo Object:\r
-\r
-+-------------------+-----------+-------------+----------------------+---------------+--------------------------------------------------+\r
-| Attribute         | Qualifier | Cardinality | Content              | Domain Values | Description                                      |\r
-+===================+===========+=============+======================+===============+==================================================+\r
-| serviceInstanceId | M         | 1           | String               | -             | A service instance id associated with a request. |\r
-+-------------------+-----------+-------------+----------------------+---------------+--------------------------------------------------+\r
-| serviceModelInfo  | M         | 1           | ModelMetaData Object | -             | A list of identifiers.                           |\r
-+-------------------+-----------+-------------+----------------------+---------------+--------------------------------------------------+\r
-\r
-\r
-LicenseInfo Object:\r
-\r
-+----------------+-----------+-------------+-------------------------------+---------------+--------------------------------------------+\r
-| Attribute      | Qualifier | Cardinality | Content                       | Domain Values | Description                                |\r
-+================+===========+=============+===============================+===============+============================================+\r
-| licenseDemands | M         | 1           | List of LicenseDemands Object | -             | A list of resources for license selection. |\r
-+----------------+-----------+-------------+-------------------------------+---------------+--------------------------------------------+\r
-\r
-\r
-LicenseDemands Object:\r
-\r
-+--------------------+-----------+-------------+----------------------+---------------+-----------------------------------------------------------------+\r
-| Attribute          | Qualifier | Cardinality | Content              | Domain Values | Description                                                     |\r
-+====================+===========+=============+======================+===============+=================================================================+\r
-| resourceModuleName | M         | 1           | String               | -             | A resource name as defined in a service model.                  |\r
-+--------------------+-----------+-------------+----------------------+---------------+-----------------------------------------------------------------+\r
-| serviceResourceId  | M         | 1           | String               | -             | A unique resource Id with a local scope between client and OOF. |\r
-+--------------------+-----------+-------------+----------------------+---------------+-----------------------------------------------------------------+\r
-| resourceModelInfo  | M         | 1           | ModelMetaData Object | -             | Resource model information as defined in a service model.       |\r
-+--------------------+-----------+-------------+----------------------+---------------+-----------------------------------------------------------------+\r
-| existingLicenses   | O         | 1           | LicenseModel Object  | -             | Existing license information assigned to a resource.            |\r
-+--------------------+-----------+-------------+----------------------+---------------+-----------------------------------------------------------------+\r
-\r
-\r
-LicenseModel Object:\r
-\r
-+---------------------+-----------+-------------+-----------------+---------------+----------------------------------------------------+\r
-| Attribute           | Qualifier | Cardinality | Content         | Domain Values | Description                                        |\r
-+=====================+===========+=============+=================+===============+====================================================+\r
-| entitlementPoolUUID | M         | 1..N        | List of Strings | -             | Entitlement pool UUIDs associated with a resource. |\r
-+---------------------+-----------+-------------+-----------------+---------------+----------------------------------------------------+\r
-| licenseKeyGroupUUID | M         | 1..N        | List of Strings | -             | License key groups associated with a resource      |\r
-+---------------------+-----------+-------------+-----------------+---------------+----------------------------------------------------+\r
-\r
-\r
-Synchronous Response Body:\r
-\r
-+---------------+-----------+-------------+-------------+------------------+------------------------------------------------------------------------+\r
-| Attribute     | Qualifier | Cardinality | Content     | Domain Values    | Description                                                            |\r
-+===============+===========+=============+=============+==================+========================================================================+\r
-| requestId     | M         | 1           | UUID/String | -                | A unique Id for an ONAP transaction.                                   |\r
-+---------------+-----------+-------------+-------------+------------------+------------------------------------------------------------------------+\r
-| transactionId | M         | 1           | UUID/String | -                | A unique ID to track multiple requests associated with a transaction.  |\r
-+---------------+-----------+-------------+-------------+------------------+------------------------------------------------------------------------+\r
-| statusMessage | O         | 1           | String      | -                | Reasoning if a requestStatus is failure.                               |\r
-+---------------+-----------+-------------+-------------+------------------+------------------------------------------------------------------------+\r
-| requestStatus | M         | 1           | String      | success, failure | The status of a request.                                               |\r
-+---------------+-----------+-------------+-------------+------------------+------------------------------------------------------------------------+\r
-\r
-\r
-Asynchronous Response Body:\r
-\r
-+---------------+-----------+-------------+-----------------+---------------+------------------------------------------------------------------------+\r
-| Attribute     | Qualifier | Cardinality | Content         | Domain Values | Description                                                            |\r
-+===============+===========+=============+=================+===============+========================================================================+\r
-| requestId     | M         | 1           | UUID/String     | -             | A unique Id for an ONAP transaction.                                   |\r
-+---------------+-----------+-------------+-----------------+---------------+------------------------------------------------------------------------+\r
-| transactionId | M         | 1           | UUID/String     | -             | A unique ID to track multiple requests associated with a transaction.  |\r
-+---------------+-----------+-------------+-----------------+---------------+------------------------------------------------------------------------+\r
-| statusMessage | O         | 1           | String          | -             | Reasoning if requestStatus is failure.                                 |\r
-+---------------+-----------+-------------+-----------------+---------------+------------------------------------------------------------------------+\r
-| requestStatus | M         | 1           | String          | success,      | The status of a request.                                               |\r
-|               |           |             |                 | failure,      |                                                                        |\r
-|               |           |             |                 | pending      |                                                                         |\r
-+---------------+-----------+-------------+-----------------+---------------+------------------------------------------------------------------------+\r
-| solutions     | M         | 1           | Solution Object | -             | Solutions related to a request.                                        |\r
-+---------------+-----------+-------------+-----------------+---------------+------------------------------------------------------------------------+\r
-\r
-\r
-Solutions Object:\r
-\r
-+--------------------+-----------+-------------+--------------------------------------+---------------+--------------------------------+\r
-| Attribute          | Qualifier | Cardinality | Content                              | Domain Values | Description                    |\r
-+====================+===========+=============+======================================+===============+================================+\r
-| placementSolutions | M         | 1..N        | List of ComprehensiveSolution Object | -             | A list of placement solutions. |\r
-+--------------------+-----------+-------------+--------------------------------------+---------------+--------------------------------+\r
-| licenseSolutions   | M         | 1           | List of LicenseSolution Object       | -             | A list of license solutions    |\r
-+--------------------+-----------+-------------+--------------------------------------+---------------+--------------------------------+\r
-\r
-\r
-\r
-ComprehensiveSolution Object:\r
-\r
-+-----------+-----------+-------------+----------------------------------+---------------+--------------------------------+\r
-| Attribute | Qualifier | Cardinality | Content                          | Domain Values | Description                    |\r
-+===========+===========+=============+==================================+===============+================================+\r
-| -         | M         | 1..N        | List of PlacementSolution Object | -             | A list of placement solutions. |\r
-+-----------+-----------+-------------+----------------------------------+---------------+--------------------------------+\r
-\r
-\r
-PlacementSolution Object:\r
-\r
-+--------------------+-----------+-------------+------------------------+---------------------+---------------------------------------------------------+\r
-| Attribute          | Qualifier | Cardinality | Content                | Domain Values       | Description                                             |\r
-+====================+===========+=============+========================+=====================+=========================================================+\r
-| resourceModuleName | M         | 1           | String                 | -                   | The name of a resource as defined in the service model. |\r
-+--------------------+-----------+-------------+------------------------+---------------------+---------------------------------------------------------+\r
-| serviceResourceId  | M         | 1           | String                 | -                   | A resource Id as defined in a service model.            |\r
-+--------------------+-----------+-------------+------------------------+---------------------+---------------------------------------------------------+\r
-| identifierType     | M         | 1           | String                 | service_instance_id | The type of a candidate.                                |\r
-+--------------------+-----------+-------------+------------------------+---------------------+---------------------------------------------------------+\r
-| identifier         | M         | 1           | String                 | -                   | The id of a candidate.                                  |\r
-+--------------------+-----------+-------------+------------------------+---------------------+---------------------------------------------------------+\r
-| assignmentInfo     | O         | 1..N        | List of AssignmentInfo | -                   | Additional information related to a candidate.          |\r
-|                    |           |             | object                 |                     |                                                         |\r
-+--------------------+-----------+-------------+------------------------+---------------------+---------------------------------------------------------+\r
-\r
-\r
-AssignmentInfo Object:\r
-\r
-+-----------+-----------+-------------+---------+---------------+---------------------+\r
-| Attribute | Qualifier | Cardinality | Content | Domain Values | Description         |\r
-+===========+===========+=============+=========+===============+=====================+\r
-| key       | M         | 1           | String  | -             | An attribute name.  |\r
-+-----------+-----------+-------------+---------+---------------+---------------------+\r
-| value     | M         | 1           | String  | -             | An attribute value. |\r
-+-----------+-----------+-------------+---------+---------------+---------------------+\r
-\r
-\r
-LicenseSolutions Object:\r
-\r
-+------------------------------+-----------+-------------+----------------+---------------+------------------------------------------+\r
-| Attribute                    | Qualifier | Cardinality | Content        | Domain Values | Description                              |\r
-+==============================+===========+=============+================+===============+==========================================+\r
-| resourceModuleName           | M         | 1           | String         | -             | A resource name as defined in a service. |\r
-+------------------------------+-----------+-------------+----------------+---------------+------------------------------------------+\r
-| serviceResourceId            | M         | 1           | String         | -             | A resource Id as defined in a service.   |\r
-+------------------------------+-----------+-------------+----------------+---------------+------------------------------------------+\r
-| entitlementPoolUUID          | M         | 1..N        | List of String | -             | A list of entitlementPoolUUIDs.          |\r
-+------------------------------+-----------+-------------+----------------+---------------+------------------------------------------+\r
-| licenseKeyGroupUUID          | M         | 1..N        | List of String | -             | A list of licenseKeyGroupUUID.           |\r
-+------------------------------+-----------+-------------+----------------+---------------+------------------------------------------+\r
-| entitlementPoolInvariantUUID | M         | 1..N        | List of String | -             | A list of entitlementPoolInvariantUUID . |\r
-+------------------------------+-----------+-------------+----------------+---------------+------------------------------------------+\r
-| licenseKeyGroupInvariantUUID | M         | 1..N        | List of String | -             | A list of licenseKeyGroupInvariantUUID . |\r
-+------------------------------+-----------+-------------+----------------+---------------+------------------------------------------+\r
-\r
-\r
-HTTP Response Code\r
-++++++++++++++++++\r
-\r
-+-----------+-----------------------+---------------------------------------------------------------+\r
-| HTTP Code | Response Phrase       | Description                                                   |\r
-+===========+=======================+===============================================================+\r
-| 201       | Created               | An optimization solution is found.                            |\r
-+-----------+-----------------------+---------------------------------------------------------------+\r
-| 202       | Accepted              | An optimization request is accepted.                          |\r
-+-----------+-----------------------+---------------------------------------------------------------+\r
-| 400       | Bad request           | Bad request.                                                  |\r
-+-----------+-----------------------+---------------------------------------------------------------+\r
-| 401       | Unauthorized          | Request body is not compliant with the API definition.        |\r
-+-----------+-----------------------+---------------------------------------------------------------+\r
-| 404       | Not found             | The server cannot find the requested URI.                     |\r
-+-----------+-----------------------+---------------------------------------------------------------+\r
-| 405       | Method not found      | The requested method is not supported by a server.            |\r
-+-----------+-----------------------+---------------------------------------------------------------+\r
-| 500       | Internal server error | The server encountered an internal server error or timed out. |\r
-+-----------+-----------------------+---------------------------------------------------------------+\r
-\r
-\r
-\r
+.. 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. |
++-----------+-----------------------+---------------------------------------------------------------+
+
+
+