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


External API Framework
----------------------

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

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


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


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
