pulumi-gcp 8.24.0a1743177741__py3-none-any.whl → 8.25.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (126) hide show
  1. pulumi_gcp/__init__.py +104 -0
  2. pulumi_gcp/_inputs.py +48 -0
  3. pulumi_gcp/accesscontextmanager/_inputs.py +324 -12
  4. pulumi_gcp/accesscontextmanager/outputs.py +204 -12
  5. pulumi_gcp/accesscontextmanager/service_perimeter.py +0 -2
  6. pulumi_gcp/apigee/__init__.py +1 -0
  7. pulumi_gcp/apigee/_inputs.py +58 -0
  8. pulumi_gcp/apigee/dns_zone.py +491 -0
  9. pulumi_gcp/apigee/outputs.py +53 -0
  10. pulumi_gcp/bigquery/reservation_assignment.py +7 -7
  11. pulumi_gcp/bigtable/table.py +8 -8
  12. pulumi_gcp/chronicle/data_access_label.py +2 -2
  13. pulumi_gcp/chronicle/data_access_scope.py +16 -0
  14. pulumi_gcp/chronicle/reference_list.py +16 -0
  15. pulumi_gcp/chronicle/retrohunt.py +16 -0
  16. pulumi_gcp/chronicle/rule.py +16 -0
  17. pulumi_gcp/chronicle/rule_deployment.py +16 -0
  18. pulumi_gcp/chronicle/watchlist.py +16 -0
  19. pulumi_gcp/cloudfunctionsv2/_inputs.py +20 -0
  20. pulumi_gcp/cloudfunctionsv2/outputs.py +25 -0
  21. pulumi_gcp/cloudrunv2/_inputs.py +20 -0
  22. pulumi_gcp/cloudrunv2/outputs.py +25 -0
  23. pulumi_gcp/compute/__init__.py +1 -0
  24. pulumi_gcp/compute/_inputs.py +2011 -43
  25. pulumi_gcp/compute/backend_service.py +121 -3
  26. pulumi_gcp/compute/get_backend_service.py +15 -4
  27. pulumi_gcp/compute/get_instance.py +12 -1
  28. pulumi_gcp/compute/get_region_backend_service.py +482 -0
  29. pulumi_gcp/compute/get_router.py +12 -1
  30. pulumi_gcp/compute/get_subnetwork.py +43 -1
  31. pulumi_gcp/compute/instance.py +47 -0
  32. pulumi_gcp/compute/instance_from_machine_image.py +94 -0
  33. pulumi_gcp/compute/instance_from_template.py +47 -0
  34. pulumi_gcp/compute/outputs.py +3578 -139
  35. pulumi_gcp/compute/public_delegated_prefix.py +69 -15
  36. pulumi_gcp/compute/router.py +54 -0
  37. pulumi_gcp/compute/subnetwork.py +35 -5
  38. pulumi_gcp/config/__init__.pyi +2 -0
  39. pulumi_gcp/config/outputs.py +27 -0
  40. pulumi_gcp/config/vars.py +4 -0
  41. pulumi_gcp/container/_inputs.py +12 -12
  42. pulumi_gcp/container/cluster.py +47 -0
  43. pulumi_gcp/container/get_cluster.py +12 -1
  44. pulumi_gcp/container/get_registry_image.py +4 -0
  45. pulumi_gcp/container/get_registry_repository.py +4 -0
  46. pulumi_gcp/container/outputs.py +8 -8
  47. pulumi_gcp/container/registry.py +4 -0
  48. pulumi_gcp/datafusion/instance.py +68 -0
  49. pulumi_gcp/dataproc/__init__.py +8 -0
  50. pulumi_gcp/dataproc/_inputs.py +196 -0
  51. pulumi_gcp/dataproc/get_metastore_database_iam_policy.py +193 -0
  52. pulumi_gcp/dataproc/get_metastore_table_iam_policy.py +210 -0
  53. pulumi_gcp/dataproc/metastore_database_iam_binding.py +848 -0
  54. pulumi_gcp/dataproc/metastore_database_iam_member.py +848 -0
  55. pulumi_gcp/dataproc/metastore_database_iam_policy.py +687 -0
  56. pulumi_gcp/dataproc/metastore_federation.py +38 -2
  57. pulumi_gcp/dataproc/metastore_table_iam_binding.py +895 -0
  58. pulumi_gcp/dataproc/metastore_table_iam_member.py +895 -0
  59. pulumi_gcp/dataproc/metastore_table_iam_policy.py +734 -0
  60. pulumi_gcp/dataproc/outputs.py +112 -0
  61. pulumi_gcp/datastream/_inputs.py +311 -94
  62. pulumi_gcp/datastream/connection_profile.py +40 -0
  63. pulumi_gcp/datastream/outputs.py +244 -51
  64. pulumi_gcp/datastream/stream.py +216 -0
  65. pulumi_gcp/discoveryengine/__init__.py +1 -0
  66. pulumi_gcp/discoveryengine/sitemap.py +504 -0
  67. pulumi_gcp/eventarc/__init__.py +1 -0
  68. pulumi_gcp/eventarc/enrollment.py +980 -0
  69. pulumi_gcp/firebase/__init__.py +1 -0
  70. pulumi_gcp/firebase/_inputs.py +484 -0
  71. pulumi_gcp/firebase/app_hosting_build.py +1232 -0
  72. pulumi_gcp/firebase/outputs.py +333 -0
  73. pulumi_gcp/identityplatform/_inputs.py +91 -0
  74. pulumi_gcp/identityplatform/outputs.py +73 -0
  75. pulumi_gcp/identityplatform/tenant.py +56 -0
  76. pulumi_gcp/managedkafka/cluster.py +2 -2
  77. pulumi_gcp/memorystore/__init__.py +1 -0
  78. pulumi_gcp/memorystore/_inputs.py +826 -0
  79. pulumi_gcp/memorystore/get_instance.py +23 -1
  80. pulumi_gcp/memorystore/instance.py +344 -23
  81. pulumi_gcp/memorystore/instance_desired_user_created_endpoints.py +843 -0
  82. pulumi_gcp/memorystore/outputs.py +889 -8
  83. pulumi_gcp/networksecurity/_inputs.py +473 -0
  84. pulumi_gcp/networksecurity/mirroring_deployment_group.py +44 -16
  85. pulumi_gcp/networksecurity/mirroring_endpoint_group.py +94 -36
  86. pulumi_gcp/networksecurity/mirroring_endpoint_group_association.py +53 -8
  87. pulumi_gcp/networksecurity/outputs.py +291 -1
  88. pulumi_gcp/networksecurity/security_profile.py +8 -0
  89. pulumi_gcp/organizations/__init__.py +1 -0
  90. pulumi_gcp/organizations/get_iam_custom_roles.py +164 -0
  91. pulumi_gcp/organizations/outputs.py +96 -0
  92. pulumi_gcp/parametermanager/get_parameter.py +16 -1
  93. pulumi_gcp/parametermanager/get_parameter_version.py +19 -1
  94. pulumi_gcp/parametermanager/get_parameter_version_render.py +4 -0
  95. pulumi_gcp/parametermanager/get_parameters.py +4 -0
  96. pulumi_gcp/parametermanager/get_regional_parameter.py +4 -0
  97. pulumi_gcp/parametermanager/get_regional_parameter_version.py +4 -0
  98. pulumi_gcp/parametermanager/get_regional_parameter_version_render.py +8 -0
  99. pulumi_gcp/parametermanager/get_regional_parameters.py +4 -0
  100. pulumi_gcp/parametermanager/outputs.py +11 -0
  101. pulumi_gcp/parametermanager/parameter.py +88 -0
  102. pulumi_gcp/parametermanager/parameter_version.py +74 -0
  103. pulumi_gcp/parametermanager/regional_parameter.py +12 -0
  104. pulumi_gcp/parametermanager/regional_parameter_version.py +12 -0
  105. pulumi_gcp/provider.py +15 -0
  106. pulumi_gcp/pulumi-plugin.json +1 -1
  107. pulumi_gcp/redis/_inputs.py +136 -0
  108. pulumi_gcp/redis/cluster.py +54 -0
  109. pulumi_gcp/redis/outputs.py +114 -0
  110. pulumi_gcp/secretmanager/regional_secret_version.py +0 -16
  111. pulumi_gcp/storage/__init__.py +4 -0
  112. pulumi_gcp/storage/_inputs.py +596 -0
  113. pulumi_gcp/storage/bucket.py +7 -7
  114. pulumi_gcp/storage/control_folder_intelligence_config.py +420 -0
  115. pulumi_gcp/storage/control_organization_intelligence_config.py +420 -0
  116. pulumi_gcp/storage/control_project_intelligence_config.py +49 -7
  117. pulumi_gcp/storage/get_bucket_object_content.py +16 -1
  118. pulumi_gcp/storage/get_control_folder_intelligence_config.py +160 -0
  119. pulumi_gcp/storage/get_control_organization_intelligence_config.py +160 -0
  120. pulumi_gcp/storage/get_control_project_intelligence_config.py +32 -2
  121. pulumi_gcp/storage/outputs.py +2132 -1312
  122. pulumi_gcp/workbench/instance.py +14 -2
  123. {pulumi_gcp-8.24.0a1743177741.dist-info → pulumi_gcp-8.25.0.dist-info}/METADATA +1 -1
  124. {pulumi_gcp-8.24.0a1743177741.dist-info → pulumi_gcp-8.25.0.dist-info}/RECORD +126 -107
  125. {pulumi_gcp-8.24.0a1743177741.dist-info → pulumi_gcp-8.25.0.dist-info}/WHEEL +0 -0
  126. {pulumi_gcp-8.24.0a1743177741.dist-info → pulumi_gcp-8.25.0.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,687 @@
1
+ # coding=utf-8
2
+ # *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
3
+ # *** Do not edit by hand unless you're certain you know what you are doing! ***
4
+
5
+ import copy
6
+ import warnings
7
+ import sys
8
+ import pulumi
9
+ import pulumi.runtime
10
+ from typing import Any, Mapping, Optional, Sequence, Union, overload
11
+ if sys.version_info >= (3, 11):
12
+ from typing import NotRequired, TypedDict, TypeAlias
13
+ else:
14
+ from typing_extensions import NotRequired, TypedDict, TypeAlias
15
+ from .. import _utilities
16
+
17
+ __all__ = ['MetastoreDatabaseIamPolicyArgs', 'MetastoreDatabaseIamPolicy']
18
+
19
+ @pulumi.input_type
20
+ class MetastoreDatabaseIamPolicyArgs:
21
+ def __init__(__self__, *,
22
+ database: pulumi.Input[str],
23
+ policy_data: pulumi.Input[str],
24
+ service_id: pulumi.Input[str],
25
+ location: Optional[pulumi.Input[str]] = None,
26
+ project: Optional[pulumi.Input[str]] = None):
27
+ """
28
+ The set of arguments for constructing a MetastoreDatabaseIamPolicy resource.
29
+ :param pulumi.Input[str] database: Used to find the parent resource to bind the IAM policy to
30
+ :param pulumi.Input[str] policy_data: The policy data generated by
31
+ a `organizations_get_iam_policy` data source.
32
+ :param pulumi.Input[str] project: The ID of the project in which the resource belongs.
33
+ 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.
34
+ """
35
+ pulumi.set(__self__, "database", database)
36
+ pulumi.set(__self__, "policy_data", policy_data)
37
+ pulumi.set(__self__, "service_id", service_id)
38
+ if location is not None:
39
+ pulumi.set(__self__, "location", location)
40
+ if project is not None:
41
+ pulumi.set(__self__, "project", project)
42
+
43
+ @property
44
+ @pulumi.getter
45
+ def database(self) -> pulumi.Input[str]:
46
+ """
47
+ Used to find the parent resource to bind the IAM policy to
48
+ """
49
+ return pulumi.get(self, "database")
50
+
51
+ @database.setter
52
+ def database(self, value: pulumi.Input[str]):
53
+ pulumi.set(self, "database", value)
54
+
55
+ @property
56
+ @pulumi.getter(name="policyData")
57
+ def policy_data(self) -> pulumi.Input[str]:
58
+ """
59
+ The policy data generated by
60
+ a `organizations_get_iam_policy` data source.
61
+ """
62
+ return pulumi.get(self, "policy_data")
63
+
64
+ @policy_data.setter
65
+ def policy_data(self, value: pulumi.Input[str]):
66
+ pulumi.set(self, "policy_data", value)
67
+
68
+ @property
69
+ @pulumi.getter(name="serviceId")
70
+ def service_id(self) -> pulumi.Input[str]:
71
+ return pulumi.get(self, "service_id")
72
+
73
+ @service_id.setter
74
+ def service_id(self, value: pulumi.Input[str]):
75
+ pulumi.set(self, "service_id", value)
76
+
77
+ @property
78
+ @pulumi.getter
79
+ def location(self) -> Optional[pulumi.Input[str]]:
80
+ return pulumi.get(self, "location")
81
+
82
+ @location.setter
83
+ def location(self, value: Optional[pulumi.Input[str]]):
84
+ pulumi.set(self, "location", value)
85
+
86
+ @property
87
+ @pulumi.getter
88
+ def project(self) -> Optional[pulumi.Input[str]]:
89
+ """
90
+ The ID of the project in which the resource belongs.
91
+ 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.
92
+ """
93
+ return pulumi.get(self, "project")
94
+
95
+ @project.setter
96
+ def project(self, value: Optional[pulumi.Input[str]]):
97
+ pulumi.set(self, "project", value)
98
+
99
+
100
+ @pulumi.input_type
101
+ class _MetastoreDatabaseIamPolicyState:
102
+ def __init__(__self__, *,
103
+ database: Optional[pulumi.Input[str]] = None,
104
+ etag: Optional[pulumi.Input[str]] = None,
105
+ location: Optional[pulumi.Input[str]] = None,
106
+ policy_data: Optional[pulumi.Input[str]] = None,
107
+ project: Optional[pulumi.Input[str]] = None,
108
+ service_id: Optional[pulumi.Input[str]] = None):
109
+ """
110
+ Input properties used for looking up and filtering MetastoreDatabaseIamPolicy resources.
111
+ :param pulumi.Input[str] database: Used to find the parent resource to bind the IAM policy to
112
+ :param pulumi.Input[str] etag: (Computed) The etag of the IAM policy.
113
+ :param pulumi.Input[str] policy_data: The policy data generated by
114
+ a `organizations_get_iam_policy` data source.
115
+ :param pulumi.Input[str] project: The ID of the project in which the resource belongs.
116
+ 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.
117
+ """
118
+ if database is not None:
119
+ pulumi.set(__self__, "database", database)
120
+ if etag is not None:
121
+ pulumi.set(__self__, "etag", etag)
122
+ if location is not None:
123
+ pulumi.set(__self__, "location", location)
124
+ if policy_data is not None:
125
+ pulumi.set(__self__, "policy_data", policy_data)
126
+ if project is not None:
127
+ pulumi.set(__self__, "project", project)
128
+ if service_id is not None:
129
+ pulumi.set(__self__, "service_id", service_id)
130
+
131
+ @property
132
+ @pulumi.getter
133
+ def database(self) -> Optional[pulumi.Input[str]]:
134
+ """
135
+ Used to find the parent resource to bind the IAM policy to
136
+ """
137
+ return pulumi.get(self, "database")
138
+
139
+ @database.setter
140
+ def database(self, value: Optional[pulumi.Input[str]]):
141
+ pulumi.set(self, "database", value)
142
+
143
+ @property
144
+ @pulumi.getter
145
+ def etag(self) -> Optional[pulumi.Input[str]]:
146
+ """
147
+ (Computed) The etag of the IAM policy.
148
+ """
149
+ return pulumi.get(self, "etag")
150
+
151
+ @etag.setter
152
+ def etag(self, value: Optional[pulumi.Input[str]]):
153
+ pulumi.set(self, "etag", value)
154
+
155
+ @property
156
+ @pulumi.getter
157
+ def location(self) -> Optional[pulumi.Input[str]]:
158
+ return pulumi.get(self, "location")
159
+
160
+ @location.setter
161
+ def location(self, value: Optional[pulumi.Input[str]]):
162
+ pulumi.set(self, "location", value)
163
+
164
+ @property
165
+ @pulumi.getter(name="policyData")
166
+ def policy_data(self) -> Optional[pulumi.Input[str]]:
167
+ """
168
+ The policy data generated by
169
+ a `organizations_get_iam_policy` data source.
170
+ """
171
+ return pulumi.get(self, "policy_data")
172
+
173
+ @policy_data.setter
174
+ def policy_data(self, value: Optional[pulumi.Input[str]]):
175
+ pulumi.set(self, "policy_data", value)
176
+
177
+ @property
178
+ @pulumi.getter
179
+ def project(self) -> Optional[pulumi.Input[str]]:
180
+ """
181
+ The ID of the project in which the resource belongs.
182
+ 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.
183
+ """
184
+ return pulumi.get(self, "project")
185
+
186
+ @project.setter
187
+ def project(self, value: Optional[pulumi.Input[str]]):
188
+ pulumi.set(self, "project", value)
189
+
190
+ @property
191
+ @pulumi.getter(name="serviceId")
192
+ def service_id(self) -> Optional[pulumi.Input[str]]:
193
+ return pulumi.get(self, "service_id")
194
+
195
+ @service_id.setter
196
+ def service_id(self, value: Optional[pulumi.Input[str]]):
197
+ pulumi.set(self, "service_id", value)
198
+
199
+
200
+ class MetastoreDatabaseIamPolicy(pulumi.CustomResource):
201
+ @overload
202
+ def __init__(__self__,
203
+ resource_name: str,
204
+ opts: Optional[pulumi.ResourceOptions] = None,
205
+ database: Optional[pulumi.Input[str]] = None,
206
+ location: Optional[pulumi.Input[str]] = None,
207
+ policy_data: Optional[pulumi.Input[str]] = None,
208
+ project: Optional[pulumi.Input[str]] = None,
209
+ service_id: Optional[pulumi.Input[str]] = None,
210
+ __props__=None):
211
+ """
212
+ Three different resources help you manage your IAM policy for Dataproc Metastore Database. Each of these resources serves a different use case:
213
+
214
+ * `dataproc.MetastoreDatabaseIamPolicy`: Authoritative. Sets the IAM policy for the database and replaces any existing policy already attached.
215
+ * `dataproc.MetastoreDatabaseIamBinding`: 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 database are preserved.
216
+ * `dataproc.MetastoreDatabaseIamMember`: Non-authoritative. Updates the IAM policy to grant a role to a new member. Other members for the role for the database are preserved.
217
+
218
+ A data source can be used to retrieve policy data in advent you do not need creation
219
+
220
+ * `dataproc.MetastoreDatabaseIamPolicy`: Retrieves the IAM policy for the database
221
+
222
+ > **Note:** `dataproc.MetastoreDatabaseIamPolicy` **cannot** be used in conjunction with `dataproc.MetastoreDatabaseIamBinding` and `dataproc.MetastoreDatabaseIamMember` or they will fight over what your policy should be.
223
+
224
+ > **Note:** `dataproc.MetastoreDatabaseIamBinding` resources **can be** used in conjunction with `dataproc.MetastoreDatabaseIamMember` resources **only if** they do not grant privilege to the same role.
225
+
226
+ ## dataproc.MetastoreDatabaseIamPolicy
227
+
228
+ ```python
229
+ import pulumi
230
+ import pulumi_gcp as gcp
231
+
232
+ admin = gcp.organizations.get_iam_policy(bindings=[{
233
+ "role": "roles/viewer",
234
+ "members": ["user:jane@example.com"],
235
+ }])
236
+ policy = gcp.dataproc.MetastoreDatabaseIamPolicy("policy",
237
+ project=dpms_service["project"],
238
+ location=dpms_service["location"],
239
+ service_id=dpms_service["serviceId"],
240
+ database=hive["hiveConfig"][0]["properties"]["database"],
241
+ policy_data=admin.policy_data)
242
+ ```
243
+
244
+ ## dataproc.MetastoreDatabaseIamBinding
245
+
246
+ ```python
247
+ import pulumi
248
+ import pulumi_gcp as gcp
249
+
250
+ binding = gcp.dataproc.MetastoreDatabaseIamBinding("binding",
251
+ project=dpms_service["project"],
252
+ location=dpms_service["location"],
253
+ service_id=dpms_service["serviceId"],
254
+ database=hive["hiveConfig"][0]["properties"]["database"],
255
+ role="roles/viewer",
256
+ members=["user:jane@example.com"])
257
+ ```
258
+
259
+ ## dataproc.MetastoreDatabaseIamMember
260
+
261
+ ```python
262
+ import pulumi
263
+ import pulumi_gcp as gcp
264
+
265
+ member = gcp.dataproc.MetastoreDatabaseIamMember("member",
266
+ project=dpms_service["project"],
267
+ location=dpms_service["location"],
268
+ service_id=dpms_service["serviceId"],
269
+ database=hive["hiveConfig"][0]["properties"]["database"],
270
+ role="roles/viewer",
271
+ member="user:jane@example.com")
272
+ ```
273
+
274
+ ## This resource supports User Project Overrides.
275
+
276
+ -
277
+
278
+ # IAM policy for Dataproc Metastore Database
279
+ Three different resources help you manage your IAM policy for Dataproc Metastore Database. Each of these resources serves a different use case:
280
+
281
+ * `dataproc.MetastoreDatabaseIamPolicy`: Authoritative. Sets the IAM policy for the database and replaces any existing policy already attached.
282
+ * `dataproc.MetastoreDatabaseIamBinding`: 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 database are preserved.
283
+ * `dataproc.MetastoreDatabaseIamMember`: Non-authoritative. Updates the IAM policy to grant a role to a new member. Other members for the role for the database are preserved.
284
+
285
+ A data source can be used to retrieve policy data in advent you do not need creation
286
+
287
+ * `dataproc.MetastoreDatabaseIamPolicy`: Retrieves the IAM policy for the database
288
+
289
+ > **Note:** `dataproc.MetastoreDatabaseIamPolicy` **cannot** be used in conjunction with `dataproc.MetastoreDatabaseIamBinding` and `dataproc.MetastoreDatabaseIamMember` or they will fight over what your policy should be.
290
+
291
+ > **Note:** `dataproc.MetastoreDatabaseIamBinding` resources **can be** used in conjunction with `dataproc.MetastoreDatabaseIamMember` resources **only if** they do not grant privilege to the same role.
292
+
293
+ ## dataproc.MetastoreDatabaseIamPolicy
294
+
295
+ ```python
296
+ import pulumi
297
+ import pulumi_gcp as gcp
298
+
299
+ admin = gcp.organizations.get_iam_policy(bindings=[{
300
+ "role": "roles/viewer",
301
+ "members": ["user:jane@example.com"],
302
+ }])
303
+ policy = gcp.dataproc.MetastoreDatabaseIamPolicy("policy",
304
+ project=dpms_service["project"],
305
+ location=dpms_service["location"],
306
+ service_id=dpms_service["serviceId"],
307
+ database=hive["hiveConfig"][0]["properties"]["database"],
308
+ policy_data=admin.policy_data)
309
+ ```
310
+
311
+ ## dataproc.MetastoreDatabaseIamBinding
312
+
313
+ ```python
314
+ import pulumi
315
+ import pulumi_gcp as gcp
316
+
317
+ binding = gcp.dataproc.MetastoreDatabaseIamBinding("binding",
318
+ project=dpms_service["project"],
319
+ location=dpms_service["location"],
320
+ service_id=dpms_service["serviceId"],
321
+ database=hive["hiveConfig"][0]["properties"]["database"],
322
+ role="roles/viewer",
323
+ members=["user:jane@example.com"])
324
+ ```
325
+
326
+ ## dataproc.MetastoreDatabaseIamMember
327
+
328
+ ```python
329
+ import pulumi
330
+ import pulumi_gcp as gcp
331
+
332
+ member = gcp.dataproc.MetastoreDatabaseIamMember("member",
333
+ project=dpms_service["project"],
334
+ location=dpms_service["location"],
335
+ service_id=dpms_service["serviceId"],
336
+ database=hive["hiveConfig"][0]["properties"]["database"],
337
+ role="roles/viewer",
338
+ member="user:jane@example.com")
339
+ ```
340
+
341
+ ## Import
342
+
343
+ For all import syntaxes, the "resource in question" can take any of the following forms:
344
+
345
+ * projects/{{project}}/locations/{{location}}/services/{{serviceId}}/databases/{{name}}
346
+
347
+ * {{project}}/{{location}}/{{serviceId}}/{{name}}
348
+
349
+ * {{location}}/{{serviceId}}/{{name}}
350
+
351
+ * {{name}}
352
+
353
+ Any variables not passed in the import command will be taken from the provider configuration.
354
+
355
+ Dataproc Metastore database IAM resources can be imported using the resource identifiers, role, and member.
356
+
357
+ IAM member imports use space-delimited identifiers: the resource in question, the role, and the member identity, e.g.
358
+
359
+ ```sh
360
+ $ pulumi import gcp:dataproc/metastoreDatabaseIamPolicy:MetastoreDatabaseIamPolicy editor "projects/{{project}}/locations/{{location}}/services/{{serviceId}}/databases/{{database}} roles/viewer user:jane@example.com"
361
+ ```
362
+
363
+ IAM binding imports use space-delimited identifiers: the resource in question and the role, e.g.
364
+
365
+ ```sh
366
+ $ pulumi import gcp:dataproc/metastoreDatabaseIamPolicy:MetastoreDatabaseIamPolicy editor "projects/{{project}}/locations/{{location}}/services/{{serviceId}}/databases/{{database}} roles/viewer"
367
+ ```
368
+
369
+ IAM policy imports use the identifier of the resource in question, e.g.
370
+
371
+ ```sh
372
+ $ pulumi import gcp:dataproc/metastoreDatabaseIamPolicy:MetastoreDatabaseIamPolicy editor projects/{{project}}/locations/{{location}}/services/{{serviceId}}/databases/{{database}}
373
+ ```
374
+
375
+ -> **Custom Roles** If you're importing a IAM resource with a custom role, make sure to use the
376
+
377
+ full name of the custom role, e.g. `[projects/my-project|organizations/my-org]/roles/my-custom-role`.
378
+
379
+ :param str resource_name: The name of the resource.
380
+ :param pulumi.ResourceOptions opts: Options for the resource.
381
+ :param pulumi.Input[str] database: Used to find the parent resource to bind the IAM policy to
382
+ :param pulumi.Input[str] policy_data: The policy data generated by
383
+ a `organizations_get_iam_policy` data source.
384
+ :param pulumi.Input[str] project: The ID of the project in which the resource belongs.
385
+ 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.
386
+ """
387
+ ...
388
+ @overload
389
+ def __init__(__self__,
390
+ resource_name: str,
391
+ args: MetastoreDatabaseIamPolicyArgs,
392
+ opts: Optional[pulumi.ResourceOptions] = None):
393
+ """
394
+ Three different resources help you manage your IAM policy for Dataproc Metastore Database. Each of these resources serves a different use case:
395
+
396
+ * `dataproc.MetastoreDatabaseIamPolicy`: Authoritative. Sets the IAM policy for the database and replaces any existing policy already attached.
397
+ * `dataproc.MetastoreDatabaseIamBinding`: 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 database are preserved.
398
+ * `dataproc.MetastoreDatabaseIamMember`: Non-authoritative. Updates the IAM policy to grant a role to a new member. Other members for the role for the database are preserved.
399
+
400
+ A data source can be used to retrieve policy data in advent you do not need creation
401
+
402
+ * `dataproc.MetastoreDatabaseIamPolicy`: Retrieves the IAM policy for the database
403
+
404
+ > **Note:** `dataproc.MetastoreDatabaseIamPolicy` **cannot** be used in conjunction with `dataproc.MetastoreDatabaseIamBinding` and `dataproc.MetastoreDatabaseIamMember` or they will fight over what your policy should be.
405
+
406
+ > **Note:** `dataproc.MetastoreDatabaseIamBinding` resources **can be** used in conjunction with `dataproc.MetastoreDatabaseIamMember` resources **only if** they do not grant privilege to the same role.
407
+
408
+ ## dataproc.MetastoreDatabaseIamPolicy
409
+
410
+ ```python
411
+ import pulumi
412
+ import pulumi_gcp as gcp
413
+
414
+ admin = gcp.organizations.get_iam_policy(bindings=[{
415
+ "role": "roles/viewer",
416
+ "members": ["user:jane@example.com"],
417
+ }])
418
+ policy = gcp.dataproc.MetastoreDatabaseIamPolicy("policy",
419
+ project=dpms_service["project"],
420
+ location=dpms_service["location"],
421
+ service_id=dpms_service["serviceId"],
422
+ database=hive["hiveConfig"][0]["properties"]["database"],
423
+ policy_data=admin.policy_data)
424
+ ```
425
+
426
+ ## dataproc.MetastoreDatabaseIamBinding
427
+
428
+ ```python
429
+ import pulumi
430
+ import pulumi_gcp as gcp
431
+
432
+ binding = gcp.dataproc.MetastoreDatabaseIamBinding("binding",
433
+ project=dpms_service["project"],
434
+ location=dpms_service["location"],
435
+ service_id=dpms_service["serviceId"],
436
+ database=hive["hiveConfig"][0]["properties"]["database"],
437
+ role="roles/viewer",
438
+ members=["user:jane@example.com"])
439
+ ```
440
+
441
+ ## dataproc.MetastoreDatabaseIamMember
442
+
443
+ ```python
444
+ import pulumi
445
+ import pulumi_gcp as gcp
446
+
447
+ member = gcp.dataproc.MetastoreDatabaseIamMember("member",
448
+ project=dpms_service["project"],
449
+ location=dpms_service["location"],
450
+ service_id=dpms_service["serviceId"],
451
+ database=hive["hiveConfig"][0]["properties"]["database"],
452
+ role="roles/viewer",
453
+ member="user:jane@example.com")
454
+ ```
455
+
456
+ ## This resource supports User Project Overrides.
457
+
458
+ -
459
+
460
+ # IAM policy for Dataproc Metastore Database
461
+ Three different resources help you manage your IAM policy for Dataproc Metastore Database. Each of these resources serves a different use case:
462
+
463
+ * `dataproc.MetastoreDatabaseIamPolicy`: Authoritative. Sets the IAM policy for the database and replaces any existing policy already attached.
464
+ * `dataproc.MetastoreDatabaseIamBinding`: 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 database are preserved.
465
+ * `dataproc.MetastoreDatabaseIamMember`: Non-authoritative. Updates the IAM policy to grant a role to a new member. Other members for the role for the database are preserved.
466
+
467
+ A data source can be used to retrieve policy data in advent you do not need creation
468
+
469
+ * `dataproc.MetastoreDatabaseIamPolicy`: Retrieves the IAM policy for the database
470
+
471
+ > **Note:** `dataproc.MetastoreDatabaseIamPolicy` **cannot** be used in conjunction with `dataproc.MetastoreDatabaseIamBinding` and `dataproc.MetastoreDatabaseIamMember` or they will fight over what your policy should be.
472
+
473
+ > **Note:** `dataproc.MetastoreDatabaseIamBinding` resources **can be** used in conjunction with `dataproc.MetastoreDatabaseIamMember` resources **only if** they do not grant privilege to the same role.
474
+
475
+ ## dataproc.MetastoreDatabaseIamPolicy
476
+
477
+ ```python
478
+ import pulumi
479
+ import pulumi_gcp as gcp
480
+
481
+ admin = gcp.organizations.get_iam_policy(bindings=[{
482
+ "role": "roles/viewer",
483
+ "members": ["user:jane@example.com"],
484
+ }])
485
+ policy = gcp.dataproc.MetastoreDatabaseIamPolicy("policy",
486
+ project=dpms_service["project"],
487
+ location=dpms_service["location"],
488
+ service_id=dpms_service["serviceId"],
489
+ database=hive["hiveConfig"][0]["properties"]["database"],
490
+ policy_data=admin.policy_data)
491
+ ```
492
+
493
+ ## dataproc.MetastoreDatabaseIamBinding
494
+
495
+ ```python
496
+ import pulumi
497
+ import pulumi_gcp as gcp
498
+
499
+ binding = gcp.dataproc.MetastoreDatabaseIamBinding("binding",
500
+ project=dpms_service["project"],
501
+ location=dpms_service["location"],
502
+ service_id=dpms_service["serviceId"],
503
+ database=hive["hiveConfig"][0]["properties"]["database"],
504
+ role="roles/viewer",
505
+ members=["user:jane@example.com"])
506
+ ```
507
+
508
+ ## dataproc.MetastoreDatabaseIamMember
509
+
510
+ ```python
511
+ import pulumi
512
+ import pulumi_gcp as gcp
513
+
514
+ member = gcp.dataproc.MetastoreDatabaseIamMember("member",
515
+ project=dpms_service["project"],
516
+ location=dpms_service["location"],
517
+ service_id=dpms_service["serviceId"],
518
+ database=hive["hiveConfig"][0]["properties"]["database"],
519
+ role="roles/viewer",
520
+ member="user:jane@example.com")
521
+ ```
522
+
523
+ ## Import
524
+
525
+ For all import syntaxes, the "resource in question" can take any of the following forms:
526
+
527
+ * projects/{{project}}/locations/{{location}}/services/{{serviceId}}/databases/{{name}}
528
+
529
+ * {{project}}/{{location}}/{{serviceId}}/{{name}}
530
+
531
+ * {{location}}/{{serviceId}}/{{name}}
532
+
533
+ * {{name}}
534
+
535
+ Any variables not passed in the import command will be taken from the provider configuration.
536
+
537
+ Dataproc Metastore database IAM resources can be imported using the resource identifiers, role, and member.
538
+
539
+ IAM member imports use space-delimited identifiers: the resource in question, the role, and the member identity, e.g.
540
+
541
+ ```sh
542
+ $ pulumi import gcp:dataproc/metastoreDatabaseIamPolicy:MetastoreDatabaseIamPolicy editor "projects/{{project}}/locations/{{location}}/services/{{serviceId}}/databases/{{database}} roles/viewer user:jane@example.com"
543
+ ```
544
+
545
+ IAM binding imports use space-delimited identifiers: the resource in question and the role, e.g.
546
+
547
+ ```sh
548
+ $ pulumi import gcp:dataproc/metastoreDatabaseIamPolicy:MetastoreDatabaseIamPolicy editor "projects/{{project}}/locations/{{location}}/services/{{serviceId}}/databases/{{database}} roles/viewer"
549
+ ```
550
+
551
+ IAM policy imports use the identifier of the resource in question, e.g.
552
+
553
+ ```sh
554
+ $ pulumi import gcp:dataproc/metastoreDatabaseIamPolicy:MetastoreDatabaseIamPolicy editor projects/{{project}}/locations/{{location}}/services/{{serviceId}}/databases/{{database}}
555
+ ```
556
+
557
+ -> **Custom Roles** If you're importing a IAM resource with a custom role, make sure to use the
558
+
559
+ full name of the custom role, e.g. `[projects/my-project|organizations/my-org]/roles/my-custom-role`.
560
+
561
+ :param str resource_name: The name of the resource.
562
+ :param MetastoreDatabaseIamPolicyArgs args: The arguments to use to populate this resource's properties.
563
+ :param pulumi.ResourceOptions opts: Options for the resource.
564
+ """
565
+ ...
566
+ def __init__(__self__, resource_name: str, *args, **kwargs):
567
+ resource_args, opts = _utilities.get_resource_args_opts(MetastoreDatabaseIamPolicyArgs, pulumi.ResourceOptions, *args, **kwargs)
568
+ if resource_args is not None:
569
+ __self__._internal_init(resource_name, opts, **resource_args.__dict__)
570
+ else:
571
+ __self__._internal_init(resource_name, *args, **kwargs)
572
+
573
+ def _internal_init(__self__,
574
+ resource_name: str,
575
+ opts: Optional[pulumi.ResourceOptions] = None,
576
+ database: Optional[pulumi.Input[str]] = None,
577
+ location: Optional[pulumi.Input[str]] = None,
578
+ policy_data: Optional[pulumi.Input[str]] = None,
579
+ project: Optional[pulumi.Input[str]] = None,
580
+ service_id: Optional[pulumi.Input[str]] = None,
581
+ __props__=None):
582
+ opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
583
+ if not isinstance(opts, pulumi.ResourceOptions):
584
+ raise TypeError('Expected resource options to be a ResourceOptions instance')
585
+ if opts.id is None:
586
+ if __props__ is not None:
587
+ raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
588
+ __props__ = MetastoreDatabaseIamPolicyArgs.__new__(MetastoreDatabaseIamPolicyArgs)
589
+
590
+ if database is None and not opts.urn:
591
+ raise TypeError("Missing required property 'database'")
592
+ __props__.__dict__["database"] = database
593
+ __props__.__dict__["location"] = location
594
+ if policy_data is None and not opts.urn:
595
+ raise TypeError("Missing required property 'policy_data'")
596
+ __props__.__dict__["policy_data"] = policy_data
597
+ __props__.__dict__["project"] = project
598
+ if service_id is None and not opts.urn:
599
+ raise TypeError("Missing required property 'service_id'")
600
+ __props__.__dict__["service_id"] = service_id
601
+ __props__.__dict__["etag"] = None
602
+ super(MetastoreDatabaseIamPolicy, __self__).__init__(
603
+ 'gcp:dataproc/metastoreDatabaseIamPolicy:MetastoreDatabaseIamPolicy',
604
+ resource_name,
605
+ __props__,
606
+ opts)
607
+
608
+ @staticmethod
609
+ def get(resource_name: str,
610
+ id: pulumi.Input[str],
611
+ opts: Optional[pulumi.ResourceOptions] = None,
612
+ database: Optional[pulumi.Input[str]] = None,
613
+ etag: Optional[pulumi.Input[str]] = None,
614
+ location: Optional[pulumi.Input[str]] = None,
615
+ policy_data: Optional[pulumi.Input[str]] = None,
616
+ project: Optional[pulumi.Input[str]] = None,
617
+ service_id: Optional[pulumi.Input[str]] = None) -> 'MetastoreDatabaseIamPolicy':
618
+ """
619
+ Get an existing MetastoreDatabaseIamPolicy resource's state with the given name, id, and optional extra
620
+ properties used to qualify the lookup.
621
+
622
+ :param str resource_name: The unique name of the resulting resource.
623
+ :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
624
+ :param pulumi.ResourceOptions opts: Options for the resource.
625
+ :param pulumi.Input[str] database: Used to find the parent resource to bind the IAM policy to
626
+ :param pulumi.Input[str] etag: (Computed) The etag of the IAM policy.
627
+ :param pulumi.Input[str] policy_data: The policy data generated by
628
+ a `organizations_get_iam_policy` data source.
629
+ :param pulumi.Input[str] project: The ID of the project in which the resource belongs.
630
+ 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.
631
+ """
632
+ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
633
+
634
+ __props__ = _MetastoreDatabaseIamPolicyState.__new__(_MetastoreDatabaseIamPolicyState)
635
+
636
+ __props__.__dict__["database"] = database
637
+ __props__.__dict__["etag"] = etag
638
+ __props__.__dict__["location"] = location
639
+ __props__.__dict__["policy_data"] = policy_data
640
+ __props__.__dict__["project"] = project
641
+ __props__.__dict__["service_id"] = service_id
642
+ return MetastoreDatabaseIamPolicy(resource_name, opts=opts, __props__=__props__)
643
+
644
+ @property
645
+ @pulumi.getter
646
+ def database(self) -> pulumi.Output[str]:
647
+ """
648
+ Used to find the parent resource to bind the IAM policy to
649
+ """
650
+ return pulumi.get(self, "database")
651
+
652
+ @property
653
+ @pulumi.getter
654
+ def etag(self) -> pulumi.Output[str]:
655
+ """
656
+ (Computed) The etag of the IAM policy.
657
+ """
658
+ return pulumi.get(self, "etag")
659
+
660
+ @property
661
+ @pulumi.getter
662
+ def location(self) -> pulumi.Output[str]:
663
+ return pulumi.get(self, "location")
664
+
665
+ @property
666
+ @pulumi.getter(name="policyData")
667
+ def policy_data(self) -> pulumi.Output[str]:
668
+ """
669
+ The policy data generated by
670
+ a `organizations_get_iam_policy` data source.
671
+ """
672
+ return pulumi.get(self, "policy_data")
673
+
674
+ @property
675
+ @pulumi.getter
676
+ def project(self) -> pulumi.Output[str]:
677
+ """
678
+ The ID of the project in which the resource belongs.
679
+ 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.
680
+ """
681
+ return pulumi.get(self, "project")
682
+
683
+ @property
684
+ @pulumi.getter(name="serviceId")
685
+ def service_id(self) -> pulumi.Output[str]:
686
+ return pulumi.get(self, "service_id")
687
+