pulumi-gcp 8.0.0a1726253601__py3-none-any.whl → 8.1.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 (101) hide show
  1. pulumi_gcp/__init__.py +24 -0
  2. pulumi_gcp/alloydb/_inputs.py +94 -0
  3. pulumi_gcp/alloydb/cluster.py +94 -1
  4. pulumi_gcp/alloydb/outputs.py +79 -0
  5. pulumi_gcp/assuredworkloads/workload.py +135 -16
  6. pulumi_gcp/backupdisasterrecovery/__init__.py +1 -0
  7. pulumi_gcp/backupdisasterrecovery/backup_vault.py +1203 -0
  8. pulumi_gcp/bigquery/_inputs.py +33 -0
  9. pulumi_gcp/bigquery/data_transfer_config.py +134 -6
  10. pulumi_gcp/bigquery/outputs.py +36 -0
  11. pulumi_gcp/bigqueryanalyticshub/_inputs.py +169 -7
  12. pulumi_gcp/bigqueryanalyticshub/data_exchange.py +96 -3
  13. pulumi_gcp/bigqueryanalyticshub/listing.py +114 -0
  14. pulumi_gcp/bigqueryanalyticshub/outputs.py +138 -5
  15. pulumi_gcp/bigtable/_inputs.py +21 -1
  16. pulumi_gcp/bigtable/outputs.py +13 -1
  17. pulumi_gcp/bigtable/table.py +34 -0
  18. pulumi_gcp/certificateauthority/authority.py +14 -7
  19. pulumi_gcp/certificatemanager/__init__.py +1 -0
  20. pulumi_gcp/certificatemanager/certificate.py +28 -0
  21. pulumi_gcp/certificatemanager/get_certificates.py +150 -0
  22. pulumi_gcp/certificatemanager/outputs.py +322 -0
  23. pulumi_gcp/cloudbuild/_inputs.py +6 -6
  24. pulumi_gcp/cloudbuild/outputs.py +4 -4
  25. pulumi_gcp/cloudrun/_inputs.py +6 -12
  26. pulumi_gcp/cloudrun/outputs.py +8 -16
  27. pulumi_gcp/cloudrunv2/_inputs.py +72 -15
  28. pulumi_gcp/cloudrunv2/outputs.py +82 -16
  29. pulumi_gcp/cloudrunv2/service.py +50 -4
  30. pulumi_gcp/cloudtasks/_inputs.py +630 -0
  31. pulumi_gcp/cloudtasks/outputs.py +479 -0
  32. pulumi_gcp/cloudtasks/queue.py +238 -0
  33. pulumi_gcp/compute/_inputs.py +129 -9
  34. pulumi_gcp/compute/get_instance.py +1 -1
  35. pulumi_gcp/compute/health_check.py +114 -0
  36. pulumi_gcp/compute/instance.py +86 -4
  37. pulumi_gcp/compute/instance_template.py +66 -0
  38. pulumi_gcp/compute/interconnect.py +28 -21
  39. pulumi_gcp/compute/node_template.py +93 -0
  40. pulumi_gcp/compute/outputs.py +108 -6
  41. pulumi_gcp/compute/target_https_proxy.py +28 -0
  42. pulumi_gcp/container/_inputs.py +140 -3
  43. pulumi_gcp/container/attached_cluster.py +7 -7
  44. pulumi_gcp/container/outputs.py +174 -2
  45. pulumi_gcp/databasemigrationservice/_inputs.py +176 -148
  46. pulumi_gcp/databasemigrationservice/connection_profile.py +206 -0
  47. pulumi_gcp/databasemigrationservice/outputs.py +109 -87
  48. pulumi_gcp/dataloss/_inputs.py +353 -1
  49. pulumi_gcp/dataloss/outputs.py +274 -3
  50. pulumi_gcp/dataproc/_inputs.py +27 -27
  51. pulumi_gcp/dataproc/outputs.py +18 -18
  52. pulumi_gcp/datastream/_inputs.py +69 -1
  53. pulumi_gcp/datastream/outputs.py +44 -2
  54. pulumi_gcp/datastream/stream.py +194 -7
  55. pulumi_gcp/discoveryengine/_inputs.py +188 -0
  56. pulumi_gcp/discoveryengine/data_store.py +14 -14
  57. pulumi_gcp/discoveryengine/outputs.py +153 -1
  58. pulumi_gcp/firebase/database_instance.py +7 -7
  59. pulumi_gcp/gkehub/_inputs.py +25 -1
  60. pulumi_gcp/gkehub/feature_membership.py +12 -6
  61. pulumi_gcp/gkehub/outputs.py +17 -1
  62. pulumi_gcp/iam/_inputs.py +196 -0
  63. pulumi_gcp/iam/get_workload_identity_pool_provider.py +13 -3
  64. pulumi_gcp/iam/outputs.py +295 -0
  65. pulumi_gcp/iam/workload_identity_pool_provider.py +164 -3
  66. pulumi_gcp/kms/__init__.py +2 -0
  67. pulumi_gcp/kms/autokey_config.py +10 -2
  68. pulumi_gcp/kms/get_crypto_key_latest_version.py +222 -0
  69. pulumi_gcp/kms/get_crypto_key_versions.py +175 -0
  70. pulumi_gcp/kms/outputs.py +164 -0
  71. pulumi_gcp/netapp/active_directory.py +6 -6
  72. pulumi_gcp/netapp/backup.py +6 -6
  73. pulumi_gcp/netapp/backup_policy.py +6 -6
  74. pulumi_gcp/netapp/backup_vault.py +6 -6
  75. pulumi_gcp/netapp/storage_pool.py +4 -4
  76. pulumi_gcp/netapp/volume.py +7 -0
  77. pulumi_gcp/networkconnectivity/_inputs.py +21 -1
  78. pulumi_gcp/networkconnectivity/outputs.py +15 -1
  79. pulumi_gcp/networkconnectivity/spoke.py +8 -0
  80. pulumi_gcp/networksecurity/client_tls_policy.py +24 -22
  81. pulumi_gcp/networksecurity/server_tls_policy.py +20 -32
  82. pulumi_gcp/organizations/get_project.py +13 -3
  83. pulumi_gcp/organizations/project.py +88 -3
  84. pulumi_gcp/parallelstore/instance.py +121 -121
  85. pulumi_gcp/projects/iam_member_remove.py +26 -0
  86. pulumi_gcp/projects/usage_export_bucket.py +38 -0
  87. pulumi_gcp/pubsub/_inputs.py +40 -0
  88. pulumi_gcp/pubsub/outputs.py +51 -1
  89. pulumi_gcp/pubsub/subscription.py +6 -0
  90. pulumi_gcp/pulumi-plugin.json +1 -1
  91. pulumi_gcp/redis/_inputs.py +419 -0
  92. pulumi_gcp/redis/cluster.py +123 -0
  93. pulumi_gcp/redis/outputs.py +315 -0
  94. pulumi_gcp/securitycenter/__init__.py +2 -0
  95. pulumi_gcp/securitycenter/v2_folder_scc_big_query_export.py +857 -0
  96. pulumi_gcp/securitycenter/v2_organization_scc_big_query_exports.py +4 -4
  97. pulumi_gcp/securitycenter/v2_project_scc_big_query_export.py +796 -0
  98. {pulumi_gcp-8.0.0a1726253601.dist-info → pulumi_gcp-8.1.0.dist-info}/METADATA +1 -1
  99. {pulumi_gcp-8.0.0a1726253601.dist-info → pulumi_gcp-8.1.0.dist-info}/RECORD +101 -95
  100. {pulumi_gcp-8.0.0a1726253601.dist-info → pulumi_gcp-8.1.0.dist-info}/WHEEL +1 -1
  101. {pulumi_gcp-8.0.0a1726253601.dist-info → pulumi_gcp-8.1.0.dist-info}/top_level.txt +0 -0
