pulumi-gcp 8.32.0a1747459264__py3-none-any.whl → 8.32.1__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 +88 -0
- pulumi_gcp/accesscontextmanager/authorized_orgs_desc.py +2 -2
- pulumi_gcp/apigateway/api_config_iam_binding.py +13 -0
- pulumi_gcp/apigateway/api_config_iam_member.py +13 -0
- pulumi_gcp/apigateway/api_config_iam_policy.py +13 -0
- pulumi_gcp/apigateway/api_iam_binding.py +13 -0
- pulumi_gcp/apigateway/api_iam_member.py +13 -0
- pulumi_gcp/apigateway/api_iam_policy.py +13 -0
- pulumi_gcp/apigateway/gateway_iam_binding.py +13 -0
- pulumi_gcp/apigateway/gateway_iam_member.py +13 -0
- pulumi_gcp/apigateway/gateway_iam_policy.py +13 -0
- pulumi_gcp/apigateway/get_api_config_iam_policy.py +2 -0
- pulumi_gcp/apigateway/get_api_iam_policy.py +2 -0
- pulumi_gcp/apigateway/get_gateway_iam_policy.py +2 -0
- pulumi_gcp/apigee/environment_iam_binding.py +27 -0
- pulumi_gcp/apigee/environment_iam_member.py +27 -0
- pulumi_gcp/apigee/environment_iam_policy.py +27 -0
- pulumi_gcp/apigee/get_environment_iam_policy.py +6 -0
- pulumi_gcp/beyondcorp/__init__.py +1 -0
- pulumi_gcp/beyondcorp/application.py +8 -4
- pulumi_gcp/beyondcorp/application_iam_binding.py +26 -0
- pulumi_gcp/beyondcorp/application_iam_member.py +26 -0
- pulumi_gcp/beyondcorp/application_iam_policy.py +26 -0
- pulumi_gcp/beyondcorp/get_application_iam_policy.py +4 -0
- pulumi_gcp/beyondcorp/get_security_gateway.py +222 -0
- pulumi_gcp/beyondcorp/get_security_gateway_iam_policy.py +2 -0
- pulumi_gcp/beyondcorp/outputs.py +45 -0
- pulumi_gcp/beyondcorp/security_gateway_iam_binding.py +13 -0
- pulumi_gcp/beyondcorp/security_gateway_iam_member.py +13 -0
- pulumi_gcp/beyondcorp/security_gateway_iam_policy.py +13 -0
- pulumi_gcp/bigquery/__init__.py +1 -0
- pulumi_gcp/bigquery/connection_iam_binding.py +4 -11
- pulumi_gcp/bigquery/connection_iam_member.py +4 -11
- pulumi_gcp/bigquery/connection_iam_policy.py +4 -11
- pulumi_gcp/bigquery/data_transfer_config.py +2 -2
- pulumi_gcp/bigquery/get_connection_iam_policy.py +2 -4
- pulumi_gcp/bigquery/get_table_iam_policy.py +4 -0
- pulumi_gcp/bigquery/iam_binding.py +26 -0
- pulumi_gcp/bigquery/iam_member.py +26 -0
- pulumi_gcp/bigquery/iam_policy.py +26 -0
- pulumi_gcp/bigquery/row_access_policy.py +787 -0
- pulumi_gcp/bigqueryanalyticshub/data_exchange_iam_binding.py +7 -7
- pulumi_gcp/bigqueryanalyticshub/data_exchange_iam_member.py +7 -7
- pulumi_gcp/bigqueryanalyticshub/data_exchange_iam_policy.py +7 -7
- pulumi_gcp/bigqueryanalyticshub/get_data_exchange_iam_policy.py +2 -2
- pulumi_gcp/bigqueryanalyticshub/get_listing_iam_policy.py +2 -2
- pulumi_gcp/bigqueryanalyticshub/listing_iam_binding.py +7 -7
- pulumi_gcp/bigqueryanalyticshub/listing_iam_member.py +7 -7
- pulumi_gcp/bigqueryanalyticshub/listing_iam_policy.py +7 -7
- pulumi_gcp/bigqueryanalyticshub/listing_subscription.py +6 -6
- pulumi_gcp/bigquerydatapolicy/data_policy_iam_binding.py +13 -0
- pulumi_gcp/bigquerydatapolicy/data_policy_iam_member.py +13 -0
- pulumi_gcp/bigquerydatapolicy/data_policy_iam_policy.py +13 -0
- pulumi_gcp/bigquerydatapolicy/get_iam_policy.py +2 -0
- pulumi_gcp/bigtable/logical_view.py +49 -0
- pulumi_gcp/cloudbuild/trigger.py +2 -2
- pulumi_gcp/clouddeploy/get_delivery_pipeline_iam_policy.py +6 -0
- pulumi_gcp/clouddeploy/get_target_iam_policy.py +6 -0
- pulumi_gcp/colab/schedule.py +2 -2
- pulumi_gcp/compute/_inputs.py +126 -0
- pulumi_gcp/compute/backend_service.py +259 -51
- pulumi_gcp/compute/get_backend_service.py +23 -1
- pulumi_gcp/compute/get_global_forwarding_rule.py +23 -1
- pulumi_gcp/compute/get_instance_template.py +12 -1
- pulumi_gcp/compute/get_network_endpoint_group.py +12 -1
- pulumi_gcp/compute/global_forwarding_rule.py +199 -0
- pulumi_gcp/compute/instance_template.py +28 -0
- pulumi_gcp/compute/network_endpoint_group.py +28 -0
- pulumi_gcp/compute/outputs.py +110 -0
- pulumi_gcp/compute/region_backend_service.py +58 -51
- pulumi_gcp/container/cluster.py +47 -0
- pulumi_gcp/container/get_cluster.py +12 -1
- pulumi_gcp/datacatalog/entry_group_iam_binding.py +34 -0
- pulumi_gcp/datacatalog/entry_group_iam_member.py +34 -0
- pulumi_gcp/datacatalog/entry_group_iam_policy.py +34 -0
- pulumi_gcp/datacatalog/get_entry_group_iam_policy.py +8 -0
- pulumi_gcp/datacatalog/get_tag_template_iam_policy.py +8 -0
- pulumi_gcp/datacatalog/get_taxonomy_iam_policy.py +8 -0
- pulumi_gcp/datacatalog/tag_template_iam_binding.py +34 -0
- pulumi_gcp/datacatalog/tag_template_iam_member.py +34 -0
- pulumi_gcp/datacatalog/tag_template_iam_policy.py +34 -0
- pulumi_gcp/datacatalog/taxonomy_iam_binding.py +34 -0
- pulumi_gcp/datacatalog/taxonomy_iam_member.py +34 -0
- pulumi_gcp/datacatalog/taxonomy_iam_policy.py +34 -0
- pulumi_gcp/dataplex/__init__.py +5 -0
- pulumi_gcp/dataplex/_inputs.py +98 -0
- pulumi_gcp/dataplex/aspect_type_iam_binding.py +13 -0
- pulumi_gcp/dataplex/aspect_type_iam_member.py +13 -0
- pulumi_gcp/dataplex/aspect_type_iam_policy.py +13 -0
- pulumi_gcp/dataplex/asset_iam_binding.py +53 -0
- pulumi_gcp/dataplex/asset_iam_member.py +53 -0
- pulumi_gcp/dataplex/asset_iam_policy.py +53 -0
- pulumi_gcp/dataplex/datascan_iam_binding.py +13 -0
- pulumi_gcp/dataplex/datascan_iam_member.py +13 -0
- pulumi_gcp/dataplex/datascan_iam_policy.py +13 -0
- pulumi_gcp/dataplex/entry_group_iam_binding.py +13 -0
- pulumi_gcp/dataplex/entry_group_iam_member.py +13 -0
- pulumi_gcp/dataplex/entry_group_iam_policy.py +13 -0
- pulumi_gcp/dataplex/entry_type_iam_binding.py +13 -0
- pulumi_gcp/dataplex/entry_type_iam_member.py +13 -0
- pulumi_gcp/dataplex/entry_type_iam_policy.py +13 -0
- pulumi_gcp/dataplex/get_aspect_type_iam_policy.py +2 -0
- pulumi_gcp/dataplex/get_asset_iam_policy.py +10 -0
- pulumi_gcp/dataplex/get_datascan_iam_policy.py +2 -0
- pulumi_gcp/dataplex/get_entry_group_iam_policy.py +2 -0
- pulumi_gcp/dataplex/get_entry_type_iam_policy.py +2 -0
- pulumi_gcp/dataplex/get_glossary_iam_policy.py +185 -0
- pulumi_gcp/dataplex/get_lake_iam_policy.py +6 -0
- pulumi_gcp/dataplex/get_task_iam_policy.py +2 -0
- pulumi_gcp/dataplex/get_zone_iam_policy.py +8 -0
- pulumi_gcp/dataplex/glossary.py +772 -0
- pulumi_gcp/dataplex/glossary_iam_binding.py +837 -0
- pulumi_gcp/dataplex/glossary_iam_member.py +837 -0
- pulumi_gcp/dataplex/glossary_iam_policy.py +676 -0
- pulumi_gcp/dataplex/lake_iam_binding.py +27 -0
- pulumi_gcp/dataplex/lake_iam_member.py +27 -0
- pulumi_gcp/dataplex/lake_iam_policy.py +27 -0
- pulumi_gcp/dataplex/outputs.py +56 -0
- pulumi_gcp/dataplex/task_iam_binding.py +13 -0
- pulumi_gcp/dataplex/task_iam_member.py +13 -0
- pulumi_gcp/dataplex/task_iam_policy.py +13 -0
- pulumi_gcp/dataplex/zone_iam_binding.py +40 -0
- pulumi_gcp/dataplex/zone_iam_member.py +40 -0
- pulumi_gcp/dataplex/zone_iam_policy.py +40 -0
- pulumi_gcp/dataproc/autoscaling_policy_iam_binding.py +4 -25
- pulumi_gcp/dataproc/autoscaling_policy_iam_member.py +4 -25
- pulumi_gcp/dataproc/autoscaling_policy_iam_policy.py +4 -25
- pulumi_gcp/dataproc/get_autoscaling_policy_iam_policy.py +2 -8
- pulumi_gcp/dataproc/get_metastore_database_iam_policy.py +8 -0
- pulumi_gcp/dataproc/get_metastore_federation_iam_policy.py +2 -0
- pulumi_gcp/dataproc/get_metastore_service_iam_policy.py +2 -0
- pulumi_gcp/dataproc/get_metastore_table_iam_policy.py +10 -0
- pulumi_gcp/dataproc/metastore_database_iam_binding.py +40 -0
- pulumi_gcp/dataproc/metastore_database_iam_member.py +40 -0
- pulumi_gcp/dataproc/metastore_database_iam_policy.py +40 -0
- pulumi_gcp/dataproc/metastore_federation_iam_binding.py +13 -0
- pulumi_gcp/dataproc/metastore_federation_iam_member.py +13 -0
- pulumi_gcp/dataproc/metastore_federation_iam_policy.py +13 -0
- pulumi_gcp/dataproc/metastore_service_iam_binding.py +13 -0
- pulumi_gcp/dataproc/metastore_service_iam_member.py +13 -0
- pulumi_gcp/dataproc/metastore_service_iam_policy.py +13 -0
- pulumi_gcp/dataproc/metastore_table_iam_binding.py +53 -0
- pulumi_gcp/dataproc/metastore_table_iam_member.py +53 -0
- pulumi_gcp/dataproc/metastore_table_iam_policy.py +53 -0
- pulumi_gcp/diagflow/_inputs.py +56 -0
- pulumi_gcp/diagflow/cx_agent.py +60 -0
- pulumi_gcp/diagflow/cx_flow.py +2 -0
- pulumi_gcp/diagflow/entity_type.py +2 -2
- pulumi_gcp/diagflow/outputs.py +35 -0
- pulumi_gcp/edgecontainer/node_pool.py +2 -2
- pulumi_gcp/endpoints/consumers_iam_binding.py +26 -0
- pulumi_gcp/endpoints/consumers_iam_member.py +26 -0
- pulumi_gcp/endpoints/consumers_iam_policy.py +26 -0
- pulumi_gcp/endpoints/get_service_consumers_iam_policy.py +8 -0
- pulumi_gcp/endpoints/get_service_iam_policy.py +6 -0
- pulumi_gcp/endpoints/service_iam_binding.py +13 -0
- pulumi_gcp/endpoints/service_iam_member.py +13 -0
- pulumi_gcp/endpoints/service_iam_policy.py +13 -0
- pulumi_gcp/firebase/__init__.py +3 -0
- pulumi_gcp/firebase/_inputs.py +1527 -0
- pulumi_gcp/firebase/app_hosting_backend.py +104 -0
- pulumi_gcp/firebase/app_hosting_default_domain.py +721 -0
- pulumi_gcp/firebase/app_hosting_domain.py +796 -0
- pulumi_gcp/firebase/app_hosting_traffic.py +914 -0
- pulumi_gcp/firebase/extensions_instance.py +4 -4
- pulumi_gcp/firebase/outputs.py +1075 -0
- pulumi_gcp/firestore/database.py +9 -0
- pulumi_gcp/gemini/get_repository_group_iam_policy.py +4 -0
- pulumi_gcp/gemini/repository_group_iam_binding.py +26 -0
- pulumi_gcp/gemini/repository_group_iam_member.py +26 -0
- pulumi_gcp/gemini/repository_group_iam_policy.py +26 -0
- pulumi_gcp/gkebackup/backup_channel.py +9 -9
- pulumi_gcp/gkebackup/restore_channel.py +9 -9
- pulumi_gcp/gkehub/get_membership_iam_policy.py +2 -0
- pulumi_gcp/gkehub/get_scope_iam_policy.py +2 -0
- pulumi_gcp/gkehub/membership_iam_binding.py +13 -0
- pulumi_gcp/gkehub/membership_iam_member.py +13 -0
- pulumi_gcp/gkehub/membership_iam_policy.py +13 -0
- pulumi_gcp/gkehub/scope_iam_binding.py +13 -0
- pulumi_gcp/gkehub/scope_iam_member.py +13 -0
- pulumi_gcp/gkehub/scope_iam_policy.py +13 -0
- pulumi_gcp/iam/__init__.py +4 -0
- pulumi_gcp/iam/_inputs.py +432 -0
- pulumi_gcp/iam/get_workload_identity_pool.py +35 -1
- pulumi_gcp/iam/get_workload_identity_pool_iam_policy.py +156 -0
- pulumi_gcp/iam/oauth_client_credential.py +6 -0
- pulumi_gcp/iam/outputs.py +510 -0
- pulumi_gcp/iam/workload_identity_pool.py +446 -24
- pulumi_gcp/iam/workload_identity_pool_iam_binding.py +539 -0
- pulumi_gcp/iam/workload_identity_pool_iam_member.py +539 -0
- pulumi_gcp/iam/workload_identity_pool_iam_policy.py +358 -0
- pulumi_gcp/iap/app_engine_service_iam_binding.py +14 -14
- pulumi_gcp/iap/app_engine_service_iam_member.py +14 -14
- pulumi_gcp/iap/app_engine_service_iam_policy.py +14 -14
- pulumi_gcp/iap/app_engine_version_iam_binding.py +14 -14
- pulumi_gcp/iap/app_engine_version_iam_member.py +14 -14
- pulumi_gcp/iap/app_engine_version_iam_policy.py +14 -14
- pulumi_gcp/iap/get_app_engine_service_iam_policy.py +4 -4
- pulumi_gcp/iap/get_app_engine_version_iam_policy.py +4 -4
- pulumi_gcp/iap/get_tunnel_dest_group_iam_policy.py +2 -0
- pulumi_gcp/iap/get_tunnel_instance_iam_policy.py +6 -0
- pulumi_gcp/iap/get_web_region_backend_service_iam_policy.py +6 -0
- pulumi_gcp/iap/get_web_type_app_engine_iam_policy.py +2 -2
- pulumi_gcp/iap/tunnel_dest_group_iam_binding.py +13 -0
- pulumi_gcp/iap/tunnel_dest_group_iam_member.py +13 -0
- pulumi_gcp/iap/tunnel_dest_group_iam_policy.py +13 -0
- pulumi_gcp/iap/tunnel_instance_iam_binding.py +27 -0
- pulumi_gcp/iap/tunnel_instance_iam_member.py +27 -0
- pulumi_gcp/iap/tunnel_instance_iam_policy.py +27 -0
- pulumi_gcp/iap/web_region_backend_service_iam_binding.py +27 -0
- pulumi_gcp/iap/web_region_backend_service_iam_member.py +27 -0
- pulumi_gcp/iap/web_region_backend_service_iam_policy.py +27 -0
- pulumi_gcp/iap/web_type_app_enging_iam_binding.py +7 -7
- pulumi_gcp/iap/web_type_app_enging_iam_member.py +7 -7
- pulumi_gcp/iap/web_type_app_enging_iam_policy.py +7 -7
- pulumi_gcp/lustre/__init__.py +1 -0
- pulumi_gcp/lustre/get_instance.py +280 -0
- pulumi_gcp/lustre/instance.py +12 -0
- pulumi_gcp/netapp/backup.py +2 -2
- pulumi_gcp/networksecurity/intercept_deployment.py +10 -0
- pulumi_gcp/networksecurity/intercept_deployment_group.py +8 -0
- pulumi_gcp/networksecurity/intercept_endpoint_group.py +12 -0
- pulumi_gcp/networksecurity/intercept_endpoint_group_association.py +16 -0
- pulumi_gcp/pulumi-plugin.json +1 -1
- pulumi_gcp/secretmanager/get_regional_secret_iam_policy.py +2 -0
- pulumi_gcp/secretmanager/get_secret_iam_policy.py +2 -0
- pulumi_gcp/secretmanager/regional_secret_iam_binding.py +13 -0
- pulumi_gcp/secretmanager/regional_secret_iam_member.py +13 -0
- pulumi_gcp/secretmanager/regional_secret_iam_policy.py +13 -0
- pulumi_gcp/secretmanager/secret_iam_binding.py +13 -0
- pulumi_gcp/secretmanager/secret_iam_member.py +13 -0
- pulumi_gcp/secretmanager/secret_iam_policy.py +13 -0
- pulumi_gcp/securesourcemanager/get_instance_iam_policy.py +2 -4
- pulumi_gcp/securesourcemanager/get_repository_iam_policy.py +2 -4
- pulumi_gcp/securesourcemanager/repository_iam_binding.py +4 -11
- pulumi_gcp/securesourcemanager/repository_iam_member.py +4 -11
- pulumi_gcp/securesourcemanager/repository_iam_policy.py +4 -11
- pulumi_gcp/securitycenter/v2_organization_scc_big_query_export.py +2 -2
- pulumi_gcp/securitycenter/v2_organization_scc_big_query_exports.py +2 -2
- pulumi_gcp/vertex/ai_feature_online_store_featureview_iam_binding.py +13 -0
- pulumi_gcp/vertex/ai_feature_online_store_featureview_iam_member.py +13 -0
- pulumi_gcp/vertex/ai_feature_online_store_featureview_iam_policy.py +13 -0
- pulumi_gcp/vertex/get_ai_feature_online_store_featureview_iam_policy.py +2 -0
- pulumi_gcp/vmwareengine/external_address.py +4 -4
- pulumi_gcp/workstations/get_workstation_config_iam_policy.py +6 -0
- pulumi_gcp/workstations/get_workstation_iam_policy.py +10 -0
- pulumi_gcp/workstations/workstation_config_iam_binding.py +33 -0
- pulumi_gcp/workstations/workstation_config_iam_member.py +33 -0
- pulumi_gcp/workstations/workstation_config_iam_policy.py +33 -0
- pulumi_gcp/workstations/workstation_iam_binding.py +53 -0
- pulumi_gcp/workstations/workstation_iam_member.py +53 -0
- pulumi_gcp/workstations/workstation_iam_policy.py +53 -0
- {pulumi_gcp-8.32.0a1747459264.dist-info → pulumi_gcp-8.32.1.dist-info}/METADATA +1 -1
- {pulumi_gcp-8.32.0a1747459264.dist-info → pulumi_gcp-8.32.1.dist-info}/RECORD +256 -241
- {pulumi_gcp-8.32.0a1747459264.dist-info → pulumi_gcp-8.32.1.dist-info}/WHEEL +1 -1
- {pulumi_gcp-8.32.0a1747459264.dist-info → pulumi_gcp-8.32.1.dist-info}/top_level.txt +0 -0
@@ -14,6 +14,8 @@ if sys.version_info >= (3, 11):
|
|
14
14
|
else:
|
15
15
|
from typing_extensions import NotRequired, TypedDict, TypeAlias
|
16
16
|
from .. import _utilities
|
17
|
+
from . import outputs
|
18
|
+
from ._inputs import *
|
17
19
|
|
18
20
|
__all__ = ['WorkloadIdentityPoolArgs', 'WorkloadIdentityPool']
|
19
21
|
|
@@ -24,6 +26,9 @@ class WorkloadIdentityPoolArgs:
|
|
24
26
|
description: Optional[pulumi.Input[builtins.str]] = None,
|
25
27
|
disabled: Optional[pulumi.Input[builtins.bool]] = None,
|
26
28
|
display_name: Optional[pulumi.Input[builtins.str]] = None,
|
29
|
+
inline_certificate_issuance_config: Optional[pulumi.Input['WorkloadIdentityPoolInlineCertificateIssuanceConfigArgs']] = None,
|
30
|
+
inline_trust_config: Optional[pulumi.Input['WorkloadIdentityPoolInlineTrustConfigArgs']] = None,
|
31
|
+
mode: Optional[pulumi.Input[builtins.str]] = None,
|
27
32
|
project: Optional[pulumi.Input[builtins.str]] = None):
|
28
33
|
"""
|
29
34
|
The set of arguments for constructing a WorkloadIdentityPool resource.
|
@@ -38,6 +43,34 @@ class WorkloadIdentityPoolArgs:
|
|
38
43
|
existing tokens to access resources. If the pool is re-enabled, existing tokens grant
|
39
44
|
access again.
|
40
45
|
:param pulumi.Input[builtins.str] display_name: A display name for the pool. Cannot exceed 32 characters.
|
46
|
+
:param pulumi.Input['WorkloadIdentityPoolInlineCertificateIssuanceConfigArgs'] inline_certificate_issuance_config: Represents configuration for generating mutual TLS (mTLS) certificates for the identities
|
47
|
+
within this pool. Defines the Certificate Authority (CA) pool resources and configurations
|
48
|
+
required for issuance and rotation of mTLS workload certificates.
|
49
|
+
Structure is documented below.
|
50
|
+
:param pulumi.Input['WorkloadIdentityPoolInlineTrustConfigArgs'] inline_trust_config: Represents config to add additional trusted trust domains. Defines configuration for extending
|
51
|
+
trust to additional trust domains. By establishing trust with another domain, the current
|
52
|
+
domain will recognize and accept certificates issued by entities within the trusted domains.
|
53
|
+
Note that a trust domain automatically trusts itself, eliminating the need for explicit
|
54
|
+
configuration.
|
55
|
+
Structure is documented below.
|
56
|
+
:param pulumi.Input[builtins.str] mode: The mode for the pool is operating in. Pools with an unspecified mode will operate as if they
|
57
|
+
are in `FEDERATION_ONLY` mode.
|
58
|
+
|
59
|
+
> **Note** This field cannot be changed after the Workload Identity Pool is created. While
|
60
|
+
`pulumi preview` may show an update if you change this field's value, `pulumi up`
|
61
|
+
**will fail with an API error** (such as `Error 400: Attempted to update an immutable field.`).
|
62
|
+
To specify a different `mode`, please create a new Workload Identity Pool resource.
|
63
|
+
* `FEDERATION_ONLY`: Pools can only be used for federating external workload identities into
|
64
|
+
Google Cloud. Unless otherwise noted, no structure or format constraints are applied to
|
65
|
+
workload identities in a `FEDERATION_ONLY` mode pool, and you may not create any resources
|
66
|
+
within the pool besides providers.
|
67
|
+
* `TRUST_DOMAIN`: Pools can be used to assign identities to Google Cloud workloads. All
|
68
|
+
identities within a `TRUST_DOMAIN` mode pool must consist of a single namespace and individual
|
69
|
+
workload identifier. The subject identifier for all identities must conform to the following
|
70
|
+
format: `ns/<namespace>/sa/<workload_identifier>`.
|
71
|
+
`iam.WorkloadIdentityPoolProvider`s cannot be created within `TRUST_DOMAIN`
|
72
|
+
mode pools.
|
73
|
+
Possible values are: `FEDERATION_ONLY`, `TRUST_DOMAIN`.
|
41
74
|
:param pulumi.Input[builtins.str] project: The ID of the project in which the resource belongs.
|
42
75
|
If it is not provided, the provider project is used.
|
43
76
|
"""
|
@@ -48,6 +81,12 @@ class WorkloadIdentityPoolArgs:
|
|
48
81
|
pulumi.set(__self__, "disabled", disabled)
|
49
82
|
if display_name is not None:
|
50
83
|
pulumi.set(__self__, "display_name", display_name)
|
84
|
+
if inline_certificate_issuance_config is not None:
|
85
|
+
pulumi.set(__self__, "inline_certificate_issuance_config", inline_certificate_issuance_config)
|
86
|
+
if inline_trust_config is not None:
|
87
|
+
pulumi.set(__self__, "inline_trust_config", inline_trust_config)
|
88
|
+
if mode is not None:
|
89
|
+
pulumi.set(__self__, "mode", mode)
|
51
90
|
if project is not None:
|
52
91
|
pulumi.set(__self__, "project", project)
|
53
92
|
|
@@ -106,6 +145,67 @@ class WorkloadIdentityPoolArgs:
|
|
106
145
|
def display_name(self, value: Optional[pulumi.Input[builtins.str]]):
|
107
146
|
pulumi.set(self, "display_name", value)
|
108
147
|
|
148
|
+
@property
|
149
|
+
@pulumi.getter(name="inlineCertificateIssuanceConfig")
|
150
|
+
def inline_certificate_issuance_config(self) -> Optional[pulumi.Input['WorkloadIdentityPoolInlineCertificateIssuanceConfigArgs']]:
|
151
|
+
"""
|
152
|
+
Represents configuration for generating mutual TLS (mTLS) certificates for the identities
|
153
|
+
within this pool. Defines the Certificate Authority (CA) pool resources and configurations
|
154
|
+
required for issuance and rotation of mTLS workload certificates.
|
155
|
+
Structure is documented below.
|
156
|
+
"""
|
157
|
+
return pulumi.get(self, "inline_certificate_issuance_config")
|
158
|
+
|
159
|
+
@inline_certificate_issuance_config.setter
|
160
|
+
def inline_certificate_issuance_config(self, value: Optional[pulumi.Input['WorkloadIdentityPoolInlineCertificateIssuanceConfigArgs']]):
|
161
|
+
pulumi.set(self, "inline_certificate_issuance_config", value)
|
162
|
+
|
163
|
+
@property
|
164
|
+
@pulumi.getter(name="inlineTrustConfig")
|
165
|
+
def inline_trust_config(self) -> Optional[pulumi.Input['WorkloadIdentityPoolInlineTrustConfigArgs']]:
|
166
|
+
"""
|
167
|
+
Represents config to add additional trusted trust domains. Defines configuration for extending
|
168
|
+
trust to additional trust domains. By establishing trust with another domain, the current
|
169
|
+
domain will recognize and accept certificates issued by entities within the trusted domains.
|
170
|
+
Note that a trust domain automatically trusts itself, eliminating the need for explicit
|
171
|
+
configuration.
|
172
|
+
Structure is documented below.
|
173
|
+
"""
|
174
|
+
return pulumi.get(self, "inline_trust_config")
|
175
|
+
|
176
|
+
@inline_trust_config.setter
|
177
|
+
def inline_trust_config(self, value: Optional[pulumi.Input['WorkloadIdentityPoolInlineTrustConfigArgs']]):
|
178
|
+
pulumi.set(self, "inline_trust_config", value)
|
179
|
+
|
180
|
+
@property
|
181
|
+
@pulumi.getter
|
182
|
+
def mode(self) -> Optional[pulumi.Input[builtins.str]]:
|
183
|
+
"""
|
184
|
+
The mode for the pool is operating in. Pools with an unspecified mode will operate as if they
|
185
|
+
are in `FEDERATION_ONLY` mode.
|
186
|
+
|
187
|
+
> **Note** This field cannot be changed after the Workload Identity Pool is created. While
|
188
|
+
`pulumi preview` may show an update if you change this field's value, `pulumi up`
|
189
|
+
**will fail with an API error** (such as `Error 400: Attempted to update an immutable field.`).
|
190
|
+
To specify a different `mode`, please create a new Workload Identity Pool resource.
|
191
|
+
* `FEDERATION_ONLY`: Pools can only be used for federating external workload identities into
|
192
|
+
Google Cloud. Unless otherwise noted, no structure or format constraints are applied to
|
193
|
+
workload identities in a `FEDERATION_ONLY` mode pool, and you may not create any resources
|
194
|
+
within the pool besides providers.
|
195
|
+
* `TRUST_DOMAIN`: Pools can be used to assign identities to Google Cloud workloads. All
|
196
|
+
identities within a `TRUST_DOMAIN` mode pool must consist of a single namespace and individual
|
197
|
+
workload identifier. The subject identifier for all identities must conform to the following
|
198
|
+
format: `ns/<namespace>/sa/<workload_identifier>`.
|
199
|
+
`iam.WorkloadIdentityPoolProvider`s cannot be created within `TRUST_DOMAIN`
|
200
|
+
mode pools.
|
201
|
+
Possible values are: `FEDERATION_ONLY`, `TRUST_DOMAIN`.
|
202
|
+
"""
|
203
|
+
return pulumi.get(self, "mode")
|
204
|
+
|
205
|
+
@mode.setter
|
206
|
+
def mode(self, value: Optional[pulumi.Input[builtins.str]]):
|
207
|
+
pulumi.set(self, "mode", value)
|
208
|
+
|
109
209
|
@property
|
110
210
|
@pulumi.getter
|
111
211
|
def project(self) -> Optional[pulumi.Input[builtins.str]]:
|
@@ -126,6 +226,9 @@ class _WorkloadIdentityPoolState:
|
|
126
226
|
description: Optional[pulumi.Input[builtins.str]] = None,
|
127
227
|
disabled: Optional[pulumi.Input[builtins.bool]] = None,
|
128
228
|
display_name: Optional[pulumi.Input[builtins.str]] = None,
|
229
|
+
inline_certificate_issuance_config: Optional[pulumi.Input['WorkloadIdentityPoolInlineCertificateIssuanceConfigArgs']] = None,
|
230
|
+
inline_trust_config: Optional[pulumi.Input['WorkloadIdentityPoolInlineTrustConfigArgs']] = None,
|
231
|
+
mode: Optional[pulumi.Input[builtins.str]] = None,
|
129
232
|
name: Optional[pulumi.Input[builtins.str]] = None,
|
130
233
|
project: Optional[pulumi.Input[builtins.str]] = None,
|
131
234
|
state: Optional[pulumi.Input[builtins.str]] = None,
|
@@ -137,16 +240,44 @@ class _WorkloadIdentityPoolState:
|
|
137
240
|
existing tokens to access resources. If the pool is re-enabled, existing tokens grant
|
138
241
|
access again.
|
139
242
|
:param pulumi.Input[builtins.str] display_name: A display name for the pool. Cannot exceed 32 characters.
|
243
|
+
:param pulumi.Input['WorkloadIdentityPoolInlineCertificateIssuanceConfigArgs'] inline_certificate_issuance_config: Represents configuration for generating mutual TLS (mTLS) certificates for the identities
|
244
|
+
within this pool. Defines the Certificate Authority (CA) pool resources and configurations
|
245
|
+
required for issuance and rotation of mTLS workload certificates.
|
246
|
+
Structure is documented below.
|
247
|
+
:param pulumi.Input['WorkloadIdentityPoolInlineTrustConfigArgs'] inline_trust_config: Represents config to add additional trusted trust domains. Defines configuration for extending
|
248
|
+
trust to additional trust domains. By establishing trust with another domain, the current
|
249
|
+
domain will recognize and accept certificates issued by entities within the trusted domains.
|
250
|
+
Note that a trust domain automatically trusts itself, eliminating the need for explicit
|
251
|
+
configuration.
|
252
|
+
Structure is documented below.
|
253
|
+
:param pulumi.Input[builtins.str] mode: The mode for the pool is operating in. Pools with an unspecified mode will operate as if they
|
254
|
+
are in `FEDERATION_ONLY` mode.
|
255
|
+
|
256
|
+
> **Note** This field cannot be changed after the Workload Identity Pool is created. While
|
257
|
+
`pulumi preview` may show an update if you change this field's value, `pulumi up`
|
258
|
+
**will fail with an API error** (such as `Error 400: Attempted to update an immutable field.`).
|
259
|
+
To specify a different `mode`, please create a new Workload Identity Pool resource.
|
260
|
+
* `FEDERATION_ONLY`: Pools can only be used for federating external workload identities into
|
261
|
+
Google Cloud. Unless otherwise noted, no structure or format constraints are applied to
|
262
|
+
workload identities in a `FEDERATION_ONLY` mode pool, and you may not create any resources
|
263
|
+
within the pool besides providers.
|
264
|
+
* `TRUST_DOMAIN`: Pools can be used to assign identities to Google Cloud workloads. All
|
265
|
+
identities within a `TRUST_DOMAIN` mode pool must consist of a single namespace and individual
|
266
|
+
workload identifier. The subject identifier for all identities must conform to the following
|
267
|
+
format: `ns/<namespace>/sa/<workload_identifier>`.
|
268
|
+
`iam.WorkloadIdentityPoolProvider`s cannot be created within `TRUST_DOMAIN`
|
269
|
+
mode pools.
|
270
|
+
Possible values are: `FEDERATION_ONLY`, `TRUST_DOMAIN`.
|
140
271
|
:param pulumi.Input[builtins.str] name: The resource name of the pool as
|
141
272
|
`projects/{project_number}/locations/global/workloadIdentityPools/{workload_identity_pool_id}`.
|
142
273
|
:param pulumi.Input[builtins.str] project: The ID of the project in which the resource belongs.
|
143
274
|
If it is not provided, the provider project is used.
|
144
275
|
:param pulumi.Input[builtins.str] state: The state of the pool.
|
145
|
-
* STATE_UNSPECIFIED
|
146
|
-
* ACTIVE
|
147
|
-
* DELETED
|
276
|
+
* `STATE_UNSPECIFIED`: State unspecified.
|
277
|
+
* `ACTIVE`: The pool is active, and may be used in Google Cloud policies.
|
278
|
+
* `DELETED`: The pool is soft-deleted. Soft-deleted pools are permanently deleted after
|
148
279
|
approximately 30 days. You can restore a soft-deleted pool using
|
149
|
-
UndeleteWorkloadIdentityPool
|
280
|
+
`UndeleteWorkloadIdentityPool`. You cannot reuse the ID of a soft-deleted pool until it is
|
150
281
|
permanently deleted. While a pool is deleted, you cannot use it to exchange tokens, or
|
151
282
|
use existing tokens to access resources. If the pool is undeleted, existing tokens grant
|
152
283
|
access again.
|
@@ -163,6 +294,12 @@ class _WorkloadIdentityPoolState:
|
|
163
294
|
pulumi.set(__self__, "disabled", disabled)
|
164
295
|
if display_name is not None:
|
165
296
|
pulumi.set(__self__, "display_name", display_name)
|
297
|
+
if inline_certificate_issuance_config is not None:
|
298
|
+
pulumi.set(__self__, "inline_certificate_issuance_config", inline_certificate_issuance_config)
|
299
|
+
if inline_trust_config is not None:
|
300
|
+
pulumi.set(__self__, "inline_trust_config", inline_trust_config)
|
301
|
+
if mode is not None:
|
302
|
+
pulumi.set(__self__, "mode", mode)
|
166
303
|
if name is not None:
|
167
304
|
pulumi.set(__self__, "name", name)
|
168
305
|
if project is not None:
|
@@ -210,6 +347,67 @@ class _WorkloadIdentityPoolState:
|
|
210
347
|
def display_name(self, value: Optional[pulumi.Input[builtins.str]]):
|
211
348
|
pulumi.set(self, "display_name", value)
|
212
349
|
|
350
|
+
@property
|
351
|
+
@pulumi.getter(name="inlineCertificateIssuanceConfig")
|
352
|
+
def inline_certificate_issuance_config(self) -> Optional[pulumi.Input['WorkloadIdentityPoolInlineCertificateIssuanceConfigArgs']]:
|
353
|
+
"""
|
354
|
+
Represents configuration for generating mutual TLS (mTLS) certificates for the identities
|
355
|
+
within this pool. Defines the Certificate Authority (CA) pool resources and configurations
|
356
|
+
required for issuance and rotation of mTLS workload certificates.
|
357
|
+
Structure is documented below.
|
358
|
+
"""
|
359
|
+
return pulumi.get(self, "inline_certificate_issuance_config")
|
360
|
+
|
361
|
+
@inline_certificate_issuance_config.setter
|
362
|
+
def inline_certificate_issuance_config(self, value: Optional[pulumi.Input['WorkloadIdentityPoolInlineCertificateIssuanceConfigArgs']]):
|
363
|
+
pulumi.set(self, "inline_certificate_issuance_config", value)
|
364
|
+
|
365
|
+
@property
|
366
|
+
@pulumi.getter(name="inlineTrustConfig")
|
367
|
+
def inline_trust_config(self) -> Optional[pulumi.Input['WorkloadIdentityPoolInlineTrustConfigArgs']]:
|
368
|
+
"""
|
369
|
+
Represents config to add additional trusted trust domains. Defines configuration for extending
|
370
|
+
trust to additional trust domains. By establishing trust with another domain, the current
|
371
|
+
domain will recognize and accept certificates issued by entities within the trusted domains.
|
372
|
+
Note that a trust domain automatically trusts itself, eliminating the need for explicit
|
373
|
+
configuration.
|
374
|
+
Structure is documented below.
|
375
|
+
"""
|
376
|
+
return pulumi.get(self, "inline_trust_config")
|
377
|
+
|
378
|
+
@inline_trust_config.setter
|
379
|
+
def inline_trust_config(self, value: Optional[pulumi.Input['WorkloadIdentityPoolInlineTrustConfigArgs']]):
|
380
|
+
pulumi.set(self, "inline_trust_config", value)
|
381
|
+
|
382
|
+
@property
|
383
|
+
@pulumi.getter
|
384
|
+
def mode(self) -> Optional[pulumi.Input[builtins.str]]:
|
385
|
+
"""
|
386
|
+
The mode for the pool is operating in. Pools with an unspecified mode will operate as if they
|
387
|
+
are in `FEDERATION_ONLY` mode.
|
388
|
+
|
389
|
+
> **Note** This field cannot be changed after the Workload Identity Pool is created. While
|
390
|
+
`pulumi preview` may show an update if you change this field's value, `pulumi up`
|
391
|
+
**will fail with an API error** (such as `Error 400: Attempted to update an immutable field.`).
|
392
|
+
To specify a different `mode`, please create a new Workload Identity Pool resource.
|
393
|
+
* `FEDERATION_ONLY`: Pools can only be used for federating external workload identities into
|
394
|
+
Google Cloud. Unless otherwise noted, no structure or format constraints are applied to
|
395
|
+
workload identities in a `FEDERATION_ONLY` mode pool, and you may not create any resources
|
396
|
+
within the pool besides providers.
|
397
|
+
* `TRUST_DOMAIN`: Pools can be used to assign identities to Google Cloud workloads. All
|
398
|
+
identities within a `TRUST_DOMAIN` mode pool must consist of a single namespace and individual
|
399
|
+
workload identifier. The subject identifier for all identities must conform to the following
|
400
|
+
format: `ns/<namespace>/sa/<workload_identifier>`.
|
401
|
+
`iam.WorkloadIdentityPoolProvider`s cannot be created within `TRUST_DOMAIN`
|
402
|
+
mode pools.
|
403
|
+
Possible values are: `FEDERATION_ONLY`, `TRUST_DOMAIN`.
|
404
|
+
"""
|
405
|
+
return pulumi.get(self, "mode")
|
406
|
+
|
407
|
+
@mode.setter
|
408
|
+
def mode(self, value: Optional[pulumi.Input[builtins.str]]):
|
409
|
+
pulumi.set(self, "mode", value)
|
410
|
+
|
213
411
|
@property
|
214
412
|
@pulumi.getter
|
215
413
|
def name(self) -> Optional[pulumi.Input[builtins.str]]:
|
@@ -241,11 +439,11 @@ class _WorkloadIdentityPoolState:
|
|
241
439
|
def state(self) -> Optional[pulumi.Input[builtins.str]]:
|
242
440
|
"""
|
243
441
|
The state of the pool.
|
244
|
-
* STATE_UNSPECIFIED
|
245
|
-
* ACTIVE
|
246
|
-
* DELETED
|
442
|
+
* `STATE_UNSPECIFIED`: State unspecified.
|
443
|
+
* `ACTIVE`: The pool is active, and may be used in Google Cloud policies.
|
444
|
+
* `DELETED`: The pool is soft-deleted. Soft-deleted pools are permanently deleted after
|
247
445
|
approximately 30 days. You can restore a soft-deleted pool using
|
248
|
-
UndeleteWorkloadIdentityPool
|
446
|
+
`UndeleteWorkloadIdentityPool`. You cannot reuse the ID of a soft-deleted pool until it is
|
249
447
|
permanently deleted. While a pool is deleted, you cannot use it to exchange tokens, or
|
250
448
|
use existing tokens to access resources. If the pool is undeleted, existing tokens grant
|
251
449
|
access again.
|
@@ -283,6 +481,9 @@ class WorkloadIdentityPool(pulumi.CustomResource):
|
|
283
481
|
description: Optional[pulumi.Input[builtins.str]] = None,
|
284
482
|
disabled: Optional[pulumi.Input[builtins.bool]] = None,
|
285
483
|
display_name: Optional[pulumi.Input[builtins.str]] = None,
|
484
|
+
inline_certificate_issuance_config: Optional[pulumi.Input[Union['WorkloadIdentityPoolInlineCertificateIssuanceConfigArgs', 'WorkloadIdentityPoolInlineCertificateIssuanceConfigArgsDict']]] = None,
|
485
|
+
inline_trust_config: Optional[pulumi.Input[Union['WorkloadIdentityPoolInlineTrustConfigArgs', 'WorkloadIdentityPoolInlineTrustConfigArgsDict']]] = None,
|
486
|
+
mode: Optional[pulumi.Input[builtins.str]] = None,
|
286
487
|
project: Optional[pulumi.Input[builtins.str]] = None,
|
287
488
|
workload_identity_pool_id: Optional[pulumi.Input[builtins.str]] = None,
|
288
489
|
__props__=None):
|
@@ -294,6 +495,8 @@ class WorkloadIdentityPool(pulumi.CustomResource):
|
|
294
495
|
|
295
496
|
* [API documentation](https://cloud.google.com/iam/docs/reference/rest/v1/projects.locations.workloadIdentityPools)
|
296
497
|
* How-to Guides
|
498
|
+
* [Configure managed workload identity authentication for Compute Engine](https://cloud.google.com/iam/docs/create-managed-workload-identities)
|
499
|
+
* [Configure managed workload identity authentication for GKE](https://cloud.google.com/iam/docs/create-managed-workload-identities-gke)
|
297
500
|
* [Managing workload identity pools](https://cloud.google.com/iam/docs/manage-workload-identity-pools-providers#pools)
|
298
501
|
|
299
502
|
## Example Usage
|
@@ -306,7 +509,7 @@ class WorkloadIdentityPool(pulumi.CustomResource):
|
|
306
509
|
|
307
510
|
example = gcp.iam.WorkloadIdentityPool("example", workload_identity_pool_id="example-pool")
|
308
511
|
```
|
309
|
-
### Iam Workload Identity Pool Full
|
512
|
+
### Iam Workload Identity Pool Full Federation Only Mode
|
310
513
|
|
311
514
|
```python
|
312
515
|
import pulumi
|
@@ -314,9 +517,59 @@ class WorkloadIdentityPool(pulumi.CustomResource):
|
|
314
517
|
|
315
518
|
example = gcp.iam.WorkloadIdentityPool("example",
|
316
519
|
workload_identity_pool_id="example-pool",
|
317
|
-
display_name="Name of pool",
|
318
|
-
description="Identity pool
|
319
|
-
disabled=True
|
520
|
+
display_name="Name of the pool",
|
521
|
+
description="Identity pool operates in FEDERATION_ONLY mode",
|
522
|
+
disabled=True,
|
523
|
+
mode="FEDERATION_ONLY")
|
524
|
+
```
|
525
|
+
### Iam Workload Identity Pool Full Trust Domain Mode
|
526
|
+
|
527
|
+
```python
|
528
|
+
import pulumi
|
529
|
+
import pulumi_gcp as gcp
|
530
|
+
import pulumi_std as std
|
531
|
+
|
532
|
+
example = gcp.iam.WorkloadIdentityPool("example",
|
533
|
+
workload_identity_pool_id="example-pool",
|
534
|
+
display_name="Name of the pool",
|
535
|
+
description="Identity pool operates in TRUST_DOMAIN mode",
|
536
|
+
disabled=True,
|
537
|
+
mode="TRUST_DOMAIN",
|
538
|
+
inline_certificate_issuance_config={
|
539
|
+
"ca_pools": {
|
540
|
+
"us-central1": "projects/project-bar/locations/us-central1/caPools/ca-pool-bar",
|
541
|
+
"asia-east2": "projects/project-foo/locations/asia-east2/caPools/ca-pool-foo",
|
542
|
+
},
|
543
|
+
"lifetime": "86400s",
|
544
|
+
"rotation_window_percentage": 50,
|
545
|
+
"key_algorithm": "ECDSA_P256",
|
546
|
+
},
|
547
|
+
inline_trust_config={
|
548
|
+
"additional_trust_bundles": [
|
549
|
+
{
|
550
|
+
"trust_domain": "example.com",
|
551
|
+
"trust_anchors": [
|
552
|
+
{
|
553
|
+
"pem_certificate": std.file(input="test-fixtures/trust_anchor_1.pem").result,
|
554
|
+
},
|
555
|
+
{
|
556
|
+
"pem_certificate": std.file(input="test-fixtures/trust_anchor_2.pem").result,
|
557
|
+
},
|
558
|
+
],
|
559
|
+
},
|
560
|
+
{
|
561
|
+
"trust_domain": "example.net",
|
562
|
+
"trust_anchors": [
|
563
|
+
{
|
564
|
+
"pem_certificate": std.file(input="test-fixtures/trust_anchor_3.pem").result,
|
565
|
+
},
|
566
|
+
{
|
567
|
+
"pem_certificate": std.file(input="test-fixtures/trust_anchor_4.pem").result,
|
568
|
+
},
|
569
|
+
],
|
570
|
+
},
|
571
|
+
],
|
572
|
+
})
|
320
573
|
```
|
321
574
|
|
322
575
|
## Import
|
@@ -350,6 +603,34 @@ class WorkloadIdentityPool(pulumi.CustomResource):
|
|
350
603
|
existing tokens to access resources. If the pool is re-enabled, existing tokens grant
|
351
604
|
access again.
|
352
605
|
:param pulumi.Input[builtins.str] display_name: A display name for the pool. Cannot exceed 32 characters.
|
606
|
+
:param pulumi.Input[Union['WorkloadIdentityPoolInlineCertificateIssuanceConfigArgs', 'WorkloadIdentityPoolInlineCertificateIssuanceConfigArgsDict']] inline_certificate_issuance_config: Represents configuration for generating mutual TLS (mTLS) certificates for the identities
|
607
|
+
within this pool. Defines the Certificate Authority (CA) pool resources and configurations
|
608
|
+
required for issuance and rotation of mTLS workload certificates.
|
609
|
+
Structure is documented below.
|
610
|
+
:param pulumi.Input[Union['WorkloadIdentityPoolInlineTrustConfigArgs', 'WorkloadIdentityPoolInlineTrustConfigArgsDict']] inline_trust_config: Represents config to add additional trusted trust domains. Defines configuration for extending
|
611
|
+
trust to additional trust domains. By establishing trust with another domain, the current
|
612
|
+
domain will recognize and accept certificates issued by entities within the trusted domains.
|
613
|
+
Note that a trust domain automatically trusts itself, eliminating the need for explicit
|
614
|
+
configuration.
|
615
|
+
Structure is documented below.
|
616
|
+
:param pulumi.Input[builtins.str] mode: The mode for the pool is operating in. Pools with an unspecified mode will operate as if they
|
617
|
+
are in `FEDERATION_ONLY` mode.
|
618
|
+
|
619
|
+
> **Note** This field cannot be changed after the Workload Identity Pool is created. While
|
620
|
+
`pulumi preview` may show an update if you change this field's value, `pulumi up`
|
621
|
+
**will fail with an API error** (such as `Error 400: Attempted to update an immutable field.`).
|
622
|
+
To specify a different `mode`, please create a new Workload Identity Pool resource.
|
623
|
+
* `FEDERATION_ONLY`: Pools can only be used for federating external workload identities into
|
624
|
+
Google Cloud. Unless otherwise noted, no structure or format constraints are applied to
|
625
|
+
workload identities in a `FEDERATION_ONLY` mode pool, and you may not create any resources
|
626
|
+
within the pool besides providers.
|
627
|
+
* `TRUST_DOMAIN`: Pools can be used to assign identities to Google Cloud workloads. All
|
628
|
+
identities within a `TRUST_DOMAIN` mode pool must consist of a single namespace and individual
|
629
|
+
workload identifier. The subject identifier for all identities must conform to the following
|
630
|
+
format: `ns/<namespace>/sa/<workload_identifier>`.
|
631
|
+
`iam.WorkloadIdentityPoolProvider`s cannot be created within `TRUST_DOMAIN`
|
632
|
+
mode pools.
|
633
|
+
Possible values are: `FEDERATION_ONLY`, `TRUST_DOMAIN`.
|
353
634
|
:param pulumi.Input[builtins.str] project: The ID of the project in which the resource belongs.
|
354
635
|
If it is not provided, the provider project is used.
|
355
636
|
:param pulumi.Input[builtins.str] workload_identity_pool_id: The ID to use for the pool, which becomes the final component of the resource name. This
|
@@ -373,6 +654,8 @@ class WorkloadIdentityPool(pulumi.CustomResource):
|
|
373
654
|
|
374
655
|
* [API documentation](https://cloud.google.com/iam/docs/reference/rest/v1/projects.locations.workloadIdentityPools)
|
375
656
|
* How-to Guides
|
657
|
+
* [Configure managed workload identity authentication for Compute Engine](https://cloud.google.com/iam/docs/create-managed-workload-identities)
|
658
|
+
* [Configure managed workload identity authentication for GKE](https://cloud.google.com/iam/docs/create-managed-workload-identities-gke)
|
376
659
|
* [Managing workload identity pools](https://cloud.google.com/iam/docs/manage-workload-identity-pools-providers#pools)
|
377
660
|
|
378
661
|
## Example Usage
|
@@ -385,17 +668,67 @@ class WorkloadIdentityPool(pulumi.CustomResource):
|
|
385
668
|
|
386
669
|
example = gcp.iam.WorkloadIdentityPool("example", workload_identity_pool_id="example-pool")
|
387
670
|
```
|
388
|
-
### Iam Workload Identity Pool Full
|
671
|
+
### Iam Workload Identity Pool Full Federation Only Mode
|
672
|
+
|
673
|
+
```python
|
674
|
+
import pulumi
|
675
|
+
import pulumi_gcp as gcp
|
676
|
+
|
677
|
+
example = gcp.iam.WorkloadIdentityPool("example",
|
678
|
+
workload_identity_pool_id="example-pool",
|
679
|
+
display_name="Name of the pool",
|
680
|
+
description="Identity pool operates in FEDERATION_ONLY mode",
|
681
|
+
disabled=True,
|
682
|
+
mode="FEDERATION_ONLY")
|
683
|
+
```
|
684
|
+
### Iam Workload Identity Pool Full Trust Domain Mode
|
389
685
|
|
390
686
|
```python
|
391
687
|
import pulumi
|
392
688
|
import pulumi_gcp as gcp
|
689
|
+
import pulumi_std as std
|
393
690
|
|
394
691
|
example = gcp.iam.WorkloadIdentityPool("example",
|
395
692
|
workload_identity_pool_id="example-pool",
|
396
|
-
display_name="Name of pool",
|
397
|
-
description="Identity pool
|
398
|
-
disabled=True
|
693
|
+
display_name="Name of the pool",
|
694
|
+
description="Identity pool operates in TRUST_DOMAIN mode",
|
695
|
+
disabled=True,
|
696
|
+
mode="TRUST_DOMAIN",
|
697
|
+
inline_certificate_issuance_config={
|
698
|
+
"ca_pools": {
|
699
|
+
"us-central1": "projects/project-bar/locations/us-central1/caPools/ca-pool-bar",
|
700
|
+
"asia-east2": "projects/project-foo/locations/asia-east2/caPools/ca-pool-foo",
|
701
|
+
},
|
702
|
+
"lifetime": "86400s",
|
703
|
+
"rotation_window_percentage": 50,
|
704
|
+
"key_algorithm": "ECDSA_P256",
|
705
|
+
},
|
706
|
+
inline_trust_config={
|
707
|
+
"additional_trust_bundles": [
|
708
|
+
{
|
709
|
+
"trust_domain": "example.com",
|
710
|
+
"trust_anchors": [
|
711
|
+
{
|
712
|
+
"pem_certificate": std.file(input="test-fixtures/trust_anchor_1.pem").result,
|
713
|
+
},
|
714
|
+
{
|
715
|
+
"pem_certificate": std.file(input="test-fixtures/trust_anchor_2.pem").result,
|
716
|
+
},
|
717
|
+
],
|
718
|
+
},
|
719
|
+
{
|
720
|
+
"trust_domain": "example.net",
|
721
|
+
"trust_anchors": [
|
722
|
+
{
|
723
|
+
"pem_certificate": std.file(input="test-fixtures/trust_anchor_3.pem").result,
|
724
|
+
},
|
725
|
+
{
|
726
|
+
"pem_certificate": std.file(input="test-fixtures/trust_anchor_4.pem").result,
|
727
|
+
},
|
728
|
+
],
|
729
|
+
},
|
730
|
+
],
|
731
|
+
})
|
399
732
|
```
|
400
733
|
|
401
734
|
## Import
|
@@ -440,6 +773,9 @@ class WorkloadIdentityPool(pulumi.CustomResource):
|
|
440
773
|
description: Optional[pulumi.Input[builtins.str]] = None,
|
441
774
|
disabled: Optional[pulumi.Input[builtins.bool]] = None,
|
442
775
|
display_name: Optional[pulumi.Input[builtins.str]] = None,
|
776
|
+
inline_certificate_issuance_config: Optional[pulumi.Input[Union['WorkloadIdentityPoolInlineCertificateIssuanceConfigArgs', 'WorkloadIdentityPoolInlineCertificateIssuanceConfigArgsDict']]] = None,
|
777
|
+
inline_trust_config: Optional[pulumi.Input[Union['WorkloadIdentityPoolInlineTrustConfigArgs', 'WorkloadIdentityPoolInlineTrustConfigArgsDict']]] = None,
|
778
|
+
mode: Optional[pulumi.Input[builtins.str]] = None,
|
443
779
|
project: Optional[pulumi.Input[builtins.str]] = None,
|
444
780
|
workload_identity_pool_id: Optional[pulumi.Input[builtins.str]] = None,
|
445
781
|
__props__=None):
|
@@ -454,6 +790,9 @@ class WorkloadIdentityPool(pulumi.CustomResource):
|
|
454
790
|
__props__.__dict__["description"] = description
|
455
791
|
__props__.__dict__["disabled"] = disabled
|
456
792
|
__props__.__dict__["display_name"] = display_name
|
793
|
+
__props__.__dict__["inline_certificate_issuance_config"] = inline_certificate_issuance_config
|
794
|
+
__props__.__dict__["inline_trust_config"] = inline_trust_config
|
795
|
+
__props__.__dict__["mode"] = mode
|
457
796
|
__props__.__dict__["project"] = project
|
458
797
|
if workload_identity_pool_id is None and not opts.urn:
|
459
798
|
raise TypeError("Missing required property 'workload_identity_pool_id'")
|
@@ -473,6 +812,9 @@ class WorkloadIdentityPool(pulumi.CustomResource):
|
|
473
812
|
description: Optional[pulumi.Input[builtins.str]] = None,
|
474
813
|
disabled: Optional[pulumi.Input[builtins.bool]] = None,
|
475
814
|
display_name: Optional[pulumi.Input[builtins.str]] = None,
|
815
|
+
inline_certificate_issuance_config: Optional[pulumi.Input[Union['WorkloadIdentityPoolInlineCertificateIssuanceConfigArgs', 'WorkloadIdentityPoolInlineCertificateIssuanceConfigArgsDict']]] = None,
|
816
|
+
inline_trust_config: Optional[pulumi.Input[Union['WorkloadIdentityPoolInlineTrustConfigArgs', 'WorkloadIdentityPoolInlineTrustConfigArgsDict']]] = None,
|
817
|
+
mode: Optional[pulumi.Input[builtins.str]] = None,
|
476
818
|
name: Optional[pulumi.Input[builtins.str]] = None,
|
477
819
|
project: Optional[pulumi.Input[builtins.str]] = None,
|
478
820
|
state: Optional[pulumi.Input[builtins.str]] = None,
|
@@ -489,16 +831,44 @@ class WorkloadIdentityPool(pulumi.CustomResource):
|
|
489
831
|
existing tokens to access resources. If the pool is re-enabled, existing tokens grant
|
490
832
|
access again.
|
491
833
|
:param pulumi.Input[builtins.str] display_name: A display name for the pool. Cannot exceed 32 characters.
|
834
|
+
:param pulumi.Input[Union['WorkloadIdentityPoolInlineCertificateIssuanceConfigArgs', 'WorkloadIdentityPoolInlineCertificateIssuanceConfigArgsDict']] inline_certificate_issuance_config: Represents configuration for generating mutual TLS (mTLS) certificates for the identities
|
835
|
+
within this pool. Defines the Certificate Authority (CA) pool resources and configurations
|
836
|
+
required for issuance and rotation of mTLS workload certificates.
|
837
|
+
Structure is documented below.
|
838
|
+
:param pulumi.Input[Union['WorkloadIdentityPoolInlineTrustConfigArgs', 'WorkloadIdentityPoolInlineTrustConfigArgsDict']] inline_trust_config: Represents config to add additional trusted trust domains. Defines configuration for extending
|
839
|
+
trust to additional trust domains. By establishing trust with another domain, the current
|
840
|
+
domain will recognize and accept certificates issued by entities within the trusted domains.
|
841
|
+
Note that a trust domain automatically trusts itself, eliminating the need for explicit
|
842
|
+
configuration.
|
843
|
+
Structure is documented below.
|
844
|
+
:param pulumi.Input[builtins.str] mode: The mode for the pool is operating in. Pools with an unspecified mode will operate as if they
|
845
|
+
are in `FEDERATION_ONLY` mode.
|
846
|
+
|
847
|
+
> **Note** This field cannot be changed after the Workload Identity Pool is created. While
|
848
|
+
`pulumi preview` may show an update if you change this field's value, `pulumi up`
|
849
|
+
**will fail with an API error** (such as `Error 400: Attempted to update an immutable field.`).
|
850
|
+
To specify a different `mode`, please create a new Workload Identity Pool resource.
|
851
|
+
* `FEDERATION_ONLY`: Pools can only be used for federating external workload identities into
|
852
|
+
Google Cloud. Unless otherwise noted, no structure or format constraints are applied to
|
853
|
+
workload identities in a `FEDERATION_ONLY` mode pool, and you may not create any resources
|
854
|
+
within the pool besides providers.
|
855
|
+
* `TRUST_DOMAIN`: Pools can be used to assign identities to Google Cloud workloads. All
|
856
|
+
identities within a `TRUST_DOMAIN` mode pool must consist of a single namespace and individual
|
857
|
+
workload identifier. The subject identifier for all identities must conform to the following
|
858
|
+
format: `ns/<namespace>/sa/<workload_identifier>`.
|
859
|
+
`iam.WorkloadIdentityPoolProvider`s cannot be created within `TRUST_DOMAIN`
|
860
|
+
mode pools.
|
861
|
+
Possible values are: `FEDERATION_ONLY`, `TRUST_DOMAIN`.
|
492
862
|
:param pulumi.Input[builtins.str] name: The resource name of the pool as
|
493
863
|
`projects/{project_number}/locations/global/workloadIdentityPools/{workload_identity_pool_id}`.
|
494
864
|
:param pulumi.Input[builtins.str] project: The ID of the project in which the resource belongs.
|
495
865
|
If it is not provided, the provider project is used.
|
496
866
|
:param pulumi.Input[builtins.str] state: The state of the pool.
|
497
|
-
* STATE_UNSPECIFIED
|
498
|
-
* ACTIVE
|
499
|
-
* DELETED
|
867
|
+
* `STATE_UNSPECIFIED`: State unspecified.
|
868
|
+
* `ACTIVE`: The pool is active, and may be used in Google Cloud policies.
|
869
|
+
* `DELETED`: The pool is soft-deleted. Soft-deleted pools are permanently deleted after
|
500
870
|
approximately 30 days. You can restore a soft-deleted pool using
|
501
|
-
UndeleteWorkloadIdentityPool
|
871
|
+
`UndeleteWorkloadIdentityPool`. You cannot reuse the ID of a soft-deleted pool until it is
|
502
872
|
permanently deleted. While a pool is deleted, you cannot use it to exchange tokens, or
|
503
873
|
use existing tokens to access resources. If the pool is undeleted, existing tokens grant
|
504
874
|
access again.
|
@@ -516,6 +886,9 @@ class WorkloadIdentityPool(pulumi.CustomResource):
|
|
516
886
|
__props__.__dict__["description"] = description
|
517
887
|
__props__.__dict__["disabled"] = disabled
|
518
888
|
__props__.__dict__["display_name"] = display_name
|
889
|
+
__props__.__dict__["inline_certificate_issuance_config"] = inline_certificate_issuance_config
|
890
|
+
__props__.__dict__["inline_trust_config"] = inline_trust_config
|
891
|
+
__props__.__dict__["mode"] = mode
|
519
892
|
__props__.__dict__["name"] = name
|
520
893
|
__props__.__dict__["project"] = project
|
521
894
|
__props__.__dict__["state"] = state
|
@@ -548,6 +921,55 @@ class WorkloadIdentityPool(pulumi.CustomResource):
|
|
548
921
|
"""
|
549
922
|
return pulumi.get(self, "display_name")
|
550
923
|
|
924
|
+
@property
|
925
|
+
@pulumi.getter(name="inlineCertificateIssuanceConfig")
|
926
|
+
def inline_certificate_issuance_config(self) -> pulumi.Output[Optional['outputs.WorkloadIdentityPoolInlineCertificateIssuanceConfig']]:
|
927
|
+
"""
|
928
|
+
Represents configuration for generating mutual TLS (mTLS) certificates for the identities
|
929
|
+
within this pool. Defines the Certificate Authority (CA) pool resources and configurations
|
930
|
+
required for issuance and rotation of mTLS workload certificates.
|
931
|
+
Structure is documented below.
|
932
|
+
"""
|
933
|
+
return pulumi.get(self, "inline_certificate_issuance_config")
|
934
|
+
|
935
|
+
@property
|
936
|
+
@pulumi.getter(name="inlineTrustConfig")
|
937
|
+
def inline_trust_config(self) -> pulumi.Output[Optional['outputs.WorkloadIdentityPoolInlineTrustConfig']]:
|
938
|
+
"""
|
939
|
+
Represents config to add additional trusted trust domains. Defines configuration for extending
|
940
|
+
trust to additional trust domains. By establishing trust with another domain, the current
|
941
|
+
domain will recognize and accept certificates issued by entities within the trusted domains.
|
942
|
+
Note that a trust domain automatically trusts itself, eliminating the need for explicit
|
943
|
+
configuration.
|
944
|
+
Structure is documented below.
|
945
|
+
"""
|
946
|
+
return pulumi.get(self, "inline_trust_config")
|
947
|
+
|
948
|
+
@property
|
949
|
+
@pulumi.getter
|
950
|
+
def mode(self) -> pulumi.Output[Optional[builtins.str]]:
|
951
|
+
"""
|
952
|
+
The mode for the pool is operating in. Pools with an unspecified mode will operate as if they
|
953
|
+
are in `FEDERATION_ONLY` mode.
|
954
|
+
|
955
|
+
> **Note** This field cannot be changed after the Workload Identity Pool is created. While
|
956
|
+
`pulumi preview` may show an update if you change this field's value, `pulumi up`
|
957
|
+
**will fail with an API error** (such as `Error 400: Attempted to update an immutable field.`).
|
958
|
+
To specify a different `mode`, please create a new Workload Identity Pool resource.
|
959
|
+
* `FEDERATION_ONLY`: Pools can only be used for federating external workload identities into
|
960
|
+
Google Cloud. Unless otherwise noted, no structure or format constraints are applied to
|
961
|
+
workload identities in a `FEDERATION_ONLY` mode pool, and you may not create any resources
|
962
|
+
within the pool besides providers.
|
963
|
+
* `TRUST_DOMAIN`: Pools can be used to assign identities to Google Cloud workloads. All
|
964
|
+
identities within a `TRUST_DOMAIN` mode pool must consist of a single namespace and individual
|
965
|
+
workload identifier. The subject identifier for all identities must conform to the following
|
966
|
+
format: `ns/<namespace>/sa/<workload_identifier>`.
|
967
|
+
`iam.WorkloadIdentityPoolProvider`s cannot be created within `TRUST_DOMAIN`
|
968
|
+
mode pools.
|
969
|
+
Possible values are: `FEDERATION_ONLY`, `TRUST_DOMAIN`.
|
970
|
+
"""
|
971
|
+
return pulumi.get(self, "mode")
|
972
|
+
|
551
973
|
@property
|
552
974
|
@pulumi.getter
|
553
975
|
def name(self) -> pulumi.Output[builtins.str]:
|
@@ -571,11 +993,11 @@ class WorkloadIdentityPool(pulumi.CustomResource):
|
|
571
993
|
def state(self) -> pulumi.Output[builtins.str]:
|
572
994
|
"""
|
573
995
|
The state of the pool.
|
574
|
-
* STATE_UNSPECIFIED
|
575
|
-
* ACTIVE
|
576
|
-
* DELETED
|
996
|
+
* `STATE_UNSPECIFIED`: State unspecified.
|
997
|
+
* `ACTIVE`: The pool is active, and may be used in Google Cloud policies.
|
998
|
+
* `DELETED`: The pool is soft-deleted. Soft-deleted pools are permanently deleted after
|
577
999
|
approximately 30 days. You can restore a soft-deleted pool using
|
578
|
-
UndeleteWorkloadIdentityPool
|
1000
|
+
`UndeleteWorkloadIdentityPool`. You cannot reuse the ID of a soft-deleted pool until it is
|
579
1001
|
permanently deleted. While a pool is deleted, you cannot use it to exchange tokens, or
|
580
1002
|
use existing tokens to access resources. If the pool is undeleted, existing tokens grant
|
581
1003
|
access again.
|