pulumi-gcp 8.32.0a1747377897__py3-none-any.whl → 8.32.0a1747834582__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.0a1747377897.dist-info → pulumi_gcp-8.32.0a1747834582.dist-info}/METADATA +1 -1
- {pulumi_gcp-8.32.0a1747377897.dist-info → pulumi_gcp-8.32.0a1747834582.dist-info}/RECORD +256 -241
- {pulumi_gcp-8.32.0a1747377897.dist-info → pulumi_gcp-8.32.0a1747834582.dist-info}/WHEEL +1 -1
- {pulumi_gcp-8.32.0a1747377897.dist-info → pulumi_gcp-8.32.0a1747834582.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,787 @@
|
|
1
|
+
# coding=utf-8
|
2
|
+
# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
|
3
|
+
# *** Do not edit by hand unless you're certain you know what you are doing! ***
|
4
|
+
|
5
|
+
import builtins
|
6
|
+
import copy
|
7
|
+
import warnings
|
8
|
+
import sys
|
9
|
+
import pulumi
|
10
|
+
import pulumi.runtime
|
11
|
+
from typing import Any, Mapping, Optional, Sequence, Union, overload
|
12
|
+
if sys.version_info >= (3, 11):
|
13
|
+
from typing import NotRequired, TypedDict, TypeAlias
|
14
|
+
else:
|
15
|
+
from typing_extensions import NotRequired, TypedDict, TypeAlias
|
16
|
+
from .. import _utilities
|
17
|
+
|
18
|
+
__all__ = ['RowAccessPolicyArgs', 'RowAccessPolicy']
|
19
|
+
|
20
|
+
@pulumi.input_type
|
21
|
+
class RowAccessPolicyArgs:
|
22
|
+
def __init__(__self__, *,
|
23
|
+
dataset_id: pulumi.Input[builtins.str],
|
24
|
+
filter_predicate: pulumi.Input[builtins.str],
|
25
|
+
policy_id: pulumi.Input[builtins.str],
|
26
|
+
table_id: pulumi.Input[builtins.str],
|
27
|
+
grantees: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None,
|
28
|
+
project: Optional[pulumi.Input[builtins.str]] = None):
|
29
|
+
"""
|
30
|
+
The set of arguments for constructing a RowAccessPolicy resource.
|
31
|
+
:param pulumi.Input[builtins.str] dataset_id: The ID of the dataset containing this row access policy.
|
32
|
+
:param pulumi.Input[builtins.str] filter_predicate: A SQL boolean expression that represents the rows defined by this row
|
33
|
+
access policy, similar to the boolean expression in a WHERE clause of a
|
34
|
+
SELECT query on a table.
|
35
|
+
References to other tables, routines, and temporary functions are not
|
36
|
+
supported.
|
37
|
+
Examples: region="EU"
|
38
|
+
date_field = CAST('2019-9-27' as DATE)
|
39
|
+
nullable_field is not NULL
|
40
|
+
numeric_field BETWEEN 1.0 AND 5.0
|
41
|
+
|
42
|
+
|
43
|
+
- - -
|
44
|
+
:param pulumi.Input[builtins.str] policy_id: The ID of the row access policy. The ID must contain only
|
45
|
+
letters (a-z, A-Z), numbers (0-9), or underscores (_). The maximum
|
46
|
+
length is 256 characters.
|
47
|
+
:param pulumi.Input[builtins.str] table_id: The ID of the table containing this row access policy.
|
48
|
+
:param pulumi.Input[Sequence[pulumi.Input[builtins.str]]] grantees: Input only. The optional list of iam_member users or groups that specifies the initial
|
49
|
+
members that the row-level access policy should be created with.
|
50
|
+
grantees types:
|
51
|
+
- "user:alice@example.com": An email address that represents a specific
|
52
|
+
Google account.
|
53
|
+
- "serviceAccount:my-other-app@appspot.gserviceaccount.com": An email
|
54
|
+
address that represents a service account.
|
55
|
+
- "group:admins@example.com": An email address that represents a Google
|
56
|
+
group.
|
57
|
+
- "domain:example.com":The Google Workspace domain (primary) that
|
58
|
+
represents all the users of that domain.
|
59
|
+
- "allAuthenticatedUsers": A special identifier that represents all service
|
60
|
+
accounts and all users on the internet who have authenticated with a Google
|
61
|
+
Account. This identifier includes accounts that aren't connected to a
|
62
|
+
Google Workspace or Cloud Identity domain, such as personal Gmail accounts.
|
63
|
+
Users who aren't authenticated, such as anonymous visitors, aren't
|
64
|
+
included.
|
65
|
+
- "allUsers":A special identifier that represents anyone who is on
|
66
|
+
the internet, including authenticated and unauthenticated users. Because
|
67
|
+
BigQuery requires authentication before a user can access the service,
|
68
|
+
allUsers includes only authenticated users.
|
69
|
+
:param pulumi.Input[builtins.str] project: The ID of the project in which the resource belongs.
|
70
|
+
If it is not provided, the provider project is used.
|
71
|
+
"""
|
72
|
+
pulumi.set(__self__, "dataset_id", dataset_id)
|
73
|
+
pulumi.set(__self__, "filter_predicate", filter_predicate)
|
74
|
+
pulumi.set(__self__, "policy_id", policy_id)
|
75
|
+
pulumi.set(__self__, "table_id", table_id)
|
76
|
+
if grantees is not None:
|
77
|
+
pulumi.set(__self__, "grantees", grantees)
|
78
|
+
if project is not None:
|
79
|
+
pulumi.set(__self__, "project", project)
|
80
|
+
|
81
|
+
@property
|
82
|
+
@pulumi.getter(name="datasetId")
|
83
|
+
def dataset_id(self) -> pulumi.Input[builtins.str]:
|
84
|
+
"""
|
85
|
+
The ID of the dataset containing this row access policy.
|
86
|
+
"""
|
87
|
+
return pulumi.get(self, "dataset_id")
|
88
|
+
|
89
|
+
@dataset_id.setter
|
90
|
+
def dataset_id(self, value: pulumi.Input[builtins.str]):
|
91
|
+
pulumi.set(self, "dataset_id", value)
|
92
|
+
|
93
|
+
@property
|
94
|
+
@pulumi.getter(name="filterPredicate")
|
95
|
+
def filter_predicate(self) -> pulumi.Input[builtins.str]:
|
96
|
+
"""
|
97
|
+
A SQL boolean expression that represents the rows defined by this row
|
98
|
+
access policy, similar to the boolean expression in a WHERE clause of a
|
99
|
+
SELECT query on a table.
|
100
|
+
References to other tables, routines, and temporary functions are not
|
101
|
+
supported.
|
102
|
+
Examples: region="EU"
|
103
|
+
date_field = CAST('2019-9-27' as DATE)
|
104
|
+
nullable_field is not NULL
|
105
|
+
numeric_field BETWEEN 1.0 AND 5.0
|
106
|
+
|
107
|
+
|
108
|
+
- - -
|
109
|
+
"""
|
110
|
+
return pulumi.get(self, "filter_predicate")
|
111
|
+
|
112
|
+
@filter_predicate.setter
|
113
|
+
def filter_predicate(self, value: pulumi.Input[builtins.str]):
|
114
|
+
pulumi.set(self, "filter_predicate", value)
|
115
|
+
|
116
|
+
@property
|
117
|
+
@pulumi.getter(name="policyId")
|
118
|
+
def policy_id(self) -> pulumi.Input[builtins.str]:
|
119
|
+
"""
|
120
|
+
The ID of the row access policy. The ID must contain only
|
121
|
+
letters (a-z, A-Z), numbers (0-9), or underscores (_). The maximum
|
122
|
+
length is 256 characters.
|
123
|
+
"""
|
124
|
+
return pulumi.get(self, "policy_id")
|
125
|
+
|
126
|
+
@policy_id.setter
|
127
|
+
def policy_id(self, value: pulumi.Input[builtins.str]):
|
128
|
+
pulumi.set(self, "policy_id", value)
|
129
|
+
|
130
|
+
@property
|
131
|
+
@pulumi.getter(name="tableId")
|
132
|
+
def table_id(self) -> pulumi.Input[builtins.str]:
|
133
|
+
"""
|
134
|
+
The ID of the table containing this row access policy.
|
135
|
+
"""
|
136
|
+
return pulumi.get(self, "table_id")
|
137
|
+
|
138
|
+
@table_id.setter
|
139
|
+
def table_id(self, value: pulumi.Input[builtins.str]):
|
140
|
+
pulumi.set(self, "table_id", value)
|
141
|
+
|
142
|
+
@property
|
143
|
+
@pulumi.getter
|
144
|
+
def grantees(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]]:
|
145
|
+
"""
|
146
|
+
Input only. The optional list of iam_member users or groups that specifies the initial
|
147
|
+
members that the row-level access policy should be created with.
|
148
|
+
grantees types:
|
149
|
+
- "user:alice@example.com": An email address that represents a specific
|
150
|
+
Google account.
|
151
|
+
- "serviceAccount:my-other-app@appspot.gserviceaccount.com": An email
|
152
|
+
address that represents a service account.
|
153
|
+
- "group:admins@example.com": An email address that represents a Google
|
154
|
+
group.
|
155
|
+
- "domain:example.com":The Google Workspace domain (primary) that
|
156
|
+
represents all the users of that domain.
|
157
|
+
- "allAuthenticatedUsers": A special identifier that represents all service
|
158
|
+
accounts and all users on the internet who have authenticated with a Google
|
159
|
+
Account. This identifier includes accounts that aren't connected to a
|
160
|
+
Google Workspace or Cloud Identity domain, such as personal Gmail accounts.
|
161
|
+
Users who aren't authenticated, such as anonymous visitors, aren't
|
162
|
+
included.
|
163
|
+
- "allUsers":A special identifier that represents anyone who is on
|
164
|
+
the internet, including authenticated and unauthenticated users. Because
|
165
|
+
BigQuery requires authentication before a user can access the service,
|
166
|
+
allUsers includes only authenticated users.
|
167
|
+
"""
|
168
|
+
return pulumi.get(self, "grantees")
|
169
|
+
|
170
|
+
@grantees.setter
|
171
|
+
def grantees(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]]):
|
172
|
+
pulumi.set(self, "grantees", value)
|
173
|
+
|
174
|
+
@property
|
175
|
+
@pulumi.getter
|
176
|
+
def project(self) -> Optional[pulumi.Input[builtins.str]]:
|
177
|
+
"""
|
178
|
+
The ID of the project in which the resource belongs.
|
179
|
+
If it is not provided, the provider project is used.
|
180
|
+
"""
|
181
|
+
return pulumi.get(self, "project")
|
182
|
+
|
183
|
+
@project.setter
|
184
|
+
def project(self, value: Optional[pulumi.Input[builtins.str]]):
|
185
|
+
pulumi.set(self, "project", value)
|
186
|
+
|
187
|
+
|
188
|
+
@pulumi.input_type
|
189
|
+
class _RowAccessPolicyState:
|
190
|
+
def __init__(__self__, *,
|
191
|
+
creation_time: Optional[pulumi.Input[builtins.str]] = None,
|
192
|
+
dataset_id: Optional[pulumi.Input[builtins.str]] = None,
|
193
|
+
filter_predicate: Optional[pulumi.Input[builtins.str]] = None,
|
194
|
+
grantees: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None,
|
195
|
+
last_modified_time: Optional[pulumi.Input[builtins.str]] = None,
|
196
|
+
policy_id: Optional[pulumi.Input[builtins.str]] = None,
|
197
|
+
project: Optional[pulumi.Input[builtins.str]] = None,
|
198
|
+
table_id: Optional[pulumi.Input[builtins.str]] = None):
|
199
|
+
"""
|
200
|
+
Input properties used for looking up and filtering RowAccessPolicy resources.
|
201
|
+
:param pulumi.Input[builtins.str] creation_time: The time when this row access policy was created, in milliseconds since
|
202
|
+
the epoch.
|
203
|
+
:param pulumi.Input[builtins.str] dataset_id: The ID of the dataset containing this row access policy.
|
204
|
+
:param pulumi.Input[builtins.str] filter_predicate: A SQL boolean expression that represents the rows defined by this row
|
205
|
+
access policy, similar to the boolean expression in a WHERE clause of a
|
206
|
+
SELECT query on a table.
|
207
|
+
References to other tables, routines, and temporary functions are not
|
208
|
+
supported.
|
209
|
+
Examples: region="EU"
|
210
|
+
date_field = CAST('2019-9-27' as DATE)
|
211
|
+
nullable_field is not NULL
|
212
|
+
numeric_field BETWEEN 1.0 AND 5.0
|
213
|
+
|
214
|
+
|
215
|
+
- - -
|
216
|
+
:param pulumi.Input[Sequence[pulumi.Input[builtins.str]]] grantees: Input only. The optional list of iam_member users or groups that specifies the initial
|
217
|
+
members that the row-level access policy should be created with.
|
218
|
+
grantees types:
|
219
|
+
- "user:alice@example.com": An email address that represents a specific
|
220
|
+
Google account.
|
221
|
+
- "serviceAccount:my-other-app@appspot.gserviceaccount.com": An email
|
222
|
+
address that represents a service account.
|
223
|
+
- "group:admins@example.com": An email address that represents a Google
|
224
|
+
group.
|
225
|
+
- "domain:example.com":The Google Workspace domain (primary) that
|
226
|
+
represents all the users of that domain.
|
227
|
+
- "allAuthenticatedUsers": A special identifier that represents all service
|
228
|
+
accounts and all users on the internet who have authenticated with a Google
|
229
|
+
Account. This identifier includes accounts that aren't connected to a
|
230
|
+
Google Workspace or Cloud Identity domain, such as personal Gmail accounts.
|
231
|
+
Users who aren't authenticated, such as anonymous visitors, aren't
|
232
|
+
included.
|
233
|
+
- "allUsers":A special identifier that represents anyone who is on
|
234
|
+
the internet, including authenticated and unauthenticated users. Because
|
235
|
+
BigQuery requires authentication before a user can access the service,
|
236
|
+
allUsers includes only authenticated users.
|
237
|
+
:param pulumi.Input[builtins.str] last_modified_time: The time when this row access policy was last modified, in milliseconds
|
238
|
+
since the epoch.
|
239
|
+
:param pulumi.Input[builtins.str] policy_id: The ID of the row access policy. The ID must contain only
|
240
|
+
letters (a-z, A-Z), numbers (0-9), or underscores (_). The maximum
|
241
|
+
length is 256 characters.
|
242
|
+
:param pulumi.Input[builtins.str] project: The ID of the project in which the resource belongs.
|
243
|
+
If it is not provided, the provider project is used.
|
244
|
+
:param pulumi.Input[builtins.str] table_id: The ID of the table containing this row access policy.
|
245
|
+
"""
|
246
|
+
if creation_time is not None:
|
247
|
+
pulumi.set(__self__, "creation_time", creation_time)
|
248
|
+
if dataset_id is not None:
|
249
|
+
pulumi.set(__self__, "dataset_id", dataset_id)
|
250
|
+
if filter_predicate is not None:
|
251
|
+
pulumi.set(__self__, "filter_predicate", filter_predicate)
|
252
|
+
if grantees is not None:
|
253
|
+
pulumi.set(__self__, "grantees", grantees)
|
254
|
+
if last_modified_time is not None:
|
255
|
+
pulumi.set(__self__, "last_modified_time", last_modified_time)
|
256
|
+
if policy_id is not None:
|
257
|
+
pulumi.set(__self__, "policy_id", policy_id)
|
258
|
+
if project is not None:
|
259
|
+
pulumi.set(__self__, "project", project)
|
260
|
+
if table_id is not None:
|
261
|
+
pulumi.set(__self__, "table_id", table_id)
|
262
|
+
|
263
|
+
@property
|
264
|
+
@pulumi.getter(name="creationTime")
|
265
|
+
def creation_time(self) -> Optional[pulumi.Input[builtins.str]]:
|
266
|
+
"""
|
267
|
+
The time when this row access policy was created, in milliseconds since
|
268
|
+
the epoch.
|
269
|
+
"""
|
270
|
+
return pulumi.get(self, "creation_time")
|
271
|
+
|
272
|
+
@creation_time.setter
|
273
|
+
def creation_time(self, value: Optional[pulumi.Input[builtins.str]]):
|
274
|
+
pulumi.set(self, "creation_time", value)
|
275
|
+
|
276
|
+
@property
|
277
|
+
@pulumi.getter(name="datasetId")
|
278
|
+
def dataset_id(self) -> Optional[pulumi.Input[builtins.str]]:
|
279
|
+
"""
|
280
|
+
The ID of the dataset containing this row access policy.
|
281
|
+
"""
|
282
|
+
return pulumi.get(self, "dataset_id")
|
283
|
+
|
284
|
+
@dataset_id.setter
|
285
|
+
def dataset_id(self, value: Optional[pulumi.Input[builtins.str]]):
|
286
|
+
pulumi.set(self, "dataset_id", value)
|
287
|
+
|
288
|
+
@property
|
289
|
+
@pulumi.getter(name="filterPredicate")
|
290
|
+
def filter_predicate(self) -> Optional[pulumi.Input[builtins.str]]:
|
291
|
+
"""
|
292
|
+
A SQL boolean expression that represents the rows defined by this row
|
293
|
+
access policy, similar to the boolean expression in a WHERE clause of a
|
294
|
+
SELECT query on a table.
|
295
|
+
References to other tables, routines, and temporary functions are not
|
296
|
+
supported.
|
297
|
+
Examples: region="EU"
|
298
|
+
date_field = CAST('2019-9-27' as DATE)
|
299
|
+
nullable_field is not NULL
|
300
|
+
numeric_field BETWEEN 1.0 AND 5.0
|
301
|
+
|
302
|
+
|
303
|
+
- - -
|
304
|
+
"""
|
305
|
+
return pulumi.get(self, "filter_predicate")
|
306
|
+
|
307
|
+
@filter_predicate.setter
|
308
|
+
def filter_predicate(self, value: Optional[pulumi.Input[builtins.str]]):
|
309
|
+
pulumi.set(self, "filter_predicate", value)
|
310
|
+
|
311
|
+
@property
|
312
|
+
@pulumi.getter
|
313
|
+
def grantees(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]]:
|
314
|
+
"""
|
315
|
+
Input only. The optional list of iam_member users or groups that specifies the initial
|
316
|
+
members that the row-level access policy should be created with.
|
317
|
+
grantees types:
|
318
|
+
- "user:alice@example.com": An email address that represents a specific
|
319
|
+
Google account.
|
320
|
+
- "serviceAccount:my-other-app@appspot.gserviceaccount.com": An email
|
321
|
+
address that represents a service account.
|
322
|
+
- "group:admins@example.com": An email address that represents a Google
|
323
|
+
group.
|
324
|
+
- "domain:example.com":The Google Workspace domain (primary) that
|
325
|
+
represents all the users of that domain.
|
326
|
+
- "allAuthenticatedUsers": A special identifier that represents all service
|
327
|
+
accounts and all users on the internet who have authenticated with a Google
|
328
|
+
Account. This identifier includes accounts that aren't connected to a
|
329
|
+
Google Workspace or Cloud Identity domain, such as personal Gmail accounts.
|
330
|
+
Users who aren't authenticated, such as anonymous visitors, aren't
|
331
|
+
included.
|
332
|
+
- "allUsers":A special identifier that represents anyone who is on
|
333
|
+
the internet, including authenticated and unauthenticated users. Because
|
334
|
+
BigQuery requires authentication before a user can access the service,
|
335
|
+
allUsers includes only authenticated users.
|
336
|
+
"""
|
337
|
+
return pulumi.get(self, "grantees")
|
338
|
+
|
339
|
+
@grantees.setter
|
340
|
+
def grantees(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]]):
|
341
|
+
pulumi.set(self, "grantees", value)
|
342
|
+
|
343
|
+
@property
|
344
|
+
@pulumi.getter(name="lastModifiedTime")
|
345
|
+
def last_modified_time(self) -> Optional[pulumi.Input[builtins.str]]:
|
346
|
+
"""
|
347
|
+
The time when this row access policy was last modified, in milliseconds
|
348
|
+
since the epoch.
|
349
|
+
"""
|
350
|
+
return pulumi.get(self, "last_modified_time")
|
351
|
+
|
352
|
+
@last_modified_time.setter
|
353
|
+
def last_modified_time(self, value: Optional[pulumi.Input[builtins.str]]):
|
354
|
+
pulumi.set(self, "last_modified_time", value)
|
355
|
+
|
356
|
+
@property
|
357
|
+
@pulumi.getter(name="policyId")
|
358
|
+
def policy_id(self) -> Optional[pulumi.Input[builtins.str]]:
|
359
|
+
"""
|
360
|
+
The ID of the row access policy. The ID must contain only
|
361
|
+
letters (a-z, A-Z), numbers (0-9), or underscores (_). The maximum
|
362
|
+
length is 256 characters.
|
363
|
+
"""
|
364
|
+
return pulumi.get(self, "policy_id")
|
365
|
+
|
366
|
+
@policy_id.setter
|
367
|
+
def policy_id(self, value: Optional[pulumi.Input[builtins.str]]):
|
368
|
+
pulumi.set(self, "policy_id", value)
|
369
|
+
|
370
|
+
@property
|
371
|
+
@pulumi.getter
|
372
|
+
def project(self) -> Optional[pulumi.Input[builtins.str]]:
|
373
|
+
"""
|
374
|
+
The ID of the project in which the resource belongs.
|
375
|
+
If it is not provided, the provider project is used.
|
376
|
+
"""
|
377
|
+
return pulumi.get(self, "project")
|
378
|
+
|
379
|
+
@project.setter
|
380
|
+
def project(self, value: Optional[pulumi.Input[builtins.str]]):
|
381
|
+
pulumi.set(self, "project", value)
|
382
|
+
|
383
|
+
@property
|
384
|
+
@pulumi.getter(name="tableId")
|
385
|
+
def table_id(self) -> Optional[pulumi.Input[builtins.str]]:
|
386
|
+
"""
|
387
|
+
The ID of the table containing this row access policy.
|
388
|
+
"""
|
389
|
+
return pulumi.get(self, "table_id")
|
390
|
+
|
391
|
+
@table_id.setter
|
392
|
+
def table_id(self, value: Optional[pulumi.Input[builtins.str]]):
|
393
|
+
pulumi.set(self, "table_id", value)
|
394
|
+
|
395
|
+
|
396
|
+
@pulumi.type_token("gcp:bigquery/rowAccessPolicy:RowAccessPolicy")
|
397
|
+
class RowAccessPolicy(pulumi.CustomResource):
|
398
|
+
@overload
|
399
|
+
def __init__(__self__,
|
400
|
+
resource_name: str,
|
401
|
+
opts: Optional[pulumi.ResourceOptions] = None,
|
402
|
+
dataset_id: Optional[pulumi.Input[builtins.str]] = None,
|
403
|
+
filter_predicate: Optional[pulumi.Input[builtins.str]] = None,
|
404
|
+
grantees: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None,
|
405
|
+
policy_id: Optional[pulumi.Input[builtins.str]] = None,
|
406
|
+
project: Optional[pulumi.Input[builtins.str]] = None,
|
407
|
+
table_id: Optional[pulumi.Input[builtins.str]] = None,
|
408
|
+
__props__=None):
|
409
|
+
"""
|
410
|
+
Represents access on a subset of rows on the specified table, defined by its filter predicate. Access to the subset of rows is controlled by its IAM policy.
|
411
|
+
|
412
|
+
## Example Usage
|
413
|
+
|
414
|
+
### Bigquery Row Access Policy Basic
|
415
|
+
|
416
|
+
```python
|
417
|
+
import pulumi
|
418
|
+
import pulumi_gcp as gcp
|
419
|
+
|
420
|
+
example = gcp.bigquery.Dataset("example",
|
421
|
+
dataset_id="dataset_id",
|
422
|
+
location="US")
|
423
|
+
example_table = gcp.bigquery.Table("example",
|
424
|
+
deletion_protection=False,
|
425
|
+
dataset_id=example.dataset_id,
|
426
|
+
table_id="table_id")
|
427
|
+
example_row_access_policy = gcp.bigquery.RowAccessPolicy("example",
|
428
|
+
dataset_id=example.dataset_id,
|
429
|
+
table_id=example_table.table_id,
|
430
|
+
policy_id="policy_id",
|
431
|
+
filter_predicate="nullable_field is not NULL",
|
432
|
+
grantees=["domain:google.com"])
|
433
|
+
```
|
434
|
+
|
435
|
+
## Import
|
436
|
+
|
437
|
+
RowAccessPolicy can be imported using any of these accepted formats:
|
438
|
+
|
439
|
+
* `projects/{{project}}/datasets/{{dataset_id}}/tables/{{table_id}}/rowAccessPolicies/{{policy_id}}`
|
440
|
+
|
441
|
+
* `{{project}}/{{dataset_id}}/{{table_id}}/{{policy_id}}`
|
442
|
+
|
443
|
+
* `{{dataset_id}}/{{table_id}}/{{policy_id}}`
|
444
|
+
|
445
|
+
When using the `pulumi import` command, RowAccessPolicy can be imported using one of the formats above. For example:
|
446
|
+
|
447
|
+
```sh
|
448
|
+
$ pulumi import gcp:bigquery/rowAccessPolicy:RowAccessPolicy default projects/{{project}}/datasets/{{dataset_id}}/tables/{{table_id}}/rowAccessPolicies/{{policy_id}}
|
449
|
+
```
|
450
|
+
|
451
|
+
```sh
|
452
|
+
$ pulumi import gcp:bigquery/rowAccessPolicy:RowAccessPolicy default {{project}}/{{dataset_id}}/{{table_id}}/{{policy_id}}
|
453
|
+
```
|
454
|
+
|
455
|
+
```sh
|
456
|
+
$ pulumi import gcp:bigquery/rowAccessPolicy:RowAccessPolicy default {{dataset_id}}/{{table_id}}/{{policy_id}}
|
457
|
+
```
|
458
|
+
|
459
|
+
:param str resource_name: The name of the resource.
|
460
|
+
:param pulumi.ResourceOptions opts: Options for the resource.
|
461
|
+
:param pulumi.Input[builtins.str] dataset_id: The ID of the dataset containing this row access policy.
|
462
|
+
:param pulumi.Input[builtins.str] filter_predicate: A SQL boolean expression that represents the rows defined by this row
|
463
|
+
access policy, similar to the boolean expression in a WHERE clause of a
|
464
|
+
SELECT query on a table.
|
465
|
+
References to other tables, routines, and temporary functions are not
|
466
|
+
supported.
|
467
|
+
Examples: region="EU"
|
468
|
+
date_field = CAST('2019-9-27' as DATE)
|
469
|
+
nullable_field is not NULL
|
470
|
+
numeric_field BETWEEN 1.0 AND 5.0
|
471
|
+
|
472
|
+
|
473
|
+
- - -
|
474
|
+
:param pulumi.Input[Sequence[pulumi.Input[builtins.str]]] grantees: Input only. The optional list of iam_member users or groups that specifies the initial
|
475
|
+
members that the row-level access policy should be created with.
|
476
|
+
grantees types:
|
477
|
+
- "user:alice@example.com": An email address that represents a specific
|
478
|
+
Google account.
|
479
|
+
- "serviceAccount:my-other-app@appspot.gserviceaccount.com": An email
|
480
|
+
address that represents a service account.
|
481
|
+
- "group:admins@example.com": An email address that represents a Google
|
482
|
+
group.
|
483
|
+
- "domain:example.com":The Google Workspace domain (primary) that
|
484
|
+
represents all the users of that domain.
|
485
|
+
- "allAuthenticatedUsers": A special identifier that represents all service
|
486
|
+
accounts and all users on the internet who have authenticated with a Google
|
487
|
+
Account. This identifier includes accounts that aren't connected to a
|
488
|
+
Google Workspace or Cloud Identity domain, such as personal Gmail accounts.
|
489
|
+
Users who aren't authenticated, such as anonymous visitors, aren't
|
490
|
+
included.
|
491
|
+
- "allUsers":A special identifier that represents anyone who is on
|
492
|
+
the internet, including authenticated and unauthenticated users. Because
|
493
|
+
BigQuery requires authentication before a user can access the service,
|
494
|
+
allUsers includes only authenticated users.
|
495
|
+
:param pulumi.Input[builtins.str] policy_id: The ID of the row access policy. The ID must contain only
|
496
|
+
letters (a-z, A-Z), numbers (0-9), or underscores (_). The maximum
|
497
|
+
length is 256 characters.
|
498
|
+
:param pulumi.Input[builtins.str] project: The ID of the project in which the resource belongs.
|
499
|
+
If it is not provided, the provider project is used.
|
500
|
+
:param pulumi.Input[builtins.str] table_id: The ID of the table containing this row access policy.
|
501
|
+
"""
|
502
|
+
...
|
503
|
+
@overload
|
504
|
+
def __init__(__self__,
|
505
|
+
resource_name: str,
|
506
|
+
args: RowAccessPolicyArgs,
|
507
|
+
opts: Optional[pulumi.ResourceOptions] = None):
|
508
|
+
"""
|
509
|
+
Represents access on a subset of rows on the specified table, defined by its filter predicate. Access to the subset of rows is controlled by its IAM policy.
|
510
|
+
|
511
|
+
## Example Usage
|
512
|
+
|
513
|
+
### Bigquery Row Access Policy Basic
|
514
|
+
|
515
|
+
```python
|
516
|
+
import pulumi
|
517
|
+
import pulumi_gcp as gcp
|
518
|
+
|
519
|
+
example = gcp.bigquery.Dataset("example",
|
520
|
+
dataset_id="dataset_id",
|
521
|
+
location="US")
|
522
|
+
example_table = gcp.bigquery.Table("example",
|
523
|
+
deletion_protection=False,
|
524
|
+
dataset_id=example.dataset_id,
|
525
|
+
table_id="table_id")
|
526
|
+
example_row_access_policy = gcp.bigquery.RowAccessPolicy("example",
|
527
|
+
dataset_id=example.dataset_id,
|
528
|
+
table_id=example_table.table_id,
|
529
|
+
policy_id="policy_id",
|
530
|
+
filter_predicate="nullable_field is not NULL",
|
531
|
+
grantees=["domain:google.com"])
|
532
|
+
```
|
533
|
+
|
534
|
+
## Import
|
535
|
+
|
536
|
+
RowAccessPolicy can be imported using any of these accepted formats:
|
537
|
+
|
538
|
+
* `projects/{{project}}/datasets/{{dataset_id}}/tables/{{table_id}}/rowAccessPolicies/{{policy_id}}`
|
539
|
+
|
540
|
+
* `{{project}}/{{dataset_id}}/{{table_id}}/{{policy_id}}`
|
541
|
+
|
542
|
+
* `{{dataset_id}}/{{table_id}}/{{policy_id}}`
|
543
|
+
|
544
|
+
When using the `pulumi import` command, RowAccessPolicy can be imported using one of the formats above. For example:
|
545
|
+
|
546
|
+
```sh
|
547
|
+
$ pulumi import gcp:bigquery/rowAccessPolicy:RowAccessPolicy default projects/{{project}}/datasets/{{dataset_id}}/tables/{{table_id}}/rowAccessPolicies/{{policy_id}}
|
548
|
+
```
|
549
|
+
|
550
|
+
```sh
|
551
|
+
$ pulumi import gcp:bigquery/rowAccessPolicy:RowAccessPolicy default {{project}}/{{dataset_id}}/{{table_id}}/{{policy_id}}
|
552
|
+
```
|
553
|
+
|
554
|
+
```sh
|
555
|
+
$ pulumi import gcp:bigquery/rowAccessPolicy:RowAccessPolicy default {{dataset_id}}/{{table_id}}/{{policy_id}}
|
556
|
+
```
|
557
|
+
|
558
|
+
:param str resource_name: The name of the resource.
|
559
|
+
:param RowAccessPolicyArgs args: The arguments to use to populate this resource's properties.
|
560
|
+
:param pulumi.ResourceOptions opts: Options for the resource.
|
561
|
+
"""
|
562
|
+
...
|
563
|
+
def __init__(__self__, resource_name: str, *args, **kwargs):
|
564
|
+
resource_args, opts = _utilities.get_resource_args_opts(RowAccessPolicyArgs, pulumi.ResourceOptions, *args, **kwargs)
|
565
|
+
if resource_args is not None:
|
566
|
+
__self__._internal_init(resource_name, opts, **resource_args.__dict__)
|
567
|
+
else:
|
568
|
+
__self__._internal_init(resource_name, *args, **kwargs)
|
569
|
+
|
570
|
+
def _internal_init(__self__,
|
571
|
+
resource_name: str,
|
572
|
+
opts: Optional[pulumi.ResourceOptions] = None,
|
573
|
+
dataset_id: Optional[pulumi.Input[builtins.str]] = None,
|
574
|
+
filter_predicate: Optional[pulumi.Input[builtins.str]] = None,
|
575
|
+
grantees: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None,
|
576
|
+
policy_id: Optional[pulumi.Input[builtins.str]] = None,
|
577
|
+
project: Optional[pulumi.Input[builtins.str]] = None,
|
578
|
+
table_id: Optional[pulumi.Input[builtins.str]] = None,
|
579
|
+
__props__=None):
|
580
|
+
opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
|
581
|
+
if not isinstance(opts, pulumi.ResourceOptions):
|
582
|
+
raise TypeError('Expected resource options to be a ResourceOptions instance')
|
583
|
+
if opts.id is None:
|
584
|
+
if __props__ is not None:
|
585
|
+
raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
|
586
|
+
__props__ = RowAccessPolicyArgs.__new__(RowAccessPolicyArgs)
|
587
|
+
|
588
|
+
if dataset_id is None and not opts.urn:
|
589
|
+
raise TypeError("Missing required property 'dataset_id'")
|
590
|
+
__props__.__dict__["dataset_id"] = dataset_id
|
591
|
+
if filter_predicate is None and not opts.urn:
|
592
|
+
raise TypeError("Missing required property 'filter_predicate'")
|
593
|
+
__props__.__dict__["filter_predicate"] = filter_predicate
|
594
|
+
__props__.__dict__["grantees"] = grantees
|
595
|
+
if policy_id is None and not opts.urn:
|
596
|
+
raise TypeError("Missing required property 'policy_id'")
|
597
|
+
__props__.__dict__["policy_id"] = policy_id
|
598
|
+
__props__.__dict__["project"] = project
|
599
|
+
if table_id is None and not opts.urn:
|
600
|
+
raise TypeError("Missing required property 'table_id'")
|
601
|
+
__props__.__dict__["table_id"] = table_id
|
602
|
+
__props__.__dict__["creation_time"] = None
|
603
|
+
__props__.__dict__["last_modified_time"] = None
|
604
|
+
super(RowAccessPolicy, __self__).__init__(
|
605
|
+
'gcp:bigquery/rowAccessPolicy:RowAccessPolicy',
|
606
|
+
resource_name,
|
607
|
+
__props__,
|
608
|
+
opts)
|
609
|
+
|
610
|
+
@staticmethod
|
611
|
+
def get(resource_name: str,
|
612
|
+
id: pulumi.Input[str],
|
613
|
+
opts: Optional[pulumi.ResourceOptions] = None,
|
614
|
+
creation_time: Optional[pulumi.Input[builtins.str]] = None,
|
615
|
+
dataset_id: Optional[pulumi.Input[builtins.str]] = None,
|
616
|
+
filter_predicate: Optional[pulumi.Input[builtins.str]] = None,
|
617
|
+
grantees: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None,
|
618
|
+
last_modified_time: Optional[pulumi.Input[builtins.str]] = None,
|
619
|
+
policy_id: Optional[pulumi.Input[builtins.str]] = None,
|
620
|
+
project: Optional[pulumi.Input[builtins.str]] = None,
|
621
|
+
table_id: Optional[pulumi.Input[builtins.str]] = None) -> 'RowAccessPolicy':
|
622
|
+
"""
|
623
|
+
Get an existing RowAccessPolicy resource's state with the given name, id, and optional extra
|
624
|
+
properties used to qualify the lookup.
|
625
|
+
|
626
|
+
:param str resource_name: The unique name of the resulting resource.
|
627
|
+
:param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
|
628
|
+
:param pulumi.ResourceOptions opts: Options for the resource.
|
629
|
+
:param pulumi.Input[builtins.str] creation_time: The time when this row access policy was created, in milliseconds since
|
630
|
+
the epoch.
|
631
|
+
:param pulumi.Input[builtins.str] dataset_id: The ID of the dataset containing this row access policy.
|
632
|
+
:param pulumi.Input[builtins.str] filter_predicate: A SQL boolean expression that represents the rows defined by this row
|
633
|
+
access policy, similar to the boolean expression in a WHERE clause of a
|
634
|
+
SELECT query on a table.
|
635
|
+
References to other tables, routines, and temporary functions are not
|
636
|
+
supported.
|
637
|
+
Examples: region="EU"
|
638
|
+
date_field = CAST('2019-9-27' as DATE)
|
639
|
+
nullable_field is not NULL
|
640
|
+
numeric_field BETWEEN 1.0 AND 5.0
|
641
|
+
|
642
|
+
|
643
|
+
- - -
|
644
|
+
:param pulumi.Input[Sequence[pulumi.Input[builtins.str]]] grantees: Input only. The optional list of iam_member users or groups that specifies the initial
|
645
|
+
members that the row-level access policy should be created with.
|
646
|
+
grantees types:
|
647
|
+
- "user:alice@example.com": An email address that represents a specific
|
648
|
+
Google account.
|
649
|
+
- "serviceAccount:my-other-app@appspot.gserviceaccount.com": An email
|
650
|
+
address that represents a service account.
|
651
|
+
- "group:admins@example.com": An email address that represents a Google
|
652
|
+
group.
|
653
|
+
- "domain:example.com":The Google Workspace domain (primary) that
|
654
|
+
represents all the users of that domain.
|
655
|
+
- "allAuthenticatedUsers": A special identifier that represents all service
|
656
|
+
accounts and all users on the internet who have authenticated with a Google
|
657
|
+
Account. This identifier includes accounts that aren't connected to a
|
658
|
+
Google Workspace or Cloud Identity domain, such as personal Gmail accounts.
|
659
|
+
Users who aren't authenticated, such as anonymous visitors, aren't
|
660
|
+
included.
|
661
|
+
- "allUsers":A special identifier that represents anyone who is on
|
662
|
+
the internet, including authenticated and unauthenticated users. Because
|
663
|
+
BigQuery requires authentication before a user can access the service,
|
664
|
+
allUsers includes only authenticated users.
|
665
|
+
:param pulumi.Input[builtins.str] last_modified_time: The time when this row access policy was last modified, in milliseconds
|
666
|
+
since the epoch.
|
667
|
+
:param pulumi.Input[builtins.str] policy_id: The ID of the row access policy. The ID must contain only
|
668
|
+
letters (a-z, A-Z), numbers (0-9), or underscores (_). The maximum
|
669
|
+
length is 256 characters.
|
670
|
+
:param pulumi.Input[builtins.str] project: The ID of the project in which the resource belongs.
|
671
|
+
If it is not provided, the provider project is used.
|
672
|
+
:param pulumi.Input[builtins.str] table_id: The ID of the table containing this row access policy.
|
673
|
+
"""
|
674
|
+
opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
|
675
|
+
|
676
|
+
__props__ = _RowAccessPolicyState.__new__(_RowAccessPolicyState)
|
677
|
+
|
678
|
+
__props__.__dict__["creation_time"] = creation_time
|
679
|
+
__props__.__dict__["dataset_id"] = dataset_id
|
680
|
+
__props__.__dict__["filter_predicate"] = filter_predicate
|
681
|
+
__props__.__dict__["grantees"] = grantees
|
682
|
+
__props__.__dict__["last_modified_time"] = last_modified_time
|
683
|
+
__props__.__dict__["policy_id"] = policy_id
|
684
|
+
__props__.__dict__["project"] = project
|
685
|
+
__props__.__dict__["table_id"] = table_id
|
686
|
+
return RowAccessPolicy(resource_name, opts=opts, __props__=__props__)
|
687
|
+
|
688
|
+
@property
|
689
|
+
@pulumi.getter(name="creationTime")
|
690
|
+
def creation_time(self) -> pulumi.Output[builtins.str]:
|
691
|
+
"""
|
692
|
+
The time when this row access policy was created, in milliseconds since
|
693
|
+
the epoch.
|
694
|
+
"""
|
695
|
+
return pulumi.get(self, "creation_time")
|
696
|
+
|
697
|
+
@property
|
698
|
+
@pulumi.getter(name="datasetId")
|
699
|
+
def dataset_id(self) -> pulumi.Output[builtins.str]:
|
700
|
+
"""
|
701
|
+
The ID of the dataset containing this row access policy.
|
702
|
+
"""
|
703
|
+
return pulumi.get(self, "dataset_id")
|
704
|
+
|
705
|
+
@property
|
706
|
+
@pulumi.getter(name="filterPredicate")
|
707
|
+
def filter_predicate(self) -> pulumi.Output[builtins.str]:
|
708
|
+
"""
|
709
|
+
A SQL boolean expression that represents the rows defined by this row
|
710
|
+
access policy, similar to the boolean expression in a WHERE clause of a
|
711
|
+
SELECT query on a table.
|
712
|
+
References to other tables, routines, and temporary functions are not
|
713
|
+
supported.
|
714
|
+
Examples: region="EU"
|
715
|
+
date_field = CAST('2019-9-27' as DATE)
|
716
|
+
nullable_field is not NULL
|
717
|
+
numeric_field BETWEEN 1.0 AND 5.0
|
718
|
+
|
719
|
+
|
720
|
+
- - -
|
721
|
+
"""
|
722
|
+
return pulumi.get(self, "filter_predicate")
|
723
|
+
|
724
|
+
@property
|
725
|
+
@pulumi.getter
|
726
|
+
def grantees(self) -> pulumi.Output[Optional[Sequence[builtins.str]]]:
|
727
|
+
"""
|
728
|
+
Input only. The optional list of iam_member users or groups that specifies the initial
|
729
|
+
members that the row-level access policy should be created with.
|
730
|
+
grantees types:
|
731
|
+
- "user:alice@example.com": An email address that represents a specific
|
732
|
+
Google account.
|
733
|
+
- "serviceAccount:my-other-app@appspot.gserviceaccount.com": An email
|
734
|
+
address that represents a service account.
|
735
|
+
- "group:admins@example.com": An email address that represents a Google
|
736
|
+
group.
|
737
|
+
- "domain:example.com":The Google Workspace domain (primary) that
|
738
|
+
represents all the users of that domain.
|
739
|
+
- "allAuthenticatedUsers": A special identifier that represents all service
|
740
|
+
accounts and all users on the internet who have authenticated with a Google
|
741
|
+
Account. This identifier includes accounts that aren't connected to a
|
742
|
+
Google Workspace or Cloud Identity domain, such as personal Gmail accounts.
|
743
|
+
Users who aren't authenticated, such as anonymous visitors, aren't
|
744
|
+
included.
|
745
|
+
- "allUsers":A special identifier that represents anyone who is on
|
746
|
+
the internet, including authenticated and unauthenticated users. Because
|
747
|
+
BigQuery requires authentication before a user can access the service,
|
748
|
+
allUsers includes only authenticated users.
|
749
|
+
"""
|
750
|
+
return pulumi.get(self, "grantees")
|
751
|
+
|
752
|
+
@property
|
753
|
+
@pulumi.getter(name="lastModifiedTime")
|
754
|
+
def last_modified_time(self) -> pulumi.Output[builtins.str]:
|
755
|
+
"""
|
756
|
+
The time when this row access policy was last modified, in milliseconds
|
757
|
+
since the epoch.
|
758
|
+
"""
|
759
|
+
return pulumi.get(self, "last_modified_time")
|
760
|
+
|
761
|
+
@property
|
762
|
+
@pulumi.getter(name="policyId")
|
763
|
+
def policy_id(self) -> pulumi.Output[builtins.str]:
|
764
|
+
"""
|
765
|
+
The ID of the row access policy. The ID must contain only
|
766
|
+
letters (a-z, A-Z), numbers (0-9), or underscores (_). The maximum
|
767
|
+
length is 256 characters.
|
768
|
+
"""
|
769
|
+
return pulumi.get(self, "policy_id")
|
770
|
+
|
771
|
+
@property
|
772
|
+
@pulumi.getter
|
773
|
+
def project(self) -> pulumi.Output[builtins.str]:
|
774
|
+
"""
|
775
|
+
The ID of the project in which the resource belongs.
|
776
|
+
If it is not provided, the provider project is used.
|
777
|
+
"""
|
778
|
+
return pulumi.get(self, "project")
|
779
|
+
|
780
|
+
@property
|
781
|
+
@pulumi.getter(name="tableId")
|
782
|
+
def table_id(self) -> pulumi.Output[builtins.str]:
|
783
|
+
"""
|
784
|
+
The ID of the table containing this row access policy.
|
785
|
+
"""
|
786
|
+
return pulumi.get(self, "table_id")
|
787
|
+
|