@@ -31,7 +31,8 @@ class WorkloadIdentityPoolProviderArgs:
31
31
  display_name: Optional[pulumi.Input[str]] = None,
32
32
  oidc: Optional[pulumi.Input['WorkloadIdentityPoolProviderOidcArgs']] = None,
33
33
  project: Optional[pulumi.Input[str]] = None,
34
- saml: Optional[pulumi.Input['WorkloadIdentityPoolProviderSamlArgs']] = None):
34
+ saml: Optional[pulumi.Input['WorkloadIdentityPoolProviderSamlArgs']] = None,
35
+ x509: Optional[pulumi.Input['WorkloadIdentityPoolProviderX509Args']] = None):
35
36
  """
36
37
  The set of arguments for constructing a WorkloadIdentityPoolProvider resource.
37
38
  :param pulumi.Input[str] workload_identity_pool_id: The ID used for the pool, which is the final component of the pool resource name. This
@@ -111,6 +112,9 @@ class WorkloadIdentityPoolProviderArgs:
111
112
  If it is not provided, the provider project is used.
112
113
  :param pulumi.Input['WorkloadIdentityPoolProviderSamlArgs'] saml: An SAML 2.0 identity provider. Not compatible with the property oidc or aws.
113
114
  Structure is documented below.
115
+ :param pulumi.Input['WorkloadIdentityPoolProviderX509Args'] x509: An X.509-type identity provider represents a CA. It is trusted to assert a
116
+ client identity if the client has a certificate that chains up to this CA.
117
+ Structure is documented below.
114
118
  """
115
119
  pulumi.set(__self__, "workload_identity_pool_id", workload_identity_pool_id)
116
120
  pulumi.set(__self__, "workload_identity_pool_provider_id", workload_identity_pool_provider_id)
@@ -132,6 +136,8 @@ class WorkloadIdentityPoolProviderArgs:
132
136
  pulumi.set(__self__, "project", project)
133
137
  if saml is not None:
134
138
  pulumi.set(__self__, "saml", saml)
139
+ if x509 is not None:
140
+ pulumi.set(__self__, "x509", x509)
135
141
 
136
142
  @property
137
143
  @pulumi.getter(name="workloadIdentityPoolId")
