pulumi-gcp 8.1.0a1726293903__py3-none-any.whl → 8.2.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 (128) hide show
  1. pulumi_gcp/__init__.py +62 -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/__init__.py +1 -0
  9. pulumi_gcp/bigquery/_inputs.py +33 -0
  10. pulumi_gcp/bigquery/data_transfer_config.py +134 -6
  11. pulumi_gcp/bigquery/get_tables.py +143 -0
  12. pulumi_gcp/bigquery/outputs.py +66 -0
  13. pulumi_gcp/bigqueryanalyticshub/_inputs.py +169 -7
  14. pulumi_gcp/bigqueryanalyticshub/data_exchange.py +96 -3
  15. pulumi_gcp/bigqueryanalyticshub/listing.py +114 -0
  16. pulumi_gcp/bigqueryanalyticshub/outputs.py +138 -5
  17. pulumi_gcp/bigtable/_inputs.py +21 -1
  18. pulumi_gcp/bigtable/outputs.py +13 -1
  19. pulumi_gcp/bigtable/table.py +34 -0
  20. pulumi_gcp/certificateauthority/authority.py +14 -7
  21. pulumi_gcp/certificatemanager/__init__.py +1 -0
  22. pulumi_gcp/certificatemanager/certificate.py +28 -0
  23. pulumi_gcp/certificatemanager/get_certificates.py +150 -0
  24. pulumi_gcp/certificatemanager/outputs.py +322 -0
  25. pulumi_gcp/cloudbuild/_inputs.py +6 -6
  26. pulumi_gcp/cloudbuild/outputs.py +4 -4
  27. pulumi_gcp/cloudrun/_inputs.py +6 -12
  28. pulumi_gcp/cloudrun/outputs.py +8 -16
  29. pulumi_gcp/cloudrunv2/_inputs.py +72 -15
  30. pulumi_gcp/cloudrunv2/outputs.py +82 -16
  31. pulumi_gcp/cloudrunv2/service.py +50 -4
  32. pulumi_gcp/cloudtasks/_inputs.py +630 -0
  33. pulumi_gcp/cloudtasks/outputs.py +479 -0
  34. pulumi_gcp/cloudtasks/queue.py +238 -0
  35. pulumi_gcp/compute/__init__.py +1 -0
  36. pulumi_gcp/compute/_inputs.py +2300 -257
  37. pulumi_gcp/compute/get_instance.py +4 -1
  38. pulumi_gcp/compute/health_check.py +114 -0
  39. pulumi_gcp/compute/instance.py +86 -4
  40. pulumi_gcp/compute/instance_template.py +66 -0
  41. pulumi_gcp/compute/interconnect.py +28 -21
  42. pulumi_gcp/compute/network_firewall_policy_with_rules.py +826 -0
  43. pulumi_gcp/compute/node_template.py +93 -0
  44. pulumi_gcp/compute/outputs.py +1491 -6
  45. pulumi_gcp/compute/region_target_http_proxy.py +159 -0
  46. pulumi_gcp/compute/region_target_https_proxy.py +175 -0
  47. pulumi_gcp/compute/service_attachment.py +75 -0
  48. pulumi_gcp/compute/target_http_proxy.py +49 -28
  49. pulumi_gcp/compute/target_https_proxy.py +77 -28
  50. pulumi_gcp/config/__init__.pyi +4 -0
  51. pulumi_gcp/config/vars.py +8 -0
  52. pulumi_gcp/container/_inputs.py +236 -3
  53. pulumi_gcp/container/attached_cluster.py +61 -8
  54. pulumi_gcp/container/outputs.py +276 -2
  55. pulumi_gcp/databasemigrationservice/_inputs.py +176 -148
  56. pulumi_gcp/databasemigrationservice/connection_profile.py +206 -0
  57. pulumi_gcp/databasemigrationservice/outputs.py +109 -87
  58. pulumi_gcp/dataloss/_inputs.py +353 -1
  59. pulumi_gcp/dataloss/outputs.py +274 -3
  60. pulumi_gcp/dataproc/_inputs.py +27 -27
  61. pulumi_gcp/dataproc/metastore_federation.py +8 -8
  62. pulumi_gcp/dataproc/metastore_service.py +2 -0
  63. pulumi_gcp/dataproc/outputs.py +18 -18
  64. pulumi_gcp/datastream/_inputs.py +69 -1
  65. pulumi_gcp/datastream/outputs.py +44 -2
  66. pulumi_gcp/datastream/stream.py +201 -7
  67. pulumi_gcp/developerconnect/__init__.py +11 -0
  68. pulumi_gcp/developerconnect/_inputs.py +301 -0
  69. pulumi_gcp/developerconnect/connection.py +1034 -0
  70. pulumi_gcp/developerconnect/git_repository_link.py +873 -0
  71. pulumi_gcp/developerconnect/outputs.py +247 -0
  72. pulumi_gcp/discoveryengine/_inputs.py +188 -0
  73. pulumi_gcp/discoveryengine/data_store.py +14 -14
  74. pulumi_gcp/discoveryengine/outputs.py +153 -1
  75. pulumi_gcp/firebase/database_instance.py +7 -7
  76. pulumi_gcp/gkehub/_inputs.py +25 -1
  77. pulumi_gcp/gkehub/feature_membership.py +12 -6
  78. pulumi_gcp/gkehub/outputs.py +17 -1
  79. pulumi_gcp/gkeonprem/_inputs.py +3 -3
  80. pulumi_gcp/gkeonprem/outputs.py +2 -2
  81. pulumi_gcp/iam/_inputs.py +196 -0
  82. pulumi_gcp/iam/get_workload_identity_pool_provider.py +13 -3
  83. pulumi_gcp/iam/outputs.py +295 -0
  84. pulumi_gcp/iam/workload_identity_pool_provider.py +164 -3
  85. pulumi_gcp/kms/__init__.py +2 -0
  86. pulumi_gcp/kms/autokey_config.py +10 -2
  87. pulumi_gcp/kms/get_crypto_key_latest_version.py +222 -0
  88. pulumi_gcp/kms/get_crypto_key_versions.py +175 -0
  89. pulumi_gcp/kms/outputs.py +164 -0
  90. pulumi_gcp/memorystore/__init__.py +10 -0
  91. pulumi_gcp/memorystore/_inputs.py +731 -0
  92. pulumi_gcp/memorystore/instance.py +1663 -0
  93. pulumi_gcp/memorystore/outputs.py +598 -0
  94. pulumi_gcp/netapp/active_directory.py +6 -6
  95. pulumi_gcp/netapp/backup.py +6 -6
  96. pulumi_gcp/netapp/backup_policy.py +6 -6
  97. pulumi_gcp/netapp/backup_vault.py +6 -6
  98. pulumi_gcp/netapp/storage_pool.py +4 -4
  99. pulumi_gcp/netapp/volume.py +108 -0
  100. pulumi_gcp/networkconnectivity/_inputs.py +21 -1
  101. pulumi_gcp/networkconnectivity/outputs.py +15 -1
  102. pulumi_gcp/networkconnectivity/spoke.py +8 -0
  103. pulumi_gcp/networksecurity/client_tls_policy.py +24 -22
  104. pulumi_gcp/networksecurity/server_tls_policy.py +20 -32
  105. pulumi_gcp/organizations/folder.py +52 -33
  106. pulumi_gcp/organizations/get_project.py +13 -3
  107. pulumi_gcp/organizations/project.py +88 -3
  108. pulumi_gcp/parallelstore/instance.py +121 -121
  109. pulumi_gcp/projects/iam_member_remove.py +26 -0
  110. pulumi_gcp/projects/usage_export_bucket.py +38 -0
  111. pulumi_gcp/provider.py +40 -0
  112. pulumi_gcp/pubsub/_inputs.py +40 -0
  113. pulumi_gcp/pubsub/outputs.py +51 -1
  114. pulumi_gcp/pubsub/subscription.py +6 -0
  115. pulumi_gcp/pulumi-plugin.json +1 -1
  116. pulumi_gcp/redis/_inputs.py +419 -0
  117. pulumi_gcp/redis/cluster.py +123 -0
  118. pulumi_gcp/redis/outputs.py +315 -0
  119. pulumi_gcp/securitycenter/__init__.py +2 -0
  120. pulumi_gcp/securitycenter/v2_folder_scc_big_query_export.py +857 -0
  121. pulumi_gcp/securitycenter/v2_organization_scc_big_query_exports.py +4 -4
  122. pulumi_gcp/securitycenter/v2_project_mute_config.py +2 -2
  123. pulumi_gcp/securitycenter/v2_project_scc_big_query_export.py +796 -0
  124. pulumi_gcp/vpcaccess/connector.py +21 -28
  125. {pulumi_gcp-8.1.0a1726293903.dist-info → pulumi_gcp-8.2.0.dist-info}/METADATA +1 -1
  126. {pulumi_gcp-8.1.0a1726293903.dist-info → pulumi_gcp-8.2.0.dist-info}/RECORD +128 -111
  127. {pulumi_gcp-8.1.0a1726293903.dist-info → pulumi_gcp-8.2.0.dist-info}/WHEEL +1 -1
  128. {pulumi_gcp-8.1.0a1726293903.dist-info → pulumi_gcp-8.2.0.dist-info}/top_level.txt +0 -0
