Pamela Dragosh | 5fc2fdb | 2019-05-17 09:42:27 -0400 | [diff] [blame] | 1 | .. This work is licensed under a Creative Commons Attribution 4.0 International License. |
Jim Hahn | d5cc948 | 2019-05-29 15:41:48 -0400 | [diff] [blame] | 2 | .. http://creativecommons.org/licenses/by/4.0 |
Pamela Dragosh | 5fc2fdb | 2019-05-17 09:42:27 -0400 | [diff] [blame] | 3 | |
| 4 | .. _pap-label: |
| 5 | |
| 6 | Policy Administration Point (PAP) Architecture |
liamfallon | 4d1d983 | 2019-05-30 20:53:05 +0000 | [diff] [blame] | 7 | ############################################## |
Jim Hahn | d5cc948 | 2019-05-29 15:41:48 -0400 | [diff] [blame] | 8 | |
liamfallon | 4d1d983 | 2019-05-30 20:53:05 +0000 | [diff] [blame] | 9 | .. contents:: |
| 10 | :depth: 3 |
Jim Hahn | d5cc948 | 2019-05-29 15:41:48 -0400 | [diff] [blame] | 11 | |
Pamela Dragosh | 6eec875 | 2020-05-21 11:06:03 -0400 | [diff] [blame] | 12 | .. toctree:: |
| 13 | InternalPapPdp.rst |
| 14 | |
Ram Krishna Verma | 2145c75 | 2020-04-30 14:11:54 -0400 | [diff] [blame] | 15 | The Policy Administration Point (PAP) keeps track of PDPs, supporting the deployment of PDP groups and the deployment |
| 16 | of policies across those PDP groups. Policies are created using the Policy API, but are deployed via the PAP. |
Jim Hahn | d5cc948 | 2019-05-29 15:41:48 -0400 | [diff] [blame] | 17 | |
Ram Krishna Verma | 2145c75 | 2020-04-30 14:11:54 -0400 | [diff] [blame] | 18 | The PAP is stateless in a RESTful sense, using the database (persistent storage) to track PDPs and the deployment of |
| 19 | policies to those PDPs. In short, policy management on PDPs is the responsibility of PAP; management of policies by |
| 20 | any other manner is not permitted. |
liamfallon | 4d1d983 | 2019-05-30 20:53:05 +0000 | [diff] [blame] | 21 | |
| 22 | Because the PDP is the main unit of scalability in the Policy Framework, the framework is designed to allow PDPs in a |
| 23 | PDP group to arbitrarily appear and disappear and for policy consistency across all PDPs in a PDP group to be easily |
| 24 | maintained. The PAP is responsible for controlling the state across the PDPs in a PDP group. The PAP interacts with the |
Ram Krishna Verma | 2145c75 | 2020-04-30 14:11:54 -0400 | [diff] [blame] | 25 | policy database and transfers policies to PDPs. |
Pamela Dragosh | 5fc2fdb | 2019-05-17 09:42:27 -0400 | [diff] [blame] | 26 | |
Pamela Dragosh | f65c8ff | 2020-04-29 08:23:12 -0400 | [diff] [blame] | 27 | The unit of execution and scaling in the Policy Framework is a *PolicyImpl* entity. A *PolicyImpl* entity runs on a PDP. |
| 28 | As is explained above, a *PolicyImpl* entity is a *PolicyTypeImpl* implementation parameterized with a TOSCA *Policy*. |
| 29 | |
| 30 | .. image:: images/PolicyImplPDPSubGroup.svg |
| 31 | |
| 32 | In order to achieve horizontal scalability, we group the PDPs running instances of a given *PolicyImpl* entity logically |
| 33 | together into a *PDPSubGroup*. The number of PDPs in a *PDPSubGroup* can then be scaled up and down using Kubernetes. In |
| 34 | other words, all PDPs in a subgroup run the same *PolicyImpl*, that is the same policy template implementation (in |
| 35 | XACML, Drools, or APEX) with the same parameters. |
| 36 | |
| 37 | The figure above shows the layout of *PDPGroup* and *PDPSubGroup* entities. The figure shows examples of PDP groups for |
| 38 | Control Loop and Monitoring policies on the right. |
| 39 | |
| 40 | The health of PDPs is monitored by the PAP in order to alert operations teams managing policies. The PAP manages the life |
| 41 | cycle of policies running on PDPs. |
| 42 | |
| 43 | The table below shows the deployment methods in which *PolicyImpl* entities can be deployed to PDP Subgroups. |
| 44 | |
| 45 | ========== =========================================== ============================== ================================== |
| 46 | **Method** **Description** **Advantages** **Disadvantages** |
| 47 | ========== =========================================== ============================== ================================== |
| 48 | Cold The *PolicyImpl* (*PolicyTypeImpl* and No run time configuration Very restrictive, no run time |
| 49 | TOSCA *Policy*) are predeployed on the PDP. required and run time configuration of PDPs is possible. |
| 50 | PDP is fully configured and ready to administration is simple. |
| 51 | execute when started. |
| 52 | |
| 53 | PDPs register with the PAP when they |
| 54 | start, providing the *pdpGroup* they |
| 55 | have been preconfigured with. |
| 56 | |
| 57 | Warm The *PolicyTypeImpl* entity is predeployed The configuration, parameters, Administration and management is |
| 58 | on the PDP. A TOSCA *Policy* may be loaded and PDP group of PDPs may be required. The configuration and |
| 59 | at startup. The PDP may be configured or changed at run time by loading life cycle of the TOSCA policies |
| 60 | reconfigured with a new or updated TOSCA or updating a TOSCA *Policy* can change at run time and must be |
| 61 | *Policy* at run time. into the PDP. administered and managed. |
| 62 | |
| 63 | PDPs register with the PAP when they start, Support TOSCA *Policy* entity |
| 64 | providing the *pdpGroup* they have been life cycle managgement is |
| 65 | predeployed with if any. The PAP may update supported, allowing features |
| 66 | the TOSCA *Policy* on a PDP at any time such as *PolicyImpl* Safe Mode |
| 67 | after registration. and *PolicyImpl* retirement. |
| 68 | |
| 69 | Hot The *PolicyImpl* (*PolicyTypeImpl* and The policy logic, rules, Administration and management is |
| 70 | TOSCA *Policy*) are deployed at run time. configuration, parameters, and more complex. The *PolicyImpl* |
| 71 | The *PolicyImpl* (*PolicyTypeImpl* and PDP group of PDPs may be itself and its configuration and |
| 72 | TOSCA *Policy*) may be loaded at startup. changed at run time by loading life cycle as well as the life |
| 73 | The PDP may be configured or reconfigured or updating a TOSCA *Policy* cycle of the TOSCA policies can |
| 74 | with a new or updated *PolicyTypeImpl* and *PolicyTypeImpl* into the change at run time and must be |
| 75 | and/or TOSCA *Policy* at run time. PDP. administered and managed. |
| 76 | |
| 77 | PDPs register with the PAP when they Lifecycle management of TOSCA |
| 78 | start, providing the *pdpGroup* they have *Policy* entities and |
| 79 | been preconfigured with if any. The PAP may *PolicyTypeImpl* entites is |
| 80 | update the TOSCA *Policy* and supported, allowing features |
| 81 | *PolicyTypeImpl* on a PDP at any time after such as *PolicyImpl* Safe Mode |
| 82 | registration and *PolicyImpl* retirement. |
| 83 | ========== =========================================== ============================== ================================== |
| 84 | |
Pamela Dragosh | 5fc2fdb | 2019-05-17 09:42:27 -0400 | [diff] [blame] | 85 | |
liamfallon | 4d1d983 | 2019-05-30 20:53:05 +0000 | [diff] [blame] | 86 | 1 APIs |
| 87 | ====== |
| 88 | The APIs in the subchapters below are supported by the PAP. |
| 89 | |
| 90 | 1.1 REST API |
| 91 | ------------ |
| 92 | |
| 93 | The purpose of this API is to support CRUD of PDP groups and subgroups and to support the deployment and life cycles of |
| 94 | policies on PDP sub groups and PDPs. This API is provided by the *PolicyAdministration* component (PAP) of the Policy |
| 95 | Framework, see the :ref:`ONAP Policy Framework Architecture <architecture-label>` page. |
| 96 | |
| 97 | PDP groups and subgroups may be prefedined in the system. Predefined groups and subgroups may be modified or deleted |
| 98 | over this API. The policies running on predefined groups or subgroups as well as the instance counts and properties may |
| 99 | also be modified. |
| 100 | |
| 101 | A PDP may be preconfigured with its PDP group, PDP subgroup, and policies. The PDP sends this information to the PAP |
| 102 | when it starts. If the PDP group, subgroup, or any policy is unknown to the PAP, the PAP locks the PDP in state PASSIVE. |
Pamela Dragosh | 5fc2fdb | 2019-05-17 09:42:27 -0400 | [diff] [blame] | 103 | |
Jim Hahn | d5cc948 | 2019-05-29 15:41:48 -0400 | [diff] [blame] | 104 | PAP supports the operations listed in the following table, via its REST API: |
| 105 | |
| 106 | .. csv-table:: |
| 107 | :header: "Operation", "Description" |
| 108 | :widths: 25,70 |
| 109 | |
| 110 | "Health check", "Queries the health of the PAP" |
Ram Krishna Verma | 2145c75 | 2020-04-30 14:11:54 -0400 | [diff] [blame] | 111 | "Consolidated healthcheck", "Queries the health of all policy components" |
Jim Hahn | d5cc948 | 2019-05-29 15:41:48 -0400 | [diff] [blame] | 112 | "Statistics", "Queries various statistics" |
| 113 | "PDP state change", "Changes the state of all PDPs in a PDP Group" |
| 114 | "PDP Group create/update", "Creates/updates PDP Groups" |
| 115 | "PDP Group delete", "Deletes a PDP Group" |
| 116 | "PDP Group query", "Queries all PDP Groups" |
Ram Krishna Verma | 2145c75 | 2020-04-30 14:11:54 -0400 | [diff] [blame] | 117 | "Deployment update", "Deploy/undeploy one or more policies in specified PdpGroups" |
Jim Hahn | d5cc948 | 2019-05-29 15:41:48 -0400 | [diff] [blame] | 118 | "Deploy policy", "Deploys one or more policies to the PDPs" |
| 119 | "Undeploy policy", "Undeploys a policy from the PDPs" |
Ram Krishna Verma | 2145c75 | 2020-04-30 14:11:54 -0400 | [diff] [blame] | 120 | "Policy deployment status", "Queries the status of all deployed policies" |
| 121 | "PDP statistics", "Queries the statistics of PDPs" |
Jim Hahn | d5cc948 | 2019-05-29 15:41:48 -0400 | [diff] [blame] | 122 | |
liamfallon | 4d1d983 | 2019-05-30 20:53:05 +0000 | [diff] [blame] | 123 | 1.2 DMaaP API |
| 124 | ------------- |
Jim Hahn | d5cc948 | 2019-05-29 15:41:48 -0400 | [diff] [blame] | 125 | |
| 126 | PAP interacts with the PDPs via the DMaaP Message Router. The messages listed |
| 127 | in the following table are transmitted via DMaaP: |
| 128 | |
| 129 | .. csv-table:: |
| 130 | :header: "Message", "Direction", "Description" |
| 131 | :widths: 25,10,70 |
| 132 | |
| 133 | "PDP status", "Incoming", "Registers a PDP with PAP; also sent as a periodic heart beat; also sent in response to requests from the PAP" |
| 134 | "PDP update", "Outgoing", "Assigns a PDP to a PDP Group and Subgroup; also deploys or undeploys policies from the PDP" |
| 135 | "PDP state change", "Outgoing", "Changes the state of a PDP or all PDPs within a PDP Group or Subgroup" |
| 136 | |
Saryu Shah | 3c711d1 | 2019-12-04 23:17:41 +0000 | [diff] [blame] | 137 | In addition, PAP generates notifications via the DMaaP Message Router when policies are successfully or unsuccessfully |
| 138 | deployed (or undeployed) from all relevant PDPs. |
| 139 | |
| 140 | Here is a sample notification: |
| 141 | |
| 142 | .. literalinclude:: notification/dmaap-pap-notif.json |
| 143 | :language: json |
| 144 | |
Jim Hahn | d5cc948 | 2019-05-29 15:41:48 -0400 | [diff] [blame] | 145 | |
liamfallon | 4d1d983 | 2019-05-30 20:53:05 +0000 | [diff] [blame] | 146 | 2 PAP REST API Swagger |
| 147 | ====================== |
Jim Hahn | d5cc948 | 2019-05-29 15:41:48 -0400 | [diff] [blame] | 148 | |
liamfallon | 4d1d983 | 2019-05-30 20:53:05 +0000 | [diff] [blame] | 149 | It is worth noting that we use basic authorization for access with user name and password set to *healthcheck* and |
| 150 | *zb!XztG34*, respectively. |
Jim Hahn | d5cc948 | 2019-05-29 15:41:48 -0400 | [diff] [blame] | 151 | |
liamfallon | 4d1d983 | 2019-05-30 20:53:05 +0000 | [diff] [blame] | 152 | For every call, the client is encouraged to insert a uuid-type *requestID* as parameter. It is helpful for tracking each |
| 153 | http transaction and facilitates debugging. More importantly, it complies with Logging requirements v1.2. If the client |
| 154 | does not provide the requestID in a call, one will be randomly generated and attached to the response header, |
| 155 | *x-onap-requestid*. |
Jim Hahn | d5cc948 | 2019-05-29 15:41:48 -0400 | [diff] [blame] | 156 | |
liamfallon | 4d1d983 | 2019-05-30 20:53:05 +0000 | [diff] [blame] | 157 | In accordance with `ONAP API Common Versioning Strategy Guidelines |
| 158 | <https://wiki.onap.org/display/DW/ONAP+API+Common+Versioning+Strategy+%28CVS%29+Guidelines>`_, several custom headers |
| 159 | are added in the response to each call: |
Jim Hahn | d5cc948 | 2019-05-29 15:41:48 -0400 | [diff] [blame] | 160 | |
| 161 | .. csv-table:: |
| 162 | :header: "Header", "Example value", "Description" |
| 163 | :widths: 25,10,70 |
| 164 | |
| 165 | "x-latestversion", "1.0.0", "latest version of the API" |
| 166 | "x-minorversion", "0", "MINOR version of the API" |
| 167 | "x-patchversion", "0", "PATCH version of the API" |
| 168 | "x-onap-requestid", "e1763e61-9eef-4911-b952-1be1edd9812b", "described above; used for logging purposes" |
Pamela Dragosh | 1d101d2 | 2020-07-09 13:46:16 -0400 | [diff] [blame] | 169 | |
| 170 | :download:`Download Health Check PAP API Swagger <swagger/health-check-pap.json>` |
Jim Hahn | d5cc948 | 2019-05-29 15:41:48 -0400 | [diff] [blame] | 171 | |
| 172 | .. swaggerv2doc:: swagger/health-check-pap.json |
| 173 | |
liamfallon | 4d1d983 | 2019-05-30 20:53:05 +0000 | [diff] [blame] | 174 | This operation performs a health check on the PAP. |
| 175 | |
Jim Hahn | 0f079d2 | 2019-08-01 11:05:24 -0400 | [diff] [blame] | 176 | Here is a sample response: |
| 177 | |
| 178 | .. literalinclude:: response/health-check-pap-resp.json |
| 179 | :language: json |
| 180 | |
Pamela Dragosh | 1d101d2 | 2020-07-09 13:46:16 -0400 | [diff] [blame] | 181 | :download:`Download Consolidated Health Check PAP API Swagger <swagger/consolidated-healthcheck-pap.json>` |
| 182 | |
Ram Krishna Verma | 2145c75 | 2020-04-30 14:11:54 -0400 | [diff] [blame] | 183 | .. swaggerv2doc:: swagger/consolidated-healthcheck-pap.json |
| 184 | |
| 185 | This operation performs a health check of all policy components. The response |
| 186 | contains the health check result of each component. The consolidated health check |
| 187 | is reported as healthy only if all the components are healthy, otherwise the |
| 188 | "healthy" flag is marked as false. |
| 189 | |
| 190 | Here is a sample response: |
| 191 | |
| 192 | .. literalinclude:: response/consolidated-healthcheck-pap-resp.json |
| 193 | :language: json |
| 194 | |
Pamela Dragosh | 1d101d2 | 2020-07-09 13:46:16 -0400 | [diff] [blame] | 195 | :download:`Download Statistics PAP API Swagger <swagger/statistics-pap.json>` |
| 196 | |
Jim Hahn | d5cc948 | 2019-05-29 15:41:48 -0400 | [diff] [blame] | 197 | .. swaggerv2doc:: swagger/statistics-pap.json |
| 198 | |
liamfallon | 4d1d983 | 2019-05-30 20:53:05 +0000 | [diff] [blame] | 199 | This operation allows statistics for PDP groups, PDP subgroups, and individual PDPs to be retrieved. |
| 200 | |
| 201 | .. note:: |
| 202 | While this API is supported, most of the statistics are not currently updated; that work has been deferred to a later |
| 203 | release. |
Jim Hahn | d5cc948 | 2019-05-29 15:41:48 -0400 | [diff] [blame] | 204 | |
Jim Hahn | 0f079d2 | 2019-08-01 11:05:24 -0400 | [diff] [blame] | 205 | Here is a sample response: |
| 206 | |
| 207 | .. literalinclude:: response/statistics-pap-resp.json |
| 208 | :language: json |
| 209 | |
Pamela Dragosh | 1d101d2 | 2020-07-09 13:46:16 -0400 | [diff] [blame] | 210 | :download:`Download State Change PAP Swagger <swagger/state-change-pap.json>` |
| 211 | |
Jim Hahn | d5cc948 | 2019-05-29 15:41:48 -0400 | [diff] [blame] | 212 | .. swaggerv2doc:: swagger/state-change-pap.json |
| 213 | |
liamfallon | 4d1d983 | 2019-05-30 20:53:05 +0000 | [diff] [blame] | 214 | The state of PDP groups is managed by this operation. PDP groups can be in states PASSIVE, TEST, SAFE, or ACTIVE. For a full |
| 215 | description of PDP group states, see the :ref:`ONAP Policy Framework Architecture <architecture-label>` page. |
| 216 | |
Pamela Dragosh | 1d101d2 | 2020-07-09 13:46:16 -0400 | [diff] [blame] | 217 | :download:`Download Group Batch PAP API Swagger <swagger/groups-batch-pap.json>` |
| 218 | |
Jim Hahn | 5eeeedd | 2019-12-11 16:25:56 -0500 | [diff] [blame] | 219 | .. swaggerv2doc:: swagger/groups-batch-pap.json |
Jim Hahn | d5cc948 | 2019-05-29 15:41:48 -0400 | [diff] [blame] | 220 | |
liamfallon | 4d1d983 | 2019-05-30 20:53:05 +0000 | [diff] [blame] | 221 | This operation allows the PDP groups and subgroups to be created and updated. Many PDP groups can be created or updated |
| 222 | in a single POST operation by specifying more than one PDP group in the POST operation body. |
a.sreekumar | 8e45504 | 2020-01-27 10:50:02 +0000 | [diff] [blame] | 223 | This can be used to create the PDP group by providing all the details including the supported policy types for each subgroup. |
Jim Hahn | 5eeeedd | 2019-12-11 16:25:56 -0500 | [diff] [blame] | 224 | However, it cannot be used to update policies; that is done using one of |
a.sreekumar | 8e45504 | 2020-01-27 10:50:02 +0000 | [diff] [blame] | 225 | the deployment requests. Consequently, the "policies" property of this |
Jim Hahn | 5eeeedd | 2019-12-11 16:25:56 -0500 | [diff] [blame] | 226 | request will be ignored. |
a.sreekumar | 8e45504 | 2020-01-27 10:50:02 +0000 | [diff] [blame] | 227 | This can also be used to update a PDP Group, but supported policy types cannot be updated during the update operation. |
| 228 | So, "policies" and "supportedPolicyTypes" properties in the request will be ignored if provided during the PDP Group update operation. |
liamfallon | 4d1d983 | 2019-05-30 20:53:05 +0000 | [diff] [blame] | 229 | |
Jim Hahn | f90bf9d | 2020-10-13 14:42:43 -0400 | [diff] [blame] | 230 | The "desiredInstanceCount" specifies the minimum number of PDPs of the given |
| 231 | type that should be registered with PAP. Currently, this is just used for |
| 232 | health check purposes; if the number of PDPs registered with PAP drops below |
| 233 | the given value, then PAP will return an "unhealthy" indicator if a |
| 234 | "Consolidated Health Check" is performed. |
| 235 | |
liamfallon | 4d1d983 | 2019-05-30 20:53:05 +0000 | [diff] [blame] | 236 | .. note:: |
Jim Hahn | 5f80cfc | 2019-12-17 08:43:30 -0500 | [diff] [blame] | 237 | If a subgroup is to be deleted from a PDP Group, then the policies must be removed from |
Jim Hahn | 5eeeedd | 2019-12-11 16:25:56 -0500 | [diff] [blame] | 238 | the subgroup first. |
Jim Hahn | d5cc948 | 2019-05-29 15:41:48 -0400 | [diff] [blame] | 239 | |
a.sreekumar | 8e45504 | 2020-01-27 10:50:02 +0000 | [diff] [blame] | 240 | .. note:: |
| 241 | Policies cannot be added/updated during PDP Group create/update operations. So, if provided, they are ignored. |
| 242 | Supported policy types are defined during PDP Group creation. They cannot be updated once they are created. |
| 243 | So, supportedPolicyTypes are expected during PDP Group create, but ignored if provided during PDP Group update. |
| 244 | |
Jim Hahn | 0f079d2 | 2019-08-01 11:05:24 -0400 | [diff] [blame] | 245 | Here is a sample request: |
| 246 | |
Jim Hahn | 5eeeedd | 2019-12-11 16:25:56 -0500 | [diff] [blame] | 247 | .. literalinclude:: request/groups-batch-pap-req.json |
Jim Hahn | 0f079d2 | 2019-08-01 11:05:24 -0400 | [diff] [blame] | 248 | :language: json |
| 249 | |
Pamela Dragosh | 1d101d2 | 2020-07-09 13:46:16 -0400 | [diff] [blame] | 250 | :download:`Download Group Delete PAP API Swagger <swagger/group-delete-pap.json>` |
| 251 | |
Jim Hahn | d5cc948 | 2019-05-29 15:41:48 -0400 | [diff] [blame] | 252 | .. swaggerv2doc:: swagger/group-delete-pap.json |
| 253 | |
liamfallon | 4d1d983 | 2019-05-30 20:53:05 +0000 | [diff] [blame] | 254 | The API also allows PDP groups to be deleted. DELETE operations are only permitted on PDP groups in PASSIVE state. |
| 255 | |
Pamela Dragosh | 1d101d2 | 2020-07-09 13:46:16 -0400 | [diff] [blame] | 256 | :download:`Download Group Query PAP API Swagger <swagger/group-query-pap.json>` |
| 257 | |
Jim Hahn | d5cc948 | 2019-05-29 15:41:48 -0400 | [diff] [blame] | 258 | .. swaggerv2doc:: swagger/group-query-pap.json |
| 259 | |
liamfallon | 4d1d983 | 2019-05-30 20:53:05 +0000 | [diff] [blame] | 260 | This operation allows the PDP groups and subgroups to be listed as well as the policies that are deployed on each PDP |
| 261 | group and subgroup. |
| 262 | |
Jim Hahn | 0f079d2 | 2019-08-01 11:05:24 -0400 | [diff] [blame] | 263 | Here is a sample response: |
| 264 | |
| 265 | .. literalinclude:: response/group-query-pap-resp.json |
| 266 | :language: json |
| 267 | |
Pamela Dragosh | 1d101d2 | 2020-07-09 13:46:16 -0400 | [diff] [blame] | 268 | :download:`Download Deployments Batch PAP API Swagger <swagger/deployments-batch-pap.json>` |
| 269 | |
Jim Hahn | 5eeeedd | 2019-12-11 16:25:56 -0500 | [diff] [blame] | 270 | .. swaggerv2doc:: swagger/deployments-batch-pap.json |
| 271 | |
| 272 | This operation allows policies to be deployed on specific PDP groups. |
| 273 | Each subgroup includes an "action" property, which is used to indicate |
| 274 | that the policies are being added (POST) to the subgroup, deleted (DELETE) |
| 275 | from the subgroup, or that the subgroup's entire set of policies is being |
| 276 | replaced (PATCH) by a new set of policies. As such, a subgroup may appear |
| 277 | more than once in a single request, one time to delete some policies and |
| 278 | another time to add new policies to the same subgroup. |
| 279 | |
| 280 | Here is a sample request: |
| 281 | |
| 282 | .. literalinclude:: request/deployment-batch-pap-req.json |
| 283 | :language: json |
| 284 | |
a.sreekumar | e756dc9 | 2021-02-19 17:29:40 +0000 | [diff] [blame^] | 285 | Here is a sample response: |
| 286 | |
| 287 | .. literalinclude:: response/deployment-pap-resp.json |
| 288 | :language: json |
| 289 | |
Pamela Dragosh | 1d101d2 | 2020-07-09 13:46:16 -0400 | [diff] [blame] | 290 | :download:`Download Deploy PAP API Swagger <swagger/policy-deploy-pap.json>` |
| 291 | |
Jim Hahn | d5cc948 | 2019-05-29 15:41:48 -0400 | [diff] [blame] | 292 | .. swaggerv2doc:: swagger/policy-deploy-pap.json |
| 293 | |
Jim Hahn | 5eeeedd | 2019-12-11 16:25:56 -0500 | [diff] [blame] | 294 | This operation allows policies to be deployed across all relevant PDP groups. |
| 295 | PAP will deploy the specified policies to all relevant subgroups. Only the |
| 296 | policies supported by a given subgroup will be deployed to that subgroup. |
liamfallon | 4d1d983 | 2019-05-30 20:53:05 +0000 | [diff] [blame] | 297 | |
| 298 | .. note:: |
| 299 | The policy version is optional. If left unspecified, then the latest version of the policy is deployed. On the other |
| 300 | hand, if it is specified, it may be an integer, or it may be a fully qualified version (e.g., "3.0.2"). |
Jim Hahn | 5eeeedd | 2019-12-11 16:25:56 -0500 | [diff] [blame] | 301 | In addition, a subgroup to which a policy is being deployed must have at |
| 302 | least one PDP instance, otherwise the request will be rejected. |
Jim Hahn | d5cc948 | 2019-05-29 15:41:48 -0400 | [diff] [blame] | 303 | |
Jim Hahn | 0f079d2 | 2019-08-01 11:05:24 -0400 | [diff] [blame] | 304 | Here is a sample request: |
| 305 | |
| 306 | .. literalinclude:: request/policy-deploy-pap-req.json |
| 307 | :language: json |
| 308 | |
a.sreekumar | e756dc9 | 2021-02-19 17:29:40 +0000 | [diff] [blame^] | 309 | Here is a sample response: |
| 310 | |
| 311 | .. literalinclude:: response/deployment-pap-resp.json |
| 312 | :language: json |
| 313 | |
Pamela Dragosh | 1d101d2 | 2020-07-09 13:46:16 -0400 | [diff] [blame] | 314 | :download:`Download Undeploy PAP API Swagger <swagger/policy-undeploy-pap.json>` |
| 315 | |
Jim Hahn | d5cc948 | 2019-05-29 15:41:48 -0400 | [diff] [blame] | 316 | .. swaggerv2doc:: swagger/policy-undeploy-pap.json |
| 317 | |
liamfallon | 4d1d983 | 2019-05-30 20:53:05 +0000 | [diff] [blame] | 318 | This operation allows policies to be undeployed from PDP groups. |
Jim Hahn | d5cc948 | 2019-05-29 15:41:48 -0400 | [diff] [blame] | 319 | |
liamfallon | 4d1d983 | 2019-05-30 20:53:05 +0000 | [diff] [blame] | 320 | .. note:: |
| 321 | If the policy version is specified, then it may be an integer, or it may be a fully qualified version (e.g., "3.0.2"). |
| 322 | On the other hand, if left unspecified, then the latest deployed version will be undeployed. |
| 323 | |
| 324 | .. note:: |
| 325 | Due to current limitations, a fully qualified policy version must always be specified. |
Ram Krishna Verma | 2145c75 | 2020-04-30 14:11:54 -0400 | [diff] [blame] | 326 | |
a.sreekumar | e756dc9 | 2021-02-19 17:29:40 +0000 | [diff] [blame^] | 327 | Here is a sample response: |
| 328 | |
| 329 | .. literalinclude:: response/deployment-pap-resp.json |
| 330 | :language: json |
| 331 | |
| 332 | :download:`Download Policy Status PAP API Swagger <swagger/policy-status-pap.json>` |
| 333 | |
| 334 | .. swaggerv2doc:: swagger/policy-status-pap.json |
| 335 | |
| 336 | This operation allows the status of all policies that are deployed or undeployed to be listed together. |
| 337 | The result can be filtered based on pdp group name, policy name & version. |
| 338 | |
| 339 | .. note:: |
| 340 | When a policy is successfully undeployed, it will no longer appear in the policy status response. |
| 341 | |
| 342 | Here is a sample response: |
| 343 | |
| 344 | .. literalinclude:: response/policy-status-pap-resp.json |
| 345 | :language: json |
| 346 | |
Pamela Dragosh | 1d101d2 | 2020-07-09 13:46:16 -0400 | [diff] [blame] | 347 | :download:`Download Deployed Policy PAP API Swagger <swagger/deployed-policy-pap.json>` |
| 348 | |
Ram Krishna Verma | 2145c75 | 2020-04-30 14:11:54 -0400 | [diff] [blame] | 349 | .. swaggerv2doc:: swagger/deployed-policy-pap.json |
| 350 | |
| 351 | This operation allows the deployed policies to be listed together with their respective deployment status. |
| 352 | The result can be filtered based on policy name & version. |
| 353 | |
| 354 | Here is a sample response: |
| 355 | |
| 356 | .. literalinclude:: response/deployed-policy-pap-resp.json |
| 357 | :language: json |
| 358 | |
Pamela Dragosh | 1d101d2 | 2020-07-09 13:46:16 -0400 | [diff] [blame] | 359 | :download:`Download PDP Statistics PAP API Swagger <swagger/pdp-statistics-pap.json>` |
| 360 | |
Ram Krishna Verma | 2145c75 | 2020-04-30 14:11:54 -0400 | [diff] [blame] | 361 | .. swaggerv2doc:: swagger/pdp-statistics-pap.json |
| 362 | |
| 363 | This operation allows the PDP statistics to be retrieved for all registered PDPs. |
| 364 | The result can be filtered based on PDP group, PDP subgroup & PDP instance. |
| 365 | |
| 366 | Here is a sample response: |
| 367 | |
| 368 | .. literalinclude:: response/pdp-statistics-pap-resp.json |
| 369 | :language: json |
| 370 | |
| 371 | |
| 372 | 3 Future Features |
liamfallon | 4d1d983 | 2019-05-30 20:53:05 +0000 | [diff] [blame] | 373 | ================= |
| 374 | |
Ram Krishna Verma | 2145c75 | 2020-04-30 14:11:54 -0400 | [diff] [blame] | 375 | 3.1 Disable policies in PDP |
| 376 | =========================== |
liamfallon | 4d1d983 | 2019-05-30 20:53:05 +0000 | [diff] [blame] | 377 | |
Ram Krishna Verma | 2145c75 | 2020-04-30 14:11:54 -0400 | [diff] [blame] | 378 | This operation will allow disabling individual policies running in PDP engine. It is mainly beneficial |
| 379 | in scenarios where network operators/administrators want to disable a particular policy in PDP engine |
| 380 | for a period of time due to a failure in the system or for scheduled maintenance. |
Pamela Dragosh | 5fc2fdb | 2019-05-17 09:42:27 -0400 | [diff] [blame] | 381 | |
| 382 | End of Document |