.. This work is licensed under a Creative Commons Attribution 4.0 International License.

Projects Providing Documentation
--------------------------------

Documentation organized by the project delivering them.

.. note::
   The list below is the initial reference to project information created
   when integrating as a submodule.  For the release notes document, 
   these references will be changed to release notes and artifacts
   Other project information will referenced in developer and user guides.


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

   aaf/authz <../submodules/aaf/authz.git/docs/index>
   aai/aai-common <../submodules/aai/aai-common.git/docs/index>
   aai/data-router <../submodules/aai/data-router.git/docs/index>
   aai/esr-gui <../submodules/aai/esr-gui.git/docs/index>
   aai/esr-server <../submodules/aai/esr-server.git/docs/index>
   aai/resources <../submodules/aai/resources.git/docs/index>
   aai/search-data-service <../submodules/aai/search-data-service.git/docs/index>
   aai/sparky-be <../submodules/aai/sparky-be.git/docs/index>
   aai/sparky-fe <../submodules/aai/sparky-fe.git/docs/index>
   aai/traversal <../submodules/aai/traversal.git/docs/index>
   appc/deployment <../submodules/appc/deployment.git/docs/index>
   appc <../submodules/appc.git/docs/index>
   ccsdk/dashboard <../submodules/ccsdk/dashboard.git/docs/index>
   ccsdk/distribution <../submodules/ccsdk/distribution.git/docs/index>
   ccsdk/parent <../submodules/ccsdk/parent.git/docs/index>
   ccsdk/platform/blueprints <../submodules/ccsdk/platform/blueprints.git/docs/index>
   ccsdk/platform/nbapi <../submodules/ccsdk/platform/nbapi.git/docs/index>
   ccsdk/platform/plugins <../submodules/ccsdk/platform/plugins.git/docs/index>
   ccsdk/sli/adaptors <../submodules/ccsdk/sli/adaptors.git/docs/index>
   ccsdk/sli/core <../submodules/ccsdk/sli/core.git/docs/index>
   ccsdk/sli/northbound <../submodules/ccsdk/sli/northbound.git/docs/index>
   ccsdk/sli/plugins <../submodules/ccsdk/sli/plugins.git/docs/index>
   ccsdk/storage/esaas <../submodules/ccsdk/storage/esaas.git/docs/index>
   ccsdk/storage/pgaas <../submodules/ccsdk/storage/pgaas.git/docs/index>
   ccsdk/utils <../submodules/ccsdk/utils.git/docs/index>
   clamp <../submodules/clamp.git/docs/index>
   cli <../submodules/cli.git/docs/index>
   dcaegen2 <../submodules/dcaegen2.git/docs/index>
   dmaap/messagerouter/messageservice <../submodules/dmaap/messagerouter/messageservice.git/docs/index>
   holmes/engine-management <../submodules/holmes/engine-management.git/docs/index>
   holmes/rule-management <../submodules/holmes/rule-management.git/docs/index>
   integration <../submodules/integration.git/docs/index>
   modeling/modelspec <../submodules/modeling/modelspec.git/docs/index>
   msb/apigateway <../submodules/msb/apigateway.git/docs/index>
   msb/discovery <../submodules/msb/discovery.git/docs/index>
   msb/java-sdk <../submodules/msb/java-sdk.git/docs/index>
   msb/swagger-sdk <../submodules/msb/swagger-sdk.git/docs/index>
   multicloud/framework <../submodules/multicloud/framework.git/docs/index>
   oom <../submodules/oom.git/docs/index>
   Optimization Framework: Homing and Allocation <../submodules/optf/has.git/docs/index>
   policy/engine <../submodules/policy/engine.git/docs/index>
   portal <../submodules/portal.git/docs/index>
   sdc/jtosca <../submodules/sdc/jtosca.git/docs/index>
   sdc/sdc-distribution-client <../submodules/sdc/sdc-distribution-client.git/docs/index>
   sdc/sdc-docker-base <../submodules/sdc/sdc-docker-base.git/docs/index>
   sdc/sdc-titan-cassandra <../submodules/sdc/sdc-titan-cassandra.git/docs/index>
   sdc/sdc-tosca <../submodules/sdc/sdc-tosca.git/docs/index>
   sdc/sdc-workflow-designer <../submodules/sdc/sdc-workflow-designer.git/docs/index>
   sdc <../submodules/sdc.git/docs/index>
   sdnc/adaptors <../submodules/sdnc/adaptors.git/docs/index>
   sdnc/architecture <../submodules/sdnc/architecture.git/docs/index>
   sdnc/core <../submodules/sdnc/core.git/docs/index>
   sdnc/features <../submodules/sdnc/features.git/docs/index>
   sdnc/northbound <../submodules/sdnc/northbound.git/docs/index>
   sdnc/oam <../submodules/sdnc/oam.git/docs/index>
   sdnc/parent <../submodules/sdnc/parent.git/docs/index>
   sdnc/plugins <../submodules/sdnc/plugins.git/docs/index>
   so <../submodules/so.git/docs/index>
   so/libs <../submodules/so/libs.git/docs/index>
   vfc/nfvo/lcm <../submodules/vfc/lcm.git/docs/index>
   vfc/nfvo/lcm <../submodules/vfc/nfvo/lcm.git/docs/index>
   vid/asdcclient <../submodules/vid/asdcclient.git/docs/index>
   vid <../submodules/vid.git/docs/index>
   vnfrqts/guidelines <../submodules/vnfrqts/guidelines.git/docs/index>
   vnfrqts/requirements <../submodules/vnfrqts/requirements.git/docs/index>
   vnfsdk/model <../submodules/vnfsdk/model.git/docs/index>
   usecase-ui <../submodules/usecase-ui.git/docs/index>
