Remediations API¶
The Remediations API allows you to manage guidance and remediation information that is displayed when policies or rules fail.
Endpoints¶
List Remediations¶
Retrieve a list of remediations, optionally filtered by labels.
GET /api/remediations
Query Parameters:
Parameter | Description |
---|---|
label |
Filter remediations by label in format "key:value" (e.g., "platform:kubernetes") |
curl -X GET "https://<your-instance>.aegis.pegasys.cloud/api/remediations?label=platform:kubernetes" \
-H "Authorization: Bearer <your_token>"
[
{
"name": "service-account-name",
"description": "validates account name",
"labels": {
"platform": "kubernetes",
"resource": "deployment"
},
"remediation": "The serviceAccountName should not be empty or default as per pegasys policy. Contact k8s@pegasys.ai to create custom service account before proceeding to app deployment."
},
{
"name": "spec-replicas",
"description": "validates spec replicas",
"labels": {
"platform": "kubernetes",
"resource": "deployment"
},
"remediation": "Refer to http://doc.pegasys.ai/kubernetes/deployment/spec-replicas for more information"
}
]
Get Remediation¶
Retrieve a specific remediation by name.
GET /api/remediations/{remediation_name}
Path Parameters:
Parameter | Description |
---|---|
remediation_name |
The name of the remediation to retrieve |
Query Parameters:
Parameter | Description |
---|---|
label |
Filter remediations by label in format "key:value" (e.g., "platform:kubernetes") |
curl -X GET "https://<your-instance>.aegis.pegasys.cloud/api/remediations/service-account-name" \
-H "Authorization: Bearer <your_token>"
{
"remediations": [
{
"name": "service-account-name",
"description": "validates account name",
"labels": {
"platform": "kubernetes",
"resource": "deployment"
},
"remediation": "The serviceAccountName should not be empty or default as per pegasys policy. Contact k8s@pegasys.ai to create custom service account before proceeding to app deployment."
}
]
}
Apply Remediations¶
Create or update multiple remediation entries.
POST /api/remediations
{
"remediations": [
{
"name": "service-account-name",
"description": "validates account name",
"labels": {
"platform": "kubernetes",
"resource": "deployment"
},
"remediation": "The serviceAccountName should not be empty or default as per pegasys policy. Contact k8s@pegasys.ai to create custom service account before proceeding to app deployment."
},
{
"name": "spec-replicas",
"description": "validates spec replicas",
"labels": {
"platform": "kubernetes",
"resource": "deployment"
},
"remediation": "Refer to http://doc.pegasys.ai/kubernetes/deployment/spec-replicas for more information"
}
]
}
Fields:
Field | Description |
---|---|
name |
Unique identifier for the remediation |
description |
Brief description of what the remediation validates |
labels |
Key-value pairs used for filtering and matching |
remediation |
The remediation text to display when a rule fails |
curl -X POST "https://<your-instance>.aegis.pegasys.cloud/api/remediations" \
-H "Authorization: Bearer <your_token>" \
-H "Content-Type: application/json" \
-d @- <<EOF
{
"remediations": [
{
"name": "service-account-name",
"description": "validates account name",
"labels": {
"platform": "kubernetes",
"resource": "deployment"
},
"remediation": "The serviceAccountName should not be empty or default as per pegasys policy. Contact k8s@pegasys.ai to create custom service account before proceeding to app deployment."
},
{
"name": "spec-replicas",
"description": "validates spec replicas",
"labels": {
"platform": "kubernetes",
"resource": "deployment"
},
"remediation": "Refer to http://doc.pegasys.ai/kubernetes/deployment/spec-replicas for more information"
}
]
}
EOF
{
"created": 2,
"updated": 0
}
Delete Remediation¶
Delete a specific remediation.
DELETE /api/remediations/{remediation_name}
Path Parameters:
Parameter | Description |
---|---|
remediation_name |
The name of the remediation to delete |
curl -X DELETE "https://<your-instance>.aegis.pegasys.cloud/api/remediations/demo" \
-H "Authorization: Bearer <your_token>"
{
"message": "Remediation demo deleted successfully"
}