.. ============LICENSE_START==========================================
.. ===================================================================
.. Copyright © 2017-2018 AT&T Intellectual Property. All rights reserved.
.. ===================================================================
.. Licensed under the Creative Commons License, Attribution 4.0 Intl.  (the "License");
.. you may not use this documentation except in compliance with the License.
.. You may obtain a copy of the License at
.. 
..  https://creativecommons.org/licenses/by/4.0/
.. 
.. Unless required by applicable law or agreed to in writing, software
.. distributed under the License is distributed on an "AS IS" BASIS,
.. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
.. See the License for the specific language governing permissions and
.. limitations under the License.
.. ============LICENSE_END============================================
.. ECOMP is a trademark and service mark of AT&T Intellectual Property.

.. _appc_api_guide:

==================
APPC LCM API Guide
==================

Introduction
============

This guide describes the APPC API that allows you to manage and control the life cycle of controlled virtual network functions (VNFs).


Target Audience
---------------
This document is intended for an advanced technical audience, such as the engineers or architects who need to use this guide to develop an interfacing application. The guide assumes a knowledge of the Open Network Automation Platform (ONAP) components and features, and familiarity with JSON notation.


Life Cycle Management Commands
==============================

APPC receives commands from external ONAP components, such as SO, Policy, DCAE, or the Portal, to manage the life cycle of virtual applications and their components.

A virtual application is composed of the following layers of network technology:

- Virtual Network Function (VNF)
- Virtual Network Function Component (VNFC)
- Virtual Machine (VM)

A Life Cycle Management (LCM) command may affect one or more of these layers.

An LCM command is sent as a request to the APPC using an HTTP POST request or in a message on a message bus (DMaaP).  A request may result in either a single synchronous response or multiple asynchronous responses:

- An **asynchronous** command, which is sent as an authorized and valid request, results in at least two discrete response events:
    - an accept response, to indicate that the request is accepted for processing
    - a final response to indicate the status and outcome of the request processing
    - An unauthorized or invalid request results in a single ERROR response.

- A **synchronous** command, such as Lock or Unlock, results in a single response that is either SUCCESS or ERROR.

**NOTE:** For both asynchronous or synchronous commands, the first response is always returned using the same transport that the initial action used. For example, if the action request was via the message bus (such as when it originates from Policy), then the response is also via the message bus. However, if the request was via a direct HTTP call, the response is similarly a synchronous HTTP response.


Message Bus and the LCM API Client Library
------------------------------------------

The recommended approach for sending/receiving requests to APPC is via the message bus.   To support this approach, an APPC client library is available and should be used.  The client library aims to provide consumers of APPC capabilities with a strongly-typed Java interface and to encapsulate the actual interaction with APPC component via the message bus.

For more details, see the APPC Client Library Guide at:

  :ref:`appc_client_library`


The client library supports both synchronous and asynchronous flows as follows.

Asynchronous Flow
^^^^^^^^^^^^^^^^^

- The APPC Client Library is called via an asynchronous API using a full command object, which is mapped to a JSON representation.
- The APPC client calls the message bus client and sends the JSON command to a configured topic.
- The APPC client pulls response messages from the configured topic.
- On receiving the response for the command, APPC client runs the relevant callback method of the consumer ResponseHandler.

Synchronous Flow
^^^^^^^^^^^^^^^^

- The APPC Client Library is called via a synchronous API using a full command object, which is mapped to a JSON representation.
- The APPC client calls the message bus client and sends the JSON command to a configured topic.
- The APPC client pulls response messages from the configured topic.
- On receiving the final response for the command, the APPC client returns the response object with a final status.

The client library adds the following wrapper around request and responses to the LCM API (described below)::

    {
        "version" : "2.0",
        "cambria.partition" : "<TOPIC>",
        "correlation-id" :"<CORRELATION_ID>",
        "rpc-name" : "<RPC_NME>",
        "type" : <MESSAGE_TYPE>
        "body" : <RPC_SPECIFIC_BODY>
    }



Table 1 Request / Response Message Fields

