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