Ana içeriğe geç

Delete Policy

Endpoint​

DELETE /apiops/projects/{projectName}/apiProxies/{apiProxyName}/policies/{policyName}/

Authentication​

Requires a Personal API Access Token.

Authorization: Bearer YOUR_TOKEN

Request​

Headers​

HeaderValueRequired
AuthorizationBearer {token}Yes
Content-Typeapplication/jsonYes

Path Parameters​

ParameterTypeRequiredDescription
projectNamestringYesProject name
apiProxyNamestringYesAPI Proxy name
policyNamestringYesPolicy name (must exist)

Request Body​

Full JSON Body Example​

{
"operationMetadata": {
"targetScope": "ALL",
"targetPipeline": "REQUEST",
"deploy": true,
"deployTargetEnvironmentNameList": ["production"]
}
}

Request Body Fields​

operationMetadata​
FieldTypeRequiredDefaultDescription
targetScopestringYes-Policy scope: ALL or ENDPOINT
targetEndpointstringNo*-Endpoint path (required if targetScope=ENDPOINT)
targetEndpointHTTPMethodstringNo*-HTTP method (required if targetScope=ENDPOINT)
targetPipelinestringYes-Pipeline: REQUEST, RESPONSE, or ERROR
deploybooleanNotrueWhether to deploy after deleting policy
deployTargetEnvironmentNameListarrayNo[]List of environment names to deploy to

Note: The order field is not used for delete operations.

EnumPolicyTargetScope​

  • ALL - Delete policy from all endpoints
  • ENDPOINT - Delete policy only from specified endpoint

EnumPolicyTargetPipeline​

  • REQUEST - Delete from request pipeline
  • RESPONSE - Delete from response pipeline
  • ERROR - Delete from error pipeline

EnumHttpRequestMethod​

  • GET, POST, PUT, DELETE, PATCH, OPTIONS, HEAD, TRACE, ALL

Note: When targetScope is ENDPOINT, both targetEndpoint and targetEndpointHTTPMethod are required.

Response​

Success Response (200 OK)​

{
"status": "SUCCESS"
}

If deploy: true is set in the request, the response includes deployment result:

{
"status": "SUCCESS",
"deploymentResult": {
"success": true,
"responseTime": 1500,
"detailList": [
{
"envName": "production",
"podName": "pod-123",
"podIp": "10.0.0.1",
"success": true,
"responseTime": 1500
}
]
}
}

Response Fields​

FieldTypeDescription
statusstringResponse status: SUCCESS or FAILURE
deploymentResultobjectDeployment result (if deploy=true). See Deployment Result Object

Deployment Result Object (deploymentResult)​

FieldTypeDescription
successbooleanOverall deployment success status
responseTimeintegerTotal deployment response time in milliseconds
detailListarrayList of deployment details per pod/environment

Deployment Detail Object (detailList item)​

FieldTypeDescription
envNamestringEnvironment name
podNamestringPod name where deployment occurred
podIpstringPod IP address
successbooleanDeployment success status for this pod
responseTimeintegerDeployment response time for this pod in milliseconds

EnumStatus​

  • SUCCESS - Operation successful
  • FAILURE - Operation failed

Error Response (400 Bad Request)​

{
"status": "FAILURE",
"resultMessage": "A policy with name (my-policy) does not exist in API Proxy!"
}

Common Causes​

  • Policy name does not exist in the specified pipeline and scope
  • Policy not found in the top-level policy list or nested Policy Groups
  • Invalid targetScope (ENDPOINT without targetEndpoint)
  • Invalid targetEndpoint (endpoint not found in API Proxy)

Error Response (401 Unauthorized)​

{
"status": "FAILURE",
"resultMessage": "Token is not valid!"
}

cURL Example​

Example 1: Delete Policy from All Endpoints​

curl -X DELETE \
"https://demo.apinizer.com/apiops/projects/MyProject/apiProxies/MyAPI/policies/throttling-policy/" \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"operationMetadata": {
"targetScope": "ALL",
"targetPipeline": "REQUEST",
"deploy": true,
"deployTargetEnvironmentNameList": ["production"]
}
}'

Example 2: Delete Policy from Specific Endpoint​

curl -X DELETE \
"https://demo.apinizer.com/apiops/projects/MyProject/apiProxies/MyAPI/policies/endpoint-throttling/" \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"operationMetadata": {
"targetScope": "ENDPOINT",
"targetEndpoint": "/api/users",
"targetEndpointHTTPMethod": "GET",
"targetPipeline": "REQUEST",
"deploy": false
}
}'

Example 3: Delete Policy Without Deployment​

curl -X DELETE \
"https://demo.apinizer.com/apiops/projects/MyProject/apiProxies/MyAPI/policies/test-policy/" \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"operationMetadata": {
"targetScope": "ALL",
"targetPipeline": "REQUEST",
"deploy": false
}
}'

Example 4: Delete Policy from Response Pipeline​

curl -X DELETE \
"https://demo.apinizer.com/apiops/projects/MyProject/apiProxies/MyAPI/policies/response-logging/" \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"operationMetadata": {
"targetScope": "ALL",
"targetPipeline": "RESPONSE",
"deploy": true,
"deployTargetEnvironmentNameList": ["production"]
}
}'

Permissions​

  • User must have API_MANAGEMENT + MANAGE permission in the project
  • If deploy: true is set in the request, user must also have API_MANAGEMENT + DEPLOY_UNDEPLOY permission

Notes and Warnings​

  • Policy Name: Policy name is case-insensitive. The policy is found by case-insensitive name matching.
  • Nested Policies: Policies inside Policy Groups are also searched. If the target policy is nested within a Policy Group, it will be found and deleted.
  • Scope: If policy exists in multiple scopes (ALL and ENDPOINT), you must delete from each scope separately.
  • Pipeline: If policy exists in multiple pipelines (REQUEST, RESPONSE, ERROR), you must delete from each pipeline separately.
  • Deployment: If deploy: true, ensure environments exist and user has deployment permissions.
  • Multiple Instances: If a policy with the same name exists in multiple positions (e.g., order 1 and order 3), all instances are deleted.
  • Not Found Error: If the specified policy does not exist in the given pipeline and scope, the API returns a 400 Bad Request error.
  • Irreversible: Policy deletion is permanent. Ensure you have a backup if needed.