generated from aws-ia/.github
-
Notifications
You must be signed in to change notification settings - Fork 32
/
variables.tf
137 lines (116 loc) · 5.21 KB
/
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
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
variable "pool_configurations" {
type = any
default = {}
description = <<-EOF
A multi-level, nested map describing nested IPAM pools. Can nest up to three levels with the top level being outside the `pool_configurations` in vars prefixed `top_`. If arugument descriptions are omitted, you can find them in the [official documentation](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/vpc_ipam_pool#argument-reference).
- `ram_share_principals` = (optional, list(string)) of valid organization principals to create ram shares to.
- `name` = (optional, string) name to give the pool, the key of your map in var.pool_configurations will be used if omitted.
- `description` = (optional, string) description to give the pool, the key of your map in var.pool_configurations will be used if omitted.
- `cidr` = (optional, list(string)) list of CIDRs to provision into pool. Conflicts with `netmask_length`.
- `netmask_length` = (optional, number) netmask length to request provisioned into pool. Conflicts with `cidr`.
- `locale` = (optional, string) locale to set for pool.
- `auto_import` = (optional, string)
- `tags` = (optional, map(string))
- `allocation_default_netmask_length` = (optional, string)
- `allocation_max_netmask_length` = (optional, string)
- `allocation_min_netmask_length` = (optional, string)
- `allocation_resource_tags` = (optional, map(string))
The following arguments are available but only relevant for public ips
- `cidr_authorization_context` = (optional, map(string)) Details found in [official documentation](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/vpc_ipam_pool_cidr#cidr_authorization_context).
- `aws_service` = (optional, string)
- `publicly_advertisable` = (optional, bool)
- `sub_pools` = (nested repeats of pool_configuration object above)
EOF
}
variable "top_cidr" {
description = "Top-level CIDR blocks."
type = list(string)
default = null
}
variable "top_netmask_length" {
description = "Top-level netmask length to request. Not possible to use for IPv4. Only possible to use with amazon provided ipv6."
type = number
default = null
}
variable "top_ram_share_principals" {
description = "Principals to create RAM shares for top-level pool."
type = list(string)
default = null
}
variable "top_auto_import" {
description = "`auto_import` setting for top-level pool."
type = bool
default = null
}
variable "top_description" {
description = "Description of top-level pool."
type = string
default = ""
}
variable "top_name" {
description = "Name of top-level pool."
type = string
default = null
}
variable "top_cidr_authorization_contexts" {
description = "CIDR must match a CIDR defined in `var.top_cidr`. A list of signed documents that proves that you are authorized to bring the specified IP address range to Amazon using BYOIP. Document is not stored in the state file. For more information, refer to https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/vpc_ipam_pool_cidr#cidr_authorization_context."
type = list(object({
cidr = string
message = string
signature = string
}))
default = []
}
variable "top_public_ip_source" {
description = "public IP source for usage with public IPs. Valid values \"amazon\" or \"byoip\"."
type = string
default = null
}
variable "top_publicly_advertisable" {
description = "Whether or not the top-level pool is publicly advertisable."
type = bool
default = null
}
variable "top_aws_service" {
description = "AWS service, for usage with public IPs. Valid values \"ec2\"."
type = string
default = null
}
variable "top_locale" {
description = "locale of the top-level pool. Do not use this value unless building an ipv6 contiguous block pool. You will have to instantiate the module for each operating region you want a pool structure in."
type = string
default = null
}
variable "address_family" {
description = "IPv4/6 address family."
type = string
default = "ipv4"
validation {
condition = var.address_family == "ipv4" || var.address_family == "ipv6"
error_message = "Only valid options: \"ipv4\", \"ipv6\"."
}
}
variable "create_ipam" {
description = "Determines whether to create an IPAM. If `false`, you must also provide a var.ipam_scope_id."
type = bool
default = true
}
variable "ipam_scope_id" {
description = "(Optional) Required if `var.ipam_id` is set. Determines which scope to deploy pools into."
type = string
default = null
}
variable "ipam_scope_type" {
description = "Which scope type to use. Valid inputs include `public` or `private`. You can alternatively provide your own scope ID."
type = string
default = "private"
validation {
condition = var.ipam_scope_type == "public" || var.ipam_scope_type == "private"
error_message = "Scope type must be either public or private."
}
}
variable "tags" {
description = "Tags to add to the aws_vpc_ipam resource."
type = any
default = {}
}