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

Project Specific Release Notes
++++++++++++++++++++++++++++++
Each project is listed below followed by the Gerrit repositories in which there are release notes.

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

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

   aai/aai-common<../submodules/aai/aai-common.git/docs/release-notes.rst>

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

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

   appc<../submodules/appc.git/docs/release-notes.rst>

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

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

   ccsdk/distribution<../submodules/ccsdk/distribution.git/docs/release-notes.rst>
   ccsdk/platform/plugins<../submodules/ccsdk/platform/plugins.git/docs/release-notes.rst>

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

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

   clamp<../submodules/clamp.git/docs/release-notes.rst>

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

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

   cli<../submodules/cli.git/docs/release-notes.rst>

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

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

   dcaegen2<../submodules/dcaegen2.git/docs/sections/release-notes.rst>

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

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

   doc <../release-notes.rst>

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

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

   dmaap/messagerouter/messageservice<../submodules/dmaap/messagerouter/messageservice.git/docs/release-notes/release-notes.rst>

External API / NBI
------

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

   NBI - NorthBound Interface<../submodules/externalapi/nbi.git/docs/releasenotes/releasenotes.rst>

Holmes
------

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

   holmes/rule-management<../submodules/holmes/rule-management.git/docs/release-notes.rst>

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

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

   logging-analytics<../submodules/logging-analytics.git/docs/release-notes.rst>

Modeling
--------

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

   modeling/modelspec<../submodules/modeling/toscaparsers.git/docs/javatoscachecker/release-notes.rst>
   modeling/toscaparsers<../submodules/modeling/toscaparsers.git/docs/nfvparser/release-notes/release-notes.rst>

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

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

   msb/apigateway<../submodules/msb/apigateway.git/docs/release-notes.rst>

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

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

   multicloud/framework<../submodules/multicloud/framework.git/docs/Release Notes.rst>

Music
-----

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

   music<../submodules/music.git/docs/release-notes.rst>


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

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

   OOM<../submodules/oom.git/docs/release-notes.rst>

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

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

   policy/engine<../submodules/policy/engine.git/docs/release-notes.rst>

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

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

   portal<../submodules/portal.git/docs/release-notes.rst>

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

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

   sdc<../submodules/sdc.git/docs/release-notes.rst>
   sdc/sdc-workflow-designer<../submodules/sdc/sdc-workflow-designer.git/docs/release-notes.rst>

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

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

   sdnc/oam<../submodules/sdnc/oam.git/docs/release-notes.rst>

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

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

   so<../submodules/so.git/docs/release-notes.rst>
   so/libs<../submodules/so/libs.git/docs/release-notes.rst>

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

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

   usecase-ui<../submodules/usecase-ui.git/docs/release-notes.rst>

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

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

   vfc/nfvo/lcm<../submodules/vfc/nfvo/lcm.git/docs/release-notes.rst>

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

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

   vid<../submodules/vid.git/docs/release-notes.rst>

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

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

   vnfrqts/requirements<../submodules/vnfrqts/requirements.git/docs/release-notes.rst>
   vnfrqts/testcases<../submodules/vnfrqts/testcases.git/docs/release-notes.rst>
   vnfrqts/usecases<../submodules/vnfrqts/usecases.git/docs/release-notes.rst>

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

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

   vnfsdk/model<../submodules/vnfsdk/model.git/docs/release-notes.rst>

VNF Validation Project
----------------------
.. toctree::
   :maxdepth: 1
   :titlesonly:

   vvp/documentation<../submodules/vvp/documentation.git/docs/release-notes.rst>


.. Not in / not used this release
   ccsdk/parent<../submodules/ccsdk/parent.git/docs/release-notes.rst>
   ccsdk/platform/nbapi<../submodules/ccsdk/platform/nbapi.git/docs/release-notes.rst>
   ccsdk/sli/adaptors<../submodules/ccsdk/sli/adaptors.git/docs/release-notes.rst>
   ccsdk/sli/core<../submodules/ccsdk/sli/core.git/docs/release-notes.rst>
   ccsdk/sli/northbound<../submodules/ccsdk/sli/northbound.git/docs/release-notes.rst>
   ccsdk/sli/plugins<../submodules/ccsdk/sli/plugins.git/docs/release-notes.rst>
   ccsdk/storage/esaas<../submodules/ccsdk/storage/esaas.git/docs/release-notes.rst>
   ccsdk/storage/pgaas<../submodules/ccsdk/storage/pgaas.git/docs/release-notes.rst>
   ccsdk/utils<../submodules/ccsdk/utils.git/docs/release-notes.rst>
   sdnc/adaptors<../submodules/sdnc/adaptors.git/docs/release-notes.rst>
   sdnc/architecture<../submodules/sdnc/architecture.git/docs/release-notes.rst>
   sdnc/core<../submodules/sdnc/core.git/docs/release-notes.rst>
   sdnc/features<../submodules/sdnc/features.git/docs/release-notes.rst>
   sdnc/northbound<../submodules/sdnc/northbound.git/docs/release-notes.rst>
   sdnc/parent<../submodules/sdnc/parent.git/docs/release-notes.rst>
   sdnc/plugins<../submodules/sdnc/plugins.git/docs/release-notes.rst>
   oom<../submodules/oom.git/docs/release-notes.rst>
   aaf/authz<../submodules/aaf/authz.git/docs/release-notes.rst>