pulumi_gcp/iam/outputs.py CHANGED
@@ -36,10 +36,18 @@ __all__ = [
36
36
  'WorkloadIdentityPoolProviderAws',
37
37
  'WorkloadIdentityPoolProviderOidc',
38
38
  'WorkloadIdentityPoolProviderSaml',
39
+ 'WorkloadIdentityPoolProviderX509',
40
+ 'WorkloadIdentityPoolProviderX509TrustStore',
41
+ 'WorkloadIdentityPoolProviderX509TrustStoreIntermediateCa',
42
+ 'WorkloadIdentityPoolProviderX509TrustStoreTrustAnchor',
39
43
  'GetTestablePermissionsPermissionResult',
40
44
  'GetWorkloadIdentityPoolProviderAwResult',
41
45
  'GetWorkloadIdentityPoolProviderOidcResult',
42
46
  'GetWorkloadIdentityPoolProviderSamlResult',
47
+ 'GetWorkloadIdentityPoolProviderX509Result',
48
+ 'GetWorkloadIdentityPoolProviderX509TrustStoreResult',
49
+ 'GetWorkloadIdentityPoolProviderX509TrustStoreIntermediateCaResult',
50
+ 'GetWorkloadIdentityPoolProviderX509TrustStoreTrustAnchorResult',
43
51
  ]
