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

VNFSDK Documentation
====================

.. toctree::
   :maxdepth: 1
   :titlesonly:

   files/vnfsdk-apis

Components
----------

VNF Packaging Model/Blueprint
-----------------------------

VNF product model/blueprint provides a declarative way to define deployment,
operational and functional attributes of a VNF product. The VNF product is
defined in terms of deployment time requirements and dependencies and exposed
telemetry indicator definitions.

The deployment time requirements and dependencies define any and all compute
infrastructure needs of the VNF product, such as specific hardware
architecture, on-chip features, instruction set availability and hypervisor
capabilities.

The telemetry indicator definitions define a set of default indicators exposed
by a given VNF product for use by monitoring and assurance tools. This list
can be extended and customized once a given VNF product is on-boarded and
instantiated at run-time.

The VNF product model is specified using the TOSCA NFV simple profile. It is
persisted, along with the product executables and data, using TOSCA CSAR files.

.. toctree::
   :maxdepth: 1
   :titlesonly:
   :glob:

   files/pkgtool
   files/*blueprints

VNF SDK Marketplace
-------------------

.. include:: files/marketplace-overview.rst

Installation instructions
-------------------------

.. toctree::
   :maxdepth: 1

   files/mktplace-install

VNF SDK Tools
-------------

VNF SDK tools provide VNF product DevOps engineers with command line tools and
client side API language bindings to define the VNF product model and package
content. The following tools are included...

•	VNF Package Builder - creates a CSAR file based on inputs provided by the VNF
product DevOps engineer
•	VNF Package Validator - validates the content of the VNF packages to ensure
that everything has been built correctly
•	VNF Package Extractor - extracts VNF product model and executables from the
CSAR file
•	VNF Package Parser - translates VNF proeduct blueprint into a format
consumable by ONAP components
•	VNF Package Dry Run - performs a "dry run" install to ensure that the package
can be deployed during instantiation


User Guides
-----------

VNF Package Tools User Guide
----------------------------

VNF Package Designer, provides VNF product DevOps engineers with a graphical
tool to define the VNF product model and package content. It is made available
as part of the VNF Supplier SDK tools.The package designer makes use of the VNF
SDK command line interfaces (CLIs) and client-side API language bindings in
order to define the model and the package content. As such, it is functionally
equivalent to the VNF SDK tools.

.. toctree::
   :maxdepth: 1
   :titlesonly:
   :glob:

   files/*Bundling*

Marketplace User Guide for Operators
------------------------------------

.. toctree::
   :maxdepth: 1
   :titlesonly:

   files/VNFSDK-Marketplace-userguide-operators

Marketplace User Guide for VNF Suppliers
----------------------------------------

.. toctree::
   :maxdepth: 1
   :titlesonly:

   files/VNFSDK-Marketplace-userguide-vendors

VES Client Guidelines
---------------------

.. toctree::
   :maxdepth: 1
   :titlesonly:

   files/VESEventRegistration
   files/VESEventListener
