diff --git a/docs/APPC API Guide/APPC API Guide.rst b/docs/APPC API Guide/APPC API Guide.rst
new file mode 100644
index 0000000..63ebd27
--- /dev/null
+++ b/docs/APPC API Guide/APPC API Guide.rst
@@ -0,0 +1,1414 @@
+ONAP Application Controller (APPC) API Guide
+============================================
+
+Revision History
+----------------
+
++--------------+------------+---------------+--------------------------------------------------------+
+| Date         | Revision   | Author        | Changes                                                |
++--------------+------------+---------------+--------------------------------------------------------+
+| 2017-08-25   | 2.0.0      | Paul Miller   | Updates for software contribution in Amsterdam Release |
+|              |            |               |                                                        |
+|              |            |               | **Commands Removed**                                   |
+|              |            |               | - LiveUpgrade                                          |
+|              |            |               | - ModifyConfig (replaced by ConfigModify)              |
+|              |            |               | - Rollback                                             |
+|              |            |               | - SoftwareUpload                                       |
+|              |            |               | - Terminate                                            |
+|              |            |               | - Test                                                 |
++--------------+------------+---------------+--------------------------------------------------------+
+| 2017-02-06   | 1.0.0      | mjf           | copyright updated                                      |
++--------------+------------+---------------+--------------------------------------------------------+
+
+|
+
+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.
+
+
+Conventions
+-----------
+
++--------------+------------------------------------------------------------------------------------------+
+| Convention   | Description                                                                              |
+|              |                                                                                          |
++==============+==========================================================================================+
+|``Monospace`` | This font indicates sample codes, screenshots, or elements. For example::                |
+|              |                                                                                          |
+|              |  "contact": {                                                                            |
+|              |    		"contactType": "USER",                                                    |
+|              |    		"source": "app1",                                                         |
+|              |   	     }                                                                            |
+|              |                                                                                          |
++--------------+------------------------------------------------------------------------------------------+
+|*Italics*     | Emphasizes a point or denotes new terms at the place where they are defined in the text. |
+|              | Indicates an external book title reference.                                              |
+|              |                                                                                          |
++--------------+------------------------------------------------------------------------------------------+
+
+
+
+Life Cycle Management Commands
+==============================
+
+APPC receives commands from external ECOMP 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 or UEB).  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:
+
+   guides/appc_api_client
+
+
+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 UEB/DMaaP 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 UEB/DMaaP 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 APP-C.                                                          |                     |
+|                      |                                                                                                                |                     |
++----------------------+----------------------------------------------------------------------------------------------------------------+---------------------+
+| correlation- id      | Correlation ID used for associating responses in APPC Client Library. Built as: <request-id>-<sub-request-id>  |     Yes             |
++----------------------+----------------------------------------------------------------------------------------------------------------+---------------------+
+| rpc-name             | The target Remote Processing Call (RPC) name which should match the LCM command name. For example: configure   |     Yes             |
++----------------------+----------------------------------------------------------------------------------------------------------------+---------------------+
+| 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             |
+|                      |                                                                                                                |                     |
++----------------------+----------------------------------------------------------------------------------------------------------------+---------------------+
+
+
+Generic Request Format
+----------------------
+
+The LCM API general request format is applicable for both POST HTTP API and for the message body received via the EUB/DMaaP 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": "<ECOMP_SYSTEM_ID>",
+    					"request-id": "<ECOMP_REQUEST_ID>",
+    					"sub-request-id": "<ECOMP_SUBREQUEST_ID>",
+    					"flags": {
+    						   "mode": "<EXCLUSIVE|NORMAL>",
+    						   "force": "<TRUE|FALSE>",
+    						   "ttl": "<TTL_VALUE>"
+    						 }
+    	                         },
+    		"action": "<COMMAND_ACTION>",
+    		"action-identifiers": {
+    					"vnf-id": "<ECOMP_VNF_ID>",
+    					"vnfc-name": "<ECOMP_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. For example:                                                                                                                                                  |     Yes             |
+|                           |                                                                                                                                                                                                                                                                                                                        |                     |
+|                           | -  5.00 for this version                                                                                                                                                                                                                                                                                               |                     |
++---------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+
+|     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" - accept no queued requests on this VNF while processing, or                                                                                                                                                                                                                                         |                     |
+|                           |                                                                                                                                                                                                                                                                                                                        |                     |
+|                           |    -  "NORMAL" - queue other requests until complete                                                                                                                                                                                                                                                                   |                     |
+|                           |                                                                                                                                                                                                                                                                                                                        |                     |
+|                           | -  "FORCE" : "TRUE"\|"FALSE" - run action even if target is in an unstable state (for example, if VNF is busy processing another LCM command or if a previous command failed and VNF was indicated as not STABLE), or not.                                                                                             |                     |
+|                           |                                                                                                                                                                                                                                                                                                                        |                     |
+|                           |     The specific behavior of forced actions varies, but implies cancellation of the previous action and an override by the new action. The default value is FALSE.                                                                                                                                                     |                     |
+|                           |                                                                                                                                                                                                                                                                                                                        |                     |
+|                           |     Force flag are used to bypass APPC’s working state management for the VNF(VNF working State Management) :                                                                                                                                                                                                          |                     |
+|                           |                                                                                                                                                                                                                                                                                                                        |                     |
+|                           |     APPC maintains working state (in the VNF\_STATE\_MANAGEMENT table present in the APPC-DB) for the VNF depending on the last action performed on it:                                                                                                                                                                |                     |
+|                           |                                                                                                                                                                                                                                                                                                                        |                     |
+|                           |     There are below 3 states appc have for VNF while performing non-read only operation (Read-Only operations are : Lock, Unlock, CheckLock, Sync, Audit etc. ) :                                                                                                                                                      |                     |
+|                           |                                                                                                                                                                                                                                                                                                                        |                     |
+|                           |     1) Stable – If the last action performed on a VNF is Successful (returning Success).                                                                                                                                                                                                                               |                     |
+|                           |                                                                                                                                                                                                                                                                                                                        |                     |
+|                           |     2) Unstable – This is the intermediate state for any VNF on which operation is being performed.                                                                                                                                                                                                                    |                     |
+|                           |                                                                                                                                                                                                                                                                                                                        |                     |
+|                           |     3) Unknown – This is the status when the last action performed on a VNF is not successful.                                                                                                                                                                                                                         |                     |
+|                           |                                                                                                                                                                                                                                                                                                                        |                     |
+|                           |     APPC have validation that it will not allow any operations on VNF which is in Unstable or Unknown state. To skip this check end-user can pass Force-flag=true in the request.                                                                                                                                      |                     |
+|                           |                                                                                                                                                                                                                                                                                                                        |                     |
+|                           | -  "TTL": <0....N> - The timeout value for the action to run, between action received by APPC and action initiated.                                                                                                                                                                                                    |                     |
+|                           |                                                                                                                                                                                                                                                                                                                        |                     |
+|                           |     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, Terminate.                                                                                                                                                                                                                                               |     Yes             |
+|                           |                                                                                                                                                                                                                                                                                                                        |                     |
+|                           |     ***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                 |
++---------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+
+|     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.                                                                                                                                                                                             |     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.*                                                                                                                                                                                                                                  |                     |
++---------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+
+
+
+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 EUB/DMaaP 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": "<ECOMP\_SYSTEM\_ID>",
+    					"request-id": "<ECOMP\_REQUEST\_ID>",
+    					"sub-request-id": "<ECOMP\_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. For example:                                                     |     Yes             |
+|                      |                                                                                                                                                                                                                           |                     |
+|                      | -  5.00 for this version                                                                                                                                                                                                  |                     |
++----------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+
+|     originator-id    |     An identifier of the calling system limited to a length of 40 characters.                                                                                                                                             |     Yes             |
+|                      |                                                                                                                                                                                                                           |                     |
+|                      |     It can be used for addressing purposes, such as to return an asynchronous response to the correct destination, in particular where there are multiple consumers of APPC APIs.                                         |                     |
++----------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+
+|     request-id       |     The UUID for the request ID, limited to a length of 40 characters. The unique OSS/BSS identifier for the request ID that triggers the current LCM action. Multiple API calls can be made with the same request- id.   |     Yes             |
+|                      |                                                                                                                                                                                                                           |                     |
+|                      |     The request-id is stored throughout the operations performed during a single request.                                                                                                                                 |                     |
++----------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+
+|     sub-request-id   |     Uniquely identifies a specific LCM or control action, limited to a length of 40 characters. Persists throughout the life cycle of a single request.                                                                   |     No              |
++----------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+
+|     timestamp        |     The time of the request, in ISO 8601 format, ZULU offset. For example: 2016-08-03T08:50:18.97Z.                                                                                                                       |     Yes             |
++----------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+
+|     status           |     The status describes the outcome of the command processing. Contains a code and a message providing success or failure details.                                                                                       |     Yes             |
+|                      |                                                                                                                                                                                                                           |                     |
+|                      |     ***NOTE:** See* status *for code values.*                                                                                                                                                                             |                     |
++----------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+
+|     payload          |     An open-format field.                                                                                                                                                                                                 |     No              |
+|                      |                                                                                                                                                                                                                           |                     |
+|                      |     The payload can be any valid JSON string value. JSON escape characters need to be added when an inner JSON string is included within the payload, for example: "{\\"upload\_config\_id\\": \\"<value\\"}".            |                     |
+|                      |                                                                                                                                                                                                                           |                     |
+|                      |     The payload is typically used to provide parametric data associated with the response to the command.                                                                                                                 |                     |
+|                      |                                                                                                                                                                                                                           |                     |
+|                      |     Note that not all LCM commands need have a payload.                                                                                                                                                                   |                     |
+|                      |                                                                                                                                                                                                                           |                     |
+|                      |     ***NOTE:** The specific value(s) for the response payload, where relevant, is provided for in each* command *description.*                                                                                            |                     |
++----------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+
+|     [Field name]     |     Additional fields can be provided in the response, if needed, by specific commands.                                                                                                                                   |     No              |
++----------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+
+|     code             |     A unique pre-defined value that identifies the exact nature of the success or failure status.                                                                                                                         |     No              |
++----------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+
+|     message          |     The description of the success or failure status.                                                                                                                                                                     |     No              |
++----------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+
+
+
+Status Codes
+^^^^^^^^^^^^
+
+The status code is returned in the response message as the code parameter, and the description as the message parameter.
+
+The different responses are categorized as follows:
+
+**ACCEPTED**
+
+    Request is valid and accepted for processing.
+
+**ERROR**
+
+    Request invalid or incomplete.
+
+**REJECT**
+
+    Request rejected during processing due to invalid data, such as an
+    unsupported command or a non-existent service-instance-id.
+
+**SUCCESS**
+
+    Request is valid and completes successfully.
+
+**FAILURE**
+
+    The request processing resulted in failure.
+
+    A FAILURE response is always returned asynchronously via the message
+    bus.
+
+**PARTIAL SUCCESS**
+
+    The request processing resulted in partial success where at least
+    one step in a longer process completed successfully.
+
+    A PARTIAL SUCCESS response is always returned asynchronously via the
+    message bus.
+
+**PARTIAL FAILURE**
+
+    The request processing resulted in partial failure.
+
+    A PARTIAL FAILURE response is always returned asynchronously via the
+    message bus.
+
++-----------------------+----------------+--------------------------------------------------------------------------------------------------------------------------------------+
+|     **Category**      |     **Code**   |     **Message / Description**                                                                                                        |
++=======================+================+======================================================================================================================================+
+|     ACCEPTED          |     100        |     ACCEPTED - Request accepted                                                                                                      |
++-----------------------+----------------+--------------------------------------------------------------------------------------------------------------------------------------+
+|     ERROR             |     200        |     UNEXPECTED ERROR - ${detailedErrorMsg}                                                                                           |
++-----------------------+----------------+--------------------------------------------------------------------------------------------------------------------------------------+
+|     REJECT            |     300        |     REJECTED - ${detailedErrorMsg}                                                                                                   |
++-----------------------+----------------+--------------------------------------------------------------------------------------------------------------------------------------+
+|                       |     301        |     INVALID INPUT PARAMETER -${detailedErrorMsg}                                                                                     |
++-----------------------+----------------+--------------------------------------------------------------------------------------------------------------------------------------+
+|                       |     302        |     MISSING MANDATORY PARAMETER - Parameter ${paramName} is missing                                                                  |
++-----------------------+----------------+--------------------------------------------------------------------------------------------------------------------------------------+
+|                       |     303        |     REQUEST PARSING FAILED - ${detailedErrorMsg}                                                                                     |
++-----------------------+----------------+--------------------------------------------------------------------------------------------------------------------------------------+
+|                       |     304        |     NO TRANSITION DEFINED - No Transition Defined for ${actionName} action and ${currentState} state                                 |
++-----------------------+----------------+--------------------------------------------------------------------------------------------------------------------------------------+
+|                       |     305        |     ACTION NOT SUPPORTED - ${actionName} action is not supported                                                                     |
++-----------------------+----------------+--------------------------------------------------------------------------------------------------------------------------------------+
+|                       |     306        |     VNF NOT FOUND - VNF with ID ${vnfId} was not found                                                                               |
++-----------------------+----------------+--------------------------------------------------------------------------------------------------------------------------------------+
+|                       |     307        |     DG WORKFLOW NOT FOUND - No DG workflow found for the combination of ${dgModule} module ${dgName} name and ${dgVersion} version   |
++-----------------------+----------------+--------------------------------------------------------------------------------------------------------------------------------------+
+|                       |     308        |     WORKFLOW NOT FOUND - No workflow found for VNF type                                                                              |
+|                       |                |                                                                                                                                      |
+|                       |                |     ${vnfTypeVersion} and ${actionName} action                                                                                       |
++-----------------------+----------------+--------------------------------------------------------------------------------------------------------------------------------------+
+|                       |     309        |     UNSTABLE VNF - VNF ${vnfId} is not stable to accept the command                                                                  |
++-----------------------+----------------+--------------------------------------------------------------------------------------------------------------------------------------+
+|                       |     310        |     LOCKING FAILURE -${detailedErrorMsg}                                                                                             |
++-----------------------+----------------+--------------------------------------------------------------------------------------------------------------------------------------+
+|                       |     311        |     EXPIREDREQUEST. The request processing time exceeded the maximum available time                                                  |
++-----------------------+----------------+--------------------------------------------------------------------------------------------------------------------------------------+
+|                       |     312        |     DUPLICATEREQUEST. The request already exists                                                                                     |
++-----------------------+----------------+--------------------------------------------------------------------------------------------------------------------------------------+
+|                       |     313        |     MISSING VNF DATA IN A&AI - ${attributeName} not found for VNF ID =                                                               |
+|                       |                |                                                                                                                                      |
+|                       |                |     ${vnfId}                                                                                                                         |
++-----------------------+----------------+--------------------------------------------------------------------------------------------------------------------------------------+
+|     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        |     Requested action is not supported on the VNF                                                                                     |
++-----------------------+----------------+--------------------------------------------------------------------------------------------------------------------------------------+
+|     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’s Types Supported**
+
+Commands, or actions, may be currently supported on all VNF types or a limited set of VNF types. Note that the intent in the 1710 release 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**                                 |
++========================+===============+=====================+================+==============+================================================================+
+|     Audit              |     Yes       |                     |                |              |     Any (requires self-service onboarding)                     |
++------------------------+---------------+---------------------+----------------+--------------+----------------------------------------------------------------+
+|     CheckLock          |     Yes       |                     |                |              |     Any (APPC internal command)                                |
++------------------------+---------------+---------------------+----------------+--------------+----------------------------------------------------------------+
+|     Configure          |     Yes       |                     |     Yes        |              |     Any (requires self-service onboarding)                     |
++------------------------+---------------+---------------------+----------------+--------------+----------------------------------------------------------------+
+|     ConfigModify       |     Yes       |                     |     Yes        |              |     Any (requires self-service onboarding)                     |
++------------------------+---------------+---------------------+----------------+--------------+----------------------------------------------------------------+
+|     ConfigBackup       |     Yes       |                     |                |              |     Chef and Ansible only (requires self-service onboarding)   |
++------------------------+---------------+---------------------+----------------+--------------+----------------------------------------------------------------+
+|     ConfigRestore      |     Yes       |                     |                |              |     Chef and Ansible only (requires self-service onboarding)   |
++------------------------+---------------+---------------------+----------------+--------------+----------------------------------------------------------------+
+|     Evacuate           |               |                     |                |     Yes      | Any (uses OpenStack Evacuate command)                          |
++------------------------+---------------+---------------------+----------------+--------------+----------------------------------------------------------------+
+|     HealthCheck        |     Yes       |                     |                |              |     Any (requires self-service onboarding)                     |
++------------------------+---------------+---------------------+----------------+--------------+----------------------------------------------------------------+
+|     Lock               |     Yes       |                     |                |              |     Any (APPC internal command)                                |
++------------------------+---------------+---------------------+----------------+--------------+----------------------------------------------------------------+
+|     Migrate            |               |                     |                |     Yes      |     Any (uses OpenStack Migrate command)                       |
++------------------------+---------------+---------------------+----------------+--------------+----------------------------------------------------------------+
+|     Rebuild            |               |                     |                |     Yes      |     Any (uses OpenStack Rebuild command)                       |
++------------------------+---------------+---------------------+----------------+--------------+----------------------------------------------------------------+
+|     Restart            |     Yes       |                     |                |     Yes      |     Any (uses OpenStack Start and Stop commands)               |
++------------------------+---------------+---------------------+----------------+--------------+----------------------------------------------------------------+
+|     Snapshot           |               |                     |                |     Yes      |     Any (uses OpenStack Snapshot command)                      |
++------------------------+---------------+---------------------+----------------+--------------+----------------------------------------------------------------+
+|     Start              |     Yes       |     Yes             |                |     Yes      |     Any (uses OpenStack Start command)                         |
++------------------------+---------------+---------------------+----------------+--------------+----------------------------------------------------------------+
+|     StartApplication   |     Yes       |                     |                |              |     Chef and Ansible only (requires self-service onboarding)   |
++------------------------+---------------+---------------------+----------------+--------------+----------------------------------------------------------------+
+|     Stop               |     Yes       |     Yes             |                |     Yes      |     Any (uses OpenStack Stop command)                          |
++------------------------+---------------+---------------------+----------------+--------------+----------------------------------------------------------------+
+|     StopApplication    |     Yes       |                     |                |              |     Chef and Ansible only (requires self-service onboarding)   |
++------------------------+---------------+---------------------+----------------+--------------+----------------------------------------------------------------+
+|     Sync               |     Yes       |                     |                |              |     Any (requires self-service onboarding)                     |
++------------------------+---------------+---------------------+----------------+--------------+----------------------------------------------------------------+
+|     Unlock             |     Yes       |                     |                |              |     Any (APPC internal command)                                |
++------------------------+---------------+---------------------+----------------+--------------+----------------------------------------------------------------+
+
+
+
+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 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 Self-Service VNF Onboarding Guide (add link).
+
+
+
+LCM Commands
+============
+
+The LCM commands that are valid for the current release.
+
+
+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 version.                       |
++------------------------------+------------------------------------------------------+
+
+|
+
++----------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+----------------------------------+
+|     **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 Data Router             |     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 in the Data Router   |                     |                                  |
+|                      |                                                                                                                                                           |                     |                                  |
+|                      |     - If the result of the audit is ‘no match’, then send the running configuration on the Data Router                                                    |                     |                                  |
++----------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+----------------------------------+
+
+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 ECOMP Data Router 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 version.                         |
++------------------------------+--------------------------------------------------------+
+
+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 version.                         |
++------------------------------+--------------------------------------------------------+
+
+|
+
++---------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+-----------------------------------------------------------------+
+|     **Payload Parameter**       |     **Description**                                                                                                                                                                                                                                                                                        |     **Required?**   |     **Example**                                                 |
+|                                 |                                                                                                                                                                                                                                                                                                            |                     |                                                                 |
++=================================+============================================================================================================================================================================================================================================================================================================+=====================+=================================================================+
+|     request- parameters         |     The parameters required to process the request must include the host-ip-address to connect to the VNF, if Netconf. A template-name may also be included in the event that a specific configuration template needs to be identified. If the request is vnfc-specific, the vnfc-type must be included.   |     Yes             |                                                                 |
+|                                 |                                                                                                                                                                                                                                                                                                            |                     |     "payload":                                                  |
+|                                 |                                                                                                                                                                                                                                                                                                            |                     |                                                                 |
+|                                 |                                                                                                                                                                                                                                                                                                            |                     |     "{\"request-parameters                                      |
+|                                 |                                                                                                                                                                                                                                                                                                            |                     |                                                                 |
+|                                 |                                                                                                                                                                                                                                                                                                            |                     |     \": {                                                       |
+|                                 |                                                                                                                                                                                                                                                                                                            |                     |                                                                 |
+|                                 |                                                                                                                                                                                                                                                                                                            |                     |     \"host-ip-address\": \”value\”,                             |
+|                                 |                                                                                                                                                                                                                                                                                                            |                     |                                                                 |
+|                                 |                                                                                                                                                                                                                                                                                                            |                     |     \”vnfc-type\”: \”value\”’,                                  |
+|                                 |                                                                                                                                                                                                                                                                                                            |                     |                                                                 |
+|                                 |                                                                                                                                                                                                                                                                                                            |                     |     \”template-name\”: \”name\”                                 |
+|                                 |                                                                                                                                                                                                                                                                                                            |                     |                                                                 |
+|                                 |                                                                                                                                                                                                                                                                                                            |                     |     }                                                           |
+|                                 |                                                                                                                                                                                                                                                                                                            |                     |                                                                 |
+|                                 |                                                                                                                                                                                                                                                                                                            |                     |     \"configuration- parameters\": {\"<CONFIG- PARAMS>\"}       |
+|                                 |                                                                                                                                                                                                                                                                                                            |                     |                                                                 |
++---------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+-----------------------------------------------------------------+
+|     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              |                                                                 |
++---------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+-----------------------------------------------------------------+
+
+
+Configure Response
+^^^^^^^^^^^^^^^^^^
+
+The Configure response returns an indication of success or failure of the request. If successful, the return payload contains the ‘upload\_config\_id’ and values for any records created. In addition, the configuration is sent to the ECOMP Data Router bus  which may be received by an external configuration storage system.
+
+SO is creating the VNFC records in A&AI. APPC is updating the VNFC status.
+
+ConfigModify
+------------
+
+Modifies the configuration on a VNF or VNFC in service.
+
+A successful ConfigModify request returns a success response.
+
+A failed ConfigModify action returns a failure response code and the specific failure message in the response block.
+
+**NOTE:** See also `Configure <#_bookmark35>`__
+
++------------------------------+-----------------------------------------------------------+
+|     **Target URL**           |     /restconf/operations/appc-provider-lcm:configmodify   |
++------------------------------+-----------------------------------------------------------+
+|     **Action**               |     ConfigModify                                          |
++------------------------------+-----------------------------------------------------------+
+|     **Action-Identifiers**   |     Vnf-id                                                |
++------------------------------+-----------------------------------------------------------+
+|     **Payload Parameters**   |     See below                                             |
++------------------------------+-----------------------------------------------------------+
+|     **Revision History**     |     Unchanged in this version.                            |
++------------------------------+-----------------------------------------------------------+
+
+|
+
++---------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+-----------------------------------------------------------------+
+|     **Payload Parameter**       |     **Description**                                                                                                                                                                                                                                                                                        |     **Required?**   |     **Example**                                                 |
++=================================+============================================================================================================================================================================================================================================================================================================+=====================+=================================================================+
+|     request- parameters         |     The parameters required to process the request must include the host-ip-address to connect to the VNF, if Netconf. A template-name may also be included in the event that a specific configuration template needs to be identified. If the request is vnfc-specific, the vnfc-type must be included.   |     Yes             |     "payload":                                                  |
+|                                 |                                                                                                                                                                                                                                                                                                            |                     |                                                                 |
+|                                 |                                                                                                                                                                                                                                                                                                            |                     |     "{\"request-parameters                                      |
+|                                 |                                                                                                                                                                                                                                                                                                            |                     |                                                                 |
+|                                 |                                                                                                                                                                                                                                                                                                            |                     |     \": {                                                       |
+|                                 |                                                                                                                                                                                                                                                                                                            |                     |                                                                 |
+|                                 |                                                                                                                                                                                                                                                                                                            |                     |     \"host-ip-address\": \”value\”,                             |
+|                                 |                                                                                                                                                                                                                                                                                                            |                     |                                                                 |
+|                                 |                                                                                                                                                                                                                                                                                                            |                     |     \”vnfc-type\”: \”value\”’                                   |
+|                                 |                                                                                                                                                                                                                                                                                                            |                     |                                                                 |
+|                                 |                                                                                                                                                                                                                                                                                                            |                     |     \”template-name\”: \”name\”,                                |
+|                                 |                                                                                                                                                                                                                                                                                                            |                     |                                                                 |
+|                                 |                                                                                                                                                                                                                                                                                                            |                     |     }                                                           |
+|                                 |                                                                                                                                                                                                                                                                                                            |                     |                                                                 |
+|                                 |                                                                                                                                                                                                                                                                                                            |                     |     \"configuration- parameters\": {\"<CONFIG- PARAMS>\"}       |
++---------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+-----------------------------------------------------------------+
+|     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              |                                                                 |
++---------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+-----------------------------------------------------------------+
+
+If successful, this request returns a success response.
+
+A failed Configure action returns a failure response and the specific failure message in the response block.
+
+ConfigModify Response
+^^^^^^^^^^^^^^^^^^^^^
+
+The ConfigModify response returns an indication of success or failure of the request. If successful, the return payload contains the ‘upload\_config\_id’ and values for any records created. In addition, the configuration is sent to the ECOMP Data Router bus which may be received by an external configuration storage system.
+
+ConfigBackup
+------------
+
+Stores the current VNF configuration on a local file system (not in APPC). This is limited to Ansible and Chef. There can only be one stored configuration (if there is a previously saved configuration, it is replaced with the current VNF configuration).
+
+A successful ConfigBackup request returns a success response.
+
+A failed ConfigBackup action returns a failure response code and the specific failure message in the response block.
+
++------------------------------+-----------------------------------------------------------+
+|     **Target URL**           |     /restconf/operations/appc-provider-lcm:configbackup   |
++------------------------------+-----------------------------------------------------------+
+|     **Action**               |     ConfigBackup                                          |
++------------------------------+-----------------------------------------------------------+
+|     **Action-Identifiers**   |     Vnf-id                                                |
++------------------------------+-----------------------------------------------------------+
+|     **Payload Parameters**   |     See below                                             |
++------------------------------+-----------------------------------------------------------+
+|     **Revision History**     |     New in this version.                                  |
++------------------------------+-----------------------------------------------------------+
+
+|
+
++---------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+-----------------------------------------------------------------+
+|     **Payload Parameter**       |     **Description**                                                                                                                                                                |     **Required?**   |     **Example**                                                 |
++=================================+====================================================================================================================================================================================+=====================+=================================================================+
+|     request- parameters         |     The parameters required to process the request must include the host-ip-address to connect to the VNF (for Chef and Ansible, this will be the url to connect to the server).   |     Yes             | "payload":                                                      |
+|                                 |                                                                                                                                                                                    |                     |                                                                 |
+|                                 |                                                                                                                                                                                    |                     |     "{\"request-parameters                                      |
+|                                 |                                                                                                                                                                                    |                     |                                                                 |
+|                                 |                                                                                                                                                                                    |                     |     \": {                                                       |
+|                                 |                                                                                                                                                                                    |                     |                                                                 |
+|                                 |                                                                                                                                                                                    |                     |     \"host-ip-address\": \”value\”                          |
+|                                 |                                                                                                                                                                                    |                     |                                                                 |
+|                                 |                                                                                                                                                                                    |                     |     }                                                           |
+|                                 |                                                                                                                                                                                    |                     |                                                                 |
+|                                 |                                                                                                                                                                                    |                     |     \"configuration- parameters\": {\"<CONFIG- PARAMS>\"}   |
++---------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+-----------------------------------------------------------------+
+|     configuration- parameters   |     A set of instance specific configuration parameters should be specified, as required by the Chef cookbook or Ansible playbook.                                                 |     No              |                                                                 |
++---------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+-----------------------------------------------------------------+
+
+ConfigBackup Response
+^^^^^^^^^^^^^^^^^^^^^
+
+The ConfigBackup response returns an indication of success or failure of the request.
+
+ConfigRestore
+-------------
+
+Applies a previously saved configuration to the active VNF configuration. This is limited to Ansible and Chef. There can only be one stored configuration.
+
+A successful ConfigRestore request returns a success response.
+
+A failed ConfigRestore action returns a failure response code and the specific failure message in the response block.
+
++------------------------------+------------------------------------------------------------------------------------------+
+|     **Target URL**           |     /restconf/operations/appc-provider-lcm:configrestore                                 |
++------------------------------+------------------------------------------------------------------------------------------+
+|     **Action**               |     ConfigRestore                                                                        |
++------------------------------+------------------------------------------------------------------------------------------+
+|     **Action-Identifiers**   |     Vnf-id                                                                               |
++------------------------------+------------------------------------------------------------------------------------------+
+|     **Payload Parameters**   |     `request-parameters <#_bookmark24>`__, `configuration-parameters <#_bookmark26>`__   |
++------------------------------+------------------------------------------------------------------------------------------+
+|     **Revision History**     |     New in this version.                                                                 |
++------------------------------+------------------------------------------------------------------------------------------+
+
+|
+
++---------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+-----------------------------------------------------------------+
+|     **Parameter**               |     **Description**                                                                                                                                                                |     **Required?**   |     **Example**                                                 |
++=================================+====================================================================================================================================================================================+=====================+=================================================================+
+|     request- parameters         |     The parameters required to process the request must include the host-ip-address to connect to the VNF (for Chef and Ansible, this will be the url to connect to the server).   |     Yes             |     "payload":                                                  |
+|                                 |                                                                                                                                                                                    |                     |                                                                 |
+|                                 |                                                                                                                                                                                    |                     |     "{\"request-parameters                                     |
+|                                 |                                                                                                                                                                                    |                     |                                                                 |
+|                                 |                                                                                                                                                                                    |                     |     \": {                                                      |
+|                                 |                                                                                                                                                                                    |                     |                                                                 |
+|                                 |                                                                                                                                                                                    |                     |     \"host-ip-address\\": \”value\”                           |
+|                                 |                                                                                                                                                                                    |                     |                                                                 |
+|                                 |                                                                                                                                                                                    |                     |     }                                                           |
+|                                 |                                                                                                                                                                                    |                     |                                                                 |
+|                                 |                                                                                                                                                                                    |                     |     \"configuration- parameters\": {\"<CONFIG- PARAMS>\"}     |
++---------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+-----------------------------------------------------------------+
+|     configuration- parameters   |     A set of instance specific configuration parameters should be specified, as required by the Chef cookbook or Ansible playbook.                                                 |     No              |                                                                 |
++---------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+-----------------------------------------------------------------+
+
+ConfigRestore Response
+^^^^^^^^^^^^^^^^^^^^^^
+
+The ConfigRestore response returns an indication of success or failure of the request.
+
+Evacuate
+--------
+
+Evacuates a specified VM from its current host to another. After a successful evacuate, a rebuild VM is performed if a snapshot is available (and the VM boots from a snapshot.
+
+The host on which the VM resides needs to be down.
+
+If the node is not specified in the request, it will be selected by relying on internal rules to evacuate. The Evacuate action will fail if the specified target host is not UP/ENABLED.
+
+After Evacuate, the rebuild VM can be disabled by setting the optional `rebuild-vm <#_bookmark43>`__ parameter to false.
+
+A successful Evacuate action returns a success response. A failed Evacuate action returns a failure.
+
+**NOTE:** The command implementation is based on Openstack functionality. For further details, see http://developer.openstack.org/api-ref/compute/.
+
++------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|     **Target URL**           |     /restconf/operations/appc-provider-lcm:evacuate                                                                                                            |
++------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|     **Action**               |     Evacuate                                                                                                                                                   |
++------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|     **Action-identifiers**   |     Vnf-id, vserver-id                                                                                                                                         |
++------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|     **Payload Parameters**   |     `vm-id <#_bookmark40>`__, `identity-url <#_bookmark41>`__, `tenant-id <#_bookmark42>`__, `rebuild-vm <#_bookmark43>`__, `targethost-id <#_bookmark44>`__   |
++------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|     **Revision History**     |     Unchanged in this version.                                                                                                                                 |
++------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+|
+
++----------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+---------------------------------------+
+|     **Parameter**    |     **Description**                                                                                                                                                              |     **Required?**   |     **Example**                       |
++======================+==================================================================================================================================================================================+=====================+=======================================+
+|     vm-id            |     The unique identifier (UUID) of the resource. For backwards- compatibility, this can be the self- link URL of the VM.                                                        |     Yes             |     "payload":                        |
+|                      |                                                                                                                                                                                  |                     |                                       |
+|                      |                                                                                                                                                                                  |                     |     "{\"vm-id\": \"<VM-ID>            |
+|                      |                                                                                                                                                                                  |                     |                                       |
+|                      |                                                                                                                                                                                  |                     |     \",                               |
+|                      |                                                                                                                                                                                  |                     |                                       |
+|                      |                                                                                                                                                                                  |                     |     \"identity-url\":                 |
+|                      |                                                                                                                                                                                  |                     |                                       |
+|                      |                                                                                                                                                                                  |                     |     \"<IDENTITY-URL>\",               |
+|                      |                                                                                                                                                                                  |                     |                                       |
+|                      |                                                                                                                                                                                  |                     |     \"tenant-id\\": \"<TENANT-ID>     |
+|                      |                                                                                                                                                                                  |                     |                                       |
+|                      |                                                                                                                                                                                  |                     |     \",                               |
+|                      |                                                                                                                                                                                  |                     |                                       |
+|                      |                                                                                                                                                                                  |                     |     \"rebuild-vm\": \"false\",        |
+|                      |                                                                                                                                                                                  |                     |                                       |
+|                      |                                                                                                                                                                                  |                     |     \"targethost-id\":                |
+|                      |                                                                                                                                                                                  |                     |                                       |
+|                      |                                                                                                                                                                                  |                     |     \"nodeblade7\"}"                  |
++----------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+---------------------------------------+
+|     identity- url    |     The identity URL used to access the resource                                                                                                                                 |     No              |                                       |
++----------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+---------------------------------------+
+|     tenant-id        |     The id of the provider tenant that owns the resource                                                                                                                         |     No              |                                       |
++----------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+---------------------------------------+
+|     rebuild- vm      |     A boolean flag indicating if a Rebuild is to be performed after an Evacuate. The default action is to do a Rebuild. It can be switched off by setting the flag to "false".   |     No              |                                       |
++----------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+---------------------------------------+
+|     targethost- id   |     A target hostname indicating the host the VM is evacuated to. By default, the cloud determines the target host.                                                              |     No              |                                       |
++----------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+---------------------------------------+
+
+HealthCheck
+-----------
+
+This command runs a VNF health check and returns the result.
+
+A health check is VNF-specific. For a complex VNF, APPC initiates further subordinate health checks.
+
+HealthCheck is a VNF level command which interrogates the VNF in order to determine the health of the VNF and the VNFCs. The HealthCheck will be implemented differently for each VNF.
+
+
++------------------------------+-----------------------------------------------------------+
+|     **Target URL**           |     /restconf/operations/appc-provider-lcm:health-check   |
++------------------------------+-----------------------------------------------------------+
+|     **Action**               |     HealthCheck                                           |
++------------------------------+-----------------------------------------------------------+
+|     **Action-Identifiers**   |     Vnf-id                                                |
++------------------------------+-----------------------------------------------------------+
+|     **Payload Parameters**   |     `vnf-host-ip-address <#_bookmark46>`__                |
++------------------------------+-----------------------------------------------------------+
+|     **Revision History**     |     Changed in this version.                              |
++------------------------------+-----------------------------------------------------------+
+
+|
+
++-----------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------+
+|     **Paramete**            |     **Description**                                                                                                                                            |  **Required?**   | **Example**                         |
++=============================+================================================================================================================================================================+==================+=====================================+
+|     vnf- host-ip- address   |     The IP address used to connect to the VNF, using a protocol such as SSH. For example, for a vSCP VNF, the floating IP address of the SMP should be used.   |     Yes          |     "payload":                      |
+|                             |                                                                                                                                                                |                  |                                     |
+|                             |                                                                                                                                                                |                  |     "{\"vnf-host-ip-address\":      |
+|                             |                                                                                                                                                                |                  |                                     |
+|                             |                                                                                                                                                                |                  |     \"10.222.22.2\"}"               |
++-----------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------+
+
+Lock
+----
+
+Use the Lock command to ensure exclusive access during a series of critical LCM commands.
+
+The Lock action will return a successful result if the VNF is not already locked or if it was locked with the same request-id, otherwise the action returns a response with a reject status code.
+
+Lock is a command intended for APPC and does not execute an actual VNF command. Instead, lock will ensure that ONAP is granted exclusive access to the VNF.
+
+When a VNF is locked, any subsequent sequential commands with same request-id will be accepted. Commands associated with other request-ids will be rejected.
+
+The Lock command returns only one final response with the status of the request processing.
+
+APPC locks the target VNF during any VNF command processing. If a lock action is then requested on that VNF, it will be rejected because the VNF was already locked, even though no actual lock command was explicitly invoked.
+
++------------------------------+---------------------------------------------------+
+|     **Target URL**           |     /restconf/operations/appc-provider-lcm:lock   |
++------------------------------+---------------------------------------------------+
+|     **Action**               |     Lock                                          |
++------------------------------+---------------------------------------------------+
+|     **Action-Identifier**    |     Vnf-id                                        |
++------------------------------+---------------------------------------------------+
+|     **Payload Parameters**   |     None                                          |
++------------------------------+---------------------------------------------------+
+|     **Revision History**     |     Unchanged in this version.                    |
++------------------------------+---------------------------------------------------+
+
+Migrate
+-------
+
+Migrates a running target VM from its current host to another.
+
+A destination node will be selected by relying on internal rules to migrate. Migrate calls a command in order to perform the operation.
+
+Migrate suspends the guest virtual machine, and moves an image of the guest virtual machine's disk to the destination host physical machine. The guest virtual machine is then resumed on the destination host physical machine and the disk storage that it used on the source host physical machine is freed.
+
+The migrate action will leave the VM in the same Openstack state the VM had been in prior to the migrate action. If a VM was stopped before migration, a separate VM-level restart command would be needed to restart the VM after migration.
+
+A successful Migrate action returns a success response and the new node identity in the response payload block.
+
+A failed Migrate action returns a failure and the failure messages in the response payload block.
+
+**NOTE:** The command implementation is based on Openstack functionality. For further details, see http://developer.openstack.org/api-ref/compute/.
+
++--------------------------------+-----------------------------------------------------------------------------------------------+
+|     **Target URL**             |     /restconf/operations/appc-provider-lcm:migrate                                            |
++--------------------------------+-----------------------------------------------------------------------------------------------+
+|     **Action**                 |     Migrate                                                                                   |
++--------------------------------+-----------------------------------------------------------------------------------------------+
+|     **Action-Identifiers**     |     Vnf-id, vserver-id                                                                        |
++--------------------------------+-----------------------------------------------------------------------------------------------+
+|     \ **Payload Parameters**   |     `vm-id <#_bookmark52>`__, `identity-url <#_bookmark54>`__, `tenant-id <#_bookmark55>`__   |
++--------------------------------+-----------------------------------------------------------------------------------------------+
+|     **Revision History**       |     Unchanged in this version.                                                                |
++--------------------------------+-----------------------------------------------------------------------------------------------+
+
+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>\\",          |
++---------------------+-------------------------------------------------------------------------+---------------------+				           +
+|     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              |                                    |
++---------------------+-------------------------------------------------------------------------+---------------------+------------------------------------+
+
+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.
+
+APPC only supports the rebuild operation for a VM that boots from image (snapshot), i.e., APPC rejects a rebuild request if it determines the VM boots from volume (disk).
+
+A successful rebuild returns a success response and the rebuild details in the response payload block. A failed rebuild returns a failure and the failure messages in the response payload block.
+
+**NOTE:** The command implementation is based on Openstack functionality. For further details, see http://developer.openstack.org/api-ref/compute/.
+
++------------------------------+-----------------------------------------------------------------------------------------------+
+|     **Target URL**           |     /restconf/operations/appc-provider-lcm:rebuild                                            |
++------------------------------+-----------------------------------------------------------------------------------------------+
+|     **Action**               |     Rebuild                                                                                   |
++------------------------------+-----------------------------------------------------------------------------------------------+
+|     **Action-identifiers**   |     Vnf-id, vserver-id                                                                        |
++------------------------------+-----------------------------------------------------------------------------------------------+
+|     **Payload Parameters**   |     `vm-id <#_bookmark52>`__, `identity-url <#_bookmark54>`__, `tenant-id <#_bookmark55>`__   |
++------------------------------+-----------------------------------------------------------------------------------------------+
+|     **Revision History**     |     Unchanged in this version.                                                                |
++------------------------------+-----------------------------------------------------------------------------------------------+
+
+Restart
+-------
+
+Use the Restart command to restart a VNF or a single VM. The generic VNF Restart uses a simple restart logic where all VM’s are stopped and re-started.
+
+The generic Restart operation is invoked either for the VM or the VNF level.
+
++------------------------------+-----------------------------------------------------------------------------------------------------------------+
+|     **Input Block**          |     api-ver must be set to 2.00 for *VNF Restart*                                                               |
++------------------------------+-----------------------------------------------------------------------------------------------------------------+
+|     **Target URL**           |     /restconf/operations/appc-provider-lcm:restart                                                              |
++------------------------------+-----------------------------------------------------------------------------------------------------------------+
+|     **Action**               |     Restart                                                                                                     |
++------------------------------+-----------------------------------------------------------------------------------------------------------------+
+|     **Action-identifiers**   |     Vnf-id is required; if restart is for a single VM, then vserver-id is also required.                        |
++------------------------------+-----------------------------------------------------------------------------------------------------------------+
+|     **Payload Parameters**   |     For *VNF* Restart: `host Identity <#_bookmark57>`__, `vnf-host-ip-address <#_bookmark58>`__                 |
+|                              |                                                                                                                 |
+|                              |     For *VM* Restart: `vm-id <#_bookmark52>`__, `identity-url <#_bookmark54>`__, `tenant-id <#_bookmark55>`__   |
++------------------------------+-----------------------------------------------------------------------------------------------------------------+
+|     **Revision History**     |     Revised in this version.                                                                                    |
++------------------------------+-----------------------------------------------------------------------------------------------------------------+
+
+Payload Parameters for **VNF Restart**
+
++-----------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+---------------------------------------+
+|     **Parameter**           |     **Description**                                                                                                                                               |     **Required?**   |     **Example**                       |
++=============================+===================================================================================================================================================================+=====================+=======================================+
+|     Cloud Identity          |     The identity URL of the OpenStack host on which the VNF resource was created. If not provided, this information will be retrieved from the properties file.   |     No              |     "payload":                        |
+|                             |                                                                                                                                                                   |                     |     "{\\" vnf-host-ip-address \\":    |
+|                             |                                                                                                                                                                   |                     |                                       |
+|                             |                                                                                                                                                                   |                     |     \\"<VNF\_FLOATING\_IP\_ADDRESS>   |
+|                             |                                                                                                                                                                   |                     |     \\",                              |
+|                             |                                                                                                                                                                   |                     |     \\" hostIdentity \\":             |
+|                             |                                                                                                                                                                   |                     |     \\"<OpenStack IP Address>\\"      |
+|                             |                                                                                                                                                                   |                     |     }"                                |
++-----------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+---------------------------------------+
+|     vnf- host-ip- address   |     The IP address used to connect to the VNF, using a protocol such as SSH. For example, for a vSCP VNF, the floating IP address of the SMP should be used.      |     Yes             |                                       |
++-----------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+---------------------------------------+
+
+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-   |                     |     "payload":                     |
+|                     |     link URL of the VM.                                                 |                     |                                    |
+|                     |                                                                         |                     |     "{\\"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              |                                    |
++---------------------+-------------------------------------------------------------------------+---------------------+------------------------------------+
+
+Snapshot
+--------
+
+Creates a snapshot of a VM.
+
+The Snapshot command returns a customized response containing a reference to the newly created snapshot instance if the action is successful.
+
+This command can be applied to any VNF type. The only restriction is that the particular VNF should be built based on the generic heat stack.
+
+**NOTE:** The command implementation is based on Openstack functionality. For further details, see http://developer.openstack.org/api-ref/compute/.
+
++------------------------------+-----------------------------------------------------------------------------------------------------+
+|     **Target URL**           |     /restconf/operations/appc-provider-lcm:snapshot                                                 |
++------------------------------+-----------------------------------------------------------------------------------------------------+
+|     **Action**               |     Snapshot                                                                                        |
++------------------------------+-----------------------------------------------------------------------------------------------------+
+|     **Action-identifiers**   |     Vnf-id is required. If the snapshot is for a single VM, then the vserver-id is also required.   |
++------------------------------+-----------------------------------------------------------------------------------------------------+
+|     **Payload Parameters**   |     `vm-id <#_bookmark52>`__, `identity-url <#_bookmark54>`__, `tenant-id <#_bookmark55>`__         |
++------------------------------+-----------------------------------------------------------------------------------------------------+
+|     **Revision History**     |     Unchanged in this version.                                                                      |
++------------------------------+-----------------------------------------------------------------------------------------------------+
+
+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>       |
+|                     |                                                                         |                     |                                    |
+|                     |                                                                         |                     |     \\",                           |
+|                     |     link URL of the VM.                                                 |                     |     \\"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              |                                    |
++---------------------+-------------------------------------------------------------------------+---------------------+------------------------------------+
+
+Snapshot Response
+^^^^^^^^^^^^^^^^^
+
+The Snapshot command returns an extended version of the LCM response.
+
+The Snapshot response conforms to the `standard response format <#_bookmark5>`__, but has the following additional field.
+
+Additional Parameters
+
++---------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------+---------------------------------------+
+|     **Parameter**   |     **Description**                                                                                                                                    |     **Required**   | **?Example**                          |
++=====================+========================================================================================================================================================+====================+=======================================+
+|     snapshot-id     |     The snapshot identifier created by cloud host. This identifier will be returned only in the final success response returned via the message bus.   |     No             |     "snapshot-id": "<SNAPSHOT\_ID>"   |
++---------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------+---------------------------------------+
+
+Start
+-----
+
+Use the Start command to start a VNF, VF-Module, or VM that is stopped or not running.
+
+**NOTE:** The command implementation is based on Openstack functionality. For further details, see http://developer.openstack.org/api-ref/compute/.
+
++------------------------------+--------------------------------------------------------------------------------------------------------------------------------+
+|     **Target URL**           |     /restconf/operations/appc-provider-lcm:start                                                                               |
++------------------------------+--------------------------------------------------------------------------------------------------------------------------------+
+|     **Action**               |     Start                                                                                                                      |
++------------------------------+--------------------------------------------------------------------------------------------------------------------------------+
+|     **Action-identifiers**   |     Vnf-id is required; vf-module-id or vserver-id is also required if the action is at vf-module or vm level, respectively.   |
++------------------------------+--------------------------------------------------------------------------------------------------------------------------------+
+|     **Payload Parameters**   |     None                                                                                                                       |
++------------------------------+--------------------------------------------------------------------------------------------------------------------------------+
+|     **Revision History**     |     Revised in this version.                                                                                                   |
++------------------------------+--------------------------------------------------------------------------------------------------------------------------------+
+
+StartApplication
+----------------
+
+Starts the VNF application, if needed, after a VM is instantiated/configured or after VM start or restart. Supported using Chef cookbook or Ansible playbook only.
+
+A successful StartApplication request returns a success response.
+
+A failed StartApplication action returns a failure response code and the specific failure message in the response block.
+
++------------------------------+---------------------------------------------------------------+
+|     **Target URL**           |     /restconf/operations/appc-provider-lcm:startapplication   |
++------------------------------+---------------------------------------------------------------+
+|     **Action**               |     StartApplication                                          |
++------------------------------+---------------------------------------------------------------+
+|     **Action-Identifiers**   |     Vnf-id                                                    |
++------------------------------+---------------------------------------------------------------+
+|     **Payload Parameters**   |     See below                                                 |
++------------------------------+---------------------------------------------------------------+
+|     **Revision History**     |     New in this version.                                      |
++------------------------------+---------------------------------------------------------------+
+
+|
+
++---------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+-----------------------------------------------------------------+
+|     **Payload Parameter**       |     **Description**                                                                                                                                                                |     **Required?**   |     **Example**                                                 |
++=================================+====================================================================================================================================================================================+=====================+=================================================================+
+|     request- parameters         |     The parameters required to process the request must include the host-ip-address to connect to the VNF (for Chef and Ansible, this will be the url to connect to the server).   |     Yes             |     "payload":                                                  |
+|                                 |                                                                                                                                                                                    |                     |                                                                 |
+|                                 |                                                                                                                                                                                    |                     |     "{\\"request-parameters                                     |
+|                                 |                                                                                                                                                                                    |                     |     \\": {                                                      |
+|                                 |                                                                                                                                                                                    |                     |     \\"host-ip-address\\": \\”value\\”                          |
+|                                 |                                                                                                                                                                                    |                     |     }                                                           |
+|                                 |                                                                                                                                                                                    |                     |     \\"configuration- parameters\\": {\\"<CONFIG- PARAMS>\\"}   |
++---------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+-----------------------------------------------------------------+
+|     configuration- parameters   |     A set of instance specific configuration parameters should be specified, as required by the Chef cookbook or Ansible playbook.                                                 |     No              |                                                                 |
++---------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+-----------------------------------------------------------------+
+
+StartApplication Response
+^^^^^^^^^^^^^^^^^^^^^^^^^
+
+The StartApplication response returns an indication of success or failure of the request.
+
+Stop
+----
+
+Use the Stop command to start a VNF, VF-Module, or VM that is stopped or not running.
+
+**NOTE:** The command implementation is based on Openstack functionality. For further details, see http://developer.openstack.org/api-ref/compute/.
+
++------------------------------+--------------------------------------------------------------------------------------------------------------------------------+
+|     **Target URL**           |     /restconf/operations/appc-provider-lcm:stop                                                                                |
++------------------------------+--------------------------------------------------------------------------------------------------------------------------------+
+|     **Action**               |     Stop                                                                                                                       |
++------------------------------+--------------------------------------------------------------------------------------------------------------------------------+
+|     **Action-identifiers**   |     Vnf-id is required; vf-module-id or vserver-id is also required if the action is at vf-module or vm level, respectively.   |
++------------------------------+--------------------------------------------------------------------------------------------------------------------------------+
+|     **Payload Parameters**   |     None                                                                                                                       |
++------------------------------+--------------------------------------------------------------------------------------------------------------------------------+
+|     **Revision History**     |     Revised in this version.                                                                                                   |
++------------------------------+--------------------------------------------------------------------------------------------------------------------------------+
+
+StopApplication
+---------------
+
+Stops the VNF application gracefully (not lost traffic), if needed, prior to a Stop command. Supported using Chef cookbook or Ansible playbook only.
+
+A successful StopApplication request returns a success response.
+
+A failed StopApplication action returns a failure response code and the specific failure message in the response block.
+
++------------------------------+--------------------------------------------------------------+
+|     **Target URL**           |     /restconf/operations/appc-provider-lcm:stopapplication   |
++------------------------------+--------------------------------------------------------------+
+|     **Action**               |     StopApplication                                          |
++------------------------------+--------------------------------------------------------------+
+|     **Action-Identifiers**   |     Vnf-id                                                   |
++------------------------------+--------------------------------------------------------------+
+|     **Payload Parameters**   |     See below                                                |
++------------------------------+--------------------------------------------------------------+
+|     **Revision History**     |     New in this version.                                     |
++------------------------------+--------------------------------------------------------------+
+
+|
+
++---------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+-----------------------------------------------------------------+
+|     **Payload Parameter**       |     **Description**                                                                                                                                                                |     **Required?**   |     **Example**                                                 |
++=================================+====================================================================================================================================================================================+=====================+=================================================================+
+|     request- parameters         |     The parameters required to process the request must include the host-ip-address to connect to the VNF (for Chef and Ansible, this will be the url to connect to the server).   |     Yes             |     "payload":                                                  |
+|                                 |                                                                                                                                                                                    |                     |     "{\\"request-parameters                                     |
+|                                 |                                                                                                                                                                                    |                     |     \\": {                                                      |
+|                                 |                                                                                                                                                                                    |                     |     \\"host-ip-address\\": \\”va lue\\”                         |
+|                                 |                                                                                                                                                                                    |                     |     }                                                           |
+|                                 |                                                                                                                                                                                    |                     |     \\"configuration- parameters\\": {\\"<CONFIG- PARAMS>\\"}   |
++---------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+-----------------------------------------------------------------+
+|     configuration- parameters   |     A set of instance specific configuration parameters should be specified, as required by the Chef cookbook or Ansible playbook.                                                 |     No              |                                                                 |
++---------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+-----------------------------------------------------------------+
+
+StopApplication Response
+^^^^^^^^^^^^^^^^^^^^^^^^
+
+The StopApplication response returns an indication of success or failure of the request.
+
+Sync
+----
+
+The Sync action updates the current configuration in the APPC store with the running configuration from the device.
+
+A successful Sync returns a success status.
+
+A failed Sync returns a failure response status and failure messages in the response payload block.
+
+This command can be applied to any VNF type. The only restriction is that the VNF has been onboarded in self-service mode (which requires that the VNF supports a request to return the running configuration).
+
++------------------------------+---------------------------------------------------+
+|     **Target URL**           |     /restconf/operations/appc-provider-lcm:sync   |
++------------------------------+---------------------------------------------------+
+|     **Action**               |     Sync                                          |
++------------------------------+---------------------------------------------------+
+|     **Action-identifiers**   |     Vnf-id                                        |
++------------------------------+---------------------------------------------------+
+|     **Payload Parameters**   |     None                                          |
++------------------------------+---------------------------------------------------+
+|     **Revision History**     |     Unchanged in this version.                    |
++------------------------------+---------------------------------------------------+
+
+Unlock
+------
+
+Run the Unlock command to release the lock on a VNF and allow other clients to perform LCM commands on that VNF.
+
+Unlock is a command intended for APPC and does not execute an actual VNF command. Instead, unlock will release the VNF from the exclusive access held by the specific request-id allowing other requests for the VNF to be accepted.
+
+The Unlock command will result in success if the VNF successfully unlocked or if it was already unlocked, otherwise commands will be rejected.
+
+The Unlock command will only return success if the VNF was locked with same `request-id <#_bookmark4>`__.
+
+The Unlock command returns only one final response with the status of the request processing.
+
+Note: APPC locks the target VNF during any command processing. If an Unlock action is then requested on that VNF with a different request-id, it will be rejected because the VNF is already locked for another process, even though no actual lock command was explicitly invoked.
+
++------------------------------+-----------------------------------------------------+
+|     **Target URL**           |     /restconf/operations/appc-provider-lcm:unlock   |
++------------------------------+-----------------------------------------------------+
+|     **Action**               |     Unlock                                          |
++------------------------------+-----------------------------------------------------+
+|     **Action-identifiers**   |     Vnf-id                                          |
++------------------------------+-----------------------------------------------------+
+|     **Payload Parameters**   |     None                                            |
++------------------------------+-----------------------------------------------------+
+|     **Revision History**     |     Unchanged in this version.                      |
++------------------------------+-----------------------------------------------------+
+
diff --git a/docs/APPC Client Library Guide/APPC Client Library Guide.rst b/docs/APPC Client Library Guide/APPC Client Library Guide.rst
new file mode 100644
index 0000000..95e45c1
--- /dev/null
+++ b/docs/APPC Client Library Guide/APPC Client Library Guide.rst
@@ -0,0 +1,453 @@
+NAP Application Controller (APPC) Client Library Guide
+
++-----------------+------------------+
++-----------------+------------------+
+| Revision        | Version 1.0.0    |
++-----------------+------------------+
+| Revision Date   | 22 August 2017   |
++-----------------+------------------+
+
++--------------+------------+---------------+--------------------------------------------------+
+| Date         | Revision   | Author        | Changes                                          |
++--------------+------------+---------------+--------------------------------------------------+
+| 2017-08-22   | 1.0.0      | Paul Miller   | First draft consistent with AT&T Release 17.10   |
++--------------+------------+---------------+--------------------------------------------------+
++--------------+------------+---------------+--------------------------------------------------+
+
+|
+
+**
+**
+
+1. .. rubric:: Introduction
+      :name: introduction
+
+   1. .. rubric:: Target Audience
+         :name: target-audience
+
+    This document is for an advanced technical audience, which includes
+    engineers and technicians. Document revisions occur with the release
+    of new software versions.
+
+Related Documentation
+---------------------
+
+    For additional information, see the ONAP Application Controller
+    (APPC) API Guide.
+
+    The following sections describe the conventions this document uses,
+    including notices, text conventions, and command-line conventions.
+
+Command-line Conventions
+========================
+
+The following table lists possible elements in a command-line path.
+
++------------------+--------------------------------------------------------------------------------------------------------+
+| **Convention**   | **Description**                                                                                        |
++==================+========================================================================================================+
+| Brackets [ ]     | This is used for optional items.                                                                       |
++------------------+--------------------------------------------------------------------------------------------------------+
+| Braces { }       | This indicates choices separated by pipe (\|) for sets from which only one is selected. For example:   |
+|                  |                                                                                                        |
+|                  | {even\|odd}                                                                                            |
++------------------+--------------------------------------------------------------------------------------------------------+
+| Blue text        | This indicates a link in this document online.                                                         |
++------------------+--------------------------------------------------------------------------------------------------------+
+
+Text Conventions
+~~~~~~~~~~~~~~~~
+
+    The following table lists text conventions in this document.
+
++------------------------------------+----------------------------------------------------------------------------+
+| **Convention**                     | **Description**                                                            |
++====================================+============================================================================+
+| Monospace font with blue shading   | This font indicates sample codes, screenshots, or elements. For example:   |
+|                                    |                                                                            |
+|                                    | contact": {                                                                |
+|                                    |                                                                            |
+|                                    | 		   "contactType": "USER",                                         |
+|                                    | 		   "source": "appl",                                              |
+|                                    |                                                                            |
+|                                    | 		   }                                                              |
++------------------------------------+----------------------------------------------------------------------------+
+| *Italics*                          | Emphasizes a point or denotes new terms defined in the text.               |
+|                                    |                                                                            |
+|                                    | Indicates an external book title reference.                                |
++------------------------------------+----------------------------------------------------------------------------+
+| Numeric                            | A number composed of digits 0 through 9.                                   |
++------------------------------------+----------------------------------------------------------------------------+
+| Text                               | Any combination of alphanumeric characters.                                |
+|                                    |                                                                            |
+|                                    | New items in RED                                                           |
++------------------------------------+----------------------------------------------------------------------------+
+
+Authors and Contributors
+------------------------
+
+    The following table lists the persons who are authors and
+    contributors to this document.
+
++--------------------+----------------------+
+| **Contributors**   |
++====================+======================+
+| Borislav Glozman   | Margrethe Fossberg   |
++--------------------+----------------------+
+| Paul Mellor        | John Buja            |
++--------------------+----------------------+
++--------------------+----------------------+
+
+Terms and Acronyms
+------------------
+
+The following table defines terms and acronyms used in this document.
+
++-----------------------+--------------------------------------------------------------+
+| **Term or Acronym**   | **Definition**                                               |
++=======================+==============================================================+
+| AAI                   | Active and Available Inventory                               |
++-----------------------+--------------------------------------------------------------+
+| AAF                   | Authentication & Authorization Framework                     |
++-----------------------+--------------------------------------------------------------+
+| AJSC                  | AT&T Java Service Container                                  |
++-----------------------+--------------------------------------------------------------+
+| API                   | Application Programming Interface                            |
++-----------------------+--------------------------------------------------------------+
+| APPC                  | Application Controller                                       |
++-----------------------+--------------------------------------------------------------+
+| SDC                   | Service Design and Creation                                  |
++-----------------------+--------------------------------------------------------------+
+| DCAE                  | Data Collection Analytics and Events                         |
++-----------------------+--------------------------------------------------------------+
+| DG                    | Directed Graph                                               |
++-----------------------+--------------------------------------------------------------+
+| DNS                   | Domain Name System                                           |
++-----------------------+--------------------------------------------------------------+
+| EELF                  | Event and Error Logging Framework                            |
++-----------------------+--------------------------------------------------------------+
+| HDFS                  | Hadoop Distributed File System                               |
++-----------------------+--------------------------------------------------------------+
+| HTTP                  | Hypertext Transfer Protocol                                  |
++-----------------------+--------------------------------------------------------------+
+| IAAS                  | Infrastructure As A Service                                  |
++-----------------------+--------------------------------------------------------------+
+| I/O                   | Input/Output                                                 |
++-----------------------+--------------------------------------------------------------+
+| JMS                   | Java Messaging Service                                       |
++-----------------------+--------------------------------------------------------------+
+| JSON                  | JavaScript Object Notation                                   |
++-----------------------+--------------------------------------------------------------+
+| LAN                   | Local Area Network                                           |
++-----------------------+--------------------------------------------------------------+
+| LRM                   | Local Resource Monitor                                       |
++-----------------------+--------------------------------------------------------------+
+| SO                    | Service Orchestrator                                         |
++-----------------------+--------------------------------------------------------------+
+| NOD                   | Network on Demand                                            |
++-----------------------+--------------------------------------------------------------+
+| ODL                   | OpenDaylight                                                 |
++-----------------------+--------------------------------------------------------------+
+| ONAP                  | Open Network Application Platform                            |
++-----------------------+--------------------------------------------------------------+
+| OS                    | Operating System                                             |
++-----------------------+--------------------------------------------------------------+
+| PO                    | Platform Orchestrator                                        |
++-----------------------+--------------------------------------------------------------+
+| RCT                   | Reference Connection Tool                                    |
++-----------------------+--------------------------------------------------------------+
+| RO                    | Resource Orchestrator                                        |
++-----------------------+--------------------------------------------------------------+
+| SDN-C                 | Software Defined Network - Controller                        |
++-----------------------+--------------------------------------------------------------+
+| SDN-GP                | Software Defined Network -  Global Platform                  |
++-----------------------+--------------------------------------------------------------+
+| SME                   | Subject Matter Expert                                        |
++-----------------------+--------------------------------------------------------------+
+| SNMP                  | Simple Network Management Protocol                           |
++-----------------------+--------------------------------------------------------------+
+| SMTP                  | Simple Mail Transfer Protocol                                |
++-----------------------+--------------------------------------------------------------+
+| SOT                   | Source Of Truth (ext. system where data object originates)   |
++-----------------------+--------------------------------------------------------------+
+| SSH                   | Secure Shell                                                 |
++-----------------------+--------------------------------------------------------------+
+| TCP                   | Transmission Control Protocol                                |
++-----------------------+--------------------------------------------------------------+
+| TPS                   | Transactions per Second                                      |
++-----------------------+--------------------------------------------------------------+
+| UEB                   | Universal Event Broker                                       |
++-----------------------+--------------------------------------------------------------+
+| vCE                   | virtual CE (Customer Edge) router                            |
++-----------------------+--------------------------------------------------------------+
+| vPE                   | virtual PE (Provider Edge) router                            |
++-----------------------+--------------------------------------------------------------+
+| VLAN                  | Virtual Local Area Network                                   |
++-----------------------+--------------------------------------------------------------+
+| VM                    | Virtual Machine                                              |
++-----------------------+--------------------------------------------------------------+
+| VNF                   | Virtual Network Function                                     |
++-----------------------+--------------------------------------------------------------+
+| VNFC                  | Virtual Network Function Component                           |
++-----------------------+--------------------------------------------------------------+
+| vSCP                  | Virtualized Service Control Point                            |
++-----------------------+--------------------------------------------------------------+
+| WAN                   | Wide Area Network                                            |
++-----------------------+--------------------------------------------------------------+
+| WUI                   | Web User Interface                                           |
++-----------------------+--------------------------------------------------------------+
+| XML                   | Extensible Markup Language                                   |
++-----------------------+--------------------------------------------------------------+
+| YAML                  | YAML Ain't Markup Language                                   |
++-----------------------+--------------------------------------------------------------+
+
+Client Library Background
+-------------------------
+
+    This guide discusses the Application Controller (APPC) Client
+    Library and how to use it.
+
+About the Client Library
+------------------------
+
+    The APPC client library provides consumers of APPC capabilities with
+    a strongly-typed Java interface and encapsulates the actual
+    interaction with the APPC component over an asynchronous messaging
+    channel such as UEB.
+
+Consumer Logic
+--------------
+
+    The client application that consumes APPC's capability for VNF
+    lifecycle management (the APPC client library) can be implemented
+    against the lightweight and strongly-typed Java API exposed by the
+    APPC client library. The library does not try to impose
+    architectural constraints upon clients, but instead provides support
+    for different options and styles of API. It is the responsibility of
+    the client application to select the most suitable paradigm to use;
+    for example, a client may choose to use blocking calls as opposed to
+    asynchronous notifications.
+
+VNF Lifecycle Management API
+----------------------------
+
+    The API represents a relatively thin layer that consists mainly of
+    business interfaces with strongly-typed APIs and a data object model
+    created for the convenience of the consumer application.Â 
+
+    The original YANG schema used by the APPC component and the
+    underlying MD-SAL layer on the server-side generates these
+    artifacts.
+
+APP-C Client Library Flow
+-------------------------
+
+    |image0|
+
+Asynchronous Flow
+~~~~~~~~~~~~~~~~~
+
+-  The APPC Client Library is called using an asynchronous API using a
+   full command object, which is mapped to a JSON representation.
+
+-  The APPC client calls the UEB 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, the APPC client runs the
+   relevant callback method of the consumer ResponseHandler.
+
+   1. .. rubric:: Synchronous Flow
+         :name: synchronous-flow
+
+-  The APPC Client Library is called using a synchronous API using a
+   full command object, which is mapped to a JSON representation.
+
+-  The APPC client calls the UEB 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.
+
+1. .. rubric:: Client Library Usage
+      :name: client-library-usage
+
+   1. .. rubric::  Jar Files
+         :name: jar-files
+
+    The Java application that runs the APPC client kit uses the
+    following jar files:
+
+-  com.att.appc.client.client-kit
+
+-  com.att.appc.client.client-lib
+
+    The client library JAR files are located in the repository under
+    /gerrit.onap.org/r/p/appc.git/appc-client.
+
+Initialization
+~~~~~~~~~~~~~~~~
+
+    Initialize the client by calling the following method:
+
+    AppcClientServiceFactoryProvider.getFactory(AppcLifeCycleManagerServiceFactory.class).createLifeCycleManagerStateful()
+
+    Specify the following configuration properties as method parameters:
+
+-  "topic.read"
+
+-  "topic.read.timeout"
+
+-  "topic.write"
+
+-  "client.key"
+
+-  "client.secret"
+
+-  "client.name"
+
+-  "client.name.id"
+
+-  "poolMembers"
+
+-  "client.response.timeout"
+
+-  "client.graceful.shutdown.timeout"
+
+Shutdown
+~~~~~~~~
+
+Shutdown the client by calling the following method:
+
+void shutdownLifeCycleManager(boolean isForceShutdown)
+
+If the isForceShutdown flag is set to false, the client shuts down as
+soon as all responses for pending requests are received, or upon
+configurable timeout. (client.graceful.shutdown.timeout).
+
+If the isForceShutdown flag is set to true, the client shuts down
+immediately.
+
+Invoking LCM Commands
+~~~~~~~~~~~~~~~~~~~~~
+
+Invoke the LCM commands by:
+
+-  Creating input objects, such as AuditInput, LiveUpgradeInput, with
+   relevant command information.
+
+-  Executing commands asynchronously, for example:
+
+void liveUpgrade(LiveUpgradeInput liveUpgradeInput,
+ResponseHandler<LiveUpgradeOutput> listener) throws
+AppcClientException;)
+
+In this case, client should implement the ResponseHandler<T> interface.
+
+-  Executing commands synchronously, for example:
+
+LiveUpgradeOutput liveUpgrade(LiveUpgradeInput liveUpgradeInput) throws
+AppcClientException;)
+
+Client API
+----------
+
+    After initializing the client, a returned Object of type
+    LifeCycleManagerStateful defines all the Life Cycle Management APIs
+    supported by APPC.
+
+    The interface contains two definitions for each RPC: one for
+    Asynchronous call mode, and one for Synchronous.
+
+    In Asynchronous mode, client consumer should provide a callback
+    function of type:
+
+    ResponseHandler<RPC-NAMEOutput>
+
+    where RPC-NAME is the command name, such as Audit or Snapshot.
+
+    There may be multiple calls to the ResponseHandler for each response
+    returned by APPC. For example, first 100 'accept' is returned, then
+    400 'success'.
+
+LifeCycleManagerStateful Interface
+----------------------------------
+
+    Generated from the APPC Yang model, this interface defines the
+    services and request/response requirements for the ECOMP APPC
+    component. For example, for LCM Command Audit, the following is
+    defined:
+
+    @RPC(name="audit", outputType=AuditOutput.class)
+
+    AuditOutput audit(AuditInput auditInput) throws AppcClientException;
+
+    For a Synchronous call to Audit, the consumer thread is blocked
+    until a response is received or a timeout exception is thrown.
+
+    @RPC(name="audit", outputType=AuditOutput.class)
+
+    void audit(AuditInput auditInput, ResponseHandler<AuditOutput>
+    listener) throws AppcClientException;
+
+    For an Asynchronous call to Audit, a callback should be provided so
+    that when a response is received the listener is called.
+
+API documentation
+-----------------
+
+    The API documentation is also available as a swagger page generated
+    from files at /client-kit/target/resources.
+
+appc-provider-lcm
+-----------------
+
+This defines the services and request/response requirements for the APPC
+component.
+
+Methods
+--------
+
+The methods should match the actions described in the LCM API Guide. For
+each method:
+
+**Consumes**
+
+This API call consumes the following media types using the
+**Content-Type** request header:
+
+-  application/json
+
+**Request body**
+
+The request body is the action name followed by Input (e.g., AuditInput)
+
+**Return type**
+
+The return type is the action name followed by Output (e.g.,
+OutputInput)
+
+**Produces**
+
+This API call produces the following media types according to the
+**Accept** request header; the **Content-Type** response header conveys
+the media type.
+
+-  application/json
+
+**Responses**
+
+200 Successful operation
+
+401 Unauthorized
+
+500 Internal server error
+
+.. |image0| image:: image2.png
+   :width: 5.60495in
+   :height: 4.55272in
+
+
diff --git a/docs/conf.py b/docs/conf.py
new file mode 100644
index 0000000..b75cab6
--- /dev/null
+++ b/docs/conf.py
@@ -0,0 +1,368 @@
+# -*- coding: utf-8 -*-
+#
+# ONAP documentation build configuration file, created by
+# sphinx-quickstart on Wed Jul 19 16:25:31 2017.
+#
+# This file is execfile()d with the current directory set to its
+# containing dir.
+#
+# Note that not all possible configuration values are present in this
+# autogenerated file.
+#
+# All configuration values have a default; values that are commented out
+# serve to show the default.
+
+import sys
+import os
+import shlex
+
+# If extensions (or modules to document with autodoc) are in another directory,
+# add these directories to sys.path here. If the directory is relative to the
+# documentation root, use os.path.abspath to make it absolute, like shown here.
+#sys.path.insert(0, os.path.abspath('.'))
+
+# -- General configuration ------------------------------------------------
+
+# If your documentation needs a minimal Sphinx version, state it here.
+needs_sphinx = '1.5.3'
+
+# Add any Sphinx extension module names here, as strings. They can be
+# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
+# ones.
+extensions = [
+    'sphinx.ext.autodoc',
+    'sphinx.ext.doctest',
+    'sphinx.ext.graphviz',
+    'sphinx.ext.todo',
+    'sphinx.ext.imgmath',
+    'sphinx.ext.viewcode',
+    'sphinxcontrib.blockdiag',
+    'sphinxcontrib.seqdiag'
+]
+
+# Font path for seqdiag
+seqdiag_fontpath= '/usr/share/fonts/truetype/dejavu/DejaVuSansCondensed.ttf'
+
+# Add any paths that contain templates here, relative to this directory.
+templates_path = ['_templates']
+
+# The suffix(es) of source filenames.
+# You can specify multiple suffix as a list of string:
+# source_suffix = ['.rst', '.md']
+source_suffix = '.rst'
+
+# The encoding of source files.
+#source_encoding = 'utf-8-sig'
+
+# The master toctree document.
+master_doc = 'index'
+
+# General information about the project.
+project = u'ONAP'
+copyright = u'2017, ONAP Contributors'
+author = u'ONAP Contributors'
+
+# The version info for the project you're documenting, acts as replacement for
+# |version| and |release|, also used in various other places throughout the
+# built documents.
+#
+# The short X.Y version.
+version = 'pre-release alpha'
+# The full version, including alpha/beta/rc tags.
+release = 'Amsterdam 0.1 alpha'
+
+# The language for content autogenerated by Sphinx. Refer to documentation
+# for a list of supported languages.
+#
+# This is also used if you do content translation via gettext catalogs.
+# Usually you set "language" from the command line for these cases.
+language = None
+
+# There are two options for replacing |today|: either, you set today to some
+# non-false value, then it is used:
+#today = ''
+# Else, today_fmt is used as the format for a strftime call.
+#today_fmt = '%B %d, %Y'
+
+# List of patterns, relative to source directory, that match files and
+# directories to ignore when looking for source files.
+exclude_patterns = [
+	'_build'
+	]
+
+# The reST default role (used for this markup: `text`) to use for all
+# documents.
+#default_role = None
+
+# If true, '()' will be appended to :func: etc. cross-reference text.
+#add_function_parentheses = True
+
+# If true, the current module name will be prepended to all description
+# unit titles (such as .. function::).
+#add_module_names = True
+
+# If true, sectionauthor and moduleauthor directives will be shown in the
+# output. They are ignored by default.
+#show_authors = False
+
+# The name of the Pygments (syntax highlighting) style to use.
+pygments_style = 'sphinx'
+
+# A list of ignored prefixes for module index sorting.
+#modindex_common_prefix = []
+
+# If true, keep warnings as "system message" paragraphs in the built documents.
+#keep_warnings = False
+
+# If true, `todo` and `todoList` produce output, else they produce nothing.
+todo_include_todos = True
+
+
+# -- Options for HTML output ----------------------------------------------
+
+# The theme to use for HTML and HTML Help pages.  See the documentation for
+# a list of builtin themes.
+html_theme = 'classic'
+
+# Theme options are theme-specific and customize the look and feel of a theme
+# further.  For a list of options available for each theme, see the
+# documentation.
+#html_theme_options = {}
+
+# Add any paths that contain custom themes here, relative to this directory.
+#html_theme_path = []
+
+# The name for this set of Sphinx documents.  If None, it defaults to
+# "<project> v<release> documentation".
+#html_title = None
+
+# A shorter title for the navigation bar.  Default is the same as html_title.
+#html_short_title = None
+
+# The name of an image file (relative to this directory) to place at the top
+# of the sidebar.
+html_logo = '_static/logo_onap_2017.png'
+
+# The name of an image file (within the static path) to use as favicon of the
+# docs.  This file should be a Windows icon file (.ico) being 16x16 or 32x32
+# pixels large.
+html_favicon = '_static/favicon.ico'
+
+# Add any paths that contain custom static files (such as style sheets) here,
+# relative to this directory. They are copied after the builtin static files,
+# so a file named "default.css" will overwrite the builtin "default.css".
+html_static_path = ['_static']
+
+# Add any extra paths that contain custom files (such as robots.txt or
+# .htaccess) here, relative to this directory. These files are copied
+# directly to the root of the documentation.
+#html_extra_path = []
+
+# If not '', a 'Last updated on:' timestamp is inserted at every page bottom,
+# using the given strftime format.
+#html_last_updated_fmt = '%b %d, %Y'
+
+# If true, SmartyPants will be used to convert quotes and dashes to
+# typographically correct entities.
+#html_use_smartypants = True
+
+# Custom sidebar templates, maps document names to template names.
+#html_sidebars = {}
+
+# Additional templates that should be rendered to pages, maps page names to
+# template names.
+#html_additional_pages = {}
+
+# If false, no module index is generated.
+#html_domain_indices = True
+
+# If false, no index is generated.
+#html_use_index = True
+
+# If true, the index is split into individual pages for each letter.
+#html_split_index = False
+
+# If true, links to the reST sources are added to the pages.
+#html_show_sourcelink = True
+
+# If true, "Created using Sphinx" is shown in the HTML footer. Default is True.
+#html_show_sphinx = True
+
+# If true, "(C) Copyright ..." is shown in the HTML footer. Default is True.
+#html_show_copyright = True
+
+# If true, an OpenSearch description file will be output, and all pages will
+# contain a <link> tag referring to it.  The value of this option must be the
+# base URL from which the finished HTML is served.
+#html_use_opensearch = ''
+
+# This is the file name suffix for HTML files (e.g. ".xhtml").
+#html_file_suffix = None
+
+# Language to be used for generating the HTML full-text search index.
+# Sphinx supports the following languages:
+#   'da', 'de', 'en', 'es', 'fi', 'fr', 'hu', 'it', 'ja'
+#   'nl', 'no', 'pt', 'ro', 'ru', 'sv', 'tr'
+#html_search_language = 'en'
+
+# A dictionary with options for the search language support, empty by default.
+# Now only 'ja' uses this config value
+#html_search_options = {'type': 'default'}
+
+# The name of a javascript file (relative to the configuration directory) that
+# implements a search results scorer. If empty, the default will be used.
+#html_search_scorer = 'scorer.js'
+
+# Output file base name for HTML help builder.
+htmlhelp_basename = 'ONAPdoc'
+
+# -- Options for LaTeX output ---------------------------------------------
+
+latex_elements = {
+# The paper size ('letterpaper' or 'a4paper').
+#'papersize': 'letterpaper',
+
+# The font size ('10pt', '11pt' or '12pt').
+#'pointsize': '10pt',
+
+# Additional stuff for the LaTeX preamble.
+#'preamble': '',
+
+# Latex figure (float) alignment
+#'figure_align': 'htbp',
+}
+
+# Grouping the document tree into LaTeX files. List of tuples
+# (source start file, target name, title,
+#  author, documentclass [howto, manual, or own class]).
+latex_documents = [
+  (master_doc, 'ONAP.tex', u'ONAP Documentation',
+   u'ONAP Contributors', 'manual'),
+]
+
+# The name of an image file (relative to this directory) to place at the top of
+# the title page.
+#latex_logo = None
+
+# For "manual" documents, if this is true, then toplevel headings are parts,
+# not chapters.
+#latex_use_parts = False
+
+# If true, show page references after internal links.
+#latex_show_pagerefs = False
+
+# If true, show URL addresses after external links.
+#latex_show_urls = False
+
+# Documents to append as an appendix to all manuals.
+#latex_appendices = []
+
+# If false, no module index is generated.
+#latex_domain_indices = True
+
+
+# -- Options for manual page output ---------------------------------------
+
+# One entry per manual page. List of tuples
+# (source start file, name, description, authors, manual section).
+man_pages = [
+    (master_doc, 'onap', u'ONAP Documentation',
+     [author], 1)
+]
+
+# If true, show URL addresses after external links.
+#man_show_urls = False
+
+
+# -- Options for Texinfo output -------------------------------------------
+
+# Grouping the document tree into Texinfo files. List of tuples
+# (source start file, target name, title, author,
+#  dir menu entry, description, category)
+texinfo_documents = [
+  (master_doc, 'ONAP', u'ONAP Documentation',
+   author, 'ONAP', 'Open Network Automation Platform',
+   'Platform'),
+]
+
+# Documents to append as an appendix to all manuals.
+#texinfo_appendices = []
+
+# If false, no module index is generated.
+#texinfo_domain_indices = True
+
+# How to display URL addresses: 'footnote', 'no', or 'inline'.
+#texinfo_show_urls = 'footnote'
+
+# If true, do not generate a @detailmenu in the "Top" node's menu.
+#texinfo_no_detailmenu = False
+
+
+# -- Options for Epub output ----------------------------------------------
+
+# Bibliographic Dublin Core info.
+epub_title = project
+epub_author = author
+epub_publisher = author
+epub_copyright = copyright
+
+# The basename for the epub file. It defaults to the project name.
+#epub_basename = project
+
+# The HTML theme for the epub output. Since the default themes are not optimized
+# for small screen space, using the same theme for HTML and epub output is
+# usually not wise. This defaults to 'epub', a theme designed to save visual
+# space.
+#epub_theme = 'epub'
+
+# The language of the text. It defaults to the language option
+# or 'en' if the language is not set.
+#epub_language = ''
+
+# The scheme of the identifier. Typical schemes are ISBN or URL.
+#epub_scheme = ''
+
+# The unique identifier of the text. This can be a ISBN number
+# or the project homepage.
+#epub_identifier = ''
+
+# A unique identification for the text.
+#epub_uid = ''
+
+# A tuple containing the cover image and cover page html template filenames.
+#epub_cover = ()
+
+# A sequence of (type, uri, title) tuples for the guide element of content.opf.
+#epub_guide = ()
+
+# HTML files that should be inserted before the pages created by sphinx.
+# The format is a list of tuples containing the path and title.
+#epub_pre_files = []
+
+# HTML files shat should be inserted after the pages created by sphinx.
+# The format is a list of tuples containing the path and title.
+#epub_post_files = []
+
+# A list of files that should not be packed into the epub file.
+epub_exclude_files = ['search.html']
+
+# The depth of the table of contents in toc.ncx.
+#epub_tocdepth = 3
+
+# Allow duplicate toc entries.
+#epub_tocdup = True
+
+# Choose between 'default' and 'includehidden'.
+#epub_tocscope = 'default'
+
+# Fix unsupported image types using the Pillow.
+#epub_fix_images = False
+
+# Scale large images.
+#epub_max_image_width = 0
+
+# How to display URL addresses: 'footnote', 'no', or 'inline'.
+#epub_show_urls = 'inline'
+
+# If false, no index is generated.
+#epub_use_index = True
diff --git a/docs/index.rst b/docs/index.rst
index 833e1aa..11f3f39 100644
--- a/docs/index.rst
+++ b/docs/index.rst
@@ -5,4 +5,5 @@
 .. toctree::
    :maxdepth: 1
 
-
+	APPC API Guide
+	APPC Client Library Guide
