Commitment Plan Templates (Beta)
Agent-friendly commitment plan template endpoints
Returns commitment plan templates scoped to one segment for the given provider. segment_id defaults to the provider-resources segment — same fallback as POST/PUT — so the typical caller sees exactly the templates tied to their default segment without cross-segment duplicates.
Cloud provider (aws, azure, gcp)
awsPossible values: Optional segment ID to scope results. Defaults to the provider resources segment if not specified.
nullOK
Unique template identifier
Human-readable template name
Optional human-readable template description
Segment this template generates plans for
When the template was created
True if this template was created automatically by the system — the three built-ins that back Recommended / Balanced / High Savings. Describes origin, not role — system-generated templates are immutable.
Scheduled auto-purchase settings, or null if the template is not on a schedule.
Bad request
Unauthorized
Forbidden
Not found
Method not allowed
Conflict
Unprocessable Content
Internal server error
Default error response
GET /beta/v1/org/{org_id}/commitment-plan-templates?provider=aws HTTP/1.1
Accept: */*
[
{
"id": "123e4567-e89b-12d3-a456-426614174000",
"name": "text",
"description": "text",
"segment_id": "123e4567-e89b-12d3-a456-426614174000",
"created_at": "2026-01-01T00:00:00.000Z",
"is_system_generated": true,
"configuration": {
"max_upfront_cost": 0,
"lookback_days": 1,
"contract_specs": [
{
"commitment_type": "text",
"contract_term": "one_year_gris",
"payment_option": "no_upfront"
}
],
"resource_ids": [],
"renewal_commitment_ids": [
"123e4567-e89b-12d3-a456-426614174000"
]
},
"auto_purchase": {
"enabled": true,
"schedule": "daily",
"min_monthly_savings": 1,
"start_date": "2026-01-01",
"end_date": "2026-01-01",
"next_execution_date": "2026-01-01",
"last_executed_at": "2026-01-01T00:00:00.000Z"
}
}
]Creates a reusable commitment plan template. If auto_purchase is provided, the system will regenerate and optionally purchase plans from this template on the given schedule.
Cloud provider (aws, azure, gcp)
awsPossible values: Optional segment ID to scope results. Defaults to the provider resources segment if not specified.
nullTemplate name
Optional human-readable template description
nullOptional auto-purchase schedule to attach
nullOK
Unique template identifier
Human-readable template name
Optional human-readable template description
Segment this template generates plans for
When the template was created
True if this template was created automatically by the system — the three built-ins that back Recommended / Balanced / High Savings. Describes origin, not role — system-generated templates are immutable.
Scheduled auto-purchase settings, or null if the template is not on a schedule.
Bad request
Unauthorized
Forbidden
Not found
Method not allowed
Conflict
Unprocessable Content
Internal server error
Default error response
POST /beta/v1/org/{org_id}/commitment-plan-templates HTTP/1.1
Content-Type: application/json
Accept: */*
Content-Length: 480
{
"provider": "aws",
"segment_id": "123e4567-e89b-12d3-a456-426614174000",
"name": "text",
"description": "text",
"configuration": {
"max_upfront_cost": 0,
"lookback_days": 1,
"contract_specs": [
{
"commitment_type": "text",
"contract_term": "one_year_gris",
"payment_option": "no_upfront"
}
],
"resource_ids": [],
"renewal_commitment_ids": [
"123e4567-e89b-12d3-a456-426614174000"
]
},
"auto_purchase": {
"schedule": "daily",
"min_monthly_savings": 0,
"enabled": true,
"start_date": "2026-01-01",
"end_date": "2026-01-01"
}
}{
"id": "123e4567-e89b-12d3-a456-426614174000",
"name": "text",
"description": "text",
"segment_id": "123e4567-e89b-12d3-a456-426614174000",
"created_at": "2026-01-01T00:00:00.000Z",
"is_system_generated": true,
"configuration": {
"max_upfront_cost": 0,
"lookback_days": 1,
"contract_specs": [
{
"commitment_type": "text",
"contract_term": "one_year_gris",
"payment_option": "no_upfront"
}
],
"resource_ids": [],
"renewal_commitment_ids": [
"123e4567-e89b-12d3-a456-426614174000"
]
},
"auto_purchase": {
"enabled": true,
"schedule": "daily",
"min_monthly_savings": 1,
"start_date": "2026-01-01",
"end_date": "2026-01-01",
"next_execution_date": "2026-01-01",
"last_executed_at": "2026-01-01T00:00:00.000Z"
}
}Returns a single template by ID.
OK
Unique template identifier
Human-readable template name
Optional human-readable template description
Segment this template generates plans for
When the template was created
True if this template was created automatically by the system — the three built-ins that back Recommended / Balanced / High Savings. Describes origin, not role — system-generated templates are immutable.
Scheduled auto-purchase settings, or null if the template is not on a schedule.
Bad request
Unauthorized
Forbidden
Not Found
Method not allowed
Conflict
Internal server error
Default error response
GET /beta/v1/org/{org_id}/commitment-plan-templates/{template_id} HTTP/1.1
Accept: */*
{
"id": "123e4567-e89b-12d3-a456-426614174000",
"name": "text",
"description": "text",
"segment_id": "123e4567-e89b-12d3-a456-426614174000",
"created_at": "2026-01-01T00:00:00.000Z",
"is_system_generated": true,
"configuration": {
"max_upfront_cost": 0,
"lookback_days": 1,
"contract_specs": [
{
"commitment_type": "text",
"contract_term": "one_year_gris",
"payment_option": "no_upfront"
}
],
"resource_ids": [],
"renewal_commitment_ids": [
"123e4567-e89b-12d3-a456-426614174000"
]
},
"auto_purchase": {
"enabled": true,
"schedule": "daily",
"min_monthly_savings": 1,
"start_date": "2026-01-01",
"end_date": "2026-01-01",
"next_execution_date": "2026-01-01",
"last_executed_at": "2026-01-01T00:00:00.000Z"
}
}Merge-semantic update: only keys present in the body are applied. Pass auto_purchase: null to clear an existing schedule; omit the key to leave it untouched. System-generated templates can have their auto_purchase schedule edited but not their name, description, or configuration.
New template name
New template description. Pass null to clear the current description.
Replacement schedule. Pass null to clear an existing schedule. Omit the key to leave the schedule untouched.
OK
Unique template identifier
Human-readable template name
Optional human-readable template description
Segment this template generates plans for
When the template was created
True if this template was created automatically by the system — the three built-ins that back Recommended / Balanced / High Savings. Describes origin, not role — system-generated templates are immutable.
Scheduled auto-purchase settings, or null if the template is not on a schedule.
Bad request
Unauthorized
Forbidden
Not Found
Method not allowed
Conflict
Unprocessable Content
Internal server error
Default error response
PUT /beta/v1/org/{org_id}/commitment-plan-templates/{template_id} HTTP/1.1
Content-Type: application/json
Accept: */*
Content-Length: 411
{
"name": "text",
"description": "text",
"configuration": {
"max_upfront_cost": 0,
"lookback_days": 1,
"contract_specs": [
{
"commitment_type": "text",
"contract_term": "one_year_gris",
"payment_option": "no_upfront"
}
],
"resource_ids": [],
"renewal_commitment_ids": [
"123e4567-e89b-12d3-a456-426614174000"
]
},
"auto_purchase": {
"schedule": "daily",
"min_monthly_savings": 0,
"enabled": true,
"start_date": "2026-01-01",
"end_date": "2026-01-01"
}
}{
"id": "123e4567-e89b-12d3-a456-426614174000",
"name": "text",
"description": "text",
"segment_id": "123e4567-e89b-12d3-a456-426614174000",
"created_at": "2026-01-01T00:00:00.000Z",
"is_system_generated": true,
"configuration": {
"max_upfront_cost": 0,
"lookback_days": 1,
"contract_specs": [
{
"commitment_type": "text",
"contract_term": "one_year_gris",
"payment_option": "no_upfront"
}
],
"resource_ids": [],
"renewal_commitment_ids": [
"123e4567-e89b-12d3-a456-426614174000"
]
},
"auto_purchase": {
"enabled": true,
"schedule": "daily",
"min_monthly_savings": 1,
"start_date": "2026-01-01",
"end_date": "2026-01-01",
"next_execution_date": "2026-01-01",
"last_executed_at": "2026-01-01T00:00:00.000Z"
}
}Delete a template. System-generated templates cannot be deleted.
No Content
No content
Bad request
Unauthorized
Forbidden
Not Found
Method not allowed
Conflict
Internal server error
Default error response
DELETE /beta/v1/org/{org_id}/commitment-plan-templates/{template_id} HTTP/1.1
Accept: */*
No content
Last updated
Was this helpful?