@@ -331,6 +337,20 @@ class WorkloadIdentityPoolProviderArgs:
331
337
  def saml(self, value: Optional[pulumi.Input['WorkloadIdentityPoolProviderSamlArgs']]):
332
338
  pulumi.set(self, "saml", value)
333
339
 
340
+ @property
341
+ @pulumi.getter
342
+ def x509(self) -> Optional[pulumi.Input['WorkloadIdentityPoolProviderX509Args']]:
343
+ """
344
+ An X.509-type identity provider represents a CA. It is trusted to assert a
345
+ client identity if the client has a certificate that chains up to this CA.
346
+ Structure is documented below.
347
+ """
348
+ return pulumi.get(self, "x509")
349
+
350
+ @x509.setter
351
+ def x509(self, value: Optional[pulumi.Input['WorkloadIdentityPoolProviderX509Args']]):
352
+ pulumi.set(self, "x509", value)
353
+
334
354
 
335
355
  @pulumi.input_type
336
356
  class _WorkloadIdentityPoolProviderState:
@@ -347,7 +367,8 @@ class _WorkloadIdentityPoolProviderState:
347
367
  saml: Optional[pulumi.Input['WorkloadIdentityPoolProviderSamlArgs']] = None,
348
368
  state: Optional[pulumi.Input[str]] = None,
349
369
  workload_identity_pool_id: Optional[pulumi.Input[str]] = None,
350
- workload_identity_pool_provider_id: Optional[pulumi.Input[str]] = None):
370
+ workload_identity_pool_provider_id: Optional[pulumi.Input[str]] = None,
371
+ x509: Optional[pulumi.Input['WorkloadIdentityPoolProviderX509Args']] = None):
351
372
  """
352
373
  Input properties used for looking up and filtering WorkloadIdentityPoolProvider resources.
353
374
  :param pulumi.Input[str] attribute_condition: [A Common Expression Language](https://opensource.google/projects/cel) expression, in
@@ -436,6 +457,9 @@ class _WorkloadIdentityPoolProviderState:
436
457
 
437
458
 
438
459
  - - -
460
+ :param pulumi.Input['WorkloadIdentityPoolProviderX509Args'] x509: An X.509-type identity provider represents a CA. It is trusted to assert a
461
+ client identity if the client has a certificate that chains up to this CA.
462
+ Structure is documented below.
439
463
  """
440
464
  if attribute_condition is not None:
441
465
  pulumi.set(__self__, "attribute_condition", attribute_condition)
@@ -463,6 +487,8 @@ class _WorkloadIdentityPoolProviderState:
463
487
  pulumi.set(__self__, "workload_identity_pool_id", workload_identity_pool_id)
464
488
  if workload_identity_pool_provider_id is not None:
465
489
  pulumi.set(__self__, "workload_identity_pool_provider_id", workload_identity_pool_provider_id)
490
+ if x509 is not None:
491
+ pulumi.set(__self__, "x509", x509)
466
492
 
467
493
  @property
468
494
  @pulumi.getter(name="attributeCondition")
@@ -693,6 +719,20 @@ class _WorkloadIdentityPoolProviderState:
693
719
  def workload_identity_pool_provider_id(self, value: Optional[pulumi.Input[str]]):
694
720
  pulumi.set(self, "workload_identity_pool_provider_id", value)
695
721
 
722
+ @property
723
+ @pulumi.getter
724
+ def x509(self) -> Optional[pulumi.Input['WorkloadIdentityPoolProviderX509Args']]:
725
+ """
726
+ An X.509-type identity provider represents a CA. It is trusted to assert a
727
+ client identity if the client has a certificate that chains up to this CA.
728
+ Structure is documented below.
729
+ """
730
+ return pulumi.get(self, "x509")
731
+
732
+ @x509.setter
733
+ def x509(self, value: Optional[pulumi.Input['WorkloadIdentityPoolProviderX509Args']]):
734
+ pulumi.set(self, "x509", value)
735
+
696
736
 
697
737
  class WorkloadIdentityPoolProvider(pulumi.CustomResource):
698
738
  @overload
@@ -710,6 +750,7 @@ class WorkloadIdentityPoolProvider(pulumi.CustomResource):
710
750
  saml: Optional[pulumi.Input[Union['WorkloadIdentityPoolProviderSamlArgs', 'WorkloadIdentityPoolProviderSamlArgsDict']]] = None,
711
751
  workload_identity_pool_id: Optional[pulumi.Input[str]] = None,
712
752
  workload_identity_pool_provider_id: Optional[pulumi.Input[str]] = None,
753
+ x509: Optional[pulumi.Input[Union['WorkloadIdentityPoolProviderX509Args', 'WorkloadIdentityPoolProviderX509ArgsDict']]] = None,
713
754
  __props__=None):
