-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathmain.tf
84 lines (70 loc) · 2.54 KB
/
main.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
resource "aws_dynamodb_table" "table" {
name = var.name
billing_mode = var.billing_mode
deletion_protection_enabled = var.deletion_protection_enabled
hash_key = var.hash_key
range_key = var.range_key
read_capacity = var.read_capacity
stream_enabled = var.stream_enabled
stream_view_type = var.stream_view_type
table_class = var.table_class
write_capacity = var.write_capacity
point_in_time_recovery {
enabled = var.point_in_time_recovery_enabled
}
server_side_encryption {
enabled = true
kms_key_arn = var.kms_key_arn
}
ttl {
enabled = var.ttl_enabled
attribute_name = var.ttl_attribute_name
}
dynamic "attribute" {
for_each = var.attributes
content {
name = attribute.value.name
type = attribute.value.type
}
}
dynamic "local_secondary_index" {
for_each = var.local_secondary_indexes
content {
name = local_secondary_index.value.name
range_key = local_secondary_index.value.range_key
projection_type = local_secondary_index.value.projection_type
non_key_attributes = lookup(local_secondary_index.value, "non_key_attributes", null)
}
}
dynamic "global_secondary_index" {
for_each = var.global_secondary_indexes
content {
name = global_secondary_index.value.name
hash_key = global_secondary_index.value.hash_key
projection_type = global_secondary_index.value.projection_type
range_key = lookup(global_secondary_index.value, "range_key", null)
read_capacity = lookup(global_secondary_index.value, "read_capacity", null)
write_capacity = lookup(global_secondary_index.value, "write_capacity", null)
non_key_attributes = lookup(global_secondary_index.value, "non_key_attributes", null)
}
}
dynamic "replica" {
for_each = var.replica_regions
content {
region_name = replica.value.region_name
kms_key_arn = lookup(replica.value, "kms_key_arn", null)
propagate_tags = lookup(replica.value, "propagate_tags", null)
point_in_time_recovery = lookup(replica.value, "point_in_time_recovery", null)
}
}
tags = merge(
var.tags,
{
"Name" = format("%s", var.name)
},
)
}
resource "aws_dynamodb_contributor_insights" "table_insight" {
count = var.enable_dynamodb_insights ? 1 : 0
table_name = var.name
}