.. ============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 APPC 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 APPC. 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 (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. 

   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.

**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       |                  |                |          |     Any (requires self-service onboarding)                 |
+------------------------+-----------+------------------+----------------+----------+------------------------------------------------------------+
|     ConfigBackup       | Yes       |                  |                |          | Chef and Ansible only (requires self-service onboarding)   |
+------------------------+-----------+------------------+----------------+----------+------------------------------------------------------------+
|     ConfigModify       | 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)                           |
+------------------------+-----------+------------------+----------------+----------+------------------------------------------------------------+
|     DistributeTraffic  | Yes       |                  | Yes            | Yes      | Chef and Ansible only (requires self-service onboarding)   |
+------------------------+-----------+------------------+----------------+----------+------------------------------------------------------------+
|     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)   |
+------------------------+-----------+------------------+----------------+----------+------------------------------------------------------------+
|     Reboot             |           |                  |                | Yes      |     Any (uses OpenStack command)                           |
+------------------------+-----------+------------------+----------------+----------+------------------------------------------------------------+
|     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",                                                                   |
+-----------------------------+------------------------------------------------------+--------------------+---------------------------------------------------------------------------------------------------------------------------+
| device                      |     The device identifier                            | Yes                |     "device": "/dev/vdb"                                                                                                  |
+-----------------------------+------------------------------------------------------+--------------------+---------------------------------------------------------------------------------------------------------------------------+
| vm-id                       |     TThe self- link URL of the VM.                   | Yes                |     "vm-id": http://135.25.246.162:8774/v2/64af07e991424b8e9e54eca27d5c0d48/servers/b074cd1b-8d53-412e-a102-351cc51ac10a" |
+-----------------------------+------------------------------------------------------+--------------------+---------------------------------------------------------------------------------------------------------------------------+
| Identity-url                |     The identity URL used to access the resource     | Yes                |     "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: optional if Netconf or other direct interface to the VNF.   If not provided, APPC will look for the host-ip-address in the A&AI VNF oam ipv4 address field.                           |     No              |                                                                 |
|                                 |                                                                                                                                                                                                                |                     |     "payload":                                                  |
|                                 |     vnfc-type:  must be included if template is vnfc specific                                                                                                                                                  |                     |     "{ \\"request-parameters                                    |
|                                 |                                                                                                                                                                                                                |                     |     \\": {                                                      |
|                                 |                                                                                                                                                                                                                |                     |     \\"vnf-host-ip-address\\":                                  |
|                                 |                                                                                                                                                                                                                |                     |     \\”value\\”,                                                |
|                                 |                                                                                                                                                                                                                |                     |     \\”vnfc-type\\”: \\”value\\”’                               |
|                                 |                                                                                                                                                                                                                |                     |     }                                                           |
|                                 |                                                                                                                                                                                                                |                     |                                                                 |
|                                 |                                                                                                                                                                                                                |                     |                                                                 |
|                                 |                                                                                                                                                                                                                |                     |                                                                 |
|                                 |                                                                                                                                                                                                                |                     |                                                                 |
|                                 |                                                                                                                                                                                                                |                     |                                                                 |
|                                 |                                                                                                                                                                                                                |                     |                                                                 |
|                                 |                                                                                                                                                                                                                |                     |                                                                 |
|                                 |                                                                                                                                                                                                                |                     |                                                                 |
|                                 |                                                                                                                                                                                                                |                     |                                                                 |
+---------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+                                                                 |
|     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. 

**Success:** A successful Configure returns a success status code 400.
**Failure:** A failed Configure returns a failure code 401 and the failure message.  

If successful, the return payload contains the ‘upload_config_id’ and values for any records created in the APPC DB. In addition, the configuration is sent to the ONAP Data Router bus  which may be received by an external configuration storage system.

