1
0
Files
terraform.examples/modules/ApplicationIntegration/terraform-aws-apigateway-v2/variables.tf
T
2026-02-13 15:44:24 +08:00

228 lines
6.3 KiB
Terraform

variable "create" {
description = "Controls if API Gateway resources should be created"
type = bool
default = true
}
variable "create_api_gateway" {
description = "Whether to create API Gateway"
type = bool
default = true
}
variable "create_default_stage" {
description = "Whether to create default stage"
type = bool
default = true
}
variable "create_default_stage_api_mapping" {
description = "Whether to create default stage API mapping"
type = bool
default = true
}
# variable "create_stage" {
# description = "Whether to create custom stage"
# type = bool
# default = false
# }
#
# variable "create_stage_api_mapping" {
# description = "Whether to create stage API mapping"
# type = bool
# default = false
# }
variable "create_api_domain_name" {
description = "Whether to create API domain name resource"
type = bool
default = true
}
variable "create_routes_and_integrations" {
description = "Whether to create routes and integrations resources"
type = bool
default = true
}
variable "create_vpc_link" {
description = "Whether to create VPC links"
type = bool
default = true
}
# API Gateway
variable "name" {
description = "The name of the API"
type = string
default = ""
}
variable "description" {
description = "The description of the API."
type = string
default = null
}
variable "default_route_settings" {
description = "Settings for default route"
type = map(string)
default = {}
}
variable "disable_execute_api_endpoint" {
description = "Whether clients can invoke the API by using the default execute-api endpoint. To require that clients use a custom domain name to invoke the API, disable the default endpoint"
type = string
default = false
}
variable "fail_on_warnings" {
description = "Whether warnings should return an error while API Gateway is creating or updating the resource using an OpenAPI specification. Defaults to false. Applicable for HTTP APIs."
type = bool
default = false
}
variable "protocol_type" {
description = "The API protocol. Valid values: HTTP, WEBSOCKET"
type = string
default = "HTTP"
}
variable "api_key_selection_expression" {
description = "An API key selection expression. Valid values: $context.authorizer.usageIdentifierKey, $request.header.x-api-key."
type = string
default = "$request.header.x-api-key"
}
variable "route_key" {
description = "Part of quick create. Specifies any route key. Applicable for HTTP APIs."
type = string
default = null
}
variable "route_selection_expression" {
description = "The route selection expression for the API."
type = string
default = "$request.method $request.path"
}
variable "cors_configuration" {
description = "The cross-origin resource sharing (CORS) configuration. Applicable for HTTP APIs."
type = any
default = {}
}
variable "credentials_arn" {
description = "Part of quick create. Specifies any credentials required for the integration. Applicable for HTTP APIs."
type = string
default = null
}
variable "target" {
description = "Part of quick create. Quick create produces an API with an integration, a default catch-all route, and a default stage which is configured to automatically deploy changes. For HTTP integrations, specify a fully qualified URL. For Lambda integrations, specify a function ARN. The type of the integration will be HTTP_PROXY or AWS_PROXY, respectively. Applicable for HTTP APIs."
type = string
default = null
}
variable "body" {
description = "An OpenAPI specification that defines the set of routes and integrations to create as part of the HTTP APIs. Supported only for HTTP APIs."
type = string
default = null
}
variable "api_version" {
description = "A version identifier for the API"
type = string
default = null
}
variable "tags" {
description = "A mapping of tags to assign to API gateway resources."
type = map(string)
default = {}
}
#####
# default stage
variable "default_stage_access_log_destination_arn" {
description = "Default stage's ARN of the CloudWatch Logs log group to receive access logs. Any trailing :* is trimmed from the ARN."
type = string
default = null
}
variable "default_stage_access_log_format" {
description = "Default stage's single line format of the access logs of data, as specified by selected $context variables."
type = string
default = null
}
variable "default_stage_tags" {
description = "A mapping of tags to assign to the default stage resource."
type = map(string)
default = {}
}
#####
# default stage API mapping
####
# domain name
variable "domain_name" {
description = "The domain name to use for API gateway"
type = string
default = null
}
variable "domain_name_certificate_arn" {
description = "The ARN of an AWS-managed certificate that will be used by the endpoint for the domain name"
type = string
default = null
}
variable "domain_name_ownership_verification_certificate_arn" {
description = "ARN of the AWS-issued certificate used to validate custom domain ownership (when certificate_arn is issued via an ACM Private CA or mutual_tls_authentication is configured with an ACM-imported certificate.)"
type = string
default = null
}
variable "domain_name_tags" {
description = "A mapping of tags to assign to API domain name resource."
type = map(string)
default = {}
}
variable "mutual_tls_authentication" {
description = "An Amazon S3 URL that specifies the truststore for mutual TLS authentication as well as version, keyed at uri and version"
type = map(string)
default = {}
}
####
# routes and integrations
variable "integrations" {
description = "Map of API gateway routes with integrations"
type = map(any)
default = {}
}
# authorrizers
variable "authorizers" {
description = "Map of API gateway authorizers"
type = map(any)
default = {}
}
# vpc link
variable "vpc_links" {
description = "Map of VPC Links details to create"
type = map(any)
default = {}
}
variable "vpc_link_tags" {
description = "A map of tags to add to the VPC Link"
type = map(string)
default = {}
}