pulumi-gcp 7.12.0a1709365001__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 +72 -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/dataset_iam_binding.py +35 -28
- pulumi_gcp/bigquery/dataset_iam_member.py +35 -28
- pulumi_gcp/bigquery/dataset_iam_policy.py +35 -28
- 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/cloudfunctionsv2/function.py +0 -2
- 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/__init__.py +1 -0
- pulumi_gcp/compute/get_forwarding_rules.py +142 -0
- pulumi_gcp/compute/instance_group_membership.py +4 -4
- pulumi_gcp/compute/outputs.py +816 -0
- pulumi_gcp/compute/region_network_endpoint.py +2 -2
- pulumi_gcp/compute/region_target_https_proxy.py +162 -37
- pulumi_gcp/compute/router_nat.py +8 -8
- pulumi_gcp/container/_inputs.py +80 -0
- pulumi_gcp/container/cluster.py +20 -16
- pulumi_gcp/container/outputs.py +115 -1
- pulumi_gcp/firebase/__init__.py +4 -0
- pulumi_gcp/firebase/app_check_app_attest_config.py +461 -0
- pulumi_gcp/firebase/app_check_play_integrity_config.py +465 -0
- pulumi_gcp/firebase/app_check_recaptcha_enterprise_config.py +474 -0
- pulumi_gcp/firebase/app_check_recaptcha_v3_config.py +511 -0
- pulumi_gcp/gkehub/scope.py +85 -0
- pulumi_gcp/integrationconnectors/connection.py +4 -4
- pulumi_gcp/looker/_inputs.py +42 -0
- pulumi_gcp/looker/instance.py +90 -0
- pulumi_gcp/looker/outputs.py +34 -0
- pulumi_gcp/migrationcenter/__init__.py +3 -0
- pulumi_gcp/migrationcenter/_inputs.py +500 -0
- pulumi_gcp/migrationcenter/outputs.py +562 -0
- pulumi_gcp/migrationcenter/preference_set.py +687 -0
- pulumi_gcp/monitoring/custom_service.py +4 -2
- pulumi_gcp/monitoring/generic_service.py +4 -2
- pulumi_gcp/monitoring/get_app_engine_service.py +2 -2
- pulumi_gcp/netapp/__init__.py +1 -0
- pulumi_gcp/netapp/_inputs.py +275 -0
- pulumi_gcp/netapp/outputs.py +290 -0
- pulumi_gcp/netapp/volume.py +140 -2
- pulumi_gcp/netapp/volume_replication.py +1292 -0
- pulumi_gcp/notebooks/instance.py +1 -1
- pulumi_gcp/securityposture/_inputs.py +22 -19
- pulumi_gcp/securityposture/outputs.py +18 -15
- pulumi_gcp/securityposture/posture.py +28 -48
- 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/workbench/_inputs.py +157 -2
- pulumi_gcp/workbench/instance.py +52 -0
- pulumi_gcp/workbench/outputs.py +154 -2
- {pulumi_gcp-7.12.0a1709365001.dist-info → pulumi_gcp-7.13.0a1709814369.dist-info}/METADATA +1 -1
- {pulumi_gcp-7.12.0a1709365001.dist-info → pulumi_gcp-7.13.0a1709814369.dist-info}/RECORD +73 -60
- {pulumi_gcp-7.12.0a1709365001.dist-info → pulumi_gcp-7.13.0a1709814369.dist-info}/WHEEL +0 -0
- {pulumi_gcp-7.12.0a1709365001.dist-info → pulumi_gcp-7.13.0a1709814369.dist-info}/top_level.txt +0 -0
@@ -38,6 +38,8 @@ class DatabaseIAMMemberArgs:
|
|
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['DatabaseIAMMemberConditionArgs'] 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 DatabaseIAMMemberArgs:
|
|
109
111
|
@property
|
110
112
|
@pulumi.getter
|
111
113
|
def condition(self) -> Optional[pulumi.Input['DatabaseIAMMemberConditionArgs']]:
|
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 _DatabaseIAMMemberState:
|
|
141
147
|
role: Optional[pulumi.Input[str]] = None):
|
142
148
|
"""
|
143
149
|
Input properties used for looking up and filtering DatabaseIAMMember resources.
|
150
|
+
:param pulumi.Input['DatabaseIAMMemberConditionArgs'] 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 _DatabaseIAMMemberState:
|
|
177
185
|
@property
|
178
186
|
@pulumi.getter
|
179
187
|
def condition(self) -> Optional[pulumi.Input['DatabaseIAMMemberConditionArgs']]:
|
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 DatabaseIAMMember(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 DatabaseIAMMember(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 DatabaseIAMMember(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 DatabaseIAMMember(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['DatabaseIAMMemberConditionArgs']] 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 DatabaseIAMMember(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 DatabaseIAMMember(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 DatabaseIAMMember(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 DatabaseIAMMember(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['DatabaseIAMMemberConditionArgs']] 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 DatabaseIAMMember(pulumi.CustomResource):
|
|
569
699
|
@property
|
570
700
|
@pulumi.getter
|
571
701
|
def condition(self) -> pulumi.Output[Optional['outputs.DatabaseIAMMemberCondition']]:
|
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
|
@@ -252,6 +252,27 @@ class DatabaseIAMPolicy(pulumi.CustomResource):
|
|
252
252
|
policy_data=admin.policy_data)
|
253
253
|
```
|
254
254
|
|
255
|
+
With IAM Conditions:
|
256
|
+
|
257
|
+
```python
|
258
|
+
import pulumi
|
259
|
+
import pulumi_gcp as gcp
|
260
|
+
|
261
|
+
admin = gcp.organizations.get_iam_policy(bindings=[gcp.organizations.GetIAMPolicyBindingArgs(
|
262
|
+
role="roles/editor",
|
263
|
+
members=["user:jane@example.com"],
|
264
|
+
condition=gcp.organizations.GetIAMPolicyBindingConditionArgs(
|
265
|
+
title="My Role",
|
266
|
+
description="Grant permissions on my_role",
|
267
|
+
expression="(resource.type == \\"spanner.googleapis.com/DatabaseRole\\" && (resource.name.endsWith(\\"/myrole\\")))",
|
268
|
+
),
|
269
|
+
)])
|
270
|
+
database = gcp.spanner.DatabaseIAMPolicy("database",
|
271
|
+
instance="your-instance-name",
|
272
|
+
database="your-database-name",
|
273
|
+
policy_data=admin.policy_data)
|
274
|
+
```
|
275
|
+
|
255
276
|
## google\\_spanner\\_database\\_iam\\_binding
|
256
277
|
|
257
278
|
```python
|
@@ -265,6 +286,24 @@ class DatabaseIAMPolicy(pulumi.CustomResource):
|
|
265
286
|
members=["user:jane@example.com"])
|
266
287
|
```
|
267
288
|
|
289
|
+
With IAM Conditions:
|
290
|
+
|
291
|
+
```python
|
292
|
+
import pulumi
|
293
|
+
import pulumi_gcp as gcp
|
294
|
+
|
295
|
+
database = gcp.spanner.DatabaseIAMBinding("database",
|
296
|
+
instance="your-instance-name",
|
297
|
+
database="your-database-name",
|
298
|
+
role="roles/compute.networkUser",
|
299
|
+
members=["user:jane@example.com"],
|
300
|
+
condition=gcp.spanner.DatabaseIAMBindingConditionArgs(
|
301
|
+
title="My Role",
|
302
|
+
description="Grant permissions on my_role",
|
303
|
+
expression="(resource.type == \\"spanner.googleapis.com/DatabaseRole\\" && (resource.name.endsWith(\\"/myrole\\")))",
|
304
|
+
))
|
305
|
+
```
|
306
|
+
|
268
307
|
## google\\_spanner\\_database\\_iam\\_member
|
269
308
|
|
270
309
|
```python
|
@@ -278,6 +317,24 @@ class DatabaseIAMPolicy(pulumi.CustomResource):
|
|
278
317
|
member="user:jane@example.com")
|
279
318
|
```
|
280
319
|
|
320
|
+
With IAM Conditions:
|
321
|
+
|
322
|
+
```python
|
323
|
+
import pulumi
|
324
|
+
import pulumi_gcp as gcp
|
325
|
+
|
326
|
+
database = gcp.spanner.DatabaseIAMMember("database",
|
327
|
+
instance="your-instance-name",
|
328
|
+
database="your-database-name",
|
329
|
+
role="roles/compute.networkUser",
|
330
|
+
member="user:jane@example.com",
|
331
|
+
condition=gcp.spanner.DatabaseIAMMemberConditionArgs(
|
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
|
+
|
281
338
|
## Import
|
282
339
|
|
283
340
|
### Importing IAM policies
|
@@ -358,6 +415,27 @@ class DatabaseIAMPolicy(pulumi.CustomResource):
|
|
358
415
|
policy_data=admin.policy_data)
|
359
416
|
```
|
360
417
|
|
418
|
+
With IAM Conditions:
|
419
|
+
|
420
|
+
```python
|
421
|
+
import pulumi
|
422
|
+
import pulumi_gcp as gcp
|
423
|
+
|
424
|
+
admin = gcp.organizations.get_iam_policy(bindings=[gcp.organizations.GetIAMPolicyBindingArgs(
|
425
|
+
role="roles/editor",
|
426
|
+
members=["user:jane@example.com"],
|
427
|
+
condition=gcp.organizations.GetIAMPolicyBindingConditionArgs(
|
428
|
+
title="My Role",
|
429
|
+
description="Grant permissions on my_role",
|
430
|
+
expression="(resource.type == \\"spanner.googleapis.com/DatabaseRole\\" && (resource.name.endsWith(\\"/myrole\\")))",
|
431
|
+
),
|
432
|
+
)])
|
433
|
+
database = gcp.spanner.DatabaseIAMPolicy("database",
|
434
|
+
instance="your-instance-name",
|
435
|
+
database="your-database-name",
|
436
|
+
policy_data=admin.policy_data)
|
437
|
+
```
|
438
|
+
|
361
439
|
## google\\_spanner\\_database\\_iam\\_binding
|
362
440
|
|
363
441
|
```python
|
@@ -371,6 +449,24 @@ class DatabaseIAMPolicy(pulumi.CustomResource):
|
|
371
449
|
members=["user:jane@example.com"])
|
372
450
|
```
|
373
451
|
|
452
|
+
With IAM Conditions:
|
453
|
+
|
454
|
+
```python
|
455
|
+
import pulumi
|
456
|
+
import pulumi_gcp as gcp
|
457
|
+
|
458
|
+
database = gcp.spanner.DatabaseIAMBinding("database",
|
459
|
+
instance="your-instance-name",
|
460
|
+
database="your-database-name",
|
461
|
+
role="roles/compute.networkUser",
|
462
|
+
members=["user:jane@example.com"],
|
463
|
+
condition=gcp.spanner.DatabaseIAMBindingConditionArgs(
|
464
|
+
title="My Role",
|
465
|
+
description="Grant permissions on my_role",
|
466
|
+
expression="(resource.type == \\"spanner.googleapis.com/DatabaseRole\\" && (resource.name.endsWith(\\"/myrole\\")))",
|
467
|
+
))
|
468
|
+
```
|
469
|
+
|
374
470
|
## google\\_spanner\\_database\\_iam\\_member
|
375
471
|
|
376
472
|
```python
|
@@ -384,6 +480,24 @@ class DatabaseIAMPolicy(pulumi.CustomResource):
|
|
384
480
|
member="user:jane@example.com")
|
385
481
|
```
|
386
482
|
|
483
|
+
With IAM Conditions:
|
484
|
+
|
485
|
+
```python
|
486
|
+
import pulumi
|
487
|
+
import pulumi_gcp as gcp
|
488
|
+
|
489
|
+
database = gcp.spanner.DatabaseIAMMember("database",
|
490
|
+
instance="your-instance-name",
|
491
|
+
database="your-database-name",
|
492
|
+
role="roles/compute.networkUser",
|
493
|
+
member="user:jane@example.com",
|
494
|
+
condition=gcp.spanner.DatabaseIAMMemberConditionArgs(
|
495
|
+
title="My Role",
|
496
|
+
description="Grant permissions on my_role",
|
497
|
+
expression="(resource.type == \\"spanner.googleapis.com/DatabaseRole\\" && (resource.name.endsWith(\\"/myrole\\")))",
|
498
|
+
))
|
499
|
+
```
|
500
|
+
|
387
501
|
## Import
|
388
502
|
|
389
503
|
### Importing IAM policies
|
pulumi_gcp/spanner/outputs.py
CHANGED
@@ -67,6 +67,10 @@ class DatabaseIAMBindingCondition(dict):
|
|
67
67
|
expression: str,
|
68
68
|
title: str,
|
69
69
|
description: Optional[str] = None):
|
70
|
+
"""
|
71
|
+
:param str expression: Textual representation of an expression in Common Expression Language syntax.
|
72
|
+
:param str title: A title for the expression, i.e. a short string describing its purpose.
|
73
|
+
"""
|
70
74
|
pulumi.set(__self__, "expression", expression)
|
71
75
|
pulumi.set(__self__, "title", title)
|
72
76
|
if description is not None:
|
@@ -75,11 +79,17 @@ class DatabaseIAMBindingCondition(dict):
|
|
75
79
|
@property
|
76
80
|
@pulumi.getter
|
77
81
|
def expression(self) -> str:
|
82
|
+
"""
|
83
|
+
Textual representation of an expression in Common Expression Language syntax.
|
84
|
+
"""
|
78
85
|
return pulumi.get(self, "expression")
|
79
86
|
|
80
87
|
@property
|
81
88
|
@pulumi.getter
|
82
89
|
def title(self) -> str:
|
90
|
+
"""
|
91
|
+
A title for the expression, i.e. a short string describing its purpose.
|
92
|
+
"""
|
83
93
|
return pulumi.get(self, "title")
|
84
94
|
|
85
95
|
@property
|
@@ -94,6 +104,10 @@ class DatabaseIAMMemberCondition(dict):
|
|
94
104
|
expression: str,
|
95
105
|
title: str,
|
96
106
|
description: Optional[str] = None):
|
107
|
+
"""
|
108
|
+
:param str expression: Textual representation of an expression in Common Expression Language syntax.
|
109
|
+
:param str title: A title for the expression, i.e. a short string describing its purpose.
|
110
|
+
"""
|
97
111
|
pulumi.set(__self__, "expression", expression)
|
98
112
|
pulumi.set(__self__, "title", title)
|
99
113
|
if description is not None:
|
@@ -102,11 +116,17 @@ class DatabaseIAMMemberCondition(dict):
|
|
102
116
|
@property
|
103
117
|
@pulumi.getter
|
104
118
|
def expression(self) -> str:
|
119
|
+
"""
|
120
|
+
Textual representation of an expression in Common Expression Language syntax.
|
121
|
+
"""
|
105
122
|
return pulumi.get(self, "expression")
|
106
123
|
|
107
124
|
@property
|
108
125
|
@pulumi.getter
|
109
126
|
def title(self) -> str:
|
127
|
+
"""
|
128
|
+
A title for the expression, i.e. a short string describing its purpose.
|
129
|
+
"""
|
110
130
|
return pulumi.get(self, "title")
|
111
131
|
|
112
132
|
@property
|
pulumi_gcp/workbench/_inputs.py
CHANGED
@@ -13,9 +13,11 @@ __all__ = [
|
|
13
13
|
'InstanceGceSetupArgs',
|
14
14
|
'InstanceGceSetupAcceleratorConfigArgs',
|
15
15
|
'InstanceGceSetupBootDiskArgs',
|
16
|
+
'InstanceGceSetupContainerImageArgs',
|
16
17
|
'InstanceGceSetupDataDisksArgs',
|
17
18
|
'InstanceGceSetupNetworkInterfaceArgs',
|
18
19
|
'InstanceGceSetupServiceAccountArgs',
|
20
|
+
'InstanceGceSetupShieldedInstanceConfigArgs',
|
19
21
|
'InstanceGceSetupVmImageArgs',
|
20
22
|
'InstanceHealthInfoArgs',
|
21
23
|
'InstanceIamBindingConditionArgs',
|
@@ -28,6 +30,7 @@ class InstanceGceSetupArgs:
|
|
28
30
|
def __init__(__self__, *,
|
29
31
|
accelerator_configs: Optional[pulumi.Input[Sequence[pulumi.Input['InstanceGceSetupAcceleratorConfigArgs']]]] = None,
|
30
32
|
boot_disk: Optional[pulumi.Input['InstanceGceSetupBootDiskArgs']] = None,
|
33
|
+
container_image: Optional[pulumi.Input['InstanceGceSetupContainerImageArgs']] = None,
|
31
34
|
data_disks: Optional[pulumi.Input['InstanceGceSetupDataDisksArgs']] = None,
|
32
35
|
disable_public_ip: Optional[pulumi.Input[bool]] = None,
|
33
36
|
enable_ip_forwarding: Optional[pulumi.Input[bool]] = None,
|
@@ -35,6 +38,7 @@ class InstanceGceSetupArgs:
|
|
35
38
|
metadata: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
|
36
39
|
network_interfaces: Optional[pulumi.Input[Sequence[pulumi.Input['InstanceGceSetupNetworkInterfaceArgs']]]] = None,
|
37
40
|
service_accounts: Optional[pulumi.Input[Sequence[pulumi.Input['InstanceGceSetupServiceAccountArgs']]]] = None,
|
41
|
+
shielded_instance_config: Optional[pulumi.Input['InstanceGceSetupShieldedInstanceConfigArgs']] = None,
|
38
42
|
tags: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
|
39
43
|
vm_image: Optional[pulumi.Input['InstanceGceSetupVmImageArgs']] = None):
|
40
44
|
"""
|
@@ -44,6 +48,8 @@ class InstanceGceSetupArgs:
|
|
44
48
|
Structure is documented below.
|
45
49
|
:param pulumi.Input['InstanceGceSetupBootDiskArgs'] boot_disk: The definition of a boot disk.
|
46
50
|
Structure is documented below.
|
51
|
+
:param pulumi.Input['InstanceGceSetupContainerImageArgs'] container_image: Use a container image to start the workbench instance.
|
52
|
+
Structure is documented below.
|
47
53
|
:param pulumi.Input['InstanceGceSetupDataDisksArgs'] data_disks: Data disks attached to the VM instance. Currently supports only one data disk.
|
48
54
|
Structure is documented below.
|
49
55
|
:param pulumi.Input[bool] disable_public_ip: Optional. If true, no external IP will be assigned to this VM instance.
|
@@ -55,6 +61,10 @@ class InstanceGceSetupArgs:
|
|
55
61
|
Structure is documented below.
|
56
62
|
:param pulumi.Input[Sequence[pulumi.Input['InstanceGceSetupServiceAccountArgs']]] service_accounts: The service account that serves as an identity for the VM instance. Currently supports only one service account.
|
57
63
|
Structure is documented below.
|
64
|
+
:param pulumi.Input['InstanceGceSetupShieldedInstanceConfigArgs'] shielded_instance_config: A set of Shielded Instance options. See [Images using supported Shielded
|
65
|
+
VM features](https://cloud.google.com/compute/docs/instances/modifying-shielded-vm).
|
66
|
+
Not all combinations are valid.
|
67
|
+
Structure is documented below.
|
58
68
|
:param pulumi.Input[Sequence[pulumi.Input[str]]] tags: Optional. The Compute Engine tags to add to instance (see [Tagging
|
59
69
|
instances](https://cloud.google.com/compute/docs/label-or-tag-resources#tags)).
|
60
70
|
:param pulumi.Input['InstanceGceSetupVmImageArgs'] vm_image: Definition of a custom Compute Engine virtual machine image for starting
|
@@ -65,6 +75,8 @@ class InstanceGceSetupArgs:
|
|
65
75
|
pulumi.set(__self__, "accelerator_configs", accelerator_configs)
|
66
76
|
if boot_disk is not None:
|
67
77
|
pulumi.set(__self__, "boot_disk", boot_disk)
|
78
|
+
if container_image is not None:
|
79
|
+
pulumi.set(__self__, "container_image", container_image)
|
68
80
|
if data_disks is not None:
|
69
81
|
pulumi.set(__self__, "data_disks", data_disks)
|
70
82
|
if disable_public_ip is not None:
|
@@ -79,6 +91,8 @@ class InstanceGceSetupArgs:
|
|
79
91
|
pulumi.set(__self__, "network_interfaces", network_interfaces)
|
80
92
|
if service_accounts is not None:
|
81
93
|
pulumi.set(__self__, "service_accounts", service_accounts)
|
94
|
+
if shielded_instance_config is not None:
|
95
|
+
pulumi.set(__self__, "shielded_instance_config", shielded_instance_config)
|
82
96
|
if tags is not None:
|
83
97
|
pulumi.set(__self__, "tags", tags)
|
84
98
|
if vm_image is not None:
|
@@ -112,6 +126,19 @@ class InstanceGceSetupArgs:
|
|
112
126
|
def boot_disk(self, value: Optional[pulumi.Input['InstanceGceSetupBootDiskArgs']]):
|
113
127
|
pulumi.set(self, "boot_disk", value)
|
114
128
|
|
129
|
+
@property
|
130
|
+
@pulumi.getter(name="containerImage")
|
131
|
+
def container_image(self) -> Optional[pulumi.Input['InstanceGceSetupContainerImageArgs']]:
|
132
|
+
"""
|
133
|
+
Use a container image to start the workbench instance.
|
134
|
+
Structure is documented below.
|
135
|
+
"""
|
136
|
+
return pulumi.get(self, "container_image")
|
137
|
+
|
138
|
+
@container_image.setter
|
139
|
+
def container_image(self, value: Optional[pulumi.Input['InstanceGceSetupContainerImageArgs']]):
|
140
|
+
pulumi.set(self, "container_image", value)
|
141
|
+
|
115
142
|
@property
|
116
143
|
@pulumi.getter(name="dataDisks")
|
117
144
|
def data_disks(self) -> Optional[pulumi.Input['InstanceGceSetupDataDisksArgs']]:
|
@@ -200,6 +227,21 @@ class InstanceGceSetupArgs:
|
|
200
227
|
def service_accounts(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['InstanceGceSetupServiceAccountArgs']]]]):
|
201
228
|
pulumi.set(self, "service_accounts", value)
|
202
229
|
|
230
|
+
@property
|
231
|
+
@pulumi.getter(name="shieldedInstanceConfig")
|
232
|
+
def shielded_instance_config(self) -> Optional[pulumi.Input['InstanceGceSetupShieldedInstanceConfigArgs']]:
|
233
|
+
"""
|
234
|
+
A set of Shielded Instance options. See [Images using supported Shielded
|
235
|
+
VM features](https://cloud.google.com/compute/docs/instances/modifying-shielded-vm).
|
236
|
+
Not all combinations are valid.
|
237
|
+
Structure is documented below.
|
238
|
+
"""
|
239
|
+
return pulumi.get(self, "shielded_instance_config")
|
240
|
+
|
241
|
+
@shielded_instance_config.setter
|
242
|
+
def shielded_instance_config(self, value: Optional[pulumi.Input['InstanceGceSetupShieldedInstanceConfigArgs']]):
|
243
|
+
pulumi.set(self, "shielded_instance_config", value)
|
244
|
+
|
203
245
|
@property
|
204
246
|
@pulumi.getter
|
205
247
|
def tags(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
|
@@ -354,6 +396,46 @@ class InstanceGceSetupBootDiskArgs:
|
|
354
396
|
pulumi.set(self, "kms_key", value)
|
355
397
|
|
356
398
|
|
399
|
+
@pulumi.input_type
|
400
|
+
class InstanceGceSetupContainerImageArgs:
|
401
|
+
def __init__(__self__, *,
|
402
|
+
repository: pulumi.Input[str],
|
403
|
+
tag: Optional[pulumi.Input[str]] = None):
|
404
|
+
"""
|
405
|
+
:param pulumi.Input[str] repository: The path to the container image repository.
|
406
|
+
For example: gcr.io/{project_id}/{imageName}
|
407
|
+
:param pulumi.Input[str] tag: The tag of the container image. If not specified, this defaults to the latest tag.
|
408
|
+
"""
|
409
|
+
pulumi.set(__self__, "repository", repository)
|
410
|
+
if tag is not None:
|
411
|
+
pulumi.set(__self__, "tag", tag)
|
412
|
+
|
413
|
+
@property
|
414
|
+
@pulumi.getter
|
415
|
+
def repository(self) -> pulumi.Input[str]:
|
416
|
+
"""
|
417
|
+
The path to the container image repository.
|
418
|
+
For example: gcr.io/{project_id}/{imageName}
|
419
|
+
"""
|
420
|
+
return pulumi.get(self, "repository")
|
421
|
+
|
422
|
+
@repository.setter
|
423
|
+
def repository(self, value: pulumi.Input[str]):
|
424
|
+
pulumi.set(self, "repository", value)
|
425
|
+
|
426
|
+
@property
|
427
|
+
@pulumi.getter
|
428
|
+
def tag(self) -> Optional[pulumi.Input[str]]:
|
429
|
+
"""
|
430
|
+
The tag of the container image. If not specified, this defaults to the latest tag.
|
431
|
+
"""
|
432
|
+
return pulumi.get(self, "tag")
|
433
|
+
|
434
|
+
@tag.setter
|
435
|
+
def tag(self, value: Optional[pulumi.Input[str]]):
|
436
|
+
pulumi.set(self, "tag", value)
|
437
|
+
|
438
|
+
|
357
439
|
@pulumi.input_type
|
358
440
|
class InstanceGceSetupDataDisksArgs:
|
359
441
|
def __init__(__self__, *,
|
@@ -541,6 +623,77 @@ class InstanceGceSetupServiceAccountArgs:
|
|
541
623
|
pulumi.set(self, "scopes", value)
|
542
624
|
|
543
625
|
|
626
|
+
@pulumi.input_type
|
627
|
+
class InstanceGceSetupShieldedInstanceConfigArgs:
|
628
|
+
def __init__(__self__, *,
|
629
|
+
enable_integrity_monitoring: Optional[pulumi.Input[bool]] = None,
|
630
|
+
enable_secure_boot: Optional[pulumi.Input[bool]] = None,
|
631
|
+
enable_vtpm: Optional[pulumi.Input[bool]] = None):
|
632
|
+
"""
|
633
|
+
:param pulumi.Input[bool] enable_integrity_monitoring: Optional. Defines whether the VM instance has integrity monitoring
|
634
|
+
enabled. Enables monitoring and attestation of the boot integrity of the VM
|
635
|
+
instance. The attestation is performed against the integrity policy baseline.
|
636
|
+
This baseline is initially derived from the implicitly trusted boot image
|
637
|
+
when the VM instance is created. Enabled by default.
|
638
|
+
:param pulumi.Input[bool] enable_secure_boot: Optional. Defines whether the VM instance has Secure Boot enabled.
|
639
|
+
Secure Boot helps ensure that the system only runs authentic software by verifying
|
640
|
+
the digital signature of all boot components, and halting the boot process
|
641
|
+
if signature verification fails. Disabled by default.
|
642
|
+
:param pulumi.Input[bool] enable_vtpm: Optional. Defines whether the VM instance has the vTPM enabled.
|
643
|
+
Enabled by default.
|
644
|
+
"""
|
645
|
+
if enable_integrity_monitoring is not None:
|
646
|
+
pulumi.set(__self__, "enable_integrity_monitoring", enable_integrity_monitoring)
|
647
|
+
if enable_secure_boot is not None:
|
648
|
+
pulumi.set(__self__, "enable_secure_boot", enable_secure_boot)
|
649
|
+
if enable_vtpm is not None:
|
650
|
+
pulumi.set(__self__, "enable_vtpm", enable_vtpm)
|
651
|
+
|
652
|
+
@property
|
653
|
+
@pulumi.getter(name="enableIntegrityMonitoring")
|
654
|
+
def enable_integrity_monitoring(self) -> Optional[pulumi.Input[bool]]:
|
655
|
+
"""
|
656
|
+
Optional. Defines whether the VM instance has integrity monitoring
|
657
|
+
enabled. Enables monitoring and attestation of the boot integrity of the VM
|
658
|
+
instance. The attestation is performed against the integrity policy baseline.
|
659
|
+
This baseline is initially derived from the implicitly trusted boot image
|
660
|
+
when the VM instance is created. Enabled by default.
|
661
|
+
"""
|
662
|
+
return pulumi.get(self, "enable_integrity_monitoring")
|
663
|
+
|
664
|
+
@enable_integrity_monitoring.setter
|
665
|
+
def enable_integrity_monitoring(self, value: Optional[pulumi.Input[bool]]):
|
666
|
+
pulumi.set(self, "enable_integrity_monitoring", value)
|
667
|
+
|
668
|
+
@property
|
669
|
+
@pulumi.getter(name="enableSecureBoot")
|
670
|
+
def enable_secure_boot(self) -> Optional[pulumi.Input[bool]]:
|
671
|
+
"""
|
672
|
+
Optional. Defines whether the VM instance has Secure Boot enabled.
|
673
|
+
Secure Boot helps ensure that the system only runs authentic software by verifying
|
674
|
+
the digital signature of all boot components, and halting the boot process
|
675
|
+
if signature verification fails. Disabled by default.
|
676
|
+
"""
|
677
|
+
return pulumi.get(self, "enable_secure_boot")
|
678
|
+
|
679
|
+
@enable_secure_boot.setter
|
680
|
+
def enable_secure_boot(self, value: Optional[pulumi.Input[bool]]):
|
681
|
+
pulumi.set(self, "enable_secure_boot", value)
|
682
|
+
|
683
|
+
@property
|
684
|
+
@pulumi.getter(name="enableVtpm")
|
685
|
+
def enable_vtpm(self) -> Optional[pulumi.Input[bool]]:
|
686
|
+
"""
|
687
|
+
Optional. Defines whether the VM instance has the vTPM enabled.
|
688
|
+
Enabled by default.
|
689
|
+
"""
|
690
|
+
return pulumi.get(self, "enable_vtpm")
|
691
|
+
|
692
|
+
@enable_vtpm.setter
|
693
|
+
def enable_vtpm(self, value: Optional[pulumi.Input[bool]]):
|
694
|
+
pulumi.set(self, "enable_vtpm", value)
|
695
|
+
|
696
|
+
|
544
697
|
@pulumi.input_type
|
545
698
|
class InstanceGceSetupVmImageArgs:
|
546
699
|
def __init__(__self__, *,
|
@@ -698,7 +851,8 @@ class InstanceUpgradeHistoryArgs:
|
|
698
851
|
vm_image: Optional[pulumi.Input[str]] = None):
|
699
852
|
"""
|
700
853
|
:param pulumi.Input[str] action: Optional. Action. Rolloback or Upgrade.
|
701
|
-
:param pulumi.Input[str] container_image:
|
854
|
+
:param pulumi.Input[str] container_image: Use a container image to start the workbench instance.
|
855
|
+
Structure is documented below.
|
702
856
|
:param pulumi.Input[str] create_time: An RFC3339 timestamp in UTC time. This in the format of yyyy-MM-ddTHH:mm:ss.SSSZ.
|
703
857
|
The milliseconds portion (".SSS") is optional.
|
704
858
|
:param pulumi.Input[str] framework: Optional. The framework of this workbench instance.
|
@@ -746,7 +900,8 @@ class InstanceUpgradeHistoryArgs:
|
|
746
900
|
@pulumi.getter(name="containerImage")
|
747
901
|
def container_image(self) -> Optional[pulumi.Input[str]]:
|
748
902
|
"""
|
749
|
-
|
903
|
+
Use a container image to start the workbench instance.
|
904
|
+
Structure is documented below.
|
750
905
|
"""
|
751
906
|
return pulumi.get(self, "container_image")
|
752
907
|
|