.. 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<../submodules/aai/aai-common.git/docs/release-notes.rst>

Application Authorization Framework
-----------------------------------

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

   aaf<../submodules/aaf/authz.git/docs/sections/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<../submodules/ccsdk/distribution.git/docs/release-notes.rst>

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

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

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

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

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

   clamp<../submodules/clamp.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
-----------------------------

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

   dmaap message router (MR) <../submodules/dmaap/messagerouter/messageservice.git/docs/release-notes/release-notes.rst>
   dmaap data router (DR) <../submodules/dmaap/datarouter.git/docs/release-notes.rst>
   dmaap bus controller (BC) <../submodules/dmaap/buscontroller.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<../submodules/holmes/rule-management.git/docs/release-notes.rst>

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

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

   integration<../submodules/integration.git/docs/release-notes.rst>
   oparent-cia<../submodules/oparent/cia.git/docs/release-notes.rst>
   benchmarks<../submodules/integration/benchmark.git/docs/release-notes.rst>

Logging Analytics
-----------------

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

   logging-analytics<../submodules/logging-analytics.git/docs/release-notes.rst>
   pomba<../submodules/logging-analytics/pomba/pomba-audit-common.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<../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
-----------------------

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

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

Optimization Framework
----------------------

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

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

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

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

   policy<../submodules/policy/parent.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>

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

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

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

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

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

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

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<../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<../submodules/vnfrqts/requirements.git/docs/release-notes.rst>

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

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

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

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

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


.. Not in / not used this release
   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>
   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>
