.. This work is licensed under a Creative Commons Attribution 4.0 International License.
.. http://creativecommons.org/licenses/by/4.0

Consumed APIs
=============

.. note::
   * This section is used to reference APIs that a software component depends on
     and uses from other sources.  
   
   * Consumed APIs should be a specific link to the offered APIs from another component
     or external source.

   * This note must be removed after content has been added.

DCAEGEN2 Components making following API calls into other ONAP components.

* `DMaaP Message Router <https://docs.onap.org/en/latest/submodules/dmaap/messagerouter/messageservice.git/docs/offeredapis/offeredapis.html>`_
* `DMaaP Data Router <https://docs.onap.org/en/latest/submodules/dmaap/datarouter.git/docs/offeredapis.html>`_
* `Policy <https://docs.onap.org/en/latest/submodules/policy/engine.git/docs/platform/offeredapis.html>`_
* `SDC <https://docs.onap.org/en/latest/submodules/sdc.git/docs/offeredapis.html>`_
* `A&AI <https://docs.onap.org/en/latest/submodules/aai/aai-common.git/docs/platform/offeredapis.html>`_