Terraform
State Version Outputs API
State version outputs are the output values from a Terraform state file. They include the name and value of the output, as well as a sensitive boolean if the value should be hidden by default in UIs.
Important: The state version outputs for a state version (as well as some other information about it) might be populated asynchronously by HCP Terraform. These values might not be immediately available after the state version is uploaded. The resources-processed
property on the associated state version object indicates whether or not HCP Terraform has finished any necessary asynchronous processing. If you need to use these values, be sure to wait for resources-processed
to become true
before assuming that the values are in fact empty.
List State Version Outputs
GET /state-versions/:state_version_id/outputs
Listing state version outputs requires permission to read state outputs for the workspace. (More about permissions.)
Parameter | Description |
---|---|
:state_version_id | The ID of the desired state version. |
Status | Response | Reason |
---|---|---|
200 | JSON API document | Successfully returned a list of outputs for the given state version. |
404 | JSON API error object | State version not found, or user unauthorized to perform action. |
Query Parameters
This endpoint supports pagination with standard URL query parameters. Remember to percent-encode [
as %5B
and ]
as %5D
if your tooling doesn't automatically encode URLs.
Parameter | Description |
---|---|
page[number] | Optional. If omitted, the endpoint will return the first page. |
page[size] | Optional. If omitted, the endpoint will return 20 state version outputs per page. |
Sample Request
curl \
--header "Authorization: Bearer $TOKEN" \
--header "Content-Type: application/vnd.api+json" \
https://app.terraform.io/api/v2/state-versions/sv-SDboVZC8TCxXEneJ/outputs
Sample Response
{
"data": [
{
"id": "wsout-xFAmCR3VkBGepcee",
"type": "state-version-outputs",
"attributes": {
"name": "fruits",
"sensitive": false,
"type": "array",
"value": [
"apple",
"strawberry",
"blueberry",
"rasberry"
],
"detailed_type": [
"tuple",
[
"string",
"string",
"string",
"string"
]
]
},
"links": {
"self": "/api/v2/state-version-outputs/wsout-xFAmCR3VkBGepcee"
}
},
{
"id": "wsout-vspuB754AUNkfxwo",
"type": "state-version-outputs",
"attributes": {
"name": "vegetables",
"sensitive": false,
"type": "array",
"value": [
"carrots",
"potato",
"tomato",
"onions"
],
"detailed_type": [
"tuple",
[
"string",
"string",
"string",
"string"
]
]
},
"links": {
"self": "/api/v2/state-version-outputs/wsout-vspuB754AUNkfxwo"
}
}
],
"links": {
"self": "https://app.terraform.io/api/v2/state-versions/sv-SVB5wMrDL1XUgJ4G/outputs?page%5Bnumber%5D=1&page%5Bsize%5D=20",
"first": "https://app.terraform.io/api/v2/state-versions/sv-SVB5wMrDL1XUgJ4G/outputs?page%5Bnumber%5D=1&page%5Bsize%5D=20",
"prev": null,
"next": null,
"last": "https://app.terraform.io/api/v2/state-versions/sv-SVB5wMrDL1XUgJ4G/outputs?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": 2
}
}
}
Show a State Version Output
GET /state-version-outputs/:state_version_output_id
Parameter | Description |
---|---|
:state_version_output_id | The ID of the desired state version output. |
State version output IDs must be obtained from a state version object. When requesting a state version, you can optionally add ?include=outputs
to include full details for all of that state version's outputs.
Status | Response | Reason |
---|---|---|
200 | JSON API document (type: "state-version-outputs" ) | Success. |
404 | JSON API error object | State version output not found or user not authorized. |
Sample Request
curl \
--header "Authorization: Bearer $TOKEN" \
https://app.terraform.io/api/v2/state-version-outputs/wsout-J2zM24JPFbfc7bE5
Sample Response
{
"data": {
"id": "wsout-J2zM24JPFbfc7bE5",
"type": "state-version-outputs",
"attributes": {
"name": "flavor",
"sensitive": false,
"type": "string",
"value": "Peanut Butter",
"detailed-type": "string"
},
"links": {
"self": "/api/v2/state-version-outputs/wsout-J2zM24JPFbfc7bE5"
}
}
}
Show Current State Version Outputs for a Workspace
This endpoint allows organization users, who do not have permissions to read state versions, to fetch the latest output values for a workspace. (More about permissions.)
Note: Sensitive values are not revealed and will be returned as null
. To fetch an output including sensitive values see Show a State Version Output.
GET /workspaces/:workspace_id/current-state-version-outputs
Parameter | Description |
---|---|
:workspace_id | The ID of the workspace to read outputs from. |
Status | Response | Reason |
---|---|---|
200 | JSON API document (type: "state-version-outputs" ) | Successfully returned a list of outputs for the given workspace. |
404 | JSON API error object | State version outputs not found or user not authorized. |
[503][] | JSON API error object | State version outputs are being processed and are not ready. Retry the request. |
Sample Request
curl \
--header "Authorization: Bearer $TOKEN" \
--header "Content-Type: application/vnd.api+json" \
https://app.terraform.io/api/v2/workspaces/ws-G4zM299PFbfc10E5/current-state-version-outputs
Sample Response
{
"data": [
{
"id": "wsout-J2zM24JPFbfc7bE5",
"type": "state-version-outputs",
"attributes": {
"name": "flavor",
"sensitive": false,
"type": "string",
"value": "Peanut Butter",
"detailed-type": "string"
},
"links": {
"self": "/api/v2/state-version-outputs/wsout-J2zM24JPFbfc7bE5"
}
},
{
"id": "wsout-FLzM23Gcd5f37bE5",
"type": "state-version-outputs",
"attributes": {
"name": "recipe",
"sensitive": true,
"type": "string",
"value": "Don Douglas' Peanut Butter Frenzy",
"detailed-type": "string"
},
"links": {
"self": "/api/v2/state-version-outputs/wsout-FLzM23Gcd5f37bE5"
}
}
]
}