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

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/projects/onap-dmaap-messagerouter-messageservice/en/latest/offeredapis/offeredapis.html>`_
* `DMaaP Data Router <https://docs.onap.org/projects/onap-dmaap-datarouter/en/latest/offeredapis.html>`_
* `DMaaP Buscontroller <https://docs.onap.org/projects/onap-dmaap-dbcapi/en/latest/api.html#offeredapis>`_
* `Policy <https://docs.onap.org/projects/onap-policy-engine/en/latest/platform/offeredapis.html>`_
* `SDC <https://docs.onap.org/projects/onap-sdc/en/latest/offeredapis.html>`_
* `A&AI <https://docs.onap.org/projects/onap-aai-aai-common/en/latest/platform/offeredapis.html>`_