+----------------------+----------------------------------------------------------------------------------------------------------------+---------------------+
| **Field**            | **Description**                                                                                                | **Required**        |
+======================+================================================================================================================+=====================+
| version              | Indicates the version of the message bus protocol with APPC. Version 2.0 should be used.                       |     Yes             |
+----------------------+----------------------------------------------------------------------------------------------------------------+---------------------+
| cambria. partition   | Indicates the specific topic partition that the message is intended for. For example:                          |     No              |
|                      |                                                                                                                |                     |
|                      | -  For incoming messages, this value should be ``APPC``.                                                       |                     |
|                      |                                                                                                                |                     |
+----------------------+----------------------------------------------------------------------------------------------------------------+---------------------+
| correlation- id      | Correlation ID used for associating responses in APPC Client Library.                                          |     Yes             |
|                      | Built as: ``<request-id>-<sub-request-id>``                                                                    |                     |
+----------------------+----------------------------------------------------------------------------------------------------------------+---------------------+
| rpc-name             | The target Remote Processing Call (RPC) name which should match the LCM command name. For example:``configure``|     Yes             |
|                      |                                                                                                                |                     |
|                      | The convention for RPC names and the target URL is that multi-word command names should have a dash between    |                     |
|                      | words, e.g.,                                                                                                   |                     |
|                      | /restconf/operations/appc-provider-lcm:action-status                                                           |                     |
+----------------------+----------------------------------------------------------------------------------------------------------------+---------------------+
| type                 | Message type: request, response or error                                                                       |     Yes             |
+----------------------+----------------------------------------------------------------------------------------------------------------+---------------------+
| body                 | Contains the input or output LCM command content, which is either the request or response                      |                     |
|                      | The body field format is identical to the equivalent HTTP Rest API command based on the specific RPC name.     |     Yes             |
|                      | For example::                                                                                                  |                     |
|                      |                                                                                                                |                     |
|                      |     {                                                                                                          |                     |
|                      |     "input" : {                                                                                                |                     |
|                      |                 "common-header" : {...}                                                                        |                     |
|                      |                 "action" : "configure",                                                                        |                     |
|		       |				 "action-identifiers" : {...},                                                  |                     |
|                      |                 "payload": "..."                                                                               |                     |
|                      |     }                                                                                                          |                     |
+----------------------+----------------------------------------------------------------------------------------------------------------+---------------------+


Generic Request Format
----------------------

The LCM API general request format is applicable for both POST HTTP API and for the message body received via the message bus.

LCM Request
^^^^^^^^^^^

The LCM request comprises a common header and a section containing the details of the LCM action.
The LCM request conforms to the following structure::

    {
    "input": {
                "common-header": {"timestamp": "<TIMESTAMP>",
                                        "api-ver": "<API_VERSION>",
                                        "originator-id": "<SYSTEM_ID>",
                                        "request-id": "<REQUEST_ID>",
                                        "sub-request-id": "<SUBREQUEST_ID>",
                                        "flags": {
                                                   "mode": "<EXCLUSIVE|NORMAL>",
                                                   "force": "<TRUE|FALSE>",
                                                   "ttl": "<TTL_VALUE>"
                                                 }
                                 },
                "action": "<COMMAND_ACTION>",
                "action-identifiers": {
                                        "vnf-id": "<VNF_ID>",
                                        "vnfc-name": "<VNFC_NAME>",
                                        "vserver-id": "VSERVER_ID"
                                      },
                ["payload": "<PAYLOAD>"]
             }
    }


Table 2 LCM Request Fields

+---------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+
|     **Field**             |     **Description**                                                                                                                                                                                                                                                                                                    |     **Required?**   |
+===========================+========================================================================================================================================================================================================================================================================================================================+=====================+
|     input                 |     The block that defines the details of the input to the command processing. Contains the common-header details.                                                                                                                                                                                                     |     Yes             |
+---------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+
|     common- header        |     The block that contains the generic details about a request.                                                                                                                                                                                                                                                       |     Yes             |
+---------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+
|     timestamp             |     The time of the request, in ISO 8601 format, ZULU offset. For example: 2016-08-03T08:50:18.97Z.                                                                                                                                                                                                                    |     Yes             |
|                           |                                                                                                                                                                                                                                                                                                                        |                     |
|                           |     APPC will reject the request if timestamp is in the future (due to clock error), or timestamp is too old (compared to TTL flag)                                                                                                                                                                                    |                     |
+---------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+
|     api-ver               |     Identifies the API version, in X.YY format, where X denotes the major version increased with each APPC release, and YY is the minor release version.                                                                                                                                                               |     Yes             |
|                           |                                                                                                                                                                                                                                                                                                                        |                     |
|                           |     2.00 should be used for all LCM API requests                                                                                                                                                                                                                                                                       |                     |
+---------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+
|     originator-id         |     An identifier of the calling system limited to a length of 40 characters.                                                                                                                                                                                                                                          |     Yes             |
|                           |                                                                                                                                                                                                                                                                                                                        |                     |
|                           |     It can be used for addressing purposes, such as to return an asynchronous response to the correct destination, in particular where there are multiple consumers of APPC APIs.                                                                                                                                      |                     |
+---------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+
|     request-id            |     The UUID for the request ID, limited to a length of 40 characters. The unique OSS/BSS identifier for the request ID that triggers the current LCM action. Multiple API calls can be made with the same request-id.                                                                                                 |     Yes             |
|                           |                                                                                                                                                                                                                                                                                                                        |                     |
|                           |     The request-id is stored throughout the operations performed during a single request.                                                                                                                                                                                                                              |                     |
+---------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+
|     sub-request-id        |     Uniquely identifies a specific LCM or control action, limited to a length of 40 characters. Persists throughout the life cycle of a single request.                                                                                                                                                                |     No              |
+---------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+
|     flags                 | Generic flags that apply to all LCM actions:                                                                                                                                                                                                                                                                           |     No              |
|                           |                                                                                                                                                                                                                                                                                                                        |                     |
|                           | -  "MODE" :                                                                                                                                                                                                                                                                                                            |                     |
|                           |                                                                                                                                                                                                                                                                                                                        |                     |
|                           |    -  "EXCLUSIVE" - reject requests on this VNF while another request is in progress, or                                                                                                                                                                                                                               |                     |
|                           |                                                                                                                                                                                                                                                                                                                        |                     |
|                           |    -  "NORMAL" - allow requests (pending additional validations) on this VNF if there is another request is in progress.                                                                                                                                                                                               |                     |
|                           |                                                                                                                                                                                                                                                                                                                        |                     |
|                           | -  "FORCE" :                                                                                                                                                                                                                                                                                                           |                     |
|                           |    -  TRUE – forces APP-C to process the request regardless of whether there is another request for the VNF or VM in progress.                                                                                                                                                                                         |                     |
|                           |    -  FALSE – default value. Will return an error if there is another action in progress on the same VNF or VM, unless the two actions are allowed in parallel based on a Request Management Model stored in APP-C.                                                                                                    |                     |
|                           |       The model allows some non-disruptive actions such as Lock, Unlock, CheckLock, and ActionStatus to be performed in conjunction with other actions.                                                                                                                                                                |                     |
|                           |                                                                                                                                                                                                                                                                                                                        |                     |
|                           | -  "TTL": <0....N> - The timeout value is used to determine if the request timeout has been exceeded (i.e., if the TTL value is less than the current time minus the timestamp, the request is rejected). The value is in seconds.                                                                                     |                     |
|                           |                                                                                                                                                                                                                                                                                                                        |                     |
|                           |     If no TTL value provided, the default/configurable TTL value is to be used.                                                                                                                                                                                                                                        |                     |
+---------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+
|     action                |     The action to be taken by APPC, for example: Test, Start                                                                                                                                                                                                                                                           |     Yes             |
|                           |                                                                                                                                                                                                                                                                                                                        |                     |
|                           |     These are case-sensitive; e.g.,”Restart” is correct; “restart” is incorrect.                                                                                                                                                                                                                                       |                     | 
|                           |                                                                                                                                                                                                                                                                                                                        |                     |
|                           |     ***NOTE:** The specific value for the action parameter is provided for each command.                                                                                                                                                                                                                               |                     |
+---------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+
|     action-identifiers    |     A block containing the action arguments. These are used to specify the object upon which APPC LCM command is to operate. At least one action-identifier must be specified (note that vnf-id is mandatory). For actions that are at the VM level, the action-identifiers provided would be vnf-id and vserver-id.   |     Yes             |
+---------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+
|     service-instance-id   |     Identifies a specific service instance that the command refers to. When multiple APPC instances are used and applied to a subset of services, this will become significant. The field is mandatory when the vnf-id is empty. Currently not used.                                                                   |     No              |
+---------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+
|     vnf-id                |     Identifies the VNF instance to which this action is to be applied. Required for actions.                                                                                                                                                                                                                           |     Yes             |
+---------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+
|     vnfc-name             |     Identifies the VNFC instance to which this action is to be applied. Required if the action applied to a specific VNFC. Currently not used.                                                                                                                                                                         |     No              |
+---------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+
|     vserver-id            |     Identifies a specific VM instance to which this action is to be applied. Required if the action applied to a specific VM. (Populate the vserver-id field with the UUID of the VM)                                                                                                                                  |     No              |
+---------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+
|     vf-module-id          |     Identifies a specific VF module to which this action is to be applied. Required if the action applied to a specific VF module.                                                                                                                                                                                     |     No              |
+---------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+
|     payload               |     An action-specific open-format field.                                                                                                                                                                                                                                                                              |     No              |
|                           |                                                                                                                                                                                                                                                                                                                        |                     |
|                           |     The payload can be any valid JSON string value. JSON escape characters need to be added when an inner JSON string is included within the payload, for example: ``"{\\" vnf -host- ip                                                                                                                               |                     |
|                           |                                                                                                                                                                                                                                                                                                                        |                     |
|                           |     -address\\": \\"<VNF-HOST-IP-ADDRESS>\\"}"``.                                                                                                                                                                                                                                                                      |                     |
|                           |                                                                                                                                                                                                                                                                                                                        |                     |
|                           |     The payload is typically used to provide parametric data associated with the command, such as a list of configuration parameters.                                                                                                                                                                                  |                     |
|                           |                                                                                                                                                                                                                                                                                                                        |                     |
|                           |     Note that not all LCM commands need have a payload.                                                                                                                                                                                                                                                                |                     |
|                           |                                                                                                                                                                                                                                                                                                                        |                     |
|                           |     ***NOTE:** See discussion below on the use of payloads for self-service actions.                                                                                                                                                                                                                                   |                     |
+---------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+

Request Processing and Validation Logic
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

When a new request is received, APPC applies the following validation logic. For any failure, the request is rejected and an error (300 range) is returned.

1. If the request has timeout out (i.e., the difference between current
   time and the request timestamp value is greater than TTL value in
   request), a timeout error is returned.

2. If the request is a duplicate of an existing request in progress
   (same request-id, sub-request-id, originator-id), a duplicate error
   is returned.

3. If there is a Lock on the vnf-id, reject any new action if it is not
   associated with the locking request-id, a lockout error is returned.

4. If the Force flag = Y, then allow the new action regardless of
   whether there is an action in progress.

5. If the Mode flag = Exclusive on a request in progress, any new
   request is rejected until the request in progress is completed.

6. If request is received and there are one or more requests in
   progress, then the new request is evaluated to determine if there is
   any overlap in scope with the existing requests (for example, a new
   VNF level request would overlap with another request in progress).

   a. If there is no overlap between the new request and requests in
      progress, the new request is accepted. For example, a Start
      request on VM1 and a Stop request on VM2 can be running in
      parallel.

   b. If there is overlap, then only special cases are allowed in
      parallel (for example, Audit and HealthCheck are allowed).


Generic Response Format
-----------------------


This section describes the generic response format.

The response format is applicable for both POST HTTP API and for the message body received via the message bus.


LCM Response
^^^^^^^^^^^^

The LCM response comprises a common header and a section containing the payload and action details.

The LCM response conforms to the following structure::

    {
        "output": {
                    "common-header": {
                                        "api-ver": "<API_VERSION>",
                                        "flags": {
                                                   "ttl": <TTL_VALUE>,
                                                   "force": "<TRUE|FALSE>",
                                                   "mode": "<EXCLUSIVE|NORMAL>"
                                                 },
                                        "originator-id": "<SYSTEM_ID>",
                                        "request-id": "<REQUEST_ID>",
                                        "sub-request-id": "<SUBREQUEST_ID>",
                                        "timestamp": "2016-08-08T23:09:00.11Z",
                                     },
                    "payload": "<PAYLOAD>",
                    [Additional fields],
                    "status": {
                                "code": <RESULT_CODE>,
                                "message": "<RESULT_MESSAGE>"
                              }
                  }
    }


Table 3 LCM Response Fields

+----------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+
|     **Field**        |     **Description**                                                                                                                                                                                                       |     **Required?**   |
+======================+===========================================================================================================================================================================================================================+=====================+
|     output           |     The block that defines the details of the output of the command processing. Contains the ``common-header`` details.                                                                                                   |     Yes             |
+----------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+
|     common- header   |     The block that contains the generic details about a request.                                                                                                                                                          |     Yes             |
+----------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+
|     api-ver          |     Identifies the API version, in X.YY format, where X denotes the major version increased with each APPC release, and YY is the minor release version.                                                                  |     Yes             |
|                      |                                                                                                                                                                                                                           |                     |
|                      |     -  2.00 should be used for all LCM API requests                                                                                                                                                                       |                     |
+----------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+
|     originator-id    |     An identifier of the calling system limited to a length of 40 characters.                                                                                                                                             |     Yes             |
|                      |                                                                                                                                                                                                                           |                     |
|                      |     It can be used for addressing purposes, such as to return an asynchronous response to the correct destination, in particular where there are multiple consumers of APPC APIs.                                         |                     |
+----------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+
|     request-id       |     The UUID for the request ID, limited to a length of 40 characters. The unique OSS/BSS identifier for the request ID that triggers the current LCM action. Multiple API calls can be made with the same request- id.   |     Yes             |
|                      |                                                                                                                                                                                                                           |                     |
|                      |     The request-id is stored throughout the operations performed during a single request.                                                                                                                                 |                     |
+----------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+
|     sub-request-id   |     Uniquely identifies a specific LCM or control action, limited to a length of 40 characters. Persists throughout the life cycle of a single request.                                                                   |     No              |
+----------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+
|     timestamp        |     The time of the request, in ISO 8601 format, ZULU offset. For example: ``2016-08-03T08:50:18.97Z``.                                                                                                                   |     Yes             |
+----------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+
|     status           |     The status describes the outcome of the command processing. Contains a ``code`` and a ``message`` providing success or failure details.                                                                               |     Yes             |
|                      |                                                                                                                                                                                                                           |                     |
|                      |     ***NOTE:** See* status *for code values.*                                                                                                                                                                             |                     |
+----------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+
|     payload          |     An open-format field.                                                                                                                                                                                                 |     No              |
|                      |                                                                                                                                                                                                                           |                     |
|                      |     The payload can be any valid JSON string value. JSON escape characters need to be added when an inner JSON string is included within the payload, for example: ``"{\\"upload\_config\_id\\": \\"<value\\"}"``.        |                     |
|                      |                                                                                                                                                                                                                           |                     |
|                      |     The payload is typically used to provide parametric data associated with the response to the command.                                                                                                                 |                     |
|                      |                                                                                                                                                                                                                           |                     |
|                      |     Note that not all LCM commands need have a payload.                                                                                                                                                                   |                     |
|                      |                                                                                                                                                                                                                           |                     |
|                      |     ***NOTE:** The specific value(s) for the response payload, where relevant, is provided for in each* command *description.*                                                                                            |                     |
+----------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+
|     [Field name]     |     Additional fields can be provided in the response, if needed, by specific commands.                                                                                                                                   |     No              |
+----------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+
|     code             |     A unique pre-defined value that identifies the exact nature of the success or failure status.                                                                                                                         |     No              |
+----------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+
|     message          |     The description of the success or failure status.                                                                                                                                                                     |     No              |
+----------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+


Status Codes
------------

The status code is returned in the response message as the ``code`` parameter, and the description as the message parameter.

The different responses are categorized as follows:

**ACCEPTED**

    Request is valid and accepted for processing.

**ERROR**

    Request invalid or incomplete.

**REJECT**

    Request rejected during processing due to invalid data, such as an
    unsupported command or a non-existent service-instance-id.

**SUCCESS**

    Request is valid and completes successfully.

**FAILURE**

    The request processing resulted in failure.

    A FAILURE response is always returned asynchronously via the message
    bus.

**PARTIAL SUCCESS**

    The request processing resulted in partial success where at least
    one step in a longer process completed successfully.

    A PARTIAL SUCCESS response is always returned asynchronously via the
    message bus.

**PARTIAL FAILURE**

    The request processing resulted in partial failure.

    A PARTIAL FAILURE response is always returned asynchronously via the
    message bus.

+-----------------------+----------------+--------------------------------------------------------------------------------------------------------------------------------------+
|     **Category**      |     **Code**   |     **Message / Description**                                                                                                        |
+=======================+================+======================================================================================================================================+
|     ACCEPTED          |     100        |     ACCEPTED - Request accepted                                                                                                      |
+-----------------------+----------------+--------------------------------------------------------------------------------------------------------------------------------------+
|     ERROR             |     200        |     UNEXPECTED ERROR - ${detailedErrorMsg}                                                                                           |
+-----------------------+----------------+--------------------------------------------------------------------------------------------------------------------------------------+
|     REJECT            |     300        |     REJECTED - ${detailedErrorMsg}                                                                                                   |
+-----------------------+----------------+--------------------------------------------------------------------------------------------------------------------------------------+
|                       |     301        |     INVALID INPUT PARAMETER -${detailedErrorMsg}                                                                                     |
+-----------------------+----------------+--------------------------------------------------------------------------------------------------------------------------------------+
|                       |     302        |     MISSING MANDATORY PARAMETER - Parameter ${paramName} is missing                                                                  |
+-----------------------+----------------+--------------------------------------------------------------------------------------------------------------------------------------+
|                       |     303        |     REQUEST PARSING FAILED - ${detailedErrorMsg}                                                                                     |
+-----------------------+----------------+--------------------------------------------------------------------------------------------------------------------------------------+
|                       |     304        |     NO TRANSITION DEFINED - No Transition Defined for ${actionName} action and ${currentState} state                                 |
+-----------------------+----------------+--------------------------------------------------------------------------------------------------------------------------------------+
|                       |     305        |     ACTION NOT SUPPORTED - ${actionName} action is not supported                                                                     |
+-----------------------+----------------+--------------------------------------------------------------------------------------------------------------------------------------+
|                       |     306        |     VNF NOT FOUND - VNF with ID ${vnfId} was not found                                                                               |
+-----------------------+----------------+--------------------------------------------------------------------------------------------------------------------------------------+
|                       |     307        |     DG WORKFLOW NOT FOUND - No DG workflow found for the combination of ${dgModule} module ${dgName} name and ${dgVersion} version   |
+-----------------------+----------------+--------------------------------------------------------------------------------------------------------------------------------------+
|                       |     308        |     WORKFLOW NOT FOUND - No workflow found for VNF type                                                                              |
|                       |                |                                                                                                                                      |
|                       |                |     ${vnfTypeVersion} and ${actionName} action                                                                                       |
+-----------------------+----------------+--------------------------------------------------------------------------------------------------------------------------------------+
|                       |     309        |     UNSTABLE VNF - VNF ${vnfId} is not stable to accept the command                                                                  |
+-----------------------+----------------+--------------------------------------------------------------------------------------------------------------------------------------+
|                       |     310        |     LOCKING FAILURE -${detailedErrorMsg}                                                                                             |
+-----------------------+----------------+--------------------------------------------------------------------------------------------------------------------------------------+
|                       |     311        |     EXPIREDREQUEST. The request processing time exceeded the maximum available time                                                  |
+-----------------------+----------------+--------------------------------------------------------------------------------------------------------------------------------------+
|                       |     312        |     DUPLICATEREQUEST. The request already exists                                                                                     |
+-----------------------+----------------+--------------------------------------------------------------------------------------------------------------------------------------+
|                       |     313        |     MISSING VNF DATA IN A&AI - ${attributeName} not found for VNF ID =                                                               |
|                       |                |                                                                                                                                      |
|                       |                |     ${vnfId}                                                                                                                         |
+-----------------------+----------------+--------------------------------------------------------------------------------------------------------------------------------------+
|                       |     315        |     MULTIPLE REQUESTS USING SEARCH CRITERIA: ${parameters}                                                                           |
+-----------------------+----------------+--------------------------------------------------------------------------------------------------------------------------------------+
|                       |     316        |     POLICY VALIDATION FAILURE - Request rejected as per the request validation policy                                                |
+-----------------------+----------------+--------------------------------------------------------------------------------------------------------------------------------------+
|     SUCCESS           |     400        |     The request was processed successfully                                                                                           |
+-----------------------+----------------+--------------------------------------------------------------------------------------------------------------------------------------+
|     FAILURE           |     401        |     DG FAILURE - ${ detailedErrorMsg }                                                                                               |
+-----------------------+----------------+--------------------------------------------------------------------------------------------------------------------------------------+
|                       |     402        |     NO TRANSITION DEFINED - No Transition Defined for ${ actionName} action and ${currentState} state                                |
+-----------------------+----------------+--------------------------------------------------------------------------------------------------------------------------------------+
|                       |     403        |     UPDATE\_AAI\_FAILURE - failed to update AAI. ${errorMsg}                                                                         |
+-----------------------+----------------+--------------------------------------------------------------------------------------------------------------------------------------+
|                       |     404        |     EXPIRED REQUEST FAILURE - failed during processing because TTL expired                                                           |
+-----------------------+----------------+--------------------------------------------------------------------------------------------------------------------------------------+
|                       |     405        |     UNEXPECTED FAILURE - ${detailedErrorMsg}                                                                                         |
+-----------------------+----------------+--------------------------------------------------------------------------------------------------------------------------------------+
|                       |     406        |     UNSTABLE VNF FAILURE - VNF ${vnfId} is not stable to accept the command                                                          |
+-----------------------+----------------+--------------------------------------------------------------------------------------------------------------------------------------+
|                       |     450        |     REQUEST NOT SUPPORTED                                                                                                            |
+-----------------------+----------------+--------------------------------------------------------------------------------------------------------------------------------------+
|     PARTIAL SUCCESS   |     500        |     PARTIAL SUCCESS                                                                                                                  |
+-----------------------+----------------+--------------------------------------------------------------------------------------------------------------------------------------+
|     PARTIAL FAILURE   |     501 -      |     PARTIAL FAILURE                                                                                                                  |
|                       |     599        |                                                                                                                                      |
+-----------------------+----------------+--------------------------------------------------------------------------------------------------------------------------------------+


Malformed Message Response
--------------------------

A malformed message is an invalid request based on the LCM API YANG scheme specification. APPC rejects malformed requests as implemented by ODL infrastructure level.

**Response Format for Malformed Requests**::

    {
      "errors": {
                  "error": [
                            {
                              "error-type": "protocol",
                              "error-tag": "malformed-message",
                              "error-message": "<ERROR-MESSAGE>",
                              "error-info": "<ERROR-INFO>"
                            }
                           ]
                }
    }


**Example Response**::

    {
      "errors": {
                  "error": [
                            {
                              "error-type": "protocol",
                              "error-tag": "malformed-message",
                              "error-message": "Error parsing input: Invalid value 'Stopp' for
                               enum type. Allowed values are: [Sync, Audit, Stop, Terminate]",
                              "error-info": "java.lang.IllegalArgumentException: Invalid value
                                'Stopp' for enum type. Allowed values are: [Sync, Audit, Stop,
                                Terminate]..."
                            }
                           ]
                }
    }



API Scope
=========

Defines the level at which the LCM command operates for the current release of APPC and the VNF types which are supported for each command.


Commands, or actions, can be performed at one or more of the following scope levels:


+-----------------+----------------------------------------------------------------------------------------+
| **VNF**         | Commands can be applied at the level of a specific VNF instance using the vnf-id.      |
+-----------------+----------------------------------------------------------------------------------------+
| **VF-Module**   | Commands can be applied at the level of a specific VF-Module using the vf-module-id.   |
+-----------------+----------------------------------------------------------------------------------------+
| **VNFC**        | Commands can be applied at the level of a specific VNFC instance using a vnfc-name.    |
+-----------------+----------------------------------------------------------------------------------------+
| **VM**          | Commands can be applied at the level of a specific VM instance using a vserver-id.     |
+-----------------+----------------------------------------------------------------------------------------+


**VNF/VM Types Supported**

Commands, or actions, may be currently supported on all VNF types or a limited set of VNF types. Note that the intent is to support all actions on all VNF types which have been successfully onboarded in a self-service mode.

  - **Any** Currently supported on any vnf-type.

  - **Any (requires self-service onboarding)** Currently supported on any vnf-type which has been onboarded using the APPC self-service onboarding process. See further discussion on self-service onboarding below.


+------------------------+-----------+------------------+----------------+----------+------------------------------------------------------------+
|     **Command**        | **VNF**   |  **VF-Module**   |     **VNFC**   | **VM**   |     **VNF/VM Types Supported**                             |
+========================+===========+==================+================+==========+============================================================+
|     ActionStatus       | Yes       |                  |                |          |     Any                                                    |
+------------------------+-----------+------------------+----------------+----------+------------------------------------------------------------+
|     AttachVolume       |           |                  |                | Yes      |     Any (uses OpenStack command)                           |
+------------------------+-----------+------------------+----------------+----------+------------------------------------------------------------+
|     Audit              | Yes       |                  |                |          |     Any (requires self-service onboarding)                 |
+------------------------+-----------+------------------+----------------+----------+------------------------------------------------------------+
|     CheckLock          | Yes       |                  |                |          |     Any                                                    |
+------------------------+-----------+------------------+----------------+----------+------------------------------------------------------------+
|     Configure          | Yes       |                  |     Yes        |          |     Any (requires self-service onboarding)                 |
+------------------------+-----------+------------------+----------------+----------+------------------------------------------------------------+
|     ConfigBackup       | Yes       |                  |                |          | Chef and Ansible only (requires self-service onboarding)   |
+------------------------+-----------+------------------+----------------+----------+------------------------------------------------------------+
|     ConfigModify       | Yes       |                  |     Yes        |          |     Any (requires self-service onboarding)                 |
+------------------------+-----------+------------------+----------------+----------+------------------------------------------------------------+
|     ConfigRestore      | Yes       |                  |                |          | Chef and Ansible only (requires self-service onboarding)   |
+------------------------+-----------+------------------+----------------+----------+------------------------------------------------------------+
|     ConfigScaleOut     | Yes       |                  |                |          |     Any (requires self-service onboarding)                 |
+------------------------+-----------+------------------+----------------+----------+------------------------------------------------------------+
|     DetachVolume       |           |                  |                | Yes      |     Any (uses OpenStack command)                           |
+------------------------+-----------+------------------+----------------+----------+------------------------------------------------------------+
|     Evacuate           |           |                  |                | Yes      |     Any (uses OpenStack command)                           |
+------------------------+-----------+------------------+----------------+----------+------------------------------------------------------------+
|     HealthCheck        | Yes       |                  |                |          |     Any (requires self-service onboarding)                 |
+------------------------+-----------+------------------+----------------+----------+------------------------------------------------------------+
|     Lock               | Yes       |                  |                |          |     Any                                                    |
+------------------------+-----------+------------------+----------------+----------+------------------------------------------------------------+
|     Migrate            |           |                  |                | Yes      |     Any (uses OpenStack command)                           |
+------------------------+-----------+------------------+----------------+----------+------------------------------------------------------------+
|     QuiesceTraffic     | Yes       |                  |                |          | Chef and Ansible only (requires self-service onboarding)   |
+------------------------+-----------+------------------+----------------+----------+------------------------------------------------------------+
|     Rebuild            |           |                  |                | Yes      |     Any (uses OpenStack command)                           |
+------------------------+-----------+------------------+----------------+----------+------------------------------------------------------------+
|     Restart            |           |                  |                | Yes      |     Any (uses OpenStack command)                           |
+------------------------+-----------+------------------+----------------+----------+------------------------------------------------------------+
|     ResumeTraffic      | Yes       |                  |                |          | Chef and Ansible only (requires self-service onboarding)   |
+------------------------+-----------+------------------+----------------+----------+------------------------------------------------------------+
|     Snapshot           |           |                  |                | Yes      |     Any (uses OpenStack command)                           |
+------------------------+-----------+------------------+----------------+----------+------------------------------------------------------------+
|     Start              |           |                  |                | Yes      |     Any (uses OpenStack command)                           |
+------------------------+-----------+------------------+----------------+----------+------------------------------------------------------------+
|     StartApplication   | Yes       |                  |                |          | Chef and Ansible only (requires self-service onboarding)   |
+------------------------+-----------+------------------+----------------+----------+------------------------------------------------------------+
|     Stop               |           |                  |                | Yes      |     Any (uses OpenStack command)                           |
+------------------------+-----------+------------------+----------------+----------+------------------------------------------------------------+
|     StopApplication    | Yes       |                  |                |          | Chef and Ansible only (requires self-service onboarding)   |
+------------------------+-----------+------------------+----------------+----------+------------------------------------------------------------+
|     Sync               | Yes       |                  |                |          |     Any (requires self-service onboarding)                 |
+------------------------+-----------+------------------+----------------+----------+------------------------------------------------------------+
|     Unlock             | Yes       |                  |                |          |     Any                                                    |
+------------------------+-----------+------------------+----------------+----------+------------------------------------------------------------+
|     UpgradeBackout     | Yes       |                  |                |          | Chef and Ansible only (requires self-service onboarding)   |
+------------------------+-----------+------------------+----------------+----------+------------------------------------------------------------+
|     UpgradeBackup      | Yes       |                  |                |          | Chef and Ansible only (requires self-service onboarding)   |
+------------------------+-----------+------------------+----------------+----------+------------------------------------------------------------+
|     UpgradePostCheck   | Yes       |                  |                |          | Chef and Ansible only (requires self-service onboarding)   |
+------------------------+-----------+------------------+----------------+----------+------------------------------------------------------------+
|     UpgradePreCheck    | Yes       |                  |                |          | Chef and Ansible only (requires self-service onboarding)   |
+------------------------+-----------+------------------+----------------+----------+------------------------------------------------------------+
|     UpgradeSoftware    | Yes       |                  |                |          | Chef and Ansible only (requires self-service onboarding)   |
+------------------------+-----------+------------------+----------------+----------+------------------------------------------------------------+



Self-Service VNF Onboarding
---------------------------

The APPC architecture is designed for VNF self-service onboarding (i.e., a VNF owner or vendor through the use of tools can enable a new VNF to support the LCM API actions that are designate as self-service). The VNF must support one or more of the following interface protocols:

-  Netconf with uploadable Yang model (requires a Netconf server running
   on the VNF)

-  Chef (requires a Chef client running on the VNF)

-  Ansible (does not require any changes to the VNF software)

The self-service onboarding process is done using an APPC Design GUI (also referred to as CDT) which interacts with an APPC instance which is dedicated to self-service onboarding. The steps in the onboarding process using the APPC Design GUI are:

-  Define the VNF capabilities (set of actions that the VNF can
   support).

-  Create a template and parameter definitions for actions which use the
   Netconf, Chef, or Ansible protocols. The template is an xml or JSON
   block which defines the “payload” which is included in the request
   that is downloaded the VNF (if Netconf) or Chef/Ansible server.

-  Test actions which have templates/parameter definitions.

-  Upload the VNF definition, template, and parameter definition
   artifacts to SDC which distributes them to all APPC instances in the
   same environment (e.g., production).

For more details, see the APPC CDT Onboarding User Guide.



LCM Commands
============

The LCM commands that are valid for the current release.

ActionStatus
------------

The ActionStatus command returns that state of any action request that has been previously submitted to an APPC instance for a specified VNF. This enables the client to know the status of a previous request and helps them decide if they should reissue a request.

+--------------------------+----------------------------------------------------------+
| **Target URL**           | /restconf /operations/ appc-provider-lcm:action-status   |
+--------------------------+----------------------------------------------------------+
| **Action**               | ActionStatus                                             |
+--------------------------+----------------------------------------------------------+
| **Action-Identifiers**   | vnf-id                                                   |
+--------------------------+----------------------------------------------------------+
| **Payload Parameters**   | See below                                                |
+--------------------------+----------------------------------------------------------+
| **Revision History**     | New in Beijing                                           |
+--------------------------+----------------------------------------------------------+

|

+-----------------------------+------------------------------------------------------------+--------------------+-------------------------------------+
|     **Payload Parameter**   |     **Description**                                        |     **Required**   |     **Example**                     |
+=============================+============================================================+====================+=====================================+
| request-id                  |     Request id from the previously submitted request       | Yes                |     "request-id": "123456789"       |
+-----------------------------+------------------------------------------------------------+--------------------+-------------------------------------+
| sub-request ID              |     Sub-Request id from the previously submitted request   | optional           |     "sub-request-id": "123456789"   |
+-----------------------------+------------------------------------------------------------+--------------------+-------------------------------------+
| originator-id               |     Originator id from the previously submitted request    | optional           |     "originator-id": "123456789"    |
+-----------------------------+------------------------------------------------------------+--------------------+-------------------------------------+


ActionStatus Response:
^^^^^^^^^^^^^^^^^^^^^^

A successful response contains a payload with the following:

+-----------------------------+-----------------------------------------------------------------------+--------------------+------------------------------+
|     **Payload Parameter**   |     **Description**                                                   |     **Required**   |     **Example**              |
+=============================+=======================================================================+====================+==============================+
| status-reason               |     Contains more details about status                                | No                 |                              |
+-----------------------------+-----------------------------------------------------------------------+--------------------+------------------------------+
| status                      |     IN_PROGRESS – The request has been accepted and is in progress    | No                 |     "status": "SUCCESSFUL"   |
|                             |                                                                       |                    |                              |
|                             |     SUCCESSFUL – The request returned success message                 |                    |                              |
|                             |                                                                       |                    |                              |
|                             |     FAILED – The request failed and returned an error message         |                    |                              |
|                             |                                                                       |                    |                              |
|                             |     ABORTED – the request aborted                                     |                    |                              |
|                             |                                                                       |                    |                              |
|                             |     NOT_FOUND – The request is not found                              |                    |                              |
+-----------------------------+-----------------------------------------------------------------------+--------------------+------------------------------+

If the ActionStatus request was rejected or could not be processed, it returns a valid error code or error message (but no payload).Example below:

    ``"message": "MULTIPLE REQUESTS FOUND - using search criteria:
    request- id=c09ac7d1-de62-0016-2000-e63701125559 AND
    vnf-id=ctsf0007v", "code": 315``

AttachVolume
------------

The AttachVolume command attaches a cinder volume to a VM via an Openstack command.

Cinder is a Block Storage service for OpenStack. It's designed to present storage resources to end users that can be consumed by the OpenStack Compute Project (Nova). The short description of Cinder is that it virtualizes the management of block storage devices and provides end users with a self service API to request and consume those resources without requiring any knowledge of where their  storage is actually deployed or on what type of device.

    NOTE: The command implementation is based on Openstack
    functionality. For further details, see
    http://developer.openstack.org/api-ref/compute/.

+--------------------------+----------------------------------------------------------+
| **Target URL**           | /restconf /operations/ appc-provider-lcm:attach-volume   |
+--------------------------+----------------------------------------------------------+
| **Action**               | AttachVolume                                             |
+--------------------------+----------------------------------------------------------+
| **Action-Identifiers**   | vnf-id, vserver-id                                       |
+--------------------------+----------------------------------------------------------+
| **Payload Parameters**   | See table                                                |
+--------------------------+----------------------------------------------------------+
| **Revision History**     | New in Beijing                                           |
+--------------------------+----------------------------------------------------------+

|

+-----------------------------+-----------------------------------------------------------------------------------------------------------------------------+--------------------+--------------------------------------------------------------------------------------------------------------------------------+
|     **Payload Parameter**   |     **Description**                                                                                                         |     **Required**   |     **Example**                                                                                                                |
+=============================+=============================================================================================================================+====================+================================================================================================================================+
| volumeId                    |     The UUID of the volume to attach.                                                                                       | Yes                |     "volumeId": "a26887c6-c47b-4654- abb5-dfadf7d3f803",                                                                       |
+-----------------------------+-----------------------------------------------------------------------------------------------------------------------------+--------------------+--------------------------------------------------------------------------------------------------------------------------------+
| vm-id                       |     The unique identifier (UUID) of the resource. For backwards- compatibility, this can be the self- link URL of the VM.   | Yes                |     "vm-id": http://135.25.246.162:8774/v2/64a f07e991424b8e9e54eca27d5c0d48/ servers/b074cd1b-8d53-412e-a102- 351cc51ac10a"   |
+-----------------------------+-----------------------------------------------------------------------------------------------------------------------------+--------------------+--------------------------------------------------------------------------------------------------------------------------------+
| Identity-url                |     The identity URL used to access the resource                                                                            | No                 |     "identity-url": "http://135.25.246.162:5000/v2.0"                                                                          |
+-----------------------------+-----------------------------------------------------------------------------------------------------------------------------+--------------------+--------------------------------------------------------------------------------------------------------------------------------+

AttachVolume Response:
^^^^^^^^^^^^^^^^^^^^^^

Success: A successful AttachVolume returns a success status code 400.

Failure: A failed AttachVolume returns a failure code 401 and the failure message. Failure messages can include:

-  badRequest
-  unauthorized
-  forbidden
-  itemNotFound


Audit
-----

The Audit command compares the configuration of the VNF associated with the current request against the most recent configuration that is stored in APPC's configuration database.

A successful Audit means that the current VNF configuration matches the latest APPC stored configuration.

A failed Audit indicates that the configurations do not match.

This command can be applied to any VNF type. The only restriction is that the VNF has been onboarded in self-service mode (which requires that the VNF supports a request to return the running configuration).

The Audit action does not require any payload parameters.

**NOTE:** Audit does not return a payload containing details of the comparison, only the Success/Failure status.


+------------------------------+------------------------------------------------------+
|     **Target URL**           |     /restconf /operations/ appc-provider-lcm:audit   |
+------------------------------+------------------------------------------------------+
|     **Action**               |     Audit                                            |
+------------------------------+------------------------------------------------------+
|     **Action-Identifiers**   |     vnf-id                                           |
+------------------------------+------------------------------------------------------+
|     **Payload Parameters**   |     See below                                        |
+------------------------------+------------------------------------------------------+
|     **Revision History**     |     Unchanged in this release.                       |
+------------------------------+------------------------------------------------------+

|

+----------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+----------------------------------+
|     **Parameter**    |     **Description**                                                                                                                                       |     **Required?**   |     **Example**                  |
+======================+===========================================================================================================================================================+=====================+==================================+
|     publish-config   |     \* If the publish\_config field is set to Y in the payload, then always send the running configuration from the VNF using the message bus             |     Yes             |     "publish-config": "<Y\|N>"   |
|                      |                                                                                                                                                           |                     |                                  |
|                      |     \* If the publish\_config field is set to N in the payload, then:                                                                                     |                     |                                  |
|                      |                                                                                                                                                           |                     |                                  |
|                      |     - If the result of the audit is ‘match’ (latest APPC config and the running config match), do not send the running configuration                      |                     |                                  |
|                      |                                                                                                                                                           |                     |                                  |
|                      |     - If the result of the audit is ‘no match’, then send the running configuration                                                                       |                     |                                  |
+----------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+----------------------------------+

Audit Response
^^^^^^^^^^^^^^

The audit response returns an indication of success or failure of the audit. If a new configuration is uploaded to the APPC database, the payload contains the ‘upload\_config\_id’ and values for any records created. In addition, the configuration is sent to the bus which may be received by an external configuration storage system.


CheckLock
---------

The CheckLock command returns true if the specified VNF is locked; otherwise, false is returned.

A CheckLock command is deemed successful if the processing completes without error, whether the VNF is locked or not. The command returns only a single response with a final status.

Note that APPC locks the target VNF during any VNF command processing, so a VNF can have a locked status even if no Lock command has been explicitly called.

The CheckLock command returns a specific response structure that extends the default LCM response.

The CheckLock action does not require any payload parameters.

+------------------------------+--------------------------------------------------------+
|     **Target URL**           |     /restconf/operations/appc-provider-lcm:checklock   |
+------------------------------+--------------------------------------------------------+
|     **Action**               |     CheckLock                                          |
+------------------------------+--------------------------------------------------------+
|     **Action-Identifiers**   |     vnf-id                                             |
+------------------------------+--------------------------------------------------------+
|     **Payload Parameters**   |     None                                               |
+------------------------------+--------------------------------------------------------+
|     **Revision History**     |     Unchanged in this release.                         |
+------------------------------+--------------------------------------------------------+

CheckLock Response
^^^^^^^^^^^^^^^^^^

The CheckLock command returns a customized version of the LCM
response.


+---------------------+---------------------------------------------------------------------------------------+--------------------+---------------------------------+
|     **Parameter**   |     **Description**                                                                   |     **Required**   | **?Example**                    |
+=====================+=======================================================================================+====================+=================================+
|     locked          |     "TRUE"\|"FALSE" - returns TRUE if the specified VNF is locked, otherwise FALSE.   |     No             |     "locked": "<TRUE\|FALSE>"   |
+---------------------+---------------------------------------------------------------------------------------+--------------------+---------------------------------+


**Example**::

    {
      "output": {
                  "status": {
                              "code": <RESULT\_CODE>, "message": "<RESULT\_MESSAGE>"
                            },
                  "common-header": {
                                     "api-ver": "<API\_VERSION>",
                                     "request-id": "<ECOMP\_REQUEST\_ID>", "originator-id":
                                     "<ECOMP\_SYSTEM\_ID>",
                                     "sub-request-id": "<ECOMP\_SUBREQUEST\_ID>", "timestamp":
                                     "2016-08-08T23:09:00.11Z",
                                     "flags": {
                                                "ttl": <TTL\_VALUE>, "force": "<TRUE\|FALSE>",
                                                "mode": "<EXCLUSIVE\|NORMAL>"
                                              }
                                   },
                  "locked": "<TRUE\|FALSE>"
    }


Configure
---------

Configure a VNF or a VNFC on the VNF after instantiation.

A set of configuration parameter values specified in the configuration template is included in the request. Other configuration parameter values may be obtained from an external system.

A successful Configure request returns a success response.

A failed Configure action returns a failure response and the specific failure messages in the response block.

+------------------------------+--------------------------------------------------------+
|     **Target URL**           |     /restconf/operations/appc-provider-lcm:configure   |
+------------------------------+--------------------------------------------------------+
|     **Action**               |     Configure                                          |
+------------------------------+--------------------------------------------------------+
|     **Action-Identifiers**   |     vnf-id                                             |
+------------------------------+--------------------------------------------------------+
|     **Payload Parameters**   |     See below                                          |
+------------------------------+--------------------------------------------------------+
|     **Revision History**     |     Unchanged in this release.                         |
+------------------------------+--------------------------------------------------------+

|

+---------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+-----------------------------------------------------------------+
|     **Payload Parameter**       |     **Description**                                                                                                                                                                                                                                                                                        |     **Required?**   |     **Example**                                                 |
|                                 |                                                                                                                                                                                                                                                                                                            |                     |                                                                 |
+=================================+============================================================================================================================================================================================================================================================================================================+=====================+=================================================================+
|     request- parameters         |     vnf-host-ip-address: required if Netconf or other direct interface to the VNF. Optionally, it can be provided for all requests.                                                                                                                                                                        |     Yes             |                                                                 |
|                                 |                                                                                                                                                                                                                                                                                                            |                     |     "payload":                                                  |
|                                 |     vnfc-type: if request is vnfc specific                                                                                                                                                                                                                                                                 |                     |     "{\"request-parameters                                      |
|                                 |                                                                                                                                                                                                                                                                                                            |                     |     \": {                                                       |
|                                 |     template-name: if specific template needs to be specified (otherwise, the most recent default template is used).                                                                                                                                                                                       |                     |     \"vnf-host-ip-address\":                                    |
|                                 |                                                                                                                                                                                                                                                                                                            |                     |     \”value\”,                                                  |
|                                 |                                                                                                                                                                                                                                                                                                            |                     |     \”vnfc-type\”: \”value\”’                                   |
|                                 |                                                                                                                                                                                                                                                                                                            |                     |     \”template-name\”: \”name\”,                                |
|                                 |                                                                                                                                                                                                                                                                                                            |                     |     }                                                           |
|                                 |                                                                                                                                                                                                                                                                                                            |                     |                                                                 |
|                                 |                                                                                                                                                                                                                                                                                                            |                     |                                                                 |
|                                 |                                                                                                                                                                                                                                                                                                            |                     |                                                                 |
|                                 |                                                                                                                                                                                                                                                                                                            |                     |                                                                 |
|                                 |                                                                                                                                                                                                                                                                                                            |                     |                                                                 |
|                                 |                                                                                                                                                                                                                                                                                                            |                     |                                                                 |
|                                 |                                                                                                                                                                                                                                                                                                            |                     |                                                                 |
|                                 |                                                                                                                                                                                                                                                                                                            |                     |                                                                 |
+---------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+                                                                 |
|     configuration- parameters   |     A set of instance specific configuration parameters should be specified. If provided, APPC replaces variables in the configuration template with the values supplied.                                                                                                                                  |     No              |      \"configuration- parameters\": {\"<CONFIG- PARAMS>\"}      |
+---------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+-----------------------------------------------------------------+


Configure Response
^^^^^^^^^^^^^^^^^^

The Configure response returns an indication of success or failure of the request. If successful, the return payload contains the ‘upload\_config\_id’ and values for any records created. In addition, the configuration is sent to the ONAP Data Router bus  which may be received by an external configuration storage system.

SO is creating the VNFC records in A&AI. APPC is updating the VNFC status.

ConfigModify
------------

Modifies the configuration on a VNF or VNFC in service.

This command is executed either directly on the VNF (such as for Netconf) or using an Ansible playbook or Chef cookbook.

Request Structure:

+--------------------------+--------------------------------------------------------+
| **Target URL**           | /restconf/operations/appc-provider-lcm:config-modify   |
+--------------------------+--------------------------------------------------------+
| **Action**               | ConfigModify                                           |
+--------------------------+--------------------------------------------------------+
| **Action-Identifiers**   | vnf-id                                                 |
+--------------------------+--------------------------------------------------------+
| **Payload Parameters**   |     request-parameters, configuration-parameters       |
+--------------------------+--------------------------------------------------------+
| **Revision History**     | Unchanged in this release.                             |
+--------------------------+--------------------------------------------------------+

Request Payload Parameters:

+-------------------------+----------------------------------------+-----------------+-------------------------------------------------------+
| **Payload Parameter**   | **Description**                        | **Required?**   |     **Example**                                       |
+=========================+========================================+=================+=======================================================+
| request-parameters      | vnf-host-ip-address: optional if       | No              |     "payload":                                        |
|                         | Netconf or other direct interface      |                 |     "{\\"request-parameters                           |
|                         | to the VNF. If not provided, it is     |                 |     \\": {                                            |
|                         | obtained from A&AI                     |                 |     \\"vnf-host-ip-address\\":                        |
|                         |                                        |                 |     \\”value\\                                        |
|                         | vnfc-type: if request is vnfc          |                 |      },                                               |
|                         | specific                               |                 |                                                       |
|                         |                                        |                 |     {\\"configuration- parameters\\": {\\"name1\\":   |
|                         |                                        |                 |     \\”value1\\”,\\"name2\\":                         |
|                         |                                        |                 |     \\”value2\\”                                      |
|                         |                                        |                 |     }                                                 |
|                         |                                        |                 |     }                                                 |
+-------------------------+----------------------------------------+-----------------+                                                       |
| configuration-          | A set of instance specific             | No              |                                                       |
| parameters              | configuration parameters should        |                 |                                                       |
|                         | be specified.                          |                 |                                                       |
+-------------------------+----------------------------------------+-----------------+-------------------------------------------------------+

