pulumi-gcp 7.17.0a1712402830__py3-none-any.whl → 7.18.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 (66) hide show
  1. pulumi_gcp/__init__.py +27 -0
  2. pulumi_gcp/apphub/__init__.py +1 -0
  3. pulumi_gcp/apphub/get_application.py +220 -0
  4. pulumi_gcp/apphub/outputs.py +214 -0
  5. pulumi_gcp/applicationintegration/__init__.py +10 -0
  6. pulumi_gcp/applicationintegration/_inputs.py +119 -0
  7. pulumi_gcp/applicationintegration/client.py +574 -0
  8. pulumi_gcp/applicationintegration/outputs.py +122 -0
  9. pulumi_gcp/bigquery/_inputs.py +16 -0
  10. pulumi_gcp/bigquery/outputs.py +14 -0
  11. pulumi_gcp/bigquery/routine.py +98 -0
  12. pulumi_gcp/billing/project_info.py +4 -4
  13. pulumi_gcp/cloudquota/__init__.py +2 -0
  14. pulumi_gcp/cloudquota/_inputs.py +131 -0
  15. pulumi_gcp/cloudquota/outputs.py +118 -0
  16. pulumi_gcp/cloudquota/s_quota_preference.py +777 -0
  17. pulumi_gcp/cloudrunv2/_inputs.py +73 -0
  18. pulumi_gcp/cloudrunv2/outputs.py +126 -0
  19. pulumi_gcp/compute/interconnect_attachment.py +64 -0
  20. pulumi_gcp/compute/network_endpoint.py +8 -0
  21. pulumi_gcp/compute/network_endpoint_list.py +8 -0
  22. pulumi_gcp/compute/region_backend_service.py +28 -0
  23. pulumi_gcp/compute/target_instance.py +4 -4
  24. pulumi_gcp/config/__init__.pyi +2 -0
  25. pulumi_gcp/config/vars.py +4 -0
  26. pulumi_gcp/container/_inputs.py +17 -1
  27. pulumi_gcp/container/cluster.py +47 -0
  28. pulumi_gcp/container/get_cluster.py +11 -1
  29. pulumi_gcp/container/outputs.py +27 -2
  30. pulumi_gcp/databasemigrationservice/connection_profile.py +6 -6
  31. pulumi_gcp/dataflow/flex_template_job.py +84 -112
  32. pulumi_gcp/dataplex/task.py +16 -16
  33. pulumi_gcp/dataproc/_inputs.py +71 -0
  34. pulumi_gcp/dataproc/get_metastore_service.py +11 -1
  35. pulumi_gcp/dataproc/metastore_service.py +120 -0
  36. pulumi_gcp/dataproc/outputs.py +128 -0
  37. pulumi_gcp/firebase/app_check_service_config.py +2 -2
  38. pulumi_gcp/firestore/backup_schedule.py +23 -23
  39. pulumi_gcp/firestore/field.py +4 -4
  40. pulumi_gcp/gkehub/membership_binding.py +6 -6
  41. pulumi_gcp/gkehub/membership_rbac_role_binding.py +4 -4
  42. pulumi_gcp/gkehub/namespace.py +4 -4
  43. pulumi_gcp/gkehub/scope_rbac_role_binding.py +4 -4
  44. pulumi_gcp/gkeonprem/v_mware_cluster.py +49 -0
  45. pulumi_gcp/iap/tunnel_dest_group.py +2 -2
  46. pulumi_gcp/kms/_inputs.py +46 -0
  47. pulumi_gcp/kms/crypto_key.py +54 -0
  48. pulumi_gcp/kms/crypto_key_version.py +54 -0
  49. pulumi_gcp/kms/get_kms_crypto_key.py +11 -1
  50. pulumi_gcp/kms/outputs.py +54 -0
  51. pulumi_gcp/looker/instance.py +20 -30
  52. pulumi_gcp/orgpolicy/policy.py +2 -2
  53. pulumi_gcp/provider.py +20 -0
  54. pulumi_gcp/pubsub/subscription.py +4 -4
  55. pulumi_gcp/redis/cluster.py +91 -0
  56. pulumi_gcp/storage/bucket.py +28 -0
  57. pulumi_gcp/storage/get_bucket.py +17 -2
  58. pulumi_gcp/vertex/__init__.py +1 -0
  59. pulumi_gcp/vertex/_inputs.py +169 -0
  60. pulumi_gcp/vertex/ai_deployment_resource_pool.py +477 -0
  61. pulumi_gcp/vertex/outputs.py +194 -0
  62. pulumi_gcp/vpcaccess/connector.py +77 -28
  63. {pulumi_gcp-7.17.0a1712402830.dist-info → pulumi_gcp-7.18.0.dist-info}/METADATA +1 -1
  64. {pulumi_gcp-7.17.0a1712402830.dist-info → pulumi_gcp-7.18.0.dist-info}/RECORD +66 -58
  65. {pulumi_gcp-7.17.0a1712402830.dist-info → pulumi_gcp-7.18.0.dist-info}/WHEEL +0 -0
  66. {pulumi_gcp-7.17.0a1712402830.dist-info → pulumi_gcp-7.18.0.dist-info}/top_level.txt +0 -0
@@ -17,6 +17,7 @@ __all__ = ['CryptoKeyArgs', 'CryptoKey']
17
17
  class CryptoKeyArgs:
