API reference: Blueprint catalog
Snowtrol blueprint-catalog API: list the managed + own-org catalog, create/update/delete your organization's own blueprints, and import a definition from a connected repo.
Your organization's own blueprints, alongside the read-only platform-managed catalog (synced by staff from a Git source of native .tf blueprint folders — see Build your own Terraform blueprint). Reads are open to members; writes need mutate_infra. Platform rows and cross-org ids answer 404 on mutation.
/api/blueprintsSession or BearerList the catalog visible to your org: platform-managed blueprints plus your own. Own rows include the definition; the response also carries the native .tf file rendering for the catalog view.
{ "blueprints": [ { "id": 4, "blueprintId": "custom/org/team-s3-bucket", "slug": "team-s3-bucket",
"title": "Team S3 bucket", "provider": "AWS", "tfType": "aws_s3_bucket", "enabled": true, "own": true } ] }| Status | When |
|---|---|
401 | Not signed in. |
/api/blueprintsmutate_infraCreate an own-org blueprint from { slug, title, description, provider, resourceType, tfType, fields, module } — or import one from a connected repo with { fromRepo: { connectionId, path } } (the path may point at a native .tf blueprint file or folder; legacy .tf.json/.json still parse). Validation rejects terraform/provider/backend blocks in the module.
| Status | When |
|---|---|
400 | Validation failed (the error names the field/block). |
403 | Role lacks mutate_infra. |
409 | Duplicate slug in your catalog. |
PATCH /api/blueprints/{id} updates or toggles { enabled }; DELETE /api/blueprints/{id} removes an own blueprint. The deployable union (built-ins + enabled platform + enabled own) is what `GET /api/terraform/blueprints` returns.