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.
Files changed (73) hide show
  1. pulumi_gcp/__init__.py +72 -0
  2. pulumi_gcp/appengine/application_url_dispatch_rules.py +2 -2
  3. pulumi_gcp/appengine/engine_split_traffic.py +4 -4
  4. pulumi_gcp/appengine/service_network_settings.py +2 -2
  5. pulumi_gcp/appengine/standard_app_version.py +4 -4
  6. pulumi_gcp/bigquery/_inputs.py +88 -0
  7. pulumi_gcp/bigquery/dataset_iam_binding.py +35 -28
  8. pulumi_gcp/bigquery/dataset_iam_member.py +35 -28
  9. pulumi_gcp/bigquery/dataset_iam_policy.py +35 -28
  10. pulumi_gcp/bigquery/outputs.py +91 -0
  11. pulumi_gcp/bigquery/routine.py +118 -12
  12. pulumi_gcp/certificatemanager/dns_authorization.py +63 -14
  13. pulumi_gcp/clouddeploy/__init__.py +4 -0
  14. pulumi_gcp/clouddeploy/_inputs.py +80 -0
  15. pulumi_gcp/clouddeploy/automation.py +16 -0
  16. pulumi_gcp/clouddeploy/get_target_iam_policy.py +162 -0
  17. pulumi_gcp/clouddeploy/outputs.py +56 -0
  18. pulumi_gcp/clouddeploy/target_iam_binding.py +324 -0
  19. pulumi_gcp/clouddeploy/target_iam_member.py +324 -0
  20. pulumi_gcp/clouddeploy/target_iam_policy.py +253 -0
  21. pulumi_gcp/cloudfunctionsv2/function.py +0 -2
  22. pulumi_gcp/cloudrunv2/_inputs.py +4 -2
  23. pulumi_gcp/cloudrunv2/outputs.py +8 -4
  24. pulumi_gcp/composer/_inputs.py +18 -2
  25. pulumi_gcp/composer/outputs.py +29 -4
  26. pulumi_gcp/compute/__init__.py +1 -0
  27. pulumi_gcp/compute/get_forwarding_rules.py +142 -0
  28. pulumi_gcp/compute/instance_group_membership.py +4 -4
  29. pulumi_gcp/compute/outputs.py +816 -0
  30. pulumi_gcp/compute/region_network_endpoint.py +2 -2
  31. pulumi_gcp/compute/region_target_https_proxy.py +162 -37
  32. pulumi_gcp/compute/router_nat.py +8 -8
  33. pulumi_gcp/container/_inputs.py +80 -0
  34. pulumi_gcp/container/cluster.py +20 -16
  35. pulumi_gcp/container/outputs.py +115 -1
  36. pulumi_gcp/firebase/__init__.py +4 -0
  37. pulumi_gcp/firebase/app_check_app_attest_config.py +461 -0
  38. pulumi_gcp/firebase/app_check_play_integrity_config.py +465 -0
  39. pulumi_gcp/firebase/app_check_recaptcha_enterprise_config.py +474 -0
  40. pulumi_gcp/firebase/app_check_recaptcha_v3_config.py +511 -0
  41. pulumi_gcp/gkehub/scope.py +85 -0
  42. pulumi_gcp/integrationconnectors/connection.py +4 -4
  43. pulumi_gcp/looker/_inputs.py +42 -0
  44. pulumi_gcp/looker/instance.py +90 -0
  45. pulumi_gcp/looker/outputs.py +34 -0
  46. pulumi_gcp/migrationcenter/__init__.py +3 -0
  47. pulumi_gcp/migrationcenter/_inputs.py +500 -0
  48. pulumi_gcp/migrationcenter/outputs.py +562 -0
  49. pulumi_gcp/migrationcenter/preference_set.py +687 -0
  50. pulumi_gcp/monitoring/custom_service.py +4 -2
  51. pulumi_gcp/monitoring/generic_service.py +4 -2
  52. pulumi_gcp/monitoring/get_app_engine_service.py +2 -2
  53. pulumi_gcp/netapp/__init__.py +1 -0
  54. pulumi_gcp/netapp/_inputs.py +275 -0
  55. pulumi_gcp/netapp/outputs.py +290 -0
  56. pulumi_gcp/netapp/volume.py +140 -2
  57. pulumi_gcp/netapp/volume_replication.py +1292 -0
  58. pulumi_gcp/notebooks/instance.py +1 -1
  59. pulumi_gcp/securityposture/_inputs.py +22 -19
  60. pulumi_gcp/securityposture/outputs.py +18 -15
  61. pulumi_gcp/securityposture/posture.py +28 -48
  62. pulumi_gcp/spanner/_inputs.py +20 -0
  63. pulumi_gcp/spanner/database_iam_binding.py +134 -0
  64. pulumi_gcp/spanner/database_iam_member.py +134 -0
  65. pulumi_gcp/spanner/database_iam_policy.py +114 -0
  66. pulumi_gcp/spanner/outputs.py +20 -0
  67. pulumi_gcp/workbench/_inputs.py +157 -2
  68. pulumi_gcp/workbench/instance.py +52 -0
  69. pulumi_gcp/workbench/outputs.py +154 -2
  70. {pulumi_gcp-7.12.0a1709365001.dist-info → pulumi_gcp-7.13.0a1709814369.dist-info}/METADATA +1 -1
  71. {pulumi_gcp-7.12.0a1709365001.dist-info → pulumi_gcp-7.13.0a1709814369.dist-info}/RECORD +73 -60
  72. {pulumi_gcp-7.12.0a1709365001.dist-info → pulumi_gcp-7.13.0a1709814369.dist-info}/WHEEL +0 -0
  73. {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
@@ -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
@@ -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: Optional. The container image before this instance upgrade.
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
- Optional. The container image before this instance upgrade.
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