pulumi-gcp 8.3.0a1726834947__py3-none-any.whl → 8.3.0a1727226164__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (76) hide show
  1. pulumi_gcp/__init__.py +120 -0
  2. pulumi_gcp/alloydb/_inputs.py +20 -0
  3. pulumi_gcp/alloydb/instance.py +36 -0
  4. pulumi_gcp/alloydb/outputs.py +14 -0
  5. pulumi_gcp/compute/__init__.py +1 -0
  6. pulumi_gcp/compute/_inputs.py +1400 -0
  7. pulumi_gcp/compute/attached_disk.py +103 -0
  8. pulumi_gcp/compute/backend_service.py +29 -22
  9. pulumi_gcp/compute/firewall_policy_with_rules.py +769 -0
  10. pulumi_gcp/compute/outputs.py +1019 -0
  11. pulumi_gcp/compute/region_backend_service.py +29 -22
  12. pulumi_gcp/compute/router_nat.py +27 -66
  13. pulumi_gcp/config/__init__.pyi +2 -0
  14. pulumi_gcp/config/vars.py +4 -0
  15. pulumi_gcp/container/_inputs.py +72 -99
  16. pulumi_gcp/container/outputs.py +53 -70
  17. pulumi_gcp/databasemigrationservice/__init__.py +1 -0
  18. pulumi_gcp/databasemigrationservice/_inputs.py +362 -0
  19. pulumi_gcp/databasemigrationservice/migration_job.py +1739 -0
  20. pulumi_gcp/databasemigrationservice/outputs.py +268 -0
  21. pulumi_gcp/dataproc/get_metastore_service.py +11 -1
  22. pulumi_gcp/dataproc/metastore_service.py +93 -0
  23. pulumi_gcp/developerconnect/_inputs.py +42 -39
  24. pulumi_gcp/developerconnect/connection.py +86 -83
  25. pulumi_gcp/developerconnect/outputs.py +28 -26
  26. pulumi_gcp/discoveryengine/__init__.py +1 -0
  27. pulumi_gcp/discoveryengine/_inputs.py +131 -0
  28. pulumi_gcp/discoveryengine/outputs.py +131 -0
  29. pulumi_gcp/discoveryengine/target_site.py +870 -0
  30. pulumi_gcp/dns/managed_zone.py +1 -1
  31. pulumi_gcp/filestore/get_instance.py +21 -1
  32. pulumi_gcp/filestore/instance.py +94 -0
  33. pulumi_gcp/gkehub/feature_membership.py +140 -62
  34. pulumi_gcp/healthcare/__init__.py +1 -0
  35. pulumi_gcp/healthcare/_inputs.py +39 -0
  36. pulumi_gcp/healthcare/outputs.py +40 -0
  37. pulumi_gcp/healthcare/workspace.py +465 -0
  38. pulumi_gcp/looker/instance.py +81 -0
  39. pulumi_gcp/netapp/_inputs.py +63 -0
  40. pulumi_gcp/netapp/outputs.py +57 -0
  41. pulumi_gcp/netapp/storage_pool.py +54 -0
  42. pulumi_gcp/netapp/volume.py +82 -0
  43. pulumi_gcp/provider.py +20 -0
  44. pulumi_gcp/pubsub/subscription.py +43 -7
  45. pulumi_gcp/pulumi-plugin.json +1 -1
  46. pulumi_gcp/secretmanager/__init__.py +8 -0
  47. pulumi_gcp/secretmanager/_inputs.py +308 -0
  48. pulumi_gcp/secretmanager/get_regional_secret.py +279 -0
  49. pulumi_gcp/secretmanager/get_regional_secret_iam_policy.py +173 -0
  50. pulumi_gcp/secretmanager/get_regional_secret_version.py +241 -0
  51. pulumi_gcp/secretmanager/outputs.py +336 -0
  52. pulumi_gcp/secretmanager/regional_secret.py +1433 -0
  53. pulumi_gcp/secretmanager/regional_secret_iam_binding.py +1082 -0
  54. pulumi_gcp/secretmanager/regional_secret_iam_member.py +1082 -0
  55. pulumi_gcp/secretmanager/regional_secret_iam_policy.py +901 -0
  56. pulumi_gcp/secretmanager/regional_secret_version.py +753 -0
  57. pulumi_gcp/securitycenter/__init__.py +4 -0
  58. pulumi_gcp/securitycenter/folder_scc_big_query_export.py +795 -0
  59. pulumi_gcp/securitycenter/organization_scc_big_query_export.py +738 -0
  60. pulumi_gcp/securitycenter/project_scc_big_query_export.py +749 -0
  61. pulumi_gcp/securitycenter/v2_organization_scc_big_query_export.py +862 -0
  62. pulumi_gcp/securitycenter/v2_organization_scc_big_query_exports.py +6 -2
  63. pulumi_gcp/siteverification/__init__.py +3 -0
  64. pulumi_gcp/siteverification/_inputs.py +85 -0
  65. pulumi_gcp/siteverification/outputs.py +57 -0
  66. pulumi_gcp/siteverification/web_resource.py +398 -0
  67. pulumi_gcp/spanner/__init__.py +1 -0
  68. pulumi_gcp/spanner/_inputs.py +129 -0
  69. pulumi_gcp/spanner/backup_schedule.py +748 -0
  70. pulumi_gcp/spanner/get_instance.py +11 -1
  71. pulumi_gcp/spanner/instance.py +56 -0
  72. pulumi_gcp/spanner/outputs.py +93 -0
  73. {pulumi_gcp-8.3.0a1726834947.dist-info → pulumi_gcp-8.3.0a1727226164.dist-info}/METADATA +1 -1
  74. {pulumi_gcp-8.3.0a1726834947.dist-info → pulumi_gcp-8.3.0a1727226164.dist-info}/RECORD +76 -56
  75. {pulumi_gcp-8.3.0a1726834947.dist-info → pulumi_gcp-8.3.0a1727226164.dist-info}/WHEEL +0 -0
  76. {pulumi_gcp-8.3.0a1726834947.dist-info → pulumi_gcp-8.3.0a1727226164.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,1433 @@
1
+ # coding=utf-8
2
+ # *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
3
+ # *** Do not edit by hand unless you're certain you know what you are doing! ***
4
+
5
+ import copy
6
+ import warnings
7
+ import sys
8
+ import pulumi
9
+ import pulumi.runtime
10
+ from typing import Any, Mapping, Optional, Sequence, Union, overload
11
+ if sys.version_info >= (3, 11):
12
+ from typing import NotRequired, TypedDict, TypeAlias
13
+ else:
14
+ from typing_extensions import NotRequired, TypedDict, TypeAlias
15
+ from .. import _utilities
16
+ from . import outputs
17
+ from ._inputs import *
18
+
19
+ __all__ = ['RegionalSecretArgs', 'RegionalSecret']
20
+
21
+ @pulumi.input_type
22
+ class RegionalSecretArgs:
23
+ def __init__(__self__, *,
24
+ location: pulumi.Input[str],
25
+ secret_id: pulumi.Input[str],
26
+ annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
27
+ customer_managed_encryption: Optional[pulumi.Input['RegionalSecretCustomerManagedEncryptionArgs']] = None,
28
+ expire_time: Optional[pulumi.Input[str]] = None,
29
+ labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
30
+ project: Optional[pulumi.Input[str]] = None,
31
+ rotation: Optional[pulumi.Input['RegionalSecretRotationArgs']] = None,
32
+ topics: Optional[pulumi.Input[Sequence[pulumi.Input['RegionalSecretTopicArgs']]]] = None,
33
+ ttl: Optional[pulumi.Input[str]] = None,
34
+ version_aliases: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
35
+ version_destroy_ttl: Optional[pulumi.Input[str]] = None):
36
+ """
37
+ The set of arguments for constructing a RegionalSecret resource.
38
+ :param pulumi.Input[str] location: The location of the regional secret. eg us-central1
39
+ :param pulumi.Input[str] secret_id: This must be unique within the project.
40
+
41
+
42
+ - - -
43
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] annotations: Custom metadata about the regional secret.
44
+ Annotations are distinct from various forms of labels. Annotations exist to allow
45
+ client tools to store their own state information without requiring a database.
46
+ Annotation keys must be between 1 and 63 characters long, have a UTF-8 encoding of
47
+ maximum 128 bytes, begin and end with an alphanumeric character ([a-z0-9A-Z]), and
48
+ may have dashes (-), underscores (_), dots (.), and alphanumerics in between these
49
+ symbols.
50
+ The total size of annotation keys and values must be less than 16KiB.
51
+ An object containing a list of "key": value pairs. Example:
52
+ { "name": "wrench", "mass": "1.3kg", "count": "3" }.
53
+
54
+ **Note**: This field is non-authoritative, and will only manage the annotations present in your configuration.
55
+ Please refer to the field `effective_annotations` for all of the annotations present on the resource.
56
+ :param pulumi.Input['RegionalSecretCustomerManagedEncryptionArgs'] customer_managed_encryption: The customer-managed encryption configuration of the regional secret.
57
+ Structure is documented below.
58
+ :param pulumi.Input[str] expire_time: Timestamp in UTC when the regional secret is scheduled to expire. This is always provided on
59
+ output, regardless of what was sent on input. A timestamp in RFC3339 UTC "Zulu" format, with
60
+ nanosecond resolution and up to nine fractional digits. Examples: "2014-10-02T15:01:23Z" and
61
+ "2014-10-02T15:01:23.045123456Z". Only one of `expire_time` or `ttl` can be provided.
62
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: The labels assigned to this regional secret.
63
+ Label keys must be between 1 and 63 characters long, have a UTF-8 encoding of maximum 128 bytes,
64
+ and must conform to the following PCRE regular expression: [\\p{Ll}\\p{Lo}][\\p{Ll}\\p{Lo}\\p{N}_-]{0,62}
65
+ Label values must be between 0 and 63 characters long, have a UTF-8 encoding of maximum 128 bytes,
66
+ and must conform to the following PCRE regular expression: [\\p{Ll}\\p{Lo}\\p{N}_-]{0,63}
67
+ No more than 64 labels can be assigned to a given resource.
68
+ An object containing a list of "key": value pairs. Example:
69
+ { "name": "wrench", "mass": "1.3kg", "count": "3" }.
70
+
71
+ **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
72
+ Please refer to the field `effective_labels` for all of the labels present on the resource.
73
+ :param pulumi.Input[str] project: The ID of the project in which the resource belongs.
74
+ If it is not provided, the provider project is used.
75
+ :param pulumi.Input['RegionalSecretRotationArgs'] rotation: The rotation time and period for a regional secret. At `next_rotation_time`, Secret Manager
76
+ will send a Pub/Sub notification to the topics configured on the Secret. `topics` must be
77
+ set to configure rotation.
78
+ Structure is documented below.
79
+ :param pulumi.Input[Sequence[pulumi.Input['RegionalSecretTopicArgs']]] topics: A list of up to 10 Pub/Sub topics to which messages are published when control plane
80
+ operations are called on the regional secret or its versions.
81
+ Structure is documented below.
82
+ :param pulumi.Input[str] ttl: The TTL for the regional secret. A duration in seconds with up to nine fractional digits,
83
+ terminated by 's'. Example: "3.5s". Only one of `ttl` or `expire_time` can be provided.
84
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] version_aliases: Mapping from version alias to version name.
85
+ A version alias is a string with a maximum length of 63 characters and can contain
86
+ uppercase and lowercase letters, numerals, and the hyphen (-) and underscore ('_')
87
+ characters. An alias string must start with a letter and cannot be the string
88
+ 'latest' or 'NEW'. No more than 50 aliases can be assigned to a given secret.
89
+ An object containing a list of "key": value pairs. Example:
90
+ { "name": "wrench", "mass": "1.3kg", "count": "3" }.
91
+ :param pulumi.Input[str] version_destroy_ttl: Secret Version TTL after destruction request.
92
+ This is a part of the delayed delete feature on Secret Version.
93
+ For secret with versionDestroyTtl>0, version destruction doesn't happen immediately
94
+ on calling destroy instead the version goes to a disabled state and
95
+ the actual destruction happens after this TTL expires. It must be atleast 24h.
96
+ """
97
+ pulumi.set(__self__, "location", location)
98
+ pulumi.set(__self__, "secret_id", secret_id)
99
+ if annotations is not None:
100
+ pulumi.set(__self__, "annotations", annotations)
101
+ if customer_managed_encryption is not None:
102
+ pulumi.set(__self__, "customer_managed_encryption", customer_managed_encryption)
103
+ if expire_time is not None:
104
+ pulumi.set(__self__, "expire_time", expire_time)
105
+ if labels is not None:
106
+ pulumi.set(__self__, "labels", labels)
107
+ if project is not None:
108
+ pulumi.set(__self__, "project", project)
109
+ if rotation is not None:
110
+ pulumi.set(__self__, "rotation", rotation)
111
+ if topics is not None:
112
+ pulumi.set(__self__, "topics", topics)
113
+ if ttl is not None:
114
+ pulumi.set(__self__, "ttl", ttl)
115
+ if version_aliases is not None:
116
+ pulumi.set(__self__, "version_aliases", version_aliases)
117
+ if version_destroy_ttl is not None:
118
+ pulumi.set(__self__, "version_destroy_ttl", version_destroy_ttl)
119
+
120
+ @property
121
+ @pulumi.getter
122
+ def location(self) -> pulumi.Input[str]:
123
+ """
124
+ The location of the regional secret. eg us-central1
125
+ """
126
+ return pulumi.get(self, "location")
127
+
128
+ @location.setter
129
+ def location(self, value: pulumi.Input[str]):
130
+ pulumi.set(self, "location", value)
131
+
132
+ @property
133
+ @pulumi.getter(name="secretId")
134
+ def secret_id(self) -> pulumi.Input[str]:
135
+ """
136
+ This must be unique within the project.
137
+
138
+
139
+ - - -
140
+ """
141
+ return pulumi.get(self, "secret_id")
142
+
143
+ @secret_id.setter
144
+ def secret_id(self, value: pulumi.Input[str]):
145
+ pulumi.set(self, "secret_id", value)
146
+
147
+ @property
148
+ @pulumi.getter
149
+ def annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
150
+ """
151
+ Custom metadata about the regional secret.
152
+ Annotations are distinct from various forms of labels. Annotations exist to allow
153
+ client tools to store their own state information without requiring a database.
154
+ Annotation keys must be between 1 and 63 characters long, have a UTF-8 encoding of
155
+ maximum 128 bytes, begin and end with an alphanumeric character ([a-z0-9A-Z]), and
156
+ may have dashes (-), underscores (_), dots (.), and alphanumerics in between these
157
+ symbols.
158
+ The total size of annotation keys and values must be less than 16KiB.
159
+ An object containing a list of "key": value pairs. Example:
160
+ { "name": "wrench", "mass": "1.3kg", "count": "3" }.
161
+
162
+ **Note**: This field is non-authoritative, and will only manage the annotations present in your configuration.
163
+ Please refer to the field `effective_annotations` for all of the annotations present on the resource.
164
+ """
165
+ return pulumi.get(self, "annotations")
166
+
167
+ @annotations.setter
168
+ def annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
169
+ pulumi.set(self, "annotations", value)
170
+
171
+ @property
172
+ @pulumi.getter(name="customerManagedEncryption")
173
+ def customer_managed_encryption(self) -> Optional[pulumi.Input['RegionalSecretCustomerManagedEncryptionArgs']]:
174
+ """
175
+ The customer-managed encryption configuration of the regional secret.
176
+ Structure is documented below.
177
+ """
178
+ return pulumi.get(self, "customer_managed_encryption")
179
+
180
+ @customer_managed_encryption.setter
181
+ def customer_managed_encryption(self, value: Optional[pulumi.Input['RegionalSecretCustomerManagedEncryptionArgs']]):
182
+ pulumi.set(self, "customer_managed_encryption", value)
183
+
184
+ @property
185
+ @pulumi.getter(name="expireTime")
186
+ def expire_time(self) -> Optional[pulumi.Input[str]]:
187
+ """
188
+ Timestamp in UTC when the regional secret is scheduled to expire. This is always provided on
189
+ output, regardless of what was sent on input. A timestamp in RFC3339 UTC "Zulu" format, with
190
+ nanosecond resolution and up to nine fractional digits. Examples: "2014-10-02T15:01:23Z" and
191
+ "2014-10-02T15:01:23.045123456Z". Only one of `expire_time` or `ttl` can be provided.
192
+ """
193
+ return pulumi.get(self, "expire_time")
194
+
195
+ @expire_time.setter
196
+ def expire_time(self, value: Optional[pulumi.Input[str]]):
197
+ pulumi.set(self, "expire_time", value)
198
+
199
+ @property
200
+ @pulumi.getter
201
+ def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
202
+ """
203
+ The labels assigned to this regional secret.
204
+ Label keys must be between 1 and 63 characters long, have a UTF-8 encoding of maximum 128 bytes,
205
+ and must conform to the following PCRE regular expression: [\\p{Ll}\\p{Lo}][\\p{Ll}\\p{Lo}\\p{N}_-]{0,62}
206
+ Label values must be between 0 and 63 characters long, have a UTF-8 encoding of maximum 128 bytes,
207
+ and must conform to the following PCRE regular expression: [\\p{Ll}\\p{Lo}\\p{N}_-]{0,63}
208
+ No more than 64 labels can be assigned to a given resource.
209
+ An object containing a list of "key": value pairs. Example:
210
+ { "name": "wrench", "mass": "1.3kg", "count": "3" }.
211
+
212
+ **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
213
+ Please refer to the field `effective_labels` for all of the labels present on the resource.
214
+ """
215
+ return pulumi.get(self, "labels")
216
+
217
+ @labels.setter
218
+ def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
219
+ pulumi.set(self, "labels", value)
220
+
221
+ @property
222
+ @pulumi.getter
223
+ def project(self) -> Optional[pulumi.Input[str]]:
224
+ """
225
+ The ID of the project in which the resource belongs.
226
+ If it is not provided, the provider project is used.
227
+ """
228
+ return pulumi.get(self, "project")
229
+
230
+ @project.setter
231
+ def project(self, value: Optional[pulumi.Input[str]]):
232
+ pulumi.set(self, "project", value)
233
+
234
+ @property
235
+ @pulumi.getter
236
+ def rotation(self) -> Optional[pulumi.Input['RegionalSecretRotationArgs']]:
237
+ """
238
+ The rotation time and period for a regional secret. At `next_rotation_time`, Secret Manager
239
+ will send a Pub/Sub notification to the topics configured on the Secret. `topics` must be
240
+ set to configure rotation.
241
+ Structure is documented below.
242
+ """
243
+ return pulumi.get(self, "rotation")
244
+
245
+ @rotation.setter
246
+ def rotation(self, value: Optional[pulumi.Input['RegionalSecretRotationArgs']]):
247
+ pulumi.set(self, "rotation", value)
248
+
249
+ @property
250
+ @pulumi.getter
251
+ def topics(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['RegionalSecretTopicArgs']]]]:
252
+ """
253
+ A list of up to 10 Pub/Sub topics to which messages are published when control plane
254
+ operations are called on the regional secret or its versions.
255
+ Structure is documented below.
256
+ """
257
+ return pulumi.get(self, "topics")
258
+
259
+ @topics.setter
260
+ def topics(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['RegionalSecretTopicArgs']]]]):
261
+ pulumi.set(self, "topics", value)
262
+
263
+ @property
264
+ @pulumi.getter
265
+ def ttl(self) -> Optional[pulumi.Input[str]]:
266
+ """
267
+ The TTL for the regional secret. A duration in seconds with up to nine fractional digits,
268
+ terminated by 's'. Example: "3.5s". Only one of `ttl` or `expire_time` can be provided.
269
+ """
270
+ return pulumi.get(self, "ttl")
271
+
272
+ @ttl.setter
273
+ def ttl(self, value: Optional[pulumi.Input[str]]):
274
+ pulumi.set(self, "ttl", value)
275
+
276
+ @property
277
+ @pulumi.getter(name="versionAliases")
278
+ def version_aliases(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
279
+ """
280
+ Mapping from version alias to version name.
281
+ A version alias is a string with a maximum length of 63 characters and can contain
282
+ uppercase and lowercase letters, numerals, and the hyphen (-) and underscore ('_')
283
+ characters. An alias string must start with a letter and cannot be the string
284
+ 'latest' or 'NEW'. No more than 50 aliases can be assigned to a given secret.
285
+ An object containing a list of "key": value pairs. Example:
286
+ { "name": "wrench", "mass": "1.3kg", "count": "3" }.
287
+ """
288
+ return pulumi.get(self, "version_aliases")
289
+
290
+ @version_aliases.setter
291
+ def version_aliases(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
292
+ pulumi.set(self, "version_aliases", value)
293
+
294
+ @property
295
+ @pulumi.getter(name="versionDestroyTtl")
296
+ def version_destroy_ttl(self) -> Optional[pulumi.Input[str]]:
297
+ """
298
+ Secret Version TTL after destruction request.
299
+ This is a part of the delayed delete feature on Secret Version.
300
+ For secret with versionDestroyTtl>0, version destruction doesn't happen immediately
301
+ on calling destroy instead the version goes to a disabled state and
302
+ the actual destruction happens after this TTL expires. It must be atleast 24h.
303
+ """
304
+ return pulumi.get(self, "version_destroy_ttl")
305
+
306
+ @version_destroy_ttl.setter
307
+ def version_destroy_ttl(self, value: Optional[pulumi.Input[str]]):
308
+ pulumi.set(self, "version_destroy_ttl", value)
309
+
310
+
311
+ @pulumi.input_type
312
+ class _RegionalSecretState:
313
+ def __init__(__self__, *,
314
+ annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
315
+ create_time: Optional[pulumi.Input[str]] = None,
316
+ customer_managed_encryption: Optional[pulumi.Input['RegionalSecretCustomerManagedEncryptionArgs']] = None,
317
+ effective_annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
318
+ effective_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
319
+ expire_time: Optional[pulumi.Input[str]] = None,
320
+ labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
321
+ location: Optional[pulumi.Input[str]] = None,
322
+ name: Optional[pulumi.Input[str]] = None,
323
+ project: Optional[pulumi.Input[str]] = None,
324
+ pulumi_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
325
+ rotation: Optional[pulumi.Input['RegionalSecretRotationArgs']] = None,
326
+ secret_id: Optional[pulumi.Input[str]] = None,
327
+ topics: Optional[pulumi.Input[Sequence[pulumi.Input['RegionalSecretTopicArgs']]]] = None,
328
+ ttl: Optional[pulumi.Input[str]] = None,
329
+ version_aliases: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
330
+ version_destroy_ttl: Optional[pulumi.Input[str]] = None):
331
+ """
332
+ Input properties used for looking up and filtering RegionalSecret resources.
333
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] annotations: Custom metadata about the regional secret.
334
+ Annotations are distinct from various forms of labels. Annotations exist to allow
335
+ client tools to store their own state information without requiring a database.
336
+ Annotation keys must be between 1 and 63 characters long, have a UTF-8 encoding of
337
+ maximum 128 bytes, begin and end with an alphanumeric character ([a-z0-9A-Z]), and
338
+ may have dashes (-), underscores (_), dots (.), and alphanumerics in between these
339
+ symbols.
340
+ The total size of annotation keys and values must be less than 16KiB.
341
+ An object containing a list of "key": value pairs. Example:
342
+ { "name": "wrench", "mass": "1.3kg", "count": "3" }.
343
+
344
+ **Note**: This field is non-authoritative, and will only manage the annotations present in your configuration.
345
+ Please refer to the field `effective_annotations` for all of the annotations present on the resource.
346
+ :param pulumi.Input[str] create_time: The time at which the regional secret was created.
347
+ :param pulumi.Input['RegionalSecretCustomerManagedEncryptionArgs'] customer_managed_encryption: The customer-managed encryption configuration of the regional secret.
348
+ Structure is documented below.
349
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] effective_labels: All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
350
+ :param pulumi.Input[str] expire_time: Timestamp in UTC when the regional secret is scheduled to expire. This is always provided on
351
+ output, regardless of what was sent on input. A timestamp in RFC3339 UTC "Zulu" format, with
352
+ nanosecond resolution and up to nine fractional digits. Examples: "2014-10-02T15:01:23Z" and
353
+ "2014-10-02T15:01:23.045123456Z". Only one of `expire_time` or `ttl` can be provided.
354
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: The labels assigned to this regional secret.
355
+ Label keys must be between 1 and 63 characters long, have a UTF-8 encoding of maximum 128 bytes,
356
+ and must conform to the following PCRE regular expression: [\\p{Ll}\\p{Lo}][\\p{Ll}\\p{Lo}\\p{N}_-]{0,62}
357
+ Label values must be between 0 and 63 characters long, have a UTF-8 encoding of maximum 128 bytes,
358
+ and must conform to the following PCRE regular expression: [\\p{Ll}\\p{Lo}\\p{N}_-]{0,63}
359
+ No more than 64 labels can be assigned to a given resource.
360
+ An object containing a list of "key": value pairs. Example:
361
+ { "name": "wrench", "mass": "1.3kg", "count": "3" }.
362
+
363
+ **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
364
+ Please refer to the field `effective_labels` for all of the labels present on the resource.
365
+ :param pulumi.Input[str] location: The location of the regional secret. eg us-central1
366
+ :param pulumi.Input[str] name: The resource name of the regional secret. Format:
367
+ `projects/{{project}}/locations/{{location}}/secrets/{{secret_id}}`
368
+ :param pulumi.Input[str] project: The ID of the project in which the resource belongs.
369
+ If it is not provided, the provider project is used.
370
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] pulumi_labels: The combination of labels configured directly on the resource
371
+ and default labels configured on the provider.
372
+ :param pulumi.Input['RegionalSecretRotationArgs'] rotation: The rotation time and period for a regional secret. At `next_rotation_time`, Secret Manager
373
+ will send a Pub/Sub notification to the topics configured on the Secret. `topics` must be
374
+ set to configure rotation.
375
+ Structure is documented below.
376
+ :param pulumi.Input[str] secret_id: This must be unique within the project.
377
+
378
+
379
+ - - -
380
+ :param pulumi.Input[Sequence[pulumi.Input['RegionalSecretTopicArgs']]] topics: A list of up to 10 Pub/Sub topics to which messages are published when control plane
381
+ operations are called on the regional secret or its versions.
382
+ Structure is documented below.
383
+ :param pulumi.Input[str] ttl: The TTL for the regional secret. A duration in seconds with up to nine fractional digits,
384
+ terminated by 's'. Example: "3.5s". Only one of `ttl` or `expire_time` can be provided.
385
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] version_aliases: Mapping from version alias to version name.
386
+ A version alias is a string with a maximum length of 63 characters and can contain
387
+ uppercase and lowercase letters, numerals, and the hyphen (-) and underscore ('_')
388
+ characters. An alias string must start with a letter and cannot be the string
389
+ 'latest' or 'NEW'. No more than 50 aliases can be assigned to a given secret.
390
+ An object containing a list of "key": value pairs. Example:
391
+ { "name": "wrench", "mass": "1.3kg", "count": "3" }.
392
+ :param pulumi.Input[str] version_destroy_ttl: Secret Version TTL after destruction request.
393
+ This is a part of the delayed delete feature on Secret Version.
394
+ For secret with versionDestroyTtl>0, version destruction doesn't happen immediately
395
+ on calling destroy instead the version goes to a disabled state and
396
+ the actual destruction happens after this TTL expires. It must be atleast 24h.
397
+ """
398
+ if annotations is not None:
399
+ pulumi.set(__self__, "annotations", annotations)
400
+ if create_time is not None:
401
+ pulumi.set(__self__, "create_time", create_time)
402
+ if customer_managed_encryption is not None:
403
+ pulumi.set(__self__, "customer_managed_encryption", customer_managed_encryption)
404
+ if effective_annotations is not None:
405
+ pulumi.set(__self__, "effective_annotations", effective_annotations)
406
+ if effective_labels is not None:
407
+ pulumi.set(__self__, "effective_labels", effective_labels)
408
+ if expire_time is not None:
409
+ pulumi.set(__self__, "expire_time", expire_time)
410
+ if labels is not None:
411
+ pulumi.set(__self__, "labels", labels)
412
+ if location is not None:
413
+ pulumi.set(__self__, "location", location)
414
+ if name is not None:
415
+ pulumi.set(__self__, "name", name)
416
+ if project is not None:
417
+ pulumi.set(__self__, "project", project)
418
+ if pulumi_labels is not None:
419
+ pulumi.set(__self__, "pulumi_labels", pulumi_labels)
420
+ if rotation is not None:
421
+ pulumi.set(__self__, "rotation", rotation)
422
+ if secret_id is not None:
423
+ pulumi.set(__self__, "secret_id", secret_id)
424
+ if topics is not None:
425
+ pulumi.set(__self__, "topics", topics)
426
+ if ttl is not None:
427
+ pulumi.set(__self__, "ttl", ttl)
428
+ if version_aliases is not None:
429
+ pulumi.set(__self__, "version_aliases", version_aliases)
430
+ if version_destroy_ttl is not None:
431
+ pulumi.set(__self__, "version_destroy_ttl", version_destroy_ttl)
432
+
433
+ @property
434
+ @pulumi.getter
435
+ def annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
436
+ """
437
+ Custom metadata about the regional secret.
438
+ Annotations are distinct from various forms of labels. Annotations exist to allow
439
+ client tools to store their own state information without requiring a database.
440
+ Annotation keys must be between 1 and 63 characters long, have a UTF-8 encoding of
441
+ maximum 128 bytes, begin and end with an alphanumeric character ([a-z0-9A-Z]), and
442
+ may have dashes (-), underscores (_), dots (.), and alphanumerics in between these
443
+ symbols.
444
+ The total size of annotation keys and values must be less than 16KiB.
445
+ An object containing a list of "key": value pairs. Example:
446
+ { "name": "wrench", "mass": "1.3kg", "count": "3" }.
447
+
448
+ **Note**: This field is non-authoritative, and will only manage the annotations present in your configuration.
449
+ Please refer to the field `effective_annotations` for all of the annotations present on the resource.
450
+ """
451
+ return pulumi.get(self, "annotations")
452
+
453
+ @annotations.setter
454
+ def annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
455
+ pulumi.set(self, "annotations", value)
456
+
457
+ @property
458
+ @pulumi.getter(name="createTime")
459
+ def create_time(self) -> Optional[pulumi.Input[str]]:
460
+ """
461
+ The time at which the regional secret was created.
462
+ """
463
+ return pulumi.get(self, "create_time")
464
+
465
+ @create_time.setter
466
+ def create_time(self, value: Optional[pulumi.Input[str]]):
467
+ pulumi.set(self, "create_time", value)
468
+
469
+ @property
470
+ @pulumi.getter(name="customerManagedEncryption")
471
+ def customer_managed_encryption(self) -> Optional[pulumi.Input['RegionalSecretCustomerManagedEncryptionArgs']]:
472
+ """
473
+ The customer-managed encryption configuration of the regional secret.
474
+ Structure is documented below.
475
+ """
476
+ return pulumi.get(self, "customer_managed_encryption")
477
+
478
+ @customer_managed_encryption.setter
479
+ def customer_managed_encryption(self, value: Optional[pulumi.Input['RegionalSecretCustomerManagedEncryptionArgs']]):
480
+ pulumi.set(self, "customer_managed_encryption", value)
481
+
482
+ @property
483
+ @pulumi.getter(name="effectiveAnnotations")
484
+ def effective_annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
485
+ return pulumi.get(self, "effective_annotations")
486
+
487
+ @effective_annotations.setter
488
+ def effective_annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
489
+ pulumi.set(self, "effective_annotations", value)
490
+
491
+ @property
492
+ @pulumi.getter(name="effectiveLabels")
493
+ def effective_labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
494
+ """
495
+ All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
496
+ """
497
+ return pulumi.get(self, "effective_labels")
498
+
499
+ @effective_labels.setter
500
+ def effective_labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
501
+ pulumi.set(self, "effective_labels", value)
502
+
503
+ @property
504
+ @pulumi.getter(name="expireTime")
505
+ def expire_time(self) -> Optional[pulumi.Input[str]]:
506
+ """
507
+ Timestamp in UTC when the regional secret is scheduled to expire. This is always provided on
508
+ output, regardless of what was sent on input. A timestamp in RFC3339 UTC "Zulu" format, with
509
+ nanosecond resolution and up to nine fractional digits. Examples: "2014-10-02T15:01:23Z" and
510
+ "2014-10-02T15:01:23.045123456Z". Only one of `expire_time` or `ttl` can be provided.
511
+ """
512
+ return pulumi.get(self, "expire_time")
513
+
514
+ @expire_time.setter
515
+ def expire_time(self, value: Optional[pulumi.Input[str]]):
516
+ pulumi.set(self, "expire_time", value)
517
+
518
+ @property
519
+ @pulumi.getter
520
+ def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
521
+ """
522
+ The labels assigned to this regional secret.
523
+ Label keys must be between 1 and 63 characters long, have a UTF-8 encoding of maximum 128 bytes,
524
+ and must conform to the following PCRE regular expression: [\\p{Ll}\\p{Lo}][\\p{Ll}\\p{Lo}\\p{N}_-]{0,62}
525
+ Label values must be between 0 and 63 characters long, have a UTF-8 encoding of maximum 128 bytes,
526
+ and must conform to the following PCRE regular expression: [\\p{Ll}\\p{Lo}\\p{N}_-]{0,63}
527
+ No more than 64 labels can be assigned to a given resource.
528
+ An object containing a list of "key": value pairs. Example:
529
+ { "name": "wrench", "mass": "1.3kg", "count": "3" }.
530
+
531
+ **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
532
+ Please refer to the field `effective_labels` for all of the labels present on the resource.
533
+ """
534
+ return pulumi.get(self, "labels")
535
+
536
+ @labels.setter
537
+ def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
538
+ pulumi.set(self, "labels", value)
539
+
540
+ @property
541
+ @pulumi.getter
542
+ def location(self) -> Optional[pulumi.Input[str]]:
543
+ """
544
+ The location of the regional secret. eg us-central1
545
+ """
546
+ return pulumi.get(self, "location")
547
+
548
+ @location.setter
549
+ def location(self, value: Optional[pulumi.Input[str]]):
550
+ pulumi.set(self, "location", value)
551
+
552
+ @property
553
+ @pulumi.getter
554
+ def name(self) -> Optional[pulumi.Input[str]]:
555
+ """
556
+ The resource name of the regional secret. Format:
557
+ `projects/{{project}}/locations/{{location}}/secrets/{{secret_id}}`
558
+ """
559
+ return pulumi.get(self, "name")
560
+
561
+ @name.setter
562
+ def name(self, value: Optional[pulumi.Input[str]]):
563
+ pulumi.set(self, "name", value)
564
+
565
+ @property
566
+ @pulumi.getter
567
+ def project(self) -> Optional[pulumi.Input[str]]:
568
+ """
569
+ The ID of the project in which the resource belongs.
570
+ If it is not provided, the provider project is used.
571
+ """
572
+ return pulumi.get(self, "project")
573
+
574
+ @project.setter
575
+ def project(self, value: Optional[pulumi.Input[str]]):
576
+ pulumi.set(self, "project", value)
577
+
578
+ @property
579
+ @pulumi.getter(name="pulumiLabels")
580
+ def pulumi_labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
581
+ """
582
+ The combination of labels configured directly on the resource
583
+ and default labels configured on the provider.
584
+ """
585
+ return pulumi.get(self, "pulumi_labels")
586
+
587
+ @pulumi_labels.setter
588
+ def pulumi_labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
589
+ pulumi.set(self, "pulumi_labels", value)
590
+
591
+ @property
592
+ @pulumi.getter
593
+ def rotation(self) -> Optional[pulumi.Input['RegionalSecretRotationArgs']]:
594
+ """
595
+ The rotation time and period for a regional secret. At `next_rotation_time`, Secret Manager
596
+ will send a Pub/Sub notification to the topics configured on the Secret. `topics` must be
597
+ set to configure rotation.
598
+ Structure is documented below.
599
+ """
600
+ return pulumi.get(self, "rotation")
601
+
602
+ @rotation.setter
603
+ def rotation(self, value: Optional[pulumi.Input['RegionalSecretRotationArgs']]):
604
+ pulumi.set(self, "rotation", value)
605
+
606
+ @property
607
+ @pulumi.getter(name="secretId")
608
+ def secret_id(self) -> Optional[pulumi.Input[str]]:
609
+ """
610
+ This must be unique within the project.
611
+
612
+
613
+ - - -
614
+ """
615
+ return pulumi.get(self, "secret_id")
616
+
617
+ @secret_id.setter
618
+ def secret_id(self, value: Optional[pulumi.Input[str]]):
619
+ pulumi.set(self, "secret_id", value)
620
+
621
+ @property
622
+ @pulumi.getter
623
+ def topics(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['RegionalSecretTopicArgs']]]]:
624
+ """
625
+ A list of up to 10 Pub/Sub topics to which messages are published when control plane
626
+ operations are called on the regional secret or its versions.
627
+ Structure is documented below.
628
+ """
629
+ return pulumi.get(self, "topics")
630
+
631
+ @topics.setter
632
+ def topics(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['RegionalSecretTopicArgs']]]]):
633
+ pulumi.set(self, "topics", value)
634
+
635
+ @property
636
+ @pulumi.getter
637
+ def ttl(self) -> Optional[pulumi.Input[str]]:
638
+ """
639
+ The TTL for the regional secret. A duration in seconds with up to nine fractional digits,
640
+ terminated by 's'. Example: "3.5s". Only one of `ttl` or `expire_time` can be provided.
641
+ """
642
+ return pulumi.get(self, "ttl")
643
+
644
+ @ttl.setter
645
+ def ttl(self, value: Optional[pulumi.Input[str]]):
646
+ pulumi.set(self, "ttl", value)
647
+
648
+ @property
649
+ @pulumi.getter(name="versionAliases")
650
+ def version_aliases(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
651
+ """
652
+ Mapping from version alias to version name.
653
+ A version alias is a string with a maximum length of 63 characters and can contain
654
+ uppercase and lowercase letters, numerals, and the hyphen (-) and underscore ('_')
655
+ characters. An alias string must start with a letter and cannot be the string
656
+ 'latest' or 'NEW'. No more than 50 aliases can be assigned to a given secret.
657
+ An object containing a list of "key": value pairs. Example:
658
+ { "name": "wrench", "mass": "1.3kg", "count": "3" }.
659
+ """
660
+ return pulumi.get(self, "version_aliases")
661
+
662
+ @version_aliases.setter
663
+ def version_aliases(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
664
+ pulumi.set(self, "version_aliases", value)
665
+
666
+ @property
667
+ @pulumi.getter(name="versionDestroyTtl")
668
+ def version_destroy_ttl(self) -> Optional[pulumi.Input[str]]:
669
+ """
670
+ Secret Version TTL after destruction request.
671
+ This is a part of the delayed delete feature on Secret Version.
672
+ For secret with versionDestroyTtl>0, version destruction doesn't happen immediately
673
+ on calling destroy instead the version goes to a disabled state and
674
+ the actual destruction happens after this TTL expires. It must be atleast 24h.
675
+ """
676
+ return pulumi.get(self, "version_destroy_ttl")
677
+
678
+ @version_destroy_ttl.setter
679
+ def version_destroy_ttl(self, value: Optional[pulumi.Input[str]]):
680
+ pulumi.set(self, "version_destroy_ttl", value)
681
+
682
+
683
+ class RegionalSecret(pulumi.CustomResource):
684
+ @overload
685
+ def __init__(__self__,
686
+ resource_name: str,
687
+ opts: Optional[pulumi.ResourceOptions] = None,
688
+ annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
689
+ customer_managed_encryption: Optional[pulumi.Input[Union['RegionalSecretCustomerManagedEncryptionArgs', 'RegionalSecretCustomerManagedEncryptionArgsDict']]] = None,
690
+ expire_time: Optional[pulumi.Input[str]] = None,
691
+ labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
692
+ location: Optional[pulumi.Input[str]] = None,
693
+ project: Optional[pulumi.Input[str]] = None,
694
+ rotation: Optional[pulumi.Input[Union['RegionalSecretRotationArgs', 'RegionalSecretRotationArgsDict']]] = None,
695
+ secret_id: Optional[pulumi.Input[str]] = None,
696
+ topics: Optional[pulumi.Input[Sequence[pulumi.Input[Union['RegionalSecretTopicArgs', 'RegionalSecretTopicArgsDict']]]]] = None,
697
+ ttl: Optional[pulumi.Input[str]] = None,
698
+ version_aliases: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
699
+ version_destroy_ttl: Optional[pulumi.Input[str]] = None,
700
+ __props__=None):
701
+ """
702
+ A Regional Secret is a logical secret whose value and versions can be created and accessed within a region only.
703
+
704
+ To get more information about RegionalSecret, see:
705
+
706
+ * [API documentation](https://cloud.google.com/secret-manager/docs/reference/rest/v1/projects.secrets)
707
+
708
+ ## Example Usage
709
+
710
+ ### Regional Secret Config Basic
711
+
712
+ ```python
713
+ import pulumi
714
+ import pulumi_gcp as gcp
715
+
716
+ regional_secret_basic = gcp.secretmanager.RegionalSecret("regional-secret-basic",
717
+ secret_id="tf-reg-secret",
718
+ location="us-central1",
719
+ labels={
720
+ "label": "my-label",
721
+ },
722
+ annotations={
723
+ "key1": "value1",
724
+ "key2": "value2",
725
+ "key3": "value3",
726
+ })
727
+ ```
728
+ ### Regional Secret With Cmek
729
+
730
+ ```python
731
+ import pulumi
732
+ import pulumi_gcp as gcp
733
+
734
+ project = gcp.organizations.get_project()
735
+ kms_secret_binding = gcp.kms.CryptoKeyIAMMember("kms-secret-binding",
736
+ crypto_key_id="kms-key",
737
+ role="roles/cloudkms.cryptoKeyEncrypterDecrypter",
738
+ member=f"serviceAccount:service-{project.number}@gcp-sa-secretmanager.iam.gserviceaccount.com")
739
+ regional_secret_with_cmek = gcp.secretmanager.RegionalSecret("regional-secret-with-cmek",
740
+ secret_id="tf-reg-secret",
741
+ location="us-central1",
742
+ customer_managed_encryption={
743
+ "kms_key_name": "kms-key",
744
+ },
745
+ opts = pulumi.ResourceOptions(depends_on=[kms_secret_binding]))
746
+ ```
747
+ ### Regional Secret With Rotation
748
+
749
+ ```python
750
+ import pulumi
751
+ import pulumi_gcp as gcp
752
+
753
+ project = gcp.organizations.get_project()
754
+ topic = gcp.pubsub.Topic("topic", name="tf-topic")
755
+ secrets_manager_access = gcp.pubsub.TopicIAMMember("secrets_manager_access",
756
+ topic=topic.name,
757
+ role="roles/pubsub.publisher",
758
+ member=f"serviceAccount:service-{project.number}@gcp-sa-secretmanager.iam.gserviceaccount.com")
759
+ regional_secret_with_rotation = gcp.secretmanager.RegionalSecret("regional-secret-with-rotation",
760
+ secret_id="tf-reg-secret",
761
+ location="us-central1",
762
+ topics=[{
763
+ "name": topic.id,
764
+ }],
765
+ rotation={
766
+ "rotation_period": "3600s",
767
+ "next_rotation_time": "2045-11-30T00:00:00Z",
768
+ },
769
+ opts = pulumi.ResourceOptions(depends_on=[secrets_manager_access]))
770
+ ```
771
+ ### Regional Secret With Ttl
772
+
773
+ ```python
774
+ import pulumi
775
+ import pulumi_gcp as gcp
776
+
777
+ regional_secret_with_ttl = gcp.secretmanager.RegionalSecret("regional-secret-with-ttl",
778
+ secret_id="tf-reg-secret",
779
+ location="us-central1",
780
+ labels={
781
+ "label": "my-label",
782
+ },
783
+ annotations={
784
+ "key1": "value1",
785
+ "key2": "value2",
786
+ "key3": "value3",
787
+ },
788
+ ttl="36000s")
789
+ ```
790
+ ### Regional Secret With Expire Time
791
+
792
+ ```python
793
+ import pulumi
794
+ import pulumi_gcp as gcp
795
+
796
+ regional_secret_with_expire_time = gcp.secretmanager.RegionalSecret("regional-secret-with-expire-time",
797
+ secret_id="tf-reg-secret",
798
+ location="us-central1",
799
+ labels={
800
+ "label": "my-label",
801
+ },
802
+ annotations={
803
+ "key1": "value1",
804
+ "key2": "value2",
805
+ "key3": "value3",
806
+ },
807
+ expire_time="2055-11-30T00:00:00Z")
808
+ ```
809
+ ### Regional Secret With Version Destroy Ttl
810
+
811
+ ```python
812
+ import pulumi
813
+ import pulumi_gcp as gcp
814
+
815
+ regional_secret_with_version_destroy_ttl = gcp.secretmanager.RegionalSecret("regional-secret-with-version-destroy-ttl",
816
+ secret_id="tf-reg-secret",
817
+ location="us-central1",
818
+ labels={
819
+ "label": "my-label",
820
+ },
821
+ annotations={
822
+ "key1": "value1",
823
+ "key2": "value2",
824
+ "key3": "value3",
825
+ },
826
+ version_destroy_ttl="86400s")
827
+ ```
828
+
829
+ ## Import
830
+
831
+ RegionalSecret can be imported using any of these accepted formats:
832
+
833
+ * `projects/{{project}}/locations/{{location}}/secrets/{{secret_id}}`
834
+
835
+ * `{{project}}/{{location}}/{{secret_id}}`
836
+
837
+ * `{{location}}/{{secret_id}}`
838
+
839
+ When using the `pulumi import` command, RegionalSecret can be imported using one of the formats above. For example:
840
+
841
+ ```sh
842
+ $ pulumi import gcp:secretmanager/regionalSecret:RegionalSecret default projects/{{project}}/locations/{{location}}/secrets/{{secret_id}}
843
+ ```
844
+
845
+ ```sh
846
+ $ pulumi import gcp:secretmanager/regionalSecret:RegionalSecret default {{project}}/{{location}}/{{secret_id}}
847
+ ```
848
+
849
+ ```sh
850
+ $ pulumi import gcp:secretmanager/regionalSecret:RegionalSecret default {{location}}/{{secret_id}}
851
+ ```
852
+
853
+ :param str resource_name: The name of the resource.
854
+ :param pulumi.ResourceOptions opts: Options for the resource.
855
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] annotations: Custom metadata about the regional secret.
856
+ Annotations are distinct from various forms of labels. Annotations exist to allow
857
+ client tools to store their own state information without requiring a database.
858
+ Annotation keys must be between 1 and 63 characters long, have a UTF-8 encoding of
859
+ maximum 128 bytes, begin and end with an alphanumeric character ([a-z0-9A-Z]), and
860
+ may have dashes (-), underscores (_), dots (.), and alphanumerics in between these
861
+ symbols.
862
+ The total size of annotation keys and values must be less than 16KiB.
863
+ An object containing a list of "key": value pairs. Example:
864
+ { "name": "wrench", "mass": "1.3kg", "count": "3" }.
865
+
866
+ **Note**: This field is non-authoritative, and will only manage the annotations present in your configuration.
867
+ Please refer to the field `effective_annotations` for all of the annotations present on the resource.
868
+ :param pulumi.Input[Union['RegionalSecretCustomerManagedEncryptionArgs', 'RegionalSecretCustomerManagedEncryptionArgsDict']] customer_managed_encryption: The customer-managed encryption configuration of the regional secret.
869
+ Structure is documented below.
870
+ :param pulumi.Input[str] expire_time: Timestamp in UTC when the regional secret is scheduled to expire. This is always provided on
871
+ output, regardless of what was sent on input. A timestamp in RFC3339 UTC "Zulu" format, with
872
+ nanosecond resolution and up to nine fractional digits. Examples: "2014-10-02T15:01:23Z" and
873
+ "2014-10-02T15:01:23.045123456Z". Only one of `expire_time` or `ttl` can be provided.
874
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: The labels assigned to this regional secret.
875
+ Label keys must be between 1 and 63 characters long, have a UTF-8 encoding of maximum 128 bytes,
876
+ and must conform to the following PCRE regular expression: [\\p{Ll}\\p{Lo}][\\p{Ll}\\p{Lo}\\p{N}_-]{0,62}
877
+ Label values must be between 0 and 63 characters long, have a UTF-8 encoding of maximum 128 bytes,
878
+ and must conform to the following PCRE regular expression: [\\p{Ll}\\p{Lo}\\p{N}_-]{0,63}
879
+ No more than 64 labels can be assigned to a given resource.
880
+ An object containing a list of "key": value pairs. Example:
881
+ { "name": "wrench", "mass": "1.3kg", "count": "3" }.
882
+
883
+ **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
884
+ Please refer to the field `effective_labels` for all of the labels present on the resource.
885
+ :param pulumi.Input[str] location: The location of the regional secret. eg us-central1
886
+ :param pulumi.Input[str] project: The ID of the project in which the resource belongs.
887
+ If it is not provided, the provider project is used.
888
+ :param pulumi.Input[Union['RegionalSecretRotationArgs', 'RegionalSecretRotationArgsDict']] rotation: The rotation time and period for a regional secret. At `next_rotation_time`, Secret Manager
889
+ will send a Pub/Sub notification to the topics configured on the Secret. `topics` must be
890
+ set to configure rotation.
891
+ Structure is documented below.
892
+ :param pulumi.Input[str] secret_id: This must be unique within the project.
893
+
894
+
895
+ - - -
896
+ :param pulumi.Input[Sequence[pulumi.Input[Union['RegionalSecretTopicArgs', 'RegionalSecretTopicArgsDict']]]] topics: A list of up to 10 Pub/Sub topics to which messages are published when control plane
897
+ operations are called on the regional secret or its versions.
898
+ Structure is documented below.
899
+ :param pulumi.Input[str] ttl: The TTL for the regional secret. A duration in seconds with up to nine fractional digits,
900
+ terminated by 's'. Example: "3.5s". Only one of `ttl` or `expire_time` can be provided.
901
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] version_aliases: Mapping from version alias to version name.
902
+ A version alias is a string with a maximum length of 63 characters and can contain
903
+ uppercase and lowercase letters, numerals, and the hyphen (-) and underscore ('_')
904
+ characters. An alias string must start with a letter and cannot be the string
905
+ 'latest' or 'NEW'. No more than 50 aliases can be assigned to a given secret.
906
+ An object containing a list of "key": value pairs. Example:
907
+ { "name": "wrench", "mass": "1.3kg", "count": "3" }.
908
+ :param pulumi.Input[str] version_destroy_ttl: Secret Version TTL after destruction request.
909
+ This is a part of the delayed delete feature on Secret Version.
910
+ For secret with versionDestroyTtl>0, version destruction doesn't happen immediately
911
+ on calling destroy instead the version goes to a disabled state and
912
+ the actual destruction happens after this TTL expires. It must be atleast 24h.
913
+ """
914
+ ...
915
+ @overload
916
+ def __init__(__self__,
917
+ resource_name: str,
918
+ args: RegionalSecretArgs,
919
+ opts: Optional[pulumi.ResourceOptions] = None):
920
+ """
921
+ A Regional Secret is a logical secret whose value and versions can be created and accessed within a region only.
922
+
923
+ To get more information about RegionalSecret, see:
924
+
925
+ * [API documentation](https://cloud.google.com/secret-manager/docs/reference/rest/v1/projects.secrets)
926
+
927
+ ## Example Usage
928
+
929
+ ### Regional Secret Config Basic
930
+
931
+ ```python
932
+ import pulumi
933
+ import pulumi_gcp as gcp
934
+
935
+ regional_secret_basic = gcp.secretmanager.RegionalSecret("regional-secret-basic",
936
+ secret_id="tf-reg-secret",
937
+ location="us-central1",
938
+ labels={
939
+ "label": "my-label",
940
+ },
941
+ annotations={
942
+ "key1": "value1",
943
+ "key2": "value2",
944
+ "key3": "value3",
945
+ })
946
+ ```
947
+ ### Regional Secret With Cmek
948
+
949
+ ```python
950
+ import pulumi
951
+ import pulumi_gcp as gcp
952
+
953
+ project = gcp.organizations.get_project()
954
+ kms_secret_binding = gcp.kms.CryptoKeyIAMMember("kms-secret-binding",
955
+ crypto_key_id="kms-key",
956
+ role="roles/cloudkms.cryptoKeyEncrypterDecrypter",
957
+ member=f"serviceAccount:service-{project.number}@gcp-sa-secretmanager.iam.gserviceaccount.com")
958
+ regional_secret_with_cmek = gcp.secretmanager.RegionalSecret("regional-secret-with-cmek",
959
+ secret_id="tf-reg-secret",
960
+ location="us-central1",
961
+ customer_managed_encryption={
962
+ "kms_key_name": "kms-key",
963
+ },
964
+ opts = pulumi.ResourceOptions(depends_on=[kms_secret_binding]))
965
+ ```
966
+ ### Regional Secret With Rotation
967
+
968
+ ```python
969
+ import pulumi
970
+ import pulumi_gcp as gcp
971
+
972
+ project = gcp.organizations.get_project()
973
+ topic = gcp.pubsub.Topic("topic", name="tf-topic")
974
+ secrets_manager_access = gcp.pubsub.TopicIAMMember("secrets_manager_access",
975
+ topic=topic.name,
976
+ role="roles/pubsub.publisher",
977
+ member=f"serviceAccount:service-{project.number}@gcp-sa-secretmanager.iam.gserviceaccount.com")
978
+ regional_secret_with_rotation = gcp.secretmanager.RegionalSecret("regional-secret-with-rotation",
979
+ secret_id="tf-reg-secret",
980
+ location="us-central1",
981
+ topics=[{
982
+ "name": topic.id,
983
+ }],
984
+ rotation={
985
+ "rotation_period": "3600s",
986
+ "next_rotation_time": "2045-11-30T00:00:00Z",
987
+ },
988
+ opts = pulumi.ResourceOptions(depends_on=[secrets_manager_access]))
989
+ ```
990
+ ### Regional Secret With Ttl
991
+
992
+ ```python
993
+ import pulumi
994
+ import pulumi_gcp as gcp
995
+
996
+ regional_secret_with_ttl = gcp.secretmanager.RegionalSecret("regional-secret-with-ttl",
997
+ secret_id="tf-reg-secret",
998
+ location="us-central1",
999
+ labels={
1000
+ "label": "my-label",
1001
+ },
1002
+ annotations={
1003
+ "key1": "value1",
1004
+ "key2": "value2",
1005
+ "key3": "value3",
1006
+ },
1007
+ ttl="36000s")
1008
+ ```
1009
+ ### Regional Secret With Expire Time
1010
+
1011
+ ```python
1012
+ import pulumi
1013
+ import pulumi_gcp as gcp
1014
+
1015
+ regional_secret_with_expire_time = gcp.secretmanager.RegionalSecret("regional-secret-with-expire-time",
1016
+ secret_id="tf-reg-secret",
1017
+ location="us-central1",
1018
+ labels={
1019
+ "label": "my-label",
1020
+ },
1021
+ annotations={
1022
+ "key1": "value1",
1023
+ "key2": "value2",
1024
+ "key3": "value3",
1025
+ },
1026
+ expire_time="2055-11-30T00:00:00Z")
1027
+ ```
1028
+ ### Regional Secret With Version Destroy Ttl
1029
+
1030
+ ```python
1031
+ import pulumi
1032
+ import pulumi_gcp as gcp
1033
+
1034
+ regional_secret_with_version_destroy_ttl = gcp.secretmanager.RegionalSecret("regional-secret-with-version-destroy-ttl",
1035
+ secret_id="tf-reg-secret",
1036
+ location="us-central1",
1037
+ labels={
1038
+ "label": "my-label",
1039
+ },
1040
+ annotations={
1041
+ "key1": "value1",
1042
+ "key2": "value2",
1043
+ "key3": "value3",
1044
+ },
1045
+ version_destroy_ttl="86400s")
1046
+ ```
1047
+
1048
+ ## Import
1049
+
1050
+ RegionalSecret can be imported using any of these accepted formats:
1051
+
1052
+ * `projects/{{project}}/locations/{{location}}/secrets/{{secret_id}}`
1053
+
1054
+ * `{{project}}/{{location}}/{{secret_id}}`
1055
+
1056
+ * `{{location}}/{{secret_id}}`
1057
+
1058
+ When using the `pulumi import` command, RegionalSecret can be imported using one of the formats above. For example:
1059
+
1060
+ ```sh
1061
+ $ pulumi import gcp:secretmanager/regionalSecret:RegionalSecret default projects/{{project}}/locations/{{location}}/secrets/{{secret_id}}
1062
+ ```
1063
+
1064
+ ```sh
1065
+ $ pulumi import gcp:secretmanager/regionalSecret:RegionalSecret default {{project}}/{{location}}/{{secret_id}}
1066
+ ```
1067
+
1068
+ ```sh
1069
+ $ pulumi import gcp:secretmanager/regionalSecret:RegionalSecret default {{location}}/{{secret_id}}
1070
+ ```
1071
+
1072
+ :param str resource_name: The name of the resource.
1073
+ :param RegionalSecretArgs args: The arguments to use to populate this resource's properties.
1074
+ :param pulumi.ResourceOptions opts: Options for the resource.
1075
+ """
1076
+ ...
1077
+ def __init__(__self__, resource_name: str, *args, **kwargs):
1078
+ resource_args, opts = _utilities.get_resource_args_opts(RegionalSecretArgs, pulumi.ResourceOptions, *args, **kwargs)
1079
+ if resource_args is not None:
1080
+ __self__._internal_init(resource_name, opts, **resource_args.__dict__)
1081
+ else:
1082
+ __self__._internal_init(resource_name, *args, **kwargs)
1083
+
1084
+ def _internal_init(__self__,
1085
+ resource_name: str,
1086
+ opts: Optional[pulumi.ResourceOptions] = None,
1087
+ annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
1088
+ customer_managed_encryption: Optional[pulumi.Input[Union['RegionalSecretCustomerManagedEncryptionArgs', 'RegionalSecretCustomerManagedEncryptionArgsDict']]] = None,
1089
+ expire_time: Optional[pulumi.Input[str]] = None,
1090
+ labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
1091
+ location: Optional[pulumi.Input[str]] = None,
1092
+ project: Optional[pulumi.Input[str]] = None,
1093
+ rotation: Optional[pulumi.Input[Union['RegionalSecretRotationArgs', 'RegionalSecretRotationArgsDict']]] = None,
1094
+ secret_id: Optional[pulumi.Input[str]] = None,
1095
+ topics: Optional[pulumi.Input[Sequence[pulumi.Input[Union['RegionalSecretTopicArgs', 'RegionalSecretTopicArgsDict']]]]] = None,
1096
+ ttl: Optional[pulumi.Input[str]] = None,
1097
+ version_aliases: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
1098
+ version_destroy_ttl: Optional[pulumi.Input[str]] = None,
1099
+ __props__=None):
1100
+ opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
1101
+ if not isinstance(opts, pulumi.ResourceOptions):
1102
+ raise TypeError('Expected resource options to be a ResourceOptions instance')
1103
+ if opts.id is None:
1104
+ if __props__ is not None:
1105
+ raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
1106
+ __props__ = RegionalSecretArgs.__new__(RegionalSecretArgs)
1107
+
1108
+ __props__.__dict__["annotations"] = annotations
1109
+ __props__.__dict__["customer_managed_encryption"] = customer_managed_encryption
1110
+ __props__.__dict__["expire_time"] = expire_time
1111
+ __props__.__dict__["labels"] = labels
1112
+ if location is None and not opts.urn:
1113
+ raise TypeError("Missing required property 'location'")
1114
+ __props__.__dict__["location"] = location
1115
+ __props__.__dict__["project"] = project
1116
+ __props__.__dict__["rotation"] = rotation
1117
+ if secret_id is None and not opts.urn:
1118
+ raise TypeError("Missing required property 'secret_id'")
1119
+ __props__.__dict__["secret_id"] = secret_id
1120
+ __props__.__dict__["topics"] = topics
1121
+ __props__.__dict__["ttl"] = ttl
1122
+ __props__.__dict__["version_aliases"] = version_aliases
1123
+ __props__.__dict__["version_destroy_ttl"] = version_destroy_ttl
1124
+ __props__.__dict__["create_time"] = None
1125
+ __props__.__dict__["effective_annotations"] = None
1126
+ __props__.__dict__["effective_labels"] = None
1127
+ __props__.__dict__["name"] = None
1128
+ __props__.__dict__["pulumi_labels"] = None
1129
+ secret_opts = pulumi.ResourceOptions(additional_secret_outputs=["effectiveLabels", "pulumiLabels"])
1130
+ opts = pulumi.ResourceOptions.merge(opts, secret_opts)
1131
+ super(RegionalSecret, __self__).__init__(
1132
+ 'gcp:secretmanager/regionalSecret:RegionalSecret',
1133
+ resource_name,
1134
+ __props__,
1135
+ opts)
1136
+
1137
+ @staticmethod
1138
+ def get(resource_name: str,
1139
+ id: pulumi.Input[str],
1140
+ opts: Optional[pulumi.ResourceOptions] = None,
1141
+ annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
1142
+ create_time: Optional[pulumi.Input[str]] = None,
1143
+ customer_managed_encryption: Optional[pulumi.Input[Union['RegionalSecretCustomerManagedEncryptionArgs', 'RegionalSecretCustomerManagedEncryptionArgsDict']]] = None,
1144
+ effective_annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
1145
+ effective_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
1146
+ expire_time: Optional[pulumi.Input[str]] = None,
1147
+ labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
1148
+ location: Optional[pulumi.Input[str]] = None,
1149
+ name: Optional[pulumi.Input[str]] = None,
1150
+ project: Optional[pulumi.Input[str]] = None,
1151
+ pulumi_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
1152
+ rotation: Optional[pulumi.Input[Union['RegionalSecretRotationArgs', 'RegionalSecretRotationArgsDict']]] = None,
1153
+ secret_id: Optional[pulumi.Input[str]] = None,
1154
+ topics: Optional[pulumi.Input[Sequence[pulumi.Input[Union['RegionalSecretTopicArgs', 'RegionalSecretTopicArgsDict']]]]] = None,
1155
+ ttl: Optional[pulumi.Input[str]] = None,
1156
+ version_aliases: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
1157
+ version_destroy_ttl: Optional[pulumi.Input[str]] = None) -> 'RegionalSecret':
1158
+ """
1159
+ Get an existing RegionalSecret resource's state with the given name, id, and optional extra
1160
+ properties used to qualify the lookup.
1161
+
1162
+ :param str resource_name: The unique name of the resulting resource.
1163
+ :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
1164
+ :param pulumi.ResourceOptions opts: Options for the resource.
1165
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] annotations: Custom metadata about the regional secret.
1166
+ Annotations are distinct from various forms of labels. Annotations exist to allow
1167
+ client tools to store their own state information without requiring a database.
1168
+ Annotation keys must be between 1 and 63 characters long, have a UTF-8 encoding of
1169
+ maximum 128 bytes, begin and end with an alphanumeric character ([a-z0-9A-Z]), and
1170
+ may have dashes (-), underscores (_), dots (.), and alphanumerics in between these
1171
+ symbols.
1172
+ The total size of annotation keys and values must be less than 16KiB.
1173
+ An object containing a list of "key": value pairs. Example:
1174
+ { "name": "wrench", "mass": "1.3kg", "count": "3" }.
1175
+
1176
+ **Note**: This field is non-authoritative, and will only manage the annotations present in your configuration.
1177
+ Please refer to the field `effective_annotations` for all of the annotations present on the resource.
1178
+ :param pulumi.Input[str] create_time: The time at which the regional secret was created.
1179
+ :param pulumi.Input[Union['RegionalSecretCustomerManagedEncryptionArgs', 'RegionalSecretCustomerManagedEncryptionArgsDict']] customer_managed_encryption: The customer-managed encryption configuration of the regional secret.
1180
+ Structure is documented below.
1181
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] effective_labels: All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
1182
+ :param pulumi.Input[str] expire_time: Timestamp in UTC when the regional secret is scheduled to expire. This is always provided on
1183
+ output, regardless of what was sent on input. A timestamp in RFC3339 UTC "Zulu" format, with
1184
+ nanosecond resolution and up to nine fractional digits. Examples: "2014-10-02T15:01:23Z" and
1185
+ "2014-10-02T15:01:23.045123456Z". Only one of `expire_time` or `ttl` can be provided.
1186
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: The labels assigned to this regional secret.
1187
+ Label keys must be between 1 and 63 characters long, have a UTF-8 encoding of maximum 128 bytes,
1188
+ and must conform to the following PCRE regular expression: [\\p{Ll}\\p{Lo}][\\p{Ll}\\p{Lo}\\p{N}_-]{0,62}
1189
+ Label values must be between 0 and 63 characters long, have a UTF-8 encoding of maximum 128 bytes,
1190
+ and must conform to the following PCRE regular expression: [\\p{Ll}\\p{Lo}\\p{N}_-]{0,63}
1191
+ No more than 64 labels can be assigned to a given resource.
1192
+ An object containing a list of "key": value pairs. Example:
1193
+ { "name": "wrench", "mass": "1.3kg", "count": "3" }.
1194
+
1195
+ **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
1196
+ Please refer to the field `effective_labels` for all of the labels present on the resource.
1197
+ :param pulumi.Input[str] location: The location of the regional secret. eg us-central1
1198
+ :param pulumi.Input[str] name: The resource name of the regional secret. Format:
1199
+ `projects/{{project}}/locations/{{location}}/secrets/{{secret_id}}`
1200
+ :param pulumi.Input[str] project: The ID of the project in which the resource belongs.
1201
+ If it is not provided, the provider project is used.
1202
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] pulumi_labels: The combination of labels configured directly on the resource
1203
+ and default labels configured on the provider.
1204
+ :param pulumi.Input[Union['RegionalSecretRotationArgs', 'RegionalSecretRotationArgsDict']] rotation: The rotation time and period for a regional secret. At `next_rotation_time`, Secret Manager
1205
+ will send a Pub/Sub notification to the topics configured on the Secret. `topics` must be
1206
+ set to configure rotation.
1207
+ Structure is documented below.
1208
+ :param pulumi.Input[str] secret_id: This must be unique within the project.
1209
+
1210
+
1211
+ - - -
1212
+ :param pulumi.Input[Sequence[pulumi.Input[Union['RegionalSecretTopicArgs', 'RegionalSecretTopicArgsDict']]]] topics: A list of up to 10 Pub/Sub topics to which messages are published when control plane
1213
+ operations are called on the regional secret or its versions.
1214
+ Structure is documented below.
1215
+ :param pulumi.Input[str] ttl: The TTL for the regional secret. A duration in seconds with up to nine fractional digits,
1216
+ terminated by 's'. Example: "3.5s". Only one of `ttl` or `expire_time` can be provided.
1217
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] version_aliases: Mapping from version alias to version name.
1218
+ A version alias is a string with a maximum length of 63 characters and can contain
1219
+ uppercase and lowercase letters, numerals, and the hyphen (-) and underscore ('_')
1220
+ characters. An alias string must start with a letter and cannot be the string
1221
+ 'latest' or 'NEW'. No more than 50 aliases can be assigned to a given secret.
1222
+ An object containing a list of "key": value pairs. Example:
1223
+ { "name": "wrench", "mass": "1.3kg", "count": "3" }.
1224
+ :param pulumi.Input[str] version_destroy_ttl: Secret Version TTL after destruction request.
1225
+ This is a part of the delayed delete feature on Secret Version.
1226
+ For secret with versionDestroyTtl>0, version destruction doesn't happen immediately
1227
+ on calling destroy instead the version goes to a disabled state and
1228
+ the actual destruction happens after this TTL expires. It must be atleast 24h.
1229
+ """
1230
+ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
1231
+
1232
+ __props__ = _RegionalSecretState.__new__(_RegionalSecretState)
1233
+
1234
+ __props__.__dict__["annotations"] = annotations
1235
+ __props__.__dict__["create_time"] = create_time
1236
+ __props__.__dict__["customer_managed_encryption"] = customer_managed_encryption
1237
+ __props__.__dict__["effective_annotations"] = effective_annotations
1238
+ __props__.__dict__["effective_labels"] = effective_labels
1239
+ __props__.__dict__["expire_time"] = expire_time
1240
+ __props__.__dict__["labels"] = labels
1241
+ __props__.__dict__["location"] = location
1242
+ __props__.__dict__["name"] = name
1243
+ __props__.__dict__["project"] = project
1244
+ __props__.__dict__["pulumi_labels"] = pulumi_labels
1245
+ __props__.__dict__["rotation"] = rotation
1246
+ __props__.__dict__["secret_id"] = secret_id
1247
+ __props__.__dict__["topics"] = topics
1248
+ __props__.__dict__["ttl"] = ttl
1249
+ __props__.__dict__["version_aliases"] = version_aliases
1250
+ __props__.__dict__["version_destroy_ttl"] = version_destroy_ttl
1251
+ return RegionalSecret(resource_name, opts=opts, __props__=__props__)
1252
+
1253
+ @property
1254
+ @pulumi.getter
1255
+ def annotations(self) -> pulumi.Output[Optional[Mapping[str, str]]]:
1256
+ """
1257
+ Custom metadata about the regional secret.
1258
+ Annotations are distinct from various forms of labels. Annotations exist to allow
1259
+ client tools to store their own state information without requiring a database.
1260
+ Annotation keys must be between 1 and 63 characters long, have a UTF-8 encoding of
1261
+ maximum 128 bytes, begin and end with an alphanumeric character ([a-z0-9A-Z]), and
1262
+ may have dashes (-), underscores (_), dots (.), and alphanumerics in between these
1263
+ symbols.
1264
+ The total size of annotation keys and values must be less than 16KiB.
1265
+ An object containing a list of "key": value pairs. Example:
1266
+ { "name": "wrench", "mass": "1.3kg", "count": "3" }.
1267
+
1268
+ **Note**: This field is non-authoritative, and will only manage the annotations present in your configuration.
1269
+ Please refer to the field `effective_annotations` for all of the annotations present on the resource.
1270
+ """
1271
+ return pulumi.get(self, "annotations")
1272
+
1273
+ @property
1274
+ @pulumi.getter(name="createTime")
1275
+ def create_time(self) -> pulumi.Output[str]:
1276
+ """
1277
+ The time at which the regional secret was created.
1278
+ """
1279
+ return pulumi.get(self, "create_time")
1280
+
1281
+ @property
1282
+ @pulumi.getter(name="customerManagedEncryption")
1283
+ def customer_managed_encryption(self) -> pulumi.Output[Optional['outputs.RegionalSecretCustomerManagedEncryption']]:
1284
+ """
1285
+ The customer-managed encryption configuration of the regional secret.
1286
+ Structure is documented below.
1287
+ """
1288
+ return pulumi.get(self, "customer_managed_encryption")
1289
+
1290
+ @property
1291
+ @pulumi.getter(name="effectiveAnnotations")
1292
+ def effective_annotations(self) -> pulumi.Output[Mapping[str, str]]:
1293
+ return pulumi.get(self, "effective_annotations")
1294
+
1295
+ @property
1296
+ @pulumi.getter(name="effectiveLabels")
1297
+ def effective_labels(self) -> pulumi.Output[Mapping[str, str]]:
1298
+ """
1299
+ All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
1300
+ """
1301
+ return pulumi.get(self, "effective_labels")
1302
+
1303
+ @property
1304
+ @pulumi.getter(name="expireTime")
1305
+ def expire_time(self) -> pulumi.Output[str]:
1306
+ """
1307
+ Timestamp in UTC when the regional secret is scheduled to expire. This is always provided on
1308
+ output, regardless of what was sent on input. A timestamp in RFC3339 UTC "Zulu" format, with
1309
+ nanosecond resolution and up to nine fractional digits. Examples: "2014-10-02T15:01:23Z" and
1310
+ "2014-10-02T15:01:23.045123456Z". Only one of `expire_time` or `ttl` can be provided.
1311
+ """
1312
+ return pulumi.get(self, "expire_time")
1313
+
1314
+ @property
1315
+ @pulumi.getter
1316
+ def labels(self) -> pulumi.Output[Optional[Mapping[str, str]]]:
1317
+ """
1318
+ The labels assigned to this regional secret.
1319
+ Label keys must be between 1 and 63 characters long, have a UTF-8 encoding of maximum 128 bytes,
1320
+ and must conform to the following PCRE regular expression: [\\p{Ll}\\p{Lo}][\\p{Ll}\\p{Lo}\\p{N}_-]{0,62}
1321
+ Label values must be between 0 and 63 characters long, have a UTF-8 encoding of maximum 128 bytes,
1322
+ and must conform to the following PCRE regular expression: [\\p{Ll}\\p{Lo}\\p{N}_-]{0,63}
1323
+ No more than 64 labels can be assigned to a given resource.
1324
+ An object containing a list of "key": value pairs. Example:
1325
+ { "name": "wrench", "mass": "1.3kg", "count": "3" }.
1326
+
1327
+ **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
1328
+ Please refer to the field `effective_labels` for all of the labels present on the resource.
1329
+ """
1330
+ return pulumi.get(self, "labels")
1331
+
1332
+ @property
1333
+ @pulumi.getter
1334
+ def location(self) -> pulumi.Output[str]:
1335
+ """
1336
+ The location of the regional secret. eg us-central1
1337
+ """
1338
+ return pulumi.get(self, "location")
1339
+
1340
+ @property
1341
+ @pulumi.getter
1342
+ def name(self) -> pulumi.Output[str]:
1343
+ """
1344
+ The resource name of the regional secret. Format:
1345
+ `projects/{{project}}/locations/{{location}}/secrets/{{secret_id}}`
1346
+ """
1347
+ return pulumi.get(self, "name")
1348
+
1349
+ @property
1350
+ @pulumi.getter
1351
+ def project(self) -> pulumi.Output[str]:
1352
+ """
1353
+ The ID of the project in which the resource belongs.
1354
+ If it is not provided, the provider project is used.
1355
+ """
1356
+ return pulumi.get(self, "project")
1357
+
1358
+ @property
1359
+ @pulumi.getter(name="pulumiLabels")
1360
+ def pulumi_labels(self) -> pulumi.Output[Mapping[str, str]]:
1361
+ """
1362
+ The combination of labels configured directly on the resource
1363
+ and default labels configured on the provider.
1364
+ """
1365
+ return pulumi.get(self, "pulumi_labels")
1366
+
1367
+ @property
1368
+ @pulumi.getter
1369
+ def rotation(self) -> pulumi.Output[Optional['outputs.RegionalSecretRotation']]:
1370
+ """
1371
+ The rotation time and period for a regional secret. At `next_rotation_time`, Secret Manager
1372
+ will send a Pub/Sub notification to the topics configured on the Secret. `topics` must be
1373
+ set to configure rotation.
1374
+ Structure is documented below.
1375
+ """
1376
+ return pulumi.get(self, "rotation")
1377
+
1378
+ @property
1379
+ @pulumi.getter(name="secretId")
1380
+ def secret_id(self) -> pulumi.Output[str]:
1381
+ """
1382
+ This must be unique within the project.
1383
+
1384
+
1385
+ - - -
1386
+ """
1387
+ return pulumi.get(self, "secret_id")
1388
+
1389
+ @property
1390
+ @pulumi.getter
1391
+ def topics(self) -> pulumi.Output[Optional[Sequence['outputs.RegionalSecretTopic']]]:
1392
+ """
1393
+ A list of up to 10 Pub/Sub topics to which messages are published when control plane
1394
+ operations are called on the regional secret or its versions.
1395
+ Structure is documented below.
1396
+ """
1397
+ return pulumi.get(self, "topics")
1398
+
1399
+ @property
1400
+ @pulumi.getter
1401
+ def ttl(self) -> pulumi.Output[Optional[str]]:
1402
+ """
1403
+ The TTL for the regional secret. A duration in seconds with up to nine fractional digits,
1404
+ terminated by 's'. Example: "3.5s". Only one of `ttl` or `expire_time` can be provided.
1405
+ """
1406
+ return pulumi.get(self, "ttl")
1407
+
1408
+ @property
1409
+ @pulumi.getter(name="versionAliases")
1410
+ def version_aliases(self) -> pulumi.Output[Optional[Mapping[str, str]]]:
1411
+ """
1412
+ Mapping from version alias to version name.
1413
+ A version alias is a string with a maximum length of 63 characters and can contain
1414
+ uppercase and lowercase letters, numerals, and the hyphen (-) and underscore ('_')
1415
+ characters. An alias string must start with a letter and cannot be the string
1416
+ 'latest' or 'NEW'. No more than 50 aliases can be assigned to a given secret.
1417
+ An object containing a list of "key": value pairs. Example:
1418
+ { "name": "wrench", "mass": "1.3kg", "count": "3" }.
1419
+ """
1420
+ return pulumi.get(self, "version_aliases")
1421
+
1422
+ @property
1423
+ @pulumi.getter(name="versionDestroyTtl")
1424
+ def version_destroy_ttl(self) -> pulumi.Output[Optional[str]]:
1425
+ """
1426
+ Secret Version TTL after destruction request.
1427
+ This is a part of the delayed delete feature on Secret Version.
1428
+ For secret with versionDestroyTtl>0, version destruction doesn't happen immediately
1429
+ on calling destroy instead the version goes to a disabled state and
1430
+ the actual destruction happens after this TTL expires. It must be atleast 24h.
1431
+ """
1432
+ return pulumi.get(self, "version_destroy_ttl")
1433
+