The http
data source makes an HTTP GET request to the given URL and exports
information about the response.
The given URL may be either an http
or https
URL. This resource
will issue a warning if the result is not UTF-8 encoded.
By default, there are no retries. Configuring the retry block will result in retries if an error is returned by the client (e.g., connection errors) or if a 5xx-range (except 501) status code is received. For further details see go-retryablehttp.
# The following example shows how to issue an HTTP GET request supplying
# an optional request header.
data "http" "example" {
url = "https://checkpoint-api.hashicorp.com/v1/check/terraform"
# Optional request headers
request_headers = {
Accept = "application/json"
}
}
# The following example shows how to issue an HTTP HEAD request.
data "http" "example_head" {
url = "https://checkpoint-api.hashicorp.com/v1/check/terraform"
method = "HEAD"
}
# The following example shows how to issue an HTTP POST request
# supplying an optional request body.
data "http" "example_post" {
url = "https://checkpoint-api.hashicorp.com/v1/check/terraform"
method = "POST"
# Optional request body
request_body = "request body"
}
Precondition and Postcondition checks are available with Terraform v1.2.0 and later.
data "http" "example" {
url = "https://checkpoint-api.hashicorp.com/v1/check/terraform"
# Optional request headers
request_headers = {
Accept = "application/json"
}
lifecycle {
postcondition {
condition = contains([201, 204], self.status_code)
error_message = "Status code invalid"
}
}
}
Precondition and Postcondition checks are available with Terraform v1.2.0 and later.
data "http" "example" {
url = "https://checkpoint-api.hashicorp.com/v1/check/terraform"
# Optional request headers
request_headers = {
Accept = "application/json"
}
}
resource "random_uuid" "example" {
lifecycle {
precondition {
condition = contains([201, 204], data.http.example.status_code)
error_message = "Status code invalid"
}
}
}
Failure Behaviour can be leveraged within a provisioner in order to raise an error and stop applying.
data "http" "example" {
url = "https://checkpoint-api.hashicorp.com/v1/check/terraform"
# Optional request headers
request_headers = {
Accept = "application/json"
}
}
resource "null_resource" "example" {
# On success, this will attempt to execute the true command in the
# shell environment running terraform.
# On failure, this will attempt to execute the false command in the
# shell environment running terraform.
provisioner "local-exec" {
command = contains([201, 204], data.http.example.status_code)
}
}
url
(String) The URL for the request. Supported schemes are http
and https
.ca_cert_pem
(String) Certificate data of the Certificate Authority (CA) in PEM (RFC 1421) format.insecure
(Boolean) Disables verification of the server's certificate chain and hostname. Defaults to false
method
(String) The HTTP Method for the request. Allowed methods are a subset of methods defined in RFC7231 namely, GET
, HEAD
, and POST
. POST
support is only intended for read-only URLs, such as submitting a search.request_body
(String) The request body as a string.request_headers
(Map of String) A map of request header field names and values.request_timeout_ms
(Number) The request timeout in milliseconds.retry
(Block, Optional) Retry request configuration. By default there are no retries. Configuring this block will result in retries if an error is returned by the client (e.g., connection errors) or if a 5xx-range (except 501) status code is received. For further details see go-retryablehttp. (see below for nested schema)body
(String, Deprecated) The response body returned as a string. NOTE: This is deprecated, use response_body
instead.id
(String) The URL used for the request.response_body
(String) The response body returned as a string.response_body_base64
(String) The response body encoded as base64 (standard) as defined in RFC 4648.response_headers
(Map of String) A map of response header field names and values. Duplicate headers are concatenated according to RFC2616.status_code
(Number) The HTTP response status code.retry
Optional:
attempts
(Number) The number of times the request is to be retried. For example, if 2 is specified, the request will be tried a maximum of 3 times.max_delay_ms
(Number) The maximum delay between retry requests in milliseconds.min_delay_ms
(Number) The minimum delay between retry requests in milliseconds.