Movatterモバイル変換


[0]ホーム

URL:


HashiConf 2025Don't miss the live stream of HashiConf Day 2 happening now View live stream

You are viewing documentation for version v202411-2.View latest version.

Avariable set is a resource that allows you to reuse the same variables across multiple workspaces and projects. For example, you could define a variable set of provider credentials and automatically apply it to a selection of workspaces, all workspaces in a project, or all workspaces in an organization.

You needRead variables permission to view the variables for a particular workspace and to view the variable sets in the owning organization. To create or edit variable sets, your team must haveManage all workspaces organization access.

Create a Variable Set

POST organizations/:organization_name/varsets

ParameterDescription
:organization_nameThe name of the organization the workspace belongs to.

Request Body

Properties without a default value are required.

Key pathTypeDefaultDescription
data.attributes.namestringThe name of the variable set.
data.attributes.descriptionstring""Text displayed in the UI to contextualize the variable set and its purpose.
data.attributes.globalbooleanfalseWhen true, HCP Terraform automatically applies the variable set to all current and future workspaces in the organization.
data.attributes.prioritybooleanfalseWhen true, the variables in the set override any other variable values with a more specific scope, including values set on the command line.
data.relationships.workspacesarray`[]`Array of references to workspaces that the variable set should be assigned to.
data.relationships.projectsarray`[]`Array of references to projects that the variable set should be assigned to.
data.relationships.varsarray`[]`Array of complete variable definitions that comprise the variable set.

HCP Terraform does not allow different global variable sets to contain conflicting variables with the same name and type. You will receive a 422 response if you try to create a global variable set that contains conflicting variables.

StatusResponseReason(s)
200JSON API documentSuccessfully added variable set
404JSON API error objectOrganization not found, or user unauthorized to perform action
422JSON API error objectProblem with payload or request; details provided in the error object

Sample Payload

{  "data": {    "type": "varsets",    "attributes": {      "name": "MyVarset",      "description": "Full of vars and such for mass reuse",      "global": false,      "priority": false,    },    "relationships": {      "workspaces": {        "data": [          {            "id": "ws-z6YvbWEYoE168kpq",            "type": "workspaces"          }        ]      },      "vars": {        "data": [          {            "type": "vars",            "attributes": {              "key": "c2e4612d993c18e42ef30405ea7d0e9ae",              "value": "8676328808c5bf56ac5c8c0def3b7071",              "category": "terraform"            }          }        ]      }    }  }}

Sample Request

curl \  --header "Authorization: Bearer $TOKEN" \  --header "Content-Type: application/vnd.api+json" \  --request POST \  --data @payload.json \  https://app.terraform.io/api/v2/organizations/my-organization/varsets

Sample Response

{  "data": {    "id": "varset-kjkN545LH2Sfercv",    "type": "varsets",    "attributes": {      "name": "MyVarset",      "description": "Full of vars and such for mass reuse",      "global": false,      "priority": false,    },    "relationships": {      "workspaces": {        "data": [          {            "id": "ws-z6YvbWEYoE168kpq",            "type": "workspaces"          }        ]      },      "projects": {        "data": [          {            "id": "prj-lkjasdlkfjs",            "type": "projects"          }        ]      },      "vars": {        "data": [          {            "id": "var-Nh0doz0hzj9hrm34qq",            "type": "vars",            "attributes": {              "key": "c2e4612d993c18e42ef30405ea7d0e9ae",              "value": "8676328808c5bf56ac5c8c0def3b7071",              "category": "terraform"            }          }        ]      }    }  }}

Update a Variable Set

PUT/PATCH varsets/:varset_id

ParameterDescription
:varset_idThe variable set ID

HCP Terraform does not allow global variable sets to contain conflicting variables with the same name and type. You will receive a 422 response if you try to create a global variable set that contains conflicting variables.

Request Body

Key pathTypeDefaultDescription
data.attributes.namestringThe name of the variable set.
data.attributes.descriptionstringText displayed in the UI to contextualize the variable set and its purpose.
data.attributes.globalbooleanWhen true, HCP Terraform automatically applies the variable set to all current and future workspaces in the organization.
data.attributes.prioritybooleanfalseWhen true, the variables in the set override any other variable values set with a more specific scope, including values set on the command line.
data.relationships.workspacesarrayOptional Array of references to workspaces that the variable set should be assigned to. Sending an empty array clears all workspace assignments.
data.relationships.projectsarrayOptional Array of references to projects that the variable set should be assigned to. Sending an empty array clears all project assignments.
data.relationships.varsarrayOptional Array of complete variable definitions to add to the variable set.
StatusResponseReason(s)
200JSON API documentSuccessfully updated variable set
404JSON API error objectOrganization or variable set not found, or user unauthorized to perform action
422JSON API error objectProblem with payload or request; details provided in the error object

