pulumi-gcp 8.36.0a1750484065__py3-none-any.whl → 8.37.0__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 (117) hide show
  1. pulumi_gcp/__init__.py +59 -0
  2. pulumi_gcp/alloydb/_inputs.py +26 -0
  3. pulumi_gcp/alloydb/outputs.py +34 -1
  4. pulumi_gcp/apihub/__init__.py +2 -0
  5. pulumi_gcp/apihub/_inputs.py +1658 -0
  6. pulumi_gcp/apihub/outputs.py +1374 -0
  7. pulumi_gcp/apihub/plugin.py +1146 -0
  8. pulumi_gcp/apihub/plugin_instance.py +808 -0
  9. pulumi_gcp/bigquery/table.py +16 -12
  10. pulumi_gcp/bigqueryanalyticshub/_inputs.py +56 -6
  11. pulumi_gcp/bigqueryanalyticshub/data_exchange.py +73 -0
  12. pulumi_gcp/bigqueryanalyticshub/listing.py +201 -48
  13. pulumi_gcp/bigqueryanalyticshub/listing_subscription.py +28 -0
  14. pulumi_gcp/bigqueryanalyticshub/outputs.py +50 -4
  15. pulumi_gcp/bigtable/table.py +82 -0
  16. pulumi_gcp/cloudidentity/group_membership.py +47 -0
  17. pulumi_gcp/cloudidentity/outputs.py +11 -0
  18. pulumi_gcp/cloudquota/s_quota_adjuster_settings.py +64 -8
  19. pulumi_gcp/cloudrunv2/_inputs.py +65 -9
  20. pulumi_gcp/cloudrunv2/job.py +44 -0
  21. pulumi_gcp/cloudrunv2/outputs.py +73 -8
  22. pulumi_gcp/cloudrunv2/service.py +0 -2
  23. pulumi_gcp/cloudrunv2/worker_pool.py +18 -20
  24. pulumi_gcp/compute/__init__.py +1 -0
  25. pulumi_gcp/compute/_inputs.py +787 -18
  26. pulumi_gcp/compute/disk.py +35 -28
  27. pulumi_gcp/compute/firewall_policy_rule.py +207 -0
  28. pulumi_gcp/compute/get_instance_group_manager.py +12 -1
  29. pulumi_gcp/compute/get_region_disk.py +12 -1
  30. pulumi_gcp/compute/instance.py +2 -2
  31. pulumi_gcp/compute/instance_group_manager.py +165 -14
  32. pulumi_gcp/compute/instance_template.py +2 -2
  33. pulumi_gcp/compute/interconnect.py +43 -11
  34. pulumi_gcp/compute/network.py +56 -0
  35. pulumi_gcp/compute/network_firewall_policy.py +68 -0
  36. pulumi_gcp/compute/network_firewall_policy_with_rules.py +61 -0
  37. pulumi_gcp/compute/node_template.py +21 -0
  38. pulumi_gcp/compute/outputs.py +620 -12
  39. pulumi_gcp/compute/region_disk.py +114 -0
  40. pulumi_gcp/compute/region_network_firewall_policy.py +90 -0
  41. pulumi_gcp/compute/region_network_firewall_policy_with_rules.py +109 -0
  42. pulumi_gcp/compute/service_attachment.py +76 -8
  43. pulumi_gcp/compute/wire_group.py +751 -0
  44. pulumi_gcp/config/__init__.pyi +2 -0
  45. pulumi_gcp/config/vars.py +4 -0
  46. pulumi_gcp/contactcenterinsights/__init__.py +9 -0
  47. pulumi_gcp/contactcenterinsights/view.py +526 -0
  48. pulumi_gcp/container/_inputs.py +207 -28
  49. pulumi_gcp/container/cluster.py +54 -0
  50. pulumi_gcp/container/get_cluster.py +12 -1
  51. pulumi_gcp/container/get_engine_versions.py +15 -1
  52. pulumi_gcp/container/node_pool.py +14 -0
  53. pulumi_gcp/container/outputs.py +295 -21
  54. pulumi_gcp/dataplex/_inputs.py +431 -6
  55. pulumi_gcp/dataplex/datascan.py +251 -0
  56. pulumi_gcp/dataplex/entry_type.py +2 -2
  57. pulumi_gcp/dataplex/glossary_category.py +8 -8
  58. pulumi_gcp/dataplex/glossary_term.py +8 -8
  59. pulumi_gcp/dataplex/outputs.py +353 -4
  60. pulumi_gcp/dataplex/task.py +16 -16
  61. pulumi_gcp/dataproc/__init__.py +1 -0
  62. pulumi_gcp/dataproc/_inputs.py +486 -0
  63. pulumi_gcp/dataproc/batch.py +10 -10
  64. pulumi_gcp/dataproc/outputs.py +407 -0
  65. pulumi_gcp/dataproc/session_template.py +1084 -0
  66. pulumi_gcp/diagflow/__init__.py +2 -0
  67. pulumi_gcp/diagflow/_inputs.py +479 -0
  68. pulumi_gcp/diagflow/cx_generative_settings.py +625 -0
  69. pulumi_gcp/diagflow/cx_tool.py +2 -2
  70. pulumi_gcp/diagflow/encryption_spec.py +382 -0
  71. pulumi_gcp/diagflow/outputs.py +416 -0
  72. pulumi_gcp/dns/record_set.py +4 -2
  73. pulumi_gcp/firestore/database.py +0 -9
  74. pulumi_gcp/firestore/field.py +6 -6
  75. pulumi_gcp/gkehub/membership_binding.py +6 -6
  76. pulumi_gcp/gkehub/membership_rbac_role_binding.py +4 -4
  77. pulumi_gcp/gkehub/namespace.py +4 -4
  78. pulumi_gcp/gkehub/scope_rbac_role_binding.py +8 -8
  79. pulumi_gcp/iam/_inputs.py +36 -0
  80. pulumi_gcp/iam/outputs.py +38 -0
  81. pulumi_gcp/iam/workload_identity_pool_managed_identity.py +88 -2
  82. pulumi_gcp/iap/tunnel_dest_group.py +2 -2
  83. pulumi_gcp/integrationconnectors/managed_zone.py +8 -8
  84. pulumi_gcp/kms/autokey_config.py +28 -0
  85. pulumi_gcp/kms/get_autokey_config.py +12 -1
  86. pulumi_gcp/lustre/get_instance.py +12 -1
  87. pulumi_gcp/lustre/instance.py +143 -86
  88. pulumi_gcp/managedkafka/connect_cluster.py +4 -4
  89. pulumi_gcp/managedkafka/connector.py +4 -4
  90. pulumi_gcp/memorystore/get_instance.py +12 -1
  91. pulumi_gcp/memorystore/instance.py +49 -0
  92. pulumi_gcp/monitoring/metric_descriptor.py +55 -57
  93. pulumi_gcp/networkconnectivity/spoke.py +14 -14
  94. pulumi_gcp/notebooks/instance.py +8 -8
  95. pulumi_gcp/orgpolicy/policy.py +2 -2
  96. pulumi_gcp/provider.py +20 -0
  97. pulumi_gcp/pubsub/subscription.py +6 -6
  98. pulumi_gcp/pulumi-plugin.json +1 -1
  99. pulumi_gcp/redis/get_instance.py +12 -1
  100. pulumi_gcp/redis/instance.py +44 -0
  101. pulumi_gcp/secretmanager/get_regional_secret.py +12 -1
  102. pulumi_gcp/secretmanager/outputs.py +7 -0
  103. pulumi_gcp/secretmanager/regional_secret.py +38 -2
  104. pulumi_gcp/spanner/_inputs.py +24 -1
  105. pulumi_gcp/spanner/outputs.py +17 -1
  106. pulumi_gcp/storage/_inputs.py +43 -3
  107. pulumi_gcp/storage/bucket_object.py +56 -0
  108. pulumi_gcp/storage/get_bucket_object.py +12 -1
  109. pulumi_gcp/storage/get_bucket_object_content.py +12 -1
  110. pulumi_gcp/storage/outputs.py +53 -3
  111. pulumi_gcp/vertex/ai_endpoint.py +4 -4
  112. pulumi_gcp/vertex/ai_feature_online_store_featureview.py +4 -4
  113. pulumi_gcp/workbench/instance.py +2 -0
  114. {pulumi_gcp-8.36.0a1750484065.dist-info → pulumi_gcp-8.37.0.dist-info}/METADATA +2 -2
  115. {pulumi_gcp-8.36.0a1750484065.dist-info → pulumi_gcp-8.37.0.dist-info}/RECORD +117 -109
  116. {pulumi_gcp-8.36.0a1750484065.dist-info → pulumi_gcp-8.37.0.dist-info}/WHEEL +0 -0
  117. {pulumi_gcp-8.36.0a1750484065.dist-info → pulumi_gcp-8.37.0.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,382 @@
1
+ # coding=utf-8
2
+ # *** WARNING: this file was generated by pulumi-language-python. ***
3
+ # *** Do not edit by hand unless you're certain you know what you are doing! ***
4
+
5
+ import builtins
6
+ import copy
7
+ import warnings
8
+ import sys
9
+ import pulumi
10
+ import pulumi.runtime
11
+ from typing import Any, Mapping, Optional, Sequence, Union, overload
12
+ if sys.version_info >= (3, 11):
13
+ from typing import NotRequired, TypedDict, TypeAlias
14
+ else:
15
+ from typing_extensions import NotRequired, TypedDict, TypeAlias
16
+ from .. import _utilities
17
+ from . import outputs
18
+ from ._inputs import *
19
+
20
+ __all__ = ['EncryptionSpecArgs', 'EncryptionSpec']
21
+
22
+ @pulumi.input_type
23
+ class EncryptionSpecArgs:
24
+ def __init__(__self__, *,
25
+ encryption_spec: pulumi.Input['EncryptionSpecEncryptionSpecArgs'],
26
+ location: pulumi.Input[builtins.str],
27
+ project: Optional[pulumi.Input[builtins.str]] = None):
28
+ """
29
+ The set of arguments for constructing a EncryptionSpec resource.
30
+ :param pulumi.Input['EncryptionSpecEncryptionSpecArgs'] encryption_spec: A nested object resource.
31
+ Structure is documented below.
32
+ :param pulumi.Input[builtins.str] location: The location in which the encryptionSpec is to be initialized.
33
+ """
34
+ pulumi.set(__self__, "encryption_spec", encryption_spec)
35
+ pulumi.set(__self__, "location", location)
36
+ if project is not None:
37
+ pulumi.set(__self__, "project", project)
38
+
39
+ @property
40
+ @pulumi.getter(name="encryptionSpec")
41
+ def encryption_spec(self) -> pulumi.Input['EncryptionSpecEncryptionSpecArgs']:
42
+ """
43
+ A nested object resource.
44
+ Structure is documented below.
45
+ """
46
+ return pulumi.get(self, "encryption_spec")
47
+
48
+ @encryption_spec.setter
49
+ def encryption_spec(self, value: pulumi.Input['EncryptionSpecEncryptionSpecArgs']):
50
+ pulumi.set(self, "encryption_spec", value)
51
+
52
+ @property
53
+ @pulumi.getter
54
+ def location(self) -> pulumi.Input[builtins.str]:
55
+ """
56
+ The location in which the encryptionSpec is to be initialized.
57
+ """
58
+ return pulumi.get(self, "location")
59
+
60
+ @location.setter
61
+ def location(self, value: pulumi.Input[builtins.str]):
62
+ pulumi.set(self, "location", value)
63
+
64
+ @property
65
+ @pulumi.getter
66
+ def project(self) -> Optional[pulumi.Input[builtins.str]]:
67
+ return pulumi.get(self, "project")
68
+
69
+ @project.setter
70
+ def project(self, value: Optional[pulumi.Input[builtins.str]]):
71
+ pulumi.set(self, "project", value)
72
+
73
+
74
+ @pulumi.input_type
75
+ class _EncryptionSpecState:
76
+ def __init__(__self__, *,
77
+ encryption_spec: Optional[pulumi.Input['EncryptionSpecEncryptionSpecArgs']] = None,
78
+ location: Optional[pulumi.Input[builtins.str]] = None,
79
+ project: Optional[pulumi.Input[builtins.str]] = None):
80
+ """
81
+ Input properties used for looking up and filtering EncryptionSpec resources.
82
+ :param pulumi.Input['EncryptionSpecEncryptionSpecArgs'] encryption_spec: A nested object resource.
83
+ Structure is documented below.
84
+ :param pulumi.Input[builtins.str] location: The location in which the encryptionSpec is to be initialized.
85
+ """
86
+ if encryption_spec is not None:
87
+ pulumi.set(__self__, "encryption_spec", encryption_spec)
88
+ if location is not None:
89
+ pulumi.set(__self__, "location", location)
90
+ if project is not None:
91
+ pulumi.set(__self__, "project", project)
92
+
93
+ @property
94
+ @pulumi.getter(name="encryptionSpec")
95
+ def encryption_spec(self) -> Optional[pulumi.Input['EncryptionSpecEncryptionSpecArgs']]:
96
+ """
97
+ A nested object resource.
98
+ Structure is documented below.
99
+ """
100
+ return pulumi.get(self, "encryption_spec")
101
+
102
+ @encryption_spec.setter
103
+ def encryption_spec(self, value: Optional[pulumi.Input['EncryptionSpecEncryptionSpecArgs']]):
104
+ pulumi.set(self, "encryption_spec", value)
105
+
106
+ @property
107
+ @pulumi.getter
108
+ def location(self) -> Optional[pulumi.Input[builtins.str]]:
109
+ """
110
+ The location in which the encryptionSpec is to be initialized.
111
+ """
112
+ return pulumi.get(self, "location")
113
+
114
+ @location.setter
115
+ def location(self, value: Optional[pulumi.Input[builtins.str]]):
116
+ pulumi.set(self, "location", value)
117
+
118
+ @property
119
+ @pulumi.getter
120
+ def project(self) -> Optional[pulumi.Input[builtins.str]]:
121
+ return pulumi.get(self, "project")
122
+
123
+ @project.setter
124
+ def project(self, value: Optional[pulumi.Input[builtins.str]]):
125
+ pulumi.set(self, "project", value)
126
+
127
+
128
+ @pulumi.type_token("gcp:diagflow/encryptionSpec:EncryptionSpec")
129
+ class EncryptionSpec(pulumi.CustomResource):
130
+ @overload
131
+ def __init__(__self__,
132
+ resource_name: str,
133
+ opts: Optional[pulumi.ResourceOptions] = None,
134
+ encryption_spec: Optional[pulumi.Input[Union['EncryptionSpecEncryptionSpecArgs', 'EncryptionSpecEncryptionSpecArgsDict']]] = None,
135
+ location: Optional[pulumi.Input[builtins.str]] = None,
136
+ project: Optional[pulumi.Input[builtins.str]] = None,
137
+ __props__=None):
138
+ """
139
+ Initializes a location-level encryption key specification.
140
+
141
+ To get more information about EncryptionSpec, see:
142
+
143
+ * [API documentation](https://cloud.google.com/dialogflow/es/docs/reference/rest/v2/projects.locations.encryptionSpec)
144
+ * How-to Guides
145
+ * [Official CX Documentation](https://cloud.google.com/dialogflow/cx/docs)
146
+ * [Official ES Documentation](https://cloud.google.com/dialogflow/es/docs)
147
+
148
+ ## Example Usage
149
+
150
+ ### Dialogflow Encryption Spec Basic
151
+
152
+ ```python
153
+ import pulumi
154
+ import pulumi_gcp as gcp
155
+ import pulumi_std as std
156
+ import pulumi_time as time
157
+
158
+ project = gcp.organizations.Project("project",
159
+ project_id="my-proj",
160
+ name="my-proj",
161
+ org_id="123456789",
162
+ billing_account="000000-0000000-0000000-000000",
163
+ deletion_policy="DELETE")
164
+ cloudkms = gcp.projects.Service("cloudkms",
165
+ project=project.project_id,
166
+ service="cloudkms.googleapis.com")
167
+ dialogflow = gcp.projects.Service("dialogflow",
168
+ project=project.project_id,
169
+ service="dialogflow.googleapis.com")
170
+ wait_enable_service_api = time.index.Sleep("wait_enable_service_api", create_duration=30s,
171
+ opts = pulumi.ResourceOptions(depends_on=[
172
+ cloudkms,
173
+ dialogflow,
174
+ ]))
175
+ gcp_sa = gcp.projects.ServiceIdentity("gcp_sa",
176
+ service="dialogflow.googleapis.com",
177
+ project=project.project_id,
178
+ opts = pulumi.ResourceOptions(depends_on=[wait_enable_service_api]))
179
+ wait_create_sa = time.index.Sleep("wait_create_sa", create_duration=30s,
180
+ opts = pulumi.ResourceOptions(depends_on=[gcp_sa]))
181
+ keyring = gcp.kms.KeyRing("keyring",
182
+ name="my-keyring",
183
+ location="us-central1",
184
+ project=project.project_id,
185
+ opts = pulumi.ResourceOptions(depends_on=[wait_enable_service_api]))
186
+ key = gcp.kms.CryptoKey("key",
187
+ name="my-key",
188
+ key_ring=keyring.id,
189
+ purpose="ENCRYPT_DECRYPT")
190
+ crypto_key = gcp.kms.CryptoKeyIAMMember("crypto_key",
191
+ crypto_key_id=key.id,
192
+ member=std.replace_output(text=gcp_sa.member,
193
+ search="@gcp-sa-dialogflow.iam",
194
+ replace="@gcp-sa-ccai-cmek.iam").apply(lambda invoke: invoke.result),
195
+ role="roles/cloudkms.cryptoKeyEncrypterDecrypter",
196
+ opts = pulumi.ResourceOptions(depends_on=[wait_create_sa]))
197
+ my_encryption_spec = gcp.diagflow.EncryptionSpec("my-encryption-spec",
198
+ project=project.project_id,
199
+ location="us-central1",
200
+ encryption_spec={
201
+ "kms_key": key.id,
202
+ },
203
+ opts = pulumi.ResourceOptions(depends_on=[crypto_key]))
204
+ ```
205
+
206
+ ## Import
207
+
208
+ This resource does not support import.
209
+
210
+ :param str resource_name: The name of the resource.
211
+ :param pulumi.ResourceOptions opts: Options for the resource.
212
+ :param pulumi.Input[Union['EncryptionSpecEncryptionSpecArgs', 'EncryptionSpecEncryptionSpecArgsDict']] encryption_spec: A nested object resource.
213
+ Structure is documented below.
214
+ :param pulumi.Input[builtins.str] location: The location in which the encryptionSpec is to be initialized.
215
+ """
216
+ ...
217
+ @overload
218
+ def __init__(__self__,
219
+ resource_name: str,
220
+ args: EncryptionSpecArgs,
221
+ opts: Optional[pulumi.ResourceOptions] = None):
222
+ """
223
+ Initializes a location-level encryption key specification.
224
+
225
+ To get more information about EncryptionSpec, see:
226
+
227
+ * [API documentation](https://cloud.google.com/dialogflow/es/docs/reference/rest/v2/projects.locations.encryptionSpec)
228
+ * How-to Guides
229
+ * [Official CX Documentation](https://cloud.google.com/dialogflow/cx/docs)
230
+ * [Official ES Documentation](https://cloud.google.com/dialogflow/es/docs)
231
+
232
+ ## Example Usage
233
+
234
+ ### Dialogflow Encryption Spec Basic
235
+
236
+ ```python
237
+ import pulumi
238
+ import pulumi_gcp as gcp
239
+ import pulumi_std as std
240
+ import pulumi_time as time
241
+
242
+ project = gcp.organizations.Project("project",
243
+ project_id="my-proj",
244
+ name="my-proj",
245
+ org_id="123456789",
246
+ billing_account="000000-0000000-0000000-000000",
247
+ deletion_policy="DELETE")
248
+ cloudkms = gcp.projects.Service("cloudkms",
249
+ project=project.project_id,
250
+ service="cloudkms.googleapis.com")
251
+ dialogflow = gcp.projects.Service("dialogflow",
252
+ project=project.project_id,
253
+ service="dialogflow.googleapis.com")
254
+ wait_enable_service_api = time.index.Sleep("wait_enable_service_api", create_duration=30s,
255
+ opts = pulumi.ResourceOptions(depends_on=[
256
+ cloudkms,
257
+ dialogflow,
258
+ ]))
259
+ gcp_sa = gcp.projects.ServiceIdentity("gcp_sa",
260
+ service="dialogflow.googleapis.com",
261
+ project=project.project_id,
262
+ opts = pulumi.ResourceOptions(depends_on=[wait_enable_service_api]))
263
+ wait_create_sa = time.index.Sleep("wait_create_sa", create_duration=30s,
264
+ opts = pulumi.ResourceOptions(depends_on=[gcp_sa]))
265
+ keyring = gcp.kms.KeyRing("keyring",
266
+ name="my-keyring",
267
+ location="us-central1",
268
+ project=project.project_id,
269
+ opts = pulumi.ResourceOptions(depends_on=[wait_enable_service_api]))
270
+ key = gcp.kms.CryptoKey("key",
271
+ name="my-key",
272
+ key_ring=keyring.id,
273
+ purpose="ENCRYPT_DECRYPT")
274
+ crypto_key = gcp.kms.CryptoKeyIAMMember("crypto_key",
275
+ crypto_key_id=key.id,
276
+ member=std.replace_output(text=gcp_sa.member,
277
+ search="@gcp-sa-dialogflow.iam",
278
+ replace="@gcp-sa-ccai-cmek.iam").apply(lambda invoke: invoke.result),
279
+ role="roles/cloudkms.cryptoKeyEncrypterDecrypter",
280
+ opts = pulumi.ResourceOptions(depends_on=[wait_create_sa]))
281
+ my_encryption_spec = gcp.diagflow.EncryptionSpec("my-encryption-spec",
282
+ project=project.project_id,
283
+ location="us-central1",
284
+ encryption_spec={
285
+ "kms_key": key.id,
286
+ },
287
+ opts = pulumi.ResourceOptions(depends_on=[crypto_key]))
288
+ ```
289
+
290
+ ## Import
291
+
292
+ This resource does not support import.
293
+
294
+ :param str resource_name: The name of the resource.
295
+ :param EncryptionSpecArgs args: The arguments to use to populate this resource's properties.
296
+ :param pulumi.ResourceOptions opts: Options for the resource.
297
+ """
298
+ ...
299
+ def __init__(__self__, resource_name: str, *args, **kwargs):
300
+ resource_args, opts = _utilities.get_resource_args_opts(EncryptionSpecArgs, pulumi.ResourceOptions, *args, **kwargs)
301
+ if resource_args is not None:
302
+ __self__._internal_init(resource_name, opts, **resource_args.__dict__)
303
+ else:
304
+ __self__._internal_init(resource_name, *args, **kwargs)
305
+
306
+ def _internal_init(__self__,
307
+ resource_name: str,
308
+ opts: Optional[pulumi.ResourceOptions] = None,
309
+ encryption_spec: Optional[pulumi.Input[Union['EncryptionSpecEncryptionSpecArgs', 'EncryptionSpecEncryptionSpecArgsDict']]] = None,
310
+ location: Optional[pulumi.Input[builtins.str]] = None,
311
+ project: Optional[pulumi.Input[builtins.str]] = None,
312
+ __props__=None):
313
+ opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
314
+ if not isinstance(opts, pulumi.ResourceOptions):
315
+ raise TypeError('Expected resource options to be a ResourceOptions instance')
316
+ if opts.id is None:
317
+ if __props__ is not None:
318
+ raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
319
+ __props__ = EncryptionSpecArgs.__new__(EncryptionSpecArgs)
320
+
321
+ if encryption_spec is None and not opts.urn:
322
+ raise TypeError("Missing required property 'encryption_spec'")
323
+ __props__.__dict__["encryption_spec"] = encryption_spec
324
+ if location is None and not opts.urn:
325
+ raise TypeError("Missing required property 'location'")
326
+ __props__.__dict__["location"] = location
327
+ __props__.__dict__["project"] = project
328
+ super(EncryptionSpec, __self__).__init__(
329
+ 'gcp:diagflow/encryptionSpec:EncryptionSpec',
330
+ resource_name,
331
+ __props__,
332
+ opts)
333
+
334
+ @staticmethod
335
+ def get(resource_name: str,
336
+ id: pulumi.Input[str],
337
+ opts: Optional[pulumi.ResourceOptions] = None,
338
+ encryption_spec: Optional[pulumi.Input[Union['EncryptionSpecEncryptionSpecArgs', 'EncryptionSpecEncryptionSpecArgsDict']]] = None,
339
+ location: Optional[pulumi.Input[builtins.str]] = None,
340
+ project: Optional[pulumi.Input[builtins.str]] = None) -> 'EncryptionSpec':
341
+ """
342
+ Get an existing EncryptionSpec resource's state with the given name, id, and optional extra
343
+ properties used to qualify the lookup.
344
+
345
+ :param str resource_name: The unique name of the resulting resource.
346
+ :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
347
+ :param pulumi.ResourceOptions opts: Options for the resource.
348
+ :param pulumi.Input[Union['EncryptionSpecEncryptionSpecArgs', 'EncryptionSpecEncryptionSpecArgsDict']] encryption_spec: A nested object resource.
349
+ Structure is documented below.
350
+ :param pulumi.Input[builtins.str] location: The location in which the encryptionSpec is to be initialized.
351
+ """
352
+ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
353
+
354
+ __props__ = _EncryptionSpecState.__new__(_EncryptionSpecState)
355
+
356
+ __props__.__dict__["encryption_spec"] = encryption_spec
357
+ __props__.__dict__["location"] = location
358
+ __props__.__dict__["project"] = project
359
+ return EncryptionSpec(resource_name, opts=opts, __props__=__props__)
360
+
361
+ @property
362
+ @pulumi.getter(name="encryptionSpec")
363
+ def encryption_spec(self) -> pulumi.Output['outputs.EncryptionSpecEncryptionSpec']:
364
+ """
365
+ A nested object resource.
366
+ Structure is documented below.
367
+ """
368
+ return pulumi.get(self, "encryption_spec")
369
+
370
+ @property
371
+ @pulumi.getter
372
+ def location(self) -> pulumi.Output[builtins.str]:
373
+ """
374
+ The location in which the encryptionSpec is to be initialized.
375
+ """
376
+ return pulumi.get(self, "location")
377
+
378
+ @property
379
+ @pulumi.getter
380
+ def project(self) -> pulumi.Output[builtins.str]:
381
+ return pulumi.get(self, "project")
382
+