terraform/website/source/docs/enterprise/api/index.html.md

86 lines
2.5 KiB
Markdown
Raw Normal View History

---
2017-03-21 22:50:17 +01:00
layout: "api"
page_title: "API Documentation"
sidebar_current: "docs-enterprise-api"
description: |-
Terraform Enterprise provides an API for a **subset of features**.
---
2017-03-21 22:50:17 +01:00
# Terraform Enterprise API Documentation
2017-03-21 22:50:17 +01:00
Terraform Enterprise provides an API for a **subset of features** available. For questions
or requests for new API features please email [support@hashicorp.com](mailto:support@hashicorp.com).
2017-03-21 22:50:17 +01:00
## Available Endpoints Terraform Enterprise
2017-03-21 22:50:17 +01:00
- [Environments](/docs/enterprise/api/environments.html)
- [Runs](/docs/enterprise/api/runs.html)
- [States](/docs/enterprise/api/states.html)
## Authentication
All requests must be authenticated with an `X-Atlas-Token` HTTP header. This
token can be generated or revoked on the [account tokens page](/settings/tokens).
Your token will have access to all resources your account has access to.
For organization level resources, we recommend creating a separate user account
that can be added to the organization with the specific privilege level
required.
## Response Codes
Standard HTTP response codes are returned. `404 Not Found`
codes are returned for all resources that a user does not have access to,
as well as for resources that don't exist. This is done to avoid a
potential attacker discovering the existence of a resource.
## Errors
Errors are returned in JSON format:
{
"errors": {
"name": [
"has already been taken"
]
}
}
## Versioning
The API currently resides under the `/v1` prefix. Future APIs
will increment this version leaving the `/v1` API intact, though
in the future certain features may be deprecated. In that case,
ample notice to migrate to the new API will be provided.
## Content Type
The API accepts namespaced attributes in either
JSON or `application/x-www-form-urlencoded`. We recommend
using JSON, but for simplicity form style requests are supported.
Below is an equivalent example with both styles using `curl`.
### JSON Request Example
$ cat variables.json
{
"variables": {
"desired_capacity": "15",
"foo": "bar"
}
}
$ curl %{ATLAS_URL}/api/v1/environments/%{DEFAULT_USERNAME}/test/variables \
-X PUT \
-H 'Content-Type: application/json' \
-d @variables.json \
-H "X-Atlas-Token: $ATLAS_TOKEN"
### Form URL Encoded Example
$ curl %{ATLAS_URL}/api/v1/environments/%{DEFAULT_USERNAME}/test/variables \
-X PUT \
-d variables[foo]='bar' \
-d variables[desired_capacity]='15' \
-H "X-Atlas-Token: $ATLAS_TOKEN"