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.
- pulumi_gcp/__init__.py +102 -0
- pulumi_gcp/accesscontextmanager/__init__.py +1 -0
- pulumi_gcp/accesscontextmanager/_inputs.py +74 -58
- pulumi_gcp/accesscontextmanager/outputs.py +74 -58
- pulumi_gcp/accesscontextmanager/service_perimeter.py +0 -2
- pulumi_gcp/accesscontextmanager/service_perimeter_dry_run_resource.py +345 -0
- pulumi_gcp/accesscontextmanager/service_perimeter_egress_policy.py +80 -0
- pulumi_gcp/accesscontextmanager/service_perimeter_ingress_policy.py +86 -0
- pulumi_gcp/accesscontextmanager/service_perimeter_resource.py +4 -2
- pulumi_gcp/apphub/__init__.py +15 -0
- pulumi_gcp/apphub/_inputs.py +1016 -0
- pulumi_gcp/apphub/application.py +775 -0
- pulumi_gcp/apphub/get_discovered_service.py +180 -0
- pulumi_gcp/apphub/get_discovered_workload.py +180 -0
- pulumi_gcp/apphub/outputs.py +1206 -0
- pulumi_gcp/apphub/service.py +1121 -0
- pulumi_gcp/apphub/service_project_attachment.py +516 -0
- pulumi_gcp/apphub/workload.py +1197 -0
- pulumi_gcp/cloudquota/__init__.py +10 -0
- pulumi_gcp/cloudquota/get_s_quota_info.py +322 -0
- pulumi_gcp/cloudquota/get_s_quota_infos.py +136 -0
- pulumi_gcp/cloudquota/outputs.py +375 -0
- pulumi_gcp/cloudrunv2/_inputs.py +85 -4
- pulumi_gcp/cloudrunv2/get_service.py +11 -1
- pulumi_gcp/cloudrunv2/outputs.py +165 -6
- pulumi_gcp/cloudrunv2/service.py +60 -6
- pulumi_gcp/composer/_inputs.py +16 -0
- pulumi_gcp/composer/outputs.py +23 -0
- pulumi_gcp/compute/_inputs.py +109 -11
- pulumi_gcp/compute/outputs.py +144 -13
- pulumi_gcp/compute/region_network_endpoint_group.py +30 -0
- pulumi_gcp/compute/region_url_map.py +152 -0
- pulumi_gcp/config/__init__.pyi +4 -0
- pulumi_gcp/config/vars.py +8 -0
- pulumi_gcp/dataform/repository.py +4 -74
- pulumi_gcp/firebase/__init__.py +1 -0
- pulumi_gcp/firebase/android_app.py +41 -40
- pulumi_gcp/firebase/app_check_device_check_config.py +572 -0
- pulumi_gcp/firestore/_inputs.py +69 -0
- pulumi_gcp/firestore/database.py +206 -0
- pulumi_gcp/firestore/index.py +34 -48
- pulumi_gcp/firestore/outputs.py +80 -0
- pulumi_gcp/gkeonprem/_inputs.py +1 -3
- pulumi_gcp/gkeonprem/outputs.py +1 -3
- pulumi_gcp/gkeonprem/v_mware_cluster.py +2 -0
- pulumi_gcp/iap/__init__.py +5 -0
- pulumi_gcp/iap/_inputs.py +100 -0
- pulumi_gcp/iap/get_tunnel_dest_group_iam_policy.py +172 -0
- pulumi_gcp/iap/outputs.py +76 -0
- pulumi_gcp/iap/tunnel_dest_group.py +524 -0
- pulumi_gcp/iap/tunnel_dest_group_iam_binding.py +858 -0
- pulumi_gcp/iap/tunnel_dest_group_iam_member.py +858 -0
- pulumi_gcp/iap/tunnel_dest_group_iam_policy.py +760 -0
- pulumi_gcp/kms/__init__.py +1 -0
- pulumi_gcp/kms/_inputs.py +246 -0
- pulumi_gcp/kms/ekm_connection.py +610 -0
- pulumi_gcp/kms/outputs.py +242 -0
- pulumi_gcp/monitoring/_inputs.py +2 -0
- pulumi_gcp/monitoring/outputs.py +2 -0
- pulumi_gcp/networksecurity/__init__.py +1 -0
- pulumi_gcp/networksecurity/firewall_endpoint.py +48 -0
- pulumi_gcp/networksecurity/firewall_endpoint_association.py +753 -0
- pulumi_gcp/notebooks/instance.py +8 -0
- pulumi_gcp/orgpolicy/policy.py +2 -2
- pulumi_gcp/provider.py +40 -0
- pulumi_gcp/pubsub/_inputs.py +108 -0
- pulumi_gcp/pubsub/get_topic.py +11 -1
- pulumi_gcp/pubsub/outputs.py +213 -0
- pulumi_gcp/pubsub/subscription.py +4 -4
- pulumi_gcp/pubsub/topic.py +92 -0
- pulumi_gcp/securityposture/posture.py +2 -2
- pulumi_gcp/securityposture/posture_deployment.py +2 -2
- pulumi_gcp/storage/_inputs.py +72 -15
- pulumi_gcp/storage/bucket.py +54 -0
- pulumi_gcp/storage/get_bucket.py +11 -1
- pulumi_gcp/storage/outputs.py +110 -14
- pulumi_gcp/workstations/_inputs.py +247 -4
- pulumi_gcp/workstations/outputs.py +261 -5
- pulumi_gcp/workstations/workstation_config.py +160 -0
- {pulumi_gcp-7.15.0a1711038061.dist-info → pulumi_gcp-7.16.0.dist-info}/METADATA +1 -1
- {pulumi_gcp-7.15.0a1711038061.dist-info → pulumi_gcp-7.16.0.dist-info}/RECORD +83 -61
- {pulumi_gcp-7.15.0a1711038061.dist-info → pulumi_gcp-7.16.0.dist-info}/WHEEL +0 -0
- {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 == "
|
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:
|
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.
|
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
|
-
|
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.
|
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]:
|