44
52
 
45
53
  @pulumi.output_type
@@ -1238,6 +1246,8 @@ class WorkloadIdentityPoolProviderSaml(dict):
1238
1246
  idp_metadata_xml: str):
1239
1247
  """
1240
1248
  :param str idp_metadata_xml: SAML Identity provider configuration metadata xml doc.
1249
+
1250
+ <a name="nested_x509"></a>The `x509` block supports:
1241
1251
  """
1242
1252
  pulumi.set(__self__, "idp_metadata_xml", idp_metadata_xml)
1243
1253
 
@@ -1246,10 +1256,192 @@ class WorkloadIdentityPoolProviderSaml(dict):
1246
1256
  def idp_metadata_xml(self) -> str:
1247
1257
  """
1248
1258
  SAML Identity provider configuration metadata xml doc.
1259
+
1260
+ <a name="nested_x509"></a>The `x509` block supports:
1249
1261
  """
1250
1262
  return pulumi.get(self, "idp_metadata_xml")
1251
1263
 
1252
1264
 
1265
+ @pulumi.output_type
1266
+ class WorkloadIdentityPoolProviderX509(dict):
1267
+ @staticmethod
1268
+ def __key_warning(key: str):
1269
+ suggest = None
1270
+ if key == "trustStore":
1271
+ suggest = "trust_store"
1272
+
1273
+ if suggest:
1274
+ pulumi.log.warn(f"Key '{key}' not found in WorkloadIdentityPoolProviderX509. Access the value via the '{suggest}' property getter instead.")
1275
+
1276
+ def __getitem__(self, key: str) -> Any:
1277
+ WorkloadIdentityPoolProviderX509.__key_warning(key)
1278
+ return super().__getitem__(key)
1279
+
1280
+ def get(self, key: str, default = None) -> Any:
1281
+ WorkloadIdentityPoolProviderX509.__key_warning(key)
1282
+ return super().get(key, default)
1283
+
1284
+ def __init__(__self__, *,
1285
+ trust_store: 'outputs.WorkloadIdentityPoolProviderX509TrustStore'):
1286
+ """
1287
+ :param 'WorkloadIdentityPoolProviderX509TrustStoreArgs' trust_store: A Trust store, use this trust store as a wrapper to config the trust
1288
+ anchor and optional intermediate cas to help build the trust chain for
1289
+ the incoming end entity certificate. Follow the x509 guidelines to
1290
+ define those PEM encoded certs. Only 1 trust store is currently
1291
+ supported.
1292
+ """
1293
+ pulumi.set(__self__, "trust_store", trust_store)
1294
+
1295
+ @property
1296
+ @pulumi.getter(name="trustStore")
1297
+ def trust_store(self) -> 'outputs.WorkloadIdentityPoolProviderX509TrustStore':
1298
+ """
1299
+ A Trust store, use this trust store as a wrapper to config the trust
1300
+ anchor and optional intermediate cas to help build the trust chain for
1301
+ the incoming end entity certificate. Follow the x509 guidelines to
1302
+ define those PEM encoded certs. Only 1 trust store is currently
1303
+ supported.
1304
+ """
1305
+ return pulumi.get(self, "trust_store")
1306
+
1307
+
1308
+ @pulumi.output_type
1309
+ class WorkloadIdentityPoolProviderX509TrustStore(dict):
1310
+ @staticmethod
1311
+ def __key_warning(key: str):
1312
+ suggest = None
1313
+ if key == "trustAnchors":
1314
+ suggest = "trust_anchors"
1315
+ elif key == "intermediateCas":
1316
+ suggest = "intermediate_cas"
1317
+
1318
+ if suggest:
1319
+ pulumi.log.warn(f"Key '{key}' not found in WorkloadIdentityPoolProviderX509TrustStore. Access the value via the '{suggest}' property getter instead.")
1320
+
1321
+ def __getitem__(self, key: str) -> Any:
1322
+ WorkloadIdentityPoolProviderX509TrustStore.__key_warning(key)
1323
+ return super().__getitem__(key)
1324
+
1325
+ def get(self, key: str, default = None) -> Any:
1326
+ WorkloadIdentityPoolProviderX509TrustStore.__key_warning(key)
1327
+ return super().get(key, default)
1328
+
1329
+ def __init__(__self__, *,
1330
+ trust_anchors: Sequence['outputs.WorkloadIdentityPoolProviderX509TrustStoreTrustAnchor'],
1331
+ intermediate_cas: Optional[Sequence['outputs.WorkloadIdentityPoolProviderX509TrustStoreIntermediateCa']] = None):
1332
+ """
1333
+ :param Sequence['WorkloadIdentityPoolProviderX509TrustStoreTrustAnchorArgs'] trust_anchors: List of Trust Anchors to be used while performing validation
1334
+ against a given TrustStore. The incoming end entity's certificate
1335
+ must be chained up to one of the trust anchors here.
1336
+ Structure is documented below.
1337
+ :param Sequence['WorkloadIdentityPoolProviderX509TrustStoreIntermediateCaArgs'] intermediate_cas: Set of intermediate CA certificates used for building the trust chain to
1338
+ trust anchor.
1339
+ IMPORTANT: Intermediate CAs are only supported when configuring x509 federation.
1340
+ Structure is documented below.
1341
+ """
1342
+ pulumi.set(__self__, "trust_anchors", trust_anchors)
1343
+ if intermediate_cas is not None:
1344
+ pulumi.set(__self__, "intermediate_cas", intermediate_cas)
1345
+
1346
+ @property
1347
+ @pulumi.getter(name="trustAnchors")
1348
+ def trust_anchors(self) -> Sequence['outputs.WorkloadIdentityPoolProviderX509TrustStoreTrustAnchor']:
1349
+ """
1350
+ List of Trust Anchors to be used while performing validation
1351
+ against a given TrustStore. The incoming end entity's certificate
1352
+ must be chained up to one of the trust anchors here.
1353
+ Structure is documented below.
1354
+ """
1355
+ return pulumi.get(self, "trust_anchors")
1356
+
1357
+ @property
1358
+ @pulumi.getter(name="intermediateCas")
1359
+ def intermediate_cas(self) -> Optional[Sequence['outputs.WorkloadIdentityPoolProviderX509TrustStoreIntermediateCa']]:
1360
+ """
1361
+ Set of intermediate CA certificates used for building the trust chain to
1362
+ trust anchor.
1363
+ IMPORTANT: Intermediate CAs are only supported when configuring x509 federation.
1364
+ Structure is documented below.
1365
+ """
1366
+ return pulumi.get(self, "intermediate_cas")
1367
+
1368
+
1369
+ @pulumi.output_type
1370
+ class WorkloadIdentityPoolProviderX509TrustStoreIntermediateCa(dict):
1371
+ @staticmethod
1372
+ def __key_warning(key: str):
1373
+ suggest = None
1374
+ if key == "pemCertificate":
1375
+ suggest = "pem_certificate"
1376
+
1377
+ if suggest:
1378
+ pulumi.log.warn(f"Key '{key}' not found in WorkloadIdentityPoolProviderX509TrustStoreIntermediateCa. Access the value via the '{suggest}' property getter instead.")
1379
+
1380
+ def __getitem__(self, key: str) -> Any:
1381
+ WorkloadIdentityPoolProviderX509TrustStoreIntermediateCa.__key_warning(key)
1382
+ return super().__getitem__(key)
1383
+
1384
+ def get(self, key: str, default = None) -> Any:
1385
+ WorkloadIdentityPoolProviderX509TrustStoreIntermediateCa.__key_warning(key)
1386
+ return super().get(key, default)
1387
+
1388
+ def __init__(__self__, *,
1389
+ pem_certificate: Optional[str] = None):
1390
+ """
1391
+ :param str pem_certificate: PEM certificate of the PKI used for validation. Must only contain one
1392
+ ca certificate(either root or intermediate cert).
1393
+ """
1394
+ if pem_certificate is not None:
1395
+ pulumi.set(__self__, "pem_certificate", pem_certificate)
1396
+
1397
+ @property
1398
+ @pulumi.getter(name="pemCertificate")
1399
+ def pem_certificate(self) -> Optional[str]:
1400
+ """
1401
+ PEM certificate of the PKI used for validation. Must only contain one
1402
+ ca certificate(either root or intermediate cert).
1403
+ """
1404
+ return pulumi.get(self, "pem_certificate")
1405
+
1406
+
1407
+ @pulumi.output_type
1408
+ class WorkloadIdentityPoolProviderX509TrustStoreTrustAnchor(dict):
1409
+ @staticmethod
1410
+ def __key_warning(key: str):
1411
+ suggest = None
1412
+ if key == "pemCertificate":
1413
+ suggest = "pem_certificate"
1414
+
1415
+ if suggest:
1416
+ pulumi.log.warn(f"Key '{key}' not found in WorkloadIdentityPoolProviderX509TrustStoreTrustAnchor. Access the value via the '{suggest}' property getter instead.")
1417
+
1418
+ def __getitem__(self, key: str) -> Any:
1419
+ WorkloadIdentityPoolProviderX509TrustStoreTrustAnchor.__key_warning(key)
1420
+ return super().__getitem__(key)
1421
+
1422
+ def get(self, key: str, default = None) -> Any:
1423
+ WorkloadIdentityPoolProviderX509TrustStoreTrustAnchor.__key_warning(key)
1424
+ return super().get(key, default)
1425
+
1426
+ def __init__(__self__, *,
1427
+ pem_certificate: Optional[str] = None):
1428
+ """
1429
+ :param str pem_certificate: PEM certificate of the PKI used for validation. Must only contain one
1430
+ ca certificate(either root or intermediate cert).
1431
+ """
1432
+ if pem_certificate is not None:
1433
+ pulumi.set(__self__, "pem_certificate", pem_certificate)
1434
+
1435
+ @property
1436
+ @pulumi.getter(name="pemCertificate")
1437
+ def pem_certificate(self) -> Optional[str]:
1438
+ """
1439
+ PEM certificate of the PKI used for validation. Must only contain one
1440
+ ca certificate(either root or intermediate cert).
1441
+ """
1442
+ return pulumi.get(self, "pem_certificate")
1443
+
1444
+
1253
1445
  @pulumi.output_type
