Add OOF API documentation

Add OOF API documentation

Change-Id: I9adc172093cd547f4ddd3f07b1070054fbe0b3f1
Issue-ID: SO-660
Signed-off-by: subhash kumar singh <subhash.kumar.singh@huawei.com>
diff --git a/docs/SO_Interface.rst b/docs/SO_Interface.rst
index c43fa67..15e75fa 100644
--- a/docs/SO_Interface.rst
+++ b/docs/SO_Interface.rst
@@ -4289,4 +4289,191 @@
 |401               |Unauthorized         |
 +------------------+---------------------+
 |500               |Error                |
-+------------------+---------------------+
\ No newline at end of file
++------------------+---------------------+
+
+
+OOF/HAS create update API
++++++++++++++++++++++++++
+
++--------------------+--------------------------+
+|Interface Definition|Description               |
++====================+==========================+
+|URI                 |/api/oof/v1/placement     |
++--------------------+--------------------------+
+|Operation Type      |POST                      |
++--------------------+--------------------------+
+
+
+Request Parameters:
+
++-------------------+---------+-----------+-------+-------------------------------------------------------------+
+|Attribute          |Required |Cardinality|Content|Description                                                  |
++===================+=========+===========+=======+=============================================================+
+|requestInfo        |Y        |1          |Object |The content of the RequestInfo object.                       |
++-------------------+---------+-----------+-------+-------------------------------------------------------------+
+|placementInfo      |Y        |1          |Object |The Content of the PlacementInfo object.                     |
++-------------------+---------+-----------+-------+-------------------------------------------------------------+
+|licenseInfo        |N        |1          |Object |The Content of the LicenseInfo object.                       |
++-------------------+---------+-----------+-------+-------------------------------------------------------------+
+|serviceInfo        |Y        |1          |Object |The Content of the ServiceInfo object.                       |
++-------------------+---------+-----------+-------+-------------------------------------------------------------+
+
+
++-------------------+---------+-----------+-------+-----------------------------------------------------------------------+
+|Attribute          |Required |Cardinality|Content|Description                                                            |
++===================+=========+===========+=======+=======================================================================+
+|transactionId      |Y        |1          |String |A unique ID to track an ONAP transaction.                              |
++-------------------+---------+-----------+-------+-----------------------------------------------------------------------+
+|requestId          |Y        |1          |String |A unique ID to track multiple requests.                                |
++-------------------+---------+-----------+-------+-----------------------------------------------------------------------+
+|callbackUrl        |Y        |1          |String |The end point of a callback service where recommendations are posted.  |
++-------------------+---------+-----------+-------+-----------------------------------------------------------------------+
+|callbackHeader	    |N	      |1	      |String |The header information a client expecting in a async callback.         |
++-------------------+---------+-----------+-------+-----------------------------------------------------------------------+
+|sourceId           |Y        |1          |String |The unique ID of a client making an optimization call.                 |
++-------------------+---------+-----------+-------+-----------------------------------------------------------------------+
+|requestType        |Y        |1          |String |The type of a request                                                  |
++-------------------+---------+-----------+-------+-----------------------------------------------------------------------+
+|numSolutions       |N        |1          |Integer|Expected number of solutions.                                          |
++-------------------+---------+-----------+-------+-----------------------------------------------------------------------+
+|optimizers         |Y        |1..N       |List of Strings|A list of optimization services.                               |
++-------------------+---------+-----------+-------+-----------------------------------------------------------------------+
+|timeout            |N        |1          |Integer|A tolerance window (in secs) for expecting solutions. Default is 600 secs.|
++-------------------+---------+-----------+-------+-----------------------------------------------------------------------+
+
+
+PlacementInfo Object
+
++-------------------+---------+-----------+-------+-------------------------------------------------------------+
+|Attribute          |Required |Cardinality|Content|Description                                                  |
++===================+=========+===========+=======+=============================================================+
+|requestParameters  |C        |1          |String |A JSON object conaining service and customer-specific data. A client or service designer is required to specify the parameters of interest for a given service and their location in the JSON blob through optimization query policies. This attribute is only required if a request contains service or customer-specific information.|
++-------------------+---------+-----------+-------+-----------------------------------------------------------------------+
+|placementDemands   |Y        |1..N       |List of PlacementDemand Object|The resource information for a placement service.|
++-------------------+---------+-----------+-------+-----------------------------------------------------------------------+
+|subscriberInfo	    |N	      |1	      |Object |The information of a service subscriber.                               |
++-------------------+---------+-----------+-------+-----------------------------------------------------------------------+
+
+PlacementDemand Object
+
++-------------------+---------+-----------+-------+-----------------------------------------------------------------------+
+|Attribute          |Required |Cardinality|Content|Description                                                            |
++===================+=========+===========+=======+=======================================================================+
+|resourceModuleName |Y        |1          |String |A resource name as defined in a service model.                         |
++-------------------+---------+-----------+-------+-----------------------------------------------------------------------+
+|serviceResourceId  |Y        |1          |String |A unique resource Id with a local scope between client and OOF.        |
++-------------------+---------+-----------+-------+-----------------------------------------------------------------------+
+|tenantId           |N        |1          |String |A tenant Id as defined in the ordering system.                         |
++-------------------+---------+-----------+-------+-----------------------------------------------------------------------+
+|resourceModelInfo  |Y        |1          |Object |Resource model information as defined in SDC.                          |
++-------------------+---------+-----------+-------+-----------------------------------------------------------------------+
+|existingCandidates |N        |1..N       |List of Candidates Objects | The existing placement information of a resource. |
++-------------------+---------+-----------+-------+-----------------------------------------------------------------------+
+|excludedCandidates |N        |1..N       |List of Candidates Objects |Candidates that need to be excluded from solutions.|
++-------------------+---------+-----------+-------+-----------------------------------------------------------------------+
+|requiredCandidates |N        |1..N       |List of Candidates Objects |Candidates that must be included in solutions.     |
++-------------------+---------+-----------+-------+-----------------------------------------------------------------------+
+
+
+SubscriberInfo Object
+
++-------------------+---------+-----------+-------+-----------------------------------------------------------------------+
+|Attribute          |Required |Cardinality|Content|Description                                                            |
++===================+=========+===========+=======+=======================================================================+
+|globalSubscriberId |Y        |1          |String |An ID of a subscriber.                                                 |
++-------------------+---------+-----------+-------+-----------------------------------------------------------------------+
+|subscriberName     |Y        |1.N        |String |The name of a subscriber. If the name is not known, the value must be 'unknown'.|
++-------------------+---------+-----------+-------+-----------------------------------------------------------------------+
+|subscriberCommonSiteId	|N	  |1	      |String |Id representing a subscriber location.                                 |
++-------------------+---------+-----------+-------+-----------------------------------------------------------------------+
+
+ModelMetaData Object
+
++-------------------+---------+-----------+-------+-----------------------------------------------------------------------+
+|Attribute          |Required |Cardinality|Content|Description                                                            |
++===================+=========+===========+=======+=======================================================================+
+|modelInvariantId   |Y        |1          |String |A model invariant Id as defined in a service model.                    |
++-------------------+---------+-----------+-------+-----------------------------------------------------------------------+
+|modelVersionId     |Y        |1          |String |A unique model Id as defined in a service model.                       |
++-------------------+---------+-----------+-------+-----------------------------------------------------------------------+
+|modelName          |N        |1          |String |A model name as defined in a service model.                            |
++-------------------+---------+-----------+-------+-----------------------------------------------------------------------+
+|modelType          |N        |1          |String |A model type as defined in a service model.                            |
++-------------------+---------+-----------+-------+-----------------------------------------------------------------------+
+|modelVersion       |N        |1          |String |A model version as defined in a service model.                         |
++-------------------+---------+-----------+-------+-----------------------------------------------------------------------+
+|modelCustomizationName |N    |1          |String |A model customization name as defined in a service model.              |
++-------------------+---------+-----------+-------+-----------------------------------------------------------------------+
+
+
+Candidates Object
+
++-------------------+---------+-----------+-------+-----------------------------------------------------------------------+
+|Attribute          |Required |Cardinality|Content|Description                                                            |
++===================+=========+===========+=======+=======================================================================+
+|identifierType     |Y        |1          |String |The type of a candidate.                                               |
++-------------------+---------+-----------+-------+-----------------------------------------------------------------------+
+|identifiers        |Y        |1..N       |List   |A list of identifiers.                                                 |
++-------------------+---------+-----------+-------+-----------------------------------------------------------------------+
+|cloudOwner	        |C	      |1	      |String |The name of a cloud owner. Only required if identifierType is cloud_region_id.|
++-------------------+---------+-----------+-------+-----------------------------------------------------------------------+
+
+
+ServiceInfo Object
+
++-------------------+---------+-----------+-------+-----------------------------------------------------------------------+
+|Attribute          |Required |Cardinality|Content|Description                                                            |
++===================+=========+===========+=======+=======================================================================+
+|serviceInstanceId  |Y        |1          |String |A service instance id associated with a request.                       |
++-------------------+---------+-----------+-------+-----------------------------------------------------------------------+
+|modelInfo          |Y        |1          |ModelMetaData Object |A list of identifiers.                                   |
++-------------------+---------+-----------+-------+-----------------------------------------------------------------------+
+|serviceName	    |Y	      |1	      |String |The name of a service                                                  |
++-------------------+---------+-----------+-------+-----------------------------------------------------------------------+
+
+LicenseInfo Object
+
++-------------------+---------+-----------+-------+-----------------------------------------------------------------------+
+|Attribute          |Required |Cardinality|Content|Description                                                            |
++===================+=========+===========+=======+=======================================================================+
+|licenseDemands     |Y        |1..N       |List of LicenseDemands Object |A list of resources for license selection.      |
++-------------------+---------+-----------+-------+-----------------------------------------------------------------------+
+
+LicenseDemand Object
+
++-------------------+---------+-----------+-------+-----------------------------------------------------------------------+
+|Attribute          |Required |Cardinality|Content|Description                                                            |
++===================+=========+===========+=======+=======================================================================+
+|resourceModuleName |Y        |1          |String |A resource name as defined in a service model.                         |
++-------------------+---------+-----------+-------+-----------------------------------------------------------------------+
+|serviceResourceId  |Y        |1          |String |A unique resource Id with a local scope between client and OOF.        |
++-------------------+---------+-----------+-------+-----------------------------------------------------------------------+
+|resourceModelInfo  |Y        |1          |ModelMetaData Object |Resource model information as defined in a service model.|
++-------------------+---------+-----------+-------+-----------------------------------------------------------------------+
+|existingLicenses   |N        |1          |LicenseModel Object  |Existing license information assigned to a resource.     |
++-------------------+---------+-----------+-------+-----------------------------------------------------------------------+
+
+LicenseModel Object
+
++-------------------+---------+-----------+-------+-----------------------------------------------------------------------+
+|Attribute          |Required |Cardinality|Content|Description                                                            |
++===================+=========+===========+=======+=======================================================================+
+|entitlementPoolUUID|Y        |1..N       |List   |Entitlement pool UUIDs associated with a resource.                     |
++-------------------+---------+-----------+-------+-----------------------------------------------------------------------+
+|licenseKeyGroupUUID|Y        |1..N       |List   |License key groups associated with a resource.                         |
++-------------------+---------+-----------+-------+-----------------------------------------------------------------------+
+
+
+Response Body
+
++-------------------+---------+-----------+-------+-----------------------------------------------------------------------+
+|Attribute          |Required |Cardinality|Content|Description                                                            |
++===================+=========+===========+=======+=======================================================================+
+|requestId          |Y        |1          |String |A unique Id for an ONAP transaction.                                   |
++-------------------+---------+-----------+-------+-----------------------------------------------------------------------+
+|transactionId      |Y        |1          |String |A unique ID to track multiple requests associated with a transaction.  |
++-------------------+---------+-----------+-------+-----------------------------------------------------------------------+
+|statusMessage      |N        |1          |String |Reasoning if a requestStatus is failed.                                |
++-------------------+---------+-----------+-------+-----------------------------------------------------------------------+
+|requestStatus      |Y        |1          |String |The status of a request.                                               |
++-------------------+---------+-----------+-------+-----------------------------------------------------------------------+
\ No newline at end of file