714
755
  """
715
756
  A configuration for an external identity provider.
@@ -882,6 +923,56 @@ class WorkloadIdentityPoolProvider(pulumi.CustomResource):
882
923
  "jwks_json": "{\\"keys\\":[{\\"kty\\":\\"RSA\\",\\"alg\\":\\"RS256\\",\\"kid\\":\\"sif0AR-F6MuvksAyAOv-Pds08Bcf2eUMlxE30NofddA\\",\\"use\\":\\"sig\\",\\"e\\":\\"AQAB\\",\\"n\\":\\"ylH1Chl1tpfti3lh51E1g5dPogzXDaQseqjsefGLknaNl5W6Wd4frBhHyE2t41Q5zgz_Ll0-NvWm0FlaG6brhrN9QZu6sJP1bM8WPfJVPgXOanxi7d7TXCkeNubGeiLTf5R3UXtS9Lm_guemU7MxDjDTelxnlgGCihOVTcL526suNJUdfXtpwUsvdU6_ZnAp9IpsuYjCtwPm9hPumlcZGMbxstdh07O4y4O90cVQClJOKSGQjAUCKJWXIQ0cqffGS_HuS_725CPzQ85SzYZzaNpgfhAER7kx_9P16ARM3BJz0PI5fe2hECE61J4GYU_BY43sxDfs7HyJpEXKLU9eWw\\"}]}",
883
924
  })
884
925
  ```
926
+ ### Iam Workload Identity Pool Provider X509 Basic
927
+
928
+ ```python
929
+ import pulumi
930
+ import pulumi_gcp as gcp
931
+ import pulumi_std as std
932
+
933
+ pool = gcp.iam.WorkloadIdentityPool("pool", workload_identity_pool_id="example-pool")
934
+ example = gcp.iam.WorkloadIdentityPoolProvider("example",
935
+ workload_identity_pool_id=pool.workload_identity_pool_id,
936
+ workload_identity_pool_provider_id="example-prvdr",
937
+ attribute_mapping={
938
+ "google.subject": "assertion.subject.dn.cn",
939
+ },
940
+ x509={
941
+ "trust_store": {
942
+ "trust_anchors": [{
943
+ "pem_certificate": std.file(input="test-fixtures/trust_anchor.pem").result,
944
+ }],
945
+ },
946
+ })
947
+ ```
948
+ ### Iam Workload Identity Pool Provider X509 Full
949
+
950
+ ```python
951
+ import pulumi
952
+ import pulumi_gcp as gcp
953
+ import pulumi_std as std
954
+
955
+ pool = gcp.iam.WorkloadIdentityPool("pool", workload_identity_pool_id="example-pool")
956
+ example = gcp.iam.WorkloadIdentityPoolProvider("example",
957
+ workload_identity_pool_id=pool.workload_identity_pool_id,
958
+ workload_identity_pool_provider_id="example-prvdr",
959
+ display_name="Name of provider",
960
+ description="X.509 identity pool provider for automated test",
961
+ disabled=True,
962
+ attribute_mapping={
963
+ "google.subject": "assertion.subject.dn.cn",
964
+ },
965
+ x509={
966
+ "trust_store": {
967
+ "trust_anchors": [{
968
+ "pem_certificate": std.file(input="test-fixtures/trust_anchor.pem").result,
969
+ }],
970
+ "intermediate_cas": [{
971
+ "pem_certificate": std.file(input="test-fixtures/intermediate_ca.pem").result,
972
+ }],
973
+ },
974
+ })
975
+ ```
885
976
 
886
977
  ## Import
887
978
 
@@ -986,6 +1077,9 @@ class WorkloadIdentityPoolProvider(pulumi.CustomResource):
986
1077
 
987
1078
 
988
1079
  - - -
1080
+ :param pulumi.Input[Union['WorkloadIdentityPoolProviderX509Args', 'WorkloadIdentityPoolProviderX509ArgsDict']] x509: An X.509-type identity provider represents a CA. It is trusted to assert a
1081
+ client identity if the client has a certificate that chains up to this CA.
1082
+ Structure is documented below.
989
1083
  """
990
1084
  ...
991
1085
  @overload
@@ -1164,6 +1258,56 @@ class WorkloadIdentityPoolProvider(pulumi.CustomResource):
1164
1258
  "jwks_json": "{\\"keys\\":[{\\"kty\\":\\"RSA\\",\\"alg\\":\\"RS256\\",\\"kid\\":\\"sif0AR-F6MuvksAyAOv-Pds08Bcf2eUMlxE30NofddA\\",\\"use\\":\\"sig\\",\\"e\\":\\"AQAB\\",\\"n\\":\\"ylH1Chl1tpfti3lh51E1g5dPogzXDaQseqjsefGLknaNl5W6Wd4frBhHyE2t41Q5zgz_Ll0-NvWm0FlaG6brhrN9QZu6sJP1bM8WPfJVPgXOanxi7d7TXCkeNubGeiLTf5R3UXtS9Lm_guemU7MxDjDTelxnlgGCihOVTcL526suNJUdfXtpwUsvdU6_ZnAp9IpsuYjCtwPm9hPumlcZGMbxstdh07O4y4O90cVQClJOKSGQjAUCKJWXIQ0cqffGS_HuS_725CPzQ85SzYZzaNpgfhAER7kx_9P16ARM3BJz0PI5fe2hECE61J4GYU_BY43sxDfs7HyJpEXKLU9eWw\\"}]}",