1254
1446
  class GetTestablePermissionsPermissionResult(dict):
1255
1447
  def __init__(__self__, *,
@@ -1454,3 +1646,106 @@ class GetWorkloadIdentityPoolProviderSamlResult(dict):
1454
1646
  return pulumi.get(self, "idp_metadata_xml")
1455
1647
 
1456
1648
 
1649
+ @pulumi.output_type
1650
+ class GetWorkloadIdentityPoolProviderX509Result(dict):
1651
+ def __init__(__self__, *,
1652
+ trust_stores: Sequence['outputs.GetWorkloadIdentityPoolProviderX509TrustStoreResult']):
1653
+ """
1654
+ :param Sequence['GetWorkloadIdentityPoolProviderX509TrustStoreArgs'] trust_stores: A Trust store, use this trust store as a wrapper to config the trust
1655
+ anchor and optional intermediate cas to help build the trust chain for
1656
+ the incoming end entity certificate. Follow the x509 guidelines to
1657
+ define those PEM encoded certs. Only 1 trust store is currently
1658
+ supported.
1659
+ """
1660
+ pulumi.set(__self__, "trust_stores", trust_stores)
1661
+
1662
+ @property
1663
+ @pulumi.getter(name="trustStores")
1664
+ def trust_stores(self) -> Sequence['outputs.GetWorkloadIdentityPoolProviderX509TrustStoreResult']:
1665
+ """
1666
+ A Trust store, use this trust store as a wrapper to config the trust
1667
+ anchor and optional intermediate cas to help build the trust chain for
1668
+ the incoming end entity certificate. Follow the x509 guidelines to
1669
+ define those PEM encoded certs. Only 1 trust store is currently
1670
+ supported.
1671
+ """
1672
+ return pulumi.get(self, "trust_stores")
1673
+
1674
+
1675
+ @pulumi.output_type
1676
+ class GetWorkloadIdentityPoolProviderX509TrustStoreResult(dict):
1677
+ def __init__(__self__, *,
1678
+ intermediate_cas: Sequence['outputs.GetWorkloadIdentityPoolProviderX509TrustStoreIntermediateCaResult'],
1679
+ trust_anchors: Sequence['outputs.GetWorkloadIdentityPoolProviderX509TrustStoreTrustAnchorResult']):
1680
+ """
1681
+ :param Sequence['GetWorkloadIdentityPoolProviderX509TrustStoreIntermediateCaArgs'] intermediate_cas: Set of intermediate CA certificates used for building the trust chain to
1682
+ trust anchor.
1683
+ IMPORTANT: Intermediate CAs are only supported when configuring x509 federation.
1684
+ :param Sequence['GetWorkloadIdentityPoolProviderX509TrustStoreTrustAnchorArgs'] trust_anchors: List of Trust Anchors to be used while performing validation
1685
+ against a given TrustStore. The incoming end entity's certificate
1686
+ must be chained up to one of the trust anchors here.
1687
+ """
1688
+ pulumi.set(__self__, "intermediate_cas", intermediate_cas)
1689
+ pulumi.set(__self__, "trust_anchors", trust_anchors)
1690
+
1691
+ @property
1692
+ @pulumi.getter(name="intermediateCas")
1693
+ def intermediate_cas(self) -> Sequence['outputs.GetWorkloadIdentityPoolProviderX509TrustStoreIntermediateCaResult']:
1694
+ """
1695
+ Set of intermediate CA certificates used for building the trust chain to
1696
+ trust anchor.
1697
+ IMPORTANT: Intermediate CAs are only supported when configuring x509 federation.
1698
+ """
1699
+ return pulumi.get(self, "intermediate_cas")
1700
+
1701
+ @property
1702
+ @pulumi.getter(name="trustAnchors")
1703
+ def trust_anchors(self) -> Sequence['outputs.GetWorkloadIdentityPoolProviderX509TrustStoreTrustAnchorResult']:
1704
+ """
1705
+ List of Trust Anchors to be used while performing validation
1706
+ against a given TrustStore. The incoming end entity's certificate
1707
+ must be chained up to one of the trust anchors here.
1708
+ """
1709
+ return pulumi.get(self, "trust_anchors")
1710
+
1711
+
1712
+ @pulumi.output_type
1713
+ class GetWorkloadIdentityPoolProviderX509TrustStoreIntermediateCaResult(dict):
1714
+ def __init__(__self__, *,
1715
+ pem_certificate: str):
1716
+ """
1717
+ :param str pem_certificate: PEM certificate of the PKI used for validation. Must only contain one
1718
+ ca certificate(either root or intermediate cert).
1719
+ """
1720
+ pulumi.set(__self__, "pem_certificate", pem_certificate)
1721
+
1722
+ @property
1723
+ @pulumi.getter(name="pemCertificate")
1724
+ def pem_certificate(self) -> str:
1725
+ """
1726
+ PEM certificate of the PKI used for validation. Must only contain one
1727
+ ca certificate(either root or intermediate cert).
1728
+ """
1729
+ return pulumi.get(self, "pem_certificate")
1730
+
1731
+
1732
+ @pulumi.output_type
1733
+ class GetWorkloadIdentityPoolProviderX509TrustStoreTrustAnchorResult(dict):
1734
+ def __init__(__self__, *,
1735
+ pem_certificate: str):
1736
+ """
1737
+ :param str pem_certificate: PEM certificate of the PKI used for validation. Must only contain one
1738
+ ca certificate(either root or intermediate cert).
1739
+ """
1740
+ pulumi.set(__self__, "pem_certificate", pem_certificate)
1741
+
1742
+ @property
1743
+ @pulumi.getter(name="pemCertificate")
1744
+ def pem_certificate(self) -> str:
1745
+ """
1746
+ PEM certificate of the PKI used for validation. Must only contain one
1747
+ ca certificate(either root or intermediate cert).
1748
+ """
1749
+ return pulumi.get(self, "pem_certificate")
1750
+
1751
+
@@ -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