Blueprint plan and state API
Manage reviewed plans, mapped resource identities, imports, and ownership locks.
Blueprint endpoints coordinate a set of resource changes under one deployment identity. Blueprint permission does not replace the resource permissions required by its child actions.
Submit a definition
/organizations/{organization_id}/projects/{project_id}/blueprintsCreates a blueprint definition without provisioning its resources.
Requires
blueprints:write, name, and a supported definition. Returns 201 with blueprint
ID, definition revision, and empty state mapping. It does not create the defined
infrastructure.
A definition revision uses the schema in Blueprints. Unknown resource fields, cyclic required references, and unsupported resource kinds reject validation. Secrets must be referenced by permitted IDs.
Create a plan
/organizations/{organization_id}/projects/{project_id}/blueprints/{blueprint_id}/plansCreates a reviewed change plan for a blueprint revision.
Requires the blueprint ETag. Send definition_revision_id and optional mode
normal, import, rename, or detach, with default normal.
An import includes logical_name and resource_id. A rename includes old and
new logical names. Detach identifies mapped entries that must remain as unmanaged
resources. The response returns 201 with a plan, source revisions, changes,
blockers, and the state revision used for evaluation.
Planning reads resources through the caller's permissions. It reserves no future capacity and does not silently take ownership from another blueprint.
Apply
/organizations/{organization_id}/projects/{project_id}/blueprint-plans/{plan_id}/applyApplies a reviewed blueprint plan through a parent operation.
Requires blueprints:write, a current plan ETag, and an idempotency key. Each
child is also checked against the submitting principal's resource permissions.
Accepted work returns 202 with a parent operation.
412 plan_stale means configuration or mapped state changed since planning.
409 blueprint_locked identifies an active apply. Neither error is a reason
to recreate the deployment under a different name.
Inspect state
/organizations/{organization_id}/projects/{project_id}/blueprints/{blueprint_id}/stateReturns state revision, logical-name-to-resource mapping, resource revisions, current owner, and active operation ID. Requires blueprints:read.
A failed apply can have successful children. Later planning reconciles those mapped IDs instead of assuming that every proposed create is still absent.
Release ownership
Import, rename, and detach have the effects described in Blueprint imports. Detach retains resources and usage; ordinary removal from the definition normally proposes deletion.
/organizations/{organization_id}/projects/{project_id}/blueprints/{blueprint_id}Deletes a blueprint definition after its managed mappings and operations are resolved.
Deleting a blueprint definition is blocked by mapped managed resources and unresolved operations. Resolve or explicitly release those mappings first. A CLI process exiting does not release a server apply lock. See operation recovery.