.. This work is licensed under a Creative Commons Attribution 4.0 International License.
.. http://creativecommons.org/licenses/by/4.0
.. Copyright 2018 Huawei Technologies Co., Ltd.

e2eServiceInstances API
=======================

This API allows to manage:

- e2eServiceInstances (create and delete)
- operations on e2eServiceInstances (get)


Create E2E service instance
+++++++++++++++++++++++++++

+--------------------+------------------------------------------------------------+
|Interface Definition|Description                                                 |
+====================+============================================================+
|URI                 |/onap/so/infra/e2eServiceInstances/v3                       |
+--------------------+------------------------------------------------------------+
|Operation Type      |POST                                                        |
+--------------------+------------------------------------------------------------+
|Content-Type        |application/json                                            |
+--------------------+------------------------------------------------------------+

Request Body:

+---------+---------+-----------+--------------------------+-----------------------------+
|Attribute|Qualifier|Cardinality|Content                   |Description                  |
+=========+=========+===========+==========================+=============================+
|service  |M        |1          |Service Object            |Content of service object.   |
+---------+---------+-----------+--------------------------+-----------------------------+

Service Object 

+------------------------------+-----------------+------------------------------------+
|Attribute                     |Content          |Description                         |
+==============================+=================+====================================+
|name                          |String           |Service instance name.              |
+------------------------------+-----------------+------------------------------------+
|description                   |String           |Service instance description        |
+------------------------------+-----------------+------------------------------------+
|serviceUuid                   |String           |Model UUID                          |
+------------------------------+-----------------+------------------------------------+
|serviceInvariantUuid          |String           |Model Invariant UUID                |
+------------------------------+-----------------+------------------------------------+
|gloabalSubscriberId           |String           |Customer Id                         |
+------------------------------+-----------------+------------------------------------+
|serviceType                   |String           |service Type                        |
+------------------------------+-----------------+------------------------------------+
|parameters                    |Object           |Parameter Object                    |
+------------------------------+-----------------+------------------------------------+

Parameter Object

+------------------------------+-----------------+------------------------------------+
|Attribute                     |Content          |Description                         |
+==============================+=================+====================================+
|locationConstraints           |List of object   |location infor for each vnf         |
+------------------------------+-----------------+------------------------------------+
|resource                      |List of Resource |resource of service/resource        |
+------------------------------+-----------------+------------------------------------+
|requestInputs                 |key-value map    |input of service/resource           |
+------------------------------+-----------------+------------------------------------+

LocationConstraint Object

+------------------------------+-----------------+------------------------------------+
|Attribute                     |Content          |Description                         |
+==============================+=================+====================================+
|vnfProfileId                  |String           |Customization id for VNF            |
+------------------------------+-----------------+------------------------------------+
|locationConstraints           |Object           |DC location info of VNF             |
+------------------------------+-----------------+------------------------------------+

VnfLocationConstraint Object

+------------------------------+-----------------+------------------------------------+
|Attribute                     |Content          |Description                         |
+==============================+=================+====================================+
|vimId                         |String           |VIM id from ESR definition          |
+------------------------------+-----------------+------------------------------------+

Resource Object

+------------------------------+-----------------+------------------------------------+
|Attribute                     |Content          |Description                         |
+==============================+=================+====================================+
|resourceName                  |String           |The resource name                   |
+------------------------------+-----------------+------------------------------------+
|resourceInvariantUuid         |String           |The resource invariant UUID.        |
+------------------------------+-----------------+------------------------------------+
|resourceUuid                  |String           |The resource UUID.                  |
+------------------------------+-----------------+------------------------------------+
|resourceCustomizationUuid     |String           |The resource customization UUID.    |
+------------------------------+-----------------+------------------------------------+
|parameters                    |Object           |Parameter of resource               |
+------------------------------+-----------------+------------------------------------+

Response:

+-------------+---------+-----------+-------+------------------------------------------------------------------------+
|Attribute    |Qualifier|Cardinality|Content|Description                                                             |
+-------------+---------+-----------+-------+------------------------------------------------------------------------+
|serviceId    |M        |1          |String |Service instance ID.                                                    |
+-------------+---------+-----------+-------+------------------------------------------------------------------------+
|operationId  |M        |1          |String |Service Operation ID.                                                   |
+-------------+---------+-----------+-------+------------------------------------------------------------------------+

