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.
Files changed (256) hide show
  1. pulumi_gcp/__init__.py +88 -0
  2. pulumi_gcp/accesscontextmanager/authorized_orgs_desc.py +2 -2
  3. pulumi_gcp/apigateway/api_config_iam_binding.py +13 -0
  4. pulumi_gcp/apigateway/api_config_iam_member.py +13 -0
  5. pulumi_gcp/apigateway/api_config_iam_policy.py +13 -0
  6. pulumi_gcp/apigateway/api_iam_binding.py +13 -0
  7. pulumi_gcp/apigateway/api_iam_member.py +13 -0
  8. pulumi_gcp/apigateway/api_iam_policy.py +13 -0
  9. pulumi_gcp/apigateway/gateway_iam_binding.py +13 -0
  10. pulumi_gcp/apigateway/gateway_iam_member.py +13 -0
  11. pulumi_gcp/apigateway/gateway_iam_policy.py +13 -0
  12. pulumi_gcp/apigateway/get_api_config_iam_policy.py +2 -0
  13. pulumi_gcp/apigateway/get_api_iam_policy.py +2 -0
  14. pulumi_gcp/apigateway/get_gateway_iam_policy.py +2 -0
  15. pulumi_gcp/apigee/environment_iam_binding.py +27 -0
  16. pulumi_gcp/apigee/environment_iam_member.py +27 -0
  17. pulumi_gcp/apigee/environment_iam_policy.py +27 -0
  18. pulumi_gcp/apigee/get_environment_iam_policy.py +6 -0
  19. pulumi_gcp/beyondcorp/__init__.py +1 -0
  20. pulumi_gcp/beyondcorp/application.py +8 -4
  21. pulumi_gcp/beyondcorp/application_iam_binding.py +26 -0
  22. pulumi_gcp/beyondcorp/application_iam_member.py +26 -0
  23. pulumi_gcp/beyondcorp/application_iam_policy.py +26 -0
  24. pulumi_gcp/beyondcorp/get_application_iam_policy.py +4 -0
  25. pulumi_gcp/beyondcorp/get_security_gateway.py +222 -0
  26. pulumi_gcp/beyondcorp/get_security_gateway_iam_policy.py +2 -0
  27. pulumi_gcp/beyondcorp/outputs.py +45 -0
  28. pulumi_gcp/beyondcorp/security_gateway_iam_binding.py +13 -0
  29. pulumi_gcp/beyondcorp/security_gateway_iam_member.py +13 -0
  30. pulumi_gcp/beyondcorp/security_gateway_iam_policy.py +13 -0
  31. pulumi_gcp/bigquery/__init__.py +1 -0
  32. pulumi_gcp/bigquery/connection_iam_binding.py +4 -11
  33. pulumi_gcp/bigquery/connection_iam_member.py +4 -11
  34. pulumi_gcp/bigquery/connection_iam_policy.py +4 -11
  35. pulumi_gcp/bigquery/data_transfer_config.py +2 -2
  36. pulumi_gcp/bigquery/get_connection_iam_policy.py +2 -4
  37. pulumi_gcp/bigquery/get_table_iam_policy.py +4 -0
  38. pulumi_gcp/bigquery/iam_binding.py +26 -0
  39. pulumi_gcp/bigquery/iam_member.py +26 -0
  40. pulumi_gcp/bigquery/iam_policy.py +26 -0
  41. pulumi_gcp/bigquery/row_access_policy.py +787 -0
  42. pulumi_gcp/bigqueryanalyticshub/data_exchange_iam_binding.py +7 -7
  43. pulumi_gcp/bigqueryanalyticshub/data_exchange_iam_member.py +7 -7
  44. pulumi_gcp/bigqueryanalyticshub/data_exchange_iam_policy.py +7 -7
  45. pulumi_gcp/bigqueryanalyticshub/get_data_exchange_iam_policy.py +2 -2
  46. pulumi_gcp/bigqueryanalyticshub/get_listing_iam_policy.py +2 -2
  47. pulumi_gcp/bigqueryanalyticshub/listing_iam_binding.py +7 -7
  48. pulumi_gcp/bigqueryanalyticshub/listing_iam_member.py +7 -7
  49. pulumi_gcp/bigqueryanalyticshub/listing_iam_policy.py +7 -7
  50. pulumi_gcp/bigqueryanalyticshub/listing_subscription.py +6 -6
  51. pulumi_gcp/bigquerydatapolicy/data_policy_iam_binding.py +13 -0
  52. pulumi_gcp/bigquerydatapolicy/data_policy_iam_member.py +13 -0
  53. pulumi_gcp/bigquerydatapolicy/data_policy_iam_policy.py +13 -0
  54. pulumi_gcp/bigquerydatapolicy/get_iam_policy.py +2 -0
  55. pulumi_gcp/bigtable/logical_view.py +49 -0
  56. pulumi_gcp/cloudbuild/trigger.py +2 -2
  57. pulumi_gcp/clouddeploy/get_delivery_pipeline_iam_policy.py +6 -0
  58. pulumi_gcp/clouddeploy/get_target_iam_policy.py +6 -0
  59. pulumi_gcp/colab/schedule.py +2 -2
  60. pulumi_gcp/compute/_inputs.py +126 -0
  61. pulumi_gcp/compute/backend_service.py +259 -51
  62. pulumi_gcp/compute/get_backend_service.py +23 -1
  63. pulumi_gcp/compute/get_global_forwarding_rule.py +23 -1
  64. pulumi_gcp/compute/get_instance_template.py +12 -1
  65. pulumi_gcp/compute/get_network_endpoint_group.py +12 -1
  66. pulumi_gcp/compute/global_forwarding_rule.py +199 -0
  67. pulumi_gcp/compute/instance_template.py +28 -0
  68. pulumi_gcp/compute/network_endpoint_group.py +28 -0
  69. pulumi_gcp/compute/outputs.py +110 -0
  70. pulumi_gcp/compute/region_backend_service.py +58 -51
  71. pulumi_gcp/container/cluster.py +47 -0
  72. pulumi_gcp/container/get_cluster.py +12 -1
  73. pulumi_gcp/datacatalog/entry_group_iam_binding.py +34 -0
  74. pulumi_gcp/datacatalog/entry_group_iam_member.py +34 -0
  75. pulumi_gcp/datacatalog/entry_group_iam_policy.py +34 -0
  76. pulumi_gcp/datacatalog/get_entry_group_iam_policy.py +8 -0
  77. pulumi_gcp/datacatalog/get_tag_template_iam_policy.py +8 -0
  78. pulumi_gcp/datacatalog/get_taxonomy_iam_policy.py +8 -0
  79. pulumi_gcp/datacatalog/tag_template_iam_binding.py +34 -0
  80. pulumi_gcp/datacatalog/tag_template_iam_member.py +34 -0
  81. pulumi_gcp/datacatalog/tag_template_iam_policy.py +34 -0
  82. pulumi_gcp/datacatalog/taxonomy_iam_binding.py +34 -0
  83. pulumi_gcp/datacatalog/taxonomy_iam_member.py +34 -0
  84. pulumi_gcp/datacatalog/taxonomy_iam_policy.py +34 -0
  85. pulumi_gcp/dataplex/__init__.py +5 -0
  86. pulumi_gcp/dataplex/_inputs.py +98 -0
  87. pulumi_gcp/dataplex/aspect_type_iam_binding.py +13 -0
  88. pulumi_gcp/dataplex/aspect_type_iam_member.py +13 -0
  89. pulumi_gcp/dataplex/aspect_type_iam_policy.py +13 -0
  90. pulumi_gcp/dataplex/asset_iam_binding.py +53 -0
  91. pulumi_gcp/dataplex/asset_iam_member.py +53 -0
  92. pulumi_gcp/dataplex/asset_iam_policy.py +53 -0
  93. pulumi_gcp/dataplex/datascan_iam_binding.py +13 -0
  94. pulumi_gcp/dataplex/datascan_iam_member.py +13 -0
  95. pulumi_gcp/dataplex/datascan_iam_policy.py +13 -0
  96. pulumi_gcp/dataplex/entry_group_iam_binding.py +13 -0
  97. pulumi_gcp/dataplex/entry_group_iam_member.py +13 -0
  98. pulumi_gcp/dataplex/entry_group_iam_policy.py +13 -0
  99. pulumi_gcp/dataplex/entry_type_iam_binding.py +13 -0
  100. pulumi_gcp/dataplex/entry_type_iam_member.py +13 -0
  101. pulumi_gcp/dataplex/entry_type_iam_policy.py +13 -0
  102. pulumi_gcp/dataplex/get_aspect_type_iam_policy.py +2 -0
  103. pulumi_gcp/dataplex/get_asset_iam_policy.py +10 -0
  104. pulumi_gcp/dataplex/get_datascan_iam_policy.py +2 -0
  105. pulumi_gcp/dataplex/get_entry_group_iam_policy.py +2 -0
  106. pulumi_gcp/dataplex/get_entry_type_iam_policy.py +2 -0
  107. pulumi_gcp/dataplex/get_glossary_iam_policy.py +185 -0
  108. pulumi_gcp/dataplex/get_lake_iam_policy.py +6 -0
  109. pulumi_gcp/dataplex/get_task_iam_policy.py +2 -0
  110. pulumi_gcp/dataplex/get_zone_iam_policy.py +8 -0
  111. pulumi_gcp/dataplex/glossary.py +772 -0
  112. pulumi_gcp/dataplex/glossary_iam_binding.py +837 -0
  113. pulumi_gcp/dataplex/glossary_iam_member.py +837 -0
  114. pulumi_gcp/dataplex/glossary_iam_policy.py +676 -0
  115. pulumi_gcp/dataplex/lake_iam_binding.py +27 -0
  116. pulumi_gcp/dataplex/lake_iam_member.py +27 -0
  117. pulumi_gcp/dataplex/lake_iam_policy.py +27 -0
  118. pulumi_gcp/dataplex/outputs.py +56 -0
  119. pulumi_gcp/dataplex/task_iam_binding.py +13 -0
  120. pulumi_gcp/dataplex/task_iam_member.py +13 -0
  121. pulumi_gcp/dataplex/task_iam_policy.py +13 -0
  122. pulumi_gcp/dataplex/zone_iam_binding.py +40 -0
  123. pulumi_gcp/dataplex/zone_iam_member.py +40 -0
  124. pulumi_gcp/dataplex/zone_iam_policy.py +40 -0
  125. pulumi_gcp/dataproc/autoscaling_policy_iam_binding.py +4 -25
  126. pulumi_gcp/dataproc/autoscaling_policy_iam_member.py +4 -25
  127. pulumi_gcp/dataproc/autoscaling_policy_iam_policy.py +4 -25
  128. pulumi_gcp/dataproc/get_autoscaling_policy_iam_policy.py +2 -8
  129. pulumi_gcp/dataproc/get_metastore_database_iam_policy.py +8 -0
  130. pulumi_gcp/dataproc/get_metastore_federation_iam_policy.py +2 -0
  131. pulumi_gcp/dataproc/get_metastore_service_iam_policy.py +2 -0
  132. pulumi_gcp/dataproc/get_metastore_table_iam_policy.py +10 -0
  133. pulumi_gcp/dataproc/metastore_database_iam_binding.py +40 -0
  134. pulumi_gcp/dataproc/metastore_database_iam_member.py +40 -0
  135. pulumi_gcp/dataproc/metastore_database_iam_policy.py +40 -0
  136. pulumi_gcp/dataproc/metastore_federation_iam_binding.py +13 -0
  137. pulumi_gcp/dataproc/metastore_federation_iam_member.py +13 -0
  138. pulumi_gcp/dataproc/metastore_federation_iam_policy.py +13 -0
  139. pulumi_gcp/dataproc/metastore_service_iam_binding.py +13 -0
  140. pulumi_gcp/dataproc/metastore_service_iam_member.py +13 -0
  141. pulumi_gcp/dataproc/metastore_service_iam_policy.py +13 -0
  142. pulumi_gcp/dataproc/metastore_table_iam_binding.py +53 -0
  143. pulumi_gcp/dataproc/metastore_table_iam_member.py +53 -0
  144. pulumi_gcp/dataproc/metastore_table_iam_policy.py +53 -0
  145. pulumi_gcp/diagflow/_inputs.py +56 -0
  146. pulumi_gcp/diagflow/cx_agent.py +60 -0
  147. pulumi_gcp/diagflow/cx_flow.py +2 -0
  148. pulumi_gcp/diagflow/entity_type.py +2 -2
  149. pulumi_gcp/diagflow/outputs.py +35 -0
  150. pulumi_gcp/edgecontainer/node_pool.py +2 -2
  151. pulumi_gcp/endpoints/consumers_iam_binding.py +26 -0
  152. pulumi_gcp/endpoints/consumers_iam_member.py +26 -0
  153. pulumi_gcp/endpoints/consumers_iam_policy.py +26 -0
  154. pulumi_gcp/endpoints/get_service_consumers_iam_policy.py +8 -0
  155. pulumi_gcp/endpoints/get_service_iam_policy.py +6 -0
  156. pulumi_gcp/endpoints/service_iam_binding.py +13 -0
  157. pulumi_gcp/endpoints/service_iam_member.py +13 -0
  158. pulumi_gcp/endpoints/service_iam_policy.py +13 -0
  159. pulumi_gcp/firebase/__init__.py +3 -0
  160. pulumi_gcp/firebase/_inputs.py +1527 -0
  161. pulumi_gcp/firebase/app_hosting_backend.py +104 -0
  162. pulumi_gcp/firebase/app_hosting_default_domain.py +721 -0
  163. pulumi_gcp/firebase/app_hosting_domain.py +796 -0
  164. pulumi_gcp/firebase/app_hosting_traffic.py +914 -0
  165. pulumi_gcp/firebase/extensions_instance.py +4 -4
  166. pulumi_gcp/firebase/outputs.py +1075 -0
  167. pulumi_gcp/firestore/database.py +9 -0
  168. pulumi_gcp/gemini/get_repository_group_iam_policy.py +4 -0
  169. pulumi_gcp/gemini/repository_group_iam_binding.py +26 -0
  170. pulumi_gcp/gemini/repository_group_iam_member.py +26 -0
  171. pulumi_gcp/gemini/repository_group_iam_policy.py +26 -0
  172. pulumi_gcp/gkebackup/backup_channel.py +9 -9
  173. pulumi_gcp/gkebackup/restore_channel.py +9 -9
  174. pulumi_gcp/gkehub/get_membership_iam_policy.py +2 -0
  175. pulumi_gcp/gkehub/get_scope_iam_policy.py +2 -0
  176. pulumi_gcp/gkehub/membership_iam_binding.py +13 -0
  177. pulumi_gcp/gkehub/membership_iam_member.py +13 -0
  178. pulumi_gcp/gkehub/membership_iam_policy.py +13 -0
  179. pulumi_gcp/gkehub/scope_iam_binding.py +13 -0
  180. pulumi_gcp/gkehub/scope_iam_member.py +13 -0
  181. pulumi_gcp/gkehub/scope_iam_policy.py +13 -0
  182. pulumi_gcp/iam/__init__.py +4 -0
  183. pulumi_gcp/iam/_inputs.py +432 -0
  184. pulumi_gcp/iam/get_workload_identity_pool.py +35 -1
  185. pulumi_gcp/iam/get_workload_identity_pool_iam_policy.py +156 -0
  186. pulumi_gcp/iam/oauth_client_credential.py +6 -0
  187. pulumi_gcp/iam/outputs.py +510 -0
  188. pulumi_gcp/iam/workload_identity_pool.py +446 -24
  189. pulumi_gcp/iam/workload_identity_pool_iam_binding.py +539 -0
  190. pulumi_gcp/iam/workload_identity_pool_iam_member.py +539 -0
  191. pulumi_gcp/iam/workload_identity_pool_iam_policy.py +358 -0
  192. pulumi_gcp/iap/app_engine_service_iam_binding.py +14 -14
  193. pulumi_gcp/iap/app_engine_service_iam_member.py +14 -14
  194. pulumi_gcp/iap/app_engine_service_iam_policy.py +14 -14
  195. pulumi_gcp/iap/app_engine_version_iam_binding.py +14 -14
  196. pulumi_gcp/iap/app_engine_version_iam_member.py +14 -14
  197. pulumi_gcp/iap/app_engine_version_iam_policy.py +14 -14
  198. pulumi_gcp/iap/get_app_engine_service_iam_policy.py +4 -4
  199. pulumi_gcp/iap/get_app_engine_version_iam_policy.py +4 -4
  200. pulumi_gcp/iap/get_tunnel_dest_group_iam_policy.py +2 -0
  201. pulumi_gcp/iap/get_tunnel_instance_iam_policy.py +6 -0
  202. pulumi_gcp/iap/get_web_region_backend_service_iam_policy.py +6 -0
  203. pulumi_gcp/iap/get_web_type_app_engine_iam_policy.py +2 -2
  204. pulumi_gcp/iap/tunnel_dest_group_iam_binding.py +13 -0
  205. pulumi_gcp/iap/tunnel_dest_group_iam_member.py +13 -0
  206. pulumi_gcp/iap/tunnel_dest_group_iam_policy.py +13 -0
  207. pulumi_gcp/iap/tunnel_instance_iam_binding.py +27 -0
  208. pulumi_gcp/iap/tunnel_instance_iam_member.py +27 -0
  209. pulumi_gcp/iap/tunnel_instance_iam_policy.py +27 -0
  210. pulumi_gcp/iap/web_region_backend_service_iam_binding.py +27 -0
  211. pulumi_gcp/iap/web_region_backend_service_iam_member.py +27 -0
  212. pulumi_gcp/iap/web_region_backend_service_iam_policy.py +27 -0
  213. pulumi_gcp/iap/web_type_app_enging_iam_binding.py +7 -7
  214. pulumi_gcp/iap/web_type_app_enging_iam_member.py +7 -7
  215. pulumi_gcp/iap/web_type_app_enging_iam_policy.py +7 -7
  216. pulumi_gcp/lustre/__init__.py +1 -0
  217. pulumi_gcp/lustre/get_instance.py +280 -0
  218. pulumi_gcp/lustre/instance.py +12 -0
  219. pulumi_gcp/netapp/backup.py +2 -2
  220. pulumi_gcp/networksecurity/intercept_deployment.py +10 -0
  221. pulumi_gcp/networksecurity/intercept_deployment_group.py +8 -0
  222. pulumi_gcp/networksecurity/intercept_endpoint_group.py +12 -0
  223. pulumi_gcp/networksecurity/intercept_endpoint_group_association.py +16 -0
  224. pulumi_gcp/pulumi-plugin.json +1 -1
  225. pulumi_gcp/secretmanager/get_regional_secret_iam_policy.py +2 -0
  226. pulumi_gcp/secretmanager/get_secret_iam_policy.py +2 -0
  227. pulumi_gcp/secretmanager/regional_secret_iam_binding.py +13 -0
  228. pulumi_gcp/secretmanager/regional_secret_iam_member.py +13 -0
  229. pulumi_gcp/secretmanager/regional_secret_iam_policy.py +13 -0
  230. pulumi_gcp/secretmanager/secret_iam_binding.py +13 -0
  231. pulumi_gcp/secretmanager/secret_iam_member.py +13 -0
  232. pulumi_gcp/secretmanager/secret_iam_policy.py +13 -0
  233. pulumi_gcp/securesourcemanager/get_instance_iam_policy.py +2 -4
  234. pulumi_gcp/securesourcemanager/get_repository_iam_policy.py +2 -4
  235. pulumi_gcp/securesourcemanager/repository_iam_binding.py +4 -11
  236. pulumi_gcp/securesourcemanager/repository_iam_member.py +4 -11
  237. pulumi_gcp/securesourcemanager/repository_iam_policy.py +4 -11
  238. pulumi_gcp/securitycenter/v2_organization_scc_big_query_export.py +2 -2
  239. pulumi_gcp/securitycenter/v2_organization_scc_big_query_exports.py +2 -2
  240. pulumi_gcp/vertex/ai_feature_online_store_featureview_iam_binding.py +13 -0
  241. pulumi_gcp/vertex/ai_feature_online_store_featureview_iam_member.py +13 -0
  242. pulumi_gcp/vertex/ai_feature_online_store_featureview_iam_policy.py +13 -0
  243. pulumi_gcp/vertex/get_ai_feature_online_store_featureview_iam_policy.py +2 -0
  244. pulumi_gcp/vmwareengine/external_address.py +4 -4
  245. pulumi_gcp/workstations/get_workstation_config_iam_policy.py +6 -0
  246. pulumi_gcp/workstations/get_workstation_iam_policy.py +10 -0
  247. pulumi_gcp/workstations/workstation_config_iam_binding.py +33 -0
  248. pulumi_gcp/workstations/workstation_config_iam_member.py +33 -0
  249. pulumi_gcp/workstations/workstation_config_iam_policy.py +33 -0
  250. pulumi_gcp/workstations/workstation_iam_binding.py +53 -0
  251. pulumi_gcp/workstations/workstation_iam_member.py +53 -0
  252. pulumi_gcp/workstations/workstation_iam_policy.py +53 -0
  253. {pulumi_gcp-8.32.0a1747459264.dist-info → pulumi_gcp-8.32.1.dist-info}/METADATA +1 -1
  254. {pulumi_gcp-8.32.0a1747459264.dist-info → pulumi_gcp-8.32.1.dist-info}/RECORD +256 -241
  255. {pulumi_gcp-8.32.0a1747459264.dist-info → pulumi_gcp-8.32.1.dist-info}/WHEEL +1 -1
  256. {pulumi_gcp-8.32.0a1747459264.dist-info → pulumi_gcp-8.32.1.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,837 @@
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
+ from . import outputs
18
+ from ._inputs import *
19
+
20
+ __all__ = ['GlossaryIamMemberArgs', 'GlossaryIamMember']
21
+
22
+ @pulumi.input_type
23
+ class GlossaryIamMemberArgs:
24
+ def __init__(__self__, *,
25
+ glossary_id: pulumi.Input[builtins.str],
26
+ member: pulumi.Input[builtins.str],
27
+ role: pulumi.Input[builtins.str],
28
+ condition: Optional[pulumi.Input['GlossaryIamMemberConditionArgs']] = None,
29
+ location: Optional[pulumi.Input[builtins.str]] = None,
30
+ project: Optional[pulumi.Input[builtins.str]] = None):
31
+ """
32
+ The set of arguments for constructing a GlossaryIamMember resource.
33
+ :param pulumi.Input[builtins.str] glossary_id: Used to find the parent resource to bind the IAM policy to
34
+ :param pulumi.Input[builtins.str] member: Identities that will be granted the privilege in `role`.
35
+ Each entry can have one of the following values:
36
+ * **allUsers**: A special identifier that represents anyone who is on the internet; with or without a Google account.
37
+ * **allAuthenticatedUsers**: A special identifier that represents anyone who is authenticated with a Google account or a service account.
38
+ * **user:{emailid}**: An email address that represents a specific Google account. For example, alice@gmail.com or joe@example.com.
39
+ * **serviceAccount:{emailid}**: An email address that represents a service account. For example, my-other-app@appspot.gserviceaccount.com.
40
+ * **group:{emailid}**: An email address that represents a Google group. For example, admins@example.com.
41
+ * **domain:{domain}**: A G Suite domain (primary, instead of alias) name that represents all the users of that domain. For example, google.com or example.com.
42
+ * **projectOwner:projectid**: Owners of the given project. For example, "projectOwner:my-example-project"
43
+ * **projectEditor:projectid**: Editors of the given project. For example, "projectEditor:my-example-project"
44
+ * **projectViewer:projectid**: Viewers of the given project. For example, "projectViewer:my-example-project"
45
+ :param pulumi.Input[builtins.str] role: The role that should be applied. Only one
46
+ `dataplex.GlossaryIamBinding` can be used per role. Note that custom roles must be of the format
47
+ `[projects|organizations]/{parent-name}/roles/{role-name}`.
48
+ :param pulumi.Input[builtins.str] location: The location where the glossary should reside.
49
+ Used to find the parent resource to bind the IAM policy to. If not specified,
50
+ the value will be parsed from the identifier of the parent resource. If no location is provided in the parent identifier and no
51
+ location is specified, it is taken from the provider configuration.
52
+ :param pulumi.Input[builtins.str] project: The ID of the project in which the resource belongs.
53
+ If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used.
54
+ """
55
+ pulumi.set(__self__, "glossary_id", glossary_id)
56
+ pulumi.set(__self__, "member", member)
57
+ pulumi.set(__self__, "role", role)
58
+ if condition is not None:
59
+ pulumi.set(__self__, "condition", condition)
60
+ if location is not None:
61
+ pulumi.set(__self__, "location", location)
62
+ if project is not None:
63
+ pulumi.set(__self__, "project", project)
64
+
65
+ @property
66
+ @pulumi.getter(name="glossaryId")
67
+ def glossary_id(self) -> pulumi.Input[builtins.str]:
68
+ """
69
+ Used to find the parent resource to bind the IAM policy to
70
+ """
71
+ return pulumi.get(self, "glossary_id")
72
+
73
+ @glossary_id.setter
74
+ def glossary_id(self, value: pulumi.Input[builtins.str]):
75
+ pulumi.set(self, "glossary_id", value)
76
+
77
+ @property
78
+ @pulumi.getter
79
+ def member(self) -> pulumi.Input[builtins.str]:
80
+ """
81
+ Identities that will be granted the privilege in `role`.
82
+ Each entry can have one of the following values:
83
+ * **allUsers**: A special identifier that represents anyone who is on the internet; with or without a Google account.
84
+ * **allAuthenticatedUsers**: A special identifier that represents anyone who is authenticated with a Google account or a service account.
85
+ * **user:{emailid}**: An email address that represents a specific Google account. For example, alice@gmail.com or joe@example.com.
86
+ * **serviceAccount:{emailid}**: An email address that represents a service account. For example, my-other-app@appspot.gserviceaccount.com.
87
+ * **group:{emailid}**: An email address that represents a Google group. For example, admins@example.com.
88
+ * **domain:{domain}**: A G Suite domain (primary, instead of alias) name that represents all the users of that domain. For example, google.com or example.com.
89
+ * **projectOwner:projectid**: Owners of the given project. For example, "projectOwner:my-example-project"
90
+ * **projectEditor:projectid**: Editors of the given project. For example, "projectEditor:my-example-project"
91
+ * **projectViewer:projectid**: Viewers of the given project. For example, "projectViewer:my-example-project"
92
+ """
93
+ return pulumi.get(self, "member")
94
+
95
+ @member.setter
96
+ def member(self, value: pulumi.Input[builtins.str]):
97
+ pulumi.set(self, "member", value)
98
+
99
+ @property
100
+ @pulumi.getter
101
+ def role(self) -> pulumi.Input[builtins.str]:
102
+ """
103
+ The role that should be applied. Only one
104
+ `dataplex.GlossaryIamBinding` can be used per role. Note that custom roles must be of the format
105
+ `[projects|organizations]/{parent-name}/roles/{role-name}`.
106
+ """
107
+ return pulumi.get(self, "role")
108
+
109
+ @role.setter
110
+ def role(self, value: pulumi.Input[builtins.str]):
111
+ pulumi.set(self, "role", value)
112
+
113
+ @property
114
+ @pulumi.getter
115
+ def condition(self) -> Optional[pulumi.Input['GlossaryIamMemberConditionArgs']]:
116
+ return pulumi.get(self, "condition")
117
+
118
+ @condition.setter
119
+ def condition(self, value: Optional[pulumi.Input['GlossaryIamMemberConditionArgs']]):
120
+ pulumi.set(self, "condition", value)
121
+
122
+ @property
123
+ @pulumi.getter
124
+ def location(self) -> Optional[pulumi.Input[builtins.str]]:
125
+ """
126
+ The location where the glossary should reside.
127
+ Used to find the parent resource to bind the IAM policy to. If not specified,
128
+ the value will be parsed from the identifier of the parent resource. If no location is provided in the parent identifier and no
129
+ location is specified, it is taken from the provider configuration.
130
+ """
131
+ return pulumi.get(self, "location")
132
+
133
+ @location.setter
134
+ def location(self, value: Optional[pulumi.Input[builtins.str]]):
135
+ pulumi.set(self, "location", value)
136
+
137
+ @property
138
+ @pulumi.getter
139
+ def project(self) -> Optional[pulumi.Input[builtins.str]]:
140
+ """
141
+ The ID of the project in which the resource belongs.
142
+ If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used.
143
+ """
144
+ return pulumi.get(self, "project")
145
+
146
+ @project.setter
147
+ def project(self, value: Optional[pulumi.Input[builtins.str]]):
148
+ pulumi.set(self, "project", value)
149
+
150
+
151
+ @pulumi.input_type
152
+ class _GlossaryIamMemberState:
153
+ def __init__(__self__, *,
154
+ condition: Optional[pulumi.Input['GlossaryIamMemberConditionArgs']] = None,
155
+ etag: Optional[pulumi.Input[builtins.str]] = None,
156
+ glossary_id: Optional[pulumi.Input[builtins.str]] = None,
157
+ location: Optional[pulumi.Input[builtins.str]] = None,
158
+ member: Optional[pulumi.Input[builtins.str]] = None,
159
+ project: Optional[pulumi.Input[builtins.str]] = None,
160
+ role: Optional[pulumi.Input[builtins.str]] = None):
161
+ """
162
+ Input properties used for looking up and filtering GlossaryIamMember resources.
163
+ :param pulumi.Input[builtins.str] etag: (Computed) The etag of the IAM policy.
164
+ :param pulumi.Input[builtins.str] glossary_id: Used to find the parent resource to bind the IAM policy to
165
+ :param pulumi.Input[builtins.str] location: The location where the glossary should reside.
166
+ Used to find the parent resource to bind the IAM policy to. If not specified,
167
+ the value will be parsed from the identifier of the parent resource. If no location is provided in the parent identifier and no
168
+ location is specified, it is taken from the provider configuration.
169
+ :param pulumi.Input[builtins.str] member: Identities that will be granted the privilege in `role`.
170
+ Each entry can have one of the following values:
171
+ * **allUsers**: A special identifier that represents anyone who is on the internet; with or without a Google account.
172
+ * **allAuthenticatedUsers**: A special identifier that represents anyone who is authenticated with a Google account or a service account.
173
+ * **user:{emailid}**: An email address that represents a specific Google account. For example, alice@gmail.com or joe@example.com.
174
+ * **serviceAccount:{emailid}**: An email address that represents a service account. For example, my-other-app@appspot.gserviceaccount.com.
175
+ * **group:{emailid}**: An email address that represents a Google group. For example, admins@example.com.
176
+ * **domain:{domain}**: A G Suite domain (primary, instead of alias) name that represents all the users of that domain. For example, google.com or example.com.
177
+ * **projectOwner:projectid**: Owners of the given project. For example, "projectOwner:my-example-project"
178
+ * **projectEditor:projectid**: Editors of the given project. For example, "projectEditor:my-example-project"
179
+ * **projectViewer:projectid**: Viewers of the given project. For example, "projectViewer:my-example-project"
180
+ :param pulumi.Input[builtins.str] project: The ID of the project in which the resource belongs.
181
+ If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used.
182
+ :param pulumi.Input[builtins.str] role: The role that should be applied. Only one
183
+ `dataplex.GlossaryIamBinding` can be used per role. Note that custom roles must be of the format
184
+ `[projects|organizations]/{parent-name}/roles/{role-name}`.
185
+ """
186
+ if condition is not None:
187
+ pulumi.set(__self__, "condition", condition)
188
+ if etag is not None:
189
+ pulumi.set(__self__, "etag", etag)
190
+ if glossary_id is not None:
191
+ pulumi.set(__self__, "glossary_id", glossary_id)
192
+ if location is not None:
193
+ pulumi.set(__self__, "location", location)
194
+ if member is not None:
195
+ pulumi.set(__self__, "member", member)
196
+ if project is not None:
197
+ pulumi.set(__self__, "project", project)
198
+ if role is not None:
199
+ pulumi.set(__self__, "role", role)
200
+
201
+ @property
202
+ @pulumi.getter
203
+ def condition(self) -> Optional[pulumi.Input['GlossaryIamMemberConditionArgs']]:
204
+ return pulumi.get(self, "condition")
205
+
206
+ @condition.setter
207
+ def condition(self, value: Optional[pulumi.Input['GlossaryIamMemberConditionArgs']]):
208
+ pulumi.set(self, "condition", value)
209
+
210
+ @property
211
+ @pulumi.getter
212
+ def etag(self) -> Optional[pulumi.Input[builtins.str]]:
213
+ """
214
+ (Computed) The etag of the IAM policy.
215
+ """
216
+ return pulumi.get(self, "etag")
217
+
218
+ @etag.setter
219
+ def etag(self, value: Optional[pulumi.Input[builtins.str]]):
220
+ pulumi.set(self, "etag", value)
221
+
222
+ @property
223
+ @pulumi.getter(name="glossaryId")
224
+ def glossary_id(self) -> Optional[pulumi.Input[builtins.str]]:
225
+ """
226
+ Used to find the parent resource to bind the IAM policy to
227
+ """
228
+ return pulumi.get(self, "glossary_id")
229
+
230
+ @glossary_id.setter
231
+ def glossary_id(self, value: Optional[pulumi.Input[builtins.str]]):
232
+ pulumi.set(self, "glossary_id", value)
233
+
234
+ @property
235
+ @pulumi.getter
236
+ def location(self) -> Optional[pulumi.Input[builtins.str]]:
237
+ """
238
+ The location where the glossary should reside.
239
+ Used to find the parent resource to bind the IAM policy to. If not specified,
240
+ the value will be parsed from the identifier of the parent resource. If no location is provided in the parent identifier and no
241
+ location is specified, it is taken from the provider configuration.
242
+ """
243
+ return pulumi.get(self, "location")
244
+
245
+ @location.setter
246
+ def location(self, value: Optional[pulumi.Input[builtins.str]]):
247
+ pulumi.set(self, "location", value)
248
+
249
+ @property
250
+ @pulumi.getter
251
+ def member(self) -> Optional[pulumi.Input[builtins.str]]:
252
+ """
253
+ Identities that will be granted the privilege in `role`.
254
+ Each entry can have one of the following values:
255
+ * **allUsers**: A special identifier that represents anyone who is on the internet; with or without a Google account.
256
+ * **allAuthenticatedUsers**: A special identifier that represents anyone who is authenticated with a Google account or a service account.
257
+ * **user:{emailid}**: An email address that represents a specific Google account. For example, alice@gmail.com or joe@example.com.
258
+ * **serviceAccount:{emailid}**: An email address that represents a service account. For example, my-other-app@appspot.gserviceaccount.com.
259
+ * **group:{emailid}**: An email address that represents a Google group. For example, admins@example.com.
260
+ * **domain:{domain}**: A G Suite domain (primary, instead of alias) name that represents all the users of that domain. For example, google.com or example.com.
261
+ * **projectOwner:projectid**: Owners of the given project. For example, "projectOwner:my-example-project"
262
+ * **projectEditor:projectid**: Editors of the given project. For example, "projectEditor:my-example-project"
263
+ * **projectViewer:projectid**: Viewers of the given project. For example, "projectViewer:my-example-project"
264
+ """
265
+ return pulumi.get(self, "member")
266
+
267
+ @member.setter
268
+ def member(self, value: Optional[pulumi.Input[builtins.str]]):
269
+ pulumi.set(self, "member", value)
270
+
271
+ @property
272
+ @pulumi.getter
273
+ def project(self) -> Optional[pulumi.Input[builtins.str]]:
274
+ """
275
+ The ID of the project in which the resource belongs.
276
+ If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used.
277
+ """
278
+ return pulumi.get(self, "project")
279
+
280
+ @project.setter
281
+ def project(self, value: Optional[pulumi.Input[builtins.str]]):
282
+ pulumi.set(self, "project", value)
283
+
284
+ @property
285
+ @pulumi.getter
286
+ def role(self) -> Optional[pulumi.Input[builtins.str]]:
287
+ """
288
+ The role that should be applied. Only one
289
+ `dataplex.GlossaryIamBinding` can be used per role. Note that custom roles must be of the format
290
+ `[projects|organizations]/{parent-name}/roles/{role-name}`.
291
+ """
292
+ return pulumi.get(self, "role")
293
+
294
+ @role.setter
295
+ def role(self, value: Optional[pulumi.Input[builtins.str]]):
296
+ pulumi.set(self, "role", value)
297
+
298
+
299
+ @pulumi.type_token("gcp:dataplex/glossaryIamMember:GlossaryIamMember")
300
+ class GlossaryIamMember(pulumi.CustomResource):
301
+ @overload
302
+ def __init__(__self__,
303
+ resource_name: str,
304
+ opts: Optional[pulumi.ResourceOptions] = None,
305
+ condition: Optional[pulumi.Input[Union['GlossaryIamMemberConditionArgs', 'GlossaryIamMemberConditionArgsDict']]] = None,
306
+ glossary_id: Optional[pulumi.Input[builtins.str]] = None,
307
+ location: Optional[pulumi.Input[builtins.str]] = None,
308
+ member: Optional[pulumi.Input[builtins.str]] = None,
309
+ project: Optional[pulumi.Input[builtins.str]] = None,
310
+ role: Optional[pulumi.Input[builtins.str]] = None,
311
+ __props__=None):
312
+ """
313
+ Three different resources help you manage your IAM policy for Dataplex Glossary. Each of these resources serves a different use case:
314
+
315
+ * `dataplex.GlossaryIamPolicy`: Authoritative. Sets the IAM policy for the glossary and replaces any existing policy already attached.
316
+ * `dataplex.GlossaryIamBinding`: Authoritative for a given role. Updates the IAM policy to grant a role to a list of members. Other roles within the IAM policy for the glossary are preserved.
317
+ * `dataplex.GlossaryIamMember`: Non-authoritative. Updates the IAM policy to grant a role to a new member. Other members for the role for the glossary are preserved.
318
+
319
+ A data source can be used to retrieve policy data in advent you do not need creation
320
+
321
+ * `dataplex.GlossaryIamPolicy`: Retrieves the IAM policy for the glossary
322
+
323
+ > **Note:** `dataplex.GlossaryIamPolicy` **cannot** be used in conjunction with `dataplex.GlossaryIamBinding` and `dataplex.GlossaryIamMember` or they will fight over what your policy should be.
324
+
325
+ > **Note:** `dataplex.GlossaryIamBinding` resources **can be** used in conjunction with `dataplex.GlossaryIamMember` resources **only if** they do not grant privilege to the same role.
326
+
327
+ ## dataplex.GlossaryIamPolicy
328
+
329
+ ```python
330
+ import pulumi
331
+ import pulumi_gcp as gcp
332
+
333
+ admin = gcp.organizations.get_iam_policy(bindings=[{
334
+ "role": "roles/viewer",
335
+ "members": ["user:jane@example.com"],
336
+ }])
337
+ policy = gcp.dataplex.GlossaryIamPolicy("policy",
338
+ project=glossary_test_id["project"],
339
+ location=glossary_test_id["location"],
340
+ glossary_id=glossary_test_id["glossaryId"],
341
+ policy_data=admin.policy_data)
342
+ ```
343
+
344
+ ## dataplex.GlossaryIamBinding
345
+
346
+ ```python
347
+ import pulumi
348
+ import pulumi_gcp as gcp
349
+
350
+ binding = gcp.dataplex.GlossaryIamBinding("binding",
351
+ project=glossary_test_id["project"],
352
+ location=glossary_test_id["location"],
353
+ glossary_id=glossary_test_id["glossaryId"],
354
+ role="roles/viewer",
355
+ members=["user:jane@example.com"])
356
+ ```
357
+
358
+ ## dataplex.GlossaryIamMember
359
+
360
+ ```python
361
+ import pulumi
362
+ import pulumi_gcp as gcp
363
+
364
+ member = gcp.dataplex.GlossaryIamMember("member",
365
+ project=glossary_test_id["project"],
366
+ location=glossary_test_id["location"],
367
+ glossary_id=glossary_test_id["glossaryId"],
368
+ role="roles/viewer",
369
+ member="user:jane@example.com")
370
+ ```
371
+
372
+ ## This resource supports User Project Overrides.
373
+
374
+ -
375
+
376
+ # IAM policy for Dataplex Glossary
377
+ Three different resources help you manage your IAM policy for Dataplex Glossary. Each of these resources serves a different use case:
378
+
379
+ * `dataplex.GlossaryIamPolicy`: Authoritative. Sets the IAM policy for the glossary and replaces any existing policy already attached.
380
+ * `dataplex.GlossaryIamBinding`: Authoritative for a given role. Updates the IAM policy to grant a role to a list of members. Other roles within the IAM policy for the glossary are preserved.
381
+ * `dataplex.GlossaryIamMember`: Non-authoritative. Updates the IAM policy to grant a role to a new member. Other members for the role for the glossary are preserved.
382
+
383
+ A data source can be used to retrieve policy data in advent you do not need creation
384
+
385
+ * `dataplex.GlossaryIamPolicy`: Retrieves the IAM policy for the glossary
386
+
387
+ > **Note:** `dataplex.GlossaryIamPolicy` **cannot** be used in conjunction with `dataplex.GlossaryIamBinding` and `dataplex.GlossaryIamMember` or they will fight over what your policy should be.
388
+
389
+ > **Note:** `dataplex.GlossaryIamBinding` resources **can be** used in conjunction with `dataplex.GlossaryIamMember` resources **only if** they do not grant privilege to the same role.
390
+
391
+ ## dataplex.GlossaryIamPolicy
392
+
393
+ ```python
394
+ import pulumi
395
+ import pulumi_gcp as gcp
396
+
397
+ admin = gcp.organizations.get_iam_policy(bindings=[{
398
+ "role": "roles/viewer",
399
+ "members": ["user:jane@example.com"],
400
+ }])
401
+ policy = gcp.dataplex.GlossaryIamPolicy("policy",
402
+ project=glossary_test_id["project"],
403
+ location=glossary_test_id["location"],
404
+ glossary_id=glossary_test_id["glossaryId"],
405
+ policy_data=admin.policy_data)
406
+ ```
407
+
408
+ ## dataplex.GlossaryIamBinding
409
+
410
+ ```python
411
+ import pulumi
412
+ import pulumi_gcp as gcp
413
+
414
+ binding = gcp.dataplex.GlossaryIamBinding("binding",
415
+ project=glossary_test_id["project"],
416
+ location=glossary_test_id["location"],
417
+ glossary_id=glossary_test_id["glossaryId"],
418
+ role="roles/viewer",
419
+ members=["user:jane@example.com"])
420
+ ```
421
+
422
+ ## dataplex.GlossaryIamMember
423
+
424
+ ```python
425
+ import pulumi
426
+ import pulumi_gcp as gcp
427
+
428
+ member = gcp.dataplex.GlossaryIamMember("member",
429
+ project=glossary_test_id["project"],
430
+ location=glossary_test_id["location"],
431
+ glossary_id=glossary_test_id["glossaryId"],
432
+ role="roles/viewer",
433
+ member="user:jane@example.com")
434
+ ```
435
+
436
+ ## Import
437
+
438
+ For all import syntaxes, the "resource in question" can take any of the following forms:
439
+
440
+ * projects/{{project}}/locations/{{location}}/glossaries/{{glossary_id}}
441
+
442
+ * {{project}}/{{location}}/{{glossary_id}}
443
+
444
+ * {{location}}/{{glossary_id}}
445
+
446
+ * {{glossary_id}}
447
+
448
+ Any variables not passed in the import command will be taken from the provider configuration.
449
+
450
+ Dataplex glossary IAM resources can be imported using the resource identifiers, role, and member.
451
+
452
+ IAM member imports use space-delimited identifiers: the resource in question, the role, and the member identity, e.g.
453
+
454
+ ```sh
455
+ $ pulumi import gcp:dataplex/glossaryIamMember:GlossaryIamMember editor "projects/{{project}}/locations/{{location}}/glossaries/{{glossary_id}} roles/viewer user:jane@example.com"
456
+ ```
457
+
458
+ IAM binding imports use space-delimited identifiers: the resource in question and the role, e.g.
459
+
460
+ ```sh
461
+ $ pulumi import gcp:dataplex/glossaryIamMember:GlossaryIamMember editor "projects/{{project}}/locations/{{location}}/glossaries/{{glossary_id}} roles/viewer"
462
+ ```
463
+
464
+ IAM policy imports use the identifier of the resource in question, e.g.
465
+
466
+ ```sh
467
+ $ pulumi import gcp:dataplex/glossaryIamMember:GlossaryIamMember editor projects/{{project}}/locations/{{location}}/glossaries/{{glossary_id}}
468
+ ```
469
+
470
+ -> **Custom Roles** If you're importing a IAM resource with a custom role, make sure to use the
471
+
472
+ full name of the custom role, e.g. `[projects/my-project|organizations/my-org]/roles/my-custom-role`.
473
+
474
+ :param str resource_name: The name of the resource.
475
+ :param pulumi.ResourceOptions opts: Options for the resource.
476
+ :param pulumi.Input[builtins.str] glossary_id: Used to find the parent resource to bind the IAM policy to
477
+ :param pulumi.Input[builtins.str] location: The location where the glossary should reside.
478
+ Used to find the parent resource to bind the IAM policy to. If not specified,
479
+ the value will be parsed from the identifier of the parent resource. If no location is provided in the parent identifier and no
480
+ location is specified, it is taken from the provider configuration.
481
+ :param pulumi.Input[builtins.str] member: Identities that will be granted the privilege in `role`.
482
+ Each entry can have one of the following values:
483
+ * **allUsers**: A special identifier that represents anyone who is on the internet; with or without a Google account.
484
+ * **allAuthenticatedUsers**: A special identifier that represents anyone who is authenticated with a Google account or a service account.
485
+ * **user:{emailid}**: An email address that represents a specific Google account. For example, alice@gmail.com or joe@example.com.
486
+ * **serviceAccount:{emailid}**: An email address that represents a service account. For example, my-other-app@appspot.gserviceaccount.com.
487
+ * **group:{emailid}**: An email address that represents a Google group. For example, admins@example.com.
488
+ * **domain:{domain}**: A G Suite domain (primary, instead of alias) name that represents all the users of that domain. For example, google.com or example.com.
489
+ * **projectOwner:projectid**: Owners of the given project. For example, "projectOwner:my-example-project"
490
+ * **projectEditor:projectid**: Editors of the given project. For example, "projectEditor:my-example-project"
491
+ * **projectViewer:projectid**: Viewers of the given project. For example, "projectViewer:my-example-project"
492
+ :param pulumi.Input[builtins.str] project: The ID of the project in which the resource belongs.
493
+ If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used.
494
+ :param pulumi.Input[builtins.str] role: The role that should be applied. Only one
495
+ `dataplex.GlossaryIamBinding` can be used per role. Note that custom roles must be of the format
496
+ `[projects|organizations]/{parent-name}/roles/{role-name}`.
497
+ """
498
+ ...
499
+ @overload
500
+ def __init__(__self__,
501
+ resource_name: str,
502
+ args: GlossaryIamMemberArgs,
503
+ opts: Optional[pulumi.ResourceOptions] = None):
504
+ """
505
+ Three different resources help you manage your IAM policy for Dataplex Glossary. Each of these resources serves a different use case:
506
+
507
+ * `dataplex.GlossaryIamPolicy`: Authoritative. Sets the IAM policy for the glossary and replaces any existing policy already attached.
508
+ * `dataplex.GlossaryIamBinding`: Authoritative for a given role. Updates the IAM policy to grant a role to a list of members. Other roles within the IAM policy for the glossary are preserved.
509
+ * `dataplex.GlossaryIamMember`: Non-authoritative. Updates the IAM policy to grant a role to a new member. Other members for the role for the glossary are preserved.
510
+
511
+ A data source can be used to retrieve policy data in advent you do not need creation
512
+
513
+ * `dataplex.GlossaryIamPolicy`: Retrieves the IAM policy for the glossary
514
+
515
+ > **Note:** `dataplex.GlossaryIamPolicy` **cannot** be used in conjunction with `dataplex.GlossaryIamBinding` and `dataplex.GlossaryIamMember` or they will fight over what your policy should be.
516
+
517
+ > **Note:** `dataplex.GlossaryIamBinding` resources **can be** used in conjunction with `dataplex.GlossaryIamMember` resources **only if** they do not grant privilege to the same role.
518
+
519
+ ## dataplex.GlossaryIamPolicy
520
+
521
+ ```python
522
+ import pulumi
523
+ import pulumi_gcp as gcp
524
+
525
+ admin = gcp.organizations.get_iam_policy(bindings=[{
526
+ "role": "roles/viewer",
527
+ "members": ["user:jane@example.com"],
528
+ }])
529
+ policy = gcp.dataplex.GlossaryIamPolicy("policy",
530
+ project=glossary_test_id["project"],
531
+ location=glossary_test_id["location"],
532
+ glossary_id=glossary_test_id["glossaryId"],
533
+ policy_data=admin.policy_data)
534
+ ```
535
+
536
+ ## dataplex.GlossaryIamBinding
537
+
538
+ ```python
539
+ import pulumi
540
+ import pulumi_gcp as gcp
541
+
542
+ binding = gcp.dataplex.GlossaryIamBinding("binding",
543
+ project=glossary_test_id["project"],
544
+ location=glossary_test_id["location"],
545
+ glossary_id=glossary_test_id["glossaryId"],
546
+ role="roles/viewer",
547
+ members=["user:jane@example.com"])
548
+ ```
549
+
550
+ ## dataplex.GlossaryIamMember
551
+
552
+ ```python
553
+ import pulumi
554
+ import pulumi_gcp as gcp
555
+
556
+ member = gcp.dataplex.GlossaryIamMember("member",
557
+ project=glossary_test_id["project"],
558
+ location=glossary_test_id["location"],
559
+ glossary_id=glossary_test_id["glossaryId"],
560
+ role="roles/viewer",
561
+ member="user:jane@example.com")
562
+ ```
563
+
564
+ ## This resource supports User Project Overrides.
565
+
566
+ -
567
+
568
+ # IAM policy for Dataplex Glossary
569
+ Three different resources help you manage your IAM policy for Dataplex Glossary. Each of these resources serves a different use case:
570
+
571
+ * `dataplex.GlossaryIamPolicy`: Authoritative. Sets the IAM policy for the glossary and replaces any existing policy already attached.
572
+ * `dataplex.GlossaryIamBinding`: Authoritative for a given role. Updates the IAM policy to grant a role to a list of members. Other roles within the IAM policy for the glossary are preserved.
573
+ * `dataplex.GlossaryIamMember`: Non-authoritative. Updates the IAM policy to grant a role to a new member. Other members for the role for the glossary are preserved.
574
+
575
+ A data source can be used to retrieve policy data in advent you do not need creation
576
+
577
+ * `dataplex.GlossaryIamPolicy`: Retrieves the IAM policy for the glossary
578
+
579
+ > **Note:** `dataplex.GlossaryIamPolicy` **cannot** be used in conjunction with `dataplex.GlossaryIamBinding` and `dataplex.GlossaryIamMember` or they will fight over what your policy should be.
580
+
581
+ > **Note:** `dataplex.GlossaryIamBinding` resources **can be** used in conjunction with `dataplex.GlossaryIamMember` resources **only if** they do not grant privilege to the same role.
582
+
583
+ ## dataplex.GlossaryIamPolicy
584
+
585
+ ```python
586
+ import pulumi
587
+ import pulumi_gcp as gcp
588
+
589
+ admin = gcp.organizations.get_iam_policy(bindings=[{
590
+ "role": "roles/viewer",
591
+ "members": ["user:jane@example.com"],
592
+ }])
593
+ policy = gcp.dataplex.GlossaryIamPolicy("policy",
594
+ project=glossary_test_id["project"],
595
+ location=glossary_test_id["location"],
596
+ glossary_id=glossary_test_id["glossaryId"],
597
+ policy_data=admin.policy_data)
598
+ ```
599
+
600
+ ## dataplex.GlossaryIamBinding
601
+
602
+ ```python
603
+ import pulumi
604
+ import pulumi_gcp as gcp
605
+
606
+ binding = gcp.dataplex.GlossaryIamBinding("binding",
607
+ project=glossary_test_id["project"],
608
+ location=glossary_test_id["location"],
609
+ glossary_id=glossary_test_id["glossaryId"],
610
+ role="roles/viewer",
611
+ members=["user:jane@example.com"])
612
+ ```
613
+
614
+ ## dataplex.GlossaryIamMember
615
+
616
+ ```python
617
+ import pulumi
618
+ import pulumi_gcp as gcp
619
+
620
+ member = gcp.dataplex.GlossaryIamMember("member",
621
+ project=glossary_test_id["project"],
622
+ location=glossary_test_id["location"],
623
+ glossary_id=glossary_test_id["glossaryId"],
624
+ role="roles/viewer",
625
+ member="user:jane@example.com")
626
+ ```
627
+
628
+ ## Import
629
+
630
+ For all import syntaxes, the "resource in question" can take any of the following forms:
631
+
632
+ * projects/{{project}}/locations/{{location}}/glossaries/{{glossary_id}}
633
+
634
+ * {{project}}/{{location}}/{{glossary_id}}
635
+
636
+ * {{location}}/{{glossary_id}}
637
+
638
+ * {{glossary_id}}
639
+
640
+ Any variables not passed in the import command will be taken from the provider configuration.
641
+
642
+ Dataplex glossary IAM resources can be imported using the resource identifiers, role, and member.
643
+
644
+ IAM member imports use space-delimited identifiers: the resource in question, the role, and the member identity, e.g.
645
+
646
+ ```sh
647
+ $ pulumi import gcp:dataplex/glossaryIamMember:GlossaryIamMember editor "projects/{{project}}/locations/{{location}}/glossaries/{{glossary_id}} roles/viewer user:jane@example.com"
648
+ ```
649
+
650
+ IAM binding imports use space-delimited identifiers: the resource in question and the role, e.g.
651
+
652
+ ```sh
653
+ $ pulumi import gcp:dataplex/glossaryIamMember:GlossaryIamMember editor "projects/{{project}}/locations/{{location}}/glossaries/{{glossary_id}} roles/viewer"
654
+ ```
655
+
656
+ IAM policy imports use the identifier of the resource in question, e.g.
657
+
658
+ ```sh
659
+ $ pulumi import gcp:dataplex/glossaryIamMember:GlossaryIamMember editor projects/{{project}}/locations/{{location}}/glossaries/{{glossary_id}}
660
+ ```
661
+
662
+ -> **Custom Roles** If you're importing a IAM resource with a custom role, make sure to use the
663
+
664
+ full name of the custom role, e.g. `[projects/my-project|organizations/my-org]/roles/my-custom-role`.
665
+
666
+ :param str resource_name: The name of the resource.
667
+ :param GlossaryIamMemberArgs args: The arguments to use to populate this resource's properties.
668
+ :param pulumi.ResourceOptions opts: Options for the resource.
669
+ """
670
+ ...
671
+ def __init__(__self__, resource_name: str, *args, **kwargs):
672
+ resource_args, opts = _utilities.get_resource_args_opts(GlossaryIamMemberArgs, pulumi.ResourceOptions, *args, **kwargs)
673
+ if resource_args is not None:
674
+ __self__._internal_init(resource_name, opts, **resource_args.__dict__)
675
+ else:
676
+ __self__._internal_init(resource_name, *args, **kwargs)
677
+
678
+ def _internal_init(__self__,
679
+ resource_name: str,
680
+ opts: Optional[pulumi.ResourceOptions] = None,
681
+ condition: Optional[pulumi.Input[Union['GlossaryIamMemberConditionArgs', 'GlossaryIamMemberConditionArgsDict']]] = None,
682
+ glossary_id: Optional[pulumi.Input[builtins.str]] = None,
683
+ location: Optional[pulumi.Input[builtins.str]] = None,
684
+ member: Optional[pulumi.Input[builtins.str]] = None,
685
+ project: Optional[pulumi.Input[builtins.str]] = None,
686
+ role: Optional[pulumi.Input[builtins.str]] = None,
687
+ __props__=None):
688
+ opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
689
+ if not isinstance(opts, pulumi.ResourceOptions):
690
+ raise TypeError('Expected resource options to be a ResourceOptions instance')
691
+ if opts.id is None:
692
+ if __props__ is not None:
693
+ raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
694
+ __props__ = GlossaryIamMemberArgs.__new__(GlossaryIamMemberArgs)
695
+
696
+ __props__.__dict__["condition"] = condition
697
+ if glossary_id is None and not opts.urn:
698
+ raise TypeError("Missing required property 'glossary_id'")
699
+ __props__.__dict__["glossary_id"] = glossary_id
700
+ __props__.__dict__["location"] = location
701
+ if member is None and not opts.urn:
702
+ raise TypeError("Missing required property 'member'")
703
+ __props__.__dict__["member"] = member
704
+ __props__.__dict__["project"] = project
705
+ if role is None and not opts.urn:
706
+ raise TypeError("Missing required property 'role'")
707
+ __props__.__dict__["role"] = role
708
+ __props__.__dict__["etag"] = None
709
+ super(GlossaryIamMember, __self__).__init__(
710
+ 'gcp:dataplex/glossaryIamMember:GlossaryIamMember',
711
+ resource_name,
712
+ __props__,
713
+ opts)
714
+
715
+ @staticmethod
716
+ def get(resource_name: str,
717
+ id: pulumi.Input[str],
718
+ opts: Optional[pulumi.ResourceOptions] = None,
719
+ condition: Optional[pulumi.Input[Union['GlossaryIamMemberConditionArgs', 'GlossaryIamMemberConditionArgsDict']]] = None,
720
+ etag: Optional[pulumi.Input[builtins.str]] = None,
721
+ glossary_id: Optional[pulumi.Input[builtins.str]] = None,
722
+ location: Optional[pulumi.Input[builtins.str]] = None,
723
+ member: Optional[pulumi.Input[builtins.str]] = None,
724
+ project: Optional[pulumi.Input[builtins.str]] = None,
725
+ role: Optional[pulumi.Input[builtins.str]] = None) -> 'GlossaryIamMember':
726
+ """
727
+ Get an existing GlossaryIamMember resource's state with the given name, id, and optional extra
728
+ properties used to qualify the lookup.
729
+
730
+ :param str resource_name: The unique name of the resulting resource.
731
+ :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
732
+ :param pulumi.ResourceOptions opts: Options for the resource.
733
+ :param pulumi.Input[builtins.str] etag: (Computed) The etag of the IAM policy.
734
+ :param pulumi.Input[builtins.str] glossary_id: Used to find the parent resource to bind the IAM policy to
735
+ :param pulumi.Input[builtins.str] location: The location where the glossary should reside.
736
+ Used to find the parent resource to bind the IAM policy to. If not specified,
737
+ the value will be parsed from the identifier of the parent resource. If no location is provided in the parent identifier and no
738
+ location is specified, it is taken from the provider configuration.
739
+ :param pulumi.Input[builtins.str] member: Identities that will be granted the privilege in `role`.
740
+ Each entry can have one of the following values:
741
+ * **allUsers**: A special identifier that represents anyone who is on the internet; with or without a Google account.
742
+ * **allAuthenticatedUsers**: A special identifier that represents anyone who is authenticated with a Google account or a service account.
743
+ * **user:{emailid}**: An email address that represents a specific Google account. For example, alice@gmail.com or joe@example.com.
744
+ * **serviceAccount:{emailid}**: An email address that represents a service account. For example, my-other-app@appspot.gserviceaccount.com.
745
+ * **group:{emailid}**: An email address that represents a Google group. For example, admins@example.com.
746
+ * **domain:{domain}**: A G Suite domain (primary, instead of alias) name that represents all the users of that domain. For example, google.com or example.com.
747
+ * **projectOwner:projectid**: Owners of the given project. For example, "projectOwner:my-example-project"
748
+ * **projectEditor:projectid**: Editors of the given project. For example, "projectEditor:my-example-project"
749
+ * **projectViewer:projectid**: Viewers of the given project. For example, "projectViewer:my-example-project"
750
+ :param pulumi.Input[builtins.str] project: The ID of the project in which the resource belongs.
751
+ If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used.
752
+ :param pulumi.Input[builtins.str] role: The role that should be applied. Only one
753
+ `dataplex.GlossaryIamBinding` can be used per role. Note that custom roles must be of the format
754
+ `[projects|organizations]/{parent-name}/roles/{role-name}`.
755
+ """
756
+ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
757
+
758
+ __props__ = _GlossaryIamMemberState.__new__(_GlossaryIamMemberState)
759
+
760
+ __props__.__dict__["condition"] = condition
761
+ __props__.__dict__["etag"] = etag
762
+ __props__.__dict__["glossary_id"] = glossary_id
763
+ __props__.__dict__["location"] = location
764
+ __props__.__dict__["member"] = member
765
+ __props__.__dict__["project"] = project
766
+ __props__.__dict__["role"] = role
767
+ return GlossaryIamMember(resource_name, opts=opts, __props__=__props__)
768
+
769
+ @property
770
+ @pulumi.getter
771
+ def condition(self) -> pulumi.Output[Optional['outputs.GlossaryIamMemberCondition']]:
772
+ return pulumi.get(self, "condition")
773
+
774
+ @property
775
+ @pulumi.getter
776
+ def etag(self) -> pulumi.Output[builtins.str]:
777
+ """
778
+ (Computed) The etag of the IAM policy.
779
+ """
780
+ return pulumi.get(self, "etag")
781
+
782
+ @property
783
+ @pulumi.getter(name="glossaryId")
784
+ def glossary_id(self) -> pulumi.Output[builtins.str]:
785
+ """
786
+ Used to find the parent resource to bind the IAM policy to
787
+ """
788
+ return pulumi.get(self, "glossary_id")
789
+
790
+ @property
791
+ @pulumi.getter
792
+ def location(self) -> pulumi.Output[builtins.str]:
793
+ """
794
+ The location where the glossary should reside.
795
+ Used to find the parent resource to bind the IAM policy to. If not specified,
796
+ the value will be parsed from the identifier of the parent resource. If no location is provided in the parent identifier and no
797
+ location is specified, it is taken from the provider configuration.
798
+ """
799
+ return pulumi.get(self, "location")
800
+
801
+ @property
802
+ @pulumi.getter
803
+ def member(self) -> pulumi.Output[builtins.str]:
804
+ """
805
+ Identities that will be granted the privilege in `role`.
806
+ Each entry can have one of the following values:
807
+ * **allUsers**: A special identifier that represents anyone who is on the internet; with or without a Google account.
808
+ * **allAuthenticatedUsers**: A special identifier that represents anyone who is authenticated with a Google account or a service account.
809
+ * **user:{emailid}**: An email address that represents a specific Google account. For example, alice@gmail.com or joe@example.com.
810
+ * **serviceAccount:{emailid}**: An email address that represents a service account. For example, my-other-app@appspot.gserviceaccount.com.
811
+ * **group:{emailid}**: An email address that represents a Google group. For example, admins@example.com.
812
+ * **domain:{domain}**: A G Suite domain (primary, instead of alias) name that represents all the users of that domain. For example, google.com or example.com.
813
+ * **projectOwner:projectid**: Owners of the given project. For example, "projectOwner:my-example-project"
814
+ * **projectEditor:projectid**: Editors of the given project. For example, "projectEditor:my-example-project"
815
+ * **projectViewer:projectid**: Viewers of the given project. For example, "projectViewer:my-example-project"
816
+ """
817
+ return pulumi.get(self, "member")
818
+
819
+ @property
820
+ @pulumi.getter
821
+ def project(self) -> pulumi.Output[builtins.str]:
822
+ """
823
+ The ID of the project in which the resource belongs.
824
+ If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used.
825
+ """
826
+ return pulumi.get(self, "project")
827
+
828
+ @property
829
+ @pulumi.getter
830
+ def role(self) -> pulumi.Output[builtins.str]:
831
+ """
832
+ The role that should be applied. Only one
833
+ `dataplex.GlossaryIamBinding` can be used per role. Note that custom roles must be of the format
834
+ `[projects|organizations]/{parent-name}/roles/{role-name}`.
835
+ """
836
+ return pulumi.get(self, "role")
837
+