18
18
  def __init__(__self__, *,
19
19
  key_ring: pulumi.Input[str],
20
+ crypto_key_backend: Optional[pulumi.Input[str]] = None,
20
21
  destroy_scheduled_duration: Optional[pulumi.Input[str]] = None,
21
22
  import_only: Optional[pulumi.Input[bool]] = None,
22
23
  labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
@@ -32,6 +33,8 @@ class CryptoKeyArgs:
32
33
 
33
34
 
34
35
  - - -
36
+ :param pulumi.Input[str] crypto_key_backend: The resource name of the backend environment associated with all CryptoKeyVersions within this CryptoKey.
37
+ The resource name is in the format "projects/*/locations/*/ekmConnections/*" and only applies to "EXTERNAL_VPC" keys.
35
38
  :param pulumi.Input[str] destroy_scheduled_duration: The period of time that versions of this key spend in the DESTROY_SCHEDULED state before transitioning to DESTROYED.
36
39
  If not specified at creation time, the default duration is 24 hours.
37
40
  :param pulumi.Input[bool] import_only: Whether this key may contain imported versions only.
@@ -54,6 +57,8 @@ class CryptoKeyArgs:
54
57
  Structure is documented below.
55
58
  """
56
59
  pulumi.set(__self__, "key_ring", key_ring)
60
+ if crypto_key_backend is not None:
61
+ pulumi.set(__self__, "crypto_key_backend", crypto_key_backend)
57
62
  if destroy_scheduled_duration is not None:
58
63
  pulumi.set(__self__, "destroy_scheduled_duration", destroy_scheduled_duration)
59
64
  if import_only is not None:
@@ -87,6 +92,19 @@ class CryptoKeyArgs:
87
92
  def key_ring(self, value: pulumi.Input[str]):
88
93
  pulumi.set(self, "key_ring", value)
89
94
 
95
+ @property
96
+ @pulumi.getter(name="cryptoKeyBackend")
97
+ def crypto_key_backend(self) -> Optional[pulumi.Input[str]]:
98
+ """
99
+ The resource name of the backend environment associated with all CryptoKeyVersions within this CryptoKey.
100
+ The resource name is in the format "projects/*/locations/*/ekmConnections/*" and only applies to "EXTERNAL_VPC" keys.
101
+ """
102
+ return pulumi.get(self, "crypto_key_backend")
103
+
104
+ @crypto_key_backend.setter
105
+ def crypto_key_backend(self, value: Optional[pulumi.Input[str]]):
106
+ pulumi.set(self, "crypto_key_backend", value)
107
+
90
108
  @property
91
109
  @pulumi.getter(name="destroyScheduledDuration")
92
110
  def destroy_scheduled_duration(self) -> Optional[pulumi.Input[str]]:
@@ -199,6 +217,7 @@ class CryptoKeyArgs:
199
217
  @pulumi.input_type
200
218
  class _CryptoKeyState:
201
219
  def __init__(__self__, *,
220
+ crypto_key_backend: Optional[pulumi.Input[str]] = None,
202
221
  destroy_scheduled_duration: Optional[pulumi.Input[str]] = None,
203
222
  effective_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
204
223
  import_only: Optional[pulumi.Input[bool]] = None,
@@ -213,6 +232,8 @@ class _CryptoKeyState:
213
232
  version_template: Optional[pulumi.Input['CryptoKeyVersionTemplateArgs']] = None):
214
233
  """
215
234
  Input properties used for looking up and filtering CryptoKey resources.
235
+ :param pulumi.Input[str] crypto_key_backend: The resource name of the backend environment associated with all CryptoKeyVersions within this CryptoKey.
236
+ The resource name is in the format "projects/*/locations/*/ekmConnections/*" and only applies to "EXTERNAL_VPC" keys.
216
237
  :param pulumi.Input[str] destroy_scheduled_duration: The period of time that versions of this key spend in the DESTROY_SCHEDULED state before transitioning to DESTROYED.
217
238
  If not specified at creation time, the default duration is 24 hours.
218
239
  :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.
@@ -245,6 +266,8 @@ class _CryptoKeyState:
245
266
  :param pulumi.Input['CryptoKeyVersionTemplateArgs'] version_template: A template describing settings for new crypto key versions.
246
267
  Structure is documented below.
247
268
  """
269
+ if crypto_key_backend is not None:
270
+ pulumi.set(__self__, "crypto_key_backend", crypto_key_backend)
248
271
  if destroy_scheduled_duration is not None:
249
272
  pulumi.set(__self__, "destroy_scheduled_duration", destroy_scheduled_duration)
250
273
  if effective_labels is not None:
@@ -270,6 +293,19 @@ class _CryptoKeyState:
270
293
  if version_template is not None:
271
294
  pulumi.set(__self__, "version_template", version_template)
272
295
 
296
+ @property
297
+ @pulumi.getter(name="cryptoKeyBackend")
298
+ def crypto_key_backend(self) -> Optional[pulumi.Input[str]]:
299
+ """
300
+ The resource name of the backend environment associated with all CryptoKeyVersions within this CryptoKey.
301
+ The resource name is in the format "projects/*/locations/*/ekmConnections/*" and only applies to "EXTERNAL_VPC" keys.
302
+ """
303
+ return pulumi.get(self, "crypto_key_backend")
304
+
305
+ @crypto_key_backend.setter
306
+ def crypto_key_backend(self, value: Optional[pulumi.Input[str]]):
307
+ pulumi.set(self, "crypto_key_backend", value)
308
+
273
309
  @property
274
310
  @pulumi.getter(name="destroyScheduledDuration")
275
311
  def destroy_scheduled_duration(self) -> Optional[pulumi.Input[str]]:
@@ -439,6 +475,7 @@ class CryptoKey(pulumi.CustomResource):
439
475
  def __init__(__self__,
440
476
  resource_name: str,
441
477
  opts: Optional[pulumi.ResourceOptions] = None,
478
+ crypto_key_backend: Optional[pulumi.Input[str]] = None,
442
479
  destroy_scheduled_duration: Optional[pulumi.Input[str]] = None,
443
480
  import_only: Optional[pulumi.Input[bool]] = None,
444
481
  key_ring: Optional[pulumi.Input[str]] = None,
@@ -525,6 +562,8 @@ class CryptoKey(pulumi.CustomResource):
525
562
 
526
563
  :param str resource_name: The name of the resource.
527
564
  :param pulumi.ResourceOptions opts: Options for the resource.
565
+ :param pulumi.Input[str] crypto_key_backend: The resource name of the backend environment associated with all CryptoKeyVersions within this CryptoKey.
566
+ The resource name is in the format "projects/*/locations/*/ekmConnections/*" and only applies to "EXTERNAL_VPC" keys.
528
567
  :param pulumi.Input[str] destroy_scheduled_duration: The period of time that versions of this key spend in the DESTROY_SCHEDULED state before transitioning to DESTROYED.
529
568
  If not specified at creation time, the default duration is 24 hours.
530
569
  :param pulumi.Input[bool] import_only: Whether this key may contain imported versions only.
@@ -646,6 +685,7 @@ class CryptoKey(pulumi.CustomResource):
646
685
  def _internal_init(__self__,
647
686
  resource_name: str,
648
687
  opts: Optional[pulumi.ResourceOptions] = None,
688
+ crypto_key_backend: Optional[pulumi.Input[str]] = None,
649
689
  destroy_scheduled_duration: Optional[pulumi.Input[str]] = None,
650
690
  import_only: Optional[pulumi.Input[bool]] = None,
651
691
  key_ring: Optional[pulumi.Input[str]] = None,
@@ -664,6 +704,7 @@ class CryptoKey(pulumi.CustomResource):
664
704
  raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
665
705
  __props__ = CryptoKeyArgs.__new__(CryptoKeyArgs)
666
706
 
707
+ __props__.__dict__["crypto_key_backend"] = crypto_key_backend
667
708
  __props__.__dict__["destroy_scheduled_duration"] = destroy_scheduled_duration
668
709
  __props__.__dict__["import_only"] = import_only
669
710
  if key_ring is None and not opts.urn:
@@ -690,6 +731,7 @@ class CryptoKey(pulumi.CustomResource):
690
731
  def get(resource_name: str,
691
732
  id: pulumi.Input[str],
692
733
  opts: Optional[pulumi.ResourceOptions] = None,
734
+ crypto_key_backend: Optional[pulumi.Input[str]] = None,
693
735
  destroy_scheduled_duration: Optional[pulumi.Input[str]] = None,
694
736
  effective_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
695
737
  import_only: Optional[pulumi.Input[bool]] = None,
@@ -709,6 +751,8 @@ class CryptoKey(pulumi.CustomResource):
709
751
  :param str resource_name: The unique name of the resulting resource.
710
752
  :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
711
753
  :param pulumi.ResourceOptions opts: Options for the resource.
754
+ :param pulumi.Input[str] crypto_key_backend: The resource name of the backend environment associated with all CryptoKeyVersions within this CryptoKey.
755
+ The resource name is in the format "projects/*/locations/*/ekmConnections/*" and only applies to "EXTERNAL_VPC" keys.
712
756
  :param pulumi.Input[str] destroy_scheduled_duration: The period of time that versions of this key spend in the DESTROY_SCHEDULED state before transitioning to DESTROYED.
713
757
  If not specified at creation time, the default duration is 24 hours.
714
758
  :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.
@@ -745,6 +789,7 @@ class CryptoKey(pulumi.CustomResource):
745
789
 
746
790
  __props__ = _CryptoKeyState.__new__(_CryptoKeyState)
747
791
 
792
+ __props__.__dict__["crypto_key_backend"] = crypto_key_backend
748
793
  __props__.__dict__["destroy_scheduled_duration"] = destroy_scheduled_duration
749
794
  __props__.__dict__["effective_labels"] = effective_labels
750
795
  __props__.__dict__["import_only"] = import_only
@@ -759,6 +804,15 @@ class CryptoKey(pulumi.CustomResource):
759
804
  __props__.__dict__["version_template"] = version_template
760
805
  return CryptoKey(resource_name, opts=opts, __props__=__props__)
761
806
 
807
+ @property
808
+ @pulumi.getter(name="cryptoKeyBackend")
809
+ def crypto_key_backend(self) -> pulumi.Output[str]:
810
+ """
811
+ The resource name of the backend environment associated with all CryptoKeyVersions within this CryptoKey.
812
+ The resource name is in the format "projects/*/locations/*/ekmConnections/*" and only applies to "EXTERNAL_VPC" keys.
813
+ """
814
+ return pulumi.get(self, "crypto_key_backend")
815
+
762
816
  @property
763
817
  @pulumi.getter(name="destroyScheduledDuration")
764
818
  def destroy_scheduled_duration(self) -> pulumi.Output[str]:
@@ -17,6 +17,7 @@ __all__ = ['CryptoKeyVersionArgs', 'CryptoKeyVersion']
17
17
  class CryptoKeyVersionArgs:
18
18
  def __init__(__self__, *,
19
19
  crypto_key: pulumi.Input[str],
20
+ external_protection_level_options: Optional[pulumi.Input['CryptoKeyVersionExternalProtectionLevelOptionsArgs']] = None,
20
21
  state: Optional[pulumi.Input[str]] = None):
21
22
  """
22
23
  The set of arguments for constructing a CryptoKeyVersion resource.
@@ -25,10 +26,14 @@ class CryptoKeyVersionArgs:
25
26
 
26
27
 
27
28
  - - -
29
+ :param pulumi.Input['CryptoKeyVersionExternalProtectionLevelOptionsArgs'] external_protection_level_options: ExternalProtectionLevelOptions stores a group of additional fields for configuring a CryptoKeyVersion that are specific to the EXTERNAL protection level and EXTERNAL_VPC protection levels.
30
+ Structure is documented below.
28
31
  :param pulumi.Input[str] state: The current state of the CryptoKeyVersion.
29
32
  Possible values are: `PENDING_GENERATION`, `ENABLED`, `DISABLED`, `DESTROYED`, `DESTROY_SCHEDULED`, `PENDING_IMPORT`, `IMPORT_FAILED`.
30
33
  """
31
34
  pulumi.set(__self__, "crypto_key", crypto_key)
35
+ if external_protection_level_options is not None:
36
+ pulumi.set(__self__, "external_protection_level_options", external_protection_level_options)
32
37
  if state is not None:
33
38
  pulumi.set(__self__, "state", state)
34
39
 
@@ -48,6 +53,19 @@ class CryptoKeyVersionArgs:
48
53
  def crypto_key(self, value: pulumi.Input[str]):
49
54
  pulumi.set(self, "crypto_key", value)
50
55
 
56
+ @property
57
+ @pulumi.getter(name="externalProtectionLevelOptions")
58
+ def external_protection_level_options(self) -> Optional[pulumi.Input['CryptoKeyVersionExternalProtectionLevelOptionsArgs']]:
59
+ """
60
+ ExternalProtectionLevelOptions stores a group of additional fields for configuring a CryptoKeyVersion that are specific to the EXTERNAL protection level and EXTERNAL_VPC protection levels.
61
+ Structure is documented below.
62
+ """
63
+ return pulumi.get(self, "external_protection_level_options")
64
+
65
+ @external_protection_level_options.setter
66
+ def external_protection_level_options(self, value: Optional[pulumi.Input['CryptoKeyVersionExternalProtectionLevelOptionsArgs']]):
67
+ pulumi.set(self, "external_protection_level_options", value)
68
+
51
69
  @property
52
70
  @pulumi.getter
53
71
  def state(self) -> Optional[pulumi.Input[str]]:
@@ -68,6 +86,7 @@ class _CryptoKeyVersionState:
68
86
  algorithm: Optional[pulumi.Input[str]] = None,
69
87
  attestations: Optional[pulumi.Input[Sequence[pulumi.Input['CryptoKeyVersionAttestationArgs']]]] = None,
70
88
  crypto_key: Optional[pulumi.Input[str]] = None,
89
+ external_protection_level_options: Optional[pulumi.Input['CryptoKeyVersionExternalProtectionLevelOptionsArgs']] = None,
71
90
  generate_time: Optional[pulumi.Input[str]] = None,
72
91
  name: Optional[pulumi.Input[str]] = None,
73
92
  protection_level: Optional[pulumi.Input[str]] = None,
@@ -83,6 +102,8 @@ class _CryptoKeyVersionState:
83
102
 
84
103
 
85
104
  - - -
105
+ :param pulumi.Input['CryptoKeyVersionExternalProtectionLevelOptionsArgs'] external_protection_level_options: ExternalProtectionLevelOptions stores a group of additional fields for configuring a CryptoKeyVersion that are specific to the EXTERNAL protection level and EXTERNAL_VPC protection levels.
106
+ Structure is documented below.
86
107
  :param pulumi.Input[str] generate_time: The time this CryptoKeyVersion key material was generated
87
108
  :param pulumi.Input[str] name: The resource name for this CryptoKeyVersion.
88
109
  :param pulumi.Input[str] protection_level: The ProtectionLevel describing how crypto operations are performed with this CryptoKeyVersion.
@@ -95,6 +116,8 @@ class _CryptoKeyVersionState:
95
116
  pulumi.set(__self__, "attestations", attestations)
96
117
  if crypto_key is not None:
97
118
  pulumi.set(__self__, "crypto_key", crypto_key)
119
+ if external_protection_level_options is not None:
120
+ pulumi.set(__self__, "external_protection_level_options", external_protection_level_options)
98
121
  if generate_time is not None:
99
122
  pulumi.set(__self__, "generate_time", generate_time)
100
123
  if name is not None:
@@ -146,6 +169,19 @@ class _CryptoKeyVersionState:
146
169
  def crypto_key(self, value: Optional[pulumi.Input[str]]):
147
170
  pulumi.set(self, "crypto_key", value)
148
171
 
172
+ @property
173
+ @pulumi.getter(name="externalProtectionLevelOptions")
174
+ def external_protection_level_options(self) -> Optional[pulumi.Input['CryptoKeyVersionExternalProtectionLevelOptionsArgs']]:
175
+ """
176
+ ExternalProtectionLevelOptions stores a group of additional fields for configuring a CryptoKeyVersion that are specific to the EXTERNAL protection level and EXTERNAL_VPC protection levels.
177
+ Structure is documented below.
178
+ """
179
+ return pulumi.get(self, "external_protection_level_options")
180
+
181
+ @external_protection_level_options.setter
182
+ def external_protection_level_options(self, value: Optional[pulumi.Input['CryptoKeyVersionExternalProtectionLevelOptionsArgs']]):
183
+ pulumi.set(self, "external_protection_level_options", value)
184
+
149
185
  @property
150
186
  @pulumi.getter(name="generateTime")
151
187
  def generate_time(self) -> Optional[pulumi.Input[str]]:
@@ -202,6 +238,7 @@ class CryptoKeyVersion(pulumi.CustomResource):
202
238
  resource_name: str,
203
239
  opts: Optional[pulumi.ResourceOptions] = None,
204
240
  crypto_key: Optional[pulumi.Input[str]] = None,
241
+ external_protection_level_options: Optional[pulumi.Input[pulumi.InputType['CryptoKeyVersionExternalProtectionLevelOptionsArgs']]] = None,
205
242
  state: Optional[pulumi.Input[str]] = None,
206
243
  __props__=None):
207
244
  """
@@ -254,6 +291,8 @@ class CryptoKeyVersion(pulumi.CustomResource):
254
291
 
255
292
 
256
293
  - - -
294
+ :param pulumi.Input[pulumi.InputType['CryptoKeyVersionExternalProtectionLevelOptionsArgs']] external_protection_level_options: ExternalProtectionLevelOptions stores a group of additional fields for configuring a CryptoKeyVersion that are specific to the EXTERNAL protection level and EXTERNAL_VPC protection levels.
295
+ Structure is documented below.
257
296
  :param pulumi.Input[str] state: The current state of the CryptoKeyVersion.
258
297
  Possible values are: `PENDING_GENERATION`, `ENABLED`, `DISABLED`, `DESTROYED`, `DESTROY_SCHEDULED`, `PENDING_IMPORT`, `IMPORT_FAILED`.
259
298
  """
@@ -322,6 +361,7 @@ class CryptoKeyVersion(pulumi.CustomResource):
322
361
  resource_name: str,
323
362
  opts: Optional[pulumi.ResourceOptions] = None,
324
363
  crypto_key: Optional[pulumi.Input[str]] = None,
364
+ external_protection_level_options: Optional[pulumi.Input[pulumi.InputType['CryptoKeyVersionExternalProtectionLevelOptionsArgs']]] = None,
325
365
  state: Optional[pulumi.Input[str]] = None,
326
366
  __props__=None):
327
367
  opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
@@ -335,6 +375,7 @@ class CryptoKeyVersion(pulumi.CustomResource):
335
375
  if crypto_key is None and not opts.urn:
336
376
  raise TypeError("Missing required property 'crypto_key'")
337
377
  __props__.__dict__["crypto_key"] = crypto_key
378
+ __props__.__dict__["external_protection_level_options"] = external_protection_level_options
338
379
  __props__.__dict__["state"] = state
339
380
  __props__.__dict__["algorithm"] = None
340
381
  __props__.__dict__["attestations"] = None
@@ -354,6 +395,7 @@ class CryptoKeyVersion(pulumi.CustomResource):
354
395
  algorithm: Optional[pulumi.Input[str]] = None,
355
396
  attestations: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['CryptoKeyVersionAttestationArgs']]]]] = None,
356
397
  crypto_key: Optional[pulumi.Input[str]] = None,
398
+ external_protection_level_options: Optional[pulumi.Input[pulumi.InputType['CryptoKeyVersionExternalProtectionLevelOptionsArgs']]] = None,
357
399
  generate_time: Optional[pulumi.Input[str]] = None,
358
400
  name: Optional[pulumi.Input[str]] = None,
359
401
  protection_level: Optional[pulumi.Input[str]] = None,
@@ -374,6 +416,8 @@ class CryptoKeyVersion(pulumi.CustomResource):
374
416
 
375
417
 
376
418
  - - -
419
+ :param pulumi.Input[pulumi.InputType['CryptoKeyVersionExternalProtectionLevelOptionsArgs']] external_protection_level_options: ExternalProtectionLevelOptions stores a group of additional fields for configuring a CryptoKeyVersion that are specific to the EXTERNAL protection level and EXTERNAL_VPC protection levels.
420
+ Structure is documented below.
377
421
  :param pulumi.Input[str] generate_time: The time this CryptoKeyVersion key material was generated
378
422
  :param pulumi.Input[str] name: The resource name for this CryptoKeyVersion.
379
423
  :param pulumi.Input[str] protection_level: The ProtectionLevel describing how crypto operations are performed with this CryptoKeyVersion.
@@ -387,6 +431,7 @@ class CryptoKeyVersion(pulumi.CustomResource):
387
431
  __props__.__dict__["algorithm"] = algorithm
388
432
  __props__.__dict__["attestations"] = attestations
389
433
  __props__.__dict__["crypto_key"] = crypto_key
434
+ __props__.__dict__["external_protection_level_options"] = external_protection_level_options
390
435
  __props__.__dict__["generate_time"] = generate_time
391
436
  __props__.__dict__["name"] = name
392
437
  __props__.__dict__["protection_level"] = protection_level
@@ -423,6 +468,15 @@ class CryptoKeyVersion(pulumi.CustomResource):
423
468
  """
424
469
  return pulumi.get(self, "crypto_key")
425
470
 
471
+ @property
472
+ @pulumi.getter(name="externalProtectionLevelOptions")
473
+ def external_protection_level_options(self) -> pulumi.Output[Optional['outputs.CryptoKeyVersionExternalProtectionLevelOptions']]:
474
+ """
475
+ ExternalProtectionLevelOptions stores a group of additional fields for configuring a CryptoKeyVersion that are specific to the EXTERNAL protection level and EXTERNAL_VPC protection levels.
476
+ Structure is documented below.
477
+ """
478
+ return pulumi.get(self, "external_protection_level_options")
479
+
426
480
  @property
427
481
  @pulumi.getter(name="generateTime")
428
482
  def generate_time(self) -> pulumi.Output[str]:
@@ -22,7 +22,10 @@ class GetKMSCryptoKeyResult:
22
22
  """
23
23
  A collection of values returned by getKMSCryptoKey.
24
24
  """
25
- def __init__(__self__, destroy_scheduled_duration=None, effective_labels=None, id=None, import_only=None, key_ring=None, labels=None, name=None, primaries=None, pulumi_labels=None, purpose=None, rotation_period=None, skip_initial_version_creation=None, version_templates=None):
25
+ def __init__(__self__, crypto_key_backend=None, destroy_scheduled_duration=None, effective_labels=None, id=None, import_only=None, key_ring=None, labels=None, name=None, primaries=None, pulumi_labels=None, purpose=None, rotation_period=None, skip_initial_version_creation=None, version_templates=None):
26
+ if crypto_key_backend and not isinstance(crypto_key_backend, str):
27
+ raise TypeError("Expected argument 'crypto_key_backend' to be a str")
28
+ pulumi.set(__self__, "crypto_key_backend", crypto_key_backend)
26
29
  if destroy_scheduled_duration and not isinstance(destroy_scheduled_duration, str):
27
30
  raise TypeError("Expected argument 'destroy_scheduled_duration' to be a str")
28
31
  pulumi.set(__self__, "destroy_scheduled_duration", destroy_scheduled_duration)
@@ -63,6 +66,11 @@ class GetKMSCryptoKeyResult:
63
66
  raise TypeError("Expected argument 'version_templates' to be a list")
64
67
  pulumi.set(__self__, "version_templates", version_templates)
65
68
 
69
+ @property
70
+ @pulumi.getter(name="cryptoKeyBackend")
71
+ def crypto_key_backend(self) -> str:
72
+ return pulumi.get(self, "crypto_key_backend")
73
+
66
74
  @property
67
75
  @pulumi.getter(name="destroyScheduledDuration")
68
76
  def destroy_scheduled_duration(self) -> str:
@@ -146,6 +154,7 @@ class AwaitableGetKMSCryptoKeyResult(GetKMSCryptoKeyResult):
146
154
  if False:
147
155
  yield self
148
156
  return GetKMSCryptoKeyResult(
157
+ crypto_key_backend=self.crypto_key_backend,
149
158
  destroy_scheduled_duration=self.destroy_scheduled_duration,
150
159
  effective_labels=self.effective_labels,
151
160
  id=self.id,
@@ -199,6 +208,7 @@ def get_kms_crypto_key(key_ring: Optional[str] = None,
199
208
  __ret__ = pulumi.runtime.invoke('gcp:kms/getKMSCryptoKey:getKMSCryptoKey', __args__, opts=opts, typ=GetKMSCryptoKeyResult).value
200
209
 
201
210
  return AwaitableGetKMSCryptoKeyResult(
211
+ crypto_key_backend=pulumi.get(__ret__, 'crypto_key_backend'),
202
212
  destroy_scheduled_duration=pulumi.get(__ret__, 'destroy_scheduled_duration'),
203
213
  effective_labels=pulumi.get(__ret__, 'effective_labels'),
204
214
  id=pulumi.get(__ret__, 'id'),
pulumi_gcp/kms/outputs.py CHANGED
@@ -17,6 +17,7 @@ __all__ = [
17
17
  'CryptoKeyVersionAttestation',
18
18
  'CryptoKeyVersionAttestationCertChains',
19
19
  'CryptoKeyVersionAttestationExternalProtectionLevelOptions',
20
+ 'CryptoKeyVersionExternalProtectionLevelOptions',
20
21
  'CryptoKeyVersionTemplate',
21
22
  'EkmConnectionServiceResolver',
22
23
  'EkmConnectionServiceResolverServerCertificate',
@@ -230,6 +231,9 @@ class CryptoKeyVersionAttestation(dict):
230
231
  ExternalProtectionLevelOptions stores a group of additional fields for configuring a CryptoKeyVersion that are specific to the EXTERNAL protection level and EXTERNAL_VPC protection levels.
231
232
  Structure is documented below.
232
233
  """
234
+ warnings.warn("""`externalProtectionLevelOptions` is being un-nested from the `attestation` field. Please use the top level `externalProtectionLevelOptions` field instead.""", DeprecationWarning)
235
+ pulumi.log.warn("""external_protection_level_options is deprecated: `externalProtectionLevelOptions` is being un-nested from the `attestation` field. Please use the top level `externalProtectionLevelOptions` field instead.""")
236
+
233
237
  return pulumi.get(self, "external_protection_level_options")
234
238
 
235
239
  @property
@@ -356,6 +360,56 @@ class CryptoKeyVersionAttestationExternalProtectionLevelOptions(dict):
356
360
  return pulumi.get(self, "external_key_uri")
357
361
 
358
362
 
363
+ @pulumi.output_type
364
+ class CryptoKeyVersionExternalProtectionLevelOptions(dict):
365
+ @staticmethod
366
+ def __key_warning(key: str):
367
+ suggest = None
368
+ if key == "ekmConnectionKeyPath":
369
+ suggest = "ekm_connection_key_path"
370
+ elif key == "externalKeyUri":
371
+ suggest = "external_key_uri"
372
+
373
+ if suggest:
374
+ pulumi.log.warn(f"Key '{key}' not found in CryptoKeyVersionExternalProtectionLevelOptions. Access the value via the '{suggest}' property getter instead.")
375
+
376
+ def __getitem__(self, key: str) -> Any:
377
+ CryptoKeyVersionExternalProtectionLevelOptions.__key_warning(key)
378
+ return super().__getitem__(key)
379
+
380
+ def get(self, key: str, default = None) -> Any:
381
+ CryptoKeyVersionExternalProtectionLevelOptions.__key_warning(key)
382
+ return super().get(key, default)
383
+
384
+ def __init__(__self__, *,
385
+ ekm_connection_key_path: Optional[str] = None,
386
+ external_key_uri: Optional[str] = None):
387
+ """
388
+ :param str ekm_connection_key_path: The path to the external key material on the EKM when using EkmConnection e.g., "v0/my/key". Set this field instead of externalKeyUri when using an EkmConnection.
389
+ :param str external_key_uri: The URI for an external resource that this CryptoKeyVersion represents.
390
+ """
391
+ if ekm_connection_key_path is not None:
392
+ pulumi.set(__self__, "ekm_connection_key_path", ekm_connection_key_path)
393
+ if external_key_uri is not None:
394
+ pulumi.set(__self__, "external_key_uri", external_key_uri)
395
+
396
+ @property
397
+ @pulumi.getter(name="ekmConnectionKeyPath")
398
+ def ekm_connection_key_path(self) -> Optional[str]:
399
+ """
400
+ The path to the external key material on the EKM when using EkmConnection e.g., "v0/my/key". Set this field instead of externalKeyUri when using an EkmConnection.
401
+ """
402
+ return pulumi.get(self, "ekm_connection_key_path")
403
+
404
+ @property
405
+ @pulumi.getter(name="externalKeyUri")
406
+ def external_key_uri(self) -> Optional[str]:
407
+ """
408
+ The URI for an external resource that this CryptoKeyVersion represents.
409
+ """
410
+ return pulumi.get(self, "external_key_uri")
411
+
412
+
359
413
  @pulumi.output_type
360
414
  class CryptoKeyVersionTemplate(dict):
361
415
  @staticmethod
@@ -58,8 +58,8 @@ class InstanceArgs:
58
58
  :param pulumi.Input['InstanceOauthConfigArgs'] oauth_config: Looker Instance OAuth login settings.
59
59
  Structure is documented below.
60
60
  :param pulumi.Input[str] platform_edition: Platform editions for a Looker instance. Each edition maps to a set of instance features, like its size. Must be one of these values:
61
- - LOOKER_CORE_TRIAL: trial instance
62
- - LOOKER_CORE_STANDARD: pay as you go standard instance
61
+ - LOOKER_CORE_TRIAL: trial instance (Currently Unavailable)
62
+ - LOOKER_CORE_STANDARD: pay as you go standard instance (Currently Unavailable)
63
63
  - LOOKER_CORE_STANDARD_ANNUAL: subscription standard instance
64
64
  - LOOKER_CORE_ENTERPRISE_ANNUAL: subscription enterprise instance
65
65
  - LOOKER_CORE_EMBED_ANNUAL: subscription embed instance
@@ -229,8 +229,8 @@ class InstanceArgs:
229
229
  def platform_edition(self) -> Optional[pulumi.Input[str]]:
230
230
  """
231
231
  Platform editions for a Looker instance. Each edition maps to a set of instance features, like its size. Must be one of these values:
232
- - LOOKER_CORE_TRIAL: trial instance
233
- - LOOKER_CORE_STANDARD: pay as you go standard instance
232
+ - LOOKER_CORE_TRIAL: trial instance (Currently Unavailable)
233
+ - LOOKER_CORE_STANDARD: pay as you go standard instance (Currently Unavailable)
234
234
  - LOOKER_CORE_STANDARD_ANNUAL: subscription standard instance
235
235
  - LOOKER_CORE_ENTERPRISE_ANNUAL: subscription enterprise instance
236
236
  - LOOKER_CORE_EMBED_ANNUAL: subscription embed instance
@@ -384,8 +384,8 @@ class _InstanceState:
384
384
  :param pulumi.Input['InstanceOauthConfigArgs'] oauth_config: Looker Instance OAuth login settings.
385
385
  Structure is documented below.
386
386
  :param pulumi.Input[str] platform_edition: Platform editions for a Looker instance. Each edition maps to a set of instance features, like its size. Must be one of these values:
387
- - LOOKER_CORE_TRIAL: trial instance
388
- - LOOKER_CORE_STANDARD: pay as you go standard instance
387
+ - LOOKER_CORE_TRIAL: trial instance (Currently Unavailable)
388
+ - LOOKER_CORE_STANDARD: pay as you go standard instance (Currently Unavailable)
389
389
  - LOOKER_CORE_STANDARD_ANNUAL: subscription standard instance
390
390
  - LOOKER_CORE_ENTERPRISE_ANNUAL: subscription enterprise instance
391
391
  - LOOKER_CORE_EMBED_ANNUAL: subscription embed instance
@@ -644,8 +644,8 @@ class _InstanceState:
644
644
  def platform_edition(self) -> Optional[pulumi.Input[str]]:
645
645
  """
646
646
  Platform editions for a Looker instance. Each edition maps to a set of instance features, like its size. Must be one of these values:
647
- - LOOKER_CORE_TRIAL: trial instance
648
- - LOOKER_CORE_STANDARD: pay as you go standard instance
647
+ - LOOKER_CORE_TRIAL: trial instance (Currently Unavailable)
648
+ - LOOKER_CORE_STANDARD: pay as you go standard instance (Currently Unavailable)
649
649
  - LOOKER_CORE_STANDARD_ANNUAL: subscription standard instance
650
650
  - LOOKER_CORE_ENTERPRISE_ANNUAL: subscription enterprise instance
651
651
  - LOOKER_CORE_EMBED_ANNUAL: subscription embed instance
@@ -795,7 +795,7 @@ class Instance(pulumi.CustomResource):
795
795
 
796
796
  looker_instance = gcp.looker.Instance("looker-instance",
797
797
  name="my-instance",
798
- platform_edition="LOOKER_CORE_STANDARD",
798
+ platform_edition="LOOKER_CORE_STANDARD_ANNUAL",
799
799
  region="us-central1",
800
800
  oauth_config=gcp.looker.InstanceOauthConfigArgs(
801
801
  client_id="my-client-id",
@@ -812,17 +812,12 @@ class Instance(pulumi.CustomResource):
812
812
 
813
813
  looker_instance = gcp.looker.Instance("looker-instance",
814
814
  name="my-instance",
815
- platform_edition="LOOKER_CORE_STANDARD",
815
+ platform_edition="LOOKER_CORE_STANDARD_ANNUAL",
816
816
  region="us-central1",
817
817
  public_ip_enabled=True,
818
818
  admin_settings=gcp.looker.InstanceAdminSettingsArgs(
819
819
  allowed_email_domains=["google.com"],
820
820
  ),
821
- user_metadata=gcp.looker.InstanceUserMetadataArgs(
822
- additional_developer_user_count=10,
823
- additional_standard_user_count=10,
824
- additional_viewer_user_count=10,
825
- ),
826
821
  maintenance_window=gcp.looker.InstanceMaintenanceWindowArgs(
827
822
  day_of_week="THURSDAY",
828
823
  start_time=gcp.looker.InstanceMaintenanceWindowStartTimeArgs(
@@ -935,7 +930,7 @@ class Instance(pulumi.CustomResource):
935
930
 
936
931
  looker_instance = gcp.looker.Instance("looker-instance",
937
932
  name="my-instance",
938
- platform_edition="LOOKER_CORE_STANDARD",
933
+ platform_edition="LOOKER_CORE_STANDARD_ANNUAL",
939
934
  region="us-central1",
940
935
  oauth_config=gcp.looker.InstanceOauthConfigArgs(
941
936
  client_id="my-client-id",
@@ -1004,8 +999,8 @@ class Instance(pulumi.CustomResource):
1004
999
  :param pulumi.Input[pulumi.InputType['InstanceOauthConfigArgs']] oauth_config: Looker Instance OAuth login settings.
1005
1000
  Structure is documented below.
1006
1001
  :param pulumi.Input[str] platform_edition: Platform editions for a Looker instance. Each edition maps to a set of instance features, like its size. Must be one of these values:
1007
- - LOOKER_CORE_TRIAL: trial instance
1008
- - LOOKER_CORE_STANDARD: pay as you go standard instance
1002
+ - LOOKER_CORE_TRIAL: trial instance (Currently Unavailable)
1003
+ - LOOKER_CORE_STANDARD: pay as you go standard instance (Currently Unavailable)
1009
1004
  - LOOKER_CORE_STANDARD_ANNUAL: subscription standard instance
1010
1005
  - LOOKER_CORE_ENTERPRISE_ANNUAL: subscription enterprise instance
1011
1006
  - LOOKER_CORE_EMBED_ANNUAL: subscription embed instance
@@ -1054,7 +1049,7 @@ class Instance(pulumi.CustomResource):
1054
1049
 
1055
1050
  looker_instance = gcp.looker.Instance("looker-instance",
1056
1051
  name="my-instance",
1057
- platform_edition="LOOKER_CORE_STANDARD",
1052
+ platform_edition="LOOKER_CORE_STANDARD_ANNUAL",
1058
1053
  region="us-central1",
1059
1054
  oauth_config=gcp.looker.InstanceOauthConfigArgs(
1060
1055
  client_id="my-client-id",
@@ -1071,17 +1066,12 @@ class Instance(pulumi.CustomResource):
1071
1066
 
1072
1067
  looker_instance = gcp.looker.Instance("looker-instance",
1073
1068
  name="my-instance",
1074
- platform_edition="LOOKER_CORE_STANDARD",
1069
+ platform_edition="LOOKER_CORE_STANDARD_ANNUAL",
1075
1070
  region="us-central1",
1076
1071
  public_ip_enabled=True,
1077
1072
  admin_settings=gcp.looker.InstanceAdminSettingsArgs(
1078
1073
  allowed_email_domains=["google.com"],
1079
1074
  ),
1080
- user_metadata=gcp.looker.InstanceUserMetadataArgs(
1081
- additional_developer_user_count=10,
1082
- additional_standard_user_count=10,
1083
- additional_viewer_user_count=10,
1084
- ),
1085
1075
  maintenance_window=gcp.looker.InstanceMaintenanceWindowArgs(
1086
1076
  day_of_week="THURSDAY",
1087
1077
  start_time=gcp.looker.InstanceMaintenanceWindowStartTimeArgs(
@@ -1194,7 +1184,7 @@ class Instance(pulumi.CustomResource):
1194
1184
 
1195
1185
  looker_instance = gcp.looker.Instance("looker-instance",
1196
1186
  name="my-instance",
1197
- platform_edition="LOOKER_CORE_STANDARD",
1187
+ platform_edition="LOOKER_CORE_STANDARD_ANNUAL",
1198
1188
  region="us-central1",
1199
1189
  oauth_config=gcp.looker.InstanceOauthConfigArgs(
1200
1190
  client_id="my-client-id",
@@ -1368,8 +1358,8 @@ class Instance(pulumi.CustomResource):
1368
1358
  :param pulumi.Input[pulumi.InputType['InstanceOauthConfigArgs']] oauth_config: Looker Instance OAuth login settings.
1369
1359
  Structure is documented below.
1370
1360
  :param pulumi.Input[str] platform_edition: Platform editions for a Looker instance. Each edition maps to a set of instance features, like its size. Must be one of these values:
1371
- - LOOKER_CORE_TRIAL: trial instance
1372
- - LOOKER_CORE_STANDARD: pay as you go standard instance
1361
+ - LOOKER_CORE_TRIAL: trial instance (Currently Unavailable)
1362
+ - LOOKER_CORE_STANDARD: pay as you go standard instance (Currently Unavailable)
1373
1363
  - LOOKER_CORE_STANDARD_ANNUAL: subscription standard instance
1374
1364
  - LOOKER_CORE_ENTERPRISE_ANNUAL: subscription enterprise instance
1375
1365
  - LOOKER_CORE_EMBED_ANNUAL: subscription embed instance
@@ -1555,8 +1545,8 @@ class Instance(pulumi.CustomResource):
1555
1545
  def platform_edition(self) -> pulumi.Output[Optional[str]]:
1556
1546
  """
1557
1547
  Platform editions for a Looker instance. Each edition maps to a set of instance features, like its size. Must be one of these values:
1558
- - LOOKER_CORE_TRIAL: trial instance
1559
- - LOOKER_CORE_STANDARD: pay as you go standard instance
1548
+ - LOOKER_CORE_TRIAL: trial instance (Currently Unavailable)
1549
+ - LOOKER_CORE_STANDARD: pay as you go standard instance (Currently Unavailable)
1560
1550
  - LOOKER_CORE_STANDARD_ANNUAL: subscription standard instance
1561
1551
  - LOOKER_CORE_ENTERPRISE_ANNUAL: subscription enterprise instance
1562
1552
  - LOOKER_CORE_EMBED_ANNUAL: subscription embed instance
@@ -306,7 +306,7 @@ class Policy(pulumi.CustomResource):
306
306
  import pulumi_gcp as gcp
307
307
 
308
308
  constraint = gcp.orgpolicy.CustomConstraint("constraint",
309
- name="custom.disableGkeAutoUpgrade_41819",
309
+ name="custom.disableGkeAutoUpgrade_75092",
310
310
  parent="organizations/123456789",
311
311
  display_name="Disable GKE auto upgrade",
312
312
  description="Only allow GKE NodePool resource to be created or updated if AutoUpgrade is not enabled where this custom constraint is enforced.",
@@ -468,7 +468,7 @@ class Policy(pulumi.CustomResource):
468
468
  import pulumi_gcp as gcp
469
469
 
470
470
  constraint = gcp.orgpolicy.CustomConstraint("constraint",
471
- name="custom.disableGkeAutoUpgrade_41819",
471
+ name="custom.disableGkeAutoUpgrade_75092",
472
472
  parent="organizations/123456789",
473
473
  display_name="Disable GKE auto upgrade",
474
474
  description="Only allow GKE NodePool resource to be created or updated if AutoUpgrade is not enabled where this custom constraint is enforced.",