For the complete documentation index, see llms.txt. This page is also available as Markdown.

Commitment Plan Templates (Beta)

Agent-friendly commitment plan template endpoints

List commitment plan templates

get

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.

Path parameters
org_idstring · uuidRequired
Query parameters
providerstring · enumRequired

Cloud provider (aws, azure, gcp)

Example: awsPossible values:
segment_idstring · uuid · nullableOptional

Optional segment ID to scope results. Defaults to the provider resources segment if not specified.

Default: null
Responses
200

OK

application/json
idstring · uuidRequired

Unique template identifier

namestringRequired

Human-readable template name

descriptionstring · nullableOptional

Optional human-readable template description

segment_idstring · uuidRequired

Segment this template generates plans for

created_atstring · date-timeRequired

When the template was created

is_system_generatedbooleanRequired

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.

auto_purchaseany ofRequired

Scheduled auto-purchase settings, or null if the template is not on a schedule.

or
object · nullableOptional
get/beta/v1/org/{org_id}/commitment-plan-templates
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"
    }
  }
]

Create a commitment plan template

post

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.

Path parameters
org_idstring · uuidRequired
Body
providerstring · enumRequired

Cloud provider (aws, azure, gcp)

Example: awsPossible values:
segment_idstring · uuid · nullableOptional

Optional segment ID to scope results. Defaults to the provider resources segment if not specified.

Default: null
namestringRequired

Template name

descriptionstring · nullableOptional

Optional human-readable template description

Default: null
auto_purchaseany ofOptional

Optional auto-purchase schedule to attach

Default: null
or
object · nullableOptional
Responses
200

OK

application/json
idstring · uuidRequired

Unique template identifier

namestringRequired

Human-readable template name

descriptionstring · nullableOptional

Optional human-readable template description

segment_idstring · uuidRequired

Segment this template generates plans for

created_atstring · date-timeRequired

When the template was created

is_system_generatedbooleanRequired

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.

auto_purchaseany ofRequired

Scheduled auto-purchase settings, or null if the template is not on a schedule.

or
object · nullableOptional
post/beta/v1/org/{org_id}/commitment-plan-templates
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"
  }
}

Get a commitment plan template

get

Returns a single template by ID.

Path parameters
org_idstring · uuidRequired
template_idstring · uuidRequired
Responses
200

OK

application/json
idstring · uuidRequired

Unique template identifier

namestringRequired

Human-readable template name

descriptionstring · nullableOptional

Optional human-readable template description

segment_idstring · uuidRequired

Segment this template generates plans for

created_atstring · date-timeRequired

When the template was created

is_system_generatedbooleanRequired

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.

auto_purchaseany ofRequired

Scheduled auto-purchase settings, or null if the template is not on a schedule.

or
object · nullableOptional
get/beta/v1/org/{org_id}/commitment-plan-templates/{template_id}
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"
  }
}

Update a commitment plan template

put

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.

Path parameters
org_idstring · uuidRequired
template_idstring · uuidRequired
Body
namestringOptional

New template name

descriptionstring · nullableOptional

New template description. Pass null to clear the current description.

auto_purchaseany ofOptional

Replacement schedule. Pass null to clear an existing schedule. Omit the key to leave the schedule untouched.

or
object · nullableOptional
Responses
200

OK

application/json
idstring · uuidRequired

Unique template identifier

namestringRequired

Human-readable template name

descriptionstring · nullableOptional

Optional human-readable template description

segment_idstring · uuidRequired

Segment this template generates plans for

created_atstring · date-timeRequired

When the template was created

is_system_generatedbooleanRequired

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.

auto_purchaseany ofRequired

Scheduled auto-purchase settings, or null if the template is not on a schedule.

or
object · nullableOptional
put/beta/v1/org/{org_id}/commitment-plan-templates/{template_id}
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 commitment plan template

delete

Delete a template. System-generated templates cannot be deleted.

Path parameters
org_idstring · uuidRequired
template_idstring · uuidRequired
Responses
204

No Content

No content

delete/beta/v1/org/{org_id}/commitment-plan-templates/{template_id}
DELETE /beta/v1/org/{org_id}/commitment-plan-templates/{template_id} HTTP/1.1
Accept: */*

No content

Last updated

Was this helpful?