ConfigModify Response
^^^^^^^^^^^^^^^^^^^^^

**Success:** A successful ConfigModify returns a success status code 400.

Note: The return payload contains the ‘upload_config_id’ and values associated with the configuration stored in the APPC DB. In addition, the configuration is sent to the message bus which may be received by an external configuration storage system.

**Failure:** A failed ConfigModify returns a failure code 401 and the failure message.

ConfigBackup
------------

Stores the current VNF configuration on a local file system (not in APPC). This is limited to Ansible and Chef. There can only be one stored configuration (if there is a previously saved configuration, it is replaced with the current VNF configuration).

A successful ConfigBackup request returns a success response.

A failed ConfigBackup action returns a failure response code and the specific failure message in the response block.

+------------------------------+-----------------------------------------------------------+
|     **Target URL**           |     /restconf/operations/appc-provider-lcm:configbackup   |
+------------------------------+-----------------------------------------------------------+
|     **Action**               |     ConfigBackup                                          |
+------------------------------+-----------------------------------------------------------+
|     **Action-Identifiers**   |     Vnf-id                                                |
+------------------------------+-----------------------------------------------------------+
|     **Payload Parameters**   |     See below                                             |
+------------------------------+-----------------------------------------------------------+
|     **Revision History**     |     Unchanged in this release.                            |
+------------------------------+-----------------------------------------------------------+

