2021-10-07 09:20:07 -07:00
/ * *
2022-01-01 06:52:31 -08:00
* Copyright 2022 Google LLC
2021-10-07 09:20:07 -07:00
*
* 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 " authorized_networks " {
description = " Map of NAME=>CIDR_RANGE to allow to connect to the database(s). "
type = map ( string )
default = null
}
variable " availability_type " {
2022-01-31 01:45:34 -08:00
description = " Availability type for the primary replica. Either `ZONAL` or `REGIONAL`. "
2021-10-07 09:20:07 -07:00
type = string
default = " ZONAL "
}
variable " backup_configuration " {
2022-01-31 01:45:34 -08:00
description = " Backup settings for primary instance. Will be automatically enabled if using MySQL with one or more replicas. "
2021-10-07 09:20:07 -07:00
type = object ( {
enabled = bool
binary_log_enabled = bool
2021-10-18 05:33:19 -07:00
start_time = string
location = string
log_retention_days = number
2021-10-18 07:55:37 -07:00
retention_count = number
2021-10-07 09:20:07 -07:00
} )
default = {
enabled = false
binary_log_enabled = false
2021-10-18 05:33:19 -07:00
start_time = " 23:00 "
2022-04-10 03:33:00 -07:00
location = null
2021-10-18 05:33:19 -07:00
log_retention_days = 7
2021-10-18 06:10:54 -07:00
retention_count = 7
2021-10-18 05:33:19 -07:00
}
}
2021-10-07 09:20:07 -07:00
variable " database_version " {
description = " Database type and version to create. "
type = string
}
variable " databases " {
description = " Databases to create once the primary instance is created. "
type = list ( string )
default = null
}
2021-10-07 09:25:49 -07:00
variable " deletion_protection " {
2021-10-08 09:26:04 -07:00
description = " Allow terraform to delete instances. "
type = bool
default = false
2021-10-07 09:25:49 -07:00
}
2021-10-07 09:20:07 -07:00
variable " disk_size " {
description = " Disk size in GB. Set to null to enable autoresize. "
type = number
default = null
}
variable " disk_type " {
description = " The type of data disk: `PD_SSD` or `PD_HDD`. "
type = string
default = " PD_SSD "
}
2022-04-12 10:01:34 -07:00
variable " encryption_key_name " {
2022-04-12 15:22:54 -07:00
description = " The full path to the encryption key used for the CMEK disk encryption of the primary instance. "
2022-04-12 10:01:34 -07:00
type = string
default = null
}
2021-10-07 09:20:07 -07:00
variable " flags " {
description = " Map FLAG_NAME=>VALUE for database-specific tuning. "
type = map ( string )
default = null
}
variable " labels " {
description = " Labels to be attached to all instances. "
type = map ( string )
default = null
}
variable " name " {
2022-04-12 15:22:54 -07:00
description = " Name of primary instance. "
2021-10-07 09:20:07 -07:00
type = string
}
variable " network " {
description = " VPC self link where the instances will be deployed. Private Service Networking must be enabled and configured in this VPC. "
type = string
}
variable " prefix " {
2022-11-10 07:05:53 -08:00
description = " Optional prefix used to generate instance names. "
2021-10-07 09:20:07 -07:00
type = string
default = null
2022-11-10 07:05:53 -08:00
validation {
2022-11-10 07:11:38 -08:00
condition = var . prefix ! = " "
2022-11-11 03:56:47 -08:00
error_message = " Prefix cannot be empty, please use null instead. "
2022-11-10 07:05:53 -08:00
}
2021-10-07 09:20:07 -07:00
}
variable " project_id " {
description = " The ID of the project where this instances will be created. "
type = string
}
variable " region " {
2022-04-12 15:22:54 -07:00
description = " Region of the primary instance. "
2021-10-07 09:20:07 -07:00
type = string
}
variable " replicas " {
2022-04-12 10:01:34 -07:00
description = " Map of NAME=> {REGION, KMS_KEY} for additional read replicas. Set to null to disable replica creation. "
type = map ( object ( {
region = string
encryption_key_name = string
} ) )
default = { }
2021-10-07 09:20:07 -07:00
}
2022-09-29 03:57:19 -07:00
variable " root_password " {
description = " Root password of the Cloud SQL instance. Required for MS SQL Server "
type = string
default = null
}
2021-10-08 09:26:04 -07:00
variable " tier " {
description = " The machine type to use for the instances. "
type = string
}
2021-10-07 09:20:07 -07:00
variable " users " {
2022-01-31 01:45:34 -08:00
description = " Map of users to create in the primary instance (and replicated to other replicas) in the format USER=>PASSWORD. For MySQL, anything afterr the first `@` (if persent) will be used as the user's host. Set PASSWORD to null if you want to get an autogenerated password. "
2021-10-07 09:20:07 -07:00
type = map ( string )
default = null
}
2022-08-09 04:42:42 -07:00
variable " ipv4_enabled " {
description = " Add a public IP address to database instance. "
type = bool
default = false
}