Sample Payload

{  "data": {    "type": "varsets",    "attributes": {      "name": "MyVarset",      "description": "Full of vars and such for mass reuse. Now global!",      "global": true,      "priority": true,    },    "relationships": {      "workspaces": {        "data": [          {            "id": "ws-FRFwkYoUoGn1e34b",            "type": "workspaces"          }        ]      },      "projects": {        "data": [          {            "id": "prj-kFjgSzcZSr5c3imE",            "type": "projects"          }        ]      },      "vars": {        "data": [          {            "type": "vars",            "attributes": {              "key": "c2e4612d993c18e42ef30405ea7d0e9ae",              "value": "8676328808c5bf56ac5c8c0def3b7071",              "category": "terraform"            }          }        ]      }    }  }}

Sample Request

curl \  --header "Authorization: Bearer $TOKEN" \  --header "Content-Type: application/vnd.api+json" \  --request PATCH \  --data @payload.json \  https://app.terraform.io/api/v2/varsets/varset-kjkN545LH2Sfercv

Sample Response

{  "data": {    "id": "varset-kjkN545LH2Sfercv",    "type": "varsets",    "attributes": {      "name": "MyVarset",      "description": "Full of vars and such for mass reuse. Now global!",      "global": true,      "priority": true    },    "relationships": {      "vars": {        "data": [          {            "id": "var-Nh0doz0hzj9hrm34qq",            "type": "vars",            "attributes": {              "key": "c2e4612d993c18e42ef30405ea7d0e9ae",              "value": "8676328808c5bf56ac5c8c0def3b7071",              "category": "terraform"            }          }        ]      }    }  }}

Delete a Variable Set

DELETE varsets/:varset_id

ParameterDescription
:varset_idThe variable set ID

Sample Request

curl \  --header "Authorization: Bearer $TOKEN" \  --header "Content-Type: application/vnd.api+json" \  --request DELETE \  https://app.terraform.io/api/v2/varsets/varset-kjkN545LH2Sfercv

On success, this endpoint responds with no content.

Show Variable Set

Fetch details about the specified variable set.

GET varsets/:varset_id

ParameterDescription
:varset_idThe variable set ID

Sample Request

curl \  --header "Authorization: Bearer $TOKEN" \  --header "Content-Type: application/vnd.api+json" \  --request GET \  https://app.terraform.io/api/v2/varsets/varset-kjkN545LH2Sfercv

Sample Response

{  "data": {    "id": "varset-kjkN545LH2Sfercv",    "type": "varsets",    "attributes": {      "name": "MyVarset",      "description": "Full of vars and such for mass reuse",      "global": false,      "priority": false,      "updated-at": "2023-03-06T21:48:33.588Z",      "var-count": 5,      "workspace-count": 2,      "project-count": 2    },    "relationships": {      "organization": {        "data": {          "id": "hashicorp",          "type": "organizations"        }      },      "vars": {        "data": [          {            "id": "var-mMqadSCxZtrQJAv8",            "type": "vars"          },          {            "id": "var-hFxUUKSk35QMsRVH",            "type": "vars"          },          {            "id": "var-fkd6N48tXRmoaPxH",            "type": "vars"          },          {            "id": "var-abcbBMBMWcZw3WiV",            "type": "vars"          },          {            "id": "var-vqvRKK1ZoqQCiMwN",            "type": "vars"          }        ]      },      "workspaces": {        "data": [          {            "id": "ws-UohFdKAHUGsQ8Dtf",            "type": "workspaces"          },          {            "id": "ws-XhGhaaCrsx9ATson",            "type": "workspaces"          }        ]      },      "projects": {        "data": [          {            "id": "prj-1JMwvPHFsdpsPhnt",            "type": "projects"          },          {            "id": "prj-SLDGqbYqELXE1obp",            "type": "projects"          }        ]      }    }  }}

List Variable Sets