|

+---------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+-----------------------------------------------------------------+
|     **Payload Parameter**       |     **Description**                                                                                                                                                                |     **Required?**   |     **Example**                                                 |
+=================================+====================================================================================================================================================================================+=====================+=================================================================+
|     request-parameters          |     Not used. This request is limited to Ansible and Chef only.                                                                                                                    |     No              | "payload":                                                      |
|                                 |                                                                                                                                                                                    |                     |     \"configuration-parameters\": {\"<CONFIG-PARAMS>\"}         |
|                                 |                                                                                                                                                                                    |                     |                                                                 |
|                                 |                                                                                                                                                                                    |                     |                                                                 |
|                                 |                                                                                                                                                                                    |                     |                                                                 |
|                                 |                                                                                                                                                                                    |                     |                                                                 |
+---------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+                                                                 |
|     configuration-parameters    |     A set of instance specific configuration parameters should be specified, as required by the Chef cookbook or Ansible playbook.                                                 |     No              |                                                                 |
+---------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+-----------------------------------------------------------------+

ConfigBackup Response
^^^^^^^^^^^^^^^^^^^^^

The ConfigBackup response returns an indication of success or failure of the request.

ConfigRestore
-------------

Applies a previously saved configuration to the active VNF configuration. This is limited to Ansible and Chef. There can only be one stored configuration.

