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


Policy Offered APIs
===================

The Policy Framework supports the public APIs listed in the links below:

-    :ref:`Policy Life Cycle API <api-label>` 
-    :ref:`Policy Administration Point (PAP) <pap-label>`.  
-    :ref:`Decision API <decision-api-label>`.
-    :ref:`Legacy APIs <legacyapis-label>`  (To be DEPRECATED)

.. warning:: The :ref:`Legacy APIs  <legacyapis-label>` are scheduled to be deprecated after the Frankfurt release!

Postman Environment for API Testing
-----------------------------------

The following environment file from postman can be used for testing API's. All you need to do is fill in the IP and Port information for the installation that you have created.

:download:`link <PolicyAPI.postman_environment.json>`

Postman Collection for API Testing
----------------------------------

The following collection can be used in Postman to assist in testing the Policy APIs.

:download:`link <PolicyAPI.postman_collection.json>`