Delete E2E service instance
+++++++++++++++++++++++++++

+--------------------+----------------------------------------------------------------------+
|Interface Definition|Description                                                           |
+====================+======================================================================+
|URI                 |/onap/so/infra/e2eServiceInstances/v3/{serviceId}                     |
+--------------------+----------------------------------------------------------------------+
|Operation Type      |DELETE                                                                |
+--------------------+----------------------------------------------------------------------+

Request Parameters:

+-------------------+---------+-----------+-------+----------------------------------------+
|Attribute          |Qualifier|Cardinality|Content|Description                             |
+===================+=========+===========+=======+========================================+
|globalSubscriberId |M        |1          |String |The subscriber id. It is defined in AAI |
+-------------------+---------+-----------+-------+----------------------------------------+
|serviceType        |M        |1          |String |The service type. It is defined in AAI  |
+-------------------+---------+-----------+-------+----------------------------------------+

Response:

+-------------+---------+-----------+-------+------------------------------------------------------------------------+
|Attribute    |Qualifier|Cardinality|Content|Description                                                             |
+-------------+---------+-----------+-------+------------------------------------------------------------------------+
|operationId  |M        |1          |String |The operation id.                                                       |
+-------------+---------+-----------+-------+------------------------------------------------------------------------+

Query E2E service operation result
++++++++++++++++++++++++++++++++++

+--------------------+-----------------------------------------------------------------------------------------------+
|Interface Definition|Description                                                                                    |
+====================+===============================================================================================+
|URI                 |/onap/so/infra/e2eServiceInstances/v3/{serviceId}/operations/{operationId}                     |
+--------------------+-----------------------------------------------------------------------------------------------+
|Operation Type      |GET                                                                                            |
+--------------------+-----------------------------------------------------------------------------------------------+

Request Parameters:

+--------------+---------+-----------+-------+--------------+
|Attribute     |Qualifier|Cardinality|Content|Description   |
+==============+=========+===========+=======+==============+
|serviceId     |M        |1          |Service instance ID.  |
+--------------+---------+-----------+-------+--------------+
|operationId   |M        |1          |Service Operation ID. |
+--------------+---------+-----------+-------+--------------+

Response:

+------------------+---------+-----------+-------+------------------------------------------------------------------------+
|Attribute         |Qualifier|Cardinality|Content|Description                                                             |
+------------------+---------+-----------+-------+------------------------------------------------------------------------+
|operation         |M        |1          |String |Operation object identify.                                              |
+------------------+---------+-----------+-------+------------------------------------------------------------------------+
|operationId       |M        |1          |String |Operation ID.                                                           |
+------------------+---------+-----------+-------+------------------------------------------------------------------------+
|operation         |M        |1          |String |Operation type, create|delete.                                          |
+------------------+---------+-----------+-------+------------------------------------------------------------------------+
|result            |M        |1          |String |Operation result: finished, error, processing.                          |
+------------------+---------+-----------+-------+------------------------------------------------------------------------+
|reason            |M        |1          |String |If failing, need to write fail reason.                                  |
+------------------+---------+-----------+-------+------------------------------------------------------------------------+
|userId            |M        |1          |String |Operation user ID.                                                      |
+------------------+---------+-----------+-------+------------------------------------------------------------------------+
|operationContent  |M        |1          |String |The status detail of current operation which is being executing.        |
+------------------+---------+-----------+-------+------------------------------------------------------------------------+
|progress          |M        |1          |String |Current operation progress.                                             |
+------------------+---------+-----------+-------+------------------------------------------------------------------------+
|operateAt         |M        |1          |String |Time that it starts to execute operation.                               |
+------------------+---------+-----------+-------+------------------------------------------------------------------------+
|finishedAt        |M        |1          |String |Time that it finished executing operation.                              |
+------------------+---------+-----------+-------+------------------------------------------------------------------------+
