pulumi-gcp 7.15.0a1711038061__py3-none-any.whl → 7.16.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (83) hide show
  1. pulumi_gcp/__init__.py +102 -0
  2. pulumi_gcp/accesscontextmanager/__init__.py +1 -0
  3. pulumi_gcp/accesscontextmanager/_inputs.py +74 -58
  4. pulumi_gcp/accesscontextmanager/outputs.py +74 -58
  5. pulumi_gcp/accesscontextmanager/service_perimeter.py +0 -2
  6. pulumi_gcp/accesscontextmanager/service_perimeter_dry_run_resource.py +345 -0
  7. pulumi_gcp/accesscontextmanager/service_perimeter_egress_policy.py +80 -0
  8. pulumi_gcp/accesscontextmanager/service_perimeter_ingress_policy.py +86 -0
  9. pulumi_gcp/accesscontextmanager/service_perimeter_resource.py +4 -2
  10. pulumi_gcp/apphub/__init__.py +15 -0
  11. pulumi_gcp/apphub/_inputs.py +1016 -0
  12. pulumi_gcp/apphub/application.py +775 -0
  13. pulumi_gcp/apphub/get_discovered_service.py +180 -0
  14. pulumi_gcp/apphub/get_discovered_workload.py +180 -0
  15. pulumi_gcp/apphub/outputs.py +1206 -0
  16. pulumi_gcp/apphub/service.py +1121 -0
  17. pulumi_gcp/apphub/service_project_attachment.py +516 -0
  18. pulumi_gcp/apphub/workload.py +1197 -0
  19. pulumi_gcp/cloudquota/__init__.py +10 -0
  20. pulumi_gcp/cloudquota/get_s_quota_info.py +322 -0
  21. pulumi_gcp/cloudquota/get_s_quota_infos.py +136 -0
  22. pulumi_gcp/cloudquota/outputs.py +375 -0
  23. pulumi_gcp/cloudrunv2/_inputs.py +85 -4
  24. pulumi_gcp/cloudrunv2/get_service.py +11 -1
  25. pulumi_gcp/cloudrunv2/outputs.py +165 -6
  26. pulumi_gcp/cloudrunv2/service.py +60 -6
  27. pulumi_gcp/composer/_inputs.py +16 -0
  28. pulumi_gcp/composer/outputs.py +23 -0
  29. pulumi_gcp/compute/_inputs.py +109 -11
  30. pulumi_gcp/compute/outputs.py +144 -13
  31. pulumi_gcp/compute/region_network_endpoint_group.py +30 -0
  32. pulumi_gcp/compute/region_url_map.py +152 -0
  33. pulumi_gcp/config/__init__.pyi +4 -0
  34. pulumi_gcp/config/vars.py +8 -0
  35. pulumi_gcp/dataform/repository.py +4 -74
  36. pulumi_gcp/firebase/__init__.py +1 -0
  37. pulumi_gcp/firebase/android_app.py +41 -40
  38. pulumi_gcp/firebase/app_check_device_check_config.py +572 -0
  39. pulumi_gcp/firestore/_inputs.py +69 -0
  40. pulumi_gcp/firestore/database.py +206 -0
  41. pulumi_gcp/firestore/index.py +34 -48
  42. pulumi_gcp/firestore/outputs.py +80 -0
  43. pulumi_gcp/gkeonprem/_inputs.py +1 -3
  44. pulumi_gcp/gkeonprem/outputs.py +1 -3
  45. pulumi_gcp/gkeonprem/v_mware_cluster.py +2 -0
  46. pulumi_gcp/iap/__init__.py +5 -0
  47. pulumi_gcp/iap/_inputs.py +100 -0
  48. pulumi_gcp/iap/get_tunnel_dest_group_iam_policy.py +172 -0
  49. pulumi_gcp/iap/outputs.py +76 -0
  50. pulumi_gcp/iap/tunnel_dest_group.py +524 -0
  51. pulumi_gcp/iap/tunnel_dest_group_iam_binding.py +858 -0
  52. pulumi_gcp/iap/tunnel_dest_group_iam_member.py +858 -0
  53. pulumi_gcp/iap/tunnel_dest_group_iam_policy.py +760 -0
  54. pulumi_gcp/kms/__init__.py +1 -0
  55. pulumi_gcp/kms/_inputs.py +246 -0
  56. pulumi_gcp/kms/ekm_connection.py +610 -0
  57. pulumi_gcp/kms/outputs.py +242 -0
  58. pulumi_gcp/monitoring/_inputs.py +2 -0
  59. pulumi_gcp/monitoring/outputs.py +2 -0
  60. pulumi_gcp/networksecurity/__init__.py +1 -0
  61. pulumi_gcp/networksecurity/firewall_endpoint.py +48 -0
  62. pulumi_gcp/networksecurity/firewall_endpoint_association.py +753 -0
  63. pulumi_gcp/notebooks/instance.py +8 -0
  64. pulumi_gcp/orgpolicy/policy.py +2 -2
  65. pulumi_gcp/provider.py +40 -0
  66. pulumi_gcp/pubsub/_inputs.py +108 -0
  67. pulumi_gcp/pubsub/get_topic.py +11 -1
  68. pulumi_gcp/pubsub/outputs.py +213 -0
  69. pulumi_gcp/pubsub/subscription.py +4 -4
  70. pulumi_gcp/pubsub/topic.py +92 -0
  71. pulumi_gcp/securityposture/posture.py +2 -2
  72. pulumi_gcp/securityposture/posture_deployment.py +2 -2
  73. pulumi_gcp/storage/_inputs.py +72 -15
  74. pulumi_gcp/storage/bucket.py +54 -0
  75. pulumi_gcp/storage/get_bucket.py +11 -1
  76. pulumi_gcp/storage/outputs.py +110 -14
  77. pulumi_gcp/workstations/_inputs.py +247 -4
  78. pulumi_gcp/workstations/outputs.py +261 -5
  79. pulumi_gcp/workstations/workstation_config.py +160 -0
  80. {pulumi_gcp-7.15.0a1711038061.dist-info → pulumi_gcp-7.16.0.dist-info}/METADATA +1 -1
  81. {pulumi_gcp-7.15.0a1711038061.dist-info → pulumi_gcp-7.16.0.dist-info}/RECORD +83 -61
  82. {pulumi_gcp-7.15.0a1711038061.dist-info → pulumi_gcp-7.16.0.dist-info}/WHEEL +0 -0
  83. {pulumi_gcp-7.15.0a1711038061.dist-info → pulumi_gcp-7.16.0.dist-info}/top_level.txt +0 -0
