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


PNF Registration Handler (PRH)
==============================

.. Add or remove sections below as appropriate for the platform component.

**PNF Registration Handler** is a micro-service in DCAE. It is used during Physical Network Function (PNF) Plug-n-Play
procedure to process the PNF Registration event.


PRH overview and functions
--------------------------

.. toctree::
   :maxdepth: 1

   ./architecture
   ./configuration
   ./delivery
   ./installation
   ./authorization

API reference
^^^^^^^^^^^^^

Refer to :doc:`PRH offered APIs<../../apis/PRH>` for detailed PRH api information.
