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

.. _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
   ../../../submodules/ccsdk/platform/plugins.git/docs/index

.. Empty Folders for Release
   ../../../submodules/ccsdk/parent.git/docs/index
   ../../../submodules/ccsdk/platform/blueprints.git/docs/index
   ../../../submodules/ccsdk/platform/nbapi.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
   ../../../submodules/ccsdk/storage/esaas.git/docs/index
   ../../../submodules/ccsdk/storage/pgaas.git/docs/index
   ../../../submodules/ccsdk/utils.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:


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

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

   ../../../submodules/integration.git/docs/index

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


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

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

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


ONAP Optimization Framework
---------------------------

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

   ../../../submodules/optf/has.git/docs/index

ONAP University
---------------

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


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
