Release Guard
Set the persisted guard policy
PUT
/
api
/
v1
/
deployments
/
{name}
/
release-guard
/
policy
Set the persisted guard policy
curl --request PUT \
--url http://127.0.0.1:18000/api/v1/deployments/{name}/release-guard/policy \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"enabled": true,
"minimum_requests": 2,
"require_compatibility_evidence": true,
"require_quality_evidence": true,
"require_synthetic_evidence": true,
"auto_rollback_enabled": true,
"auto_rollback_window_seconds": 1,
"max_cost_regression_percent": 1,
"max_error_rate_increase": 0.5,
"max_latency_regression_percent": 1,
"max_output_throughput_drop_percent": 1,
"max_quality_regression_percent": 50,
"max_ttft_regression_percent": 1,
"minimum_quality_score": 0.5,
"validation_max_concurrency": 2,
"validation_max_requests": 2
}
'import requests
url = "http://127.0.0.1:18000/api/v1/deployments/{name}/release-guard/policy"
payload = {
"enabled": True,
"minimum_requests": 2,
"require_compatibility_evidence": True,
"require_quality_evidence": True,
"require_synthetic_evidence": True,
"auto_rollback_enabled": True,
"auto_rollback_window_seconds": 1,
"max_cost_regression_percent": 1,
"max_error_rate_increase": 0.5,
"max_latency_regression_percent": 1,
"max_output_throughput_drop_percent": 1,
"max_quality_regression_percent": 50,
"max_ttft_regression_percent": 1,
"minimum_quality_score": 0.5,
"validation_max_concurrency": 2,
"validation_max_requests": 2
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
enabled: true,
minimum_requests: 2,
require_compatibility_evidence: true,
require_quality_evidence: true,
require_synthetic_evidence: true,
auto_rollback_enabled: true,
auto_rollback_window_seconds: 1,
max_cost_regression_percent: 1,
max_error_rate_increase: 0.5,
max_latency_regression_percent: 1,
max_output_throughput_drop_percent: 1,
max_quality_regression_percent: 50,
max_ttft_regression_percent: 1,
minimum_quality_score: 0.5,
validation_max_concurrency: 2,
validation_max_requests: 2
})
};
fetch('http://127.0.0.1:18000/api/v1/deployments/{name}/release-guard/policy', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "http://127.0.0.1:18000/api/v1/deployments/{name}/release-guard/policy"
payload := strings.NewReader("{\n \"enabled\": true,\n \"minimum_requests\": 2,\n \"require_compatibility_evidence\": true,\n \"require_quality_evidence\": true,\n \"require_synthetic_evidence\": true,\n \"auto_rollback_enabled\": true,\n \"auto_rollback_window_seconds\": 1,\n \"max_cost_regression_percent\": 1,\n \"max_error_rate_increase\": 0.5,\n \"max_latency_regression_percent\": 1,\n \"max_output_throughput_drop_percent\": 1,\n \"max_quality_regression_percent\": 50,\n \"max_ttft_regression_percent\": 1,\n \"minimum_quality_score\": 0.5,\n \"validation_max_concurrency\": 2,\n \"validation_max_requests\": 2\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}{}{
"error": {
"code": "<string>",
"message": "<string>",
"category": "<string>",
"remediation": "<string>",
"request_id": "<string>",
"retryable": true
}
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path Parameters
Minimum string length:
1Body
application/json
Required range:
x >= 1Required range:
x >= 0Required range:
x >= 0Required range:
0 <= x <= 1Required range:
x >= 0Required range:
x >= 0Required range:
0 <= x <= 100Required range:
x >= 0Required range:
0 <= x <= 1Required range:
x >= 1Required range:
x >= 1Response
Success
The response is of type object.
⌘I
Set the persisted guard policy
curl --request PUT \
--url http://127.0.0.1:18000/api/v1/deployments/{name}/release-guard/policy \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"enabled": true,
"minimum_requests": 2,
"require_compatibility_evidence": true,
"require_quality_evidence": true,
"require_synthetic_evidence": true,
"auto_rollback_enabled": true,
"auto_rollback_window_seconds": 1,
"max_cost_regression_percent": 1,
"max_error_rate_increase": 0.5,
"max_latency_regression_percent": 1,
"max_output_throughput_drop_percent": 1,
"max_quality_regression_percent": 50,
"max_ttft_regression_percent": 1,
"minimum_quality_score": 0.5,
"validation_max_concurrency": 2,
"validation_max_requests": 2
}
'import requests
url = "http://127.0.0.1:18000/api/v1/deployments/{name}/release-guard/policy"
payload = {
"enabled": True,
"minimum_requests": 2,
"require_compatibility_evidence": True,
"require_quality_evidence": True,
"require_synthetic_evidence": True,
"auto_rollback_enabled": True,
"auto_rollback_window_seconds": 1,
"max_cost_regression_percent": 1,
"max_error_rate_increase": 0.5,
"max_latency_regression_percent": 1,
"max_output_throughput_drop_percent": 1,
"max_quality_regression_percent": 50,
"max_ttft_regression_percent": 1,
"minimum_quality_score": 0.5,
"validation_max_concurrency": 2,
"validation_max_requests": 2
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
enabled: true,
minimum_requests: 2,
require_compatibility_evidence: true,
require_quality_evidence: true,
require_synthetic_evidence: true,
auto_rollback_enabled: true,
auto_rollback_window_seconds: 1,
max_cost_regression_percent: 1,
max_error_rate_increase: 0.5,
max_latency_regression_percent: 1,
max_output_throughput_drop_percent: 1,
max_quality_regression_percent: 50,
max_ttft_regression_percent: 1,
minimum_quality_score: 0.5,
validation_max_concurrency: 2,
validation_max_requests: 2
})
};
fetch('http://127.0.0.1:18000/api/v1/deployments/{name}/release-guard/policy', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "http://127.0.0.1:18000/api/v1/deployments/{name}/release-guard/policy"
payload := strings.NewReader("{\n \"enabled\": true,\n \"minimum_requests\": 2,\n \"require_compatibility_evidence\": true,\n \"require_quality_evidence\": true,\n \"require_synthetic_evidence\": true,\n \"auto_rollback_enabled\": true,\n \"auto_rollback_window_seconds\": 1,\n \"max_cost_regression_percent\": 1,\n \"max_error_rate_increase\": 0.5,\n \"max_latency_regression_percent\": 1,\n \"max_output_throughput_drop_percent\": 1,\n \"max_quality_regression_percent\": 50,\n \"max_ttft_regression_percent\": 1,\n \"minimum_quality_score\": 0.5,\n \"validation_max_concurrency\": 2,\n \"validation_max_requests\": 2\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}{}{
"error": {
"code": "<string>",
"message": "<string>",
"category": "<string>",
"remediation": "<string>",
"request_id": "<string>",
"retryable": true
}
}