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.
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"