.. This work is licensed under a Creative Commons Attribution 4.0 International License.
.. http://creativecommons.org/licenses/by/4.0
.. Copyright 2017 AT&T Intellectual Property.  All rights reserved.

.. index:: Developer Guides

.. _doc_onap-developer_guide_projects:

Developing ONAP
===============
Additional developer level detail is provided for each project below.

Active and Available Inventory
------------------------------

.. toctree::
   :maxdepth: 2
   :titlesonly:

   ../../../submodules/aai/aai-common.git/docs/index
   AAI-esr-gui <../../../submodules/aai/esr-gui.git/docs/index>
   ../../../submodules/aai/esr-server.git/docs/index
   ../../../submodules/aai/sparky-be.git/docs/index


Application Controller
----------------------

.. toctree::
   :maxdepth: 2
   :titlesonly:

   ../../../submodules/appc/deployment.git/docs/index
   ../../../submodules/appc.git/docs/index

Closed Loop Automation Platform
-------------------------------

.. toctree::
   :maxdepth: 2
   :titlesonly:

   ../../../submodules/clamp.git/docs/index

Common Controller Software Development Kit
------------------------------------------

.. toctree::
   :maxdepth: 2
   :titlesonly:

   ../../../submodules/ccsdk/distribution.git/docs/index
   ../../../submodules/ccsdk/dashboard.git/docs/index

.. Being consolidated in ccsdk distribution
   ../../../submodules/ccsdk/platform/blueprints.git/docs/index
   ../../../submodules/ccsdk/platform/nbapi.git/docs/index
   ../../../submodules/ccsdk/storage/esaas.git/docs/index
   ../../../submodules/ccsdk/storage/pgaas.git/docs/index
   ../../../submodules/ccsdk/utils.git/docs/index
   ../../../submodules/ccsdk/parent.git/docs/index
   ../../../submodules/ccsdk/platform/plugins.git/docs/index
   ../../../submodules/ccsdk/sli/adaptors.git/docs/index
   ../../../submodules/ccsdk/sli/core.git/docs/index
   ../../../submodules/ccsdk/sli/northbound.git/docs/index
   ../../../submodules/ccsdk/sli/plugins.git/docs/index

Data Collection, Analysis, and Events
-------------------------------------

.. toctree::
   :maxdepth: 2
   :titlesonly:

   ../../../submodules/dcaegen2.git/docs/index

Data Management as a Platform Message Router
--------------------------------------------

.. toctree::
   :maxdepth: 2
   :titlesonly:

   ../../../submodules/dmaap/messagerouter/messageservice.git/docs/index

Documentation
-------------

.. toctree::
   :maxdepth: 2
   :titlesonly:

   ../how-to-use-docs/index.rst


Holmes
------

.. toctree::
   :maxdepth: 2
   :titlesonly:

   Alarm Correlation and Analysis <../../../submodules/holmes/engine-management.git/docs/index>
   Architecture and APIs <../../../submodules/holmes/rule-management.git/docs/index>

Integration
-----------

* ONAP Amsterdam release content is specified within a list of project artifact versions available in the form of a :ref:`manifest<doc-release-manifest>`.
* To install the whole ONAP (from a complete demo solution perspective) refer to :ref:`Setting Up ONAP <demo-installing-running-onap>`.

Logging Enhancements Project
----------------------------

.. toctree::
   :maxdepth: 2
   :titlesonly:

   ../../../submodules/logging-analytics.git/docs/index

Micro Services Bus
------------------

.. toctree::
   :maxdepth: 2
   :titlesonly:

   ../../../submodules/msb/apigateway.git/docs/index
   ../../../submodules/msb/swagger-sdk.git/docs/index

.. Empty folders in this release
   ../../../submodules/msb/discovery.git/docs/index
   ../../../submodules/msb/java-sdk.git/docs/index


Modeling
--------

