-
Notifications
You must be signed in to change notification settings - Fork 3
/
variables.tf
99 lines (82 loc) · 4.27 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
variable "attributes" {
description = "List of nested attribute definitions. Only required for hash_key's (always) and range_key's (if used) attributes. Attributes have name and type. Type must be a scalar type: S, N, or B for (S)tring, (N)umber or (B)inary data. i.e. [{ name=<hash_key> type=<data_type>}]. Terraform documentation: [A note about attributes](https://www.terraform.io/docs/providers/aws/r/dynamodb_table.html#a-note-about-attributes)"
type = list(map(string))
}
variable "enable_pay_per_request" {
description = "Controls how you are charged for read and write throughput and how you manage capacity. If True, DynamoDB charges you for the data reads and writes your application performs on your tables. You do not need to specify how much read and write throughput you expect your application to perform because DynamoDB instantly accommodates your workloads as they ramp up or down. [On-Demand Pricing](https://aws.amazon.com/dynamodb/pricing/on-demand/) If False, you specify the number of `read_capacity_units` and `write_capacity_units` per second that you expect your workload to require. [Provisioned Pricing](https://aws.amazon.com/dynamodb/pricing/provisioned/)"
type = bool
default = false
}
variable "enable_ttl" {
description = "Enable time to live on record."
type = bool
default = false
}
variable "environment" {
description = "Application environment for which this resource is being created. Preferred values are Development, Integration, PreProduction, Production, QA, Staging, or Test."
type = string
default = "Development"
}
variable "global_secondary_index_maps" {
description = "A list of maps for each [global secondary index (GSI)](https://www.terraform.io/docs/providers/aws/r/dynamodb_table.html#global_secondary_index-1). Please see [examples](./examples) for usage."
type = any
default = []
}
variable "hash_key" {
description = "**Forces new resource!** Must contain only alphanumberic characters, dash (-), underscore (_) or dot (.). Needs to be defined by type in attributes."
type = string
}
variable "local_secondary_index_maps" {
description = "A list of maps for each [local secondary index (LSI)](https://www.terraform.io/docs/providers/aws/r/dynamodb_table.html#local_secondary_index-1). Please see [examples](./examples) for usage."
type = any
default = []
}
variable "point_in_time_recovery" {
description = "Enable point in time recovery for the table."
type = bool
default = false
}
variable "name" {
description = "The name of the table, this needs to be unique within a region."
type = string
}
variable "range_key" {
description = "**Forces new resource!** RangeType PrimaryKey Name. If used, it will need to be defined by type in attributes"
type = string
default = ""
}
variable "read_capacity_units" {
description = "Provisioned read throughput. Should be between 5 and 10000. Ignored if `enable_pay_per_request` is set to `true`."
type = number
default = 5
}
variable "stream_enabled" {
description = "Enable the stream setting on the table."
type = bool
default = false
}
variable "stream_view_type" {
description = "If using `stream_enabled, you can specify a valid DynamoDB StreamViewType; must be one of: `KEYS_ONLY`, `NEW_IMAGE`. `OLD_IMAGE`, `NEW_AND_OLD_IMAGES`"
type = string
default = ""
}
variable "table_encryption_cmk" {
description = "You may choose to use an [AWS Managed CMK](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk) by setting this to `true`. Otherwise, server side table encryption defaults to an [AWS Owned CMK](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-owned-cmk)."
type = bool
default = false
}
variable "tags" {
description = "Custom tags to apply to all resources."
type = map(string)
default = {}
}
variable "ttl_attribute" {
description = "The name of the table attribute to store the TTL timestamp in"
type = string
default = ""
}
variable "write_capacity_units" {
description = "Provisioned write throughput. Should be between 5 and 10000. Ignored if `enable_pay_per_request` is set to `true`."
type = number
default = 10
}