From 4424700b226eb937dd24b2bd1ded2abc092852fe Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Thu, 30 Jul 2026 23:04:06 +0000 Subject: [PATCH] Prepare release 0.5.0 --- .../unreleased/BUG FIXES-20260729-100121.yaml | 3 - .../unreleased/BUG FIXES-20260729-100210.yaml | 3 - .../unreleased/BUG FIXES-20260729-101327.yaml | 3 - .../ENHANCEMENTS-20260724-172011.yaml | 3 - .../ENHANCEMENTS-20260728-150652.yaml | 3 - .changes/v0.5.0.md | 18 + CHANGELOG.md | 18 + .../pkg/openapi/spec/hcpt_v2_public_beta.json | 4999 +++++++++-------- skills/tfctl/known_release_hashes | 1 + version/VERSION | 2 +- 10 files changed, 2588 insertions(+), 2465 deletions(-) delete mode 100644 .changes/unreleased/BUG FIXES-20260729-100121.yaml delete mode 100644 .changes/unreleased/BUG FIXES-20260729-100210.yaml delete mode 100644 .changes/unreleased/BUG FIXES-20260729-101327.yaml delete mode 100644 .changes/unreleased/ENHANCEMENTS-20260724-172011.yaml delete mode 100644 .changes/unreleased/ENHANCEMENTS-20260728-150652.yaml create mode 100644 .changes/v0.5.0.md diff --git a/.changes/unreleased/BUG FIXES-20260729-100121.yaml b/.changes/unreleased/BUG FIXES-20260729-100121.yaml deleted file mode 100644 index 17cbdf0..0000000 --- a/.changes/unreleased/BUG FIXES-20260729-100121.yaml +++ /dev/null @@ -1,3 +0,0 @@ -kind: BUG FIXES -body: Using `auth login --dry-run` no longer opens a web browser. --dry-run now appears in argument autocomplete lists. -time: 2026-07-29T10:01:21.23869-06:00 diff --git a/.changes/unreleased/BUG FIXES-20260729-100210.yaml b/.changes/unreleased/BUG FIXES-20260729-100210.yaml deleted file mode 100644 index 3c7d85e..0000000 --- a/.changes/unreleased/BUG FIXES-20260729-100210.yaml +++ /dev/null @@ -1,3 +0,0 @@ -kind: BUG FIXES -body: Using `profile display --markdown` no longer produces an error. -time: 2026-07-29T10:02:10.946104-06:00 diff --git a/.changes/unreleased/BUG FIXES-20260729-101327.yaml b/.changes/unreleased/BUG FIXES-20260729-101327.yaml deleted file mode 100644 index 8fd96a6..0000000 --- a/.changes/unreleased/BUG FIXES-20260729-101327.yaml +++ /dev/null @@ -1,3 +0,0 @@ -kind: BUG FIXES -body: Removed Token property from json output when using `profile profiles list --json`, preventing accidental exposure. -time: 2026-07-29T10:13:27.549029-06:00 diff --git a/.changes/unreleased/ENHANCEMENTS-20260724-172011.yaml b/.changes/unreleased/ENHANCEMENTS-20260724-172011.yaml deleted file mode 100644 index 04aaa00..0000000 --- a/.changes/unreleased/ENHANCEMENTS-20260724-172011.yaml +++ /dev/null @@ -1,3 +0,0 @@ -kind: ENHANCEMENTS -body: Running tfctl, tfctl version, or tfctl --version checks whether there is a newer version of tfctl available and whether `auth login` needs to be run. -time: 2026-07-24T17:20:11.173085-06:00 diff --git a/.changes/unreleased/ENHANCEMENTS-20260728-150652.yaml b/.changes/unreleased/ENHANCEMENTS-20260728-150652.yaml deleted file mode 100644 index 5589259..0000000 --- a/.changes/unreleased/ENHANCEMENTS-20260728-150652.yaml +++ /dev/null @@ -1,3 +0,0 @@ -kind: ENHANCEMENTS -body: tfctl now detects outdated skills it installed and migrates them to the latest version. -time: 2026-07-28T15:06:52.901832-06:00 diff --git a/.changes/v0.5.0.md b/.changes/v0.5.0.md new file mode 100644 index 0000000..b76ad64 --- /dev/null +++ b/.changes/v0.5.0.md @@ -0,0 +1,18 @@ +## v0.5.0 (July 30, 2026) + + +ENHANCEMENTS: + +* Running tfctl, tfctl version, or tfctl --version checks whether there is a newer version of tfctl available and whether `auth login` needs to be run. + +* tfctl now detects outdated skills it installed and migrates them to the latest version. + + +BUG FIXES: + +* Using `auth login --dry-run` no longer opens a web browser. --dry-run now appears in argument autocomplete lists. + +* Using `profile display --markdown` no longer produces an error. + +* Removed Token property from json output when using `profile profiles list --json`, preventing accidental exposure. + diff --git a/CHANGELOG.md b/CHANGELOG.md index 8fec2c6..d04a3c2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,21 @@ +## v0.5.0 (July 30, 2026) + + +ENHANCEMENTS: + +* Running tfctl, tfctl version, or tfctl --version checks whether there is a newer version of tfctl available and whether `auth login` needs to be run. + +* tfctl now detects outdated skills it installed and migrates them to the latest version. + + +BUG FIXES: + +* Using `auth login --dry-run` no longer opens a web browser. --dry-run now appears in argument autocomplete lists. + +* Using `profile display --markdown` no longer produces an error. + +* Removed Token property from json output when using `profile profiles list --json`, preventing accidental exposure. + ## v0.4.0-beta (July 23, 2026) diff --git a/internal/pkg/openapi/spec/hcpt_v2_public_beta.json b/internal/pkg/openapi/spec/hcpt_v2_public_beta.json index 91ea92f..e07eb2d 100644 --- a/internal/pkg/openapi/spec/hcpt_v2_public_beta.json +++ b/internal/pkg/openapi/spec/hcpt_v2_public_beta.json @@ -1,7 +1,7 @@ { "openapi": "3.0.0", "info": { - "version": "ee6a78eb", + "version": "5e36b1b7", "title": "HCP Terraform/Terraform Enterprise API v2-Beta", "description": "OpenAPI Specification for the HCP Terraform/Terraform Enterprise API V2 Public Beta.", "license": { @@ -450,9 +450,63 @@ "name": "tag-binding", "x-displayName": "Tag Bindings", "description": "Tag bindings on resources" + }, + { + "name": "admin-banners", + "x-vis": [ + "tfe" + ], + "x-displayName": "Admin Banners", + "description": "Site-wide announcement banner management for Terraform Enterprise administrators." } ], "paths": { + "/admin/banners": { + "x-vis": [ + "tfe" + ], + "post": { + "operationId": "createAdminBanner", + "summary": "Create Site-Wide Announcement Banner", + "x-tfe-min-version": "v202601-1", + "description": "Creates a site-wide announcement banner. Only one banner can be active at a time; creating a new banner automatically deactivates any existing active banner. If neither scheduled-publish-at nor scheduled-expire-at are provided, the banner is published immediately.\n\n\nThis operation is only available in Terraform Enterprise.", + "tags": [ + "admin-banners" + ], + "requestBody": { + "required": true, + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/admin-banners-envelope" + } + } + } + }, + "responses": { + "201": { + "description": "Banner created successfully.", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/admin-banners-envelope" + } + } + } + }, + "default": { + "description": "Error details", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/errors" + } + } + } + } + } + } + }, "/account/details": { "get": { "operationId": "getAccountDetails", @@ -2247,11 +2301,16 @@ { "in": "query", "name": "include", + "style": "form", + "explode": false, "schema": { - "type": "string", - "enum": [ - "subscription" - ] + "type": "array", + "items": { + "type": "string", + "enum": [ + "subscription" + ] + } }, "required": false, "description": "Optionally side-load relationships of the specified name" @@ -2407,13 +2466,18 @@ { "in": "query", "name": "include", + "style": "form", + "explode": false, "schema": { - "type": "string", - "enum": [ - "subscription", - "entitlement_set", - "default-project" - ] + "type": "array", + "items": { + "type": "string", + "enum": [ + "subscription", + "entitlement_set", + "default-project" + ] + } }, "required": false, "description": "Optionally side-load relationships of the specified name" @@ -2780,13 +2844,18 @@ { "in": "query", "name": "include", + "style": "form", + "explode": false, "schema": { - "type": "string", - "enum": [ - "user", - "teams", - "scim-identity" - ] + "type": "array", + "items": { + "type": "string", + "enum": [ + "user", + "teams", + "scim-identity" + ] + } }, "required": false, "description": "Optionally side-load relationships. Can include \"user\", \"teams\", or \"scim-identity\".\nNote: \"scim-identity\" is only available on HCP Terraform.\n" @@ -2829,7 +2898,7 @@ "included": { "type": "array", "items": { - "anyOf": [ + "oneOf": [ { "$ref": "#/components/schemas/users" }, @@ -2842,7 +2911,16 @@ { "$ref": "#/components/schemas/scim-identities" } - ] + ], + "discriminator": { + "propertyName": "type", + "mapping": { + "users": "#/components/schemas/users", + "teams": "#/components/schemas/teams", + "organizations": "#/components/schemas/organizations", + "scim-identities": "#/components/schemas/scim-identities" + } + } } } } @@ -3003,13 +3081,18 @@ { "in": "query", "name": "include", + "style": "form", + "explode": false, "schema": { - "type": "string", - "enum": [ - "user", - "teams", - "organization" - ] + "type": "array", + "items": { + "type": "string", + "enum": [ + "user", + "teams", + "organization" + ] + } }, "required": false, "description": "Optionally side-load relationships. Can include \"user\", \"teams\", or \"organization\"." @@ -3052,7 +3135,7 @@ "included": { "type": "array", "items": { - "anyOf": [ + "oneOf": [ { "$ref": "#/components/schemas/users" }, @@ -3062,7 +3145,15 @@ { "$ref": "#/components/schemas/organizations" } - ] + ], + "discriminator": { + "propertyName": "type", + "mapping": { + "users": "#/components/schemas/users", + "teams": "#/components/schemas/teams", + "organizations": "#/components/schemas/organizations" + } + } } } } @@ -3104,12 +3195,17 @@ { "in": "query", "name": "include", + "style": "form", + "explode": false, "schema": { - "type": "string", - "enum": [ - "user", - "teams" - ] + "type": "array", + "items": { + "type": "string", + "enum": [ + "user", + "teams" + ] + } }, "required": false, "description": "Optionally side-load relationships. Can include \"user\" or \"teams\"." @@ -3131,14 +3227,21 @@ "included": { "type": "array", "items": { - "anyOf": [ + "oneOf": [ { "$ref": "#/components/schemas/users" }, { "$ref": "#/components/schemas/teams" } - ] + ], + "discriminator": { + "propertyName": "type", + "mapping": { + "users": "#/components/schemas/users", + "teams": "#/components/schemas/teams" + } + } } } } @@ -3249,13 +3352,18 @@ { "in": "query", "name": "include", + "style": "form", + "explode": false, "schema": { - "type": "string", - "enum": [ - "recoverable", - "deleted_by", - "project" - ] + "type": "array", + "items": { + "type": "string", + "enum": [ + "recoverable", + "deleted_by", + "project" + ] + } }, "required": false, "description": "Optionally side-load relationships of the specified name. Multiple values can be comma-separated." @@ -4582,11 +4690,43 @@ { "in": "query", "name": "include", + "style": "form", + "explode": false, "schema": { - "type": "string" + "type": "array", + "items": { + "type": "string", + "enum": [ + "agent_pool", + "current_assessment_result", + "current_configuration_version", + "current_configuration_version.ingress_attributes", + "current_run", + "current_run.apply", + "current_run.plan", + "current_run.configuration_version", + "current_run.configuration_version.ingress_attributes", + "current_state_version", + "current_state_version.resources_processed", + "latest_run", + "latest_run.plan", + "latest_run.configuration_version", + "latest_run.configuration_version.ingress_attributes", + "locked_by", + "no_code_module_version", + "no_code_module_version.no_code_module", + "no_code_module_version.no_code_module.latest_version", + "organization", + "outputs", + "project", + "readme", + "vars", + "effective_tag_bindings" + ] + } }, "required": false, - "description": "Comma-separated list of relationship names to side-load (e.g., current_run, readme, effective_tag_bindings).\n" + "description": "Comma-separated list of relationship names to side-load.\n" }, { "$ref": "#/components/parameters/page_number" @@ -4764,11 +4904,43 @@ { "in": "query", "name": "include", + "style": "form", + "explode": false, "schema": { - "type": "string" + "type": "array", + "items": { + "type": "string", + "enum": [ + "agent_pool", + "current_assessment_result", + "current_configuration_version", + "current_configuration_version.ingress_attributes", + "current_run", + "current_run.apply", + "current_run.plan", + "current_run.configuration_version", + "current_run.configuration_version.ingress_attributes", + "current_state_version", + "current_state_version.resources_processed", + "latest_run", + "latest_run.plan", + "latest_run.configuration_version", + "latest_run.configuration_version.ingress_attributes", + "locked_by", + "no_code_module_version", + "no_code_module_version.no_code_module", + "no_code_module_version.no_code_module.latest_version", + "organization", + "outputs", + "project", + "readme", + "vars", + "effective_tag_bindings" + ] + } }, "required": false, - "description": "Optionally side-load relationships. Comma-separated list of relationship names (e.g. current_run, current_state_version, locked_by, outputs, project, agent_pool).\n" + "description": "Optionally side-load relationships.\n" } ], "responses": { @@ -5859,72 +6031,6 @@ } } }, - "/workspaces/{workspace_id}/queries": { - "x-vs": [ - "internal-beta" - ], - "get": { - "operationId": "getWorkspaceQueries", - "summary": "Get Queries for a Workspace", - "description": "Get list of queries for a particular workspace.", - "tags": [ - "queries" - ], - "parameters": [ - { - "in": "path", - "name": "workspace_id", - "schema": { - "type": "string" - }, - "required": true, - "description": "The id of the workspace." - }, - { - "$ref": "#/components/parameters/page_number" - }, - { - "$ref": "#/components/parameters/page_size" - } - ], - "responses": { - "200": { - "description": "List of Queries", - "content": { - "application/vnd.api+json": { - "schema": { - "type": "object", - "properties": { - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/queries" - } - }, - "links": { - "$ref": "#/components/schemas/self-with-pagination" - }, - "meta": { - "$ref": "#/components/schemas/pagination" - } - } - } - } - } - }, - "default": { - "description": "Error details", - "content": { - "application/vnd.api+json": { - "schema": { - "$ref": "#/components/schemas/errors" - } - } - } - } - } - } - }, "/workspaces/{workspace_id}/all-vars": { "get": { "operationId": "listAllVars", @@ -6259,6 +6365,16 @@ }, "required": true, "description": "The ID of the provider set." + }, + { + "in": "query", + "name": "include", + "description": "Comma-separated list of related resources to include. Valid values: projects, workspaces.\n", + "schema": { + "type": "string" + }, + "required": false, + "example": "projects,workspaces" } ], "responses": { @@ -6576,6 +6692,16 @@ }, "required": true, "description": "The name of the organization." + }, + { + "in": "query", + "name": "include", + "description": "Comma-separated list of related resources to include. Valid values: projects, workspaces.\n", + "schema": { + "type": "string" + }, + "required": false, + "example": "projects,workspaces" } ], "responses": { @@ -6759,6 +6885,16 @@ }, "required": true, "description": "The name of the provider_set." + }, + { + "in": "query", + "name": "include", + "description": "Comma-separated list of related resources to include. Valid values: projects, workspaces.\n", + "schema": { + "type": "string" + }, + "required": false, + "example": "projects,workspaces" } ], "responses": { @@ -8178,11 +8314,43 @@ { "in": "query", "name": "include", + "style": "form", + "explode": false, "schema": { - "type": "string" + "type": "array", + "items": { + "type": "string", + "enum": [ + "agent_pool", + "current_assessment_result", + "current_configuration_version", + "current_configuration_version.ingress_attributes", + "current_run", + "current_run.apply", + "current_run.plan", + "current_run.configuration_version", + "current_run.configuration_version.ingress_attributes", + "current_state_version", + "current_state_version.resources_processed", + "latest_run", + "latest_run.plan", + "latest_run.configuration_version", + "latest_run.configuration_version.ingress_attributes", + "locked_by", + "no_code_module_version", + "no_code_module_version.no_code_module", + "no_code_module_version.no_code_module.latest_version", + "organization", + "outputs", + "project", + "readme", + "vars", + "effective_tag_bindings" + ] + } }, "required": false, - "description": "Optionally side-load relationships. Comma-separated list of relationship names (e.g. current_run, current_state_version, locked_by, outputs, project, agent_pool).\n" + "description": "Optionally side-load relationships.\n" } ], "responses": { @@ -9578,11 +9746,19 @@ { "in": "query", "name": "include", + "style": "form", + "explode": false, "schema": { - "type": "string" + "type": "array", + "items": { + "type": "string", + "enum": [ + "outputs" + ] + } }, "required": false, - "description": "Optionally side-load relationships. For example, outputs or created-by.\n" + "description": "Optionally side-load relationships.\n" } ], "responses": { @@ -9972,8 +10148,24 @@ { "in": "query", "name": "include", + "style": "form", + "explode": false, "schema": { - "type": "string" + "type": "array", + "items": { + "type": "string", + "enum": [ + "plan", + "apply", + "created_by", + "configuration_version", + "configuration_version.ingress_attributes", + "cost_estimate", + "workspace", + "task_stages", + "tf_policy_evaluations" + ] + } }, "required": false, "description": "Available side-load related resources. Multiple values can be comma-separated.\n\nAvailable includes:\n- `plan` - The plan for this run\n- `apply` - The apply for this run\n- `created_by` - The user who created this run\n- `configuration_version` - The configuration version used\n- `configuration_version.ingress_attributes` - VCS ingress details\n- `cost_estimate` - Cost estimation for this run\n- `workspace` - The workspace this run belongs to\n- `task_stages` - Run task stages\n- `tf_policy_evaluations` - Terraform Policy evaluations *(public-beta)*\n" @@ -11910,11 +12102,19 @@ { "in": "query", "name": "include", + "style": "form", + "explode": false, "schema": { - "type": "string" + "type": "array", + "items": { + "type": "string", + "enum": [ + "tf_policy_set_outcomes" + ] + } }, "required": false, - "description": "Comma-separated list of related resources to include. Valid values are `tf_policy_set_outcomes`." + "description": "Comma-separated list of related resources to include." } ], "responses": { @@ -15572,6 +15772,17 @@ "description": "HYOK Configuration ID" } ], + "requestBody": { + "required": false, + "content": { + "application/vnd.api+json": { + "schema": { + "type": "object", + "additionalProperties": false + } + } + } + }, "responses": { "202": { "description": "HYOK Configuration revocation initiated", @@ -15740,6 +15951,17 @@ "description": "HYOK Customer Key Version ID" } ], + "requestBody": { + "required": false, + "content": { + "application/vnd.api+json": { + "schema": { + "type": "object", + "additionalProperties": false + } + } + } + }, "responses": { "202": { "description": "HYOK Key Version revocation initiated", @@ -15952,57 +16174,6 @@ } } }, - "post": { - "operationId": "createAuthenticationToken", - "summary": "Create Authentication Token", - "description": "Create an authentication token", - "tags": [ - "authentication-tokens" - ], - "parameters": [ - { - "in": "path", - "name": "id", - "schema": { - "type": "string" - }, - "required": true, - "description": "ID - Can be a token ID or a team ID, depending on the token type" - } - ], - "requestBody": { - "required": true, - "content": { - "application/vnd.api+json": { - "schema": { - "$ref": "#/components/schemas/authentication-tokens-envelope" - } - } - } - }, - "responses": { - "201": { - "description": "Authentication token created", - "content": { - "application/vnd.api+json": { - "schema": { - "$ref": "#/components/schemas/authentication-tokens-envelope" - } - } - } - }, - "default": { - "description": "Error details", - "content": { - "application/vnd.api+json": { - "schema": { - "$ref": "#/components/schemas/errors" - } - } - } - } - } - }, "delete": { "operationId": "deleteAuthenticationToken", "summary": "Delete authentication Token", @@ -16419,9 +16590,9 @@ }, "/teams/{id}/authentication-token": { "get": { - "operationId": "getAuthenticationToken", - "summary": "Get authentication token details", - "description": "Get details about an authentication token", + "operationId": "getTeamAuthenticationToken", + "summary": "Get team authentication token details", + "description": "Get details about a team's authentication token", "tags": [ "authentication-tokens" ], @@ -16433,7 +16604,7 @@ "type": "string" }, "required": true, - "description": "ID - Can be a token ID or a team ID, depending on the token type" + "description": "Team ID" } ], "responses": { @@ -16460,9 +16631,9 @@ } }, "post": { - "operationId": "createAuthenticationToken", - "summary": "Create Authentication Token", - "description": "Create an authentication token", + "operationId": "createTeamAuthenticationToken", + "summary": "Create (or regenerate) the legacy team authentication token", + "description": "Creates the team's legacy, descriptionless authentication token. If one already exists, it is revoked and replaced.", "tags": [ "authentication-tokens" ], @@ -16474,7 +16645,7 @@ "type": "string" }, "required": true, - "description": "ID - Can be a token ID or a team ID, depending on the token type" + "description": "Team ID" } ], "requestBody": { @@ -16511,9 +16682,9 @@ } }, "delete": { - "operationId": "deleteAuthenticationToken", - "summary": "Delete authentication Token", - "description": "Delete an authentication token", + "operationId": "deleteTeamAuthenticationToken", + "summary": "Delete team authentication token", + "description": "Delete a team's authentication token", "tags": [ "authentication-tokens" ], @@ -16525,7 +16696,7 @@ "type": "string" }, "required": true, - "description": "ID - Can be a token ID or a team ID, depending on the token type" + "description": "Team ID" } ], "responses": { @@ -16858,6 +17029,24 @@ "required": true, "description": "Organization Name" }, + { + "in": "query", + "name": "q", + "schema": { + "type": "string" + }, + "required": false, + "description": "Search team tokens by team name." + }, + { + "in": "query", + "name": "filter[expiry_status]", + "schema": { + "type": "string" + }, + "required": false, + "description": "Filter by token expiry status. Accepts a comma-separated list of any of: `active`, `expiring_in_7_days`, `expiring_in_30_days`, `expired`, `no_expiration`. Multiple values are combined with OR." + }, { "$ref": "#/components/parameters/page_number" }, @@ -16906,6 +17095,71 @@ } } } + }, + "delete": { + "operationId": "deleteTeamTokensForAnOrganization", + "summary": "Bulk-Delete Team Tokens for an Organization", + "description": "Bulk-delete team tokens for an organization.", + "tags": [ + "authentication-tokens" + ], + "parameters": [ + { + "in": "path", + "name": "organization_name", + "schema": { + "type": "string" + }, + "required": true, + "description": "Organization Name" + } + ], + "requestBody": { + "required": true, + "content": { + "application/vnd.api+json": { + "schema": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "authentication-tokens" + ] + }, + "id": { + "type": "string", + "description": "External ID of the team token to delete.", + "example": "at-abc123def456" + } + } + } + } + } + } + } + } + }, + "responses": { + "204": { + "description": "Tokens deleted" + }, + "default": { + "description": "Error details", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/errors" + } + } + } + } + } } }, "/organizations/{organization_name}/teams": { @@ -16947,12 +17201,17 @@ { "in": "query", "name": "include", + "style": "form", + "explode": false, "schema": { - "type": "string", - "enum": [ - "users", - "organization-memberships" - ] + "type": "array", + "items": { + "type": "string", + "enum": [ + "users", + "organization-memberships" + ] + } }, "required": false, "description": "Optionally side-load relationships. Can include \"users\" or \"organization-memberships\"." @@ -17002,7 +17261,14 @@ { "$ref": "#/components/schemas/organization-memberships" } - ] + ], + "discriminator": { + "propertyName": "type", + "mapping": { + "users": "#/components/schemas/users", + "organization-memberships": "#/components/schemas/organization-memberships" + } + } } } } @@ -17145,12 +17411,17 @@ { "in": "query", "name": "include", + "style": "form", + "explode": false, "schema": { - "type": "string", - "enum": [ - "users", - "organization-memberships" - ] + "type": "array", + "items": { + "type": "string", + "enum": [ + "users", + "organization-memberships" + ] + } }, "required": false, "description": "Optionally side-load relationships. Can include \"users\" or \"organization-memberships\"." @@ -17179,7 +17450,14 @@ { "$ref": "#/components/schemas/organization-memberships" } - ] + ], + "discriminator": { + "propertyName": "type", + "mapping": { + "users": "#/components/schemas/users", + "organization-memberships": "#/components/schemas/organization-memberships" + } + } } } } @@ -18993,11 +19271,19 @@ { "in": "query", "name": "include", + "style": "form", + "explode": false, "schema": { - "type": "string" + "type": "array", + "items": { + "type": "string", + "enum": [ + "oauth_client" + ] + } }, "required": false, - "description": "Allows including related resource data. Only \"oauth_client\" is supported." + "description": "Allows including related resource data." }, { "$ref": "#/components/parameters/page_number" @@ -21366,11 +21652,20 @@ { "in": "query", "name": "include", + "style": "form", + "explode": false, "schema": { - "type": "string" + "type": "array", + "items": { + "type": "string", + "enum": [ + "workspace_tasks", + "workspace_tasks.workspace" + ] + } }, "required": false, - "description": "Allows including related resource data. Value must be a comma-separated list containing one or more of `workspace_tasks` or `workspace_tasks.workspace`.\n" + "description": "Allows including related resource data.\n" } ], "responses": { @@ -21503,11 +21798,20 @@ { "in": "query", "name": "include", + "style": "form", + "explode": false, "schema": { - "type": "string" + "type": "array", + "items": { + "type": "string", + "enum": [ + "workspace_tasks", + "workspace_tasks.workspace" + ] + } }, "required": false, - "description": "Allows including related resource data. Value must be a comma-separated list containing one or more of `workspace_tasks` or `workspace_tasks.workspace`.\n" + "description": "Allows including related resource data.\n" }, { "$ref": "#/components/parameters/page_number" @@ -21973,11 +22277,23 @@ { "in": "query", "name": "include", + "style": "form", + "explode": false, "schema": { - "type": "string" + "type": "array", + "items": { + "type": "string", + "enum": [ + "run", + "run.workspace", + "task_results", + "policy_evaluations", + "cost_estimate" + ] + } }, "required": false, - "description": "A comma-separated list of related resources to include. Supported values: run, run.workspace, task-results, policy-evaluations." + "description": "A comma-separated list of related resources to include." } ], "responses": { @@ -22542,11 +22858,19 @@ { "in": "query", "name": "include", + "style": "form", + "explode": false, "schema": { - "type": "string" + "type": "array", + "items": { + "type": "string", + "enum": [ + "events" + ] + } }, "required": false, - "description": "Related resources to include (e.g., operations)" + "description": "Allows including related resource data." } ], "responses": { @@ -22698,6 +23022,106 @@ } }, "schemas": { + "admin-banners": { + "type": "object", + "required": [ + "type", + "attributes" + ], + "properties": { + "id": { + "type": "string", + "readOnly": true, + "description": "The external ID of the banner (e.g. ab-xxxxxxxxxxxxxxxx)." + }, + "type": { + "type": "string", + "enum": [ + "admin-banners" + ] + }, + "attributes": { + "type": "object", + "required": [ + "title", + "body", + "style", + "audience" + ], + "properties": { + "title": { + "type": "string", + "maxLength": 100, + "description": "Short heading for the banner (max 100 characters)." + }, + "body": { + "type": "string", + "maxLength": 255, + "description": "Body text of the banner. Limited HTML is allowed: strong, em, b, i, and anchor tags with href. All other tags and attributes are stripped. Maximum 255 characters after sanitization.\n" + }, + "style": { + "type": "string", + "enum": [ + "info", + "warning", + "critical" + ], + "description": "Visual style controlling how the banner is rendered." + }, + "audience": { + "type": "string", + "enum": [ + "all_users", + "authenticated_only" + ], + "description": "Which users see the banner." + }, + "scheduled-publish-at": { + "type": "string", + "format": "date-time", + "nullable": true, + "description": "ISO 8601 datetime (UTC) when the banner should become active. scheduled-publish-at, scheduled-expire-at, and timezone must all be provided together or all omitted. Providing only a subset is a validation error.\n" + }, + "scheduled-expire-at": { + "type": "string", + "format": "date-time", + "nullable": true, + "description": "ISO 8601 datetime (UTC) when the banner should be automatically deactivated. Must be provided together with scheduled-publish-at and timezone.\n" + }, + "timezone": { + "type": "string", + "nullable": true, + "description": "IANA timezone identifier for the scheduled times (e.g. \"America/New_York\", \"UTC\"). Required when scheduled-publish-at and scheduled-expire-at are provided. Used by the UI to display the schedule in the administrator's local timezone; stored and returned as-is.\n" + }, + "published-at": { + "type": "string", + "format": "date-time", + "nullable": true, + "readOnly": true, + "description": "Set automatically when the banner is created without a schedule, or when the scheduled publish time is reached.\n" + }, + "deactivated-at": { + "type": "string", + "format": "date-time", + "nullable": true, + "readOnly": true, + "description": "Set when the banner is deactivated, either because a newer banner was created or because the scheduled expiry time was reached.\n" + } + } + } + } + }, + "admin-banners-envelope": { + "type": "object", + "required": [ + "data" + ], + "properties": { + "data": { + "$ref": "#/components/schemas/admin-banners" + } + } + }, "errors": { "type": "object", "properties": { @@ -22736,6 +23160,38 @@ } } }, + "authenticated-resource-identifier": { + "type": "object", + "required": [ + "id", + "type" + ], + "properties": { + "id": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "organizations", + "runs", + "users", + "teams" + ] + } + } + }, + "authenticated-resource-has-one": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/authenticated-resource-identifier" + }, + "links": { + "$ref": "#/components/schemas/related" + } + } + }, "self": { "type": "object", "properties": { @@ -22927,29 +23383,7 @@ "$ref": "#/components/schemas/links_related" }, "authenticated-resource": { - "type": "object", - "properties": { - "data": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "organizations", - "runs", - "users", - "teams" - ] - } - } - }, - "links": { - "$ref": "#/components/schemas/related" - } - } + "$ref": "#/components/schemas/authenticated-resource-has-one" } } }, @@ -22969,56 +23403,61 @@ } } }, - "hcp-billing-accounts-id": { + "hcp-billing-accounts-identifier": { + "type": "object", + "required": [ + "id", + "type" + ], + "properties": { + "id": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "hcp-billing-account" + ] + } + } + }, + "hcp-billing-accounts-has-one": { "type": "object", - "nullable": false, "properties": { "data": { - "type": "object", - "required": [ - "id", - "type" - ], - "properties": { - "id": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "hcp-billing-account" - ] - } - } + "$ref": "#/components/schemas/hcp-billing-accounts-identifier" }, "links": { "$ref": "#/components/schemas/related" } } }, - "feature-sets-id": { + "feature-sets-identifier": { "type": "object", - "nullable": true, "required": [ - "data" + "id", + "type" ], + "properties": { + "id": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "feature-sets" + ] + } + } + }, + "feature-sets-has-many": { + "type": "object", + "nullable": true, "properties": { "data": { - "type": "object", - "required": [ - "id", - "type" - ], - "properties": { - "id": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "feature-sets" - ] - } + "type": "array", + "items": { + "$ref": "#/components/schemas/feature-sets-identifier" } } } @@ -23065,18 +23504,10 @@ ], "properties": { "default-account": { - "$ref": "#/components/schemas/hcp-billing-accounts-id" + "$ref": "#/components/schemas/hcp-billing-accounts-has-one" }, "connected-plans": { - "type": "object", - "properties": { - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/feature-sets-id" - } - } - } + "$ref": "#/components/schemas/feature-sets-has-many" } } } @@ -23437,49 +23868,78 @@ } } }, - "organizations-id": { + "organizations-identifier": { + "type": "object", + "required": [ + "id", + "type" + ], + "properties": { + "id": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "organizations" + ] + } + } + }, + "organizations-has-one": { "type": "object", "properties": { "data": { "type": "object", - "required": [ - "id", - "type" - ], - "properties": { - "id": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "organizations" - ] + "allOf": [ + { + "$ref": "#/components/schemas/organizations-identifier" } - } + ], + "nullable": true }, "links": { "$ref": "#/components/schemas/related" } } }, - "subscriptions-id": { + "feature-sets-has-one": { + "type": "object", + "nullable": true, + "required": [ + "data" + ], + "properties": { + "data": { + "$ref": "#/components/schemas/feature-sets-identifier" + } + } + }, + "subscriptions-identifier": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "subscriptions" + ] + } + } + }, + "subscriptions-has-one": { "type": "object", "properties": { "data": { "type": "object", - "nullable": true, - "properties": { - "id": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "subscriptions" - ] + "allOf": [ + { + "$ref": "#/components/schemas/subscriptions-identifier" } - } + ], + "nullable": true }, "links": { "$ref": "#/components/schemas/related" @@ -23627,16 +24087,16 @@ ], "properties": { "organization": { - "$ref": "#/components/schemas/organizations-id" + "$ref": "#/components/schemas/organizations-has-one" }, "feature-set": { - "$ref": "#/components/schemas/feature-sets-id" + "$ref": "#/components/schemas/feature-sets-has-one" }, "hcp-billing-account": { "$ref": "#/components/schemas/links_related" }, "next-subscription": { - "$ref": "#/components/schemas/subscriptions-id" + "$ref": "#/components/schemas/subscriptions-has-one" } } } @@ -23699,6 +24159,32 @@ } } }, + "workspaces-identifier": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "workspaces" + ] + } + } + }, + "workspaces-has-many": { + "type": "object", + "nullable": true, + "properties": { + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/workspaces-identifier" + } + } + } + }, "agent-pools": { "type": "object", "required": [ @@ -23749,57 +24235,10 @@ "$ref": "#/components/schemas/links_related" }, "workspaces": { - "readOnly": true, - "type": "object", - "properties": { - "data": { - "type": "array", - "items": { - "type": "object", - "required": [ - "id", - "type" - ], - "properties": { - "id": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "workspaces" - ] - } - } - } - } - } + "$ref": "#/components/schemas/workspaces-has-many" }, "allowed-workspaces": { - "type": "object", - "properties": { - "data": { - "type": "array", - "items": { - "type": "object", - "required": [ - "id", - "type" - ], - "properties": { - "id": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "workspaces" - ] - } - } - } - } - } + "$ref": "#/components/schemas/workspaces-has-many" } } } @@ -23867,62 +24306,62 @@ } } }, - "agent-pools-id-many": { + "agent-pools-identifier": { "type": "object", - "nullable": true, "required": [ - "data" + "id", + "type" ], + "properties": { + "id": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "agent-pools" + ] + } + } + }, + "agent-pools-has-many": { + "type": "object", + "nullable": true, "properties": { "data": { "type": "array", "items": { - "type": "object", - "required": [ - "id", - "type" - ], - "properties": { - "id": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "agent-pools" - ] - } - } + "$ref": "#/components/schemas/agent-pools-identifier" } } } }, - "cidr-ranges-id-many": { + "cidr-ranges-identifier": { "type": "object", - "nullable": true, "required": [ - "data" + "type" ], + "properties": { + "id": { + "type": "string", + "readOnly": true + }, + "type": { + "type": "string", + "enum": [ + "cidr-ranges" + ] + } + } + }, + "cidr-ranges-has-many": { + "type": "object", + "nullable": true, "properties": { "data": { "type": "array", "items": { - "type": "object", - "required": [ - "type" - ], - "properties": { - "id": { - "type": "string", - "readOnly": true - }, - "type": { - "type": "string", - "enum": [ - "cidr-ranges" - ] - } - } + "$ref": "#/components/schemas/cidr-ranges-identifier" } } } @@ -23972,15 +24411,13 @@ "type": "object", "properties": { "organization": { - "readOnly": true, - "$ref": "#/components/schemas/organizations-id" + "$ref": "#/components/schemas/organizations-has-one" }, "agent-pools": { - "readOnly": true, - "$ref": "#/components/schemas/agent-pools-id-many" + "$ref": "#/components/schemas/agent-pools-has-many" }, "cidr-ranges": { - "$ref": "#/components/schemas/cidr-ranges-id-many" + "$ref": "#/components/schemas/cidr-ranges-has-many" } } } @@ -23997,7 +24434,25 @@ } } }, - "cidr-range-lists-id": { + "cidr-range-lists-identifier": { + "type": "object", + "required": [ + "id", + "type" + ], + "properties": { + "id": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "cidr-range-lists" + ] + } + } + }, + "cidr-range-lists-has-one": { "type": "object", "nullable": true, "required": [ @@ -24006,22 +24461,12 @@ "properties": { "data": { "type": "object", - "nullable": true, - "required": [ - "id", - "type" - ], - "properties": { - "id": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "cidr-range-lists" - ] + "allOf": [ + { + "$ref": "#/components/schemas/cidr-range-lists-identifier" } - } + ], + "nullable": true } } }, @@ -24070,12 +24515,10 @@ "type": "object", "properties": { "organization": { - "readOnly": true, - "$ref": "#/components/schemas/organizations-id" + "$ref": "#/components/schemas/organizations-has-one" }, "cidr-range-list": { - "readOnly": true, - "$ref": "#/components/schemas/cidr-range-lists-id" + "$ref": "#/components/schemas/cidr-range-lists-has-one" } } } @@ -24173,7 +24616,7 @@ } } }, - "agent-pools-id": { + "agent-pools-has-one": { "type": "object", "nullable": true, "required": [ @@ -24182,26 +24625,35 @@ "properties": { "data": { "type": "object", - "nullable": true, - "required": [ - "id", - "type" - ], - "properties": { - "id": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "agent-pools" - ] + "allOf": [ + { + "$ref": "#/components/schemas/agent-pools-identifier" } - } + ], + "nullable": true } } }, - "data-retention-policy-id": { + "data-retention-policy-identifier": { + "type": "object", + "required": [ + "id", + "type" + ], + "properties": { + "id": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "data-retention-policy-delete-olders", + "data-retention-policy-dont-deletes" + ] + } + } + }, + "data-retention-policy-has-one": { "type": "object", "required": [ "data" @@ -24209,89 +24661,102 @@ "properties": { "data": { "type": "object", - "nullable": true, - "required": [ - "id", - "type" - ], - "properties": { - "id": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "data-retention-policy-delete-olders", - "data-retention-policy-dont-deletes" - ] + "allOf": [ + { + "$ref": "#/components/schemas/data-retention-policy-identifier" } - } + ], + "nullable": true + } + } + }, + "entitlement-sets-identifier": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "entitlement-sets" + ] } } }, - "entitlement-sets-id": { + "entitlement-sets-has-one": { "type": "object", "properties": { "data": { "type": "object", - "nullable": true, - "properties": { - "id": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "entitlement-sets" - ] + "allOf": [ + { + "$ref": "#/components/schemas/entitlement-sets-identifier" } - } + ], + "nullable": true }, "links": { "$ref": "#/components/schemas/related" } } }, - "projects-id": { + "projects-identifier": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "projects" + ] + } + } + }, + "projects-has-one": { "type": "object", "properties": { "data": { "type": "object", - "nullable": true, - "properties": { - "id": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "projects" - ] + "allOf": [ + { + "$ref": "#/components/schemas/projects-identifier" } - } + ], + "nullable": true }, "links": { "$ref": "#/components/schemas/related" } } }, - "hyok-configurations-id": { + "hyok-configurations-identifier": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "hyok-configurations" + ] + } + } + }, + "hyok-configurations-has-one": { "type": "object", "properties": { "data": { "type": "object", - "nullable": true, - "properties": { - "id": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "hyok-configurations" - ] + "allOf": [ + { + "$ref": "#/components/schemas/hyok-configurations-identifier" } - } + ], + "nullable": true } } }, @@ -24666,13 +25131,13 @@ "type": "object", "properties": { "default-agent-pool": { - "$ref": "#/components/schemas/agent-pools-id" + "$ref": "#/components/schemas/agent-pools-has-one" }, "stacks-default-agent-pool": { - "$ref": "#/components/schemas/agent-pools-id" + "$ref": "#/components/schemas/agent-pools-has-one" }, "data-retention-policy": { - "$ref": "#/components/schemas/data-retention-policy-id", + "$ref": "#/components/schemas/data-retention-policy-has-one", "x-vis": [ "tfe" ], @@ -24706,19 +25171,19 @@ "description": "This relationship is only available in HCP Terraform." }, "entitlement-set": { - "$ref": "#/components/schemas/entitlement-sets-id" + "$ref": "#/components/schemas/entitlement-sets-has-one" }, "subscription": { - "$ref": "#/components/schemas/subscriptions-id" + "$ref": "#/components/schemas/subscriptions-has-one" }, "default-project": { - "$ref": "#/components/schemas/projects-id" + "$ref": "#/components/schemas/projects-has-one" }, "primary-hyok-configuration": { "x-vis": [ "hcpt" ], - "$ref": "#/components/schemas/hyok-configurations-id", + "$ref": "#/components/schemas/hyok-configurations-has-one", "description": "This relationship is only available in HCP Terraform." } } @@ -24891,20 +25356,7 @@ "type": "object", "properties": { "organization": { - "type": "object", - "properties": { - "data": { - "$ref": "#/components/schemas/organizations-id" - }, - "links": { - "type": "object", - "properties": { - "related": { - "type": "string" - } - } - } - } + "$ref": "#/components/schemas/organizations-has-one" }, "tag-bindings": { "type": "object", @@ -24921,10 +25373,10 @@ } }, "default-agent-pool": { - "$ref": "#/components/schemas/agent-pools-id" + "$ref": "#/components/schemas/agent-pools-has-one" }, "stacks-default-agent-pool": { - "$ref": "#/components/schemas/agent-pools-id" + "$ref": "#/components/schemas/agent-pools-has-one" } } }, @@ -24969,6 +25421,87 @@ } } }, + "teams-identifier": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "teams" + ] + } + } + }, + "teams-has-many": { + "type": "object", + "nullable": true, + "properties": { + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/teams-identifier" + } + } + } + }, + "users-has-one": { + "type": "object", + "properties": { + "data": { + "type": "object", + "nullable": true, + "properties": { + "id": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "users" + ] + } + } + }, + "links": { + "$ref": "#/components/schemas/related" + } + } + }, + "scim-identities-identifier": { + "type": "object", + "required": [ + "id", + "type" + ], + "properties": { + "id": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "scim-identities" + ] + } + } + }, + "scim-identities-has-one": { + "type": "object", + "properties": { + "data": { + "type": "object", + "allOf": [ + { + "$ref": "#/components/schemas/scim-identities-identifier" + } + ], + "nullable": true + } + } + }, "status-counts": { "type": "object", "properties": { @@ -25037,100 +25570,20 @@ "type": "object", "properties": { "teams": { - "type": "object", "description": "The teams this user is a member of. Only shows teams the requesting user has access to, and teams that are not \"secret\" (unless the requester is a member).", - "properties": { - "data": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "teams" - ] - } - } - } - }, - "links": { - "$ref": "#/components/schemas/related" - } - } + "$ref": "#/components/schemas/teams-has-many" }, "user": { - "type": "object", "description": "The user associated with this organization membership.", - "properties": { - "data": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "users" - ] - } - } - }, - "links": { - "$ref": "#/components/schemas/related" - } - } + "$ref": "#/components/schemas/users-has-one" }, "organization": { - "type": "object", "description": "The organization this membership belongs to.", - "properties": { - "data": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "organizations" - ] - } - } - }, - "links": { - "$ref": "#/components/schemas/related" - } - } + "$ref": "#/components/schemas/organizations-has-one" }, "scim-identity": { - "type": "object", "description": "The SCIM identity associated with this organization membership.\nOnly available on HCP Terraform when SCIM is enabled.\nReturns null if the user has no SCIM identity for this organization.\n", - "properties": { - "data": { - "type": "object", - "nullable": true, - "properties": { - "id": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "scim-identities" - ] - } - } - }, - "links": { - "$ref": "#/components/schemas/related" - } - } + "$ref": "#/components/schemas/scim-identities-has-one" } } }, @@ -25150,6 +25603,58 @@ } } }, + "users-identifier": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "users" + ] + } + } + }, + "users-has-many": { + "type": "object", + "nullable": true, + "properties": { + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/users-identifier" + } + } + } + }, + "organization-memberships-identifier": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "organization-memberships" + ] + } + } + }, + "organization-memberships-has-many": { + "type": "object", + "nullable": true, + "properties": { + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/organization-memberships-identifier" + } + } + } + }, "teams": { "type": "object", "required": [ @@ -25386,67 +25891,15 @@ "type": "object", "properties": { "organization": { - "$ref": "#/components/schemas/organizations-id" + "$ref": "#/components/schemas/organizations-has-one" }, "users": { - "type": "object", "description": "Team members (active users only).", - "properties": { - "data": { - "type": "array", - "items": { - "type": "object", - "required": [ - "id", - "type" - ], - "properties": { - "id": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "users" - ] - } - } - } - }, - "links": { - "$ref": "#/components/schemas/links_related" - } - } + "$ref": "#/components/schemas/users-has-many" }, "organization-memberships": { - "type": "object", "description": "Organization memberships for team members.", - "properties": { - "data": { - "type": "array", - "items": { - "type": "object", - "required": [ - "id", - "type" - ], - "properties": { - "id": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "organization-memberships" - ] - } - } - } - }, - "links": { - "$ref": "#/components/schemas/related" - } - } + "$ref": "#/components/schemas/organization-memberships-has-many" }, "authentication-token": { "$ref": "#/components/schemas/links_related" @@ -25503,6 +25956,36 @@ } } }, + "recoverable-identifier": { + "type": "object", + "required": [ + "id", + "type" + ], + "properties": { + "id": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "workspaces", + "stacks" + ] + } + } + }, + "recoverable-has-one": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/recoverable-identifier" + }, + "links": { + "$ref": "#/components/schemas/related" + } + } + }, "recoverable-items": { "type": "object", "required": [ @@ -25566,50 +26049,47 @@ ], "properties": { "project": { - "type": "object", "description": "The project this recoverable item belongs to", - "properties": { - "data": { - "$ref": "#/components/schemas/projects-id" - }, - "links": { - "$ref": "#/components/schemas/related" - } - } + "$ref": "#/components/schemas/projects-has-one" }, "recoverable": { - "type": "object", "description": "The recoverable resource (can be a workspace or stack.)", - "properties": { - "data": { - "type": "object", - "required": [ - "id", - "type" - ], - "properties": { - "id": { - "type": "string" - }, - "type": { - "type": "string", - "description": "The type of the recoverable resource (e.g., workspaces, stacks)", - "enum": [ - "workspaces", - "stacks" - ] - } - } - }, - "links": { - "$ref": "#/components/schemas/related" - } - } + "$ref": "#/components/schemas/recoverable-has-one" } } } } }, + "data-retention-target-identifier": { + "type": "object", + "required": [ + "id", + "type" + ], + "properties": { + "id": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "organizations", + "workspaces" + ] + } + } + }, + "data-retention-target-has-one": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/data-retention-target-identifier" + }, + "links": { + "$ref": "#/components/schemas/related" + } + } + }, "data-retention-policy": { "type": "object", "required": [ @@ -25633,6 +26113,39 @@ "properties": { "deleteOlderThanNDays": { "type": "integer" + }, + "deleteStateVersions": { + "type": "boolean" + }, + "deleteConfigurationVersions": { + "type": "boolean" + }, + "deleteRunDataAndLogs": { + "type": "boolean" + }, + "stateVersionsDeleteAfterNDays": { + "type": "integer", + "nullable": true + }, + "configurationVersionsDeleteAfterNDays": { + "type": "integer", + "nullable": true + }, + "runDataAndLogsDeleteAfterNDays": { + "type": "integer", + "nullable": true + }, + "stateVersionsKeepLatestCount": { + "type": "integer", + "nullable": true + }, + "configurationVersionsKeepLatestCount": { + "type": "integer", + "nullable": true + }, + "runDataKeepLatestCount": { + "type": "integer", + "nullable": true } } }, @@ -25643,29 +26156,7 @@ "type": "object", "properties": { "target": { - "readOnly": true, - "type": "object", - "properties": { - "data": { - "type": "object", - "required": [ - "id", - "type" - ], - "properties": { - "id": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "organizations", - "workspaces" - ] - } - } - } - } + "$ref": "#/components/schemas/data-retention-target-has-one" } } } @@ -25724,6 +26215,7 @@ }, "max-ttl-ms": { "type": "integer", + "format": "int64", "description": "The maximum time-to-live for the token in milliseconds", "example": 3600000 }, @@ -25766,6 +26258,7 @@ }, "max-ttl-ms": { "type": "integer", + "format": "int64", "description": "The maximum time-to-live for the token in milliseconds", "example": 3600000 } @@ -25889,41 +26382,275 @@ } } }, - "runs-id": { + "ssh-keys-identifier": { + "type": "object", + "required": [ + "id", + "type" + ], + "properties": { + "id": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "ssh-keys" + ] + } + } + }, + "ssh-keys-has-one": { "type": "object", "properties": { "data": { "type": "object", - "nullable": true, - "properties": { - "id": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "runs" - ] + "allOf": [ + { + "$ref": "#/components/schemas/ssh-keys-identifier" + } + ], + "nullable": true + } + } + }, + "locked-by-identifier": { + "type": "object", + "required": [ + "id", + "type" + ], + "properties": { + "id": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "users", + "teams", + "runs" + ] + } + } + }, + "locked-by-has-one": { + "type": "object", + "properties": { + "data": { + "type": "object", + "allOf": [ + { + "$ref": "#/components/schemas/locked-by-identifier" } + ], + "nullable": true + } + } + }, + "runs-identifier": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "runs" + ] + } + } + }, + "runs-has-one": { + "type": "object", + "properties": { + "data": { + "type": "object", + "allOf": [ + { + "$ref": "#/components/schemas/runs-identifier" + } + ], + "nullable": true + } + } + }, + "workspace-outputs-identifier": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "workspace-outputs" + ] + } + } + }, + "workspace-outputs-has-many": { + "type": "object", + "nullable": true, + "properties": { + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/workspace-outputs-identifier" } } } }, - "vars-id": { + "state-versions-identifier": { + "type": "object", + "required": [ + "id", + "type" + ], + "properties": { + "id": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "state-versions" + ] + } + } + }, + "state-versions-has-one": { "type": "object", "properties": { "data": { "type": "object", - "properties": { - "id": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "vars" - ] + "allOf": [ + { + "$ref": "#/components/schemas/state-versions-identifier" } + ], + "nullable": true + } + } + }, + "configuration-versions-identifier": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "configuration-versions" + ] + } + } + }, + "configuration-versions-has-one": { + "type": "object", + "properties": { + "data": { + "type": "object", + "allOf": [ + { + "$ref": "#/components/schemas/configuration-versions-identifier" + } + ], + "nullable": true + }, + "links": { + "$ref": "#/components/schemas/related" + } + } + }, + "workspace-readme-identifier": { + "type": "object", + "required": [ + "id", + "type" + ], + "properties": { + "id": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "workspace-readme" + ] + } + } + }, + "workspace-readme-has-one": { + "type": "object", + "properties": { + "data": { + "type": "object", + "allOf": [ + { + "$ref": "#/components/schemas/workspace-readme-identifier" + } + ], + "nullable": true + } + } + }, + "assessment-results-identifier": { + "type": "object", + "required": [ + "id", + "type" + ], + "properties": { + "id": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "assessment-results" + ] + } + } + }, + "assessment-results-has-one": { + "type": "object", + "properties": { + "data": { + "type": "object", + "allOf": [ + { + "$ref": "#/components/schemas/assessment-results-identifier" + } + ], + "nullable": true + } + } + }, + "vars-identifier": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "vars" + ] + } + } + }, + "vars-has-many": { + "type": "object", + "nullable": true, + "properties": { + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/vars-identifier" } } } @@ -26257,85 +26984,22 @@ "type": "object", "properties": { "organization": { - "$ref": "#/components/schemas/organizations-id" + "$ref": "#/components/schemas/organizations-has-one" }, "ssh-key": { - "type": "object", - "nullable": true, - "properties": { - "data": { - "type": "object", - "nullable": true, - "properties": { - "id": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "ssh-keys" - ] - } - } - }, - "links": { - "$ref": "#/components/schemas/related" - } - } + "$ref": "#/components/schemas/ssh-keys-has-one" }, "locked-by": { - "type": "object", - "nullable": true, - "properties": { - "data": { - "type": "object", - "nullable": true, - "properties": { - "id": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "users", - "teams", - "runs" - ] - } - } - }, - "links": { - "$ref": "#/components/schemas/related" - } - } + "$ref": "#/components/schemas/locked-by-has-one" }, "current-run": { - "$ref": "#/components/schemas/runs-id" + "$ref": "#/components/schemas/runs-has-one" }, "latest-run": { - "$ref": "#/components/schemas/runs-id" + "$ref": "#/components/schemas/runs-has-one" }, "outputs": { - "type": "object", - "properties": { - "data": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "workspace-outputs" - ] - } - } - } - } - } + "$ref": "#/components/schemas/workspace-outputs-has-many" }, "remote-state-consumers": { "type": "object", @@ -26346,105 +27010,25 @@ } }, "current-state-version": { - "type": "object", - "nullable": true, - "properties": { - "data": { - "type": "object", - "nullable": true, - "properties": { - "id": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "state-versions" - ] - } - } - } - } + "$ref": "#/components/schemas/state-versions-has-one" }, "current-configuration-version": { - "type": "object", - "nullable": true, - "properties": { - "data": { - "type": "object", - "nullable": true, - "properties": { - "id": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "configuration-versions" - ] - } - } - } - } + "$ref": "#/components/schemas/configuration-versions-has-one" }, "agent-pool": { - "$ref": "#/components/schemas/agent-pools-id" + "$ref": "#/components/schemas/agent-pools-has-one" }, "readme": { - "type": "object", - "nullable": true, - "properties": { - "data": { - "type": "object", - "nullable": true, - "properties": { - "id": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "workspace-readme" - ] - } - } - } - } + "$ref": "#/components/schemas/workspace-readme-has-one" }, "project": { - "$ref": "#/components/schemas/projects-id" + "$ref": "#/components/schemas/projects-has-one" }, "current-assessment-result": { - "type": "object", - "nullable": true, - "properties": { - "data": { - "type": "object", - "nullable": true, - "properties": { - "id": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "assessment-results" - ] - } - } - } - } + "$ref": "#/components/schemas/assessment-results-has-one" }, "vars": { - "type": "object", - "properties": { - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/vars-id" - } - } - } + "$ref": "#/components/schemas/vars-has-many" } } }, @@ -26464,6 +27048,38 @@ } } }, + "subscribable-identifier": { + "type": "object", + "required": [ + "id", + "type" + ], + "properties": { + "id": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "workspaces", + "projects", + "teams", + "stacks" + ] + } + } + }, + "subscribable-has-one": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/subscribable-identifier" + }, + "links": { + "$ref": "#/components/schemas/related" + } + } + }, "notification-configurations": { "type": "object", "required": [ @@ -26575,50 +27191,12 @@ "type": "object", "properties": { "subscribable": { - "type": "object", "description": "The resource (workspace, project, or team) this notification is configured for.", - "properties": { - "data": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "workspaces", - "projects", - "teams", - "stacks" - ] - } - } - } - } + "$ref": "#/components/schemas/subscribable-has-one" }, "users": { - "type": "object", "description": "Users associated with this notification (for email type).", - "properties": { - "data": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "users" - ] - } - } - } - } - } + "$ref": "#/components/schemas/users-has-many" } } } @@ -26701,254 +27279,100 @@ } } }, - "workspaces-id": { + "configurable-identifier": { "type": "object", + "required": [ + "id", + "type" + ], "properties": { - "data": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "workspaces" - ] - } - } + "id": { + "type": "string" }, - "links": { - "$ref": "#/components/schemas/related" + "type": { + "type": "string", + "enum": [ + "workspaces", + "policy-sets", + "varsets" + ] } } }, - "users-id": { + "configurable-has-one": { "type": "object", "properties": { "data": { "type": "object", - "properties": { - "id": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "users" - ] + "allOf": [ + { + "$ref": "#/components/schemas/configurable-identifier" } - } + ], + "nullable": true + } + } + }, + "varsets-identifier": { + "type": "object", + "required": [ + "id", + "type" + ], + "properties": { + "id": { + "type": "string" }, - "links": { - "$ref": "#/components/schemas/related" + "type": { + "type": "string", + "enum": [ + "varsets" + ] } } }, - "configuration-versions-id": { + "varsets-has-one": { "type": "object", "properties": { "data": { "type": "object", - "properties": { - "id": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "configuration-versions" - ] + "allOf": [ + { + "$ref": "#/components/schemas/varsets-identifier" } - } + ], + "nullable": true } } }, - "no-code-queries-id": { + "workspaces-has-one": { "type": "object", "properties": { "data": { "type": "object", - "properties": { - "id": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "no-code-queries" - ] + "allOf": [ + { + "$ref": "#/components/schemas/workspaces-identifier" } - } + ], + "nullable": true }, "links": { "$ref": "#/components/schemas/related" } } }, - "queries": { + "vars-has-one": { "type": "object", - "required": [ - "type", - "attributes", - "relationships" - ], "properties": { - "id": { - "type": "string", - "readOnly": true - }, - "type": { - "type": "string", - "enum": [ - "queries" - ] - }, - "attributes": { + "data": { "type": "object", - "properties": { - "actions": { - "type": "object", - "required": [ - "is-cancelable", - "is-force-cancelable" - ], - "properties": { - "is-cancelable": { - "type": "boolean" - }, - "is-force-cancelable": { - "type": "boolean" - } - } - }, - "canceled-at": { - "type": "string", - "format": "date-time", - "nullable": true, - "readOnly": true - }, - "updated-at": { - "type": "string", - "format": "date-time", - "readOnly": true - }, - "created-at": { - "type": "string", - "format": "date-time", - "readOnly": true - }, - "source": { - "type": "string", - "enum": [ - "tfe-api", - "tfe-ui", - "tfe-module", - "tfe-no-code-query", - "terraform" - ] - }, - "generate-config-out": { - "type": "boolean" - }, - "resources-discovered": { - "type": "integer", - "readOnly": true, - "description": "The number of resources discovered by the query run." - }, - "status-timestamps": { - "type": "object", - "properties": { - "pending-at": { - "type": "string", - "format": "date-time" - }, - "queued-at": { - "type": "string", - "format": "date-time" - }, - "errored-at": { - "type": "string", - "format": "date-time" - }, - "canceled-at": { - "type": "string", - "format": "date-time" - }, - "running-at": { - "type": "string", - "format": "date-time" - }, - "finished-at": { - "type": "string", - "format": "date-time" - } - } - }, - "status": { - "type": "string", - "enum": [ - "pending", - "queued", - "running", - "finished", - "canceled", - "errored" - ] - }, - "log-read-url": { - "type": "string", - "readOnly": true - }, - "permissions": { - "type": "object", - "properties": { - "can-cancel": { - "type": "boolean" - }, - "can-force-cancel": { - "type": "boolean" - } - } - }, - "force-cancel-available-at": { - "type": "string", - "format": "date-time", - "readOnly": true - }, - "policy-paths": { - "type": "array", - "items": { - "type": "string" - }, - "nullable": true + "allOf": [ + { + "$ref": "#/components/schemas/vars-identifier" } - } - }, - "relationships": { - "type": "object", - "required": [ - "workspace", - "configuration-version" ], - "properties": { - "workspace": { - "$ref": "#/components/schemas/workspaces-id" - }, - "canceled-by": { - "$ref": "#/components/schemas/users-id" - }, - "configuration-version": { - "$ref": "#/components/schemas/configuration-versions-id" - }, - "created-by": { - "$ref": "#/components/schemas/users-id" - }, - "no-code-query": { - "$ref": "#/components/schemas/no-code-queries-id", - "description": "The no-code query that triggered this query run, if any." - } - } + "nullable": true } } }, @@ -27012,121 +27436,19 @@ "type": "object", "properties": { "configurable": { - "type": "object", - "properties": { - "data": { - "type": "object", - "nullable": true, - "properties": { - "id": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "workspaces", - "policy-sets", - "varsets" - ] - } - } - } - } + "$ref": "#/components/schemas/configurable-has-one" }, "varset": { - "type": "object", - "properties": { - "data": { - "type": "object", - "nullable": true, - "properties": { - "id": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "varsets" - ] - } - } - }, - "links": { - "type": "object", - "properties": { - "related": { - "type": "string" - } - } - } - } + "$ref": "#/components/schemas/varsets-has-one" }, "workspace": { - "type": "object", - "properties": { - "data": { - "type": "object", - "nullable": true, - "properties": { - "id": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "workspaces" - ] - } - } - }, - "links": { - "type": "object", - "properties": { - "related": { - "type": "string" - } - } - } - } + "$ref": "#/components/schemas/workspaces-has-one" }, "overwritten": { - "type": "object", - "properties": { - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/vars-id" - } - } - } + "$ref": "#/components/schemas/vars-has-many" }, "overwriter": { - "type": "object", - "properties": { - "data": { - "type": "object", - "nullable": true, - "properties": { - "id": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "vars" - ] - } - } - }, - "links": { - "type": "object", - "properties": { - "related": { - "type": "string" - } - } - } - } + "$ref": "#/components/schemas/vars-has-one" } } }, @@ -27151,6 +27473,18 @@ } } }, + "projects-has-many": { + "type": "object", + "nullable": true, + "properties": { + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/projects-identifier" + } + } + } + }, "provider-sets": { "type": "object", "properties": { @@ -27206,68 +27540,13 @@ "type": "object", "properties": { "organization": { - "type": "object", - "properties": { - "data": { - "type": "object", - "nullable": true, - "properties": { - "id": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "organizations" - ] - } - } - } - } + "$ref": "#/components/schemas/organizations-has-one" }, "workspaces": { - "type": "object", - "properties": { - "data": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "workspaces" - ] - } - } - } - } - } + "$ref": "#/components/schemas/workspaces-has-many" }, "projects": { - "type": "object", - "properties": { - "data": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "projects" - ] - } - } - } - } - } + "$ref": "#/components/schemas/projects-has-many" } } } @@ -27313,6 +27592,65 @@ } } }, + "stacks-identifier": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "stacks" + ] + } + } + }, + "stacks-has-many": { + "type": "object", + "nullable": true, + "properties": { + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/stacks-identifier" + } + } + } + }, + "varset-parent-identifier": { + "type": "object", + "required": [ + "id", + "type" + ], + "properties": { + "id": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "organizations", + "projects" + ] + } + } + }, + "varset-parent-has-one": { + "type": "object", + "properties": { + "data": { + "type": "object", + "allOf": [ + { + "$ref": "#/components/schemas/varset-parent-identifier" + } + ], + "nullable": true + } + } + }, "varsets": { "type": "object", "properties": { @@ -27378,24 +27716,7 @@ "type": "object", "properties": { "organization": { - "type": "object", - "properties": { - "data": { - "type": "object", - "nullable": true, - "properties": { - "id": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "organizations" - ] - } - } - } - } + "$ref": "#/components/schemas/organizations-has-one" }, "vars": { "type": "object", @@ -27439,91 +27760,16 @@ } }, "workspaces": { - "type": "object", - "properties": { - "data": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "workspaces" - ] - } - } - } - } - } + "$ref": "#/components/schemas/workspaces-has-many" }, "projects": { - "type": "object", - "properties": { - "data": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "projects" - ] - } - } - } - } - } + "$ref": "#/components/schemas/projects-has-many" }, "stacks": { - "type": "object", - "properties": { - "data": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "stacks" - ] - } - } - } - } - } + "$ref": "#/components/schemas/stacks-has-many" }, "parent": { - "type": "object", - "properties": { - "data": { - "type": "object", - "nullable": true, - "properties": { - "id": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "organizations", - "projects" - ] - } - } - } - } + "$ref": "#/components/schemas/varset-parent-has-one" } } } @@ -27800,6 +28046,64 @@ } } }, + "hyok-encrypted-data-keys-identifier": { + "type": "object", + "required": [ + "id", + "type" + ], + "properties": { + "id": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "hyok-encrypted-data-keys" + ] + } + } + }, + "hyok-encrypted-data-keys-has-one": { + "type": "object", + "properties": { + "data": { + "type": "object", + "allOf": [ + { + "$ref": "#/components/schemas/hyok-encrypted-data-keys-identifier" + } + ], + "nullable": true + } + } + }, + "state-version-outputs-identifier": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "state-version-outputs" + ] + } + } + }, + "state-version-outputs-has-many": { + "type": "object", + "nullable": true, + "properties": { + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/state-version-outputs-identifier" + } + } + } + }, "state-versions": { "type": "object", "required": [ @@ -27988,128 +28292,32 @@ "type": "object", "properties": { "run": { - "$ref": "./stub/runs-id.yml" + "$ref": "#/components/schemas/runs-has-one" }, "rollback-state-version": { - "type": "object", - "required": [ - "data" - ], - "properties": { - "data": { - "type": "object", - "nullable": true, - "required": [ - "id", - "type" - ], - "properties": { - "id": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "state-versions" - ] - } - } - } - } + "$ref": "#/components/schemas/state-versions-has-one" }, "next-state-version": { - "type": "object", - "properties": { - "data": { - "type": "object", - "nullable": true, - "properties": { - "id": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "state-versions" - ] - } - } - } - } + "$ref": "#/components/schemas/state-versions-has-one" }, "previous-state-version": { - "type": "object", - "properties": { - "data": { - "type": "object", - "nullable": true, - "properties": { - "id": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "state-versions" - ] - } - } - } - } + "$ref": "#/components/schemas/state-versions-has-one" }, "created-by": { - "$ref": "./stub/users-id.yml" + "$ref": "#/components/schemas/users-has-one" }, "workspace": { - "$ref": "./stub/workspaces-id.yml" + "$ref": "#/components/schemas/workspaces-has-one" }, "hyok-encrypted-data-key": { - "type": "object", - "properties": { - "data": { - "type": "object", - "nullable": true, - "properties": { - "id": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "hyok-encrypted-data-keys" - ] - } - } - } - } + "$ref": "#/components/schemas/hyok-encrypted-data-keys-has-one" }, "outputs": { - "type": "object", - "properties": { - "data": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "state-version-outputs" - ] - } - } - } - }, - "links": { - "$ref": "./related.yml" - } - } - }, - "links": null - }, + "$ref": "#/components/schemas/state-version-outputs-has-many" + } + } + }, + "links": { "$ref": "#/components/schemas/self" } } @@ -28131,6 +28339,36 @@ } } }, + "assessment-source-identifier": { + "type": "object", + "required": [ + "id", + "type" + ], + "properties": { + "id": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "assessments", + "plans" + ] + } + } + }, + "assessment-source-has-one": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/assessment-source-identifier" + }, + "links": { + "$ref": "#/components/schemas/related" + } + } + }, "assessment-results": { "type": "object", "required": [ @@ -28210,54 +28448,12 @@ "type": "object", "properties": { "workspace": { - "type": "object", "description": "The workspace this assessment result belongs to", - "properties": { - "data": { - "type": "object", - "required": [ - "id", - "type" - ], - "properties": { - "id": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "workspaces" - ] - } - } - } - } + "$ref": "#/components/schemas/workspaces-has-one" }, "source": { - "type": "object", "description": "The source assessment or plan that produced this result.", - "properties": { - "data": { - "type": "object", - "required": [ - "id", - "type" - ], - "properties": { - "id": { - "type": "string", - "example": "asmt-8F5JFydVYAmtTjET" - }, - "type": { - "type": "string", - "enum": [ - "assessments", - "plans" - ] - } - } - } - } + "$ref": "#/components/schemas/assessment-source-has-one" } } }, @@ -28305,179 +28501,214 @@ } } }, - "applies-id": { + "applies-identifier": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "applies" + ] + } + } + }, + "applies-has-one": { "type": "object", "properties": { "data": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "applies" - ] - } - } + "$ref": "#/components/schemas/applies-identifier" }, "links": { "$ref": "#/components/schemas/related" } } }, - "cost-estimates-id": { + "cost-estimates-identifier": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "cost-estimates" + ] + } + } + }, + "cost-estimates-has-one": { "type": "object", "properties": { "data": { "type": "object", - "properties": { - "id": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "cost-estimates" - ] + "allOf": [ + { + "$ref": "#/components/schemas/cost-estimates-identifier" } - } + ], + "nullable": true }, "links": { "$ref": "#/components/schemas/related" } } }, - "plans-id": { + "plans-identifier": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "plans" + ] + } + } + }, + "plans-has-one": { "type": "object", "properties": { "data": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "plans" - ] - } - } + "$ref": "#/components/schemas/plans-identifier" }, "links": { "$ref": "#/components/schemas/related" } } }, - "run-events-id": { + "run-events-identifier": { "type": "object", + "properties": { + "id": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "run-events" + ] + } + } + }, + "run-events-has-many": { + "type": "object", + "nullable": true, "properties": { "data": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "run-events" - ] - } + "type": "array", + "items": { + "$ref": "#/components/schemas/run-events-identifier" } + } + } + }, + "task-stages-identifier": { + "type": "object", + "properties": { + "id": { + "type": "string" }, - "links": { - "$ref": "#/components/schemas/related" + "type": { + "type": "string", + "enum": [ + "task-stages" + ] } } }, - "task-stages-id": { + "task-stages-has-many": { "type": "object", + "nullable": true, "properties": { "data": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "task-stages" - ] - } + "type": "array", + "items": { + "$ref": "#/components/schemas/task-stages-identifier" } + } + } + }, + "policy-checks-identifier": { + "type": "object", + "properties": { + "id": { + "type": "string" }, - "links": { - "$ref": "#/components/schemas/related" + "type": { + "type": "string", + "enum": [ + "policy-checks" + ] } } }, - "policy-checks-id": { + "policy-checks-has-many": { "type": "object", + "nullable": true, "properties": { "data": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "policy-checks" - ] - } + "type": "array", + "items": { + "$ref": "#/components/schemas/policy-checks-identifier" } + } + } + }, + "workspace-comments-identifier": { + "type": "object", + "properties": { + "id": { + "type": "string" }, - "links": { - "$ref": "#/components/schemas/related" + "type": { + "type": "string", + "enum": [ + "workspace-comments" + ] } } }, - "comments-id": { + "workspace-comments-has-many": { "type": "object", + "nullable": true, "properties": { "data": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "workspace-comments" - ] - } + "type": "array", + "items": { + "$ref": "#/components/schemas/workspace-comments-identifier" } + } + } + }, + "tf-policy-evaluations-identifier": { + "type": "object", + "properties": { + "id": { + "type": "string" }, - "links": { - "$ref": "#/components/schemas/related" + "type": { + "type": "string", + "enum": [ + "tf-policy-evaluations" + ] } } }, - "tf-policy-evaluations-id": { + "tf-policy-evaluations-has-many": { "type": "object", + "nullable": true, "properties": { "data": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "tf-policy-evaluations" - ] - } + "type": "array", + "items": { + "$ref": "#/components/schemas/tf-policy-evaluations-identifier" } - }, - "links": { - "$ref": "#/components/schemas/related" } } }, @@ -28846,95 +29077,55 @@ "type": "object", "properties": { "workspace": { - "$ref": "#/components/schemas/workspaces-id" + "$ref": "#/components/schemas/workspaces-has-one" }, "triggering-source": { - "$ref": "#/components/schemas/workspaces-id" + "$ref": "#/components/schemas/workspaces-has-one" }, "triggering-run": { - "$ref": "#/components/schemas/runs-id" + "$ref": "#/components/schemas/runs-has-one" }, "apply": { - "$ref": "#/components/schemas/applies-id" + "$ref": "#/components/schemas/applies-has-one" }, "canceled-by": { - "$ref": "#/components/schemas/users-id" + "$ref": "#/components/schemas/users-has-one" }, "configuration-version": { - "$ref": "#/components/schemas/configuration-versions-id" + "$ref": "#/components/schemas/configuration-versions-has-one" }, "confirmed-by": { - "$ref": "#/components/schemas/users-id" + "$ref": "#/components/schemas/users-has-one" }, "cost-estimate": { - "$ref": "#/components/schemas/cost-estimates-id" + "$ref": "#/components/schemas/cost-estimates-has-one" }, "created-by": { - "$ref": "#/components/schemas/users-id" + "$ref": "#/components/schemas/users-has-one" }, "plan": { - "$ref": "#/components/schemas/plans-id" + "$ref": "#/components/schemas/plans-has-one" }, "run-events": { - "type": "object", - "properties": { - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/run-events-id" - } - } - } + "$ref": "#/components/schemas/run-events-has-many" }, "task-stages": { - "type": "object", - "properties": { - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/task-stages-id" - } - } - } + "$ref": "#/components/schemas/task-stages-has-many" }, "policy-checks": { - "type": "object", - "properties": { - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/policy-checks-id" - } - } - } + "$ref": "#/components/schemas/policy-checks-has-many" }, "run-trigger-snapshots": { - "$ref": "#/components/schemas/related" + "$ref": "#/components/schemas/links_related" }, "comments": { - "type": "object", - "properties": { - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/comments-id" - } - } - } + "$ref": "#/components/schemas/workspace-comments-has-many" }, "tf-policy-evaluations": { - "type": "object", "x-vis": [ "public-beta" ], - "properties": { - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/tf-policy-evaluations-id" - } - } - }, + "$ref": "#/components/schemas/tf-policy-evaluations-has-many", "description": "This relationship is considered BETA, is SUBJECT TO CHANGE, and may be unavailable to some users." } } @@ -28952,23 +29143,31 @@ } } }, - "ingress-attributes-id": { + "ingress-attributes-identifier": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "ingress-attributes" + ] + } + } + }, + "ingress-attributes-has-one": { "type": "object", "properties": { "data": { - "nullable": true, "type": "object", - "properties": { - "id": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "ingress-attributes" - ] + "allOf": [ + { + "$ref": "#/components/schemas/ingress-attributes-identifier" } - } + ], + "nullable": true }, "links": { "$ref": "#/components/schemas/related" @@ -29079,7 +29278,7 @@ "type": "object", "properties": { "ingress-attributes": { - "$ref": "#/components/schemas/ingress-attributes-id" + "$ref": "#/components/schemas/ingress-attributes-has-one" } } }, @@ -29107,6 +29306,17 @@ } } }, + "run-events-has-one": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/run-events-identifier" + }, + "links": { + "$ref": "#/components/schemas/related" + } + } + }, "comments": { "type": "object", "required": [ @@ -29136,7 +29346,7 @@ "type": "object", "properties": { "run-event": { - "$ref": "#/components/schemas/run-events-id" + "$ref": "#/components/schemas/run-events-has-one" } } } @@ -29199,10 +29409,10 @@ "type": "object", "properties": { "workspace": { - "$ref": "#/components/schemas/workspaces-id" + "$ref": "#/components/schemas/workspaces-has-one" }, "sourceable": { - "$ref": "#/components/schemas/workspaces-id" + "$ref": "#/components/schemas/workspaces-has-one" } } }, @@ -29241,6 +29451,44 @@ } } }, + "state-versions-has-many": { + "type": "object", + "nullable": true, + "properties": { + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/state-versions-identifier" + } + } + } + }, + "plan-exports-identifier": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "plan-exports" + ] + } + } + }, + "plan-exports-has-many": { + "type": "object", + "nullable": true, + "properties": { + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/plan-exports-identifier" + } + } + } + }, "plans": { "type": "object", "required": [ @@ -29417,87 +29665,19 @@ "type": "object", "properties": { "state-versions": { - "type": "object", "description": "State versions associated with this plan (for TF <= 0.8)", - "properties": { - "data": { - "type": "array", - "items": { - "type": "object", - "required": [ - "id", - "type" - ], - "properties": { - "id": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "state-versions" - ] - } - } - } - } - } + "$ref": "#/components/schemas/state-versions-has-many" }, "exports": { - "type": "object", "description": "Exports associated with this plan", - "properties": { - "data": { - "type": "array", - "items": { - "type": "object", - "required": [ - "id", - "type" - ], - "properties": { - "id": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "plan-exports" - ] - } - } - } - } - } + "$ref": "#/components/schemas/plan-exports-has-many" }, "hyok-encrypted-data-key": { - "type": "object", "description": "HYOK encrypted data key associated with this plan\n\nThis relationship is only available in HCP Terraform.", - "nullable": true, "x-vis": [ "hcpt" ], - "properties": { - "data": { - "type": "object", - "nullable": true, - "required": [ - "id", - "type" - ], - "properties": { - "id": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "hyok-encrypted-data-keys" - ] - } - } - } - } + "$ref": "#/components/schemas/hyok-encrypted-data-keys-has-one" } } }, @@ -29546,25 +29726,29 @@ } } }, - "policy-sets-id": { + "policy-sets-identifier": { "type": "object", + "properties": { + "id": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "policy-sets" + ] + } + } + }, + "policy-sets-has-many": { + "type": "object", + "nullable": true, "properties": { "data": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "policy-sets" - ] - } + "type": "array", + "items": { + "$ref": "#/components/schemas/policy-sets-identifier" } - }, - "links": { - "$ref": "#/components/schemas/related" } } }, @@ -29652,18 +29836,10 @@ "type": "object", "properties": { "organization": { - "$ref": "#/components/schemas/organizations-id" + "$ref": "#/components/schemas/organizations-has-one" }, "policy-sets": { - "type": "object", - "properties": { - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/policy-sets-id" - } - } - } + "$ref": "#/components/schemas/policy-sets-has-many" } } } @@ -29813,7 +29989,7 @@ "type": "object", "properties": { "run": { - "$ref": "#/components/schemas/runs-id" + "$ref": "#/components/schemas/runs-has-one" } } }, @@ -29845,6 +30021,32 @@ } } }, + "tf-policy-set-outcomes-identifier": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "tf-policy-set-outcomes" + ] + } + } + }, + "tf-policy-set-outcomes-has-many": { + "type": "object", + "nullable": true, + "properties": { + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/tf-policy-set-outcomes-identifier" + } + } + } + }, "tf-policy-evaluation": { "type": "object", "description": "Represents a Terraform Policy evaluation for a run. Coordinates the evaluation of multiple policy sets and aggregates their results. Each evaluation is associated with a specific stage (Setup or Plan or Apply) in the run lifecycle.", @@ -30038,59 +30240,12 @@ "type": "object", "properties": { "run": { - "type": "object", "description": "The run that this policy evaluation belongs to", - "properties": { - "data": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "The run's external ID" - }, - "type": { - "type": "string", - "enum": [ - "runs" - ] - } - } - } - } + "$ref": "#/components/schemas/runs-has-one" }, "tf-policy-set-outcomes": { - "type": "object", "description": "The Terraform policy set outcomes that are part of this evaluation", - "properties": { - "data": { - "type": "array", - "description": "List of Terraform policy set outcome resource identifiers", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "The Terraform policy set outcome's external ID" - }, - "type": { - "type": "string", - "enum": [ - "tf-policy-set-outcomes" - ] - } - } - } - }, - "links": { - "type": "object", - "properties": { - "related": { - "type": "string", - "description": "URL to fetch the related Terraform policy set outcomes" - } - } - } - } + "$ref": "#/components/schemas/tf-policy-set-outcomes-has-many" } } }, @@ -30115,6 +30270,17 @@ } } }, + "tf-policy-evaluations-has-one": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/tf-policy-evaluations-identifier" + }, + "links": { + "$ref": "#/components/schemas/related" + } + } + }, "tf-policy-set-outcome": { "type": "object", "description": "Represents the outcome of evaluating a Terraform Policy set against resources in a run. Contains detailed diagnostics organized by policy and enforce block, including information about resources that passed or failed policy evaluation.", @@ -30333,23 +30499,7 @@ "type": "object", "properties": { "tf-policy-evaluation": { - "type": "object", - "properties": { - "data": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "tf-policy-evaluations" - ] - } - } - } - } + "$ref": "#/components/schemas/tf-policy-evaluations-has-one" } } } @@ -30366,48 +30516,60 @@ } } }, - "policy-set-versions-id": { + "policy-set-versions-identifier": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "policy-set-versions" + ] + } + } + }, + "policy-set-versions-has-one": { "type": "object", "properties": { "data": { "type": "object", - "nullable": true, - "properties": { - "id": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "policy-set-versions" - ] + "allOf": [ + { + "$ref": "#/components/schemas/policy-set-versions-identifier" } - } + ], + "nullable": true }, "links": { "$ref": "#/components/schemas/related" } } }, - "policies-id": { + "policies-identifier": { "type": "object", + "properties": { + "id": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "policies" + ] + } + } + }, + "policies-has-many": { + "type": "object", + "nullable": true, "properties": { "data": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "policies" - ] - } + "type": "array", + "items": { + "$ref": "#/components/schemas/policies-identifier" } - }, - "links": { - "$ref": "#/components/schemas/related" } } }, @@ -30580,68 +30742,28 @@ "type": "object", "properties": { "organization": { - "$ref": "#/components/schemas/organizations-id" + "$ref": "#/components/schemas/organizations-has-one" }, "current-version": { - "$ref": "#/components/schemas/policy-set-versions-id" + "$ref": "#/components/schemas/policy-set-versions-has-one" }, "newest-version": { - "$ref": "#/components/schemas/policy-set-versions-id" + "$ref": "#/components/schemas/policy-set-versions-has-one" }, "policies": { - "type": "object", - "properties": { - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/policies-id" - } - } - } + "$ref": "#/components/schemas/policies-has-many" }, "workspaces": { - "type": "object", - "properties": { - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/workspaces-id" - } - } - } + "$ref": "#/components/schemas/workspaces-has-many" }, "projects": { - "type": "object", - "properties": { - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/projects-id" - } - } - } + "$ref": "#/components/schemas/projects-has-many" }, "workspace-exclusions": { - "type": "object", - "properties": { - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/workspaces-id" - } - } - } + "$ref": "#/components/schemas/workspaces-has-many" }, "project-exclusions": { - "type": "object", - "properties": { - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/projects-id" - } - } - } + "$ref": "#/components/schemas/projects-has-many" } } }, @@ -30695,6 +30817,17 @@ } } }, + "policy-sets-has-one": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/policy-sets-identifier" + }, + "links": { + "$ref": "#/components/schemas/related" + } + } + }, "policy-set-versions": { "type": "object", "required": [ @@ -30797,7 +30930,7 @@ "type": "object", "properties": { "policy-set": { - "$ref": "#/components/schemas/policy-sets-id" + "$ref": "#/components/schemas/policy-sets-has-one" } } }, @@ -30826,6 +30959,43 @@ } } }, + "task-stages-has-one": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/task-stages-identifier" + }, + "links": { + "$ref": "#/components/schemas/related" + } + } + }, + "policy-set-outcomes-identifier": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "policy-set-outcomes" + ] + } + } + }, + "policy-set-outcomes-has-many": { + "type": "object", + "nullable": true, + "properties": { + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/policy-set-outcomes-identifier" + } + } + } + }, "policy-evaluations": { "type": "object", "required": [ @@ -30945,53 +31115,10 @@ "type": "object", "properties": { "policy-attachable": { - "type": "object", - "properties": { - "data": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "task-stages" - ] - } - } - } - } + "$ref": "#/components/schemas/task-stages-has-one" }, "policy-set-outcomes": { - "type": "object", - "properties": { - "data": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "policy-set-outcomes" - ] - } - } - } - }, - "links": { - "type": "object", - "properties": { - "related": { - "type": "string" - } - } - } - } + "$ref": "#/components/schemas/policy-set-outcomes-has-many" } } }, @@ -31016,22 +31143,25 @@ } } }, - "policy-evaluations-id": { + "policy-evaluations-identifier": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "policy-evaluations" + ] + } + } + }, + "policy-evaluations-has-one": { "type": "object", "properties": { "data": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "policy-evaluations" - ] - } - } + "$ref": "#/components/schemas/policy-evaluations-identifier" }, "links": { "$ref": "#/components/schemas/related" @@ -31136,7 +31266,7 @@ "type": "object", "properties": { "policy-evaluation": { - "$ref": "#/components/schemas/policy-evaluations-id" + "$ref": "#/components/schemas/policy-evaluations-has-one" } } } @@ -31235,7 +31365,7 @@ "type": "object", "properties": { "plan": { - "$ref": "#/components/schemas/plans-id" + "$ref": "#/components/schemas/plans-has-one" } } }, @@ -31264,24 +31394,6 @@ } } }, - "state-versions-id": { - "type": "object", - "required": [ - "id", - "type" - ], - "properties": { - "id": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "state-versions" - ] - } - } - }, "applies": { "type": "object", "properties": { @@ -31415,15 +31527,7 @@ "type": "object", "properties": { "state-versions": { - "type": "object", - "properties": { - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/state-versions-id" - } - } - } + "$ref": "#/components/schemas/state-versions-has-many" } } }, @@ -31633,26 +31737,54 @@ } } }, - "hyok-customer-key-versions-id": { + "hyok-customer-key-versions-identifier": { "type": "object", + "properties": { + "id": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "hyok-customer-key-versions" + ] + } + } + }, + "hyok-customer-key-versions-has-many": { + "type": "object", + "nullable": true, "properties": { "data": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "hyok-customer-key-versions" - ] - } + "type": "array", + "items": { + "$ref": "#/components/schemas/hyok-customer-key-versions-identifier" } } } }, - "oidc-configurations-id": { + "oidc-configurations-identifier": { + "type": "object", + "required": [ + "id", + "type" + ], + "properties": { + "id": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "aws-oidc-configurations", + "azure-oidc-configurations", + "gcp-oidc-configurations", + "vault-oidc-configurations" + ] + } + } + }, + "oidc-configurations-has-one": { "type": "object", "nullable": true, "required": [ @@ -31661,25 +31793,12 @@ "properties": { "data": { "type": "object", - "nullable": true, - "required": [ - "id", - "type" - ], - "properties": { - "id": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "aws-oidc-configurations", - "azure-oidc-configurations", - "gcp-oidc-configurations", - "vault-oidc-configurations" - ] + "allOf": [ + { + "$ref": "#/components/schemas/oidc-configurations-identifier" } - } + ], + "nullable": true } } }, @@ -31712,6 +31831,24 @@ "primary": { "type": "boolean" }, + "status": { + "type": "string", + "readOnly": true, + "enum": [ + "untested", + "testing", + "test_failed", + "available", + "errored", + "revoking", + "revoked" + ] + }, + "error": { + "type": "string", + "readOnly": true, + "nullable": true + }, "kms-options": { "type": "object", "nullable": true, @@ -31727,6 +31864,10 @@ "key-ring-id": { "type": "string", "description": "Only required with GCP KMS" + }, + "multi-region": { + "type": "boolean", + "description": "Optional for AWS KMS" } } } @@ -31736,47 +31877,16 @@ "type": "object", "properties": { "organization": { - "readOnly": true, - "$ref": "#/components/schemas/organizations-id" + "$ref": "#/components/schemas/organizations-has-one" }, "agent-pool": { - "$ref": "#/components/schemas/agent-pools-id" + "$ref": "#/components/schemas/agent-pools-has-one" }, "hyok-customer-key-versions": { - "readOnly": true, - "type": "object", - "properties": { - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/hyok-customer-key-versions-id" - } - } - } + "$ref": "#/components/schemas/hyok-customer-key-versions-has-many" }, "oidc-configuration": { - "readOnly": true, - "$ref": "#/components/schemas/oidc-configurations-id", - "type": "object", - "properties": { - "data": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "aws-oidc-configurations", - "gcp-oidc-configurations", - "azure-oidc-configurations", - "vault-oidc-configurations" - ] - } - } - } - } + "$ref": "#/components/schemas/oidc-configurations-has-one" } } } @@ -31828,7 +31938,7 @@ "type": "object", "properties": { "organization": { - "$ref": "#/components/schemas/organizations-id" + "$ref": "#/components/schemas/organizations-has-one" } } } @@ -31884,7 +31994,7 @@ "type": "object", "properties": { "organization": { - "$ref": "#/components/schemas/organizations-id" + "$ref": "#/components/schemas/organizations-has-one" } } } @@ -31928,7 +32038,7 @@ "type": "object", "properties": { "organization": { - "$ref": "#/components/schemas/organizations-id" + "$ref": "#/components/schemas/organizations-has-one" } } } @@ -31975,7 +32085,7 @@ "type": "object", "properties": { "organization": { - "$ref": "#/components/schemas/organizations-id" + "$ref": "#/components/schemas/organizations-has-one" } } } @@ -32059,8 +32169,7 @@ "type": "object", "properties": { "hyok-configuration": { - "readOnly": true, - "$ref": "#/components/schemas/hyok-configurations-id" + "$ref": "#/components/schemas/hyok-configurations-has-one" } } } @@ -32077,6 +32186,14 @@ } } }, + "hyok-customer-key-versions-has-one": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/hyok-customer-key-versions-identifier" + } + } + }, "hyok-encrypted-data-keys": { "type": "object", "required": [ @@ -32116,8 +32233,7 @@ "type": "object", "properties": { "hyok-customer-key-version": { - "readOnly": true, - "$ref": "#/components/schemas/hyok-customer-key-versions-id" + "$ref": "#/components/schemas/hyok-customer-key-versions-has-one" } } } @@ -32134,6 +32250,54 @@ } } }, + "teams-nullable-has-one": { + "type": "object", + "properties": { + "data": { + "type": "object", + "allOf": [ + { + "$ref": "#/components/schemas/teams-identifier" + } + ], + "nullable": true + } + } + }, + "auth-token-created-by-identifier": { + "type": "object", + "required": [ + "id", + "type" + ], + "properties": { + "id": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "users", + "organizations", + "teams" + ] + } + } + }, + "auth-token-created-by-has-one": { + "type": "object", + "properties": { + "data": { + "type": "object", + "allOf": [ + { + "$ref": "#/components/schemas/auth-token-created-by-identifier" + } + ], + "nullable": true + } + } + }, "authentication-tokens": { "type": "object", "required": [ @@ -32185,36 +32349,10 @@ "type": "object", "properties": { "team": { - "$ref": "#/components/schemas/links_related", - "properties": { - "data": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "type": { - "type": "string" - } - } - } - } + "$ref": "#/components/schemas/teams-nullable-has-one" }, "created-by": { - "$ref": "#/components/schemas/links_related", - "properties": { - "data": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "type": { - "type": "string" - } - } - } - } + "$ref": "#/components/schemas/auth-token-created-by-has-one" } } } @@ -32266,26 +32404,7 @@ "type": "object", "properties": { "user": { - "type": "object", - "properties": { - "data": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "users" - ] - } - } - }, - "links": { - "$ref": "#/components/schemas/related" - } - } + "$ref": "#/components/schemas/users-has-one" } } } @@ -32360,22 +32479,11 @@ } } }, - "teams-id": { + "teams-has-one": { "type": "object", "properties": { "data": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "teams" - ] - } - } + "$ref": "#/components/schemas/teams-identifier" }, "links": { "$ref": "#/components/schemas/related" @@ -32517,10 +32625,10 @@ "type": "object", "properties": { "team": { - "$ref": "#/components/schemas/teams-id" + "$ref": "#/components/schemas/teams-has-one" }, "project": { - "$ref": "#/components/schemas/projects-id" + "$ref": "#/components/schemas/projects-has-one" } } }, @@ -32633,10 +32741,10 @@ "type": "object", "properties": { "team": { - "$ref": "#/components/schemas/teams-id" + "$ref": "#/components/schemas/teams-has-one" }, "workspace": { - "$ref": "#/components/schemas/workspaces-id" + "$ref": "#/components/schemas/workspaces-has-one" } } }, @@ -32860,7 +32968,7 @@ "type": "object", "properties": { "created-by": { - "$ref": "#/components/schemas/users-id" + "$ref": "#/components/schemas/users-has-one" } } }, @@ -32869,46 +32977,62 @@ } } }, - "oauth-clients-id": { + "oauth-clients-identifier": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "oauth-clients" + ] + } + } + }, + "oauth-clients-has-one": { "type": "object", "properties": { "data": { "type": "object", - "nullable": true, - "properties": { - "id": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "oauth-clients" - ] + "allOf": [ + { + "$ref": "#/components/schemas/oauth-clients-identifier" } - } + ], + "nullable": true }, "links": { "$ref": "#/components/schemas/related" } } }, - "oauth-tokens-id": { + "oauth-tokens-identifier": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "oauth-tokens" + ] + } + } + }, + "oauth-tokens-has-one": { "type": "object", "properties": { "data": { "type": "object", - "nullable": true, - "properties": { - "id": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "oauth-tokens" - ] + "allOf": [ + { + "$ref": "#/components/schemas/oauth-tokens-identifier" } - } + ], + "nullable": true }, "links": { "$ref": "#/components/schemas/related" @@ -32960,10 +33084,10 @@ "type": "object", "properties": { "oauth-client": { - "$ref": "#/components/schemas/oauth-clients-id" + "$ref": "#/components/schemas/oauth-clients-has-one" }, "oauth-token": { - "$ref": "#/components/schemas/oauth-tokens-id" + "$ref": "#/components/schemas/oauth-tokens-has-one" } } } @@ -33244,42 +33368,53 @@ } } }, - "test-runs-id": { + "test-runs-identifier": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "test-runs" + ] + } + } + }, + "test-runs-has-one": { "type": "object", "properties": { "data": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "test-runs" - ] - } - } + "$ref": "#/components/schemas/test-runs-identifier" + } + } + }, + "test-run-cleanups-identifier": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "test-run-cleanups" + ] } } }, - "test-run-cleanups-id": { + "test-run-cleanups-has-one": { "type": "object", "properties": { "data": { "type": "object", - "nullable": true, - "properties": { - "id": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "test-run-cleanups" - ] + "allOf": [ + { + "$ref": "#/components/schemas/test-run-cleanups-identifier" } - } + ], + "nullable": true }, "links": { "$ref": "#/components/schemas/related" @@ -33354,13 +33489,13 @@ "type": "object", "properties": { "test-run": { - "$ref": "#/components/schemas/test-runs-id" + "$ref": "#/components/schemas/test-runs-has-one" }, "created-by": { - "$ref": "#/components/schemas/users-id" + "$ref": "#/components/schemas/users-has-one" }, "previous-test-run-cleanup": { - "$ref": "#/components/schemas/test-run-cleanups-id" + "$ref": "#/components/schemas/test-run-cleanups-has-one" } } } @@ -33486,53 +33621,13 @@ "type": "object", "properties": { "workspace": { - "$ref": "#/components/schemas/workspaces-id" + "$ref": "#/components/schemas/workspaces-has-one" }, "created-by": { - "type": "object", - "properties": { - "data": { - "type": "object", - "nullable": true, - "properties": { - "id": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "users" - ] - } - } - }, - "links": { - "$ref": "#/components/schemas/related" - } - } + "$ref": "#/components/schemas/users-has-one" }, "archived-by-user": { - "type": "object", - "properties": { - "data": { - "type": "object", - "nullable": true, - "properties": { - "id": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "users" - ] - } - } - }, - "links": { - "$ref": "#/components/schemas/related" - } - } + "$ref": "#/components/schemas/users-has-one" } } } @@ -33549,6 +33644,18 @@ } } }, + "oauth-tokens-has-many": { + "type": "object", + "nullable": true, + "properties": { + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/oauth-tokens-identifier" + } + } + } + }, "oauth-clients": { "type": "object", "required": [ @@ -33648,70 +33755,16 @@ "type": "object", "properties": { "organization": { - "$ref": "#/components/schemas/organizations-id" + "$ref": "#/components/schemas/organizations-has-one" }, "agent-pool": { - "$ref": "#/components/schemas/agent-pools-id" + "$ref": "#/components/schemas/agent-pools-has-one" }, "projects": { - "type": "object", - "properties": { - "data": { - "type": "array", - "items": { - "type": "object", - "required": [ - "id", - "type" - ], - "properties": { - "id": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "projects" - ] - } - } - } - } - } + "$ref": "#/components/schemas/projects-has-many" }, "oauth-tokens": { - "type": "object", - "properties": { - "data": { - "type": "array", - "items": { - "type": "object", - "required": [ - "id", - "type" - ], - "properties": { - "id": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "oauth-tokens" - ] - } - } - } - }, - "links": { - "type": "object", - "properties": { - "related": { - "type": "string" - } - } - } - } + "$ref": "#/components/schemas/oauth-tokens-has-many" } } } @@ -33777,7 +33830,7 @@ "type": "object", "properties": { "oauth-client": { - "$ref": "#/components/schemas/oauth-clients-id" + "$ref": "#/components/schemas/oauth-clients-has-one" }, "vcs-organizations": { "$ref": "#/components/schemas/links_related" @@ -33831,7 +33884,7 @@ "type": "object", "properties": { "oauth-token": { - "$ref": "#/components/schemas/oauth-tokens-id" + "$ref": "#/components/schemas/oauth-tokens-has-one" } } } @@ -33960,7 +34013,7 @@ } } }, - "workspace-tasks-id": { + "workspace-tasks-identifier": { "type": "object", "properties": { "id": { @@ -33974,6 +34027,53 @@ } } }, + "workspace-tasks-has-many": { + "type": "object", + "nullable": true, + "properties": { + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/workspace-tasks-identifier" + } + } + } + }, + "integrations-identifier": { + "type": "object", + "required": [ + "id", + "type" + ], + "properties": { + "id": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "integrations" + ] + } + } + }, + "integrations-has-one": { + "type": "object", + "properties": { + "data": { + "type": "object", + "allOf": [ + { + "$ref": "#/components/schemas/integrations-identifier" + } + ], + "nullable": true + }, + "links": { + "$ref": "#/components/schemas/related" + } + } + }, "tasks": { "type": "object", "required": [ @@ -34014,6 +34114,11 @@ "enabled": { "type": "boolean" }, + "params": { + "type": "object", + "additionalProperties": true, + "nullable": true + }, "created-at": { "type": "string", "format": "date-time", @@ -34048,21 +34153,16 @@ "type": "object", "properties": { "organization": { - "$ref": "#/components/schemas/organizations-id" + "$ref": "#/components/schemas/organizations-has-one" }, "workspace-tasks": { - "type": "object", - "properties": { - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/workspace-tasks-id" - } - } - } + "$ref": "#/components/schemas/workspace-tasks-has-many" }, "agent-pool": { - "$ref": "#/components/schemas/agent-pools-id" + "$ref": "#/components/schemas/agent-pools-has-one" + }, + "integration": { + "$ref": "#/components/schemas/integrations-has-one" } } }, @@ -34082,22 +34182,25 @@ } } }, - "tasks-id": { + "tasks-identifier": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "tasks" + ] + } + } + }, + "tasks-has-one": { "type": "object", "properties": { "data": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "tasks" - ] - } - } + "$ref": "#/components/schemas/tasks-identifier" }, "links": { "$ref": "#/components/schemas/related" @@ -34157,10 +34260,10 @@ "type": "object", "properties": { "task": { - "$ref": "#/components/schemas/tasks-id" + "$ref": "#/components/schemas/tasks-has-one" }, "workspace": { - "$ref": "#/components/schemas/workspaces-id" + "$ref": "#/components/schemas/workspaces-has-one" } } }, @@ -34180,25 +34283,41 @@ } } }, - "task-results-id": { + "task-results-identifier": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "task-results" + ] + } + } + }, + "task-results-has-many": { "type": "object", + "nullable": true, "properties": { "data": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "task-results" - ] - } + "type": "array", + "items": { + "$ref": "#/components/schemas/task-results-identifier" + } + } + } + }, + "policy-evaluations-has-many": { + "type": "object", + "nullable": true, + "properties": { + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/policy-evaluations-identifier" } - }, - "links": { - "$ref": "#/components/schemas/related" } } }, @@ -34284,52 +34403,16 @@ "type": "object", "properties": { "run": { - "$ref": "#/components/schemas/runs-id" + "$ref": "#/components/schemas/runs-has-one" }, "cost-estimate": { - "type": "object", - "properties": { - "data": { - "nullable": true, - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "cost-estimates" - ] - } - } - }, - "links": { - "$ref": "#/components/schemas/related" - } - } + "$ref": "#/components/schemas/cost-estimates-has-one" }, "task-results": { - "type": "object", - "properties": { - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/task-results-id" - } - } - } + "$ref": "#/components/schemas/task-results-has-many" }, "policy-evaluations": { - "type": "object", - "properties": { - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/policy-evaluations-id" - } - } - } + "$ref": "#/components/schemas/policy-evaluations-has-many" } } }, @@ -34463,7 +34546,7 @@ "type": "object", "properties": { "task-stage": { - "$ref": "#/components/schemas/task-stages-id" + "$ref": "#/components/schemas/task-stages-has-one" }, "task-result-outcomes": { "type": "object", @@ -34543,6 +34626,17 @@ } } }, + "task-results-has-one": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/task-results-identifier" + }, + "links": { + "$ref": "#/components/schemas/related" + } + } + }, "task-result-outcomes": { "type": "object", "properties": { @@ -34611,7 +34705,7 @@ "type": "object", "properties": { "task-result": { - "$ref": "#/components/schemas/task-results-id" + "$ref": "#/components/schemas/task-results-has-one" } } }, @@ -34641,6 +34735,32 @@ } } }, + "workspace-transfer-events-identifier": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "workspace-transfer-events" + ] + } + } + }, + "workspace-transfer-events-has-many": { + "type": "object", + "nullable": true, + "properties": { + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/workspace-transfer-events-identifier" + } + } + } + }, "workspace-transfers": { "type": "object", "required": [ @@ -34761,26 +34881,7 @@ "type": "object", "properties": { "events": { - "type": "object", - "properties": { - "data": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "workspace-transfer-events" - ] - } - } - } - } - } + "$ref": "#/components/schemas/workspace-transfer-events-has-many" } } } diff --git a/skills/tfctl/known_release_hashes b/skills/tfctl/known_release_hashes index 242830d..b7e03c0 100644 --- a/skills/tfctl/known_release_hashes +++ b/skills/tfctl/known_release_hashes @@ -3,3 +3,4 @@ # each release of tfctl. 4a3a72856d49a4de32b7b1f6a379918a956d3931f8a7ff71c06a1e3e4bd3e34f v0.3.0 01386dc8dbf4d2cf1b3ea027cd0b2ad3c4dfbbdb3701b75e19937352ddc35b96 v0.4.0-beta +5bdee5f7f47d9e77ffa8f1835f936235b4fa9dac5c864d01feb2b59613c5c05f v0.5.0 diff --git a/version/VERSION b/version/VERSION index 578dca3..8f0916f 100644 --- a/version/VERSION +++ b/version/VERSION @@ -1 +1 @@ -0.4.0-beta +0.5.0