.. toctree::
   :maxdepth: 2
   :titlesonly:

   ../../../submodules/modeling/modelspec.git/docs/index
   ../../../submodules/modeling/toscaparsers.git/docs/index

MultiVIM Cloud
--------------

.. toctree::
   :maxdepth: 2
   :titlesonly:

   ../../../submodules/multicloud/framework.git/docs/index

Music
-----

.. toctree::
   :maxdepth: 2
   :titlesonly:

   ../../../submodules/music.git/docs/index


Nokia SVNFM driver
------------------
 
.. toctree::
   :maxdepth: 2
   :titlesonly:
 
   ../../../submodules/vfc/svnfm.git/nokiav2/docs/index

ONAP Command Line Interface
---------------------------

.. toctree::
   :maxdepth: 2
   :titlesonly:

   ../../../submodules/cli.git/docs/index

ONAP Operations Manager (experimental)
--------------------------------------

.. toctree::
   :maxdepth: 2
   :titlesonly:

   ../../../submodules/oom.git/docs/index

ONAP Use Case User Interface
----------------------------

.. toctree::
   :maxdepth: 2
   :titlesonly:

   ../../../submodules/usecase-ui.git/docs/index

Policy Framework
----------------

.. toctree::
   :maxdepth: 2
   :titlesonly:

   ../../../submodules/policy/engine.git/docs/index

Portal Platform
---------------

.. toctree::
   :maxdepth: 2
   :titlesonly:

   ../../../submodules/portal.git/docs/index

Service Design & Creation
-------------------------

.. toctree::
   :maxdepth: 2
   :titlesonly:

   ../../../submodules/sdc.git/docs/index

.. Empty folders for this release
   ../../../submodules/sdc/jtosca.git/docs/index
   ../../../submodules/sdc/sdc-distribution-client.git/docs/index
   ../../../submodules/sdc/sdc-docker-base.git/docs/index
   ../../../submodules/sdc/sdc-titan-cassandra.git/docs/index
   ../../../submodules/sdc/sdc-tosca.git/docs/index
   ../../../submodules/sdc/sdc-workflow-designer.git/docs/index

Service Orchestration
---------------------

.. toctree::
   :maxdepth: 2
   :titlesonly:

   ../../../submodules/so.git/docs/index
   ../../../submodules/so/libs.git/docs/index

Software Defined Network Controller
-----------------------------------

.. toctree::
   :maxdepth: 2
   :titlesonly:

   ../../../submodules/sdnc/oam.git/docs/index

.. Empty folders for this release
   ../../../submodules/sdnc/adaptors.git/docs/index
   ../../../submodules/sdnc/architecture.git/docs/index
   ../../../submodules/sdnc/core.git/docs/index
   ../../../submodules/sdnc/features.git/docs/index
   ../../../submodules/sdnc/northbound.git/docs/index
   ../../../submodules/sdnc/parent.git/docs/index
   ../../../submodules/sdnc/plugins.git/docs/index

Virtual Function Controller
---------------------------

.. toctree::
   :maxdepth: 2
   :titlesonly:

   ../../../submodules/vfc/nfvo/lcm.git/docs/index

Virtual Infrastructure Deployment
---------------------------------

.. toctree::
   :maxdepth: 2
   :titlesonly:


   ../../../submodules/vid.git/docs/index

.. Empty folders for this release
   ../../../submodules/vid/asdcclient.git/docs/index

VNF Requirements
----------------

.. toctree::
   :maxdepth: 2
   :titlesonly:


   ../../../submodules/vnfrqts/guidelines.git/docs/index
   ../../../submodules/vnfrqts/requirements.git/docs/index

VNF Software Development Kit
----------------------------

.. toctree::
   :maxdepth: 2
   :titlesonly:

   ../../../submodules/vnfsdk/model.git/docs/index

ExternalAPI-NBI
--------------------------------------------

.. toctree::
   :maxdepth: 2
   :titlesonly:

   ../../../submodules/externalapi/nbi.git/docs/index