A successful ConfigRestore request returns a success response.

A failed ConfigRestore action returns a failure response code and the specific failure message in the response block.

+------------------------------+------------------------------------------------------------------------------------------+
|     **Target URL**           |     /restconf/operations/appc-provider-lcm:configrestore                                 |
+------------------------------+------------------------------------------------------------------------------------------+
|     **Action**               |     ConfigRestore                                                                        |
+------------------------------+------------------------------------------------------------------------------------------+
|     **Action-Identifiers**   |     Vnf-id                                                                               |
+------------------------------+------------------------------------------------------------------------------------------+
|     **Payload Parameters**   |     See below                                                                            |
+------------------------------+------------------------------------------------------------------------------------------+
|     **Revision History**     |     Unchanged in this release.                                                           |
+------------------------------+------------------------------------------------------------------------------------------+

|

+---------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+-----------------------------------------------------------------+
|     **Parameter**               |     **Description**                                                                                                                                                                |     **Required?**   |     **Example**                                                 |
+=================================+====================================================================================================================================================================================+=====================+=================================================================+
|     request-parameters          |     Not used. This request is limited to Ansible and Chef only.                                                                                                                    |     No              |     "payload":                                                  |
|                                 |                                                                                                                                                                                    |                     |     \"configuration-parameters\": {\"<CONFIG- PARAMS>\"}        |
+---------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+                                                                 |
|     configuration-parameters    |     A set of instance specific configuration parameters should be specified, as required by the Chef cookbook or Ansible playbook.                                                 |     No              |                                                                 |
+---------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+-----------------------------------------------------------------+

ConfigRestore Response
^^^^^^^^^^^^^^^^^^^^^^

The ConfigRestore response returns an indication of success or failure of the request.


ConfigScaleOut
--------------

The ConfigScaleOut command is used to apply any actions on a VNF as part of a ScaleOut flow. Actions could include updating the VNF configuration or running a set of other tasks.

The ConfigScaleOut action can have multiple APPC templates associated with it.  APPC retrieves the VfModuleModelName from A&AI (model.model-vers.model-name), which is used as the unique identifier to select the correct APPC template.
APPC creates or updates VNFC records in A&AI for the newly instantiated VM’s.  The orchestration-status of the VNFC’s is set to CONFIGURED.

This action is supported via the Netconf (limited to configuration changes), Chef, and Ansible protocols.

|

+------------------------------+------------------------------------------------------------------------------------------+
|     **Target URL**           |     /restconf /operations/ appc-provider-lcm: config-scale-out                           |
+------------------------------+------------------------------------------------------------------------------------------+
|     **Action**               |     ConfigScaleOut                                                                       |
+------------------------------+------------------------------------------------------------------------------------------+
|     **Action-Identifiers**   |     Vnf-id                                                                               |
+------------------------------+------------------------------------------------------------------------------------------+
|     **Payload Parameters**   |     See below                                                                            |
+------------------------------+------------------------------------------------------------------------------------------+
|     **Revision History**     |     New in Beijing                                                                       |
+------------------------------+------------------------------------------------------------------------------------------+

|

+---------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+---------------------------------------------+
|     **Payload Parameter**       |     **Description**                                                                                                                                              |     **Required?**   |     **Example**                             |
+=================================+==================================================================================================================================================================+=====================+=============================================+
|     request-parameters          |     vnf-host-ip-address: optional if Netconf or other direct interface to the VNF.   If not provided, the vnf-host-ip-address will be obtained from A&AI.        |     No              |      "payload":                             |
|                                 +------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+      "{\"request-parameters \":             |
|                                 |     vf-module-id:  used to determine the A&AI VM inventory associated with ConfigScaleOut.                                                                       |     Yes             |      {                                      |
|                                 +------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+      \"vnf-host-ip-address\":               |
|                                 |     controller-template-id: optional. This is a unique identifier that will identify the template associated with the ConfigScaleOut.                            |                     |      \”value\”,                             |
|                                 |     Will be needed if A&AI does not contain the template identifier.                                                                                             |     No              |      \”vf-module-id\”: \”value\”,           |
+---------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+      \”controller-template-id\”:            |                                                         
|     configuration-parameters    |     A set of instance specific configuration parameters should be specified. If provided, APP-C replaces variables in the configuration template with the        |     No              |      \”value\”                              |
|                                 |     values supplied.                                                                                                                                             |                     |      }                                      |
|                                 |                                                                                                                                                                  |                     |                                             |
|                                 |                                                                                                                                                                  |                     |      \"configuration-parameters\":          |
|                                 |                                                                                                                                                                  |                     |        {\"<CONFIG- PARAMS>\"}               |
|                                 |                                                                                                                                                                  |                     |                                             |
+---------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+---------------------------------------------+

ConfigScaleOut Response
^^^^^^^^^^^^^^^^^^^^^^^

**Success:**  

 - A successful ConfigScaleOut returns a success status code 400 when completed.
 
**Failure:** 

 - A failed ConfigScaleOut returns a failure code 401 and the failure message. 
 - If the ConfigScaleOut is successfully performed on the VNF but there is a failure to update A&AI inventory, an intermediate failure message with failure code 501 is returned prior to the final 400 success message.


DetachVolume
------------

The DetachVolume command detaches a cinder volume from a VM via an Openstack command.

Cinder is a Block Storage service for OpenStack. It's designed to present storage resources to end users that can be consumed by the OpenStack Compute Project (Nova). The short description of Cinder is that it virtualizes the management of block storage devices and provides end users with a self-service API to request and consume those resources without requiring any knowledge of where their storage is actually deployed or on what type of device.

NOTE: The command implementation is based on Openstack functionality. For further details, see http://developer.openstack.org/api-ref/compute/.

+--------------------------+----------------------------------------------------------+
| **Target URL**           | /restconf /operations/ appc-provider-lcm:detach-volume   |
+--------------------------+----------------------------------------------------------+
| **Action**               | DetachVolume                                             |
+--------------------------+----------------------------------------------------------+
| **Action-Identifiers**   | vnf-id, vserver-id                                       |
+--------------------------+----------------------------------------------------------+
| **Payload Parameters**   | See table                                                |
+--------------------------+----------------------------------------------------------+
| **Revision History**     | New in Beijing                                           |
+--------------------------+----------------------------------------------------------+

Request Payload Parameters:

+-----------------------------+-----------------------------------------------------------------------------------------------------------------------------+--------------------+--------------------------------------------------------------------------------------------------------------------------------+
|     **Payload Parameter**   |     **Description**                                                                                                         |     **Required**   |     **Example**                                                                                                                |
+=============================+=============================================================================================================================+====================+================================================================================================================================+
| volumeId                    |     The UUID of the volume to detach.                                                                                       | Yes                |     "volumeId": "a26887c6-c47b-4654- abb5-dfadf7d3f803",                                                                       |
+-----------------------------+-----------------------------------------------------------------------------------------------------------------------------+--------------------+--------------------------------------------------------------------------------------------------------------------------------+
| vm-id                       |     The unique identifier (UUID) of the resource. For backwards- compatibility, this can be the self- link URL of the VM.   | Yes                |     "vm-id": http://135.25.246.162:8774/v2/64a f07e991424b8e9e54eca27d5c0d48/ servers/b074cd1b-8d53-412e-a102- 351cc51ac10a"   |
+-----------------------------+-----------------------------------------------------------------------------------------------------------------------------+--------------------+--------------------------------------------------------------------------------------------------------------------------------+
| Identity-url                |     The identity URL used to access the resource                                                                            | No                 |     "identity-url": "http://135.25.246.162:5000/v2.0"                                                                          |
+-----------------------------+-----------------------------------------------------------------------------------------------------------------------------+--------------------+--------------------------------------------------------------------------------------------------------------------------------+

DetachVolume Response:
^^^^^^^^^^^^^^^^^^^^^^

**Success:** A successful DetachVolume returns a success status code 400.

**Failure:** A failed DetachVolume returns a failure code 401 and the failure message. Failure messages can include:

-  badRequest
-  unauthorized
-  forbidden
-  itemNotFound
-  conflict


Evacuate
--------

Evacuates a specified VM from its current host to another. After a successful evacuate, a rebuild VM is performed if a snapshot is available (and the VM boots from a snapshot.

The host on which the VM resides needs to be down.

If the node is not specified in the request, it will be selected by relying on internal rules to evacuate. The Evacuate action will fail if the specified target host is not UP/ENABLED.

After Evacuate, the rebuild VM can be disabled by setting the optional `rebuild-vm <#_bookmark43>`__ parameter to false.

A successful Evacuate action returns a success response. A failed Evacuate action returns a failure.

**NOTE:** The command implementation is based on Openstack functionality. For further details, see http://developer.openstack.org/api-ref/compute/.

+------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
|     **Target URL**           |     /restconf/operations/appc-provider-lcm:evacuate                                                                                                            |
+------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
|     **Action**               |     Evacuate                                                                                                                                                   |
+------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
|     **Action-identifiers**   |     Vnf-id, vserver-id                                                                                                                                         |
+------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
|     **Payload Parameters**   |     `vm-id <#_bookmark40>`__, `identity-url <#_bookmark41>`__, `tenant-id <#_bookmark42>`__, `rebuild-vm <#_bookmark43>`__, `targethost-id <#_bookmark44>`__   |
+------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
|     **Revision History**     |     Unchanged in this release.                                                                                                                                 |
+------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------+

|

+----------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+---------------------------------------+
|     **Parameter**    |     **Description**                                                                                                                                                              |     **Required?**   |     **Example**                       |
+======================+==================================================================================================================================================================================+=====================+=======================================+
|     vm-id            |     The unique identifier (UUID) of the resource. For backwards- compatibility, this can be the self- link URL of the VM.                                                        |     Yes             |     "payload":                        |
|                      |                                                                                                                                                                                  |                     |     "{\"vm-id\": \"<VM-ID>            |
|                      |                                                                                                                                                                                  |                     |     \",                               |
|                      |                                                                                                                                                                                  |                     |     \"identity-url\":                 |
|                      |                                                                                                                                                                                  |                     |     \"<IDENTITY-URL>\",               |
|                      |                                                                                                                                                                                  |                     |     \"tenant-id\\": \"<TENANT-ID>     |
|                      |                                                                                                                                                                                  |                     |     \",                               |
|                      |                                                                                                                                                                                  |                     |     \"rebuild-vm\": \"false\",        |
|                      |                                                                                                                                                                                  |                     |     \"targethost-id\":                |
|                      |                                                                                                                                                                                  |                     |     \"nodeblade7\"}"                  |
+----------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+                                       |
|     identity- url    |     The identity URL used to access the resource                                                                                                                                 |     No              |                                       |
+----------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+                                       |
|     tenant-id        |     The id of the provider tenant that owns the resource                                                                                                                         |     No              |                                       |
+----------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+                                       |
|     rebuild- vm      |     A boolean flag indicating if a Rebuild is to be performed after an Evacuate. The default action is to do a Rebuild. It can be switched off by setting the flag to "false".   |     No              |                                       |
+----------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+                                       |
|     targethost- id   |     A target hostname indicating the host the VM is evacuated to. By default, the cloud determines the target host.                                                              |     No              |                                       |
+----------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+---------------------------------------+

HealthCheck
-----------

This command runs a VNF health check and returns the result.

The VNF level HealthCheck is a check over the entire scope of the VNF. The VNF must be 100% healthy, ready to take requests and provide services, with all VNF required capabilities ready to provide services and with all active and standby resources fully ready with no open MINOR, MAJOR or CRITICAL alarms.


+------------------------------+-----------------------------------------------------------+
|     **Target URL**           |     /restconf/operations/appc-provider-lcm:health-check   |
+------------------------------+-----------------------------------------------------------+
|     **Action**               |     HealthCheck                                           |
+------------------------------+-----------------------------------------------------------+
|     **Action-Identifiers**   |     Vnf-id                                                |
+------------------------------+-----------------------------------------------------------+
|     **Payload Parameters**   |     See below                                             |
+------------------------------+-----------------------------------------------------------+
|     **Revision History**     |     Unchanged in this release                             |
+------------------------------+-----------------------------------------------------------+

|

+---------------------+-----------------------------------+---------------------+-------------------------------------+
|     **Parameter**   |     **Description**               |     **Required?**   |     **Example**                     |
+=====================+===================================+=====================+=====================================+
|    host-ip-address  |     Required only if REST         |     No              |                                     |
|                     |     service. This is the ip       |                     |                                     |
|                     |     address associated with the   |                     |                                     |
|                     |     VM running the REST           |                     |                                     |
|                     |     service.                      |                     |                                     |
+---------------------+-----------------------------------+---------------------+                                     |
|     port-number     |     Required only if REST         |     No              |     "payload":                      |
|                     |     service. This is the port     |                     |     "{\\"host-ip-address\\":        |
|                     |     number associated with the    |                     |     \\"10.222.22.2\\",              |
|                     |     REST service.                 |                     |     \\”port-number\\”: \\”32\\”}"   |
|                     |                                   |                     |                                     |
+---------------------+-----------------------------------+---------------------+-------------------------------------+


HealthCheck Response
^^^^^^^^^^^^^^^^^^^^

The Healthcheck returns a 200 OK if the test completes. A JSON object is returned indicating state (healthy, unhealthy), scope identifier, time-stamp and one or more blocks containing info and fault information.

    Examples::

		200
		{
		  "identifier": "scope represented", 
		  "state": "healthy",
		  "time": "01-01-1000:0000"

		}

		200
		{
		   "identifier": "scope represented", 
		   "state": "unhealthy",
			{[
		   "info": "System threshold exceeded details", 
		   "fault":
			 {
			   "cpuOverall": 0.80,
			   "cpuThreshold": 0.45
			 }
			]},
		   "time": "01-01-1000:0000"
		}

If the VNF is unable to run the HealthCheck, it returns a standard http error code and message. APPC returns the error code 401 and the http error message.


Lock
----

Use the Lock command to ensure exclusive access during a series of critical LCM commands.

The Lock action will return a successful result if the VNF is not already locked or if it was locked with the same request-id, otherwise the action returns a response with a reject status code.

Lock is a command intended for APPC and does not execute an actual VNF command. Instead, lock will ensure that ONAP is granted exclusive access to the VNF.

When a VNF is locked, any subsequent sequential commands with same request-id will be accepted. Commands associated with other request-ids will be rejected.

The Lock command returns only one final response with the status of the request processing.

APPC locks the target VNF during any VNF command processing. If a lock action is then requested on that VNF, it will be rejected because the VNF was already locked, even though no actual lock command was explicitly invoked.

+------------------------------+---------------------------------------------------+
|     **Target URL**           |     /restconf/operations/appc-provider-lcm:lock   |
+------------------------------+---------------------------------------------------+
|     **Action**               |     Lock                                          |
+------------------------------+---------------------------------------------------+
|     **Action-Identifier**    |     Vnf-id                                        |
+------------------------------+---------------------------------------------------+
|     **Payload Parameters**   |     None                                          |
+------------------------------+---------------------------------------------------+
|     **Revision History**     |     Unchanged in this release.                    |
+------------------------------+---------------------------------------------------+

Migrate
-------

Migrates a running target VM from its current host to another.

A destination node will be selected by relying on internal rules to migrate. Migrate calls a command in order to perform the operation.

Migrate suspends the guest virtual machine, and moves an image of the guest virtual machine's disk to the destination host physical machine. The guest virtual machine is then resumed on the destination host physical machine and the disk storage that it used on the source host physical machine is freed.

The migrate action will leave the VM in the same Openstack state the VM had been in prior to the migrate action. If a VM was stopped before migration, a separate VM-level restart command would be needed to restart the VM after migration.

A successful Migrate action returns a success response.

A failed Migrate action returns a failure and the failure messages in the response payload block.

**NOTE:** The command implementation is based on Openstack functionality. For further details, see http://developer.openstack.org/api-ref/compute/.


+--------------------------------+-----------------------------------------------------------------------------------------------+
| **Input Block**                | api-ver should be set to 2.00 for current version of Migrate                                  |
+--------------------------------+-----------------------------------------------------------------------------------------------+
|     **Target URL**             |     /restconf/operations/appc-provider-lcm:migrate                                            |
+--------------------------------+-----------------------------------------------------------------------------------------------+
|     **Action**                 |     Migrate                                                                                   |
+--------------------------------+-----------------------------------------------------------------------------------------------+
|     **Action-Identifiers**     |     Vnf-id, vserver-id                                                                        |
+--------------------------------+-----------------------------------------------------------------------------------------------+
|     \ **Payload Parameters**   |     `vm-id <#_bookmark52>`__, `identity-url <#_bookmark54>`__, `tenant-id <#_bookmark55>`__   |
+--------------------------------+-----------------------------------------------------------------------------------------------+
|     **Revision History**       |     Unchanged in this release.                                                                |
+--------------------------------+-----------------------------------------------------------------------------------------------+

Payload Parameters

+---------------------+-------------------------------------------------------------------------+---------------------+----------------------------------------+
| **Parameter**       |     **Description**                                                     |     **Required?**   |     **Example**                        |
+=====================+=========================================================================+=====================+========================================+
|     vm-id           |     The unique identifier (UUID) of                                     |     Yes             |                                        |
|                     |     the resource. For backwards- compatibility, this can be the self-   |                     |                                        |
|                     |     link URL of the VM.                                                 |                     |     "payload":                         |
|                     |                                                                         |                     |     "{\\"vm-id\": \\"<VM-ID>\\",       |
|                     |                                                                         |                     |     \\"identity-url\\":                |
|                     |                                                                         |                     |     \\"<IDENTITY-URL>\\",              |
+---------------------+-------------------------------------------------------------------------+---------------------+		\\"tenant-id\\": \\"<TENANT-   |
|     identity- url   |     The identity url used to access the resource                        |     No              |     ID>\\"}"                           |
|                     |                                                                         |                     |                                        |
+---------------------+-------------------------------------------------------------------------+---------------------+					       |
|     tenant-id       |     The id of the provider tenant that owns the resource                |     No              |                                        |
+---------------------+-------------------------------------------------------------------------+---------------------+----------------------------------------+


QuiesceTraffic
--------------

The QuiesceTraffic LCM action gracefully stops the traffic on the VNF (i.e., no service interruption for traffic in progress). All application processes are assumed to be running but no traffic is being processed.

This command is executed using an Ansible playbook or Chef cookbook.
    
Request Structure:

+--------------------------+----------------------------------------------------------+
| **Target URL**           | /restconf/operations/appc-provider-lcm:quiesce-traffic   |
+--------------------------+----------------------------------------------------------+
| **Action**               | QuiesceTraffic                                           |
+--------------------------+----------------------------------------------------------+
| **Action-identifiers**   | vnf-id                                                   |
+--------------------------+----------------------------------------------------------+
| **Payload Parameters**   | operations-timeout                                       |
+--------------------------+----------------------------------------------------------+
| **Revision History**     | New in Beijing                                           |
+--------------------------+----------------------------------------------------------+

Request Payload Parameters:

+-----------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+------------------------------------------------+
| **Parameter**         |     **Description**                                                                                                                                                                                  |     **Required?**   |     **Example**                                |
+=======================+======================================================================================================================================================================================================+=====================+================================================+
| operations- timeout   |     This is the maximum time in seconds that the command will run before APPC returns a timeout error. If the APPC template has a lower timeout value, the APPC template timeout value is applied.   |     Yes             |     "payload":                                 |
|                       |                                                                                                                                                                                                      |                     |     "{\\"operations-timeout\\": \\"3600\\"}”   |
+-----------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+------------------------------------------------+

QuiesceTraffic Response
^^^^^^^^^^^^^^^^^^^^^^^

The response does not include any payload parameters.

**Success:** A successful quiesce returns a success status code 400 after all traffic has been quiesced.

   If a quiesce command is executed and the traffic has been previously quiesced, it should return a success status.

**Failure:** A failed quiesce returns a failure code 401 and the failure message from the Ansible or Chef server in the response payload block.

    A specific error message is returned if there is a timeout error.



Rebuild
-------

Recreates a target VM instance to a known, stable state.

Rebuild calls an OpenStack command immediately and therefore does not expect any prerequisite operations to be performed, such as shutting off a VM.

Rebuild VM uses the latest snapshot by default; if there are no snapshots it uses the (original) Glance image for the rebuild. APPC rejects a rebuild request if it determines the VM boots from a Cinder Volume.

A successful rebuild returns a success response and the rebuild details in the response payload block. A failed rebuild returns a failure and the failure messages in the response payload block.

**NOTE:** The command implementation is based on Openstack functionality. For further details, see http://developer.openstack.org/api-ref/compute/.


+------------------------------+-----------------------------------------------------------------------------------------------+
| **Input Block**              | api-ver should be set to 2.00 for current version of Rebuild                                  |
+------------------------------+-----------------------------------------------------------------------------------------------+
|     **Target URL**           |     /restconf/operations/appc-provider-lcm:rebuild                                            |
+------------------------------+-----------------------------------------------------------------------------------------------+
|     **Action**               |     Rebuild                                                                                   |
+------------------------------+-----------------------------------------------------------------------------------------------+
|     **Action-identifiers**   |     Vnf-id, vserver-id                                                                        |
+------------------------------+-----------------------------------------------------------------------------------------------+
|     **Payload Parameters**   |     `vm-id <#_bookmark52>`__, `identity-url <#_bookmark54>`__, `tenant-id <#_bookmark55>`__   |
+------------------------------+-----------------------------------------------------------------------------------------------+
|     **Revision History**     |     Unchanged in this release.                                                                |
+------------------------------+-----------------------------------------------------------------------------------------------+


Payload Parameters

+-----------------+-----------------------------------------------+-----------------+-----------------------------------------+
| **Parameter**   |     **Description**                           | **Required?**   | **Example**                             |
+=================+===============================================+=================+=========================================+
| vm-id           |     The unique identifier (UUID) of           | Yes             |                                         |
|                 |     the resource. For backwards-              |                 |                                         |
|                 |     compatibility, this can be the self-      |                 | "payload":                              |
|                 |     link URL of the VM.                       |                 | "{\\"vm-id\\": \\"<VM-ID>               |
|                 |                                               |                 | \\",                                    |
|                 |                                               |                 | \\"identity-url\\":                     |
|                 |                                               |                 | \\"<IDENTITY-URL>\\",                   |
|                 |                                               |                 | \\"tenant-id\\": \\"<TENANT- ID>\\"}"   |
+-----------------+-----------------------------------------------+-----------------+                                         |
| identity- url   |     The identity url used to access the       | No              |                                         |
|                 |     resource                                  |                 |                                         |
+-----------------+-----------------------------------------------+-----------------+                                         |
| tenant-id       |     The id of the provider tenant that owns   | No              |                                         |
|                 |     the resource                              |                 |                                         |
+-----------------+-----------------------------------------------+-----------------+-----------------------------------------+