List all variable sets for an organization.

GET organizations/:organization_name/varsets

ParameterDescription
:organization_nameThe name of the organization the variable sets belong to

List all variable sets for a project. This includes global variable sets from the project's organization.

GET projects/:project_id/varsets

ParameterDescription
:project_idThe project ID

List all variable sets for a workspace. This includes global variable sets from the workspace's organization and variable setsattached to the project this workspace is contained within.

GET workspaces/:workspace_id/varsets

ParameterDescription
:workspace_idThe workspace ID

Query Parameters

All list endpoints support paginationwith standard URL query parameters and searching with theq parameter. Remember to percent-encode[ as%5B and] as%5D if your tooling doesn't automatically encode URLs.

ParameterDescription
page[number]Optional. If omitted, the endpoint returns the first page.
page[size]Optional. If omitted, the endpoint returns 20 varsets per page.
qOptional. A search query string. You can search for a variable set using its name.

Sample Response

{  "data": [    {      "id": "varset-kjkN545LH2Sfercv",      "type": "varsets",      "attributes": {        "name": "MyVarset",        "description": "Full of vars and such for mass reuse",        "global": false,        "priority": false,        "updated-at": "2023-03-06T21:48:33.588Z",        "var-count": 5,        "workspace-count": 2,        "project-count": 2      },      "relationships": {        "organization": {          "data": {            "id": "hashicorp",            "type": "organizations"          }        },        "vars": {          "data": [            {              "id": "var-mMqadSCxZtrQJAv8",              "type": "vars"            },            {              "id": "var-hFxUUKSk35QMsRVH",              "type": "vars"            },            {              "id": "var-fkd6N48tXRmoaPxH",              "type": "vars"            },            {              "id": "var-abcbBMBMWcZw3WiV",              "type": "vars"            },            {              "id": "var-vqvRKK1ZoqQCiMwN",              "type": "vars"            }          ]        },        "workspaces": {          "data": [            {              "id": "ws-UohFdKAHUGsQ8Dtf",              "type": "workspaces"            },            {              "id": "ws-XhGhaaCrsx9ATson",              "type": "workspaces"            }          ]        },        "projects": {          "data": [            {              "id": "prj-1JMwvPHFsdpsPhnt",              "type": "projects"            },            {              "id": "prj-SLDGqbYqELXE1obp",              "type": "projects"            }          ]        }      }    }  ],  "links": {    "self": "https://app.terraform.io/api/v2/organizations/hashicorp/varsets?page%5Bnumber%5D=1&page%5Bsize%5D=20",    "first": "https://app.terraform.io/api/v2/organizations/hashicorp/varsets?page%5Bnumber%5D=1&page%5Bsize%5D=20",    "prev": null,    "next": null,    "last": "https://app.terraform.io/api/v2/organizations/hashicorp/varsets?page%5Bnumber%5D=1&page%5Bsize%5D=20"  },  "meta": {    "pagination": {      "current-page": 1,      "page-size": 20,      "prev-page": null,      "next-page": null,      "total-pages": 1,      "total-count": 1    }  }}

Variable Relationships

Add Variable

POST varsets/:varset_external_id/relationships/vars

ParameterDescription
:varset_idThe variable set ID

Request Body

This POST endpoint requires a JSON object with the following properties as a request payload.

Properties without a default value are required.

Key pathTypeDefaultDescription
data.typestringMust be"vars".
data.attributes.keystringThe name of the variable.
data.attributes.valuestring""The value of the variable.
data.attributes.descriptionstringThe description of the variable.
data.attributes.categorystringWhether this is a Terraform or environment variable. Valid values are"terraform" or"env".
data.attributes.hclboolfalseWhether to evaluate the value of the variable as a string of HCL code. Has no effect for environment variables.
data.attributes.sensitiveboolfalseWhether the value is sensitive. If true, variable is not visible in the UI.

HCP Terraform does not allow different global variable sets to contain conflicting variables with the same name and type. You will receive a 422 response if you try to add a conflicting variable to a global variable set.

StatusResponseReason(s)
200JSON API documentSuccessfully added variable to variable set
404JSON API error objectVariable set not found, or user unauthorized to perform action
422JSON API error objectProblem with payload or request; details provided in the error object

Sample Payload

