variables.tf
 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     = {}
}