1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
|
variable "clusters" {
description = "Map of Redshift cluster definitions"
type = map(object({
cluster_identifier = string
database_name = string
master_username = string
node_type = optional(string, "ra3.xlplus")
cluster_type = optional(string, "multi-node")
number_of_nodes = optional(number, 2)
port = optional(number, 5439)
allow_version_upgrade = optional(bool, true)
publicly_accessible = optional(bool, false)
encrypted = optional(bool, true)
kms_key_id = optional(string, null)
enhanced_vpc_routing = optional(bool, true)
automated_snapshot_retention_period = optional(number, 7)
preferred_maintenance_window = optional(string, "sun:05:00-sun:05:30")
skip_final_snapshot = optional(bool, false)
final_snapshot_identifier = optional(string, null)
snapshot_cluster_identifier = optional(string, null)
snapshot_identifier = optional(string, null)
availability_zone = optional(string, null)
availability_zone_relocation_enabled = optional(bool, false)
iam_roles = optional(list(string), [])
logging = optional(object({
enable = optional(bool, true)
bucket_name = optional(string, null)
s3_key_prefix = optional(string, "redshift/")
}), null)
subnet_group_name = optional(string, null)
parameter_group_name = optional(string, null)
vpc_security_group_ids = optional(list(string), [])
}))
default = {}
}
variable "subnet_groups" {
description = "Map of Redshift subnet group definitions"
type = map(object({
name = string
description = optional(string, "")
subnet_ids = list(string)
}))
default = {}
}
variable "parameter_groups" {
description = "Map of Redshift parameter group definitions"
type = map(object({
name = string
family = optional(string, "redshift-1.0")
description = optional(string, "")
parameters = optional(map(string), {})
}))
default = {}
}
variable "scheduled_actions" {
description = "Map of Redshift scheduled action definitions (pause/resume)"
type = map(object({
name = string
cluster_key = string
schedule = string
action_type = string
iam_role_arn = string
pause = optional(bool, null)
resize = optional(object({
node_type = string
number_of_nodes = number
cluster_type = string
}), null)
}))
default = {}
}
variable "tags" {
description = "Resource tags to apply to all resources"
type = map(string)
default = {}
}
|