pulumi-gcp 7.17.0a1712163201__py3-none-any.whl → 7.17.0a1712602552__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 (91) 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 +566 -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/bigtable/_inputs.py +4 -4
  13. pulumi_gcp/bigtable/gc_policy.py +8 -0
  14. pulumi_gcp/bigtable/outputs.py +4 -4
  15. pulumi_gcp/billing/_inputs.py +4 -4
  16. pulumi_gcp/billing/outputs.py +4 -4
  17. pulumi_gcp/billing/project_info.py +4 -4
  18. pulumi_gcp/cloudfunctionsv2/_inputs.py +2 -2
  19. pulumi_gcp/cloudfunctionsv2/outputs.py +4 -4
  20. pulumi_gcp/cloudquota/__init__.py +2 -0
  21. pulumi_gcp/cloudquota/_inputs.py +131 -0
  22. pulumi_gcp/cloudquota/outputs.py +118 -0
  23. pulumi_gcp/cloudquota/s_quota_preference.py +777 -0
  24. pulumi_gcp/cloudrunv2/service.py +7 -7
  25. pulumi_gcp/composer/_inputs.py +14 -4
  26. pulumi_gcp/composer/outputs.py +22 -10
  27. pulumi_gcp/compute/_inputs.py +40 -44
  28. pulumi_gcp/compute/autoscaler.py +14 -14
  29. pulumi_gcp/compute/interconnect_attachment.py +64 -0
  30. pulumi_gcp/compute/network_endpoint.py +8 -0
  31. pulumi_gcp/compute/network_endpoint_list.py +8 -0
  32. pulumi_gcp/compute/outputs.py +62 -60
  33. pulumi_gcp/compute/region_autoscaler.py +14 -14
  34. pulumi_gcp/compute/region_backend_service.py +28 -0
  35. pulumi_gcp/compute/target_instance.py +4 -4
  36. pulumi_gcp/config/__init__.pyi +2 -0
  37. pulumi_gcp/config/vars.py +4 -0
  38. pulumi_gcp/container/_inputs.py +148 -16
  39. pulumi_gcp/container/outputs.py +148 -16
  40. pulumi_gcp/databasemigrationservice/connection_profile.py +6 -6
  41. pulumi_gcp/dataflow/flex_template_job.py +84 -112
  42. pulumi_gcp/dataloss/_inputs.py +6 -6
  43. pulumi_gcp/dataloss/outputs.py +6 -6
  44. pulumi_gcp/dataplex/task.py +16 -16
  45. pulumi_gcp/dataproc/_inputs.py +85 -10
  46. pulumi_gcp/dataproc/get_metastore_service.py +11 -1
  47. pulumi_gcp/dataproc/metastore_service.py +120 -0
  48. pulumi_gcp/dataproc/outputs.py +142 -10
  49. pulumi_gcp/firebase/app_check_service_config.py +2 -2
  50. pulumi_gcp/firestore/backup_schedule.py +14 -14
  51. pulumi_gcp/firestore/field.py +4 -4
  52. pulumi_gcp/gkehub/membership_binding.py +6 -6
  53. pulumi_gcp/gkehub/membership_rbac_role_binding.py +4 -4
  54. pulumi_gcp/gkehub/namespace.py +4 -4
  55. pulumi_gcp/gkehub/scope_rbac_role_binding.py +4 -4
  56. pulumi_gcp/iam/_inputs.py +76 -0
  57. pulumi_gcp/iam/outputs.py +76 -0
  58. pulumi_gcp/iam/workforce_pool_provider.py +35 -0
  59. pulumi_gcp/iam/workload_identity_pool_provider.py +140 -0
  60. pulumi_gcp/iap/tunnel_dest_group.py +2 -2
  61. pulumi_gcp/kms/_inputs.py +46 -0
  62. pulumi_gcp/kms/crypto_key.py +54 -0
  63. pulumi_gcp/kms/crypto_key_version.py +54 -0
  64. pulumi_gcp/kms/get_kms_crypto_key.py +11 -1
  65. pulumi_gcp/kms/outputs.py +54 -0
  66. pulumi_gcp/logging/_inputs.py +8 -8
  67. pulumi_gcp/logging/metric.py +7 -7
  68. pulumi_gcp/logging/outputs.py +8 -8
  69. pulumi_gcp/monitoring/_inputs.py +2 -2
  70. pulumi_gcp/monitoring/outputs.py +2 -2
  71. pulumi_gcp/monitoring/slo.py +4 -4
  72. pulumi_gcp/networkservices/_inputs.py +6 -6
  73. pulumi_gcp/networkservices/outputs.py +6 -6
  74. pulumi_gcp/orgpolicy/policy.py +2 -2
  75. pulumi_gcp/provider.py +20 -0
  76. pulumi_gcp/pubsub/subscription.py +4 -4
  77. pulumi_gcp/serviceusage/consumer_quota_override.py +7 -7
  78. pulumi_gcp/sql/_inputs.py +20 -2
  79. pulumi_gcp/sql/database_instance.py +2 -2
  80. pulumi_gcp/sql/outputs.py +20 -2
  81. pulumi_gcp/storage/_inputs.py +2 -2
  82. pulumi_gcp/storage/outputs.py +2 -2
  83. pulumi_gcp/vertex/__init__.py +1 -0
  84. pulumi_gcp/vertex/_inputs.py +175 -8
  85. pulumi_gcp/vertex/ai_deployment_resource_pool.py +477 -0
  86. pulumi_gcp/vertex/outputs.py +202 -10
  87. pulumi_gcp/vpcaccess/connector.py +77 -28
  88. {pulumi_gcp-7.17.0a1712163201.dist-info → pulumi_gcp-7.17.0a1712602552.dist-info}/METADATA +1 -1
  89. {pulumi_gcp-7.17.0a1712163201.dist-info → pulumi_gcp-7.17.0a1712602552.dist-info}/RECORD +91 -83
  90. {pulumi_gcp-7.17.0a1712163201.dist-info → pulumi_gcp-7.17.0a1712602552.dist-info}/WHEEL +0 -0
  91. {pulumi_gcp-7.17.0a1712163201.dist-info → pulumi_gcp-7.17.0a1712602552.dist-info}/top_level.txt +0 -0
