pulumi-gcp 7.31.0a1720850808__py3-none-any.whl → 7.32.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.
- pulumi_gcp/__init__.py +51 -0
- pulumi_gcp/alloydb/cluster.py +0 -24
- pulumi_gcp/applicationintegration/auth_config.py +2 -2
- pulumi_gcp/bigquery/_inputs.py +0 -12
- pulumi_gcp/bigquery/dataset.py +0 -28
- pulumi_gcp/bigquery/dataset_access.py +0 -28
- pulumi_gcp/bigquery/outputs.py +0 -24
- pulumi_gcp/bigquery/reservation_assignment.py +48 -30
- pulumi_gcp/bigtable/authorized_view.py +104 -0
- pulumi_gcp/certificateauthority/certificate_template.py +2 -2
- pulumi_gcp/certificatemanager/_inputs.py +33 -0
- pulumi_gcp/certificatemanager/outputs.py +36 -0
- pulumi_gcp/certificatemanager/trust_config.py +107 -0
- pulumi_gcp/compute/_inputs.py +3 -6
- pulumi_gcp/compute/ca_external_account_key.py +2 -2
- pulumi_gcp/compute/get_health_check.py +11 -1
- pulumi_gcp/compute/global_address.py +16 -4
- pulumi_gcp/compute/global_forwarding_rule.py +2 -4
- pulumi_gcp/compute/health_check.py +124 -0
- pulumi_gcp/compute/instance.py +14 -14
- pulumi_gcp/compute/instance_group_membership.py +2 -2
- pulumi_gcp/compute/outputs.py +4 -8
- pulumi_gcp/compute/region_network_endpoint.py +2 -2
- pulumi_gcp/compute/region_network_endpoint_group.py +2 -2
- pulumi_gcp/compute/subnetwork.py +2 -2
- pulumi_gcp/compute/target_instance.py +2 -2
- pulumi_gcp/config/__init__.pyi +4 -0
- pulumi_gcp/config/vars.py +8 -0
- pulumi_gcp/container/_inputs.py +3 -3
- pulumi_gcp/container/outputs.py +4 -4
- pulumi_gcp/containeranalysis/note.py +2 -2
- pulumi_gcp/dataloss/_inputs.py +3 -0
- pulumi_gcp/dataloss/outputs.py +2 -0
- pulumi_gcp/dataloss/prevention_job_trigger.py +90 -0
- pulumi_gcp/dataplex/_inputs.py +56 -0
- pulumi_gcp/dataplex/datascan.py +12 -0
- pulumi_gcp/dataplex/outputs.py +52 -0
- pulumi_gcp/filestore/backup.py +2 -2
- pulumi_gcp/filestore/instance.py +2 -2
- pulumi_gcp/filestore/snapshot.py +2 -2
- pulumi_gcp/gkehub/__init__.py +1 -0
- pulumi_gcp/gkehub/_inputs.py +20 -0
- pulumi_gcp/gkehub/get_membership_binding.py +222 -0
- pulumi_gcp/gkehub/outputs.py +31 -0
- pulumi_gcp/iap/client.py +7 -7
- pulumi_gcp/kms/__init__.py +2 -0
- pulumi_gcp/kms/_inputs.py +40 -0
- pulumi_gcp/kms/crypto_key.py +110 -7
- pulumi_gcp/kms/get_crypto_keys.py +143 -0
- pulumi_gcp/kms/get_key_rings.py +119 -0
- pulumi_gcp/kms/get_kms_crypto_key.py +11 -1
- pulumi_gcp/kms/outputs.py +382 -0
- pulumi_gcp/logging/_inputs.py +12 -12
- pulumi_gcp/logging/folder_bucket_config.py +6 -6
- pulumi_gcp/logging/organization_bucket_config.py +6 -6
- pulumi_gcp/logging/outputs.py +8 -8
- pulumi_gcp/logging/project_bucket_config.py +6 -6
- pulumi_gcp/looker/instance.py +2 -2
- pulumi_gcp/monitoring/custom_service.py +2 -2
- pulumi_gcp/monitoring/generic_service.py +2 -2
- pulumi_gcp/monitoring/notification_channel.py +2 -2
- pulumi_gcp/monitoring/slo.py +2 -2
- pulumi_gcp/netapp/storage_pool.py +132 -53
- pulumi_gcp/netapp/volume.py +60 -4
- pulumi_gcp/networksecurity/address_group.py +85 -1
- pulumi_gcp/networksecurity/firewall_endpoint.py +2 -2
- pulumi_gcp/networksecurity/firewall_endpoint_association.py +2 -2
- pulumi_gcp/networksecurity/security_profile_group.py +2 -2
- pulumi_gcp/orgpolicy/_inputs.py +40 -10
- pulumi_gcp/orgpolicy/outputs.py +28 -8
- pulumi_gcp/orgpolicy/policy.py +52 -35
- pulumi_gcp/privilegedaccessmanager/entitlement.py +4 -0
- pulumi_gcp/provider.py +40 -0
- pulumi_gcp/pubsub/_inputs.py +3 -3
- pulumi_gcp/pubsub/outputs.py +4 -4
- pulumi_gcp/pulumi-plugin.json +1 -1
- pulumi_gcp/securesourcemanager/__init__.py +5 -0
- pulumi_gcp/securesourcemanager/_inputs.py +284 -0
- pulumi_gcp/securesourcemanager/get_repository_iam_policy.py +177 -0
- pulumi_gcp/securesourcemanager/outputs.py +202 -0
- pulumi_gcp/securesourcemanager/repository.py +715 -0
- pulumi_gcp/securesourcemanager/repository_iam_binding.py +804 -0
- pulumi_gcp/securesourcemanager/repository_iam_member.py +804 -0
- pulumi_gcp/securesourcemanager/repository_iam_policy.py +643 -0
- pulumi_gcp/securitycenter/__init__.py +2 -0
- pulumi_gcp/securitycenter/_inputs.py +186 -0
- pulumi_gcp/securitycenter/outputs.py +118 -0
- pulumi_gcp/securitycenter/project_notification_config.py +518 -0
- pulumi_gcp/securitycenter/v2_organization_notification_config.py +576 -0
- pulumi_gcp/securityposture/posture_deployment.py +0 -78
- pulumi_gcp/servicenetworking/vpc_service_controls.py +2 -2
- pulumi_gcp/siteverification/__init__.py +8 -0
- pulumi_gcp/siteverification/get_token.py +221 -0
- pulumi_gcp/vertex/_inputs.py +21 -1
- pulumi_gcp/vertex/ai_feature_online_store_featureview.py +222 -0
- pulumi_gcp/vertex/outputs.py +15 -1
- pulumi_gcp/workstations/_inputs.py +33 -1
- pulumi_gcp/workstations/outputs.py +23 -1
- pulumi_gcp/workstations/workstation_config.py +18 -0
- {pulumi_gcp-7.31.0a1720850808.dist-info → pulumi_gcp-7.32.0.dist-info}/METADATA +1 -1
- {pulumi_gcp-7.31.0a1720850808.dist-info → pulumi_gcp-7.32.0.dist-info}/RECORD +103 -91
- {pulumi_gcp-7.31.0a1720850808.dist-info → pulumi_gcp-7.32.0.dist-info}/WHEEL +0 -0
- {pulumi_gcp-7.31.0a1720850808.dist-info → pulumi_gcp-7.32.0.dist-info}/top_level.txt +0 -0
pulumi_gcp/kms/crypto_key.py
CHANGED
@@ -25,6 +25,7 @@ class CryptoKeyArgs:
|
|
25
25
|
crypto_key_backend: Optional[pulumi.Input[str]] = None,
|
26
26
|
destroy_scheduled_duration: Optional[pulumi.Input[str]] = None,
|
27
27
|
import_only: Optional[pulumi.Input[bool]] = None,
|
28
|
+
key_access_justifications_policy: Optional[pulumi.Input['CryptoKeyKeyAccessJustificationsPolicyArgs']] = None,
|
28
29
|
labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
|
29
30
|
name: Optional[pulumi.Input[str]] = None,
|
30
31
|
purpose: Optional[pulumi.Input[str]] = None,
|
@@ -41,8 +42,17 @@ class CryptoKeyArgs:
|
|
41
42
|
:param pulumi.Input[str] crypto_key_backend: The resource name of the backend environment associated with all CryptoKeyVersions within this CryptoKey.
|
42
43
|
The resource name is in the format "projects/*/locations/*/ekmConnections/*" and only applies to "EXTERNAL_VPC" keys.
|
43
44
|
: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.
|
44
|
-
If not specified at creation time, the default duration is
|
45
|
+
If not specified at creation time, the default duration is 30 days.
|
45
46
|
:param pulumi.Input[bool] import_only: Whether this key may contain imported versions only.
|
47
|
+
:param pulumi.Input['CryptoKeyKeyAccessJustificationsPolicyArgs'] key_access_justifications_policy: The policy used for Key Access Justifications Policy Enforcement. If this
|
48
|
+
field is present and this key is enrolled in Key Access Justifications
|
49
|
+
Policy Enforcement, the policy will be evaluated in encrypt, decrypt, and
|
50
|
+
sign operations, and the operation will fail if rejected by the policy. The
|
51
|
+
policy is defined by specifying zero or more allowed justification codes.
|
52
|
+
https://cloud.google.com/assured-workloads/key-access-justifications/docs/justification-codes
|
53
|
+
By default, this field is absent, and all justification codes are allowed.
|
54
|
+
This field is currently in beta and is subject to change.
|
55
|
+
Structure is documented below.
|
46
56
|
:param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: Labels with user-defined metadata to apply to this resource.
|
47
57
|
|
48
58
|
**Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
|
@@ -69,6 +79,8 @@ class CryptoKeyArgs:
|
|
69
79
|
pulumi.set(__self__, "destroy_scheduled_duration", destroy_scheduled_duration)
|
70
80
|
if import_only is not None:
|
71
81
|
pulumi.set(__self__, "import_only", import_only)
|
82
|
+
if key_access_justifications_policy is not None:
|
83
|
+
pulumi.set(__self__, "key_access_justifications_policy", key_access_justifications_policy)
|
72
84
|
if labels is not None:
|
73
85
|
pulumi.set(__self__, "labels", labels)
|
74
86
|
if name is not None:
|
@@ -116,7 +128,7 @@ class CryptoKeyArgs:
|
|
116
128
|
def destroy_scheduled_duration(self) -> Optional[pulumi.Input[str]]:
|
117
129
|
"""
|
118
130
|
The period of time that versions of this key spend in the DESTROY_SCHEDULED state before transitioning to DESTROYED.
|
119
|
-
If not specified at creation time, the default duration is
|
131
|
+
If not specified at creation time, the default duration is 30 days.
|
120
132
|
"""
|
121
133
|
return pulumi.get(self, "destroy_scheduled_duration")
|
122
134
|
|
@@ -136,6 +148,26 @@ class CryptoKeyArgs:
|
|
136
148
|
def import_only(self, value: Optional[pulumi.Input[bool]]):
|
137
149
|
pulumi.set(self, "import_only", value)
|
138
150
|
|
151
|
+
@property
|
152
|
+
@pulumi.getter(name="keyAccessJustificationsPolicy")
|
153
|
+
def key_access_justifications_policy(self) -> Optional[pulumi.Input['CryptoKeyKeyAccessJustificationsPolicyArgs']]:
|
154
|
+
"""
|
155
|
+
The policy used for Key Access Justifications Policy Enforcement. If this
|
156
|
+
field is present and this key is enrolled in Key Access Justifications
|
157
|
+
Policy Enforcement, the policy will be evaluated in encrypt, decrypt, and
|
158
|
+
sign operations, and the operation will fail if rejected by the policy. The
|
159
|
+
policy is defined by specifying zero or more allowed justification codes.
|
160
|
+
https://cloud.google.com/assured-workloads/key-access-justifications/docs/justification-codes
|
161
|
+
By default, this field is absent, and all justification codes are allowed.
|
162
|
+
This field is currently in beta and is subject to change.
|
163
|
+
Structure is documented below.
|
164
|
+
"""
|
165
|
+
return pulumi.get(self, "key_access_justifications_policy")
|
166
|
+
|
167
|
+
@key_access_justifications_policy.setter
|
168
|
+
def key_access_justifications_policy(self, value: Optional[pulumi.Input['CryptoKeyKeyAccessJustificationsPolicyArgs']]):
|
169
|
+
pulumi.set(self, "key_access_justifications_policy", value)
|
170
|
+
|
139
171
|
@property
|
140
172
|
@pulumi.getter
|
141
173
|
def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
|
@@ -228,6 +260,7 @@ class _CryptoKeyState:
|
|
228
260
|
destroy_scheduled_duration: Optional[pulumi.Input[str]] = None,
|
229
261
|
effective_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
|
230
262
|
import_only: Optional[pulumi.Input[bool]] = None,
|
263
|
+
key_access_justifications_policy: Optional[pulumi.Input['CryptoKeyKeyAccessJustificationsPolicyArgs']] = None,
|
231
264
|
key_ring: Optional[pulumi.Input[str]] = None,
|
232
265
|
labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
|
233
266
|
name: Optional[pulumi.Input[str]] = None,
|
@@ -242,9 +275,18 @@ class _CryptoKeyState:
|
|
242
275
|
:param pulumi.Input[str] crypto_key_backend: The resource name of the backend environment associated with all CryptoKeyVersions within this CryptoKey.
|
243
276
|
The resource name is in the format "projects/*/locations/*/ekmConnections/*" and only applies to "EXTERNAL_VPC" keys.
|
244
277
|
: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.
|
245
|
-
If not specified at creation time, the default duration is
|
278
|
+
If not specified at creation time, the default duration is 30 days.
|
246
279
|
: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.
|
247
280
|
:param pulumi.Input[bool] import_only: Whether this key may contain imported versions only.
|
281
|
+
:param pulumi.Input['CryptoKeyKeyAccessJustificationsPolicyArgs'] key_access_justifications_policy: The policy used for Key Access Justifications Policy Enforcement. If this
|
282
|
+
field is present and this key is enrolled in Key Access Justifications
|
283
|
+
Policy Enforcement, the policy will be evaluated in encrypt, decrypt, and
|
284
|
+
sign operations, and the operation will fail if rejected by the policy. The
|
285
|
+
policy is defined by specifying zero or more allowed justification codes.
|
286
|
+
https://cloud.google.com/assured-workloads/key-access-justifications/docs/justification-codes
|
287
|
+
By default, this field is absent, and all justification codes are allowed.
|
288
|
+
This field is currently in beta and is subject to change.
|
289
|
+
Structure is documented below.
|
248
290
|
:param pulumi.Input[str] key_ring: The KeyRing that this key belongs to.
|
249
291
|
Format: `'projects/{{project}}/locations/{{location}}/keyRings/{{keyRing}}'`.
|
250
292
|
|
@@ -282,6 +324,8 @@ class _CryptoKeyState:
|
|
282
324
|
pulumi.set(__self__, "effective_labels", effective_labels)
|
283
325
|
if import_only is not None:
|
284
326
|
pulumi.set(__self__, "import_only", import_only)
|
327
|
+
if key_access_justifications_policy is not None:
|
328
|
+
pulumi.set(__self__, "key_access_justifications_policy", key_access_justifications_policy)
|
285
329
|
if key_ring is not None:
|
286
330
|
pulumi.set(__self__, "key_ring", key_ring)
|
287
331
|
if labels is not None:
|
@@ -319,7 +363,7 @@ class _CryptoKeyState:
|
|
319
363
|
def destroy_scheduled_duration(self) -> Optional[pulumi.Input[str]]:
|
320
364
|
"""
|
321
365
|
The period of time that versions of this key spend in the DESTROY_SCHEDULED state before transitioning to DESTROYED.
|
322
|
-
If not specified at creation time, the default duration is
|
366
|
+
If not specified at creation time, the default duration is 30 days.
|
323
367
|
"""
|
324
368
|
return pulumi.get(self, "destroy_scheduled_duration")
|
325
369
|
|
@@ -351,6 +395,26 @@ class _CryptoKeyState:
|
|
351
395
|
def import_only(self, value: Optional[pulumi.Input[bool]]):
|
352
396
|
pulumi.set(self, "import_only", value)
|
353
397
|
|
398
|
+
@property
|
399
|
+
@pulumi.getter(name="keyAccessJustificationsPolicy")
|
400
|
+
def key_access_justifications_policy(self) -> Optional[pulumi.Input['CryptoKeyKeyAccessJustificationsPolicyArgs']]:
|
401
|
+
"""
|
402
|
+
The policy used for Key Access Justifications Policy Enforcement. If this
|
403
|
+
field is present and this key is enrolled in Key Access Justifications
|
404
|
+
Policy Enforcement, the policy will be evaluated in encrypt, decrypt, and
|
405
|
+
sign operations, and the operation will fail if rejected by the policy. The
|
406
|
+
policy is defined by specifying zero or more allowed justification codes.
|
407
|
+
https://cloud.google.com/assured-workloads/key-access-justifications/docs/justification-codes
|
408
|
+
By default, this field is absent, and all justification codes are allowed.
|
409
|
+
This field is currently in beta and is subject to change.
|
410
|
+
Structure is documented below.
|
411
|
+
"""
|
412
|
+
return pulumi.get(self, "key_access_justifications_policy")
|
413
|
+
|
414
|
+
@key_access_justifications_policy.setter
|
415
|
+
def key_access_justifications_policy(self, value: Optional[pulumi.Input['CryptoKeyKeyAccessJustificationsPolicyArgs']]):
|
416
|
+
pulumi.set(self, "key_access_justifications_policy", value)
|
417
|
+
|
354
418
|
@property
|
355
419
|
@pulumi.getter(name="keyRing")
|
356
420
|
def key_ring(self) -> Optional[pulumi.Input[str]]:
|
@@ -487,6 +551,7 @@ class CryptoKey(pulumi.CustomResource):
|
|
487
551
|
crypto_key_backend: Optional[pulumi.Input[str]] = None,
|
488
552
|
destroy_scheduled_duration: Optional[pulumi.Input[str]] = None,
|
489
553
|
import_only: Optional[pulumi.Input[bool]] = None,
|
554
|
+
key_access_justifications_policy: Optional[pulumi.Input[Union['CryptoKeyKeyAccessJustificationsPolicyArgs', 'CryptoKeyKeyAccessJustificationsPolicyArgsDict']]] = None,
|
490
555
|
key_ring: Optional[pulumi.Input[str]] = None,
|
491
556
|
labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
|
492
557
|
name: Optional[pulumi.Input[str]] = None,
|
@@ -568,8 +633,17 @@ class CryptoKey(pulumi.CustomResource):
|
|
568
633
|
:param pulumi.Input[str] crypto_key_backend: The resource name of the backend environment associated with all CryptoKeyVersions within this CryptoKey.
|
569
634
|
The resource name is in the format "projects/*/locations/*/ekmConnections/*" and only applies to "EXTERNAL_VPC" keys.
|
570
635
|
: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.
|
571
|
-
If not specified at creation time, the default duration is
|
636
|
+
If not specified at creation time, the default duration is 30 days.
|
572
637
|
:param pulumi.Input[bool] import_only: Whether this key may contain imported versions only.
|
638
|
+
:param pulumi.Input[Union['CryptoKeyKeyAccessJustificationsPolicyArgs', 'CryptoKeyKeyAccessJustificationsPolicyArgsDict']] key_access_justifications_policy: The policy used for Key Access Justifications Policy Enforcement. If this
|
639
|
+
field is present and this key is enrolled in Key Access Justifications
|
640
|
+
Policy Enforcement, the policy will be evaluated in encrypt, decrypt, and
|
641
|
+
sign operations, and the operation will fail if rejected by the policy. The
|
642
|
+
policy is defined by specifying zero or more allowed justification codes.
|
643
|
+
https://cloud.google.com/assured-workloads/key-access-justifications/docs/justification-codes
|
644
|
+
By default, this field is absent, and all justification codes are allowed.
|
645
|
+
This field is currently in beta and is subject to change.
|
646
|
+
Structure is documented below.
|
573
647
|
:param pulumi.Input[str] key_ring: The KeyRing that this key belongs to.
|
574
648
|
Format: `'projects/{{project}}/locations/{{location}}/keyRings/{{keyRing}}'`.
|
575
649
|
|
@@ -686,6 +760,7 @@ class CryptoKey(pulumi.CustomResource):
|
|
686
760
|
crypto_key_backend: Optional[pulumi.Input[str]] = None,
|
687
761
|
destroy_scheduled_duration: Optional[pulumi.Input[str]] = None,
|
688
762
|
import_only: Optional[pulumi.Input[bool]] = None,
|
763
|
+
key_access_justifications_policy: Optional[pulumi.Input[Union['CryptoKeyKeyAccessJustificationsPolicyArgs', 'CryptoKeyKeyAccessJustificationsPolicyArgsDict']]] = None,
|
689
764
|
key_ring: Optional[pulumi.Input[str]] = None,
|
690
765
|
labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
|
691
766
|
name: Optional[pulumi.Input[str]] = None,
|
@@ -705,6 +780,7 @@ class CryptoKey(pulumi.CustomResource):
|
|
705
780
|
__props__.__dict__["crypto_key_backend"] = crypto_key_backend
|
706
781
|
__props__.__dict__["destroy_scheduled_duration"] = destroy_scheduled_duration
|
707
782
|
__props__.__dict__["import_only"] = import_only
|
783
|
+
__props__.__dict__["key_access_justifications_policy"] = key_access_justifications_policy
|
708
784
|
if key_ring is None and not opts.urn:
|
709
785
|
raise TypeError("Missing required property 'key_ring'")
|
710
786
|
__props__.__dict__["key_ring"] = key_ring
|
@@ -733,6 +809,7 @@ class CryptoKey(pulumi.CustomResource):
|
|
733
809
|
destroy_scheduled_duration: Optional[pulumi.Input[str]] = None,
|
734
810
|
effective_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
|
735
811
|
import_only: Optional[pulumi.Input[bool]] = None,
|
812
|
+
key_access_justifications_policy: Optional[pulumi.Input[Union['CryptoKeyKeyAccessJustificationsPolicyArgs', 'CryptoKeyKeyAccessJustificationsPolicyArgsDict']]] = None,
|
736
813
|
key_ring: Optional[pulumi.Input[str]] = None,
|
737
814
|
labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
|
738
815
|
name: Optional[pulumi.Input[str]] = None,
|
@@ -752,9 +829,18 @@ class CryptoKey(pulumi.CustomResource):
|
|
752
829
|
:param pulumi.Input[str] crypto_key_backend: The resource name of the backend environment associated with all CryptoKeyVersions within this CryptoKey.
|
753
830
|
The resource name is in the format "projects/*/locations/*/ekmConnections/*" and only applies to "EXTERNAL_VPC" keys.
|
754
831
|
: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.
|
755
|
-
If not specified at creation time, the default duration is
|
832
|
+
If not specified at creation time, the default duration is 30 days.
|
756
833
|
: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.
|
757
834
|
:param pulumi.Input[bool] import_only: Whether this key may contain imported versions only.
|
835
|
+
:param pulumi.Input[Union['CryptoKeyKeyAccessJustificationsPolicyArgs', 'CryptoKeyKeyAccessJustificationsPolicyArgsDict']] key_access_justifications_policy: The policy used for Key Access Justifications Policy Enforcement. If this
|
836
|
+
field is present and this key is enrolled in Key Access Justifications
|
837
|
+
Policy Enforcement, the policy will be evaluated in encrypt, decrypt, and
|
838
|
+
sign operations, and the operation will fail if rejected by the policy. The
|
839
|
+
policy is defined by specifying zero or more allowed justification codes.
|
840
|
+
https://cloud.google.com/assured-workloads/key-access-justifications/docs/justification-codes
|
841
|
+
By default, this field is absent, and all justification codes are allowed.
|
842
|
+
This field is currently in beta and is subject to change.
|
843
|
+
Structure is documented below.
|
758
844
|
:param pulumi.Input[str] key_ring: The KeyRing that this key belongs to.
|
759
845
|
Format: `'projects/{{project}}/locations/{{location}}/keyRings/{{keyRing}}'`.
|
760
846
|
|
@@ -792,6 +878,7 @@ class CryptoKey(pulumi.CustomResource):
|
|
792
878
|
__props__.__dict__["destroy_scheduled_duration"] = destroy_scheduled_duration
|
793
879
|
__props__.__dict__["effective_labels"] = effective_labels
|
794
880
|
__props__.__dict__["import_only"] = import_only
|
881
|
+
__props__.__dict__["key_access_justifications_policy"] = key_access_justifications_policy
|
795
882
|
__props__.__dict__["key_ring"] = key_ring
|
796
883
|
__props__.__dict__["labels"] = labels
|
797
884
|
__props__.__dict__["name"] = name
|
@@ -817,7 +904,7 @@ class CryptoKey(pulumi.CustomResource):
|
|
817
904
|
def destroy_scheduled_duration(self) -> pulumi.Output[str]:
|
818
905
|
"""
|
819
906
|
The period of time that versions of this key spend in the DESTROY_SCHEDULED state before transitioning to DESTROYED.
|
820
|
-
If not specified at creation time, the default duration is
|
907
|
+
If not specified at creation time, the default duration is 30 days.
|
821
908
|
"""
|
822
909
|
return pulumi.get(self, "destroy_scheduled_duration")
|
823
910
|
|
@@ -837,6 +924,22 @@ class CryptoKey(pulumi.CustomResource):
|
|
837
924
|
"""
|
838
925
|
return pulumi.get(self, "import_only")
|
839
926
|
|
927
|
+
@property
|
928
|
+
@pulumi.getter(name="keyAccessJustificationsPolicy")
|
929
|
+
def key_access_justifications_policy(self) -> pulumi.Output['outputs.CryptoKeyKeyAccessJustificationsPolicy']:
|
930
|
+
"""
|
931
|
+
The policy used for Key Access Justifications Policy Enforcement. If this
|
932
|
+
field is present and this key is enrolled in Key Access Justifications
|
933
|
+
Policy Enforcement, the policy will be evaluated in encrypt, decrypt, and
|
934
|
+
sign operations, and the operation will fail if rejected by the policy. The
|
935
|
+
policy is defined by specifying zero or more allowed justification codes.
|
936
|
+
https://cloud.google.com/assured-workloads/key-access-justifications/docs/justification-codes
|
937
|
+
By default, this field is absent, and all justification codes are allowed.
|
938
|
+
This field is currently in beta and is subject to change.
|
939
|
+
Structure is documented below.
|
940
|
+
"""
|
941
|
+
return pulumi.get(self, "key_access_justifications_policy")
|
942
|
+
|
840
943
|
@property
|
841
944
|
@pulumi.getter(name="keyRing")
|
842
945
|
def key_ring(self) -> pulumi.Output[str]:
|
@@ -0,0 +1,143 @@
|
|
1
|
+
# coding=utf-8
|
2
|
+
# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
|
3
|
+
# *** Do not edit by hand unless you're certain you know what you are doing! ***
|
4
|
+
|
5
|
+
import copy
|
6
|
+
import warnings
|
7
|
+
import sys
|
8
|
+
import pulumi
|
9
|
+
import pulumi.runtime
|
10
|
+
from typing import Any, Mapping, Optional, Sequence, Union, overload
|
11
|
+
if sys.version_info >= (3, 11):
|
12
|
+
from typing import NotRequired, TypedDict, TypeAlias
|
13
|
+
else:
|
14
|
+
from typing_extensions import NotRequired, TypedDict, TypeAlias
|
15
|
+
from .. import _utilities
|
16
|
+
from . import outputs
|
17
|
+
|
18
|
+
__all__ = [
|
19
|
+
'GetCryptoKeysResult',
|
20
|
+
'AwaitableGetCryptoKeysResult',
|
21
|
+
'get_crypto_keys',
|
22
|
+
'get_crypto_keys_output',
|
23
|
+
]
|
24
|
+
|
25
|
+
@pulumi.output_type
|
26
|
+
class GetCryptoKeysResult:
|
27
|
+
"""
|
28
|
+
A collection of values returned by getCryptoKeys.
|
29
|
+
"""
|
30
|
+
def __init__(__self__, filter=None, id=None, key_ring=None, keys=None):
|
31
|
+
if filter and not isinstance(filter, str):
|
32
|
+
raise TypeError("Expected argument 'filter' to be a str")
|
33
|
+
pulumi.set(__self__, "filter", filter)
|
34
|
+
if id and not isinstance(id, str):
|
35
|
+
raise TypeError("Expected argument 'id' to be a str")
|
36
|
+
pulumi.set(__self__, "id", id)
|
37
|
+
if key_ring and not isinstance(key_ring, str):
|
38
|
+
raise TypeError("Expected argument 'key_ring' to be a str")
|
39
|
+
pulumi.set(__self__, "key_ring", key_ring)
|
40
|
+
if keys and not isinstance(keys, list):
|
41
|
+
raise TypeError("Expected argument 'keys' to be a list")
|
42
|
+
pulumi.set(__self__, "keys", keys)
|
43
|
+
|
44
|
+
@property
|
45
|
+
@pulumi.getter
|
46
|
+
def filter(self) -> Optional[str]:
|
47
|
+
return pulumi.get(self, "filter")
|
48
|
+
|
49
|
+
@property
|
50
|
+
@pulumi.getter
|
51
|
+
def id(self) -> str:
|
52
|
+
"""
|
53
|
+
The provider-assigned unique ID for this managed resource.
|
54
|
+
"""
|
55
|
+
return pulumi.get(self, "id")
|
56
|
+
|
57
|
+
@property
|
58
|
+
@pulumi.getter(name="keyRing")
|
59
|
+
def key_ring(self) -> str:
|
60
|
+
return pulumi.get(self, "key_ring")
|
61
|
+
|
62
|
+
@property
|
63
|
+
@pulumi.getter
|
64
|
+
def keys(self) -> Sequence['outputs.GetCryptoKeysKeyResult']:
|
65
|
+
"""
|
66
|
+
A list of all the retrieved keys from the provided key ring. This list is influenced by the provided filter argument.
|
67
|
+
"""
|
68
|
+
return pulumi.get(self, "keys")
|
69
|
+
|
70
|
+
|
71
|
+
class AwaitableGetCryptoKeysResult(GetCryptoKeysResult):
|
72
|
+
# pylint: disable=using-constant-test
|
73
|
+
def __await__(self):
|
74
|
+
if False:
|
75
|
+
yield self
|
76
|
+
return GetCryptoKeysResult(
|
77
|
+
filter=self.filter,
|
78
|
+
id=self.id,
|
79
|
+
key_ring=self.key_ring,
|
80
|
+
keys=self.keys)
|
81
|
+
|
82
|
+
|
83
|
+
def get_crypto_keys(filter: Optional[str] = None,
|
84
|
+
key_ring: Optional[str] = None,
|
85
|
+
opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetCryptoKeysResult:
|
86
|
+
"""
|
87
|
+
Provides access to all Google Cloud Platform KMS CryptoKeys in a given KeyRing. For more information see
|
88
|
+
[the official documentation](https://cloud.google.com/kms/docs/object-hierarchy#key)
|
89
|
+
and
|
90
|
+
[API](https://cloud.google.com/kms/docs/reference/rest/v1/projects.locations.keyRings.cryptoKeys).
|
91
|
+
|
92
|
+
A CryptoKey is an interface to key material which can be used to encrypt and decrypt data. A CryptoKey belongs to a
|
93
|
+
Google Cloud KMS KeyRing.
|
94
|
+
|
95
|
+
|
96
|
+
:param str filter: The filter argument is used to add a filter query parameter that limits which keys are retrieved by the data source: ?filter={{filter}}. When no value is provided there is no filtering.
|
97
|
+
|
98
|
+
Example filter values if filtering on name. Note: names take the form projects/{{project}}/locations/{{location}}/keyRings/{{keyRing}}/cryptoKeys/{{cryptoKey}}.
|
99
|
+
|
100
|
+
* `"name:my-key-"` will retrieve keys that contain "my-key-" anywhere in their name.
|
101
|
+
* `"name=projects/my-project/locations/global/keyRings/my-key-ring/cryptoKeys/my-key-1"` will only retrieve a key with that exact name.
|
102
|
+
|
103
|
+
[See the documentation about using filters](https://cloud.google.com/kms/docs/sorting-and-filtering)
|
104
|
+
:param str key_ring: The key ring that the keys belongs to. Format: 'projects/{{project}}/locations/{{location}}/keyRings/{{keyRing}}'.,
|
105
|
+
"""
|
106
|
+
__args__ = dict()
|
107
|
+
__args__['filter'] = filter
|
108
|
+
__args__['keyRing'] = key_ring
|
109
|
+
opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts)
|
110
|
+
__ret__ = pulumi.runtime.invoke('gcp:kms/getCryptoKeys:getCryptoKeys', __args__, opts=opts, typ=GetCryptoKeysResult).value
|
111
|
+
|
112
|
+
return AwaitableGetCryptoKeysResult(
|
113
|
+
filter=pulumi.get(__ret__, 'filter'),
|
114
|
+
id=pulumi.get(__ret__, 'id'),
|
115
|
+
key_ring=pulumi.get(__ret__, 'key_ring'),
|
116
|
+
keys=pulumi.get(__ret__, 'keys'))
|
117
|
+
|
118
|
+
|
119
|
+
@_utilities.lift_output_func(get_crypto_keys)
|
120
|
+
def get_crypto_keys_output(filter: Optional[pulumi.Input[Optional[str]]] = None,
|
121
|
+
key_ring: Optional[pulumi.Input[str]] = None,
|
122
|
+
opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetCryptoKeysResult]:
|
123
|
+
"""
|
124
|
+
Provides access to all Google Cloud Platform KMS CryptoKeys in a given KeyRing. For more information see
|
125
|
+
[the official documentation](https://cloud.google.com/kms/docs/object-hierarchy#key)
|
126
|
+
and
|
127
|
+
[API](https://cloud.google.com/kms/docs/reference/rest/v1/projects.locations.keyRings.cryptoKeys).
|
128
|
+
|
129
|
+
A CryptoKey is an interface to key material which can be used to encrypt and decrypt data. A CryptoKey belongs to a
|
130
|
+
Google Cloud KMS KeyRing.
|
131
|
+
|
132
|
+
|
133
|
+
:param str filter: The filter argument is used to add a filter query parameter that limits which keys are retrieved by the data source: ?filter={{filter}}. When no value is provided there is no filtering.
|
134
|
+
|
135
|
+
Example filter values if filtering on name. Note: names take the form projects/{{project}}/locations/{{location}}/keyRings/{{keyRing}}/cryptoKeys/{{cryptoKey}}.
|
136
|
+
|
137
|
+
* `"name:my-key-"` will retrieve keys that contain "my-key-" anywhere in their name.
|
138
|
+
* `"name=projects/my-project/locations/global/keyRings/my-key-ring/cryptoKeys/my-key-1"` will only retrieve a key with that exact name.
|
139
|
+
|
140
|
+
[See the documentation about using filters](https://cloud.google.com/kms/docs/sorting-and-filtering)
|
141
|
+
:param str key_ring: The key ring that the keys belongs to. Format: 'projects/{{project}}/locations/{{location}}/keyRings/{{keyRing}}'.,
|
142
|
+
"""
|
143
|
+
...
|
@@ -0,0 +1,119 @@
|
|
1
|
+
# coding=utf-8
|
2
|
+
# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
|
3
|
+
# *** Do not edit by hand unless you're certain you know what you are doing! ***
|
4
|
+
|
5
|
+
import copy
|
6
|
+
import warnings
|
7
|
+
import sys
|
8
|
+
import pulumi
|
9
|
+
import pulumi.runtime
|
10
|
+
from typing import Any, Mapping, Optional, Sequence, Union, overload
|
11
|
+
if sys.version_info >= (3, 11):
|
12
|
+
from typing import NotRequired, TypedDict, TypeAlias
|
13
|
+
else:
|
14
|
+
from typing_extensions import NotRequired, TypedDict, TypeAlias
|
15
|
+
from .. import _utilities
|
16
|
+
from . import outputs
|
17
|
+
|
18
|
+
__all__ = [
|
19
|
+
'GetKeyRingsResult',
|
20
|
+
'AwaitableGetKeyRingsResult',
|
21
|
+
'get_key_rings',
|
22
|
+
'get_key_rings_output',
|
23
|
+
]
|
24
|
+
|
25
|
+
@pulumi.output_type
|
26
|
+
class GetKeyRingsResult:
|
27
|
+
"""
|
28
|
+
A collection of values returned by getKeyRings.
|
29
|
+
"""
|
30
|
+
def __init__(__self__, filter=None, id=None, key_rings=None, location=None, project=None):
|
31
|
+
if filter and not isinstance(filter, str):
|
32
|
+
raise TypeError("Expected argument 'filter' to be a str")
|
33
|
+
pulumi.set(__self__, "filter", filter)
|
34
|
+
if id and not isinstance(id, str):
|
35
|
+
raise TypeError("Expected argument 'id' to be a str")
|
36
|
+
pulumi.set(__self__, "id", id)
|
37
|
+
if key_rings and not isinstance(key_rings, list):
|
38
|
+
raise TypeError("Expected argument 'key_rings' to be a list")
|
39
|
+
pulumi.set(__self__, "key_rings", key_rings)
|
40
|
+
if location and not isinstance(location, str):
|
41
|
+
raise TypeError("Expected argument 'location' to be a str")
|
42
|
+
pulumi.set(__self__, "location", location)
|
43
|
+
if project and not isinstance(project, str):
|
44
|
+
raise TypeError("Expected argument 'project' to be a str")
|
45
|
+
pulumi.set(__self__, "project", project)
|
46
|
+
|
47
|
+
@property
|
48
|
+
@pulumi.getter
|
49
|
+
def filter(self) -> Optional[str]:
|
50
|
+
return pulumi.get(self, "filter")
|
51
|
+
|
52
|
+
@property
|
53
|
+
@pulumi.getter
|
54
|
+
def id(self) -> str:
|
55
|
+
"""
|
56
|
+
The provider-assigned unique ID for this managed resource.
|
57
|
+
"""
|
58
|
+
return pulumi.get(self, "id")
|
59
|
+
|
60
|
+
@property
|
61
|
+
@pulumi.getter(name="keyRings")
|
62
|
+
def key_rings(self) -> Sequence['outputs.GetKeyRingsKeyRingResult']:
|
63
|
+
return pulumi.get(self, "key_rings")
|
64
|
+
|
65
|
+
@property
|
66
|
+
@pulumi.getter
|
67
|
+
def location(self) -> str:
|
68
|
+
return pulumi.get(self, "location")
|
69
|
+
|
70
|
+
@property
|
71
|
+
@pulumi.getter
|
72
|
+
def project(self) -> Optional[str]:
|
73
|
+
return pulumi.get(self, "project")
|
74
|
+
|
75
|
+
|
76
|
+
class AwaitableGetKeyRingsResult(GetKeyRingsResult):
|
77
|
+
# pylint: disable=using-constant-test
|
78
|
+
def __await__(self):
|
79
|
+
if False:
|
80
|
+
yield self
|
81
|
+
return GetKeyRingsResult(
|
82
|
+
filter=self.filter,
|
83
|
+
id=self.id,
|
84
|
+
key_rings=self.key_rings,
|
85
|
+
location=self.location,
|
86
|
+
project=self.project)
|
87
|
+
|
88
|
+
|
89
|
+
def get_key_rings(filter: Optional[str] = None,
|
90
|
+
location: Optional[str] = None,
|
91
|
+
project: Optional[str] = None,
|
92
|
+
opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetKeyRingsResult:
|
93
|
+
"""
|
94
|
+
Use this data source to access information about an existing resource.
|
95
|
+
"""
|
96
|
+
__args__ = dict()
|
97
|
+
__args__['filter'] = filter
|
98
|
+
__args__['location'] = location
|
99
|
+
__args__['project'] = project
|
100
|
+
opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts)
|
101
|
+
__ret__ = pulumi.runtime.invoke('gcp:kms/getKeyRings:getKeyRings', __args__, opts=opts, typ=GetKeyRingsResult).value
|
102
|
+
|
103
|
+
return AwaitableGetKeyRingsResult(
|
104
|
+
filter=pulumi.get(__ret__, 'filter'),
|
105
|
+
id=pulumi.get(__ret__, 'id'),
|
106
|
+
key_rings=pulumi.get(__ret__, 'key_rings'),
|
107
|
+
location=pulumi.get(__ret__, 'location'),
|
108
|
+
project=pulumi.get(__ret__, 'project'))
|
109
|
+
|
110
|
+
|
111
|
+
@_utilities.lift_output_func(get_key_rings)
|
112
|
+
def get_key_rings_output(filter: Optional[pulumi.Input[Optional[str]]] = None,
|
113
|
+
location: Optional[pulumi.Input[str]] = None,
|
114
|
+
project: Optional[pulumi.Input[Optional[str]]] = None,
|
115
|
+
opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetKeyRingsResult]:
|
116
|
+
"""
|
117
|
+
Use this data source to access information about an existing resource.
|
118
|
+
"""
|
119
|
+
...
|
@@ -27,7 +27,7 @@ class GetKMSCryptoKeyResult:
|
|
27
27
|
"""
|
28
28
|
A collection of values returned by getKMSCryptoKey.
|
29
29
|
"""
|
30
|
-
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):
|
30
|
+
def __init__(__self__, crypto_key_backend=None, destroy_scheduled_duration=None, effective_labels=None, id=None, import_only=None, key_access_justifications_policies=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):
|
31
31
|
if crypto_key_backend and not isinstance(crypto_key_backend, str):
|
32
32
|
raise TypeError("Expected argument 'crypto_key_backend' to be a str")
|
33
33
|
pulumi.set(__self__, "crypto_key_backend", crypto_key_backend)
|
@@ -43,6 +43,9 @@ class GetKMSCryptoKeyResult:
|
|
43
43
|
if import_only and not isinstance(import_only, bool):
|
44
44
|
raise TypeError("Expected argument 'import_only' to be a bool")
|
45
45
|
pulumi.set(__self__, "import_only", import_only)
|
46
|
+
if key_access_justifications_policies and not isinstance(key_access_justifications_policies, list):
|
47
|
+
raise TypeError("Expected argument 'key_access_justifications_policies' to be a list")
|
48
|
+
pulumi.set(__self__, "key_access_justifications_policies", key_access_justifications_policies)
|
46
49
|
if key_ring and not isinstance(key_ring, str):
|
47
50
|
raise TypeError("Expected argument 'key_ring' to be a str")
|
48
51
|
pulumi.set(__self__, "key_ring", key_ring)
|
@@ -99,6 +102,11 @@ class GetKMSCryptoKeyResult:
|
|
99
102
|
def import_only(self) -> bool:
|
100
103
|
return pulumi.get(self, "import_only")
|
101
104
|
|
105
|
+
@property
|
106
|
+
@pulumi.getter(name="keyAccessJustificationsPolicies")
|
107
|
+
def key_access_justifications_policies(self) -> Sequence['outputs.GetKMSCryptoKeyKeyAccessJustificationsPolicyResult']:
|
108
|
+
return pulumi.get(self, "key_access_justifications_policies")
|
109
|
+
|
102
110
|
@property
|
103
111
|
@pulumi.getter(name="keyRing")
|
104
112
|
def key_ring(self) -> str:
|
@@ -164,6 +172,7 @@ class AwaitableGetKMSCryptoKeyResult(GetKMSCryptoKeyResult):
|
|
164
172
|
effective_labels=self.effective_labels,
|
165
173
|
id=self.id,
|
166
174
|
import_only=self.import_only,
|
175
|
+
key_access_justifications_policies=self.key_access_justifications_policies,
|
167
176
|
key_ring=self.key_ring,
|
168
177
|
labels=self.labels,
|
169
178
|
name=self.name,
|
@@ -216,6 +225,7 @@ def get_kms_crypto_key(key_ring: Optional[str] = None,
|
|
216
225
|
effective_labels=pulumi.get(__ret__, 'effective_labels'),
|
217
226
|
id=pulumi.get(__ret__, 'id'),
|
218
227
|
import_only=pulumi.get(__ret__, 'import_only'),
|
228
|
+
key_access_justifications_policies=pulumi.get(__ret__, 'key_access_justifications_policies'),
|
219
229
|
key_ring=pulumi.get(__ret__, 'key_ring'),
|
220
230
|
labels=pulumi.get(__ret__, 'labels'),
|
221
231
|
name=pulumi.get(__ret__, 'name'),
|