.. 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
Policy
SDC
A&AI