{  "data": {    "type": "vars",    "attributes": {      "key": "g6e45ae7564a17e81ef62fd1c7fa86138",      "value": "61e400d5ccffb3782f215344481e6c82",      "description": "cheeeese",      "sensitive": false,      "category": "terraform",      "hcl": false    }  }}

Sample Request

curl \  --header "Authorization: Bearer $TOKEN" \  --header "Content-Type: application/vnd.api+json" \  --request POST \  --data @payload.json \  https://app.terraform.io/api/v2/varsets/varset-4q8f7H0NHG733bBH/relationships/vars

Sample Respone

{  "data": {    "id":"var-EavQ1LztoRTQHSNT",    "type": "vars",    "attributes": {      "key": "g6e45ae7564a17e81ef62fd1c7fa86138",      "value": "61e400d5ccffb3782f215344481e6c82",      "description": "cheeeese",      "sensitive": false,      "category": "terraform",      "hcl": false    }  }}

Update a Variable in a Variable Set

PATCH varsets/:varset_id/relationships/vars/:var_id

ParameterDescription
:varset_idThe variable set ID
:var_idThe ID of the variable to delete

HCP Terraform does not allow different global variable sets to contain conflicting variables with the same name and type. You will receive a 422 response if you try to add a conflicting variable to a global variable set.

StatusResponseReason(s)
200JSON API documentSuccessfully updated variable for variable set
404JSON API error objectVariable set not found, or user unauthorized to perform action
422JSON API error objectProblem with payload or request; details provided in the error object

Sample Payload

{  "data": {    "type": "vars",    "attributes": {      "key": "g6e45ae7564a17e81ef62fd1c7fa86138",      "value": "61e400d5ccffb3782f215344481e6c82",      "description": "new cheeeese",      "sensitive": false,      "category": "terraform",      "hcl": false    }  }}

Sample Request

curl \  --header "Authorization: Bearer $TOKEN" \  --header "Content-Type: application/vnd.api+json" \  --request PATCH \  --data @payload.json \  https://app.terraform.io/api/v2/varsets/varset-4q8f7H0NHG733bBH/relationships/vars/var-EavQ1LztoRTQHSNT

Sample Response

{  "data": {    "id":"var-EavQ1LztoRTQHSNT",    "type": "vars",    "attributes": {      "key": "g6e45ae7564a17e81ef62fd1c7fa86138",      "value": "61e400d5ccffb3782f215344481e6c82",      "description": "new cheeeese",      "sensitive": false,      "category": "terraform",      "hcl": false    }  }}

Delete a Variable in a Variable Set

DELETE varsets/:varset_id/relationships/vars/:var_id

ParameterDescription
:varset_idThe variable set ID
:var_idThe ID of the variable to delete

Sample Request

curl \  --header "Authorization: Bearer $TOKEN" \  --header "Content-Type: application/vnd.api+json" \  --request DELETE \  https://app.terraform.io/api/v2/varsets/varset-4q8f7H0NHG733bBH/relationships/vars/var-EavQ1LztoRTQHSNT

On success, this endpoint responds with no content.

List Variables in a Variable Set

GET varsets/:varset_id/relationships/vars

ParameterDescription
:varset_idThe variable set ID

Sample Response

{  "data": [    {      "id": "var-134r1k34nj5kjn",      "type": "vars",      "attributes": {        "key": "F115037558b045dd82da40b089e5db745",        "value": "1754288480dfd3060e2c37890422905f",        "sensitive": false,        "category": "terraform",        "hcl": false,        "created-at": "2021-10-29T18:54:29.379Z",        "description": ""      },      "relationships": {        "varset": {          "data": {            "id": "varset-992UMULdeDuebi1x",            "type": "varsets"          },          "links": {"related": "/api/v2/varsets/1" }        }      },      "links": {"self": "/api/v2/vars/var-BEPU9NjPVCiCfrXj" }    }  ],  "links": {    "self": "app.terrafor.io/app/varsets/varset-992UMULdeDuebi1x/vars",    "first": "app.terrafor.io/app/varsets/varset-992UMULdeDuebi1x/vars?page=1",    "prev": null,    "next": null,    "last": "app.terrafor.io/app/varsets/varset-992UMULdeDuebi1x/vars?page=1"  }}

Apply Variable Set to Workspaces

Accepts a list of workspaces to add the variable set to.

POST varsets/:varset_id/relationships/workspaces

