forked from GoogleCloudPlatform/cloud-foundation-fabric
-
Notifications
You must be signed in to change notification settings - Fork 0
/
variables.tf
137 lines (123 loc) · 3.65 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
/**
* Copyright 2022 Google LLC
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
variable "bigquery_subscription_configs" {
description = "Configuration parameters for BigQuery subscriptions."
type = map(object({
table = string
use_topic_schema = bool
write_metadata = bool
drop_unknown_fields = bool
}))
default = {}
}
variable "dead_letter_configs" {
description = "Per-subscription dead letter policy configuration."
type = map(object({
topic = string
max_delivery_attempts = number
}))
default = {}
}
variable "defaults" {
description = "Subscription defaults for options."
type = object({
ack_deadline_seconds = number
message_retention_duration = string
retain_acked_messages = bool
expiration_policy_ttl = string
filter = string
})
default = {
ack_deadline_seconds = null
message_retention_duration = null
retain_acked_messages = null
expiration_policy_ttl = null
filter = null
}
}
variable "iam" {
description = "IAM bindings for topic in {ROLE => [MEMBERS]} format."
type = map(list(string))
default = {}
}
variable "kms_key" {
description = "KMS customer managed encryption key."
type = string
default = null
}
variable "labels" {
description = "Labels."
type = map(string)
default = {}
}
variable "message_retention_duration" {
description = "Minimum duration to retain a message after it is published to the topic."
type = string
default = null
}
variable "name" {
description = "PubSub topic name."
type = string
}
variable "project_id" {
description = "Project used for resources."
type = string
}
variable "push_configs" {
description = "Push subscription configurations."
type = map(object({
attributes = map(string)
endpoint = string
oidc_token = object({
audience = string
service_account_email = string
})
}))
default = {}
}
variable "regions" {
description = "List of regions used to set persistence policy."
type = list(string)
default = []
}
variable "schema" {
description = "Topic schema. If set, all messages in this topic should follow this schema."
type = object({
definition = string
msg_encoding = optional(string, "ENCODING_UNSPECIFIED")
schema_type = string
})
default = null
}
variable "subscription_iam" {
description = "IAM bindings for subscriptions in {SUBSCRIPTION => {ROLE => [MEMBERS]}} format."
type = map(map(list(string)))
default = {}
}
variable "subscriptions" {
description = "Topic subscriptions. Also define push configs for push subscriptions. If options is set to null subscription defaults will be used. Labels default to topic labels if set to null."
type = map(object({
labels = map(string)
options = object({
ack_deadline_seconds = number
message_retention_duration = string
retain_acked_messages = bool
expiration_policy_ttl = string
filter = string
})
}))
default = {}
}