1165
1259
  })
1166
1260
  ```
1261
+ ### Iam Workload Identity Pool Provider X509 Basic
1262
+
1263
+ ```python
1264
+ import pulumi
1265
+ import pulumi_gcp as gcp
1266
+ import pulumi_std as std
1267
+
1268
+ pool = gcp.iam.WorkloadIdentityPool("pool", workload_identity_pool_id="example-pool")
1269
+ example = gcp.iam.WorkloadIdentityPoolProvider("example",
1270
+ workload_identity_pool_id=pool.workload_identity_pool_id,
1271
+ workload_identity_pool_provider_id="example-prvdr",
1272
+ attribute_mapping={
1273
+ "google.subject": "assertion.subject.dn.cn",
1274
+ },
1275
+ x509={
1276
+ "trust_store": {
1277
+ "trust_anchors": [{
1278
+ "pem_certificate": std.file(input="test-fixtures/trust_anchor.pem").result,
1279
+ }],
1280
+ },
1281
+ })
1282
+ ```
1283
+ ### Iam Workload Identity Pool Provider X509 Full
1284
+
1285
+ ```python
1286
+ import pulumi
1287
+ import pulumi_gcp as gcp
1288
+ import pulumi_std as std
1289
+
1290
+ pool = gcp.iam.WorkloadIdentityPool("pool", workload_identity_pool_id="example-pool")
1291
+ example = gcp.iam.WorkloadIdentityPoolProvider("example",
1292
+ workload_identity_pool_id=pool.workload_identity_pool_id,
1293
+ workload_identity_pool_provider_id="example-prvdr",
1294
+ display_name="Name of provider",
1295
+ description="X.509 identity pool provider for automated test",
1296
+ disabled=True,
1297
+ attribute_mapping={
1298
+ "google.subject": "assertion.subject.dn.cn",
1299
+ },
1300
+ x509={
1301
+ "trust_store": {
1302
+ "trust_anchors": [{
1303
+ "pem_certificate": std.file(input="test-fixtures/trust_anchor.pem").result,
1304
+ }],
1305
+ "intermediate_cas": [{
1306
+ "pem_certificate": std.file(input="test-fixtures/intermediate_ca.pem").result,
1307
+ }],
1308
+ },
1309
+ })
1310
+ ```
1167
1311
 
1168
1312
  ## Import
1169
1313
 
@@ -1215,6 +1359,7 @@ class WorkloadIdentityPoolProvider(pulumi.CustomResource):
1215
1359
  saml: Optional[pulumi.Input[Union['WorkloadIdentityPoolProviderSamlArgs', 'WorkloadIdentityPoolProviderSamlArgsDict']]] = None,
1216
1360
  workload_identity_pool_id: Optional[pulumi.Input[str]] = None,
1217
1361
  workload_identity_pool_provider_id: Optional[pulumi.Input[str]] = None,
1362
+ x509: Optional[pulumi.Input[Union['WorkloadIdentityPoolProviderX509Args', 'WorkloadIdentityPoolProviderX509ArgsDict']]] = None,
1218
1363
  __props__=None):
1219
1364
  opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
1220
1365
  if not isinstance(opts, pulumi.ResourceOptions):
@@ -1239,6 +1384,7 @@ class WorkloadIdentityPoolProvider(pulumi.CustomResource):
1239
1384
  if workload_identity_pool_provider_id is None and not opts.urn:
1240
1385
  raise TypeError("Missing required property 'workload_identity_pool_provider_id'")
1241
1386
  __props__.__dict__["workload_identity_pool_provider_id"] = workload_identity_pool_provider_id
1387
+ __props__.__dict__["x509"] = x509
1242
1388
  __props__.__dict__["name"] = None
1243
1389
  __props__.__dict__["state"] = None
1244
1390
  super(WorkloadIdentityPoolProvider, __self__).__init__(
@@ -1263,7 +1409,8 @@ class WorkloadIdentityPoolProvider(pulumi.CustomResource):
1263
1409
  saml: Optional[pulumi.Input[Union['WorkloadIdentityPoolProviderSamlArgs', 'WorkloadIdentityPoolProviderSamlArgsDict']]] = None,
1264
1410
  state: Optional[pulumi.Input[str]] = None,
1265
1411
  workload_identity_pool_id: Optional[pulumi.Input[str]] = None,
1266
- workload_identity_pool_provider_id: Optional[pulumi.Input[str]] = None) -> 'WorkloadIdentityPoolProvider':
1412
+ workload_identity_pool_provider_id: Optional[pulumi.Input[str]] = None,
1413
+ x509: Optional[pulumi.Input[Union['WorkloadIdentityPoolProviderX509Args', 'WorkloadIdentityPoolProviderX509ArgsDict']]] = None) -> 'WorkloadIdentityPoolProvider':
1267
1414
  """
1268
1415
  Get an existing WorkloadIdentityPoolProvider resource's state with the given name, id, and optional extra
1269
1416
  properties used to qualify the lookup.
@@ -1357,6 +1504,9 @@ class WorkloadIdentityPoolProvider(pulumi.CustomResource):
1357
1504
 
1358
1505
 
1359
1506
  - - -
1507
+ :param pulumi.Input[Union['WorkloadIdentityPoolProviderX509Args', 'WorkloadIdentityPoolProviderX509ArgsDict']] x509: An X.509-type identity provider represents a CA. It is trusted to assert a
1508
+ client identity if the client has a certificate that chains up to this CA.
1509
+ Structure is documented below.
1360
1510
  """
1361
1511
  opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
1362
1512
 
@@ -1375,6 +1525,7 @@ class WorkloadIdentityPoolProvider(pulumi.CustomResource):
1375
1525
  __props__.__dict__["state"] = state
1376
1526
  __props__.__dict__["workload_identity_pool_id"] = workload_identity_pool_id
1377
1527
  __props__.__dict__["workload_identity_pool_provider_id"] = workload_identity_pool_provider_id
1528
+ __props__.__dict__["x509"] = x509
1378
1529
  return WorkloadIdentityPoolProvider(resource_name, opts=opts, __props__=__props__)
1379
1530
 
1380
1531
  @property
@@ -1554,3 +1705,13 @@ class WorkloadIdentityPoolProvider(pulumi.CustomResource):
1554
1705
  """
1555
1706
  return pulumi.get(self, "workload_identity_pool_provider_id")
1556
1707
 
1708
+ @property
1709
+ @pulumi.getter
1710
+ def x509(self) -> pulumi.Output[Optional['outputs.WorkloadIdentityPoolProviderX509']]:
1711
+ """
1712
+ An X.509-type identity provider represents a CA. It is trusted to assert a
1713
+ client identity if the client has a certificate that chains up to this CA.
1714
+ Structure is documented below.
1715
+ """
1716
+ return pulumi.get(self, "x509")
1717
+
@@ -16,6 +16,8 @@ from .ekm_connection_iam_binding import *
16
16
  from .ekm_connection_iam_member import *
17
17
  from .ekm_connection_iam_policy import *
18
18
  from .get_crypto_key_iam_policy import *
19
+ from .get_crypto_key_latest_version import *
20
+ from .get_crypto_key_versions import *
19
21
  from .get_crypto_keys import *
20
22
  from .get_ekm_connection_iam_policy import *
21
23
  from .get_key_ring_iam_policy import *
@@ -174,9 +174,13 @@ class AutokeyConfig(pulumi.CustomResource):
174
174
  wait_srv_acc_permissions = time.index.Sleep("wait_srv_acc_permissions", create_duration=10s,
175
175
  opts = pulumi.ResourceOptions(depends_on=[autokey_project_admin]))
176
176
  example_autokeyconfig = gcp.kms.AutokeyConfig("example-autokeyconfig",
177
- folder=autokms_folder.folder_id,
177
+ folder=autokms_folder.id,
178
178
  key_project=key_project.project_id.apply(lambda project_id: f"projects/{project_id}"),
179
179
  opts = pulumi.ResourceOptions(depends_on=[wait_srv_acc_permissions]))
180
+ # Wait delay after setting AutokeyConfig, to prevent diffs on reapply,
181
+ # because setting the config takes a little to fully propagate.
182
+ wait_autokey_propagation = time.index.Sleep("wait_autokey_propagation", create_duration=30s,
183
+ opts = pulumi.ResourceOptions(depends_on=[example_autokeyconfig]))
180
184
  ```
