--- /dev/null
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.\r
+.. http://creativecommons.org/licenses/by/4.0\r
+\r
+OOF-HAS Beijing Interfaces\r
+==========================\r
+\r
+OOF-HAS APIs\r
+============\r
+\r
+Create/Update a homing optimization service instance\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 Headers:\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
+| 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 resoruce. |\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 tranck 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
+Asyncronous 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 tranck 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 reequest 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