If APPC in unable to update A&AI with the VNFC records, a 501 intermediate error message returned prior to the final 400 or 401 success message.

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     |                 |     {\\"vnf-host-ip-address\\": \\”value\\",          |
|                         | obtained from A&AI                     |                 |     \\”vnfc-type\\”: \\”value\\”                      |
|                         |                                        |                 |     }                                                 |
|                         |                                        |                 |                                                       |
|                         | vnfc-type: must be included if template|                 |                                                       |
|                         | is vnfc specific                       |                 |                                                       |
|                         |                                        |                 |     \\"configuration- parameters\\": {\\"name1\\":    |
|                         |                                        |                 |     \\”value1\\”,\\"name2\\":                         |
|                         |                                        |                 |     \\”value2\\”                                      |
|                         |                                        |                 |     }                                                 |
|                         |                                        |                 |     }                                                 |
+-------------------------+----------------------------------------+-----------------+                                                       |
| configuration-          | A set of instance specific             | No              |                                                       |
| parameters              | configuration parameters should        |                 |                                                       |
|                         | be specified.                          |                 |                                                       |
+-------------------------+----------------------------------------+-----------------+-------------------------------------------------------+

ConfigModify Request
^^^^^^^^^^^^^^^^^^^^

    Examples::

              {
                     "input": {
                          "common-header": {
                              "timestamp": "2017-10-25T11:10:04.244Z",
                              "api-ver": "2.00",
                              "originator-id": "664be3d2-6c12-4f4b-a3e7-c349acced200",
                              "request-id": "664be3d2-6c12-4f4b-a3e7-c349acced200",
                              "sub-request-id": "1",
                              "flags": {
                                  "force": "TRUE",
                                  "ttl": 60000
                              }
                          },
                          "action": "ConfigModify",
                          "action-identifiers": {
                              "vnf-id": "<VNF_ID>"
                          },
                          "payload": "{ \"config-url\":\"5f517fd4-bf3d-43bc-8147-1b61776d7ded\",
                                        \"config-json\": \"{\"pg-streams\":{
                                        \"pg-stream\": [{ \"id\":\"fw_udp1\", \"is-enabled\": \"true\" }, 
                                        {\"id\": \"fw_udp2\", \"is-enabled\":\"true\" }, 
                                        { \"id\": \"fw_udp3\",\"is-enabled\": \"true\" },
                                        { \"id\":\"fw_udp4\", \"is-enabled\": \"true\" }, 
                                        {\"id\": \"fw_udp5\", \"is-enabled\":\"true\" }]}}"
                          }
                      }
             }


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

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

If successful, 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:config-backup  |
+------------------------------+-----------------------------------------------------------+
|     **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.

**Success:** A successful ConfigBackup returns a success status code 400.
**Failure:** A failed ConfigBackup returns a failure code 401 and the failure message.  


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:config-restore                                |
+------------------------------+------------------------------------------------------------------------------------------+
|     **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
^^^^^^^^^^^^^^^^^^^^^^

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

If successful, 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 ONAP Data Router bus which may be received by an external configuration storage system.

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



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 self- link URL of the VM.                              | Yes                |     "vm-id": http://135.25.246.162:8774/v2/64af07e991424b8e9e54eca27d5c0d48/servers/b074cd1b-8d53-412e-a102-351cc51ac10a"      |
+-----------------------------+----------------------------------------------------------------+--------------------+--------------------------------------------------------------------------------------------------------------------------------+
| Identity-url                |     The identity URL used to access the resource               | Yes                |     "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

DistributeTraffic
-----------------

The Distribute Traffic LCM action is used to distribute traffic across different instances of VNF, VNFC or VM.
The entity for which Distribute Traffic LCM action is being invoked is called an anchor point that is responsible for final
realization of request. Parameters present in configuration file specify where and how traffic should be distributed,
including: traffic destination points like VNFs, VNFCs or VMs; distribution weights; rollback strategy.
Format of configuration file is specific to each VNF type.

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

Request Structure:

+--------------------------+--------------------------------------------------------------+
| **Target URL**           | /restconf/operations/appc-provider-lcm:distribute-traffic    |
+--------------------------+--------------------------------------------------------------+
| **Action**               | DistributeTraffic                                            |
+--------------------------+--------------------------------------------------------------+
| **Action-identifiers**   | vnf-id, vserver-id, vnfc-name                                |
+--------------------------+--------------------------------------------------------------+
| **Payload Parameters**   | See below                                                    |
+--------------------------+--------------------------------------------------------------+
| **Revision History**     | New in Casablanca                                            |
+--------------------------+--------------------------------------------------------------+

Request Payload Parameters:

+---------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+---------------------------------------------------------------------------+
| **Parameter**                   |     **Description**                                                                                                                                              |     **Required?**   |     **Example**                                                           |
+=================================+==================================================================================================================================================================+=====================+===========================================================================+
|     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              |    "payload":                                                             |
|                                 |     values supplied. The parameters are associated with request template defined with CDT                                                                        |                     |    "{\\"configuration-parameters\\":{                                     |
|                                 |                                                                                                                                                                  |                     |    \\"config_file_name\\":\\"/opt/onap/ccsdk/Playbooks/dt/config\\",      |
|                                 |                                                                                                                                                                  |                     |    \\"playbook\\":\\"ansible_vfw_distributetraffic@0.00.yml\\",           |
|                                 |                                                                                                                                                                  |                     |    \\"node_list\\":\\"[vpkg-1]\\"                                         |
|                                 |                                                                                                                                                                  |                     |    }                                                                      |
|                                 |                                                                                                                                                                  |                     |    }"                                                                     |
+---------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+---------------------------------------------------------------------------+

Exemplary CDT template for Ansible protocol::

    {
        "PlaybookName": ${playbook},
        "NodeList": ${node_list},
        "EnvParameters": {
            "ConfigFileName": "${config_file_name}"
         },
        "Timeout": 3600
    }

EnvParameters includes protocol specific parameters, here with name of configuration file having additional parameters for Ansible playbook or Chef cookbook.
Distribute Traffic config file can have such parameters like traffic destinations, distribution weights or rollback strategy.

DistributeTraffic Response
^^^^^^^^^^^^^^^^^^^^^^^^^^

The response does not include any payload parameters.

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

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

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 target host 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` 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, identity-url, tenant-id, rebuild-vm, targethost-id           |
+------------------------------+-------------------------------------------------------------------------+
|     **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                                                                                                                                 |     Yes             |                                       |
+----------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+                                       |
|     tenant-id        |     The id of the provider tenant that owns the resource                                                                                                                         |     Yes             |                                       |
+----------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+                                       |
|     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              |                                       |
+----------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+---------------------------------------+

Evacuate Response:
^^^^^^^^^^^^^^^^^^
**Success:** A successful Evacuate returns a success status code 400.
**Failure:** A failed Evacuate returns a failure code 401 and the failure message.



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                             |
+------------------------------+-----------------------------------------------------------+


Request Payload Parameters:

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


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

**Success:** The HealthCheck returns a 400 success message if the test completes. A JSON payload is returned indicating state (healthy, unhealthy), scope identifier, time-stamp and one or more blocks containing info and fault information.

    Examples::

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

		}

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

**Failure:** If the VNF is unable to run the HealthCheck. APP-C 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.

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.

The lock automatically clears after 900 seconds (15 minutes). This 900 second value can be adjusted in the properties file

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

Lock Response
^^^^^^^^^^^^^

The Lock returns a 400 Success response if the Lock is successfully applied.

The Lock returns a 401 Failure response with the failure message if the Lock is not successful.


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.


**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, identity-url, tenant-id                                                            |
+--------------------------------+-----------------------------------------------------------------------------------------------+
|     **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-ID>\\"}"      |
|     identity- url   |     The identity url used to access the resource                        |     Yes             |                                               |
|                     |                                                                         |                     |                                               |
+---------------------+-------------------------------------------------------------------------+---------------------+					              |
|     tenant-id       |     The id of the provider tenant that owns the resource                |     Yes             |                                               |
+---------------------+-------------------------------------------------------------------------+---------------------+-----------------------------------------------+


Migrate Response
^^^^^^^^^^^^^^^^

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

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


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.

Reboot
-------

The Reboot is used to reboot a VM.

 
There are two types supported: HARD and SOFT. A SOFT reboot attempts a graceful shutdown and restart of the server. A HARD reboot attempts a forced shutdown and restart of the server. The HARD reboot corresponds to the power cycles of the server.

**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 Reboot                                   |
+------------------------------+-----------------------------------------------------------------------------------------------+
|     **Target URL**           |     /restconf/operations/appc-provider-lcm:reboot                                             |
+------------------------------+-----------------------------------------------------------------------------------------------+
|     **Action**               |     Reboot                                                                                    |
+------------------------------+-----------------------------------------------------------------------------------------------+
|     **Action-identifiers**   |     Vnf-id, vserver-id                                                                        |
+------------------------------+-----------------------------------------------------------------------------------------------+
|     **Payload Parameters**   |     See table below                                                                           |
+------------------------------+-----------------------------------------------------------------------------------------------+
|     **Revision History**     |     New in R3 release.                                                                        |
+------------------------------+-----------------------------------------------------------------------------------------------+

Payload Parameters

+-----------------+-----------------------------------------------+-----------------+-----------------------------------------+
| **Parameter**   |     **Description**                           | **Required?**   | **Example**                             |
+=================+===============================================+=================+=========================================+
| type            |     The type of reboot.  Values are           | No              |                                         |
|                 |     HARD and SOFT.  If not                    |                 |                                         |
|                 |     specified, SOFT reboot is                 |                 | "payload":                              |
|                 |     performed.                                |                 | "{\\"type\\": \\"HARD\\",               |
|                 |                                               |                 |   \\"vm-id\\": \\"<VM-ID>\\",           |
|                 |                                               |                 | \\"identity-url\\":                     |
|                 |                                               |                 | \\"<IDENTITY-URL>\\"                    |
|                 |                                               |                 | }"                                      | 
+-----------------+-----------------------------------------------+-----------------+                                         |
| vm-id           |     The unique identifier (UUID) of           | Yes             |                                         |
|                 |     the resource. For backwards-              |                 |                                         |
|                 |     compatibility, this can be the self-      |                 |                                         |
|                 |     link URL of the VM.                       |                 |                                         |
|                 |                                               |                 |                                         |
|                 |                                               |                 |                                         |
|                 |                                               |                 |                                         |
|                 |                                               |                 |                                         |
+-----------------+-----------------------------------------------+-----------------+                                         |
| identity-url    |     The identity url used to access the       | Yes             |                                         |
|                 |     resource.                                 |                 |                                         |
+-----------------+-----------------------------------------------+-----------------+-----------------------------------------+

Reboot Response
^^^^^^^^^^^^^^^

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

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

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 snapshot provided by the snapshot-id (if provided).  If not provided, the latest snapshot is used.  If there are no snapshots, it uses the (original) Glance image.

APPC rejects a rebuild request if it determines the VM boots from a Cinder Volume


**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**   |     See table 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-              |                 |                                         |
|                 |     compatibility, this can be the self-      |                 | "payload":                              |
|                 |     link URL of the VM.                       |                 | "{\\"vm-id\\": \\"<VM-ID>               |
|                 |                                               |                 | \\",                                    |
|                 |                                               |                 | \\"identity-url\\":                     |
|                 |                                               |                 | \\"<IDENTITY-URL>\\",                   |
|                 |                                               |                 | \\"tenant-id\\": \\"<TENANT- ID>\\"}"   |
+-----------------+-----------------------------------------------+-----------------+ \\"snapshot-id\\": \\"<SNAPSHOT- ID>\\" |
| identity- url   |     The identity url used to access the       | Yes             | }"                                      |
|                 |     resource.                                 |                 |                                         |
+-----------------+-----------------------------------------------+-----------------+                                         |
| tenant-id       |     The id of the provider tenant that owns   | Yes             |                                         |
|                 |     the resource.                             |                 |                                         |
+-----------------+-----------------------------------------------+-----------------+                                         |
| snapshot-id     |  The snapshot-id of a previously saved image. | No              |                                         |       
+-----------------+-----------------------------------------------+-----------------+-----------------------------------------+

Rebuild Response
^^^^^^^^^^^^^^^^

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

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

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 a VM in 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, vserver-id                                                                              |
+------------------------------+-----------------------------------------------------------------------------------------------------+
|     **Payload Parameters**   |     vm-id, identity-url, tenant-id                                                                  |
+------------------------------+-----------------------------------------------------------------------------------------------------+
|     **Revision History**     |     Unchanged in this release.                                                                      |
+------------------------------+-----------------------------------------------------------------------------------------------------+

Payload Parameters

+---------------------+-------------------------------------------------------------------------+---------------------+----------------------------------------+
| **Parameter**       |     **Description**                                                     |     **Required?**   |     **Example**                        |
+=====================+=========================================================================+=====================+========================================+
|     vm-id           |     The self-link URL of the VM                                         |     Yes             |                                        |
|                     |                                                                         |                     |     "payload":                         |
|                     |                                                                         |                     |     "{\\"vm-id\\": \\"<VM-ID>\\",      |
|                     |                                                                         |                     |     \\"identity-url\\":                |
|                     |                                                                         |                     |     \\"<IDENTITY-URL>\\",              |
|                     |                                                                         |                     |     \\"tenant-id\\":\\"<TENANT-ID>\\"}"|
+---------------------+-------------------------------------------------------------------------+---------------------+		                               |
|     identity- url   |     The identity url used to access the resource                        |     No              |                                        |
|                     |                                                                         |                     |                                        |
+---------------------+-------------------------------------------------------------------------+---------------------+                                        |
|     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.


Start
-----

Use the Start command to start a VM that is stopped.

**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 table 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:start-application  |
+------------------------------+---------------------------------------------------------------+
|     **Action**               |     StartApplication                                          |
+------------------------------+---------------------------------------------------------------+
|     **Action-Identifiers**   |     Vnf-id                                                    |
+------------------------------+---------------------------------------------------------------+
|     **Payload Parameters**   |     See table below                                           |
+------------------------------+---------------------------------------------------------------+
|     **Revision History**     |     Unchanged in this release.                                |
+------------------------------+---------------------------------------------------------------+

|

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

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

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

Stop
----

Use the Stop command to stop a VM that was 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:stop                                                                                |
+------------------------------+--------------------------------------------------------------------------------------------------------------------------------+
|     **Action**               |     Stop                                                                                                                       |
+------------------------------+--------------------------------------------------------------------------------------------------------------------------------+
|     **Action-identifiers**   |     vnf-id and vserver-id are required.                                                                                        |
+------------------------------+--------------------------------------------------------------------------------------------------------------------------------+
|     **Payload Parameters**   |     See table 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:stop-application  |
+------------------------------+--------------------------------------------------------------+
|     **Action**               |     StopApplication                                          |
+------------------------------+--------------------------------------------------------------+
|     **Action-Identifiers**   |     Vnf-id                                                   |
+------------------------------+--------------------------------------------------------------+
|     **Payload Parameters**   |     See table below                                          |
+------------------------------+--------------------------------------------------------------+
|     **Revision History**     |     Unchanged in this release                                |
+------------------------------+--------------------------------------------------------------+

|

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


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**   |     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 write the running configuration to file                                       |     Yes             |     "publish-config": "<Y\|N>"   |
|                      |                                                                                                                                                           |                     |                                  |
|                      |     \* If the publish\-config field is set to N in the payload, then running configuration is not written to the file                                     |                     |                                  |
|                      |                                                                                                                                                           |                     |                                  |
+----------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+----------------------------------+


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.

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**   |     see table below                                 |
+------------------------------+-----------------------------------------------------+
|     **Revision History**     |     Unchanged in this release.                      |
+------------------------------+-----------------------------------------------------+

|

+---------------------------------+-------------------------------------------------------------------------+---------------------+----------------------------------+
|     **Payload Parameter**       |     **Description**                                                     |     **Required?**   |     **Example**                  |
+=================================+=========================================================================+=====================+==================================+
|     request-id                  |     Request id from the previously submitted request                    |     Yes             |    "request-id": "123456789"     |
+---------------------------------+-------------------------------------------------------------------------+---------------------+----------------------------------+


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}.