Restart
-------

Use the Restart command to restart a VM.    

+------------------------------+-----------------------------------------------------------------------------------------------------------------+
|     **Input Block**          |     api-ver should be set to 2.00 for current version of Restart                                                |
+------------------------------+-----------------------------------------------------------------------------------------------------------------+
|     **Target URL**           |     /restconf/operations/appc-provider-lcm:restart                                                              |
+------------------------------+-----------------------------------------------------------------------------------------------------------------+
|     **Action**               |     Restart                                                                                                     |
+------------------------------+-----------------------------------------------------------------------------------------------------------------+
|     **Action-identifiers**   |     vnf-id and vserver-id are required.                                                                         |
+------------------------------+-----------------------------------------------------------------------------------------------------------------+
|     **Payload Parameters**   |     See table below                                                                                             |
+------------------------------+-----------------------------------------------------------------------------------------------------------------+
|     **Revision History**     |     Unchanged in this release                                                                                   |
+------------------------------+-----------------------------------------------------------------------------------------------------------------+

Payload Parameters for **VM Restart**

+---------------------+-------------------------------------------------------------------------+---------------------+------------------------------------+
| **Parameter**       |     **Description**                                                     |     **Required?**   |     **Example**                    |
+=====================+=========================================================================+=====================+====================================+
|     vm-id           |     The unique identifier (UUID) of                                     |     Yes             |                                    |
|                     |     the resource. For backwards- compatibility, this can be the self-   |                     |                                    |
|                     |     link URL of the VM.                                                 |                     |     "payload":                     |
|                     |                                                                         |                     |     "{\\"vm-id\\": \\"<VM-ID>\\",  |
|                     |                                                                         |                     |     \\"identity-url\\":            |
+---------------------+-------------------------------------------------------------------------+---------------------+     \\"<IDENTITY-URL>\\",          |
|     identity- url   |     The identity url used to access the resource                        |     No              |     \"tenant-id\": \"<TENANT-      |
|                     |                                                                         |                     |     ID>\"}"                        |
+---------------------+-------------------------------------------------------------------------+---------------------+ 				   |
|     tenant-id       |     The id of the provider tenant that owns the resource                |     No              |                                    |
+---------------------+-------------------------------------------------------------------------+---------------------+------------------------------------+

ResumeTraffic
-------------

The ResumeTraffic LCM action resumes processing traffic on a VNF that has been previously quiesced.

This command is executed using an Ansible playbook or Chef cookbook.

Request Structure: The payload does not have any parameters.

+--------------------------+---------------------------------------------------------+
| **Target URL**           | /restconf/operations/appc-provider-lcm:resume-traffic   |
+--------------------------+---------------------------------------------------------+
| **Action**               | ResumeTraffic                                           |
+--------------------------+---------------------------------------------------------+
| **Action-identifiers**   | vnf-id                                                  |
+--------------------------+---------------------------------------------------------+
| **Payload Parameters**   |                                                         |
+--------------------------+---------------------------------------------------------+
| **Revision History**     | New in Beijing                                          |
+--------------------------+---------------------------------------------------------+

ResumeTraffic Response
^^^^^^^^^^^^^^^^^^^^^^

**Success:** A successful ResumeTraffic returns a success status code 400 after traffic has been resumed.

If a ResumeTraffic command is executed and the traffic is currently being processed, it should return a success status

**Failure:** A failed ResumeTraffic returns a failure code 401 and the failure message from the Ansible or Chef server in the response payload block.


Snapshot
--------

Creates a snapshot of a VM.

The Snapshot command returns a customized response containing a reference to the newly created snapshot instance if the action is successful.

This command can be applied to any VNF type. The only restriction is that the particular VNF should be built based on the generic heat stack.

Note: Snapshot is not reliable unless the VM is in a stopped, paused, or quiesced (no traffic being processed) status. It is up to the caller to ensure that the VM is in one of these states.

