.. 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>
   aai/esr-gui<../submodules/aai/esr-gui.git/docs/release-notes.rst>
   aai/esr-server<../submodules/aai/esr-server.git/docs/release-notes.rst>
   aai/sparky-be<../submodules/aai/sparky-be.git/docs/release-notes.rst>

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

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

   appc/deployment<../submodules/appc/deployment.git/docs/release-notes.rst>
   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/dashboard<../submodules/ccsdk/dashboard.git/docs/release-notes.rst>
   ccsdk/platform/blueprints<../submodules/ccsdk/platform/blueprints.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.rst>

Holmes
------

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

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

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

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

   integration<../submodules/integration.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/modelspec.git/docs/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>
   msb/discovery<../submodules/msb/discovery.git/docs/release-notes.rst>
   msb/java-sdk<../submodules/msb/java-sdk.git/docs/release-notes.rst>
   msb/swagger-sdk<../submodules/msb/swagger-sdk.git/docs/release-notes.rst>

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

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

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

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

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

   ../../../submodules/oom.git/docs/index/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/jtosca<../submodules/sdc/jtosca.git/docs/release-notes.rst>
   sdc/sdc-distribution-client<../submodules/sdc/sdc-distribution-client.git/docs/release-notes.rst>
   sdc/sdc-docker-base<../submodules/sdc/sdc-docker-base.git/docs/release-notes.rst>
   sdc/sdc-titan-cassandra<../submodules/sdc/sdc-titan-cassandra.git/docs/release-notes.rst>
   sdc/sdc-tosca<../submodules/sdc/sdc-tosca.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/lcm<../submodules/vfc/lcm.git/docs/release-notes.rst>
   vfc/nfvo/lcm<../submodules/vfc/nfvo/lcm.git/docs/release-notes.rst>

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

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

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

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

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

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

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

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

   vnfsdk/model<../submodules/vnfsdk/model.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>