181
185
 
182
186
  ## Import
@@ -264,9 +268,13 @@ class AutokeyConfig(pulumi.CustomResource):
264
268
  wait_srv_acc_permissions = time.index.Sleep("wait_srv_acc_permissions", create_duration=10s,
265
269
  opts = pulumi.ResourceOptions(depends_on=[autokey_project_admin]))
266
270
  example_autokeyconfig = gcp.kms.AutokeyConfig("example-autokeyconfig",
267
- folder=autokms_folder.folder_id,
271
+ folder=autokms_folder.id,
268
272
  key_project=key_project.project_id.apply(lambda project_id: f"projects/{project_id}"),
269
273
  opts = pulumi.ResourceOptions(depends_on=[wait_srv_acc_permissions]))
274
+ # Wait delay after setting AutokeyConfig, to prevent diffs on reapply,
275
+ # because setting the config takes a little to fully propagate.
276
+ wait_autokey_propagation = time.index.Sleep("wait_autokey_propagation", create_duration=30s,
277
+ opts = pulumi.ResourceOptions(depends_on=[example_autokeyconfig]))
270
278
  ```
271
279
 
272
280
  ## Import
@@ -0,0 +1,222 @@
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
+ 'GetCryptoKeyLatestVersionResult',
20
+ 'AwaitableGetCryptoKeyLatestVersionResult',
21
+ 'get_crypto_key_latest_version',
22
+ 'get_crypto_key_latest_version_output',
23
+ ]
24
+
25
+ @pulumi.output_type
26
+ class GetCryptoKeyLatestVersionResult:
27
+ """
28
+ A collection of values returned by getCryptoKeyLatestVersion.
29
+ """
30
+ def __init__(__self__, algorithm=None, crypto_key=None, filter=None, id=None, name=None, protection_level=None, public_keys=None, state=None, version=None):
31
+ if algorithm and not isinstance(algorithm, str):
32
+ raise TypeError("Expected argument 'algorithm' to be a str")
33
+ pulumi.set(__self__, "algorithm", algorithm)
34
+ if crypto_key and not isinstance(crypto_key, str):
35
+ raise TypeError("Expected argument 'crypto_key' to be a str")
36
+ pulumi.set(__self__, "crypto_key", crypto_key)
37
+ if filter and not isinstance(filter, str):
38
+ raise TypeError("Expected argument 'filter' to be a str")
39
+ pulumi.set(__self__, "filter", filter)
40
+ if id and not isinstance(id, str):
41
+ raise TypeError("Expected argument 'id' to be a str")
42
+ pulumi.set(__self__, "id", id)
43
+ if name and not isinstance(name, str):
44
+ raise TypeError("Expected argument 'name' to be a str")
45
+ pulumi.set(__self__, "name", name)
46
+ if protection_level and not isinstance(protection_level, str):
47
+ raise TypeError("Expected argument 'protection_level' to be a str")
48
+ pulumi.set(__self__, "protection_level", protection_level)
49
+ if public_keys and not isinstance(public_keys, list):
50
+ raise TypeError("Expected argument 'public_keys' to be a list")
51
+ pulumi.set(__self__, "public_keys", public_keys)
52
+ if state and not isinstance(state, str):
53
+ raise TypeError("Expected argument 'state' to be a str")
54
+ pulumi.set(__self__, "state", state)
55
+ if version and not isinstance(version, int):
56
+ raise TypeError("Expected argument 'version' to be a int")
57
+ pulumi.set(__self__, "version", version)
58
+
59
+ @property
60
+ @pulumi.getter
61
+ def algorithm(self) -> str:
62
+ """
63
+ The CryptoKeyVersionAlgorithm that this CryptoKeyVersion supports.
64
+ """
65
+ return pulumi.get(self, "algorithm")
66
+
67
+ @property
68
+ @pulumi.getter(name="cryptoKey")
69
+ def crypto_key(self) -> str:
70
+ return pulumi.get(self, "crypto_key")
71
+
72
+ @property
73
+ @pulumi.getter
74
+ def filter(self) -> Optional[str]:
75
+ return pulumi.get(self, "filter")
76
+
77
+ @property
78
+ @pulumi.getter
79
+ def id(self) -> str:
80
+ """
81
+ The provider-assigned unique ID for this managed resource.
82
+ """
83
+ return pulumi.get(self, "id")
84
+
85
+ @property
86
+ @pulumi.getter
87
+ def name(self) -> str:
88
+ return pulumi.get(self, "name")
89
+
90
+ @property
91
+ @pulumi.getter(name="protectionLevel")
92
+ def protection_level(self) -> str:
93
+ """
94
+ The ProtectionLevel describing how crypto operations are performed with this CryptoKeyVersion. See the [protection_level reference](https://cloud.google.com/kms/docs/reference/rest/v1/ProtectionLevel) for possible outputs.
95
+ """
96
+ return pulumi.get(self, "protection_level")
97
+
98
+ @property
99
+ @pulumi.getter(name="publicKeys")
100
+ def public_keys(self) -> Sequence['outputs.GetCryptoKeyLatestVersionPublicKeyResult']:
101
+ """
102
+ If the enclosing CryptoKey has purpose `ASYMMETRIC_SIGN` or `ASYMMETRIC_DECRYPT`, this block contains details about the public key associated to this CryptoKeyVersion. Structure is documented below.
103
+ """
104
+ return pulumi.get(self, "public_keys")
105
+
106
+ @property
107
+ @pulumi.getter
108
+ def state(self) -> str:
109
+ """
110
+ The current state of the latest CryptoKeyVersion. See the [state reference](https://cloud.google.com/kms/docs/reference/rest/v1/projects.locations.keyRings.cryptoKeys.cryptoKeyVersions#CryptoKeyVersion.CryptoKeyVersionState) for possible outputs.
111
+ """
112
+ return pulumi.get(self, "state")
113
+
114
+ @property
115
+ @pulumi.getter
116
+ def version(self) -> int:
117
+ return pulumi.get(self, "version")
118
+
119
+
120
+ class AwaitableGetCryptoKeyLatestVersionResult(GetCryptoKeyLatestVersionResult):
121
+ # pylint: disable=using-constant-test
122
+ def __await__(self):
123
+ if False:
124
+ yield self
125
+ return GetCryptoKeyLatestVersionResult(
126
+ algorithm=self.algorithm,
127
+ crypto_key=self.crypto_key,
128
+ filter=self.filter,
129
+ id=self.id,
130
+ name=self.name,
131
+ protection_level=self.protection_level,
132
+ public_keys=self.public_keys,
133
+ state=self.state,
134
+ version=self.version)
135
+
136
+
137
+ def get_crypto_key_latest_version(crypto_key: Optional[str] = None,
138
+ filter: Optional[str] = None,
139
+ opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetCryptoKeyLatestVersionResult:
140
+ """
141
+ Provides access to the latest Google Cloud Platform KMS CryptoKeyVersion in a CryptoKey. For more information see
142
+ [the official documentation](https://cloud.google.com/kms/docs/object-hierarchy#key_version)
143
+ and
144
+ [API](https://cloud.google.com/kms/docs/reference/rest/v1/projects.locations.keyRings.cryptoKeys.cryptoKeyVersions).
145
+
146
+ ## Example Usage
147
+
148
+ ```python
149
+ import pulumi
150
+ import pulumi_gcp as gcp
151
+
152
+ my_key_ring = gcp.kms.get_kms_key_ring(name="my-key-ring",
153
+ location="us-central1")
154
+ my_crypto_key = gcp.kms.get_kms_crypto_key(name="my-crypto-key",
155
+ key_ring=my_key_ring.id)
156
+ my_crypto_key_latest_version = gcp.kms.get_crypto_key_latest_version(crypto_key=my_key["id"])
157
+ ```
158
+
159
+
160
+ :param str crypto_key: The `id` of the Google Cloud Platform CryptoKey to which the key version belongs. This is also the `id` field of the
161
+ `kms.CryptoKey` resource/datasource.
162
+ :param str filter: The filter argument is used to add a filter query parameter that limits which type of cryptoKeyVersion is retrieved as the latest by the data source: ?filter={{filter}}. When no value is provided there is no filtering.
163
+
164
+ Example filter values if filtering on state.
165
+
166
+ * `"state:ENABLED"` will retrieve the latest cryptoKeyVersion that has the state "ENABLED".
167
+
168
+ [See the documentation about using filters](https://cloud.google.com/kms/docs/sorting-and-filtering)
169
+ """
170
+ __args__ = dict()
171
+ __args__['cryptoKey'] = crypto_key
172
+ __args__['filter'] = filter
173
+ opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts)
174
+ __ret__ = pulumi.runtime.invoke('gcp:kms/getCryptoKeyLatestVersion:getCryptoKeyLatestVersion', __args__, opts=opts, typ=GetCryptoKeyLatestVersionResult).value
175
+
176
+ return AwaitableGetCryptoKeyLatestVersionResult(
177
+ algorithm=pulumi.get(__ret__, 'algorithm'),
178
+ crypto_key=pulumi.get(__ret__, 'crypto_key'),
179
+ filter=pulumi.get(__ret__, 'filter'),
180
+ id=pulumi.get(__ret__, 'id'),
181
+ name=pulumi.get(__ret__, 'name'),
182
+ protection_level=pulumi.get(__ret__, 'protection_level'),
183
+ public_keys=pulumi.get(__ret__, 'public_keys'),
184
+ state=pulumi.get(__ret__, 'state'),
185
+ version=pulumi.get(__ret__, 'version'))
186
+
187
+
188
+ @_utilities.lift_output_func(get_crypto_key_latest_version)
189
+ def get_crypto_key_latest_version_output(crypto_key: Optional[pulumi.Input[str]] = None,
190
+ filter: Optional[pulumi.Input[Optional[str]]] = None,
191
+ opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetCryptoKeyLatestVersionResult]:
192
+ """
193
+ Provides access to the latest Google Cloud Platform KMS CryptoKeyVersion in a CryptoKey. For more information see
194
+ [the official documentation](https://cloud.google.com/kms/docs/object-hierarchy#key_version)
195
+ and
196
+ [API](https://cloud.google.com/kms/docs/reference/rest/v1/projects.locations.keyRings.cryptoKeys.cryptoKeyVersions).
197
+
198
+ ## Example Usage
199
+
200
+ ```python
201
+ import pulumi
202
+ import pulumi_gcp as gcp
203
+
204
+ my_key_ring = gcp.kms.get_kms_key_ring(name="my-key-ring",
205
+ location="us-central1")
206
+ my_crypto_key = gcp.kms.get_kms_crypto_key(name="my-crypto-key",
207
+ key_ring=my_key_ring.id)
208
+ my_crypto_key_latest_version = gcp.kms.get_crypto_key_latest_version(crypto_key=my_key["id"])
209
+ ```
210
+
211
+
212
+ :param str crypto_key: The `id` of the Google Cloud Platform CryptoKey to which the key version belongs. This is also the `id` field of the
213
+ `kms.CryptoKey` resource/datasource.
214
+ :param str filter: The filter argument is used to add a filter query parameter that limits which type of cryptoKeyVersion is retrieved as the latest by the data source: ?filter={{filter}}. When no value is provided there is no filtering.
215
+
216
+ Example filter values if filtering on state.
217
+
218
+ * `"state:ENABLED"` will retrieve the latest cryptoKeyVersion that has the state "ENABLED".
219
+
220
+ [See the documentation about using filters](https://cloud.google.com/kms/docs/sorting-and-filtering)
221
+ """
222
+ ...