modules/apigee/variables.tf (127 lines of code) (raw):
/**
* Copyright 2022 Google LLC
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
variable "apigee_org_name" {
description = "Display name for Apigee Organization."
type = string
default = "Apigee Org"
}
variable "apigee_org_description" {
description = "Description for Apigee Organization."
type = string
default = "Apigee Org"
}
variable "analytics_region" {
description = "GCP region for storing Apigee analytics data (see https://cloud.google.com/apigee/docs/api-platform/get-started/install-cli)."
type = string
}
variable "apigee_envgroups" {
description = "Apigee groups (NAME => [HOSTNAMES])."
type = map(list(string))
default = null
}
variable "apigee_environments" {
description = "Apigee Environments."
type = map(object({
display_name = optional(string)
description = optional(string, "Terraform-managed")
deployment_type = optional(string)
api_proxy_type = optional(string)
node_config = optional(object({
min_node_count = optional(number)
max_node_count = optional(number)
}))
iam = optional(map(list(string)))
envgroups = optional(list(string))
regions = optional(list(string))
}))
default = null
}
variable "apigee_instances" {
description = "Apigee Instances ([REGION] => [INSTANCE])."
type = map(object({
display_name = optional(string)
description = optional(string, "Terraform-managed")
runtime_ip_cidr_range = string
troubleshooting_ip_cidr_range = string
disk_encryption_key = optional(string)
consumer_accept_list = optional(list(string))
}))
default = null
}
variable "apigee_endpoint_attachments" {
description = "Apigee endpoint attachments (for southbound networking: https://cloud.google.com/apigee/docs/api-platform/architecture/southbound-networking-patterns-endpoints#create-the-psc-attachments)."
type = map(object({
region = string
service_attachment = string
}))
default = {}
}
variable "kms_project_id" {
description = "Project ID in which to create keys for Apigee database and disk (org/instance)"
type = string
default = ""
}
variable "psa_ranges" {
description = "Apigee Private Service Access peering ranges"
type = object({
apigee-range = string
google-managed-services-support-1 = string
})
default = {
apigee-range = "10.0.0.0/22"
google-managed-services-support-1 = "10.1.0.0/28"
}
}
variable "project_id" {
description = "Project id (also used for the Apigee Organization)."
type = string
}
variable "network_id" {
description = "VPC network ID"
type = string
}
variable "subnet_id" {
description = "Apigee NEG subnet ID"
type = string
}
variable "ssl_certificate" {
description = "SSL Certificate ID for Apigee Load Balancer"
type = string
}
variable "external_ip" {
description = "Reserved global external IP for Apigee Load Balancer"
type = string
}
variable "billing_type" {
description = "Apigee billing type. Can be one of EVALUATION, PAYG, or SUBSCRIPTION. See https://cloud.google.com/apigee/pricing"
type = string
default = "EVALUATION"
}
variable "runtime_type" {
description = "Apigee runtime type. Can be one of CLOUD or HYBRID."
type = string
default = "CLOUD"
}
# variable "region" {
# description = "Region in which to create resources"
# type = string
# default = "us-central1"
# }
variable "create_apigee_org" {
description = "Set to `true` to create a new Apigee org in the provided `var.project_id`; set to `false` to use the existing Apigee org in this project."
type = bool
default = true
}
variable "prevent_key_destroy" {
description = "Prevent destroying KMS keys for Apigee Org and Instances"
type = bool
default = true
}