@@ -17,9 +17,13 @@ __all__ = [
17
17
  'WorkstationConfigCondition',
18
18
  'WorkstationConfigContainer',
19
19
  'WorkstationConfigEncryptionKey',
20
+ 'WorkstationConfigEphemeralDirectory',
21
+ 'WorkstationConfigEphemeralDirectoryGcePd',
20
22
  'WorkstationConfigHost',
21
23
  'WorkstationConfigHostGceInstance',
22
24
  'WorkstationConfigHostGceInstanceAccelerator',
25
+ 'WorkstationConfigHostGceInstanceBoostConfig',
26
+ 'WorkstationConfigHostGceInstanceBoostConfigAccelerator',
23
27
  'WorkstationConfigHostGceInstanceConfidentialInstanceConfig',
24
28
  'WorkstationConfigHostGceInstanceShieldedInstanceConfig',
25
29
  'WorkstationConfigIamBindingCondition',
@@ -386,6 +390,146 @@ class WorkstationConfigEncryptionKey(dict):
386
390
  return pulumi.get(self, "kms_key_service_account")
387
391
 
388
392
 
393
+ @pulumi.output_type
394
+ class WorkstationConfigEphemeralDirectory(dict):
395
+ @staticmethod
396
+ def __key_warning(key: str):
397
+ suggest = None
398
+ if key == "gcePd":
399
+ suggest = "gce_pd"
400
+ elif key == "mountPath":
401
+ suggest = "mount_path"
402
+
403
+ if suggest:
404
+ pulumi.log.warn(f"Key '{key}' not found in WorkstationConfigEphemeralDirectory. Access the value via the '{suggest}' property getter instead.")
405
+
406
+ def __getitem__(self, key: str) -> Any:
407
+ WorkstationConfigEphemeralDirectory.__key_warning(key)
408
+ return super().__getitem__(key)
409
+
410
+ def get(self, key: str, default = None) -> Any:
411
+ WorkstationConfigEphemeralDirectory.__key_warning(key)
412
+ return super().get(key, default)
413
+
414
+ def __init__(__self__, *,
415
+ gce_pd: Optional['outputs.WorkstationConfigEphemeralDirectoryGcePd'] = None,
416
+ mount_path: Optional[str] = None):
417
+ """
418
+ :param 'WorkstationConfigEphemeralDirectoryGcePdArgs' gce_pd: An EphemeralDirectory backed by a Compute Engine persistent disk.
419
+ Structure is documented below.
420
+ :param str mount_path: Location of this directory in the running workstation.
421
+ """
422
+ if gce_pd is not None:
423
+ pulumi.set(__self__, "gce_pd", gce_pd)
424
+ if mount_path is not None:
425
+ pulumi.set(__self__, "mount_path", mount_path)
426
+
427
+ @property
428
+ @pulumi.getter(name="gcePd")
429
+ def gce_pd(self) -> Optional['outputs.WorkstationConfigEphemeralDirectoryGcePd']:
430
+ """
431
+ An EphemeralDirectory backed by a Compute Engine persistent disk.
432
+ Structure is documented below.
433
+ """
434
+ return pulumi.get(self, "gce_pd")
435
+
436
+ @property
437
+ @pulumi.getter(name="mountPath")
438
+ def mount_path(self) -> Optional[str]:
439
+ """
440
+ Location of this directory in the running workstation.
441
+ """
442
+ return pulumi.get(self, "mount_path")
443
+
444
+
445
+ @pulumi.output_type
446
+ class WorkstationConfigEphemeralDirectoryGcePd(dict):
447
+ @staticmethod
448
+ def __key_warning(key: str):
449
+ suggest = None
450
+ if key == "diskType":
451
+ suggest = "disk_type"
452
+ elif key == "readOnly":
453
+ suggest = "read_only"
454
+ elif key == "sourceImage":
455
+ suggest = "source_image"
456
+ elif key == "sourceSnapshot":
457
+ suggest = "source_snapshot"
458
+
459
+ if suggest:
460
+ pulumi.log.warn(f"Key '{key}' not found in WorkstationConfigEphemeralDirectoryGcePd. Access the value via the '{suggest}' property getter instead.")
461
+
462
+ def __getitem__(self, key: str) -> Any:
463
+ WorkstationConfigEphemeralDirectoryGcePd.__key_warning(key)
464
+ return super().__getitem__(key)
465
+
466
+ def get(self, key: str, default = None) -> Any:
467
+ WorkstationConfigEphemeralDirectoryGcePd.__key_warning(key)
468
+ return super().get(key, default)
469
+
470
+ def __init__(__self__, *,
471
+ disk_type: Optional[str] = None,
472
+ read_only: Optional[bool] = None,
473
+ source_image: Optional[str] = None,
474
+ source_snapshot: Optional[str] = None):
475
+ """
476
+ :param str disk_type: Type of the disk to use. Defaults to `"pd-standard"`.
477
+ :param bool read_only: Whether the disk is read only. If true, the disk may be shared by multiple VMs and `sourceSnapshot` must be set.
478
+ :param str source_image: Name of the disk image to use as the source for the disk.
479
+ Must be empty `sourceSnapshot` is set.
480
+ Updating `sourceImage` will update content in the ephemeral directory after the workstation is restarted.
481
+ :param str source_snapshot: Name of the snapshot to use as the source for the disk.
482
+ Must be empty if `sourceImage` is set.
483
+ Must be empty if `read_only` is false.
484
+ Updating `source_snapshot` will update content in the ephemeral directory after the workstation is restarted.
485
+ """
486
+ if disk_type is not None:
487
+ pulumi.set(__self__, "disk_type", disk_type)
488
+ if read_only is not None:
489
+ pulumi.set(__self__, "read_only", read_only)
490
+ if source_image is not None:
491
+ pulumi.set(__self__, "source_image", source_image)
492
+ if source_snapshot is not None:
493
+ pulumi.set(__self__, "source_snapshot", source_snapshot)
494
+
495
+ @property
496
+ @pulumi.getter(name="diskType")
497
+ def disk_type(self) -> Optional[str]:
498
+ """
499
+ Type of the disk to use. Defaults to `"pd-standard"`.
500
+ """
501
+ return pulumi.get(self, "disk_type")
502
+
503
+ @property
504
+ @pulumi.getter(name="readOnly")
505
+ def read_only(self) -> Optional[bool]:
506
+ """
507
+ Whether the disk is read only. If true, the disk may be shared by multiple VMs and `sourceSnapshot` must be set.
508
+ """
509
+ return pulumi.get(self, "read_only")
510
+
511
+ @property
512
+ @pulumi.getter(name="sourceImage")
513
+ def source_image(self) -> Optional[str]:
514
+ """
515
+ Name of the disk image to use as the source for the disk.
516
+ Must be empty `sourceSnapshot` is set.
517
+ Updating `sourceImage` will update content in the ephemeral directory after the workstation is restarted.
518
+ """
519
+ return pulumi.get(self, "source_image")
520
+
521
+ @property
522
+ @pulumi.getter(name="sourceSnapshot")
523
+ def source_snapshot(self) -> Optional[str]:
524
+ """
525
+ Name of the snapshot to use as the source for the disk.
526
+ Must be empty if `sourceImage` is set.
527
+ Must be empty if `read_only` is false.
528
+ Updating `source_snapshot` will update content in the ephemeral directory after the workstation is restarted.
529
+ """
530
+ return pulumi.get(self, "source_snapshot")
531
+
532
+
389
533
  @pulumi.output_type
390
534
  class WorkstationConfigHost(dict):
391
535
  @staticmethod
@@ -429,7 +573,9 @@ class WorkstationConfigHostGceInstance(dict):
429
573
  @staticmethod
430
574
  def __key_warning(key: str):
431
575
  suggest = None
432
- if key == "bootDiskSizeGb":
576
+ if key == "boostConfigs":
577
+ suggest = "boost_configs"
578
+ elif key == "bootDiskSizeGb":
433
579
  suggest = "boot_disk_size_gb"
434
580
  elif key == "confidentialInstanceConfig":
435
581
  suggest = "confidential_instance_config"
@@ -463,6 +609,7 @@ class WorkstationConfigHostGceInstance(dict):
463
609
 
464
610
  def __init__(__self__, *,
465
611
  accelerators: Optional[Sequence['outputs.WorkstationConfigHostGceInstanceAccelerator']] = None,
612
+ boost_configs: Optional[Sequence['outputs.WorkstationConfigHostGceInstanceBoostConfig']] = None,
466
613
  boot_disk_size_gb: Optional[int] = None,
467
614
  confidential_instance_config: Optional['outputs.WorkstationConfigHostGceInstanceConfidentialInstanceConfig'] = None,
468
615
  disable_public_ip_addresses: Optional[bool] = None,
@@ -477,6 +624,8 @@ class WorkstationConfigHostGceInstance(dict):
477
624
  """
478
625
  :param Sequence['WorkstationConfigHostGceInstanceAcceleratorArgs'] accelerators: An accelerator card attached to the instance.
479
626
  Structure is documented below.
627
+ :param Sequence['WorkstationConfigHostGceInstanceBoostConfigArgs'] boost_configs: A list of the boost configurations that workstations created using this workstation configuration are allowed to use.
628
+ Structure is documented below.
480
629
  :param int boot_disk_size_gb: Size of the boot disk in GB.
481
630
  :param 'WorkstationConfigHostGceInstanceConfidentialInstanceConfigArgs' confidential_instance_config: A set of Compute Engine Confidential VM instance options.
482
631
  Structure is documented below.
@@ -494,6 +643,8 @@ class WorkstationConfigHostGceInstance(dict):
494
643
  """
495
644
  if accelerators is not None:
496
645
  pulumi.set(__self__, "accelerators", accelerators)
646
+ if boost_configs is not None:
647
+ pulumi.set(__self__, "boost_configs", boost_configs)
497
648
  if boot_disk_size_gb is not None:
498
649
  pulumi.set(__self__, "boot_disk_size_gb", boot_disk_size_gb)
499
650
  if confidential_instance_config is not None:
@@ -526,6 +677,15 @@ class WorkstationConfigHostGceInstance(dict):
526
677
  """
527
678
  return pulumi.get(self, "accelerators")
528
679
 
680
+ @property
681
+ @pulumi.getter(name="boostConfigs")
682
+ def boost_configs(self) -> Optional[Sequence['outputs.WorkstationConfigHostGceInstanceBoostConfig']]:
683
+ """
684
+ A list of the boost configurations that workstations created using this workstation configuration are allowed to use.
685
+ Structure is documented below.
686
+ """
687
+ return pulumi.get(self, "boost_configs")
688
+
529
689
  @property
530
690
  @pulumi.getter(name="bootDiskSizeGb")
531
691
  def boot_disk_size_gb(self) -> Optional[int]:
@@ -647,6 +807,96 @@ class WorkstationConfigHostGceInstanceAccelerator(dict):
647
807
  return pulumi.get(self, "type")
648
808
 
649
809
 
810
+ @pulumi.output_type
811
+ class WorkstationConfigHostGceInstanceBoostConfig(dict):
812
+ @staticmethod
813
+ def __key_warning(key: str):
814
+ suggest = None
815
+ if key == "machineType":
816
+ suggest = "machine_type"
817
+
818
+ if suggest:
819
+ pulumi.log.warn(f"Key '{key}' not found in WorkstationConfigHostGceInstanceBoostConfig. Access the value via the '{suggest}' property getter instead.")
820
+
821
+ def __getitem__(self, key: str) -> Any:
822
+ WorkstationConfigHostGceInstanceBoostConfig.__key_warning(key)
823
+ return super().__getitem__(key)
824
+
825
+ def get(self, key: str, default = None) -> Any:
826
+ WorkstationConfigHostGceInstanceBoostConfig.__key_warning(key)
827
+ return super().get(key, default)
828
+
829
+ def __init__(__self__, *,
830
+ id: str,
831
+ accelerators: Optional[Sequence['outputs.WorkstationConfigHostGceInstanceBoostConfigAccelerator']] = None,
832
+ machine_type: Optional[str] = None):
833
+ """
834
+ :param str id: The id to be used for the boost config.
835
+ :param Sequence['WorkstationConfigHostGceInstanceBoostConfigAcceleratorArgs'] accelerators: An accelerator card attached to the boost instance.
836
+ Structure is documented below.
837
+ :param str machine_type: The type of machine that boosted VM instances will use—for example, e2-standard-4. For more information about machine types that Cloud Workstations supports, see the list of available machine types https://cloud.google.com/workstations/docs/available-machine-types. Defaults to e2-standard-4.
838
+ """
839
+ pulumi.set(__self__, "id", id)
840
+ if accelerators is not None:
841
+ pulumi.set(__self__, "accelerators", accelerators)
842
+ if machine_type is not None:
843
+ pulumi.set(__self__, "machine_type", machine_type)
844
+
845
+ @property
846
+ @pulumi.getter
847
+ def id(self) -> str:
848
+ """
849
+ The id to be used for the boost config.
850
+ """
851
+ return pulumi.get(self, "id")
852
+
853
+ @property
854
+ @pulumi.getter
855
+ def accelerators(self) -> Optional[Sequence['outputs.WorkstationConfigHostGceInstanceBoostConfigAccelerator']]:
856
+ """
857
+ An accelerator card attached to the boost instance.
858
+ Structure is documented below.
859
+ """
860
+ return pulumi.get(self, "accelerators")
861
+
862
+ @property
863
+ @pulumi.getter(name="machineType")
864
+ def machine_type(self) -> Optional[str]:
865
+ """
866
+ The type of machine that boosted VM instances will use—for example, e2-standard-4. For more information about machine types that Cloud Workstations supports, see the list of available machine types https://cloud.google.com/workstations/docs/available-machine-types. Defaults to e2-standard-4.
867
+ """
868
+ return pulumi.get(self, "machine_type")
869
+
870
+
871
+ @pulumi.output_type
872
+ class WorkstationConfigHostGceInstanceBoostConfigAccelerator(dict):
873
+ def __init__(__self__, *,
874
+ count: int,
875
+ type: str):
876
+ """
877
+ :param int count: Number of accelerator cards exposed to the instance.
878
+ :param str type: Type of accelerator resource to attach to the instance, for example, "nvidia-tesla-p100".
879
+ """
880
+ pulumi.set(__self__, "count", count)
881
+ pulumi.set(__self__, "type", type)
882
+
883
+ @property
884
+ @pulumi.getter
885
+ def count(self) -> int:
886
+ """
887
+ Number of accelerator cards exposed to the instance.
888
+ """
889
+ return pulumi.get(self, "count")
890
+
891
+ @property
892
+ @pulumi.getter
893
+ def type(self) -> str:
894
+ """
895
+ Type of accelerator resource to attach to the instance, for example, "nvidia-tesla-p100".
896
+ """
897
+ return pulumi.get(self, "type")
898
+
899
+
650
900
  @pulumi.output_type
651
901
  class WorkstationConfigHostGceInstanceConfidentialInstanceConfig(dict):
652
902
  @staticmethod
@@ -887,13 +1137,16 @@ class WorkstationConfigPersistentDirectoryGcePd(dict):
887
1137
  size_gb: Optional[int] = None,
888
1138
  source_snapshot: Optional[str] = None):
889
1139
  """
890
- :param str disk_type: The type of the persistent disk for the home directory. Defaults to `pd-standard`.
1140
+ :param str disk_type: Type of the disk to use. Defaults to `"pd-standard"`.
891
1141
  :param str fs_type: Type of file system that the disk should be formatted with. The workstation image must support this file system type. Must be empty if `sourceSnapshot` is set. Defaults to `ext4`.
892
1142
  :param str reclaim_policy: Whether the persistent disk should be deleted when the workstation is deleted. Valid values are `DELETE` and `RETAIN`. Defaults to `DELETE`.
893
1143
  Possible values are: `DELETE`, `RETAIN`.
894
1144
  :param int size_gb: The GB capacity of a persistent home directory for each workstation created with this configuration. Must be empty if `sourceSnapshot` is set.
895
1145
  Valid values are `10`, `50`, `100`, `200`, `500`, or `1000`. Defaults to `200`. If less than `200` GB, the `diskType` must be `pd-balanced` or `pd-ssd`.
896
- :param str source_snapshot: Name of the snapshot to use as the source for the disk. This can be the snapshot's `self_link`, `id`, or a string in the format of `projects/{project}/global/snapshots/{snapshot}`. If set, `sizeGb` and `fsType` must be empty. Can only be updated if it has an existing value.
1146
+ :param str source_snapshot: Name of the snapshot to use as the source for the disk.
1147
+ Must be empty if `sourceImage` is set.
1148
+ Must be empty if `read_only` is false.
1149
+ Updating `source_snapshot` will update content in the ephemeral directory after the workstation is restarted.
897
1150
  """
898
1151
  if disk_type is not None:
899
1152
  pulumi.set(__self__, "disk_type", disk_type)
@@ -910,7 +1163,7 @@ class WorkstationConfigPersistentDirectoryGcePd(dict):
910
1163
  @pulumi.getter(name="diskType")
911
1164
  def disk_type(self) -> Optional[str]:
912
1165
  """
913
- The type of the persistent disk for the home directory. Defaults to `pd-standard`.
1166
+ Type of the disk to use. Defaults to `"pd-standard"`.
914
1167
  """
915
1168
  return pulumi.get(self, "disk_type")
916
1169
 
@@ -944,7 +1197,10 @@ class WorkstationConfigPersistentDirectoryGcePd(dict):
944
1197
  @pulumi.getter(name="sourceSnapshot")
945
1198
  def source_snapshot(self) -> Optional[str]:
946
1199
  """
947
- Name of the snapshot to use as the source for the disk. This can be the snapshot's `self_link`, `id`, or a string in the format of `projects/{project}/global/snapshots/{snapshot}`. If set, `sizeGb` and `fsType` must be empty. Can only be updated if it has an existing value.
1200
+ Name of the snapshot to use as the source for the disk.
1201
+ Must be empty if `sourceImage` is set.
1202
+ Must be empty if `read_only` is false.
1203
+ Updating `source_snapshot` will update content in the ephemeral directory after the workstation is restarted.
948
1204
  """
949
1205
  return pulumi.get(self, "source_snapshot")
950
1206
 
@@ -25,6 +25,7 @@ class WorkstationConfigArgs:
25
25
  display_name: Optional[pulumi.Input[str]] = None,
26
26
  enable_audit_agent: Optional[pulumi.Input[bool]] = None,
27
27
  encryption_key: Optional[pulumi.Input['WorkstationConfigEncryptionKeyArgs']] = None,
28
+ ephemeral_directories: Optional[pulumi.Input[Sequence[pulumi.Input['WorkstationConfigEphemeralDirectoryArgs']]]] = None,
28
29
  host: Optional[pulumi.Input['WorkstationConfigHostArgs']] = None,
29
30
  idle_timeout: Optional[pulumi.Input[str]] = None,
30
31
  labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
@@ -54,6 +55,8 @@ class WorkstationConfigArgs:
54
55
  If the customer-managed encryption key is rotated, when the workstation instance is stopped, the system attempts to recreate the persistent disk with the new version of the key. Be sure to keep older versions of the key until the persistent disk is recreated. Otherwise, data on the persistent disk will be lost.
55
56
  If the encryption key is revoked, the workstation session will automatically be stopped within 7 hours.
56
57
  Structure is documented below.
58
+ :param pulumi.Input[Sequence[pulumi.Input['WorkstationConfigEphemeralDirectoryArgs']]] ephemeral_directories: Ephemeral directories which won't persist across workstation sessions.
59
+ Structure is documented below.
57
60
  :param pulumi.Input['WorkstationConfigHostArgs'] host: Runtime host for a workstation.
58
61
  Structure is documented below.
59
62
  :param pulumi.Input[str] idle_timeout: How long to wait before automatically stopping an instance that hasn't recently received any user traffic. A value of 0 indicates that this instance should never time out from idleness. Defaults to 20 minutes.
@@ -87,6 +90,8 @@ class WorkstationConfigArgs:
87
90
  pulumi.set(__self__, "enable_audit_agent", enable_audit_agent)
88
91
  if encryption_key is not None:
89
92
  pulumi.set(__self__, "encryption_key", encryption_key)
93
+ if ephemeral_directories is not None:
94
+ pulumi.set(__self__, "ephemeral_directories", ephemeral_directories)
90
95
  if host is not None:
91
96
  pulumi.set(__self__, "host", host)
92
97
  if idle_timeout is not None:
@@ -222,6 +227,19 @@ class WorkstationConfigArgs:
222
227
  def encryption_key(self, value: Optional[pulumi.Input['WorkstationConfigEncryptionKeyArgs']]):
223
228
  pulumi.set(self, "encryption_key", value)
224
229
 
230
+ @property
231
+ @pulumi.getter(name="ephemeralDirectories")
232
+ def ephemeral_directories(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['WorkstationConfigEphemeralDirectoryArgs']]]]:
233
+ """
234
+ Ephemeral directories which won't persist across workstation sessions.
235
+ Structure is documented below.
236
+ """
237
+ return pulumi.get(self, "ephemeral_directories")
238
+
239
+ @ephemeral_directories.setter
240
+ def ephemeral_directories(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['WorkstationConfigEphemeralDirectoryArgs']]]]):
241
+ pulumi.set(self, "ephemeral_directories", value)
242
+
225
243
  @property
226
244
  @pulumi.getter
227
245
  def host(self) -> Optional[pulumi.Input['WorkstationConfigHostArgs']]:
@@ -342,6 +360,7 @@ class _WorkstationConfigState:
342
360
  effective_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
343
361
  enable_audit_agent: Optional[pulumi.Input[bool]] = None,
344
362
  encryption_key: Optional[pulumi.Input['WorkstationConfigEncryptionKeyArgs']] = None,
363
+ ephemeral_directories: Optional[pulumi.Input[Sequence[pulumi.Input['WorkstationConfigEphemeralDirectoryArgs']]]] = None,
345
364
  etag: Optional[pulumi.Input[str]] = None,
346
365
  host: Optional[pulumi.Input['WorkstationConfigHostArgs']] = None,
347
366
  idle_timeout: Optional[pulumi.Input[str]] = None,
@@ -379,6 +398,8 @@ class _WorkstationConfigState:
379
398
  If the customer-managed encryption key is rotated, when the workstation instance is stopped, the system attempts to recreate the persistent disk with the new version of the key. Be sure to keep older versions of the key until the persistent disk is recreated. Otherwise, data on the persistent disk will be lost.
380
399
  If the encryption key is revoked, the workstation session will automatically be stopped within 7 hours.
381
400
  Structure is documented below.
401
+ :param pulumi.Input[Sequence[pulumi.Input['WorkstationConfigEphemeralDirectoryArgs']]] ephemeral_directories: Ephemeral directories which won't persist across workstation sessions.
402
+ Structure is documented below.
382
403
  :param pulumi.Input[str] etag: Checksum computed by the server.
383
404
  May be sent on update and delete requests to ensure that the client has an up-to-date value before proceeding.
384
405
  :param pulumi.Input['WorkstationConfigHostArgs'] host: Runtime host for a workstation.
@@ -431,6 +452,8 @@ class _WorkstationConfigState:
431
452
  pulumi.set(__self__, "enable_audit_agent", enable_audit_agent)
432
453
  if encryption_key is not None:
433
454
  pulumi.set(__self__, "encryption_key", encryption_key)
455
+ if ephemeral_directories is not None:
456
+ pulumi.set(__self__, "ephemeral_directories", ephemeral_directories)
434
457
  if etag is not None:
435
458
  pulumi.set(__self__, "etag", etag)
436
459
  if host is not None:
@@ -603,6 +626,19 @@ class _WorkstationConfigState:
603
626
  def encryption_key(self, value: Optional[pulumi.Input['WorkstationConfigEncryptionKeyArgs']]):
604
627
  pulumi.set(self, "encryption_key", value)
605
628
 
629
+ @property
630
+ @pulumi.getter(name="ephemeralDirectories")
631
+ def ephemeral_directories(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['WorkstationConfigEphemeralDirectoryArgs']]]]:
632
+ """
633
+ Ephemeral directories which won't persist across workstation sessions.
634
+ Structure is documented below.
635
+ """
636
+ return pulumi.get(self, "ephemeral_directories")
637
+
638
+ @ephemeral_directories.setter
639
+ def ephemeral_directories(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['WorkstationConfigEphemeralDirectoryArgs']]]]):
640
+ pulumi.set(self, "ephemeral_directories", value)
641
+
606
642
  @property
607
643
  @pulumi.getter
608
644
  def etag(self) -> Optional[pulumi.Input[str]]:
@@ -809,6 +845,7 @@ class WorkstationConfig(pulumi.CustomResource):
809
845
  display_name: Optional[pulumi.Input[str]] = None,
810
846
  enable_audit_agent: Optional[pulumi.Input[bool]] = None,
811
847
  encryption_key: Optional[pulumi.Input[pulumi.InputType['WorkstationConfigEncryptionKeyArgs']]] = None,
848
+ ephemeral_directories: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['WorkstationConfigEphemeralDirectoryArgs']]]]] = None,
812
849
  host: Optional[pulumi.Input[pulumi.InputType['WorkstationConfigHostArgs']]] = None,
813
850
  idle_timeout: Optional[pulumi.Input[str]] = None,
814
851
  labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
@@ -1103,6 +1140,59 @@ class WorkstationConfig(pulumi.CustomResource):
1103
1140
  ))
1104
1141
  ```
1105
1142
  <!--End PulumiCodeChooser -->
1143
+ ### Workstation Config Boost
1144
+
1145
+ <!--Start PulumiCodeChooser -->
1146
+ ```python
1147
+ import pulumi
1148
+ import pulumi_gcp as gcp
1149
+
1150
+ default = gcp.compute.Network("default",
1151
+ name="workstation-cluster",
1152
+ auto_create_subnetworks=False)
1153
+ default_subnetwork = gcp.compute.Subnetwork("default",
1154
+ name="workstation-cluster",
1155
+ ip_cidr_range="10.0.0.0/24",
1156
+ region="us-central1",
1157
+ network=default.name)
1158
+ default_workstation_cluster = gcp.workstations.WorkstationCluster("default",
1159
+ workstation_cluster_id="workstation-cluster",
1160
+ network=default.id,
1161
+ subnetwork=default_subnetwork.id,
1162
+ location="us-central1",
1163
+ labels={
1164
+ "label": "key",
1165
+ },
1166
+ annotations={
1167
+ "label-one": "value-one",
1168
+ })
1169
+ default_workstation_config = gcp.workstations.WorkstationConfig("default",
1170
+ workstation_config_id="workstation-config",
1171
+ workstation_cluster_id=default_workstation_cluster.workstation_cluster_id,
1172
+ location="us-central1",
1173
+ host=gcp.workstations.WorkstationConfigHostArgs(
1174
+ gce_instance=gcp.workstations.WorkstationConfigHostGceInstanceArgs(
1175
+ machine_type="e2-standard-4",
1176
+ boot_disk_size_gb=35,
1177
+ disable_public_ip_addresses=True,
1178
+ boost_configs=[
1179
+ gcp.workstations.WorkstationConfigHostGceInstanceBoostConfigArgs(
1180
+ id="boost-1",
1181
+ machine_type="n1-standard-2",
1182
+ accelerators=[gcp.workstations.WorkstationConfigHostGceInstanceBoostConfigAcceleratorArgs(
1183
+ type="nvidia-tesla-t4",
1184
+ count=1,
1185
+ )],
1186
+ ),
1187
+ gcp.workstations.WorkstationConfigHostGceInstanceBoostConfigArgs(
1188
+ id="boost-1",
1189
+ machine_type="e2-standard-2",
1190
+ ),
1191
+ ],
1192
+ ),
1193
+ ))
1194
+ ```
1195
+ <!--End PulumiCodeChooser -->
1106
1196
  ### Workstation Config Encryption Key
1107
1197
 
1108
1198
  <!--Start PulumiCodeChooser -->
@@ -1199,6 +1289,8 @@ class WorkstationConfig(pulumi.CustomResource):
1199
1289
  If the customer-managed encryption key is rotated, when the workstation instance is stopped, the system attempts to recreate the persistent disk with the new version of the key. Be sure to keep older versions of the key until the persistent disk is recreated. Otherwise, data on the persistent disk will be lost.
1200
1290
  If the encryption key is revoked, the workstation session will automatically be stopped within 7 hours.
1201
1291
  Structure is documented below.
1292
+ :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['WorkstationConfigEphemeralDirectoryArgs']]]] ephemeral_directories: Ephemeral directories which won't persist across workstation sessions.
1293
+ Structure is documented below.
1202
1294
  :param pulumi.Input[pulumi.InputType['WorkstationConfigHostArgs']] host: Runtime host for a workstation.
1203
1295
  Structure is documented below.
1204
1296
  :param pulumi.Input[str] idle_timeout: How long to wait before automatically stopping an instance that hasn't recently received any user traffic. A value of 0 indicates that this instance should never time out from idleness. Defaults to 20 minutes.
@@ -1511,6 +1603,59 @@ class WorkstationConfig(pulumi.CustomResource):
1511
1603
  ))
1512
1604
  ```
1513
1605
  <!--End PulumiCodeChooser -->
1606
+ ### Workstation Config Boost
1607
+
1608
+ <!--Start PulumiCodeChooser -->
1609
+ ```python
1610
+ import pulumi
1611
+ import pulumi_gcp as gcp
1612
+
1613
+ default = gcp.compute.Network("default",
1614
+ name="workstation-cluster",
1615
+ auto_create_subnetworks=False)
1616
+ default_subnetwork = gcp.compute.Subnetwork("default",
1617
+ name="workstation-cluster",
1618
+ ip_cidr_range="10.0.0.0/24",
1619
+ region="us-central1",
1620
+ network=default.name)
1621
+ default_workstation_cluster = gcp.workstations.WorkstationCluster("default",
1622
+ workstation_cluster_id="workstation-cluster",
1623
+ network=default.id,
1624
+ subnetwork=default_subnetwork.id,
1625
+ location="us-central1",
1626
+ labels={
1627
+ "label": "key",
1628
+ },
1629
+ annotations={
1630
+ "label-one": "value-one",
1631
+ })
1632
+ default_workstation_config = gcp.workstations.WorkstationConfig("default",
1633
+ workstation_config_id="workstation-config",
1634
+ workstation_cluster_id=default_workstation_cluster.workstation_cluster_id,
1635
+ location="us-central1",
1636
+ host=gcp.workstations.WorkstationConfigHostArgs(
1637
+ gce_instance=gcp.workstations.WorkstationConfigHostGceInstanceArgs(
1638
+ machine_type="e2-standard-4",
1639
+ boot_disk_size_gb=35,
1640
+ disable_public_ip_addresses=True,
1641
+ boost_configs=[
1642
+ gcp.workstations.WorkstationConfigHostGceInstanceBoostConfigArgs(
1643
+ id="boost-1",
1644
+ machine_type="n1-standard-2",
1645
+ accelerators=[gcp.workstations.WorkstationConfigHostGceInstanceBoostConfigAcceleratorArgs(
1646
+ type="nvidia-tesla-t4",
1647
+ count=1,
1648
+ )],
1649
+ ),
1650
+ gcp.workstations.WorkstationConfigHostGceInstanceBoostConfigArgs(
1651
+ id="boost-1",
1652
+ machine_type="e2-standard-2",
1653
+ ),
1654
+ ],
1655
+ ),
1656
+ ))
1657
+ ```
1658
+ <!--End PulumiCodeChooser -->
1514
1659
  ### Workstation Config Encryption Key
1515
1660
 
1516
1661
  <!--Start PulumiCodeChooser -->
@@ -1613,6 +1758,7 @@ class WorkstationConfig(pulumi.CustomResource):
1613
1758
  display_name: Optional[pulumi.Input[str]] = None,
1614
1759
  enable_audit_agent: Optional[pulumi.Input[bool]] = None,
1615
1760
  encryption_key: Optional[pulumi.Input[pulumi.InputType['WorkstationConfigEncryptionKeyArgs']]] = None,
1761
+ ephemeral_directories: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['WorkstationConfigEphemeralDirectoryArgs']]]]] = None,
1616
1762
  host: Optional[pulumi.Input[pulumi.InputType['WorkstationConfigHostArgs']]] = None,
1617
1763
  idle_timeout: Optional[pulumi.Input[str]] = None,
1618
1764
  labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
@@ -1639,6 +1785,7 @@ class WorkstationConfig(pulumi.CustomResource):
1639
1785
  __props__.__dict__["display_name"] = display_name
1640
1786
  __props__.__dict__["enable_audit_agent"] = enable_audit_agent
1641
1787
  __props__.__dict__["encryption_key"] = encryption_key
1788
+ __props__.__dict__["ephemeral_directories"] = ephemeral_directories
1642
1789
  __props__.__dict__["host"] = host
1643
1790
  __props__.__dict__["idle_timeout"] = idle_timeout
1644
1791
  __props__.__dict__["labels"] = labels
@@ -1688,6 +1835,7 @@ class WorkstationConfig(pulumi.CustomResource):
1688
1835
  effective_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
1689
1836
  enable_audit_agent: Optional[pulumi.Input[bool]] = None,
1690
1837
  encryption_key: Optional[pulumi.Input[pulumi.InputType['WorkstationConfigEncryptionKeyArgs']]] = None,
1838
+ ephemeral_directories: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['WorkstationConfigEphemeralDirectoryArgs']]]]] = None,
1691
1839
  etag: Optional[pulumi.Input[str]] = None,
1692
1840
  host: Optional[pulumi.Input[pulumi.InputType['WorkstationConfigHostArgs']]] = None,
1693
1841
  idle_timeout: Optional[pulumi.Input[str]] = None,
@@ -1730,6 +1878,8 @@ class WorkstationConfig(pulumi.CustomResource):
1730
1878
  If the customer-managed encryption key is rotated, when the workstation instance is stopped, the system attempts to recreate the persistent disk with the new version of the key. Be sure to keep older versions of the key until the persistent disk is recreated. Otherwise, data on the persistent disk will be lost.
1731
1879
  If the encryption key is revoked, the workstation session will automatically be stopped within 7 hours.
1732
1880
  Structure is documented below.
1881
+ :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['WorkstationConfigEphemeralDirectoryArgs']]]] ephemeral_directories: Ephemeral directories which won't persist across workstation sessions.
1882
+ Structure is documented below.
1733
1883
  :param pulumi.Input[str] etag: Checksum computed by the server.
1734
1884
  May be sent on update and delete requests to ensure that the client has an up-to-date value before proceeding.
1735
1885
  :param pulumi.Input[pulumi.InputType['WorkstationConfigHostArgs']] host: Runtime host for a workstation.
@@ -1775,6 +1925,7 @@ class WorkstationConfig(pulumi.CustomResource):
1775
1925
  __props__.__dict__["effective_labels"] = effective_labels
1776
1926
  __props__.__dict__["enable_audit_agent"] = enable_audit_agent
1777
1927
  __props__.__dict__["encryption_key"] = encryption_key
1928
+ __props__.__dict__["ephemeral_directories"] = ephemeral_directories
1778
1929
  __props__.__dict__["etag"] = etag
1779
1930
  __props__.__dict__["host"] = host
1780
1931
  __props__.__dict__["idle_timeout"] = idle_timeout
@@ -1889,6 +2040,15 @@ class WorkstationConfig(pulumi.CustomResource):
1889
2040
  """
1890
2041
  return pulumi.get(self, "encryption_key")
1891
2042
 
2043
+ @property
2044
+ @pulumi.getter(name="ephemeralDirectories")
2045
+ def ephemeral_directories(self) -> pulumi.Output[Sequence['outputs.WorkstationConfigEphemeralDirectory']]:
2046
+ """
2047
+ Ephemeral directories which won't persist across workstation sessions.
2048
+ Structure is documented below.
2049
+ """
2050
+ return pulumi.get(self, "ephemeral_directories")
2051
+
1892
2052
  @property
1893
2053
  @pulumi.getter
1894
2054
  def etag(self) -> pulumi.Output[str]:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: pulumi_gcp
3
- Version: 7.15.0a1711038061
3
+ Version: 7.16.0
4
4
  Summary: A Pulumi package for creating and managing Google Cloud Platform resources.
5
5
  License: Apache-2.0
6
6
  Project-URL: Homepage, https://pulumi.io