diff options
Diffstat (limited to 'csit/pap')
-rwxr-xr-x | csit/pap/plans/setup.sh | 54 | ||||
-rwxr-xr-x | csit/pap/plans/teardown.sh | 21 | ||||
-rw-r--r-- | csit/pap/plans/testplan.txt | 4 | ||||
-rw-r--r-- | csit/pap/tests/data/apex.policy.decisionmaker.input.tosca.json | 184 | ||||
-rw-r--r-- | csit/pap/tests/data/create.group.request.json | 49 | ||||
-rw-r--r-- | csit/pap/tests/data/deploy.group.request.json | 29 | ||||
-rw-r--r-- | csit/pap/tests/pap-slas.robot | 60 | ||||
-rw-r--r-- | csit/pap/tests/pap-test.robot | 153 |
8 files changed, 0 insertions, 554 deletions
diff --git a/csit/pap/plans/setup.sh b/csit/pap/plans/setup.sh deleted file mode 100755 index 4c77accf..00000000 --- a/csit/pap/plans/setup.sh +++ /dev/null @@ -1,54 +0,0 @@ -#!/bin/bash -# ============LICENSE_START======================================================= -# Copyright (C) 2019-2022 Nordix Foundation. -# Modifications Copyright (C) 2019-2021 AT&T Intellectual Property. -# Modifications Copyright (C) 2022-2023 Nordix Foundation. -# ================================================================================ -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# SPDX-License-Identifier: Apache-2.0 -# ============LICENSE_END========================================================= - -echo "Uninstall docker-py and reinstall docker." -python3 -m pip uninstall -y docker-py -python3 -m pip uninstall -y docker -python3 -m pip install -U docker - -source "${SCRIPTS}"/get-versions.sh - -sudo apt-get -y install libxml2-utils -bash "${SCRIPTS}"/get-models-examples.sh - -echo "${POLICY_PAP_VERSION}" - -cd "${SCRIPTS}" -docker-compose -f "${SCRIPTS}"/docker-compose-all.yml up -d pap apex-pdp grafana - -sleep 10 -unset http_proxy https_proxy - -POLICY_PAP_PORT=30442 -POLICY_API_PORT=30440 - -# wait for the app to start up -"${SCRIPTS}"/wait_for_rest.sh localhost "${POLICY_PAP_PORT}" - -DATA=${WORKSPACE}/models/models-examples/src/main/resources/policies - -NODETEMPLATES=${WORKSPACE}/models/models-examples/src/main/resources/nodetemplates - -ROBOT_VARIABLES="" -ROBOT_VARIABLES="${ROBOT_VARIABLES} -v POLICY_PAP_PORT:${POLICY_PAP_PORT}" -ROBOT_VARIABLES="${ROBOT_VARIABLES} -v POLICY_API_PORT:${POLICY_API_PORT}" -ROBOT_VARIABLES="${ROBOT_VARIABLES} -v DATA:${DATA}" -ROBOT_VARIABLES="${ROBOT_VARIABLES} -v NODETEMPLATES:${NODETEMPLATES}" diff --git a/csit/pap/plans/teardown.sh b/csit/pap/plans/teardown.sh deleted file mode 100755 index 0d4c6ed2..00000000 --- a/csit/pap/plans/teardown.sh +++ /dev/null @@ -1,21 +0,0 @@ -#!/bin/bash -# ============LICENSE_START======================================================= -# Copyright (C) 2019-2022 Nordix Foundation. -# Modifications Copyright (C) 2019-2021 AT&T Intellectual Property. -# ================================================================================ -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# SPDX-License-Identifier: Apache-2.0 -# ============LICENSE_END========================================================= - -docker-compose -f ${SCRIPTS}/docker-compose-all.yml down -v diff --git a/csit/pap/plans/testplan.txt b/csit/pap/plans/testplan.txt deleted file mode 100644 index 4fac1027..00000000 --- a/csit/pap/plans/testplan.txt +++ /dev/null @@ -1,4 +0,0 @@ -# Test suites are relative paths under [policy/docker.git]/csit/[project]/tests. -# Place the suites in run order. -pap-test.robot -pap-slas.robot diff --git a/csit/pap/tests/data/apex.policy.decisionmaker.input.tosca.json b/csit/pap/tests/data/apex.policy.decisionmaker.input.tosca.json deleted file mode 100644 index 5d84c294..00000000 --- a/csit/pap/tests/data/apex.policy.decisionmaker.input.tosca.json +++ /dev/null @@ -1,184 +0,0 @@ -{ - "tosca_definitions_version": "tosca_simple_yaml_1_1_0", - "topology_template": { - "policies": [ - { - "operational.apex.decisionMaker": { - "type": "onap.policies.native.Apex", - "type_version": "1.0.0", - "name": "operational.apex.decisionMaker", - "version": "1.0.0", - "metadata": { - "metadataSetName": "apexMetadata_decisionMaker", - "metadataSetVersion": "1.0.0" - }, - "properties": { - "engineServiceParameters": { - "name": "MyApexEngine", - "version": "0.0.1", - "id": 45, - "instanceCount": 4, - "deploymentPort": 12561, - "engineParameters": { - "executorParameters": { - "JAVASCRIPT": { - "parameterClassName": "org.onap.policy.apex.plugins.executor.javascript.JavascriptExecutorParameters" - } - }, - "contextParameters": { - "parameterClassName": "org.onap.policy.apex.context.parameters.ContextParameters", - "schemaParameters": { - "Avro": { - "parameterClassName": "org.onap.policy.apex.plugins.context.schema.avro.AvroSchemaHelperParameters" - }, - "Java": { - "parameterClassName": "org.onap.policy.apex.context.impl.schema.java.JavaSchemaHelperParameters", - "jsonAdapters": { - "Instant": { - "adaptedClass": "java.time.Instant", - "adaptorClass": "org.onap.policy.controlloop.util.Serialization$GsonInstantAdapter" - } - } - } - } - }, - "taskParameters": [ - { - "key": "ParameterKey1", - "value": "ParameterValue1" - }, - { - "taskId": "AAILookupTask:0.0.1", - "key": "SomeKeyForThisTask", - "value": "Value" - } - ] - } - }, - "eventInputParameters": { - "GuardRequestorConsumer": { - "carrierTechnologyParameters": { - "carrierTechnology": "RESTREQUESTOR", - "parameterClassName": "org.onap.policy.apex.plugins.event.carrier.restrequestor.RestRequestorCarrierTechnologyParameters", - "parameters": { - "url": "http://111.222.333.444:5555/pdp/api/getDecision", - "httpMethod": "POST", - "restRequestTimeout": 2000, - "httpHeader": "Authorization:aaaaaaaaa== ClientAuth:bbbbbbbbb=" - } - }, - "eventProtocolParameters": { - "eventProtocol": "JSON" - }, - "eventName": "GuardResponseEvent", - "eventNameFilter": "GuardResponseEvent", - "requestorMode": true, - "requestorPeer": "GuardRequestorProducer", - "requestorTimeout": 500 - }, - "DCAEConsumer": { - "carrierTechnologyParameters": { - "carrierTechnology": "RESTCLIENT", - "parameterClassName": "org.onap.policy.apex.plugins.event.carrier.restclient.RestClientCarrierTechnologyParameters", - "parameters": { - "url": "http://message-router:3904/events/unauthenticated.DCAE_CL_OUTPUT/APEX/1?timeout=60000" - } - }, - "eventProtocolParameters": { - "eventProtocol": "JSON", - "parameters": { - "nameAlias": "closedLoopControlName", - "versionAlias": "version", - "sourceAlias": "from", - "pojoField": "VirtualControlLoopEvent" - } - }, - "eventName": "ControlLoop-vCPE-48f0c2c3-a172-4192-9ae3-052274181b6e" - }, - "APPCConsumer": { - "carrierTechnologyParameters": { - "carrierTechnology": "RESTCLIENT", - "parameterClassName": "org.onap.policy.apex.plugins.event.carrier.restclient.RestClientCarrierTechnologyParameters", - "parameters": { - "url": "http://message-router:3904/events/APPC-LCM-WRITE/APEX/1?timeout=60000" - } - }, - "eventProtocolParameters": { - "eventProtocol": "JSON", - "parameters": { - "versionAlias": "version", - "pojoField": "APPCLCMResponseEvent" - } - }, - "eventName": "APPCRestartVNFResponseEvent", - "eventNameFilter": "APPCRestartVNFResponseEvent" - } - }, - "eventOutputParameters": { - "logProducer": { - "carrierTechnologyParameters": { - "carrierTechnology": "FILE", - "parameters": { - "fileName": "/tmp/VCPEEventsOut.json" - } - }, - "eventProtocolParameters": { - "eventProtocol": "JSON" - } - }, - "GuardRequestorProducer": { - "carrierTechnologyParameters": { - "carrierTechnology": "RESTREQUESTOR", - "parameterClassName": "org.onap.policy.apex.plugins.event.carrier.restrequestor.RestRequestorCarrierTechnologyParameters" - }, - "eventProtocolParameters": { - "eventProtocol": "JSON" - }, - "eventNameFilter": "GuardRequestEvent", - "requestorMode": true, - "requestorPeer": "GuardRequestorConsumer", - "requestorTimeout": 500 - }, - "APPCProducer": { - "carrierTechnologyParameters": { - "carrierTechnology": "RESTCLIENT", - "parameterClassName": "org.onap.policy.apex.plugins.event.carrier.restclient.RestClientCarrierTechnologyParameters", - "parameters": { - "url": "http://message-router:3904/events/APPC-LCM-READ" - } - }, - "eventProtocolParameters": { - "eventProtocol": "JSON", - "parameters": { - "versionAlias": "version", - "sourceAlias": "from", - "pojoField": "APPCLCMRequestEvent" - } - }, - "eventNameFilter": "APPCRestartVNFRequestEvent" - }, - "PolicyLogProducer": { - "carrierTechnologyParameters": { - "carrierTechnology": "RESTCLIENT", - "parameterClassName": "org.onap.policy.apex.plugins.event.carrier.restclient.RestClientCarrierTechnologyParameters", - "parameters": { - "url": "http://message-router:3904/events/POLICY-CL-MGT" - } - }, - "eventProtocolParameters": { - "eventProtocol": "JSON", - "parameters": { - "versionAlias": "version", - "sourceAlias": "from", - "pojoField": "VirtualControlLoopNotification" - } - }, - "eventNameFilter": "ControlLoopLogEvent" - } - } - } - } - } - ] - } -}
\ No newline at end of file diff --git a/csit/pap/tests/data/create.group.request.json b/csit/pap/tests/data/create.group.request.json deleted file mode 100644 index 1e37583c..00000000 --- a/csit/pap/tests/data/create.group.request.json +++ /dev/null @@ -1,49 +0,0 @@ -{ - "groups": [ - { - "name": "testGroup", - "pdpGroupState": "PASSIVE", - "properties": { - "hello": "world" - }, - "pdpSubgroups": [ - { - "pdpType": "pdpTypeA", - "desiredInstanceCount": 2, - "properties": {}, - "supportedPolicyTypes": [ - { - "name": "onap.policies.monitoring.tcagen2", - "version": "1.0.0" - } - ], - "policies": [] - }, - { - "pdpType": "pdpTypeB", - "desiredInstanceCount": 1, - "properties": {}, - "supportedPolicyTypes": [ - { - "name": "onap.policies.monitoring.tcagen2", - "version": "1.0.0" - } - ], - "policies": [] - }, - { - "pdpType": "pdpTypeC", - "desiredInstanceCount": 1, - "properties": {}, - "supportedPolicyTypes": [ - { - "name": "onap.policies.native.Apex", - "version": "1.0.0" - } - ], - "policies": [] - } - ] - } - ] -} diff --git a/csit/pap/tests/data/deploy.group.request.json b/csit/pap/tests/data/deploy.group.request.json deleted file mode 100644 index cfd86d1e..00000000 --- a/csit/pap/tests/data/deploy.group.request.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "groups": [ - { - "name": "testGroup", - "deploymentSubgroups": [ - { - "pdpType": "pdpTypeA", - "action": "POST", - "policies": [ - { - "name": "onap.restart.tca", - "version": "1.0.0" - } - ] - }, - { - "pdpType": "pdpTypeC", - "action": "POST", - "policies": [ - { - "name": "operational.apex.decisionMaker", - "version": "1.0.0" - } - ] - } - ] - } - ] -} diff --git a/csit/pap/tests/pap-slas.robot b/csit/pap/tests/pap-slas.robot deleted file mode 100644 index 045530ae..00000000 --- a/csit/pap/tests/pap-slas.robot +++ /dev/null @@ -1,60 +0,0 @@ -*** Settings *** -Library Collections -Library RequestsLibrary -Library OperatingSystem -Library json -Resource ${CURDIR}/../../common-library.robot - -*** Keywords *** -ValidateResponseTimeForPap - [Arguments] ${uri} ${method} - [Documentation] Check if uri response is under the 500ms required time for pap metrics - ValidateResponseTime pap-metrics ${uri} ${method} 500 - -*** Test Cases *** -WaitForPrometheusServer - [Documentation] Sleep time to wait for Prometheus server to gather all metrics - Sleep 1 minute - -ValidateResponseTimeForHealthcheck - [Documentation] Validate component healthcheck response time - ValidateResponseTimeForPap /healthcheck GET - -ValidateResponseTimeForSystemHealthcheck - [Documentation] Validate if system healthcheck response time is under 1000ms - ValidateResponseTime pap-metrics /components/healthcheck GET 10000 - -ValidateResponseTimeForStatistics - [Documentation] Validate statistics response time - ValidateResponseTimeForPap /statistics GET - -# TODO: includes notification, so always over 500ms -# ValidateResponseTimeCreateGroup -# [Documentation] Validate create group response time -# ValidateResponseTimeForPap /pdps/groups/batch POST - -ValidateResponseTimeQueryPolicyAudit - [Documentation] Validate query audits response time - ValidateResponseTimeForPap /policies/audit GET - -ValidateResponseTimeUpdateGroup - [Documentation] Validate pdps/group response time - ValidateResponseTimeForPap /pdps/groups/{name} PUT - -ValidatePolicyDeploymentTime - [Documentation] Check if deployment of policy is under 2000ms - ${resp}= QueryPrometheus pap_policy_deployments_seconds_sum{operation="deploy",status="SUCCESS"}/pap_policy_deployments_seconds_count{operation="deploy",status="SUCCESS"} - ${rawNumber}= Evaluate ${resp['data']['result'][0]['value'][1]} - ${actualTime}= Set Variable ${rawNumber * ${1000}} - Should Be True ${actualTime} <= ${2000} - -ValidateResponseTimeDeletePolicy - [Documentation] Check if undeployment of policy is under 2000ms - ${resp}= QueryPrometheus pap_policy_deployments_seconds_sum{operation="undeploy",status="SUCCESS"}/pap_policy_deployments_seconds_count{operation="undeploy",status="SUCCESS"} - ${rawNumber}= Evaluate ${resp['data']['result'][0]['value'][1]} - ${actualTime}= Set Variable ${rawNumber * ${1000}} - Should Be True ${actualTime} <= ${2000} - -ValidateResponseTimeDeleteGroup - [Documentation] Validate delete group response time - ValidateResponseTimeForPap /pdps/groups/{name} DELETE diff --git a/csit/pap/tests/pap-test.robot b/csit/pap/tests/pap-test.robot deleted file mode 100644 index a4f0853d..00000000 --- a/csit/pap/tests/pap-test.robot +++ /dev/null @@ -1,153 +0,0 @@ -*** Settings *** -Library Collections -Library RequestsLibrary -Library OperatingSystem -Library json -Resource ${CURDIR}/../../common-library.robot - -*** Keywords *** -GetReq - [Arguments] ${url} - ${auth}= PolicyAdminAuth - ${resp}= PerformGetRequest ${POLICY_PAP_PORT} ${url} 200 null ${auth} - [return] ${resp} - -ValidateResponseTimeForPap - [Arguments] ${uri} ${method} - [Documentation] Check if uri response is under the required time for pap metrics - ValidateResponseTime pap-metrics ${uri} ${method} 500 - -ValidateDeploymentTime - [Documentation] Check if deployment of policy is under 2000ms - ${resp}= QueryPrometheus pap_policy_deployments_seconds_sum{operation="deploy",status="SUCCESS"}/pap_policy_deployments_seconds_count{operation="deploy",status="SUCCESS"} - ${rawNumber}= Evaluate ${resp['data']['result'][0]['value'][1]} - ${actualTime}= Set Variable ${rawNumber * ${1000}} - Should Be True ${actualTime} <= ${2000} - -*** Test Cases *** -LoadPolicy - [Documentation] Create a policy named 'onap.restart.tca' and version '1.0.0' using specific api - ${postjson}= Get file ${DATA}/vCPE.policy.monitoring.input.tosca.json - CreatePolicy /policy/api/v1/policytypes/onap.policies.monitoring.tcagen2/versions/1.0.0/policies 200 ${postjson} onap.restart.tca 1.0.0 - -LoadPolicyWithMetadataSet - [Documentation] Create a policy named 'operational.apex.decisionMaker' and version '1.0.0' using specific api - ${postjson}= Get file ${CURDIR}/data/apex.policy.decisionmaker.input.tosca.json - CreatePolicy /policy/api/v1/policytypes/onap.policies.native.Apex/versions/1.0.0/policies 200 ${postjson} operational.apex.decisionMaker 1.0.0 - -LoadNodeTemplates - [Documentation] Create node templates in database using specific api - ${postjson}= Get file ${NODETEMPLATES}/nodetemplates.metadatasets.input.tosca.json - CreateNodeTemplate /policy/api/v1/nodetemplates 200 ${postjson} 3 - -Healthcheck - [Documentation] Verify policy pap health check - ${resp}= GetReq /policy/pap/v1/healthcheck - Should Be Equal As Strings ${resp.json()['code']} 200 - -Consolidated Healthcheck - [Documentation] Verify policy consolidated health check - ${resp}= GetReq /policy/pap/v1/components/healthcheck - Should Be Equal As Strings ${resp.json()['healthy']} True - -Metrics - [Documentation] Verify policy pap is exporting prometheus metrics - ${auth}= PolicyAdminAuth - ${resp}= GetMetrics ${POLICY_PAP_PORT} ${auth} /policy/pap/v1/ - Should Contain ${resp.text} http_server_requests_seconds_count{exception="None",method="GET",outcome="SUCCESS",status="200",uri="/healthcheck",} 1.0 - Should Contain ${resp.text} http_server_requests_seconds_count{exception="None",method="GET",outcome="SUCCESS",status="200",uri="/components/healthcheck",} 1.0 - Should Contain ${resp.text} spring_data_repository_invocations_seconds_count{exception="None",method="save",repository="PdpGroupRepository",state="SUCCESS",} 1.0 - Should Contain ${resp.text} spring_data_repository_invocations_seconds_count{exception="None",method="findByKeyName",repository="PdpGroupRepository",state="SUCCESS",} 1.0 - Should Contain ${resp.text} spring_data_repository_invocations_seconds_count{exception="None",method="findAll",repository="PolicyStatusRepository",state="SUCCESS",} 1.0 - -Statistics - [Documentation] Verify policy pap statistics - ${resp}= GetReq /policy/pap/v1/statistics - Should Be Equal As Strings ${resp.json()['code']} 200 - -AddPdpGroup - [Documentation] Add a new PdpGroup named 'testGroup' in the policy database - ${postjson}= Get file ${CURDIR}/data/create.group.request.json - ${auth}= PolicyAdminAuth - PerformPostRequest ${POLICY_PAP_PORT} /policy/pap/v1/pdps/groups/batch 200 ${postjson} null ${auth} - -QueryPdpGroupsBeforeActivation - [Documentation] Verify PdpGroups before activation - QueryPdpGroups 2 defaultGroup ACTIVE 0 testGroup PASSIVE 0 - -ActivatePdpGroup - [Documentation] Change the state of PdpGroup named 'testGroup' to ACTIVE - ${auth}= PolicyAdminAuth - PerformPutRequest ${POLICY_PAP_PORT} /policy/pap/v1/pdps/groups/testGroup 200 state=ACTIVE ${auth} - -QueryPdpGroupsAfterActivation - [Documentation] Verify PdpGroups after activation - QueryPdpGroups 2 defaultGroup ACTIVE 0 testGroup ACTIVE 0 - -DeployPdpGroups - [Documentation] Deploy policies in PdpGroups - ${postjson}= Get file ${CURDIR}/data/deploy.group.request.json - ${auth}= PolicyAdminAuth - PerformPostRequest ${POLICY_PAP_PORT} /policy/pap/v1/pdps/deployments/batch 202 ${postjson} null ${auth} - -QueryPdpGroupsAfterDeploy - [Documentation] Verify PdpGroups after undeploy - QueryPdpGroups 2 defaultGroup ACTIVE 0 testGroup ACTIVE 1 - -QueryPolicyAuditAfterDeploy - [Documentation] Verify policy audit record after deploy - QueryPolicyAudit /policy/pap/v1/policies/audit 200 testGroup pdpTypeA onap.restart.tca DEPLOYMENT - -QueryPolicyAuditWithMetadataSetAfterDeploy - [Documentation] Verify policy audit record after deploy - QueryPolicyAudit /policy/pap/v1/policies/audit 200 testGroup pdpTypeC operational.apex.decisionMaker DEPLOYMENT - -UndeployPolicy - [Documentation] Undeploy a policy named 'onap.restart.tca' from PdpGroups - ${auth}= PolicyAdminAuth - PerformDeleteRequest ${POLICY_PAP_PORT} /policy/pap/v1/pdps/policies/onap.restart.tca 202 ${auth} - -UndeployPolicyWithMetadataSet - [Documentation] Undeploy a policy named 'operational.apex.decisionMaker' from PdpGroups - ${auth}= PolicyAdminAuth - PerformDeleteRequest ${POLICY_PAP_PORT} /policy/pap/v1/pdps/policies/operational.apex.decisionMaker 202 ${auth} - -QueryPdpGroupsAfterUndeploy - [Documentation] Verify PdpGroups after undeploy - QueryPdpGroups 2 defaultGroup ACTIVE 0 testGroup ACTIVE 0 - -QueryPolicyAuditAfterUnDeploy - [Documentation] Verify policy audit record after undeploy - Sleep 20 seconds - QueryPolicyAudit /policy/pap/v1/policies/audit 200 testGroup pdpTypeA onap.restart.tca UNDEPLOYMENT - -QueryPolicyAuditWithMetadataSetAfterUnDeploy - [Documentation] Verify policy audit record after undeploy - QueryPolicyAudit /policy/pap/v1/policies/audit 200 testGroup pdpTypeC operational.apex.decisionMaker UNDEPLOYMENT - -DeactivatePdpGroup - [Documentation] Change the state of PdpGroup named 'testGroup' to PASSIVE - ${auth}= PolicyAdminAuth - PerformPutRequest ${POLICY_PAP_PORT} /policy/pap/v1/pdps/groups/testGroup 200 state=PASSIVE ${auth} - -DeletePdpGroups - [Documentation] Delete the PdpGroup named 'testGroup' from policy database - ${auth}= PolicyAdminAuth - PerformDeleteRequest ${POLICY_PAP_PORT} /policy/pap/v1/pdps/groups/testGroup 200 ${auth} - -QueryPdpGroupsAfterDelete - [Documentation] Verify PdpGroups after delete - QueryPdpGroups 1 defaultGroup ACTIVE 0 null null null - -# ValidateSlaForPap -# [Documentation] Run checks against Prometheus server to check response time -# Sleep 30s -# ValidateDeploymentTime -# ValidateResponseTime pap-metrics /components/healthcheck GET 10000 -# ValidateResponseTimeForPap /healthcheck GET -# ValidateResponseTimeForPap /statistics GET -# ValidateResponseTimeForPap /policies/audit GET -# ValidateResponseTimeForPap /pdps/groups/{name} PUT -# ValidateResponseTimeForPap /pdps/policies/{name} DELETE -# ValidateResponseTimeForPap /pdps/groups/{name} DELETE -# ValidateResponseTimeForPap /pdps/groups/batch POST |