page_title | subcategory | description |
---|---|---|
http Data Source - terraform-provider-http |
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.
~> Important Although https URLs can be used, there is currently no
mechanism to authenticate the remote server except for general verification of
the server certificate's chain of trust. Data retrieved from servers not under
your control should be treated as untrustworthy.
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 https://pkg.go.dev/github.com/hashicorp/go-retryablehttp. |
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.
~> Important Although https
URLs can be used, there is currently no
mechanism to authenticate the remote server except for general verification of
the server certificate's chain of trust. Data retrieved from servers not under
your control should be treated as untrustworthy.
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 arehttp
andhttps
.
ca_cert_pem
(String) Certificate Authority (CA) in PEM (RFC 1421) format.client_cert_pem
(String) Client certificate in PEM (RFC 1421) format.client_key_pem
(String) Client key in PEM (RFC 1421) format.insecure
(Boolean) Disables verification of the server's certificate chain and hostname. Defaults tofalse
method
(String) The HTTP Method for the request. Allowed methods are a subset of methods defined in RFC7231 namely,GET
,HEAD
, andPOST
.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)sensitive_request_headers
(Map of String, Sensitive) A map of request header field names and values regarded as sensitive. The header values are masked in CLI output, as well as Terraform state.
body
(String, Deprecated) The response body returned as a string. NOTE: This is deprecated, useresponse_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.
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.