pulumi-gcp 7.12.0a1709561306__py3-none-any.whl → 7.13.0a1709814369__py3-none-any.whl
Sign up to get free protection for your applications and to get access to all the features.
- pulumi_gcp/__init__.py +24 -0
- pulumi_gcp/appengine/application_url_dispatch_rules.py +2 -2
- pulumi_gcp/appengine/engine_split_traffic.py +4 -4
- pulumi_gcp/appengine/service_network_settings.py +2 -2
- pulumi_gcp/appengine/standard_app_version.py +4 -4
- pulumi_gcp/bigquery/_inputs.py +88 -0
- pulumi_gcp/bigquery/outputs.py +91 -0
- pulumi_gcp/bigquery/routine.py +118 -12
- pulumi_gcp/certificatemanager/dns_authorization.py +63 -14
- pulumi_gcp/clouddeploy/__init__.py +4 -0
- pulumi_gcp/clouddeploy/_inputs.py +80 -0
- pulumi_gcp/clouddeploy/automation.py +16 -0
- pulumi_gcp/clouddeploy/get_target_iam_policy.py +162 -0
- pulumi_gcp/clouddeploy/outputs.py +56 -0
- pulumi_gcp/clouddeploy/target_iam_binding.py +324 -0
- pulumi_gcp/clouddeploy/target_iam_member.py +324 -0
- pulumi_gcp/clouddeploy/target_iam_policy.py +253 -0
- pulumi_gcp/cloudrunv2/_inputs.py +4 -2
- pulumi_gcp/cloudrunv2/outputs.py +8 -4
- pulumi_gcp/composer/_inputs.py +18 -2
- pulumi_gcp/composer/outputs.py +29 -4
- pulumi_gcp/compute/region_target_https_proxy.py +162 -37
- pulumi_gcp/gkehub/scope.py +85 -0
- pulumi_gcp/monitoring/get_app_engine_service.py +2 -2
- pulumi_gcp/spanner/_inputs.py +20 -0
- pulumi_gcp/spanner/database_iam_binding.py +134 -0
- pulumi_gcp/spanner/database_iam_member.py +134 -0
- pulumi_gcp/spanner/database_iam_policy.py +114 -0
- pulumi_gcp/spanner/outputs.py +20 -0
- {pulumi_gcp-7.12.0a1709561306.dist-info → pulumi_gcp-7.13.0a1709814369.dist-info}/METADATA +1 -1
- {pulumi_gcp-7.12.0a1709561306.dist-info → pulumi_gcp-7.13.0a1709814369.dist-info}/RECORD +33 -29
- {pulumi_gcp-7.12.0a1709561306.dist-info → pulumi_gcp-7.13.0a1709814369.dist-info}/WHEEL +0 -0
- {pulumi_gcp-7.12.0a1709561306.dist-info → pulumi_gcp-7.13.0a1709814369.dist-info}/top_level.txt +0 -0
pulumi_gcp/gkehub/scope.py
CHANGED
@@ -18,6 +18,7 @@ class ScopeArgs:
|
|
18
18
|
def __init__(__self__, *,
|
19
19
|
scope_id: pulumi.Input[str],
|
20
20
|
labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
|
21
|
+
namespace_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
|
21
22
|
project: Optional[pulumi.Input[str]] = None):
|
22
23
|
"""
|
23
24
|
The set of arguments for constructing a Scope resource.
|
@@ -29,12 +30,19 @@ class ScopeArgs:
|
|
29
30
|
|
30
31
|
**Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
|
31
32
|
Please refer to the field `effective_labels` for all of the labels present on the resource.
|
33
|
+
:param pulumi.Input[Mapping[str, pulumi.Input[str]]] namespace_labels: Scope-level cluster namespace labels. For the member clusters bound
|
34
|
+
to the Scope, these labels are applied to each namespace under the
|
35
|
+
Scope. Scope-level labels take precedence over Namespace-level
|
36
|
+
labels (`namespace_labels` in the Fleet Namespace resource) if they
|
37
|
+
share a key. Keys and values must be Kubernetes-conformant.
|
32
38
|
:param pulumi.Input[str] project: The ID of the project in which the resource belongs.
|
33
39
|
If it is not provided, the provider project is used.
|
34
40
|
"""
|
35
41
|
pulumi.set(__self__, "scope_id", scope_id)
|
36
42
|
if labels is not None:
|
37
43
|
pulumi.set(__self__, "labels", labels)
|
44
|
+
if namespace_labels is not None:
|
45
|
+
pulumi.set(__self__, "namespace_labels", namespace_labels)
|
38
46
|
if project is not None:
|
39
47
|
pulumi.set(__self__, "project", project)
|
40
48
|
|
@@ -68,6 +76,22 @@ class ScopeArgs:
|
|
68
76
|
def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
|
69
77
|
pulumi.set(self, "labels", value)
|
70
78
|
|
79
|
+
@property
|
80
|
+
@pulumi.getter(name="namespaceLabels")
|
81
|
+
def namespace_labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
|
82
|
+
"""
|
83
|
+
Scope-level cluster namespace labels. For the member clusters bound
|
84
|
+
to the Scope, these labels are applied to each namespace under the
|
85
|
+
Scope. Scope-level labels take precedence over Namespace-level
|
86
|
+
labels (`namespace_labels` in the Fleet Namespace resource) if they
|
87
|
+
share a key. Keys and values must be Kubernetes-conformant.
|
88
|
+
"""
|
89
|
+
return pulumi.get(self, "namespace_labels")
|
90
|
+
|
91
|
+
@namespace_labels.setter
|
92
|
+
def namespace_labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
|
93
|
+
pulumi.set(self, "namespace_labels", value)
|
94
|
+
|
71
95
|
@property
|
72
96
|
@pulumi.getter
|
73
97
|
def project(self) -> Optional[pulumi.Input[str]]:
|
@@ -90,6 +114,7 @@ class _ScopeState:
|
|
90
114
|
effective_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
|
91
115
|
labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
|
92
116
|
name: Optional[pulumi.Input[str]] = None,
|
117
|
+
namespace_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
|
93
118
|
project: Optional[pulumi.Input[str]] = None,
|
94
119
|
pulumi_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
|
95
120
|
scope_id: Optional[pulumi.Input[str]] = None,
|
@@ -106,6 +131,11 @@ class _ScopeState:
|
|
106
131
|
**Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
|
107
132
|
Please refer to the field `effective_labels` for all of the labels present on the resource.
|
108
133
|
:param pulumi.Input[str] name: The unique identifier of the scope
|
134
|
+
:param pulumi.Input[Mapping[str, pulumi.Input[str]]] namespace_labels: Scope-level cluster namespace labels. For the member clusters bound
|
135
|
+
to the Scope, these labels are applied to each namespace under the
|
136
|
+
Scope. Scope-level labels take precedence over Namespace-level
|
137
|
+
labels (`namespace_labels` in the Fleet Namespace resource) if they
|
138
|
+
share a key. Keys and values must be Kubernetes-conformant.
|
109
139
|
:param pulumi.Input[str] project: The ID of the project in which the resource belongs.
|
110
140
|
If it is not provided, the provider project is used.
|
111
141
|
:param pulumi.Input[Mapping[str, pulumi.Input[str]]] pulumi_labels: The combination of labels configured directly on the resource
|
@@ -129,6 +159,8 @@ class _ScopeState:
|
|
129
159
|
pulumi.set(__self__, "labels", labels)
|
130
160
|
if name is not None:
|
131
161
|
pulumi.set(__self__, "name", name)
|
162
|
+
if namespace_labels is not None:
|
163
|
+
pulumi.set(__self__, "namespace_labels", namespace_labels)
|
132
164
|
if project is not None:
|
133
165
|
pulumi.set(__self__, "project", project)
|
134
166
|
if pulumi_labels is not None:
|
@@ -205,6 +237,22 @@ class _ScopeState:
|
|
205
237
|
def name(self, value: Optional[pulumi.Input[str]]):
|
206
238
|
pulumi.set(self, "name", value)
|
207
239
|
|
240
|
+
@property
|
241
|
+
@pulumi.getter(name="namespaceLabels")
|
242
|
+
def namespace_labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
|
243
|
+
"""
|
244
|
+
Scope-level cluster namespace labels. For the member clusters bound
|
245
|
+
to the Scope, these labels are applied to each namespace under the
|
246
|
+
Scope. Scope-level labels take precedence over Namespace-level
|
247
|
+
labels (`namespace_labels` in the Fleet Namespace resource) if they
|
248
|
+
share a key. Keys and values must be Kubernetes-conformant.
|
249
|
+
"""
|
250
|
+
return pulumi.get(self, "namespace_labels")
|
251
|
+
|
252
|
+
@namespace_labels.setter
|
253
|
+
def namespace_labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
|
254
|
+
pulumi.set(self, "namespace_labels", value)
|
255
|
+
|
208
256
|
@property
|
209
257
|
@pulumi.getter
|
210
258
|
def project(self) -> Optional[pulumi.Input[str]]:
|
@@ -290,6 +338,7 @@ class Scope(pulumi.CustomResource):
|
|
290
338
|
resource_name: str,
|
291
339
|
opts: Optional[pulumi.ResourceOptions] = None,
|
292
340
|
labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
|
341
|
+
namespace_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
|
293
342
|
project: Optional[pulumi.Input[str]] = None,
|
294
343
|
scope_id: Optional[pulumi.Input[str]] = None,
|
295
344
|
__props__=None):
|
@@ -311,6 +360,11 @@ class Scope(pulumi.CustomResource):
|
|
311
360
|
|
312
361
|
scope = gcp.gkehub.Scope("scope",
|
313
362
|
scope_id="my-scope",
|
363
|
+
namespace_labels={
|
364
|
+
"keyb": "valueb",
|
365
|
+
"keya": "valuea",
|
366
|
+
"keyc": "valuec",
|
367
|
+
},
|
314
368
|
labels={
|
315
369
|
"keyb": "valueb",
|
316
370
|
"keya": "valuea",
|
@@ -348,6 +402,11 @@ class Scope(pulumi.CustomResource):
|
|
348
402
|
|
349
403
|
**Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
|
350
404
|
Please refer to the field `effective_labels` for all of the labels present on the resource.
|
405
|
+
:param pulumi.Input[Mapping[str, pulumi.Input[str]]] namespace_labels: Scope-level cluster namespace labels. For the member clusters bound
|
406
|
+
to the Scope, these labels are applied to each namespace under the
|
407
|
+
Scope. Scope-level labels take precedence over Namespace-level
|
408
|
+
labels (`namespace_labels` in the Fleet Namespace resource) if they
|
409
|
+
share a key. Keys and values must be Kubernetes-conformant.
|
351
410
|
:param pulumi.Input[str] project: The ID of the project in which the resource belongs.
|
352
411
|
If it is not provided, the provider project is used.
|
353
412
|
:param pulumi.Input[str] scope_id: The client-provided identifier of the scope.
|
@@ -379,6 +438,11 @@ class Scope(pulumi.CustomResource):
|
|
379
438
|
|
380
439
|
scope = gcp.gkehub.Scope("scope",
|
381
440
|
scope_id="my-scope",
|
441
|
+
namespace_labels={
|
442
|
+
"keyb": "valueb",
|
443
|
+
"keya": "valuea",
|
444
|
+
"keyc": "valuec",
|
445
|
+
},
|
382
446
|
labels={
|
383
447
|
"keyb": "valueb",
|
384
448
|
"keya": "valuea",
|
@@ -426,6 +490,7 @@ class Scope(pulumi.CustomResource):
|
|
426
490
|
resource_name: str,
|
427
491
|
opts: Optional[pulumi.ResourceOptions] = None,
|
428
492
|
labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
|
493
|
+
namespace_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
|
429
494
|
project: Optional[pulumi.Input[str]] = None,
|
430
495
|
scope_id: Optional[pulumi.Input[str]] = None,
|
431
496
|
__props__=None):
|
@@ -438,6 +503,7 @@ class Scope(pulumi.CustomResource):
|
|
438
503
|
__props__ = ScopeArgs.__new__(ScopeArgs)
|
439
504
|
|
440
505
|
__props__.__dict__["labels"] = labels
|
506
|
+
__props__.__dict__["namespace_labels"] = namespace_labels
|
441
507
|
__props__.__dict__["project"] = project
|
442
508
|
if scope_id is None and not opts.urn:
|
443
509
|
raise TypeError("Missing required property 'scope_id'")
|
@@ -467,6 +533,7 @@ class Scope(pulumi.CustomResource):
|
|
467
533
|
effective_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
|
468
534
|
labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
|
469
535
|
name: Optional[pulumi.Input[str]] = None,
|
536
|
+
namespace_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
|
470
537
|
project: Optional[pulumi.Input[str]] = None,
|
471
538
|
pulumi_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
|
472
539
|
scope_id: Optional[pulumi.Input[str]] = None,
|
@@ -488,6 +555,11 @@ class Scope(pulumi.CustomResource):
|
|
488
555
|
**Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
|
489
556
|
Please refer to the field `effective_labels` for all of the labels present on the resource.
|
490
557
|
:param pulumi.Input[str] name: The unique identifier of the scope
|
558
|
+
:param pulumi.Input[Mapping[str, pulumi.Input[str]]] namespace_labels: Scope-level cluster namespace labels. For the member clusters bound
|
559
|
+
to the Scope, these labels are applied to each namespace under the
|
560
|
+
Scope. Scope-level labels take precedence over Namespace-level
|
561
|
+
labels (`namespace_labels` in the Fleet Namespace resource) if they
|
562
|
+
share a key. Keys and values must be Kubernetes-conformant.
|
491
563
|
:param pulumi.Input[str] project: The ID of the project in which the resource belongs.
|
492
564
|
If it is not provided, the provider project is used.
|
493
565
|
:param pulumi.Input[Mapping[str, pulumi.Input[str]]] pulumi_labels: The combination of labels configured directly on the resource
|
@@ -510,6 +582,7 @@ class Scope(pulumi.CustomResource):
|
|
510
582
|
__props__.__dict__["effective_labels"] = effective_labels
|
511
583
|
__props__.__dict__["labels"] = labels
|
512
584
|
__props__.__dict__["name"] = name
|
585
|
+
__props__.__dict__["namespace_labels"] = namespace_labels
|
513
586
|
__props__.__dict__["project"] = project
|
514
587
|
__props__.__dict__["pulumi_labels"] = pulumi_labels
|
515
588
|
__props__.__dict__["scope_id"] = scope_id
|
@@ -561,6 +634,18 @@ class Scope(pulumi.CustomResource):
|
|
561
634
|
"""
|
562
635
|
return pulumi.get(self, "name")
|
563
636
|
|
637
|
+
@property
|
638
|
+
@pulumi.getter(name="namespaceLabels")
|
639
|
+
def namespace_labels(self) -> pulumi.Output[Optional[Mapping[str, str]]]:
|
640
|
+
"""
|
641
|
+
Scope-level cluster namespace labels. For the member clusters bound
|
642
|
+
to the Scope, these labels are applied to each namespace under the
|
643
|
+
Scope. Scope-level labels take precedence over Namespace-level
|
644
|
+
labels (`namespace_labels` in the Fleet Namespace resource) if they
|
645
|
+
share a key. Keys and values must be Kubernetes-conformant.
|
646
|
+
"""
|
647
|
+
return pulumi.get(self, "namespace_labels")
|
648
|
+
|
564
649
|
@property
|
565
650
|
@pulumi.getter
|
566
651
|
def project(self) -> pulumi.Output[str]:
|
@@ -153,7 +153,7 @@ def get_app_engine_service(module_id: Optional[str] = None,
|
|
153
153
|
myapp = gcp.appengine.StandardAppVersion("myapp",
|
154
154
|
version_id="v1",
|
155
155
|
service="myapp",
|
156
|
-
runtime="
|
156
|
+
runtime="nodejs20",
|
157
157
|
entrypoint=gcp.appengine.StandardAppVersionEntrypointArgs(
|
158
158
|
shell="node ./app.js",
|
159
159
|
),
|
@@ -233,7 +233,7 @@ def get_app_engine_service_output(module_id: Optional[pulumi.Input[str]] = None,
|
|
233
233
|
myapp = gcp.appengine.StandardAppVersion("myapp",
|
234
234
|
version_id="v1",
|
235
235
|
service="myapp",
|
236
|
-
runtime="
|
236
|
+
runtime="nodejs20",
|
237
237
|
entrypoint=gcp.appengine.StandardAppVersionEntrypointArgs(
|
238
238
|
shell="node ./app.js",
|
239
239
|
),
|
pulumi_gcp/spanner/_inputs.py
CHANGED
@@ -50,6 +50,10 @@ class DatabaseIAMBindingConditionArgs:
|
|
50
50
|
expression: pulumi.Input[str],
|
51
51
|
title: pulumi.Input[str],
|
52
52
|
description: Optional[pulumi.Input[str]] = None):
|
53
|
+
"""
|
54
|
+
:param pulumi.Input[str] expression: Textual representation of an expression in Common Expression Language syntax.
|
55
|
+
:param pulumi.Input[str] title: A title for the expression, i.e. a short string describing its purpose.
|
56
|
+
"""
|
53
57
|
pulumi.set(__self__, "expression", expression)
|
54
58
|
pulumi.set(__self__, "title", title)
|
55
59
|
if description is not None:
|
@@ -58,6 +62,9 @@ class DatabaseIAMBindingConditionArgs:
|
|
58
62
|
@property
|
59
63
|
@pulumi.getter
|
60
64
|
def expression(self) -> pulumi.Input[str]:
|
65
|
+
"""
|
66
|
+
Textual representation of an expression in Common Expression Language syntax.
|
67
|
+
"""
|
61
68
|
return pulumi.get(self, "expression")
|
62
69
|
|
63
70
|
@expression.setter
|
@@ -67,6 +74,9 @@ class DatabaseIAMBindingConditionArgs:
|
|
67
74
|
@property
|
68
75
|
@pulumi.getter
|
69
76
|
def title(self) -> pulumi.Input[str]:
|
77
|
+
"""
|
78
|
+
A title for the expression, i.e. a short string describing its purpose.
|
79
|
+
"""
|
70
80
|
return pulumi.get(self, "title")
|
71
81
|
|
72
82
|
@title.setter
|
@@ -89,6 +99,10 @@ class DatabaseIAMMemberConditionArgs:
|
|
89
99
|
expression: pulumi.Input[str],
|
90
100
|
title: pulumi.Input[str],
|
91
101
|
description: Optional[pulumi.Input[str]] = None):
|
102
|
+
"""
|
103
|
+
:param pulumi.Input[str] expression: Textual representation of an expression in Common Expression Language syntax.
|
104
|
+
:param pulumi.Input[str] title: A title for the expression, i.e. a short string describing its purpose.
|
105
|
+
"""
|
92
106
|
pulumi.set(__self__, "expression", expression)
|
93
107
|
pulumi.set(__self__, "title", title)
|
94
108
|
if description is not None:
|
@@ -97,6 +111,9 @@ class DatabaseIAMMemberConditionArgs:
|
|
97
111
|
@property
|
98
112
|
@pulumi.getter
|
99
113
|
def expression(self) -> pulumi.Input[str]:
|
114
|
+
"""
|
115
|
+
Textual representation of an expression in Common Expression Language syntax.
|
116
|
+
"""
|
100
117
|
return pulumi.get(self, "expression")
|
101
118
|
|
102
119
|
@expression.setter
|
@@ -106,6 +123,9 @@ class DatabaseIAMMemberConditionArgs:
|
|
106
123
|
@property
|
107
124
|
@pulumi.getter
|
108
125
|
def title(self) -> pulumi.Input[str]:
|
126
|
+
"""
|
127
|
+
A title for the expression, i.e. a short string describing its purpose.
|
128
|
+
"""
|
109
129
|
return pulumi.get(self, "title")
|
110
130
|
|
111
131
|
@title.setter
|
@@ -38,6 +38,8 @@ class DatabaseIAMBindingArgs:
|
|
38
38
|
:param pulumi.Input[str] role: The role that should be applied. Only one
|
39
39
|
`spanner.DatabaseIAMBinding` can be used per role. Note that custom roles must be of the format
|
40
40
|
`[projects|organizations]/{parent-name}/roles/{role-name}`.
|
41
|
+
:param pulumi.Input['DatabaseIAMBindingConditionArgs'] condition: An [IAM Condition](https://cloud.google.com/iam/docs/conditions-overview) for a given binding.
|
42
|
+
Structure is documented below.
|
41
43
|
:param pulumi.Input[str] project: The ID of the project in which the resource belongs. If it
|
42
44
|
is not provided, the provider project is used.
|
43
45
|
"""
|
@@ -109,6 +111,10 @@ class DatabaseIAMBindingArgs:
|
|
109
111
|
@property
|
110
112
|
@pulumi.getter
|
111
113
|
def condition(self) -> Optional[pulumi.Input['DatabaseIAMBindingConditionArgs']]:
|
114
|
+
"""
|
115
|
+
An [IAM Condition](https://cloud.google.com/iam/docs/conditions-overview) for a given binding.
|
116
|
+
Structure is documented below.
|
117
|
+
"""
|
112
118
|
return pulumi.get(self, "condition")
|
113
119
|
|
114
120
|
@condition.setter
|
@@ -141,6 +147,8 @@ class _DatabaseIAMBindingState:
|
|
141
147
|
role: Optional[pulumi.Input[str]] = None):
|
142
148
|
"""
|
143
149
|
Input properties used for looking up and filtering DatabaseIAMBinding resources.
|
150
|
+
:param pulumi.Input['DatabaseIAMBindingConditionArgs'] condition: An [IAM Condition](https://cloud.google.com/iam/docs/conditions-overview) for a given binding.
|
151
|
+
Structure is documented below.
|
144
152
|
:param pulumi.Input[str] database: The name of the Spanner database.
|
145
153
|
:param pulumi.Input[str] etag: (Computed) The etag of the database's IAM policy.
|
146
154
|
:param pulumi.Input[str] instance: The name of the Spanner instance the database belongs to.
|
@@ -177,6 +185,10 @@ class _DatabaseIAMBindingState:
|
|
177
185
|
@property
|
178
186
|
@pulumi.getter
|
179
187
|
def condition(self) -> Optional[pulumi.Input['DatabaseIAMBindingConditionArgs']]:
|
188
|
+
"""
|
189
|
+
An [IAM Condition](https://cloud.google.com/iam/docs/conditions-overview) for a given binding.
|
190
|
+
Structure is documented below.
|
191
|
+
"""
|
180
192
|
return pulumi.get(self, "condition")
|
181
193
|
|
182
194
|
@condition.setter
|
@@ -307,6 +319,27 @@ class DatabaseIAMBinding(pulumi.CustomResource):
|
|
307
319
|
policy_data=admin.policy_data)
|
308
320
|
```
|
309
321
|
|
322
|
+
With IAM Conditions:
|
323
|
+
|
324
|
+
```python
|
325
|
+
import pulumi
|
326
|
+
import pulumi_gcp as gcp
|
327
|
+
|
328
|
+
admin = gcp.organizations.get_iam_policy(bindings=[gcp.organizations.GetIAMPolicyBindingArgs(
|
329
|
+
role="roles/editor",
|
330
|
+
members=["user:jane@example.com"],
|
331
|
+
condition=gcp.organizations.GetIAMPolicyBindingConditionArgs(
|
332
|
+
title="My Role",
|
333
|
+
description="Grant permissions on my_role",
|
334
|
+
expression="(resource.type == \\"spanner.googleapis.com/DatabaseRole\\" && (resource.name.endsWith(\\"/myrole\\")))",
|
335
|
+
),
|
336
|
+
)])
|
337
|
+
database = gcp.spanner.DatabaseIAMPolicy("database",
|
338
|
+
instance="your-instance-name",
|
339
|
+
database="your-database-name",
|
340
|
+
policy_data=admin.policy_data)
|
341
|
+
```
|
342
|
+
|
310
343
|
## google\\_spanner\\_database\\_iam\\_binding
|
311
344
|
|
312
345
|
```python
|
@@ -320,6 +353,24 @@ class DatabaseIAMBinding(pulumi.CustomResource):
|
|
320
353
|
members=["user:jane@example.com"])
|
321
354
|
```
|
322
355
|
|
356
|
+
With IAM Conditions:
|
357
|
+
|
358
|
+
```python
|
359
|
+
import pulumi
|
360
|
+
import pulumi_gcp as gcp
|
361
|
+
|
362
|
+
database = gcp.spanner.DatabaseIAMBinding("database",
|
363
|
+
instance="your-instance-name",
|
364
|
+
database="your-database-name",
|
365
|
+
role="roles/compute.networkUser",
|
366
|
+
members=["user:jane@example.com"],
|
367
|
+
condition=gcp.spanner.DatabaseIAMBindingConditionArgs(
|
368
|
+
title="My Role",
|
369
|
+
description="Grant permissions on my_role",
|
370
|
+
expression="(resource.type == \\"spanner.googleapis.com/DatabaseRole\\" && (resource.name.endsWith(\\"/myrole\\")))",
|
371
|
+
))
|
372
|
+
```
|
373
|
+
|
323
374
|
## google\\_spanner\\_database\\_iam\\_member
|
324
375
|
|
325
376
|
```python
|
@@ -333,6 +384,24 @@ class DatabaseIAMBinding(pulumi.CustomResource):
|
|
333
384
|
member="user:jane@example.com")
|
334
385
|
```
|
335
386
|
|
387
|
+
With IAM Conditions:
|
388
|
+
|
389
|
+
```python
|
390
|
+
import pulumi
|
391
|
+
import pulumi_gcp as gcp
|
392
|
+
|
393
|
+
database = gcp.spanner.DatabaseIAMMember("database",
|
394
|
+
instance="your-instance-name",
|
395
|
+
database="your-database-name",
|
396
|
+
role="roles/compute.networkUser",
|
397
|
+
member="user:jane@example.com",
|
398
|
+
condition=gcp.spanner.DatabaseIAMMemberConditionArgs(
|
399
|
+
title="My Role",
|
400
|
+
description="Grant permissions on my_role",
|
401
|
+
expression="(resource.type == \\"spanner.googleapis.com/DatabaseRole\\" && (resource.name.endsWith(\\"/myrole\\")))",
|
402
|
+
))
|
403
|
+
```
|
404
|
+
|
336
405
|
## Import
|
337
406
|
|
338
407
|
### Importing IAM policies
|
@@ -361,6 +430,8 @@ class DatabaseIAMBinding(pulumi.CustomResource):
|
|
361
430
|
|
362
431
|
:param str resource_name: The name of the resource.
|
363
432
|
:param pulumi.ResourceOptions opts: Options for the resource.
|
433
|
+
:param pulumi.Input[pulumi.InputType['DatabaseIAMBindingConditionArgs']] condition: An [IAM Condition](https://cloud.google.com/iam/docs/conditions-overview) for a given binding.
|
434
|
+
Structure is documented below.
|
364
435
|
:param pulumi.Input[str] database: The name of the Spanner database.
|
365
436
|
:param pulumi.Input[str] instance: The name of the Spanner instance the database belongs to.
|
366
437
|
|
@@ -414,6 +485,27 @@ class DatabaseIAMBinding(pulumi.CustomResource):
|
|
414
485
|
policy_data=admin.policy_data)
|
415
486
|
```
|
416
487
|
|
488
|
+
With IAM Conditions:
|
489
|
+
|
490
|
+
```python
|
491
|
+
import pulumi
|
492
|
+
import pulumi_gcp as gcp
|
493
|
+
|
494
|
+
admin = gcp.organizations.get_iam_policy(bindings=[gcp.organizations.GetIAMPolicyBindingArgs(
|
495
|
+
role="roles/editor",
|
496
|
+
members=["user:jane@example.com"],
|
497
|
+
condition=gcp.organizations.GetIAMPolicyBindingConditionArgs(
|
498
|
+
title="My Role",
|
499
|
+
description="Grant permissions on my_role",
|
500
|
+
expression="(resource.type == \\"spanner.googleapis.com/DatabaseRole\\" && (resource.name.endsWith(\\"/myrole\\")))",
|
501
|
+
),
|
502
|
+
)])
|
503
|
+
database = gcp.spanner.DatabaseIAMPolicy("database",
|
504
|
+
instance="your-instance-name",
|
505
|
+
database="your-database-name",
|
506
|
+
policy_data=admin.policy_data)
|
507
|
+
```
|
508
|
+
|
417
509
|
## google\\_spanner\\_database\\_iam\\_binding
|
418
510
|
|
419
511
|
```python
|
@@ -427,6 +519,24 @@ class DatabaseIAMBinding(pulumi.CustomResource):
|
|
427
519
|
members=["user:jane@example.com"])
|
428
520
|
```
|
429
521
|
|
522
|
+
With IAM Conditions:
|
523
|
+
|
524
|
+
```python
|
525
|
+
import pulumi
|
526
|
+
import pulumi_gcp as gcp
|
527
|
+
|
528
|
+
database = gcp.spanner.DatabaseIAMBinding("database",
|
529
|
+
instance="your-instance-name",
|
530
|
+
database="your-database-name",
|
531
|
+
role="roles/compute.networkUser",
|
532
|
+
members=["user:jane@example.com"],
|
533
|
+
condition=gcp.spanner.DatabaseIAMBindingConditionArgs(
|
534
|
+
title="My Role",
|
535
|
+
description="Grant permissions on my_role",
|
536
|
+
expression="(resource.type == \\"spanner.googleapis.com/DatabaseRole\\" && (resource.name.endsWith(\\"/myrole\\")))",
|
537
|
+
))
|
538
|
+
```
|
539
|
+
|
430
540
|
## google\\_spanner\\_database\\_iam\\_member
|
431
541
|
|
432
542
|
```python
|
@@ -440,6 +550,24 @@ class DatabaseIAMBinding(pulumi.CustomResource):
|
|
440
550
|
member="user:jane@example.com")
|
441
551
|
```
|
442
552
|
|
553
|
+
With IAM Conditions:
|
554
|
+
|
555
|
+
```python
|
556
|
+
import pulumi
|
557
|
+
import pulumi_gcp as gcp
|
558
|
+
|
559
|
+
database = gcp.spanner.DatabaseIAMMember("database",
|
560
|
+
instance="your-instance-name",
|
561
|
+
database="your-database-name",
|
562
|
+
role="roles/compute.networkUser",
|
563
|
+
member="user:jane@example.com",
|
564
|
+
condition=gcp.spanner.DatabaseIAMMemberConditionArgs(
|
565
|
+
title="My Role",
|
566
|
+
description="Grant permissions on my_role",
|
567
|
+
expression="(resource.type == \\"spanner.googleapis.com/DatabaseRole\\" && (resource.name.endsWith(\\"/myrole\\")))",
|
568
|
+
))
|
569
|
+
```
|
570
|
+
|
443
571
|
## Import
|
444
572
|
|
445
573
|
### Importing IAM policies
|
@@ -535,6 +663,8 @@ class DatabaseIAMBinding(pulumi.CustomResource):
|
|
535
663
|
:param str resource_name: The unique name of the resulting resource.
|
536
664
|
:param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
|
537
665
|
:param pulumi.ResourceOptions opts: Options for the resource.
|
666
|
+
:param pulumi.Input[pulumi.InputType['DatabaseIAMBindingConditionArgs']] condition: An [IAM Condition](https://cloud.google.com/iam/docs/conditions-overview) for a given binding.
|
667
|
+
Structure is documented below.
|
538
668
|
:param pulumi.Input[str] database: The name of the Spanner database.
|
539
669
|
:param pulumi.Input[str] etag: (Computed) The etag of the database's IAM policy.
|
540
670
|
:param pulumi.Input[str] instance: The name of the Spanner instance the database belongs to.
|
@@ -569,6 +699,10 @@ class DatabaseIAMBinding(pulumi.CustomResource):
|
|
569
699
|
@property
|
570
700
|
@pulumi.getter
|
571
701
|
def condition(self) -> pulumi.Output[Optional['outputs.DatabaseIAMBindingCondition']]:
|
702
|
+
"""
|
703
|
+
An [IAM Condition](https://cloud.google.com/iam/docs/conditions-overview) for a given binding.
|
704
|
+
Structure is documented below.
|
705
|
+
"""
|
572
706
|
return pulumi.get(self, "condition")
|
573
707
|
|
574
708
|
@property
|