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

.. _appc_client_library:

=========================
APPC Client Library Guide
=========================


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

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

        :ref:`appc_api_guide`


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

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.

Client Library Usage
====================

Jar Files
---------

The Java application that runs the APPC client kit uses the following jar files:

    -  org.openecomp.appc.client:client-kit
    -  org.openecomp.appc.client:client-lib

The client library JAR files are located in the repository under ``com\\att\\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 ONAP 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
