pulumi-gcp 8.28.0a1745598508__py3-none-any.whl → 8.29.0a1746076904__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 (78) hide show
  1. pulumi_gcp/__init__.py +88 -0
  2. pulumi_gcp/accesscontextmanager/_inputs.py +399 -0
  3. pulumi_gcp/accesscontextmanager/gcp_user_access_binding.py +54 -0
  4. pulumi_gcp/accesscontextmanager/outputs.py +369 -0
  5. pulumi_gcp/alloydb/_inputs.py +47 -1
  6. pulumi_gcp/alloydb/outputs.py +61 -3
  7. pulumi_gcp/apigee/keystores_aliases_self_signed_cert.py +8 -2
  8. pulumi_gcp/applicationintegration/client.py +34 -12
  9. pulumi_gcp/artifactregistry/outputs.py +2 -2
  10. pulumi_gcp/certificateauthority/_inputs.py +32 -0
  11. pulumi_gcp/certificateauthority/ca_pool.py +2 -0
  12. pulumi_gcp/certificateauthority/outputs.py +22 -0
  13. pulumi_gcp/clouddeploy/_inputs.py +0 -6
  14. pulumi_gcp/clouddeploy/delivery_pipeline.py +84 -77
  15. pulumi_gcp/clouddeploy/outputs.py +0 -4
  16. pulumi_gcp/cloudrunv2/_inputs.py +3 -3
  17. pulumi_gcp/cloudrunv2/outputs.py +4 -4
  18. pulumi_gcp/colab/runtime_template.py +3 -3
  19. pulumi_gcp/compute/__init__.py +7 -0
  20. pulumi_gcp/compute/_inputs.py +809 -1
  21. pulumi_gcp/compute/backend_service.py +89 -0
  22. pulumi_gcp/compute/firewall_policy_with_rules.py +2 -2
  23. pulumi_gcp/compute/get_backend_service.py +12 -1
  24. pulumi_gcp/compute/get_storage_pool_iam_policy.py +183 -0
  25. pulumi_gcp/compute/get_storage_pool_types.py +268 -0
  26. pulumi_gcp/compute/outputs.py +743 -3
  27. pulumi_gcp/compute/resource_policy_attachment.py +476 -0
  28. pulumi_gcp/compute/storage_pool.py +1045 -0
  29. pulumi_gcp/compute/storage_pool_iam_binding.py +1088 -0
  30. pulumi_gcp/compute/storage_pool_iam_member.py +1088 -0
  31. pulumi_gcp/compute/storage_pool_iam_policy.py +907 -0
  32. pulumi_gcp/config/__init__.pyi +2 -0
  33. pulumi_gcp/config/vars.py +4 -0
  34. pulumi_gcp/container/_inputs.py +63 -3
  35. pulumi_gcp/container/outputs.py +70 -6
  36. pulumi_gcp/dataproc/get_metastore_service.py +12 -1
  37. pulumi_gcp/dataproc/metastore_service.py +61 -0
  38. pulumi_gcp/datastream/connection_profile.py +40 -0
  39. pulumi_gcp/discoveryengine/_inputs.py +38 -0
  40. pulumi_gcp/discoveryengine/chat_engine.py +6 -4
  41. pulumi_gcp/discoveryengine/outputs.py +26 -0
  42. pulumi_gcp/firebaserules/_inputs.py +6 -6
  43. pulumi_gcp/firebaserules/outputs.py +4 -4
  44. pulumi_gcp/gkebackup/__init__.py +2 -0
  45. pulumi_gcp/gkebackup/backup_channel.py +737 -0
  46. pulumi_gcp/gkebackup/restore_channel.py +737 -0
  47. pulumi_gcp/gkehub/_inputs.py +208 -0
  48. pulumi_gcp/gkehub/outputs.py +171 -1
  49. pulumi_gcp/healthcare/pipeline_job.py +2 -2
  50. pulumi_gcp/iap/__init__.py +4 -0
  51. pulumi_gcp/iap/_inputs.py +130 -0
  52. pulumi_gcp/iap/get_web_cloud_run_service_iam_policy.py +183 -0
  53. pulumi_gcp/iap/outputs.py +76 -0
  54. pulumi_gcp/iap/web_cloud_run_service_iam_binding.py +1089 -0
  55. pulumi_gcp/iap/web_cloud_run_service_iam_member.py +1089 -0
  56. pulumi_gcp/iap/web_cloud_run_service_iam_policy.py +908 -0
  57. pulumi_gcp/kms/key_ring_import_job.py +7 -7
  58. pulumi_gcp/managedkafka/connect_cluster.py +8 -4
  59. pulumi_gcp/managedkafka/connector.py +8 -4
  60. pulumi_gcp/monitoring/uptime_check_config.py +49 -0
  61. pulumi_gcp/networkconnectivity/internal_range.py +82 -0
  62. pulumi_gcp/projects/_inputs.py +0 -6
  63. pulumi_gcp/projects/api_key.py +28 -0
  64. pulumi_gcp/projects/outputs.py +0 -4
  65. pulumi_gcp/provider.py +20 -0
  66. pulumi_gcp/pulumi-plugin.json +1 -1
  67. pulumi_gcp/redis/get_instance.py +12 -1
  68. pulumi_gcp/redis/instance.py +61 -0
  69. pulumi_gcp/sql/_inputs.py +86 -6
  70. pulumi_gcp/sql/outputs.py +156 -12
  71. pulumi_gcp/storage/__init__.py +1 -0
  72. pulumi_gcp/storage/_inputs.py +457 -0
  73. pulumi_gcp/storage/batch_operations_job.py +776 -0
  74. pulumi_gcp/storage/outputs.py +403 -0
  75. {pulumi_gcp-8.28.0a1745598508.dist-info → pulumi_gcp-8.29.0a1746076904.dist-info}/METADATA +1 -1
  76. {pulumi_gcp-8.28.0a1745598508.dist-info → pulumi_gcp-8.29.0a1746076904.dist-info}/RECORD +78 -64
  77. {pulumi_gcp-8.28.0a1745598508.dist-info → pulumi_gcp-8.29.0a1746076904.dist-info}/WHEEL +1 -1
  78. {pulumi_gcp-8.28.0a1745598508.dist-info → pulumi_gcp-8.29.0a1746076904.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,1088 @@
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__ = ['StoragePoolIamBindingArgs', 'StoragePoolIamBinding']
21
+
22
+ @pulumi.input_type
23
+ class StoragePoolIamBindingArgs:
24
+ def __init__(__self__, *,
25
+ members: pulumi.Input[Sequence[pulumi.Input[builtins.str]]],
26
+ role: pulumi.Input[builtins.str],
27
+ condition: Optional[pulumi.Input['StoragePoolIamBindingConditionArgs']] = None,
28
+ name: Optional[pulumi.Input[builtins.str]] = None,
29
+ project: Optional[pulumi.Input[builtins.str]] = None,
30
+ zone: Optional[pulumi.Input[builtins.str]] = None):
31
+ """
32
+ The set of arguments for constructing a StoragePoolIamBinding resource.
33
+ :param pulumi.Input[Sequence[pulumi.Input[builtins.str]]] members: Identities that will be granted the privilege in `role`.
34
+ Each entry can have one of the following values:
35
+ * **allUsers**: A special identifier that represents anyone who is on the internet; with or without a Google account.
36
+ * **allAuthenticatedUsers**: A special identifier that represents anyone who is authenticated with a Google account or a service account.
37
+ * **user:{emailid}**: An email address that represents a specific Google account. For example, alice@gmail.com or joe@example.com.
38
+ * **serviceAccount:{emailid}**: An email address that represents a service account. For example, my-other-app@appspot.gserviceaccount.com.
39
+ * **group:{emailid}**: An email address that represents a Google group. For example, admins@example.com.
40
+ * **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.
41
+ * **projectOwner:projectid**: Owners of the given project. For example, "projectOwner:my-example-project"
42
+ * **projectEditor:projectid**: Editors of the given project. For example, "projectEditor:my-example-project"
43
+ * **projectViewer:projectid**: Viewers of the given project. For example, "projectViewer:my-example-project"
44
+ :param pulumi.Input[builtins.str] role: The role that should be applied. Only one
45
+ `compute.StoragePoolIamBinding` can be used per role. Note that custom roles must be of the format
46
+ `[projects|organizations]/{parent-name}/roles/{role-name}`.
47
+ :param pulumi.Input['StoragePoolIamBindingConditionArgs'] condition: An [IAM Condition](https://cloud.google.com/iam/docs/conditions-overview) for a given binding.
48
+ Structure is documented below.
49
+ :param pulumi.Input[builtins.str] name: Used to find the parent resource to bind the IAM policy to
50
+ :param pulumi.Input[builtins.str] project: The ID of the project in which the resource belongs.
51
+ 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.
52
+ :param pulumi.Input[builtins.str] zone: A reference to the zone where the storage pool resides. Used to find the parent resource to bind the IAM policy to. If not specified,
53
+ the value will be parsed from the identifier of the parent resource. If no zone is provided in the parent identifier and no
54
+ zone is specified, it is taken from the provider configuration.
55
+ """
56
+ pulumi.set(__self__, "members", members)
57
+ pulumi.set(__self__, "role", role)
58
+ if condition is not None:
59
+ pulumi.set(__self__, "condition", condition)
60
+ if name is not None:
61
+ pulumi.set(__self__, "name", name)
62
+ if project is not None:
63
+ pulumi.set(__self__, "project", project)
64
+ if zone is not None:
65
+ pulumi.set(__self__, "zone", zone)
66
+
67
+ @property
68
+ @pulumi.getter
69
+ def members(self) -> pulumi.Input[Sequence[pulumi.Input[builtins.str]]]:
70
+ """
71
+ Identities that will be granted the privilege in `role`.
72
+ Each entry can have one of the following values:
73
+ * **allUsers**: A special identifier that represents anyone who is on the internet; with or without a Google account.
74
+ * **allAuthenticatedUsers**: A special identifier that represents anyone who is authenticated with a Google account or a service account.
75
+ * **user:{emailid}**: An email address that represents a specific Google account. For example, alice@gmail.com or joe@example.com.
76
+ * **serviceAccount:{emailid}**: An email address that represents a service account. For example, my-other-app@appspot.gserviceaccount.com.
77
+ * **group:{emailid}**: An email address that represents a Google group. For example, admins@example.com.
78
+ * **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.
79
+ * **projectOwner:projectid**: Owners of the given project. For example, "projectOwner:my-example-project"
80
+ * **projectEditor:projectid**: Editors of the given project. For example, "projectEditor:my-example-project"
81
+ * **projectViewer:projectid**: Viewers of the given project. For example, "projectViewer:my-example-project"
82
+ """
83
+ return pulumi.get(self, "members")
84
+
85
+ @members.setter
86
+ def members(self, value: pulumi.Input[Sequence[pulumi.Input[builtins.str]]]):
87
+ pulumi.set(self, "members", value)
88
+
89
+ @property
90
+ @pulumi.getter
91
+ def role(self) -> pulumi.Input[builtins.str]:
92
+ """
93
+ The role that should be applied. Only one
94
+ `compute.StoragePoolIamBinding` can be used per role. Note that custom roles must be of the format
95
+ `[projects|organizations]/{parent-name}/roles/{role-name}`.
96
+ """
97
+ return pulumi.get(self, "role")
98
+
99
+ @role.setter
100
+ def role(self, value: pulumi.Input[builtins.str]):
101
+ pulumi.set(self, "role", value)
102
+
103
+ @property
104
+ @pulumi.getter
105
+ def condition(self) -> Optional[pulumi.Input['StoragePoolIamBindingConditionArgs']]:
106
+ """
107
+ An [IAM Condition](https://cloud.google.com/iam/docs/conditions-overview) for a given binding.
108
+ Structure is documented below.
109
+ """
110
+ return pulumi.get(self, "condition")
111
+
112
+ @condition.setter
113
+ def condition(self, value: Optional[pulumi.Input['StoragePoolIamBindingConditionArgs']]):
114
+ pulumi.set(self, "condition", value)
115
+
116
+ @property
117
+ @pulumi.getter
118
+ def name(self) -> Optional[pulumi.Input[builtins.str]]:
119
+ """
120
+ Used to find the parent resource to bind the IAM policy to
121
+ """
122
+ return pulumi.get(self, "name")
123
+
124
+ @name.setter
125
+ def name(self, value: Optional[pulumi.Input[builtins.str]]):
126
+ pulumi.set(self, "name", value)
127
+
128
+ @property
129
+ @pulumi.getter
130
+ def project(self) -> Optional[pulumi.Input[builtins.str]]:
131
+ """
132
+ The ID of the project in which the resource belongs.
133
+ 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.
134
+ """
135
+ return pulumi.get(self, "project")
136
+
137
+ @project.setter
138
+ def project(self, value: Optional[pulumi.Input[builtins.str]]):
139
+ pulumi.set(self, "project", value)
140
+
141
+ @property
142
+ @pulumi.getter
143
+ def zone(self) -> Optional[pulumi.Input[builtins.str]]:
144
+ """
145
+ A reference to the zone where the storage pool resides. Used to find the parent resource to bind the IAM policy to. If not specified,
146
+ the value will be parsed from the identifier of the parent resource. If no zone is provided in the parent identifier and no
147
+ zone is specified, it is taken from the provider configuration.
148
+ """
149
+ return pulumi.get(self, "zone")
150
+
151
+ @zone.setter
152
+ def zone(self, value: Optional[pulumi.Input[builtins.str]]):
153
+ pulumi.set(self, "zone", value)
154
+
155
+
156
+ @pulumi.input_type
157
+ class _StoragePoolIamBindingState:
158
+ def __init__(__self__, *,
159
+ condition: Optional[pulumi.Input['StoragePoolIamBindingConditionArgs']] = None,
160
+ etag: Optional[pulumi.Input[builtins.str]] = None,
161
+ members: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None,
162
+ name: Optional[pulumi.Input[builtins.str]] = None,
163
+ project: Optional[pulumi.Input[builtins.str]] = None,
164
+ role: Optional[pulumi.Input[builtins.str]] = None,
165
+ zone: Optional[pulumi.Input[builtins.str]] = None):
166
+ """
167
+ Input properties used for looking up and filtering StoragePoolIamBinding resources.
168
+ :param pulumi.Input['StoragePoolIamBindingConditionArgs'] condition: An [IAM Condition](https://cloud.google.com/iam/docs/conditions-overview) for a given binding.
169
+ Structure is documented below.
170
+ :param pulumi.Input[builtins.str] etag: (Computed) The etag of the IAM policy.
171
+ :param pulumi.Input[Sequence[pulumi.Input[builtins.str]]] members: Identities that will be granted the privilege in `role`.
172
+ Each entry can have one of the following values:
173
+ * **allUsers**: A special identifier that represents anyone who is on the internet; with or without a Google account.
174
+ * **allAuthenticatedUsers**: A special identifier that represents anyone who is authenticated with a Google account or a service account.
175
+ * **user:{emailid}**: An email address that represents a specific Google account. For example, alice@gmail.com or joe@example.com.
176
+ * **serviceAccount:{emailid}**: An email address that represents a service account. For example, my-other-app@appspot.gserviceaccount.com.
177
+ * **group:{emailid}**: An email address that represents a Google group. For example, admins@example.com.
178
+ * **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.
179
+ * **projectOwner:projectid**: Owners of the given project. For example, "projectOwner:my-example-project"
180
+ * **projectEditor:projectid**: Editors of the given project. For example, "projectEditor:my-example-project"
181
+ * **projectViewer:projectid**: Viewers of the given project. For example, "projectViewer:my-example-project"
182
+ :param pulumi.Input[builtins.str] name: Used to find the parent resource to bind the IAM policy to
183
+ :param pulumi.Input[builtins.str] project: The ID of the project in which the resource belongs.
184
+ 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.
185
+ :param pulumi.Input[builtins.str] role: The role that should be applied. Only one
186
+ `compute.StoragePoolIamBinding` can be used per role. Note that custom roles must be of the format
187
+ `[projects|organizations]/{parent-name}/roles/{role-name}`.
188
+ :param pulumi.Input[builtins.str] zone: A reference to the zone where the storage pool resides. Used to find the parent resource to bind the IAM policy to. If not specified,
189
+ the value will be parsed from the identifier of the parent resource. If no zone is provided in the parent identifier and no
190
+ zone is specified, it is taken from the provider configuration.
191
+ """
192
+ if condition is not None:
193
+ pulumi.set(__self__, "condition", condition)
194
+ if etag is not None:
195
+ pulumi.set(__self__, "etag", etag)
196
+ if members is not None:
197
+ pulumi.set(__self__, "members", members)
198
+ if name is not None:
199
+ pulumi.set(__self__, "name", name)
200
+ if project is not None:
201
+ pulumi.set(__self__, "project", project)
202
+ if role is not None:
203
+ pulumi.set(__self__, "role", role)
204
+ if zone is not None:
205
+ pulumi.set(__self__, "zone", zone)
206
+
207
+ @property
208
+ @pulumi.getter
209
+ def condition(self) -> Optional[pulumi.Input['StoragePoolIamBindingConditionArgs']]:
210
+ """
211
+ An [IAM Condition](https://cloud.google.com/iam/docs/conditions-overview) for a given binding.
212
+ Structure is documented below.
213
+ """
214
+ return pulumi.get(self, "condition")
215
+
216
+ @condition.setter
217
+ def condition(self, value: Optional[pulumi.Input['StoragePoolIamBindingConditionArgs']]):
218
+ pulumi.set(self, "condition", value)
219
+
220
+ @property
221
+ @pulumi.getter
222
+ def etag(self) -> Optional[pulumi.Input[builtins.str]]:
223
+ """
224
+ (Computed) The etag of the IAM policy.
225
+ """
226
+ return pulumi.get(self, "etag")
227
+
228
+ @etag.setter
229
+ def etag(self, value: Optional[pulumi.Input[builtins.str]]):
230
+ pulumi.set(self, "etag", value)
231
+
232
+ @property
233
+ @pulumi.getter
234
+ def members(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]]:
235
+ """
236
+ Identities that will be granted the privilege in `role`.
237
+ Each entry can have one of the following values:
238
+ * **allUsers**: A special identifier that represents anyone who is on the internet; with or without a Google account.
239
+ * **allAuthenticatedUsers**: A special identifier that represents anyone who is authenticated with a Google account or a service account.
240
+ * **user:{emailid}**: An email address that represents a specific Google account. For example, alice@gmail.com or joe@example.com.
241
+ * **serviceAccount:{emailid}**: An email address that represents a service account. For example, my-other-app@appspot.gserviceaccount.com.
242
+ * **group:{emailid}**: An email address that represents a Google group. For example, admins@example.com.
243
+ * **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.
244
+ * **projectOwner:projectid**: Owners of the given project. For example, "projectOwner:my-example-project"
245
+ * **projectEditor:projectid**: Editors of the given project. For example, "projectEditor:my-example-project"
246
+ * **projectViewer:projectid**: Viewers of the given project. For example, "projectViewer:my-example-project"
247
+ """
248
+ return pulumi.get(self, "members")
249
+
250
+ @members.setter
251
+ def members(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]]):
252
+ pulumi.set(self, "members", value)
253
+
254
+ @property
255
+ @pulumi.getter
256
+ def name(self) -> Optional[pulumi.Input[builtins.str]]:
257
+ """
258
+ Used to find the parent resource to bind the IAM policy to
259
+ """
260
+ return pulumi.get(self, "name")
261
+
262
+ @name.setter
263
+ def name(self, value: Optional[pulumi.Input[builtins.str]]):
264
+ pulumi.set(self, "name", value)
265
+
266
+ @property
267
+ @pulumi.getter
268
+ def project(self) -> Optional[pulumi.Input[builtins.str]]:
269
+ """
270
+ The ID of the project in which the resource belongs.
271
+ 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.
272
+ """
273
+ return pulumi.get(self, "project")
274
+
275
+ @project.setter
276
+ def project(self, value: Optional[pulumi.Input[builtins.str]]):
277
+ pulumi.set(self, "project", value)
278
+
279
+ @property
280
+ @pulumi.getter
281
+ def role(self) -> Optional[pulumi.Input[builtins.str]]:
282
+ """
283
+ The role that should be applied. Only one
284
+ `compute.StoragePoolIamBinding` can be used per role. Note that custom roles must be of the format
285
+ `[projects|organizations]/{parent-name}/roles/{role-name}`.
286
+ """
287
+ return pulumi.get(self, "role")
288
+
289
+ @role.setter
290
+ def role(self, value: Optional[pulumi.Input[builtins.str]]):
291
+ pulumi.set(self, "role", value)
292
+
293
+ @property
294
+ @pulumi.getter
295
+ def zone(self) -> Optional[pulumi.Input[builtins.str]]:
296
+ """
297
+ A reference to the zone where the storage pool resides. Used to find the parent resource to bind the IAM policy to. If not specified,
298
+ the value will be parsed from the identifier of the parent resource. If no zone is provided in the parent identifier and no
299
+ zone is specified, it is taken from the provider configuration.
300
+ """
301
+ return pulumi.get(self, "zone")
302
+
303
+ @zone.setter
304
+ def zone(self, value: Optional[pulumi.Input[builtins.str]]):
305
+ pulumi.set(self, "zone", value)
306
+
307
+
308
+ class StoragePoolIamBinding(pulumi.CustomResource):
309
+ @overload
310
+ def __init__(__self__,
311
+ resource_name: str,
312
+ opts: Optional[pulumi.ResourceOptions] = None,
313
+ condition: Optional[pulumi.Input[Union['StoragePoolIamBindingConditionArgs', 'StoragePoolIamBindingConditionArgsDict']]] = None,
314
+ members: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None,
315
+ name: Optional[pulumi.Input[builtins.str]] = None,
316
+ project: Optional[pulumi.Input[builtins.str]] = None,
317
+ role: Optional[pulumi.Input[builtins.str]] = None,
318
+ zone: Optional[pulumi.Input[builtins.str]] = None,
319
+ __props__=None):
320
+ """
321
+ Three different resources help you manage your IAM policy for Compute Engine StoragePool. Each of these resources serves a different use case:
322
+
323
+ * `compute.StoragePoolIamPolicy`: Authoritative. Sets the IAM policy for the storagepool and replaces any existing policy already attached.
324
+ * `compute.StoragePoolIamBinding`: 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 storagepool are preserved.
325
+ * `compute.StoragePoolIamMember`: Non-authoritative. Updates the IAM policy to grant a role to a new member. Other members for the role for the storagepool are preserved.
326
+
327
+ A data source can be used to retrieve policy data in advent you do not need creation
328
+
329
+ * `compute.StoragePoolIamPolicy`: Retrieves the IAM policy for the storagepool
330
+
331
+ > **Note:** `compute.StoragePoolIamPolicy` **cannot** be used in conjunction with `compute.StoragePoolIamBinding` and `compute.StoragePoolIamMember` or they will fight over what your policy should be.
332
+
333
+ > **Note:** `compute.StoragePoolIamBinding` resources **can be** used in conjunction with `compute.StoragePoolIamMember` resources **only if** they do not grant privilege to the same role.
334
+
335
+ > **Note:** This resource supports IAM Conditions but they have some known limitations which can be found [here](https://cloud.google.com/iam/docs/conditions-overview#limitations). Please review this article if you are having issues with IAM Conditions.
336
+
337
+ ## compute.StoragePoolIamPolicy
338
+
339
+ ```python
340
+ import pulumi
341
+ import pulumi_gcp as gcp
342
+
343
+ admin = gcp.organizations.get_iam_policy(bindings=[{
344
+ "role": "roles/compute.viewer",
345
+ "members": ["user:jane@example.com"],
346
+ }])
347
+ policy = gcp.compute.StoragePoolIamPolicy("policy",
348
+ project=test_storage_pool_basic["project"],
349
+ zone=test_storage_pool_basic["zone"],
350
+ name=test_storage_pool_basic["name"],
351
+ policy_data=admin.policy_data)
352
+ ```
353
+
354
+ With IAM Conditions:
355
+
356
+ ```python
357
+ import pulumi
358
+ import pulumi_gcp as gcp
359
+
360
+ admin = gcp.organizations.get_iam_policy(bindings=[{
361
+ "role": "roles/compute.viewer",
362
+ "members": ["user:jane@example.com"],
363
+ "condition": {
364
+ "title": "expires_after_2019_12_31",
365
+ "description": "Expiring at midnight of 2019-12-31",
366
+ "expression": "request.time < timestamp(\\"2020-01-01T00:00:00Z\\")",
367
+ },
368
+ }])
369
+ policy = gcp.compute.StoragePoolIamPolicy("policy",
370
+ project=test_storage_pool_basic["project"],
371
+ zone=test_storage_pool_basic["zone"],
372
+ name=test_storage_pool_basic["name"],
373
+ policy_data=admin.policy_data)
374
+ ```
375
+ ## compute.StoragePoolIamBinding
376
+
377
+ ```python
378
+ import pulumi
379
+ import pulumi_gcp as gcp
380
+
381
+ binding = gcp.compute.StoragePoolIamBinding("binding",
382
+ project=test_storage_pool_basic["project"],
383
+ zone=test_storage_pool_basic["zone"],
384
+ name=test_storage_pool_basic["name"],
385
+ role="roles/compute.viewer",
386
+ members=["user:jane@example.com"])
387
+ ```
388
+
389
+ With IAM Conditions:
390
+
391
+ ```python
392
+ import pulumi
393
+ import pulumi_gcp as gcp
394
+
395
+ binding = gcp.compute.StoragePoolIamBinding("binding",
396
+ project=test_storage_pool_basic["project"],
397
+ zone=test_storage_pool_basic["zone"],
398
+ name=test_storage_pool_basic["name"],
399
+ role="roles/compute.viewer",
400
+ members=["user:jane@example.com"],
401
+ condition={
402
+ "title": "expires_after_2019_12_31",
403
+ "description": "Expiring at midnight of 2019-12-31",
404
+ "expression": "request.time < timestamp(\\"2020-01-01T00:00:00Z\\")",
405
+ })
406
+ ```
407
+ ## compute.StoragePoolIamMember
408
+
409
+ ```python
410
+ import pulumi
411
+ import pulumi_gcp as gcp
412
+
413
+ member = gcp.compute.StoragePoolIamMember("member",
414
+ project=test_storage_pool_basic["project"],
415
+ zone=test_storage_pool_basic["zone"],
416
+ name=test_storage_pool_basic["name"],
417
+ role="roles/compute.viewer",
418
+ member="user:jane@example.com")
419
+ ```
420
+
421
+ With IAM Conditions:
422
+
423
+ ```python
424
+ import pulumi
425
+ import pulumi_gcp as gcp
426
+
427
+ member = gcp.compute.StoragePoolIamMember("member",
428
+ project=test_storage_pool_basic["project"],
429
+ zone=test_storage_pool_basic["zone"],
430
+ name=test_storage_pool_basic["name"],
431
+ role="roles/compute.viewer",
432
+ member="user:jane@example.com",
433
+ condition={
434
+ "title": "expires_after_2019_12_31",
435
+ "description": "Expiring at midnight of 2019-12-31",
436
+ "expression": "request.time < timestamp(\\"2020-01-01T00:00:00Z\\")",
437
+ })
438
+ ```
439
+
440
+ ## This resource supports User Project Overrides.
441
+
442
+ -
443
+
444
+ # IAM policy for Compute Engine StoragePool
445
+ Three different resources help you manage your IAM policy for Compute Engine StoragePool. Each of these resources serves a different use case:
446
+
447
+ * `compute.StoragePoolIamPolicy`: Authoritative. Sets the IAM policy for the storagepool and replaces any existing policy already attached.
448
+ * `compute.StoragePoolIamBinding`: 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 storagepool are preserved.
449
+ * `compute.StoragePoolIamMember`: Non-authoritative. Updates the IAM policy to grant a role to a new member. Other members for the role for the storagepool are preserved.
450
+
451
+ A data source can be used to retrieve policy data in advent you do not need creation
452
+
453
+ * `compute.StoragePoolIamPolicy`: Retrieves the IAM policy for the storagepool
454
+
455
+ > **Note:** `compute.StoragePoolIamPolicy` **cannot** be used in conjunction with `compute.StoragePoolIamBinding` and `compute.StoragePoolIamMember` or they will fight over what your policy should be.
456
+
457
+ > **Note:** `compute.StoragePoolIamBinding` resources **can be** used in conjunction with `compute.StoragePoolIamMember` resources **only if** they do not grant privilege to the same role.
458
+
459
+ > **Note:** This resource supports IAM Conditions but they have some known limitations which can be found [here](https://cloud.google.com/iam/docs/conditions-overview#limitations). Please review this article if you are having issues with IAM Conditions.
460
+
461
+ ## compute.StoragePoolIamPolicy
462
+
463
+ ```python
464
+ import pulumi
465
+ import pulumi_gcp as gcp
466
+
467
+ admin = gcp.organizations.get_iam_policy(bindings=[{
468
+ "role": "roles/compute.viewer",
469
+ "members": ["user:jane@example.com"],
470
+ }])
471
+ policy = gcp.compute.StoragePoolIamPolicy("policy",
472
+ project=test_storage_pool_basic["project"],
473
+ zone=test_storage_pool_basic["zone"],
474
+ name=test_storage_pool_basic["name"],
475
+ policy_data=admin.policy_data)
476
+ ```
477
+
478
+ With IAM Conditions:
479
+
480
+ ```python
481
+ import pulumi
482
+ import pulumi_gcp as gcp
483
+
484
+ admin = gcp.organizations.get_iam_policy(bindings=[{
485
+ "role": "roles/compute.viewer",
486
+ "members": ["user:jane@example.com"],
487
+ "condition": {
488
+ "title": "expires_after_2019_12_31",
489
+ "description": "Expiring at midnight of 2019-12-31",
490
+ "expression": "request.time < timestamp(\\"2020-01-01T00:00:00Z\\")",
491
+ },
492
+ }])
493
+ policy = gcp.compute.StoragePoolIamPolicy("policy",
494
+ project=test_storage_pool_basic["project"],
495
+ zone=test_storage_pool_basic["zone"],
496
+ name=test_storage_pool_basic["name"],
497
+ policy_data=admin.policy_data)
498
+ ```
499
+ ## compute.StoragePoolIamBinding
500
+
501
+ ```python
502
+ import pulumi
503
+ import pulumi_gcp as gcp
504
+
505
+ binding = gcp.compute.StoragePoolIamBinding("binding",
506
+ project=test_storage_pool_basic["project"],
507
+ zone=test_storage_pool_basic["zone"],
508
+ name=test_storage_pool_basic["name"],
509
+ role="roles/compute.viewer",
510
+ members=["user:jane@example.com"])
511
+ ```
512
+
513
+ With IAM Conditions:
514
+
515
+ ```python
516
+ import pulumi
517
+ import pulumi_gcp as gcp
518
+
519
+ binding = gcp.compute.StoragePoolIamBinding("binding",
520
+ project=test_storage_pool_basic["project"],
521
+ zone=test_storage_pool_basic["zone"],
522
+ name=test_storage_pool_basic["name"],
523
+ role="roles/compute.viewer",
524
+ members=["user:jane@example.com"],
525
+ condition={
526
+ "title": "expires_after_2019_12_31",
527
+ "description": "Expiring at midnight of 2019-12-31",
528
+ "expression": "request.time < timestamp(\\"2020-01-01T00:00:00Z\\")",
529
+ })
530
+ ```
531
+ ## compute.StoragePoolIamMember
532
+
533
+ ```python
534
+ import pulumi
535
+ import pulumi_gcp as gcp
536
+
537
+ member = gcp.compute.StoragePoolIamMember("member",
538
+ project=test_storage_pool_basic["project"],
539
+ zone=test_storage_pool_basic["zone"],
540
+ name=test_storage_pool_basic["name"],
541
+ role="roles/compute.viewer",
542
+ member="user:jane@example.com")
543
+ ```
544
+
545
+ With IAM Conditions:
546
+
547
+ ```python
548
+ import pulumi
549
+ import pulumi_gcp as gcp
550
+
551
+ member = gcp.compute.StoragePoolIamMember("member",
552
+ project=test_storage_pool_basic["project"],
553
+ zone=test_storage_pool_basic["zone"],
554
+ name=test_storage_pool_basic["name"],
555
+ role="roles/compute.viewer",
556
+ member="user:jane@example.com",
557
+ condition={
558
+ "title": "expires_after_2019_12_31",
559
+ "description": "Expiring at midnight of 2019-12-31",
560
+ "expression": "request.time < timestamp(\\"2020-01-01T00:00:00Z\\")",
561
+ })
562
+ ```
563
+
564
+ ## Import
565
+
566
+ For all import syntaxes, the "resource in question" can take any of the following forms:
567
+
568
+ * projects/{{project}}/zones/{{zone}}/storagePools/{{name}}
569
+
570
+ * {{project}}/{{zone}}/{{name}}
571
+
572
+ * {{zone}}/{{name}}
573
+
574
+ * {{name}}
575
+
576
+ Any variables not passed in the import command will be taken from the provider configuration.
577
+
578
+ Compute Engine storagepool IAM resources can be imported using the resource identifiers, role, and member.
579
+
580
+ IAM member imports use space-delimited identifiers: the resource in question, the role, and the member identity, e.g.
581
+
582
+ ```sh
583
+ $ pulumi import gcp:compute/storagePoolIamBinding:StoragePoolIamBinding editor "projects/{{project}}/zones/{{zone}}/storagePools/{{storage_pool}} roles/compute.viewer user:jane@example.com"
584
+ ```
585
+
586
+ IAM binding imports use space-delimited identifiers: the resource in question and the role, e.g.
587
+
588
+ ```sh
589
+ $ pulumi import gcp:compute/storagePoolIamBinding:StoragePoolIamBinding editor "projects/{{project}}/zones/{{zone}}/storagePools/{{storage_pool}} roles/compute.viewer"
590
+ ```
591
+
592
+ IAM policy imports use the identifier of the resource in question, e.g.
593
+
594
+ ```sh
595
+ $ pulumi import gcp:compute/storagePoolIamBinding:StoragePoolIamBinding editor projects/{{project}}/zones/{{zone}}/storagePools/{{storage_pool}}
596
+ ```
597
+
598
+ -> **Custom Roles** If you're importing a IAM resource with a custom role, make sure to use the
599
+
600
+ full name of the custom role, e.g. `[projects/my-project|organizations/my-org]/roles/my-custom-role`.
601
+
602
+ :param str resource_name: The name of the resource.
603
+ :param pulumi.ResourceOptions opts: Options for the resource.
604
+ :param pulumi.Input[Union['StoragePoolIamBindingConditionArgs', 'StoragePoolIamBindingConditionArgsDict']] condition: An [IAM Condition](https://cloud.google.com/iam/docs/conditions-overview) for a given binding.
605
+ Structure is documented below.
606
+ :param pulumi.Input[Sequence[pulumi.Input[builtins.str]]] members: Identities that will be granted the privilege in `role`.
607
+ Each entry can have one of the following values:
608
+ * **allUsers**: A special identifier that represents anyone who is on the internet; with or without a Google account.
609
+ * **allAuthenticatedUsers**: A special identifier that represents anyone who is authenticated with a Google account or a service account.
610
+ * **user:{emailid}**: An email address that represents a specific Google account. For example, alice@gmail.com or joe@example.com.
611
+ * **serviceAccount:{emailid}**: An email address that represents a service account. For example, my-other-app@appspot.gserviceaccount.com.
612
+ * **group:{emailid}**: An email address that represents a Google group. For example, admins@example.com.
613
+ * **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.
614
+ * **projectOwner:projectid**: Owners of the given project. For example, "projectOwner:my-example-project"
615
+ * **projectEditor:projectid**: Editors of the given project. For example, "projectEditor:my-example-project"
616
+ * **projectViewer:projectid**: Viewers of the given project. For example, "projectViewer:my-example-project"
617
+ :param pulumi.Input[builtins.str] name: Used to find the parent resource to bind the IAM policy to
618
+ :param pulumi.Input[builtins.str] project: The ID of the project in which the resource belongs.
619
+ 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.
620
+ :param pulumi.Input[builtins.str] role: The role that should be applied. Only one
621
+ `compute.StoragePoolIamBinding` can be used per role. Note that custom roles must be of the format
622
+ `[projects|organizations]/{parent-name}/roles/{role-name}`.
623
+ :param pulumi.Input[builtins.str] zone: A reference to the zone where the storage pool resides. Used to find the parent resource to bind the IAM policy to. If not specified,
624
+ the value will be parsed from the identifier of the parent resource. If no zone is provided in the parent identifier and no
625
+ zone is specified, it is taken from the provider configuration.
626
+ """
627
+ ...
628
+ @overload
629
+ def __init__(__self__,
630
+ resource_name: str,
631
+ args: StoragePoolIamBindingArgs,
632
+ opts: Optional[pulumi.ResourceOptions] = None):
633
+ """
634
+ Three different resources help you manage your IAM policy for Compute Engine StoragePool. Each of these resources serves a different use case:
635
+
636
+ * `compute.StoragePoolIamPolicy`: Authoritative. Sets the IAM policy for the storagepool and replaces any existing policy already attached.
637
+ * `compute.StoragePoolIamBinding`: 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 storagepool are preserved.
638
+ * `compute.StoragePoolIamMember`: Non-authoritative. Updates the IAM policy to grant a role to a new member. Other members for the role for the storagepool are preserved.
639
+
640
+ A data source can be used to retrieve policy data in advent you do not need creation
641
+
642
+ * `compute.StoragePoolIamPolicy`: Retrieves the IAM policy for the storagepool
643
+
644
+ > **Note:** `compute.StoragePoolIamPolicy` **cannot** be used in conjunction with `compute.StoragePoolIamBinding` and `compute.StoragePoolIamMember` or they will fight over what your policy should be.
645
+
646
+ > **Note:** `compute.StoragePoolIamBinding` resources **can be** used in conjunction with `compute.StoragePoolIamMember` resources **only if** they do not grant privilege to the same role.
647
+
648
+ > **Note:** This resource supports IAM Conditions but they have some known limitations which can be found [here](https://cloud.google.com/iam/docs/conditions-overview#limitations). Please review this article if you are having issues with IAM Conditions.
649
+
650
+ ## compute.StoragePoolIamPolicy
651
+
652
+ ```python
653
+ import pulumi
654
+ import pulumi_gcp as gcp
655
+
656
+ admin = gcp.organizations.get_iam_policy(bindings=[{
657
+ "role": "roles/compute.viewer",
658
+ "members": ["user:jane@example.com"],
659
+ }])
660
+ policy = gcp.compute.StoragePoolIamPolicy("policy",
661
+ project=test_storage_pool_basic["project"],
662
+ zone=test_storage_pool_basic["zone"],
663
+ name=test_storage_pool_basic["name"],
664
+ policy_data=admin.policy_data)
665
+ ```
666
+
667
+ With IAM Conditions:
668
+
669
+ ```python
670
+ import pulumi
671
+ import pulumi_gcp as gcp
672
+
673
+ admin = gcp.organizations.get_iam_policy(bindings=[{
674
+ "role": "roles/compute.viewer",
675
+ "members": ["user:jane@example.com"],
676
+ "condition": {
677
+ "title": "expires_after_2019_12_31",
678
+ "description": "Expiring at midnight of 2019-12-31",
679
+ "expression": "request.time < timestamp(\\"2020-01-01T00:00:00Z\\")",
680
+ },
681
+ }])
682
+ policy = gcp.compute.StoragePoolIamPolicy("policy",
683
+ project=test_storage_pool_basic["project"],
684
+ zone=test_storage_pool_basic["zone"],
685
+ name=test_storage_pool_basic["name"],
686
+ policy_data=admin.policy_data)
687
+ ```
688
+ ## compute.StoragePoolIamBinding
689
+
690
+ ```python
691
+ import pulumi
692
+ import pulumi_gcp as gcp
693
+
694
+ binding = gcp.compute.StoragePoolIamBinding("binding",
695
+ project=test_storage_pool_basic["project"],
696
+ zone=test_storage_pool_basic["zone"],
697
+ name=test_storage_pool_basic["name"],
698
+ role="roles/compute.viewer",
699
+ members=["user:jane@example.com"])
700
+ ```
701
+
702
+ With IAM Conditions:
703
+
704
+ ```python
705
+ import pulumi
706
+ import pulumi_gcp as gcp
707
+
708
+ binding = gcp.compute.StoragePoolIamBinding("binding",
709
+ project=test_storage_pool_basic["project"],
710
+ zone=test_storage_pool_basic["zone"],
711
+ name=test_storage_pool_basic["name"],
712
+ role="roles/compute.viewer",
713
+ members=["user:jane@example.com"],
714
+ condition={
715
+ "title": "expires_after_2019_12_31",
716
+ "description": "Expiring at midnight of 2019-12-31",
717
+ "expression": "request.time < timestamp(\\"2020-01-01T00:00:00Z\\")",
718
+ })
719
+ ```
720
+ ## compute.StoragePoolIamMember
721
+
722
+ ```python
723
+ import pulumi
724
+ import pulumi_gcp as gcp
725
+
726
+ member = gcp.compute.StoragePoolIamMember("member",
727
+ project=test_storage_pool_basic["project"],
728
+ zone=test_storage_pool_basic["zone"],
729
+ name=test_storage_pool_basic["name"],
730
+ role="roles/compute.viewer",
731
+ member="user:jane@example.com")
732
+ ```
733
+
734
+ With IAM Conditions:
735
+
736
+ ```python
737
+ import pulumi
738
+ import pulumi_gcp as gcp
739
+
740
+ member = gcp.compute.StoragePoolIamMember("member",
741
+ project=test_storage_pool_basic["project"],
742
+ zone=test_storage_pool_basic["zone"],
743
+ name=test_storage_pool_basic["name"],
744
+ role="roles/compute.viewer",
745
+ member="user:jane@example.com",
746
+ condition={
747
+ "title": "expires_after_2019_12_31",
748
+ "description": "Expiring at midnight of 2019-12-31",
749
+ "expression": "request.time < timestamp(\\"2020-01-01T00:00:00Z\\")",
750
+ })
751
+ ```
752
+
753
+ ## This resource supports User Project Overrides.
754
+
755
+ -
756
+
757
+ # IAM policy for Compute Engine StoragePool
758
+ Three different resources help you manage your IAM policy for Compute Engine StoragePool. Each of these resources serves a different use case:
759
+
760
+ * `compute.StoragePoolIamPolicy`: Authoritative. Sets the IAM policy for the storagepool and replaces any existing policy already attached.
761
+ * `compute.StoragePoolIamBinding`: 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 storagepool are preserved.
762
+ * `compute.StoragePoolIamMember`: Non-authoritative. Updates the IAM policy to grant a role to a new member. Other members for the role for the storagepool are preserved.
763
+
764
+ A data source can be used to retrieve policy data in advent you do not need creation
765
+
766
+ * `compute.StoragePoolIamPolicy`: Retrieves the IAM policy for the storagepool
767
+
768
+ > **Note:** `compute.StoragePoolIamPolicy` **cannot** be used in conjunction with `compute.StoragePoolIamBinding` and `compute.StoragePoolIamMember` or they will fight over what your policy should be.
769
+
770
+ > **Note:** `compute.StoragePoolIamBinding` resources **can be** used in conjunction with `compute.StoragePoolIamMember` resources **only if** they do not grant privilege to the same role.
771
+
772
+ > **Note:** This resource supports IAM Conditions but they have some known limitations which can be found [here](https://cloud.google.com/iam/docs/conditions-overview#limitations). Please review this article if you are having issues with IAM Conditions.
773
+
774
+ ## compute.StoragePoolIamPolicy
775
+
776
+ ```python
777
+ import pulumi
778
+ import pulumi_gcp as gcp
779
+
780
+ admin = gcp.organizations.get_iam_policy(bindings=[{
781
+ "role": "roles/compute.viewer",
782
+ "members": ["user:jane@example.com"],
783
+ }])
784
+ policy = gcp.compute.StoragePoolIamPolicy("policy",
785
+ project=test_storage_pool_basic["project"],
786
+ zone=test_storage_pool_basic["zone"],
787
+ name=test_storage_pool_basic["name"],
788
+ policy_data=admin.policy_data)
789
+ ```
790
+
791
+ With IAM Conditions:
792
+
793
+ ```python
794
+ import pulumi
795
+ import pulumi_gcp as gcp
796
+
797
+ admin = gcp.organizations.get_iam_policy(bindings=[{
798
+ "role": "roles/compute.viewer",
799
+ "members": ["user:jane@example.com"],
800
+ "condition": {
801
+ "title": "expires_after_2019_12_31",
802
+ "description": "Expiring at midnight of 2019-12-31",
803
+ "expression": "request.time < timestamp(\\"2020-01-01T00:00:00Z\\")",
804
+ },
805
+ }])
806
+ policy = gcp.compute.StoragePoolIamPolicy("policy",
807
+ project=test_storage_pool_basic["project"],
808
+ zone=test_storage_pool_basic["zone"],
809
+ name=test_storage_pool_basic["name"],
810
+ policy_data=admin.policy_data)
811
+ ```
812
+ ## compute.StoragePoolIamBinding
813
+
814
+ ```python
815
+ import pulumi
816
+ import pulumi_gcp as gcp
817
+
818
+ binding = gcp.compute.StoragePoolIamBinding("binding",
819
+ project=test_storage_pool_basic["project"],
820
+ zone=test_storage_pool_basic["zone"],
821
+ name=test_storage_pool_basic["name"],
822
+ role="roles/compute.viewer",
823
+ members=["user:jane@example.com"])
824
+ ```
825
+
826
+ With IAM Conditions:
827
+
828
+ ```python
829
+ import pulumi
830
+ import pulumi_gcp as gcp
831
+
832
+ binding = gcp.compute.StoragePoolIamBinding("binding",
833
+ project=test_storage_pool_basic["project"],
834
+ zone=test_storage_pool_basic["zone"],
835
+ name=test_storage_pool_basic["name"],
836
+ role="roles/compute.viewer",
837
+ members=["user:jane@example.com"],
838
+ condition={
839
+ "title": "expires_after_2019_12_31",
840
+ "description": "Expiring at midnight of 2019-12-31",
841
+ "expression": "request.time < timestamp(\\"2020-01-01T00:00:00Z\\")",
842
+ })
843
+ ```
844
+ ## compute.StoragePoolIamMember
845
+
846
+ ```python
847
+ import pulumi
848
+ import pulumi_gcp as gcp
849
+
850
+ member = gcp.compute.StoragePoolIamMember("member",
851
+ project=test_storage_pool_basic["project"],
852
+ zone=test_storage_pool_basic["zone"],
853
+ name=test_storage_pool_basic["name"],
854
+ role="roles/compute.viewer",
855
+ member="user:jane@example.com")
856
+ ```
857
+
858
+ With IAM Conditions:
859
+
860
+ ```python
861
+ import pulumi
862
+ import pulumi_gcp as gcp
863
+
864
+ member = gcp.compute.StoragePoolIamMember("member",
865
+ project=test_storage_pool_basic["project"],
866
+ zone=test_storage_pool_basic["zone"],
867
+ name=test_storage_pool_basic["name"],
868
+ role="roles/compute.viewer",
869
+ member="user:jane@example.com",
870
+ condition={
871
+ "title": "expires_after_2019_12_31",
872
+ "description": "Expiring at midnight of 2019-12-31",
873
+ "expression": "request.time < timestamp(\\"2020-01-01T00:00:00Z\\")",
874
+ })
875
+ ```
876
+
877
+ ## Import
878
+
879
+ For all import syntaxes, the "resource in question" can take any of the following forms:
880
+
881
+ * projects/{{project}}/zones/{{zone}}/storagePools/{{name}}
882
+
883
+ * {{project}}/{{zone}}/{{name}}
884
+
885
+ * {{zone}}/{{name}}
886
+
887
+ * {{name}}
888
+
889
+ Any variables not passed in the import command will be taken from the provider configuration.
890
+
891
+ Compute Engine storagepool IAM resources can be imported using the resource identifiers, role, and member.
892
+
893
+ IAM member imports use space-delimited identifiers: the resource in question, the role, and the member identity, e.g.
894
+
895
+ ```sh
896
+ $ pulumi import gcp:compute/storagePoolIamBinding:StoragePoolIamBinding editor "projects/{{project}}/zones/{{zone}}/storagePools/{{storage_pool}} roles/compute.viewer user:jane@example.com"
897
+ ```
898
+
899
+ IAM binding imports use space-delimited identifiers: the resource in question and the role, e.g.
900
+
901
+ ```sh
902
+ $ pulumi import gcp:compute/storagePoolIamBinding:StoragePoolIamBinding editor "projects/{{project}}/zones/{{zone}}/storagePools/{{storage_pool}} roles/compute.viewer"
903
+ ```
904
+
905
+ IAM policy imports use the identifier of the resource in question, e.g.
906
+
907
+ ```sh
908
+ $ pulumi import gcp:compute/storagePoolIamBinding:StoragePoolIamBinding editor projects/{{project}}/zones/{{zone}}/storagePools/{{storage_pool}}
909
+ ```
910
+
911
+ -> **Custom Roles** If you're importing a IAM resource with a custom role, make sure to use the
912
+
913
+ full name of the custom role, e.g. `[projects/my-project|organizations/my-org]/roles/my-custom-role`.
914
+
915
+ :param str resource_name: The name of the resource.
916
+ :param StoragePoolIamBindingArgs args: The arguments to use to populate this resource's properties.
917
+ :param pulumi.ResourceOptions opts: Options for the resource.
918
+ """
919
+ ...
920
+ def __init__(__self__, resource_name: str, *args, **kwargs):
921
+ resource_args, opts = _utilities.get_resource_args_opts(StoragePoolIamBindingArgs, pulumi.ResourceOptions, *args, **kwargs)
922
+ if resource_args is not None:
923
+ __self__._internal_init(resource_name, opts, **resource_args.__dict__)
924
+ else:
925
+ __self__._internal_init(resource_name, *args, **kwargs)
926
+
927
+ def _internal_init(__self__,
928
+ resource_name: str,
929
+ opts: Optional[pulumi.ResourceOptions] = None,
930
+ condition: Optional[pulumi.Input[Union['StoragePoolIamBindingConditionArgs', 'StoragePoolIamBindingConditionArgsDict']]] = None,
931
+ members: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None,
932
+ name: Optional[pulumi.Input[builtins.str]] = None,
933
+ project: Optional[pulumi.Input[builtins.str]] = None,
934
+ role: Optional[pulumi.Input[builtins.str]] = None,
935
+ zone: Optional[pulumi.Input[builtins.str]] = None,
936
+ __props__=None):
937
+ opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
938
+ if not isinstance(opts, pulumi.ResourceOptions):
939
+ raise TypeError('Expected resource options to be a ResourceOptions instance')
940
+ if opts.id is None:
941
+ if __props__ is not None:
942
+ raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
943
+ __props__ = StoragePoolIamBindingArgs.__new__(StoragePoolIamBindingArgs)
944
+
945
+ __props__.__dict__["condition"] = condition
946
+ if members is None and not opts.urn:
947
+ raise TypeError("Missing required property 'members'")
948
+ __props__.__dict__["members"] = members
949
+ __props__.__dict__["name"] = name
950
+ __props__.__dict__["project"] = project
951
+ if role is None and not opts.urn:
952
+ raise TypeError("Missing required property 'role'")
953
+ __props__.__dict__["role"] = role
954
+ __props__.__dict__["zone"] = zone
955
+ __props__.__dict__["etag"] = None
956
+ super(StoragePoolIamBinding, __self__).__init__(
957
+ 'gcp:compute/storagePoolIamBinding:StoragePoolIamBinding',
958
+ resource_name,
959
+ __props__,
960
+ opts)
961
+
962
+ @staticmethod
963
+ def get(resource_name: str,
964
+ id: pulumi.Input[str],
965
+ opts: Optional[pulumi.ResourceOptions] = None,
966
+ condition: Optional[pulumi.Input[Union['StoragePoolIamBindingConditionArgs', 'StoragePoolIamBindingConditionArgsDict']]] = None,
967
+ etag: Optional[pulumi.Input[builtins.str]] = None,
968
+ members: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None,
969
+ name: Optional[pulumi.Input[builtins.str]] = None,
970
+ project: Optional[pulumi.Input[builtins.str]] = None,
971
+ role: Optional[pulumi.Input[builtins.str]] = None,
972
+ zone: Optional[pulumi.Input[builtins.str]] = None) -> 'StoragePoolIamBinding':
973
+ """
974
+ Get an existing StoragePoolIamBinding resource's state with the given name, id, and optional extra
975
+ properties used to qualify the lookup.
976
+
977
+ :param str resource_name: The unique name of the resulting resource.
978
+ :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
979
+ :param pulumi.ResourceOptions opts: Options for the resource.
980
+ :param pulumi.Input[Union['StoragePoolIamBindingConditionArgs', 'StoragePoolIamBindingConditionArgsDict']] condition: An [IAM Condition](https://cloud.google.com/iam/docs/conditions-overview) for a given binding.
981
+ Structure is documented below.
982
+ :param pulumi.Input[builtins.str] etag: (Computed) The etag of the IAM policy.
983
+ :param pulumi.Input[Sequence[pulumi.Input[builtins.str]]] members: Identities that will be granted the privilege in `role`.
984
+ Each entry can have one of the following values:
985
+ * **allUsers**: A special identifier that represents anyone who is on the internet; with or without a Google account.
986
+ * **allAuthenticatedUsers**: A special identifier that represents anyone who is authenticated with a Google account or a service account.
987
+ * **user:{emailid}**: An email address that represents a specific Google account. For example, alice@gmail.com or joe@example.com.
988
+ * **serviceAccount:{emailid}**: An email address that represents a service account. For example, my-other-app@appspot.gserviceaccount.com.
989
+ * **group:{emailid}**: An email address that represents a Google group. For example, admins@example.com.
990
+ * **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.
991
+ * **projectOwner:projectid**: Owners of the given project. For example, "projectOwner:my-example-project"
992
+ * **projectEditor:projectid**: Editors of the given project. For example, "projectEditor:my-example-project"
993
+ * **projectViewer:projectid**: Viewers of the given project. For example, "projectViewer:my-example-project"
994
+ :param pulumi.Input[builtins.str] name: Used to find the parent resource to bind the IAM policy to
995
+ :param pulumi.Input[builtins.str] project: The ID of the project in which the resource belongs.
996
+ 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.
997
+ :param pulumi.Input[builtins.str] role: The role that should be applied. Only one
998
+ `compute.StoragePoolIamBinding` can be used per role. Note that custom roles must be of the format
999
+ `[projects|organizations]/{parent-name}/roles/{role-name}`.
1000
+ :param pulumi.Input[builtins.str] zone: A reference to the zone where the storage pool resides. Used to find the parent resource to bind the IAM policy to. If not specified,
1001
+ the value will be parsed from the identifier of the parent resource. If no zone is provided in the parent identifier and no
1002
+ zone is specified, it is taken from the provider configuration.
1003
+ """
1004
+ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
1005
+
1006
+ __props__ = _StoragePoolIamBindingState.__new__(_StoragePoolIamBindingState)
1007
+
1008
+ __props__.__dict__["condition"] = condition
1009
+ __props__.__dict__["etag"] = etag
1010
+ __props__.__dict__["members"] = members
1011
+ __props__.__dict__["name"] = name
1012
+ __props__.__dict__["project"] = project
1013
+ __props__.__dict__["role"] = role
1014
+ __props__.__dict__["zone"] = zone
1015
+ return StoragePoolIamBinding(resource_name, opts=opts, __props__=__props__)
1016
+
1017
+ @property
1018
+ @pulumi.getter
1019
+ def condition(self) -> pulumi.Output[Optional['outputs.StoragePoolIamBindingCondition']]:
1020
+ """
1021
+ An [IAM Condition](https://cloud.google.com/iam/docs/conditions-overview) for a given binding.
1022
+ Structure is documented below.
1023
+ """
1024
+ return pulumi.get(self, "condition")
1025
+
1026
+ @property
1027
+ @pulumi.getter
1028
+ def etag(self) -> pulumi.Output[builtins.str]:
1029
+ """
1030
+ (Computed) The etag of the IAM policy.
1031
+ """
1032
+ return pulumi.get(self, "etag")
1033
+
1034
+ @property
1035
+ @pulumi.getter
1036
+ def members(self) -> pulumi.Output[Sequence[builtins.str]]:
1037
+ """
1038
+ Identities that will be granted the privilege in `role`.
1039
+ Each entry can have one of the following values:
1040
+ * **allUsers**: A special identifier that represents anyone who is on the internet; with or without a Google account.
1041
+ * **allAuthenticatedUsers**: A special identifier that represents anyone who is authenticated with a Google account or a service account.
1042
+ * **user:{emailid}**: An email address that represents a specific Google account. For example, alice@gmail.com or joe@example.com.
1043
+ * **serviceAccount:{emailid}**: An email address that represents a service account. For example, my-other-app@appspot.gserviceaccount.com.
1044
+ * **group:{emailid}**: An email address that represents a Google group. For example, admins@example.com.
1045
+ * **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.
1046
+ * **projectOwner:projectid**: Owners of the given project. For example, "projectOwner:my-example-project"
1047
+ * **projectEditor:projectid**: Editors of the given project. For example, "projectEditor:my-example-project"
1048
+ * **projectViewer:projectid**: Viewers of the given project. For example, "projectViewer:my-example-project"
1049
+ """
1050
+ return pulumi.get(self, "members")
1051
+
1052
+ @property
1053
+ @pulumi.getter
1054
+ def name(self) -> pulumi.Output[builtins.str]:
1055
+ """
1056
+ Used to find the parent resource to bind the IAM policy to
1057
+ """
1058
+ return pulumi.get(self, "name")
1059
+
1060
+ @property
1061
+ @pulumi.getter
1062
+ def project(self) -> pulumi.Output[builtins.str]:
1063
+ """
1064
+ The ID of the project in which the resource belongs.
1065
+ 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.
1066
+ """
1067
+ return pulumi.get(self, "project")
1068
+
1069
+ @property
1070
+ @pulumi.getter
1071
+ def role(self) -> pulumi.Output[builtins.str]:
1072
+ """
1073
+ The role that should be applied. Only one
1074
+ `compute.StoragePoolIamBinding` can be used per role. Note that custom roles must be of the format
1075
+ `[projects|organizations]/{parent-name}/roles/{role-name}`.
1076
+ """
1077
+ return pulumi.get(self, "role")
1078
+
1079
+ @property
1080
+ @pulumi.getter
1081
+ def zone(self) -> pulumi.Output[builtins.str]:
1082
+ """
1083
+ A reference to the zone where the storage pool resides. Used to find the parent resource to bind the IAM policy to. If not specified,
1084
+ the value will be parsed from the identifier of the parent resource. If no zone is provided in the parent identifier and no
1085
+ zone is specified, it is taken from the provider configuration.
1086
+ """
1087
+ return pulumi.get(self, "zone")
1088
+