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


Offered APIs
============

.. contents:: 
    :depth: 2

The Policy subsystem of ONAP maintains, distributes, and operates on the set of rules that underlie ONAP’s control, orchestration, and management functions. Policy provides a centralized environment for the creation and management of easily-updatable conditional rules. It enables users to validate policies and rules, identify and resolve overlaps and conflicts, and derive additional policies where needed.  The following operations are supported by the policy API:

* Create policies on the PAP 
* Update policies on the PAP
* Delete policies on the PAP or PDP
* Push policies from the PAP to the PDP
* List policies on the PDP
* Get config data of policies on the PDP
* Create Dictionary Items
* Update Dictionary Items
* Retrieve Dictionary Items
* Import Micro Services Models
* Retrieve Metrics for policy counts from PDP and PAP


POLICY Engine Services
^^^^^^^^^^^^^^^^^^^^^^

.. image:: https://wiki.onap.org/download/attachments/1015898/PolicyEngineApiList.png?api=v2


POLICY API Details
^^^^^^^^^^^^^^^^^^

.. SStodo Check with Pam about if using onap wiki urls are okay.  

.. swaggerv2doc:: https://wiki.onap.org/download/attachments/1015898/api-docs-09192017.json?api=v2


Additional Information
^^^^^^^^^^^^^^^^^^^^^^

Additional information, including examples, can be found at `PolicyApi link`_.

.. _PolicyApi link: https://wiki.onap.org/display/DW/Policy+API





End of document