ParameterDescription
:varset_idThe variable set ID

Properties without a default value are required.

Key pathTypeDefaultDescription
data[].typestringMust be"workspaces"
data[].idstringThe id of the workspace to add the variable set to
StatusResponseReason(s)
204Successfully added variable set to the requested workspaces
404JSON API error objectVariable set not found or user unauthorized to perform action
422JSON API error objectProblem with payload or request; details provided in the error object

Sample Payload

{  "data": [    {      "type": "workspaces",      "id": "ws-YwfuBJZkdai4xj9w"    }  ]}

Sample Request

curl \  --header "Authorization: Bearer $TOKEN" \  --header "Content-Type: application/vnd.api+json" \  --request POST \  --data @payload.json \  https://app.terraform.io/api/v2/varsets/varset-kjkN545LH2Sfercv/relationships/workspaces

Remove a Variable Set from Workspaces

Accepts a list of workspaces to remove the variable set from.

DELETE varsets/:varset_id/relationships/workspaces

ParameterDescription
:varset_idThe variable set ID

Properties without a default value are required.

Key pathTypeDefaultDescription
data[].typestringMust be"workspaces"
data[].idstringThe id of the workspace to delete the variable set from
StatusResponseReason(s)
204Successfully removed variable set from the requested workspaces
404JSON API error objectVariable set not found or user unauthorized to perform action
422JSON API error objectProblem with payload or request; details provided in the error object

Sample Payload

{  "data": [    {      "type": "workspaces",      "id": "ws-YwfuBJZkdai4xj9w"    },    {      "type": "workspaces",      "id": "ws-YwfuBJZkdai4xj9w"    }  ]}

Sample Request

curl \  --header "Authorization: Bearer $TOKEN" \  --header "Content-Type: application/vnd.api+json" \  --request DELETE \  --data @payload.json \  https://app.terraform.io/api/v2/varsets/varset-kjkN545LH2Sfercv/relationships/workspaces

Apply Variable Set to Projects

Accepts a list of projects to add the variable set to. When you apply a variable set to a project, all the workspaces in that project will have the variable set applied to them.

POST varsets/:varset_id/relationships/projects

ParameterDescription
:varset_idThe variable set ID

Properties without a default value are required.

Key pathTypeDefaultDescription
data[].typestringMust be"projects"
data[].idstringThe id of the project to add the variable set to
StatusResponseReason(s)
204Successfully added variable set to the requested projects
404JSON API error objectVariable set not found or user unauthorized to perform action
422JSON API error objectProblem with payload or request; details provided in the error object

Sample Payload

{  "data": [    {      "type": "projects",      "id": "prj-YwfuBJZkdai4xj9w"    }  ]}

Sample Request

curl \  --header "Authorization: Bearer $TOKEN" \  --header "Content-Type: application/vnd.api+json" \  --request POST \  --data @payload.json \  https://app.terraform.io/api/v2/varsets/varset-kjkN545LH2Sfercv/relationships/projects

Remove a Variable Set from Projects

Accepts a list of projects to remove the variable set from.

DELETE varsets/:varset_id/relationships/projects

ParameterDescription
:varset_idThe variable set ID

Properties without a default value are required.

Key pathTypeDefaultDescription
data[].typestringMust be"projects"
data[].idstringThe id of the project to delete the variable set from
StatusResponseReason(s)
204Successfully removed variable set from the requested projects
404JSON API error objectVariable set not found or user unauthorized to perform action
422JSON API error objectProblem with payload or request; details provided in the error object

Sample Payload

{  "data": [    {      "type": "projects",      "id": "prj-YwfuBJZkdai4xj9w"    },    {      "type": "projects",      "id": "prj-lkjasdfiojwerlkj"    }  ]}

Sample Request

curl \  --header "Authorization: Bearer $TOKEN" \  --header "Content-Type: application/vnd.api+json" \  --request DELETE \  --data @payload.json \  https://app.terraform.io/api/v2/varsets/varset-kjkN545LH2Sfercv/relationships/projects

Available Related Resources

The GET endpoints above can optionally return related resources, if requested withtheinclude query parameter. The following resource types are available:

Resource NameDescription
varsShow each variable in a variable set and all of their attributes includingid,key,value,sensitive,category,hcl,created_at, anddescription.
Edit this page on GitHub

[8]ページ先頭

©2009-2025 Movatter.jp