Get Remediation Plan
curl --request GET \
--url http://{host}:{port}/{basePath}/remediations/{name} \
--header 'Authorization: <api-key>'import requests
url = "http://{host}:{port}/{basePath}/remediations/{name}"
headers = {"Authorization": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: '<api-key>'}};
fetch('http://{host}:{port}/{basePath}/remediations/{name}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_PORT => "62437",
CURLOPT_URL => "http://{host}:{port}/{basePath}/remediations/{name}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "http://{host}:{port}/{basePath}/remediations/{name}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("http://{host}:{port}/{basePath}/remediations/{name}")
.header("Authorization", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("http://{host}:{port}/{basePath}/remediations/{name}")
http = Net::HTTP.new(url.host, url.port)
request = Net::HTTP::Get.new(url)
request["Authorization"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"apiVersion": "v1",
"kind": "RemediationPlan",
"resourceMeta": {
"name": "remediation-inc-20260319-002-1",
"namespace": "production",
"creationTimestamp": "2026-03-19T15:09:00Z"
},
"spec": {
"name": "remediation-inc-20260319-002-1",
"namespace": "production",
"issueRef": "INC-20260319-002",
"attempt": 1,
"strategy": "Agentic mode: no matching runbook found",
"state": "Completed",
"startedAt": "2026-03-19T15:10:00Z",
"completedAt": "2026-03-19T15:16:00Z",
"result": "Issue resolved after 4 agentic steps",
"agenticMode": true,
"agenticStepCount": 4,
"actions": [],
"creationTimestamp": "2026-03-19T15:09:00Z",
"safetyConstraints": [
"Do not scale below current replica count",
"Verify health for 90 seconds after each action"
],
"evidence": [
{
"type": "action_success",
"data": "ScaleDeployment executed: replicas 3 -> 5",
"timestamp": "2026-03-19T15:11:00Z"
},
{
"type": "health_check",
"data": "All 5/5 pods ready after 45 seconds",
"timestamp": "2026-03-19T15:12:30Z"
}
],
"rollbackPerformed": false,
"rollbackResult": "",
"agenticHistory": [
{
"stepNumber": 1,
"aiMessage": "The deployment has 3 replicas but CPU usage is at 95%. The error rate spike correlates with high CPU. I'll scale up to reduce per-pod load.",
"action": {"type": "ScaleDeployment", "params": {"replicas": "5"}},
"observation": "ScaleDeployment executed successfully. New pods are starting.",
"timestamp": "2026-03-19T15:11:00Z"
},
{
"stepNumber": 2,
"aiMessage": "Pods are starting. Let me observe the metrics to verify the scale-up is helping.",
"action": null,
"observation": "5/5 pods ready. CPU usage dropped to 62%. Error rate decreasing.",
"timestamp": "2026-03-19T15:12:30Z"
},
{
"stepNumber": 3,
"aiMessage": "CPU is now at safe levels and error rate is dropping. Let me also adjust the HPA to prevent this from happening again.",
"action": {"type": "AdjustHPA", "params": {"maxReplicas": "8", "targetCPU": "70"}},
"observation": "HPA updated. maxReplicas=8, targetCPU=70%.",
"timestamp": "2026-03-19T15:14:00Z"
},
{
"stepNumber": 4,
"aiMessage": "The deployment is stable with healthy CPU usage and zero errors. The HPA will handle future load spikes. Issue resolved.",
"action": null,
"observation": "Health verified: all pods ready, error rate 0%, CPU 58%.",
"timestamp": "2026-03-19T15:16:00Z"
}
]
}
}
Remediations
Get Remediation Plan
Returns complete remediation plan details including execution evidence, rollback info, safety constraints, and agentic conversation history
GET
/
remediations
/
{name}
Get Remediation Plan
curl --request GET \
--url http://{host}:{port}/{basePath}/remediations/{name} \
--header 'Authorization: <api-key>'import requests
url = "http://{host}:{port}/{basePath}/remediations/{name}"
headers = {"Authorization": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: '<api-key>'}};
fetch('http://{host}:{port}/{basePath}/remediations/{name}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_PORT => "62437",
CURLOPT_URL => "http://{host}:{port}/{basePath}/remediations/{name}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "http://{host}:{port}/{basePath}/remediations/{name}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("http://{host}:{port}/{basePath}/remediations/{name}")
.header("Authorization", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("http://{host}:{port}/{basePath}/remediations/{name}")
http = Net::HTTP.new(url.host, url.port)
request = Net::HTTP::Get.new(url)
request["Authorization"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"apiVersion": "v1",
"kind": "RemediationPlan",
"resourceMeta": {
"name": "remediation-inc-20260319-002-1",
"namespace": "production",
"creationTimestamp": "2026-03-19T15:09:00Z"
},
"spec": {
"name": "remediation-inc-20260319-002-1",
"namespace": "production",
"issueRef": "INC-20260319-002",
"attempt": 1,
"strategy": "Agentic mode: no matching runbook found",
"state": "Completed",
"startedAt": "2026-03-19T15:10:00Z",
"completedAt": "2026-03-19T15:16:00Z",
"result": "Issue resolved after 4 agentic steps",
"agenticMode": true,
"agenticStepCount": 4,
"actions": [],
"creationTimestamp": "2026-03-19T15:09:00Z",
"safetyConstraints": [
"Do not scale below current replica count",
"Verify health for 90 seconds after each action"
],
"evidence": [
{
"type": "action_success",
"data": "ScaleDeployment executed: replicas 3 -> 5",
"timestamp": "2026-03-19T15:11:00Z"
},
{
"type": "health_check",
"data": "All 5/5 pods ready after 45 seconds",
"timestamp": "2026-03-19T15:12:30Z"
}
],
"rollbackPerformed": false,
"rollbackResult": "",
"agenticHistory": [
{
"stepNumber": 1,
"aiMessage": "The deployment has 3 replicas but CPU usage is at 95%. The error rate spike correlates with high CPU. I'll scale up to reduce per-pod load.",
"action": {"type": "ScaleDeployment", "params": {"replicas": "5"}},
"observation": "ScaleDeployment executed successfully. New pods are starting.",
"timestamp": "2026-03-19T15:11:00Z"
},
{
"stepNumber": 2,
"aiMessage": "Pods are starting. Let me observe the metrics to verify the scale-up is helping.",
"action": null,
"observation": "5/5 pods ready. CPU usage dropped to 62%. Error rate decreasing.",
"timestamp": "2026-03-19T15:12:30Z"
},
{
"stepNumber": 3,
"aiMessage": "CPU is now at safe levels and error rate is dropping. Let me also adjust the HPA to prevent this from happening again.",
"action": {"type": "AdjustHPA", "params": {"maxReplicas": "8", "targetCPU": "70"}},
"observation": "HPA updated. maxReplicas=8, targetCPU=70%.",
"timestamp": "2026-03-19T15:14:00Z"
},
{
"stepNumber": 4,
"aiMessage": "The deployment is stable with healthy CPU usage and zero errors. The HPA will handle future load spikes. Issue resolved.",
"action": null,
"observation": "Health verified: all pods ready, error rate 0%, CPU 58%.",
"timestamp": "2026-03-19T15:16:00Z"
}
]
}
}
string
required
Unique remediation plan name
string
default:"default"
Kubernetes namespace
Response Details
The detail response extends the list item with:| Field | Description |
|---|---|
safetyConstraints | Constraints that must be respected during execution |
evidence | Collected evidence during execution (logs, metrics, failures, rollbacks) |
rollbackPerformed | Whether automatic rollback was triggered |
rollbackResult | Outcome of the rollback attempt |
agenticHistory | Step-by-step AI reasoning and actions (agentic mode only) |
Agentic History
WhenagenticMode is true, the agenticHistory array shows the complete AI conversation:
aiMessage: The AI’s reasoning for each stepaction: The concrete action proposed (null if observation-only step)observation: The result after executing the actionstepNumber: Sequential step number
{
"apiVersion": "v1",
"kind": "RemediationPlan",
"resourceMeta": {
"name": "remediation-inc-20260319-002-1",
"namespace": "production",
"creationTimestamp": "2026-03-19T15:09:00Z"
},
"spec": {
"name": "remediation-inc-20260319-002-1",
"namespace": "production",
"issueRef": "INC-20260319-002",
"attempt": 1,
"strategy": "Agentic mode: no matching runbook found",
"state": "Completed",
"startedAt": "2026-03-19T15:10:00Z",
"completedAt": "2026-03-19T15:16:00Z",
"result": "Issue resolved after 4 agentic steps",
"agenticMode": true,
"agenticStepCount": 4,
"actions": [],
"creationTimestamp": "2026-03-19T15:09:00Z",
"safetyConstraints": [
"Do not scale below current replica count",
"Verify health for 90 seconds after each action"
],
"evidence": [
{
"type": "action_success",
"data": "ScaleDeployment executed: replicas 3 -> 5",
"timestamp": "2026-03-19T15:11:00Z"
},
{
"type": "health_check",
"data": "All 5/5 pods ready after 45 seconds",
"timestamp": "2026-03-19T15:12:30Z"
}
],
"rollbackPerformed": false,
"rollbackResult": "",
"agenticHistory": [
{
"stepNumber": 1,
"aiMessage": "The deployment has 3 replicas but CPU usage is at 95%. The error rate spike correlates with high CPU. I'll scale up to reduce per-pod load.",
"action": {"type": "ScaleDeployment", "params": {"replicas": "5"}},
"observation": "ScaleDeployment executed successfully. New pods are starting.",
"timestamp": "2026-03-19T15:11:00Z"
},
{
"stepNumber": 2,
"aiMessage": "Pods are starting. Let me observe the metrics to verify the scale-up is helping.",
"action": null,
"observation": "5/5 pods ready. CPU usage dropped to 62%. Error rate decreasing.",
"timestamp": "2026-03-19T15:12:30Z"
},
{
"stepNumber": 3,
"aiMessage": "CPU is now at safe levels and error rate is dropping. Let me also adjust the HPA to prevent this from happening again.",
"action": {"type": "AdjustHPA", "params": {"maxReplicas": "8", "targetCPU": "70"}},
"observation": "HPA updated. maxReplicas=8, targetCPU=70%.",
"timestamp": "2026-03-19T15:14:00Z"
},
{
"stepNumber": 4,
"aiMessage": "The deployment is stable with healthy CPU usage and zero errors. The HPA will handle future load spikes. Issue resolved.",
"action": null,
"observation": "Health verified: all pods ready, error rate 0%, CPU 58%.",
"timestamp": "2026-03-19T15:16:00Z"
}
]
}
}
{
"apiVersion": "v1",
"kind": "Error",
"error": {
"code": 404,
"message": "Remediation plan not found: remediation-inc-20260319-999"
}
}
Authorizations
Bearer token issued by the operator. Format: Authorization: Bearer <token>.
Path Parameters
Unique remediation plan name.
Example:
"remediation-inc-20260319-002-1"
Query Parameters
Kubernetes namespace.
⌘I