**NOTE:** The command implementation is based on Openstack functionality. For further details, see http://developer.openstack.org/api-ref/compute/.

+------------------------------+-----------------------------------------------------------------------------------------------------+
|     **Target URL**           |     /restconf/operations/appc-provider-lcm:snapshot                                                 |
+------------------------------+-----------------------------------------------------------------------------------------------------+
|     **Action**               |     Snapshot                                                                                        |
+------------------------------+-----------------------------------------------------------------------------------------------------+
|     **Action-identifiers**   |     Vnf-id is required. If the snapshot is for a single VM, then the vserver-id is also required.   |
+------------------------------+-----------------------------------------------------------------------------------------------------+
|     **Payload Parameters**   |     `vm-id <#_bookmark52>`__, `identity-url <#_bookmark54>`__, `tenant-id <#_bookmark55>`__         |
+------------------------------+-----------------------------------------------------------------------------------------------------+
|     **Revision History**     |     Unchanged in this release.                                                                      |
+------------------------------+-----------------------------------------------------------------------------------------------------+

Payload Parameters

+---------------------+-------------------------------------------------------------------------+---------------------+----------------------------------------+
| **Parameter**       |     **Description**                                                     |     **Required?**   |     **Example**                        |
+=====================+=========================================================================+=====================+========================================+
|     vm-id           |     The unique identifier (UUID) of                                     |     Yes             |                                        |
|                     |     the resource. For backwards- compatibility, this can be the self-   |                     |     "payload":                         |
|                     |     link URL of the VM.                                                 |                     |     "{\\"vm-id\": \\"<VM-ID>           |
|                     |                                                                         |                     |     \\",                               |
|                     |                                                                         |                     |     \\"identity-url\\":                |
|                     |                                                                         |                     |     \\"<IDENTITY-URL>\\",              |
+---------------------+-------------------------------------------------------------------------+---------------------+		\\"tenant-id\\": \\"<TENANT-   |
|     identity- url   |     The identity url used to access the resource                        |     No              |     ID>\\"}"                           |
|                     |                                                                         |                     |                                        |
+---------------------+-------------------------------------------------------------------------+---------------------+                                        |
|     tenant-id       |     The id of the provider tenant that owns the resource                |     No              |                                        |
+---------------------+-------------------------------------------------------------------------+---------------------+----------------------------------------+

Snapshot Response
^^^^^^^^^^^^^^^^^

The Snapshot command returns an extended version of the LCM response.

The Snapshot response conforms to the `standard response format <#_bookmark5>`__, but has the following additional field.

Additional Parameters

+---------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------+---------------------------------------+
|     **Parameter**   |     **Description**                                                                                                                                    |     **Required**   | **?Example**                          |
+=====================+========================================================================================================================================================+====================+=======================================+
|     snapshot-id     |     The snapshot identifier created by cloud host. This identifier will be returned only in the final success response returned via the message bus.   |     No             |     "snapshot-id": "<SNAPSHOT\_ID>"   |
+---------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------+---------------------------------------+

Start
-----

Use the Start command to start a VNF, VF-Module, or VM that is stopped or not running.

**NOTE:** The command implementation is based on Openstack functionality. For further details, see http://developer.openstack.org/api-ref/compute/.

+------------------------------+--------------------------------------------------------------------------------------------------------------------------------+
|     **Target URL**           |     /restconf/operations/appc-provider-lcm:start                                                                               |
+------------------------------+--------------------------------------------------------------------------------------------------------------------------------+
|     **Action**               |     Start                                                                                                                      |
+------------------------------+--------------------------------------------------------------------------------------------------------------------------------+
|     **Action-identifiers**   |     vnf-id and vserver-id are required                                                                                         |
+------------------------------+--------------------------------------------------------------------------------------------------------------------------------+
|     **Payload Parameters**   |     See below                                                                                                                  |
+------------------------------+--------------------------------------------------------------------------------------------------------------------------------+
|     **Revision History**     |     Unchanged in this release                                                                                                  |
+------------------------------+--------------------------------------------------------------------------------------------------------------------------------+

Payload Parameters

+-----------------+-----------------------------------------------+-----------------+-----------------------------------------+
| **Parameter**   |     **Description**                           | **Required?**   | **Example**                             |
+=================+===============================================+=================+=========================================+
| vm-id           |     The unique identifier (UUID) of           | Yes             |                                         |
|                 |     the resource. For backwards-              |                 | "payload":                              |
|                 |     compatibility, this can be the self-      |                 | "{\\"vm-id\\": \\"<VM-ID>               |
|                 |     link URL of the VM.                       |                 | \\",                                    |
|                 |                                               |                 | \\"identity-url\\":                     |
|                 |                                               |                 | \\"<IDENTITY-URL>\\",                   |
|                 |                                               |                 | \\"tenant-id\\": \\"<TENANT- ID>\\"}"   |
+-----------------+-----------------------------------------------+-----------------+-----------------------------------------+
| identity- url   |     The identity url used to access the       | No              |                                         |
|                 |     resource                                  |                 |                                         |
+-----------------+-----------------------------------------------+-----------------+-----------------------------------------+
| tenant-id       |     The id of the provider tenant that owns   | No              |                                         |
|                 |     the resource                              |                 |                                         |
+-----------------+-----------------------------------------------+-----------------+-----------------------------------------+


StartApplication
----------------

Starts the VNF application, if needed, after a VM is instantiated/configured or after VM start or restart. Supported using Chef cookbook or Ansible playbook only.

A successful StartApplication request returns a success response.

A failed StartApplication action returns a failure response code and the specific failure message in the response block.

+------------------------------+---------------------------------------------------------------+
|     **Target URL**           |     /restconf/operations/appc-provider-lcm:startapplication   |
+------------------------------+---------------------------------------------------------------+
|     **Action**               |     StartApplication                                          |
+------------------------------+---------------------------------------------------------------+
|     **Action-Identifiers**   |     Vnf-id                                                    |
+------------------------------+---------------------------------------------------------------+
|     **Payload Parameters**   |     See below                                                 |
+------------------------------+---------------------------------------------------------------+
|     **Revision History**     |     Unchanged in this release.                                |
+------------------------------+---------------------------------------------------------------+

|

+---------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+-----------------------------------------------------------------+
|     **Payload Parameter**       |     **Description**                                                                                                                                                                |     **Required?**   |     **Example**                                                 |
+=================================+====================================================================================================================================================================================+=====================+=================================================================+
|     request- parameters         |     The parameters required to process the request must include the host-ip-address to connect to the VNF (for Chef and Ansible, this will be the url to connect to the server).   |     Yes             |     "payload":                                                  |
|                                 |                                                                                                                                                                                    |                     |     "{\\"request-parameters                                     |
|                                 |                                                                                                                                                                                    |                     |     \\": {                                                      |
|                                 |                                                                                                                                                                                    |                     |     \\"host-ip-address\\": \\”value\\”                          |
|                                 |                                                                                                                                                                                    |                     |     }                                                           |
|                                 |                                                                                                                                                                                    |                     |     \\"configuration- parameters\\": {\\"<CONFIG- PARAMS>\\"}   |
+---------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+                                                                 |
|     configuration- parameters   |     A set of instance specific configuration parameters should be specified, as required by the Chef cookbook or Ansible playbook.                                                 |     No              |                                                                 |
+---------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+-----------------------------------------------------------------+

StartApplication Response
^^^^^^^^^^^^^^^^^^^^^^^^^

The StartApplication response returns an indication of success or failure of the request.

Stop
----

Use the Stop command to stop a VM.

**NOTE:** The command implementation is based on Openstack functionality. For further details, see http://developer.openstack.org/api-ref/compute/.

+------------------------------+--------------------------------------------------------------------------------------------------------------------------------+
|     **Target URL**           |     /restconf/operations/appc-provider-lcm:stop                                                                                |
+------------------------------+--------------------------------------------------------------------------------------------------------------------------------+
|     **Action**               |     Stop                                                                                                                       |
+------------------------------+--------------------------------------------------------------------------------------------------------------------------------+
|     **Action-identifiers**   |     vnf-id and vserver-id are required.                                                                                        |
+------------------------------+--------------------------------------------------------------------------------------------------------------------------------+
|     **Payload Parameters**   |     See below                                                                                                                  |
+------------------------------+--------------------------------------------------------------------------------------------------------------------------------+
|     **Revision History**     |     Unchanged in this release                                                                                                  |
+------------------------------+--------------------------------------------------------------------------------------------------------------------------------+

Payload Parameters

+-----------------+-----------------------------------------------+-----------------+-----------------------------------------+
| **Parameter**   |     **Description**                           | **Required?**   | **Example**                             |
+=================+===============================================+=================+=========================================+
| vm-id           |     The unique identifier (UUID) of           | Yes             |                                         |
|                 |     the resource. For backwards-              |                 | "payload":                              |
|                 |     compatibility, this can be the self-      |                 | "{\\"vm-id\\": \\"<VM-ID>               |
|                 |     link URL of the VM.                       |                 | \\",                                    |
|                 |                                               |                 | \\"identity-url\\":                     |
|                 |                                               |                 | \\"<IDENTITY-URL>\\",                   |
|                 |                                               |                 | \\"tenant-id\\": \\"<TENANT- ID>\\"}"   |
+-----------------+-----------------------------------------------+-----------------+-----------------------------------------+
| identity- url   |     The identity url used to access the       | No              |                                         |
|                 |     resource                                  |                 |                                         |
+-----------------+-----------------------------------------------+-----------------+-----------------------------------------+
| tenant-id       |     The id of the provider tenant that owns   | No              |                                         |
|                 |     the resource                              |                 |                                         |
+-----------------+-----------------------------------------------+-----------------+-----------------------------------------+


StopApplication
---------------

Stops the VNF application gracefully (not lost traffic), if needed, prior to a Stop command. Supported using Chef cookbook or Ansible playbook only.

A successful StopApplication request returns a success response.

A failed StopApplication action returns a failure response code and the specific failure message in the response block.

+------------------------------+--------------------------------------------------------------+
|     **Target URL**           |     /restconf/operations/appc-provider-lcm:stopapplication   |
+------------------------------+--------------------------------------------------------------+
|     **Action**               |     StopApplication                                          |
+------------------------------+--------------------------------------------------------------+
|     **Action-Identifiers**   |     Vnf-id                                                   |
+------------------------------+--------------------------------------------------------------+
|     **Payload Parameters**   |     See below                                                |
+------------------------------+--------------------------------------------------------------+
|     **Revision History**     |     Unchanged in this release                                |
+------------------------------+--------------------------------------------------------------+

|

+---------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+-----------------------------------------------------------------+
|     **Payload Parameter**       |     **Description**                                                                                                                                                                |     **Required?**   |     **Example**                                                 |
+=================================+====================================================================================================================================================================================+=====================+=================================================================+
|     request- parameters         |     The parameters required to process the request must include the host-ip-address to connect to the VNF (for Chef and Ansible, this will be the url to connect to the server).   |     Yes             |     "payload":                                                  |
|                                 |                                                                                                                                                                                    |                     |     "{\\"request-parameters                                     |
|                                 |                                                                                                                                                                                    |                     |     \\": {                                                      |
|                                 |                                                                                                                                                                                    |                     |     \\"host-ip-address\\": \\”va lue\\”                         |
|                                 |                                                                                                                                                                                    |                     |     }                                                           |
|                                 |                                                                                                                                                                                    |                     |     \\"configuration- parameters\\": {\\"<CONFIG- PARAMS>\\"}   |
+---------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+-----------------------------------------------------------------+
|     configuration- parameters   |     A set of instance specific configuration parameters should be specified, as required by the Chef cookbook or Ansible playbook.                                                 |     No              |                                                                 |
+---------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+-----------------------------------------------------------------+

StopApplication Response
^^^^^^^^^^^^^^^^^^^^^^^^

The StopApplication response returns an indication of success or failure of the request.

Sync
----

The Sync action updates the current configuration in the APPC store with the running configuration from the device.

A successful Sync returns a success status.

A failed Sync returns a failure response status and failure messages in the response payload block.

This command can be applied to any VNF type. The only restriction is that the VNF has been onboarded in self-service mode (which requires that the VNF supports a request to return the running configuration).

+------------------------------+---------------------------------------------------+
|     **Target URL**           |     /restconf/operations/appc-provider-lcm:sync   |
+------------------------------+---------------------------------------------------+
|     **Action**               |     Sync                                          |
+------------------------------+---------------------------------------------------+
|     **Action-identifiers**   |     Vnf-id                                        |
+------------------------------+---------------------------------------------------+
|     **Payload Parameters**   |     None                                          |
+------------------------------+---------------------------------------------------+
|     **Revision History**     |     Unchanged in this release.                    |
+------------------------------+---------------------------------------------------+

Unlock
------

Run the Unlock command to release the lock on a VNF and allow other clients to perform LCM commands on that VNF.

Unlock is a command intended for APPC and does not execute an actual VNF command. Instead, unlock will release the VNF from the exclusive access held by the specific request-id allowing other requests for the VNF to be accepted.

The Unlock command will result in success if the VNF successfully unlocked or if it was already unlocked, otherwise commands will be rejected.

The Unlock command will only return success if the VNF was locked with same `request-id <#_bookmark4>`__.

The Unlock command returns only one final response with the status of the request processing.

Note: APPC locks the target VNF during any command processing. If an Unlock action is then requested on that VNF with a different request-id, it will be rejected because the VNF is already locked for another process, even though no actual lock command was explicitly invoked.

