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
81
82
|
variable "documents" {
description = "Map of SSM automation documents to create"
type = map(object({
name = string
document_type = optional(string, "Automation")
document_format = optional(string, "YAML")
content = string
target_type = optional(string, null)
version_name = optional(string, null)
permissions = optional(object({ account_ids = list(string) }), null)
}))
default = {}
}
variable "maintenance_windows" {
description = "Map of SSM maintenance windows"
type = map(object({
name = string
description = optional(string, "")
schedule = string
duration = optional(number, 2)
cutoff = optional(number, 1)
allow_unassociated_targets = optional(bool, false)
schedule_timezone = optional(string, "UTC")
}))
default = {}
}
variable "maintenance_window_targets" {
description = "Map of maintenance window targets"
type = map(object({
window_key = string
resource_type = optional(string, "INSTANCE")
target_key = optional(string, "tag:Patch")
target_values = optional(list(string), ["true"])
owner_information = optional(string, null)
}))
default = {}
}
variable "maintenance_window_tasks" {
description = "Map of maintenance window tasks"
type = map(object({
window_key = string
target_key = string
task_type = optional(string, "RUN_COMMAND")
task_arn = string
service_role_arn = optional(string, null)
priority = optional(number, 1)
max_concurrency = optional(string, "1")
max_errors = optional(string, "1")
run_command_parameters = optional(object({
document_version = optional(string, "$LATEST")
output_s3_bucket = optional(string, null)
parameters = optional(map(list(string)), {})
}), null)
}))
default = {}
}
variable "patch_baselines" {
description = "Map of patch baselines to create"
type = map(object({
name = string
description = optional(string, "")
operating_system = optional(string, "AMAZON_LINUX_2")
approved_patches = optional(list(string), [])
rejected_patches = optional(list(string), [])
approval_rules = optional(list(object({
approve_after_days = optional(number, 7)
compliance_level = optional(string, "CRITICAL")
patch_filter_groups = list(map(list(string)))
})), [])
}))
default = {}
}
variable "tags" {
description = "Resource tags to apply to all resources"
type = map(string)
default = {}
}
|