pulumi_gcp/kms/_inputs.py CHANGED
@@ -16,6 +16,7 @@ __all__ = [
16
16
  'CryptoKeyVersionAttestationArgs',
17
17
  'CryptoKeyVersionAttestationCertChainsArgs',
18
18
  'CryptoKeyVersionAttestationExternalProtectionLevelOptionsArgs',
19
+ 'CryptoKeyVersionExternalProtectionLevelOptionsArgs',
19
20
  'CryptoKeyVersionTemplateArgs',
20
21
  'EkmConnectionServiceResolverArgs',
21
22
  'EkmConnectionServiceResolverServerCertificateArgs',
@@ -209,6 +210,9 @@ class CryptoKeyVersionAttestationArgs:
209
210
  pulumi.set(__self__, "cert_chains", cert_chains)
210
211
  if content is not None:
211
212
  pulumi.set(__self__, "content", content)
213
+ if external_protection_level_options is not None:
214
+ warnings.warn("""`externalProtectionLevelOptions` is being un-nested from the `attestation` field. Please use the top level `externalProtectionLevelOptions` field instead.""", DeprecationWarning)
215
+ 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.""")
212
216
  if external_protection_level_options is not None:
213
217
  pulumi.set(__self__, "external_protection_level_options", external_protection_level_options)
214
218
  if format is not None:
@@ -247,6 +251,9 @@ class CryptoKeyVersionAttestationArgs:
247
251
  ExternalProtectionLevelOptions stores a group of additional fields for configuring a CryptoKeyVersion that are specific to the EXTERNAL protection level and EXTERNAL_VPC protection levels.
248
252
  Structure is documented below.
249
253
  """
254
+ warnings.warn("""`externalProtectionLevelOptions` is being un-nested from the `attestation` field. Please use the top level `externalProtectionLevelOptions` field instead.""", DeprecationWarning)
255
+ 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.""")
256
+
250
257
  return pulumi.get(self, "external_protection_level_options")
251
258
 
252
259
  @external_protection_level_options.setter
@@ -361,6 +368,45 @@ class CryptoKeyVersionAttestationExternalProtectionLevelOptionsArgs:
361
368
  pulumi.set(self, "external_key_uri", value)
362
369
 
363
370
 
371
+ @pulumi.input_type
372
+ class CryptoKeyVersionExternalProtectionLevelOptionsArgs:
373
+ def __init__(__self__, *,
374
+ ekm_connection_key_path: Optional[pulumi.Input[str]] = None,
375
+ external_key_uri: Optional[pulumi.Input[str]] = None):
376
+ """
377
+ :param pulumi.Input[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.
378
+ :param pulumi.Input[str] external_key_uri: The URI for an external resource that this CryptoKeyVersion represents.
379
+ """
380
+ if ekm_connection_key_path is not None:
381
+ pulumi.set(__self__, "ekm_connection_key_path", ekm_connection_key_path)
382
+ if external_key_uri is not None:
383
+ pulumi.set(__self__, "external_key_uri", external_key_uri)
384
+
385
+ @property
386
+ @pulumi.getter(name="ekmConnectionKeyPath")
387
+ def ekm_connection_key_path(self) -> Optional[pulumi.Input[str]]:
388
+ """
389
+ 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.
390
+ """
391
+ return pulumi.get(self, "ekm_connection_key_path")
392
+
393
+ @ekm_connection_key_path.setter
394
+ def ekm_connection_key_path(self, value: Optional[pulumi.Input[str]]):
395
+ pulumi.set(self, "ekm_connection_key_path", value)
396
+
397
+ @property
398
+ @pulumi.getter(name="externalKeyUri")
399
+ def external_key_uri(self) -> Optional[pulumi.Input[str]]:
400
+ """
401
+ The URI for an external resource that this CryptoKeyVersion represents.
402
+ """
403
+ return pulumi.get(self, "external_key_uri")
404
+
405
+ @external_key_uri.setter
406
+ def external_key_uri(self, value: Optional[pulumi.Input[str]]):
407
+ pulumi.set(self, "external_key_uri", value)
408
+
409
+
364
410
  @pulumi.input_type
365
411
  class CryptoKeyVersionTemplateArgs:
366
412
  def __init__(__self__, *,
@@ -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
@@ -204,7 +204,7 @@ class BillingAccountSinkExclusionArgs:
204
204
  description: Optional[pulumi.Input[str]] = None,
205
205
  disabled: Optional[pulumi.Input[bool]] = None):
206
206
  """
207
- :param pulumi.Input[str] filter: An advanced logs filter that matches the log entries to be excluded. By using the sample function, you can exclude less than 100%!o(MISSING)f the matching log entries. See [Advanced Log Filters](https://cloud.google.com/logging/docs/view/advanced_filters) for information on how to
207
+ :param pulumi.Input[str] filter: An advanced logs filter that matches the log entries to be excluded. By using the sample function, you can exclude less than 100% of the matching log entries. See [Advanced Log Filters](https://cloud.google.com/logging/docs/view/advanced_filters) for information on how to
208
208
  write a filter.
209
209
  :param pulumi.Input[str] name: A client-assigned identifier, such as `load-balancer-exclusion`. Identifiers are limited to 100 characters and can include only letters, digits, underscores, hyphens, and periods. First character has to be alphanumeric.
210
210
  :param pulumi.Input[str] description: A description of this exclusion.
@@ -221,7 +221,7 @@ class BillingAccountSinkExclusionArgs:
221
221
  @pulumi.getter
222
222
  def filter(self) -> pulumi.Input[str]:
223
223
  """
224
- An advanced logs filter that matches the log entries to be excluded. By using the sample function, you can exclude less than 100%!o(MISSING)f the matching log entries. See [Advanced Log Filters](https://cloud.google.com/logging/docs/view/advanced_filters) for information on how to
224
+ An advanced logs filter that matches the log entries to be excluded. By using the sample function, you can exclude less than 100% of the matching log entries. See [Advanced Log Filters](https://cloud.google.com/logging/docs/view/advanced_filters) for information on how to
225
225
  write a filter.
226
226
  """
227
227
  return pulumi.get(self, "filter")
@@ -436,7 +436,7 @@ class FolderSinkExclusionArgs:
436
436
  description: Optional[pulumi.Input[str]] = None,
437
437
  disabled: Optional[pulumi.Input[bool]] = None):
438
438
  """
439
- :param pulumi.Input[str] filter: An advanced logs filter that matches the log entries to be excluded. By using the sample function, you can exclude less than 100%!o(MISSING)f the matching log entries. See [Advanced Log Filters](https://cloud.google.com/logging/docs/view/advanced_filters) for information on how to
439
+ :param pulumi.Input[str] filter: An advanced logs filter that matches the log entries to be excluded. By using the sample function, you can exclude less than 100% of the matching log entries. See [Advanced Log Filters](https://cloud.google.com/logging/docs/view/advanced_filters) for information on how to
440
440
  write a filter.
441
441
  :param pulumi.Input[str] name: A client-assigned identifier, such as `load-balancer-exclusion`. Identifiers are limited to 100 characters and can include only letters, digits, underscores, hyphens, and periods. First character has to be alphanumeric.
442
442
  :param pulumi.Input[str] description: A description of this exclusion.
@@ -453,7 +453,7 @@ class FolderSinkExclusionArgs:
453
453
  @pulumi.getter
454
454
  def filter(self) -> pulumi.Input[str]:
455
455
  """
456
- An advanced logs filter that matches the log entries to be excluded. By using the sample function, you can exclude less than 100%!o(MISSING)f the matching log entries. See [Advanced Log Filters](https://cloud.google.com/logging/docs/view/advanced_filters) for information on how to
456
+ An advanced logs filter that matches the log entries to be excluded. By using the sample function, you can exclude less than 100% of the matching log entries. See [Advanced Log Filters](https://cloud.google.com/logging/docs/view/advanced_filters) for information on how to
457
457
  write a filter.
458
458
  """
459
459
  return pulumi.get(self, "filter")
@@ -1061,7 +1061,7 @@ class OrganizationSinkExclusionArgs:
1061
1061
  description: Optional[pulumi.Input[str]] = None,
1062
1062
  disabled: Optional[pulumi.Input[bool]] = None):
1063
1063
  """
1064
- :param pulumi.Input[str] filter: An advanced logs filter that matches the log entries to be excluded. By using the sample function, you can exclude less than 100%!o(MISSING)f the matching log entries. See [Advanced Log Filters](https://cloud.google.com/logging/docs/view/advanced_filters) for information on how to
1064
+ :param pulumi.Input[str] filter: An advanced logs filter that matches the log entries to be excluded. By using the sample function, you can exclude less than 100% of the matching log entries. See [Advanced Log Filters](https://cloud.google.com/logging/docs/view/advanced_filters) for information on how to
1065
1065
  write a filter.
1066
1066
  :param pulumi.Input[str] name: A client-assigned identifier, such as `load-balancer-exclusion`. Identifiers are limited to 100 characters and can include only letters, digits, underscores, hyphens, and periods. First character has to be alphanumeric.
1067
1067
  :param pulumi.Input[str] description: A description of this exclusion.
@@ -1078,7 +1078,7 @@ class OrganizationSinkExclusionArgs:
1078
1078
  @pulumi.getter
1079
1079
  def filter(self) -> pulumi.Input[str]:
1080
1080
  """
1081
- An advanced logs filter that matches the log entries to be excluded. By using the sample function, you can exclude less than 100%!o(MISSING)f the matching log entries. See [Advanced Log Filters](https://cloud.google.com/logging/docs/view/advanced_filters) for information on how to
1081
+ An advanced logs filter that matches the log entries to be excluded. By using the sample function, you can exclude less than 100% of the matching log entries. See [Advanced Log Filters](https://cloud.google.com/logging/docs/view/advanced_filters) for information on how to
1082
1082
  write a filter.
1083
1083
  """
1084
1084
  return pulumi.get(self, "filter")
@@ -1293,7 +1293,7 @@ class ProjectSinkExclusionArgs:
1293
1293
  description: Optional[pulumi.Input[str]] = None,
1294
1294
  disabled: Optional[pulumi.Input[bool]] = None):
1295
1295
  """
1296
- :param pulumi.Input[str] filter: An advanced logs filter that matches the log entries to be excluded. By using the sample function, you can exclude less than 100%!o(MISSING)f the matching log entries. See [Advanced Log Filters](https://cloud.google.com/logging/docs/view/advanced_filters) for information on how to
1296
+ :param pulumi.Input[str] filter: An advanced logs filter that matches the log entries to be excluded. By using the sample function, you can exclude less than 100% of the matching log entries. See [Advanced Log Filters](https://cloud.google.com/logging/docs/view/advanced_filters) for information on how to
1297
1297
  write a filter.
1298
1298
  :param pulumi.Input[str] name: A client-assigned identifier, such as `load-balancer-exclusion`. Identifiers are limited to 100 characters and can include only letters, digits, underscores, hyphens, and periods. First character has to be alphanumeric.
1299
1299
  :param pulumi.Input[str] description: A description of this exclusion.
@@ -1310,7 +1310,7 @@ class ProjectSinkExclusionArgs:
1310
1310
  @pulumi.getter
1311
1311
  def filter(self) -> pulumi.Input[str]:
1312
1312
  """
1313
- An advanced logs filter that matches the log entries to be excluded. By using the sample function, you can exclude less than 100%!o(MISSING)f the matching log entries. See [Advanced Log Filters](https://cloud.google.com/logging/docs/view/advanced_filters) for information on how to
1313
+ An advanced logs filter that matches the log entries to be excluded. By using the sample function, you can exclude less than 100% of the matching log entries. See [Advanced Log Filters](https://cloud.google.com/logging/docs/view/advanced_filters) for information on how to
1314
1314
  write a filter.
1315
1315
  """
1316
1316
  return pulumi.get(self, "filter")