+------------------------------+-----------------------------------------------------+
|     **Target URL**           |     /restconf/operations/appc-provider-lcm:unlock   |
+------------------------------+-----------------------------------------------------+
|     **Action**               |     Unlock                                          |
+------------------------------+-----------------------------------------------------+
|     **Action-identifiers**   |     Vnf-id                                          |
+------------------------------+-----------------------------------------------------+
|     **Payload Parameters**   |     None                                            |
+------------------------------+-----------------------------------------------------+
|     **Revision History**     |     Unchanged in this release.                      |
+------------------------------+-----------------------------------------------------+


UpgradeBackout
--------------

The UpgradeBackout LCM action does a backout after an UpgradeSoftware is completed (either successfully or unsuccessfully).

This command is executed using an Ansible playbook or Chef cookbook.

Request Structure: The request payload includes an upgrade identifier.

+--------------------------+----------------------------------------------------------+
| **Target URL**           | /restconf/operations/appc-provider-lcm:upgrade-backout   |
+--------------------------+----------------------------------------------------------+
| **Action**               | UpgradeBackout                                           |
+--------------------------+----------------------------------------------------------+
| **Action-identifiers**   | vnf-id                                                   |
+--------------------------+----------------------------------------------------------+
| **Payload Parameters**   | existing-software-version, new-software-version          |
+--------------------------+----------------------------------------------------------+
| **Revision History**     | New in Beijing                                           |
+--------------------------+----------------------------------------------------------+

Request Payload Parameters:

+-----------------------+-------------------------------------+---------------------+-----------------------------------------------------------------------------------------------+
| **Parameter**         |     **Description**                 |     **Required?**   |     **Example**                                                                               |
+=======================+=====================================+=====================+===============================================================================================+
| existing-software-    |     The existing software version   |     Yes             |     "payload":                                                                                |
| version               |     prior to the upgrade            |                     |     "{\\"existing-software-version\\": \\"3.1\\", "{\\"new-software-version\\": \\"3.2\\"}”   |
+-----------------------+-------------------------------------+---------------------+                                                                                               |
| new-software-         |     The new software                |     Yes             |                                                                                               |
| version               |     version after the               |                     |                                                                                               |
|                       |     upgrade                         |                     |                                                                                               |
+-----------------------+-------------------------------------+---------------------+-----------------------------------------------------------------------------------------------+

UpgradeBackout Response
^^^^^^^^^^^^^^^^^^^^^^^

**Success:** A successful backout returns a success status code 400.

**Failure:** A failed backout returns a failure code 401 and the failure message from the Ansible or Chef server in the response payload block.

UpgradeBackup
-------------

The UpgradeBackup LCM action does a full backup of the VNF data prior to an upgrade. The backup is done on the Ansible or Chef server in a location that is specified in the playbook or cookbook. If there is an existing backup, it is overwritten by the new backup.

This command is executed using an Ansible playbook or Chef cookbook.
  
Request Structure: The payload does not have any parameters required.

+--------------------------+---------------------------------------------------------+
| **Target URL**           | /restconf/operations/appc-provider-lcm:upgrade-backup   |
+--------------------------+---------------------------------------------------------+
| **Action**               | UpgradeBackup                                           |
+--------------------------+---------------------------------------------------------+
| **Action-identifiers**   | vnf-id                                                  |
+--------------------------+---------------------------------------------------------+
| **Payload Parameters**   | existing-software-version, new-software-version         |
+--------------------------+---------------------------------------------------------+
| **Revision History**     | New in Beijing.                                         |
+--------------------------+---------------------------------------------------------+

Request Payload Parameters:

+-----------------------+-------------------------------------+---------------------+-----------------------------------------------------------------------------------------------+
| **Parameter**         |     **Description**                 |     **Required?**   |     **Example**                                                                               |
+=======================+=====================================+=====================+===============================================================================================+
| existing-software-    |     The existing software version   |     Yes             |     "payload":                                                                                |
| version               |     prior to the upgrade            |                     |     "{\\"existing-software-version\\": \\"3.1\\", "{\\"new-software-version\\": \\"3.2\\"}”   |
+-----------------------+-------------------------------------+---------------------+                                                                                               |
| new-software-         |     The new software                |     Yes             |                                                                                               |
| version               |     version after the               |                     |                                                                                               |
+-----------------------+-------------------------------------+---------------------+-----------------------------------------------------------------------------------------------+

UpgradeBackup Response
^^^^^^^^^^^^^^^^^^^^^^

**Success:** A successful backup returns a success status code 400.

**Failure:** A failed backup returns a failure code 401 and the failure message from the Ansible or Chef server in the response payload block.

UpgradePostCheck
----------------

The UpgradePostCheck LCM action checks that the VNF upgrade has been successful completed and all processes are running properly.

This command is executed using an Ansible playbook or Chef cookbook.

Request Structure:

+--------------------------+-------------------------------------------------------------+
| **Target URL**           | /restconf/operations/appc-provider-lcm:upgrade-post-check   |
+--------------------------+-------------------------------------------------------------+
| **Action**               | UpgradePostCheck                                            |
+--------------------------+-------------------------------------------------------------+
| **Action-identifiers**   | vnf-id                                                      |
+--------------------------+-------------------------------------------------------------+
| **Payload Parameters**   | existing-software-version, new-software-version             |
+--------------------------+-------------------------------------------------------------+
| **Revision History**     | New in Beijing                                              |
+--------------------------+-------------------------------------------------------------+

Request Payload Parameters:

+-----------------------+-------------------------------------+---------------------+-----------------------------------------------------------------------------------------------+
| **Parameter**         |     **Description**                 |     **Required?**   |     **Example**                                                                               |
+=======================+=====================================+=====================+===============================================================================================+
| existing- software-   |     The existing software version   |     Yes             |     "payload":                                                                                |
|  version              |     prior to the upgrade            |                     |     "{\\"existing-software-version\\": \\"3.1\\", "{\\"new-software-version\\": \\"3.2\\"}”   |
+-----------------------+-------------------------------------+---------------------+                                                                                               |
| new-software-         |     The new software                |     Yes             |                                                                                               |
| version               |     version after the               |                     |                                                                                               |
+-----------------------+-------------------------------------+---------------------+-----------------------------------------------------------------------------------------------+

UpgradePostCheck Response
^^^^^^^^^^^^^^^^^^^^^^^^^

**Success:** If the UpgradePostCheck run successfully, it returns a success status code 400. The response payload contains the results of the check (Completed or Failed).

Response Payload Parameters:

+---------------+-----------------------------+-------------+------------------------------------------------------------------------------+
| **Parameter** |     **Description**         |**Required?**|     **Example**                                                              |
+===============+=============================+=============+==============================================================================+
| Upgrade-      |     Returns the status      |     Yes     |                                                                              |
| Status        |     of the upgradw          |             |     "payload":                                                               |
|               |     post-check. Indicates   |             |     "{\\"upgrade-status\\": \\"Completed\\"}”                                |
|               |     Completed or Failed     |             |     "payload": "{\\"upgrade-status\\":                                       |
|               |                             |             |     \\"Failed\\",\\"message\\": \\"Version 3.2 is not running properly\\" }” |
+---------------+-----------------------------+-------------+                                                                              |
| Message       |     If Not Available,       |             |                                                                              |
|               |     message contains        |             |                                                                              |
|               |     explanation.            |             |                                                                              |
+---------------+-----------------------------+-------------+------------------------------------------------------------------------------+

**Failure:** If the UpgradePostCheck could not be run, it returns a failure code 401 and the failure message from the Ansible or Chef server in the response payload block.

UpgradePreCheck
---------------

The UpgradePreCheck LCM action checks that the VNF has the correct software version needed for a software upgrade. This command can be executed on a running VNF (i.e. processing traffic).

This command is executed using an Ansible playbook or Chef cookbook.

Request Structure:

+--------------------------+------------------------------------------------------------+
| **Target URL**           | /restconf/operations/appc-provider-lcm:upgrade-pre-check   |
+--------------------------+------------------------------------------------------------+
| **Action**               | UpgradePreCheck                                            |
+--------------------------+------------------------------------------------------------+
| **Action-identifiers**   | vnf-id                                                     |
+--------------------------+------------------------------------------------------------+
| **Payload Parameters**   | existing-software-version, new-software-version            |
+--------------------------+------------------------------------------------------------+
| **Revision History**     | New in Beijing                                             |
+--------------------------+------------------------------------------------------------+

Request Payload Parameters:

+-----------------------+-------------------------------------+---------------------+-----------------------------------------------------------------------------------------------+
| **Parameter**         |     **Description**                 |     **Required?**   |     **Example**                                                                               |
+=======================+=====================================+=====================+===============================================================================================+
| existing-software-    |     The existing software version   |     Yes             |     "payload":                                                                                |
| version               |     prior to the upgrade            |                     |     "{\\"existing-software-version\\": \\"3.1\\", "{\\"new-software-version\\": \\"3.2\\"}”   |
+-----------------------+-------------------------------------+---------------------+                                                                                               |
| new-software-         |     The new software                |     Yes             |                                                                                               |
| version               |     version after the               |                     |                                                                                               |
|                       |     upgrade                         |                     |                                                                                               |
+-----------------------+-------------------------------------+---------------------+-----------------------------------------------------------------------------------------------+

UpgradePreCheck Response
^^^^^^^^^^^^^^^^^^^^^^^^

**Success:** If the UpgradePreCheck runs successfully, it returns a success status code 400. The response payload contains the results of the check (Available or Not Available for upgrade).

Response Payload Parameters:

+-----------------+---------------------------+---------------------+----------------------------------------------------------------------------------------------------------------------------------+
| **Parameter**   |     **Description**       |     **Required?**   |     **Example**                                                                                                                  |
+=================+===========================+=====================+==================================================================================================================================+
| upgrade-status  |     Returns the status    |     Yes             |                                                                                                                                  |
|                 |     of the upgrade pre-   |                     |     "payload":                                                                                                                   |
|                 |     check. Indicates      |                     |     "{\\"upgrade-status\\": \\"Available\\"}”                                                                                    |
|                 |     Available or Not      |                     |                                                                                                                                  |
|                 |     Available             |                     |     "payload":                                                                                                                   |
|                 |                           |                     |     "{\\"upgrade-status\\": \\"Not Available\\",\\"message\\": \\"Current software version 2.9 cannot be upgraded to 3.1\\" }”   |
+-----------------+---------------------------+---------------------+                                                                                                                                  |
|     message     |     If Not Available,     |                     |                                                                                                                                  |
|                 |     message contains      |                     |                                                                                                                                  |
|                 |     explanation.          |                     |                                                                                                                                  |
+-----------------+---------------------------+---------------------+----------------------------------------------------------------------------------------------------------------------------------+

**Failure:** If an UpgradePreCheck fails to run, it returns a failure code 401 and the failure message from the Ansible or Chef server in the response payload block.

UpgradeSoftware
---------------

The UpgradeSoftware LCM action upgrades the target VNF to a new version. It is expected that the VNF is in a quiesced status (not processing traffic).

This command is executed using an Ansible playbook or Chef cookbook.
  
Request Structure: The request payload includes the new-software-version.

+--------------------------+-----------------------------------------------------------+
| **Target URL**           | /restconf/operations/appc-provider-lcm:upgrade-software   |
+--------------------------+-----------------------------------------------------------+
| **Action**               | UpgradeSoftware                                           |
+--------------------------+-----------------------------------------------------------+
| **Action-identifiers**   | vnf-id                                                    |
+--------------------------+-----------------------------------------------------------+
| **Payload Parameters**   | existing-software-version, new-software-version           |
+--------------------------+-----------------------------------------------------------+
| **Revision History**     | New in Beijing                                            |
+--------------------------+-----------------------------------------------------------+

 Request Payload Parameters:

+-----------------------+-------------------------------------+---------------------+-----------------------------------------------------------------------------------------------+
| **Parameter**         |     **Description**                 |     **Required?**   |     **Example**                                                                               |
+=======================+=====================================+=====================+===============================================================================================+
| existing- software-   |     The existing software version   |     Yes             |     "payload":                                                                                |
| version               |      prior to the upgrade           |                     |     "{\\"existing-software-version\\": \\"3.1\\", "{\\"new-software-version\\": \\"3.2\\"}”   |
+-----------------------+-------------------------------------+---------------------+                                                                                               |
| new-software          |     The new software                |     Yes             |                                                                                               |
| version               |     version after the               |                     |                                                                                               |
|                       |     upgrade                         |                     |                                                                                               |
+-----------------------+-------------------------------------+---------------------+-----------------------------------------------------------------------------------------------+

UpgradeSoftware Response
^^^^^^^^^^^^^^^^^^^^^^^^

**Success:** A successful upgrade returns a success status code 400.

If an UpgradeSoftware command is executed and the software has been previously upgraded to this version, it should return a success status.

**Failure:** A failed upgrade returns a failure code 401 and the failure message from the Ansible or Chef server in the response payload block. A failure does not assume that the software upgrade has been rolled back.

Notes regarding the Upgrade commands
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Ansible playbooks / Chef cookbooks:

-  All Ansible playbooks/cookbooks for the Upgrade commands will be
   stored in the same directory on the server. The directory name will
   be of the format: 
   
        {existing-software-version\_new-software-version}. 
		
		The path to the directory is the same for all upgrades (for example: vnf-type/softwareupgrade).

-  The playbooks for upgrades should use a standard naming convention
   (for example: SoftwareUpgrade\_{existing-software-version\_new-software-version}).

APPC template: The APPC templates for the Upgrade commands can be common across upgrades for the vnf-type if the path and filenames are standardized.

-  The template will contain the directory path/playbook name which
   would be parameterized.

    {vnf-type}/UpgradeSoftware/${existing\_software\_version}\_${new-software-version}/
    SoftwareUpgrade\_{existing-software-version\_new-software-version}.

