Class: Google::Cloud::Workstations::V1beta::WorkstationConfig
- Inherits:
-
Object
- Object
- Google::Cloud::Workstations::V1beta::WorkstationConfig
- Extended by:
- Protobuf::MessageExts::ClassMethods
- Includes:
- Protobuf::MessageExts
- Defined in:
- proto_docs/google/cloud/workstations/v1beta/workstations.rb
Overview
A workstation configuration resource in the Cloud Workstations API.
Workstation configurations act as templates for workstations. The workstation configuration defines details such as the workstation virtual machine (VM) instance type, persistent storage, container image defining environment, which IDE or Code Editor to use, and more. Administrators and platform teams can also use Identity and Access Management (IAM) rules to grant access to teams or to individual developers.
Defined Under Namespace
Classes: AnnotationsEntry, Container, CustomerEncryptionKey, EphemeralDirectory, Host, HttpOptions, LabelsEntry, PersistentDirectory, PortRange, ReadinessCheck
Instance Attribute Summary collapse
-
#allowed_ports ⇒ ::Array<::Google::Cloud::Workstations::V1beta::WorkstationConfig::PortRange>
Optional.
-
#annotations ⇒ ::Google::Protobuf::Map{::String => ::String}
Optional.
-
#conditions ⇒ ::Array<::Google::Rpc::Status>
readonly
Output only.
-
#container ⇒ ::Google::Cloud::Workstations::V1beta::WorkstationConfig::Container
Optional.
-
#create_time ⇒ ::Google::Protobuf::Timestamp
readonly
Output only.
-
#degraded ⇒ ::Boolean
readonly
Output only.
-
#delete_time ⇒ ::Google::Protobuf::Timestamp
readonly
Output only.
-
#disable_tcp_connections ⇒ ::Boolean
Optional.
-
#display_name ⇒ ::String
Optional.
-
#enable_audit_agent ⇒ ::Boolean
Optional.
-
#enable_pushing_credentials ⇒ ::Boolean
Optional.
-
#encryption_key ⇒ ::Google::Cloud::Workstations::V1beta::WorkstationConfig::CustomerEncryptionKey
Immutable.
-
#ephemeral_directories ⇒ ::Array<::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory>
Optional.
-
#etag ⇒ ::String
Optional.
-
#grant_workstation_admin_role_on_create ⇒ ::Boolean
Optional.
-
#host ⇒ ::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host
Optional.
-
#http_options ⇒ ::Google::Cloud::Workstations::V1beta::WorkstationConfig::HttpOptions
Optional.
-
#idle_timeout ⇒ ::Google::Protobuf::Duration
Optional.
-
#labels ⇒ ::Google::Protobuf::Map{::String => ::String}
Optional.
-
#max_usable_workstations ⇒ ::Integer
Optional.
-
#name ⇒ ::String
Identifier.
-
#persistent_directories ⇒ ::Array<::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory>
Optional.
-
#readiness_checks ⇒ ::Array<::Google::Cloud::Workstations::V1beta::WorkstationConfig::ReadinessCheck>
Optional.
-
#reconciling ⇒ ::Boolean
readonly
Output only.
-
#replica_zones ⇒ ::Array<::String>
Optional.
-
#running_timeout ⇒ ::Google::Protobuf::Duration
Optional.
-
#satisfies_pzi ⇒ ::Boolean
readonly
Output only.
-
#satisfies_pzs ⇒ ::Boolean
readonly
Output only.
-
#uid ⇒ ::String
readonly
Output only.
-
#update_time ⇒ ::Google::Protobuf::Timestamp
readonly
Output only.
Instance Attribute Details
#allowed_ports ⇒ ::Array<::Google::Cloud::Workstations::V1beta::WorkstationConfig::PortRange>
Returns Optional. A list of PortRanges specifying single ports or ranges of ports that are externally accessible in the workstation. Allowed ports must be one of 22, 80, or within range 1024-65535. If not specified defaults to ports 22, 80, and ports 1024-65535.
420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 |
# File 'proto_docs/google/cloud/workstations/v1beta/workstations.rb', line 420 class WorkstationConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # Runtime host for a workstation. # @!attribute [rw] gce_instance # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance] # Specifies a Compute Engine instance as the host. class Host include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # A runtime using a Compute Engine instance. # @!attribute [rw] machine_type # @return [::String] # Optional. The type of machine to use for VM instances—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). # @!attribute [rw] service_account # @return [::String] # Optional. The email address of the service account for Cloud # Workstations VMs created with this configuration. When specified, be # sure that the service account has `logging.logEntries.create` and # `monitoring.timeSeries.create` permissions on the project so it can # write logs out to Cloud Logging. If using a custom container image, the # service account must have [Artifact Registry # Reader](https://cloud.google.com/artifact-registry/docs/access-control#roles) # permission to pull the specified image. # # If you as the administrator want to be able to `ssh` into the # underlying VM, you need to set this value to a service account # for which you have the `iam.serviceAccounts.actAs` permission. # Conversely, if you don't want anyone to be able to `ssh` into the # underlying VM, use a service account where no one has that # permission. # # If not set, VMs run with a service account provided by the # Cloud Workstations service, and the image must be publicly # accessible. # @!attribute [rw] service_account_scopes # @return [::Array<::String>] # Optional. Scopes to grant to the # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance#service_account service_account}. # When specified, users of workstations under this configuration must # have `iam.serviceAccounts.actAs` on the service account. # @!attribute [rw] tags # @return [::Array<::String>] # Optional. Network tags to add to the Compute Engine VMs backing the # workstations. This option applies # [network # tags](https://cloud.google.com/vpc/docs/add-remove-network-tags) to VMs # created with this configuration. These network tags enable the creation # of [firewall # rules](https://cloud.google.com/workstations/docs/configure-firewall-rules). # @!attribute [rw] pool_size # @return [::Integer] # Optional. The number of VMs that the system should keep idle so that # new workstations can be started quickly for new users. Defaults to `0` # in the API. # @!attribute [r] pooled_instances # @return [::Integer] # Output only. Number of instances currently available in the pool for # faster workstation startup. # @!attribute [rw] disable_public_ip_addresses # @return [::Boolean] # Optional. When set to true, disables public IP addresses for VMs. If # you disable public IP addresses, you must set up Private Google Access # or Cloud NAT on your network. If you use Private Google Access and you # use `private.googleapis.com` or `restricted.googleapis.com` for # Container Registry and Artifact Registry, make sure that you set # up DNS records for domains `*.gcr.io` and `*.pkg.dev`. # Defaults to false (VMs have public IP addresses). # @!attribute [rw] enable_nested_virtualization # @return [::Boolean] # Optional. Whether to enable nested virtualization on Cloud Workstations # VMs created using this workstation configuration. # # Defaults to false. # # Nested virtualization lets you run virtual machine (VM) instances # inside your workstation. Before enabling nested virtualization, # consider the following important considerations. Cloud Workstations # instances are subject to the [same restrictions as Compute Engine # instances](https://cloud.google.com/compute/docs/instances/nested-virtualization/overview#restrictions): # # * **Organization policy**: projects, folders, or # organizations may be restricted from creating nested VMs if the # **Disable VM nested virtualization** constraint is enforced in # the organization policy. For more information, see the # Compute Engine section, # [Checking whether nested virtualization is # allowed](https://cloud.google.com/compute/docs/instances/nested-virtualization/managing-constraint#checking_whether_nested_virtualization_is_allowed). # * **Performance**: nested VMs might experience a 10% or greater # decrease in performance for workloads that are CPU-bound and # possibly greater than a 10% decrease for workloads that are # input/output bound. # * **Machine Type**: nested virtualization can only be enabled on # workstation configurations that specify a # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance#machine_type machine_type} # in the N1 or N2 machine series. # @!attribute [rw] shielded_instance_config # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::GceShieldedInstanceConfig] # Optional. A set of Compute Engine Shielded instance options. # @!attribute [rw] confidential_instance_config # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::GceConfidentialInstanceConfig] # Optional. A set of Compute Engine Confidential VM instance options. # @!attribute [rw] boot_disk_size_gb # @return [::Integer] # Optional. The size of the boot disk for the VM in gigabytes (GB). # The minimum boot disk size is `30` GB. Defaults to `50` GB. # @!attribute [rw] accelerators # @return [::Array<::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::Accelerator>] # Optional. A list of the type and count of accelerator cards attached to # the instance. # @!attribute [rw] boost_configs # @return [::Array<::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::BoostConfig>] # Optional. A list of the boost configurations that workstations created # using this workstation configuration are allowed to use. If specified, # users will have the option to choose from the list of boost configs # when starting a workstation. # @!attribute [rw] disable_ssh # @return [::Boolean] # Optional. Whether to disable SSH access to the VM. # @!attribute [rw] vm_tags # @return [::Google::Protobuf::Map{::String => ::String}] # Optional. Resource manager tags to be bound to this instance. # Tag keys and values have the same definition as [resource manager # tags](https://cloud.google.com/resource-manager/docs/tags/tags-overview). # Keys must be in the format `tagKeys/{tag_key_id}`, and # values are in the format `tagValues/456`. # @!attribute [rw] reservation_affinity # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::ReservationAffinity] # Optional. # [ReservationAffinity](https://cloud.google.com/compute/docs/instances/reserving-zonal-resources) # specifies a reservation that can be consumed to create VM # instances. If SPECIFIC_RESERVATION is specified, Cloud Workstations # will only create VMs in the zone where the reservation is located. # This would affect availability since the service will no longer be # resilient to zonal outages. If ANY_RESERVATION is specified, creating # reservations in both zones that the config creates VMs in will ensure # higher availability. # **Important Considerations for Reservation Affinity:** # # * This feature is intended for advanced users and requires # familiarity with Google Compute Engine reservations. # * Using reservations incurs charges, regardless of utilization. # * The resources in the pool will consume the specified # reservation. Take this into account when setting the # pool size. # @!attribute [rw] startup_script_uri # @return [::String] # Optional. Link to the startup script stored in Cloud Storage. This # script will be run on the host workstation VM when the VM is created. # The URI must be of the form gs://\\{bucket-name}/\\{object-name}. If # specifying a startup script, the service account must have [Permission # to access the bucket and script file in Cloud # Storage](https://cloud.google.com/storage/docs/access-control/iam-permissions). # Otherwise, the script must be publicly accessible. # Note that the service regularly updates the OS version of the host VM, # and it is the responsibility of the user to ensure the script stays # compatible with the OS version. # @!attribute [rw] instance_metadata # @return [::Google::Protobuf::Map{::String => ::String}] # Optional. Custom metadata to apply to Compute Engine instances. class GceInstance include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # A set of Compute Engine Shielded instance options. # @!attribute [rw] enable_secure_boot # @return [::Boolean] # Optional. Whether the instance has Secure Boot enabled. # @!attribute [rw] enable_vtpm # @return [::Boolean] # Optional. Whether the instance has the vTPM enabled. # @!attribute [rw] enable_integrity_monitoring # @return [::Boolean] # Optional. Whether the instance has integrity monitoring enabled. class GceShieldedInstanceConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # A set of Compute Engine Confidential VM instance options. # @!attribute [rw] enable_confidential_compute # @return [::Boolean] # Optional. Whether the instance has confidential compute enabled. class GceConfidentialInstanceConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # An accelerator card attached to the instance. # @!attribute [rw] type # @return [::String] # Optional. Type of accelerator resource to attach to the instance, for # example, # `"nvidia-tesla-p100"`. # @!attribute [rw] count # @return [::Integer] # Optional. Number of accelerator cards exposed to the instance. class Accelerator include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # A boost configuration is a set of resources that a workstation can use # to increase its performance. If you specify a boost configuration, upon # startup, workstation users can choose to use a VM provisioned under the # boost config by passing the boost config ID in the start request. If # the workstation user does not provide a boost config ID in the start # request, the system will choose a VM from the pool provisioned under # the default config. # @!attribute [rw] id # @return [::String] # Required. The ID to be used for the boost configuration. # @!attribute [rw] machine_type # @return [::String] # Optional. 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`. # @!attribute [rw] accelerators # @return [::Array<::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::Accelerator>] # Optional. A list of the type and count of accelerator cards attached # to the boost instance. Defaults to `none`. # @!attribute [rw] boot_disk_size_gb # @return [::Integer] # Optional. The size of the boot disk for the VM in gigabytes (GB). # The minimum boot disk size is `30` GB. Defaults to `50` GB. # @!attribute [rw] enable_nested_virtualization # @return [::Boolean] # Optional. Whether to enable nested virtualization on boosted Cloud # Workstations VMs running using this boost configuration. # # Defaults to false. # # Nested virtualization lets you run virtual machine (VM) instances # inside your workstation. Before enabling nested virtualization, # consider the following important considerations. Cloud Workstations # instances are subject to the [same restrictions as Compute Engine # instances](https://cloud.google.com/compute/docs/instances/nested-virtualization/overview#restrictions): # # * **Organization policy**: projects, folders, or # organizations may be restricted from creating nested VMs if the # **Disable VM nested virtualization** constraint is enforced in # the organization policy. For more information, see the # Compute Engine section, # [Checking whether nested virtualization is # allowed](https://cloud.google.com/compute/docs/instances/nested-virtualization/managing-constraint#checking_whether_nested_virtualization_is_allowed). # * **Performance**: nested VMs might experience a 10% or greater # decrease in performance for workloads that are CPU-bound and # possibly greater than a 10% decrease for workloads that are # input/output bound. # * **Machine Type**: nested virtualization can only be enabled on # boost configurations that specify a # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::BoostConfig#machine_type machine_type} # in the N1 or N2 machine series. # @!attribute [rw] pool_size # @return [::Integer] # Optional. The number of boost VMs that the system should keep idle so # that workstations can be boosted quickly. Defaults to `0`. # @!attribute [rw] reservation_affinity # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::ReservationAffinity] # Optional. # [ReservationAffinity](https://cloud.google.com/compute/docs/instances/reserving-zonal-resources) # specifies a reservation that can be consumed to create boost VM # instances. If SPECIFIC_RESERVATION is specified, Cloud Workstations # will only create VMs in the zone where the reservation is located. # This would affect availability since the service will no longer be # resilient to zonal outages. If ANY_RESERVATION is specified, creating # reservations in both zones that the config creates VMs in will ensure # higher availability. # **Important Considerations for Reservation Affinity:** # # * This feature is intended for advanced users and requires # familiarity with Google Compute Engine reservations. # * Using reservations incurs charges, regardless of utilization. # * The resources in the pool will consume the specified # reservation. Take this into account when setting the # pool size. class BoostConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # ReservationAffinity is the configuration of the desired reservation # from which instances can consume resources. # @!attribute [rw] consume_reservation_type # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::ReservationAffinity::Type] # Optional. Corresponds to the type of reservation consumption. # @!attribute [rw] key # @return [::String] # Optional. Corresponds to the label key of reservation resource. # @!attribute [rw] values # @return [::Array<::String>] # Optional. Corresponds to the label values of reservation resources. # Valid values are either the name of a reservation in the same project # or "projects/\\{project}/reservations/\\{reservation}" to target a shared # reservation in the same zone but in a different project. class ReservationAffinity include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # Indicates whether to consume capacity from a reservation or not. module Type # Default value. This should not be used. TYPE_UNSPECIFIED = 0 # Do not consume from any reserved capacity. NO_RESERVATION = 1 # Consume any reservation available. ANY_RESERVATION = 2 # Must consume from a specific reservation. Must specify key value # fields for specifying the reservations. SPECIFIC_RESERVATION = 3 end end # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class VmTagsEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class InstanceMetadataEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end end end # A directory to persist across workstation sessions. Updates to this field # will not update existing workstations and will only take effect on new # workstations. # @!attribute [rw] gce_pd # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk] # A PersistentDirectory backed by a Compute Engine persistent disk. # # Note: The following fields are mutually exclusive: `gce_pd`, `gce_hd`. If a field in that set is populated, all other fields in the set will automatically be cleared. # @!attribute [rw] gce_hd # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceHyperdiskBalancedHighAvailability] # A PersistentDirectory backed by a Compute Engine hyperdisk high # availability disk. # # Note: The following fields are mutually exclusive: `gce_hd`, `gce_pd`. If a field in that set is populated, all other fields in the set will automatically be cleared. # @!attribute [rw] mount_path # @return [::String] # Optional. Location of this directory in the running workstation. class PersistentDirectory include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # A Persistent Directory backed by a Compute Engine regional persistent # disk. The # {::Google::Cloud::Workstations::V1beta::WorkstationConfig#persistent_directories persistent_directories} # field is repeated, but it may contain only one entry. It creates a # [persistent # disk](https://cloud.google.com/compute/docs/disks/persistent-disks) that # mounts to the workstation VM at `/home` when the session starts and # detaches when the session ends. If this field is empty, workstations # created with this configuration do not have a persistent home # directory. # @!attribute [rw] size_gb # @return [::Integer] # Optional. The GB capacity of a persistent home directory for each # workstation created with this configuration. Must be empty if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk#source_snapshot source_snapshot} # is set. # # Valid values are `10`, `50`, `100`, `200`, `500`, or `1000`. # Defaults to `200`. If less than `200` GB, the # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk#disk_type disk_type} # must be # `"pd-balanced"` or `"pd-ssd"`. # @!attribute [rw] max_size_gb # @return [::Integer] # Optional. Maximum size in GB to which this persistent directory can be # resized. Defaults to unlimited if not set. # @!attribute [rw] fs_type # @return [::String] # Optional. Type of file system that the disk should be formatted with. # The workstation image must support this file system type. Must be empty # if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk#source_snapshot source_snapshot} # is set. Defaults to `"ext4"`. # @!attribute [rw] disk_type # @return [::String] # Optional. The [type of the persistent # disk](https://cloud.google.com/compute/docs/disks#disk-types) for the # home directory. Defaults to `"pd-standard"`. # @!attribute [rw] source_snapshot # @return [::String] # Optional. Name of the snapshot to use as the source for the disk. If # set, # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk#size_gb size_gb} # and # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk#fs_type fs_type} # must be empty. Must be formatted as ext4 file system with no # partitions. # @!attribute [rw] reclaim_policy # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk::ReclaimPolicy] # Optional. Whether the persistent disk should be deleted when the # workstation is deleted. Valid values are `DELETE` and `RETAIN`. # Defaults to `DELETE`. # @!attribute [rw] archive_timeout # @return [::Google::Protobuf::Duration] # Optional. Number of seconds to wait after initially creating or # subsequently shutting down the workstation before converting its disk # into a snapshot. This generally saves costs at the expense of greater # startup time on next workstation start, as the service will need to # create a disk from the archival snapshot. # # A value of `"0s"` indicates that the disk will never be archived. class GceRegionalPersistentDisk include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # Value representing what should happen to the disk after the workstation # is deleted. module ReclaimPolicy # Do not use. RECLAIM_POLICY_UNSPECIFIED = 0 # Delete the persistent disk when deleting the workstation. DELETE = 1 # Keep the persistent disk when deleting the workstation. # An administrator must manually delete the disk. RETAIN = 2 end end # A Persistent Directory backed by a Compute Engine # [Hyperdisk Balanced High Availability # Disk](https://cloud.google.com/compute/docs/disks/hd-types/hyperdisk-balanced-ha). # This is a high-availability block storage solution that offers a balance # between performance and cost for most general-purpose workloads. # @!attribute [rw] size_gb # @return [::Integer] # Optional. The GB capacity of a persistent home directory for each # workstation created with this configuration. Must be empty if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceHyperdiskBalancedHighAvailability#source_snapshot source_snapshot} # is set. # # Valid values are `10`, `50`, `100`, `200`, `500`, or `1000`. # Defaults to `200`. # @!attribute [rw] max_size_gb # @return [::Integer] # Optional. Maximum size in GB to which this persistent directory can be # resized. Defaults to unlimited if not set. # @!attribute [rw] source_snapshot # @return [::String] # Optional. Name of the snapshot to use as the source for the disk. If # set, # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceHyperdiskBalancedHighAvailability#size_gb size_gb} # must be empty. Must be formatted as ext4 file system with no # partitions. # @!attribute [rw] reclaim_policy # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceHyperdiskBalancedHighAvailability::ReclaimPolicy] # Optional. Whether the persistent disk should be deleted when the # workstation is deleted. Valid values are `DELETE` and `RETAIN`. # Defaults to `DELETE`. # @!attribute [rw] archive_timeout # @return [::Google::Protobuf::Duration] # Optional. Number of seconds to wait after initially creating or # subsequently shutting down the workstation before converting its disk # into a snapshot. This generally saves costs at the expense of greater # startup time on next workstation start, as the service will need to # create a disk from the archival snapshot. # # A value of `"0s"` indicates that the disk will never be archived. class GceHyperdiskBalancedHighAvailability include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # Value representing what should happen to the disk after the workstation # is deleted. module ReclaimPolicy # Do not use. RECLAIM_POLICY_UNSPECIFIED = 0 # Delete the persistent disk when deleting the workstation. DELETE = 1 # Keep the persistent disk when deleting the workstation. # An administrator must manually delete the disk. RETAIN = 2 end end end # An ephemeral directory which won't persist across workstation sessions. It # is freshly created on every workstation start operation. # @!attribute [rw] gce_pd # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk] # An EphemeralDirectory backed by a Compute Engine persistent disk. # @!attribute [rw] mount_path # @return [::String] # Required. Location of this directory in the running workstation. class EphemeralDirectory include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # An EphemeralDirectory is backed by a Compute Engine persistent disk. # @!attribute [rw] disk_type # @return [::String] # Optional. Type of the disk to use. Defaults to `"pd-standard"`. # @!attribute [rw] source_snapshot # @return [::String] # Optional. Name of the snapshot to use as the source for the disk. Must # be empty if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#source_image source_image} # is set. Must be empty if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#read_only read_only} # is false. Updating # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#source_snapshot source_snapshot} # will update content in the ephemeral directory after the workstation is # restarted. # # Only file systems supported by Container-Optimized OS (COS) # are explicitly supported. For a list of supported file systems, see # [the filesystems available in Container-Optimized # OS](https://cloud.google.com/container-optimized-os/docs/concepts/supported-filesystems). # # This field is mutable. # @!attribute [rw] source_image # @return [::String] # Optional. Name of the disk image to use as the source for the disk. # Must be empty if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#source_snapshot source_snapshot} # is set. Updating # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#source_image source_image} # will update content in the ephemeral directory after the workstation is # restarted. # # Only file systems supported by Container-Optimized OS (COS) # are explicitly supported. For a list of supported file systems, please # refer to the [COS # documentation](https://cloud.google.com/container-optimized-os/docs/concepts/supported-filesystems). # # This field is mutable. # @!attribute [rw] read_only # @return [::Boolean] # Optional. Whether the disk is read only. If true, the disk may be # shared by multiple VMs and # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#source_snapshot source_snapshot} # must be set. class GcePersistentDisk include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end end # A Docker container. # @!attribute [rw] image # @return [::String] # Optional. A Docker container image that defines a custom environment. # # Cloud Workstations provides a number of # [preconfigured # images](https://cloud.google.com/workstations/docs/preconfigured-base-images), # but you can create your own # [custom container # images](https://cloud.google.com/workstations/docs/custom-container-images). # If using a private image, the `host.gceInstance.serviceAccount` field # must be specified in the workstation configuration. # If using a custom container image, the service account must have # [Artifact Registry # Reader](https://cloud.google.com/artifact-registry/docs/access-control#roles) # permission to pull the specified image. Otherwise, the image must be # publicly accessible. # @!attribute [rw] command # @return [::Array<::String>] # Optional. If set, overrides the default ENTRYPOINT specified by the # image. # @!attribute [rw] args # @return [::Array<::String>] # Optional. Arguments passed to the entrypoint. # @!attribute [rw] env # @return [::Google::Protobuf::Map{::String => ::String}] # Optional. Environment variables passed to the container's entrypoint. # @!attribute [rw] working_dir # @return [::String] # Optional. If set, overrides the default DIR specified by the image. # @!attribute [rw] run_as_user # @return [::Integer] # Optional. If set, overrides the USER specified in the image with the # given uid. class Container include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class EnvEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end end # A customer-managed encryption key (CMEK) for the Compute Engine # resources of the associated workstation configuration. Specify the name of # your Cloud KMS encryption key and the default service account. # We recommend that you use a separate service account and follow # [Cloud KMS best # practices](https://cloud.google.com/kms/docs/separation-of-duties). # @!attribute [rw] kms_key # @return [::String] # Immutable. The name of the Google Cloud KMS encryption key. For example, # `"projects/PROJECT_ID/locations/REGION/keyRings/KEY_RING/cryptoKeys/KEY_NAME"`. # The key must be in the same region as the workstation configuration. # @!attribute [rw] kms_key_service_account # @return [::String] # Immutable. The service account to use with the specified # KMS key. We recommend that you use a separate service account # and follow KMS best practices. For more information, see # [Separation of # duties](https://cloud.google.com/kms/docs/separation-of-duties) and # `gcloud kms keys add-iam-policy-binding` # [`--member`](https://cloud.google.com/sdk/gcloud/reference/kms/keys/add-iam-policy-binding#--member). class CustomerEncryptionKey include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # A readiness check to be performed on a workstation. # @!attribute [rw] path # @return [::String] # Optional. Path to which the request should be sent. # @!attribute [rw] port # @return [::Integer] # Optional. Port to which the request should be sent. class ReadinessCheck include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # HTTP options for the running workstations. # @!attribute [rw] allowed_unauthenticated_cors_preflight_requests # @return [::Boolean] # Optional. By default, the workstations service makes sure that all # requests to the workstation are authenticated. CORS preflight requests do # not include cookies or custom headers, and so are considered # unauthenticated and blocked by the workstations service. Enabling this # option allows these unauthenticated CORS preflight requests through to # the workstation, where it becomes the responsibility of the destination # server in the workstation to validate the request. # @!attribute [rw] disable_localhost_replacement # @return [::Boolean] # Optional. By default, the workstations service replaces references to # localhost, 127.0.0.1, and 0.0.0.0 with the workstation's hostname in http # responses from the workstation so that applications under development run # properly on the workstation. This may intefere with some applications, # and so this option allows that behavior to be disabled. class HttpOptions include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # A PortRange defines a range of ports. Both # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PortRange#first first} # and # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PortRange#last last} # are inclusive. To specify a single port, both # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PortRange#first first} # and # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PortRange#last last} # should be the same. # @!attribute [rw] first # @return [::Integer] # Required. Starting port number for the current range of ports. # Valid ports are 22, 80, and ports within the range 1024-65535. # @!attribute [rw] last # @return [::Integer] # Required. Ending port number for the current range of ports. # Valid ports are 22, 80, and ports within the range 1024-65535. class PortRange include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class AnnotationsEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class LabelsEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end end |
#annotations ⇒ ::Google::Protobuf::Map{::String => ::String}
Returns Optional. Client-specified annotations.
420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 |
# File 'proto_docs/google/cloud/workstations/v1beta/workstations.rb', line 420 class WorkstationConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # Runtime host for a workstation. # @!attribute [rw] gce_instance # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance] # Specifies a Compute Engine instance as the host. class Host include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # A runtime using a Compute Engine instance. # @!attribute [rw] machine_type # @return [::String] # Optional. The type of machine to use for VM instances—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). # @!attribute [rw] service_account # @return [::String] # Optional. The email address of the service account for Cloud # Workstations VMs created with this configuration. When specified, be # sure that the service account has `logging.logEntries.create` and # `monitoring.timeSeries.create` permissions on the project so it can # write logs out to Cloud Logging. If using a custom container image, the # service account must have [Artifact Registry # Reader](https://cloud.google.com/artifact-registry/docs/access-control#roles) # permission to pull the specified image. # # If you as the administrator want to be able to `ssh` into the # underlying VM, you need to set this value to a service account # for which you have the `iam.serviceAccounts.actAs` permission. # Conversely, if you don't want anyone to be able to `ssh` into the # underlying VM, use a service account where no one has that # permission. # # If not set, VMs run with a service account provided by the # Cloud Workstations service, and the image must be publicly # accessible. # @!attribute [rw] service_account_scopes # @return [::Array<::String>] # Optional. Scopes to grant to the # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance#service_account service_account}. # When specified, users of workstations under this configuration must # have `iam.serviceAccounts.actAs` on the service account. # @!attribute [rw] tags # @return [::Array<::String>] # Optional. Network tags to add to the Compute Engine VMs backing the # workstations. This option applies # [network # tags](https://cloud.google.com/vpc/docs/add-remove-network-tags) to VMs # created with this configuration. These network tags enable the creation # of [firewall # rules](https://cloud.google.com/workstations/docs/configure-firewall-rules). # @!attribute [rw] pool_size # @return [::Integer] # Optional. The number of VMs that the system should keep idle so that # new workstations can be started quickly for new users. Defaults to `0` # in the API. # @!attribute [r] pooled_instances # @return [::Integer] # Output only. Number of instances currently available in the pool for # faster workstation startup. # @!attribute [rw] disable_public_ip_addresses # @return [::Boolean] # Optional. When set to true, disables public IP addresses for VMs. If # you disable public IP addresses, you must set up Private Google Access # or Cloud NAT on your network. If you use Private Google Access and you # use `private.googleapis.com` or `restricted.googleapis.com` for # Container Registry and Artifact Registry, make sure that you set # up DNS records for domains `*.gcr.io` and `*.pkg.dev`. # Defaults to false (VMs have public IP addresses). # @!attribute [rw] enable_nested_virtualization # @return [::Boolean] # Optional. Whether to enable nested virtualization on Cloud Workstations # VMs created using this workstation configuration. # # Defaults to false. # # Nested virtualization lets you run virtual machine (VM) instances # inside your workstation. Before enabling nested virtualization, # consider the following important considerations. Cloud Workstations # instances are subject to the [same restrictions as Compute Engine # instances](https://cloud.google.com/compute/docs/instances/nested-virtualization/overview#restrictions): # # * **Organization policy**: projects, folders, or # organizations may be restricted from creating nested VMs if the # **Disable VM nested virtualization** constraint is enforced in # the organization policy. For more information, see the # Compute Engine section, # [Checking whether nested virtualization is # allowed](https://cloud.google.com/compute/docs/instances/nested-virtualization/managing-constraint#checking_whether_nested_virtualization_is_allowed). # * **Performance**: nested VMs might experience a 10% or greater # decrease in performance for workloads that are CPU-bound and # possibly greater than a 10% decrease for workloads that are # input/output bound. # * **Machine Type**: nested virtualization can only be enabled on # workstation configurations that specify a # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance#machine_type machine_type} # in the N1 or N2 machine series. # @!attribute [rw] shielded_instance_config # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::GceShieldedInstanceConfig] # Optional. A set of Compute Engine Shielded instance options. # @!attribute [rw] confidential_instance_config # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::GceConfidentialInstanceConfig] # Optional. A set of Compute Engine Confidential VM instance options. # @!attribute [rw] boot_disk_size_gb # @return [::Integer] # Optional. The size of the boot disk for the VM in gigabytes (GB). # The minimum boot disk size is `30` GB. Defaults to `50` GB. # @!attribute [rw] accelerators # @return [::Array<::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::Accelerator>] # Optional. A list of the type and count of accelerator cards attached to # the instance. # @!attribute [rw] boost_configs # @return [::Array<::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::BoostConfig>] # Optional. A list of the boost configurations that workstations created # using this workstation configuration are allowed to use. If specified, # users will have the option to choose from the list of boost configs # when starting a workstation. # @!attribute [rw] disable_ssh # @return [::Boolean] # Optional. Whether to disable SSH access to the VM. # @!attribute [rw] vm_tags # @return [::Google::Protobuf::Map{::String => ::String}] # Optional. Resource manager tags to be bound to this instance. # Tag keys and values have the same definition as [resource manager # tags](https://cloud.google.com/resource-manager/docs/tags/tags-overview). # Keys must be in the format `tagKeys/{tag_key_id}`, and # values are in the format `tagValues/456`. # @!attribute [rw] reservation_affinity # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::ReservationAffinity] # Optional. # [ReservationAffinity](https://cloud.google.com/compute/docs/instances/reserving-zonal-resources) # specifies a reservation that can be consumed to create VM # instances. If SPECIFIC_RESERVATION is specified, Cloud Workstations # will only create VMs in the zone where the reservation is located. # This would affect availability since the service will no longer be # resilient to zonal outages. If ANY_RESERVATION is specified, creating # reservations in both zones that the config creates VMs in will ensure # higher availability. # **Important Considerations for Reservation Affinity:** # # * This feature is intended for advanced users and requires # familiarity with Google Compute Engine reservations. # * Using reservations incurs charges, regardless of utilization. # * The resources in the pool will consume the specified # reservation. Take this into account when setting the # pool size. # @!attribute [rw] startup_script_uri # @return [::String] # Optional. Link to the startup script stored in Cloud Storage. This # script will be run on the host workstation VM when the VM is created. # The URI must be of the form gs://\\{bucket-name}/\\{object-name}. If # specifying a startup script, the service account must have [Permission # to access the bucket and script file in Cloud # Storage](https://cloud.google.com/storage/docs/access-control/iam-permissions). # Otherwise, the script must be publicly accessible. # Note that the service regularly updates the OS version of the host VM, # and it is the responsibility of the user to ensure the script stays # compatible with the OS version. # @!attribute [rw] instance_metadata # @return [::Google::Protobuf::Map{::String => ::String}] # Optional. Custom metadata to apply to Compute Engine instances. class GceInstance include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # A set of Compute Engine Shielded instance options. # @!attribute [rw] enable_secure_boot # @return [::Boolean] # Optional. Whether the instance has Secure Boot enabled. # @!attribute [rw] enable_vtpm # @return [::Boolean] # Optional. Whether the instance has the vTPM enabled. # @!attribute [rw] enable_integrity_monitoring # @return [::Boolean] # Optional. Whether the instance has integrity monitoring enabled. class GceShieldedInstanceConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # A set of Compute Engine Confidential VM instance options. # @!attribute [rw] enable_confidential_compute # @return [::Boolean] # Optional. Whether the instance has confidential compute enabled. class GceConfidentialInstanceConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # An accelerator card attached to the instance. # @!attribute [rw] type # @return [::String] # Optional. Type of accelerator resource to attach to the instance, for # example, # `"nvidia-tesla-p100"`. # @!attribute [rw] count # @return [::Integer] # Optional. Number of accelerator cards exposed to the instance. class Accelerator include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # A boost configuration is a set of resources that a workstation can use # to increase its performance. If you specify a boost configuration, upon # startup, workstation users can choose to use a VM provisioned under the # boost config by passing the boost config ID in the start request. If # the workstation user does not provide a boost config ID in the start # request, the system will choose a VM from the pool provisioned under # the default config. # @!attribute [rw] id # @return [::String] # Required. The ID to be used for the boost configuration. # @!attribute [rw] machine_type # @return [::String] # Optional. 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`. # @!attribute [rw] accelerators # @return [::Array<::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::Accelerator>] # Optional. A list of the type and count of accelerator cards attached # to the boost instance. Defaults to `none`. # @!attribute [rw] boot_disk_size_gb # @return [::Integer] # Optional. The size of the boot disk for the VM in gigabytes (GB). # The minimum boot disk size is `30` GB. Defaults to `50` GB. # @!attribute [rw] enable_nested_virtualization # @return [::Boolean] # Optional. Whether to enable nested virtualization on boosted Cloud # Workstations VMs running using this boost configuration. # # Defaults to false. # # Nested virtualization lets you run virtual machine (VM) instances # inside your workstation. Before enabling nested virtualization, # consider the following important considerations. Cloud Workstations # instances are subject to the [same restrictions as Compute Engine # instances](https://cloud.google.com/compute/docs/instances/nested-virtualization/overview#restrictions): # # * **Organization policy**: projects, folders, or # organizations may be restricted from creating nested VMs if the # **Disable VM nested virtualization** constraint is enforced in # the organization policy. For more information, see the # Compute Engine section, # [Checking whether nested virtualization is # allowed](https://cloud.google.com/compute/docs/instances/nested-virtualization/managing-constraint#checking_whether_nested_virtualization_is_allowed). # * **Performance**: nested VMs might experience a 10% or greater # decrease in performance for workloads that are CPU-bound and # possibly greater than a 10% decrease for workloads that are # input/output bound. # * **Machine Type**: nested virtualization can only be enabled on # boost configurations that specify a # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::BoostConfig#machine_type machine_type} # in the N1 or N2 machine series. # @!attribute [rw] pool_size # @return [::Integer] # Optional. The number of boost VMs that the system should keep idle so # that workstations can be boosted quickly. Defaults to `0`. # @!attribute [rw] reservation_affinity # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::ReservationAffinity] # Optional. # [ReservationAffinity](https://cloud.google.com/compute/docs/instances/reserving-zonal-resources) # specifies a reservation that can be consumed to create boost VM # instances. If SPECIFIC_RESERVATION is specified, Cloud Workstations # will only create VMs in the zone where the reservation is located. # This would affect availability since the service will no longer be # resilient to zonal outages. If ANY_RESERVATION is specified, creating # reservations in both zones that the config creates VMs in will ensure # higher availability. # **Important Considerations for Reservation Affinity:** # # * This feature is intended for advanced users and requires # familiarity with Google Compute Engine reservations. # * Using reservations incurs charges, regardless of utilization. # * The resources in the pool will consume the specified # reservation. Take this into account when setting the # pool size. class BoostConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # ReservationAffinity is the configuration of the desired reservation # from which instances can consume resources. # @!attribute [rw] consume_reservation_type # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::ReservationAffinity::Type] # Optional. Corresponds to the type of reservation consumption. # @!attribute [rw] key # @return [::String] # Optional. Corresponds to the label key of reservation resource. # @!attribute [rw] values # @return [::Array<::String>] # Optional. Corresponds to the label values of reservation resources. # Valid values are either the name of a reservation in the same project # or "projects/\\{project}/reservations/\\{reservation}" to target a shared # reservation in the same zone but in a different project. class ReservationAffinity include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # Indicates whether to consume capacity from a reservation or not. module Type # Default value. This should not be used. TYPE_UNSPECIFIED = 0 # Do not consume from any reserved capacity. NO_RESERVATION = 1 # Consume any reservation available. ANY_RESERVATION = 2 # Must consume from a specific reservation. Must specify key value # fields for specifying the reservations. SPECIFIC_RESERVATION = 3 end end # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class VmTagsEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class InstanceMetadataEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end end end # A directory to persist across workstation sessions. Updates to this field # will not update existing workstations and will only take effect on new # workstations. # @!attribute [rw] gce_pd # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk] # A PersistentDirectory backed by a Compute Engine persistent disk. # # Note: The following fields are mutually exclusive: `gce_pd`, `gce_hd`. If a field in that set is populated, all other fields in the set will automatically be cleared. # @!attribute [rw] gce_hd # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceHyperdiskBalancedHighAvailability] # A PersistentDirectory backed by a Compute Engine hyperdisk high # availability disk. # # Note: The following fields are mutually exclusive: `gce_hd`, `gce_pd`. If a field in that set is populated, all other fields in the set will automatically be cleared. # @!attribute [rw] mount_path # @return [::String] # Optional. Location of this directory in the running workstation. class PersistentDirectory include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # A Persistent Directory backed by a Compute Engine regional persistent # disk. The # {::Google::Cloud::Workstations::V1beta::WorkstationConfig#persistent_directories persistent_directories} # field is repeated, but it may contain only one entry. It creates a # [persistent # disk](https://cloud.google.com/compute/docs/disks/persistent-disks) that # mounts to the workstation VM at `/home` when the session starts and # detaches when the session ends. If this field is empty, workstations # created with this configuration do not have a persistent home # directory. # @!attribute [rw] size_gb # @return [::Integer] # Optional. The GB capacity of a persistent home directory for each # workstation created with this configuration. Must be empty if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk#source_snapshot source_snapshot} # is set. # # Valid values are `10`, `50`, `100`, `200`, `500`, or `1000`. # Defaults to `200`. If less than `200` GB, the # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk#disk_type disk_type} # must be # `"pd-balanced"` or `"pd-ssd"`. # @!attribute [rw] max_size_gb # @return [::Integer] # Optional. Maximum size in GB to which this persistent directory can be # resized. Defaults to unlimited if not set. # @!attribute [rw] fs_type # @return [::String] # Optional. Type of file system that the disk should be formatted with. # The workstation image must support this file system type. Must be empty # if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk#source_snapshot source_snapshot} # is set. Defaults to `"ext4"`. # @!attribute [rw] disk_type # @return [::String] # Optional. The [type of the persistent # disk](https://cloud.google.com/compute/docs/disks#disk-types) for the # home directory. Defaults to `"pd-standard"`. # @!attribute [rw] source_snapshot # @return [::String] # Optional. Name of the snapshot to use as the source for the disk. If # set, # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk#size_gb size_gb} # and # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk#fs_type fs_type} # must be empty. Must be formatted as ext4 file system with no # partitions. # @!attribute [rw] reclaim_policy # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk::ReclaimPolicy] # Optional. Whether the persistent disk should be deleted when the # workstation is deleted. Valid values are `DELETE` and `RETAIN`. # Defaults to `DELETE`. # @!attribute [rw] archive_timeout # @return [::Google::Protobuf::Duration] # Optional. Number of seconds to wait after initially creating or # subsequently shutting down the workstation before converting its disk # into a snapshot. This generally saves costs at the expense of greater # startup time on next workstation start, as the service will need to # create a disk from the archival snapshot. # # A value of `"0s"` indicates that the disk will never be archived. class GceRegionalPersistentDisk include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # Value representing what should happen to the disk after the workstation # is deleted. module ReclaimPolicy # Do not use. RECLAIM_POLICY_UNSPECIFIED = 0 # Delete the persistent disk when deleting the workstation. DELETE = 1 # Keep the persistent disk when deleting the workstation. # An administrator must manually delete the disk. RETAIN = 2 end end # A Persistent Directory backed by a Compute Engine # [Hyperdisk Balanced High Availability # Disk](https://cloud.google.com/compute/docs/disks/hd-types/hyperdisk-balanced-ha). # This is a high-availability block storage solution that offers a balance # between performance and cost for most general-purpose workloads. # @!attribute [rw] size_gb # @return [::Integer] # Optional. The GB capacity of a persistent home directory for each # workstation created with this configuration. Must be empty if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceHyperdiskBalancedHighAvailability#source_snapshot source_snapshot} # is set. # # Valid values are `10`, `50`, `100`, `200`, `500`, or `1000`. # Defaults to `200`. # @!attribute [rw] max_size_gb # @return [::Integer] # Optional. Maximum size in GB to which this persistent directory can be # resized. Defaults to unlimited if not set. # @!attribute [rw] source_snapshot # @return [::String] # Optional. Name of the snapshot to use as the source for the disk. If # set, # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceHyperdiskBalancedHighAvailability#size_gb size_gb} # must be empty. Must be formatted as ext4 file system with no # partitions. # @!attribute [rw] reclaim_policy # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceHyperdiskBalancedHighAvailability::ReclaimPolicy] # Optional. Whether the persistent disk should be deleted when the # workstation is deleted. Valid values are `DELETE` and `RETAIN`. # Defaults to `DELETE`. # @!attribute [rw] archive_timeout # @return [::Google::Protobuf::Duration] # Optional. Number of seconds to wait after initially creating or # subsequently shutting down the workstation before converting its disk # into a snapshot. This generally saves costs at the expense of greater # startup time on next workstation start, as the service will need to # create a disk from the archival snapshot. # # A value of `"0s"` indicates that the disk will never be archived. class GceHyperdiskBalancedHighAvailability include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # Value representing what should happen to the disk after the workstation # is deleted. module ReclaimPolicy # Do not use. RECLAIM_POLICY_UNSPECIFIED = 0 # Delete the persistent disk when deleting the workstation. DELETE = 1 # Keep the persistent disk when deleting the workstation. # An administrator must manually delete the disk. RETAIN = 2 end end end # An ephemeral directory which won't persist across workstation sessions. It # is freshly created on every workstation start operation. # @!attribute [rw] gce_pd # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk] # An EphemeralDirectory backed by a Compute Engine persistent disk. # @!attribute [rw] mount_path # @return [::String] # Required. Location of this directory in the running workstation. class EphemeralDirectory include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # An EphemeralDirectory is backed by a Compute Engine persistent disk. # @!attribute [rw] disk_type # @return [::String] # Optional. Type of the disk to use. Defaults to `"pd-standard"`. # @!attribute [rw] source_snapshot # @return [::String] # Optional. Name of the snapshot to use as the source for the disk. Must # be empty if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#source_image source_image} # is set. Must be empty if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#read_only read_only} # is false. Updating # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#source_snapshot source_snapshot} # will update content in the ephemeral directory after the workstation is # restarted. # # Only file systems supported by Container-Optimized OS (COS) # are explicitly supported. For a list of supported file systems, see # [the filesystems available in Container-Optimized # OS](https://cloud.google.com/container-optimized-os/docs/concepts/supported-filesystems). # # This field is mutable. # @!attribute [rw] source_image # @return [::String] # Optional. Name of the disk image to use as the source for the disk. # Must be empty if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#source_snapshot source_snapshot} # is set. Updating # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#source_image source_image} # will update content in the ephemeral directory after the workstation is # restarted. # # Only file systems supported by Container-Optimized OS (COS) # are explicitly supported. For a list of supported file systems, please # refer to the [COS # documentation](https://cloud.google.com/container-optimized-os/docs/concepts/supported-filesystems). # # This field is mutable. # @!attribute [rw] read_only # @return [::Boolean] # Optional. Whether the disk is read only. If true, the disk may be # shared by multiple VMs and # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#source_snapshot source_snapshot} # must be set. class GcePersistentDisk include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end end # A Docker container. # @!attribute [rw] image # @return [::String] # Optional. A Docker container image that defines a custom environment. # # Cloud Workstations provides a number of # [preconfigured # images](https://cloud.google.com/workstations/docs/preconfigured-base-images), # but you can create your own # [custom container # images](https://cloud.google.com/workstations/docs/custom-container-images). # If using a private image, the `host.gceInstance.serviceAccount` field # must be specified in the workstation configuration. # If using a custom container image, the service account must have # [Artifact Registry # Reader](https://cloud.google.com/artifact-registry/docs/access-control#roles) # permission to pull the specified image. Otherwise, the image must be # publicly accessible. # @!attribute [rw] command # @return [::Array<::String>] # Optional. If set, overrides the default ENTRYPOINT specified by the # image. # @!attribute [rw] args # @return [::Array<::String>] # Optional. Arguments passed to the entrypoint. # @!attribute [rw] env # @return [::Google::Protobuf::Map{::String => ::String}] # Optional. Environment variables passed to the container's entrypoint. # @!attribute [rw] working_dir # @return [::String] # Optional. If set, overrides the default DIR specified by the image. # @!attribute [rw] run_as_user # @return [::Integer] # Optional. If set, overrides the USER specified in the image with the # given uid. class Container include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class EnvEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end end # A customer-managed encryption key (CMEK) for the Compute Engine # resources of the associated workstation configuration. Specify the name of # your Cloud KMS encryption key and the default service account. # We recommend that you use a separate service account and follow # [Cloud KMS best # practices](https://cloud.google.com/kms/docs/separation-of-duties). # @!attribute [rw] kms_key # @return [::String] # Immutable. The name of the Google Cloud KMS encryption key. For example, # `"projects/PROJECT_ID/locations/REGION/keyRings/KEY_RING/cryptoKeys/KEY_NAME"`. # The key must be in the same region as the workstation configuration. # @!attribute [rw] kms_key_service_account # @return [::String] # Immutable. The service account to use with the specified # KMS key. We recommend that you use a separate service account # and follow KMS best practices. For more information, see # [Separation of # duties](https://cloud.google.com/kms/docs/separation-of-duties) and # `gcloud kms keys add-iam-policy-binding` # [`--member`](https://cloud.google.com/sdk/gcloud/reference/kms/keys/add-iam-policy-binding#--member). class CustomerEncryptionKey include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # A readiness check to be performed on a workstation. # @!attribute [rw] path # @return [::String] # Optional. Path to which the request should be sent. # @!attribute [rw] port # @return [::Integer] # Optional. Port to which the request should be sent. class ReadinessCheck include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # HTTP options for the running workstations. # @!attribute [rw] allowed_unauthenticated_cors_preflight_requests # @return [::Boolean] # Optional. By default, the workstations service makes sure that all # requests to the workstation are authenticated. CORS preflight requests do # not include cookies or custom headers, and so are considered # unauthenticated and blocked by the workstations service. Enabling this # option allows these unauthenticated CORS preflight requests through to # the workstation, where it becomes the responsibility of the destination # server in the workstation to validate the request. # @!attribute [rw] disable_localhost_replacement # @return [::Boolean] # Optional. By default, the workstations service replaces references to # localhost, 127.0.0.1, and 0.0.0.0 with the workstation's hostname in http # responses from the workstation so that applications under development run # properly on the workstation. This may intefere with some applications, # and so this option allows that behavior to be disabled. class HttpOptions include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # A PortRange defines a range of ports. Both # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PortRange#first first} # and # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PortRange#last last} # are inclusive. To specify a single port, both # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PortRange#first first} # and # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PortRange#last last} # should be the same. # @!attribute [rw] first # @return [::Integer] # Required. Starting port number for the current range of ports. # Valid ports are 22, 80, and ports within the range 1024-65535. # @!attribute [rw] last # @return [::Integer] # Required. Ending port number for the current range of ports. # Valid ports are 22, 80, and ports within the range 1024-65535. class PortRange include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class AnnotationsEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class LabelsEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end end |
#conditions ⇒ ::Array<::Google::Rpc::Status> (readonly)
Returns Output only. Status conditions describing the workstation configuration's current state.
420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 |
# File 'proto_docs/google/cloud/workstations/v1beta/workstations.rb', line 420 class WorkstationConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # Runtime host for a workstation. # @!attribute [rw] gce_instance # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance] # Specifies a Compute Engine instance as the host. class Host include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # A runtime using a Compute Engine instance. # @!attribute [rw] machine_type # @return [::String] # Optional. The type of machine to use for VM instances—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). # @!attribute [rw] service_account # @return [::String] # Optional. The email address of the service account for Cloud # Workstations VMs created with this configuration. When specified, be # sure that the service account has `logging.logEntries.create` and # `monitoring.timeSeries.create` permissions on the project so it can # write logs out to Cloud Logging. If using a custom container image, the # service account must have [Artifact Registry # Reader](https://cloud.google.com/artifact-registry/docs/access-control#roles) # permission to pull the specified image. # # If you as the administrator want to be able to `ssh` into the # underlying VM, you need to set this value to a service account # for which you have the `iam.serviceAccounts.actAs` permission. # Conversely, if you don't want anyone to be able to `ssh` into the # underlying VM, use a service account where no one has that # permission. # # If not set, VMs run with a service account provided by the # Cloud Workstations service, and the image must be publicly # accessible. # @!attribute [rw] service_account_scopes # @return [::Array<::String>] # Optional. Scopes to grant to the # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance#service_account service_account}. # When specified, users of workstations under this configuration must # have `iam.serviceAccounts.actAs` on the service account. # @!attribute [rw] tags # @return [::Array<::String>] # Optional. Network tags to add to the Compute Engine VMs backing the # workstations. This option applies # [network # tags](https://cloud.google.com/vpc/docs/add-remove-network-tags) to VMs # created with this configuration. These network tags enable the creation # of [firewall # rules](https://cloud.google.com/workstations/docs/configure-firewall-rules). # @!attribute [rw] pool_size # @return [::Integer] # Optional. The number of VMs that the system should keep idle so that # new workstations can be started quickly for new users. Defaults to `0` # in the API. # @!attribute [r] pooled_instances # @return [::Integer] # Output only. Number of instances currently available in the pool for # faster workstation startup. # @!attribute [rw] disable_public_ip_addresses # @return [::Boolean] # Optional. When set to true, disables public IP addresses for VMs. If # you disable public IP addresses, you must set up Private Google Access # or Cloud NAT on your network. If you use Private Google Access and you # use `private.googleapis.com` or `restricted.googleapis.com` for # Container Registry and Artifact Registry, make sure that you set # up DNS records for domains `*.gcr.io` and `*.pkg.dev`. # Defaults to false (VMs have public IP addresses). # @!attribute [rw] enable_nested_virtualization # @return [::Boolean] # Optional. Whether to enable nested virtualization on Cloud Workstations # VMs created using this workstation configuration. # # Defaults to false. # # Nested virtualization lets you run virtual machine (VM) instances # inside your workstation. Before enabling nested virtualization, # consider the following important considerations. Cloud Workstations # instances are subject to the [same restrictions as Compute Engine # instances](https://cloud.google.com/compute/docs/instances/nested-virtualization/overview#restrictions): # # * **Organization policy**: projects, folders, or # organizations may be restricted from creating nested VMs if the # **Disable VM nested virtualization** constraint is enforced in # the organization policy. For more information, see the # Compute Engine section, # [Checking whether nested virtualization is # allowed](https://cloud.google.com/compute/docs/instances/nested-virtualization/managing-constraint#checking_whether_nested_virtualization_is_allowed). # * **Performance**: nested VMs might experience a 10% or greater # decrease in performance for workloads that are CPU-bound and # possibly greater than a 10% decrease for workloads that are # input/output bound. # * **Machine Type**: nested virtualization can only be enabled on # workstation configurations that specify a # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance#machine_type machine_type} # in the N1 or N2 machine series. # @!attribute [rw] shielded_instance_config # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::GceShieldedInstanceConfig] # Optional. A set of Compute Engine Shielded instance options. # @!attribute [rw] confidential_instance_config # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::GceConfidentialInstanceConfig] # Optional. A set of Compute Engine Confidential VM instance options. # @!attribute [rw] boot_disk_size_gb # @return [::Integer] # Optional. The size of the boot disk for the VM in gigabytes (GB). # The minimum boot disk size is `30` GB. Defaults to `50` GB. # @!attribute [rw] accelerators # @return [::Array<::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::Accelerator>] # Optional. A list of the type and count of accelerator cards attached to # the instance. # @!attribute [rw] boost_configs # @return [::Array<::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::BoostConfig>] # Optional. A list of the boost configurations that workstations created # using this workstation configuration are allowed to use. If specified, # users will have the option to choose from the list of boost configs # when starting a workstation. # @!attribute [rw] disable_ssh # @return [::Boolean] # Optional. Whether to disable SSH access to the VM. # @!attribute [rw] vm_tags # @return [::Google::Protobuf::Map{::String => ::String}] # Optional. Resource manager tags to be bound to this instance. # Tag keys and values have the same definition as [resource manager # tags](https://cloud.google.com/resource-manager/docs/tags/tags-overview). # Keys must be in the format `tagKeys/{tag_key_id}`, and # values are in the format `tagValues/456`. # @!attribute [rw] reservation_affinity # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::ReservationAffinity] # Optional. # [ReservationAffinity](https://cloud.google.com/compute/docs/instances/reserving-zonal-resources) # specifies a reservation that can be consumed to create VM # instances. If SPECIFIC_RESERVATION is specified, Cloud Workstations # will only create VMs in the zone where the reservation is located. # This would affect availability since the service will no longer be # resilient to zonal outages. If ANY_RESERVATION is specified, creating # reservations in both zones that the config creates VMs in will ensure # higher availability. # **Important Considerations for Reservation Affinity:** # # * This feature is intended for advanced users and requires # familiarity with Google Compute Engine reservations. # * Using reservations incurs charges, regardless of utilization. # * The resources in the pool will consume the specified # reservation. Take this into account when setting the # pool size. # @!attribute [rw] startup_script_uri # @return [::String] # Optional. Link to the startup script stored in Cloud Storage. This # script will be run on the host workstation VM when the VM is created. # The URI must be of the form gs://\\{bucket-name}/\\{object-name}. If # specifying a startup script, the service account must have [Permission # to access the bucket and script file in Cloud # Storage](https://cloud.google.com/storage/docs/access-control/iam-permissions). # Otherwise, the script must be publicly accessible. # Note that the service regularly updates the OS version of the host VM, # and it is the responsibility of the user to ensure the script stays # compatible with the OS version. # @!attribute [rw] instance_metadata # @return [::Google::Protobuf::Map{::String => ::String}] # Optional. Custom metadata to apply to Compute Engine instances. class GceInstance include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # A set of Compute Engine Shielded instance options. # @!attribute [rw] enable_secure_boot # @return [::Boolean] # Optional. Whether the instance has Secure Boot enabled. # @!attribute [rw] enable_vtpm # @return [::Boolean] # Optional. Whether the instance has the vTPM enabled. # @!attribute [rw] enable_integrity_monitoring # @return [::Boolean] # Optional. Whether the instance has integrity monitoring enabled. class GceShieldedInstanceConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # A set of Compute Engine Confidential VM instance options. # @!attribute [rw] enable_confidential_compute # @return [::Boolean] # Optional. Whether the instance has confidential compute enabled. class GceConfidentialInstanceConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # An accelerator card attached to the instance. # @!attribute [rw] type # @return [::String] # Optional. Type of accelerator resource to attach to the instance, for # example, # `"nvidia-tesla-p100"`. # @!attribute [rw] count # @return [::Integer] # Optional. Number of accelerator cards exposed to the instance. class Accelerator include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # A boost configuration is a set of resources that a workstation can use # to increase its performance. If you specify a boost configuration, upon # startup, workstation users can choose to use a VM provisioned under the # boost config by passing the boost config ID in the start request. If # the workstation user does not provide a boost config ID in the start # request, the system will choose a VM from the pool provisioned under # the default config. # @!attribute [rw] id # @return [::String] # Required. The ID to be used for the boost configuration. # @!attribute [rw] machine_type # @return [::String] # Optional. 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`. # @!attribute [rw] accelerators # @return [::Array<::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::Accelerator>] # Optional. A list of the type and count of accelerator cards attached # to the boost instance. Defaults to `none`. # @!attribute [rw] boot_disk_size_gb # @return [::Integer] # Optional. The size of the boot disk for the VM in gigabytes (GB). # The minimum boot disk size is `30` GB. Defaults to `50` GB. # @!attribute [rw] enable_nested_virtualization # @return [::Boolean] # Optional. Whether to enable nested virtualization on boosted Cloud # Workstations VMs running using this boost configuration. # # Defaults to false. # # Nested virtualization lets you run virtual machine (VM) instances # inside your workstation. Before enabling nested virtualization, # consider the following important considerations. Cloud Workstations # instances are subject to the [same restrictions as Compute Engine # instances](https://cloud.google.com/compute/docs/instances/nested-virtualization/overview#restrictions): # # * **Organization policy**: projects, folders, or # organizations may be restricted from creating nested VMs if the # **Disable VM nested virtualization** constraint is enforced in # the organization policy. For more information, see the # Compute Engine section, # [Checking whether nested virtualization is # allowed](https://cloud.google.com/compute/docs/instances/nested-virtualization/managing-constraint#checking_whether_nested_virtualization_is_allowed). # * **Performance**: nested VMs might experience a 10% or greater # decrease in performance for workloads that are CPU-bound and # possibly greater than a 10% decrease for workloads that are # input/output bound. # * **Machine Type**: nested virtualization can only be enabled on # boost configurations that specify a # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::BoostConfig#machine_type machine_type} # in the N1 or N2 machine series. # @!attribute [rw] pool_size # @return [::Integer] # Optional. The number of boost VMs that the system should keep idle so # that workstations can be boosted quickly. Defaults to `0`. # @!attribute [rw] reservation_affinity # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::ReservationAffinity] # Optional. # [ReservationAffinity](https://cloud.google.com/compute/docs/instances/reserving-zonal-resources) # specifies a reservation that can be consumed to create boost VM # instances. If SPECIFIC_RESERVATION is specified, Cloud Workstations # will only create VMs in the zone where the reservation is located. # This would affect availability since the service will no longer be # resilient to zonal outages. If ANY_RESERVATION is specified, creating # reservations in both zones that the config creates VMs in will ensure # higher availability. # **Important Considerations for Reservation Affinity:** # # * This feature is intended for advanced users and requires # familiarity with Google Compute Engine reservations. # * Using reservations incurs charges, regardless of utilization. # * The resources in the pool will consume the specified # reservation. Take this into account when setting the # pool size. class BoostConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # ReservationAffinity is the configuration of the desired reservation # from which instances can consume resources. # @!attribute [rw] consume_reservation_type # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::ReservationAffinity::Type] # Optional. Corresponds to the type of reservation consumption. # @!attribute [rw] key # @return [::String] # Optional. Corresponds to the label key of reservation resource. # @!attribute [rw] values # @return [::Array<::String>] # Optional. Corresponds to the label values of reservation resources. # Valid values are either the name of a reservation in the same project # or "projects/\\{project}/reservations/\\{reservation}" to target a shared # reservation in the same zone but in a different project. class ReservationAffinity include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # Indicates whether to consume capacity from a reservation or not. module Type # Default value. This should not be used. TYPE_UNSPECIFIED = 0 # Do not consume from any reserved capacity. NO_RESERVATION = 1 # Consume any reservation available. ANY_RESERVATION = 2 # Must consume from a specific reservation. Must specify key value # fields for specifying the reservations. SPECIFIC_RESERVATION = 3 end end # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class VmTagsEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class InstanceMetadataEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end end end # A directory to persist across workstation sessions. Updates to this field # will not update existing workstations and will only take effect on new # workstations. # @!attribute [rw] gce_pd # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk] # A PersistentDirectory backed by a Compute Engine persistent disk. # # Note: The following fields are mutually exclusive: `gce_pd`, `gce_hd`. If a field in that set is populated, all other fields in the set will automatically be cleared. # @!attribute [rw] gce_hd # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceHyperdiskBalancedHighAvailability] # A PersistentDirectory backed by a Compute Engine hyperdisk high # availability disk. # # Note: The following fields are mutually exclusive: `gce_hd`, `gce_pd`. If a field in that set is populated, all other fields in the set will automatically be cleared. # @!attribute [rw] mount_path # @return [::String] # Optional. Location of this directory in the running workstation. class PersistentDirectory include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # A Persistent Directory backed by a Compute Engine regional persistent # disk. The # {::Google::Cloud::Workstations::V1beta::WorkstationConfig#persistent_directories persistent_directories} # field is repeated, but it may contain only one entry. It creates a # [persistent # disk](https://cloud.google.com/compute/docs/disks/persistent-disks) that # mounts to the workstation VM at `/home` when the session starts and # detaches when the session ends. If this field is empty, workstations # created with this configuration do not have a persistent home # directory. # @!attribute [rw] size_gb # @return [::Integer] # Optional. The GB capacity of a persistent home directory for each # workstation created with this configuration. Must be empty if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk#source_snapshot source_snapshot} # is set. # # Valid values are `10`, `50`, `100`, `200`, `500`, or `1000`. # Defaults to `200`. If less than `200` GB, the # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk#disk_type disk_type} # must be # `"pd-balanced"` or `"pd-ssd"`. # @!attribute [rw] max_size_gb # @return [::Integer] # Optional. Maximum size in GB to which this persistent directory can be # resized. Defaults to unlimited if not set. # @!attribute [rw] fs_type # @return [::String] # Optional. Type of file system that the disk should be formatted with. # The workstation image must support this file system type. Must be empty # if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk#source_snapshot source_snapshot} # is set. Defaults to `"ext4"`. # @!attribute [rw] disk_type # @return [::String] # Optional. The [type of the persistent # disk](https://cloud.google.com/compute/docs/disks#disk-types) for the # home directory. Defaults to `"pd-standard"`. # @!attribute [rw] source_snapshot # @return [::String] # Optional. Name of the snapshot to use as the source for the disk. If # set, # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk#size_gb size_gb} # and # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk#fs_type fs_type} # must be empty. Must be formatted as ext4 file system with no # partitions. # @!attribute [rw] reclaim_policy # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk::ReclaimPolicy] # Optional. Whether the persistent disk should be deleted when the # workstation is deleted. Valid values are `DELETE` and `RETAIN`. # Defaults to `DELETE`. # @!attribute [rw] archive_timeout # @return [::Google::Protobuf::Duration] # Optional. Number of seconds to wait after initially creating or # subsequently shutting down the workstation before converting its disk # into a snapshot. This generally saves costs at the expense of greater # startup time on next workstation start, as the service will need to # create a disk from the archival snapshot. # # A value of `"0s"` indicates that the disk will never be archived. class GceRegionalPersistentDisk include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # Value representing what should happen to the disk after the workstation # is deleted. module ReclaimPolicy # Do not use. RECLAIM_POLICY_UNSPECIFIED = 0 # Delete the persistent disk when deleting the workstation. DELETE = 1 # Keep the persistent disk when deleting the workstation. # An administrator must manually delete the disk. RETAIN = 2 end end # A Persistent Directory backed by a Compute Engine # [Hyperdisk Balanced High Availability # Disk](https://cloud.google.com/compute/docs/disks/hd-types/hyperdisk-balanced-ha). # This is a high-availability block storage solution that offers a balance # between performance and cost for most general-purpose workloads. # @!attribute [rw] size_gb # @return [::Integer] # Optional. The GB capacity of a persistent home directory for each # workstation created with this configuration. Must be empty if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceHyperdiskBalancedHighAvailability#source_snapshot source_snapshot} # is set. # # Valid values are `10`, `50`, `100`, `200`, `500`, or `1000`. # Defaults to `200`. # @!attribute [rw] max_size_gb # @return [::Integer] # Optional. Maximum size in GB to which this persistent directory can be # resized. Defaults to unlimited if not set. # @!attribute [rw] source_snapshot # @return [::String] # Optional. Name of the snapshot to use as the source for the disk. If # set, # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceHyperdiskBalancedHighAvailability#size_gb size_gb} # must be empty. Must be formatted as ext4 file system with no # partitions. # @!attribute [rw] reclaim_policy # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceHyperdiskBalancedHighAvailability::ReclaimPolicy] # Optional. Whether the persistent disk should be deleted when the # workstation is deleted. Valid values are `DELETE` and `RETAIN`. # Defaults to `DELETE`. # @!attribute [rw] archive_timeout # @return [::Google::Protobuf::Duration] # Optional. Number of seconds to wait after initially creating or # subsequently shutting down the workstation before converting its disk # into a snapshot. This generally saves costs at the expense of greater # startup time on next workstation start, as the service will need to # create a disk from the archival snapshot. # # A value of `"0s"` indicates that the disk will never be archived. class GceHyperdiskBalancedHighAvailability include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # Value representing what should happen to the disk after the workstation # is deleted. module ReclaimPolicy # Do not use. RECLAIM_POLICY_UNSPECIFIED = 0 # Delete the persistent disk when deleting the workstation. DELETE = 1 # Keep the persistent disk when deleting the workstation. # An administrator must manually delete the disk. RETAIN = 2 end end end # An ephemeral directory which won't persist across workstation sessions. It # is freshly created on every workstation start operation. # @!attribute [rw] gce_pd # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk] # An EphemeralDirectory backed by a Compute Engine persistent disk. # @!attribute [rw] mount_path # @return [::String] # Required. Location of this directory in the running workstation. class EphemeralDirectory include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # An EphemeralDirectory is backed by a Compute Engine persistent disk. # @!attribute [rw] disk_type # @return [::String] # Optional. Type of the disk to use. Defaults to `"pd-standard"`. # @!attribute [rw] source_snapshot # @return [::String] # Optional. Name of the snapshot to use as the source for the disk. Must # be empty if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#source_image source_image} # is set. Must be empty if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#read_only read_only} # is false. Updating # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#source_snapshot source_snapshot} # will update content in the ephemeral directory after the workstation is # restarted. # # Only file systems supported by Container-Optimized OS (COS) # are explicitly supported. For a list of supported file systems, see # [the filesystems available in Container-Optimized # OS](https://cloud.google.com/container-optimized-os/docs/concepts/supported-filesystems). # # This field is mutable. # @!attribute [rw] source_image # @return [::String] # Optional. Name of the disk image to use as the source for the disk. # Must be empty if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#source_snapshot source_snapshot} # is set. Updating # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#source_image source_image} # will update content in the ephemeral directory after the workstation is # restarted. # # Only file systems supported by Container-Optimized OS (COS) # are explicitly supported. For a list of supported file systems, please # refer to the [COS # documentation](https://cloud.google.com/container-optimized-os/docs/concepts/supported-filesystems). # # This field is mutable. # @!attribute [rw] read_only # @return [::Boolean] # Optional. Whether the disk is read only. If true, the disk may be # shared by multiple VMs and # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#source_snapshot source_snapshot} # must be set. class GcePersistentDisk include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end end # A Docker container. # @!attribute [rw] image # @return [::String] # Optional. A Docker container image that defines a custom environment. # # Cloud Workstations provides a number of # [preconfigured # images](https://cloud.google.com/workstations/docs/preconfigured-base-images), # but you can create your own # [custom container # images](https://cloud.google.com/workstations/docs/custom-container-images). # If using a private image, the `host.gceInstance.serviceAccount` field # must be specified in the workstation configuration. # If using a custom container image, the service account must have # [Artifact Registry # Reader](https://cloud.google.com/artifact-registry/docs/access-control#roles) # permission to pull the specified image. Otherwise, the image must be # publicly accessible. # @!attribute [rw] command # @return [::Array<::String>] # Optional. If set, overrides the default ENTRYPOINT specified by the # image. # @!attribute [rw] args # @return [::Array<::String>] # Optional. Arguments passed to the entrypoint. # @!attribute [rw] env # @return [::Google::Protobuf::Map{::String => ::String}] # Optional. Environment variables passed to the container's entrypoint. # @!attribute [rw] working_dir # @return [::String] # Optional. If set, overrides the default DIR specified by the image. # @!attribute [rw] run_as_user # @return [::Integer] # Optional. If set, overrides the USER specified in the image with the # given uid. class Container include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class EnvEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end end # A customer-managed encryption key (CMEK) for the Compute Engine # resources of the associated workstation configuration. Specify the name of # your Cloud KMS encryption key and the default service account. # We recommend that you use a separate service account and follow # [Cloud KMS best # practices](https://cloud.google.com/kms/docs/separation-of-duties). # @!attribute [rw] kms_key # @return [::String] # Immutable. The name of the Google Cloud KMS encryption key. For example, # `"projects/PROJECT_ID/locations/REGION/keyRings/KEY_RING/cryptoKeys/KEY_NAME"`. # The key must be in the same region as the workstation configuration. # @!attribute [rw] kms_key_service_account # @return [::String] # Immutable. The service account to use with the specified # KMS key. We recommend that you use a separate service account # and follow KMS best practices. For more information, see # [Separation of # duties](https://cloud.google.com/kms/docs/separation-of-duties) and # `gcloud kms keys add-iam-policy-binding` # [`--member`](https://cloud.google.com/sdk/gcloud/reference/kms/keys/add-iam-policy-binding#--member). class CustomerEncryptionKey include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # A readiness check to be performed on a workstation. # @!attribute [rw] path # @return [::String] # Optional. Path to which the request should be sent. # @!attribute [rw] port # @return [::Integer] # Optional. Port to which the request should be sent. class ReadinessCheck include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # HTTP options for the running workstations. # @!attribute [rw] allowed_unauthenticated_cors_preflight_requests # @return [::Boolean] # Optional. By default, the workstations service makes sure that all # requests to the workstation are authenticated. CORS preflight requests do # not include cookies or custom headers, and so are considered # unauthenticated and blocked by the workstations service. Enabling this # option allows these unauthenticated CORS preflight requests through to # the workstation, where it becomes the responsibility of the destination # server in the workstation to validate the request. # @!attribute [rw] disable_localhost_replacement # @return [::Boolean] # Optional. By default, the workstations service replaces references to # localhost, 127.0.0.1, and 0.0.0.0 with the workstation's hostname in http # responses from the workstation so that applications under development run # properly on the workstation. This may intefere with some applications, # and so this option allows that behavior to be disabled. class HttpOptions include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # A PortRange defines a range of ports. Both # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PortRange#first first} # and # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PortRange#last last} # are inclusive. To specify a single port, both # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PortRange#first first} # and # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PortRange#last last} # should be the same. # @!attribute [rw] first # @return [::Integer] # Required. Starting port number for the current range of ports. # Valid ports are 22, 80, and ports within the range 1024-65535. # @!attribute [rw] last # @return [::Integer] # Required. Ending port number for the current range of ports. # Valid ports are 22, 80, and ports within the range 1024-65535. class PortRange include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class AnnotationsEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class LabelsEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end end |
#container ⇒ ::Google::Cloud::Workstations::V1beta::WorkstationConfig::Container
Returns Optional. Container that runs upon startup for each workstation using this workstation configuration.
420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 |
# File 'proto_docs/google/cloud/workstations/v1beta/workstations.rb', line 420 class WorkstationConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # Runtime host for a workstation. # @!attribute [rw] gce_instance # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance] # Specifies a Compute Engine instance as the host. class Host include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # A runtime using a Compute Engine instance. # @!attribute [rw] machine_type # @return [::String] # Optional. The type of machine to use for VM instances—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). # @!attribute [rw] service_account # @return [::String] # Optional. The email address of the service account for Cloud # Workstations VMs created with this configuration. When specified, be # sure that the service account has `logging.logEntries.create` and # `monitoring.timeSeries.create` permissions on the project so it can # write logs out to Cloud Logging. If using a custom container image, the # service account must have [Artifact Registry # Reader](https://cloud.google.com/artifact-registry/docs/access-control#roles) # permission to pull the specified image. # # If you as the administrator want to be able to `ssh` into the # underlying VM, you need to set this value to a service account # for which you have the `iam.serviceAccounts.actAs` permission. # Conversely, if you don't want anyone to be able to `ssh` into the # underlying VM, use a service account where no one has that # permission. # # If not set, VMs run with a service account provided by the # Cloud Workstations service, and the image must be publicly # accessible. # @!attribute [rw] service_account_scopes # @return [::Array<::String>] # Optional. Scopes to grant to the # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance#service_account service_account}. # When specified, users of workstations under this configuration must # have `iam.serviceAccounts.actAs` on the service account. # @!attribute [rw] tags # @return [::Array<::String>] # Optional. Network tags to add to the Compute Engine VMs backing the # workstations. This option applies # [network # tags](https://cloud.google.com/vpc/docs/add-remove-network-tags) to VMs # created with this configuration. These network tags enable the creation # of [firewall # rules](https://cloud.google.com/workstations/docs/configure-firewall-rules). # @!attribute [rw] pool_size # @return [::Integer] # Optional. The number of VMs that the system should keep idle so that # new workstations can be started quickly for new users. Defaults to `0` # in the API. # @!attribute [r] pooled_instances # @return [::Integer] # Output only. Number of instances currently available in the pool for # faster workstation startup. # @!attribute [rw] disable_public_ip_addresses # @return [::Boolean] # Optional. When set to true, disables public IP addresses for VMs. If # you disable public IP addresses, you must set up Private Google Access # or Cloud NAT on your network. If you use Private Google Access and you # use `private.googleapis.com` or `restricted.googleapis.com` for # Container Registry and Artifact Registry, make sure that you set # up DNS records for domains `*.gcr.io` and `*.pkg.dev`. # Defaults to false (VMs have public IP addresses). # @!attribute [rw] enable_nested_virtualization # @return [::Boolean] # Optional. Whether to enable nested virtualization on Cloud Workstations # VMs created using this workstation configuration. # # Defaults to false. # # Nested virtualization lets you run virtual machine (VM) instances # inside your workstation. Before enabling nested virtualization, # consider the following important considerations. Cloud Workstations # instances are subject to the [same restrictions as Compute Engine # instances](https://cloud.google.com/compute/docs/instances/nested-virtualization/overview#restrictions): # # * **Organization policy**: projects, folders, or # organizations may be restricted from creating nested VMs if the # **Disable VM nested virtualization** constraint is enforced in # the organization policy. For more information, see the # Compute Engine section, # [Checking whether nested virtualization is # allowed](https://cloud.google.com/compute/docs/instances/nested-virtualization/managing-constraint#checking_whether_nested_virtualization_is_allowed). # * **Performance**: nested VMs might experience a 10% or greater # decrease in performance for workloads that are CPU-bound and # possibly greater than a 10% decrease for workloads that are # input/output bound. # * **Machine Type**: nested virtualization can only be enabled on # workstation configurations that specify a # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance#machine_type machine_type} # in the N1 or N2 machine series. # @!attribute [rw] shielded_instance_config # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::GceShieldedInstanceConfig] # Optional. A set of Compute Engine Shielded instance options. # @!attribute [rw] confidential_instance_config # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::GceConfidentialInstanceConfig] # Optional. A set of Compute Engine Confidential VM instance options. # @!attribute [rw] boot_disk_size_gb # @return [::Integer] # Optional. The size of the boot disk for the VM in gigabytes (GB). # The minimum boot disk size is `30` GB. Defaults to `50` GB. # @!attribute [rw] accelerators # @return [::Array<::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::Accelerator>] # Optional. A list of the type and count of accelerator cards attached to # the instance. # @!attribute [rw] boost_configs # @return [::Array<::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::BoostConfig>] # Optional. A list of the boost configurations that workstations created # using this workstation configuration are allowed to use. If specified, # users will have the option to choose from the list of boost configs # when starting a workstation. # @!attribute [rw] disable_ssh # @return [::Boolean] # Optional. Whether to disable SSH access to the VM. # @!attribute [rw] vm_tags # @return [::Google::Protobuf::Map{::String => ::String}] # Optional. Resource manager tags to be bound to this instance. # Tag keys and values have the same definition as [resource manager # tags](https://cloud.google.com/resource-manager/docs/tags/tags-overview). # Keys must be in the format `tagKeys/{tag_key_id}`, and # values are in the format `tagValues/456`. # @!attribute [rw] reservation_affinity # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::ReservationAffinity] # Optional. # [ReservationAffinity](https://cloud.google.com/compute/docs/instances/reserving-zonal-resources) # specifies a reservation that can be consumed to create VM # instances. If SPECIFIC_RESERVATION is specified, Cloud Workstations # will only create VMs in the zone where the reservation is located. # This would affect availability since the service will no longer be # resilient to zonal outages. If ANY_RESERVATION is specified, creating # reservations in both zones that the config creates VMs in will ensure # higher availability. # **Important Considerations for Reservation Affinity:** # # * This feature is intended for advanced users and requires # familiarity with Google Compute Engine reservations. # * Using reservations incurs charges, regardless of utilization. # * The resources in the pool will consume the specified # reservation. Take this into account when setting the # pool size. # @!attribute [rw] startup_script_uri # @return [::String] # Optional. Link to the startup script stored in Cloud Storage. This # script will be run on the host workstation VM when the VM is created. # The URI must be of the form gs://\\{bucket-name}/\\{object-name}. If # specifying a startup script, the service account must have [Permission # to access the bucket and script file in Cloud # Storage](https://cloud.google.com/storage/docs/access-control/iam-permissions). # Otherwise, the script must be publicly accessible. # Note that the service regularly updates the OS version of the host VM, # and it is the responsibility of the user to ensure the script stays # compatible with the OS version. # @!attribute [rw] instance_metadata # @return [::Google::Protobuf::Map{::String => ::String}] # Optional. Custom metadata to apply to Compute Engine instances. class GceInstance include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # A set of Compute Engine Shielded instance options. # @!attribute [rw] enable_secure_boot # @return [::Boolean] # Optional. Whether the instance has Secure Boot enabled. # @!attribute [rw] enable_vtpm # @return [::Boolean] # Optional. Whether the instance has the vTPM enabled. # @!attribute [rw] enable_integrity_monitoring # @return [::Boolean] # Optional. Whether the instance has integrity monitoring enabled. class GceShieldedInstanceConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # A set of Compute Engine Confidential VM instance options. # @!attribute [rw] enable_confidential_compute # @return [::Boolean] # Optional. Whether the instance has confidential compute enabled. class GceConfidentialInstanceConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # An accelerator card attached to the instance. # @!attribute [rw] type # @return [::String] # Optional. Type of accelerator resource to attach to the instance, for # example, # `"nvidia-tesla-p100"`. # @!attribute [rw] count # @return [::Integer] # Optional. Number of accelerator cards exposed to the instance. class Accelerator include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # A boost configuration is a set of resources that a workstation can use # to increase its performance. If you specify a boost configuration, upon # startup, workstation users can choose to use a VM provisioned under the # boost config by passing the boost config ID in the start request. If # the workstation user does not provide a boost config ID in the start # request, the system will choose a VM from the pool provisioned under # the default config. # @!attribute [rw] id # @return [::String] # Required. The ID to be used for the boost configuration. # @!attribute [rw] machine_type # @return [::String] # Optional. 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`. # @!attribute [rw] accelerators # @return [::Array<::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::Accelerator>] # Optional. A list of the type and count of accelerator cards attached # to the boost instance. Defaults to `none`. # @!attribute [rw] boot_disk_size_gb # @return [::Integer] # Optional. The size of the boot disk for the VM in gigabytes (GB). # The minimum boot disk size is `30` GB. Defaults to `50` GB. # @!attribute [rw] enable_nested_virtualization # @return [::Boolean] # Optional. Whether to enable nested virtualization on boosted Cloud # Workstations VMs running using this boost configuration. # # Defaults to false. # # Nested virtualization lets you run virtual machine (VM) instances # inside your workstation. Before enabling nested virtualization, # consider the following important considerations. Cloud Workstations # instances are subject to the [same restrictions as Compute Engine # instances](https://cloud.google.com/compute/docs/instances/nested-virtualization/overview#restrictions): # # * **Organization policy**: projects, folders, or # organizations may be restricted from creating nested VMs if the # **Disable VM nested virtualization** constraint is enforced in # the organization policy. For more information, see the # Compute Engine section, # [Checking whether nested virtualization is # allowed](https://cloud.google.com/compute/docs/instances/nested-virtualization/managing-constraint#checking_whether_nested_virtualization_is_allowed). # * **Performance**: nested VMs might experience a 10% or greater # decrease in performance for workloads that are CPU-bound and # possibly greater than a 10% decrease for workloads that are # input/output bound. # * **Machine Type**: nested virtualization can only be enabled on # boost configurations that specify a # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::BoostConfig#machine_type machine_type} # in the N1 or N2 machine series. # @!attribute [rw] pool_size # @return [::Integer] # Optional. The number of boost VMs that the system should keep idle so # that workstations can be boosted quickly. Defaults to `0`. # @!attribute [rw] reservation_affinity # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::ReservationAffinity] # Optional. # [ReservationAffinity](https://cloud.google.com/compute/docs/instances/reserving-zonal-resources) # specifies a reservation that can be consumed to create boost VM # instances. If SPECIFIC_RESERVATION is specified, Cloud Workstations # will only create VMs in the zone where the reservation is located. # This would affect availability since the service will no longer be # resilient to zonal outages. If ANY_RESERVATION is specified, creating # reservations in both zones that the config creates VMs in will ensure # higher availability. # **Important Considerations for Reservation Affinity:** # # * This feature is intended for advanced users and requires # familiarity with Google Compute Engine reservations. # * Using reservations incurs charges, regardless of utilization. # * The resources in the pool will consume the specified # reservation. Take this into account when setting the # pool size. class BoostConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # ReservationAffinity is the configuration of the desired reservation # from which instances can consume resources. # @!attribute [rw] consume_reservation_type # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::ReservationAffinity::Type] # Optional. Corresponds to the type of reservation consumption. # @!attribute [rw] key # @return [::String] # Optional. Corresponds to the label key of reservation resource. # @!attribute [rw] values # @return [::Array<::String>] # Optional. Corresponds to the label values of reservation resources. # Valid values are either the name of a reservation in the same project # or "projects/\\{project}/reservations/\\{reservation}" to target a shared # reservation in the same zone but in a different project. class ReservationAffinity include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # Indicates whether to consume capacity from a reservation or not. module Type # Default value. This should not be used. TYPE_UNSPECIFIED = 0 # Do not consume from any reserved capacity. NO_RESERVATION = 1 # Consume any reservation available. ANY_RESERVATION = 2 # Must consume from a specific reservation. Must specify key value # fields for specifying the reservations. SPECIFIC_RESERVATION = 3 end end # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class VmTagsEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class InstanceMetadataEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end end end # A directory to persist across workstation sessions. Updates to this field # will not update existing workstations and will only take effect on new # workstations. # @!attribute [rw] gce_pd # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk] # A PersistentDirectory backed by a Compute Engine persistent disk. # # Note: The following fields are mutually exclusive: `gce_pd`, `gce_hd`. If a field in that set is populated, all other fields in the set will automatically be cleared. # @!attribute [rw] gce_hd # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceHyperdiskBalancedHighAvailability] # A PersistentDirectory backed by a Compute Engine hyperdisk high # availability disk. # # Note: The following fields are mutually exclusive: `gce_hd`, `gce_pd`. If a field in that set is populated, all other fields in the set will automatically be cleared. # @!attribute [rw] mount_path # @return [::String] # Optional. Location of this directory in the running workstation. class PersistentDirectory include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # A Persistent Directory backed by a Compute Engine regional persistent # disk. The # {::Google::Cloud::Workstations::V1beta::WorkstationConfig#persistent_directories persistent_directories} # field is repeated, but it may contain only one entry. It creates a # [persistent # disk](https://cloud.google.com/compute/docs/disks/persistent-disks) that # mounts to the workstation VM at `/home` when the session starts and # detaches when the session ends. If this field is empty, workstations # created with this configuration do not have a persistent home # directory. # @!attribute [rw] size_gb # @return [::Integer] # Optional. The GB capacity of a persistent home directory for each # workstation created with this configuration. Must be empty if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk#source_snapshot source_snapshot} # is set. # # Valid values are `10`, `50`, `100`, `200`, `500`, or `1000`. # Defaults to `200`. If less than `200` GB, the # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk#disk_type disk_type} # must be # `"pd-balanced"` or `"pd-ssd"`. # @!attribute [rw] max_size_gb # @return [::Integer] # Optional. Maximum size in GB to which this persistent directory can be # resized. Defaults to unlimited if not set. # @!attribute [rw] fs_type # @return [::String] # Optional. Type of file system that the disk should be formatted with. # The workstation image must support this file system type. Must be empty # if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk#source_snapshot source_snapshot} # is set. Defaults to `"ext4"`. # @!attribute [rw] disk_type # @return [::String] # Optional. The [type of the persistent # disk](https://cloud.google.com/compute/docs/disks#disk-types) for the # home directory. Defaults to `"pd-standard"`. # @!attribute [rw] source_snapshot # @return [::String] # Optional. Name of the snapshot to use as the source for the disk. If # set, # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk#size_gb size_gb} # and # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk#fs_type fs_type} # must be empty. Must be formatted as ext4 file system with no # partitions. # @!attribute [rw] reclaim_policy # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk::ReclaimPolicy] # Optional. Whether the persistent disk should be deleted when the # workstation is deleted. Valid values are `DELETE` and `RETAIN`. # Defaults to `DELETE`. # @!attribute [rw] archive_timeout # @return [::Google::Protobuf::Duration] # Optional. Number of seconds to wait after initially creating or # subsequently shutting down the workstation before converting its disk # into a snapshot. This generally saves costs at the expense of greater # startup time on next workstation start, as the service will need to # create a disk from the archival snapshot. # # A value of `"0s"` indicates that the disk will never be archived. class GceRegionalPersistentDisk include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # Value representing what should happen to the disk after the workstation # is deleted. module ReclaimPolicy # Do not use. RECLAIM_POLICY_UNSPECIFIED = 0 # Delete the persistent disk when deleting the workstation. DELETE = 1 # Keep the persistent disk when deleting the workstation. # An administrator must manually delete the disk. RETAIN = 2 end end # A Persistent Directory backed by a Compute Engine # [Hyperdisk Balanced High Availability # Disk](https://cloud.google.com/compute/docs/disks/hd-types/hyperdisk-balanced-ha). # This is a high-availability block storage solution that offers a balance # between performance and cost for most general-purpose workloads. # @!attribute [rw] size_gb # @return [::Integer] # Optional. The GB capacity of a persistent home directory for each # workstation created with this configuration. Must be empty if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceHyperdiskBalancedHighAvailability#source_snapshot source_snapshot} # is set. # # Valid values are `10`, `50`, `100`, `200`, `500`, or `1000`. # Defaults to `200`. # @!attribute [rw] max_size_gb # @return [::Integer] # Optional. Maximum size in GB to which this persistent directory can be # resized. Defaults to unlimited if not set. # @!attribute [rw] source_snapshot # @return [::String] # Optional. Name of the snapshot to use as the source for the disk. If # set, # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceHyperdiskBalancedHighAvailability#size_gb size_gb} # must be empty. Must be formatted as ext4 file system with no # partitions. # @!attribute [rw] reclaim_policy # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceHyperdiskBalancedHighAvailability::ReclaimPolicy] # Optional. Whether the persistent disk should be deleted when the # workstation is deleted. Valid values are `DELETE` and `RETAIN`. # Defaults to `DELETE`. # @!attribute [rw] archive_timeout # @return [::Google::Protobuf::Duration] # Optional. Number of seconds to wait after initially creating or # subsequently shutting down the workstation before converting its disk # into a snapshot. This generally saves costs at the expense of greater # startup time on next workstation start, as the service will need to # create a disk from the archival snapshot. # # A value of `"0s"` indicates that the disk will never be archived. class GceHyperdiskBalancedHighAvailability include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # Value representing what should happen to the disk after the workstation # is deleted. module ReclaimPolicy # Do not use. RECLAIM_POLICY_UNSPECIFIED = 0 # Delete the persistent disk when deleting the workstation. DELETE = 1 # Keep the persistent disk when deleting the workstation. # An administrator must manually delete the disk. RETAIN = 2 end end end # An ephemeral directory which won't persist across workstation sessions. It # is freshly created on every workstation start operation. # @!attribute [rw] gce_pd # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk] # An EphemeralDirectory backed by a Compute Engine persistent disk. # @!attribute [rw] mount_path # @return [::String] # Required. Location of this directory in the running workstation. class EphemeralDirectory include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # An EphemeralDirectory is backed by a Compute Engine persistent disk. # @!attribute [rw] disk_type # @return [::String] # Optional. Type of the disk to use. Defaults to `"pd-standard"`. # @!attribute [rw] source_snapshot # @return [::String] # Optional. Name of the snapshot to use as the source for the disk. Must # be empty if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#source_image source_image} # is set. Must be empty if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#read_only read_only} # is false. Updating # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#source_snapshot source_snapshot} # will update content in the ephemeral directory after the workstation is # restarted. # # Only file systems supported by Container-Optimized OS (COS) # are explicitly supported. For a list of supported file systems, see # [the filesystems available in Container-Optimized # OS](https://cloud.google.com/container-optimized-os/docs/concepts/supported-filesystems). # # This field is mutable. # @!attribute [rw] source_image # @return [::String] # Optional. Name of the disk image to use as the source for the disk. # Must be empty if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#source_snapshot source_snapshot} # is set. Updating # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#source_image source_image} # will update content in the ephemeral directory after the workstation is # restarted. # # Only file systems supported by Container-Optimized OS (COS) # are explicitly supported. For a list of supported file systems, please # refer to the [COS # documentation](https://cloud.google.com/container-optimized-os/docs/concepts/supported-filesystems). # # This field is mutable. # @!attribute [rw] read_only # @return [::Boolean] # Optional. Whether the disk is read only. If true, the disk may be # shared by multiple VMs and # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#source_snapshot source_snapshot} # must be set. class GcePersistentDisk include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end end # A Docker container. # @!attribute [rw] image # @return [::String] # Optional. A Docker container image that defines a custom environment. # # Cloud Workstations provides a number of # [preconfigured # images](https://cloud.google.com/workstations/docs/preconfigured-base-images), # but you can create your own # [custom container # images](https://cloud.google.com/workstations/docs/custom-container-images). # If using a private image, the `host.gceInstance.serviceAccount` field # must be specified in the workstation configuration. # If using a custom container image, the service account must have # [Artifact Registry # Reader](https://cloud.google.com/artifact-registry/docs/access-control#roles) # permission to pull the specified image. Otherwise, the image must be # publicly accessible. # @!attribute [rw] command # @return [::Array<::String>] # Optional. If set, overrides the default ENTRYPOINT specified by the # image. # @!attribute [rw] args # @return [::Array<::String>] # Optional. Arguments passed to the entrypoint. # @!attribute [rw] env # @return [::Google::Protobuf::Map{::String => ::String}] # Optional. Environment variables passed to the container's entrypoint. # @!attribute [rw] working_dir # @return [::String] # Optional. If set, overrides the default DIR specified by the image. # @!attribute [rw] run_as_user # @return [::Integer] # Optional. If set, overrides the USER specified in the image with the # given uid. class Container include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class EnvEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end end # A customer-managed encryption key (CMEK) for the Compute Engine # resources of the associated workstation configuration. Specify the name of # your Cloud KMS encryption key and the default service account. # We recommend that you use a separate service account and follow # [Cloud KMS best # practices](https://cloud.google.com/kms/docs/separation-of-duties). # @!attribute [rw] kms_key # @return [::String] # Immutable. The name of the Google Cloud KMS encryption key. For example, # `"projects/PROJECT_ID/locations/REGION/keyRings/KEY_RING/cryptoKeys/KEY_NAME"`. # The key must be in the same region as the workstation configuration. # @!attribute [rw] kms_key_service_account # @return [::String] # Immutable. The service account to use with the specified # KMS key. We recommend that you use a separate service account # and follow KMS best practices. For more information, see # [Separation of # duties](https://cloud.google.com/kms/docs/separation-of-duties) and # `gcloud kms keys add-iam-policy-binding` # [`--member`](https://cloud.google.com/sdk/gcloud/reference/kms/keys/add-iam-policy-binding#--member). class CustomerEncryptionKey include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # A readiness check to be performed on a workstation. # @!attribute [rw] path # @return [::String] # Optional. Path to which the request should be sent. # @!attribute [rw] port # @return [::Integer] # Optional. Port to which the request should be sent. class ReadinessCheck include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # HTTP options for the running workstations. # @!attribute [rw] allowed_unauthenticated_cors_preflight_requests # @return [::Boolean] # Optional. By default, the workstations service makes sure that all # requests to the workstation are authenticated. CORS preflight requests do # not include cookies or custom headers, and so are considered # unauthenticated and blocked by the workstations service. Enabling this # option allows these unauthenticated CORS preflight requests through to # the workstation, where it becomes the responsibility of the destination # server in the workstation to validate the request. # @!attribute [rw] disable_localhost_replacement # @return [::Boolean] # Optional. By default, the workstations service replaces references to # localhost, 127.0.0.1, and 0.0.0.0 with the workstation's hostname in http # responses from the workstation so that applications under development run # properly on the workstation. This may intefere with some applications, # and so this option allows that behavior to be disabled. class HttpOptions include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # A PortRange defines a range of ports. Both # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PortRange#first first} # and # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PortRange#last last} # are inclusive. To specify a single port, both # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PortRange#first first} # and # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PortRange#last last} # should be the same. # @!attribute [rw] first # @return [::Integer] # Required. Starting port number for the current range of ports. # Valid ports are 22, 80, and ports within the range 1024-65535. # @!attribute [rw] last # @return [::Integer] # Required. Ending port number for the current range of ports. # Valid ports are 22, 80, and ports within the range 1024-65535. class PortRange include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class AnnotationsEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class LabelsEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end end |
#create_time ⇒ ::Google::Protobuf::Timestamp (readonly)
Returns Output only. Time when this workstation configuration was created.
420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 |
# File 'proto_docs/google/cloud/workstations/v1beta/workstations.rb', line 420 class WorkstationConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # Runtime host for a workstation. # @!attribute [rw] gce_instance # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance] # Specifies a Compute Engine instance as the host. class Host include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # A runtime using a Compute Engine instance. # @!attribute [rw] machine_type # @return [::String] # Optional. The type of machine to use for VM instances—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). # @!attribute [rw] service_account # @return [::String] # Optional. The email address of the service account for Cloud # Workstations VMs created with this configuration. When specified, be # sure that the service account has `logging.logEntries.create` and # `monitoring.timeSeries.create` permissions on the project so it can # write logs out to Cloud Logging. If using a custom container image, the # service account must have [Artifact Registry # Reader](https://cloud.google.com/artifact-registry/docs/access-control#roles) # permission to pull the specified image. # # If you as the administrator want to be able to `ssh` into the # underlying VM, you need to set this value to a service account # for which you have the `iam.serviceAccounts.actAs` permission. # Conversely, if you don't want anyone to be able to `ssh` into the # underlying VM, use a service account where no one has that # permission. # # If not set, VMs run with a service account provided by the # Cloud Workstations service, and the image must be publicly # accessible. # @!attribute [rw] service_account_scopes # @return [::Array<::String>] # Optional. Scopes to grant to the # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance#service_account service_account}. # When specified, users of workstations under this configuration must # have `iam.serviceAccounts.actAs` on the service account. # @!attribute [rw] tags # @return [::Array<::String>] # Optional. Network tags to add to the Compute Engine VMs backing the # workstations. This option applies # [network # tags](https://cloud.google.com/vpc/docs/add-remove-network-tags) to VMs # created with this configuration. These network tags enable the creation # of [firewall # rules](https://cloud.google.com/workstations/docs/configure-firewall-rules). # @!attribute [rw] pool_size # @return [::Integer] # Optional. The number of VMs that the system should keep idle so that # new workstations can be started quickly for new users. Defaults to `0` # in the API. # @!attribute [r] pooled_instances # @return [::Integer] # Output only. Number of instances currently available in the pool for # faster workstation startup. # @!attribute [rw] disable_public_ip_addresses # @return [::Boolean] # Optional. When set to true, disables public IP addresses for VMs. If # you disable public IP addresses, you must set up Private Google Access # or Cloud NAT on your network. If you use Private Google Access and you # use `private.googleapis.com` or `restricted.googleapis.com` for # Container Registry and Artifact Registry, make sure that you set # up DNS records for domains `*.gcr.io` and `*.pkg.dev`. # Defaults to false (VMs have public IP addresses). # @!attribute [rw] enable_nested_virtualization # @return [::Boolean] # Optional. Whether to enable nested virtualization on Cloud Workstations # VMs created using this workstation configuration. # # Defaults to false. # # Nested virtualization lets you run virtual machine (VM) instances # inside your workstation. Before enabling nested virtualization, # consider the following important considerations. Cloud Workstations # instances are subject to the [same restrictions as Compute Engine # instances](https://cloud.google.com/compute/docs/instances/nested-virtualization/overview#restrictions): # # * **Organization policy**: projects, folders, or # organizations may be restricted from creating nested VMs if the # **Disable VM nested virtualization** constraint is enforced in # the organization policy. For more information, see the # Compute Engine section, # [Checking whether nested virtualization is # allowed](https://cloud.google.com/compute/docs/instances/nested-virtualization/managing-constraint#checking_whether_nested_virtualization_is_allowed). # * **Performance**: nested VMs might experience a 10% or greater # decrease in performance for workloads that are CPU-bound and # possibly greater than a 10% decrease for workloads that are # input/output bound. # * **Machine Type**: nested virtualization can only be enabled on # workstation configurations that specify a # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance#machine_type machine_type} # in the N1 or N2 machine series. # @!attribute [rw] shielded_instance_config # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::GceShieldedInstanceConfig] # Optional. A set of Compute Engine Shielded instance options. # @!attribute [rw] confidential_instance_config # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::GceConfidentialInstanceConfig] # Optional. A set of Compute Engine Confidential VM instance options. # @!attribute [rw] boot_disk_size_gb # @return [::Integer] # Optional. The size of the boot disk for the VM in gigabytes (GB). # The minimum boot disk size is `30` GB. Defaults to `50` GB. # @!attribute [rw] accelerators # @return [::Array<::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::Accelerator>] # Optional. A list of the type and count of accelerator cards attached to # the instance. # @!attribute [rw] boost_configs # @return [::Array<::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::BoostConfig>] # Optional. A list of the boost configurations that workstations created # using this workstation configuration are allowed to use. If specified, # users will have the option to choose from the list of boost configs # when starting a workstation. # @!attribute [rw] disable_ssh # @return [::Boolean] # Optional. Whether to disable SSH access to the VM. # @!attribute [rw] vm_tags # @return [::Google::Protobuf::Map{::String => ::String}] # Optional. Resource manager tags to be bound to this instance. # Tag keys and values have the same definition as [resource manager # tags](https://cloud.google.com/resource-manager/docs/tags/tags-overview). # Keys must be in the format `tagKeys/{tag_key_id}`, and # values are in the format `tagValues/456`. # @!attribute [rw] reservation_affinity # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::ReservationAffinity] # Optional. # [ReservationAffinity](https://cloud.google.com/compute/docs/instances/reserving-zonal-resources) # specifies a reservation that can be consumed to create VM # instances. If SPECIFIC_RESERVATION is specified, Cloud Workstations # will only create VMs in the zone where the reservation is located. # This would affect availability since the service will no longer be # resilient to zonal outages. If ANY_RESERVATION is specified, creating # reservations in both zones that the config creates VMs in will ensure # higher availability. # **Important Considerations for Reservation Affinity:** # # * This feature is intended for advanced users and requires # familiarity with Google Compute Engine reservations. # * Using reservations incurs charges, regardless of utilization. # * The resources in the pool will consume the specified # reservation. Take this into account when setting the # pool size. # @!attribute [rw] startup_script_uri # @return [::String] # Optional. Link to the startup script stored in Cloud Storage. This # script will be run on the host workstation VM when the VM is created. # The URI must be of the form gs://\\{bucket-name}/\\{object-name}. If # specifying a startup script, the service account must have [Permission # to access the bucket and script file in Cloud # Storage](https://cloud.google.com/storage/docs/access-control/iam-permissions). # Otherwise, the script must be publicly accessible. # Note that the service regularly updates the OS version of the host VM, # and it is the responsibility of the user to ensure the script stays # compatible with the OS version. # @!attribute [rw] instance_metadata # @return [::Google::Protobuf::Map{::String => ::String}] # Optional. Custom metadata to apply to Compute Engine instances. class GceInstance include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # A set of Compute Engine Shielded instance options. # @!attribute [rw] enable_secure_boot # @return [::Boolean] # Optional. Whether the instance has Secure Boot enabled. # @!attribute [rw] enable_vtpm # @return [::Boolean] # Optional. Whether the instance has the vTPM enabled. # @!attribute [rw] enable_integrity_monitoring # @return [::Boolean] # Optional. Whether the instance has integrity monitoring enabled. class GceShieldedInstanceConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # A set of Compute Engine Confidential VM instance options. # @!attribute [rw] enable_confidential_compute # @return [::Boolean] # Optional. Whether the instance has confidential compute enabled. class GceConfidentialInstanceConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # An accelerator card attached to the instance. # @!attribute [rw] type # @return [::String] # Optional. Type of accelerator resource to attach to the instance, for # example, # `"nvidia-tesla-p100"`. # @!attribute [rw] count # @return [::Integer] # Optional. Number of accelerator cards exposed to the instance. class Accelerator include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # A boost configuration is a set of resources that a workstation can use # to increase its performance. If you specify a boost configuration, upon # startup, workstation users can choose to use a VM provisioned under the # boost config by passing the boost config ID in the start request. If # the workstation user does not provide a boost config ID in the start # request, the system will choose a VM from the pool provisioned under # the default config. # @!attribute [rw] id # @return [::String] # Required. The ID to be used for the boost configuration. # @!attribute [rw] machine_type # @return [::String] # Optional. 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`. # @!attribute [rw] accelerators # @return [::Array<::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::Accelerator>] # Optional. A list of the type and count of accelerator cards attached # to the boost instance. Defaults to `none`. # @!attribute [rw] boot_disk_size_gb # @return [::Integer] # Optional. The size of the boot disk for the VM in gigabytes (GB). # The minimum boot disk size is `30` GB. Defaults to `50` GB. # @!attribute [rw] enable_nested_virtualization # @return [::Boolean] # Optional. Whether to enable nested virtualization on boosted Cloud # Workstations VMs running using this boost configuration. # # Defaults to false. # # Nested virtualization lets you run virtual machine (VM) instances # inside your workstation. Before enabling nested virtualization, # consider the following important considerations. Cloud Workstations # instances are subject to the [same restrictions as Compute Engine # instances](https://cloud.google.com/compute/docs/instances/nested-virtualization/overview#restrictions): # # * **Organization policy**: projects, folders, or # organizations may be restricted from creating nested VMs if the # **Disable VM nested virtualization** constraint is enforced in # the organization policy. For more information, see the # Compute Engine section, # [Checking whether nested virtualization is # allowed](https://cloud.google.com/compute/docs/instances/nested-virtualization/managing-constraint#checking_whether_nested_virtualization_is_allowed). # * **Performance**: nested VMs might experience a 10% or greater # decrease in performance for workloads that are CPU-bound and # possibly greater than a 10% decrease for workloads that are # input/output bound. # * **Machine Type**: nested virtualization can only be enabled on # boost configurations that specify a # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::BoostConfig#machine_type machine_type} # in the N1 or N2 machine series. # @!attribute [rw] pool_size # @return [::Integer] # Optional. The number of boost VMs that the system should keep idle so # that workstations can be boosted quickly. Defaults to `0`. # @!attribute [rw] reservation_affinity # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::ReservationAffinity] # Optional. # [ReservationAffinity](https://cloud.google.com/compute/docs/instances/reserving-zonal-resources) # specifies a reservation that can be consumed to create boost VM # instances. If SPECIFIC_RESERVATION is specified, Cloud Workstations # will only create VMs in the zone where the reservation is located. # This would affect availability since the service will no longer be # resilient to zonal outages. If ANY_RESERVATION is specified, creating # reservations in both zones that the config creates VMs in will ensure # higher availability. # **Important Considerations for Reservation Affinity:** # # * This feature is intended for advanced users and requires # familiarity with Google Compute Engine reservations. # * Using reservations incurs charges, regardless of utilization. # * The resources in the pool will consume the specified # reservation. Take this into account when setting the # pool size. class BoostConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # ReservationAffinity is the configuration of the desired reservation # from which instances can consume resources. # @!attribute [rw] consume_reservation_type # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::ReservationAffinity::Type] # Optional. Corresponds to the type of reservation consumption. # @!attribute [rw] key # @return [::String] # Optional. Corresponds to the label key of reservation resource. # @!attribute [rw] values # @return [::Array<::String>] # Optional. Corresponds to the label values of reservation resources. # Valid values are either the name of a reservation in the same project # or "projects/\\{project}/reservations/\\{reservation}" to target a shared # reservation in the same zone but in a different project. class ReservationAffinity include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # Indicates whether to consume capacity from a reservation or not. module Type # Default value. This should not be used. TYPE_UNSPECIFIED = 0 # Do not consume from any reserved capacity. NO_RESERVATION = 1 # Consume any reservation available. ANY_RESERVATION = 2 # Must consume from a specific reservation. Must specify key value # fields for specifying the reservations. SPECIFIC_RESERVATION = 3 end end # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class VmTagsEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class InstanceMetadataEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end end end # A directory to persist across workstation sessions. Updates to this field # will not update existing workstations and will only take effect on new # workstations. # @!attribute [rw] gce_pd # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk] # A PersistentDirectory backed by a Compute Engine persistent disk. # # Note: The following fields are mutually exclusive: `gce_pd`, `gce_hd`. If a field in that set is populated, all other fields in the set will automatically be cleared. # @!attribute [rw] gce_hd # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceHyperdiskBalancedHighAvailability] # A PersistentDirectory backed by a Compute Engine hyperdisk high # availability disk. # # Note: The following fields are mutually exclusive: `gce_hd`, `gce_pd`. If a field in that set is populated, all other fields in the set will automatically be cleared. # @!attribute [rw] mount_path # @return [::String] # Optional. Location of this directory in the running workstation. class PersistentDirectory include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # A Persistent Directory backed by a Compute Engine regional persistent # disk. The # {::Google::Cloud::Workstations::V1beta::WorkstationConfig#persistent_directories persistent_directories} # field is repeated, but it may contain only one entry. It creates a # [persistent # disk](https://cloud.google.com/compute/docs/disks/persistent-disks) that # mounts to the workstation VM at `/home` when the session starts and # detaches when the session ends. If this field is empty, workstations # created with this configuration do not have a persistent home # directory. # @!attribute [rw] size_gb # @return [::Integer] # Optional. The GB capacity of a persistent home directory for each # workstation created with this configuration. Must be empty if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk#source_snapshot source_snapshot} # is set. # # Valid values are `10`, `50`, `100`, `200`, `500`, or `1000`. # Defaults to `200`. If less than `200` GB, the # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk#disk_type disk_type} # must be # `"pd-balanced"` or `"pd-ssd"`. # @!attribute [rw] max_size_gb # @return [::Integer] # Optional. Maximum size in GB to which this persistent directory can be # resized. Defaults to unlimited if not set. # @!attribute [rw] fs_type # @return [::String] # Optional. Type of file system that the disk should be formatted with. # The workstation image must support this file system type. Must be empty # if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk#source_snapshot source_snapshot} # is set. Defaults to `"ext4"`. # @!attribute [rw] disk_type # @return [::String] # Optional. The [type of the persistent # disk](https://cloud.google.com/compute/docs/disks#disk-types) for the # home directory. Defaults to `"pd-standard"`. # @!attribute [rw] source_snapshot # @return [::String] # Optional. Name of the snapshot to use as the source for the disk. If # set, # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk#size_gb size_gb} # and # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk#fs_type fs_type} # must be empty. Must be formatted as ext4 file system with no # partitions. # @!attribute [rw] reclaim_policy # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk::ReclaimPolicy] # Optional. Whether the persistent disk should be deleted when the # workstation is deleted. Valid values are `DELETE` and `RETAIN`. # Defaults to `DELETE`. # @!attribute [rw] archive_timeout # @return [::Google::Protobuf::Duration] # Optional. Number of seconds to wait after initially creating or # subsequently shutting down the workstation before converting its disk # into a snapshot. This generally saves costs at the expense of greater # startup time on next workstation start, as the service will need to # create a disk from the archival snapshot. # # A value of `"0s"` indicates that the disk will never be archived. class GceRegionalPersistentDisk include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # Value representing what should happen to the disk after the workstation # is deleted. module ReclaimPolicy # Do not use. RECLAIM_POLICY_UNSPECIFIED = 0 # Delete the persistent disk when deleting the workstation. DELETE = 1 # Keep the persistent disk when deleting the workstation. # An administrator must manually delete the disk. RETAIN = 2 end end # A Persistent Directory backed by a Compute Engine # [Hyperdisk Balanced High Availability # Disk](https://cloud.google.com/compute/docs/disks/hd-types/hyperdisk-balanced-ha). # This is a high-availability block storage solution that offers a balance # between performance and cost for most general-purpose workloads. # @!attribute [rw] size_gb # @return [::Integer] # Optional. The GB capacity of a persistent home directory for each # workstation created with this configuration. Must be empty if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceHyperdiskBalancedHighAvailability#source_snapshot source_snapshot} # is set. # # Valid values are `10`, `50`, `100`, `200`, `500`, or `1000`. # Defaults to `200`. # @!attribute [rw] max_size_gb # @return [::Integer] # Optional. Maximum size in GB to which this persistent directory can be # resized. Defaults to unlimited if not set. # @!attribute [rw] source_snapshot # @return [::String] # Optional. Name of the snapshot to use as the source for the disk. If # set, # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceHyperdiskBalancedHighAvailability#size_gb size_gb} # must be empty. Must be formatted as ext4 file system with no # partitions. # @!attribute [rw] reclaim_policy # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceHyperdiskBalancedHighAvailability::ReclaimPolicy] # Optional. Whether the persistent disk should be deleted when the # workstation is deleted. Valid values are `DELETE` and `RETAIN`. # Defaults to `DELETE`. # @!attribute [rw] archive_timeout # @return [::Google::Protobuf::Duration] # Optional. Number of seconds to wait after initially creating or # subsequently shutting down the workstation before converting its disk # into a snapshot. This generally saves costs at the expense of greater # startup time on next workstation start, as the service will need to # create a disk from the archival snapshot. # # A value of `"0s"` indicates that the disk will never be archived. class GceHyperdiskBalancedHighAvailability include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # Value representing what should happen to the disk after the workstation # is deleted. module ReclaimPolicy # Do not use. RECLAIM_POLICY_UNSPECIFIED = 0 # Delete the persistent disk when deleting the workstation. DELETE = 1 # Keep the persistent disk when deleting the workstation. # An administrator must manually delete the disk. RETAIN = 2 end end end # An ephemeral directory which won't persist across workstation sessions. It # is freshly created on every workstation start operation. # @!attribute [rw] gce_pd # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk] # An EphemeralDirectory backed by a Compute Engine persistent disk. # @!attribute [rw] mount_path # @return [::String] # Required. Location of this directory in the running workstation. class EphemeralDirectory include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # An EphemeralDirectory is backed by a Compute Engine persistent disk. # @!attribute [rw] disk_type # @return [::String] # Optional. Type of the disk to use. Defaults to `"pd-standard"`. # @!attribute [rw] source_snapshot # @return [::String] # Optional. Name of the snapshot to use as the source for the disk. Must # be empty if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#source_image source_image} # is set. Must be empty if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#read_only read_only} # is false. Updating # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#source_snapshot source_snapshot} # will update content in the ephemeral directory after the workstation is # restarted. # # Only file systems supported by Container-Optimized OS (COS) # are explicitly supported. For a list of supported file systems, see # [the filesystems available in Container-Optimized # OS](https://cloud.google.com/container-optimized-os/docs/concepts/supported-filesystems). # # This field is mutable. # @!attribute [rw] source_image # @return [::String] # Optional. Name of the disk image to use as the source for the disk. # Must be empty if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#source_snapshot source_snapshot} # is set. Updating # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#source_image source_image} # will update content in the ephemeral directory after the workstation is # restarted. # # Only file systems supported by Container-Optimized OS (COS) # are explicitly supported. For a list of supported file systems, please # refer to the [COS # documentation](https://cloud.google.com/container-optimized-os/docs/concepts/supported-filesystems). # # This field is mutable. # @!attribute [rw] read_only # @return [::Boolean] # Optional. Whether the disk is read only. If true, the disk may be # shared by multiple VMs and # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#source_snapshot source_snapshot} # must be set. class GcePersistentDisk include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end end # A Docker container. # @!attribute [rw] image # @return [::String] # Optional. A Docker container image that defines a custom environment. # # Cloud Workstations provides a number of # [preconfigured # images](https://cloud.google.com/workstations/docs/preconfigured-base-images), # but you can create your own # [custom container # images](https://cloud.google.com/workstations/docs/custom-container-images). # If using a private image, the `host.gceInstance.serviceAccount` field # must be specified in the workstation configuration. # If using a custom container image, the service account must have # [Artifact Registry # Reader](https://cloud.google.com/artifact-registry/docs/access-control#roles) # permission to pull the specified image. Otherwise, the image must be # publicly accessible. # @!attribute [rw] command # @return [::Array<::String>] # Optional. If set, overrides the default ENTRYPOINT specified by the # image. # @!attribute [rw] args # @return [::Array<::String>] # Optional. Arguments passed to the entrypoint. # @!attribute [rw] env # @return [::Google::Protobuf::Map{::String => ::String}] # Optional. Environment variables passed to the container's entrypoint. # @!attribute [rw] working_dir # @return [::String] # Optional. If set, overrides the default DIR specified by the image. # @!attribute [rw] run_as_user # @return [::Integer] # Optional. If set, overrides the USER specified in the image with the # given uid. class Container include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class EnvEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end end # A customer-managed encryption key (CMEK) for the Compute Engine # resources of the associated workstation configuration. Specify the name of # your Cloud KMS encryption key and the default service account. # We recommend that you use a separate service account and follow # [Cloud KMS best # practices](https://cloud.google.com/kms/docs/separation-of-duties). # @!attribute [rw] kms_key # @return [::String] # Immutable. The name of the Google Cloud KMS encryption key. For example, # `"projects/PROJECT_ID/locations/REGION/keyRings/KEY_RING/cryptoKeys/KEY_NAME"`. # The key must be in the same region as the workstation configuration. # @!attribute [rw] kms_key_service_account # @return [::String] # Immutable. The service account to use with the specified # KMS key. We recommend that you use a separate service account # and follow KMS best practices. For more information, see # [Separation of # duties](https://cloud.google.com/kms/docs/separation-of-duties) and # `gcloud kms keys add-iam-policy-binding` # [`--member`](https://cloud.google.com/sdk/gcloud/reference/kms/keys/add-iam-policy-binding#--member). class CustomerEncryptionKey include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # A readiness check to be performed on a workstation. # @!attribute [rw] path # @return [::String] # Optional. Path to which the request should be sent. # @!attribute [rw] port # @return [::Integer] # Optional. Port to which the request should be sent. class ReadinessCheck include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # HTTP options for the running workstations. # @!attribute [rw] allowed_unauthenticated_cors_preflight_requests # @return [::Boolean] # Optional. By default, the workstations service makes sure that all # requests to the workstation are authenticated. CORS preflight requests do # not include cookies or custom headers, and so are considered # unauthenticated and blocked by the workstations service. Enabling this # option allows these unauthenticated CORS preflight requests through to # the workstation, where it becomes the responsibility of the destination # server in the workstation to validate the request. # @!attribute [rw] disable_localhost_replacement # @return [::Boolean] # Optional. By default, the workstations service replaces references to # localhost, 127.0.0.1, and 0.0.0.0 with the workstation's hostname in http # responses from the workstation so that applications under development run # properly on the workstation. This may intefere with some applications, # and so this option allows that behavior to be disabled. class HttpOptions include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # A PortRange defines a range of ports. Both # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PortRange#first first} # and # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PortRange#last last} # are inclusive. To specify a single port, both # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PortRange#first first} # and # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PortRange#last last} # should be the same. # @!attribute [rw] first # @return [::Integer] # Required. Starting port number for the current range of ports. # Valid ports are 22, 80, and ports within the range 1024-65535. # @!attribute [rw] last # @return [::Integer] # Required. Ending port number for the current range of ports. # Valid ports are 22, 80, and ports within the range 1024-65535. class PortRange include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class AnnotationsEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class LabelsEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end end |
#degraded ⇒ ::Boolean (readonly)
Returns Output only. Whether this workstation configuration is in degraded mode, in which case it may require user action to restore full functionality. The conditions field contains detailed information about the status of the configuration.
420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 |
# File 'proto_docs/google/cloud/workstations/v1beta/workstations.rb', line 420 class WorkstationConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # Runtime host for a workstation. # @!attribute [rw] gce_instance # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance] # Specifies a Compute Engine instance as the host. class Host include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # A runtime using a Compute Engine instance. # @!attribute [rw] machine_type # @return [::String] # Optional. The type of machine to use for VM instances—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). # @!attribute [rw] service_account # @return [::String] # Optional. The email address of the service account for Cloud # Workstations VMs created with this configuration. When specified, be # sure that the service account has `logging.logEntries.create` and # `monitoring.timeSeries.create` permissions on the project so it can # write logs out to Cloud Logging. If using a custom container image, the # service account must have [Artifact Registry # Reader](https://cloud.google.com/artifact-registry/docs/access-control#roles) # permission to pull the specified image. # # If you as the administrator want to be able to `ssh` into the # underlying VM, you need to set this value to a service account # for which you have the `iam.serviceAccounts.actAs` permission. # Conversely, if you don't want anyone to be able to `ssh` into the # underlying VM, use a service account where no one has that # permission. # # If not set, VMs run with a service account provided by the # Cloud Workstations service, and the image must be publicly # accessible. # @!attribute [rw] service_account_scopes # @return [::Array<::String>] # Optional. Scopes to grant to the # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance#service_account service_account}. # When specified, users of workstations under this configuration must # have `iam.serviceAccounts.actAs` on the service account. # @!attribute [rw] tags # @return [::Array<::String>] # Optional. Network tags to add to the Compute Engine VMs backing the # workstations. This option applies # [network # tags](https://cloud.google.com/vpc/docs/add-remove-network-tags) to VMs # created with this configuration. These network tags enable the creation # of [firewall # rules](https://cloud.google.com/workstations/docs/configure-firewall-rules). # @!attribute [rw] pool_size # @return [::Integer] # Optional. The number of VMs that the system should keep idle so that # new workstations can be started quickly for new users. Defaults to `0` # in the API. # @!attribute [r] pooled_instances # @return [::Integer] # Output only. Number of instances currently available in the pool for # faster workstation startup. # @!attribute [rw] disable_public_ip_addresses # @return [::Boolean] # Optional. When set to true, disables public IP addresses for VMs. If # you disable public IP addresses, you must set up Private Google Access # or Cloud NAT on your network. If you use Private Google Access and you # use `private.googleapis.com` or `restricted.googleapis.com` for # Container Registry and Artifact Registry, make sure that you set # up DNS records for domains `*.gcr.io` and `*.pkg.dev`. # Defaults to false (VMs have public IP addresses). # @!attribute [rw] enable_nested_virtualization # @return [::Boolean] # Optional. Whether to enable nested virtualization on Cloud Workstations # VMs created using this workstation configuration. # # Defaults to false. # # Nested virtualization lets you run virtual machine (VM) instances # inside your workstation. Before enabling nested virtualization, # consider the following important considerations. Cloud Workstations # instances are subject to the [same restrictions as Compute Engine # instances](https://cloud.google.com/compute/docs/instances/nested-virtualization/overview#restrictions): # # * **Organization policy**: projects, folders, or # organizations may be restricted from creating nested VMs if the # **Disable VM nested virtualization** constraint is enforced in # the organization policy. For more information, see the # Compute Engine section, # [Checking whether nested virtualization is # allowed](https://cloud.google.com/compute/docs/instances/nested-virtualization/managing-constraint#checking_whether_nested_virtualization_is_allowed). # * **Performance**: nested VMs might experience a 10% or greater # decrease in performance for workloads that are CPU-bound and # possibly greater than a 10% decrease for workloads that are # input/output bound. # * **Machine Type**: nested virtualization can only be enabled on # workstation configurations that specify a # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance#machine_type machine_type} # in the N1 or N2 machine series. # @!attribute [rw] shielded_instance_config # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::GceShieldedInstanceConfig] # Optional. A set of Compute Engine Shielded instance options. # @!attribute [rw] confidential_instance_config # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::GceConfidentialInstanceConfig] # Optional. A set of Compute Engine Confidential VM instance options. # @!attribute [rw] boot_disk_size_gb # @return [::Integer] # Optional. The size of the boot disk for the VM in gigabytes (GB). # The minimum boot disk size is `30` GB. Defaults to `50` GB. # @!attribute [rw] accelerators # @return [::Array<::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::Accelerator>] # Optional. A list of the type and count of accelerator cards attached to # the instance. # @!attribute [rw] boost_configs # @return [::Array<::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::BoostConfig>] # Optional. A list of the boost configurations that workstations created # using this workstation configuration are allowed to use. If specified, # users will have the option to choose from the list of boost configs # when starting a workstation. # @!attribute [rw] disable_ssh # @return [::Boolean] # Optional. Whether to disable SSH access to the VM. # @!attribute [rw] vm_tags # @return [::Google::Protobuf::Map{::String => ::String}] # Optional. Resource manager tags to be bound to this instance. # Tag keys and values have the same definition as [resource manager # tags](https://cloud.google.com/resource-manager/docs/tags/tags-overview). # Keys must be in the format `tagKeys/{tag_key_id}`, and # values are in the format `tagValues/456`. # @!attribute [rw] reservation_affinity # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::ReservationAffinity] # Optional. # [ReservationAffinity](https://cloud.google.com/compute/docs/instances/reserving-zonal-resources) # specifies a reservation that can be consumed to create VM # instances. If SPECIFIC_RESERVATION is specified, Cloud Workstations # will only create VMs in the zone where the reservation is located. # This would affect availability since the service will no longer be # resilient to zonal outages. If ANY_RESERVATION is specified, creating # reservations in both zones that the config creates VMs in will ensure # higher availability. # **Important Considerations for Reservation Affinity:** # # * This feature is intended for advanced users and requires # familiarity with Google Compute Engine reservations. # * Using reservations incurs charges, regardless of utilization. # * The resources in the pool will consume the specified # reservation. Take this into account when setting the # pool size. # @!attribute [rw] startup_script_uri # @return [::String] # Optional. Link to the startup script stored in Cloud Storage. This # script will be run on the host workstation VM when the VM is created. # The URI must be of the form gs://\\{bucket-name}/\\{object-name}. If # specifying a startup script, the service account must have [Permission # to access the bucket and script file in Cloud # Storage](https://cloud.google.com/storage/docs/access-control/iam-permissions). # Otherwise, the script must be publicly accessible. # Note that the service regularly updates the OS version of the host VM, # and it is the responsibility of the user to ensure the script stays # compatible with the OS version. # @!attribute [rw] instance_metadata # @return [::Google::Protobuf::Map{::String => ::String}] # Optional. Custom metadata to apply to Compute Engine instances. class GceInstance include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # A set of Compute Engine Shielded instance options. # @!attribute [rw] enable_secure_boot # @return [::Boolean] # Optional. Whether the instance has Secure Boot enabled. # @!attribute [rw] enable_vtpm # @return [::Boolean] # Optional. Whether the instance has the vTPM enabled. # @!attribute [rw] enable_integrity_monitoring # @return [::Boolean] # Optional. Whether the instance has integrity monitoring enabled. class GceShieldedInstanceConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # A set of Compute Engine Confidential VM instance options. # @!attribute [rw] enable_confidential_compute # @return [::Boolean] # Optional. Whether the instance has confidential compute enabled. class GceConfidentialInstanceConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # An accelerator card attached to the instance. # @!attribute [rw] type # @return [::String] # Optional. Type of accelerator resource to attach to the instance, for # example, # `"nvidia-tesla-p100"`. # @!attribute [rw] count # @return [::Integer] # Optional. Number of accelerator cards exposed to the instance. class Accelerator include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # A boost configuration is a set of resources that a workstation can use # to increase its performance. If you specify a boost configuration, upon # startup, workstation users can choose to use a VM provisioned under the # boost config by passing the boost config ID in the start request. If # the workstation user does not provide a boost config ID in the start # request, the system will choose a VM from the pool provisioned under # the default config. # @!attribute [rw] id # @return [::String] # Required. The ID to be used for the boost configuration. # @!attribute [rw] machine_type # @return [::String] # Optional. 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`. # @!attribute [rw] accelerators # @return [::Array<::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::Accelerator>] # Optional. A list of the type and count of accelerator cards attached # to the boost instance. Defaults to `none`. # @!attribute [rw] boot_disk_size_gb # @return [::Integer] # Optional. The size of the boot disk for the VM in gigabytes (GB). # The minimum boot disk size is `30` GB. Defaults to `50` GB. # @!attribute [rw] enable_nested_virtualization # @return [::Boolean] # Optional. Whether to enable nested virtualization on boosted Cloud # Workstations VMs running using this boost configuration. # # Defaults to false. # # Nested virtualization lets you run virtual machine (VM) instances # inside your workstation. Before enabling nested virtualization, # consider the following important considerations. Cloud Workstations # instances are subject to the [same restrictions as Compute Engine # instances](https://cloud.google.com/compute/docs/instances/nested-virtualization/overview#restrictions): # # * **Organization policy**: projects, folders, or # organizations may be restricted from creating nested VMs if the # **Disable VM nested virtualization** constraint is enforced in # the organization policy. For more information, see the # Compute Engine section, # [Checking whether nested virtualization is # allowed](https://cloud.google.com/compute/docs/instances/nested-virtualization/managing-constraint#checking_whether_nested_virtualization_is_allowed). # * **Performance**: nested VMs might experience a 10% or greater # decrease in performance for workloads that are CPU-bound and # possibly greater than a 10% decrease for workloads that are # input/output bound. # * **Machine Type**: nested virtualization can only be enabled on # boost configurations that specify a # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::BoostConfig#machine_type machine_type} # in the N1 or N2 machine series. # @!attribute [rw] pool_size # @return [::Integer] # Optional. The number of boost VMs that the system should keep idle so # that workstations can be boosted quickly. Defaults to `0`. # @!attribute [rw] reservation_affinity # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::ReservationAffinity] # Optional. # [ReservationAffinity](https://cloud.google.com/compute/docs/instances/reserving-zonal-resources) # specifies a reservation that can be consumed to create boost VM # instances. If SPECIFIC_RESERVATION is specified, Cloud Workstations # will only create VMs in the zone where the reservation is located. # This would affect availability since the service will no longer be # resilient to zonal outages. If ANY_RESERVATION is specified, creating # reservations in both zones that the config creates VMs in will ensure # higher availability. # **Important Considerations for Reservation Affinity:** # # * This feature is intended for advanced users and requires # familiarity with Google Compute Engine reservations. # * Using reservations incurs charges, regardless of utilization. # * The resources in the pool will consume the specified # reservation. Take this into account when setting the # pool size. class BoostConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # ReservationAffinity is the configuration of the desired reservation # from which instances can consume resources. # @!attribute [rw] consume_reservation_type # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::ReservationAffinity::Type] # Optional. Corresponds to the type of reservation consumption. # @!attribute [rw] key # @return [::String] # Optional. Corresponds to the label key of reservation resource. # @!attribute [rw] values # @return [::Array<::String>] # Optional. Corresponds to the label values of reservation resources. # Valid values are either the name of a reservation in the same project # or "projects/\\{project}/reservations/\\{reservation}" to target a shared # reservation in the same zone but in a different project. class ReservationAffinity include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # Indicates whether to consume capacity from a reservation or not. module Type # Default value. This should not be used. TYPE_UNSPECIFIED = 0 # Do not consume from any reserved capacity. NO_RESERVATION = 1 # Consume any reservation available. ANY_RESERVATION = 2 # Must consume from a specific reservation. Must specify key value # fields for specifying the reservations. SPECIFIC_RESERVATION = 3 end end # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class VmTagsEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class InstanceMetadataEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end end end # A directory to persist across workstation sessions. Updates to this field # will not update existing workstations and will only take effect on new # workstations. # @!attribute [rw] gce_pd # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk] # A PersistentDirectory backed by a Compute Engine persistent disk. # # Note: The following fields are mutually exclusive: `gce_pd`, `gce_hd`. If a field in that set is populated, all other fields in the set will automatically be cleared. # @!attribute [rw] gce_hd # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceHyperdiskBalancedHighAvailability] # A PersistentDirectory backed by a Compute Engine hyperdisk high # availability disk. # # Note: The following fields are mutually exclusive: `gce_hd`, `gce_pd`. If a field in that set is populated, all other fields in the set will automatically be cleared. # @!attribute [rw] mount_path # @return [::String] # Optional. Location of this directory in the running workstation. class PersistentDirectory include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # A Persistent Directory backed by a Compute Engine regional persistent # disk. The # {::Google::Cloud::Workstations::V1beta::WorkstationConfig#persistent_directories persistent_directories} # field is repeated, but it may contain only one entry. It creates a # [persistent # disk](https://cloud.google.com/compute/docs/disks/persistent-disks) that # mounts to the workstation VM at `/home` when the session starts and # detaches when the session ends. If this field is empty, workstations # created with this configuration do not have a persistent home # directory. # @!attribute [rw] size_gb # @return [::Integer] # Optional. The GB capacity of a persistent home directory for each # workstation created with this configuration. Must be empty if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk#source_snapshot source_snapshot} # is set. # # Valid values are `10`, `50`, `100`, `200`, `500`, or `1000`. # Defaults to `200`. If less than `200` GB, the # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk#disk_type disk_type} # must be # `"pd-balanced"` or `"pd-ssd"`. # @!attribute [rw] max_size_gb # @return [::Integer] # Optional. Maximum size in GB to which this persistent directory can be # resized. Defaults to unlimited if not set. # @!attribute [rw] fs_type # @return [::String] # Optional. Type of file system that the disk should be formatted with. # The workstation image must support this file system type. Must be empty # if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk#source_snapshot source_snapshot} # is set. Defaults to `"ext4"`. # @!attribute [rw] disk_type # @return [::String] # Optional. The [type of the persistent # disk](https://cloud.google.com/compute/docs/disks#disk-types) for the # home directory. Defaults to `"pd-standard"`. # @!attribute [rw] source_snapshot # @return [::String] # Optional. Name of the snapshot to use as the source for the disk. If # set, # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk#size_gb size_gb} # and # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk#fs_type fs_type} # must be empty. Must be formatted as ext4 file system with no # partitions. # @!attribute [rw] reclaim_policy # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk::ReclaimPolicy] # Optional. Whether the persistent disk should be deleted when the # workstation is deleted. Valid values are `DELETE` and `RETAIN`. # Defaults to `DELETE`. # @!attribute [rw] archive_timeout # @return [::Google::Protobuf::Duration] # Optional. Number of seconds to wait after initially creating or # subsequently shutting down the workstation before converting its disk # into a snapshot. This generally saves costs at the expense of greater # startup time on next workstation start, as the service will need to # create a disk from the archival snapshot. # # A value of `"0s"` indicates that the disk will never be archived. class GceRegionalPersistentDisk include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # Value representing what should happen to the disk after the workstation # is deleted. module ReclaimPolicy # Do not use. RECLAIM_POLICY_UNSPECIFIED = 0 # Delete the persistent disk when deleting the workstation. DELETE = 1 # Keep the persistent disk when deleting the workstation. # An administrator must manually delete the disk. RETAIN = 2 end end # A Persistent Directory backed by a Compute Engine # [Hyperdisk Balanced High Availability # Disk](https://cloud.google.com/compute/docs/disks/hd-types/hyperdisk-balanced-ha). # This is a high-availability block storage solution that offers a balance # between performance and cost for most general-purpose workloads. # @!attribute [rw] size_gb # @return [::Integer] # Optional. The GB capacity of a persistent home directory for each # workstation created with this configuration. Must be empty if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceHyperdiskBalancedHighAvailability#source_snapshot source_snapshot} # is set. # # Valid values are `10`, `50`, `100`, `200`, `500`, or `1000`. # Defaults to `200`. # @!attribute [rw] max_size_gb # @return [::Integer] # Optional. Maximum size in GB to which this persistent directory can be # resized. Defaults to unlimited if not set. # @!attribute [rw] source_snapshot # @return [::String] # Optional. Name of the snapshot to use as the source for the disk. If # set, # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceHyperdiskBalancedHighAvailability#size_gb size_gb} # must be empty. Must be formatted as ext4 file system with no # partitions. # @!attribute [rw] reclaim_policy # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceHyperdiskBalancedHighAvailability::ReclaimPolicy] # Optional. Whether the persistent disk should be deleted when the # workstation is deleted. Valid values are `DELETE` and `RETAIN`. # Defaults to `DELETE`. # @!attribute [rw] archive_timeout # @return [::Google::Protobuf::Duration] # Optional. Number of seconds to wait after initially creating or # subsequently shutting down the workstation before converting its disk # into a snapshot. This generally saves costs at the expense of greater # startup time on next workstation start, as the service will need to # create a disk from the archival snapshot. # # A value of `"0s"` indicates that the disk will never be archived. class GceHyperdiskBalancedHighAvailability include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # Value representing what should happen to the disk after the workstation # is deleted. module ReclaimPolicy # Do not use. RECLAIM_POLICY_UNSPECIFIED = 0 # Delete the persistent disk when deleting the workstation. DELETE = 1 # Keep the persistent disk when deleting the workstation. # An administrator must manually delete the disk. RETAIN = 2 end end end # An ephemeral directory which won't persist across workstation sessions. It # is freshly created on every workstation start operation. # @!attribute [rw] gce_pd # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk] # An EphemeralDirectory backed by a Compute Engine persistent disk. # @!attribute [rw] mount_path # @return [::String] # Required. Location of this directory in the running workstation. class EphemeralDirectory include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # An EphemeralDirectory is backed by a Compute Engine persistent disk. # @!attribute [rw] disk_type # @return [::String] # Optional. Type of the disk to use. Defaults to `"pd-standard"`. # @!attribute [rw] source_snapshot # @return [::String] # Optional. Name of the snapshot to use as the source for the disk. Must # be empty if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#source_image source_image} # is set. Must be empty if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#read_only read_only} # is false. Updating # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#source_snapshot source_snapshot} # will update content in the ephemeral directory after the workstation is # restarted. # # Only file systems supported by Container-Optimized OS (COS) # are explicitly supported. For a list of supported file systems, see # [the filesystems available in Container-Optimized # OS](https://cloud.google.com/container-optimized-os/docs/concepts/supported-filesystems). # # This field is mutable. # @!attribute [rw] source_image # @return [::String] # Optional. Name of the disk image to use as the source for the disk. # Must be empty if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#source_snapshot source_snapshot} # is set. Updating # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#source_image source_image} # will update content in the ephemeral directory after the workstation is # restarted. # # Only file systems supported by Container-Optimized OS (COS) # are explicitly supported. For a list of supported file systems, please # refer to the [COS # documentation](https://cloud.google.com/container-optimized-os/docs/concepts/supported-filesystems). # # This field is mutable. # @!attribute [rw] read_only # @return [::Boolean] # Optional. Whether the disk is read only. If true, the disk may be # shared by multiple VMs and # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#source_snapshot source_snapshot} # must be set. class GcePersistentDisk include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end end # A Docker container. # @!attribute [rw] image # @return [::String] # Optional. A Docker container image that defines a custom environment. # # Cloud Workstations provides a number of # [preconfigured # images](https://cloud.google.com/workstations/docs/preconfigured-base-images), # but you can create your own # [custom container # images](https://cloud.google.com/workstations/docs/custom-container-images). # If using a private image, the `host.gceInstance.serviceAccount` field # must be specified in the workstation configuration. # If using a custom container image, the service account must have # [Artifact Registry # Reader](https://cloud.google.com/artifact-registry/docs/access-control#roles) # permission to pull the specified image. Otherwise, the image must be # publicly accessible. # @!attribute [rw] command # @return [::Array<::String>] # Optional. If set, overrides the default ENTRYPOINT specified by the # image. # @!attribute [rw] args # @return [::Array<::String>] # Optional. Arguments passed to the entrypoint. # @!attribute [rw] env # @return [::Google::Protobuf::Map{::String => ::String}] # Optional. Environment variables passed to the container's entrypoint. # @!attribute [rw] working_dir # @return [::String] # Optional. If set, overrides the default DIR specified by the image. # @!attribute [rw] run_as_user # @return [::Integer] # Optional. If set, overrides the USER specified in the image with the # given uid. class Container include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class EnvEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end end # A customer-managed encryption key (CMEK) for the Compute Engine # resources of the associated workstation configuration. Specify the name of # your Cloud KMS encryption key and the default service account. # We recommend that you use a separate service account and follow # [Cloud KMS best # practices](https://cloud.google.com/kms/docs/separation-of-duties). # @!attribute [rw] kms_key # @return [::String] # Immutable. The name of the Google Cloud KMS encryption key. For example, # `"projects/PROJECT_ID/locations/REGION/keyRings/KEY_RING/cryptoKeys/KEY_NAME"`. # The key must be in the same region as the workstation configuration. # @!attribute [rw] kms_key_service_account # @return [::String] # Immutable. The service account to use with the specified # KMS key. We recommend that you use a separate service account # and follow KMS best practices. For more information, see # [Separation of # duties](https://cloud.google.com/kms/docs/separation-of-duties) and # `gcloud kms keys add-iam-policy-binding` # [`--member`](https://cloud.google.com/sdk/gcloud/reference/kms/keys/add-iam-policy-binding#--member). class CustomerEncryptionKey include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # A readiness check to be performed on a workstation. # @!attribute [rw] path # @return [::String] # Optional. Path to which the request should be sent. # @!attribute [rw] port # @return [::Integer] # Optional. Port to which the request should be sent. class ReadinessCheck include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # HTTP options for the running workstations. # @!attribute [rw] allowed_unauthenticated_cors_preflight_requests # @return [::Boolean] # Optional. By default, the workstations service makes sure that all # requests to the workstation are authenticated. CORS preflight requests do # not include cookies or custom headers, and so are considered # unauthenticated and blocked by the workstations service. Enabling this # option allows these unauthenticated CORS preflight requests through to # the workstation, where it becomes the responsibility of the destination # server in the workstation to validate the request. # @!attribute [rw] disable_localhost_replacement # @return [::Boolean] # Optional. By default, the workstations service replaces references to # localhost, 127.0.0.1, and 0.0.0.0 with the workstation's hostname in http # responses from the workstation so that applications under development run # properly on the workstation. This may intefere with some applications, # and so this option allows that behavior to be disabled. class HttpOptions include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # A PortRange defines a range of ports. Both # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PortRange#first first} # and # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PortRange#last last} # are inclusive. To specify a single port, both # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PortRange#first first} # and # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PortRange#last last} # should be the same. # @!attribute [rw] first # @return [::Integer] # Required. Starting port number for the current range of ports. # Valid ports are 22, 80, and ports within the range 1024-65535. # @!attribute [rw] last # @return [::Integer] # Required. Ending port number for the current range of ports. # Valid ports are 22, 80, and ports within the range 1024-65535. class PortRange include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class AnnotationsEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class LabelsEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end end |
#delete_time ⇒ ::Google::Protobuf::Timestamp (readonly)
Returns Output only. Time when this workstation configuration was soft-deleted.
420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 |
# File 'proto_docs/google/cloud/workstations/v1beta/workstations.rb', line 420 class WorkstationConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # Runtime host for a workstation. # @!attribute [rw] gce_instance # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance] # Specifies a Compute Engine instance as the host. class Host include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # A runtime using a Compute Engine instance. # @!attribute [rw] machine_type # @return [::String] # Optional. The type of machine to use for VM instances—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). # @!attribute [rw] service_account # @return [::String] # Optional. The email address of the service account for Cloud # Workstations VMs created with this configuration. When specified, be # sure that the service account has `logging.logEntries.create` and # `monitoring.timeSeries.create` permissions on the project so it can # write logs out to Cloud Logging. If using a custom container image, the # service account must have [Artifact Registry # Reader](https://cloud.google.com/artifact-registry/docs/access-control#roles) # permission to pull the specified image. # # If you as the administrator want to be able to `ssh` into the # underlying VM, you need to set this value to a service account # for which you have the `iam.serviceAccounts.actAs` permission. # Conversely, if you don't want anyone to be able to `ssh` into the # underlying VM, use a service account where no one has that # permission. # # If not set, VMs run with a service account provided by the # Cloud Workstations service, and the image must be publicly # accessible. # @!attribute [rw] service_account_scopes # @return [::Array<::String>] # Optional. Scopes to grant to the # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance#service_account service_account}. # When specified, users of workstations under this configuration must # have `iam.serviceAccounts.actAs` on the service account. # @!attribute [rw] tags # @return [::Array<::String>] # Optional. Network tags to add to the Compute Engine VMs backing the # workstations. This option applies # [network # tags](https://cloud.google.com/vpc/docs/add-remove-network-tags) to VMs # created with this configuration. These network tags enable the creation # of [firewall # rules](https://cloud.google.com/workstations/docs/configure-firewall-rules). # @!attribute [rw] pool_size # @return [::Integer] # Optional. The number of VMs that the system should keep idle so that # new workstations can be started quickly for new users. Defaults to `0` # in the API. # @!attribute [r] pooled_instances # @return [::Integer] # Output only. Number of instances currently available in the pool for # faster workstation startup. # @!attribute [rw] disable_public_ip_addresses # @return [::Boolean] # Optional. When set to true, disables public IP addresses for VMs. If # you disable public IP addresses, you must set up Private Google Access # or Cloud NAT on your network. If you use Private Google Access and you # use `private.googleapis.com` or `restricted.googleapis.com` for # Container Registry and Artifact Registry, make sure that you set # up DNS records for domains `*.gcr.io` and `*.pkg.dev`. # Defaults to false (VMs have public IP addresses). # @!attribute [rw] enable_nested_virtualization # @return [::Boolean] # Optional. Whether to enable nested virtualization on Cloud Workstations # VMs created using this workstation configuration. # # Defaults to false. # # Nested virtualization lets you run virtual machine (VM) instances # inside your workstation. Before enabling nested virtualization, # consider the following important considerations. Cloud Workstations # instances are subject to the [same restrictions as Compute Engine # instances](https://cloud.google.com/compute/docs/instances/nested-virtualization/overview#restrictions): # # * **Organization policy**: projects, folders, or # organizations may be restricted from creating nested VMs if the # **Disable VM nested virtualization** constraint is enforced in # the organization policy. For more information, see the # Compute Engine section, # [Checking whether nested virtualization is # allowed](https://cloud.google.com/compute/docs/instances/nested-virtualization/managing-constraint#checking_whether_nested_virtualization_is_allowed). # * **Performance**: nested VMs might experience a 10% or greater # decrease in performance for workloads that are CPU-bound and # possibly greater than a 10% decrease for workloads that are # input/output bound. # * **Machine Type**: nested virtualization can only be enabled on # workstation configurations that specify a # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance#machine_type machine_type} # in the N1 or N2 machine series. # @!attribute [rw] shielded_instance_config # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::GceShieldedInstanceConfig] # Optional. A set of Compute Engine Shielded instance options. # @!attribute [rw] confidential_instance_config # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::GceConfidentialInstanceConfig] # Optional. A set of Compute Engine Confidential VM instance options. # @!attribute [rw] boot_disk_size_gb # @return [::Integer] # Optional. The size of the boot disk for the VM in gigabytes (GB). # The minimum boot disk size is `30` GB. Defaults to `50` GB. # @!attribute [rw] accelerators # @return [::Array<::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::Accelerator>] # Optional. A list of the type and count of accelerator cards attached to # the instance. # @!attribute [rw] boost_configs # @return [::Array<::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::BoostConfig>] # Optional. A list of the boost configurations that workstations created # using this workstation configuration are allowed to use. If specified, # users will have the option to choose from the list of boost configs # when starting a workstation. # @!attribute [rw] disable_ssh # @return [::Boolean] # Optional. Whether to disable SSH access to the VM. # @!attribute [rw] vm_tags # @return [::Google::Protobuf::Map{::String => ::String}] # Optional. Resource manager tags to be bound to this instance. # Tag keys and values have the same definition as [resource manager # tags](https://cloud.google.com/resource-manager/docs/tags/tags-overview). # Keys must be in the format `tagKeys/{tag_key_id}`, and # values are in the format `tagValues/456`. # @!attribute [rw] reservation_affinity # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::ReservationAffinity] # Optional. # [ReservationAffinity](https://cloud.google.com/compute/docs/instances/reserving-zonal-resources) # specifies a reservation that can be consumed to create VM # instances. If SPECIFIC_RESERVATION is specified, Cloud Workstations # will only create VMs in the zone where the reservation is located. # This would affect availability since the service will no longer be # resilient to zonal outages. If ANY_RESERVATION is specified, creating # reservations in both zones that the config creates VMs in will ensure # higher availability. # **Important Considerations for Reservation Affinity:** # # * This feature is intended for advanced users and requires # familiarity with Google Compute Engine reservations. # * Using reservations incurs charges, regardless of utilization. # * The resources in the pool will consume the specified # reservation. Take this into account when setting the # pool size. # @!attribute [rw] startup_script_uri # @return [::String] # Optional. Link to the startup script stored in Cloud Storage. This # script will be run on the host workstation VM when the VM is created. # The URI must be of the form gs://\\{bucket-name}/\\{object-name}. If # specifying a startup script, the service account must have [Permission # to access the bucket and script file in Cloud # Storage](https://cloud.google.com/storage/docs/access-control/iam-permissions). # Otherwise, the script must be publicly accessible. # Note that the service regularly updates the OS version of the host VM, # and it is the responsibility of the user to ensure the script stays # compatible with the OS version. # @!attribute [rw] instance_metadata # @return [::Google::Protobuf::Map{::String => ::String}] # Optional. Custom metadata to apply to Compute Engine instances. class GceInstance include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # A set of Compute Engine Shielded instance options. # @!attribute [rw] enable_secure_boot # @return [::Boolean] # Optional. Whether the instance has Secure Boot enabled. # @!attribute [rw] enable_vtpm # @return [::Boolean] # Optional. Whether the instance has the vTPM enabled. # @!attribute [rw] enable_integrity_monitoring # @return [::Boolean] # Optional. Whether the instance has integrity monitoring enabled. class GceShieldedInstanceConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # A set of Compute Engine Confidential VM instance options. # @!attribute [rw] enable_confidential_compute # @return [::Boolean] # Optional. Whether the instance has confidential compute enabled. class GceConfidentialInstanceConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # An accelerator card attached to the instance. # @!attribute [rw] type # @return [::String] # Optional. Type of accelerator resource to attach to the instance, for # example, # `"nvidia-tesla-p100"`. # @!attribute [rw] count # @return [::Integer] # Optional. Number of accelerator cards exposed to the instance. class Accelerator include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # A boost configuration is a set of resources that a workstation can use # to increase its performance. If you specify a boost configuration, upon # startup, workstation users can choose to use a VM provisioned under the # boost config by passing the boost config ID in the start request. If # the workstation user does not provide a boost config ID in the start # request, the system will choose a VM from the pool provisioned under # the default config. # @!attribute [rw] id # @return [::String] # Required. The ID to be used for the boost configuration. # @!attribute [rw] machine_type # @return [::String] # Optional. 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`. # @!attribute [rw] accelerators # @return [::Array<::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::Accelerator>] # Optional. A list of the type and count of accelerator cards attached # to the boost instance. Defaults to `none`. # @!attribute [rw] boot_disk_size_gb # @return [::Integer] # Optional. The size of the boot disk for the VM in gigabytes (GB). # The minimum boot disk size is `30` GB. Defaults to `50` GB. # @!attribute [rw] enable_nested_virtualization # @return [::Boolean] # Optional. Whether to enable nested virtualization on boosted Cloud # Workstations VMs running using this boost configuration. # # Defaults to false. # # Nested virtualization lets you run virtual machine (VM) instances # inside your workstation. Before enabling nested virtualization, # consider the following important considerations. Cloud Workstations # instances are subject to the [same restrictions as Compute Engine # instances](https://cloud.google.com/compute/docs/instances/nested-virtualization/overview#restrictions): # # * **Organization policy**: projects, folders, or # organizations may be restricted from creating nested VMs if the # **Disable VM nested virtualization** constraint is enforced in # the organization policy. For more information, see the # Compute Engine section, # [Checking whether nested virtualization is # allowed](https://cloud.google.com/compute/docs/instances/nested-virtualization/managing-constraint#checking_whether_nested_virtualization_is_allowed). # * **Performance**: nested VMs might experience a 10% or greater # decrease in performance for workloads that are CPU-bound and # possibly greater than a 10% decrease for workloads that are # input/output bound. # * **Machine Type**: nested virtualization can only be enabled on # boost configurations that specify a # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::BoostConfig#machine_type machine_type} # in the N1 or N2 machine series. # @!attribute [rw] pool_size # @return [::Integer] # Optional. The number of boost VMs that the system should keep idle so # that workstations can be boosted quickly. Defaults to `0`. # @!attribute [rw] reservation_affinity # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::ReservationAffinity] # Optional. # [ReservationAffinity](https://cloud.google.com/compute/docs/instances/reserving-zonal-resources) # specifies a reservation that can be consumed to create boost VM # instances. If SPECIFIC_RESERVATION is specified, Cloud Workstations # will only create VMs in the zone where the reservation is located. # This would affect availability since the service will no longer be # resilient to zonal outages. If ANY_RESERVATION is specified, creating # reservations in both zones that the config creates VMs in will ensure # higher availability. # **Important Considerations for Reservation Affinity:** # # * This feature is intended for advanced users and requires # familiarity with Google Compute Engine reservations. # * Using reservations incurs charges, regardless of utilization. # * The resources in the pool will consume the specified # reservation. Take this into account when setting the # pool size. class BoostConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # ReservationAffinity is the configuration of the desired reservation # from which instances can consume resources. # @!attribute [rw] consume_reservation_type # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::ReservationAffinity::Type] # Optional. Corresponds to the type of reservation consumption. # @!attribute [rw] key # @return [::String] # Optional. Corresponds to the label key of reservation resource. # @!attribute [rw] values # @return [::Array<::String>] # Optional. Corresponds to the label values of reservation resources. # Valid values are either the name of a reservation in the same project # or "projects/\\{project}/reservations/\\{reservation}" to target a shared # reservation in the same zone but in a different project. class ReservationAffinity include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # Indicates whether to consume capacity from a reservation or not. module Type # Default value. This should not be used. TYPE_UNSPECIFIED = 0 # Do not consume from any reserved capacity. NO_RESERVATION = 1 # Consume any reservation available. ANY_RESERVATION = 2 # Must consume from a specific reservation. Must specify key value # fields for specifying the reservations. SPECIFIC_RESERVATION = 3 end end # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class VmTagsEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class InstanceMetadataEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end end end # A directory to persist across workstation sessions. Updates to this field # will not update existing workstations and will only take effect on new # workstations. # @!attribute [rw] gce_pd # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk] # A PersistentDirectory backed by a Compute Engine persistent disk. # # Note: The following fields are mutually exclusive: `gce_pd`, `gce_hd`. If a field in that set is populated, all other fields in the set will automatically be cleared. # @!attribute [rw] gce_hd # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceHyperdiskBalancedHighAvailability] # A PersistentDirectory backed by a Compute Engine hyperdisk high # availability disk. # # Note: The following fields are mutually exclusive: `gce_hd`, `gce_pd`. If a field in that set is populated, all other fields in the set will automatically be cleared. # @!attribute [rw] mount_path # @return [::String] # Optional. Location of this directory in the running workstation. class PersistentDirectory include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # A Persistent Directory backed by a Compute Engine regional persistent # disk. The # {::Google::Cloud::Workstations::V1beta::WorkstationConfig#persistent_directories persistent_directories} # field is repeated, but it may contain only one entry. It creates a # [persistent # disk](https://cloud.google.com/compute/docs/disks/persistent-disks) that # mounts to the workstation VM at `/home` when the session starts and # detaches when the session ends. If this field is empty, workstations # created with this configuration do not have a persistent home # directory. # @!attribute [rw] size_gb # @return [::Integer] # Optional. The GB capacity of a persistent home directory for each # workstation created with this configuration. Must be empty if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk#source_snapshot source_snapshot} # is set. # # Valid values are `10`, `50`, `100`, `200`, `500`, or `1000`. # Defaults to `200`. If less than `200` GB, the # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk#disk_type disk_type} # must be # `"pd-balanced"` or `"pd-ssd"`. # @!attribute [rw] max_size_gb # @return [::Integer] # Optional. Maximum size in GB to which this persistent directory can be # resized. Defaults to unlimited if not set. # @!attribute [rw] fs_type # @return [::String] # Optional. Type of file system that the disk should be formatted with. # The workstation image must support this file system type. Must be empty # if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk#source_snapshot source_snapshot} # is set. Defaults to `"ext4"`. # @!attribute [rw] disk_type # @return [::String] # Optional. The [type of the persistent # disk](https://cloud.google.com/compute/docs/disks#disk-types) for the # home directory. Defaults to `"pd-standard"`. # @!attribute [rw] source_snapshot # @return [::String] # Optional. Name of the snapshot to use as the source for the disk. If # set, # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk#size_gb size_gb} # and # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk#fs_type fs_type} # must be empty. Must be formatted as ext4 file system with no # partitions. # @!attribute [rw] reclaim_policy # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk::ReclaimPolicy] # Optional. Whether the persistent disk should be deleted when the # workstation is deleted. Valid values are `DELETE` and `RETAIN`. # Defaults to `DELETE`. # @!attribute [rw] archive_timeout # @return [::Google::Protobuf::Duration] # Optional. Number of seconds to wait after initially creating or # subsequently shutting down the workstation before converting its disk # into a snapshot. This generally saves costs at the expense of greater # startup time on next workstation start, as the service will need to # create a disk from the archival snapshot. # # A value of `"0s"` indicates that the disk will never be archived. class GceRegionalPersistentDisk include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # Value representing what should happen to the disk after the workstation # is deleted. module ReclaimPolicy # Do not use. RECLAIM_POLICY_UNSPECIFIED = 0 # Delete the persistent disk when deleting the workstation. DELETE = 1 # Keep the persistent disk when deleting the workstation. # An administrator must manually delete the disk. RETAIN = 2 end end # A Persistent Directory backed by a Compute Engine # [Hyperdisk Balanced High Availability # Disk](https://cloud.google.com/compute/docs/disks/hd-types/hyperdisk-balanced-ha). # This is a high-availability block storage solution that offers a balance # between performance and cost for most general-purpose workloads. # @!attribute [rw] size_gb # @return [::Integer] # Optional. The GB capacity of a persistent home directory for each # workstation created with this configuration. Must be empty if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceHyperdiskBalancedHighAvailability#source_snapshot source_snapshot} # is set. # # Valid values are `10`, `50`, `100`, `200`, `500`, or `1000`. # Defaults to `200`. # @!attribute [rw] max_size_gb # @return [::Integer] # Optional. Maximum size in GB to which this persistent directory can be # resized. Defaults to unlimited if not set. # @!attribute [rw] source_snapshot # @return [::String] # Optional. Name of the snapshot to use as the source for the disk. If # set, # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceHyperdiskBalancedHighAvailability#size_gb size_gb} # must be empty. Must be formatted as ext4 file system with no # partitions. # @!attribute [rw] reclaim_policy # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceHyperdiskBalancedHighAvailability::ReclaimPolicy] # Optional. Whether the persistent disk should be deleted when the # workstation is deleted. Valid values are `DELETE` and `RETAIN`. # Defaults to `DELETE`. # @!attribute [rw] archive_timeout # @return [::Google::Protobuf::Duration] # Optional. Number of seconds to wait after initially creating or # subsequently shutting down the workstation before converting its disk # into a snapshot. This generally saves costs at the expense of greater # startup time on next workstation start, as the service will need to # create a disk from the archival snapshot. # # A value of `"0s"` indicates that the disk will never be archived. class GceHyperdiskBalancedHighAvailability include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # Value representing what should happen to the disk after the workstation # is deleted. module ReclaimPolicy # Do not use. RECLAIM_POLICY_UNSPECIFIED = 0 # Delete the persistent disk when deleting the workstation. DELETE = 1 # Keep the persistent disk when deleting the workstation. # An administrator must manually delete the disk. RETAIN = 2 end end end # An ephemeral directory which won't persist across workstation sessions. It # is freshly created on every workstation start operation. # @!attribute [rw] gce_pd # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk] # An EphemeralDirectory backed by a Compute Engine persistent disk. # @!attribute [rw] mount_path # @return [::String] # Required. Location of this directory in the running workstation. class EphemeralDirectory include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # An EphemeralDirectory is backed by a Compute Engine persistent disk. # @!attribute [rw] disk_type # @return [::String] # Optional. Type of the disk to use. Defaults to `"pd-standard"`. # @!attribute [rw] source_snapshot # @return [::String] # Optional. Name of the snapshot to use as the source for the disk. Must # be empty if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#source_image source_image} # is set. Must be empty if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#read_only read_only} # is false. Updating # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#source_snapshot source_snapshot} # will update content in the ephemeral directory after the workstation is # restarted. # # Only file systems supported by Container-Optimized OS (COS) # are explicitly supported. For a list of supported file systems, see # [the filesystems available in Container-Optimized # OS](https://cloud.google.com/container-optimized-os/docs/concepts/supported-filesystems). # # This field is mutable. # @!attribute [rw] source_image # @return [::String] # Optional. Name of the disk image to use as the source for the disk. # Must be empty if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#source_snapshot source_snapshot} # is set. Updating # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#source_image source_image} # will update content in the ephemeral directory after the workstation is # restarted. # # Only file systems supported by Container-Optimized OS (COS) # are explicitly supported. For a list of supported file systems, please # refer to the [COS # documentation](https://cloud.google.com/container-optimized-os/docs/concepts/supported-filesystems). # # This field is mutable. # @!attribute [rw] read_only # @return [::Boolean] # Optional. Whether the disk is read only. If true, the disk may be # shared by multiple VMs and # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#source_snapshot source_snapshot} # must be set. class GcePersistentDisk include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end end # A Docker container. # @!attribute [rw] image # @return [::String] # Optional. A Docker container image that defines a custom environment. # # Cloud Workstations provides a number of # [preconfigured # images](https://cloud.google.com/workstations/docs/preconfigured-base-images), # but you can create your own # [custom container # images](https://cloud.google.com/workstations/docs/custom-container-images). # If using a private image, the `host.gceInstance.serviceAccount` field # must be specified in the workstation configuration. # If using a custom container image, the service account must have # [Artifact Registry # Reader](https://cloud.google.com/artifact-registry/docs/access-control#roles) # permission to pull the specified image. Otherwise, the image must be # publicly accessible. # @!attribute [rw] command # @return [::Array<::String>] # Optional. If set, overrides the default ENTRYPOINT specified by the # image. # @!attribute [rw] args # @return [::Array<::String>] # Optional. Arguments passed to the entrypoint. # @!attribute [rw] env # @return [::Google::Protobuf::Map{::String => ::String}] # Optional. Environment variables passed to the container's entrypoint. # @!attribute [rw] working_dir # @return [::String] # Optional. If set, overrides the default DIR specified by the image. # @!attribute [rw] run_as_user # @return [::Integer] # Optional. If set, overrides the USER specified in the image with the # given uid. class Container include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class EnvEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end end # A customer-managed encryption key (CMEK) for the Compute Engine # resources of the associated workstation configuration. Specify the name of # your Cloud KMS encryption key and the default service account. # We recommend that you use a separate service account and follow # [Cloud KMS best # practices](https://cloud.google.com/kms/docs/separation-of-duties). # @!attribute [rw] kms_key # @return [::String] # Immutable. The name of the Google Cloud KMS encryption key. For example, # `"projects/PROJECT_ID/locations/REGION/keyRings/KEY_RING/cryptoKeys/KEY_NAME"`. # The key must be in the same region as the workstation configuration. # @!attribute [rw] kms_key_service_account # @return [::String] # Immutable. The service account to use with the specified # KMS key. We recommend that you use a separate service account # and follow KMS best practices. For more information, see # [Separation of # duties](https://cloud.google.com/kms/docs/separation-of-duties) and # `gcloud kms keys add-iam-policy-binding` # [`--member`](https://cloud.google.com/sdk/gcloud/reference/kms/keys/add-iam-policy-binding#--member). class CustomerEncryptionKey include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # A readiness check to be performed on a workstation. # @!attribute [rw] path # @return [::String] # Optional. Path to which the request should be sent. # @!attribute [rw] port # @return [::Integer] # Optional. Port to which the request should be sent. class ReadinessCheck include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # HTTP options for the running workstations. # @!attribute [rw] allowed_unauthenticated_cors_preflight_requests # @return [::Boolean] # Optional. By default, the workstations service makes sure that all # requests to the workstation are authenticated. CORS preflight requests do # not include cookies or custom headers, and so are considered # unauthenticated and blocked by the workstations service. Enabling this # option allows these unauthenticated CORS preflight requests through to # the workstation, where it becomes the responsibility of the destination # server in the workstation to validate the request. # @!attribute [rw] disable_localhost_replacement # @return [::Boolean] # Optional. By default, the workstations service replaces references to # localhost, 127.0.0.1, and 0.0.0.0 with the workstation's hostname in http # responses from the workstation so that applications under development run # properly on the workstation. This may intefere with some applications, # and so this option allows that behavior to be disabled. class HttpOptions include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # A PortRange defines a range of ports. Both # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PortRange#first first} # and # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PortRange#last last} # are inclusive. To specify a single port, both # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PortRange#first first} # and # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PortRange#last last} # should be the same. # @!attribute [rw] first # @return [::Integer] # Required. Starting port number for the current range of ports. # Valid ports are 22, 80, and ports within the range 1024-65535. # @!attribute [rw] last # @return [::Integer] # Required. Ending port number for the current range of ports. # Valid ports are 22, 80, and ports within the range 1024-65535. class PortRange include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class AnnotationsEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class LabelsEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end end |
#disable_tcp_connections ⇒ ::Boolean
Returns Optional. Disables support for plain TCP connections in the workstation. By default the service supports TCP connections through a websocket relay. Setting this option to true disables that relay, which prevents the usage of services that require plain TCP connections, such as SSH. When enabled, all communication must occur over HTTPS or WSS.
420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 |
# File 'proto_docs/google/cloud/workstations/v1beta/workstations.rb', line 420 class WorkstationConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # Runtime host for a workstation. # @!attribute [rw] gce_instance # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance] # Specifies a Compute Engine instance as the host. class Host include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # A runtime using a Compute Engine instance. # @!attribute [rw] machine_type # @return [::String] # Optional. The type of machine to use for VM instances—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). # @!attribute [rw] service_account # @return [::String] # Optional. The email address of the service account for Cloud # Workstations VMs created with this configuration. When specified, be # sure that the service account has `logging.logEntries.create` and # `monitoring.timeSeries.create` permissions on the project so it can # write logs out to Cloud Logging. If using a custom container image, the # service account must have [Artifact Registry # Reader](https://cloud.google.com/artifact-registry/docs/access-control#roles) # permission to pull the specified image. # # If you as the administrator want to be able to `ssh` into the # underlying VM, you need to set this value to a service account # for which you have the `iam.serviceAccounts.actAs` permission. # Conversely, if you don't want anyone to be able to `ssh` into the # underlying VM, use a service account where no one has that # permission. # # If not set, VMs run with a service account provided by the # Cloud Workstations service, and the image must be publicly # accessible. # @!attribute [rw] service_account_scopes # @return [::Array<::String>] # Optional. Scopes to grant to the # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance#service_account service_account}. # When specified, users of workstations under this configuration must # have `iam.serviceAccounts.actAs` on the service account. # @!attribute [rw] tags # @return [::Array<::String>] # Optional. Network tags to add to the Compute Engine VMs backing the # workstations. This option applies # [network # tags](https://cloud.google.com/vpc/docs/add-remove-network-tags) to VMs # created with this configuration. These network tags enable the creation # of [firewall # rules](https://cloud.google.com/workstations/docs/configure-firewall-rules). # @!attribute [rw] pool_size # @return [::Integer] # Optional. The number of VMs that the system should keep idle so that # new workstations can be started quickly for new users. Defaults to `0` # in the API. # @!attribute [r] pooled_instances # @return [::Integer] # Output only. Number of instances currently available in the pool for # faster workstation startup. # @!attribute [rw] disable_public_ip_addresses # @return [::Boolean] # Optional. When set to true, disables public IP addresses for VMs. If # you disable public IP addresses, you must set up Private Google Access # or Cloud NAT on your network. If you use Private Google Access and you # use `private.googleapis.com` or `restricted.googleapis.com` for # Container Registry and Artifact Registry, make sure that you set # up DNS records for domains `*.gcr.io` and `*.pkg.dev`. # Defaults to false (VMs have public IP addresses). # @!attribute [rw] enable_nested_virtualization # @return [::Boolean] # Optional. Whether to enable nested virtualization on Cloud Workstations # VMs created using this workstation configuration. # # Defaults to false. # # Nested virtualization lets you run virtual machine (VM) instances # inside your workstation. Before enabling nested virtualization, # consider the following important considerations. Cloud Workstations # instances are subject to the [same restrictions as Compute Engine # instances](https://cloud.google.com/compute/docs/instances/nested-virtualization/overview#restrictions): # # * **Organization policy**: projects, folders, or # organizations may be restricted from creating nested VMs if the # **Disable VM nested virtualization** constraint is enforced in # the organization policy. For more information, see the # Compute Engine section, # [Checking whether nested virtualization is # allowed](https://cloud.google.com/compute/docs/instances/nested-virtualization/managing-constraint#checking_whether_nested_virtualization_is_allowed). # * **Performance**: nested VMs might experience a 10% or greater # decrease in performance for workloads that are CPU-bound and # possibly greater than a 10% decrease for workloads that are # input/output bound. # * **Machine Type**: nested virtualization can only be enabled on # workstation configurations that specify a # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance#machine_type machine_type} # in the N1 or N2 machine series. # @!attribute [rw] shielded_instance_config # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::GceShieldedInstanceConfig] # Optional. A set of Compute Engine Shielded instance options. # @!attribute [rw] confidential_instance_config # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::GceConfidentialInstanceConfig] # Optional. A set of Compute Engine Confidential VM instance options. # @!attribute [rw] boot_disk_size_gb # @return [::Integer] # Optional. The size of the boot disk for the VM in gigabytes (GB). # The minimum boot disk size is `30` GB. Defaults to `50` GB. # @!attribute [rw] accelerators # @return [::Array<::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::Accelerator>] # Optional. A list of the type and count of accelerator cards attached to # the instance. # @!attribute [rw] boost_configs # @return [::Array<::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::BoostConfig>] # Optional. A list of the boost configurations that workstations created # using this workstation configuration are allowed to use. If specified, # users will have the option to choose from the list of boost configs # when starting a workstation. # @!attribute [rw] disable_ssh # @return [::Boolean] # Optional. Whether to disable SSH access to the VM. # @!attribute [rw] vm_tags # @return [::Google::Protobuf::Map{::String => ::String}] # Optional. Resource manager tags to be bound to this instance. # Tag keys and values have the same definition as [resource manager # tags](https://cloud.google.com/resource-manager/docs/tags/tags-overview). # Keys must be in the format `tagKeys/{tag_key_id}`, and # values are in the format `tagValues/456`. # @!attribute [rw] reservation_affinity # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::ReservationAffinity] # Optional. # [ReservationAffinity](https://cloud.google.com/compute/docs/instances/reserving-zonal-resources) # specifies a reservation that can be consumed to create VM # instances. If SPECIFIC_RESERVATION is specified, Cloud Workstations # will only create VMs in the zone where the reservation is located. # This would affect availability since the service will no longer be # resilient to zonal outages. If ANY_RESERVATION is specified, creating # reservations in both zones that the config creates VMs in will ensure # higher availability. # **Important Considerations for Reservation Affinity:** # # * This feature is intended for advanced users and requires # familiarity with Google Compute Engine reservations. # * Using reservations incurs charges, regardless of utilization. # * The resources in the pool will consume the specified # reservation. Take this into account when setting the # pool size. # @!attribute [rw] startup_script_uri # @return [::String] # Optional. Link to the startup script stored in Cloud Storage. This # script will be run on the host workstation VM when the VM is created. # The URI must be of the form gs://\\{bucket-name}/\\{object-name}. If # specifying a startup script, the service account must have [Permission # to access the bucket and script file in Cloud # Storage](https://cloud.google.com/storage/docs/access-control/iam-permissions). # Otherwise, the script must be publicly accessible. # Note that the service regularly updates the OS version of the host VM, # and it is the responsibility of the user to ensure the script stays # compatible with the OS version. # @!attribute [rw] instance_metadata # @return [::Google::Protobuf::Map{::String => ::String}] # Optional. Custom metadata to apply to Compute Engine instances. class GceInstance include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # A set of Compute Engine Shielded instance options. # @!attribute [rw] enable_secure_boot # @return [::Boolean] # Optional. Whether the instance has Secure Boot enabled. # @!attribute [rw] enable_vtpm # @return [::Boolean] # Optional. Whether the instance has the vTPM enabled. # @!attribute [rw] enable_integrity_monitoring # @return [::Boolean] # Optional. Whether the instance has integrity monitoring enabled. class GceShieldedInstanceConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # A set of Compute Engine Confidential VM instance options. # @!attribute [rw] enable_confidential_compute # @return [::Boolean] # Optional. Whether the instance has confidential compute enabled. class GceConfidentialInstanceConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # An accelerator card attached to the instance. # @!attribute [rw] type # @return [::String] # Optional. Type of accelerator resource to attach to the instance, for # example, # `"nvidia-tesla-p100"`. # @!attribute [rw] count # @return [::Integer] # Optional. Number of accelerator cards exposed to the instance. class Accelerator include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # A boost configuration is a set of resources that a workstation can use # to increase its performance. If you specify a boost configuration, upon # startup, workstation users can choose to use a VM provisioned under the # boost config by passing the boost config ID in the start request. If # the workstation user does not provide a boost config ID in the start # request, the system will choose a VM from the pool provisioned under # the default config. # @!attribute [rw] id # @return [::String] # Required. The ID to be used for the boost configuration. # @!attribute [rw] machine_type # @return [::String] # Optional. 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`. # @!attribute [rw] accelerators # @return [::Array<::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::Accelerator>] # Optional. A list of the type and count of accelerator cards attached # to the boost instance. Defaults to `none`. # @!attribute [rw] boot_disk_size_gb # @return [::Integer] # Optional. The size of the boot disk for the VM in gigabytes (GB). # The minimum boot disk size is `30` GB. Defaults to `50` GB. # @!attribute [rw] enable_nested_virtualization # @return [::Boolean] # Optional. Whether to enable nested virtualization on boosted Cloud # Workstations VMs running using this boost configuration. # # Defaults to false. # # Nested virtualization lets you run virtual machine (VM) instances # inside your workstation. Before enabling nested virtualization, # consider the following important considerations. Cloud Workstations # instances are subject to the [same restrictions as Compute Engine # instances](https://cloud.google.com/compute/docs/instances/nested-virtualization/overview#restrictions): # # * **Organization policy**: projects, folders, or # organizations may be restricted from creating nested VMs if the # **Disable VM nested virtualization** constraint is enforced in # the organization policy. For more information, see the # Compute Engine section, # [Checking whether nested virtualization is # allowed](https://cloud.google.com/compute/docs/instances/nested-virtualization/managing-constraint#checking_whether_nested_virtualization_is_allowed). # * **Performance**: nested VMs might experience a 10% or greater # decrease in performance for workloads that are CPU-bound and # possibly greater than a 10% decrease for workloads that are # input/output bound. # * **Machine Type**: nested virtualization can only be enabled on # boost configurations that specify a # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::BoostConfig#machine_type machine_type} # in the N1 or N2 machine series. # @!attribute [rw] pool_size # @return [::Integer] # Optional. The number of boost VMs that the system should keep idle so # that workstations can be boosted quickly. Defaults to `0`. # @!attribute [rw] reservation_affinity # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::ReservationAffinity] # Optional. # [ReservationAffinity](https://cloud.google.com/compute/docs/instances/reserving-zonal-resources) # specifies a reservation that can be consumed to create boost VM # instances. If SPECIFIC_RESERVATION is specified, Cloud Workstations # will only create VMs in the zone where the reservation is located. # This would affect availability since the service will no longer be # resilient to zonal outages. If ANY_RESERVATION is specified, creating # reservations in both zones that the config creates VMs in will ensure # higher availability. # **Important Considerations for Reservation Affinity:** # # * This feature is intended for advanced users and requires # familiarity with Google Compute Engine reservations. # * Using reservations incurs charges, regardless of utilization. # * The resources in the pool will consume the specified # reservation. Take this into account when setting the # pool size. class BoostConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # ReservationAffinity is the configuration of the desired reservation # from which instances can consume resources. # @!attribute [rw] consume_reservation_type # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::ReservationAffinity::Type] # Optional. Corresponds to the type of reservation consumption. # @!attribute [rw] key # @return [::String] # Optional. Corresponds to the label key of reservation resource. # @!attribute [rw] values # @return [::Array<::String>] # Optional. Corresponds to the label values of reservation resources. # Valid values are either the name of a reservation in the same project # or "projects/\\{project}/reservations/\\{reservation}" to target a shared # reservation in the same zone but in a different project. class ReservationAffinity include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # Indicates whether to consume capacity from a reservation or not. module Type # Default value. This should not be used. TYPE_UNSPECIFIED = 0 # Do not consume from any reserved capacity. NO_RESERVATION = 1 # Consume any reservation available. ANY_RESERVATION = 2 # Must consume from a specific reservation. Must specify key value # fields for specifying the reservations. SPECIFIC_RESERVATION = 3 end end # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class VmTagsEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class InstanceMetadataEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end end end # A directory to persist across workstation sessions. Updates to this field # will not update existing workstations and will only take effect on new # workstations. # @!attribute [rw] gce_pd # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk] # A PersistentDirectory backed by a Compute Engine persistent disk. # # Note: The following fields are mutually exclusive: `gce_pd`, `gce_hd`. If a field in that set is populated, all other fields in the set will automatically be cleared. # @!attribute [rw] gce_hd # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceHyperdiskBalancedHighAvailability] # A PersistentDirectory backed by a Compute Engine hyperdisk high # availability disk. # # Note: The following fields are mutually exclusive: `gce_hd`, `gce_pd`. If a field in that set is populated, all other fields in the set will automatically be cleared. # @!attribute [rw] mount_path # @return [::String] # Optional. Location of this directory in the running workstation. class PersistentDirectory include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # A Persistent Directory backed by a Compute Engine regional persistent # disk. The # {::Google::Cloud::Workstations::V1beta::WorkstationConfig#persistent_directories persistent_directories} # field is repeated, but it may contain only one entry. It creates a # [persistent # disk](https://cloud.google.com/compute/docs/disks/persistent-disks) that # mounts to the workstation VM at `/home` when the session starts and # detaches when the session ends. If this field is empty, workstations # created with this configuration do not have a persistent home # directory. # @!attribute [rw] size_gb # @return [::Integer] # Optional. The GB capacity of a persistent home directory for each # workstation created with this configuration. Must be empty if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk#source_snapshot source_snapshot} # is set. # # Valid values are `10`, `50`, `100`, `200`, `500`, or `1000`. # Defaults to `200`. If less than `200` GB, the # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk#disk_type disk_type} # must be # `"pd-balanced"` or `"pd-ssd"`. # @!attribute [rw] max_size_gb # @return [::Integer] # Optional. Maximum size in GB to which this persistent directory can be # resized. Defaults to unlimited if not set. # @!attribute [rw] fs_type # @return [::String] # Optional. Type of file system that the disk should be formatted with. # The workstation image must support this file system type. Must be empty # if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk#source_snapshot source_snapshot} # is set. Defaults to `"ext4"`. # @!attribute [rw] disk_type # @return [::String] # Optional. The [type of the persistent # disk](https://cloud.google.com/compute/docs/disks#disk-types) for the # home directory. Defaults to `"pd-standard"`. # @!attribute [rw] source_snapshot # @return [::String] # Optional. Name of the snapshot to use as the source for the disk. If # set, # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk#size_gb size_gb} # and # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk#fs_type fs_type} # must be empty. Must be formatted as ext4 file system with no # partitions. # @!attribute [rw] reclaim_policy # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk::ReclaimPolicy] # Optional. Whether the persistent disk should be deleted when the # workstation is deleted. Valid values are `DELETE` and `RETAIN`. # Defaults to `DELETE`. # @!attribute [rw] archive_timeout # @return [::Google::Protobuf::Duration] # Optional. Number of seconds to wait after initially creating or # subsequently shutting down the workstation before converting its disk # into a snapshot. This generally saves costs at the expense of greater # startup time on next workstation start, as the service will need to # create a disk from the archival snapshot. # # A value of `"0s"` indicates that the disk will never be archived. class GceRegionalPersistentDisk include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # Value representing what should happen to the disk after the workstation # is deleted. module ReclaimPolicy # Do not use. RECLAIM_POLICY_UNSPECIFIED = 0 # Delete the persistent disk when deleting the workstation. DELETE = 1 # Keep the persistent disk when deleting the workstation. # An administrator must manually delete the disk. RETAIN = 2 end end # A Persistent Directory backed by a Compute Engine # [Hyperdisk Balanced High Availability # Disk](https://cloud.google.com/compute/docs/disks/hd-types/hyperdisk-balanced-ha). # This is a high-availability block storage solution that offers a balance # between performance and cost for most general-purpose workloads. # @!attribute [rw] size_gb # @return [::Integer] # Optional. The GB capacity of a persistent home directory for each # workstation created with this configuration. Must be empty if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceHyperdiskBalancedHighAvailability#source_snapshot source_snapshot} # is set. # # Valid values are `10`, `50`, `100`, `200`, `500`, or `1000`. # Defaults to `200`. # @!attribute [rw] max_size_gb # @return [::Integer] # Optional. Maximum size in GB to which this persistent directory can be # resized. Defaults to unlimited if not set. # @!attribute [rw] source_snapshot # @return [::String] # Optional. Name of the snapshot to use as the source for the disk. If # set, # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceHyperdiskBalancedHighAvailability#size_gb size_gb} # must be empty. Must be formatted as ext4 file system with no # partitions. # @!attribute [rw] reclaim_policy # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceHyperdiskBalancedHighAvailability::ReclaimPolicy] # Optional. Whether the persistent disk should be deleted when the # workstation is deleted. Valid values are `DELETE` and `RETAIN`. # Defaults to `DELETE`. # @!attribute [rw] archive_timeout # @return [::Google::Protobuf::Duration] # Optional. Number of seconds to wait after initially creating or # subsequently shutting down the workstation before converting its disk # into a snapshot. This generally saves costs at the expense of greater # startup time on next workstation start, as the service will need to # create a disk from the archival snapshot. # # A value of `"0s"` indicates that the disk will never be archived. class GceHyperdiskBalancedHighAvailability include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # Value representing what should happen to the disk after the workstation # is deleted. module ReclaimPolicy # Do not use. RECLAIM_POLICY_UNSPECIFIED = 0 # Delete the persistent disk when deleting the workstation. DELETE = 1 # Keep the persistent disk when deleting the workstation. # An administrator must manually delete the disk. RETAIN = 2 end end end # An ephemeral directory which won't persist across workstation sessions. It # is freshly created on every workstation start operation. # @!attribute [rw] gce_pd # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk] # An EphemeralDirectory backed by a Compute Engine persistent disk. # @!attribute [rw] mount_path # @return [::String] # Required. Location of this directory in the running workstation. class EphemeralDirectory include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # An EphemeralDirectory is backed by a Compute Engine persistent disk. # @!attribute [rw] disk_type # @return [::String] # Optional. Type of the disk to use. Defaults to `"pd-standard"`. # @!attribute [rw] source_snapshot # @return [::String] # Optional. Name of the snapshot to use as the source for the disk. Must # be empty if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#source_image source_image} # is set. Must be empty if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#read_only read_only} # is false. Updating # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#source_snapshot source_snapshot} # will update content in the ephemeral directory after the workstation is # restarted. # # Only file systems supported by Container-Optimized OS (COS) # are explicitly supported. For a list of supported file systems, see # [the filesystems available in Container-Optimized # OS](https://cloud.google.com/container-optimized-os/docs/concepts/supported-filesystems). # # This field is mutable. # @!attribute [rw] source_image # @return [::String] # Optional. Name of the disk image to use as the source for the disk. # Must be empty if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#source_snapshot source_snapshot} # is set. Updating # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#source_image source_image} # will update content in the ephemeral directory after the workstation is # restarted. # # Only file systems supported by Container-Optimized OS (COS) # are explicitly supported. For a list of supported file systems, please # refer to the [COS # documentation](https://cloud.google.com/container-optimized-os/docs/concepts/supported-filesystems). # # This field is mutable. # @!attribute [rw] read_only # @return [::Boolean] # Optional. Whether the disk is read only. If true, the disk may be # shared by multiple VMs and # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#source_snapshot source_snapshot} # must be set. class GcePersistentDisk include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end end # A Docker container. # @!attribute [rw] image # @return [::String] # Optional. A Docker container image that defines a custom environment. # # Cloud Workstations provides a number of # [preconfigured # images](https://cloud.google.com/workstations/docs/preconfigured-base-images), # but you can create your own # [custom container # images](https://cloud.google.com/workstations/docs/custom-container-images). # If using a private image, the `host.gceInstance.serviceAccount` field # must be specified in the workstation configuration. # If using a custom container image, the service account must have # [Artifact Registry # Reader](https://cloud.google.com/artifact-registry/docs/access-control#roles) # permission to pull the specified image. Otherwise, the image must be # publicly accessible. # @!attribute [rw] command # @return [::Array<::String>] # Optional. If set, overrides the default ENTRYPOINT specified by the # image. # @!attribute [rw] args # @return [::Array<::String>] # Optional. Arguments passed to the entrypoint. # @!attribute [rw] env # @return [::Google::Protobuf::Map{::String => ::String}] # Optional. Environment variables passed to the container's entrypoint. # @!attribute [rw] working_dir # @return [::String] # Optional. If set, overrides the default DIR specified by the image. # @!attribute [rw] run_as_user # @return [::Integer] # Optional. If set, overrides the USER specified in the image with the # given uid. class Container include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class EnvEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end end # A customer-managed encryption key (CMEK) for the Compute Engine # resources of the associated workstation configuration. Specify the name of # your Cloud KMS encryption key and the default service account. # We recommend that you use a separate service account and follow # [Cloud KMS best # practices](https://cloud.google.com/kms/docs/separation-of-duties). # @!attribute [rw] kms_key # @return [::String] # Immutable. The name of the Google Cloud KMS encryption key. For example, # `"projects/PROJECT_ID/locations/REGION/keyRings/KEY_RING/cryptoKeys/KEY_NAME"`. # The key must be in the same region as the workstation configuration. # @!attribute [rw] kms_key_service_account # @return [::String] # Immutable. The service account to use with the specified # KMS key. We recommend that you use a separate service account # and follow KMS best practices. For more information, see # [Separation of # duties](https://cloud.google.com/kms/docs/separation-of-duties) and # `gcloud kms keys add-iam-policy-binding` # [`--member`](https://cloud.google.com/sdk/gcloud/reference/kms/keys/add-iam-policy-binding#--member). class CustomerEncryptionKey include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # A readiness check to be performed on a workstation. # @!attribute [rw] path # @return [::String] # Optional. Path to which the request should be sent. # @!attribute [rw] port # @return [::Integer] # Optional. Port to which the request should be sent. class ReadinessCheck include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # HTTP options for the running workstations. # @!attribute [rw] allowed_unauthenticated_cors_preflight_requests # @return [::Boolean] # Optional. By default, the workstations service makes sure that all # requests to the workstation are authenticated. CORS preflight requests do # not include cookies or custom headers, and so are considered # unauthenticated and blocked by the workstations service. Enabling this # option allows these unauthenticated CORS preflight requests through to # the workstation, where it becomes the responsibility of the destination # server in the workstation to validate the request. # @!attribute [rw] disable_localhost_replacement # @return [::Boolean] # Optional. By default, the workstations service replaces references to # localhost, 127.0.0.1, and 0.0.0.0 with the workstation's hostname in http # responses from the workstation so that applications under development run # properly on the workstation. This may intefere with some applications, # and so this option allows that behavior to be disabled. class HttpOptions include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # A PortRange defines a range of ports. Both # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PortRange#first first} # and # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PortRange#last last} # are inclusive. To specify a single port, both # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PortRange#first first} # and # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PortRange#last last} # should be the same. # @!attribute [rw] first # @return [::Integer] # Required. Starting port number for the current range of ports. # Valid ports are 22, 80, and ports within the range 1024-65535. # @!attribute [rw] last # @return [::Integer] # Required. Ending port number for the current range of ports. # Valid ports are 22, 80, and ports within the range 1024-65535. class PortRange include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class AnnotationsEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class LabelsEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end end |
#display_name ⇒ ::String
Returns Optional. Human-readable name for this workstation configuration.
420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 |
# File 'proto_docs/google/cloud/workstations/v1beta/workstations.rb', line 420 class WorkstationConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # Runtime host for a workstation. # @!attribute [rw] gce_instance # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance] # Specifies a Compute Engine instance as the host. class Host include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # A runtime using a Compute Engine instance. # @!attribute [rw] machine_type # @return [::String] # Optional. The type of machine to use for VM instances—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). # @!attribute [rw] service_account # @return [::String] # Optional. The email address of the service account for Cloud # Workstations VMs created with this configuration. When specified, be # sure that the service account has `logging.logEntries.create` and # `monitoring.timeSeries.create` permissions on the project so it can # write logs out to Cloud Logging. If using a custom container image, the # service account must have [Artifact Registry # Reader](https://cloud.google.com/artifact-registry/docs/access-control#roles) # permission to pull the specified image. # # If you as the administrator want to be able to `ssh` into the # underlying VM, you need to set this value to a service account # for which you have the `iam.serviceAccounts.actAs` permission. # Conversely, if you don't want anyone to be able to `ssh` into the # underlying VM, use a service account where no one has that # permission. # # If not set, VMs run with a service account provided by the # Cloud Workstations service, and the image must be publicly # accessible. # @!attribute [rw] service_account_scopes # @return [::Array<::String>] # Optional. Scopes to grant to the # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance#service_account service_account}. # When specified, users of workstations under this configuration must # have `iam.serviceAccounts.actAs` on the service account. # @!attribute [rw] tags # @return [::Array<::String>] # Optional. Network tags to add to the Compute Engine VMs backing the # workstations. This option applies # [network # tags](https://cloud.google.com/vpc/docs/add-remove-network-tags) to VMs # created with this configuration. These network tags enable the creation # of [firewall # rules](https://cloud.google.com/workstations/docs/configure-firewall-rules). # @!attribute [rw] pool_size # @return [::Integer] # Optional. The number of VMs that the system should keep idle so that # new workstations can be started quickly for new users. Defaults to `0` # in the API. # @!attribute [r] pooled_instances # @return [::Integer] # Output only. Number of instances currently available in the pool for # faster workstation startup. # @!attribute [rw] disable_public_ip_addresses # @return [::Boolean] # Optional. When set to true, disables public IP addresses for VMs. If # you disable public IP addresses, you must set up Private Google Access # or Cloud NAT on your network. If you use Private Google Access and you # use `private.googleapis.com` or `restricted.googleapis.com` for # Container Registry and Artifact Registry, make sure that you set # up DNS records for domains `*.gcr.io` and `*.pkg.dev`. # Defaults to false (VMs have public IP addresses). # @!attribute [rw] enable_nested_virtualization # @return [::Boolean] # Optional. Whether to enable nested virtualization on Cloud Workstations # VMs created using this workstation configuration. # # Defaults to false. # # Nested virtualization lets you run virtual machine (VM) instances # inside your workstation. Before enabling nested virtualization, # consider the following important considerations. Cloud Workstations # instances are subject to the [same restrictions as Compute Engine # instances](https://cloud.google.com/compute/docs/instances/nested-virtualization/overview#restrictions): # # * **Organization policy**: projects, folders, or # organizations may be restricted from creating nested VMs if the # **Disable VM nested virtualization** constraint is enforced in # the organization policy. For more information, see the # Compute Engine section, # [Checking whether nested virtualization is # allowed](https://cloud.google.com/compute/docs/instances/nested-virtualization/managing-constraint#checking_whether_nested_virtualization_is_allowed). # * **Performance**: nested VMs might experience a 10% or greater # decrease in performance for workloads that are CPU-bound and # possibly greater than a 10% decrease for workloads that are # input/output bound. # * **Machine Type**: nested virtualization can only be enabled on # workstation configurations that specify a # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance#machine_type machine_type} # in the N1 or N2 machine series. # @!attribute [rw] shielded_instance_config # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::GceShieldedInstanceConfig] # Optional. A set of Compute Engine Shielded instance options. # @!attribute [rw] confidential_instance_config # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::GceConfidentialInstanceConfig] # Optional. A set of Compute Engine Confidential VM instance options. # @!attribute [rw] boot_disk_size_gb # @return [::Integer] # Optional. The size of the boot disk for the VM in gigabytes (GB). # The minimum boot disk size is `30` GB. Defaults to `50` GB. # @!attribute [rw] accelerators # @return [::Array<::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::Accelerator>] # Optional. A list of the type and count of accelerator cards attached to # the instance. # @!attribute [rw] boost_configs # @return [::Array<::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::BoostConfig>] # Optional. A list of the boost configurations that workstations created # using this workstation configuration are allowed to use. If specified, # users will have the option to choose from the list of boost configs # when starting a workstation. # @!attribute [rw] disable_ssh # @return [::Boolean] # Optional. Whether to disable SSH access to the VM. # @!attribute [rw] vm_tags # @return [::Google::Protobuf::Map{::String => ::String}] # Optional. Resource manager tags to be bound to this instance. # Tag keys and values have the same definition as [resource manager # tags](https://cloud.google.com/resource-manager/docs/tags/tags-overview). # Keys must be in the format `tagKeys/{tag_key_id}`, and # values are in the format `tagValues/456`. # @!attribute [rw] reservation_affinity # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::ReservationAffinity] # Optional. # [ReservationAffinity](https://cloud.google.com/compute/docs/instances/reserving-zonal-resources) # specifies a reservation that can be consumed to create VM # instances. If SPECIFIC_RESERVATION is specified, Cloud Workstations # will only create VMs in the zone where the reservation is located. # This would affect availability since the service will no longer be # resilient to zonal outages. If ANY_RESERVATION is specified, creating # reservations in both zones that the config creates VMs in will ensure # higher availability. # **Important Considerations for Reservation Affinity:** # # * This feature is intended for advanced users and requires # familiarity with Google Compute Engine reservations. # * Using reservations incurs charges, regardless of utilization. # * The resources in the pool will consume the specified # reservation. Take this into account when setting the # pool size. # @!attribute [rw] startup_script_uri # @return [::String] # Optional. Link to the startup script stored in Cloud Storage. This # script will be run on the host workstation VM when the VM is created. # The URI must be of the form gs://\\{bucket-name}/\\{object-name}. If # specifying a startup script, the service account must have [Permission # to access the bucket and script file in Cloud # Storage](https://cloud.google.com/storage/docs/access-control/iam-permissions). # Otherwise, the script must be publicly accessible. # Note that the service regularly updates the OS version of the host VM, # and it is the responsibility of the user to ensure the script stays # compatible with the OS version. # @!attribute [rw] instance_metadata # @return [::Google::Protobuf::Map{::String => ::String}] # Optional. Custom metadata to apply to Compute Engine instances. class GceInstance include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # A set of Compute Engine Shielded instance options. # @!attribute [rw] enable_secure_boot # @return [::Boolean] # Optional. Whether the instance has Secure Boot enabled. # @!attribute [rw] enable_vtpm # @return [::Boolean] # Optional. Whether the instance has the vTPM enabled. # @!attribute [rw] enable_integrity_monitoring # @return [::Boolean] # Optional. Whether the instance has integrity monitoring enabled. class GceShieldedInstanceConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # A set of Compute Engine Confidential VM instance options. # @!attribute [rw] enable_confidential_compute # @return [::Boolean] # Optional. Whether the instance has confidential compute enabled. class GceConfidentialInstanceConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # An accelerator card attached to the instance. # @!attribute [rw] type # @return [::String] # Optional. Type of accelerator resource to attach to the instance, for # example, # `"nvidia-tesla-p100"`. # @!attribute [rw] count # @return [::Integer] # Optional. Number of accelerator cards exposed to the instance. class Accelerator include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # A boost configuration is a set of resources that a workstation can use # to increase its performance. If you specify a boost configuration, upon # startup, workstation users can choose to use a VM provisioned under the # boost config by passing the boost config ID in the start request. If # the workstation user does not provide a boost config ID in the start # request, the system will choose a VM from the pool provisioned under # the default config. # @!attribute [rw] id # @return [::String] # Required. The ID to be used for the boost configuration. # @!attribute [rw] machine_type # @return [::String] # Optional. 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`. # @!attribute [rw] accelerators # @return [::Array<::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::Accelerator>] # Optional. A list of the type and count of accelerator cards attached # to the boost instance. Defaults to `none`. # @!attribute [rw] boot_disk_size_gb # @return [::Integer] # Optional. The size of the boot disk for the VM in gigabytes (GB). # The minimum boot disk size is `30` GB. Defaults to `50` GB. # @!attribute [rw] enable_nested_virtualization # @return [::Boolean] # Optional. Whether to enable nested virtualization on boosted Cloud # Workstations VMs running using this boost configuration. # # Defaults to false. # # Nested virtualization lets you run virtual machine (VM) instances # inside your workstation. Before enabling nested virtualization, # consider the following important considerations. Cloud Workstations # instances are subject to the [same restrictions as Compute Engine # instances](https://cloud.google.com/compute/docs/instances/nested-virtualization/overview#restrictions): # # * **Organization policy**: projects, folders, or # organizations may be restricted from creating nested VMs if the # **Disable VM nested virtualization** constraint is enforced in # the organization policy. For more information, see the # Compute Engine section, # [Checking whether nested virtualization is # allowed](https://cloud.google.com/compute/docs/instances/nested-virtualization/managing-constraint#checking_whether_nested_virtualization_is_allowed). # * **Performance**: nested VMs might experience a 10% or greater # decrease in performance for workloads that are CPU-bound and # possibly greater than a 10% decrease for workloads that are # input/output bound. # * **Machine Type**: nested virtualization can only be enabled on # boost configurations that specify a # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::BoostConfig#machine_type machine_type} # in the N1 or N2 machine series. # @!attribute [rw] pool_size # @return [::Integer] # Optional. The number of boost VMs that the system should keep idle so # that workstations can be boosted quickly. Defaults to `0`. # @!attribute [rw] reservation_affinity # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::ReservationAffinity] # Optional. # [ReservationAffinity](https://cloud.google.com/compute/docs/instances/reserving-zonal-resources) # specifies a reservation that can be consumed to create boost VM # instances. If SPECIFIC_RESERVATION is specified, Cloud Workstations # will only create VMs in the zone where the reservation is located. # This would affect availability since the service will no longer be # resilient to zonal outages. If ANY_RESERVATION is specified, creating # reservations in both zones that the config creates VMs in will ensure # higher availability. # **Important Considerations for Reservation Affinity:** # # * This feature is intended for advanced users and requires # familiarity with Google Compute Engine reservations. # * Using reservations incurs charges, regardless of utilization. # * The resources in the pool will consume the specified # reservation. Take this into account when setting the # pool size. class BoostConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # ReservationAffinity is the configuration of the desired reservation # from which instances can consume resources. # @!attribute [rw] consume_reservation_type # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::ReservationAffinity::Type] # Optional. Corresponds to the type of reservation consumption. # @!attribute [rw] key # @return [::String] # Optional. Corresponds to the label key of reservation resource. # @!attribute [rw] values # @return [::Array<::String>] # Optional. Corresponds to the label values of reservation resources. # Valid values are either the name of a reservation in the same project # or "projects/\\{project}/reservations/\\{reservation}" to target a shared # reservation in the same zone but in a different project. class ReservationAffinity include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # Indicates whether to consume capacity from a reservation or not. module Type # Default value. This should not be used. TYPE_UNSPECIFIED = 0 # Do not consume from any reserved capacity. NO_RESERVATION = 1 # Consume any reservation available. ANY_RESERVATION = 2 # Must consume from a specific reservation. Must specify key value # fields for specifying the reservations. SPECIFIC_RESERVATION = 3 end end # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class VmTagsEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class InstanceMetadataEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end end end # A directory to persist across workstation sessions. Updates to this field # will not update existing workstations and will only take effect on new # workstations. # @!attribute [rw] gce_pd # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk] # A PersistentDirectory backed by a Compute Engine persistent disk. # # Note: The following fields are mutually exclusive: `gce_pd`, `gce_hd`. If a field in that set is populated, all other fields in the set will automatically be cleared. # @!attribute [rw] gce_hd # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceHyperdiskBalancedHighAvailability] # A PersistentDirectory backed by a Compute Engine hyperdisk high # availability disk. # # Note: The following fields are mutually exclusive: `gce_hd`, `gce_pd`. If a field in that set is populated, all other fields in the set will automatically be cleared. # @!attribute [rw] mount_path # @return [::String] # Optional. Location of this directory in the running workstation. class PersistentDirectory include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # A Persistent Directory backed by a Compute Engine regional persistent # disk. The # {::Google::Cloud::Workstations::V1beta::WorkstationConfig#persistent_directories persistent_directories} # field is repeated, but it may contain only one entry. It creates a # [persistent # disk](https://cloud.google.com/compute/docs/disks/persistent-disks) that # mounts to the workstation VM at `/home` when the session starts and # detaches when the session ends. If this field is empty, workstations # created with this configuration do not have a persistent home # directory. # @!attribute [rw] size_gb # @return [::Integer] # Optional. The GB capacity of a persistent home directory for each # workstation created with this configuration. Must be empty if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk#source_snapshot source_snapshot} # is set. # # Valid values are `10`, `50`, `100`, `200`, `500`, or `1000`. # Defaults to `200`. If less than `200` GB, the # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk#disk_type disk_type} # must be # `"pd-balanced"` or `"pd-ssd"`. # @!attribute [rw] max_size_gb # @return [::Integer] # Optional. Maximum size in GB to which this persistent directory can be # resized. Defaults to unlimited if not set. # @!attribute [rw] fs_type # @return [::String] # Optional. Type of file system that the disk should be formatted with. # The workstation image must support this file system type. Must be empty # if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk#source_snapshot source_snapshot} # is set. Defaults to `"ext4"`. # @!attribute [rw] disk_type # @return [::String] # Optional. The [type of the persistent # disk](https://cloud.google.com/compute/docs/disks#disk-types) for the # home directory. Defaults to `"pd-standard"`. # @!attribute [rw] source_snapshot # @return [::String] # Optional. Name of the snapshot to use as the source for the disk. If # set, # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk#size_gb size_gb} # and # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk#fs_type fs_type} # must be empty. Must be formatted as ext4 file system with no # partitions. # @!attribute [rw] reclaim_policy # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk::ReclaimPolicy] # Optional. Whether the persistent disk should be deleted when the # workstation is deleted. Valid values are `DELETE` and `RETAIN`. # Defaults to `DELETE`. # @!attribute [rw] archive_timeout # @return [::Google::Protobuf::Duration] # Optional. Number of seconds to wait after initially creating or # subsequently shutting down the workstation before converting its disk # into a snapshot. This generally saves costs at the expense of greater # startup time on next workstation start, as the service will need to # create a disk from the archival snapshot. # # A value of `"0s"` indicates that the disk will never be archived. class GceRegionalPersistentDisk include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # Value representing what should happen to the disk after the workstation # is deleted. module ReclaimPolicy # Do not use. RECLAIM_POLICY_UNSPECIFIED = 0 # Delete the persistent disk when deleting the workstation. DELETE = 1 # Keep the persistent disk when deleting the workstation. # An administrator must manually delete the disk. RETAIN = 2 end end # A Persistent Directory backed by a Compute Engine # [Hyperdisk Balanced High Availability # Disk](https://cloud.google.com/compute/docs/disks/hd-types/hyperdisk-balanced-ha). # This is a high-availability block storage solution that offers a balance # between performance and cost for most general-purpose workloads. # @!attribute [rw] size_gb # @return [::Integer] # Optional. The GB capacity of a persistent home directory for each # workstation created with this configuration. Must be empty if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceHyperdiskBalancedHighAvailability#source_snapshot source_snapshot} # is set. # # Valid values are `10`, `50`, `100`, `200`, `500`, or `1000`. # Defaults to `200`. # @!attribute [rw] max_size_gb # @return [::Integer] # Optional. Maximum size in GB to which this persistent directory can be # resized. Defaults to unlimited if not set. # @!attribute [rw] source_snapshot # @return [::String] # Optional. Name of the snapshot to use as the source for the disk. If # set, # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceHyperdiskBalancedHighAvailability#size_gb size_gb} # must be empty. Must be formatted as ext4 file system with no # partitions. # @!attribute [rw] reclaim_policy # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceHyperdiskBalancedHighAvailability::ReclaimPolicy] # Optional. Whether the persistent disk should be deleted when the # workstation is deleted. Valid values are `DELETE` and `RETAIN`. # Defaults to `DELETE`. # @!attribute [rw] archive_timeout # @return [::Google::Protobuf::Duration] # Optional. Number of seconds to wait after initially creating or # subsequently shutting down the workstation before converting its disk # into a snapshot. This generally saves costs at the expense of greater # startup time on next workstation start, as the service will need to # create a disk from the archival snapshot. # # A value of `"0s"` indicates that the disk will never be archived. class GceHyperdiskBalancedHighAvailability include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # Value representing what should happen to the disk after the workstation # is deleted. module ReclaimPolicy # Do not use. RECLAIM_POLICY_UNSPECIFIED = 0 # Delete the persistent disk when deleting the workstation. DELETE = 1 # Keep the persistent disk when deleting the workstation. # An administrator must manually delete the disk. RETAIN = 2 end end end # An ephemeral directory which won't persist across workstation sessions. It # is freshly created on every workstation start operation. # @!attribute [rw] gce_pd # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk] # An EphemeralDirectory backed by a Compute Engine persistent disk. # @!attribute [rw] mount_path # @return [::String] # Required. Location of this directory in the running workstation. class EphemeralDirectory include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # An EphemeralDirectory is backed by a Compute Engine persistent disk. # @!attribute [rw] disk_type # @return [::String] # Optional. Type of the disk to use. Defaults to `"pd-standard"`. # @!attribute [rw] source_snapshot # @return [::String] # Optional. Name of the snapshot to use as the source for the disk. Must # be empty if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#source_image source_image} # is set. Must be empty if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#read_only read_only} # is false. Updating # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#source_snapshot source_snapshot} # will update content in the ephemeral directory after the workstation is # restarted. # # Only file systems supported by Container-Optimized OS (COS) # are explicitly supported. For a list of supported file systems, see # [the filesystems available in Container-Optimized # OS](https://cloud.google.com/container-optimized-os/docs/concepts/supported-filesystems). # # This field is mutable. # @!attribute [rw] source_image # @return [::String] # Optional. Name of the disk image to use as the source for the disk. # Must be empty if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#source_snapshot source_snapshot} # is set. Updating # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#source_image source_image} # will update content in the ephemeral directory after the workstation is # restarted. # # Only file systems supported by Container-Optimized OS (COS) # are explicitly supported. For a list of supported file systems, please # refer to the [COS # documentation](https://cloud.google.com/container-optimized-os/docs/concepts/supported-filesystems). # # This field is mutable. # @!attribute [rw] read_only # @return [::Boolean] # Optional. Whether the disk is read only. If true, the disk may be # shared by multiple VMs and # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#source_snapshot source_snapshot} # must be set. class GcePersistentDisk include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end end # A Docker container. # @!attribute [rw] image # @return [::String] # Optional. A Docker container image that defines a custom environment. # # Cloud Workstations provides a number of # [preconfigured # images](https://cloud.google.com/workstations/docs/preconfigured-base-images), # but you can create your own # [custom container # images](https://cloud.google.com/workstations/docs/custom-container-images). # If using a private image, the `host.gceInstance.serviceAccount` field # must be specified in the workstation configuration. # If using a custom container image, the service account must have # [Artifact Registry # Reader](https://cloud.google.com/artifact-registry/docs/access-control#roles) # permission to pull the specified image. Otherwise, the image must be # publicly accessible. # @!attribute [rw] command # @return [::Array<::String>] # Optional. If set, overrides the default ENTRYPOINT specified by the # image. # @!attribute [rw] args # @return [::Array<::String>] # Optional. Arguments passed to the entrypoint. # @!attribute [rw] env # @return [::Google::Protobuf::Map{::String => ::String}] # Optional. Environment variables passed to the container's entrypoint. # @!attribute [rw] working_dir # @return [::String] # Optional. If set, overrides the default DIR specified by the image. # @!attribute [rw] run_as_user # @return [::Integer] # Optional. If set, overrides the USER specified in the image with the # given uid. class Container include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class EnvEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end end # A customer-managed encryption key (CMEK) for the Compute Engine # resources of the associated workstation configuration. Specify the name of # your Cloud KMS encryption key and the default service account. # We recommend that you use a separate service account and follow # [Cloud KMS best # practices](https://cloud.google.com/kms/docs/separation-of-duties). # @!attribute [rw] kms_key # @return [::String] # Immutable. The name of the Google Cloud KMS encryption key. For example, # `"projects/PROJECT_ID/locations/REGION/keyRings/KEY_RING/cryptoKeys/KEY_NAME"`. # The key must be in the same region as the workstation configuration. # @!attribute [rw] kms_key_service_account # @return [::String] # Immutable. The service account to use with the specified # KMS key. We recommend that you use a separate service account # and follow KMS best practices. For more information, see # [Separation of # duties](https://cloud.google.com/kms/docs/separation-of-duties) and # `gcloud kms keys add-iam-policy-binding` # [`--member`](https://cloud.google.com/sdk/gcloud/reference/kms/keys/add-iam-policy-binding#--member). class CustomerEncryptionKey include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # A readiness check to be performed on a workstation. # @!attribute [rw] path # @return [::String] # Optional. Path to which the request should be sent. # @!attribute [rw] port # @return [::Integer] # Optional. Port to which the request should be sent. class ReadinessCheck include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # HTTP options for the running workstations. # @!attribute [rw] allowed_unauthenticated_cors_preflight_requests # @return [::Boolean] # Optional. By default, the workstations service makes sure that all # requests to the workstation are authenticated. CORS preflight requests do # not include cookies or custom headers, and so are considered # unauthenticated and blocked by the workstations service. Enabling this # option allows these unauthenticated CORS preflight requests through to # the workstation, where it becomes the responsibility of the destination # server in the workstation to validate the request. # @!attribute [rw] disable_localhost_replacement # @return [::Boolean] # Optional. By default, the workstations service replaces references to # localhost, 127.0.0.1, and 0.0.0.0 with the workstation's hostname in http # responses from the workstation so that applications under development run # properly on the workstation. This may intefere with some applications, # and so this option allows that behavior to be disabled. class HttpOptions include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # A PortRange defines a range of ports. Both # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PortRange#first first} # and # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PortRange#last last} # are inclusive. To specify a single port, both # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PortRange#first first} # and # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PortRange#last last} # should be the same. # @!attribute [rw] first # @return [::Integer] # Required. Starting port number for the current range of ports. # Valid ports are 22, 80, and ports within the range 1024-65535. # @!attribute [rw] last # @return [::Integer] # Required. Ending port number for the current range of ports. # Valid ports are 22, 80, and ports within the range 1024-65535. class PortRange include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class AnnotationsEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class LabelsEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end end |
#enable_audit_agent ⇒ ::Boolean
Returns Optional. Whether to enable Linux auditd logging on the workstation. When
enabled, a
service_account
must also be specified that has roles/logging.logWriter and
roles/monitoring.metricWriter on the project. Operating system audit
logging is distinct from Cloud Audit
Logs and
Container output
logging.
Operating system audit logs are available in the
Cloud Logging console by querying:
resource.type="gce_instance"
log_name:"/logs/linux-auditd".
420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 |
# File 'proto_docs/google/cloud/workstations/v1beta/workstations.rb', line 420 class WorkstationConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # Runtime host for a workstation. # @!attribute [rw] gce_instance # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance] # Specifies a Compute Engine instance as the host. class Host include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # A runtime using a Compute Engine instance. # @!attribute [rw] machine_type # @return [::String] # Optional. The type of machine to use for VM instances—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). # @!attribute [rw] service_account # @return [::String] # Optional. The email address of the service account for Cloud # Workstations VMs created with this configuration. When specified, be # sure that the service account has `logging.logEntries.create` and # `monitoring.timeSeries.create` permissions on the project so it can # write logs out to Cloud Logging. If using a custom container image, the # service account must have [Artifact Registry # Reader](https://cloud.google.com/artifact-registry/docs/access-control#roles) # permission to pull the specified image. # # If you as the administrator want to be able to `ssh` into the # underlying VM, you need to set this value to a service account # for which you have the `iam.serviceAccounts.actAs` permission. # Conversely, if you don't want anyone to be able to `ssh` into the # underlying VM, use a service account where no one has that # permission. # # If not set, VMs run with a service account provided by the # Cloud Workstations service, and the image must be publicly # accessible. # @!attribute [rw] service_account_scopes # @return [::Array<::String>] # Optional. Scopes to grant to the # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance#service_account service_account}. # When specified, users of workstations under this configuration must # have `iam.serviceAccounts.actAs` on the service account. # @!attribute [rw] tags # @return [::Array<::String>] # Optional. Network tags to add to the Compute Engine VMs backing the # workstations. This option applies # [network # tags](https://cloud.google.com/vpc/docs/add-remove-network-tags) to VMs # created with this configuration. These network tags enable the creation # of [firewall # rules](https://cloud.google.com/workstations/docs/configure-firewall-rules). # @!attribute [rw] pool_size # @return [::Integer] # Optional. The number of VMs that the system should keep idle so that # new workstations can be started quickly for new users. Defaults to `0` # in the API. # @!attribute [r] pooled_instances # @return [::Integer] # Output only. Number of instances currently available in the pool for # faster workstation startup. # @!attribute [rw] disable_public_ip_addresses # @return [::Boolean] # Optional. When set to true, disables public IP addresses for VMs. If # you disable public IP addresses, you must set up Private Google Access # or Cloud NAT on your network. If you use Private Google Access and you # use `private.googleapis.com` or `restricted.googleapis.com` for # Container Registry and Artifact Registry, make sure that you set # up DNS records for domains `*.gcr.io` and `*.pkg.dev`. # Defaults to false (VMs have public IP addresses). # @!attribute [rw] enable_nested_virtualization # @return [::Boolean] # Optional. Whether to enable nested virtualization on Cloud Workstations # VMs created using this workstation configuration. # # Defaults to false. # # Nested virtualization lets you run virtual machine (VM) instances # inside your workstation. Before enabling nested virtualization, # consider the following important considerations. Cloud Workstations # instances are subject to the [same restrictions as Compute Engine # instances](https://cloud.google.com/compute/docs/instances/nested-virtualization/overview#restrictions): # # * **Organization policy**: projects, folders, or # organizations may be restricted from creating nested VMs if the # **Disable VM nested virtualization** constraint is enforced in # the organization policy. For more information, see the # Compute Engine section, # [Checking whether nested virtualization is # allowed](https://cloud.google.com/compute/docs/instances/nested-virtualization/managing-constraint#checking_whether_nested_virtualization_is_allowed). # * **Performance**: nested VMs might experience a 10% or greater # decrease in performance for workloads that are CPU-bound and # possibly greater than a 10% decrease for workloads that are # input/output bound. # * **Machine Type**: nested virtualization can only be enabled on # workstation configurations that specify a # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance#machine_type machine_type} # in the N1 or N2 machine series. # @!attribute [rw] shielded_instance_config # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::GceShieldedInstanceConfig] # Optional. A set of Compute Engine Shielded instance options. # @!attribute [rw] confidential_instance_config # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::GceConfidentialInstanceConfig] # Optional. A set of Compute Engine Confidential VM instance options. # @!attribute [rw] boot_disk_size_gb # @return [::Integer] # Optional. The size of the boot disk for the VM in gigabytes (GB). # The minimum boot disk size is `30` GB. Defaults to `50` GB. # @!attribute [rw] accelerators # @return [::Array<::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::Accelerator>] # Optional. A list of the type and count of accelerator cards attached to # the instance. # @!attribute [rw] boost_configs # @return [::Array<::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::BoostConfig>] # Optional. A list of the boost configurations that workstations created # using this workstation configuration are allowed to use. If specified, # users will have the option to choose from the list of boost configs # when starting a workstation. # @!attribute [rw] disable_ssh # @return [::Boolean] # Optional. Whether to disable SSH access to the VM. # @!attribute [rw] vm_tags # @return [::Google::Protobuf::Map{::String => ::String}] # Optional. Resource manager tags to be bound to this instance. # Tag keys and values have the same definition as [resource manager # tags](https://cloud.google.com/resource-manager/docs/tags/tags-overview). # Keys must be in the format `tagKeys/{tag_key_id}`, and # values are in the format `tagValues/456`. # @!attribute [rw] reservation_affinity # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::ReservationAffinity] # Optional. # [ReservationAffinity](https://cloud.google.com/compute/docs/instances/reserving-zonal-resources) # specifies a reservation that can be consumed to create VM # instances. If SPECIFIC_RESERVATION is specified, Cloud Workstations # will only create VMs in the zone where the reservation is located. # This would affect availability since the service will no longer be # resilient to zonal outages. If ANY_RESERVATION is specified, creating # reservations in both zones that the config creates VMs in will ensure # higher availability. # **Important Considerations for Reservation Affinity:** # # * This feature is intended for advanced users and requires # familiarity with Google Compute Engine reservations. # * Using reservations incurs charges, regardless of utilization. # * The resources in the pool will consume the specified # reservation. Take this into account when setting the # pool size. # @!attribute [rw] startup_script_uri # @return [::String] # Optional. Link to the startup script stored in Cloud Storage. This # script will be run on the host workstation VM when the VM is created. # The URI must be of the form gs://\\{bucket-name}/\\{object-name}. If # specifying a startup script, the service account must have [Permission # to access the bucket and script file in Cloud # Storage](https://cloud.google.com/storage/docs/access-control/iam-permissions). # Otherwise, the script must be publicly accessible. # Note that the service regularly updates the OS version of the host VM, # and it is the responsibility of the user to ensure the script stays # compatible with the OS version. # @!attribute [rw] instance_metadata # @return [::Google::Protobuf::Map{::String => ::String}] # Optional. Custom metadata to apply to Compute Engine instances. class GceInstance include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # A set of Compute Engine Shielded instance options. # @!attribute [rw] enable_secure_boot # @return [::Boolean] # Optional. Whether the instance has Secure Boot enabled. # @!attribute [rw] enable_vtpm # @return [::Boolean] # Optional. Whether the instance has the vTPM enabled. # @!attribute [rw] enable_integrity_monitoring # @return [::Boolean] # Optional. Whether the instance has integrity monitoring enabled. class GceShieldedInstanceConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # A set of Compute Engine Confidential VM instance options. # @!attribute [rw] enable_confidential_compute # @return [::Boolean] # Optional. Whether the instance has confidential compute enabled. class GceConfidentialInstanceConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # An accelerator card attached to the instance. # @!attribute [rw] type # @return [::String] # Optional. Type of accelerator resource to attach to the instance, for # example, # `"nvidia-tesla-p100"`. # @!attribute [rw] count # @return [::Integer] # Optional. Number of accelerator cards exposed to the instance. class Accelerator include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # A boost configuration is a set of resources that a workstation can use # to increase its performance. If you specify a boost configuration, upon # startup, workstation users can choose to use a VM provisioned under the # boost config by passing the boost config ID in the start request. If # the workstation user does not provide a boost config ID in the start # request, the system will choose a VM from the pool provisioned under # the default config. # @!attribute [rw] id # @return [::String] # Required. The ID to be used for the boost configuration. # @!attribute [rw] machine_type # @return [::String] # Optional. 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`. # @!attribute [rw] accelerators # @return [::Array<::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::Accelerator>] # Optional. A list of the type and count of accelerator cards attached # to the boost instance. Defaults to `none`. # @!attribute [rw] boot_disk_size_gb # @return [::Integer] # Optional. The size of the boot disk for the VM in gigabytes (GB). # The minimum boot disk size is `30` GB. Defaults to `50` GB. # @!attribute [rw] enable_nested_virtualization # @return [::Boolean] # Optional. Whether to enable nested virtualization on boosted Cloud # Workstations VMs running using this boost configuration. # # Defaults to false. # # Nested virtualization lets you run virtual machine (VM) instances # inside your workstation. Before enabling nested virtualization, # consider the following important considerations. Cloud Workstations # instances are subject to the [same restrictions as Compute Engine # instances](https://cloud.google.com/compute/docs/instances/nested-virtualization/overview#restrictions): # # * **Organization policy**: projects, folders, or # organizations may be restricted from creating nested VMs if the # **Disable VM nested virtualization** constraint is enforced in # the organization policy. For more information, see the # Compute Engine section, # [Checking whether nested virtualization is # allowed](https://cloud.google.com/compute/docs/instances/nested-virtualization/managing-constraint#checking_whether_nested_virtualization_is_allowed). # * **Performance**: nested VMs might experience a 10% or greater # decrease in performance for workloads that are CPU-bound and # possibly greater than a 10% decrease for workloads that are # input/output bound. # * **Machine Type**: nested virtualization can only be enabled on # boost configurations that specify a # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::BoostConfig#machine_type machine_type} # in the N1 or N2 machine series. # @!attribute [rw] pool_size # @return [::Integer] # Optional. The number of boost VMs that the system should keep idle so # that workstations can be boosted quickly. Defaults to `0`. # @!attribute [rw] reservation_affinity # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::ReservationAffinity] # Optional. # [ReservationAffinity](https://cloud.google.com/compute/docs/instances/reserving-zonal-resources) # specifies a reservation that can be consumed to create boost VM # instances. If SPECIFIC_RESERVATION is specified, Cloud Workstations # will only create VMs in the zone where the reservation is located. # This would affect availability since the service will no longer be # resilient to zonal outages. If ANY_RESERVATION is specified, creating # reservations in both zones that the config creates VMs in will ensure # higher availability. # **Important Considerations for Reservation Affinity:** # # * This feature is intended for advanced users and requires # familiarity with Google Compute Engine reservations. # * Using reservations incurs charges, regardless of utilization. # * The resources in the pool will consume the specified # reservation. Take this into account when setting the # pool size. class BoostConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # ReservationAffinity is the configuration of the desired reservation # from which instances can consume resources. # @!attribute [rw] consume_reservation_type # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::ReservationAffinity::Type] # Optional. Corresponds to the type of reservation consumption. # @!attribute [rw] key # @return [::String] # Optional. Corresponds to the label key of reservation resource. # @!attribute [rw] values # @return [::Array<::String>] # Optional. Corresponds to the label values of reservation resources. # Valid values are either the name of a reservation in the same project # or "projects/\\{project}/reservations/\\{reservation}" to target a shared # reservation in the same zone but in a different project. class ReservationAffinity include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # Indicates whether to consume capacity from a reservation or not. module Type # Default value. This should not be used. TYPE_UNSPECIFIED = 0 # Do not consume from any reserved capacity. NO_RESERVATION = 1 # Consume any reservation available. ANY_RESERVATION = 2 # Must consume from a specific reservation. Must specify key value # fields for specifying the reservations. SPECIFIC_RESERVATION = 3 end end # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class VmTagsEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class InstanceMetadataEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end end end # A directory to persist across workstation sessions. Updates to this field # will not update existing workstations and will only take effect on new # workstations. # @!attribute [rw] gce_pd # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk] # A PersistentDirectory backed by a Compute Engine persistent disk. # # Note: The following fields are mutually exclusive: `gce_pd`, `gce_hd`. If a field in that set is populated, all other fields in the set will automatically be cleared. # @!attribute [rw] gce_hd # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceHyperdiskBalancedHighAvailability] # A PersistentDirectory backed by a Compute Engine hyperdisk high # availability disk. # # Note: The following fields are mutually exclusive: `gce_hd`, `gce_pd`. If a field in that set is populated, all other fields in the set will automatically be cleared. # @!attribute [rw] mount_path # @return [::String] # Optional. Location of this directory in the running workstation. class PersistentDirectory include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # A Persistent Directory backed by a Compute Engine regional persistent # disk. The # {::Google::Cloud::Workstations::V1beta::WorkstationConfig#persistent_directories persistent_directories} # field is repeated, but it may contain only one entry. It creates a # [persistent # disk](https://cloud.google.com/compute/docs/disks/persistent-disks) that # mounts to the workstation VM at `/home` when the session starts and # detaches when the session ends. If this field is empty, workstations # created with this configuration do not have a persistent home # directory. # @!attribute [rw] size_gb # @return [::Integer] # Optional. The GB capacity of a persistent home directory for each # workstation created with this configuration. Must be empty if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk#source_snapshot source_snapshot} # is set. # # Valid values are `10`, `50`, `100`, `200`, `500`, or `1000`. # Defaults to `200`. If less than `200` GB, the # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk#disk_type disk_type} # must be # `"pd-balanced"` or `"pd-ssd"`. # @!attribute [rw] max_size_gb # @return [::Integer] # Optional. Maximum size in GB to which this persistent directory can be # resized. Defaults to unlimited if not set. # @!attribute [rw] fs_type # @return [::String] # Optional. Type of file system that the disk should be formatted with. # The workstation image must support this file system type. Must be empty # if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk#source_snapshot source_snapshot} # is set. Defaults to `"ext4"`. # @!attribute [rw] disk_type # @return [::String] # Optional. The [type of the persistent # disk](https://cloud.google.com/compute/docs/disks#disk-types) for the # home directory. Defaults to `"pd-standard"`. # @!attribute [rw] source_snapshot # @return [::String] # Optional. Name of the snapshot to use as the source for the disk. If # set, # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk#size_gb size_gb} # and # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk#fs_type fs_type} # must be empty. Must be formatted as ext4 file system with no # partitions. # @!attribute [rw] reclaim_policy # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk::ReclaimPolicy] # Optional. Whether the persistent disk should be deleted when the # workstation is deleted. Valid values are `DELETE` and `RETAIN`. # Defaults to `DELETE`. # @!attribute [rw] archive_timeout # @return [::Google::Protobuf::Duration] # Optional. Number of seconds to wait after initially creating or # subsequently shutting down the workstation before converting its disk # into a snapshot. This generally saves costs at the expense of greater # startup time on next workstation start, as the service will need to # create a disk from the archival snapshot. # # A value of `"0s"` indicates that the disk will never be archived. class GceRegionalPersistentDisk include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # Value representing what should happen to the disk after the workstation # is deleted. module ReclaimPolicy # Do not use. RECLAIM_POLICY_UNSPECIFIED = 0 # Delete the persistent disk when deleting the workstation. DELETE = 1 # Keep the persistent disk when deleting the workstation. # An administrator must manually delete the disk. RETAIN = 2 end end # A Persistent Directory backed by a Compute Engine # [Hyperdisk Balanced High Availability # Disk](https://cloud.google.com/compute/docs/disks/hd-types/hyperdisk-balanced-ha). # This is a high-availability block storage solution that offers a balance # between performance and cost for most general-purpose workloads. # @!attribute [rw] size_gb # @return [::Integer] # Optional. The GB capacity of a persistent home directory for each # workstation created with this configuration. Must be empty if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceHyperdiskBalancedHighAvailability#source_snapshot source_snapshot} # is set. # # Valid values are `10`, `50`, `100`, `200`, `500`, or `1000`. # Defaults to `200`. # @!attribute [rw] max_size_gb # @return [::Integer] # Optional. Maximum size in GB to which this persistent directory can be # resized. Defaults to unlimited if not set. # @!attribute [rw] source_snapshot # @return [::String] # Optional. Name of the snapshot to use as the source for the disk. If # set, # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceHyperdiskBalancedHighAvailability#size_gb size_gb} # must be empty. Must be formatted as ext4 file system with no # partitions. # @!attribute [rw] reclaim_policy # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceHyperdiskBalancedHighAvailability::ReclaimPolicy] # Optional. Whether the persistent disk should be deleted when the # workstation is deleted. Valid values are `DELETE` and `RETAIN`. # Defaults to `DELETE`. # @!attribute [rw] archive_timeout # @return [::Google::Protobuf::Duration] # Optional. Number of seconds to wait after initially creating or # subsequently shutting down the workstation before converting its disk # into a snapshot. This generally saves costs at the expense of greater # startup time on next workstation start, as the service will need to # create a disk from the archival snapshot. # # A value of `"0s"` indicates that the disk will never be archived. class GceHyperdiskBalancedHighAvailability include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # Value representing what should happen to the disk after the workstation # is deleted. module ReclaimPolicy # Do not use. RECLAIM_POLICY_UNSPECIFIED = 0 # Delete the persistent disk when deleting the workstation. DELETE = 1 # Keep the persistent disk when deleting the workstation. # An administrator must manually delete the disk. RETAIN = 2 end end end # An ephemeral directory which won't persist across workstation sessions. It # is freshly created on every workstation start operation. # @!attribute [rw] gce_pd # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk] # An EphemeralDirectory backed by a Compute Engine persistent disk. # @!attribute [rw] mount_path # @return [::String] # Required. Location of this directory in the running workstation. class EphemeralDirectory include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # An EphemeralDirectory is backed by a Compute Engine persistent disk. # @!attribute [rw] disk_type # @return [::String] # Optional. Type of the disk to use. Defaults to `"pd-standard"`. # @!attribute [rw] source_snapshot # @return [::String] # Optional. Name of the snapshot to use as the source for the disk. Must # be empty if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#source_image source_image} # is set. Must be empty if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#read_only read_only} # is false. Updating # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#source_snapshot source_snapshot} # will update content in the ephemeral directory after the workstation is # restarted. # # Only file systems supported by Container-Optimized OS (COS) # are explicitly supported. For a list of supported file systems, see # [the filesystems available in Container-Optimized # OS](https://cloud.google.com/container-optimized-os/docs/concepts/supported-filesystems). # # This field is mutable. # @!attribute [rw] source_image # @return [::String] # Optional. Name of the disk image to use as the source for the disk. # Must be empty if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#source_snapshot source_snapshot} # is set. Updating # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#source_image source_image} # will update content in the ephemeral directory after the workstation is # restarted. # # Only file systems supported by Container-Optimized OS (COS) # are explicitly supported. For a list of supported file systems, please # refer to the [COS # documentation](https://cloud.google.com/container-optimized-os/docs/concepts/supported-filesystems). # # This field is mutable. # @!attribute [rw] read_only # @return [::Boolean] # Optional. Whether the disk is read only. If true, the disk may be # shared by multiple VMs and # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#source_snapshot source_snapshot} # must be set. class GcePersistentDisk include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end end # A Docker container. # @!attribute [rw] image # @return [::String] # Optional. A Docker container image that defines a custom environment. # # Cloud Workstations provides a number of # [preconfigured # images](https://cloud.google.com/workstations/docs/preconfigured-base-images), # but you can create your own # [custom container # images](https://cloud.google.com/workstations/docs/custom-container-images). # If using a private image, the `host.gceInstance.serviceAccount` field # must be specified in the workstation configuration. # If using a custom container image, the service account must have # [Artifact Registry # Reader](https://cloud.google.com/artifact-registry/docs/access-control#roles) # permission to pull the specified image. Otherwise, the image must be # publicly accessible. # @!attribute [rw] command # @return [::Array<::String>] # Optional. If set, overrides the default ENTRYPOINT specified by the # image. # @!attribute [rw] args # @return [::Array<::String>] # Optional. Arguments passed to the entrypoint. # @!attribute [rw] env # @return [::Google::Protobuf::Map{::String => ::String}] # Optional. Environment variables passed to the container's entrypoint. # @!attribute [rw] working_dir # @return [::String] # Optional. If set, overrides the default DIR specified by the image. # @!attribute [rw] run_as_user # @return [::Integer] # Optional. If set, overrides the USER specified in the image with the # given uid. class Container include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class EnvEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end end # A customer-managed encryption key (CMEK) for the Compute Engine # resources of the associated workstation configuration. Specify the name of # your Cloud KMS encryption key and the default service account. # We recommend that you use a separate service account and follow # [Cloud KMS best # practices](https://cloud.google.com/kms/docs/separation-of-duties). # @!attribute [rw] kms_key # @return [::String] # Immutable. The name of the Google Cloud KMS encryption key. For example, # `"projects/PROJECT_ID/locations/REGION/keyRings/KEY_RING/cryptoKeys/KEY_NAME"`. # The key must be in the same region as the workstation configuration. # @!attribute [rw] kms_key_service_account # @return [::String] # Immutable. The service account to use with the specified # KMS key. We recommend that you use a separate service account # and follow KMS best practices. For more information, see # [Separation of # duties](https://cloud.google.com/kms/docs/separation-of-duties) and # `gcloud kms keys add-iam-policy-binding` # [`--member`](https://cloud.google.com/sdk/gcloud/reference/kms/keys/add-iam-policy-binding#--member). class CustomerEncryptionKey include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # A readiness check to be performed on a workstation. # @!attribute [rw] path # @return [::String] # Optional. Path to which the request should be sent. # @!attribute [rw] port # @return [::Integer] # Optional. Port to which the request should be sent. class ReadinessCheck include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # HTTP options for the running workstations. # @!attribute [rw] allowed_unauthenticated_cors_preflight_requests # @return [::Boolean] # Optional. By default, the workstations service makes sure that all # requests to the workstation are authenticated. CORS preflight requests do # not include cookies or custom headers, and so are considered # unauthenticated and blocked by the workstations service. Enabling this # option allows these unauthenticated CORS preflight requests through to # the workstation, where it becomes the responsibility of the destination # server in the workstation to validate the request. # @!attribute [rw] disable_localhost_replacement # @return [::Boolean] # Optional. By default, the workstations service replaces references to # localhost, 127.0.0.1, and 0.0.0.0 with the workstation's hostname in http # responses from the workstation so that applications under development run # properly on the workstation. This may intefere with some applications, # and so this option allows that behavior to be disabled. class HttpOptions include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # A PortRange defines a range of ports. Both # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PortRange#first first} # and # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PortRange#last last} # are inclusive. To specify a single port, both # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PortRange#first first} # and # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PortRange#last last} # should be the same. # @!attribute [rw] first # @return [::Integer] # Required. Starting port number for the current range of ports. # Valid ports are 22, 80, and ports within the range 1024-65535. # @!attribute [rw] last # @return [::Integer] # Required. Ending port number for the current range of ports. # Valid ports are 22, 80, and ports within the range 1024-65535. class PortRange include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class AnnotationsEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class LabelsEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end end |
#enable_pushing_credentials ⇒ ::Boolean
Returns Optional. Enables pushing user provided credentials to Workstations by calling workstations.pushCredentials. If application_default_credentials are supplied to pushCredentials, the provided token is returned when tools and applications running in the user container make a request for Default Application Credentials. Please note that any credentials supplied are made available to all users with access to the workstation.
420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 |
# File 'proto_docs/google/cloud/workstations/v1beta/workstations.rb', line 420 class WorkstationConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # Runtime host for a workstation. # @!attribute [rw] gce_instance # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance] # Specifies a Compute Engine instance as the host. class Host include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # A runtime using a Compute Engine instance. # @!attribute [rw] machine_type # @return [::String] # Optional. The type of machine to use for VM instances—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). # @!attribute [rw] service_account # @return [::String] # Optional. The email address of the service account for Cloud # Workstations VMs created with this configuration. When specified, be # sure that the service account has `logging.logEntries.create` and # `monitoring.timeSeries.create` permissions on the project so it can # write logs out to Cloud Logging. If using a custom container image, the # service account must have [Artifact Registry # Reader](https://cloud.google.com/artifact-registry/docs/access-control#roles) # permission to pull the specified image. # # If you as the administrator want to be able to `ssh` into the # underlying VM, you need to set this value to a service account # for which you have the `iam.serviceAccounts.actAs` permission. # Conversely, if you don't want anyone to be able to `ssh` into the # underlying VM, use a service account where no one has that # permission. # # If not set, VMs run with a service account provided by the # Cloud Workstations service, and the image must be publicly # accessible. # @!attribute [rw] service_account_scopes # @return [::Array<::String>] # Optional. Scopes to grant to the # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance#service_account service_account}. # When specified, users of workstations under this configuration must # have `iam.serviceAccounts.actAs` on the service account. # @!attribute [rw] tags # @return [::Array<::String>] # Optional. Network tags to add to the Compute Engine VMs backing the # workstations. This option applies # [network # tags](https://cloud.google.com/vpc/docs/add-remove-network-tags) to VMs # created with this configuration. These network tags enable the creation # of [firewall # rules](https://cloud.google.com/workstations/docs/configure-firewall-rules). # @!attribute [rw] pool_size # @return [::Integer] # Optional. The number of VMs that the system should keep idle so that # new workstations can be started quickly for new users. Defaults to `0` # in the API. # @!attribute [r] pooled_instances # @return [::Integer] # Output only. Number of instances currently available in the pool for # faster workstation startup. # @!attribute [rw] disable_public_ip_addresses # @return [::Boolean] # Optional. When set to true, disables public IP addresses for VMs. If # you disable public IP addresses, you must set up Private Google Access # or Cloud NAT on your network. If you use Private Google Access and you # use `private.googleapis.com` or `restricted.googleapis.com` for # Container Registry and Artifact Registry, make sure that you set # up DNS records for domains `*.gcr.io` and `*.pkg.dev`. # Defaults to false (VMs have public IP addresses). # @!attribute [rw] enable_nested_virtualization # @return [::Boolean] # Optional. Whether to enable nested virtualization on Cloud Workstations # VMs created using this workstation configuration. # # Defaults to false. # # Nested virtualization lets you run virtual machine (VM) instances # inside your workstation. Before enabling nested virtualization, # consider the following important considerations. Cloud Workstations # instances are subject to the [same restrictions as Compute Engine # instances](https://cloud.google.com/compute/docs/instances/nested-virtualization/overview#restrictions): # # * **Organization policy**: projects, folders, or # organizations may be restricted from creating nested VMs if the # **Disable VM nested virtualization** constraint is enforced in # the organization policy. For more information, see the # Compute Engine section, # [Checking whether nested virtualization is # allowed](https://cloud.google.com/compute/docs/instances/nested-virtualization/managing-constraint#checking_whether_nested_virtualization_is_allowed). # * **Performance**: nested VMs might experience a 10% or greater # decrease in performance for workloads that are CPU-bound and # possibly greater than a 10% decrease for workloads that are # input/output bound. # * **Machine Type**: nested virtualization can only be enabled on # workstation configurations that specify a # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance#machine_type machine_type} # in the N1 or N2 machine series. # @!attribute [rw] shielded_instance_config # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::GceShieldedInstanceConfig] # Optional. A set of Compute Engine Shielded instance options. # @!attribute [rw] confidential_instance_config # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::GceConfidentialInstanceConfig] # Optional. A set of Compute Engine Confidential VM instance options. # @!attribute [rw] boot_disk_size_gb # @return [::Integer] # Optional. The size of the boot disk for the VM in gigabytes (GB). # The minimum boot disk size is `30` GB. Defaults to `50` GB. # @!attribute [rw] accelerators # @return [::Array<::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::Accelerator>] # Optional. A list of the type and count of accelerator cards attached to # the instance. # @!attribute [rw] boost_configs # @return [::Array<::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::BoostConfig>] # Optional. A list of the boost configurations that workstations created # using this workstation configuration are allowed to use. If specified, # users will have the option to choose from the list of boost configs # when starting a workstation. # @!attribute [rw] disable_ssh # @return [::Boolean] # Optional. Whether to disable SSH access to the VM. # @!attribute [rw] vm_tags # @return [::Google::Protobuf::Map{::String => ::String}] # Optional. Resource manager tags to be bound to this instance. # Tag keys and values have the same definition as [resource manager # tags](https://cloud.google.com/resource-manager/docs/tags/tags-overview). # Keys must be in the format `tagKeys/{tag_key_id}`, and # values are in the format `tagValues/456`. # @!attribute [rw] reservation_affinity # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::ReservationAffinity] # Optional. # [ReservationAffinity](https://cloud.google.com/compute/docs/instances/reserving-zonal-resources) # specifies a reservation that can be consumed to create VM # instances. If SPECIFIC_RESERVATION is specified, Cloud Workstations # will only create VMs in the zone where the reservation is located. # This would affect availability since the service will no longer be # resilient to zonal outages. If ANY_RESERVATION is specified, creating # reservations in both zones that the config creates VMs in will ensure # higher availability. # **Important Considerations for Reservation Affinity:** # # * This feature is intended for advanced users and requires # familiarity with Google Compute Engine reservations. # * Using reservations incurs charges, regardless of utilization. # * The resources in the pool will consume the specified # reservation. Take this into account when setting the # pool size. # @!attribute [rw] startup_script_uri # @return [::String] # Optional. Link to the startup script stored in Cloud Storage. This # script will be run on the host workstation VM when the VM is created. # The URI must be of the form gs://\\{bucket-name}/\\{object-name}. If # specifying a startup script, the service account must have [Permission # to access the bucket and script file in Cloud # Storage](https://cloud.google.com/storage/docs/access-control/iam-permissions). # Otherwise, the script must be publicly accessible. # Note that the service regularly updates the OS version of the host VM, # and it is the responsibility of the user to ensure the script stays # compatible with the OS version. # @!attribute [rw] instance_metadata # @return [::Google::Protobuf::Map{::String => ::String}] # Optional. Custom metadata to apply to Compute Engine instances. class GceInstance include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # A set of Compute Engine Shielded instance options. # @!attribute [rw] enable_secure_boot # @return [::Boolean] # Optional. Whether the instance has Secure Boot enabled. # @!attribute [rw] enable_vtpm # @return [::Boolean] # Optional. Whether the instance has the vTPM enabled. # @!attribute [rw] enable_integrity_monitoring # @return [::Boolean] # Optional. Whether the instance has integrity monitoring enabled. class GceShieldedInstanceConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # A set of Compute Engine Confidential VM instance options. # @!attribute [rw] enable_confidential_compute # @return [::Boolean] # Optional. Whether the instance has confidential compute enabled. class GceConfidentialInstanceConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # An accelerator card attached to the instance. # @!attribute [rw] type # @return [::String] # Optional. Type of accelerator resource to attach to the instance, for # example, # `"nvidia-tesla-p100"`. # @!attribute [rw] count # @return [::Integer] # Optional. Number of accelerator cards exposed to the instance. class Accelerator include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # A boost configuration is a set of resources that a workstation can use # to increase its performance. If you specify a boost configuration, upon # startup, workstation users can choose to use a VM provisioned under the # boost config by passing the boost config ID in the start request. If # the workstation user does not provide a boost config ID in the start # request, the system will choose a VM from the pool provisioned under # the default config. # @!attribute [rw] id # @return [::String] # Required. The ID to be used for the boost configuration. # @!attribute [rw] machine_type # @return [::String] # Optional. 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`. # @!attribute [rw] accelerators # @return [::Array<::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::Accelerator>] # Optional. A list of the type and count of accelerator cards attached # to the boost instance. Defaults to `none`. # @!attribute [rw] boot_disk_size_gb # @return [::Integer] # Optional. The size of the boot disk for the VM in gigabytes (GB). # The minimum boot disk size is `30` GB. Defaults to `50` GB. # @!attribute [rw] enable_nested_virtualization # @return [::Boolean] # Optional. Whether to enable nested virtualization on boosted Cloud # Workstations VMs running using this boost configuration. # # Defaults to false. # # Nested virtualization lets you run virtual machine (VM) instances # inside your workstation. Before enabling nested virtualization, # consider the following important considerations. Cloud Workstations # instances are subject to the [same restrictions as Compute Engine # instances](https://cloud.google.com/compute/docs/instances/nested-virtualization/overview#restrictions): # # * **Organization policy**: projects, folders, or # organizations may be restricted from creating nested VMs if the # **Disable VM nested virtualization** constraint is enforced in # the organization policy. For more information, see the # Compute Engine section, # [Checking whether nested virtualization is # allowed](https://cloud.google.com/compute/docs/instances/nested-virtualization/managing-constraint#checking_whether_nested_virtualization_is_allowed). # * **Performance**: nested VMs might experience a 10% or greater # decrease in performance for workloads that are CPU-bound and # possibly greater than a 10% decrease for workloads that are # input/output bound. # * **Machine Type**: nested virtualization can only be enabled on # boost configurations that specify a # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::BoostConfig#machine_type machine_type} # in the N1 or N2 machine series. # @!attribute [rw] pool_size # @return [::Integer] # Optional. The number of boost VMs that the system should keep idle so # that workstations can be boosted quickly. Defaults to `0`. # @!attribute [rw] reservation_affinity # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::ReservationAffinity] # Optional. # [ReservationAffinity](https://cloud.google.com/compute/docs/instances/reserving-zonal-resources) # specifies a reservation that can be consumed to create boost VM # instances. If SPECIFIC_RESERVATION is specified, Cloud Workstations # will only create VMs in the zone where the reservation is located. # This would affect availability since the service will no longer be # resilient to zonal outages. If ANY_RESERVATION is specified, creating # reservations in both zones that the config creates VMs in will ensure # higher availability. # **Important Considerations for Reservation Affinity:** # # * This feature is intended for advanced users and requires # familiarity with Google Compute Engine reservations. # * Using reservations incurs charges, regardless of utilization. # * The resources in the pool will consume the specified # reservation. Take this into account when setting the # pool size. class BoostConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # ReservationAffinity is the configuration of the desired reservation # from which instances can consume resources. # @!attribute [rw] consume_reservation_type # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::ReservationAffinity::Type] # Optional. Corresponds to the type of reservation consumption. # @!attribute [rw] key # @return [::String] # Optional. Corresponds to the label key of reservation resource. # @!attribute [rw] values # @return [::Array<::String>] # Optional. Corresponds to the label values of reservation resources. # Valid values are either the name of a reservation in the same project # or "projects/\\{project}/reservations/\\{reservation}" to target a shared # reservation in the same zone but in a different project. class ReservationAffinity include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # Indicates whether to consume capacity from a reservation or not. module Type # Default value. This should not be used. TYPE_UNSPECIFIED = 0 # Do not consume from any reserved capacity. NO_RESERVATION = 1 # Consume any reservation available. ANY_RESERVATION = 2 # Must consume from a specific reservation. Must specify key value # fields for specifying the reservations. SPECIFIC_RESERVATION = 3 end end # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class VmTagsEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class InstanceMetadataEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end end end # A directory to persist across workstation sessions. Updates to this field # will not update existing workstations and will only take effect on new # workstations. # @!attribute [rw] gce_pd # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk] # A PersistentDirectory backed by a Compute Engine persistent disk. # # Note: The following fields are mutually exclusive: `gce_pd`, `gce_hd`. If a field in that set is populated, all other fields in the set will automatically be cleared. # @!attribute [rw] gce_hd # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceHyperdiskBalancedHighAvailability] # A PersistentDirectory backed by a Compute Engine hyperdisk high # availability disk. # # Note: The following fields are mutually exclusive: `gce_hd`, `gce_pd`. If a field in that set is populated, all other fields in the set will automatically be cleared. # @!attribute [rw] mount_path # @return [::String] # Optional. Location of this directory in the running workstation. class PersistentDirectory include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # A Persistent Directory backed by a Compute Engine regional persistent # disk. The # {::Google::Cloud::Workstations::V1beta::WorkstationConfig#persistent_directories persistent_directories} # field is repeated, but it may contain only one entry. It creates a # [persistent # disk](https://cloud.google.com/compute/docs/disks/persistent-disks) that # mounts to the workstation VM at `/home` when the session starts and # detaches when the session ends. If this field is empty, workstations # created with this configuration do not have a persistent home # directory. # @!attribute [rw] size_gb # @return [::Integer] # Optional. The GB capacity of a persistent home directory for each # workstation created with this configuration. Must be empty if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk#source_snapshot source_snapshot} # is set. # # Valid values are `10`, `50`, `100`, `200`, `500`, or `1000`. # Defaults to `200`. If less than `200` GB, the # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk#disk_type disk_type} # must be # `"pd-balanced"` or `"pd-ssd"`. # @!attribute [rw] max_size_gb # @return [::Integer] # Optional. Maximum size in GB to which this persistent directory can be # resized. Defaults to unlimited if not set. # @!attribute [rw] fs_type # @return [::String] # Optional. Type of file system that the disk should be formatted with. # The workstation image must support this file system type. Must be empty # if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk#source_snapshot source_snapshot} # is set. Defaults to `"ext4"`. # @!attribute [rw] disk_type # @return [::String] # Optional. The [type of the persistent # disk](https://cloud.google.com/compute/docs/disks#disk-types) for the # home directory. Defaults to `"pd-standard"`. # @!attribute [rw] source_snapshot # @return [::String] # Optional. Name of the snapshot to use as the source for the disk. If # set, # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk#size_gb size_gb} # and # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk#fs_type fs_type} # must be empty. Must be formatted as ext4 file system with no # partitions. # @!attribute [rw] reclaim_policy # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk::ReclaimPolicy] # Optional. Whether the persistent disk should be deleted when the # workstation is deleted. Valid values are `DELETE` and `RETAIN`. # Defaults to `DELETE`. # @!attribute [rw] archive_timeout # @return [::Google::Protobuf::Duration] # Optional. Number of seconds to wait after initially creating or # subsequently shutting down the workstation before converting its disk # into a snapshot. This generally saves costs at the expense of greater # startup time on next workstation start, as the service will need to # create a disk from the archival snapshot. # # A value of `"0s"` indicates that the disk will never be archived. class GceRegionalPersistentDisk include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # Value representing what should happen to the disk after the workstation # is deleted. module ReclaimPolicy # Do not use. RECLAIM_POLICY_UNSPECIFIED = 0 # Delete the persistent disk when deleting the workstation. DELETE = 1 # Keep the persistent disk when deleting the workstation. # An administrator must manually delete the disk. RETAIN = 2 end end # A Persistent Directory backed by a Compute Engine # [Hyperdisk Balanced High Availability # Disk](https://cloud.google.com/compute/docs/disks/hd-types/hyperdisk-balanced-ha). # This is a high-availability block storage solution that offers a balance # between performance and cost for most general-purpose workloads. # @!attribute [rw] size_gb # @return [::Integer] # Optional. The GB capacity of a persistent home directory for each # workstation created with this configuration. Must be empty if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceHyperdiskBalancedHighAvailability#source_snapshot source_snapshot} # is set. # # Valid values are `10`, `50`, `100`, `200`, `500`, or `1000`. # Defaults to `200`. # @!attribute [rw] max_size_gb # @return [::Integer] # Optional. Maximum size in GB to which this persistent directory can be # resized. Defaults to unlimited if not set. # @!attribute [rw] source_snapshot # @return [::String] # Optional. Name of the snapshot to use as the source for the disk. If # set, # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceHyperdiskBalancedHighAvailability#size_gb size_gb} # must be empty. Must be formatted as ext4 file system with no # partitions. # @!attribute [rw] reclaim_policy # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceHyperdiskBalancedHighAvailability::ReclaimPolicy] # Optional. Whether the persistent disk should be deleted when the # workstation is deleted. Valid values are `DELETE` and `RETAIN`. # Defaults to `DELETE`. # @!attribute [rw] archive_timeout # @return [::Google::Protobuf::Duration] # Optional. Number of seconds to wait after initially creating or # subsequently shutting down the workstation before converting its disk # into a snapshot. This generally saves costs at the expense of greater # startup time on next workstation start, as the service will need to # create a disk from the archival snapshot. # # A value of `"0s"` indicates that the disk will never be archived. class GceHyperdiskBalancedHighAvailability include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # Value representing what should happen to the disk after the workstation # is deleted. module ReclaimPolicy # Do not use. RECLAIM_POLICY_UNSPECIFIED = 0 # Delete the persistent disk when deleting the workstation. DELETE = 1 # Keep the persistent disk when deleting the workstation. # An administrator must manually delete the disk. RETAIN = 2 end end end # An ephemeral directory which won't persist across workstation sessions. It # is freshly created on every workstation start operation. # @!attribute [rw] gce_pd # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk] # An EphemeralDirectory backed by a Compute Engine persistent disk. # @!attribute [rw] mount_path # @return [::String] # Required. Location of this directory in the running workstation. class EphemeralDirectory include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # An EphemeralDirectory is backed by a Compute Engine persistent disk. # @!attribute [rw] disk_type # @return [::String] # Optional. Type of the disk to use. Defaults to `"pd-standard"`. # @!attribute [rw] source_snapshot # @return [::String] # Optional. Name of the snapshot to use as the source for the disk. Must # be empty if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#source_image source_image} # is set. Must be empty if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#read_only read_only} # is false. Updating # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#source_snapshot source_snapshot} # will update content in the ephemeral directory after the workstation is # restarted. # # Only file systems supported by Container-Optimized OS (COS) # are explicitly supported. For a list of supported file systems, see # [the filesystems available in Container-Optimized # OS](https://cloud.google.com/container-optimized-os/docs/concepts/supported-filesystems). # # This field is mutable. # @!attribute [rw] source_image # @return [::String] # Optional. Name of the disk image to use as the source for the disk. # Must be empty if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#source_snapshot source_snapshot} # is set. Updating # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#source_image source_image} # will update content in the ephemeral directory after the workstation is # restarted. # # Only file systems supported by Container-Optimized OS (COS) # are explicitly supported. For a list of supported file systems, please # refer to the [COS # documentation](https://cloud.google.com/container-optimized-os/docs/concepts/supported-filesystems). # # This field is mutable. # @!attribute [rw] read_only # @return [::Boolean] # Optional. Whether the disk is read only. If true, the disk may be # shared by multiple VMs and # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#source_snapshot source_snapshot} # must be set. class GcePersistentDisk include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end end # A Docker container. # @!attribute [rw] image # @return [::String] # Optional. A Docker container image that defines a custom environment. # # Cloud Workstations provides a number of # [preconfigured # images](https://cloud.google.com/workstations/docs/preconfigured-base-images), # but you can create your own # [custom container # images](https://cloud.google.com/workstations/docs/custom-container-images). # If using a private image, the `host.gceInstance.serviceAccount` field # must be specified in the workstation configuration. # If using a custom container image, the service account must have # [Artifact Registry # Reader](https://cloud.google.com/artifact-registry/docs/access-control#roles) # permission to pull the specified image. Otherwise, the image must be # publicly accessible. # @!attribute [rw] command # @return [::Array<::String>] # Optional. If set, overrides the default ENTRYPOINT specified by the # image. # @!attribute [rw] args # @return [::Array<::String>] # Optional. Arguments passed to the entrypoint. # @!attribute [rw] env # @return [::Google::Protobuf::Map{::String => ::String}] # Optional. Environment variables passed to the container's entrypoint. # @!attribute [rw] working_dir # @return [::String] # Optional. If set, overrides the default DIR specified by the image. # @!attribute [rw] run_as_user # @return [::Integer] # Optional. If set, overrides the USER specified in the image with the # given uid. class Container include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class EnvEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end end # A customer-managed encryption key (CMEK) for the Compute Engine # resources of the associated workstation configuration. Specify the name of # your Cloud KMS encryption key and the default service account. # We recommend that you use a separate service account and follow # [Cloud KMS best # practices](https://cloud.google.com/kms/docs/separation-of-duties). # @!attribute [rw] kms_key # @return [::String] # Immutable. The name of the Google Cloud KMS encryption key. For example, # `"projects/PROJECT_ID/locations/REGION/keyRings/KEY_RING/cryptoKeys/KEY_NAME"`. # The key must be in the same region as the workstation configuration. # @!attribute [rw] kms_key_service_account # @return [::String] # Immutable. The service account to use with the specified # KMS key. We recommend that you use a separate service account # and follow KMS best practices. For more information, see # [Separation of # duties](https://cloud.google.com/kms/docs/separation-of-duties) and # `gcloud kms keys add-iam-policy-binding` # [`--member`](https://cloud.google.com/sdk/gcloud/reference/kms/keys/add-iam-policy-binding#--member). class CustomerEncryptionKey include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # A readiness check to be performed on a workstation. # @!attribute [rw] path # @return [::String] # Optional. Path to which the request should be sent. # @!attribute [rw] port # @return [::Integer] # Optional. Port to which the request should be sent. class ReadinessCheck include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # HTTP options for the running workstations. # @!attribute [rw] allowed_unauthenticated_cors_preflight_requests # @return [::Boolean] # Optional. By default, the workstations service makes sure that all # requests to the workstation are authenticated. CORS preflight requests do # not include cookies or custom headers, and so are considered # unauthenticated and blocked by the workstations service. Enabling this # option allows these unauthenticated CORS preflight requests through to # the workstation, where it becomes the responsibility of the destination # server in the workstation to validate the request. # @!attribute [rw] disable_localhost_replacement # @return [::Boolean] # Optional. By default, the workstations service replaces references to # localhost, 127.0.0.1, and 0.0.0.0 with the workstation's hostname in http # responses from the workstation so that applications under development run # properly on the workstation. This may intefere with some applications, # and so this option allows that behavior to be disabled. class HttpOptions include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # A PortRange defines a range of ports. Both # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PortRange#first first} # and # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PortRange#last last} # are inclusive. To specify a single port, both # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PortRange#first first} # and # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PortRange#last last} # should be the same. # @!attribute [rw] first # @return [::Integer] # Required. Starting port number for the current range of ports. # Valid ports are 22, 80, and ports within the range 1024-65535. # @!attribute [rw] last # @return [::Integer] # Required. Ending port number for the current range of ports. # Valid ports are 22, 80, and ports within the range 1024-65535. class PortRange include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class AnnotationsEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class LabelsEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end end |
#encryption_key ⇒ ::Google::Cloud::Workstations::V1beta::WorkstationConfig::CustomerEncryptionKey
Returns Immutable. Encrypts resources of this workstation configuration using a customer-managed encryption key (CMEK).
If specified, the boot disk of the Compute Engine instance and the persistent disk are encrypted using this encryption key. If this field is not set, the disks are encrypted using a generated key. Customer-managed encryption keys do not protect disk metadata.
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 might be lost.
If the encryption key is revoked, the workstation session automatically stops within 7 hours.
Immutable after the workstation configuration is created.
420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 |
# File 'proto_docs/google/cloud/workstations/v1beta/workstations.rb', line 420 class WorkstationConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # Runtime host for a workstation. # @!attribute [rw] gce_instance # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance] # Specifies a Compute Engine instance as the host. class Host include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # A runtime using a Compute Engine instance. # @!attribute [rw] machine_type # @return [::String] # Optional. The type of machine to use for VM instances—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). # @!attribute [rw] service_account # @return [::String] # Optional. The email address of the service account for Cloud # Workstations VMs created with this configuration. When specified, be # sure that the service account has `logging.logEntries.create` and # `monitoring.timeSeries.create` permissions on the project so it can # write logs out to Cloud Logging. If using a custom container image, the # service account must have [Artifact Registry # Reader](https://cloud.google.com/artifact-registry/docs/access-control#roles) # permission to pull the specified image. # # If you as the administrator want to be able to `ssh` into the # underlying VM, you need to set this value to a service account # for which you have the `iam.serviceAccounts.actAs` permission. # Conversely, if you don't want anyone to be able to `ssh` into the # underlying VM, use a service account where no one has that # permission. # # If not set, VMs run with a service account provided by the # Cloud Workstations service, and the image must be publicly # accessible. # @!attribute [rw] service_account_scopes # @return [::Array<::String>] # Optional. Scopes to grant to the # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance#service_account service_account}. # When specified, users of workstations under this configuration must # have `iam.serviceAccounts.actAs` on the service account. # @!attribute [rw] tags # @return [::Array<::String>] # Optional. Network tags to add to the Compute Engine VMs backing the # workstations. This option applies # [network # tags](https://cloud.google.com/vpc/docs/add-remove-network-tags) to VMs # created with this configuration. These network tags enable the creation # of [firewall # rules](https://cloud.google.com/workstations/docs/configure-firewall-rules). # @!attribute [rw] pool_size # @return [::Integer] # Optional. The number of VMs that the system should keep idle so that # new workstations can be started quickly for new users. Defaults to `0` # in the API. # @!attribute [r] pooled_instances # @return [::Integer] # Output only. Number of instances currently available in the pool for # faster workstation startup. # @!attribute [rw] disable_public_ip_addresses # @return [::Boolean] # Optional. When set to true, disables public IP addresses for VMs. If # you disable public IP addresses, you must set up Private Google Access # or Cloud NAT on your network. If you use Private Google Access and you # use `private.googleapis.com` or `restricted.googleapis.com` for # Container Registry and Artifact Registry, make sure that you set # up DNS records for domains `*.gcr.io` and `*.pkg.dev`. # Defaults to false (VMs have public IP addresses). # @!attribute [rw] enable_nested_virtualization # @return [::Boolean] # Optional. Whether to enable nested virtualization on Cloud Workstations # VMs created using this workstation configuration. # # Defaults to false. # # Nested virtualization lets you run virtual machine (VM) instances # inside your workstation. Before enabling nested virtualization, # consider the following important considerations. Cloud Workstations # instances are subject to the [same restrictions as Compute Engine # instances](https://cloud.google.com/compute/docs/instances/nested-virtualization/overview#restrictions): # # * **Organization policy**: projects, folders, or # organizations may be restricted from creating nested VMs if the # **Disable VM nested virtualization** constraint is enforced in # the organization policy. For more information, see the # Compute Engine section, # [Checking whether nested virtualization is # allowed](https://cloud.google.com/compute/docs/instances/nested-virtualization/managing-constraint#checking_whether_nested_virtualization_is_allowed). # * **Performance**: nested VMs might experience a 10% or greater # decrease in performance for workloads that are CPU-bound and # possibly greater than a 10% decrease for workloads that are # input/output bound. # * **Machine Type**: nested virtualization can only be enabled on # workstation configurations that specify a # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance#machine_type machine_type} # in the N1 or N2 machine series. # @!attribute [rw] shielded_instance_config # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::GceShieldedInstanceConfig] # Optional. A set of Compute Engine Shielded instance options. # @!attribute [rw] confidential_instance_config # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::GceConfidentialInstanceConfig] # Optional. A set of Compute Engine Confidential VM instance options. # @!attribute [rw] boot_disk_size_gb # @return [::Integer] # Optional. The size of the boot disk for the VM in gigabytes (GB). # The minimum boot disk size is `30` GB. Defaults to `50` GB. # @!attribute [rw] accelerators # @return [::Array<::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::Accelerator>] # Optional. A list of the type and count of accelerator cards attached to # the instance. # @!attribute [rw] boost_configs # @return [::Array<::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::BoostConfig>] # Optional. A list of the boost configurations that workstations created # using this workstation configuration are allowed to use. If specified, # users will have the option to choose from the list of boost configs # when starting a workstation. # @!attribute [rw] disable_ssh # @return [::Boolean] # Optional. Whether to disable SSH access to the VM. # @!attribute [rw] vm_tags # @return [::Google::Protobuf::Map{::String => ::String}] # Optional. Resource manager tags to be bound to this instance. # Tag keys and values have the same definition as [resource manager # tags](https://cloud.google.com/resource-manager/docs/tags/tags-overview). # Keys must be in the format `tagKeys/{tag_key_id}`, and # values are in the format `tagValues/456`. # @!attribute [rw] reservation_affinity # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::ReservationAffinity] # Optional. # [ReservationAffinity](https://cloud.google.com/compute/docs/instances/reserving-zonal-resources) # specifies a reservation that can be consumed to create VM # instances. If SPECIFIC_RESERVATION is specified, Cloud Workstations # will only create VMs in the zone where the reservation is located. # This would affect availability since the service will no longer be # resilient to zonal outages. If ANY_RESERVATION is specified, creating # reservations in both zones that the config creates VMs in will ensure # higher availability. # **Important Considerations for Reservation Affinity:** # # * This feature is intended for advanced users and requires # familiarity with Google Compute Engine reservations. # * Using reservations incurs charges, regardless of utilization. # * The resources in the pool will consume the specified # reservation. Take this into account when setting the # pool size. # @!attribute [rw] startup_script_uri # @return [::String] # Optional. Link to the startup script stored in Cloud Storage. This # script will be run on the host workstation VM when the VM is created. # The URI must be of the form gs://\\{bucket-name}/\\{object-name}. If # specifying a startup script, the service account must have [Permission # to access the bucket and script file in Cloud # Storage](https://cloud.google.com/storage/docs/access-control/iam-permissions). # Otherwise, the script must be publicly accessible. # Note that the service regularly updates the OS version of the host VM, # and it is the responsibility of the user to ensure the script stays # compatible with the OS version. # @!attribute [rw] instance_metadata # @return [::Google::Protobuf::Map{::String => ::String}] # Optional. Custom metadata to apply to Compute Engine instances. class GceInstance include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # A set of Compute Engine Shielded instance options. # @!attribute [rw] enable_secure_boot # @return [::Boolean] # Optional. Whether the instance has Secure Boot enabled. # @!attribute [rw] enable_vtpm # @return [::Boolean] # Optional. Whether the instance has the vTPM enabled. # @!attribute [rw] enable_integrity_monitoring # @return [::Boolean] # Optional. Whether the instance has integrity monitoring enabled. class GceShieldedInstanceConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # A set of Compute Engine Confidential VM instance options. # @!attribute [rw] enable_confidential_compute # @return [::Boolean] # Optional. Whether the instance has confidential compute enabled. class GceConfidentialInstanceConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # An accelerator card attached to the instance. # @!attribute [rw] type # @return [::String] # Optional. Type of accelerator resource to attach to the instance, for # example, # `"nvidia-tesla-p100"`. # @!attribute [rw] count # @return [::Integer] # Optional. Number of accelerator cards exposed to the instance. class Accelerator include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # A boost configuration is a set of resources that a workstation can use # to increase its performance. If you specify a boost configuration, upon # startup, workstation users can choose to use a VM provisioned under the # boost config by passing the boost config ID in the start request. If # the workstation user does not provide a boost config ID in the start # request, the system will choose a VM from the pool provisioned under # the default config. # @!attribute [rw] id # @return [::String] # Required. The ID to be used for the boost configuration. # @!attribute [rw] machine_type # @return [::String] # Optional. 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`. # @!attribute [rw] accelerators # @return [::Array<::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::Accelerator>] # Optional. A list of the type and count of accelerator cards attached # to the boost instance. Defaults to `none`. # @!attribute [rw] boot_disk_size_gb # @return [::Integer] # Optional. The size of the boot disk for the VM in gigabytes (GB). # The minimum boot disk size is `30` GB. Defaults to `50` GB. # @!attribute [rw] enable_nested_virtualization # @return [::Boolean] # Optional. Whether to enable nested virtualization on boosted Cloud # Workstations VMs running using this boost configuration. # # Defaults to false. # # Nested virtualization lets you run virtual machine (VM) instances # inside your workstation. Before enabling nested virtualization, # consider the following important considerations. Cloud Workstations # instances are subject to the [same restrictions as Compute Engine # instances](https://cloud.google.com/compute/docs/instances/nested-virtualization/overview#restrictions): # # * **Organization policy**: projects, folders, or # organizations may be restricted from creating nested VMs if the # **Disable VM nested virtualization** constraint is enforced in # the organization policy. For more information, see the # Compute Engine section, # [Checking whether nested virtualization is # allowed](https://cloud.google.com/compute/docs/instances/nested-virtualization/managing-constraint#checking_whether_nested_virtualization_is_allowed). # * **Performance**: nested VMs might experience a 10% or greater # decrease in performance for workloads that are CPU-bound and # possibly greater than a 10% decrease for workloads that are # input/output bound. # * **Machine Type**: nested virtualization can only be enabled on # boost configurations that specify a # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::BoostConfig#machine_type machine_type} # in the N1 or N2 machine series. # @!attribute [rw] pool_size # @return [::Integer] # Optional. The number of boost VMs that the system should keep idle so # that workstations can be boosted quickly. Defaults to `0`. # @!attribute [rw] reservation_affinity # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::ReservationAffinity] # Optional. # [ReservationAffinity](https://cloud.google.com/compute/docs/instances/reserving-zonal-resources) # specifies a reservation that can be consumed to create boost VM # instances. If SPECIFIC_RESERVATION is specified, Cloud Workstations # will only create VMs in the zone where the reservation is located. # This would affect availability since the service will no longer be # resilient to zonal outages. If ANY_RESERVATION is specified, creating # reservations in both zones that the config creates VMs in will ensure # higher availability. # **Important Considerations for Reservation Affinity:** # # * This feature is intended for advanced users and requires # familiarity with Google Compute Engine reservations. # * Using reservations incurs charges, regardless of utilization. # * The resources in the pool will consume the specified # reservation. Take this into account when setting the # pool size. class BoostConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # ReservationAffinity is the configuration of the desired reservation # from which instances can consume resources. # @!attribute [rw] consume_reservation_type # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::ReservationAffinity::Type] # Optional. Corresponds to the type of reservation consumption. # @!attribute [rw] key # @return [::String] # Optional. Corresponds to the label key of reservation resource. # @!attribute [rw] values # @return [::Array<::String>] # Optional. Corresponds to the label values of reservation resources. # Valid values are either the name of a reservation in the same project # or "projects/\\{project}/reservations/\\{reservation}" to target a shared # reservation in the same zone but in a different project. class ReservationAffinity include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # Indicates whether to consume capacity from a reservation or not. module Type # Default value. This should not be used. TYPE_UNSPECIFIED = 0 # Do not consume from any reserved capacity. NO_RESERVATION = 1 # Consume any reservation available. ANY_RESERVATION = 2 # Must consume from a specific reservation. Must specify key value # fields for specifying the reservations. SPECIFIC_RESERVATION = 3 end end # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class VmTagsEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class InstanceMetadataEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end end end # A directory to persist across workstation sessions. Updates to this field # will not update existing workstations and will only take effect on new # workstations. # @!attribute [rw] gce_pd # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk] # A PersistentDirectory backed by a Compute Engine persistent disk. # # Note: The following fields are mutually exclusive: `gce_pd`, `gce_hd`. If a field in that set is populated, all other fields in the set will automatically be cleared. # @!attribute [rw] gce_hd # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceHyperdiskBalancedHighAvailability] # A PersistentDirectory backed by a Compute Engine hyperdisk high # availability disk. # # Note: The following fields are mutually exclusive: `gce_hd`, `gce_pd`. If a field in that set is populated, all other fields in the set will automatically be cleared. # @!attribute [rw] mount_path # @return [::String] # Optional. Location of this directory in the running workstation. class PersistentDirectory include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # A Persistent Directory backed by a Compute Engine regional persistent # disk. The # {::Google::Cloud::Workstations::V1beta::WorkstationConfig#persistent_directories persistent_directories} # field is repeated, but it may contain only one entry. It creates a # [persistent # disk](https://cloud.google.com/compute/docs/disks/persistent-disks) that # mounts to the workstation VM at `/home` when the session starts and # detaches when the session ends. If this field is empty, workstations # created with this configuration do not have a persistent home # directory. # @!attribute [rw] size_gb # @return [::Integer] # Optional. The GB capacity of a persistent home directory for each # workstation created with this configuration. Must be empty if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk#source_snapshot source_snapshot} # is set. # # Valid values are `10`, `50`, `100`, `200`, `500`, or `1000`. # Defaults to `200`. If less than `200` GB, the # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk#disk_type disk_type} # must be # `"pd-balanced"` or `"pd-ssd"`. # @!attribute [rw] max_size_gb # @return [::Integer] # Optional. Maximum size in GB to which this persistent directory can be # resized. Defaults to unlimited if not set. # @!attribute [rw] fs_type # @return [::String] # Optional. Type of file system that the disk should be formatted with. # The workstation image must support this file system type. Must be empty # if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk#source_snapshot source_snapshot} # is set. Defaults to `"ext4"`. # @!attribute [rw] disk_type # @return [::String] # Optional. The [type of the persistent # disk](https://cloud.google.com/compute/docs/disks#disk-types) for the # home directory. Defaults to `"pd-standard"`. # @!attribute [rw] source_snapshot # @return [::String] # Optional. Name of the snapshot to use as the source for the disk. If # set, # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk#size_gb size_gb} # and # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk#fs_type fs_type} # must be empty. Must be formatted as ext4 file system with no # partitions. # @!attribute [rw] reclaim_policy # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk::ReclaimPolicy] # Optional. Whether the persistent disk should be deleted when the # workstation is deleted. Valid values are `DELETE` and `RETAIN`. # Defaults to `DELETE`. # @!attribute [rw] archive_timeout # @return [::Google::Protobuf::Duration] # Optional. Number of seconds to wait after initially creating or # subsequently shutting down the workstation before converting its disk # into a snapshot. This generally saves costs at the expense of greater # startup time on next workstation start, as the service will need to # create a disk from the archival snapshot. # # A value of `"0s"` indicates that the disk will never be archived. class GceRegionalPersistentDisk include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # Value representing what should happen to the disk after the workstation # is deleted. module ReclaimPolicy # Do not use. RECLAIM_POLICY_UNSPECIFIED = 0 # Delete the persistent disk when deleting the workstation. DELETE = 1 # Keep the persistent disk when deleting the workstation. # An administrator must manually delete the disk. RETAIN = 2 end end # A Persistent Directory backed by a Compute Engine # [Hyperdisk Balanced High Availability # Disk](https://cloud.google.com/compute/docs/disks/hd-types/hyperdisk-balanced-ha). # This is a high-availability block storage solution that offers a balance # between performance and cost for most general-purpose workloads. # @!attribute [rw] size_gb # @return [::Integer] # Optional. The GB capacity of a persistent home directory for each # workstation created with this configuration. Must be empty if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceHyperdiskBalancedHighAvailability#source_snapshot source_snapshot} # is set. # # Valid values are `10`, `50`, `100`, `200`, `500`, or `1000`. # Defaults to `200`. # @!attribute [rw] max_size_gb # @return [::Integer] # Optional. Maximum size in GB to which this persistent directory can be # resized. Defaults to unlimited if not set. # @!attribute [rw] source_snapshot # @return [::String] # Optional. Name of the snapshot to use as the source for the disk. If # set, # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceHyperdiskBalancedHighAvailability#size_gb size_gb} # must be empty. Must be formatted as ext4 file system with no # partitions. # @!attribute [rw] reclaim_policy # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceHyperdiskBalancedHighAvailability::ReclaimPolicy] # Optional. Whether the persistent disk should be deleted when the # workstation is deleted. Valid values are `DELETE` and `RETAIN`. # Defaults to `DELETE`. # @!attribute [rw] archive_timeout # @return [::Google::Protobuf::Duration] # Optional. Number of seconds to wait after initially creating or # subsequently shutting down the workstation before converting its disk # into a snapshot. This generally saves costs at the expense of greater # startup time on next workstation start, as the service will need to # create a disk from the archival snapshot. # # A value of `"0s"` indicates that the disk will never be archived. class GceHyperdiskBalancedHighAvailability include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # Value representing what should happen to the disk after the workstation # is deleted. module ReclaimPolicy # Do not use. RECLAIM_POLICY_UNSPECIFIED = 0 # Delete the persistent disk when deleting the workstation. DELETE = 1 # Keep the persistent disk when deleting the workstation. # An administrator must manually delete the disk. RETAIN = 2 end end end # An ephemeral directory which won't persist across workstation sessions. It # is freshly created on every workstation start operation. # @!attribute [rw] gce_pd # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk] # An EphemeralDirectory backed by a Compute Engine persistent disk. # @!attribute [rw] mount_path # @return [::String] # Required. Location of this directory in the running workstation. class EphemeralDirectory include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # An EphemeralDirectory is backed by a Compute Engine persistent disk. # @!attribute [rw] disk_type # @return [::String] # Optional. Type of the disk to use. Defaults to `"pd-standard"`. # @!attribute [rw] source_snapshot # @return [::String] # Optional. Name of the snapshot to use as the source for the disk. Must # be empty if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#source_image source_image} # is set. Must be empty if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#read_only read_only} # is false. Updating # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#source_snapshot source_snapshot} # will update content in the ephemeral directory after the workstation is # restarted. # # Only file systems supported by Container-Optimized OS (COS) # are explicitly supported. For a list of supported file systems, see # [the filesystems available in Container-Optimized # OS](https://cloud.google.com/container-optimized-os/docs/concepts/supported-filesystems). # # This field is mutable. # @!attribute [rw] source_image # @return [::String] # Optional. Name of the disk image to use as the source for the disk. # Must be empty if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#source_snapshot source_snapshot} # is set. Updating # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#source_image source_image} # will update content in the ephemeral directory after the workstation is # restarted. # # Only file systems supported by Container-Optimized OS (COS) # are explicitly supported. For a list of supported file systems, please # refer to the [COS # documentation](https://cloud.google.com/container-optimized-os/docs/concepts/supported-filesystems). # # This field is mutable. # @!attribute [rw] read_only # @return [::Boolean] # Optional. Whether the disk is read only. If true, the disk may be # shared by multiple VMs and # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#source_snapshot source_snapshot} # must be set. class GcePersistentDisk include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end end # A Docker container. # @!attribute [rw] image # @return [::String] # Optional. A Docker container image that defines a custom environment. # # Cloud Workstations provides a number of # [preconfigured # images](https://cloud.google.com/workstations/docs/preconfigured-base-images), # but you can create your own # [custom container # images](https://cloud.google.com/workstations/docs/custom-container-images). # If using a private image, the `host.gceInstance.serviceAccount` field # must be specified in the workstation configuration. # If using a custom container image, the service account must have # [Artifact Registry # Reader](https://cloud.google.com/artifact-registry/docs/access-control#roles) # permission to pull the specified image. Otherwise, the image must be # publicly accessible. # @!attribute [rw] command # @return [::Array<::String>] # Optional. If set, overrides the default ENTRYPOINT specified by the # image. # @!attribute [rw] args # @return [::Array<::String>] # Optional. Arguments passed to the entrypoint. # @!attribute [rw] env # @return [::Google::Protobuf::Map{::String => ::String}] # Optional. Environment variables passed to the container's entrypoint. # @!attribute [rw] working_dir # @return [::String] # Optional. If set, overrides the default DIR specified by the image. # @!attribute [rw] run_as_user # @return [::Integer] # Optional. If set, overrides the USER specified in the image with the # given uid. class Container include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class EnvEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end end # A customer-managed encryption key (CMEK) for the Compute Engine # resources of the associated workstation configuration. Specify the name of # your Cloud KMS encryption key and the default service account. # We recommend that you use a separate service account and follow # [Cloud KMS best # practices](https://cloud.google.com/kms/docs/separation-of-duties). # @!attribute [rw] kms_key # @return [::String] # Immutable. The name of the Google Cloud KMS encryption key. For example, # `"projects/PROJECT_ID/locations/REGION/keyRings/KEY_RING/cryptoKeys/KEY_NAME"`. # The key must be in the same region as the workstation configuration. # @!attribute [rw] kms_key_service_account # @return [::String] # Immutable. The service account to use with the specified # KMS key. We recommend that you use a separate service account # and follow KMS best practices. For more information, see # [Separation of # duties](https://cloud.google.com/kms/docs/separation-of-duties) and # `gcloud kms keys add-iam-policy-binding` # [`--member`](https://cloud.google.com/sdk/gcloud/reference/kms/keys/add-iam-policy-binding#--member). class CustomerEncryptionKey include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # A readiness check to be performed on a workstation. # @!attribute [rw] path # @return [::String] # Optional. Path to which the request should be sent. # @!attribute [rw] port # @return [::Integer] # Optional. Port to which the request should be sent. class ReadinessCheck include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # HTTP options for the running workstations. # @!attribute [rw] allowed_unauthenticated_cors_preflight_requests # @return [::Boolean] # Optional. By default, the workstations service makes sure that all # requests to the workstation are authenticated. CORS preflight requests do # not include cookies or custom headers, and so are considered # unauthenticated and blocked by the workstations service. Enabling this # option allows these unauthenticated CORS preflight requests through to # the workstation, where it becomes the responsibility of the destination # server in the workstation to validate the request. # @!attribute [rw] disable_localhost_replacement # @return [::Boolean] # Optional. By default, the workstations service replaces references to # localhost, 127.0.0.1, and 0.0.0.0 with the workstation's hostname in http # responses from the workstation so that applications under development run # properly on the workstation. This may intefere with some applications, # and so this option allows that behavior to be disabled. class HttpOptions include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # A PortRange defines a range of ports. Both # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PortRange#first first} # and # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PortRange#last last} # are inclusive. To specify a single port, both # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PortRange#first first} # and # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PortRange#last last} # should be the same. # @!attribute [rw] first # @return [::Integer] # Required. Starting port number for the current range of ports. # Valid ports are 22, 80, and ports within the range 1024-65535. # @!attribute [rw] last # @return [::Integer] # Required. Ending port number for the current range of ports. # Valid ports are 22, 80, and ports within the range 1024-65535. class PortRange include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class AnnotationsEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class LabelsEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end end |
#ephemeral_directories ⇒ ::Array<::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory>
Returns Optional. Ephemeral directories which won't persist across workstation sessions.
420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 |
# File 'proto_docs/google/cloud/workstations/v1beta/workstations.rb', line 420 class WorkstationConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # Runtime host for a workstation. # @!attribute [rw] gce_instance # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance] # Specifies a Compute Engine instance as the host. class Host include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # A runtime using a Compute Engine instance. # @!attribute [rw] machine_type # @return [::String] # Optional. The type of machine to use for VM instances—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). # @!attribute [rw] service_account # @return [::String] # Optional. The email address of the service account for Cloud # Workstations VMs created with this configuration. When specified, be # sure that the service account has `logging.logEntries.create` and # `monitoring.timeSeries.create` permissions on the project so it can # write logs out to Cloud Logging. If using a custom container image, the # service account must have [Artifact Registry # Reader](https://cloud.google.com/artifact-registry/docs/access-control#roles) # permission to pull the specified image. # # If you as the administrator want to be able to `ssh` into the # underlying VM, you need to set this value to a service account # for which you have the `iam.serviceAccounts.actAs` permission. # Conversely, if you don't want anyone to be able to `ssh` into the # underlying VM, use a service account where no one has that # permission. # # If not set, VMs run with a service account provided by the # Cloud Workstations service, and the image must be publicly # accessible. # @!attribute [rw] service_account_scopes # @return [::Array<::String>] # Optional. Scopes to grant to the # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance#service_account service_account}. # When specified, users of workstations under this configuration must # have `iam.serviceAccounts.actAs` on the service account. # @!attribute [rw] tags # @return [::Array<::String>] # Optional. Network tags to add to the Compute Engine VMs backing the # workstations. This option applies # [network # tags](https://cloud.google.com/vpc/docs/add-remove-network-tags) to VMs # created with this configuration. These network tags enable the creation # of [firewall # rules](https://cloud.google.com/workstations/docs/configure-firewall-rules). # @!attribute [rw] pool_size # @return [::Integer] # Optional. The number of VMs that the system should keep idle so that # new workstations can be started quickly for new users. Defaults to `0` # in the API. # @!attribute [r] pooled_instances # @return [::Integer] # Output only. Number of instances currently available in the pool for # faster workstation startup. # @!attribute [rw] disable_public_ip_addresses # @return [::Boolean] # Optional. When set to true, disables public IP addresses for VMs. If # you disable public IP addresses, you must set up Private Google Access # or Cloud NAT on your network. If you use Private Google Access and you # use `private.googleapis.com` or `restricted.googleapis.com` for # Container Registry and Artifact Registry, make sure that you set # up DNS records for domains `*.gcr.io` and `*.pkg.dev`. # Defaults to false (VMs have public IP addresses). # @!attribute [rw] enable_nested_virtualization # @return [::Boolean] # Optional. Whether to enable nested virtualization on Cloud Workstations # VMs created using this workstation configuration. # # Defaults to false. # # Nested virtualization lets you run virtual machine (VM) instances # inside your workstation. Before enabling nested virtualization, # consider the following important considerations. Cloud Workstations # instances are subject to the [same restrictions as Compute Engine # instances](https://cloud.google.com/compute/docs/instances/nested-virtualization/overview#restrictions): # # * **Organization policy**: projects, folders, or # organizations may be restricted from creating nested VMs if the # **Disable VM nested virtualization** constraint is enforced in # the organization policy. For more information, see the # Compute Engine section, # [Checking whether nested virtualization is # allowed](https://cloud.google.com/compute/docs/instances/nested-virtualization/managing-constraint#checking_whether_nested_virtualization_is_allowed). # * **Performance**: nested VMs might experience a 10% or greater # decrease in performance for workloads that are CPU-bound and # possibly greater than a 10% decrease for workloads that are # input/output bound. # * **Machine Type**: nested virtualization can only be enabled on # workstation configurations that specify a # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance#machine_type machine_type} # in the N1 or N2 machine series. # @!attribute [rw] shielded_instance_config # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::GceShieldedInstanceConfig] # Optional. A set of Compute Engine Shielded instance options. # @!attribute [rw] confidential_instance_config # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::GceConfidentialInstanceConfig] # Optional. A set of Compute Engine Confidential VM instance options. # @!attribute [rw] boot_disk_size_gb # @return [::Integer] # Optional. The size of the boot disk for the VM in gigabytes (GB). # The minimum boot disk size is `30` GB. Defaults to `50` GB. # @!attribute [rw] accelerators # @return [::Array<::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::Accelerator>] # Optional. A list of the type and count of accelerator cards attached to # the instance. # @!attribute [rw] boost_configs # @return [::Array<::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::BoostConfig>] # Optional. A list of the boost configurations that workstations created # using this workstation configuration are allowed to use. If specified, # users will have the option to choose from the list of boost configs # when starting a workstation. # @!attribute [rw] disable_ssh # @return [::Boolean] # Optional. Whether to disable SSH access to the VM. # @!attribute [rw] vm_tags # @return [::Google::Protobuf::Map{::String => ::String}] # Optional. Resource manager tags to be bound to this instance. # Tag keys and values have the same definition as [resource manager # tags](https://cloud.google.com/resource-manager/docs/tags/tags-overview). # Keys must be in the format `tagKeys/{tag_key_id}`, and # values are in the format `tagValues/456`. # @!attribute [rw] reservation_affinity # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::ReservationAffinity] # Optional. # [ReservationAffinity](https://cloud.google.com/compute/docs/instances/reserving-zonal-resources) # specifies a reservation that can be consumed to create VM # instances. If SPECIFIC_RESERVATION is specified, Cloud Workstations # will only create VMs in the zone where the reservation is located. # This would affect availability since the service will no longer be # resilient to zonal outages. If ANY_RESERVATION is specified, creating # reservations in both zones that the config creates VMs in will ensure # higher availability. # **Important Considerations for Reservation Affinity:** # # * This feature is intended for advanced users and requires # familiarity with Google Compute Engine reservations. # * Using reservations incurs charges, regardless of utilization. # * The resources in the pool will consume the specified # reservation. Take this into account when setting the # pool size. # @!attribute [rw] startup_script_uri # @return [::String] # Optional. Link to the startup script stored in Cloud Storage. This # script will be run on the host workstation VM when the VM is created. # The URI must be of the form gs://\\{bucket-name}/\\{object-name}. If # specifying a startup script, the service account must have [Permission # to access the bucket and script file in Cloud # Storage](https://cloud.google.com/storage/docs/access-control/iam-permissions). # Otherwise, the script must be publicly accessible. # Note that the service regularly updates the OS version of the host VM, # and it is the responsibility of the user to ensure the script stays # compatible with the OS version. # @!attribute [rw] instance_metadata # @return [::Google::Protobuf::Map{::String => ::String}] # Optional. Custom metadata to apply to Compute Engine instances. class GceInstance include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # A set of Compute Engine Shielded instance options. # @!attribute [rw] enable_secure_boot # @return [::Boolean] # Optional. Whether the instance has Secure Boot enabled. # @!attribute [rw] enable_vtpm # @return [::Boolean] # Optional. Whether the instance has the vTPM enabled. # @!attribute [rw] enable_integrity_monitoring # @return [::Boolean] # Optional. Whether the instance has integrity monitoring enabled. class GceShieldedInstanceConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # A set of Compute Engine Confidential VM instance options. # @!attribute [rw] enable_confidential_compute # @return [::Boolean] # Optional. Whether the instance has confidential compute enabled. class GceConfidentialInstanceConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # An accelerator card attached to the instance. # @!attribute [rw] type # @return [::String] # Optional. Type of accelerator resource to attach to the instance, for # example, # `"nvidia-tesla-p100"`. # @!attribute [rw] count # @return [::Integer] # Optional. Number of accelerator cards exposed to the instance. class Accelerator include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # A boost configuration is a set of resources that a workstation can use # to increase its performance. If you specify a boost configuration, upon # startup, workstation users can choose to use a VM provisioned under the # boost config by passing the boost config ID in the start request. If # the workstation user does not provide a boost config ID in the start # request, the system will choose a VM from the pool provisioned under # the default config. # @!attribute [rw] id # @return [::String] # Required. The ID to be used for the boost configuration. # @!attribute [rw] machine_type # @return [::String] # Optional. 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`. # @!attribute [rw] accelerators # @return [::Array<::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::Accelerator>] # Optional. A list of the type and count of accelerator cards attached # to the boost instance. Defaults to `none`. # @!attribute [rw] boot_disk_size_gb # @return [::Integer] # Optional. The size of the boot disk for the VM in gigabytes (GB). # The minimum boot disk size is `30` GB. Defaults to `50` GB. # @!attribute [rw] enable_nested_virtualization # @return [::Boolean] # Optional. Whether to enable nested virtualization on boosted Cloud # Workstations VMs running using this boost configuration. # # Defaults to false. # # Nested virtualization lets you run virtual machine (VM) instances # inside your workstation. Before enabling nested virtualization, # consider the following important considerations. Cloud Workstations # instances are subject to the [same restrictions as Compute Engine # instances](https://cloud.google.com/compute/docs/instances/nested-virtualization/overview#restrictions): # # * **Organization policy**: projects, folders, or # organizations may be restricted from creating nested VMs if the # **Disable VM nested virtualization** constraint is enforced in # the organization policy. For more information, see the # Compute Engine section, # [Checking whether nested virtualization is # allowed](https://cloud.google.com/compute/docs/instances/nested-virtualization/managing-constraint#checking_whether_nested_virtualization_is_allowed). # * **Performance**: nested VMs might experience a 10% or greater # decrease in performance for workloads that are CPU-bound and # possibly greater than a 10% decrease for workloads that are # input/output bound. # * **Machine Type**: nested virtualization can only be enabled on # boost configurations that specify a # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::BoostConfig#machine_type machine_type} # in the N1 or N2 machine series. # @!attribute [rw] pool_size # @return [::Integer] # Optional. The number of boost VMs that the system should keep idle so # that workstations can be boosted quickly. Defaults to `0`. # @!attribute [rw] reservation_affinity # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::ReservationAffinity] # Optional. # [ReservationAffinity](https://cloud.google.com/compute/docs/instances/reserving-zonal-resources) # specifies a reservation that can be consumed to create boost VM # instances. If SPECIFIC_RESERVATION is specified, Cloud Workstations # will only create VMs in the zone where the reservation is located. # This would affect availability since the service will no longer be # resilient to zonal outages. If ANY_RESERVATION is specified, creating # reservations in both zones that the config creates VMs in will ensure # higher availability. # **Important Considerations for Reservation Affinity:** # # * This feature is intended for advanced users and requires # familiarity with Google Compute Engine reservations. # * Using reservations incurs charges, regardless of utilization. # * The resources in the pool will consume the specified # reservation. Take this into account when setting the # pool size. class BoostConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # ReservationAffinity is the configuration of the desired reservation # from which instances can consume resources. # @!attribute [rw] consume_reservation_type # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::ReservationAffinity::Type] # Optional. Corresponds to the type of reservation consumption. # @!attribute [rw] key # @return [::String] # Optional. Corresponds to the label key of reservation resource. # @!attribute [rw] values # @return [::Array<::String>] # Optional. Corresponds to the label values of reservation resources. # Valid values are either the name of a reservation in the same project # or "projects/\\{project}/reservations/\\{reservation}" to target a shared # reservation in the same zone but in a different project. class ReservationAffinity include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # Indicates whether to consume capacity from a reservation or not. module Type # Default value. This should not be used. TYPE_UNSPECIFIED = 0 # Do not consume from any reserved capacity. NO_RESERVATION = 1 # Consume any reservation available. ANY_RESERVATION = 2 # Must consume from a specific reservation. Must specify key value # fields for specifying the reservations. SPECIFIC_RESERVATION = 3 end end # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class VmTagsEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class InstanceMetadataEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end end end # A directory to persist across workstation sessions. Updates to this field # will not update existing workstations and will only take effect on new # workstations. # @!attribute [rw] gce_pd # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk] # A PersistentDirectory backed by a Compute Engine persistent disk. # # Note: The following fields are mutually exclusive: `gce_pd`, `gce_hd`. If a field in that set is populated, all other fields in the set will automatically be cleared. # @!attribute [rw] gce_hd # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceHyperdiskBalancedHighAvailability] # A PersistentDirectory backed by a Compute Engine hyperdisk high # availability disk. # # Note: The following fields are mutually exclusive: `gce_hd`, `gce_pd`. If a field in that set is populated, all other fields in the set will automatically be cleared. # @!attribute [rw] mount_path # @return [::String] # Optional. Location of this directory in the running workstation. class PersistentDirectory include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # A Persistent Directory backed by a Compute Engine regional persistent # disk. The # {::Google::Cloud::Workstations::V1beta::WorkstationConfig#persistent_directories persistent_directories} # field is repeated, but it may contain only one entry. It creates a # [persistent # disk](https://cloud.google.com/compute/docs/disks/persistent-disks) that # mounts to the workstation VM at `/home` when the session starts and # detaches when the session ends. If this field is empty, workstations # created with this configuration do not have a persistent home # directory. # @!attribute [rw] size_gb # @return [::Integer] # Optional. The GB capacity of a persistent home directory for each # workstation created with this configuration. Must be empty if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk#source_snapshot source_snapshot} # is set. # # Valid values are `10`, `50`, `100`, `200`, `500`, or `1000`. # Defaults to `200`. If less than `200` GB, the # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk#disk_type disk_type} # must be # `"pd-balanced"` or `"pd-ssd"`. # @!attribute [rw] max_size_gb # @return [::Integer] # Optional. Maximum size in GB to which this persistent directory can be # resized. Defaults to unlimited if not set. # @!attribute [rw] fs_type # @return [::String] # Optional. Type of file system that the disk should be formatted with. # The workstation image must support this file system type. Must be empty # if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk#source_snapshot source_snapshot} # is set. Defaults to `"ext4"`. # @!attribute [rw] disk_type # @return [::String] # Optional. The [type of the persistent # disk](https://cloud.google.com/compute/docs/disks#disk-types) for the # home directory. Defaults to `"pd-standard"`. # @!attribute [rw] source_snapshot # @return [::String] # Optional. Name of the snapshot to use as the source for the disk. If # set, # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk#size_gb size_gb} # and # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk#fs_type fs_type} # must be empty. Must be formatted as ext4 file system with no # partitions. # @!attribute [rw] reclaim_policy # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk::ReclaimPolicy] # Optional. Whether the persistent disk should be deleted when the # workstation is deleted. Valid values are `DELETE` and `RETAIN`. # Defaults to `DELETE`. # @!attribute [rw] archive_timeout # @return [::Google::Protobuf::Duration] # Optional. Number of seconds to wait after initially creating or # subsequently shutting down the workstation before converting its disk # into a snapshot. This generally saves costs at the expense of greater # startup time on next workstation start, as the service will need to # create a disk from the archival snapshot. # # A value of `"0s"` indicates that the disk will never be archived. class GceRegionalPersistentDisk include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # Value representing what should happen to the disk after the workstation # is deleted. module ReclaimPolicy # Do not use. RECLAIM_POLICY_UNSPECIFIED = 0 # Delete the persistent disk when deleting the workstation. DELETE = 1 # Keep the persistent disk when deleting the workstation. # An administrator must manually delete the disk. RETAIN = 2 end end # A Persistent Directory backed by a Compute Engine # [Hyperdisk Balanced High Availability # Disk](https://cloud.google.com/compute/docs/disks/hd-types/hyperdisk-balanced-ha). # This is a high-availability block storage solution that offers a balance # between performance and cost for most general-purpose workloads. # @!attribute [rw] size_gb # @return [::Integer] # Optional. The GB capacity of a persistent home directory for each # workstation created with this configuration. Must be empty if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceHyperdiskBalancedHighAvailability#source_snapshot source_snapshot} # is set. # # Valid values are `10`, `50`, `100`, `200`, `500`, or `1000`. # Defaults to `200`. # @!attribute [rw] max_size_gb # @return [::Integer] # Optional. Maximum size in GB to which this persistent directory can be # resized. Defaults to unlimited if not set. # @!attribute [rw] source_snapshot # @return [::String] # Optional. Name of the snapshot to use as the source for the disk. If # set, # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceHyperdiskBalancedHighAvailability#size_gb size_gb} # must be empty. Must be formatted as ext4 file system with no # partitions. # @!attribute [rw] reclaim_policy # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceHyperdiskBalancedHighAvailability::ReclaimPolicy] # Optional. Whether the persistent disk should be deleted when the # workstation is deleted. Valid values are `DELETE` and `RETAIN`. # Defaults to `DELETE`. # @!attribute [rw] archive_timeout # @return [::Google::Protobuf::Duration] # Optional. Number of seconds to wait after initially creating or # subsequently shutting down the workstation before converting its disk # into a snapshot. This generally saves costs at the expense of greater # startup time on next workstation start, as the service will need to # create a disk from the archival snapshot. # # A value of `"0s"` indicates that the disk will never be archived. class GceHyperdiskBalancedHighAvailability include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # Value representing what should happen to the disk after the workstation # is deleted. module ReclaimPolicy # Do not use. RECLAIM_POLICY_UNSPECIFIED = 0 # Delete the persistent disk when deleting the workstation. DELETE = 1 # Keep the persistent disk when deleting the workstation. # An administrator must manually delete the disk. RETAIN = 2 end end end # An ephemeral directory which won't persist across workstation sessions. It # is freshly created on every workstation start operation. # @!attribute [rw] gce_pd # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk] # An EphemeralDirectory backed by a Compute Engine persistent disk. # @!attribute [rw] mount_path # @return [::String] # Required. Location of this directory in the running workstation. class EphemeralDirectory include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # An EphemeralDirectory is backed by a Compute Engine persistent disk. # @!attribute [rw] disk_type # @return [::String] # Optional. Type of the disk to use. Defaults to `"pd-standard"`. # @!attribute [rw] source_snapshot # @return [::String] # Optional. Name of the snapshot to use as the source for the disk. Must # be empty if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#source_image source_image} # is set. Must be empty if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#read_only read_only} # is false. Updating # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#source_snapshot source_snapshot} # will update content in the ephemeral directory after the workstation is # restarted. # # Only file systems supported by Container-Optimized OS (COS) # are explicitly supported. For a list of supported file systems, see # [the filesystems available in Container-Optimized # OS](https://cloud.google.com/container-optimized-os/docs/concepts/supported-filesystems). # # This field is mutable. # @!attribute [rw] source_image # @return [::String] # Optional. Name of the disk image to use as the source for the disk. # Must be empty if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#source_snapshot source_snapshot} # is set. Updating # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#source_image source_image} # will update content in the ephemeral directory after the workstation is # restarted. # # Only file systems supported by Container-Optimized OS (COS) # are explicitly supported. For a list of supported file systems, please # refer to the [COS # documentation](https://cloud.google.com/container-optimized-os/docs/concepts/supported-filesystems). # # This field is mutable. # @!attribute [rw] read_only # @return [::Boolean] # Optional. Whether the disk is read only. If true, the disk may be # shared by multiple VMs and # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#source_snapshot source_snapshot} # must be set. class GcePersistentDisk include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end end # A Docker container. # @!attribute [rw] image # @return [::String] # Optional. A Docker container image that defines a custom environment. # # Cloud Workstations provides a number of # [preconfigured # images](https://cloud.google.com/workstations/docs/preconfigured-base-images), # but you can create your own # [custom container # images](https://cloud.google.com/workstations/docs/custom-container-images). # If using a private image, the `host.gceInstance.serviceAccount` field # must be specified in the workstation configuration. # If using a custom container image, the service account must have # [Artifact Registry # Reader](https://cloud.google.com/artifact-registry/docs/access-control#roles) # permission to pull the specified image. Otherwise, the image must be # publicly accessible. # @!attribute [rw] command # @return [::Array<::String>] # Optional. If set, overrides the default ENTRYPOINT specified by the # image. # @!attribute [rw] args # @return [::Array<::String>] # Optional. Arguments passed to the entrypoint. # @!attribute [rw] env # @return [::Google::Protobuf::Map{::String => ::String}] # Optional. Environment variables passed to the container's entrypoint. # @!attribute [rw] working_dir # @return [::String] # Optional. If set, overrides the default DIR specified by the image. # @!attribute [rw] run_as_user # @return [::Integer] # Optional. If set, overrides the USER specified in the image with the # given uid. class Container include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class EnvEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end end # A customer-managed encryption key (CMEK) for the Compute Engine # resources of the associated workstation configuration. Specify the name of # your Cloud KMS encryption key and the default service account. # We recommend that you use a separate service account and follow # [Cloud KMS best # practices](https://cloud.google.com/kms/docs/separation-of-duties). # @!attribute [rw] kms_key # @return [::String] # Immutable. The name of the Google Cloud KMS encryption key. For example, # `"projects/PROJECT_ID/locations/REGION/keyRings/KEY_RING/cryptoKeys/KEY_NAME"`. # The key must be in the same region as the workstation configuration. # @!attribute [rw] kms_key_service_account # @return [::String] # Immutable. The service account to use with the specified # KMS key. We recommend that you use a separate service account # and follow KMS best practices. For more information, see # [Separation of # duties](https://cloud.google.com/kms/docs/separation-of-duties) and # `gcloud kms keys add-iam-policy-binding` # [`--member`](https://cloud.google.com/sdk/gcloud/reference/kms/keys/add-iam-policy-binding#--member). class CustomerEncryptionKey include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # A readiness check to be performed on a workstation. # @!attribute [rw] path # @return [::String] # Optional. Path to which the request should be sent. # @!attribute [rw] port # @return [::Integer] # Optional. Port to which the request should be sent. class ReadinessCheck include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # HTTP options for the running workstations. # @!attribute [rw] allowed_unauthenticated_cors_preflight_requests # @return [::Boolean] # Optional. By default, the workstations service makes sure that all # requests to the workstation are authenticated. CORS preflight requests do # not include cookies or custom headers, and so are considered # unauthenticated and blocked by the workstations service. Enabling this # option allows these unauthenticated CORS preflight requests through to # the workstation, where it becomes the responsibility of the destination # server in the workstation to validate the request. # @!attribute [rw] disable_localhost_replacement # @return [::Boolean] # Optional. By default, the workstations service replaces references to # localhost, 127.0.0.1, and 0.0.0.0 with the workstation's hostname in http # responses from the workstation so that applications under development run # properly on the workstation. This may intefere with some applications, # and so this option allows that behavior to be disabled. class HttpOptions include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # A PortRange defines a range of ports. Both # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PortRange#first first} # and # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PortRange#last last} # are inclusive. To specify a single port, both # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PortRange#first first} # and # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PortRange#last last} # should be the same. # @!attribute [rw] first # @return [::Integer] # Required. Starting port number for the current range of ports. # Valid ports are 22, 80, and ports within the range 1024-65535. # @!attribute [rw] last # @return [::Integer] # Required. Ending port number for the current range of ports. # Valid ports are 22, 80, and ports within the range 1024-65535. class PortRange include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class AnnotationsEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class LabelsEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end end |
#etag ⇒ ::String
Returns Optional. Checksum computed by the server. May be sent on update and delete requests to make sure that the client has an up-to-date value before proceeding.
420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 |
# File 'proto_docs/google/cloud/workstations/v1beta/workstations.rb', line 420 class WorkstationConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # Runtime host for a workstation. # @!attribute [rw] gce_instance # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance] # Specifies a Compute Engine instance as the host. class Host include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # A runtime using a Compute Engine instance. # @!attribute [rw] machine_type # @return [::String] # Optional. The type of machine to use for VM instances—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). # @!attribute [rw] service_account # @return [::String] # Optional. The email address of the service account for Cloud # Workstations VMs created with this configuration. When specified, be # sure that the service account has `logging.logEntries.create` and # `monitoring.timeSeries.create` permissions on the project so it can # write logs out to Cloud Logging. If using a custom container image, the # service account must have [Artifact Registry # Reader](https://cloud.google.com/artifact-registry/docs/access-control#roles) # permission to pull the specified image. # # If you as the administrator want to be able to `ssh` into the # underlying VM, you need to set this value to a service account # for which you have the `iam.serviceAccounts.actAs` permission. # Conversely, if you don't want anyone to be able to `ssh` into the # underlying VM, use a service account where no one has that # permission. # # If not set, VMs run with a service account provided by the # Cloud Workstations service, and the image must be publicly # accessible. # @!attribute [rw] service_account_scopes # @return [::Array<::String>] # Optional. Scopes to grant to the # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance#service_account service_account}. # When specified, users of workstations under this configuration must # have `iam.serviceAccounts.actAs` on the service account. # @!attribute [rw] tags # @return [::Array<::String>] # Optional. Network tags to add to the Compute Engine VMs backing the # workstations. This option applies # [network # tags](https://cloud.google.com/vpc/docs/add-remove-network-tags) to VMs # created with this configuration. These network tags enable the creation # of [firewall # rules](https://cloud.google.com/workstations/docs/configure-firewall-rules). # @!attribute [rw] pool_size # @return [::Integer] # Optional. The number of VMs that the system should keep idle so that # new workstations can be started quickly for new users. Defaults to `0` # in the API. # @!attribute [r] pooled_instances # @return [::Integer] # Output only. Number of instances currently available in the pool for # faster workstation startup. # @!attribute [rw] disable_public_ip_addresses # @return [::Boolean] # Optional. When set to true, disables public IP addresses for VMs. If # you disable public IP addresses, you must set up Private Google Access # or Cloud NAT on your network. If you use Private Google Access and you # use `private.googleapis.com` or `restricted.googleapis.com` for # Container Registry and Artifact Registry, make sure that you set # up DNS records for domains `*.gcr.io` and `*.pkg.dev`. # Defaults to false (VMs have public IP addresses). # @!attribute [rw] enable_nested_virtualization # @return [::Boolean] # Optional. Whether to enable nested virtualization on Cloud Workstations # VMs created using this workstation configuration. # # Defaults to false. # # Nested virtualization lets you run virtual machine (VM) instances # inside your workstation. Before enabling nested virtualization, # consider the following important considerations. Cloud Workstations # instances are subject to the [same restrictions as Compute Engine # instances](https://cloud.google.com/compute/docs/instances/nested-virtualization/overview#restrictions): # # * **Organization policy**: projects, folders, or # organizations may be restricted from creating nested VMs if the # **Disable VM nested virtualization** constraint is enforced in # the organization policy. For more information, see the # Compute Engine section, # [Checking whether nested virtualization is # allowed](https://cloud.google.com/compute/docs/instances/nested-virtualization/managing-constraint#checking_whether_nested_virtualization_is_allowed). # * **Performance**: nested VMs might experience a 10% or greater # decrease in performance for workloads that are CPU-bound and # possibly greater than a 10% decrease for workloads that are # input/output bound. # * **Machine Type**: nested virtualization can only be enabled on # workstation configurations that specify a # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance#machine_type machine_type} # in the N1 or N2 machine series. # @!attribute [rw] shielded_instance_config # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::GceShieldedInstanceConfig] # Optional. A set of Compute Engine Shielded instance options. # @!attribute [rw] confidential_instance_config # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::GceConfidentialInstanceConfig] # Optional. A set of Compute Engine Confidential VM instance options. # @!attribute [rw] boot_disk_size_gb # @return [::Integer] # Optional. The size of the boot disk for the VM in gigabytes (GB). # The minimum boot disk size is `30` GB. Defaults to `50` GB. # @!attribute [rw] accelerators # @return [::Array<::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::Accelerator>] # Optional. A list of the type and count of accelerator cards attached to # the instance. # @!attribute [rw] boost_configs # @return [::Array<::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::BoostConfig>] # Optional. A list of the boost configurations that workstations created # using this workstation configuration are allowed to use. If specified, # users will have the option to choose from the list of boost configs # when starting a workstation. # @!attribute [rw] disable_ssh # @return [::Boolean] # Optional. Whether to disable SSH access to the VM. # @!attribute [rw] vm_tags # @return [::Google::Protobuf::Map{::String => ::String}] # Optional. Resource manager tags to be bound to this instance. # Tag keys and values have the same definition as [resource manager # tags](https://cloud.google.com/resource-manager/docs/tags/tags-overview). # Keys must be in the format `tagKeys/{tag_key_id}`, and # values are in the format `tagValues/456`. # @!attribute [rw] reservation_affinity # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::ReservationAffinity] # Optional. # [ReservationAffinity](https://cloud.google.com/compute/docs/instances/reserving-zonal-resources) # specifies a reservation that can be consumed to create VM # instances. If SPECIFIC_RESERVATION is specified, Cloud Workstations # will only create VMs in the zone where the reservation is located. # This would affect availability since the service will no longer be # resilient to zonal outages. If ANY_RESERVATION is specified, creating # reservations in both zones that the config creates VMs in will ensure # higher availability. # **Important Considerations for Reservation Affinity:** # # * This feature is intended for advanced users and requires # familiarity with Google Compute Engine reservations. # * Using reservations incurs charges, regardless of utilization. # * The resources in the pool will consume the specified # reservation. Take this into account when setting the # pool size. # @!attribute [rw] startup_script_uri # @return [::String] # Optional. Link to the startup script stored in Cloud Storage. This # script will be run on the host workstation VM when the VM is created. # The URI must be of the form gs://\\{bucket-name}/\\{object-name}. If # specifying a startup script, the service account must have [Permission # to access the bucket and script file in Cloud # Storage](https://cloud.google.com/storage/docs/access-control/iam-permissions). # Otherwise, the script must be publicly accessible. # Note that the service regularly updates the OS version of the host VM, # and it is the responsibility of the user to ensure the script stays # compatible with the OS version. # @!attribute [rw] instance_metadata # @return [::Google::Protobuf::Map{::String => ::String}] # Optional. Custom metadata to apply to Compute Engine instances. class GceInstance include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # A set of Compute Engine Shielded instance options. # @!attribute [rw] enable_secure_boot # @return [::Boolean] # Optional. Whether the instance has Secure Boot enabled. # @!attribute [rw] enable_vtpm # @return [::Boolean] # Optional. Whether the instance has the vTPM enabled. # @!attribute [rw] enable_integrity_monitoring # @return [::Boolean] # Optional. Whether the instance has integrity monitoring enabled. class GceShieldedInstanceConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # A set of Compute Engine Confidential VM instance options. # @!attribute [rw] enable_confidential_compute # @return [::Boolean] # Optional. Whether the instance has confidential compute enabled. class GceConfidentialInstanceConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # An accelerator card attached to the instance. # @!attribute [rw] type # @return [::String] # Optional. Type of accelerator resource to attach to the instance, for # example, # `"nvidia-tesla-p100"`. # @!attribute [rw] count # @return [::Integer] # Optional. Number of accelerator cards exposed to the instance. class Accelerator include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # A boost configuration is a set of resources that a workstation can use # to increase its performance. If you specify a boost configuration, upon # startup, workstation users can choose to use a VM provisioned under the # boost config by passing the boost config ID in the start request. If # the workstation user does not provide a boost config ID in the start # request, the system will choose a VM from the pool provisioned under # the default config. # @!attribute [rw] id # @return [::String] # Required. The ID to be used for the boost configuration. # @!attribute [rw] machine_type # @return [::String] # Optional. 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`. # @!attribute [rw] accelerators # @return [::Array<::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::Accelerator>] # Optional. A list of the type and count of accelerator cards attached # to the boost instance. Defaults to `none`. # @!attribute [rw] boot_disk_size_gb # @return [::Integer] # Optional. The size of the boot disk for the VM in gigabytes (GB). # The minimum boot disk size is `30` GB. Defaults to `50` GB. # @!attribute [rw] enable_nested_virtualization # @return [::Boolean] # Optional. Whether to enable nested virtualization on boosted Cloud # Workstations VMs running using this boost configuration. # # Defaults to false. # # Nested virtualization lets you run virtual machine (VM) instances # inside your workstation. Before enabling nested virtualization, # consider the following important considerations. Cloud Workstations # instances are subject to the [same restrictions as Compute Engine # instances](https://cloud.google.com/compute/docs/instances/nested-virtualization/overview#restrictions): # # * **Organization policy**: projects, folders, or # organizations may be restricted from creating nested VMs if the # **Disable VM nested virtualization** constraint is enforced in # the organization policy. For more information, see the # Compute Engine section, # [Checking whether nested virtualization is # allowed](https://cloud.google.com/compute/docs/instances/nested-virtualization/managing-constraint#checking_whether_nested_virtualization_is_allowed). # * **Performance**: nested VMs might experience a 10% or greater # decrease in performance for workloads that are CPU-bound and # possibly greater than a 10% decrease for workloads that are # input/output bound. # * **Machine Type**: nested virtualization can only be enabled on # boost configurations that specify a # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::BoostConfig#machine_type machine_type} # in the N1 or N2 machine series. # @!attribute [rw] pool_size # @return [::Integer] # Optional. The number of boost VMs that the system should keep idle so # that workstations can be boosted quickly. Defaults to `0`. # @!attribute [rw] reservation_affinity # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::ReservationAffinity] # Optional. # [ReservationAffinity](https://cloud.google.com/compute/docs/instances/reserving-zonal-resources) # specifies a reservation that can be consumed to create boost VM # instances. If SPECIFIC_RESERVATION is specified, Cloud Workstations # will only create VMs in the zone where the reservation is located. # This would affect availability since the service will no longer be # resilient to zonal outages. If ANY_RESERVATION is specified, creating # reservations in both zones that the config creates VMs in will ensure # higher availability. # **Important Considerations for Reservation Affinity:** # # * This feature is intended for advanced users and requires # familiarity with Google Compute Engine reservations. # * Using reservations incurs charges, regardless of utilization. # * The resources in the pool will consume the specified # reservation. Take this into account when setting the # pool size. class BoostConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # ReservationAffinity is the configuration of the desired reservation # from which instances can consume resources. # @!attribute [rw] consume_reservation_type # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::ReservationAffinity::Type] # Optional. Corresponds to the type of reservation consumption. # @!attribute [rw] key # @return [::String] # Optional. Corresponds to the label key of reservation resource. # @!attribute [rw] values # @return [::Array<::String>] # Optional. Corresponds to the label values of reservation resources. # Valid values are either the name of a reservation in the same project # or "projects/\\{project}/reservations/\\{reservation}" to target a shared # reservation in the same zone but in a different project. class ReservationAffinity include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # Indicates whether to consume capacity from a reservation or not. module Type # Default value. This should not be used. TYPE_UNSPECIFIED = 0 # Do not consume from any reserved capacity. NO_RESERVATION = 1 # Consume any reservation available. ANY_RESERVATION = 2 # Must consume from a specific reservation. Must specify key value # fields for specifying the reservations. SPECIFIC_RESERVATION = 3 end end # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class VmTagsEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class InstanceMetadataEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end end end # A directory to persist across workstation sessions. Updates to this field # will not update existing workstations and will only take effect on new # workstations. # @!attribute [rw] gce_pd # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk] # A PersistentDirectory backed by a Compute Engine persistent disk. # # Note: The following fields are mutually exclusive: `gce_pd`, `gce_hd`. If a field in that set is populated, all other fields in the set will automatically be cleared. # @!attribute [rw] gce_hd # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceHyperdiskBalancedHighAvailability] # A PersistentDirectory backed by a Compute Engine hyperdisk high # availability disk. # # Note: The following fields are mutually exclusive: `gce_hd`, `gce_pd`. If a field in that set is populated, all other fields in the set will automatically be cleared. # @!attribute [rw] mount_path # @return [::String] # Optional. Location of this directory in the running workstation. class PersistentDirectory include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # A Persistent Directory backed by a Compute Engine regional persistent # disk. The # {::Google::Cloud::Workstations::V1beta::WorkstationConfig#persistent_directories persistent_directories} # field is repeated, but it may contain only one entry. It creates a # [persistent # disk](https://cloud.google.com/compute/docs/disks/persistent-disks) that # mounts to the workstation VM at `/home` when the session starts and # detaches when the session ends. If this field is empty, workstations # created with this configuration do not have a persistent home # directory. # @!attribute [rw] size_gb # @return [::Integer] # Optional. The GB capacity of a persistent home directory for each # workstation created with this configuration. Must be empty if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk#source_snapshot source_snapshot} # is set. # # Valid values are `10`, `50`, `100`, `200`, `500`, or `1000`. # Defaults to `200`. If less than `200` GB, the # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk#disk_type disk_type} # must be # `"pd-balanced"` or `"pd-ssd"`. # @!attribute [rw] max_size_gb # @return [::Integer] # Optional. Maximum size in GB to which this persistent directory can be # resized. Defaults to unlimited if not set. # @!attribute [rw] fs_type # @return [::String] # Optional. Type of file system that the disk should be formatted with. # The workstation image must support this file system type. Must be empty # if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk#source_snapshot source_snapshot} # is set. Defaults to `"ext4"`. # @!attribute [rw] disk_type # @return [::String] # Optional. The [type of the persistent # disk](https://cloud.google.com/compute/docs/disks#disk-types) for the # home directory. Defaults to `"pd-standard"`. # @!attribute [rw] source_snapshot # @return [::String] # Optional. Name of the snapshot to use as the source for the disk. If # set, # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk#size_gb size_gb} # and # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk#fs_type fs_type} # must be empty. Must be formatted as ext4 file system with no # partitions. # @!attribute [rw] reclaim_policy # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk::ReclaimPolicy] # Optional. Whether the persistent disk should be deleted when the # workstation is deleted. Valid values are `DELETE` and `RETAIN`. # Defaults to `DELETE`. # @!attribute [rw] archive_timeout # @return [::Google::Protobuf::Duration] # Optional. Number of seconds to wait after initially creating or # subsequently shutting down the workstation before converting its disk # into a snapshot. This generally saves costs at the expense of greater # startup time on next workstation start, as the service will need to # create a disk from the archival snapshot. # # A value of `"0s"` indicates that the disk will never be archived. class GceRegionalPersistentDisk include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # Value representing what should happen to the disk after the workstation # is deleted. module ReclaimPolicy # Do not use. RECLAIM_POLICY_UNSPECIFIED = 0 # Delete the persistent disk when deleting the workstation. DELETE = 1 # Keep the persistent disk when deleting the workstation. # An administrator must manually delete the disk. RETAIN = 2 end end # A Persistent Directory backed by a Compute Engine # [Hyperdisk Balanced High Availability # Disk](https://cloud.google.com/compute/docs/disks/hd-types/hyperdisk-balanced-ha). # This is a high-availability block storage solution that offers a balance # between performance and cost for most general-purpose workloads. # @!attribute [rw] size_gb # @return [::Integer] # Optional. The GB capacity of a persistent home directory for each # workstation created with this configuration. Must be empty if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceHyperdiskBalancedHighAvailability#source_snapshot source_snapshot} # is set. # # Valid values are `10`, `50`, `100`, `200`, `500`, or `1000`. # Defaults to `200`. # @!attribute [rw] max_size_gb # @return [::Integer] # Optional. Maximum size in GB to which this persistent directory can be # resized. Defaults to unlimited if not set. # @!attribute [rw] source_snapshot # @return [::String] # Optional. Name of the snapshot to use as the source for the disk. If # set, # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceHyperdiskBalancedHighAvailability#size_gb size_gb} # must be empty. Must be formatted as ext4 file system with no # partitions. # @!attribute [rw] reclaim_policy # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceHyperdiskBalancedHighAvailability::ReclaimPolicy] # Optional. Whether the persistent disk should be deleted when the # workstation is deleted. Valid values are `DELETE` and `RETAIN`. # Defaults to `DELETE`. # @!attribute [rw] archive_timeout # @return [::Google::Protobuf::Duration] # Optional. Number of seconds to wait after initially creating or # subsequently shutting down the workstation before converting its disk # into a snapshot. This generally saves costs at the expense of greater # startup time on next workstation start, as the service will need to # create a disk from the archival snapshot. # # A value of `"0s"` indicates that the disk will never be archived. class GceHyperdiskBalancedHighAvailability include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # Value representing what should happen to the disk after the workstation # is deleted. module ReclaimPolicy # Do not use. RECLAIM_POLICY_UNSPECIFIED = 0 # Delete the persistent disk when deleting the workstation. DELETE = 1 # Keep the persistent disk when deleting the workstation. # An administrator must manually delete the disk. RETAIN = 2 end end end # An ephemeral directory which won't persist across workstation sessions. It # is freshly created on every workstation start operation. # @!attribute [rw] gce_pd # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk] # An EphemeralDirectory backed by a Compute Engine persistent disk. # @!attribute [rw] mount_path # @return [::String] # Required. Location of this directory in the running workstation. class EphemeralDirectory include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # An EphemeralDirectory is backed by a Compute Engine persistent disk. # @!attribute [rw] disk_type # @return [::String] # Optional. Type of the disk to use. Defaults to `"pd-standard"`. # @!attribute [rw] source_snapshot # @return [::String] # Optional. Name of the snapshot to use as the source for the disk. Must # be empty if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#source_image source_image} # is set. Must be empty if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#read_only read_only} # is false. Updating # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#source_snapshot source_snapshot} # will update content in the ephemeral directory after the workstation is # restarted. # # Only file systems supported by Container-Optimized OS (COS) # are explicitly supported. For a list of supported file systems, see # [the filesystems available in Container-Optimized # OS](https://cloud.google.com/container-optimized-os/docs/concepts/supported-filesystems). # # This field is mutable. # @!attribute [rw] source_image # @return [::String] # Optional. Name of the disk image to use as the source for the disk. # Must be empty if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#source_snapshot source_snapshot} # is set. Updating # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#source_image source_image} # will update content in the ephemeral directory after the workstation is # restarted. # # Only file systems supported by Container-Optimized OS (COS) # are explicitly supported. For a list of supported file systems, please # refer to the [COS # documentation](https://cloud.google.com/container-optimized-os/docs/concepts/supported-filesystems). # # This field is mutable. # @!attribute [rw] read_only # @return [::Boolean] # Optional. Whether the disk is read only. If true, the disk may be # shared by multiple VMs and # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#source_snapshot source_snapshot} # must be set. class GcePersistentDisk include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end end # A Docker container. # @!attribute [rw] image # @return [::String] # Optional. A Docker container image that defines a custom environment. # # Cloud Workstations provides a number of # [preconfigured # images](https://cloud.google.com/workstations/docs/preconfigured-base-images), # but you can create your own # [custom container # images](https://cloud.google.com/workstations/docs/custom-container-images). # If using a private image, the `host.gceInstance.serviceAccount` field # must be specified in the workstation configuration. # If using a custom container image, the service account must have # [Artifact Registry # Reader](https://cloud.google.com/artifact-registry/docs/access-control#roles) # permission to pull the specified image. Otherwise, the image must be # publicly accessible. # @!attribute [rw] command # @return [::Array<::String>] # Optional. If set, overrides the default ENTRYPOINT specified by the # image. # @!attribute [rw] args # @return [::Array<::String>] # Optional. Arguments passed to the entrypoint. # @!attribute [rw] env # @return [::Google::Protobuf::Map{::String => ::String}] # Optional. Environment variables passed to the container's entrypoint. # @!attribute [rw] working_dir # @return [::String] # Optional. If set, overrides the default DIR specified by the image. # @!attribute [rw] run_as_user # @return [::Integer] # Optional. If set, overrides the USER specified in the image with the # given uid. class Container include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class EnvEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end end # A customer-managed encryption key (CMEK) for the Compute Engine # resources of the associated workstation configuration. Specify the name of # your Cloud KMS encryption key and the default service account. # We recommend that you use a separate service account and follow # [Cloud KMS best # practices](https://cloud.google.com/kms/docs/separation-of-duties). # @!attribute [rw] kms_key # @return [::String] # Immutable. The name of the Google Cloud KMS encryption key. For example, # `"projects/PROJECT_ID/locations/REGION/keyRings/KEY_RING/cryptoKeys/KEY_NAME"`. # The key must be in the same region as the workstation configuration. # @!attribute [rw] kms_key_service_account # @return [::String] # Immutable. The service account to use with the specified # KMS key. We recommend that you use a separate service account # and follow KMS best practices. For more information, see # [Separation of # duties](https://cloud.google.com/kms/docs/separation-of-duties) and # `gcloud kms keys add-iam-policy-binding` # [`--member`](https://cloud.google.com/sdk/gcloud/reference/kms/keys/add-iam-policy-binding#--member). class CustomerEncryptionKey include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # A readiness check to be performed on a workstation. # @!attribute [rw] path # @return [::String] # Optional. Path to which the request should be sent. # @!attribute [rw] port # @return [::Integer] # Optional. Port to which the request should be sent. class ReadinessCheck include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # HTTP options for the running workstations. # @!attribute [rw] allowed_unauthenticated_cors_preflight_requests # @return [::Boolean] # Optional. By default, the workstations service makes sure that all # requests to the workstation are authenticated. CORS preflight requests do # not include cookies or custom headers, and so are considered # unauthenticated and blocked by the workstations service. Enabling this # option allows these unauthenticated CORS preflight requests through to # the workstation, where it becomes the responsibility of the destination # server in the workstation to validate the request. # @!attribute [rw] disable_localhost_replacement # @return [::Boolean] # Optional. By default, the workstations service replaces references to # localhost, 127.0.0.1, and 0.0.0.0 with the workstation's hostname in http # responses from the workstation so that applications under development run # properly on the workstation. This may intefere with some applications, # and so this option allows that behavior to be disabled. class HttpOptions include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # A PortRange defines a range of ports. Both # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PortRange#first first} # and # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PortRange#last last} # are inclusive. To specify a single port, both # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PortRange#first first} # and # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PortRange#last last} # should be the same. # @!attribute [rw] first # @return [::Integer] # Required. Starting port number for the current range of ports. # Valid ports are 22, 80, and ports within the range 1024-65535. # @!attribute [rw] last # @return [::Integer] # Required. Ending port number for the current range of ports. # Valid ports are 22, 80, and ports within the range 1024-65535. class PortRange include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class AnnotationsEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class LabelsEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end end |
#grant_workstation_admin_role_on_create ⇒ ::Boolean
Returns Optional. Grant creator of a workstation roles/workstations.policyAdmin
role along with roles/workstations.user role on the workstation created
by them. This allows workstation users to share access to either their
entire workstation, or individual ports. Defaults to false.
420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 |
# File 'proto_docs/google/cloud/workstations/v1beta/workstations.rb', line 420 class WorkstationConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # Runtime host for a workstation. # @!attribute [rw] gce_instance # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance] # Specifies a Compute Engine instance as the host. class Host include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # A runtime using a Compute Engine instance. # @!attribute [rw] machine_type # @return [::String] # Optional. The type of machine to use for VM instances—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). # @!attribute [rw] service_account # @return [::String] # Optional. The email address of the service account for Cloud # Workstations VMs created with this configuration. When specified, be # sure that the service account has `logging.logEntries.create` and # `monitoring.timeSeries.create` permissions on the project so it can # write logs out to Cloud Logging. If using a custom container image, the # service account must have [Artifact Registry # Reader](https://cloud.google.com/artifact-registry/docs/access-control#roles) # permission to pull the specified image. # # If you as the administrator want to be able to `ssh` into the # underlying VM, you need to set this value to a service account # for which you have the `iam.serviceAccounts.actAs` permission. # Conversely, if you don't want anyone to be able to `ssh` into the # underlying VM, use a service account where no one has that # permission. # # If not set, VMs run with a service account provided by the # Cloud Workstations service, and the image must be publicly # accessible. # @!attribute [rw] service_account_scopes # @return [::Array<::String>] # Optional. Scopes to grant to the # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance#service_account service_account}. # When specified, users of workstations under this configuration must # have `iam.serviceAccounts.actAs` on the service account. # @!attribute [rw] tags # @return [::Array<::String>] # Optional. Network tags to add to the Compute Engine VMs backing the # workstations. This option applies # [network # tags](https://cloud.google.com/vpc/docs/add-remove-network-tags) to VMs # created with this configuration. These network tags enable the creation # of [firewall # rules](https://cloud.google.com/workstations/docs/configure-firewall-rules). # @!attribute [rw] pool_size # @return [::Integer] # Optional. The number of VMs that the system should keep idle so that # new workstations can be started quickly for new users. Defaults to `0` # in the API. # @!attribute [r] pooled_instances # @return [::Integer] # Output only. Number of instances currently available in the pool for # faster workstation startup. # @!attribute [rw] disable_public_ip_addresses # @return [::Boolean] # Optional. When set to true, disables public IP addresses for VMs. If # you disable public IP addresses, you must set up Private Google Access # or Cloud NAT on your network. If you use Private Google Access and you # use `private.googleapis.com` or `restricted.googleapis.com` for # Container Registry and Artifact Registry, make sure that you set # up DNS records for domains `*.gcr.io` and `*.pkg.dev`. # Defaults to false (VMs have public IP addresses). # @!attribute [rw] enable_nested_virtualization # @return [::Boolean] # Optional. Whether to enable nested virtualization on Cloud Workstations # VMs created using this workstation configuration. # # Defaults to false. # # Nested virtualization lets you run virtual machine (VM) instances # inside your workstation. Before enabling nested virtualization, # consider the following important considerations. Cloud Workstations # instances are subject to the [same restrictions as Compute Engine # instances](https://cloud.google.com/compute/docs/instances/nested-virtualization/overview#restrictions): # # * **Organization policy**: projects, folders, or # organizations may be restricted from creating nested VMs if the # **Disable VM nested virtualization** constraint is enforced in # the organization policy. For more information, see the # Compute Engine section, # [Checking whether nested virtualization is # allowed](https://cloud.google.com/compute/docs/instances/nested-virtualization/managing-constraint#checking_whether_nested_virtualization_is_allowed). # * **Performance**: nested VMs might experience a 10% or greater # decrease in performance for workloads that are CPU-bound and # possibly greater than a 10% decrease for workloads that are # input/output bound. # * **Machine Type**: nested virtualization can only be enabled on # workstation configurations that specify a # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance#machine_type machine_type} # in the N1 or N2 machine series. # @!attribute [rw] shielded_instance_config # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::GceShieldedInstanceConfig] # Optional. A set of Compute Engine Shielded instance options. # @!attribute [rw] confidential_instance_config # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::GceConfidentialInstanceConfig] # Optional. A set of Compute Engine Confidential VM instance options. # @!attribute [rw] boot_disk_size_gb # @return [::Integer] # Optional. The size of the boot disk for the VM in gigabytes (GB). # The minimum boot disk size is `30` GB. Defaults to `50` GB. # @!attribute [rw] accelerators # @return [::Array<::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::Accelerator>] # Optional. A list of the type and count of accelerator cards attached to # the instance. # @!attribute [rw] boost_configs # @return [::Array<::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::BoostConfig>] # Optional. A list of the boost configurations that workstations created # using this workstation configuration are allowed to use. If specified, # users will have the option to choose from the list of boost configs # when starting a workstation. # @!attribute [rw] disable_ssh # @return [::Boolean] # Optional. Whether to disable SSH access to the VM. # @!attribute [rw] vm_tags # @return [::Google::Protobuf::Map{::String => ::String}] # Optional. Resource manager tags to be bound to this instance. # Tag keys and values have the same definition as [resource manager # tags](https://cloud.google.com/resource-manager/docs/tags/tags-overview). # Keys must be in the format `tagKeys/{tag_key_id}`, and # values are in the format `tagValues/456`. # @!attribute [rw] reservation_affinity # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::ReservationAffinity] # Optional. # [ReservationAffinity](https://cloud.google.com/compute/docs/instances/reserving-zonal-resources) # specifies a reservation that can be consumed to create VM # instances. If SPECIFIC_RESERVATION is specified, Cloud Workstations # will only create VMs in the zone where the reservation is located. # This would affect availability since the service will no longer be # resilient to zonal outages. If ANY_RESERVATION is specified, creating # reservations in both zones that the config creates VMs in will ensure # higher availability. # **Important Considerations for Reservation Affinity:** # # * This feature is intended for advanced users and requires # familiarity with Google Compute Engine reservations. # * Using reservations incurs charges, regardless of utilization. # * The resources in the pool will consume the specified # reservation. Take this into account when setting the # pool size. # @!attribute [rw] startup_script_uri # @return [::String] # Optional. Link to the startup script stored in Cloud Storage. This # script will be run on the host workstation VM when the VM is created. # The URI must be of the form gs://\\{bucket-name}/\\{object-name}. If # specifying a startup script, the service account must have [Permission # to access the bucket and script file in Cloud # Storage](https://cloud.google.com/storage/docs/access-control/iam-permissions). # Otherwise, the script must be publicly accessible. # Note that the service regularly updates the OS version of the host VM, # and it is the responsibility of the user to ensure the script stays # compatible with the OS version. # @!attribute [rw] instance_metadata # @return [::Google::Protobuf::Map{::String => ::String}] # Optional. Custom metadata to apply to Compute Engine instances. class GceInstance include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # A set of Compute Engine Shielded instance options. # @!attribute [rw] enable_secure_boot # @return [::Boolean] # Optional. Whether the instance has Secure Boot enabled. # @!attribute [rw] enable_vtpm # @return [::Boolean] # Optional. Whether the instance has the vTPM enabled. # @!attribute [rw] enable_integrity_monitoring # @return [::Boolean] # Optional. Whether the instance has integrity monitoring enabled. class GceShieldedInstanceConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # A set of Compute Engine Confidential VM instance options. # @!attribute [rw] enable_confidential_compute # @return [::Boolean] # Optional. Whether the instance has confidential compute enabled. class GceConfidentialInstanceConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # An accelerator card attached to the instance. # @!attribute [rw] type # @return [::String] # Optional. Type of accelerator resource to attach to the instance, for # example, # `"nvidia-tesla-p100"`. # @!attribute [rw] count # @return [::Integer] # Optional. Number of accelerator cards exposed to the instance. class Accelerator include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # A boost configuration is a set of resources that a workstation can use # to increase its performance. If you specify a boost configuration, upon # startup, workstation users can choose to use a VM provisioned under the # boost config by passing the boost config ID in the start request. If # the workstation user does not provide a boost config ID in the start # request, the system will choose a VM from the pool provisioned under # the default config. # @!attribute [rw] id # @return [::String] # Required. The ID to be used for the boost configuration. # @!attribute [rw] machine_type # @return [::String] # Optional. 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`. # @!attribute [rw] accelerators # @return [::Array<::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::Accelerator>] # Optional. A list of the type and count of accelerator cards attached # to the boost instance. Defaults to `none`. # @!attribute [rw] boot_disk_size_gb # @return [::Integer] # Optional. The size of the boot disk for the VM in gigabytes (GB). # The minimum boot disk size is `30` GB. Defaults to `50` GB. # @!attribute [rw] enable_nested_virtualization # @return [::Boolean] # Optional. Whether to enable nested virtualization on boosted Cloud # Workstations VMs running using this boost configuration. # # Defaults to false. # # Nested virtualization lets you run virtual machine (VM) instances # inside your workstation. Before enabling nested virtualization, # consider the following important considerations. Cloud Workstations # instances are subject to the [same restrictions as Compute Engine # instances](https://cloud.google.com/compute/docs/instances/nested-virtualization/overview#restrictions): # # * **Organization policy**: projects, folders, or # organizations may be restricted from creating nested VMs if the # **Disable VM nested virtualization** constraint is enforced in # the organization policy. For more information, see the # Compute Engine section, # [Checking whether nested virtualization is # allowed](https://cloud.google.com/compute/docs/instances/nested-virtualization/managing-constraint#checking_whether_nested_virtualization_is_allowed). # * **Performance**: nested VMs might experience a 10% or greater # decrease in performance for workloads that are CPU-bound and # possibly greater than a 10% decrease for workloads that are # input/output bound. # * **Machine Type**: nested virtualization can only be enabled on # boost configurations that specify a # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::BoostConfig#machine_type machine_type} # in the N1 or N2 machine series. # @!attribute [rw] pool_size # @return [::Integer] # Optional. The number of boost VMs that the system should keep idle so # that workstations can be boosted quickly. Defaults to `0`. # @!attribute [rw] reservation_affinity # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::ReservationAffinity] # Optional. # [ReservationAffinity](https://cloud.google.com/compute/docs/instances/reserving-zonal-resources) # specifies a reservation that can be consumed to create boost VM # instances. If SPECIFIC_RESERVATION is specified, Cloud Workstations # will only create VMs in the zone where the reservation is located. # This would affect availability since the service will no longer be # resilient to zonal outages. If ANY_RESERVATION is specified, creating # reservations in both zones that the config creates VMs in will ensure # higher availability. # **Important Considerations for Reservation Affinity:** # # * This feature is intended for advanced users and requires # familiarity with Google Compute Engine reservations. # * Using reservations incurs charges, regardless of utilization. # * The resources in the pool will consume the specified # reservation. Take this into account when setting the # pool size. class BoostConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # ReservationAffinity is the configuration of the desired reservation # from which instances can consume resources. # @!attribute [rw] consume_reservation_type # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::ReservationAffinity::Type] # Optional. Corresponds to the type of reservation consumption. # @!attribute [rw] key # @return [::String] # Optional. Corresponds to the label key of reservation resource. # @!attribute [rw] values # @return [::Array<::String>] # Optional. Corresponds to the label values of reservation resources. # Valid values are either the name of a reservation in the same project # or "projects/\\{project}/reservations/\\{reservation}" to target a shared # reservation in the same zone but in a different project. class ReservationAffinity include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # Indicates whether to consume capacity from a reservation or not. module Type # Default value. This should not be used. TYPE_UNSPECIFIED = 0 # Do not consume from any reserved capacity. NO_RESERVATION = 1 # Consume any reservation available. ANY_RESERVATION = 2 # Must consume from a specific reservation. Must specify key value # fields for specifying the reservations. SPECIFIC_RESERVATION = 3 end end # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class VmTagsEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class InstanceMetadataEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end end end # A directory to persist across workstation sessions. Updates to this field # will not update existing workstations and will only take effect on new # workstations. # @!attribute [rw] gce_pd # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk] # A PersistentDirectory backed by a Compute Engine persistent disk. # # Note: The following fields are mutually exclusive: `gce_pd`, `gce_hd`. If a field in that set is populated, all other fields in the set will automatically be cleared. # @!attribute [rw] gce_hd # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceHyperdiskBalancedHighAvailability] # A PersistentDirectory backed by a Compute Engine hyperdisk high # availability disk. # # Note: The following fields are mutually exclusive: `gce_hd`, `gce_pd`. If a field in that set is populated, all other fields in the set will automatically be cleared. # @!attribute [rw] mount_path # @return [::String] # Optional. Location of this directory in the running workstation. class PersistentDirectory include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # A Persistent Directory backed by a Compute Engine regional persistent # disk. The # {::Google::Cloud::Workstations::V1beta::WorkstationConfig#persistent_directories persistent_directories} # field is repeated, but it may contain only one entry. It creates a # [persistent # disk](https://cloud.google.com/compute/docs/disks/persistent-disks) that # mounts to the workstation VM at `/home` when the session starts and # detaches when the session ends. If this field is empty, workstations # created with this configuration do not have a persistent home # directory. # @!attribute [rw] size_gb # @return [::Integer] # Optional. The GB capacity of a persistent home directory for each # workstation created with this configuration. Must be empty if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk#source_snapshot source_snapshot} # is set. # # Valid values are `10`, `50`, `100`, `200`, `500`, or `1000`. # Defaults to `200`. If less than `200` GB, the # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk#disk_type disk_type} # must be # `"pd-balanced"` or `"pd-ssd"`. # @!attribute [rw] max_size_gb # @return [::Integer] # Optional. Maximum size in GB to which this persistent directory can be # resized. Defaults to unlimited if not set. # @!attribute [rw] fs_type # @return [::String] # Optional. Type of file system that the disk should be formatted with. # The workstation image must support this file system type. Must be empty # if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk#source_snapshot source_snapshot} # is set. Defaults to `"ext4"`. # @!attribute [rw] disk_type # @return [::String] # Optional. The [type of the persistent # disk](https://cloud.google.com/compute/docs/disks#disk-types) for the # home directory. Defaults to `"pd-standard"`. # @!attribute [rw] source_snapshot # @return [::String] # Optional. Name of the snapshot to use as the source for the disk. If # set, # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk#size_gb size_gb} # and # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk#fs_type fs_type} # must be empty. Must be formatted as ext4 file system with no # partitions. # @!attribute [rw] reclaim_policy # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk::ReclaimPolicy] # Optional. Whether the persistent disk should be deleted when the # workstation is deleted. Valid values are `DELETE` and `RETAIN`. # Defaults to `DELETE`. # @!attribute [rw] archive_timeout # @return [::Google::Protobuf::Duration] # Optional. Number of seconds to wait after initially creating or # subsequently shutting down the workstation before converting its disk # into a snapshot. This generally saves costs at the expense of greater # startup time on next workstation start, as the service will need to # create a disk from the archival snapshot. # # A value of `"0s"` indicates that the disk will never be archived. class GceRegionalPersistentDisk include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # Value representing what should happen to the disk after the workstation # is deleted. module ReclaimPolicy # Do not use. RECLAIM_POLICY_UNSPECIFIED = 0 # Delete the persistent disk when deleting the workstation. DELETE = 1 # Keep the persistent disk when deleting the workstation. # An administrator must manually delete the disk. RETAIN = 2 end end # A Persistent Directory backed by a Compute Engine # [Hyperdisk Balanced High Availability # Disk](https://cloud.google.com/compute/docs/disks/hd-types/hyperdisk-balanced-ha). # This is a high-availability block storage solution that offers a balance # between performance and cost for most general-purpose workloads. # @!attribute [rw] size_gb # @return [::Integer] # Optional. The GB capacity of a persistent home directory for each # workstation created with this configuration. Must be empty if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceHyperdiskBalancedHighAvailability#source_snapshot source_snapshot} # is set. # # Valid values are `10`, `50`, `100`, `200`, `500`, or `1000`. # Defaults to `200`. # @!attribute [rw] max_size_gb # @return [::Integer] # Optional. Maximum size in GB to which this persistent directory can be # resized. Defaults to unlimited if not set. # @!attribute [rw] source_snapshot # @return [::String] # Optional. Name of the snapshot to use as the source for the disk. If # set, # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceHyperdiskBalancedHighAvailability#size_gb size_gb} # must be empty. Must be formatted as ext4 file system with no # partitions. # @!attribute [rw] reclaim_policy # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceHyperdiskBalancedHighAvailability::ReclaimPolicy] # Optional. Whether the persistent disk should be deleted when the # workstation is deleted. Valid values are `DELETE` and `RETAIN`. # Defaults to `DELETE`. # @!attribute [rw] archive_timeout # @return [::Google::Protobuf::Duration] # Optional. Number of seconds to wait after initially creating or # subsequently shutting down the workstation before converting its disk # into a snapshot. This generally saves costs at the expense of greater # startup time on next workstation start, as the service will need to # create a disk from the archival snapshot. # # A value of `"0s"` indicates that the disk will never be archived. class GceHyperdiskBalancedHighAvailability include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # Value representing what should happen to the disk after the workstation # is deleted. module ReclaimPolicy # Do not use. RECLAIM_POLICY_UNSPECIFIED = 0 # Delete the persistent disk when deleting the workstation. DELETE = 1 # Keep the persistent disk when deleting the workstation. # An administrator must manually delete the disk. RETAIN = 2 end end end # An ephemeral directory which won't persist across workstation sessions. It # is freshly created on every workstation start operation. # @!attribute [rw] gce_pd # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk] # An EphemeralDirectory backed by a Compute Engine persistent disk. # @!attribute [rw] mount_path # @return [::String] # Required. Location of this directory in the running workstation. class EphemeralDirectory include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # An EphemeralDirectory is backed by a Compute Engine persistent disk. # @!attribute [rw] disk_type # @return [::String] # Optional. Type of the disk to use. Defaults to `"pd-standard"`. # @!attribute [rw] source_snapshot # @return [::String] # Optional. Name of the snapshot to use as the source for the disk. Must # be empty if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#source_image source_image} # is set. Must be empty if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#read_only read_only} # is false. Updating # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#source_snapshot source_snapshot} # will update content in the ephemeral directory after the workstation is # restarted. # # Only file systems supported by Container-Optimized OS (COS) # are explicitly supported. For a list of supported file systems, see # [the filesystems available in Container-Optimized # OS](https://cloud.google.com/container-optimized-os/docs/concepts/supported-filesystems). # # This field is mutable. # @!attribute [rw] source_image # @return [::String] # Optional. Name of the disk image to use as the source for the disk. # Must be empty if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#source_snapshot source_snapshot} # is set. Updating # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#source_image source_image} # will update content in the ephemeral directory after the workstation is # restarted. # # Only file systems supported by Container-Optimized OS (COS) # are explicitly supported. For a list of supported file systems, please # refer to the [COS # documentation](https://cloud.google.com/container-optimized-os/docs/concepts/supported-filesystems). # # This field is mutable. # @!attribute [rw] read_only # @return [::Boolean] # Optional. Whether the disk is read only. If true, the disk may be # shared by multiple VMs and # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#source_snapshot source_snapshot} # must be set. class GcePersistentDisk include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end end # A Docker container. # @!attribute [rw] image # @return [::String] # Optional. A Docker container image that defines a custom environment. # # Cloud Workstations provides a number of # [preconfigured # images](https://cloud.google.com/workstations/docs/preconfigured-base-images), # but you can create your own # [custom container # images](https://cloud.google.com/workstations/docs/custom-container-images). # If using a private image, the `host.gceInstance.serviceAccount` field # must be specified in the workstation configuration. # If using a custom container image, the service account must have # [Artifact Registry # Reader](https://cloud.google.com/artifact-registry/docs/access-control#roles) # permission to pull the specified image. Otherwise, the image must be # publicly accessible. # @!attribute [rw] command # @return [::Array<::String>] # Optional. If set, overrides the default ENTRYPOINT specified by the # image. # @!attribute [rw] args # @return [::Array<::String>] # Optional. Arguments passed to the entrypoint. # @!attribute [rw] env # @return [::Google::Protobuf::Map{::String => ::String}] # Optional. Environment variables passed to the container's entrypoint. # @!attribute [rw] working_dir # @return [::String] # Optional. If set, overrides the default DIR specified by the image. # @!attribute [rw] run_as_user # @return [::Integer] # Optional. If set, overrides the USER specified in the image with the # given uid. class Container include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class EnvEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end end # A customer-managed encryption key (CMEK) for the Compute Engine # resources of the associated workstation configuration. Specify the name of # your Cloud KMS encryption key and the default service account. # We recommend that you use a separate service account and follow # [Cloud KMS best # practices](https://cloud.google.com/kms/docs/separation-of-duties). # @!attribute [rw] kms_key # @return [::String] # Immutable. The name of the Google Cloud KMS encryption key. For example, # `"projects/PROJECT_ID/locations/REGION/keyRings/KEY_RING/cryptoKeys/KEY_NAME"`. # The key must be in the same region as the workstation configuration. # @!attribute [rw] kms_key_service_account # @return [::String] # Immutable. The service account to use with the specified # KMS key. We recommend that you use a separate service account # and follow KMS best practices. For more information, see # [Separation of # duties](https://cloud.google.com/kms/docs/separation-of-duties) and # `gcloud kms keys add-iam-policy-binding` # [`--member`](https://cloud.google.com/sdk/gcloud/reference/kms/keys/add-iam-policy-binding#--member). class CustomerEncryptionKey include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # A readiness check to be performed on a workstation. # @!attribute [rw] path # @return [::String] # Optional. Path to which the request should be sent. # @!attribute [rw] port # @return [::Integer] # Optional. Port to which the request should be sent. class ReadinessCheck include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # HTTP options for the running workstations. # @!attribute [rw] allowed_unauthenticated_cors_preflight_requests # @return [::Boolean] # Optional. By default, the workstations service makes sure that all # requests to the workstation are authenticated. CORS preflight requests do # not include cookies or custom headers, and so are considered # unauthenticated and blocked by the workstations service. Enabling this # option allows these unauthenticated CORS preflight requests through to # the workstation, where it becomes the responsibility of the destination # server in the workstation to validate the request. # @!attribute [rw] disable_localhost_replacement # @return [::Boolean] # Optional. By default, the workstations service replaces references to # localhost, 127.0.0.1, and 0.0.0.0 with the workstation's hostname in http # responses from the workstation so that applications under development run # properly on the workstation. This may intefere with some applications, # and so this option allows that behavior to be disabled. class HttpOptions include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # A PortRange defines a range of ports. Both # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PortRange#first first} # and # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PortRange#last last} # are inclusive. To specify a single port, both # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PortRange#first first} # and # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PortRange#last last} # should be the same. # @!attribute [rw] first # @return [::Integer] # Required. Starting port number for the current range of ports. # Valid ports are 22, 80, and ports within the range 1024-65535. # @!attribute [rw] last # @return [::Integer] # Required. Ending port number for the current range of ports. # Valid ports are 22, 80, and ports within the range 1024-65535. class PortRange include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class AnnotationsEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class LabelsEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end end |
#host ⇒ ::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host
Returns Optional. Runtime host for the workstation.
420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 |
# File 'proto_docs/google/cloud/workstations/v1beta/workstations.rb', line 420 class WorkstationConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # Runtime host for a workstation. # @!attribute [rw] gce_instance # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance] # Specifies a Compute Engine instance as the host. class Host include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # A runtime using a Compute Engine instance. # @!attribute [rw] machine_type # @return [::String] # Optional. The type of machine to use for VM instances—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). # @!attribute [rw] service_account # @return [::String] # Optional. The email address of the service account for Cloud # Workstations VMs created with this configuration. When specified, be # sure that the service account has `logging.logEntries.create` and # `monitoring.timeSeries.create` permissions on the project so it can # write logs out to Cloud Logging. If using a custom container image, the # service account must have [Artifact Registry # Reader](https://cloud.google.com/artifact-registry/docs/access-control#roles) # permission to pull the specified image. # # If you as the administrator want to be able to `ssh` into the # underlying VM, you need to set this value to a service account # for which you have the `iam.serviceAccounts.actAs` permission. # Conversely, if you don't want anyone to be able to `ssh` into the # underlying VM, use a service account where no one has that # permission. # # If not set, VMs run with a service account provided by the # Cloud Workstations service, and the image must be publicly # accessible. # @!attribute [rw] service_account_scopes # @return [::Array<::String>] # Optional. Scopes to grant to the # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance#service_account service_account}. # When specified, users of workstations under this configuration must # have `iam.serviceAccounts.actAs` on the service account. # @!attribute [rw] tags # @return [::Array<::String>] # Optional. Network tags to add to the Compute Engine VMs backing the # workstations. This option applies # [network # tags](https://cloud.google.com/vpc/docs/add-remove-network-tags) to VMs # created with this configuration. These network tags enable the creation # of [firewall # rules](https://cloud.google.com/workstations/docs/configure-firewall-rules). # @!attribute [rw] pool_size # @return [::Integer] # Optional. The number of VMs that the system should keep idle so that # new workstations can be started quickly for new users. Defaults to `0` # in the API. # @!attribute [r] pooled_instances # @return [::Integer] # Output only. Number of instances currently available in the pool for # faster workstation startup. # @!attribute [rw] disable_public_ip_addresses # @return [::Boolean] # Optional. When set to true, disables public IP addresses for VMs. If # you disable public IP addresses, you must set up Private Google Access # or Cloud NAT on your network. If you use Private Google Access and you # use `private.googleapis.com` or `restricted.googleapis.com` for # Container Registry and Artifact Registry, make sure that you set # up DNS records for domains `*.gcr.io` and `*.pkg.dev`. # Defaults to false (VMs have public IP addresses). # @!attribute [rw] enable_nested_virtualization # @return [::Boolean] # Optional. Whether to enable nested virtualization on Cloud Workstations # VMs created using this workstation configuration. # # Defaults to false. # # Nested virtualization lets you run virtual machine (VM) instances # inside your workstation. Before enabling nested virtualization, # consider the following important considerations. Cloud Workstations # instances are subject to the [same restrictions as Compute Engine # instances](https://cloud.google.com/compute/docs/instances/nested-virtualization/overview#restrictions): # # * **Organization policy**: projects, folders, or # organizations may be restricted from creating nested VMs if the # **Disable VM nested virtualization** constraint is enforced in # the organization policy. For more information, see the # Compute Engine section, # [Checking whether nested virtualization is # allowed](https://cloud.google.com/compute/docs/instances/nested-virtualization/managing-constraint#checking_whether_nested_virtualization_is_allowed). # * **Performance**: nested VMs might experience a 10% or greater # decrease in performance for workloads that are CPU-bound and # possibly greater than a 10% decrease for workloads that are # input/output bound. # * **Machine Type**: nested virtualization can only be enabled on # workstation configurations that specify a # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance#machine_type machine_type} # in the N1 or N2 machine series. # @!attribute [rw] shielded_instance_config # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::GceShieldedInstanceConfig] # Optional. A set of Compute Engine Shielded instance options. # @!attribute [rw] confidential_instance_config # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::GceConfidentialInstanceConfig] # Optional. A set of Compute Engine Confidential VM instance options. # @!attribute [rw] boot_disk_size_gb # @return [::Integer] # Optional. The size of the boot disk for the VM in gigabytes (GB). # The minimum boot disk size is `30` GB. Defaults to `50` GB. # @!attribute [rw] accelerators # @return [::Array<::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::Accelerator>] # Optional. A list of the type and count of accelerator cards attached to # the instance. # @!attribute [rw] boost_configs # @return [::Array<::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::BoostConfig>] # Optional. A list of the boost configurations that workstations created # using this workstation configuration are allowed to use. If specified, # users will have the option to choose from the list of boost configs # when starting a workstation. # @!attribute [rw] disable_ssh # @return [::Boolean] # Optional. Whether to disable SSH access to the VM. # @!attribute [rw] vm_tags # @return [::Google::Protobuf::Map{::String => ::String}] # Optional. Resource manager tags to be bound to this instance. # Tag keys and values have the same definition as [resource manager # tags](https://cloud.google.com/resource-manager/docs/tags/tags-overview). # Keys must be in the format `tagKeys/{tag_key_id}`, and # values are in the format `tagValues/456`. # @!attribute [rw] reservation_affinity # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::ReservationAffinity] # Optional. # [ReservationAffinity](https://cloud.google.com/compute/docs/instances/reserving-zonal-resources) # specifies a reservation that can be consumed to create VM # instances. If SPECIFIC_RESERVATION is specified, Cloud Workstations # will only create VMs in the zone where the reservation is located. # This would affect availability since the service will no longer be # resilient to zonal outages. If ANY_RESERVATION is specified, creating # reservations in both zones that the config creates VMs in will ensure # higher availability. # **Important Considerations for Reservation Affinity:** # # * This feature is intended for advanced users and requires # familiarity with Google Compute Engine reservations. # * Using reservations incurs charges, regardless of utilization. # * The resources in the pool will consume the specified # reservation. Take this into account when setting the # pool size. # @!attribute [rw] startup_script_uri # @return [::String] # Optional. Link to the startup script stored in Cloud Storage. This # script will be run on the host workstation VM when the VM is created. # The URI must be of the form gs://\\{bucket-name}/\\{object-name}. If # specifying a startup script, the service account must have [Permission # to access the bucket and script file in Cloud # Storage](https://cloud.google.com/storage/docs/access-control/iam-permissions). # Otherwise, the script must be publicly accessible. # Note that the service regularly updates the OS version of the host VM, # and it is the responsibility of the user to ensure the script stays # compatible with the OS version. # @!attribute [rw] instance_metadata # @return [::Google::Protobuf::Map{::String => ::String}] # Optional. Custom metadata to apply to Compute Engine instances. class GceInstance include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # A set of Compute Engine Shielded instance options. # @!attribute [rw] enable_secure_boot # @return [::Boolean] # Optional. Whether the instance has Secure Boot enabled. # @!attribute [rw] enable_vtpm # @return [::Boolean] # Optional. Whether the instance has the vTPM enabled. # @!attribute [rw] enable_integrity_monitoring # @return [::Boolean] # Optional. Whether the instance has integrity monitoring enabled. class GceShieldedInstanceConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # A set of Compute Engine Confidential VM instance options. # @!attribute [rw] enable_confidential_compute # @return [::Boolean] # Optional. Whether the instance has confidential compute enabled. class GceConfidentialInstanceConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # An accelerator card attached to the instance. # @!attribute [rw] type # @return [::String] # Optional. Type of accelerator resource to attach to the instance, for # example, # `"nvidia-tesla-p100"`. # @!attribute [rw] count # @return [::Integer] # Optional. Number of accelerator cards exposed to the instance. class Accelerator include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # A boost configuration is a set of resources that a workstation can use # to increase its performance. If you specify a boost configuration, upon # startup, workstation users can choose to use a VM provisioned under the # boost config by passing the boost config ID in the start request. If # the workstation user does not provide a boost config ID in the start # request, the system will choose a VM from the pool provisioned under # the default config. # @!attribute [rw] id # @return [::String] # Required. The ID to be used for the boost configuration. # @!attribute [rw] machine_type # @return [::String] # Optional. 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`. # @!attribute [rw] accelerators # @return [::Array<::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::Accelerator>] # Optional. A list of the type and count of accelerator cards attached # to the boost instance. Defaults to `none`. # @!attribute [rw] boot_disk_size_gb # @return [::Integer] # Optional. The size of the boot disk for the VM in gigabytes (GB). # The minimum boot disk size is `30` GB. Defaults to `50` GB. # @!attribute [rw] enable_nested_virtualization # @return [::Boolean] # Optional. Whether to enable nested virtualization on boosted Cloud # Workstations VMs running using this boost configuration. # # Defaults to false. # # Nested virtualization lets you run virtual machine (VM) instances # inside your workstation. Before enabling nested virtualization, # consider the following important considerations. Cloud Workstations # instances are subject to the [same restrictions as Compute Engine # instances](https://cloud.google.com/compute/docs/instances/nested-virtualization/overview#restrictions): # # * **Organization policy**: projects, folders, or # organizations may be restricted from creating nested VMs if the # **Disable VM nested virtualization** constraint is enforced in # the organization policy. For more information, see the # Compute Engine section, # [Checking whether nested virtualization is # allowed](https://cloud.google.com/compute/docs/instances/nested-virtualization/managing-constraint#checking_whether_nested_virtualization_is_allowed). # * **Performance**: nested VMs might experience a 10% or greater # decrease in performance for workloads that are CPU-bound and # possibly greater than a 10% decrease for workloads that are # input/output bound. # * **Machine Type**: nested virtualization can only be enabled on # boost configurations that specify a # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::BoostConfig#machine_type machine_type} # in the N1 or N2 machine series. # @!attribute [rw] pool_size # @return [::Integer] # Optional. The number of boost VMs that the system should keep idle so # that workstations can be boosted quickly. Defaults to `0`. # @!attribute [rw] reservation_affinity # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::ReservationAffinity] # Optional. # [ReservationAffinity](https://cloud.google.com/compute/docs/instances/reserving-zonal-resources) # specifies a reservation that can be consumed to create boost VM # instances. If SPECIFIC_RESERVATION is specified, Cloud Workstations # will only create VMs in the zone where the reservation is located. # This would affect availability since the service will no longer be # resilient to zonal outages. If ANY_RESERVATION is specified, creating # reservations in both zones that the config creates VMs in will ensure # higher availability. # **Important Considerations for Reservation Affinity:** # # * This feature is intended for advanced users and requires # familiarity with Google Compute Engine reservations. # * Using reservations incurs charges, regardless of utilization. # * The resources in the pool will consume the specified # reservation. Take this into account when setting the # pool size. class BoostConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # ReservationAffinity is the configuration of the desired reservation # from which instances can consume resources. # @!attribute [rw] consume_reservation_type # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::ReservationAffinity::Type] # Optional. Corresponds to the type of reservation consumption. # @!attribute [rw] key # @return [::String] # Optional. Corresponds to the label key of reservation resource. # @!attribute [rw] values # @return [::Array<::String>] # Optional. Corresponds to the label values of reservation resources. # Valid values are either the name of a reservation in the same project # or "projects/\\{project}/reservations/\\{reservation}" to target a shared # reservation in the same zone but in a different project. class ReservationAffinity include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # Indicates whether to consume capacity from a reservation or not. module Type # Default value. This should not be used. TYPE_UNSPECIFIED = 0 # Do not consume from any reserved capacity. NO_RESERVATION = 1 # Consume any reservation available. ANY_RESERVATION = 2 # Must consume from a specific reservation. Must specify key value # fields for specifying the reservations. SPECIFIC_RESERVATION = 3 end end # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class VmTagsEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class InstanceMetadataEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end end end # A directory to persist across workstation sessions. Updates to this field # will not update existing workstations and will only take effect on new # workstations. # @!attribute [rw] gce_pd # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk] # A PersistentDirectory backed by a Compute Engine persistent disk. # # Note: The following fields are mutually exclusive: `gce_pd`, `gce_hd`. If a field in that set is populated, all other fields in the set will automatically be cleared. # @!attribute [rw] gce_hd # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceHyperdiskBalancedHighAvailability] # A PersistentDirectory backed by a Compute Engine hyperdisk high # availability disk. # # Note: The following fields are mutually exclusive: `gce_hd`, `gce_pd`. If a field in that set is populated, all other fields in the set will automatically be cleared. # @!attribute [rw] mount_path # @return [::String] # Optional. Location of this directory in the running workstation. class PersistentDirectory include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # A Persistent Directory backed by a Compute Engine regional persistent # disk. The # {::Google::Cloud::Workstations::V1beta::WorkstationConfig#persistent_directories persistent_directories} # field is repeated, but it may contain only one entry. It creates a # [persistent # disk](https://cloud.google.com/compute/docs/disks/persistent-disks) that # mounts to the workstation VM at `/home` when the session starts and # detaches when the session ends. If this field is empty, workstations # created with this configuration do not have a persistent home # directory. # @!attribute [rw] size_gb # @return [::Integer] # Optional. The GB capacity of a persistent home directory for each # workstation created with this configuration. Must be empty if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk#source_snapshot source_snapshot} # is set. # # Valid values are `10`, `50`, `100`, `200`, `500`, or `1000`. # Defaults to `200`. If less than `200` GB, the # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk#disk_type disk_type} # must be # `"pd-balanced"` or `"pd-ssd"`. # @!attribute [rw] max_size_gb # @return [::Integer] # Optional. Maximum size in GB to which this persistent directory can be # resized. Defaults to unlimited if not set. # @!attribute [rw] fs_type # @return [::String] # Optional. Type of file system that the disk should be formatted with. # The workstation image must support this file system type. Must be empty # if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk#source_snapshot source_snapshot} # is set. Defaults to `"ext4"`. # @!attribute [rw] disk_type # @return [::String] # Optional. The [type of the persistent # disk](https://cloud.google.com/compute/docs/disks#disk-types) for the # home directory. Defaults to `"pd-standard"`. # @!attribute [rw] source_snapshot # @return [::String] # Optional. Name of the snapshot to use as the source for the disk. If # set, # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk#size_gb size_gb} # and # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk#fs_type fs_type} # must be empty. Must be formatted as ext4 file system with no # partitions. # @!attribute [rw] reclaim_policy # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk::ReclaimPolicy] # Optional. Whether the persistent disk should be deleted when the # workstation is deleted. Valid values are `DELETE` and `RETAIN`. # Defaults to `DELETE`. # @!attribute [rw] archive_timeout # @return [::Google::Protobuf::Duration] # Optional. Number of seconds to wait after initially creating or # subsequently shutting down the workstation before converting its disk # into a snapshot. This generally saves costs at the expense of greater # startup time on next workstation start, as the service will need to # create a disk from the archival snapshot. # # A value of `"0s"` indicates that the disk will never be archived. class GceRegionalPersistentDisk include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # Value representing what should happen to the disk after the workstation # is deleted. module ReclaimPolicy # Do not use. RECLAIM_POLICY_UNSPECIFIED = 0 # Delete the persistent disk when deleting the workstation. DELETE = 1 # Keep the persistent disk when deleting the workstation. # An administrator must manually delete the disk. RETAIN = 2 end end # A Persistent Directory backed by a Compute Engine # [Hyperdisk Balanced High Availability # Disk](https://cloud.google.com/compute/docs/disks/hd-types/hyperdisk-balanced-ha). # This is a high-availability block storage solution that offers a balance # between performance and cost for most general-purpose workloads. # @!attribute [rw] size_gb # @return [::Integer] # Optional. The GB capacity of a persistent home directory for each # workstation created with this configuration. Must be empty if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceHyperdiskBalancedHighAvailability#source_snapshot source_snapshot} # is set. # # Valid values are `10`, `50`, `100`, `200`, `500`, or `1000`. # Defaults to `200`. # @!attribute [rw] max_size_gb # @return [::Integer] # Optional. Maximum size in GB to which this persistent directory can be # resized. Defaults to unlimited if not set. # @!attribute [rw] source_snapshot # @return [::String] # Optional. Name of the snapshot to use as the source for the disk. If # set, # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceHyperdiskBalancedHighAvailability#size_gb size_gb} # must be empty. Must be formatted as ext4 file system with no # partitions. # @!attribute [rw] reclaim_policy # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceHyperdiskBalancedHighAvailability::ReclaimPolicy] # Optional. Whether the persistent disk should be deleted when the # workstation is deleted. Valid values are `DELETE` and `RETAIN`. # Defaults to `DELETE`. # @!attribute [rw] archive_timeout # @return [::Google::Protobuf::Duration] # Optional. Number of seconds to wait after initially creating or # subsequently shutting down the workstation before converting its disk # into a snapshot. This generally saves costs at the expense of greater # startup time on next workstation start, as the service will need to # create a disk from the archival snapshot. # # A value of `"0s"` indicates that the disk will never be archived. class GceHyperdiskBalancedHighAvailability include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # Value representing what should happen to the disk after the workstation # is deleted. module ReclaimPolicy # Do not use. RECLAIM_POLICY_UNSPECIFIED = 0 # Delete the persistent disk when deleting the workstation. DELETE = 1 # Keep the persistent disk when deleting the workstation. # An administrator must manually delete the disk. RETAIN = 2 end end end # An ephemeral directory which won't persist across workstation sessions. It # is freshly created on every workstation start operation. # @!attribute [rw] gce_pd # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk] # An EphemeralDirectory backed by a Compute Engine persistent disk. # @!attribute [rw] mount_path # @return [::String] # Required. Location of this directory in the running workstation. class EphemeralDirectory include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # An EphemeralDirectory is backed by a Compute Engine persistent disk. # @!attribute [rw] disk_type # @return [::String] # Optional. Type of the disk to use. Defaults to `"pd-standard"`. # @!attribute [rw] source_snapshot # @return [::String] # Optional. Name of the snapshot to use as the source for the disk. Must # be empty if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#source_image source_image} # is set. Must be empty if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#read_only read_only} # is false. Updating # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#source_snapshot source_snapshot} # will update content in the ephemeral directory after the workstation is # restarted. # # Only file systems supported by Container-Optimized OS (COS) # are explicitly supported. For a list of supported file systems, see # [the filesystems available in Container-Optimized # OS](https://cloud.google.com/container-optimized-os/docs/concepts/supported-filesystems). # # This field is mutable. # @!attribute [rw] source_image # @return [::String] # Optional. Name of the disk image to use as the source for the disk. # Must be empty if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#source_snapshot source_snapshot} # is set. Updating # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#source_image source_image} # will update content in the ephemeral directory after the workstation is # restarted. # # Only file systems supported by Container-Optimized OS (COS) # are explicitly supported. For a list of supported file systems, please # refer to the [COS # documentation](https://cloud.google.com/container-optimized-os/docs/concepts/supported-filesystems). # # This field is mutable. # @!attribute [rw] read_only # @return [::Boolean] # Optional. Whether the disk is read only. If true, the disk may be # shared by multiple VMs and # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#source_snapshot source_snapshot} # must be set. class GcePersistentDisk include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end end # A Docker container. # @!attribute [rw] image # @return [::String] # Optional. A Docker container image that defines a custom environment. # # Cloud Workstations provides a number of # [preconfigured # images](https://cloud.google.com/workstations/docs/preconfigured-base-images), # but you can create your own # [custom container # images](https://cloud.google.com/workstations/docs/custom-container-images). # If using a private image, the `host.gceInstance.serviceAccount` field # must be specified in the workstation configuration. # If using a custom container image, the service account must have # [Artifact Registry # Reader](https://cloud.google.com/artifact-registry/docs/access-control#roles) # permission to pull the specified image. Otherwise, the image must be # publicly accessible. # @!attribute [rw] command # @return [::Array<::String>] # Optional. If set, overrides the default ENTRYPOINT specified by the # image. # @!attribute [rw] args # @return [::Array<::String>] # Optional. Arguments passed to the entrypoint. # @!attribute [rw] env # @return [::Google::Protobuf::Map{::String => ::String}] # Optional. Environment variables passed to the container's entrypoint. # @!attribute [rw] working_dir # @return [::String] # Optional. If set, overrides the default DIR specified by the image. # @!attribute [rw] run_as_user # @return [::Integer] # Optional. If set, overrides the USER specified in the image with the # given uid. class Container include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class EnvEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end end # A customer-managed encryption key (CMEK) for the Compute Engine # resources of the associated workstation configuration. Specify the name of # your Cloud KMS encryption key and the default service account. # We recommend that you use a separate service account and follow # [Cloud KMS best # practices](https://cloud.google.com/kms/docs/separation-of-duties). # @!attribute [rw] kms_key # @return [::String] # Immutable. The name of the Google Cloud KMS encryption key. For example, # `"projects/PROJECT_ID/locations/REGION/keyRings/KEY_RING/cryptoKeys/KEY_NAME"`. # The key must be in the same region as the workstation configuration. # @!attribute [rw] kms_key_service_account # @return [::String] # Immutable. The service account to use with the specified # KMS key. We recommend that you use a separate service account # and follow KMS best practices. For more information, see # [Separation of # duties](https://cloud.google.com/kms/docs/separation-of-duties) and # `gcloud kms keys add-iam-policy-binding` # [`--member`](https://cloud.google.com/sdk/gcloud/reference/kms/keys/add-iam-policy-binding#--member). class CustomerEncryptionKey include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # A readiness check to be performed on a workstation. # @!attribute [rw] path # @return [::String] # Optional. Path to which the request should be sent. # @!attribute [rw] port # @return [::Integer] # Optional. Port to which the request should be sent. class ReadinessCheck include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # HTTP options for the running workstations. # @!attribute [rw] allowed_unauthenticated_cors_preflight_requests # @return [::Boolean] # Optional. By default, the workstations service makes sure that all # requests to the workstation are authenticated. CORS preflight requests do # not include cookies or custom headers, and so are considered # unauthenticated and blocked by the workstations service. Enabling this # option allows these unauthenticated CORS preflight requests through to # the workstation, where it becomes the responsibility of the destination # server in the workstation to validate the request. # @!attribute [rw] disable_localhost_replacement # @return [::Boolean] # Optional. By default, the workstations service replaces references to # localhost, 127.0.0.1, and 0.0.0.0 with the workstation's hostname in http # responses from the workstation so that applications under development run # properly on the workstation. This may intefere with some applications, # and so this option allows that behavior to be disabled. class HttpOptions include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # A PortRange defines a range of ports. Both # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PortRange#first first} # and # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PortRange#last last} # are inclusive. To specify a single port, both # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PortRange#first first} # and # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PortRange#last last} # should be the same. # @!attribute [rw] first # @return [::Integer] # Required. Starting port number for the current range of ports. # Valid ports are 22, 80, and ports within the range 1024-65535. # @!attribute [rw] last # @return [::Integer] # Required. Ending port number for the current range of ports. # Valid ports are 22, 80, and ports within the range 1024-65535. class PortRange include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class AnnotationsEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class LabelsEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end end |
#http_options ⇒ ::Google::Cloud::Workstations::V1beta::WorkstationConfig::HttpOptions
Returns Optional. HTTP options that customize the behavior of the workstation service's HTTP proxy.
420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 |
# File 'proto_docs/google/cloud/workstations/v1beta/workstations.rb', line 420 class WorkstationConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # Runtime host for a workstation. # @!attribute [rw] gce_instance # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance] # Specifies a Compute Engine instance as the host. class Host include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # A runtime using a Compute Engine instance. # @!attribute [rw] machine_type # @return [::String] # Optional. The type of machine to use for VM instances—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). # @!attribute [rw] service_account # @return [::String] # Optional. The email address of the service account for Cloud # Workstations VMs created with this configuration. When specified, be # sure that the service account has `logging.logEntries.create` and # `monitoring.timeSeries.create` permissions on the project so it can # write logs out to Cloud Logging. If using a custom container image, the # service account must have [Artifact Registry # Reader](https://cloud.google.com/artifact-registry/docs/access-control#roles) # permission to pull the specified image. # # If you as the administrator want to be able to `ssh` into the # underlying VM, you need to set this value to a service account # for which you have the `iam.serviceAccounts.actAs` permission. # Conversely, if you don't want anyone to be able to `ssh` into the # underlying VM, use a service account where no one has that # permission. # # If not set, VMs run with a service account provided by the # Cloud Workstations service, and the image must be publicly # accessible. # @!attribute [rw] service_account_scopes # @return [::Array<::String>] # Optional. Scopes to grant to the # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance#service_account service_account}. # When specified, users of workstations under this configuration must # have `iam.serviceAccounts.actAs` on the service account. # @!attribute [rw] tags # @return [::Array<::String>] # Optional. Network tags to add to the Compute Engine VMs backing the # workstations. This option applies # [network # tags](https://cloud.google.com/vpc/docs/add-remove-network-tags) to VMs # created with this configuration. These network tags enable the creation # of [firewall # rules](https://cloud.google.com/workstations/docs/configure-firewall-rules). # @!attribute [rw] pool_size # @return [::Integer] # Optional. The number of VMs that the system should keep idle so that # new workstations can be started quickly for new users. Defaults to `0` # in the API. # @!attribute [r] pooled_instances # @return [::Integer] # Output only. Number of instances currently available in the pool for # faster workstation startup. # @!attribute [rw] disable_public_ip_addresses # @return [::Boolean] # Optional. When set to true, disables public IP addresses for VMs. If # you disable public IP addresses, you must set up Private Google Access # or Cloud NAT on your network. If you use Private Google Access and you # use `private.googleapis.com` or `restricted.googleapis.com` for # Container Registry and Artifact Registry, make sure that you set # up DNS records for domains `*.gcr.io` and `*.pkg.dev`. # Defaults to false (VMs have public IP addresses). # @!attribute [rw] enable_nested_virtualization # @return [::Boolean] # Optional. Whether to enable nested virtualization on Cloud Workstations # VMs created using this workstation configuration. # # Defaults to false. # # Nested virtualization lets you run virtual machine (VM) instances # inside your workstation. Before enabling nested virtualization, # consider the following important considerations. Cloud Workstations # instances are subject to the [same restrictions as Compute Engine # instances](https://cloud.google.com/compute/docs/instances/nested-virtualization/overview#restrictions): # # * **Organization policy**: projects, folders, or # organizations may be restricted from creating nested VMs if the # **Disable VM nested virtualization** constraint is enforced in # the organization policy. For more information, see the # Compute Engine section, # [Checking whether nested virtualization is # allowed](https://cloud.google.com/compute/docs/instances/nested-virtualization/managing-constraint#checking_whether_nested_virtualization_is_allowed). # * **Performance**: nested VMs might experience a 10% or greater # decrease in performance for workloads that are CPU-bound and # possibly greater than a 10% decrease for workloads that are # input/output bound. # * **Machine Type**: nested virtualization can only be enabled on # workstation configurations that specify a # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance#machine_type machine_type} # in the N1 or N2 machine series. # @!attribute [rw] shielded_instance_config # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::GceShieldedInstanceConfig] # Optional. A set of Compute Engine Shielded instance options. # @!attribute [rw] confidential_instance_config # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::GceConfidentialInstanceConfig] # Optional. A set of Compute Engine Confidential VM instance options. # @!attribute [rw] boot_disk_size_gb # @return [::Integer] # Optional. The size of the boot disk for the VM in gigabytes (GB). # The minimum boot disk size is `30` GB. Defaults to `50` GB. # @!attribute [rw] accelerators # @return [::Array<::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::Accelerator>] # Optional. A list of the type and count of accelerator cards attached to # the instance. # @!attribute [rw] boost_configs # @return [::Array<::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::BoostConfig>] # Optional. A list of the boost configurations that workstations created # using this workstation configuration are allowed to use. If specified, # users will have the option to choose from the list of boost configs # when starting a workstation. # @!attribute [rw] disable_ssh # @return [::Boolean] # Optional. Whether to disable SSH access to the VM. # @!attribute [rw] vm_tags # @return [::Google::Protobuf::Map{::String => ::String}] # Optional. Resource manager tags to be bound to this instance. # Tag keys and values have the same definition as [resource manager # tags](https://cloud.google.com/resource-manager/docs/tags/tags-overview). # Keys must be in the format `tagKeys/{tag_key_id}`, and # values are in the format `tagValues/456`. # @!attribute [rw] reservation_affinity # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::ReservationAffinity] # Optional. # [ReservationAffinity](https://cloud.google.com/compute/docs/instances/reserving-zonal-resources) # specifies a reservation that can be consumed to create VM # instances. If SPECIFIC_RESERVATION is specified, Cloud Workstations # will only create VMs in the zone where the reservation is located. # This would affect availability since the service will no longer be # resilient to zonal outages. If ANY_RESERVATION is specified, creating # reservations in both zones that the config creates VMs in will ensure # higher availability. # **Important Considerations for Reservation Affinity:** # # * This feature is intended for advanced users and requires # familiarity with Google Compute Engine reservations. # * Using reservations incurs charges, regardless of utilization. # * The resources in the pool will consume the specified # reservation. Take this into account when setting the # pool size. # @!attribute [rw] startup_script_uri # @return [::String] # Optional. Link to the startup script stored in Cloud Storage. This # script will be run on the host workstation VM when the VM is created. # The URI must be of the form gs://\\{bucket-name}/\\{object-name}. If # specifying a startup script, the service account must have [Permission # to access the bucket and script file in Cloud # Storage](https://cloud.google.com/storage/docs/access-control/iam-permissions). # Otherwise, the script must be publicly accessible. # Note that the service regularly updates the OS version of the host VM, # and it is the responsibility of the user to ensure the script stays # compatible with the OS version. # @!attribute [rw] instance_metadata # @return [::Google::Protobuf::Map{::String => ::String}] # Optional. Custom metadata to apply to Compute Engine instances. class GceInstance include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # A set of Compute Engine Shielded instance options. # @!attribute [rw] enable_secure_boot # @return [::Boolean] # Optional. Whether the instance has Secure Boot enabled. # @!attribute [rw] enable_vtpm # @return [::Boolean] # Optional. Whether the instance has the vTPM enabled. # @!attribute [rw] enable_integrity_monitoring # @return [::Boolean] # Optional. Whether the instance has integrity monitoring enabled. class GceShieldedInstanceConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # A set of Compute Engine Confidential VM instance options. # @!attribute [rw] enable_confidential_compute # @return [::Boolean] # Optional. Whether the instance has confidential compute enabled. class GceConfidentialInstanceConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # An accelerator card attached to the instance. # @!attribute [rw] type # @return [::String] # Optional. Type of accelerator resource to attach to the instance, for # example, # `"nvidia-tesla-p100"`. # @!attribute [rw] count # @return [::Integer] # Optional. Number of accelerator cards exposed to the instance. class Accelerator include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # A boost configuration is a set of resources that a workstation can use # to increase its performance. If you specify a boost configuration, upon # startup, workstation users can choose to use a VM provisioned under the # boost config by passing the boost config ID in the start request. If # the workstation user does not provide a boost config ID in the start # request, the system will choose a VM from the pool provisioned under # the default config. # @!attribute [rw] id # @return [::String] # Required. The ID to be used for the boost configuration. # @!attribute [rw] machine_type # @return [::String] # Optional. 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`. # @!attribute [rw] accelerators # @return [::Array<::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::Accelerator>] # Optional. A list of the type and count of accelerator cards attached # to the boost instance. Defaults to `none`. # @!attribute [rw] boot_disk_size_gb # @return [::Integer] # Optional. The size of the boot disk for the VM in gigabytes (GB). # The minimum boot disk size is `30` GB. Defaults to `50` GB. # @!attribute [rw] enable_nested_virtualization # @return [::Boolean] # Optional. Whether to enable nested virtualization on boosted Cloud # Workstations VMs running using this boost configuration. # # Defaults to false. # # Nested virtualization lets you run virtual machine (VM) instances # inside your workstation. Before enabling nested virtualization, # consider the following important considerations. Cloud Workstations # instances are subject to the [same restrictions as Compute Engine # instances](https://cloud.google.com/compute/docs/instances/nested-virtualization/overview#restrictions): # # * **Organization policy**: projects, folders, or # organizations may be restricted from creating nested VMs if the # **Disable VM nested virtualization** constraint is enforced in # the organization policy. For more information, see the # Compute Engine section, # [Checking whether nested virtualization is # allowed](https://cloud.google.com/compute/docs/instances/nested-virtualization/managing-constraint#checking_whether_nested_virtualization_is_allowed). # * **Performance**: nested VMs might experience a 10% or greater # decrease in performance for workloads that are CPU-bound and # possibly greater than a 10% decrease for workloads that are # input/output bound. # * **Machine Type**: nested virtualization can only be enabled on # boost configurations that specify a # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::BoostConfig#machine_type machine_type} # in the N1 or N2 machine series. # @!attribute [rw] pool_size # @return [::Integer] # Optional. The number of boost VMs that the system should keep idle so # that workstations can be boosted quickly. Defaults to `0`. # @!attribute [rw] reservation_affinity # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::ReservationAffinity] # Optional. # [ReservationAffinity](https://cloud.google.com/compute/docs/instances/reserving-zonal-resources) # specifies a reservation that can be consumed to create boost VM # instances. If SPECIFIC_RESERVATION is specified, Cloud Workstations # will only create VMs in the zone where the reservation is located. # This would affect availability since the service will no longer be # resilient to zonal outages. If ANY_RESERVATION is specified, creating # reservations in both zones that the config creates VMs in will ensure # higher availability. # **Important Considerations for Reservation Affinity:** # # * This feature is intended for advanced users and requires # familiarity with Google Compute Engine reservations. # * Using reservations incurs charges, regardless of utilization. # * The resources in the pool will consume the specified # reservation. Take this into account when setting the # pool size. class BoostConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # ReservationAffinity is the configuration of the desired reservation # from which instances can consume resources. # @!attribute [rw] consume_reservation_type # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::ReservationAffinity::Type] # Optional. Corresponds to the type of reservation consumption. # @!attribute [rw] key # @return [::String] # Optional. Corresponds to the label key of reservation resource. # @!attribute [rw] values # @return [::Array<::String>] # Optional. Corresponds to the label values of reservation resources. # Valid values are either the name of a reservation in the same project # or "projects/\\{project}/reservations/\\{reservation}" to target a shared # reservation in the same zone but in a different project. class ReservationAffinity include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # Indicates whether to consume capacity from a reservation or not. module Type # Default value. This should not be used. TYPE_UNSPECIFIED = 0 # Do not consume from any reserved capacity. NO_RESERVATION = 1 # Consume any reservation available. ANY_RESERVATION = 2 # Must consume from a specific reservation. Must specify key value # fields for specifying the reservations. SPECIFIC_RESERVATION = 3 end end # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class VmTagsEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class InstanceMetadataEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end end end # A directory to persist across workstation sessions. Updates to this field # will not update existing workstations and will only take effect on new # workstations. # @!attribute [rw] gce_pd # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk] # A PersistentDirectory backed by a Compute Engine persistent disk. # # Note: The following fields are mutually exclusive: `gce_pd`, `gce_hd`. If a field in that set is populated, all other fields in the set will automatically be cleared. # @!attribute [rw] gce_hd # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceHyperdiskBalancedHighAvailability] # A PersistentDirectory backed by a Compute Engine hyperdisk high # availability disk. # # Note: The following fields are mutually exclusive: `gce_hd`, `gce_pd`. If a field in that set is populated, all other fields in the set will automatically be cleared. # @!attribute [rw] mount_path # @return [::String] # Optional. Location of this directory in the running workstation. class PersistentDirectory include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # A Persistent Directory backed by a Compute Engine regional persistent # disk. The # {::Google::Cloud::Workstations::V1beta::WorkstationConfig#persistent_directories persistent_directories} # field is repeated, but it may contain only one entry. It creates a # [persistent # disk](https://cloud.google.com/compute/docs/disks/persistent-disks) that # mounts to the workstation VM at `/home` when the session starts and # detaches when the session ends. If this field is empty, workstations # created with this configuration do not have a persistent home # directory. # @!attribute [rw] size_gb # @return [::Integer] # Optional. The GB capacity of a persistent home directory for each # workstation created with this configuration. Must be empty if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk#source_snapshot source_snapshot} # is set. # # Valid values are `10`, `50`, `100`, `200`, `500`, or `1000`. # Defaults to `200`. If less than `200` GB, the # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk#disk_type disk_type} # must be # `"pd-balanced"` or `"pd-ssd"`. # @!attribute [rw] max_size_gb # @return [::Integer] # Optional. Maximum size in GB to which this persistent directory can be # resized. Defaults to unlimited if not set. # @!attribute [rw] fs_type # @return [::String] # Optional. Type of file system that the disk should be formatted with. # The workstation image must support this file system type. Must be empty # if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk#source_snapshot source_snapshot} # is set. Defaults to `"ext4"`. # @!attribute [rw] disk_type # @return [::String] # Optional. The [type of the persistent # disk](https://cloud.google.com/compute/docs/disks#disk-types) for the # home directory. Defaults to `"pd-standard"`. # @!attribute [rw] source_snapshot # @return [::String] # Optional. Name of the snapshot to use as the source for the disk. If # set, # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk#size_gb size_gb} # and # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk#fs_type fs_type} # must be empty. Must be formatted as ext4 file system with no # partitions. # @!attribute [rw] reclaim_policy # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk::ReclaimPolicy] # Optional. Whether the persistent disk should be deleted when the # workstation is deleted. Valid values are `DELETE` and `RETAIN`. # Defaults to `DELETE`. # @!attribute [rw] archive_timeout # @return [::Google::Protobuf::Duration] # Optional. Number of seconds to wait after initially creating or # subsequently shutting down the workstation before converting its disk # into a snapshot. This generally saves costs at the expense of greater # startup time on next workstation start, as the service will need to # create a disk from the archival snapshot. # # A value of `"0s"` indicates that the disk will never be archived. class GceRegionalPersistentDisk include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # Value representing what should happen to the disk after the workstation # is deleted. module ReclaimPolicy # Do not use. RECLAIM_POLICY_UNSPECIFIED = 0 # Delete the persistent disk when deleting the workstation. DELETE = 1 # Keep the persistent disk when deleting the workstation. # An administrator must manually delete the disk. RETAIN = 2 end end # A Persistent Directory backed by a Compute Engine # [Hyperdisk Balanced High Availability # Disk](https://cloud.google.com/compute/docs/disks/hd-types/hyperdisk-balanced-ha). # This is a high-availability block storage solution that offers a balance # between performance and cost for most general-purpose workloads. # @!attribute [rw] size_gb # @return [::Integer] # Optional. The GB capacity of a persistent home directory for each # workstation created with this configuration. Must be empty if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceHyperdiskBalancedHighAvailability#source_snapshot source_snapshot} # is set. # # Valid values are `10`, `50`, `100`, `200`, `500`, or `1000`. # Defaults to `200`. # @!attribute [rw] max_size_gb # @return [::Integer] # Optional. Maximum size in GB to which this persistent directory can be # resized. Defaults to unlimited if not set. # @!attribute [rw] source_snapshot # @return [::String] # Optional. Name of the snapshot to use as the source for the disk. If # set, # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceHyperdiskBalancedHighAvailability#size_gb size_gb} # must be empty. Must be formatted as ext4 file system with no # partitions. # @!attribute [rw] reclaim_policy # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceHyperdiskBalancedHighAvailability::ReclaimPolicy] # Optional. Whether the persistent disk should be deleted when the # workstation is deleted. Valid values are `DELETE` and `RETAIN`. # Defaults to `DELETE`. # @!attribute [rw] archive_timeout # @return [::Google::Protobuf::Duration] # Optional. Number of seconds to wait after initially creating or # subsequently shutting down the workstation before converting its disk # into a snapshot. This generally saves costs at the expense of greater # startup time on next workstation start, as the service will need to # create a disk from the archival snapshot. # # A value of `"0s"` indicates that the disk will never be archived. class GceHyperdiskBalancedHighAvailability include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # Value representing what should happen to the disk after the workstation # is deleted. module ReclaimPolicy # Do not use. RECLAIM_POLICY_UNSPECIFIED = 0 # Delete the persistent disk when deleting the workstation. DELETE = 1 # Keep the persistent disk when deleting the workstation. # An administrator must manually delete the disk. RETAIN = 2 end end end # An ephemeral directory which won't persist across workstation sessions. It # is freshly created on every workstation start operation. # @!attribute [rw] gce_pd # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk] # An EphemeralDirectory backed by a Compute Engine persistent disk. # @!attribute [rw] mount_path # @return [::String] # Required. Location of this directory in the running workstation. class EphemeralDirectory include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # An EphemeralDirectory is backed by a Compute Engine persistent disk. # @!attribute [rw] disk_type # @return [::String] # Optional. Type of the disk to use. Defaults to `"pd-standard"`. # @!attribute [rw] source_snapshot # @return [::String] # Optional. Name of the snapshot to use as the source for the disk. Must # be empty if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#source_image source_image} # is set. Must be empty if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#read_only read_only} # is false. Updating # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#source_snapshot source_snapshot} # will update content in the ephemeral directory after the workstation is # restarted. # # Only file systems supported by Container-Optimized OS (COS) # are explicitly supported. For a list of supported file systems, see # [the filesystems available in Container-Optimized # OS](https://cloud.google.com/container-optimized-os/docs/concepts/supported-filesystems). # # This field is mutable. # @!attribute [rw] source_image # @return [::String] # Optional. Name of the disk image to use as the source for the disk. # Must be empty if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#source_snapshot source_snapshot} # is set. Updating # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#source_image source_image} # will update content in the ephemeral directory after the workstation is # restarted. # # Only file systems supported by Container-Optimized OS (COS) # are explicitly supported. For a list of supported file systems, please # refer to the [COS # documentation](https://cloud.google.com/container-optimized-os/docs/concepts/supported-filesystems). # # This field is mutable. # @!attribute [rw] read_only # @return [::Boolean] # Optional. Whether the disk is read only. If true, the disk may be # shared by multiple VMs and # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#source_snapshot source_snapshot} # must be set. class GcePersistentDisk include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end end # A Docker container. # @!attribute [rw] image # @return [::String] # Optional. A Docker container image that defines a custom environment. # # Cloud Workstations provides a number of # [preconfigured # images](https://cloud.google.com/workstations/docs/preconfigured-base-images), # but you can create your own # [custom container # images](https://cloud.google.com/workstations/docs/custom-container-images). # If using a private image, the `host.gceInstance.serviceAccount` field # must be specified in the workstation configuration. # If using a custom container image, the service account must have # [Artifact Registry # Reader](https://cloud.google.com/artifact-registry/docs/access-control#roles) # permission to pull the specified image. Otherwise, the image must be # publicly accessible. # @!attribute [rw] command # @return [::Array<::String>] # Optional. If set, overrides the default ENTRYPOINT specified by the # image. # @!attribute [rw] args # @return [::Array<::String>] # Optional. Arguments passed to the entrypoint. # @!attribute [rw] env # @return [::Google::Protobuf::Map{::String => ::String}] # Optional. Environment variables passed to the container's entrypoint. # @!attribute [rw] working_dir # @return [::String] # Optional. If set, overrides the default DIR specified by the image. # @!attribute [rw] run_as_user # @return [::Integer] # Optional. If set, overrides the USER specified in the image with the # given uid. class Container include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class EnvEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end end # A customer-managed encryption key (CMEK) for the Compute Engine # resources of the associated workstation configuration. Specify the name of # your Cloud KMS encryption key and the default service account. # We recommend that you use a separate service account and follow # [Cloud KMS best # practices](https://cloud.google.com/kms/docs/separation-of-duties). # @!attribute [rw] kms_key # @return [::String] # Immutable. The name of the Google Cloud KMS encryption key. For example, # `"projects/PROJECT_ID/locations/REGION/keyRings/KEY_RING/cryptoKeys/KEY_NAME"`. # The key must be in the same region as the workstation configuration. # @!attribute [rw] kms_key_service_account # @return [::String] # Immutable. The service account to use with the specified # KMS key. We recommend that you use a separate service account # and follow KMS best practices. For more information, see # [Separation of # duties](https://cloud.google.com/kms/docs/separation-of-duties) and # `gcloud kms keys add-iam-policy-binding` # [`--member`](https://cloud.google.com/sdk/gcloud/reference/kms/keys/add-iam-policy-binding#--member). class CustomerEncryptionKey include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # A readiness check to be performed on a workstation. # @!attribute [rw] path # @return [::String] # Optional. Path to which the request should be sent. # @!attribute [rw] port # @return [::Integer] # Optional. Port to which the request should be sent. class ReadinessCheck include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # HTTP options for the running workstations. # @!attribute [rw] allowed_unauthenticated_cors_preflight_requests # @return [::Boolean] # Optional. By default, the workstations service makes sure that all # requests to the workstation are authenticated. CORS preflight requests do # not include cookies or custom headers, and so are considered # unauthenticated and blocked by the workstations service. Enabling this # option allows these unauthenticated CORS preflight requests through to # the workstation, where it becomes the responsibility of the destination # server in the workstation to validate the request. # @!attribute [rw] disable_localhost_replacement # @return [::Boolean] # Optional. By default, the workstations service replaces references to # localhost, 127.0.0.1, and 0.0.0.0 with the workstation's hostname in http # responses from the workstation so that applications under development run # properly on the workstation. This may intefere with some applications, # and so this option allows that behavior to be disabled. class HttpOptions include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # A PortRange defines a range of ports. Both # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PortRange#first first} # and # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PortRange#last last} # are inclusive. To specify a single port, both # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PortRange#first first} # and # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PortRange#last last} # should be the same. # @!attribute [rw] first # @return [::Integer] # Required. Starting port number for the current range of ports. # Valid ports are 22, 80, and ports within the range 1024-65535. # @!attribute [rw] last # @return [::Integer] # Required. Ending port number for the current range of ports. # Valid ports are 22, 80, and ports within the range 1024-65535. class PortRange include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class AnnotationsEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class LabelsEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end end |
#idle_timeout ⇒ ::Google::Protobuf::Duration
Returns Optional. Number of seconds to wait before automatically stopping a workstation after it last received user traffic.
A value of "0s" indicates that Cloud Workstations VMs created with this
configuration should never time out due to idleness.
Provide
duration
terminated by s for seconds—for example, "7200s" (2 hours).
The default is "1200s" (20 minutes).
420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 |
# File 'proto_docs/google/cloud/workstations/v1beta/workstations.rb', line 420 class WorkstationConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # Runtime host for a workstation. # @!attribute [rw] gce_instance # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance] # Specifies a Compute Engine instance as the host. class Host include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # A runtime using a Compute Engine instance. # @!attribute [rw] machine_type # @return [::String] # Optional. The type of machine to use for VM instances—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). # @!attribute [rw] service_account # @return [::String] # Optional. The email address of the service account for Cloud # Workstations VMs created with this configuration. When specified, be # sure that the service account has `logging.logEntries.create` and # `monitoring.timeSeries.create` permissions on the project so it can # write logs out to Cloud Logging. If using a custom container image, the # service account must have [Artifact Registry # Reader](https://cloud.google.com/artifact-registry/docs/access-control#roles) # permission to pull the specified image. # # If you as the administrator want to be able to `ssh` into the # underlying VM, you need to set this value to a service account # for which you have the `iam.serviceAccounts.actAs` permission. # Conversely, if you don't want anyone to be able to `ssh` into the # underlying VM, use a service account where no one has that # permission. # # If not set, VMs run with a service account provided by the # Cloud Workstations service, and the image must be publicly # accessible. # @!attribute [rw] service_account_scopes # @return [::Array<::String>] # Optional. Scopes to grant to the # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance#service_account service_account}. # When specified, users of workstations under this configuration must # have `iam.serviceAccounts.actAs` on the service account. # @!attribute [rw] tags # @return [::Array<::String>] # Optional. Network tags to add to the Compute Engine VMs backing the # workstations. This option applies # [network # tags](https://cloud.google.com/vpc/docs/add-remove-network-tags) to VMs # created with this configuration. These network tags enable the creation # of [firewall # rules](https://cloud.google.com/workstations/docs/configure-firewall-rules). # @!attribute [rw] pool_size # @return [::Integer] # Optional. The number of VMs that the system should keep idle so that # new workstations can be started quickly for new users. Defaults to `0` # in the API. # @!attribute [r] pooled_instances # @return [::Integer] # Output only. Number of instances currently available in the pool for # faster workstation startup. # @!attribute [rw] disable_public_ip_addresses # @return [::Boolean] # Optional. When set to true, disables public IP addresses for VMs. If # you disable public IP addresses, you must set up Private Google Access # or Cloud NAT on your network. If you use Private Google Access and you # use `private.googleapis.com` or `restricted.googleapis.com` for # Container Registry and Artifact Registry, make sure that you set # up DNS records for domains `*.gcr.io` and `*.pkg.dev`. # Defaults to false (VMs have public IP addresses). # @!attribute [rw] enable_nested_virtualization # @return [::Boolean] # Optional. Whether to enable nested virtualization on Cloud Workstations # VMs created using this workstation configuration. # # Defaults to false. # # Nested virtualization lets you run virtual machine (VM) instances # inside your workstation. Before enabling nested virtualization, # consider the following important considerations. Cloud Workstations # instances are subject to the [same restrictions as Compute Engine # instances](https://cloud.google.com/compute/docs/instances/nested-virtualization/overview#restrictions): # # * **Organization policy**: projects, folders, or # organizations may be restricted from creating nested VMs if the # **Disable VM nested virtualization** constraint is enforced in # the organization policy. For more information, see the # Compute Engine section, # [Checking whether nested virtualization is # allowed](https://cloud.google.com/compute/docs/instances/nested-virtualization/managing-constraint#checking_whether_nested_virtualization_is_allowed). # * **Performance**: nested VMs might experience a 10% or greater # decrease in performance for workloads that are CPU-bound and # possibly greater than a 10% decrease for workloads that are # input/output bound. # * **Machine Type**: nested virtualization can only be enabled on # workstation configurations that specify a # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance#machine_type machine_type} # in the N1 or N2 machine series. # @!attribute [rw] shielded_instance_config # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::GceShieldedInstanceConfig] # Optional. A set of Compute Engine Shielded instance options. # @!attribute [rw] confidential_instance_config # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::GceConfidentialInstanceConfig] # Optional. A set of Compute Engine Confidential VM instance options. # @!attribute [rw] boot_disk_size_gb # @return [::Integer] # Optional. The size of the boot disk for the VM in gigabytes (GB). # The minimum boot disk size is `30` GB. Defaults to `50` GB. # @!attribute [rw] accelerators # @return [::Array<::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::Accelerator>] # Optional. A list of the type and count of accelerator cards attached to # the instance. # @!attribute [rw] boost_configs # @return [::Array<::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::BoostConfig>] # Optional. A list of the boost configurations that workstations created # using this workstation configuration are allowed to use. If specified, # users will have the option to choose from the list of boost configs # when starting a workstation. # @!attribute [rw] disable_ssh # @return [::Boolean] # Optional. Whether to disable SSH access to the VM. # @!attribute [rw] vm_tags # @return [::Google::Protobuf::Map{::String => ::String}] # Optional. Resource manager tags to be bound to this instance. # Tag keys and values have the same definition as [resource manager # tags](https://cloud.google.com/resource-manager/docs/tags/tags-overview). # Keys must be in the format `tagKeys/{tag_key_id}`, and # values are in the format `tagValues/456`. # @!attribute [rw] reservation_affinity # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::ReservationAffinity] # Optional. # [ReservationAffinity](https://cloud.google.com/compute/docs/instances/reserving-zonal-resources) # specifies a reservation that can be consumed to create VM # instances. If SPECIFIC_RESERVATION is specified, Cloud Workstations # will only create VMs in the zone where the reservation is located. # This would affect availability since the service will no longer be # resilient to zonal outages. If ANY_RESERVATION is specified, creating # reservations in both zones that the config creates VMs in will ensure # higher availability. # **Important Considerations for Reservation Affinity:** # # * This feature is intended for advanced users and requires # familiarity with Google Compute Engine reservations. # * Using reservations incurs charges, regardless of utilization. # * The resources in the pool will consume the specified # reservation. Take this into account when setting the # pool size. # @!attribute [rw] startup_script_uri # @return [::String] # Optional. Link to the startup script stored in Cloud Storage. This # script will be run on the host workstation VM when the VM is created. # The URI must be of the form gs://\\{bucket-name}/\\{object-name}. If # specifying a startup script, the service account must have [Permission # to access the bucket and script file in Cloud # Storage](https://cloud.google.com/storage/docs/access-control/iam-permissions). # Otherwise, the script must be publicly accessible. # Note that the service regularly updates the OS version of the host VM, # and it is the responsibility of the user to ensure the script stays # compatible with the OS version. # @!attribute [rw] instance_metadata # @return [::Google::Protobuf::Map{::String => ::String}] # Optional. Custom metadata to apply to Compute Engine instances. class GceInstance include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # A set of Compute Engine Shielded instance options. # @!attribute [rw] enable_secure_boot # @return [::Boolean] # Optional. Whether the instance has Secure Boot enabled. # @!attribute [rw] enable_vtpm # @return [::Boolean] # Optional. Whether the instance has the vTPM enabled. # @!attribute [rw] enable_integrity_monitoring # @return [::Boolean] # Optional. Whether the instance has integrity monitoring enabled. class GceShieldedInstanceConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # A set of Compute Engine Confidential VM instance options. # @!attribute [rw] enable_confidential_compute # @return [::Boolean] # Optional. Whether the instance has confidential compute enabled. class GceConfidentialInstanceConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # An accelerator card attached to the instance. # @!attribute [rw] type # @return [::String] # Optional. Type of accelerator resource to attach to the instance, for # example, # `"nvidia-tesla-p100"`. # @!attribute [rw] count # @return [::Integer] # Optional. Number of accelerator cards exposed to the instance. class Accelerator include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # A boost configuration is a set of resources that a workstation can use # to increase its performance. If you specify a boost configuration, upon # startup, workstation users can choose to use a VM provisioned under the # boost config by passing the boost config ID in the start request. If # the workstation user does not provide a boost config ID in the start # request, the system will choose a VM from the pool provisioned under # the default config. # @!attribute [rw] id # @return [::String] # Required. The ID to be used for the boost configuration. # @!attribute [rw] machine_type # @return [::String] # Optional. 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`. # @!attribute [rw] accelerators # @return [::Array<::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::Accelerator>] # Optional. A list of the type and count of accelerator cards attached # to the boost instance. Defaults to `none`. # @!attribute [rw] boot_disk_size_gb # @return [::Integer] # Optional. The size of the boot disk for the VM in gigabytes (GB). # The minimum boot disk size is `30` GB. Defaults to `50` GB. # @!attribute [rw] enable_nested_virtualization # @return [::Boolean] # Optional. Whether to enable nested virtualization on boosted Cloud # Workstations VMs running using this boost configuration. # # Defaults to false. # # Nested virtualization lets you run virtual machine (VM) instances # inside your workstation. Before enabling nested virtualization, # consider the following important considerations. Cloud Workstations # instances are subject to the [same restrictions as Compute Engine # instances](https://cloud.google.com/compute/docs/instances/nested-virtualization/overview#restrictions): # # * **Organization policy**: projects, folders, or # organizations may be restricted from creating nested VMs if the # **Disable VM nested virtualization** constraint is enforced in # the organization policy. For more information, see the # Compute Engine section, # [Checking whether nested virtualization is # allowed](https://cloud.google.com/compute/docs/instances/nested-virtualization/managing-constraint#checking_whether_nested_virtualization_is_allowed). # * **Performance**: nested VMs might experience a 10% or greater # decrease in performance for workloads that are CPU-bound and # possibly greater than a 10% decrease for workloads that are # input/output bound. # * **Machine Type**: nested virtualization can only be enabled on # boost configurations that specify a # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::BoostConfig#machine_type machine_type} # in the N1 or N2 machine series. # @!attribute [rw] pool_size # @return [::Integer] # Optional. The number of boost VMs that the system should keep idle so # that workstations can be boosted quickly. Defaults to `0`. # @!attribute [rw] reservation_affinity # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::ReservationAffinity] # Optional. # [ReservationAffinity](https://cloud.google.com/compute/docs/instances/reserving-zonal-resources) # specifies a reservation that can be consumed to create boost VM # instances. If SPECIFIC_RESERVATION is specified, Cloud Workstations # will only create VMs in the zone where the reservation is located. # This would affect availability since the service will no longer be # resilient to zonal outages. If ANY_RESERVATION is specified, creating # reservations in both zones that the config creates VMs in will ensure # higher availability. # **Important Considerations for Reservation Affinity:** # # * This feature is intended for advanced users and requires # familiarity with Google Compute Engine reservations. # * Using reservations incurs charges, regardless of utilization. # * The resources in the pool will consume the specified # reservation. Take this into account when setting the # pool size. class BoostConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # ReservationAffinity is the configuration of the desired reservation # from which instances can consume resources. # @!attribute [rw] consume_reservation_type # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::ReservationAffinity::Type] # Optional. Corresponds to the type of reservation consumption. # @!attribute [rw] key # @return [::String] # Optional. Corresponds to the label key of reservation resource. # @!attribute [rw] values # @return [::Array<::String>] # Optional. Corresponds to the label values of reservation resources. # Valid values are either the name of a reservation in the same project # or "projects/\\{project}/reservations/\\{reservation}" to target a shared # reservation in the same zone but in a different project. class ReservationAffinity include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # Indicates whether to consume capacity from a reservation or not. module Type # Default value. This should not be used. TYPE_UNSPECIFIED = 0 # Do not consume from any reserved capacity. NO_RESERVATION = 1 # Consume any reservation available. ANY_RESERVATION = 2 # Must consume from a specific reservation. Must specify key value # fields for specifying the reservations. SPECIFIC_RESERVATION = 3 end end # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class VmTagsEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class InstanceMetadataEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end end end # A directory to persist across workstation sessions. Updates to this field # will not update existing workstations and will only take effect on new # workstations. # @!attribute [rw] gce_pd # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk] # A PersistentDirectory backed by a Compute Engine persistent disk. # # Note: The following fields are mutually exclusive: `gce_pd`, `gce_hd`. If a field in that set is populated, all other fields in the set will automatically be cleared. # @!attribute [rw] gce_hd # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceHyperdiskBalancedHighAvailability] # A PersistentDirectory backed by a Compute Engine hyperdisk high # availability disk. # # Note: The following fields are mutually exclusive: `gce_hd`, `gce_pd`. If a field in that set is populated, all other fields in the set will automatically be cleared. # @!attribute [rw] mount_path # @return [::String] # Optional. Location of this directory in the running workstation. class PersistentDirectory include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # A Persistent Directory backed by a Compute Engine regional persistent # disk. The # {::Google::Cloud::Workstations::V1beta::WorkstationConfig#persistent_directories persistent_directories} # field is repeated, but it may contain only one entry. It creates a # [persistent # disk](https://cloud.google.com/compute/docs/disks/persistent-disks) that # mounts to the workstation VM at `/home` when the session starts and # detaches when the session ends. If this field is empty, workstations # created with this configuration do not have a persistent home # directory. # @!attribute [rw] size_gb # @return [::Integer] # Optional. The GB capacity of a persistent home directory for each # workstation created with this configuration. Must be empty if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk#source_snapshot source_snapshot} # is set. # # Valid values are `10`, `50`, `100`, `200`, `500`, or `1000`. # Defaults to `200`. If less than `200` GB, the # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk#disk_type disk_type} # must be # `"pd-balanced"` or `"pd-ssd"`. # @!attribute [rw] max_size_gb # @return [::Integer] # Optional. Maximum size in GB to which this persistent directory can be # resized. Defaults to unlimited if not set. # @!attribute [rw] fs_type # @return [::String] # Optional. Type of file system that the disk should be formatted with. # The workstation image must support this file system type. Must be empty # if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk#source_snapshot source_snapshot} # is set. Defaults to `"ext4"`. # @!attribute [rw] disk_type # @return [::String] # Optional. The [type of the persistent # disk](https://cloud.google.com/compute/docs/disks#disk-types) for the # home directory. Defaults to `"pd-standard"`. # @!attribute [rw] source_snapshot # @return [::String] # Optional. Name of the snapshot to use as the source for the disk. If # set, # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk#size_gb size_gb} # and # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk#fs_type fs_type} # must be empty. Must be formatted as ext4 file system with no # partitions. # @!attribute [rw] reclaim_policy # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk::ReclaimPolicy] # Optional. Whether the persistent disk should be deleted when the # workstation is deleted. Valid values are `DELETE` and `RETAIN`. # Defaults to `DELETE`. # @!attribute [rw] archive_timeout # @return [::Google::Protobuf::Duration] # Optional. Number of seconds to wait after initially creating or # subsequently shutting down the workstation before converting its disk # into a snapshot. This generally saves costs at the expense of greater # startup time on next workstation start, as the service will need to # create a disk from the archival snapshot. # # A value of `"0s"` indicates that the disk will never be archived. class GceRegionalPersistentDisk include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # Value representing what should happen to the disk after the workstation # is deleted. module ReclaimPolicy # Do not use. RECLAIM_POLICY_UNSPECIFIED = 0 # Delete the persistent disk when deleting the workstation. DELETE = 1 # Keep the persistent disk when deleting the workstation. # An administrator must manually delete the disk. RETAIN = 2 end end # A Persistent Directory backed by a Compute Engine # [Hyperdisk Balanced High Availability # Disk](https://cloud.google.com/compute/docs/disks/hd-types/hyperdisk-balanced-ha). # This is a high-availability block storage solution that offers a balance # between performance and cost for most general-purpose workloads. # @!attribute [rw] size_gb # @return [::Integer] # Optional. The GB capacity of a persistent home directory for each # workstation created with this configuration. Must be empty if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceHyperdiskBalancedHighAvailability#source_snapshot source_snapshot} # is set. # # Valid values are `10`, `50`, `100`, `200`, `500`, or `1000`. # Defaults to `200`. # @!attribute [rw] max_size_gb # @return [::Integer] # Optional. Maximum size in GB to which this persistent directory can be # resized. Defaults to unlimited if not set. # @!attribute [rw] source_snapshot # @return [::String] # Optional. Name of the snapshot to use as the source for the disk. If # set, # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceHyperdiskBalancedHighAvailability#size_gb size_gb} # must be empty. Must be formatted as ext4 file system with no # partitions. # @!attribute [rw] reclaim_policy # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceHyperdiskBalancedHighAvailability::ReclaimPolicy] # Optional. Whether the persistent disk should be deleted when the # workstation is deleted. Valid values are `DELETE` and `RETAIN`. # Defaults to `DELETE`. # @!attribute [rw] archive_timeout # @return [::Google::Protobuf::Duration] # Optional. Number of seconds to wait after initially creating or # subsequently shutting down the workstation before converting its disk # into a snapshot. This generally saves costs at the expense of greater # startup time on next workstation start, as the service will need to # create a disk from the archival snapshot. # # A value of `"0s"` indicates that the disk will never be archived. class GceHyperdiskBalancedHighAvailability include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # Value representing what should happen to the disk after the workstation # is deleted. module ReclaimPolicy # Do not use. RECLAIM_POLICY_UNSPECIFIED = 0 # Delete the persistent disk when deleting the workstation. DELETE = 1 # Keep the persistent disk when deleting the workstation. # An administrator must manually delete the disk. RETAIN = 2 end end end # An ephemeral directory which won't persist across workstation sessions. It # is freshly created on every workstation start operation. # @!attribute [rw] gce_pd # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk] # An EphemeralDirectory backed by a Compute Engine persistent disk. # @!attribute [rw] mount_path # @return [::String] # Required. Location of this directory in the running workstation. class EphemeralDirectory include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # An EphemeralDirectory is backed by a Compute Engine persistent disk. # @!attribute [rw] disk_type # @return [::String] # Optional. Type of the disk to use. Defaults to `"pd-standard"`. # @!attribute [rw] source_snapshot # @return [::String] # Optional. Name of the snapshot to use as the source for the disk. Must # be empty if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#source_image source_image} # is set. Must be empty if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#read_only read_only} # is false. Updating # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#source_snapshot source_snapshot} # will update content in the ephemeral directory after the workstation is # restarted. # # Only file systems supported by Container-Optimized OS (COS) # are explicitly supported. For a list of supported file systems, see # [the filesystems available in Container-Optimized # OS](https://cloud.google.com/container-optimized-os/docs/concepts/supported-filesystems). # # This field is mutable. # @!attribute [rw] source_image # @return [::String] # Optional. Name of the disk image to use as the source for the disk. # Must be empty if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#source_snapshot source_snapshot} # is set. Updating # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#source_image source_image} # will update content in the ephemeral directory after the workstation is # restarted. # # Only file systems supported by Container-Optimized OS (COS) # are explicitly supported. For a list of supported file systems, please # refer to the [COS # documentation](https://cloud.google.com/container-optimized-os/docs/concepts/supported-filesystems). # # This field is mutable. # @!attribute [rw] read_only # @return [::Boolean] # Optional. Whether the disk is read only. If true, the disk may be # shared by multiple VMs and # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#source_snapshot source_snapshot} # must be set. class GcePersistentDisk include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end end # A Docker container. # @!attribute [rw] image # @return [::String] # Optional. A Docker container image that defines a custom environment. # # Cloud Workstations provides a number of # [preconfigured # images](https://cloud.google.com/workstations/docs/preconfigured-base-images), # but you can create your own # [custom container # images](https://cloud.google.com/workstations/docs/custom-container-images). # If using a private image, the `host.gceInstance.serviceAccount` field # must be specified in the workstation configuration. # If using a custom container image, the service account must have # [Artifact Registry # Reader](https://cloud.google.com/artifact-registry/docs/access-control#roles) # permission to pull the specified image. Otherwise, the image must be # publicly accessible. # @!attribute [rw] command # @return [::Array<::String>] # Optional. If set, overrides the default ENTRYPOINT specified by the # image. # @!attribute [rw] args # @return [::Array<::String>] # Optional. Arguments passed to the entrypoint. # @!attribute [rw] env # @return [::Google::Protobuf::Map{::String => ::String}] # Optional. Environment variables passed to the container's entrypoint. # @!attribute [rw] working_dir # @return [::String] # Optional. If set, overrides the default DIR specified by the image. # @!attribute [rw] run_as_user # @return [::Integer] # Optional. If set, overrides the USER specified in the image with the # given uid. class Container include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class EnvEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end end # A customer-managed encryption key (CMEK) for the Compute Engine # resources of the associated workstation configuration. Specify the name of # your Cloud KMS encryption key and the default service account. # We recommend that you use a separate service account and follow # [Cloud KMS best # practices](https://cloud.google.com/kms/docs/separation-of-duties). # @!attribute [rw] kms_key # @return [::String] # Immutable. The name of the Google Cloud KMS encryption key. For example, # `"projects/PROJECT_ID/locations/REGION/keyRings/KEY_RING/cryptoKeys/KEY_NAME"`. # The key must be in the same region as the workstation configuration. # @!attribute [rw] kms_key_service_account # @return [::String] # Immutable. The service account to use with the specified # KMS key. We recommend that you use a separate service account # and follow KMS best practices. For more information, see # [Separation of # duties](https://cloud.google.com/kms/docs/separation-of-duties) and # `gcloud kms keys add-iam-policy-binding` # [`--member`](https://cloud.google.com/sdk/gcloud/reference/kms/keys/add-iam-policy-binding#--member). class CustomerEncryptionKey include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # A readiness check to be performed on a workstation. # @!attribute [rw] path # @return [::String] # Optional. Path to which the request should be sent. # @!attribute [rw] port # @return [::Integer] # Optional. Port to which the request should be sent. class ReadinessCheck include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # HTTP options for the running workstations. # @!attribute [rw] allowed_unauthenticated_cors_preflight_requests # @return [::Boolean] # Optional. By default, the workstations service makes sure that all # requests to the workstation are authenticated. CORS preflight requests do # not include cookies or custom headers, and so are considered # unauthenticated and blocked by the workstations service. Enabling this # option allows these unauthenticated CORS preflight requests through to # the workstation, where it becomes the responsibility of the destination # server in the workstation to validate the request. # @!attribute [rw] disable_localhost_replacement # @return [::Boolean] # Optional. By default, the workstations service replaces references to # localhost, 127.0.0.1, and 0.0.0.0 with the workstation's hostname in http # responses from the workstation so that applications under development run # properly on the workstation. This may intefere with some applications, # and so this option allows that behavior to be disabled. class HttpOptions include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # A PortRange defines a range of ports. Both # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PortRange#first first} # and # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PortRange#last last} # are inclusive. To specify a single port, both # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PortRange#first first} # and # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PortRange#last last} # should be the same. # @!attribute [rw] first # @return [::Integer] # Required. Starting port number for the current range of ports. # Valid ports are 22, 80, and ports within the range 1024-65535. # @!attribute [rw] last # @return [::Integer] # Required. Ending port number for the current range of ports. # Valid ports are 22, 80, and ports within the range 1024-65535. class PortRange include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class AnnotationsEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class LabelsEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end end |
#labels ⇒ ::Google::Protobuf::Map{::String => ::String}
Returns Optional. Labels that are applied to the workstation configuration and that are also propagated to the underlying Compute Engine resources.
420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 |
# File 'proto_docs/google/cloud/workstations/v1beta/workstations.rb', line 420 class WorkstationConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # Runtime host for a workstation. # @!attribute [rw] gce_instance # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance] # Specifies a Compute Engine instance as the host. class Host include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # A runtime using a Compute Engine instance. # @!attribute [rw] machine_type # @return [::String] # Optional. The type of machine to use for VM instances—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). # @!attribute [rw] service_account # @return [::String] # Optional. The email address of the service account for Cloud # Workstations VMs created with this configuration. When specified, be # sure that the service account has `logging.logEntries.create` and # `monitoring.timeSeries.create` permissions on the project so it can # write logs out to Cloud Logging. If using a custom container image, the # service account must have [Artifact Registry # Reader](https://cloud.google.com/artifact-registry/docs/access-control#roles) # permission to pull the specified image. # # If you as the administrator want to be able to `ssh` into the # underlying VM, you need to set this value to a service account # for which you have the `iam.serviceAccounts.actAs` permission. # Conversely, if you don't want anyone to be able to `ssh` into the # underlying VM, use a service account where no one has that # permission. # # If not set, VMs run with a service account provided by the # Cloud Workstations service, and the image must be publicly # accessible. # @!attribute [rw] service_account_scopes # @return [::Array<::String>] # Optional. Scopes to grant to the # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance#service_account service_account}. # When specified, users of workstations under this configuration must # have `iam.serviceAccounts.actAs` on the service account. # @!attribute [rw] tags # @return [::Array<::String>] # Optional. Network tags to add to the Compute Engine VMs backing the # workstations. This option applies # [network # tags](https://cloud.google.com/vpc/docs/add-remove-network-tags) to VMs # created with this configuration. These network tags enable the creation # of [firewall # rules](https://cloud.google.com/workstations/docs/configure-firewall-rules). # @!attribute [rw] pool_size # @return [::Integer] # Optional. The number of VMs that the system should keep idle so that # new workstations can be started quickly for new users. Defaults to `0` # in the API. # @!attribute [r] pooled_instances # @return [::Integer] # Output only. Number of instances currently available in the pool for # faster workstation startup. # @!attribute [rw] disable_public_ip_addresses # @return [::Boolean] # Optional. When set to true, disables public IP addresses for VMs. If # you disable public IP addresses, you must set up Private Google Access # or Cloud NAT on your network. If you use Private Google Access and you # use `private.googleapis.com` or `restricted.googleapis.com` for # Container Registry and Artifact Registry, make sure that you set # up DNS records for domains `*.gcr.io` and `*.pkg.dev`. # Defaults to false (VMs have public IP addresses). # @!attribute [rw] enable_nested_virtualization # @return [::Boolean] # Optional. Whether to enable nested virtualization on Cloud Workstations # VMs created using this workstation configuration. # # Defaults to false. # # Nested virtualization lets you run virtual machine (VM) instances # inside your workstation. Before enabling nested virtualization, # consider the following important considerations. Cloud Workstations # instances are subject to the [same restrictions as Compute Engine # instances](https://cloud.google.com/compute/docs/instances/nested-virtualization/overview#restrictions): # # * **Organization policy**: projects, folders, or # organizations may be restricted from creating nested VMs if the # **Disable VM nested virtualization** constraint is enforced in # the organization policy. For more information, see the # Compute Engine section, # [Checking whether nested virtualization is # allowed](https://cloud.google.com/compute/docs/instances/nested-virtualization/managing-constraint#checking_whether_nested_virtualization_is_allowed). # * **Performance**: nested VMs might experience a 10% or greater # decrease in performance for workloads that are CPU-bound and # possibly greater than a 10% decrease for workloads that are # input/output bound. # * **Machine Type**: nested virtualization can only be enabled on # workstation configurations that specify a # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance#machine_type machine_type} # in the N1 or N2 machine series. # @!attribute [rw] shielded_instance_config # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::GceShieldedInstanceConfig] # Optional. A set of Compute Engine Shielded instance options. # @!attribute [rw] confidential_instance_config # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::GceConfidentialInstanceConfig] # Optional. A set of Compute Engine Confidential VM instance options. # @!attribute [rw] boot_disk_size_gb # @return [::Integer] # Optional. The size of the boot disk for the VM in gigabytes (GB). # The minimum boot disk size is `30` GB. Defaults to `50` GB. # @!attribute [rw] accelerators # @return [::Array<::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::Accelerator>] # Optional. A list of the type and count of accelerator cards attached to # the instance. # @!attribute [rw] boost_configs # @return [::Array<::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::BoostConfig>] # Optional. A list of the boost configurations that workstations created # using this workstation configuration are allowed to use. If specified, # users will have the option to choose from the list of boost configs # when starting a workstation. # @!attribute [rw] disable_ssh # @return [::Boolean] # Optional. Whether to disable SSH access to the VM. # @!attribute [rw] vm_tags # @return [::Google::Protobuf::Map{::String => ::String}] # Optional. Resource manager tags to be bound to this instance. # Tag keys and values have the same definition as [resource manager # tags](https://cloud.google.com/resource-manager/docs/tags/tags-overview). # Keys must be in the format `tagKeys/{tag_key_id}`, and # values are in the format `tagValues/456`. # @!attribute [rw] reservation_affinity # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::ReservationAffinity] # Optional. # [ReservationAffinity](https://cloud.google.com/compute/docs/instances/reserving-zonal-resources) # specifies a reservation that can be consumed to create VM # instances. If SPECIFIC_RESERVATION is specified, Cloud Workstations # will only create VMs in the zone where the reservation is located. # This would affect availability since the service will no longer be # resilient to zonal outages. If ANY_RESERVATION is specified, creating # reservations in both zones that the config creates VMs in will ensure # higher availability. # **Important Considerations for Reservation Affinity:** # # * This feature is intended for advanced users and requires # familiarity with Google Compute Engine reservations. # * Using reservations incurs charges, regardless of utilization. # * The resources in the pool will consume the specified # reservation. Take this into account when setting the # pool size. # @!attribute [rw] startup_script_uri # @return [::String] # Optional. Link to the startup script stored in Cloud Storage. This # script will be run on the host workstation VM when the VM is created. # The URI must be of the form gs://\\{bucket-name}/\\{object-name}. If # specifying a startup script, the service account must have [Permission # to access the bucket and script file in Cloud # Storage](https://cloud.google.com/storage/docs/access-control/iam-permissions). # Otherwise, the script must be publicly accessible. # Note that the service regularly updates the OS version of the host VM, # and it is the responsibility of the user to ensure the script stays # compatible with the OS version. # @!attribute [rw] instance_metadata # @return [::Google::Protobuf::Map{::String => ::String}] # Optional. Custom metadata to apply to Compute Engine instances. class GceInstance include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # A set of Compute Engine Shielded instance options. # @!attribute [rw] enable_secure_boot # @return [::Boolean] # Optional. Whether the instance has Secure Boot enabled. # @!attribute [rw] enable_vtpm # @return [::Boolean] # Optional. Whether the instance has the vTPM enabled. # @!attribute [rw] enable_integrity_monitoring # @return [::Boolean] # Optional. Whether the instance has integrity monitoring enabled. class GceShieldedInstanceConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # A set of Compute Engine Confidential VM instance options. # @!attribute [rw] enable_confidential_compute # @return [::Boolean] # Optional. Whether the instance has confidential compute enabled. class GceConfidentialInstanceConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # An accelerator card attached to the instance. # @!attribute [rw] type # @return [::String] # Optional. Type of accelerator resource to attach to the instance, for # example, # `"nvidia-tesla-p100"`. # @!attribute [rw] count # @return [::Integer] # Optional. Number of accelerator cards exposed to the instance. class Accelerator include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # A boost configuration is a set of resources that a workstation can use # to increase its performance. If you specify a boost configuration, upon # startup, workstation users can choose to use a VM provisioned under the # boost config by passing the boost config ID in the start request. If # the workstation user does not provide a boost config ID in the start # request, the system will choose a VM from the pool provisioned under # the default config. # @!attribute [rw] id # @return [::String] # Required. The ID to be used for the boost configuration. # @!attribute [rw] machine_type # @return [::String] # Optional. 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`. # @!attribute [rw] accelerators # @return [::Array<::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::Accelerator>] # Optional. A list of the type and count of accelerator cards attached # to the boost instance. Defaults to `none`. # @!attribute [rw] boot_disk_size_gb # @return [::Integer] # Optional. The size of the boot disk for the VM in gigabytes (GB). # The minimum boot disk size is `30` GB. Defaults to `50` GB. # @!attribute [rw] enable_nested_virtualization # @return [::Boolean] # Optional. Whether to enable nested virtualization on boosted Cloud # Workstations VMs running using this boost configuration. # # Defaults to false. # # Nested virtualization lets you run virtual machine (VM) instances # inside your workstation. Before enabling nested virtualization, # consider the following important considerations. Cloud Workstations # instances are subject to the [same restrictions as Compute Engine # instances](https://cloud.google.com/compute/docs/instances/nested-virtualization/overview#restrictions): # # * **Organization policy**: projects, folders, or # organizations may be restricted from creating nested VMs if the # **Disable VM nested virtualization** constraint is enforced in # the organization policy. For more information, see the # Compute Engine section, # [Checking whether nested virtualization is # allowed](https://cloud.google.com/compute/docs/instances/nested-virtualization/managing-constraint#checking_whether_nested_virtualization_is_allowed). # * **Performance**: nested VMs might experience a 10% or greater # decrease in performance for workloads that are CPU-bound and # possibly greater than a 10% decrease for workloads that are # input/output bound. # * **Machine Type**: nested virtualization can only be enabled on # boost configurations that specify a # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::BoostConfig#machine_type machine_type} # in the N1 or N2 machine series. # @!attribute [rw] pool_size # @return [::Integer] # Optional. The number of boost VMs that the system should keep idle so # that workstations can be boosted quickly. Defaults to `0`. # @!attribute [rw] reservation_affinity # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::ReservationAffinity] # Optional. # [ReservationAffinity](https://cloud.google.com/compute/docs/instances/reserving-zonal-resources) # specifies a reservation that can be consumed to create boost VM # instances. If SPECIFIC_RESERVATION is specified, Cloud Workstations # will only create VMs in the zone where the reservation is located. # This would affect availability since the service will no longer be # resilient to zonal outages. If ANY_RESERVATION is specified, creating # reservations in both zones that the config creates VMs in will ensure # higher availability. # **Important Considerations for Reservation Affinity:** # # * This feature is intended for advanced users and requires # familiarity with Google Compute Engine reservations. # * Using reservations incurs charges, regardless of utilization. # * The resources in the pool will consume the specified # reservation. Take this into account when setting the # pool size. class BoostConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # ReservationAffinity is the configuration of the desired reservation # from which instances can consume resources. # @!attribute [rw] consume_reservation_type # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::ReservationAffinity::Type] # Optional. Corresponds to the type of reservation consumption. # @!attribute [rw] key # @return [::String] # Optional. Corresponds to the label key of reservation resource. # @!attribute [rw] values # @return [::Array<::String>] # Optional. Corresponds to the label values of reservation resources. # Valid values are either the name of a reservation in the same project # or "projects/\\{project}/reservations/\\{reservation}" to target a shared # reservation in the same zone but in a different project. class ReservationAffinity include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # Indicates whether to consume capacity from a reservation or not. module Type # Default value. This should not be used. TYPE_UNSPECIFIED = 0 # Do not consume from any reserved capacity. NO_RESERVATION = 1 # Consume any reservation available. ANY_RESERVATION = 2 # Must consume from a specific reservation. Must specify key value # fields for specifying the reservations. SPECIFIC_RESERVATION = 3 end end # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class VmTagsEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class InstanceMetadataEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end end end # A directory to persist across workstation sessions. Updates to this field # will not update existing workstations and will only take effect on new # workstations. # @!attribute [rw] gce_pd # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk] # A PersistentDirectory backed by a Compute Engine persistent disk. # # Note: The following fields are mutually exclusive: `gce_pd`, `gce_hd`. If a field in that set is populated, all other fields in the set will automatically be cleared. # @!attribute [rw] gce_hd # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceHyperdiskBalancedHighAvailability] # A PersistentDirectory backed by a Compute Engine hyperdisk high # availability disk. # # Note: The following fields are mutually exclusive: `gce_hd`, `gce_pd`. If a field in that set is populated, all other fields in the set will automatically be cleared. # @!attribute [rw] mount_path # @return [::String] # Optional. Location of this directory in the running workstation. class PersistentDirectory include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # A Persistent Directory backed by a Compute Engine regional persistent # disk. The # {::Google::Cloud::Workstations::V1beta::WorkstationConfig#persistent_directories persistent_directories} # field is repeated, but it may contain only one entry. It creates a # [persistent # disk](https://cloud.google.com/compute/docs/disks/persistent-disks) that # mounts to the workstation VM at `/home` when the session starts and # detaches when the session ends. If this field is empty, workstations # created with this configuration do not have a persistent home # directory. # @!attribute [rw] size_gb # @return [::Integer] # Optional. The GB capacity of a persistent home directory for each # workstation created with this configuration. Must be empty if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk#source_snapshot source_snapshot} # is set. # # Valid values are `10`, `50`, `100`, `200`, `500`, or `1000`. # Defaults to `200`. If less than `200` GB, the # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk#disk_type disk_type} # must be # `"pd-balanced"` or `"pd-ssd"`. # @!attribute [rw] max_size_gb # @return [::Integer] # Optional. Maximum size in GB to which this persistent directory can be # resized. Defaults to unlimited if not set. # @!attribute [rw] fs_type # @return [::String] # Optional. Type of file system that the disk should be formatted with. # The workstation image must support this file system type. Must be empty # if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk#source_snapshot source_snapshot} # is set. Defaults to `"ext4"`. # @!attribute [rw] disk_type # @return [::String] # Optional. The [type of the persistent # disk](https://cloud.google.com/compute/docs/disks#disk-types) for the # home directory. Defaults to `"pd-standard"`. # @!attribute [rw] source_snapshot # @return [::String] # Optional. Name of the snapshot to use as the source for the disk. If # set, # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk#size_gb size_gb} # and # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk#fs_type fs_type} # must be empty. Must be formatted as ext4 file system with no # partitions. # @!attribute [rw] reclaim_policy # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk::ReclaimPolicy] # Optional. Whether the persistent disk should be deleted when the # workstation is deleted. Valid values are `DELETE` and `RETAIN`. # Defaults to `DELETE`. # @!attribute [rw] archive_timeout # @return [::Google::Protobuf::Duration] # Optional. Number of seconds to wait after initially creating or # subsequently shutting down the workstation before converting its disk # into a snapshot. This generally saves costs at the expense of greater # startup time on next workstation start, as the service will need to # create a disk from the archival snapshot. # # A value of `"0s"` indicates that the disk will never be archived. class GceRegionalPersistentDisk include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # Value representing what should happen to the disk after the workstation # is deleted. module ReclaimPolicy # Do not use. RECLAIM_POLICY_UNSPECIFIED = 0 # Delete the persistent disk when deleting the workstation. DELETE = 1 # Keep the persistent disk when deleting the workstation. # An administrator must manually delete the disk. RETAIN = 2 end end # A Persistent Directory backed by a Compute Engine # [Hyperdisk Balanced High Availability # Disk](https://cloud.google.com/compute/docs/disks/hd-types/hyperdisk-balanced-ha). # This is a high-availability block storage solution that offers a balance # between performance and cost for most general-purpose workloads. # @!attribute [rw] size_gb # @return [::Integer] # Optional. The GB capacity of a persistent home directory for each # workstation created with this configuration. Must be empty if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceHyperdiskBalancedHighAvailability#source_snapshot source_snapshot} # is set. # # Valid values are `10`, `50`, `100`, `200`, `500`, or `1000`. # Defaults to `200`. # @!attribute [rw] max_size_gb # @return [::Integer] # Optional. Maximum size in GB to which this persistent directory can be # resized. Defaults to unlimited if not set. # @!attribute [rw] source_snapshot # @return [::String] # Optional. Name of the snapshot to use as the source for the disk. If # set, # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceHyperdiskBalancedHighAvailability#size_gb size_gb} # must be empty. Must be formatted as ext4 file system with no # partitions. # @!attribute [rw] reclaim_policy # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceHyperdiskBalancedHighAvailability::ReclaimPolicy] # Optional. Whether the persistent disk should be deleted when the # workstation is deleted. Valid values are `DELETE` and `RETAIN`. # Defaults to `DELETE`. # @!attribute [rw] archive_timeout # @return [::Google::Protobuf::Duration] # Optional. Number of seconds to wait after initially creating or # subsequently shutting down the workstation before converting its disk # into a snapshot. This generally saves costs at the expense of greater # startup time on next workstation start, as the service will need to # create a disk from the archival snapshot. # # A value of `"0s"` indicates that the disk will never be archived. class GceHyperdiskBalancedHighAvailability include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # Value representing what should happen to the disk after the workstation # is deleted. module ReclaimPolicy # Do not use. RECLAIM_POLICY_UNSPECIFIED = 0 # Delete the persistent disk when deleting the workstation. DELETE = 1 # Keep the persistent disk when deleting the workstation. # An administrator must manually delete the disk. RETAIN = 2 end end end # An ephemeral directory which won't persist across workstation sessions. It # is freshly created on every workstation start operation. # @!attribute [rw] gce_pd # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk] # An EphemeralDirectory backed by a Compute Engine persistent disk. # @!attribute [rw] mount_path # @return [::String] # Required. Location of this directory in the running workstation. class EphemeralDirectory include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # An EphemeralDirectory is backed by a Compute Engine persistent disk. # @!attribute [rw] disk_type # @return [::String] # Optional. Type of the disk to use. Defaults to `"pd-standard"`. # @!attribute [rw] source_snapshot # @return [::String] # Optional. Name of the snapshot to use as the source for the disk. Must # be empty if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#source_image source_image} # is set. Must be empty if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#read_only read_only} # is false. Updating # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#source_snapshot source_snapshot} # will update content in the ephemeral directory after the workstation is # restarted. # # Only file systems supported by Container-Optimized OS (COS) # are explicitly supported. For a list of supported file systems, see # [the filesystems available in Container-Optimized # OS](https://cloud.google.com/container-optimized-os/docs/concepts/supported-filesystems). # # This field is mutable. # @!attribute [rw] source_image # @return [::String] # Optional. Name of the disk image to use as the source for the disk. # Must be empty if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#source_snapshot source_snapshot} # is set. Updating # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#source_image source_image} # will update content in the ephemeral directory after the workstation is # restarted. # # Only file systems supported by Container-Optimized OS (COS) # are explicitly supported. For a list of supported file systems, please # refer to the [COS # documentation](https://cloud.google.com/container-optimized-os/docs/concepts/supported-filesystems). # # This field is mutable. # @!attribute [rw] read_only # @return [::Boolean] # Optional. Whether the disk is read only. If true, the disk may be # shared by multiple VMs and # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#source_snapshot source_snapshot} # must be set. class GcePersistentDisk include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end end # A Docker container. # @!attribute [rw] image # @return [::String] # Optional. A Docker container image that defines a custom environment. # # Cloud Workstations provides a number of # [preconfigured # images](https://cloud.google.com/workstations/docs/preconfigured-base-images), # but you can create your own # [custom container # images](https://cloud.google.com/workstations/docs/custom-container-images). # If using a private image, the `host.gceInstance.serviceAccount` field # must be specified in the workstation configuration. # If using a custom container image, the service account must have # [Artifact Registry # Reader](https://cloud.google.com/artifact-registry/docs/access-control#roles) # permission to pull the specified image. Otherwise, the image must be # publicly accessible. # @!attribute [rw] command # @return [::Array<::String>] # Optional. If set, overrides the default ENTRYPOINT specified by the # image. # @!attribute [rw] args # @return [::Array<::String>] # Optional. Arguments passed to the entrypoint. # @!attribute [rw] env # @return [::Google::Protobuf::Map{::String => ::String}] # Optional. Environment variables passed to the container's entrypoint. # @!attribute [rw] working_dir # @return [::String] # Optional. If set, overrides the default DIR specified by the image. # @!attribute [rw] run_as_user # @return [::Integer] # Optional. If set, overrides the USER specified in the image with the # given uid. class Container include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class EnvEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end end # A customer-managed encryption key (CMEK) for the Compute Engine # resources of the associated workstation configuration. Specify the name of # your Cloud KMS encryption key and the default service account. # We recommend that you use a separate service account and follow # [Cloud KMS best # practices](https://cloud.google.com/kms/docs/separation-of-duties). # @!attribute [rw] kms_key # @return [::String] # Immutable. The name of the Google Cloud KMS encryption key. For example, # `"projects/PROJECT_ID/locations/REGION/keyRings/KEY_RING/cryptoKeys/KEY_NAME"`. # The key must be in the same region as the workstation configuration. # @!attribute [rw] kms_key_service_account # @return [::String] # Immutable. The service account to use with the specified # KMS key. We recommend that you use a separate service account # and follow KMS best practices. For more information, see # [Separation of # duties](https://cloud.google.com/kms/docs/separation-of-duties) and # `gcloud kms keys add-iam-policy-binding` # [`--member`](https://cloud.google.com/sdk/gcloud/reference/kms/keys/add-iam-policy-binding#--member). class CustomerEncryptionKey include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # A readiness check to be performed on a workstation. # @!attribute [rw] path # @return [::String] # Optional. Path to which the request should be sent. # @!attribute [rw] port # @return [::Integer] # Optional. Port to which the request should be sent. class ReadinessCheck include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # HTTP options for the running workstations. # @!attribute [rw] allowed_unauthenticated_cors_preflight_requests # @return [::Boolean] # Optional. By default, the workstations service makes sure that all # requests to the workstation are authenticated. CORS preflight requests do # not include cookies or custom headers, and so are considered # unauthenticated and blocked by the workstations service. Enabling this # option allows these unauthenticated CORS preflight requests through to # the workstation, where it becomes the responsibility of the destination # server in the workstation to validate the request. # @!attribute [rw] disable_localhost_replacement # @return [::Boolean] # Optional. By default, the workstations service replaces references to # localhost, 127.0.0.1, and 0.0.0.0 with the workstation's hostname in http # responses from the workstation so that applications under development run # properly on the workstation. This may intefere with some applications, # and so this option allows that behavior to be disabled. class HttpOptions include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # A PortRange defines a range of ports. Both # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PortRange#first first} # and # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PortRange#last last} # are inclusive. To specify a single port, both # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PortRange#first first} # and # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PortRange#last last} # should be the same. # @!attribute [rw] first # @return [::Integer] # Required. Starting port number for the current range of ports. # Valid ports are 22, 80, and ports within the range 1024-65535. # @!attribute [rw] last # @return [::Integer] # Required. Ending port number for the current range of ports. # Valid ports are 22, 80, and ports within the range 1024-65535. class PortRange include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class AnnotationsEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class LabelsEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end end |
#max_usable_workstations ⇒ ::Integer
Returns Optional. Maximum number of workstations under this configuration a user
can have workstations.workstation.use permission on.
Only enforced on CreateWorkstation API calls on the user issuing the API request. Can be overridden by:
- granting a user workstations.workstationConfigs.exemptMaxUsableWorkstationLimit permission, or
- having a user with that permission create a workstation and
granting another user
workstations.workstation.usepermission on that workstation.
If not specified, defaults to 0, which indicates unlimited.
420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 |
# File 'proto_docs/google/cloud/workstations/v1beta/workstations.rb', line 420 class WorkstationConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # Runtime host for a workstation. # @!attribute [rw] gce_instance # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance] # Specifies a Compute Engine instance as the host. class Host include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # A runtime using a Compute Engine instance. # @!attribute [rw] machine_type # @return [::String] # Optional. The type of machine to use for VM instances—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). # @!attribute [rw] service_account # @return [::String] # Optional. The email address of the service account for Cloud # Workstations VMs created with this configuration. When specified, be # sure that the service account has `logging.logEntries.create` and # `monitoring.timeSeries.create` permissions on the project so it can # write logs out to Cloud Logging. If using a custom container image, the # service account must have [Artifact Registry # Reader](https://cloud.google.com/artifact-registry/docs/access-control#roles) # permission to pull the specified image. # # If you as the administrator want to be able to `ssh` into the # underlying VM, you need to set this value to a service account # for which you have the `iam.serviceAccounts.actAs` permission. # Conversely, if you don't want anyone to be able to `ssh` into the # underlying VM, use a service account where no one has that # permission. # # If not set, VMs run with a service account provided by the # Cloud Workstations service, and the image must be publicly # accessible. # @!attribute [rw] service_account_scopes # @return [::Array<::String>] # Optional. Scopes to grant to the # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance#service_account service_account}. # When specified, users of workstations under this configuration must # have `iam.serviceAccounts.actAs` on the service account. # @!attribute [rw] tags # @return [::Array<::String>] # Optional. Network tags to add to the Compute Engine VMs backing the # workstations. This option applies # [network # tags](https://cloud.google.com/vpc/docs/add-remove-network-tags) to VMs # created with this configuration. These network tags enable the creation # of [firewall # rules](https://cloud.google.com/workstations/docs/configure-firewall-rules). # @!attribute [rw] pool_size # @return [::Integer] # Optional. The number of VMs that the system should keep idle so that # new workstations can be started quickly for new users. Defaults to `0` # in the API. # @!attribute [r] pooled_instances # @return [::Integer] # Output only. Number of instances currently available in the pool for # faster workstation startup. # @!attribute [rw] disable_public_ip_addresses # @return [::Boolean] # Optional. When set to true, disables public IP addresses for VMs. If # you disable public IP addresses, you must set up Private Google Access # or Cloud NAT on your network. If you use Private Google Access and you # use `private.googleapis.com` or `restricted.googleapis.com` for # Container Registry and Artifact Registry, make sure that you set # up DNS records for domains `*.gcr.io` and `*.pkg.dev`. # Defaults to false (VMs have public IP addresses). # @!attribute [rw] enable_nested_virtualization # @return [::Boolean] # Optional. Whether to enable nested virtualization on Cloud Workstations # VMs created using this workstation configuration. # # Defaults to false. # # Nested virtualization lets you run virtual machine (VM) instances # inside your workstation. Before enabling nested virtualization, # consider the following important considerations. Cloud Workstations # instances are subject to the [same restrictions as Compute Engine # instances](https://cloud.google.com/compute/docs/instances/nested-virtualization/overview#restrictions): # # * **Organization policy**: projects, folders, or # organizations may be restricted from creating nested VMs if the # **Disable VM nested virtualization** constraint is enforced in # the organization policy. For more information, see the # Compute Engine section, # [Checking whether nested virtualization is # allowed](https://cloud.google.com/compute/docs/instances/nested-virtualization/managing-constraint#checking_whether_nested_virtualization_is_allowed). # * **Performance**: nested VMs might experience a 10% or greater # decrease in performance for workloads that are CPU-bound and # possibly greater than a 10% decrease for workloads that are # input/output bound. # * **Machine Type**: nested virtualization can only be enabled on # workstation configurations that specify a # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance#machine_type machine_type} # in the N1 or N2 machine series. # @!attribute [rw] shielded_instance_config # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::GceShieldedInstanceConfig] # Optional. A set of Compute Engine Shielded instance options. # @!attribute [rw] confidential_instance_config # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::GceConfidentialInstanceConfig] # Optional. A set of Compute Engine Confidential VM instance options. # @!attribute [rw] boot_disk_size_gb # @return [::Integer] # Optional. The size of the boot disk for the VM in gigabytes (GB). # The minimum boot disk size is `30` GB. Defaults to `50` GB. # @!attribute [rw] accelerators # @return [::Array<::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::Accelerator>] # Optional. A list of the type and count of accelerator cards attached to # the instance. # @!attribute [rw] boost_configs # @return [::Array<::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::BoostConfig>] # Optional. A list of the boost configurations that workstations created # using this workstation configuration are allowed to use. If specified, # users will have the option to choose from the list of boost configs # when starting a workstation. # @!attribute [rw] disable_ssh # @return [::Boolean] # Optional. Whether to disable SSH access to the VM. # @!attribute [rw] vm_tags # @return [::Google::Protobuf::Map{::String => ::String}] # Optional. Resource manager tags to be bound to this instance. # Tag keys and values have the same definition as [resource manager # tags](https://cloud.google.com/resource-manager/docs/tags/tags-overview). # Keys must be in the format `tagKeys/{tag_key_id}`, and # values are in the format `tagValues/456`. # @!attribute [rw] reservation_affinity # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::ReservationAffinity] # Optional. # [ReservationAffinity](https://cloud.google.com/compute/docs/instances/reserving-zonal-resources) # specifies a reservation that can be consumed to create VM # instances. If SPECIFIC_RESERVATION is specified, Cloud Workstations # will only create VMs in the zone where the reservation is located. # This would affect availability since the service will no longer be # resilient to zonal outages. If ANY_RESERVATION is specified, creating # reservations in both zones that the config creates VMs in will ensure # higher availability. # **Important Considerations for Reservation Affinity:** # # * This feature is intended for advanced users and requires # familiarity with Google Compute Engine reservations. # * Using reservations incurs charges, regardless of utilization. # * The resources in the pool will consume the specified # reservation. Take this into account when setting the # pool size. # @!attribute [rw] startup_script_uri # @return [::String] # Optional. Link to the startup script stored in Cloud Storage. This # script will be run on the host workstation VM when the VM is created. # The URI must be of the form gs://\\{bucket-name}/\\{object-name}. If # specifying a startup script, the service account must have [Permission # to access the bucket and script file in Cloud # Storage](https://cloud.google.com/storage/docs/access-control/iam-permissions). # Otherwise, the script must be publicly accessible. # Note that the service regularly updates the OS version of the host VM, # and it is the responsibility of the user to ensure the script stays # compatible with the OS version. # @!attribute [rw] instance_metadata # @return [::Google::Protobuf::Map{::String => ::String}] # Optional. Custom metadata to apply to Compute Engine instances. class GceInstance include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # A set of Compute Engine Shielded instance options. # @!attribute [rw] enable_secure_boot # @return [::Boolean] # Optional. Whether the instance has Secure Boot enabled. # @!attribute [rw] enable_vtpm # @return [::Boolean] # Optional. Whether the instance has the vTPM enabled. # @!attribute [rw] enable_integrity_monitoring # @return [::Boolean] # Optional. Whether the instance has integrity monitoring enabled. class GceShieldedInstanceConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # A set of Compute Engine Confidential VM instance options. # @!attribute [rw] enable_confidential_compute # @return [::Boolean] # Optional. Whether the instance has confidential compute enabled. class GceConfidentialInstanceConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # An accelerator card attached to the instance. # @!attribute [rw] type # @return [::String] # Optional. Type of accelerator resource to attach to the instance, for # example, # `"nvidia-tesla-p100"`. # @!attribute [rw] count # @return [::Integer] # Optional. Number of accelerator cards exposed to the instance. class Accelerator include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # A boost configuration is a set of resources that a workstation can use # to increase its performance. If you specify a boost configuration, upon # startup, workstation users can choose to use a VM provisioned under the # boost config by passing the boost config ID in the start request. If # the workstation user does not provide a boost config ID in the start # request, the system will choose a VM from the pool provisioned under # the default config. # @!attribute [rw] id # @return [::String] # Required. The ID to be used for the boost configuration. # @!attribute [rw] machine_type # @return [::String] # Optional. 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`. # @!attribute [rw] accelerators # @return [::Array<::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::Accelerator>] # Optional. A list of the type and count of accelerator cards attached # to the boost instance. Defaults to `none`. # @!attribute [rw] boot_disk_size_gb # @return [::Integer] # Optional. The size of the boot disk for the VM in gigabytes (GB). # The minimum boot disk size is `30` GB. Defaults to `50` GB. # @!attribute [rw] enable_nested_virtualization # @return [::Boolean] # Optional. Whether to enable nested virtualization on boosted Cloud # Workstations VMs running using this boost configuration. # # Defaults to false. # # Nested virtualization lets you run virtual machine (VM) instances # inside your workstation. Before enabling nested virtualization, # consider the following important considerations. Cloud Workstations # instances are subject to the [same restrictions as Compute Engine # instances](https://cloud.google.com/compute/docs/instances/nested-virtualization/overview#restrictions): # # * **Organization policy**: projects, folders, or # organizations may be restricted from creating nested VMs if the # **Disable VM nested virtualization** constraint is enforced in # the organization policy. For more information, see the # Compute Engine section, # [Checking whether nested virtualization is # allowed](https://cloud.google.com/compute/docs/instances/nested-virtualization/managing-constraint#checking_whether_nested_virtualization_is_allowed). # * **Performance**: nested VMs might experience a 10% or greater # decrease in performance for workloads that are CPU-bound and # possibly greater than a 10% decrease for workloads that are # input/output bound. # * **Machine Type**: nested virtualization can only be enabled on # boost configurations that specify a # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::BoostConfig#machine_type machine_type} # in the N1 or N2 machine series. # @!attribute [rw] pool_size # @return [::Integer] # Optional. The number of boost VMs that the system should keep idle so # that workstations can be boosted quickly. Defaults to `0`. # @!attribute [rw] reservation_affinity # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::ReservationAffinity] # Optional. # [ReservationAffinity](https://cloud.google.com/compute/docs/instances/reserving-zonal-resources) # specifies a reservation that can be consumed to create boost VM # instances. If SPECIFIC_RESERVATION is specified, Cloud Workstations # will only create VMs in the zone where the reservation is located. # This would affect availability since the service will no longer be # resilient to zonal outages. If ANY_RESERVATION is specified, creating # reservations in both zones that the config creates VMs in will ensure # higher availability. # **Important Considerations for Reservation Affinity:** # # * This feature is intended for advanced users and requires # familiarity with Google Compute Engine reservations. # * Using reservations incurs charges, regardless of utilization. # * The resources in the pool will consume the specified # reservation. Take this into account when setting the # pool size. class BoostConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # ReservationAffinity is the configuration of the desired reservation # from which instances can consume resources. # @!attribute [rw] consume_reservation_type # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::ReservationAffinity::Type] # Optional. Corresponds to the type of reservation consumption. # @!attribute [rw] key # @return [::String] # Optional. Corresponds to the label key of reservation resource. # @!attribute [rw] values # @return [::Array<::String>] # Optional. Corresponds to the label values of reservation resources. # Valid values are either the name of a reservation in the same project # or "projects/\\{project}/reservations/\\{reservation}" to target a shared # reservation in the same zone but in a different project. class ReservationAffinity include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # Indicates whether to consume capacity from a reservation or not. module Type # Default value. This should not be used. TYPE_UNSPECIFIED = 0 # Do not consume from any reserved capacity. NO_RESERVATION = 1 # Consume any reservation available. ANY_RESERVATION = 2 # Must consume from a specific reservation. Must specify key value # fields for specifying the reservations. SPECIFIC_RESERVATION = 3 end end # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class VmTagsEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class InstanceMetadataEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end end end # A directory to persist across workstation sessions. Updates to this field # will not update existing workstations and will only take effect on new # workstations. # @!attribute [rw] gce_pd # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk] # A PersistentDirectory backed by a Compute Engine persistent disk. # # Note: The following fields are mutually exclusive: `gce_pd`, `gce_hd`. If a field in that set is populated, all other fields in the set will automatically be cleared. # @!attribute [rw] gce_hd # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceHyperdiskBalancedHighAvailability] # A PersistentDirectory backed by a Compute Engine hyperdisk high # availability disk. # # Note: The following fields are mutually exclusive: `gce_hd`, `gce_pd`. If a field in that set is populated, all other fields in the set will automatically be cleared. # @!attribute [rw] mount_path # @return [::String] # Optional. Location of this directory in the running workstation. class PersistentDirectory include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # A Persistent Directory backed by a Compute Engine regional persistent # disk. The # {::Google::Cloud::Workstations::V1beta::WorkstationConfig#persistent_directories persistent_directories} # field is repeated, but it may contain only one entry. It creates a # [persistent # disk](https://cloud.google.com/compute/docs/disks/persistent-disks) that # mounts to the workstation VM at `/home` when the session starts and # detaches when the session ends. If this field is empty, workstations # created with this configuration do not have a persistent home # directory. # @!attribute [rw] size_gb # @return [::Integer] # Optional. The GB capacity of a persistent home directory for each # workstation created with this configuration. Must be empty if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk#source_snapshot source_snapshot} # is set. # # Valid values are `10`, `50`, `100`, `200`, `500`, or `1000`. # Defaults to `200`. If less than `200` GB, the # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk#disk_type disk_type} # must be # `"pd-balanced"` or `"pd-ssd"`. # @!attribute [rw] max_size_gb # @return [::Integer] # Optional. Maximum size in GB to which this persistent directory can be # resized. Defaults to unlimited if not set. # @!attribute [rw] fs_type # @return [::String] # Optional. Type of file system that the disk should be formatted with. # The workstation image must support this file system type. Must be empty # if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk#source_snapshot source_snapshot} # is set. Defaults to `"ext4"`. # @!attribute [rw] disk_type # @return [::String] # Optional. The [type of the persistent # disk](https://cloud.google.com/compute/docs/disks#disk-types) for the # home directory. Defaults to `"pd-standard"`. # @!attribute [rw] source_snapshot # @return [::String] # Optional. Name of the snapshot to use as the source for the disk. If # set, # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk#size_gb size_gb} # and # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk#fs_type fs_type} # must be empty. Must be formatted as ext4 file system with no # partitions. # @!attribute [rw] reclaim_policy # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk::ReclaimPolicy] # Optional. Whether the persistent disk should be deleted when the # workstation is deleted. Valid values are `DELETE` and `RETAIN`. # Defaults to `DELETE`. # @!attribute [rw] archive_timeout # @return [::Google::Protobuf::Duration] # Optional. Number of seconds to wait after initially creating or # subsequently shutting down the workstation before converting its disk # into a snapshot. This generally saves costs at the expense of greater # startup time on next workstation start, as the service will need to # create a disk from the archival snapshot. # # A value of `"0s"` indicates that the disk will never be archived. class GceRegionalPersistentDisk include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # Value representing what should happen to the disk after the workstation # is deleted. module ReclaimPolicy # Do not use. RECLAIM_POLICY_UNSPECIFIED = 0 # Delete the persistent disk when deleting the workstation. DELETE = 1 # Keep the persistent disk when deleting the workstation. # An administrator must manually delete the disk. RETAIN = 2 end end # A Persistent Directory backed by a Compute Engine # [Hyperdisk Balanced High Availability # Disk](https://cloud.google.com/compute/docs/disks/hd-types/hyperdisk-balanced-ha). # This is a high-availability block storage solution that offers a balance # between performance and cost for most general-purpose workloads. # @!attribute [rw] size_gb # @return [::Integer] # Optional. The GB capacity of a persistent home directory for each # workstation created with this configuration. Must be empty if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceHyperdiskBalancedHighAvailability#source_snapshot source_snapshot} # is set. # # Valid values are `10`, `50`, `100`, `200`, `500`, or `1000`. # Defaults to `200`. # @!attribute [rw] max_size_gb # @return [::Integer] # Optional. Maximum size in GB to which this persistent directory can be # resized. Defaults to unlimited if not set. # @!attribute [rw] source_snapshot # @return [::String] # Optional. Name of the snapshot to use as the source for the disk. If # set, # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceHyperdiskBalancedHighAvailability#size_gb size_gb} # must be empty. Must be formatted as ext4 file system with no # partitions. # @!attribute [rw] reclaim_policy # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceHyperdiskBalancedHighAvailability::ReclaimPolicy] # Optional. Whether the persistent disk should be deleted when the # workstation is deleted. Valid values are `DELETE` and `RETAIN`. # Defaults to `DELETE`. # @!attribute [rw] archive_timeout # @return [::Google::Protobuf::Duration] # Optional. Number of seconds to wait after initially creating or # subsequently shutting down the workstation before converting its disk # into a snapshot. This generally saves costs at the expense of greater # startup time on next workstation start, as the service will need to # create a disk from the archival snapshot. # # A value of `"0s"` indicates that the disk will never be archived. class GceHyperdiskBalancedHighAvailability include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # Value representing what should happen to the disk after the workstation # is deleted. module ReclaimPolicy # Do not use. RECLAIM_POLICY_UNSPECIFIED = 0 # Delete the persistent disk when deleting the workstation. DELETE = 1 # Keep the persistent disk when deleting the workstation. # An administrator must manually delete the disk. RETAIN = 2 end end end # An ephemeral directory which won't persist across workstation sessions. It # is freshly created on every workstation start operation. # @!attribute [rw] gce_pd # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk] # An EphemeralDirectory backed by a Compute Engine persistent disk. # @!attribute [rw] mount_path # @return [::String] # Required. Location of this directory in the running workstation. class EphemeralDirectory include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # An EphemeralDirectory is backed by a Compute Engine persistent disk. # @!attribute [rw] disk_type # @return [::String] # Optional. Type of the disk to use. Defaults to `"pd-standard"`. # @!attribute [rw] source_snapshot # @return [::String] # Optional. Name of the snapshot to use as the source for the disk. Must # be empty if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#source_image source_image} # is set. Must be empty if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#read_only read_only} # is false. Updating # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#source_snapshot source_snapshot} # will update content in the ephemeral directory after the workstation is # restarted. # # Only file systems supported by Container-Optimized OS (COS) # are explicitly supported. For a list of supported file systems, see # [the filesystems available in Container-Optimized # OS](https://cloud.google.com/container-optimized-os/docs/concepts/supported-filesystems). # # This field is mutable. # @!attribute [rw] source_image # @return [::String] # Optional. Name of the disk image to use as the source for the disk. # Must be empty if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#source_snapshot source_snapshot} # is set. Updating # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#source_image source_image} # will update content in the ephemeral directory after the workstation is # restarted. # # Only file systems supported by Container-Optimized OS (COS) # are explicitly supported. For a list of supported file systems, please # refer to the [COS # documentation](https://cloud.google.com/container-optimized-os/docs/concepts/supported-filesystems). # # This field is mutable. # @!attribute [rw] read_only # @return [::Boolean] # Optional. Whether the disk is read only. If true, the disk may be # shared by multiple VMs and # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#source_snapshot source_snapshot} # must be set. class GcePersistentDisk include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end end # A Docker container. # @!attribute [rw] image # @return [::String] # Optional. A Docker container image that defines a custom environment. # # Cloud Workstations provides a number of # [preconfigured # images](https://cloud.google.com/workstations/docs/preconfigured-base-images), # but you can create your own # [custom container # images](https://cloud.google.com/workstations/docs/custom-container-images). # If using a private image, the `host.gceInstance.serviceAccount` field # must be specified in the workstation configuration. # If using a custom container image, the service account must have # [Artifact Registry # Reader](https://cloud.google.com/artifact-registry/docs/access-control#roles) # permission to pull the specified image. Otherwise, the image must be # publicly accessible. # @!attribute [rw] command # @return [::Array<::String>] # Optional. If set, overrides the default ENTRYPOINT specified by the # image. # @!attribute [rw] args # @return [::Array<::String>] # Optional. Arguments passed to the entrypoint. # @!attribute [rw] env # @return [::Google::Protobuf::Map{::String => ::String}] # Optional. Environment variables passed to the container's entrypoint. # @!attribute [rw] working_dir # @return [::String] # Optional. If set, overrides the default DIR specified by the image. # @!attribute [rw] run_as_user # @return [::Integer] # Optional. If set, overrides the USER specified in the image with the # given uid. class Container include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class EnvEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end end # A customer-managed encryption key (CMEK) for the Compute Engine # resources of the associated workstation configuration. Specify the name of # your Cloud KMS encryption key and the default service account. # We recommend that you use a separate service account and follow # [Cloud KMS best # practices](https://cloud.google.com/kms/docs/separation-of-duties). # @!attribute [rw] kms_key # @return [::String] # Immutable. The name of the Google Cloud KMS encryption key. For example, # `"projects/PROJECT_ID/locations/REGION/keyRings/KEY_RING/cryptoKeys/KEY_NAME"`. # The key must be in the same region as the workstation configuration. # @!attribute [rw] kms_key_service_account # @return [::String] # Immutable. The service account to use with the specified # KMS key. We recommend that you use a separate service account # and follow KMS best practices. For more information, see # [Separation of # duties](https://cloud.google.com/kms/docs/separation-of-duties) and # `gcloud kms keys add-iam-policy-binding` # [`--member`](https://cloud.google.com/sdk/gcloud/reference/kms/keys/add-iam-policy-binding#--member). class CustomerEncryptionKey include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # A readiness check to be performed on a workstation. # @!attribute [rw] path # @return [::String] # Optional. Path to which the request should be sent. # @!attribute [rw] port # @return [::Integer] # Optional. Port to which the request should be sent. class ReadinessCheck include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # HTTP options for the running workstations. # @!attribute [rw] allowed_unauthenticated_cors_preflight_requests # @return [::Boolean] # Optional. By default, the workstations service makes sure that all # requests to the workstation are authenticated. CORS preflight requests do # not include cookies or custom headers, and so are considered # unauthenticated and blocked by the workstations service. Enabling this # option allows these unauthenticated CORS preflight requests through to # the workstation, where it becomes the responsibility of the destination # server in the workstation to validate the request. # @!attribute [rw] disable_localhost_replacement # @return [::Boolean] # Optional. By default, the workstations service replaces references to # localhost, 127.0.0.1, and 0.0.0.0 with the workstation's hostname in http # responses from the workstation so that applications under development run # properly on the workstation. This may intefere with some applications, # and so this option allows that behavior to be disabled. class HttpOptions include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # A PortRange defines a range of ports. Both # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PortRange#first first} # and # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PortRange#last last} # are inclusive. To specify a single port, both # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PortRange#first first} # and # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PortRange#last last} # should be the same. # @!attribute [rw] first # @return [::Integer] # Required. Starting port number for the current range of ports. # Valid ports are 22, 80, and ports within the range 1024-65535. # @!attribute [rw] last # @return [::Integer] # Required. Ending port number for the current range of ports. # Valid ports are 22, 80, and ports within the range 1024-65535. class PortRange include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class AnnotationsEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class LabelsEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end end |
#name ⇒ ::String
Returns Identifier. Full name of this workstation configuration.
420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 |
# File 'proto_docs/google/cloud/workstations/v1beta/workstations.rb', line 420 class WorkstationConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # Runtime host for a workstation. # @!attribute [rw] gce_instance # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance] # Specifies a Compute Engine instance as the host. class Host include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # A runtime using a Compute Engine instance. # @!attribute [rw] machine_type # @return [::String] # Optional. The type of machine to use for VM instances—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). # @!attribute [rw] service_account # @return [::String] # Optional. The email address of the service account for Cloud # Workstations VMs created with this configuration. When specified, be # sure that the service account has `logging.logEntries.create` and # `monitoring.timeSeries.create` permissions on the project so it can # write logs out to Cloud Logging. If using a custom container image, the # service account must have [Artifact Registry # Reader](https://cloud.google.com/artifact-registry/docs/access-control#roles) # permission to pull the specified image. # # If you as the administrator want to be able to `ssh` into the # underlying VM, you need to set this value to a service account # for which you have the `iam.serviceAccounts.actAs` permission. # Conversely, if you don't want anyone to be able to `ssh` into the # underlying VM, use a service account where no one has that # permission. # # If not set, VMs run with a service account provided by the # Cloud Workstations service, and the image must be publicly # accessible. # @!attribute [rw] service_account_scopes # @return [::Array<::String>] # Optional. Scopes to grant to the # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance#service_account service_account}. # When specified, users of workstations under this configuration must # have `iam.serviceAccounts.actAs` on the service account. # @!attribute [rw] tags # @return [::Array<::String>] # Optional. Network tags to add to the Compute Engine VMs backing the # workstations. This option applies # [network # tags](https://cloud.google.com/vpc/docs/add-remove-network-tags) to VMs # created with this configuration. These network tags enable the creation # of [firewall # rules](https://cloud.google.com/workstations/docs/configure-firewall-rules). # @!attribute [rw] pool_size # @return [::Integer] # Optional. The number of VMs that the system should keep idle so that # new workstations can be started quickly for new users. Defaults to `0` # in the API. # @!attribute [r] pooled_instances # @return [::Integer] # Output only. Number of instances currently available in the pool for # faster workstation startup. # @!attribute [rw] disable_public_ip_addresses # @return [::Boolean] # Optional. When set to true, disables public IP addresses for VMs. If # you disable public IP addresses, you must set up Private Google Access # or Cloud NAT on your network. If you use Private Google Access and you # use `private.googleapis.com` or `restricted.googleapis.com` for # Container Registry and Artifact Registry, make sure that you set # up DNS records for domains `*.gcr.io` and `*.pkg.dev`. # Defaults to false (VMs have public IP addresses). # @!attribute [rw] enable_nested_virtualization # @return [::Boolean] # Optional. Whether to enable nested virtualization on Cloud Workstations # VMs created using this workstation configuration. # # Defaults to false. # # Nested virtualization lets you run virtual machine (VM) instances # inside your workstation. Before enabling nested virtualization, # consider the following important considerations. Cloud Workstations # instances are subject to the [same restrictions as Compute Engine # instances](https://cloud.google.com/compute/docs/instances/nested-virtualization/overview#restrictions): # # * **Organization policy**: projects, folders, or # organizations may be restricted from creating nested VMs if the # **Disable VM nested virtualization** constraint is enforced in # the organization policy. For more information, see the # Compute Engine section, # [Checking whether nested virtualization is # allowed](https://cloud.google.com/compute/docs/instances/nested-virtualization/managing-constraint#checking_whether_nested_virtualization_is_allowed). # * **Performance**: nested VMs might experience a 10% or greater # decrease in performance for workloads that are CPU-bound and # possibly greater than a 10% decrease for workloads that are # input/output bound. # * **Machine Type**: nested virtualization can only be enabled on # workstation configurations that specify a # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance#machine_type machine_type} # in the N1 or N2 machine series. # @!attribute [rw] shielded_instance_config # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::GceShieldedInstanceConfig] # Optional. A set of Compute Engine Shielded instance options. # @!attribute [rw] confidential_instance_config # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::GceConfidentialInstanceConfig] # Optional. A set of Compute Engine Confidential VM instance options. # @!attribute [rw] boot_disk_size_gb # @return [::Integer] # Optional. The size of the boot disk for the VM in gigabytes (GB). # The minimum boot disk size is `30` GB. Defaults to `50` GB. # @!attribute [rw] accelerators # @return [::Array<::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::Accelerator>] # Optional. A list of the type and count of accelerator cards attached to # the instance. # @!attribute [rw] boost_configs # @return [::Array<::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::BoostConfig>] # Optional. A list of the boost configurations that workstations created # using this workstation configuration are allowed to use. If specified, # users will have the option to choose from the list of boost configs # when starting a workstation. # @!attribute [rw] disable_ssh # @return [::Boolean] # Optional. Whether to disable SSH access to the VM. # @!attribute [rw] vm_tags # @return [::Google::Protobuf::Map{::String => ::String}] # Optional. Resource manager tags to be bound to this instance. # Tag keys and values have the same definition as [resource manager # tags](https://cloud.google.com/resource-manager/docs/tags/tags-overview). # Keys must be in the format `tagKeys/{tag_key_id}`, and # values are in the format `tagValues/456`. # @!attribute [rw] reservation_affinity # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::ReservationAffinity] # Optional. # [ReservationAffinity](https://cloud.google.com/compute/docs/instances/reserving-zonal-resources) # specifies a reservation that can be consumed to create VM # instances. If SPECIFIC_RESERVATION is specified, Cloud Workstations # will only create VMs in the zone where the reservation is located. # This would affect availability since the service will no longer be # resilient to zonal outages. If ANY_RESERVATION is specified, creating # reservations in both zones that the config creates VMs in will ensure # higher availability. # **Important Considerations for Reservation Affinity:** # # * This feature is intended for advanced users and requires # familiarity with Google Compute Engine reservations. # * Using reservations incurs charges, regardless of utilization. # * The resources in the pool will consume the specified # reservation. Take this into account when setting the # pool size. # @!attribute [rw] startup_script_uri # @return [::String] # Optional. Link to the startup script stored in Cloud Storage. This # script will be run on the host workstation VM when the VM is created. # The URI must be of the form gs://\\{bucket-name}/\\{object-name}. If # specifying a startup script, the service account must have [Permission # to access the bucket and script file in Cloud # Storage](https://cloud.google.com/storage/docs/access-control/iam-permissions). # Otherwise, the script must be publicly accessible. # Note that the service regularly updates the OS version of the host VM, # and it is the responsibility of the user to ensure the script stays # compatible with the OS version. # @!attribute [rw] instance_metadata # @return [::Google::Protobuf::Map{::String => ::String}] # Optional. Custom metadata to apply to Compute Engine instances. class GceInstance include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # A set of Compute Engine Shielded instance options. # @!attribute [rw] enable_secure_boot # @return [::Boolean] # Optional. Whether the instance has Secure Boot enabled. # @!attribute [rw] enable_vtpm # @return [::Boolean] # Optional. Whether the instance has the vTPM enabled. # @!attribute [rw] enable_integrity_monitoring # @return [::Boolean] # Optional. Whether the instance has integrity monitoring enabled. class GceShieldedInstanceConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # A set of Compute Engine Confidential VM instance options. # @!attribute [rw] enable_confidential_compute # @return [::Boolean] # Optional. Whether the instance has confidential compute enabled. class GceConfidentialInstanceConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # An accelerator card attached to the instance. # @!attribute [rw] type # @return [::String] # Optional. Type of accelerator resource to attach to the instance, for # example, # `"nvidia-tesla-p100"`. # @!attribute [rw] count # @return [::Integer] # Optional. Number of accelerator cards exposed to the instance. class Accelerator include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # A boost configuration is a set of resources that a workstation can use # to increase its performance. If you specify a boost configuration, upon # startup, workstation users can choose to use a VM provisioned under the # boost config by passing the boost config ID in the start request. If # the workstation user does not provide a boost config ID in the start # request, the system will choose a VM from the pool provisioned under # the default config. # @!attribute [rw] id # @return [::String] # Required. The ID to be used for the boost configuration. # @!attribute [rw] machine_type # @return [::String] # Optional. 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`. # @!attribute [rw] accelerators # @return [::Array<::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::Accelerator>] # Optional. A list of the type and count of accelerator cards attached # to the boost instance. Defaults to `none`. # @!attribute [rw] boot_disk_size_gb # @return [::Integer] # Optional. The size of the boot disk for the VM in gigabytes (GB). # The minimum boot disk size is `30` GB. Defaults to `50` GB. # @!attribute [rw] enable_nested_virtualization # @return [::Boolean] # Optional. Whether to enable nested virtualization on boosted Cloud # Workstations VMs running using this boost configuration. # # Defaults to false. # # Nested virtualization lets you run virtual machine (VM) instances # inside your workstation. Before enabling nested virtualization, # consider the following important considerations. Cloud Workstations # instances are subject to the [same restrictions as Compute Engine # instances](https://cloud.google.com/compute/docs/instances/nested-virtualization/overview#restrictions): # # * **Organization policy**: projects, folders, or # organizations may be restricted from creating nested VMs if the # **Disable VM nested virtualization** constraint is enforced in # the organization policy. For more information, see the # Compute Engine section, # [Checking whether nested virtualization is # allowed](https://cloud.google.com/compute/docs/instances/nested-virtualization/managing-constraint#checking_whether_nested_virtualization_is_allowed). # * **Performance**: nested VMs might experience a 10% or greater # decrease in performance for workloads that are CPU-bound and # possibly greater than a 10% decrease for workloads that are # input/output bound. # * **Machine Type**: nested virtualization can only be enabled on # boost configurations that specify a # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::BoostConfig#machine_type machine_type} # in the N1 or N2 machine series. # @!attribute [rw] pool_size # @return [::Integer] # Optional. The number of boost VMs that the system should keep idle so # that workstations can be boosted quickly. Defaults to `0`. # @!attribute [rw] reservation_affinity # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::ReservationAffinity] # Optional. # [ReservationAffinity](https://cloud.google.com/compute/docs/instances/reserving-zonal-resources) # specifies a reservation that can be consumed to create boost VM # instances. If SPECIFIC_RESERVATION is specified, Cloud Workstations # will only create VMs in the zone where the reservation is located. # This would affect availability since the service will no longer be # resilient to zonal outages. If ANY_RESERVATION is specified, creating # reservations in both zones that the config creates VMs in will ensure # higher availability. # **Important Considerations for Reservation Affinity:** # # * This feature is intended for advanced users and requires # familiarity with Google Compute Engine reservations. # * Using reservations incurs charges, regardless of utilization. # * The resources in the pool will consume the specified # reservation. Take this into account when setting the # pool size. class BoostConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # ReservationAffinity is the configuration of the desired reservation # from which instances can consume resources. # @!attribute [rw] consume_reservation_type # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::ReservationAffinity::Type] # Optional. Corresponds to the type of reservation consumption. # @!attribute [rw] key # @return [::String] # Optional. Corresponds to the label key of reservation resource. # @!attribute [rw] values # @return [::Array<::String>] # Optional. Corresponds to the label values of reservation resources. # Valid values are either the name of a reservation in the same project # or "projects/\\{project}/reservations/\\{reservation}" to target a shared # reservation in the same zone but in a different project. class ReservationAffinity include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # Indicates whether to consume capacity from a reservation or not. module Type # Default value. This should not be used. TYPE_UNSPECIFIED = 0 # Do not consume from any reserved capacity. NO_RESERVATION = 1 # Consume any reservation available. ANY_RESERVATION = 2 # Must consume from a specific reservation. Must specify key value # fields for specifying the reservations. SPECIFIC_RESERVATION = 3 end end # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class VmTagsEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class InstanceMetadataEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end end end # A directory to persist across workstation sessions. Updates to this field # will not update existing workstations and will only take effect on new # workstations. # @!attribute [rw] gce_pd # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk] # A PersistentDirectory backed by a Compute Engine persistent disk. # # Note: The following fields are mutually exclusive: `gce_pd`, `gce_hd`. If a field in that set is populated, all other fields in the set will automatically be cleared. # @!attribute [rw] gce_hd # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceHyperdiskBalancedHighAvailability] # A PersistentDirectory backed by a Compute Engine hyperdisk high # availability disk. # # Note: The following fields are mutually exclusive: `gce_hd`, `gce_pd`. If a field in that set is populated, all other fields in the set will automatically be cleared. # @!attribute [rw] mount_path # @return [::String] # Optional. Location of this directory in the running workstation. class PersistentDirectory include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # A Persistent Directory backed by a Compute Engine regional persistent # disk. The # {::Google::Cloud::Workstations::V1beta::WorkstationConfig#persistent_directories persistent_directories} # field is repeated, but it may contain only one entry. It creates a # [persistent # disk](https://cloud.google.com/compute/docs/disks/persistent-disks) that # mounts to the workstation VM at `/home` when the session starts and # detaches when the session ends. If this field is empty, workstations # created with this configuration do not have a persistent home # directory. # @!attribute [rw] size_gb # @return [::Integer] # Optional. The GB capacity of a persistent home directory for each # workstation created with this configuration. Must be empty if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk#source_snapshot source_snapshot} # is set. # # Valid values are `10`, `50`, `100`, `200`, `500`, or `1000`. # Defaults to `200`. If less than `200` GB, the # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk#disk_type disk_type} # must be # `"pd-balanced"` or `"pd-ssd"`. # @!attribute [rw] max_size_gb # @return [::Integer] # Optional. Maximum size in GB to which this persistent directory can be # resized. Defaults to unlimited if not set. # @!attribute [rw] fs_type # @return [::String] # Optional. Type of file system that the disk should be formatted with. # The workstation image must support this file system type. Must be empty # if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk#source_snapshot source_snapshot} # is set. Defaults to `"ext4"`. # @!attribute [rw] disk_type # @return [::String] # Optional. The [type of the persistent # disk](https://cloud.google.com/compute/docs/disks#disk-types) for the # home directory. Defaults to `"pd-standard"`. # @!attribute [rw] source_snapshot # @return [::String] # Optional. Name of the snapshot to use as the source for the disk. If # set, # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk#size_gb size_gb} # and # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk#fs_type fs_type} # must be empty. Must be formatted as ext4 file system with no # partitions. # @!attribute [rw] reclaim_policy # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk::ReclaimPolicy] # Optional. Whether the persistent disk should be deleted when the # workstation is deleted. Valid values are `DELETE` and `RETAIN`. # Defaults to `DELETE`. # @!attribute [rw] archive_timeout # @return [::Google::Protobuf::Duration] # Optional. Number of seconds to wait after initially creating or # subsequently shutting down the workstation before converting its disk # into a snapshot. This generally saves costs at the expense of greater # startup time on next workstation start, as the service will need to # create a disk from the archival snapshot. # # A value of `"0s"` indicates that the disk will never be archived. class GceRegionalPersistentDisk include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # Value representing what should happen to the disk after the workstation # is deleted. module ReclaimPolicy # Do not use. RECLAIM_POLICY_UNSPECIFIED = 0 # Delete the persistent disk when deleting the workstation. DELETE = 1 # Keep the persistent disk when deleting the workstation. # An administrator must manually delete the disk. RETAIN = 2 end end # A Persistent Directory backed by a Compute Engine # [Hyperdisk Balanced High Availability # Disk](https://cloud.google.com/compute/docs/disks/hd-types/hyperdisk-balanced-ha). # This is a high-availability block storage solution that offers a balance # between performance and cost for most general-purpose workloads. # @!attribute [rw] size_gb # @return [::Integer] # Optional. The GB capacity of a persistent home directory for each # workstation created with this configuration. Must be empty if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceHyperdiskBalancedHighAvailability#source_snapshot source_snapshot} # is set. # # Valid values are `10`, `50`, `100`, `200`, `500`, or `1000`. # Defaults to `200`. # @!attribute [rw] max_size_gb # @return [::Integer] # Optional. Maximum size in GB to which this persistent directory can be # resized. Defaults to unlimited if not set. # @!attribute [rw] source_snapshot # @return [::String] # Optional. Name of the snapshot to use as the source for the disk. If # set, # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceHyperdiskBalancedHighAvailability#size_gb size_gb} # must be empty. Must be formatted as ext4 file system with no # partitions. # @!attribute [rw] reclaim_policy # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceHyperdiskBalancedHighAvailability::ReclaimPolicy] # Optional. Whether the persistent disk should be deleted when the # workstation is deleted. Valid values are `DELETE` and `RETAIN`. # Defaults to `DELETE`. # @!attribute [rw] archive_timeout # @return [::Google::Protobuf::Duration] # Optional. Number of seconds to wait after initially creating or # subsequently shutting down the workstation before converting its disk # into a snapshot. This generally saves costs at the expense of greater # startup time on next workstation start, as the service will need to # create a disk from the archival snapshot. # # A value of `"0s"` indicates that the disk will never be archived. class GceHyperdiskBalancedHighAvailability include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # Value representing what should happen to the disk after the workstation # is deleted. module ReclaimPolicy # Do not use. RECLAIM_POLICY_UNSPECIFIED = 0 # Delete the persistent disk when deleting the workstation. DELETE = 1 # Keep the persistent disk when deleting the workstation. # An administrator must manually delete the disk. RETAIN = 2 end end end # An ephemeral directory which won't persist across workstation sessions. It # is freshly created on every workstation start operation. # @!attribute [rw] gce_pd # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk] # An EphemeralDirectory backed by a Compute Engine persistent disk. # @!attribute [rw] mount_path # @return [::String] # Required. Location of this directory in the running workstation. class EphemeralDirectory include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # An EphemeralDirectory is backed by a Compute Engine persistent disk. # @!attribute [rw] disk_type # @return [::String] # Optional. Type of the disk to use. Defaults to `"pd-standard"`. # @!attribute [rw] source_snapshot # @return [::String] # Optional. Name of the snapshot to use as the source for the disk. Must # be empty if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#source_image source_image} # is set. Must be empty if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#read_only read_only} # is false. Updating # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#source_snapshot source_snapshot} # will update content in the ephemeral directory after the workstation is # restarted. # # Only file systems supported by Container-Optimized OS (COS) # are explicitly supported. For a list of supported file systems, see # [the filesystems available in Container-Optimized # OS](https://cloud.google.com/container-optimized-os/docs/concepts/supported-filesystems). # # This field is mutable. # @!attribute [rw] source_image # @return [::String] # Optional. Name of the disk image to use as the source for the disk. # Must be empty if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#source_snapshot source_snapshot} # is set. Updating # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#source_image source_image} # will update content in the ephemeral directory after the workstation is # restarted. # # Only file systems supported by Container-Optimized OS (COS) # are explicitly supported. For a list of supported file systems, please # refer to the [COS # documentation](https://cloud.google.com/container-optimized-os/docs/concepts/supported-filesystems). # # This field is mutable. # @!attribute [rw] read_only # @return [::Boolean] # Optional. Whether the disk is read only. If true, the disk may be # shared by multiple VMs and # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#source_snapshot source_snapshot} # must be set. class GcePersistentDisk include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end end # A Docker container. # @!attribute [rw] image # @return [::String] # Optional. A Docker container image that defines a custom environment. # # Cloud Workstations provides a number of # [preconfigured # images](https://cloud.google.com/workstations/docs/preconfigured-base-images), # but you can create your own # [custom container # images](https://cloud.google.com/workstations/docs/custom-container-images). # If using a private image, the `host.gceInstance.serviceAccount` field # must be specified in the workstation configuration. # If using a custom container image, the service account must have # [Artifact Registry # Reader](https://cloud.google.com/artifact-registry/docs/access-control#roles) # permission to pull the specified image. Otherwise, the image must be # publicly accessible. # @!attribute [rw] command # @return [::Array<::String>] # Optional. If set, overrides the default ENTRYPOINT specified by the # image. # @!attribute [rw] args # @return [::Array<::String>] # Optional. Arguments passed to the entrypoint. # @!attribute [rw] env # @return [::Google::Protobuf::Map{::String => ::String}] # Optional. Environment variables passed to the container's entrypoint. # @!attribute [rw] working_dir # @return [::String] # Optional. If set, overrides the default DIR specified by the image. # @!attribute [rw] run_as_user # @return [::Integer] # Optional. If set, overrides the USER specified in the image with the # given uid. class Container include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class EnvEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end end # A customer-managed encryption key (CMEK) for the Compute Engine # resources of the associated workstation configuration. Specify the name of # your Cloud KMS encryption key and the default service account. # We recommend that you use a separate service account and follow # [Cloud KMS best # practices](https://cloud.google.com/kms/docs/separation-of-duties). # @!attribute [rw] kms_key # @return [::String] # Immutable. The name of the Google Cloud KMS encryption key. For example, # `"projects/PROJECT_ID/locations/REGION/keyRings/KEY_RING/cryptoKeys/KEY_NAME"`. # The key must be in the same region as the workstation configuration. # @!attribute [rw] kms_key_service_account # @return [::String] # Immutable. The service account to use with the specified # KMS key. We recommend that you use a separate service account # and follow KMS best practices. For more information, see # [Separation of # duties](https://cloud.google.com/kms/docs/separation-of-duties) and # `gcloud kms keys add-iam-policy-binding` # [`--member`](https://cloud.google.com/sdk/gcloud/reference/kms/keys/add-iam-policy-binding#--member). class CustomerEncryptionKey include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # A readiness check to be performed on a workstation. # @!attribute [rw] path # @return [::String] # Optional. Path to which the request should be sent. # @!attribute [rw] port # @return [::Integer] # Optional. Port to which the request should be sent. class ReadinessCheck include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # HTTP options for the running workstations. # @!attribute [rw] allowed_unauthenticated_cors_preflight_requests # @return [::Boolean] # Optional. By default, the workstations service makes sure that all # requests to the workstation are authenticated. CORS preflight requests do # not include cookies or custom headers, and so are considered # unauthenticated and blocked by the workstations service. Enabling this # option allows these unauthenticated CORS preflight requests through to # the workstation, where it becomes the responsibility of the destination # server in the workstation to validate the request. # @!attribute [rw] disable_localhost_replacement # @return [::Boolean] # Optional. By default, the workstations service replaces references to # localhost, 127.0.0.1, and 0.0.0.0 with the workstation's hostname in http # responses from the workstation so that applications under development run # properly on the workstation. This may intefere with some applications, # and so this option allows that behavior to be disabled. class HttpOptions include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # A PortRange defines a range of ports. Both # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PortRange#first first} # and # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PortRange#last last} # are inclusive. To specify a single port, both # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PortRange#first first} # and # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PortRange#last last} # should be the same. # @!attribute [rw] first # @return [::Integer] # Required. Starting port number for the current range of ports. # Valid ports are 22, 80, and ports within the range 1024-65535. # @!attribute [rw] last # @return [::Integer] # Required. Ending port number for the current range of ports. # Valid ports are 22, 80, and ports within the range 1024-65535. class PortRange include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class AnnotationsEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class LabelsEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end end |
#persistent_directories ⇒ ::Array<::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory>
Returns Optional. Directories to persist across workstation sessions.
420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 |
# File 'proto_docs/google/cloud/workstations/v1beta/workstations.rb', line 420 class WorkstationConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # Runtime host for a workstation. # @!attribute [rw] gce_instance # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance] # Specifies a Compute Engine instance as the host. class Host include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # A runtime using a Compute Engine instance. # @!attribute [rw] machine_type # @return [::String] # Optional. The type of machine to use for VM instances—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). # @!attribute [rw] service_account # @return [::String] # Optional. The email address of the service account for Cloud # Workstations VMs created with this configuration. When specified, be # sure that the service account has `logging.logEntries.create` and # `monitoring.timeSeries.create` permissions on the project so it can # write logs out to Cloud Logging. If using a custom container image, the # service account must have [Artifact Registry # Reader](https://cloud.google.com/artifact-registry/docs/access-control#roles) # permission to pull the specified image. # # If you as the administrator want to be able to `ssh` into the # underlying VM, you need to set this value to a service account # for which you have the `iam.serviceAccounts.actAs` permission. # Conversely, if you don't want anyone to be able to `ssh` into the # underlying VM, use a service account where no one has that # permission. # # If not set, VMs run with a service account provided by the # Cloud Workstations service, and the image must be publicly # accessible. # @!attribute [rw] service_account_scopes # @return [::Array<::String>] # Optional. Scopes to grant to the # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance#service_account service_account}. # When specified, users of workstations under this configuration must # have `iam.serviceAccounts.actAs` on the service account. # @!attribute [rw] tags # @return [::Array<::String>] # Optional. Network tags to add to the Compute Engine VMs backing the # workstations. This option applies # [network # tags](https://cloud.google.com/vpc/docs/add-remove-network-tags) to VMs # created with this configuration. These network tags enable the creation # of [firewall # rules](https://cloud.google.com/workstations/docs/configure-firewall-rules). # @!attribute [rw] pool_size # @return [::Integer] # Optional. The number of VMs that the system should keep idle so that # new workstations can be started quickly for new users. Defaults to `0` # in the API. # @!attribute [r] pooled_instances # @return [::Integer] # Output only. Number of instances currently available in the pool for # faster workstation startup. # @!attribute [rw] disable_public_ip_addresses # @return [::Boolean] # Optional. When set to true, disables public IP addresses for VMs. If # you disable public IP addresses, you must set up Private Google Access # or Cloud NAT on your network. If you use Private Google Access and you # use `private.googleapis.com` or `restricted.googleapis.com` for # Container Registry and Artifact Registry, make sure that you set # up DNS records for domains `*.gcr.io` and `*.pkg.dev`. # Defaults to false (VMs have public IP addresses). # @!attribute [rw] enable_nested_virtualization # @return [::Boolean] # Optional. Whether to enable nested virtualization on Cloud Workstations # VMs created using this workstation configuration. # # Defaults to false. # # Nested virtualization lets you run virtual machine (VM) instances # inside your workstation. Before enabling nested virtualization, # consider the following important considerations. Cloud Workstations # instances are subject to the [same restrictions as Compute Engine # instances](https://cloud.google.com/compute/docs/instances/nested-virtualization/overview#restrictions): # # * **Organization policy**: projects, folders, or # organizations may be restricted from creating nested VMs if the # **Disable VM nested virtualization** constraint is enforced in # the organization policy. For more information, see the # Compute Engine section, # [Checking whether nested virtualization is # allowed](https://cloud.google.com/compute/docs/instances/nested-virtualization/managing-constraint#checking_whether_nested_virtualization_is_allowed). # * **Performance**: nested VMs might experience a 10% or greater # decrease in performance for workloads that are CPU-bound and # possibly greater than a 10% decrease for workloads that are # input/output bound. # * **Machine Type**: nested virtualization can only be enabled on # workstation configurations that specify a # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance#machine_type machine_type} # in the N1 or N2 machine series. # @!attribute [rw] shielded_instance_config # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::GceShieldedInstanceConfig] # Optional. A set of Compute Engine Shielded instance options. # @!attribute [rw] confidential_instance_config # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::GceConfidentialInstanceConfig] # Optional. A set of Compute Engine Confidential VM instance options. # @!attribute [rw] boot_disk_size_gb # @return [::Integer] # Optional. The size of the boot disk for the VM in gigabytes (GB). # The minimum boot disk size is `30` GB. Defaults to `50` GB. # @!attribute [rw] accelerators # @return [::Array<::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::Accelerator>] # Optional. A list of the type and count of accelerator cards attached to # the instance. # @!attribute [rw] boost_configs # @return [::Array<::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::BoostConfig>] # Optional. A list of the boost configurations that workstations created # using this workstation configuration are allowed to use. If specified, # users will have the option to choose from the list of boost configs # when starting a workstation. # @!attribute [rw] disable_ssh # @return [::Boolean] # Optional. Whether to disable SSH access to the VM. # @!attribute [rw] vm_tags # @return [::Google::Protobuf::Map{::String => ::String}] # Optional. Resource manager tags to be bound to this instance. # Tag keys and values have the same definition as [resource manager # tags](https://cloud.google.com/resource-manager/docs/tags/tags-overview). # Keys must be in the format `tagKeys/{tag_key_id}`, and # values are in the format `tagValues/456`. # @!attribute [rw] reservation_affinity # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::ReservationAffinity] # Optional. # [ReservationAffinity](https://cloud.google.com/compute/docs/instances/reserving-zonal-resources) # specifies a reservation that can be consumed to create VM # instances. If SPECIFIC_RESERVATION is specified, Cloud Workstations # will only create VMs in the zone where the reservation is located. # This would affect availability since the service will no longer be # resilient to zonal outages. If ANY_RESERVATION is specified, creating # reservations in both zones that the config creates VMs in will ensure # higher availability. # **Important Considerations for Reservation Affinity:** # # * This feature is intended for advanced users and requires # familiarity with Google Compute Engine reservations. # * Using reservations incurs charges, regardless of utilization. # * The resources in the pool will consume the specified # reservation. Take this into account when setting the # pool size. # @!attribute [rw] startup_script_uri # @return [::String] # Optional. Link to the startup script stored in Cloud Storage. This # script will be run on the host workstation VM when the VM is created. # The URI must be of the form gs://\\{bucket-name}/\\{object-name}. If # specifying a startup script, the service account must have [Permission # to access the bucket and script file in Cloud # Storage](https://cloud.google.com/storage/docs/access-control/iam-permissions). # Otherwise, the script must be publicly accessible. # Note that the service regularly updates the OS version of the host VM, # and it is the responsibility of the user to ensure the script stays # compatible with the OS version. # @!attribute [rw] instance_metadata # @return [::Google::Protobuf::Map{::String => ::String}] # Optional. Custom metadata to apply to Compute Engine instances. class GceInstance include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # A set of Compute Engine Shielded instance options. # @!attribute [rw] enable_secure_boot # @return [::Boolean] # Optional. Whether the instance has Secure Boot enabled. # @!attribute [rw] enable_vtpm # @return [::Boolean] # Optional. Whether the instance has the vTPM enabled. # @!attribute [rw] enable_integrity_monitoring # @return [::Boolean] # Optional. Whether the instance has integrity monitoring enabled. class GceShieldedInstanceConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # A set of Compute Engine Confidential VM instance options. # @!attribute [rw] enable_confidential_compute # @return [::Boolean] # Optional. Whether the instance has confidential compute enabled. class GceConfidentialInstanceConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # An accelerator card attached to the instance. # @!attribute [rw] type # @return [::String] # Optional. Type of accelerator resource to attach to the instance, for # example, # `"nvidia-tesla-p100"`. # @!attribute [rw] count # @return [::Integer] # Optional. Number of accelerator cards exposed to the instance. class Accelerator include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # A boost configuration is a set of resources that a workstation can use # to increase its performance. If you specify a boost configuration, upon # startup, workstation users can choose to use a VM provisioned under the # boost config by passing the boost config ID in the start request. If # the workstation user does not provide a boost config ID in the start # request, the system will choose a VM from the pool provisioned under # the default config. # @!attribute [rw] id # @return [::String] # Required. The ID to be used for the boost configuration. # @!attribute [rw] machine_type # @return [::String] # Optional. 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`. # @!attribute [rw] accelerators # @return [::Array<::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::Accelerator>] # Optional. A list of the type and count of accelerator cards attached # to the boost instance. Defaults to `none`. # @!attribute [rw] boot_disk_size_gb # @return [::Integer] # Optional. The size of the boot disk for the VM in gigabytes (GB). # The minimum boot disk size is `30` GB. Defaults to `50` GB. # @!attribute [rw] enable_nested_virtualization # @return [::Boolean] # Optional. Whether to enable nested virtualization on boosted Cloud # Workstations VMs running using this boost configuration. # # Defaults to false. # # Nested virtualization lets you run virtual machine (VM) instances # inside your workstation. Before enabling nested virtualization, # consider the following important considerations. Cloud Workstations # instances are subject to the [same restrictions as Compute Engine # instances](https://cloud.google.com/compute/docs/instances/nested-virtualization/overview#restrictions): # # * **Organization policy**: projects, folders, or # organizations may be restricted from creating nested VMs if the # **Disable VM nested virtualization** constraint is enforced in # the organization policy. For more information, see the # Compute Engine section, # [Checking whether nested virtualization is # allowed](https://cloud.google.com/compute/docs/instances/nested-virtualization/managing-constraint#checking_whether_nested_virtualization_is_allowed). # * **Performance**: nested VMs might experience a 10% or greater # decrease in performance for workloads that are CPU-bound and # possibly greater than a 10% decrease for workloads that are # input/output bound. # * **Machine Type**: nested virtualization can only be enabled on # boost configurations that specify a # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::BoostConfig#machine_type machine_type} # in the N1 or N2 machine series. # @!attribute [rw] pool_size # @return [::Integer] # Optional. The number of boost VMs that the system should keep idle so # that workstations can be boosted quickly. Defaults to `0`. # @!attribute [rw] reservation_affinity # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::ReservationAffinity] # Optional. # [ReservationAffinity](https://cloud.google.com/compute/docs/instances/reserving-zonal-resources) # specifies a reservation that can be consumed to create boost VM # instances. If SPECIFIC_RESERVATION is specified, Cloud Workstations # will only create VMs in the zone where the reservation is located. # This would affect availability since the service will no longer be # resilient to zonal outages. If ANY_RESERVATION is specified, creating # reservations in both zones that the config creates VMs in will ensure # higher availability. # **Important Considerations for Reservation Affinity:** # # * This feature is intended for advanced users and requires # familiarity with Google Compute Engine reservations. # * Using reservations incurs charges, regardless of utilization. # * The resources in the pool will consume the specified # reservation. Take this into account when setting the # pool size. class BoostConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # ReservationAffinity is the configuration of the desired reservation # from which instances can consume resources. # @!attribute [rw] consume_reservation_type # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::ReservationAffinity::Type] # Optional. Corresponds to the type of reservation consumption. # @!attribute [rw] key # @return [::String] # Optional. Corresponds to the label key of reservation resource. # @!attribute [rw] values # @return [::Array<::String>] # Optional. Corresponds to the label values of reservation resources. # Valid values are either the name of a reservation in the same project # or "projects/\\{project}/reservations/\\{reservation}" to target a shared # reservation in the same zone but in a different project. class ReservationAffinity include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # Indicates whether to consume capacity from a reservation or not. module Type # Default value. This should not be used. TYPE_UNSPECIFIED = 0 # Do not consume from any reserved capacity. NO_RESERVATION = 1 # Consume any reservation available. ANY_RESERVATION = 2 # Must consume from a specific reservation. Must specify key value # fields for specifying the reservations. SPECIFIC_RESERVATION = 3 end end # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class VmTagsEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class InstanceMetadataEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end end end # A directory to persist across workstation sessions. Updates to this field # will not update existing workstations and will only take effect on new # workstations. # @!attribute [rw] gce_pd # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk] # A PersistentDirectory backed by a Compute Engine persistent disk. # # Note: The following fields are mutually exclusive: `gce_pd`, `gce_hd`. If a field in that set is populated, all other fields in the set will automatically be cleared. # @!attribute [rw] gce_hd # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceHyperdiskBalancedHighAvailability] # A PersistentDirectory backed by a Compute Engine hyperdisk high # availability disk. # # Note: The following fields are mutually exclusive: `gce_hd`, `gce_pd`. If a field in that set is populated, all other fields in the set will automatically be cleared. # @!attribute [rw] mount_path # @return [::String] # Optional. Location of this directory in the running workstation. class PersistentDirectory include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # A Persistent Directory backed by a Compute Engine regional persistent # disk. The # {::Google::Cloud::Workstations::V1beta::WorkstationConfig#persistent_directories persistent_directories} # field is repeated, but it may contain only one entry. It creates a # [persistent # disk](https://cloud.google.com/compute/docs/disks/persistent-disks) that # mounts to the workstation VM at `/home` when the session starts and # detaches when the session ends. If this field is empty, workstations # created with this configuration do not have a persistent home # directory. # @!attribute [rw] size_gb # @return [::Integer] # Optional. The GB capacity of a persistent home directory for each # workstation created with this configuration. Must be empty if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk#source_snapshot source_snapshot} # is set. # # Valid values are `10`, `50`, `100`, `200`, `500`, or `1000`. # Defaults to `200`. If less than `200` GB, the # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk#disk_type disk_type} # must be # `"pd-balanced"` or `"pd-ssd"`. # @!attribute [rw] max_size_gb # @return [::Integer] # Optional. Maximum size in GB to which this persistent directory can be # resized. Defaults to unlimited if not set. # @!attribute [rw] fs_type # @return [::String] # Optional. Type of file system that the disk should be formatted with. # The workstation image must support this file system type. Must be empty # if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk#source_snapshot source_snapshot} # is set. Defaults to `"ext4"`. # @!attribute [rw] disk_type # @return [::String] # Optional. The [type of the persistent # disk](https://cloud.google.com/compute/docs/disks#disk-types) for the # home directory. Defaults to `"pd-standard"`. # @!attribute [rw] source_snapshot # @return [::String] # Optional. Name of the snapshot to use as the source for the disk. If # set, # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk#size_gb size_gb} # and # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk#fs_type fs_type} # must be empty. Must be formatted as ext4 file system with no # partitions. # @!attribute [rw] reclaim_policy # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk::ReclaimPolicy] # Optional. Whether the persistent disk should be deleted when the # workstation is deleted. Valid values are `DELETE` and `RETAIN`. # Defaults to `DELETE`. # @!attribute [rw] archive_timeout # @return [::Google::Protobuf::Duration] # Optional. Number of seconds to wait after initially creating or # subsequently shutting down the workstation before converting its disk # into a snapshot. This generally saves costs at the expense of greater # startup time on next workstation start, as the service will need to # create a disk from the archival snapshot. # # A value of `"0s"` indicates that the disk will never be archived. class GceRegionalPersistentDisk include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # Value representing what should happen to the disk after the workstation # is deleted. module ReclaimPolicy # Do not use. RECLAIM_POLICY_UNSPECIFIED = 0 # Delete the persistent disk when deleting the workstation. DELETE = 1 # Keep the persistent disk when deleting the workstation. # An administrator must manually delete the disk. RETAIN = 2 end end # A Persistent Directory backed by a Compute Engine # [Hyperdisk Balanced High Availability # Disk](https://cloud.google.com/compute/docs/disks/hd-types/hyperdisk-balanced-ha). # This is a high-availability block storage solution that offers a balance # between performance and cost for most general-purpose workloads. # @!attribute [rw] size_gb # @return [::Integer] # Optional. The GB capacity of a persistent home directory for each # workstation created with this configuration. Must be empty if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceHyperdiskBalancedHighAvailability#source_snapshot source_snapshot} # is set. # # Valid values are `10`, `50`, `100`, `200`, `500`, or `1000`. # Defaults to `200`. # @!attribute [rw] max_size_gb # @return [::Integer] # Optional. Maximum size in GB to which this persistent directory can be # resized. Defaults to unlimited if not set. # @!attribute [rw] source_snapshot # @return [::String] # Optional. Name of the snapshot to use as the source for the disk. If # set, # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceHyperdiskBalancedHighAvailability#size_gb size_gb} # must be empty. Must be formatted as ext4 file system with no # partitions. # @!attribute [rw] reclaim_policy # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceHyperdiskBalancedHighAvailability::ReclaimPolicy] # Optional. Whether the persistent disk should be deleted when the # workstation is deleted. Valid values are `DELETE` and `RETAIN`. # Defaults to `DELETE`. # @!attribute [rw] archive_timeout # @return [::Google::Protobuf::Duration] # Optional. Number of seconds to wait after initially creating or # subsequently shutting down the workstation before converting its disk # into a snapshot. This generally saves costs at the expense of greater # startup time on next workstation start, as the service will need to # create a disk from the archival snapshot. # # A value of `"0s"` indicates that the disk will never be archived. class GceHyperdiskBalancedHighAvailability include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # Value representing what should happen to the disk after the workstation # is deleted. module ReclaimPolicy # Do not use. RECLAIM_POLICY_UNSPECIFIED = 0 # Delete the persistent disk when deleting the workstation. DELETE = 1 # Keep the persistent disk when deleting the workstation. # An administrator must manually delete the disk. RETAIN = 2 end end end # An ephemeral directory which won't persist across workstation sessions. It # is freshly created on every workstation start operation. # @!attribute [rw] gce_pd # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk] # An EphemeralDirectory backed by a Compute Engine persistent disk. # @!attribute [rw] mount_path # @return [::String] # Required. Location of this directory in the running workstation. class EphemeralDirectory include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # An EphemeralDirectory is backed by a Compute Engine persistent disk. # @!attribute [rw] disk_type # @return [::String] # Optional. Type of the disk to use. Defaults to `"pd-standard"`. # @!attribute [rw] source_snapshot # @return [::String] # Optional. Name of the snapshot to use as the source for the disk. Must # be empty if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#source_image source_image} # is set. Must be empty if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#read_only read_only} # is false. Updating # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#source_snapshot source_snapshot} # will update content in the ephemeral directory after the workstation is # restarted. # # Only file systems supported by Container-Optimized OS (COS) # are explicitly supported. For a list of supported file systems, see # [the filesystems available in Container-Optimized # OS](https://cloud.google.com/container-optimized-os/docs/concepts/supported-filesystems). # # This field is mutable. # @!attribute [rw] source_image # @return [::String] # Optional. Name of the disk image to use as the source for the disk. # Must be empty if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#source_snapshot source_snapshot} # is set. Updating # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#source_image source_image} # will update content in the ephemeral directory after the workstation is # restarted. # # Only file systems supported by Container-Optimized OS (COS) # are explicitly supported. For a list of supported file systems, please # refer to the [COS # documentation](https://cloud.google.com/container-optimized-os/docs/concepts/supported-filesystems). # # This field is mutable. # @!attribute [rw] read_only # @return [::Boolean] # Optional. Whether the disk is read only. If true, the disk may be # shared by multiple VMs and # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#source_snapshot source_snapshot} # must be set. class GcePersistentDisk include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end end # A Docker container. # @!attribute [rw] image # @return [::String] # Optional. A Docker container image that defines a custom environment. # # Cloud Workstations provides a number of # [preconfigured # images](https://cloud.google.com/workstations/docs/preconfigured-base-images), # but you can create your own # [custom container # images](https://cloud.google.com/workstations/docs/custom-container-images). # If using a private image, the `host.gceInstance.serviceAccount` field # must be specified in the workstation configuration. # If using a custom container image, the service account must have # [Artifact Registry # Reader](https://cloud.google.com/artifact-registry/docs/access-control#roles) # permission to pull the specified image. Otherwise, the image must be # publicly accessible. # @!attribute [rw] command # @return [::Array<::String>] # Optional. If set, overrides the default ENTRYPOINT specified by the # image. # @!attribute [rw] args # @return [::Array<::String>] # Optional. Arguments passed to the entrypoint. # @!attribute [rw] env # @return [::Google::Protobuf::Map{::String => ::String}] # Optional. Environment variables passed to the container's entrypoint. # @!attribute [rw] working_dir # @return [::String] # Optional. If set, overrides the default DIR specified by the image. # @!attribute [rw] run_as_user # @return [::Integer] # Optional. If set, overrides the USER specified in the image with the # given uid. class Container include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class EnvEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end end # A customer-managed encryption key (CMEK) for the Compute Engine # resources of the associated workstation configuration. Specify the name of # your Cloud KMS encryption key and the default service account. # We recommend that you use a separate service account and follow # [Cloud KMS best # practices](https://cloud.google.com/kms/docs/separation-of-duties). # @!attribute [rw] kms_key # @return [::String] # Immutable. The name of the Google Cloud KMS encryption key. For example, # `"projects/PROJECT_ID/locations/REGION/keyRings/KEY_RING/cryptoKeys/KEY_NAME"`. # The key must be in the same region as the workstation configuration. # @!attribute [rw] kms_key_service_account # @return [::String] # Immutable. The service account to use with the specified # KMS key. We recommend that you use a separate service account # and follow KMS best practices. For more information, see # [Separation of # duties](https://cloud.google.com/kms/docs/separation-of-duties) and # `gcloud kms keys add-iam-policy-binding` # [`--member`](https://cloud.google.com/sdk/gcloud/reference/kms/keys/add-iam-policy-binding#--member). class CustomerEncryptionKey include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # A readiness check to be performed on a workstation. # @!attribute [rw] path # @return [::String] # Optional. Path to which the request should be sent. # @!attribute [rw] port # @return [::Integer] # Optional. Port to which the request should be sent. class ReadinessCheck include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # HTTP options for the running workstations. # @!attribute [rw] allowed_unauthenticated_cors_preflight_requests # @return [::Boolean] # Optional. By default, the workstations service makes sure that all # requests to the workstation are authenticated. CORS preflight requests do # not include cookies or custom headers, and so are considered # unauthenticated and blocked by the workstations service. Enabling this # option allows these unauthenticated CORS preflight requests through to # the workstation, where it becomes the responsibility of the destination # server in the workstation to validate the request. # @!attribute [rw] disable_localhost_replacement # @return [::Boolean] # Optional. By default, the workstations service replaces references to # localhost, 127.0.0.1, and 0.0.0.0 with the workstation's hostname in http # responses from the workstation so that applications under development run # properly on the workstation. This may intefere with some applications, # and so this option allows that behavior to be disabled. class HttpOptions include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # A PortRange defines a range of ports. Both # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PortRange#first first} # and # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PortRange#last last} # are inclusive. To specify a single port, both # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PortRange#first first} # and # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PortRange#last last} # should be the same. # @!attribute [rw] first # @return [::Integer] # Required. Starting port number for the current range of ports. # Valid ports are 22, 80, and ports within the range 1024-65535. # @!attribute [rw] last # @return [::Integer] # Required. Ending port number for the current range of ports. # Valid ports are 22, 80, and ports within the range 1024-65535. class PortRange include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class AnnotationsEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class LabelsEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end end |
#readiness_checks ⇒ ::Array<::Google::Cloud::Workstations::V1beta::WorkstationConfig::ReadinessCheck>
Returns Optional. Readiness checks to perform when starting a workstation using this workstation configuration. Mark a workstation as running only after all specified readiness checks return 200 status codes.
420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 |
# File 'proto_docs/google/cloud/workstations/v1beta/workstations.rb', line 420 class WorkstationConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # Runtime host for a workstation. # @!attribute [rw] gce_instance # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance] # Specifies a Compute Engine instance as the host. class Host include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # A runtime using a Compute Engine instance. # @!attribute [rw] machine_type # @return [::String] # Optional. The type of machine to use for VM instances—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). # @!attribute [rw] service_account # @return [::String] # Optional. The email address of the service account for Cloud # Workstations VMs created with this configuration. When specified, be # sure that the service account has `logging.logEntries.create` and # `monitoring.timeSeries.create` permissions on the project so it can # write logs out to Cloud Logging. If using a custom container image, the # service account must have [Artifact Registry # Reader](https://cloud.google.com/artifact-registry/docs/access-control#roles) # permission to pull the specified image. # # If you as the administrator want to be able to `ssh` into the # underlying VM, you need to set this value to a service account # for which you have the `iam.serviceAccounts.actAs` permission. # Conversely, if you don't want anyone to be able to `ssh` into the # underlying VM, use a service account where no one has that # permission. # # If not set, VMs run with a service account provided by the # Cloud Workstations service, and the image must be publicly # accessible. # @!attribute [rw] service_account_scopes # @return [::Array<::String>] # Optional. Scopes to grant to the # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance#service_account service_account}. # When specified, users of workstations under this configuration must # have `iam.serviceAccounts.actAs` on the service account. # @!attribute [rw] tags # @return [::Array<::String>] # Optional. Network tags to add to the Compute Engine VMs backing the # workstations. This option applies # [network # tags](https://cloud.google.com/vpc/docs/add-remove-network-tags) to VMs # created with this configuration. These network tags enable the creation # of [firewall # rules](https://cloud.google.com/workstations/docs/configure-firewall-rules). # @!attribute [rw] pool_size # @return [::Integer] # Optional. The number of VMs that the system should keep idle so that # new workstations can be started quickly for new users. Defaults to `0` # in the API. # @!attribute [r] pooled_instances # @return [::Integer] # Output only. Number of instances currently available in the pool for # faster workstation startup. # @!attribute [rw] disable_public_ip_addresses # @return [::Boolean] # Optional. When set to true, disables public IP addresses for VMs. If # you disable public IP addresses, you must set up Private Google Access # or Cloud NAT on your network. If you use Private Google Access and you # use `private.googleapis.com` or `restricted.googleapis.com` for # Container Registry and Artifact Registry, make sure that you set # up DNS records for domains `*.gcr.io` and `*.pkg.dev`. # Defaults to false (VMs have public IP addresses). # @!attribute [rw] enable_nested_virtualization # @return [::Boolean] # Optional. Whether to enable nested virtualization on Cloud Workstations # VMs created using this workstation configuration. # # Defaults to false. # # Nested virtualization lets you run virtual machine (VM) instances # inside your workstation. Before enabling nested virtualization, # consider the following important considerations. Cloud Workstations # instances are subject to the [same restrictions as Compute Engine # instances](https://cloud.google.com/compute/docs/instances/nested-virtualization/overview#restrictions): # # * **Organization policy**: projects, folders, or # organizations may be restricted from creating nested VMs if the # **Disable VM nested virtualization** constraint is enforced in # the organization policy. For more information, see the # Compute Engine section, # [Checking whether nested virtualization is # allowed](https://cloud.google.com/compute/docs/instances/nested-virtualization/managing-constraint#checking_whether_nested_virtualization_is_allowed). # * **Performance**: nested VMs might experience a 10% or greater # decrease in performance for workloads that are CPU-bound and # possibly greater than a 10% decrease for workloads that are # input/output bound. # * **Machine Type**: nested virtualization can only be enabled on # workstation configurations that specify a # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance#machine_type machine_type} # in the N1 or N2 machine series. # @!attribute [rw] shielded_instance_config # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::GceShieldedInstanceConfig] # Optional. A set of Compute Engine Shielded instance options. # @!attribute [rw] confidential_instance_config # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::GceConfidentialInstanceConfig] # Optional. A set of Compute Engine Confidential VM instance options. # @!attribute [rw] boot_disk_size_gb # @return [::Integer] # Optional. The size of the boot disk for the VM in gigabytes (GB). # The minimum boot disk size is `30` GB. Defaults to `50` GB. # @!attribute [rw] accelerators # @return [::Array<::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::Accelerator>] # Optional. A list of the type and count of accelerator cards attached to # the instance. # @!attribute [rw] boost_configs # @return [::Array<::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::BoostConfig>] # Optional. A list of the boost configurations that workstations created # using this workstation configuration are allowed to use. If specified, # users will have the option to choose from the list of boost configs # when starting a workstation. # @!attribute [rw] disable_ssh # @return [::Boolean] # Optional. Whether to disable SSH access to the VM. # @!attribute [rw] vm_tags # @return [::Google::Protobuf::Map{::String => ::String}] # Optional. Resource manager tags to be bound to this instance. # Tag keys and values have the same definition as [resource manager # tags](https://cloud.google.com/resource-manager/docs/tags/tags-overview). # Keys must be in the format `tagKeys/{tag_key_id}`, and # values are in the format `tagValues/456`. # @!attribute [rw] reservation_affinity # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::ReservationAffinity] # Optional. # [ReservationAffinity](https://cloud.google.com/compute/docs/instances/reserving-zonal-resources) # specifies a reservation that can be consumed to create VM # instances. If SPECIFIC_RESERVATION is specified, Cloud Workstations # will only create VMs in the zone where the reservation is located. # This would affect availability since the service will no longer be # resilient to zonal outages. If ANY_RESERVATION is specified, creating # reservations in both zones that the config creates VMs in will ensure # higher availability. # **Important Considerations for Reservation Affinity:** # # * This feature is intended for advanced users and requires # familiarity with Google Compute Engine reservations. # * Using reservations incurs charges, regardless of utilization. # * The resources in the pool will consume the specified # reservation. Take this into account when setting the # pool size. # @!attribute [rw] startup_script_uri # @return [::String] # Optional. Link to the startup script stored in Cloud Storage. This # script will be run on the host workstation VM when the VM is created. # The URI must be of the form gs://\\{bucket-name}/\\{object-name}. If # specifying a startup script, the service account must have [Permission # to access the bucket and script file in Cloud # Storage](https://cloud.google.com/storage/docs/access-control/iam-permissions). # Otherwise, the script must be publicly accessible. # Note that the service regularly updates the OS version of the host VM, # and it is the responsibility of the user to ensure the script stays # compatible with the OS version. # @!attribute [rw] instance_metadata # @return [::Google::Protobuf::Map{::String => ::String}] # Optional. Custom metadata to apply to Compute Engine instances. class GceInstance include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # A set of Compute Engine Shielded instance options. # @!attribute [rw] enable_secure_boot # @return [::Boolean] # Optional. Whether the instance has Secure Boot enabled. # @!attribute [rw] enable_vtpm # @return [::Boolean] # Optional. Whether the instance has the vTPM enabled. # @!attribute [rw] enable_integrity_monitoring # @return [::Boolean] # Optional. Whether the instance has integrity monitoring enabled. class GceShieldedInstanceConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # A set of Compute Engine Confidential VM instance options. # @!attribute [rw] enable_confidential_compute # @return [::Boolean] # Optional. Whether the instance has confidential compute enabled. class GceConfidentialInstanceConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # An accelerator card attached to the instance. # @!attribute [rw] type # @return [::String] # Optional. Type of accelerator resource to attach to the instance, for # example, # `"nvidia-tesla-p100"`. # @!attribute [rw] count # @return [::Integer] # Optional. Number of accelerator cards exposed to the instance. class Accelerator include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # A boost configuration is a set of resources that a workstation can use # to increase its performance. If you specify a boost configuration, upon # startup, workstation users can choose to use a VM provisioned under the # boost config by passing the boost config ID in the start request. If # the workstation user does not provide a boost config ID in the start # request, the system will choose a VM from the pool provisioned under # the default config. # @!attribute [rw] id # @return [::String] # Required. The ID to be used for the boost configuration. # @!attribute [rw] machine_type # @return [::String] # Optional. 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`. # @!attribute [rw] accelerators # @return [::Array<::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::Accelerator>] # Optional. A list of the type and count of accelerator cards attached # to the boost instance. Defaults to `none`. # @!attribute [rw] boot_disk_size_gb # @return [::Integer] # Optional. The size of the boot disk for the VM in gigabytes (GB). # The minimum boot disk size is `30` GB. Defaults to `50` GB. # @!attribute [rw] enable_nested_virtualization # @return [::Boolean] # Optional. Whether to enable nested virtualization on boosted Cloud # Workstations VMs running using this boost configuration. # # Defaults to false. # # Nested virtualization lets you run virtual machine (VM) instances # inside your workstation. Before enabling nested virtualization, # consider the following important considerations. Cloud Workstations # instances are subject to the [same restrictions as Compute Engine # instances](https://cloud.google.com/compute/docs/instances/nested-virtualization/overview#restrictions): # # * **Organization policy**: projects, folders, or # organizations may be restricted from creating nested VMs if the # **Disable VM nested virtualization** constraint is enforced in # the organization policy. For more information, see the # Compute Engine section, # [Checking whether nested virtualization is # allowed](https://cloud.google.com/compute/docs/instances/nested-virtualization/managing-constraint#checking_whether_nested_virtualization_is_allowed). # * **Performance**: nested VMs might experience a 10% or greater # decrease in performance for workloads that are CPU-bound and # possibly greater than a 10% decrease for workloads that are # input/output bound. # * **Machine Type**: nested virtualization can only be enabled on # boost configurations that specify a # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::BoostConfig#machine_type machine_type} # in the N1 or N2 machine series. # @!attribute [rw] pool_size # @return [::Integer] # Optional. The number of boost VMs that the system should keep idle so # that workstations can be boosted quickly. Defaults to `0`. # @!attribute [rw] reservation_affinity # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::ReservationAffinity] # Optional. # [ReservationAffinity](https://cloud.google.com/compute/docs/instances/reserving-zonal-resources) # specifies a reservation that can be consumed to create boost VM # instances. If SPECIFIC_RESERVATION is specified, Cloud Workstations # will only create VMs in the zone where the reservation is located. # This would affect availability since the service will no longer be # resilient to zonal outages. If ANY_RESERVATION is specified, creating # reservations in both zones that the config creates VMs in will ensure # higher availability. # **Important Considerations for Reservation Affinity:** # # * This feature is intended for advanced users and requires # familiarity with Google Compute Engine reservations. # * Using reservations incurs charges, regardless of utilization. # * The resources in the pool will consume the specified # reservation. Take this into account when setting the # pool size. class BoostConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # ReservationAffinity is the configuration of the desired reservation # from which instances can consume resources. # @!attribute [rw] consume_reservation_type # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::ReservationAffinity::Type] # Optional. Corresponds to the type of reservation consumption. # @!attribute [rw] key # @return [::String] # Optional. Corresponds to the label key of reservation resource. # @!attribute [rw] values # @return [::Array<::String>] # Optional. Corresponds to the label values of reservation resources. # Valid values are either the name of a reservation in the same project # or "projects/\\{project}/reservations/\\{reservation}" to target a shared # reservation in the same zone but in a different project. class ReservationAffinity include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # Indicates whether to consume capacity from a reservation or not. module Type # Default value. This should not be used. TYPE_UNSPECIFIED = 0 # Do not consume from any reserved capacity. NO_RESERVATION = 1 # Consume any reservation available. ANY_RESERVATION = 2 # Must consume from a specific reservation. Must specify key value # fields for specifying the reservations. SPECIFIC_RESERVATION = 3 end end # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class VmTagsEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class InstanceMetadataEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end end end # A directory to persist across workstation sessions. Updates to this field # will not update existing workstations and will only take effect on new # workstations. # @!attribute [rw] gce_pd # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk] # A PersistentDirectory backed by a Compute Engine persistent disk. # # Note: The following fields are mutually exclusive: `gce_pd`, `gce_hd`. If a field in that set is populated, all other fields in the set will automatically be cleared. # @!attribute [rw] gce_hd # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceHyperdiskBalancedHighAvailability] # A PersistentDirectory backed by a Compute Engine hyperdisk high # availability disk. # # Note: The following fields are mutually exclusive: `gce_hd`, `gce_pd`. If a field in that set is populated, all other fields in the set will automatically be cleared. # @!attribute [rw] mount_path # @return [::String] # Optional. Location of this directory in the running workstation. class PersistentDirectory include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # A Persistent Directory backed by a Compute Engine regional persistent # disk. The # {::Google::Cloud::Workstations::V1beta::WorkstationConfig#persistent_directories persistent_directories} # field is repeated, but it may contain only one entry. It creates a # [persistent # disk](https://cloud.google.com/compute/docs/disks/persistent-disks) that # mounts to the workstation VM at `/home` when the session starts and # detaches when the session ends. If this field is empty, workstations # created with this configuration do not have a persistent home # directory. # @!attribute [rw] size_gb # @return [::Integer] # Optional. The GB capacity of a persistent home directory for each # workstation created with this configuration. Must be empty if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk#source_snapshot source_snapshot} # is set. # # Valid values are `10`, `50`, `100`, `200`, `500`, or `1000`. # Defaults to `200`. If less than `200` GB, the # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk#disk_type disk_type} # must be # `"pd-balanced"` or `"pd-ssd"`. # @!attribute [rw] max_size_gb # @return [::Integer] # Optional. Maximum size in GB to which this persistent directory can be # resized. Defaults to unlimited if not set. # @!attribute [rw] fs_type # @return [::String] # Optional. Type of file system that the disk should be formatted with. # The workstation image must support this file system type. Must be empty # if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk#source_snapshot source_snapshot} # is set. Defaults to `"ext4"`. # @!attribute [rw] disk_type # @return [::String] # Optional. The [type of the persistent # disk](https://cloud.google.com/compute/docs/disks#disk-types) for the # home directory. Defaults to `"pd-standard"`. # @!attribute [rw] source_snapshot # @return [::String] # Optional. Name of the snapshot to use as the source for the disk. If # set, # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk#size_gb size_gb} # and # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk#fs_type fs_type} # must be empty. Must be formatted as ext4 file system with no # partitions. # @!attribute [rw] reclaim_policy # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk::ReclaimPolicy] # Optional. Whether the persistent disk should be deleted when the # workstation is deleted. Valid values are `DELETE` and `RETAIN`. # Defaults to `DELETE`. # @!attribute [rw] archive_timeout # @return [::Google::Protobuf::Duration] # Optional. Number of seconds to wait after initially creating or # subsequently shutting down the workstation before converting its disk # into a snapshot. This generally saves costs at the expense of greater # startup time on next workstation start, as the service will need to # create a disk from the archival snapshot. # # A value of `"0s"` indicates that the disk will never be archived. class GceRegionalPersistentDisk include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # Value representing what should happen to the disk after the workstation # is deleted. module ReclaimPolicy # Do not use. RECLAIM_POLICY_UNSPECIFIED = 0 # Delete the persistent disk when deleting the workstation. DELETE = 1 # Keep the persistent disk when deleting the workstation. # An administrator must manually delete the disk. RETAIN = 2 end end # A Persistent Directory backed by a Compute Engine # [Hyperdisk Balanced High Availability # Disk](https://cloud.google.com/compute/docs/disks/hd-types/hyperdisk-balanced-ha). # This is a high-availability block storage solution that offers a balance # between performance and cost for most general-purpose workloads. # @!attribute [rw] size_gb # @return [::Integer] # Optional. The GB capacity of a persistent home directory for each # workstation created with this configuration. Must be empty if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceHyperdiskBalancedHighAvailability#source_snapshot source_snapshot} # is set. # # Valid values are `10`, `50`, `100`, `200`, `500`, or `1000`. # Defaults to `200`. # @!attribute [rw] max_size_gb # @return [::Integer] # Optional. Maximum size in GB to which this persistent directory can be # resized. Defaults to unlimited if not set. # @!attribute [rw] source_snapshot # @return [::String] # Optional. Name of the snapshot to use as the source for the disk. If # set, # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceHyperdiskBalancedHighAvailability#size_gb size_gb} # must be empty. Must be formatted as ext4 file system with no # partitions. # @!attribute [rw] reclaim_policy # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceHyperdiskBalancedHighAvailability::ReclaimPolicy] # Optional. Whether the persistent disk should be deleted when the # workstation is deleted. Valid values are `DELETE` and `RETAIN`. # Defaults to `DELETE`. # @!attribute [rw] archive_timeout # @return [::Google::Protobuf::Duration] # Optional. Number of seconds to wait after initially creating or # subsequently shutting down the workstation before converting its disk # into a snapshot. This generally saves costs at the expense of greater # startup time on next workstation start, as the service will need to # create a disk from the archival snapshot. # # A value of `"0s"` indicates that the disk will never be archived. class GceHyperdiskBalancedHighAvailability include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # Value representing what should happen to the disk after the workstation # is deleted. module ReclaimPolicy # Do not use. RECLAIM_POLICY_UNSPECIFIED = 0 # Delete the persistent disk when deleting the workstation. DELETE = 1 # Keep the persistent disk when deleting the workstation. # An administrator must manually delete the disk. RETAIN = 2 end end end # An ephemeral directory which won't persist across workstation sessions. It # is freshly created on every workstation start operation. # @!attribute [rw] gce_pd # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk] # An EphemeralDirectory backed by a Compute Engine persistent disk. # @!attribute [rw] mount_path # @return [::String] # Required. Location of this directory in the running workstation. class EphemeralDirectory include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # An EphemeralDirectory is backed by a Compute Engine persistent disk. # @!attribute [rw] disk_type # @return [::String] # Optional. Type of the disk to use. Defaults to `"pd-standard"`. # @!attribute [rw] source_snapshot # @return [::String] # Optional. Name of the snapshot to use as the source for the disk. Must # be empty if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#source_image source_image} # is set. Must be empty if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#read_only read_only} # is false. Updating # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#source_snapshot source_snapshot} # will update content in the ephemeral directory after the workstation is # restarted. # # Only file systems supported by Container-Optimized OS (COS) # are explicitly supported. For a list of supported file systems, see # [the filesystems available in Container-Optimized # OS](https://cloud.google.com/container-optimized-os/docs/concepts/supported-filesystems). # # This field is mutable. # @!attribute [rw] source_image # @return [::String] # Optional. Name of the disk image to use as the source for the disk. # Must be empty if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#source_snapshot source_snapshot} # is set. Updating # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#source_image source_image} # will update content in the ephemeral directory after the workstation is # restarted. # # Only file systems supported by Container-Optimized OS (COS) # are explicitly supported. For a list of supported file systems, please # refer to the [COS # documentation](https://cloud.google.com/container-optimized-os/docs/concepts/supported-filesystems). # # This field is mutable. # @!attribute [rw] read_only # @return [::Boolean] # Optional. Whether the disk is read only. If true, the disk may be # shared by multiple VMs and # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#source_snapshot source_snapshot} # must be set. class GcePersistentDisk include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end end # A Docker container. # @!attribute [rw] image # @return [::String] # Optional. A Docker container image that defines a custom environment. # # Cloud Workstations provides a number of # [preconfigured # images](https://cloud.google.com/workstations/docs/preconfigured-base-images), # but you can create your own # [custom container # images](https://cloud.google.com/workstations/docs/custom-container-images). # If using a private image, the `host.gceInstance.serviceAccount` field # must be specified in the workstation configuration. # If using a custom container image, the service account must have # [Artifact Registry # Reader](https://cloud.google.com/artifact-registry/docs/access-control#roles) # permission to pull the specified image. Otherwise, the image must be # publicly accessible. # @!attribute [rw] command # @return [::Array<::String>] # Optional. If set, overrides the default ENTRYPOINT specified by the # image. # @!attribute [rw] args # @return [::Array<::String>] # Optional. Arguments passed to the entrypoint. # @!attribute [rw] env # @return [::Google::Protobuf::Map{::String => ::String}] # Optional. Environment variables passed to the container's entrypoint. # @!attribute [rw] working_dir # @return [::String] # Optional. If set, overrides the default DIR specified by the image. # @!attribute [rw] run_as_user # @return [::Integer] # Optional. If set, overrides the USER specified in the image with the # given uid. class Container include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class EnvEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end end # A customer-managed encryption key (CMEK) for the Compute Engine # resources of the associated workstation configuration. Specify the name of # your Cloud KMS encryption key and the default service account. # We recommend that you use a separate service account and follow # [Cloud KMS best # practices](https://cloud.google.com/kms/docs/separation-of-duties). # @!attribute [rw] kms_key # @return [::String] # Immutable. The name of the Google Cloud KMS encryption key. For example, # `"projects/PROJECT_ID/locations/REGION/keyRings/KEY_RING/cryptoKeys/KEY_NAME"`. # The key must be in the same region as the workstation configuration. # @!attribute [rw] kms_key_service_account # @return [::String] # Immutable. The service account to use with the specified # KMS key. We recommend that you use a separate service account # and follow KMS best practices. For more information, see # [Separation of # duties](https://cloud.google.com/kms/docs/separation-of-duties) and # `gcloud kms keys add-iam-policy-binding` # [`--member`](https://cloud.google.com/sdk/gcloud/reference/kms/keys/add-iam-policy-binding#--member). class CustomerEncryptionKey include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # A readiness check to be performed on a workstation. # @!attribute [rw] path # @return [::String] # Optional. Path to which the request should be sent. # @!attribute [rw] port # @return [::Integer] # Optional. Port to which the request should be sent. class ReadinessCheck include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # HTTP options for the running workstations. # @!attribute [rw] allowed_unauthenticated_cors_preflight_requests # @return [::Boolean] # Optional. By default, the workstations service makes sure that all # requests to the workstation are authenticated. CORS preflight requests do # not include cookies or custom headers, and so are considered # unauthenticated and blocked by the workstations service. Enabling this # option allows these unauthenticated CORS preflight requests through to # the workstation, where it becomes the responsibility of the destination # server in the workstation to validate the request. # @!attribute [rw] disable_localhost_replacement # @return [::Boolean] # Optional. By default, the workstations service replaces references to # localhost, 127.0.0.1, and 0.0.0.0 with the workstation's hostname in http # responses from the workstation so that applications under development run # properly on the workstation. This may intefere with some applications, # and so this option allows that behavior to be disabled. class HttpOptions include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # A PortRange defines a range of ports. Both # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PortRange#first first} # and # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PortRange#last last} # are inclusive. To specify a single port, both # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PortRange#first first} # and # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PortRange#last last} # should be the same. # @!attribute [rw] first # @return [::Integer] # Required. Starting port number for the current range of ports. # Valid ports are 22, 80, and ports within the range 1024-65535. # @!attribute [rw] last # @return [::Integer] # Required. Ending port number for the current range of ports. # Valid ports are 22, 80, and ports within the range 1024-65535. class PortRange include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class AnnotationsEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class LabelsEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end end |
#reconciling ⇒ ::Boolean (readonly)
Returns Output only. Indicates whether this workstation configuration is currently being updated to match its intended state.
420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 |
# File 'proto_docs/google/cloud/workstations/v1beta/workstations.rb', line 420 class WorkstationConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # Runtime host for a workstation. # @!attribute [rw] gce_instance # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance] # Specifies a Compute Engine instance as the host. class Host include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # A runtime using a Compute Engine instance. # @!attribute [rw] machine_type # @return [::String] # Optional. The type of machine to use for VM instances—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). # @!attribute [rw] service_account # @return [::String] # Optional. The email address of the service account for Cloud # Workstations VMs created with this configuration. When specified, be # sure that the service account has `logging.logEntries.create` and # `monitoring.timeSeries.create` permissions on the project so it can # write logs out to Cloud Logging. If using a custom container image, the # service account must have [Artifact Registry # Reader](https://cloud.google.com/artifact-registry/docs/access-control#roles) # permission to pull the specified image. # # If you as the administrator want to be able to `ssh` into the # underlying VM, you need to set this value to a service account # for which you have the `iam.serviceAccounts.actAs` permission. # Conversely, if you don't want anyone to be able to `ssh` into the # underlying VM, use a service account where no one has that # permission. # # If not set, VMs run with a service account provided by the # Cloud Workstations service, and the image must be publicly # accessible. # @!attribute [rw] service_account_scopes # @return [::Array<::String>] # Optional. Scopes to grant to the # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance#service_account service_account}. # When specified, users of workstations under this configuration must # have `iam.serviceAccounts.actAs` on the service account. # @!attribute [rw] tags # @return [::Array<::String>] # Optional. Network tags to add to the Compute Engine VMs backing the # workstations. This option applies # [network # tags](https://cloud.google.com/vpc/docs/add-remove-network-tags) to VMs # created with this configuration. These network tags enable the creation # of [firewall # rules](https://cloud.google.com/workstations/docs/configure-firewall-rules). # @!attribute [rw] pool_size # @return [::Integer] # Optional. The number of VMs that the system should keep idle so that # new workstations can be started quickly for new users. Defaults to `0` # in the API. # @!attribute [r] pooled_instances # @return [::Integer] # Output only. Number of instances currently available in the pool for # faster workstation startup. # @!attribute [rw] disable_public_ip_addresses # @return [::Boolean] # Optional. When set to true, disables public IP addresses for VMs. If # you disable public IP addresses, you must set up Private Google Access # or Cloud NAT on your network. If you use Private Google Access and you # use `private.googleapis.com` or `restricted.googleapis.com` for # Container Registry and Artifact Registry, make sure that you set # up DNS records for domains `*.gcr.io` and `*.pkg.dev`. # Defaults to false (VMs have public IP addresses). # @!attribute [rw] enable_nested_virtualization # @return [::Boolean] # Optional. Whether to enable nested virtualization on Cloud Workstations # VMs created using this workstation configuration. # # Defaults to false. # # Nested virtualization lets you run virtual machine (VM) instances # inside your workstation. Before enabling nested virtualization, # consider the following important considerations. Cloud Workstations # instances are subject to the [same restrictions as Compute Engine # instances](https://cloud.google.com/compute/docs/instances/nested-virtualization/overview#restrictions): # # * **Organization policy**: projects, folders, or # organizations may be restricted from creating nested VMs if the # **Disable VM nested virtualization** constraint is enforced in # the organization policy. For more information, see the # Compute Engine section, # [Checking whether nested virtualization is # allowed](https://cloud.google.com/compute/docs/instances/nested-virtualization/managing-constraint#checking_whether_nested_virtualization_is_allowed). # * **Performance**: nested VMs might experience a 10% or greater # decrease in performance for workloads that are CPU-bound and # possibly greater than a 10% decrease for workloads that are # input/output bound. # * **Machine Type**: nested virtualization can only be enabled on # workstation configurations that specify a # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance#machine_type machine_type} # in the N1 or N2 machine series. # @!attribute [rw] shielded_instance_config # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::GceShieldedInstanceConfig] # Optional. A set of Compute Engine Shielded instance options. # @!attribute [rw] confidential_instance_config # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::GceConfidentialInstanceConfig] # Optional. A set of Compute Engine Confidential VM instance options. # @!attribute [rw] boot_disk_size_gb # @return [::Integer] # Optional. The size of the boot disk for the VM in gigabytes (GB). # The minimum boot disk size is `30` GB. Defaults to `50` GB. # @!attribute [rw] accelerators # @return [::Array<::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::Accelerator>] # Optional. A list of the type and count of accelerator cards attached to # the instance. # @!attribute [rw] boost_configs # @return [::Array<::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::BoostConfig>] # Optional. A list of the boost configurations that workstations created # using this workstation configuration are allowed to use. If specified, # users will have the option to choose from the list of boost configs # when starting a workstation. # @!attribute [rw] disable_ssh # @return [::Boolean] # Optional. Whether to disable SSH access to the VM. # @!attribute [rw] vm_tags # @return [::Google::Protobuf::Map{::String => ::String}] # Optional. Resource manager tags to be bound to this instance. # Tag keys and values have the same definition as [resource manager # tags](https://cloud.google.com/resource-manager/docs/tags/tags-overview). # Keys must be in the format `tagKeys/{tag_key_id}`, and # values are in the format `tagValues/456`. # @!attribute [rw] reservation_affinity # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::ReservationAffinity] # Optional. # [ReservationAffinity](https://cloud.google.com/compute/docs/instances/reserving-zonal-resources) # specifies a reservation that can be consumed to create VM # instances. If SPECIFIC_RESERVATION is specified, Cloud Workstations # will only create VMs in the zone where the reservation is located. # This would affect availability since the service will no longer be # resilient to zonal outages. If ANY_RESERVATION is specified, creating # reservations in both zones that the config creates VMs in will ensure # higher availability. # **Important Considerations for Reservation Affinity:** # # * This feature is intended for advanced users and requires # familiarity with Google Compute Engine reservations. # * Using reservations incurs charges, regardless of utilization. # * The resources in the pool will consume the specified # reservation. Take this into account when setting the # pool size. # @!attribute [rw] startup_script_uri # @return [::String] # Optional. Link to the startup script stored in Cloud Storage. This # script will be run on the host workstation VM when the VM is created. # The URI must be of the form gs://\\{bucket-name}/\\{object-name}. If # specifying a startup script, the service account must have [Permission # to access the bucket and script file in Cloud # Storage](https://cloud.google.com/storage/docs/access-control/iam-permissions). # Otherwise, the script must be publicly accessible. # Note that the service regularly updates the OS version of the host VM, # and it is the responsibility of the user to ensure the script stays # compatible with the OS version. # @!attribute [rw] instance_metadata # @return [::Google::Protobuf::Map{::String => ::String}] # Optional. Custom metadata to apply to Compute Engine instances. class GceInstance include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # A set of Compute Engine Shielded instance options. # @!attribute [rw] enable_secure_boot # @return [::Boolean] # Optional. Whether the instance has Secure Boot enabled. # @!attribute [rw] enable_vtpm # @return [::Boolean] # Optional. Whether the instance has the vTPM enabled. # @!attribute [rw] enable_integrity_monitoring # @return [::Boolean] # Optional. Whether the instance has integrity monitoring enabled. class GceShieldedInstanceConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # A set of Compute Engine Confidential VM instance options. # @!attribute [rw] enable_confidential_compute # @return [::Boolean] # Optional. Whether the instance has confidential compute enabled. class GceConfidentialInstanceConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # An accelerator card attached to the instance. # @!attribute [rw] type # @return [::String] # Optional. Type of accelerator resource to attach to the instance, for # example, # `"nvidia-tesla-p100"`. # @!attribute [rw] count # @return [::Integer] # Optional. Number of accelerator cards exposed to the instance. class Accelerator include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # A boost configuration is a set of resources that a workstation can use # to increase its performance. If you specify a boost configuration, upon # startup, workstation users can choose to use a VM provisioned under the # boost config by passing the boost config ID in the start request. If # the workstation user does not provide a boost config ID in the start # request, the system will choose a VM from the pool provisioned under # the default config. # @!attribute [rw] id # @return [::String] # Required. The ID to be used for the boost configuration. # @!attribute [rw] machine_type # @return [::String] # Optional. 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`. # @!attribute [rw] accelerators # @return [::Array<::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::Accelerator>] # Optional. A list of the type and count of accelerator cards attached # to the boost instance. Defaults to `none`. # @!attribute [rw] boot_disk_size_gb # @return [::Integer] # Optional. The size of the boot disk for the VM in gigabytes (GB). # The minimum boot disk size is `30` GB. Defaults to `50` GB. # @!attribute [rw] enable_nested_virtualization # @return [::Boolean] # Optional. Whether to enable nested virtualization on boosted Cloud # Workstations VMs running using this boost configuration. # # Defaults to false. # # Nested virtualization lets you run virtual machine (VM) instances # inside your workstation. Before enabling nested virtualization, # consider the following important considerations. Cloud Workstations # instances are subject to the [same restrictions as Compute Engine # instances](https://cloud.google.com/compute/docs/instances/nested-virtualization/overview#restrictions): # # * **Organization policy**: projects, folders, or # organizations may be restricted from creating nested VMs if the # **Disable VM nested virtualization** constraint is enforced in # the organization policy. For more information, see the # Compute Engine section, # [Checking whether nested virtualization is # allowed](https://cloud.google.com/compute/docs/instances/nested-virtualization/managing-constraint#checking_whether_nested_virtualization_is_allowed). # * **Performance**: nested VMs might experience a 10% or greater # decrease in performance for workloads that are CPU-bound and # possibly greater than a 10% decrease for workloads that are # input/output bound. # * **Machine Type**: nested virtualization can only be enabled on # boost configurations that specify a # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::BoostConfig#machine_type machine_type} # in the N1 or N2 machine series. # @!attribute [rw] pool_size # @return [::Integer] # Optional. The number of boost VMs that the system should keep idle so # that workstations can be boosted quickly. Defaults to `0`. # @!attribute [rw] reservation_affinity # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::ReservationAffinity] # Optional. # [ReservationAffinity](https://cloud.google.com/compute/docs/instances/reserving-zonal-resources) # specifies a reservation that can be consumed to create boost VM # instances. If SPECIFIC_RESERVATION is specified, Cloud Workstations # will only create VMs in the zone where the reservation is located. # This would affect availability since the service will no longer be # resilient to zonal outages. If ANY_RESERVATION is specified, creating # reservations in both zones that the config creates VMs in will ensure # higher availability. # **Important Considerations for Reservation Affinity:** # # * This feature is intended for advanced users and requires # familiarity with Google Compute Engine reservations. # * Using reservations incurs charges, regardless of utilization. # * The resources in the pool will consume the specified # reservation. Take this into account when setting the # pool size. class BoostConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # ReservationAffinity is the configuration of the desired reservation # from which instances can consume resources. # @!attribute [rw] consume_reservation_type # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::ReservationAffinity::Type] # Optional. Corresponds to the type of reservation consumption. # @!attribute [rw] key # @return [::String] # Optional. Corresponds to the label key of reservation resource. # @!attribute [rw] values # @return [::Array<::String>] # Optional. Corresponds to the label values of reservation resources. # Valid values are either the name of a reservation in the same project # or "projects/\\{project}/reservations/\\{reservation}" to target a shared # reservation in the same zone but in a different project. class ReservationAffinity include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # Indicates whether to consume capacity from a reservation or not. module Type # Default value. This should not be used. TYPE_UNSPECIFIED = 0 # Do not consume from any reserved capacity. NO_RESERVATION = 1 # Consume any reservation available. ANY_RESERVATION = 2 # Must consume from a specific reservation. Must specify key value # fields for specifying the reservations. SPECIFIC_RESERVATION = 3 end end # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class VmTagsEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class InstanceMetadataEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end end end # A directory to persist across workstation sessions. Updates to this field # will not update existing workstations and will only take effect on new # workstations. # @!attribute [rw] gce_pd # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk] # A PersistentDirectory backed by a Compute Engine persistent disk. # # Note: The following fields are mutually exclusive: `gce_pd`, `gce_hd`. If a field in that set is populated, all other fields in the set will automatically be cleared. # @!attribute [rw] gce_hd # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceHyperdiskBalancedHighAvailability] # A PersistentDirectory backed by a Compute Engine hyperdisk high # availability disk. # # Note: The following fields are mutually exclusive: `gce_hd`, `gce_pd`. If a field in that set is populated, all other fields in the set will automatically be cleared. # @!attribute [rw] mount_path # @return [::String] # Optional. Location of this directory in the running workstation. class PersistentDirectory include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # A Persistent Directory backed by a Compute Engine regional persistent # disk. The # {::Google::Cloud::Workstations::V1beta::WorkstationConfig#persistent_directories persistent_directories} # field is repeated, but it may contain only one entry. It creates a # [persistent # disk](https://cloud.google.com/compute/docs/disks/persistent-disks) that # mounts to the workstation VM at `/home` when the session starts and # detaches when the session ends. If this field is empty, workstations # created with this configuration do not have a persistent home # directory. # @!attribute [rw] size_gb # @return [::Integer] # Optional. The GB capacity of a persistent home directory for each # workstation created with this configuration. Must be empty if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk#source_snapshot source_snapshot} # is set. # # Valid values are `10`, `50`, `100`, `200`, `500`, or `1000`. # Defaults to `200`. If less than `200` GB, the # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk#disk_type disk_type} # must be # `"pd-balanced"` or `"pd-ssd"`. # @!attribute [rw] max_size_gb # @return [::Integer] # Optional. Maximum size in GB to which this persistent directory can be # resized. Defaults to unlimited if not set. # @!attribute [rw] fs_type # @return [::String] # Optional. Type of file system that the disk should be formatted with. # The workstation image must support this file system type. Must be empty # if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk#source_snapshot source_snapshot} # is set. Defaults to `"ext4"`. # @!attribute [rw] disk_type # @return [::String] # Optional. The [type of the persistent # disk](https://cloud.google.com/compute/docs/disks#disk-types) for the # home directory. Defaults to `"pd-standard"`. # @!attribute [rw] source_snapshot # @return [::String] # Optional. Name of the snapshot to use as the source for the disk. If # set, # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk#size_gb size_gb} # and # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk#fs_type fs_type} # must be empty. Must be formatted as ext4 file system with no # partitions. # @!attribute [rw] reclaim_policy # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk::ReclaimPolicy] # Optional. Whether the persistent disk should be deleted when the # workstation is deleted. Valid values are `DELETE` and `RETAIN`. # Defaults to `DELETE`. # @!attribute [rw] archive_timeout # @return [::Google::Protobuf::Duration] # Optional. Number of seconds to wait after initially creating or # subsequently shutting down the workstation before converting its disk # into a snapshot. This generally saves costs at the expense of greater # startup time on next workstation start, as the service will need to # create a disk from the archival snapshot. # # A value of `"0s"` indicates that the disk will never be archived. class GceRegionalPersistentDisk include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # Value representing what should happen to the disk after the workstation # is deleted. module ReclaimPolicy # Do not use. RECLAIM_POLICY_UNSPECIFIED = 0 # Delete the persistent disk when deleting the workstation. DELETE = 1 # Keep the persistent disk when deleting the workstation. # An administrator must manually delete the disk. RETAIN = 2 end end # A Persistent Directory backed by a Compute Engine # [Hyperdisk Balanced High Availability # Disk](https://cloud.google.com/compute/docs/disks/hd-types/hyperdisk-balanced-ha). # This is a high-availability block storage solution that offers a balance # between performance and cost for most general-purpose workloads. # @!attribute [rw] size_gb # @return [::Integer] # Optional. The GB capacity of a persistent home directory for each # workstation created with this configuration. Must be empty if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceHyperdiskBalancedHighAvailability#source_snapshot source_snapshot} # is set. # # Valid values are `10`, `50`, `100`, `200`, `500`, or `1000`. # Defaults to `200`. # @!attribute [rw] max_size_gb # @return [::Integer] # Optional. Maximum size in GB to which this persistent directory can be # resized. Defaults to unlimited if not set. # @!attribute [rw] source_snapshot # @return [::String] # Optional. Name of the snapshot to use as the source for the disk. If # set, # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceHyperdiskBalancedHighAvailability#size_gb size_gb} # must be empty. Must be formatted as ext4 file system with no # partitions. # @!attribute [rw] reclaim_policy # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceHyperdiskBalancedHighAvailability::ReclaimPolicy] # Optional. Whether the persistent disk should be deleted when the # workstation is deleted. Valid values are `DELETE` and `RETAIN`. # Defaults to `DELETE`. # @!attribute [rw] archive_timeout # @return [::Google::Protobuf::Duration] # Optional. Number of seconds to wait after initially creating or # subsequently shutting down the workstation before converting its disk # into a snapshot. This generally saves costs at the expense of greater # startup time on next workstation start, as the service will need to # create a disk from the archival snapshot. # # A value of `"0s"` indicates that the disk will never be archived. class GceHyperdiskBalancedHighAvailability include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # Value representing what should happen to the disk after the workstation # is deleted. module ReclaimPolicy # Do not use. RECLAIM_POLICY_UNSPECIFIED = 0 # Delete the persistent disk when deleting the workstation. DELETE = 1 # Keep the persistent disk when deleting the workstation. # An administrator must manually delete the disk. RETAIN = 2 end end end # An ephemeral directory which won't persist across workstation sessions. It # is freshly created on every workstation start operation. # @!attribute [rw] gce_pd # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk] # An EphemeralDirectory backed by a Compute Engine persistent disk. # @!attribute [rw] mount_path # @return [::String] # Required. Location of this directory in the running workstation. class EphemeralDirectory include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # An EphemeralDirectory is backed by a Compute Engine persistent disk. # @!attribute [rw] disk_type # @return [::String] # Optional. Type of the disk to use. Defaults to `"pd-standard"`. # @!attribute [rw] source_snapshot # @return [::String] # Optional. Name of the snapshot to use as the source for the disk. Must # be empty if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#source_image source_image} # is set. Must be empty if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#read_only read_only} # is false. Updating # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#source_snapshot source_snapshot} # will update content in the ephemeral directory after the workstation is # restarted. # # Only file systems supported by Container-Optimized OS (COS) # are explicitly supported. For a list of supported file systems, see # [the filesystems available in Container-Optimized # OS](https://cloud.google.com/container-optimized-os/docs/concepts/supported-filesystems). # # This field is mutable. # @!attribute [rw] source_image # @return [::String] # Optional. Name of the disk image to use as the source for the disk. # Must be empty if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#source_snapshot source_snapshot} # is set. Updating # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#source_image source_image} # will update content in the ephemeral directory after the workstation is # restarted. # # Only file systems supported by Container-Optimized OS (COS) # are explicitly supported. For a list of supported file systems, please # refer to the [COS # documentation](https://cloud.google.com/container-optimized-os/docs/concepts/supported-filesystems). # # This field is mutable. # @!attribute [rw] read_only # @return [::Boolean] # Optional. Whether the disk is read only. If true, the disk may be # shared by multiple VMs and # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#source_snapshot source_snapshot} # must be set. class GcePersistentDisk include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end end # A Docker container. # @!attribute [rw] image # @return [::String] # Optional. A Docker container image that defines a custom environment. # # Cloud Workstations provides a number of # [preconfigured # images](https://cloud.google.com/workstations/docs/preconfigured-base-images), # but you can create your own # [custom container # images](https://cloud.google.com/workstations/docs/custom-container-images). # If using a private image, the `host.gceInstance.serviceAccount` field # must be specified in the workstation configuration. # If using a custom container image, the service account must have # [Artifact Registry # Reader](https://cloud.google.com/artifact-registry/docs/access-control#roles) # permission to pull the specified image. Otherwise, the image must be # publicly accessible. # @!attribute [rw] command # @return [::Array<::String>] # Optional. If set, overrides the default ENTRYPOINT specified by the # image. # @!attribute [rw] args # @return [::Array<::String>] # Optional. Arguments passed to the entrypoint. # @!attribute [rw] env # @return [::Google::Protobuf::Map{::String => ::String}] # Optional. Environment variables passed to the container's entrypoint. # @!attribute [rw] working_dir # @return [::String] # Optional. If set, overrides the default DIR specified by the image. # @!attribute [rw] run_as_user # @return [::Integer] # Optional. If set, overrides the USER specified in the image with the # given uid. class Container include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class EnvEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end end # A customer-managed encryption key (CMEK) for the Compute Engine # resources of the associated workstation configuration. Specify the name of # your Cloud KMS encryption key and the default service account. # We recommend that you use a separate service account and follow # [Cloud KMS best # practices](https://cloud.google.com/kms/docs/separation-of-duties). # @!attribute [rw] kms_key # @return [::String] # Immutable. The name of the Google Cloud KMS encryption key. For example, # `"projects/PROJECT_ID/locations/REGION/keyRings/KEY_RING/cryptoKeys/KEY_NAME"`. # The key must be in the same region as the workstation configuration. # @!attribute [rw] kms_key_service_account # @return [::String] # Immutable. The service account to use with the specified # KMS key. We recommend that you use a separate service account # and follow KMS best practices. For more information, see # [Separation of # duties](https://cloud.google.com/kms/docs/separation-of-duties) and # `gcloud kms keys add-iam-policy-binding` # [`--member`](https://cloud.google.com/sdk/gcloud/reference/kms/keys/add-iam-policy-binding#--member). class CustomerEncryptionKey include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # A readiness check to be performed on a workstation. # @!attribute [rw] path # @return [::String] # Optional. Path to which the request should be sent. # @!attribute [rw] port # @return [::Integer] # Optional. Port to which the request should be sent. class ReadinessCheck include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # HTTP options for the running workstations. # @!attribute [rw] allowed_unauthenticated_cors_preflight_requests # @return [::Boolean] # Optional. By default, the workstations service makes sure that all # requests to the workstation are authenticated. CORS preflight requests do # not include cookies or custom headers, and so are considered # unauthenticated and blocked by the workstations service. Enabling this # option allows these unauthenticated CORS preflight requests through to # the workstation, where it becomes the responsibility of the destination # server in the workstation to validate the request. # @!attribute [rw] disable_localhost_replacement # @return [::Boolean] # Optional. By default, the workstations service replaces references to # localhost, 127.0.0.1, and 0.0.0.0 with the workstation's hostname in http # responses from the workstation so that applications under development run # properly on the workstation. This may intefere with some applications, # and so this option allows that behavior to be disabled. class HttpOptions include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # A PortRange defines a range of ports. Both # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PortRange#first first} # and # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PortRange#last last} # are inclusive. To specify a single port, both # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PortRange#first first} # and # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PortRange#last last} # should be the same. # @!attribute [rw] first # @return [::Integer] # Required. Starting port number for the current range of ports. # Valid ports are 22, 80, and ports within the range 1024-65535. # @!attribute [rw] last # @return [::Integer] # Required. Ending port number for the current range of ports. # Valid ports are 22, 80, and ports within the range 1024-65535. class PortRange include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class AnnotationsEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class LabelsEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end end |
#replica_zones ⇒ ::Array<::String>
Returns Optional. Immutable. Specifies the zones used to replicate the VM and disk
resources within the region. If set, exactly two zones within the
workstation cluster's region must be specified—for example,
['us-central1-a', 'us-central1-f']. If this field is empty, two default
zones within the region are used.
Immutable after the workstation configuration is created.
420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 |
# File 'proto_docs/google/cloud/workstations/v1beta/workstations.rb', line 420 class WorkstationConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # Runtime host for a workstation. # @!attribute [rw] gce_instance # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance] # Specifies a Compute Engine instance as the host. class Host include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # A runtime using a Compute Engine instance. # @!attribute [rw] machine_type # @return [::String] # Optional. The type of machine to use for VM instances—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). # @!attribute [rw] service_account # @return [::String] # Optional. The email address of the service account for Cloud # Workstations VMs created with this configuration. When specified, be # sure that the service account has `logging.logEntries.create` and # `monitoring.timeSeries.create` permissions on the project so it can # write logs out to Cloud Logging. If using a custom container image, the # service account must have [Artifact Registry # Reader](https://cloud.google.com/artifact-registry/docs/access-control#roles) # permission to pull the specified image. # # If you as the administrator want to be able to `ssh` into the # underlying VM, you need to set this value to a service account # for which you have the `iam.serviceAccounts.actAs` permission. # Conversely, if you don't want anyone to be able to `ssh` into the # underlying VM, use a service account where no one has that # permission. # # If not set, VMs run with a service account provided by the # Cloud Workstations service, and the image must be publicly # accessible. # @!attribute [rw] service_account_scopes # @return [::Array<::String>] # Optional. Scopes to grant to the # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance#service_account service_account}. # When specified, users of workstations under this configuration must # have `iam.serviceAccounts.actAs` on the service account. # @!attribute [rw] tags # @return [::Array<::String>] # Optional. Network tags to add to the Compute Engine VMs backing the # workstations. This option applies # [network # tags](https://cloud.google.com/vpc/docs/add-remove-network-tags) to VMs # created with this configuration. These network tags enable the creation # of [firewall # rules](https://cloud.google.com/workstations/docs/configure-firewall-rules). # @!attribute [rw] pool_size # @return [::Integer] # Optional. The number of VMs that the system should keep idle so that # new workstations can be started quickly for new users. Defaults to `0` # in the API. # @!attribute [r] pooled_instances # @return [::Integer] # Output only. Number of instances currently available in the pool for # faster workstation startup. # @!attribute [rw] disable_public_ip_addresses # @return [::Boolean] # Optional. When set to true, disables public IP addresses for VMs. If # you disable public IP addresses, you must set up Private Google Access # or Cloud NAT on your network. If you use Private Google Access and you # use `private.googleapis.com` or `restricted.googleapis.com` for # Container Registry and Artifact Registry, make sure that you set # up DNS records for domains `*.gcr.io` and `*.pkg.dev`. # Defaults to false (VMs have public IP addresses). # @!attribute [rw] enable_nested_virtualization # @return [::Boolean] # Optional. Whether to enable nested virtualization on Cloud Workstations # VMs created using this workstation configuration. # # Defaults to false. # # Nested virtualization lets you run virtual machine (VM) instances # inside your workstation. Before enabling nested virtualization, # consider the following important considerations. Cloud Workstations # instances are subject to the [same restrictions as Compute Engine # instances](https://cloud.google.com/compute/docs/instances/nested-virtualization/overview#restrictions): # # * **Organization policy**: projects, folders, or # organizations may be restricted from creating nested VMs if the # **Disable VM nested virtualization** constraint is enforced in # the organization policy. For more information, see the # Compute Engine section, # [Checking whether nested virtualization is # allowed](https://cloud.google.com/compute/docs/instances/nested-virtualization/managing-constraint#checking_whether_nested_virtualization_is_allowed). # * **Performance**: nested VMs might experience a 10% or greater # decrease in performance for workloads that are CPU-bound and # possibly greater than a 10% decrease for workloads that are # input/output bound. # * **Machine Type**: nested virtualization can only be enabled on # workstation configurations that specify a # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance#machine_type machine_type} # in the N1 or N2 machine series. # @!attribute [rw] shielded_instance_config # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::GceShieldedInstanceConfig] # Optional. A set of Compute Engine Shielded instance options. # @!attribute [rw] confidential_instance_config # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::GceConfidentialInstanceConfig] # Optional. A set of Compute Engine Confidential VM instance options. # @!attribute [rw] boot_disk_size_gb # @return [::Integer] # Optional. The size of the boot disk for the VM in gigabytes (GB). # The minimum boot disk size is `30` GB. Defaults to `50` GB. # @!attribute [rw] accelerators # @return [::Array<::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::Accelerator>] # Optional. A list of the type and count of accelerator cards attached to # the instance. # @!attribute [rw] boost_configs # @return [::Array<::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::BoostConfig>] # Optional. A list of the boost configurations that workstations created # using this workstation configuration are allowed to use. If specified, # users will have the option to choose from the list of boost configs # when starting a workstation. # @!attribute [rw] disable_ssh # @return [::Boolean] # Optional. Whether to disable SSH access to the VM. # @!attribute [rw] vm_tags # @return [::Google::Protobuf::Map{::String => ::String}] # Optional. Resource manager tags to be bound to this instance. # Tag keys and values have the same definition as [resource manager # tags](https://cloud.google.com/resource-manager/docs/tags/tags-overview). # Keys must be in the format `tagKeys/{tag_key_id}`, and # values are in the format `tagValues/456`. # @!attribute [rw] reservation_affinity # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::ReservationAffinity] # Optional. # [ReservationAffinity](https://cloud.google.com/compute/docs/instances/reserving-zonal-resources) # specifies a reservation that can be consumed to create VM # instances. If SPECIFIC_RESERVATION is specified, Cloud Workstations # will only create VMs in the zone where the reservation is located. # This would affect availability since the service will no longer be # resilient to zonal outages. If ANY_RESERVATION is specified, creating # reservations in both zones that the config creates VMs in will ensure # higher availability. # **Important Considerations for Reservation Affinity:** # # * This feature is intended for advanced users and requires # familiarity with Google Compute Engine reservations. # * Using reservations incurs charges, regardless of utilization. # * The resources in the pool will consume the specified # reservation. Take this into account when setting the # pool size. # @!attribute [rw] startup_script_uri # @return [::String] # Optional. Link to the startup script stored in Cloud Storage. This # script will be run on the host workstation VM when the VM is created. # The URI must be of the form gs://\\{bucket-name}/\\{object-name}. If # specifying a startup script, the service account must have [Permission # to access the bucket and script file in Cloud # Storage](https://cloud.google.com/storage/docs/access-control/iam-permissions). # Otherwise, the script must be publicly accessible. # Note that the service regularly updates the OS version of the host VM, # and it is the responsibility of the user to ensure the script stays # compatible with the OS version. # @!attribute [rw] instance_metadata # @return [::Google::Protobuf::Map{::String => ::String}] # Optional. Custom metadata to apply to Compute Engine instances. class GceInstance include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # A set of Compute Engine Shielded instance options. # @!attribute [rw] enable_secure_boot # @return [::Boolean] # Optional. Whether the instance has Secure Boot enabled. # @!attribute [rw] enable_vtpm # @return [::Boolean] # Optional. Whether the instance has the vTPM enabled. # @!attribute [rw] enable_integrity_monitoring # @return [::Boolean] # Optional. Whether the instance has integrity monitoring enabled. class GceShieldedInstanceConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # A set of Compute Engine Confidential VM instance options. # @!attribute [rw] enable_confidential_compute # @return [::Boolean] # Optional. Whether the instance has confidential compute enabled. class GceConfidentialInstanceConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # An accelerator card attached to the instance. # @!attribute [rw] type # @return [::String] # Optional. Type of accelerator resource to attach to the instance, for # example, # `"nvidia-tesla-p100"`. # @!attribute [rw] count # @return [::Integer] # Optional. Number of accelerator cards exposed to the instance. class Accelerator include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # A boost configuration is a set of resources that a workstation can use # to increase its performance. If you specify a boost configuration, upon # startup, workstation users can choose to use a VM provisioned under the # boost config by passing the boost config ID in the start request. If # the workstation user does not provide a boost config ID in the start # request, the system will choose a VM from the pool provisioned under # the default config. # @!attribute [rw] id # @return [::String] # Required. The ID to be used for the boost configuration. # @!attribute [rw] machine_type # @return [::String] # Optional. 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`. # @!attribute [rw] accelerators # @return [::Array<::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::Accelerator>] # Optional. A list of the type and count of accelerator cards attached # to the boost instance. Defaults to `none`. # @!attribute [rw] boot_disk_size_gb # @return [::Integer] # Optional. The size of the boot disk for the VM in gigabytes (GB). # The minimum boot disk size is `30` GB. Defaults to `50` GB. # @!attribute [rw] enable_nested_virtualization # @return [::Boolean] # Optional. Whether to enable nested virtualization on boosted Cloud # Workstations VMs running using this boost configuration. # # Defaults to false. # # Nested virtualization lets you run virtual machine (VM) instances # inside your workstation. Before enabling nested virtualization, # consider the following important considerations. Cloud Workstations # instances are subject to the [same restrictions as Compute Engine # instances](https://cloud.google.com/compute/docs/instances/nested-virtualization/overview#restrictions): # # * **Organization policy**: projects, folders, or # organizations may be restricted from creating nested VMs if the # **Disable VM nested virtualization** constraint is enforced in # the organization policy. For more information, see the # Compute Engine section, # [Checking whether nested virtualization is # allowed](https://cloud.google.com/compute/docs/instances/nested-virtualization/managing-constraint#checking_whether_nested_virtualization_is_allowed). # * **Performance**: nested VMs might experience a 10% or greater # decrease in performance for workloads that are CPU-bound and # possibly greater than a 10% decrease for workloads that are # input/output bound. # * **Machine Type**: nested virtualization can only be enabled on # boost configurations that specify a # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::BoostConfig#machine_type machine_type} # in the N1 or N2 machine series. # @!attribute [rw] pool_size # @return [::Integer] # Optional. The number of boost VMs that the system should keep idle so # that workstations can be boosted quickly. Defaults to `0`. # @!attribute [rw] reservation_affinity # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::ReservationAffinity] # Optional. # [ReservationAffinity](https://cloud.google.com/compute/docs/instances/reserving-zonal-resources) # specifies a reservation that can be consumed to create boost VM # instances. If SPECIFIC_RESERVATION is specified, Cloud Workstations # will only create VMs in the zone where the reservation is located. # This would affect availability since the service will no longer be # resilient to zonal outages. If ANY_RESERVATION is specified, creating # reservations in both zones that the config creates VMs in will ensure # higher availability. # **Important Considerations for Reservation Affinity:** # # * This feature is intended for advanced users and requires # familiarity with Google Compute Engine reservations. # * Using reservations incurs charges, regardless of utilization. # * The resources in the pool will consume the specified # reservation. Take this into account when setting the # pool size. class BoostConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # ReservationAffinity is the configuration of the desired reservation # from which instances can consume resources. # @!attribute [rw] consume_reservation_type # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::ReservationAffinity::Type] # Optional. Corresponds to the type of reservation consumption. # @!attribute [rw] key # @return [::String] # Optional. Corresponds to the label key of reservation resource. # @!attribute [rw] values # @return [::Array<::String>] # Optional. Corresponds to the label values of reservation resources. # Valid values are either the name of a reservation in the same project # or "projects/\\{project}/reservations/\\{reservation}" to target a shared # reservation in the same zone but in a different project. class ReservationAffinity include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # Indicates whether to consume capacity from a reservation or not. module Type # Default value. This should not be used. TYPE_UNSPECIFIED = 0 # Do not consume from any reserved capacity. NO_RESERVATION = 1 # Consume any reservation available. ANY_RESERVATION = 2 # Must consume from a specific reservation. Must specify key value # fields for specifying the reservations. SPECIFIC_RESERVATION = 3 end end # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class VmTagsEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class InstanceMetadataEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end end end # A directory to persist across workstation sessions. Updates to this field # will not update existing workstations and will only take effect on new # workstations. # @!attribute [rw] gce_pd # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk] # A PersistentDirectory backed by a Compute Engine persistent disk. # # Note: The following fields are mutually exclusive: `gce_pd`, `gce_hd`. If a field in that set is populated, all other fields in the set will automatically be cleared. # @!attribute [rw] gce_hd # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceHyperdiskBalancedHighAvailability] # A PersistentDirectory backed by a Compute Engine hyperdisk high # availability disk. # # Note: The following fields are mutually exclusive: `gce_hd`, `gce_pd`. If a field in that set is populated, all other fields in the set will automatically be cleared. # @!attribute [rw] mount_path # @return [::String] # Optional. Location of this directory in the running workstation. class PersistentDirectory include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # A Persistent Directory backed by a Compute Engine regional persistent # disk. The # {::Google::Cloud::Workstations::V1beta::WorkstationConfig#persistent_directories persistent_directories} # field is repeated, but it may contain only one entry. It creates a # [persistent # disk](https://cloud.google.com/compute/docs/disks/persistent-disks) that # mounts to the workstation VM at `/home` when the session starts and # detaches when the session ends. If this field is empty, workstations # created with this configuration do not have a persistent home # directory. # @!attribute [rw] size_gb # @return [::Integer] # Optional. The GB capacity of a persistent home directory for each # workstation created with this configuration. Must be empty if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk#source_snapshot source_snapshot} # is set. # # Valid values are `10`, `50`, `100`, `200`, `500`, or `1000`. # Defaults to `200`. If less than `200` GB, the # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk#disk_type disk_type} # must be # `"pd-balanced"` or `"pd-ssd"`. # @!attribute [rw] max_size_gb # @return [::Integer] # Optional. Maximum size in GB to which this persistent directory can be # resized. Defaults to unlimited if not set. # @!attribute [rw] fs_type # @return [::String] # Optional. Type of file system that the disk should be formatted with. # The workstation image must support this file system type. Must be empty # if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk#source_snapshot source_snapshot} # is set. Defaults to `"ext4"`. # @!attribute [rw] disk_type # @return [::String] # Optional. The [type of the persistent # disk](https://cloud.google.com/compute/docs/disks#disk-types) for the # home directory. Defaults to `"pd-standard"`. # @!attribute [rw] source_snapshot # @return [::String] # Optional. Name of the snapshot to use as the source for the disk. If # set, # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk#size_gb size_gb} # and # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk#fs_type fs_type} # must be empty. Must be formatted as ext4 file system with no # partitions. # @!attribute [rw] reclaim_policy # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk::ReclaimPolicy] # Optional. Whether the persistent disk should be deleted when the # workstation is deleted. Valid values are `DELETE` and `RETAIN`. # Defaults to `DELETE`. # @!attribute [rw] archive_timeout # @return [::Google::Protobuf::Duration] # Optional. Number of seconds to wait after initially creating or # subsequently shutting down the workstation before converting its disk # into a snapshot. This generally saves costs at the expense of greater # startup time on next workstation start, as the service will need to # create a disk from the archival snapshot. # # A value of `"0s"` indicates that the disk will never be archived. class GceRegionalPersistentDisk include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # Value representing what should happen to the disk after the workstation # is deleted. module ReclaimPolicy # Do not use. RECLAIM_POLICY_UNSPECIFIED = 0 # Delete the persistent disk when deleting the workstation. DELETE = 1 # Keep the persistent disk when deleting the workstation. # An administrator must manually delete the disk. RETAIN = 2 end end # A Persistent Directory backed by a Compute Engine # [Hyperdisk Balanced High Availability # Disk](https://cloud.google.com/compute/docs/disks/hd-types/hyperdisk-balanced-ha). # This is a high-availability block storage solution that offers a balance # between performance and cost for most general-purpose workloads. # @!attribute [rw] size_gb # @return [::Integer] # Optional. The GB capacity of a persistent home directory for each # workstation created with this configuration. Must be empty if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceHyperdiskBalancedHighAvailability#source_snapshot source_snapshot} # is set. # # Valid values are `10`, `50`, `100`, `200`, `500`, or `1000`. # Defaults to `200`. # @!attribute [rw] max_size_gb # @return [::Integer] # Optional. Maximum size in GB to which this persistent directory can be # resized. Defaults to unlimited if not set. # @!attribute [rw] source_snapshot # @return [::String] # Optional. Name of the snapshot to use as the source for the disk. If # set, # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceHyperdiskBalancedHighAvailability#size_gb size_gb} # must be empty. Must be formatted as ext4 file system with no # partitions. # @!attribute [rw] reclaim_policy # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceHyperdiskBalancedHighAvailability::ReclaimPolicy] # Optional. Whether the persistent disk should be deleted when the # workstation is deleted. Valid values are `DELETE` and `RETAIN`. # Defaults to `DELETE`. # @!attribute [rw] archive_timeout # @return [::Google::Protobuf::Duration] # Optional. Number of seconds to wait after initially creating or # subsequently shutting down the workstation before converting its disk # into a snapshot. This generally saves costs at the expense of greater # startup time on next workstation start, as the service will need to # create a disk from the archival snapshot. # # A value of `"0s"` indicates that the disk will never be archived. class GceHyperdiskBalancedHighAvailability include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # Value representing what should happen to the disk after the workstation # is deleted. module ReclaimPolicy # Do not use. RECLAIM_POLICY_UNSPECIFIED = 0 # Delete the persistent disk when deleting the workstation. DELETE = 1 # Keep the persistent disk when deleting the workstation. # An administrator must manually delete the disk. RETAIN = 2 end end end # An ephemeral directory which won't persist across workstation sessions. It # is freshly created on every workstation start operation. # @!attribute [rw] gce_pd # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk] # An EphemeralDirectory backed by a Compute Engine persistent disk. # @!attribute [rw] mount_path # @return [::String] # Required. Location of this directory in the running workstation. class EphemeralDirectory include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # An EphemeralDirectory is backed by a Compute Engine persistent disk. # @!attribute [rw] disk_type # @return [::String] # Optional. Type of the disk to use. Defaults to `"pd-standard"`. # @!attribute [rw] source_snapshot # @return [::String] # Optional. Name of the snapshot to use as the source for the disk. Must # be empty if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#source_image source_image} # is set. Must be empty if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#read_only read_only} # is false. Updating # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#source_snapshot source_snapshot} # will update content in the ephemeral directory after the workstation is # restarted. # # Only file systems supported by Container-Optimized OS (COS) # are explicitly supported. For a list of supported file systems, see # [the filesystems available in Container-Optimized # OS](https://cloud.google.com/container-optimized-os/docs/concepts/supported-filesystems). # # This field is mutable. # @!attribute [rw] source_image # @return [::String] # Optional. Name of the disk image to use as the source for the disk. # Must be empty if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#source_snapshot source_snapshot} # is set. Updating # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#source_image source_image} # will update content in the ephemeral directory after the workstation is # restarted. # # Only file systems supported by Container-Optimized OS (COS) # are explicitly supported. For a list of supported file systems, please # refer to the [COS # documentation](https://cloud.google.com/container-optimized-os/docs/concepts/supported-filesystems). # # This field is mutable. # @!attribute [rw] read_only # @return [::Boolean] # Optional. Whether the disk is read only. If true, the disk may be # shared by multiple VMs and # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#source_snapshot source_snapshot} # must be set. class GcePersistentDisk include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end end # A Docker container. # @!attribute [rw] image # @return [::String] # Optional. A Docker container image that defines a custom environment. # # Cloud Workstations provides a number of # [preconfigured # images](https://cloud.google.com/workstations/docs/preconfigured-base-images), # but you can create your own # [custom container # images](https://cloud.google.com/workstations/docs/custom-container-images). # If using a private image, the `host.gceInstance.serviceAccount` field # must be specified in the workstation configuration. # If using a custom container image, the service account must have # [Artifact Registry # Reader](https://cloud.google.com/artifact-registry/docs/access-control#roles) # permission to pull the specified image. Otherwise, the image must be # publicly accessible. # @!attribute [rw] command # @return [::Array<::String>] # Optional. If set, overrides the default ENTRYPOINT specified by the # image. # @!attribute [rw] args # @return [::Array<::String>] # Optional. Arguments passed to the entrypoint. # @!attribute [rw] env # @return [::Google::Protobuf::Map{::String => ::String}] # Optional. Environment variables passed to the container's entrypoint. # @!attribute [rw] working_dir # @return [::String] # Optional. If set, overrides the default DIR specified by the image. # @!attribute [rw] run_as_user # @return [::Integer] # Optional. If set, overrides the USER specified in the image with the # given uid. class Container include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class EnvEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end end # A customer-managed encryption key (CMEK) for the Compute Engine # resources of the associated workstation configuration. Specify the name of # your Cloud KMS encryption key and the default service account. # We recommend that you use a separate service account and follow # [Cloud KMS best # practices](https://cloud.google.com/kms/docs/separation-of-duties). # @!attribute [rw] kms_key # @return [::String] # Immutable. The name of the Google Cloud KMS encryption key. For example, # `"projects/PROJECT_ID/locations/REGION/keyRings/KEY_RING/cryptoKeys/KEY_NAME"`. # The key must be in the same region as the workstation configuration. # @!attribute [rw] kms_key_service_account # @return [::String] # Immutable. The service account to use with the specified # KMS key. We recommend that you use a separate service account # and follow KMS best practices. For more information, see # [Separation of # duties](https://cloud.google.com/kms/docs/separation-of-duties) and # `gcloud kms keys add-iam-policy-binding` # [`--member`](https://cloud.google.com/sdk/gcloud/reference/kms/keys/add-iam-policy-binding#--member). class CustomerEncryptionKey include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # A readiness check to be performed on a workstation. # @!attribute [rw] path # @return [::String] # Optional. Path to which the request should be sent. # @!attribute [rw] port # @return [::Integer] # Optional. Port to which the request should be sent. class ReadinessCheck include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # HTTP options for the running workstations. # @!attribute [rw] allowed_unauthenticated_cors_preflight_requests # @return [::Boolean] # Optional. By default, the workstations service makes sure that all # requests to the workstation are authenticated. CORS preflight requests do # not include cookies or custom headers, and so are considered # unauthenticated and blocked by the workstations service. Enabling this # option allows these unauthenticated CORS preflight requests through to # the workstation, where it becomes the responsibility of the destination # server in the workstation to validate the request. # @!attribute [rw] disable_localhost_replacement # @return [::Boolean] # Optional. By default, the workstations service replaces references to # localhost, 127.0.0.1, and 0.0.0.0 with the workstation's hostname in http # responses from the workstation so that applications under development run # properly on the workstation. This may intefere with some applications, # and so this option allows that behavior to be disabled. class HttpOptions include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # A PortRange defines a range of ports. Both # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PortRange#first first} # and # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PortRange#last last} # are inclusive. To specify a single port, both # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PortRange#first first} # and # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PortRange#last last} # should be the same. # @!attribute [rw] first # @return [::Integer] # Required. Starting port number for the current range of ports. # Valid ports are 22, 80, and ports within the range 1024-65535. # @!attribute [rw] last # @return [::Integer] # Required. Ending port number for the current range of ports. # Valid ports are 22, 80, and ports within the range 1024-65535. class PortRange include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class AnnotationsEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class LabelsEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end end |
#running_timeout ⇒ ::Google::Protobuf::Duration
Returns Optional. Number of seconds that a workstation can run until it is automatically shut down. We recommend that workstations be shut down daily to reduce costs and so that security updates can be applied upon restart. The idle_timeout and running_timeout fields are independent of each other. Note that the running_timeout field shuts down VMs after the specified time, regardless of whether or not the VMs are idle.
Provide duration terminated by s for seconds—for example, "54000s"
(15 hours). Defaults to "43200s" (12 hours). A value of "0s" indicates
that workstations using this configuration should never time out. If
encryption_key
is set, it must be greater than "0s" and less than
"86400s" (24 hours).
Warning: A value of "0s" indicates that Cloud Workstations VMs created
with this configuration have no maximum running time. This is strongly
discouraged because you incur costs and will not pick up security updates.
420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 |
# File 'proto_docs/google/cloud/workstations/v1beta/workstations.rb', line 420 class WorkstationConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # Runtime host for a workstation. # @!attribute [rw] gce_instance # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance] # Specifies a Compute Engine instance as the host. class Host include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # A runtime using a Compute Engine instance. # @!attribute [rw] machine_type # @return [::String] # Optional. The type of machine to use for VM instances—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). # @!attribute [rw] service_account # @return [::String] # Optional. The email address of the service account for Cloud # Workstations VMs created with this configuration. When specified, be # sure that the service account has `logging.logEntries.create` and # `monitoring.timeSeries.create` permissions on the project so it can # write logs out to Cloud Logging. If using a custom container image, the # service account must have [Artifact Registry # Reader](https://cloud.google.com/artifact-registry/docs/access-control#roles) # permission to pull the specified image. # # If you as the administrator want to be able to `ssh` into the # underlying VM, you need to set this value to a service account # for which you have the `iam.serviceAccounts.actAs` permission. # Conversely, if you don't want anyone to be able to `ssh` into the # underlying VM, use a service account where no one has that # permission. # # If not set, VMs run with a service account provided by the # Cloud Workstations service, and the image must be publicly # accessible. # @!attribute [rw] service_account_scopes # @return [::Array<::String>] # Optional. Scopes to grant to the # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance#service_account service_account}. # When specified, users of workstations under this configuration must # have `iam.serviceAccounts.actAs` on the service account. # @!attribute [rw] tags # @return [::Array<::String>] # Optional. Network tags to add to the Compute Engine VMs backing the # workstations. This option applies # [network # tags](https://cloud.google.com/vpc/docs/add-remove-network-tags) to VMs # created with this configuration. These network tags enable the creation # of [firewall # rules](https://cloud.google.com/workstations/docs/configure-firewall-rules). # @!attribute [rw] pool_size # @return [::Integer] # Optional. The number of VMs that the system should keep idle so that # new workstations can be started quickly for new users. Defaults to `0` # in the API. # @!attribute [r] pooled_instances # @return [::Integer] # Output only. Number of instances currently available in the pool for # faster workstation startup. # @!attribute [rw] disable_public_ip_addresses # @return [::Boolean] # Optional. When set to true, disables public IP addresses for VMs. If # you disable public IP addresses, you must set up Private Google Access # or Cloud NAT on your network. If you use Private Google Access and you # use `private.googleapis.com` or `restricted.googleapis.com` for # Container Registry and Artifact Registry, make sure that you set # up DNS records for domains `*.gcr.io` and `*.pkg.dev`. # Defaults to false (VMs have public IP addresses). # @!attribute [rw] enable_nested_virtualization # @return [::Boolean] # Optional. Whether to enable nested virtualization on Cloud Workstations # VMs created using this workstation configuration. # # Defaults to false. # # Nested virtualization lets you run virtual machine (VM) instances # inside your workstation. Before enabling nested virtualization, # consider the following important considerations. Cloud Workstations # instances are subject to the [same restrictions as Compute Engine # instances](https://cloud.google.com/compute/docs/instances/nested-virtualization/overview#restrictions): # # * **Organization policy**: projects, folders, or # organizations may be restricted from creating nested VMs if the # **Disable VM nested virtualization** constraint is enforced in # the organization policy. For more information, see the # Compute Engine section, # [Checking whether nested virtualization is # allowed](https://cloud.google.com/compute/docs/instances/nested-virtualization/managing-constraint#checking_whether_nested_virtualization_is_allowed). # * **Performance**: nested VMs might experience a 10% or greater # decrease in performance for workloads that are CPU-bound and # possibly greater than a 10% decrease for workloads that are # input/output bound. # * **Machine Type**: nested virtualization can only be enabled on # workstation configurations that specify a # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance#machine_type machine_type} # in the N1 or N2 machine series. # @!attribute [rw] shielded_instance_config # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::GceShieldedInstanceConfig] # Optional. A set of Compute Engine Shielded instance options. # @!attribute [rw] confidential_instance_config # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::GceConfidentialInstanceConfig] # Optional. A set of Compute Engine Confidential VM instance options. # @!attribute [rw] boot_disk_size_gb # @return [::Integer] # Optional. The size of the boot disk for the VM in gigabytes (GB). # The minimum boot disk size is `30` GB. Defaults to `50` GB. # @!attribute [rw] accelerators # @return [::Array<::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::Accelerator>] # Optional. A list of the type and count of accelerator cards attached to # the instance. # @!attribute [rw] boost_configs # @return [::Array<::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::BoostConfig>] # Optional. A list of the boost configurations that workstations created # using this workstation configuration are allowed to use. If specified, # users will have the option to choose from the list of boost configs # when starting a workstation. # @!attribute [rw] disable_ssh # @return [::Boolean] # Optional. Whether to disable SSH access to the VM. # @!attribute [rw] vm_tags # @return [::Google::Protobuf::Map{::String => ::String}] # Optional. Resource manager tags to be bound to this instance. # Tag keys and values have the same definition as [resource manager # tags](https://cloud.google.com/resource-manager/docs/tags/tags-overview). # Keys must be in the format `tagKeys/{tag_key_id}`, and # values are in the format `tagValues/456`. # @!attribute [rw] reservation_affinity # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::ReservationAffinity] # Optional. # [ReservationAffinity](https://cloud.google.com/compute/docs/instances/reserving-zonal-resources) # specifies a reservation that can be consumed to create VM # instances. If SPECIFIC_RESERVATION is specified, Cloud Workstations # will only create VMs in the zone where the reservation is located. # This would affect availability since the service will no longer be # resilient to zonal outages. If ANY_RESERVATION is specified, creating # reservations in both zones that the config creates VMs in will ensure # higher availability. # **Important Considerations for Reservation Affinity:** # # * This feature is intended for advanced users and requires # familiarity with Google Compute Engine reservations. # * Using reservations incurs charges, regardless of utilization. # * The resources in the pool will consume the specified # reservation. Take this into account when setting the # pool size. # @!attribute [rw] startup_script_uri # @return [::String] # Optional. Link to the startup script stored in Cloud Storage. This # script will be run on the host workstation VM when the VM is created. # The URI must be of the form gs://\\{bucket-name}/\\{object-name}. If # specifying a startup script, the service account must have [Permission # to access the bucket and script file in Cloud # Storage](https://cloud.google.com/storage/docs/access-control/iam-permissions). # Otherwise, the script must be publicly accessible. # Note that the service regularly updates the OS version of the host VM, # and it is the responsibility of the user to ensure the script stays # compatible with the OS version. # @!attribute [rw] instance_metadata # @return [::Google::Protobuf::Map{::String => ::String}] # Optional. Custom metadata to apply to Compute Engine instances. class GceInstance include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # A set of Compute Engine Shielded instance options. # @!attribute [rw] enable_secure_boot # @return [::Boolean] # Optional. Whether the instance has Secure Boot enabled. # @!attribute [rw] enable_vtpm # @return [::Boolean] # Optional. Whether the instance has the vTPM enabled. # @!attribute [rw] enable_integrity_monitoring # @return [::Boolean] # Optional. Whether the instance has integrity monitoring enabled. class GceShieldedInstanceConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # A set of Compute Engine Confidential VM instance options. # @!attribute [rw] enable_confidential_compute # @return [::Boolean] # Optional. Whether the instance has confidential compute enabled. class GceConfidentialInstanceConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # An accelerator card attached to the instance. # @!attribute [rw] type # @return [::String] # Optional. Type of accelerator resource to attach to the instance, for # example, # `"nvidia-tesla-p100"`. # @!attribute [rw] count # @return [::Integer] # Optional. Number of accelerator cards exposed to the instance. class Accelerator include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # A boost configuration is a set of resources that a workstation can use # to increase its performance. If you specify a boost configuration, upon # startup, workstation users can choose to use a VM provisioned under the # boost config by passing the boost config ID in the start request. If # the workstation user does not provide a boost config ID in the start # request, the system will choose a VM from the pool provisioned under # the default config. # @!attribute [rw] id # @return [::String] # Required. The ID to be used for the boost configuration. # @!attribute [rw] machine_type # @return [::String] # Optional. 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`. # @!attribute [rw] accelerators # @return [::Array<::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::Accelerator>] # Optional. A list of the type and count of accelerator cards attached # to the boost instance. Defaults to `none`. # @!attribute [rw] boot_disk_size_gb # @return [::Integer] # Optional. The size of the boot disk for the VM in gigabytes (GB). # The minimum boot disk size is `30` GB. Defaults to `50` GB. # @!attribute [rw] enable_nested_virtualization # @return [::Boolean] # Optional. Whether to enable nested virtualization on boosted Cloud # Workstations VMs running using this boost configuration. # # Defaults to false. # # Nested virtualization lets you run virtual machine (VM) instances # inside your workstation. Before enabling nested virtualization, # consider the following important considerations. Cloud Workstations # instances are subject to the [same restrictions as Compute Engine # instances](https://cloud.google.com/compute/docs/instances/nested-virtualization/overview#restrictions): # # * **Organization policy**: projects, folders, or # organizations may be restricted from creating nested VMs if the # **Disable VM nested virtualization** constraint is enforced in # the organization policy. For more information, see the # Compute Engine section, # [Checking whether nested virtualization is # allowed](https://cloud.google.com/compute/docs/instances/nested-virtualization/managing-constraint#checking_whether_nested_virtualization_is_allowed). # * **Performance**: nested VMs might experience a 10% or greater # decrease in performance for workloads that are CPU-bound and # possibly greater than a 10% decrease for workloads that are # input/output bound. # * **Machine Type**: nested virtualization can only be enabled on # boost configurations that specify a # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::BoostConfig#machine_type machine_type} # in the N1 or N2 machine series. # @!attribute [rw] pool_size # @return [::Integer] # Optional. The number of boost VMs that the system should keep idle so # that workstations can be boosted quickly. Defaults to `0`. # @!attribute [rw] reservation_affinity # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::ReservationAffinity] # Optional. # [ReservationAffinity](https://cloud.google.com/compute/docs/instances/reserving-zonal-resources) # specifies a reservation that can be consumed to create boost VM # instances. If SPECIFIC_RESERVATION is specified, Cloud Workstations # will only create VMs in the zone where the reservation is located. # This would affect availability since the service will no longer be # resilient to zonal outages. If ANY_RESERVATION is specified, creating # reservations in both zones that the config creates VMs in will ensure # higher availability. # **Important Considerations for Reservation Affinity:** # # * This feature is intended for advanced users and requires # familiarity with Google Compute Engine reservations. # * Using reservations incurs charges, regardless of utilization. # * The resources in the pool will consume the specified # reservation. Take this into account when setting the # pool size. class BoostConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # ReservationAffinity is the configuration of the desired reservation # from which instances can consume resources. # @!attribute [rw] consume_reservation_type # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::ReservationAffinity::Type] # Optional. Corresponds to the type of reservation consumption. # @!attribute [rw] key # @return [::String] # Optional. Corresponds to the label key of reservation resource. # @!attribute [rw] values # @return [::Array<::String>] # Optional. Corresponds to the label values of reservation resources. # Valid values are either the name of a reservation in the same project # or "projects/\\{project}/reservations/\\{reservation}" to target a shared # reservation in the same zone but in a different project. class ReservationAffinity include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # Indicates whether to consume capacity from a reservation or not. module Type # Default value. This should not be used. TYPE_UNSPECIFIED = 0 # Do not consume from any reserved capacity. NO_RESERVATION = 1 # Consume any reservation available. ANY_RESERVATION = 2 # Must consume from a specific reservation. Must specify key value # fields for specifying the reservations. SPECIFIC_RESERVATION = 3 end end # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class VmTagsEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class InstanceMetadataEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end end end # A directory to persist across workstation sessions. Updates to this field # will not update existing workstations and will only take effect on new # workstations. # @!attribute [rw] gce_pd # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk] # A PersistentDirectory backed by a Compute Engine persistent disk. # # Note: The following fields are mutually exclusive: `gce_pd`, `gce_hd`. If a field in that set is populated, all other fields in the set will automatically be cleared. # @!attribute [rw] gce_hd # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceHyperdiskBalancedHighAvailability] # A PersistentDirectory backed by a Compute Engine hyperdisk high # availability disk. # # Note: The following fields are mutually exclusive: `gce_hd`, `gce_pd`. If a field in that set is populated, all other fields in the set will automatically be cleared. # @!attribute [rw] mount_path # @return [::String] # Optional. Location of this directory in the running workstation. class PersistentDirectory include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # A Persistent Directory backed by a Compute Engine regional persistent # disk. The # {::Google::Cloud::Workstations::V1beta::WorkstationConfig#persistent_directories persistent_directories} # field is repeated, but it may contain only one entry. It creates a # [persistent # disk](https://cloud.google.com/compute/docs/disks/persistent-disks) that # mounts to the workstation VM at `/home` when the session starts and # detaches when the session ends. If this field is empty, workstations # created with this configuration do not have a persistent home # directory. # @!attribute [rw] size_gb # @return [::Integer] # Optional. The GB capacity of a persistent home directory for each # workstation created with this configuration. Must be empty if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk#source_snapshot source_snapshot} # is set. # # Valid values are `10`, `50`, `100`, `200`, `500`, or `1000`. # Defaults to `200`. If less than `200` GB, the # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk#disk_type disk_type} # must be # `"pd-balanced"` or `"pd-ssd"`. # @!attribute [rw] max_size_gb # @return [::Integer] # Optional. Maximum size in GB to which this persistent directory can be # resized. Defaults to unlimited if not set. # @!attribute [rw] fs_type # @return [::String] # Optional. Type of file system that the disk should be formatted with. # The workstation image must support this file system type. Must be empty # if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk#source_snapshot source_snapshot} # is set. Defaults to `"ext4"`. # @!attribute [rw] disk_type # @return [::String] # Optional. The [type of the persistent # disk](https://cloud.google.com/compute/docs/disks#disk-types) for the # home directory. Defaults to `"pd-standard"`. # @!attribute [rw] source_snapshot # @return [::String] # Optional. Name of the snapshot to use as the source for the disk. If # set, # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk#size_gb size_gb} # and # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk#fs_type fs_type} # must be empty. Must be formatted as ext4 file system with no # partitions. # @!attribute [rw] reclaim_policy # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk::ReclaimPolicy] # Optional. Whether the persistent disk should be deleted when the # workstation is deleted. Valid values are `DELETE` and `RETAIN`. # Defaults to `DELETE`. # @!attribute [rw] archive_timeout # @return [::Google::Protobuf::Duration] # Optional. Number of seconds to wait after initially creating or # subsequently shutting down the workstation before converting its disk # into a snapshot. This generally saves costs at the expense of greater # startup time on next workstation start, as the service will need to # create a disk from the archival snapshot. # # A value of `"0s"` indicates that the disk will never be archived. class GceRegionalPersistentDisk include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # Value representing what should happen to the disk after the workstation # is deleted. module ReclaimPolicy # Do not use. RECLAIM_POLICY_UNSPECIFIED = 0 # Delete the persistent disk when deleting the workstation. DELETE = 1 # Keep the persistent disk when deleting the workstation. # An administrator must manually delete the disk. RETAIN = 2 end end # A Persistent Directory backed by a Compute Engine # [Hyperdisk Balanced High Availability # Disk](https://cloud.google.com/compute/docs/disks/hd-types/hyperdisk-balanced-ha). # This is a high-availability block storage solution that offers a balance # between performance and cost for most general-purpose workloads. # @!attribute [rw] size_gb # @return [::Integer] # Optional. The GB capacity of a persistent home directory for each # workstation created with this configuration. Must be empty if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceHyperdiskBalancedHighAvailability#source_snapshot source_snapshot} # is set. # # Valid values are `10`, `50`, `100`, `200`, `500`, or `1000`. # Defaults to `200`. # @!attribute [rw] max_size_gb # @return [::Integer] # Optional. Maximum size in GB to which this persistent directory can be # resized. Defaults to unlimited if not set. # @!attribute [rw] source_snapshot # @return [::String] # Optional. Name of the snapshot to use as the source for the disk. If # set, # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceHyperdiskBalancedHighAvailability#size_gb size_gb} # must be empty. Must be formatted as ext4 file system with no # partitions. # @!attribute [rw] reclaim_policy # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceHyperdiskBalancedHighAvailability::ReclaimPolicy] # Optional. Whether the persistent disk should be deleted when the # workstation is deleted. Valid values are `DELETE` and `RETAIN`. # Defaults to `DELETE`. # @!attribute [rw] archive_timeout # @return [::Google::Protobuf::Duration] # Optional. Number of seconds to wait after initially creating or # subsequently shutting down the workstation before converting its disk # into a snapshot. This generally saves costs at the expense of greater # startup time on next workstation start, as the service will need to # create a disk from the archival snapshot. # # A value of `"0s"` indicates that the disk will never be archived. class GceHyperdiskBalancedHighAvailability include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # Value representing what should happen to the disk after the workstation # is deleted. module ReclaimPolicy # Do not use. RECLAIM_POLICY_UNSPECIFIED = 0 # Delete the persistent disk when deleting the workstation. DELETE = 1 # Keep the persistent disk when deleting the workstation. # An administrator must manually delete the disk. RETAIN = 2 end end end # An ephemeral directory which won't persist across workstation sessions. It # is freshly created on every workstation start operation. # @!attribute [rw] gce_pd # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk] # An EphemeralDirectory backed by a Compute Engine persistent disk. # @!attribute [rw] mount_path # @return [::String] # Required. Location of this directory in the running workstation. class EphemeralDirectory include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # An EphemeralDirectory is backed by a Compute Engine persistent disk. # @!attribute [rw] disk_type # @return [::String] # Optional. Type of the disk to use. Defaults to `"pd-standard"`. # @!attribute [rw] source_snapshot # @return [::String] # Optional. Name of the snapshot to use as the source for the disk. Must # be empty if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#source_image source_image} # is set. Must be empty if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#read_only read_only} # is false. Updating # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#source_snapshot source_snapshot} # will update content in the ephemeral directory after the workstation is # restarted. # # Only file systems supported by Container-Optimized OS (COS) # are explicitly supported. For a list of supported file systems, see # [the filesystems available in Container-Optimized # OS](https://cloud.google.com/container-optimized-os/docs/concepts/supported-filesystems). # # This field is mutable. # @!attribute [rw] source_image # @return [::String] # Optional. Name of the disk image to use as the source for the disk. # Must be empty if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#source_snapshot source_snapshot} # is set. Updating # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#source_image source_image} # will update content in the ephemeral directory after the workstation is # restarted. # # Only file systems supported by Container-Optimized OS (COS) # are explicitly supported. For a list of supported file systems, please # refer to the [COS # documentation](https://cloud.google.com/container-optimized-os/docs/concepts/supported-filesystems). # # This field is mutable. # @!attribute [rw] read_only # @return [::Boolean] # Optional. Whether the disk is read only. If true, the disk may be # shared by multiple VMs and # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#source_snapshot source_snapshot} # must be set. class GcePersistentDisk include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end end # A Docker container. # @!attribute [rw] image # @return [::String] # Optional. A Docker container image that defines a custom environment. # # Cloud Workstations provides a number of # [preconfigured # images](https://cloud.google.com/workstations/docs/preconfigured-base-images), # but you can create your own # [custom container # images](https://cloud.google.com/workstations/docs/custom-container-images). # If using a private image, the `host.gceInstance.serviceAccount` field # must be specified in the workstation configuration. # If using a custom container image, the service account must have # [Artifact Registry # Reader](https://cloud.google.com/artifact-registry/docs/access-control#roles) # permission to pull the specified image. Otherwise, the image must be # publicly accessible. # @!attribute [rw] command # @return [::Array<::String>] # Optional. If set, overrides the default ENTRYPOINT specified by the # image. # @!attribute [rw] args # @return [::Array<::String>] # Optional. Arguments passed to the entrypoint. # @!attribute [rw] env # @return [::Google::Protobuf::Map{::String => ::String}] # Optional. Environment variables passed to the container's entrypoint. # @!attribute [rw] working_dir # @return [::String] # Optional. If set, overrides the default DIR specified by the image. # @!attribute [rw] run_as_user # @return [::Integer] # Optional. If set, overrides the USER specified in the image with the # given uid. class Container include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class EnvEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end end # A customer-managed encryption key (CMEK) for the Compute Engine # resources of the associated workstation configuration. Specify the name of # your Cloud KMS encryption key and the default service account. # We recommend that you use a separate service account and follow # [Cloud KMS best # practices](https://cloud.google.com/kms/docs/separation-of-duties). # @!attribute [rw] kms_key # @return [::String] # Immutable. The name of the Google Cloud KMS encryption key. For example, # `"projects/PROJECT_ID/locations/REGION/keyRings/KEY_RING/cryptoKeys/KEY_NAME"`. # The key must be in the same region as the workstation configuration. # @!attribute [rw] kms_key_service_account # @return [::String] # Immutable. The service account to use with the specified # KMS key. We recommend that you use a separate service account # and follow KMS best practices. For more information, see # [Separation of # duties](https://cloud.google.com/kms/docs/separation-of-duties) and # `gcloud kms keys add-iam-policy-binding` # [`--member`](https://cloud.google.com/sdk/gcloud/reference/kms/keys/add-iam-policy-binding#--member). class CustomerEncryptionKey include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # A readiness check to be performed on a workstation. # @!attribute [rw] path # @return [::String] # Optional. Path to which the request should be sent. # @!attribute [rw] port # @return [::Integer] # Optional. Port to which the request should be sent. class ReadinessCheck include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # HTTP options for the running workstations. # @!attribute [rw] allowed_unauthenticated_cors_preflight_requests # @return [::Boolean] # Optional. By default, the workstations service makes sure that all # requests to the workstation are authenticated. CORS preflight requests do # not include cookies or custom headers, and so are considered # unauthenticated and blocked by the workstations service. Enabling this # option allows these unauthenticated CORS preflight requests through to # the workstation, where it becomes the responsibility of the destination # server in the workstation to validate the request. # @!attribute [rw] disable_localhost_replacement # @return [::Boolean] # Optional. By default, the workstations service replaces references to # localhost, 127.0.0.1, and 0.0.0.0 with the workstation's hostname in http # responses from the workstation so that applications under development run # properly on the workstation. This may intefere with some applications, # and so this option allows that behavior to be disabled. class HttpOptions include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # A PortRange defines a range of ports. Both # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PortRange#first first} # and # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PortRange#last last} # are inclusive. To specify a single port, both # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PortRange#first first} # and # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PortRange#last last} # should be the same. # @!attribute [rw] first # @return [::Integer] # Required. Starting port number for the current range of ports. # Valid ports are 22, 80, and ports within the range 1024-65535. # @!attribute [rw] last # @return [::Integer] # Required. Ending port number for the current range of ports. # Valid ports are 22, 80, and ports within the range 1024-65535. class PortRange include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class AnnotationsEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class LabelsEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end end |
#satisfies_pzi ⇒ ::Boolean (readonly)
Returns Output only. Reserved for future use.
420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 |
# File 'proto_docs/google/cloud/workstations/v1beta/workstations.rb', line 420 class WorkstationConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # Runtime host for a workstation. # @!attribute [rw] gce_instance # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance] # Specifies a Compute Engine instance as the host. class Host include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # A runtime using a Compute Engine instance. # @!attribute [rw] machine_type # @return [::String] # Optional. The type of machine to use for VM instances—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). # @!attribute [rw] service_account # @return [::String] # Optional. The email address of the service account for Cloud # Workstations VMs created with this configuration. When specified, be # sure that the service account has `logging.logEntries.create` and # `monitoring.timeSeries.create` permissions on the project so it can # write logs out to Cloud Logging. If using a custom container image, the # service account must have [Artifact Registry # Reader](https://cloud.google.com/artifact-registry/docs/access-control#roles) # permission to pull the specified image. # # If you as the administrator want to be able to `ssh` into the # underlying VM, you need to set this value to a service account # for which you have the `iam.serviceAccounts.actAs` permission. # Conversely, if you don't want anyone to be able to `ssh` into the # underlying VM, use a service account where no one has that # permission. # # If not set, VMs run with a service account provided by the # Cloud Workstations service, and the image must be publicly # accessible. # @!attribute [rw] service_account_scopes # @return [::Array<::String>] # Optional. Scopes to grant to the # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance#service_account service_account}. # When specified, users of workstations under this configuration must # have `iam.serviceAccounts.actAs` on the service account. # @!attribute [rw] tags # @return [::Array<::String>] # Optional. Network tags to add to the Compute Engine VMs backing the # workstations. This option applies # [network # tags](https://cloud.google.com/vpc/docs/add-remove-network-tags) to VMs # created with this configuration. These network tags enable the creation # of [firewall # rules](https://cloud.google.com/workstations/docs/configure-firewall-rules). # @!attribute [rw] pool_size # @return [::Integer] # Optional. The number of VMs that the system should keep idle so that # new workstations can be started quickly for new users. Defaults to `0` # in the API. # @!attribute [r] pooled_instances # @return [::Integer] # Output only. Number of instances currently available in the pool for # faster workstation startup. # @!attribute [rw] disable_public_ip_addresses # @return [::Boolean] # Optional. When set to true, disables public IP addresses for VMs. If # you disable public IP addresses, you must set up Private Google Access # or Cloud NAT on your network. If you use Private Google Access and you # use `private.googleapis.com` or `restricted.googleapis.com` for # Container Registry and Artifact Registry, make sure that you set # up DNS records for domains `*.gcr.io` and `*.pkg.dev`. # Defaults to false (VMs have public IP addresses). # @!attribute [rw] enable_nested_virtualization # @return [::Boolean] # Optional. Whether to enable nested virtualization on Cloud Workstations # VMs created using this workstation configuration. # # Defaults to false. # # Nested virtualization lets you run virtual machine (VM) instances # inside your workstation. Before enabling nested virtualization, # consider the following important considerations. Cloud Workstations # instances are subject to the [same restrictions as Compute Engine # instances](https://cloud.google.com/compute/docs/instances/nested-virtualization/overview#restrictions): # # * **Organization policy**: projects, folders, or # organizations may be restricted from creating nested VMs if the # **Disable VM nested virtualization** constraint is enforced in # the organization policy. For more information, see the # Compute Engine section, # [Checking whether nested virtualization is # allowed](https://cloud.google.com/compute/docs/instances/nested-virtualization/managing-constraint#checking_whether_nested_virtualization_is_allowed). # * **Performance**: nested VMs might experience a 10% or greater # decrease in performance for workloads that are CPU-bound and # possibly greater than a 10% decrease for workloads that are # input/output bound. # * **Machine Type**: nested virtualization can only be enabled on # workstation configurations that specify a # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance#machine_type machine_type} # in the N1 or N2 machine series. # @!attribute [rw] shielded_instance_config # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::GceShieldedInstanceConfig] # Optional. A set of Compute Engine Shielded instance options. # @!attribute [rw] confidential_instance_config # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::GceConfidentialInstanceConfig] # Optional. A set of Compute Engine Confidential VM instance options. # @!attribute [rw] boot_disk_size_gb # @return [::Integer] # Optional. The size of the boot disk for the VM in gigabytes (GB). # The minimum boot disk size is `30` GB. Defaults to `50` GB. # @!attribute [rw] accelerators # @return [::Array<::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::Accelerator>] # Optional. A list of the type and count of accelerator cards attached to # the instance. # @!attribute [rw] boost_configs # @return [::Array<::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::BoostConfig>] # Optional. A list of the boost configurations that workstations created # using this workstation configuration are allowed to use. If specified, # users will have the option to choose from the list of boost configs # when starting a workstation. # @!attribute [rw] disable_ssh # @return [::Boolean] # Optional. Whether to disable SSH access to the VM. # @!attribute [rw] vm_tags # @return [::Google::Protobuf::Map{::String => ::String}] # Optional. Resource manager tags to be bound to this instance. # Tag keys and values have the same definition as [resource manager # tags](https://cloud.google.com/resource-manager/docs/tags/tags-overview). # Keys must be in the format `tagKeys/{tag_key_id}`, and # values are in the format `tagValues/456`. # @!attribute [rw] reservation_affinity # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::ReservationAffinity] # Optional. # [ReservationAffinity](https://cloud.google.com/compute/docs/instances/reserving-zonal-resources) # specifies a reservation that can be consumed to create VM # instances. If SPECIFIC_RESERVATION is specified, Cloud Workstations # will only create VMs in the zone where the reservation is located. # This would affect availability since the service will no longer be # resilient to zonal outages. If ANY_RESERVATION is specified, creating # reservations in both zones that the config creates VMs in will ensure # higher availability. # **Important Considerations for Reservation Affinity:** # # * This feature is intended for advanced users and requires # familiarity with Google Compute Engine reservations. # * Using reservations incurs charges, regardless of utilization. # * The resources in the pool will consume the specified # reservation. Take this into account when setting the # pool size. # @!attribute [rw] startup_script_uri # @return [::String] # Optional. Link to the startup script stored in Cloud Storage. This # script will be run on the host workstation VM when the VM is created. # The URI must be of the form gs://\\{bucket-name}/\\{object-name}. If # specifying a startup script, the service account must have [Permission # to access the bucket and script file in Cloud # Storage](https://cloud.google.com/storage/docs/access-control/iam-permissions). # Otherwise, the script must be publicly accessible. # Note that the service regularly updates the OS version of the host VM, # and it is the responsibility of the user to ensure the script stays # compatible with the OS version. # @!attribute [rw] instance_metadata # @return [::Google::Protobuf::Map{::String => ::String}] # Optional. Custom metadata to apply to Compute Engine instances. class GceInstance include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # A set of Compute Engine Shielded instance options. # @!attribute [rw] enable_secure_boot # @return [::Boolean] # Optional. Whether the instance has Secure Boot enabled. # @!attribute [rw] enable_vtpm # @return [::Boolean] # Optional. Whether the instance has the vTPM enabled. # @!attribute [rw] enable_integrity_monitoring # @return [::Boolean] # Optional. Whether the instance has integrity monitoring enabled. class GceShieldedInstanceConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # A set of Compute Engine Confidential VM instance options. # @!attribute [rw] enable_confidential_compute # @return [::Boolean] # Optional. Whether the instance has confidential compute enabled. class GceConfidentialInstanceConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # An accelerator card attached to the instance. # @!attribute [rw] type # @return [::String] # Optional. Type of accelerator resource to attach to the instance, for # example, # `"nvidia-tesla-p100"`. # @!attribute [rw] count # @return [::Integer] # Optional. Number of accelerator cards exposed to the instance. class Accelerator include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # A boost configuration is a set of resources that a workstation can use # to increase its performance. If you specify a boost configuration, upon # startup, workstation users can choose to use a VM provisioned under the # boost config by passing the boost config ID in the start request. If # the workstation user does not provide a boost config ID in the start # request, the system will choose a VM from the pool provisioned under # the default config. # @!attribute [rw] id # @return [::String] # Required. The ID to be used for the boost configuration. # @!attribute [rw] machine_type # @return [::String] # Optional. 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`. # @!attribute [rw] accelerators # @return [::Array<::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::Accelerator>] # Optional. A list of the type and count of accelerator cards attached # to the boost instance. Defaults to `none`. # @!attribute [rw] boot_disk_size_gb # @return [::Integer] # Optional. The size of the boot disk for the VM in gigabytes (GB). # The minimum boot disk size is `30` GB. Defaults to `50` GB. # @!attribute [rw] enable_nested_virtualization # @return [::Boolean] # Optional. Whether to enable nested virtualization on boosted Cloud # Workstations VMs running using this boost configuration. # # Defaults to false. # # Nested virtualization lets you run virtual machine (VM) instances # inside your workstation. Before enabling nested virtualization, # consider the following important considerations. Cloud Workstations # instances are subject to the [same restrictions as Compute Engine # instances](https://cloud.google.com/compute/docs/instances/nested-virtualization/overview#restrictions): # # * **Organization policy**: projects, folders, or # organizations may be restricted from creating nested VMs if the # **Disable VM nested virtualization** constraint is enforced in # the organization policy. For more information, see the # Compute Engine section, # [Checking whether nested virtualization is # allowed](https://cloud.google.com/compute/docs/instances/nested-virtualization/managing-constraint#checking_whether_nested_virtualization_is_allowed). # * **Performance**: nested VMs might experience a 10% or greater # decrease in performance for workloads that are CPU-bound and # possibly greater than a 10% decrease for workloads that are # input/output bound. # * **Machine Type**: nested virtualization can only be enabled on # boost configurations that specify a # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::BoostConfig#machine_type machine_type} # in the N1 or N2 machine series. # @!attribute [rw] pool_size # @return [::Integer] # Optional. The number of boost VMs that the system should keep idle so # that workstations can be boosted quickly. Defaults to `0`. # @!attribute [rw] reservation_affinity # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::ReservationAffinity] # Optional. # [ReservationAffinity](https://cloud.google.com/compute/docs/instances/reserving-zonal-resources) # specifies a reservation that can be consumed to create boost VM # instances. If SPECIFIC_RESERVATION is specified, Cloud Workstations # will only create VMs in the zone where the reservation is located. # This would affect availability since the service will no longer be # resilient to zonal outages. If ANY_RESERVATION is specified, creating # reservations in both zones that the config creates VMs in will ensure # higher availability. # **Important Considerations for Reservation Affinity:** # # * This feature is intended for advanced users and requires # familiarity with Google Compute Engine reservations. # * Using reservations incurs charges, regardless of utilization. # * The resources in the pool will consume the specified # reservation. Take this into account when setting the # pool size. class BoostConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # ReservationAffinity is the configuration of the desired reservation # from which instances can consume resources. # @!attribute [rw] consume_reservation_type # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::ReservationAffinity::Type] # Optional. Corresponds to the type of reservation consumption. # @!attribute [rw] key # @return [::String] # Optional. Corresponds to the label key of reservation resource. # @!attribute [rw] values # @return [::Array<::String>] # Optional. Corresponds to the label values of reservation resources. # Valid values are either the name of a reservation in the same project # or "projects/\\{project}/reservations/\\{reservation}" to target a shared # reservation in the same zone but in a different project. class ReservationAffinity include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # Indicates whether to consume capacity from a reservation or not. module Type # Default value. This should not be used. TYPE_UNSPECIFIED = 0 # Do not consume from any reserved capacity. NO_RESERVATION = 1 # Consume any reservation available. ANY_RESERVATION = 2 # Must consume from a specific reservation. Must specify key value # fields for specifying the reservations. SPECIFIC_RESERVATION = 3 end end # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class VmTagsEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class InstanceMetadataEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end end end # A directory to persist across workstation sessions. Updates to this field # will not update existing workstations and will only take effect on new # workstations. # @!attribute [rw] gce_pd # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk] # A PersistentDirectory backed by a Compute Engine persistent disk. # # Note: The following fields are mutually exclusive: `gce_pd`, `gce_hd`. If a field in that set is populated, all other fields in the set will automatically be cleared. # @!attribute [rw] gce_hd # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceHyperdiskBalancedHighAvailability] # A PersistentDirectory backed by a Compute Engine hyperdisk high # availability disk. # # Note: The following fields are mutually exclusive: `gce_hd`, `gce_pd`. If a field in that set is populated, all other fields in the set will automatically be cleared. # @!attribute [rw] mount_path # @return [::String] # Optional. Location of this directory in the running workstation. class PersistentDirectory include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # A Persistent Directory backed by a Compute Engine regional persistent # disk. The # {::Google::Cloud::Workstations::V1beta::WorkstationConfig#persistent_directories persistent_directories} # field is repeated, but it may contain only one entry. It creates a # [persistent # disk](https://cloud.google.com/compute/docs/disks/persistent-disks) that # mounts to the workstation VM at `/home` when the session starts and # detaches when the session ends. If this field is empty, workstations # created with this configuration do not have a persistent home # directory. # @!attribute [rw] size_gb # @return [::Integer] # Optional. The GB capacity of a persistent home directory for each # workstation created with this configuration. Must be empty if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk#source_snapshot source_snapshot} # is set. # # Valid values are `10`, `50`, `100`, `200`, `500`, or `1000`. # Defaults to `200`. If less than `200` GB, the # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk#disk_type disk_type} # must be # `"pd-balanced"` or `"pd-ssd"`. # @!attribute [rw] max_size_gb # @return [::Integer] # Optional. Maximum size in GB to which this persistent directory can be # resized. Defaults to unlimited if not set. # @!attribute [rw] fs_type # @return [::String] # Optional. Type of file system that the disk should be formatted with. # The workstation image must support this file system type. Must be empty # if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk#source_snapshot source_snapshot} # is set. Defaults to `"ext4"`. # @!attribute [rw] disk_type # @return [::String] # Optional. The [type of the persistent # disk](https://cloud.google.com/compute/docs/disks#disk-types) for the # home directory. Defaults to `"pd-standard"`. # @!attribute [rw] source_snapshot # @return [::String] # Optional. Name of the snapshot to use as the source for the disk. If # set, # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk#size_gb size_gb} # and # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk#fs_type fs_type} # must be empty. Must be formatted as ext4 file system with no # partitions. # @!attribute [rw] reclaim_policy # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk::ReclaimPolicy] # Optional. Whether the persistent disk should be deleted when the # workstation is deleted. Valid values are `DELETE` and `RETAIN`. # Defaults to `DELETE`. # @!attribute [rw] archive_timeout # @return [::Google::Protobuf::Duration] # Optional. Number of seconds to wait after initially creating or # subsequently shutting down the workstation before converting its disk # into a snapshot. This generally saves costs at the expense of greater # startup time on next workstation start, as the service will need to # create a disk from the archival snapshot. # # A value of `"0s"` indicates that the disk will never be archived. class GceRegionalPersistentDisk include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # Value representing what should happen to the disk after the workstation # is deleted. module ReclaimPolicy # Do not use. RECLAIM_POLICY_UNSPECIFIED = 0 # Delete the persistent disk when deleting the workstation. DELETE = 1 # Keep the persistent disk when deleting the workstation. # An administrator must manually delete the disk. RETAIN = 2 end end # A Persistent Directory backed by a Compute Engine # [Hyperdisk Balanced High Availability # Disk](https://cloud.google.com/compute/docs/disks/hd-types/hyperdisk-balanced-ha). # This is a high-availability block storage solution that offers a balance # between performance and cost for most general-purpose workloads. # @!attribute [rw] size_gb # @return [::Integer] # Optional. The GB capacity of a persistent home directory for each # workstation created with this configuration. Must be empty if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceHyperdiskBalancedHighAvailability#source_snapshot source_snapshot} # is set. # # Valid values are `10`, `50`, `100`, `200`, `500`, or `1000`. # Defaults to `200`. # @!attribute [rw] max_size_gb # @return [::Integer] # Optional. Maximum size in GB to which this persistent directory can be # resized. Defaults to unlimited if not set. # @!attribute [rw] source_snapshot # @return [::String] # Optional. Name of the snapshot to use as the source for the disk. If # set, # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceHyperdiskBalancedHighAvailability#size_gb size_gb} # must be empty. Must be formatted as ext4 file system with no # partitions. # @!attribute [rw] reclaim_policy # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceHyperdiskBalancedHighAvailability::ReclaimPolicy] # Optional. Whether the persistent disk should be deleted when the # workstation is deleted. Valid values are `DELETE` and `RETAIN`. # Defaults to `DELETE`. # @!attribute [rw] archive_timeout # @return [::Google::Protobuf::Duration] # Optional. Number of seconds to wait after initially creating or # subsequently shutting down the workstation before converting its disk # into a snapshot. This generally saves costs at the expense of greater # startup time on next workstation start, as the service will need to # create a disk from the archival snapshot. # # A value of `"0s"` indicates that the disk will never be archived. class GceHyperdiskBalancedHighAvailability include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # Value representing what should happen to the disk after the workstation # is deleted. module ReclaimPolicy # Do not use. RECLAIM_POLICY_UNSPECIFIED = 0 # Delete the persistent disk when deleting the workstation. DELETE = 1 # Keep the persistent disk when deleting the workstation. # An administrator must manually delete the disk. RETAIN = 2 end end end # An ephemeral directory which won't persist across workstation sessions. It # is freshly created on every workstation start operation. # @!attribute [rw] gce_pd # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk] # An EphemeralDirectory backed by a Compute Engine persistent disk. # @!attribute [rw] mount_path # @return [::String] # Required. Location of this directory in the running workstation. class EphemeralDirectory include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # An EphemeralDirectory is backed by a Compute Engine persistent disk. # @!attribute [rw] disk_type # @return [::String] # Optional. Type of the disk to use. Defaults to `"pd-standard"`. # @!attribute [rw] source_snapshot # @return [::String] # Optional. Name of the snapshot to use as the source for the disk. Must # be empty if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#source_image source_image} # is set. Must be empty if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#read_only read_only} # is false. Updating # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#source_snapshot source_snapshot} # will update content in the ephemeral directory after the workstation is # restarted. # # Only file systems supported by Container-Optimized OS (COS) # are explicitly supported. For a list of supported file systems, see # [the filesystems available in Container-Optimized # OS](https://cloud.google.com/container-optimized-os/docs/concepts/supported-filesystems). # # This field is mutable. # @!attribute [rw] source_image # @return [::String] # Optional. Name of the disk image to use as the source for the disk. # Must be empty if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#source_snapshot source_snapshot} # is set. Updating # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#source_image source_image} # will update content in the ephemeral directory after the workstation is # restarted. # # Only file systems supported by Container-Optimized OS (COS) # are explicitly supported. For a list of supported file systems, please # refer to the [COS # documentation](https://cloud.google.com/container-optimized-os/docs/concepts/supported-filesystems). # # This field is mutable. # @!attribute [rw] read_only # @return [::Boolean] # Optional. Whether the disk is read only. If true, the disk may be # shared by multiple VMs and # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#source_snapshot source_snapshot} # must be set. class GcePersistentDisk include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end end # A Docker container. # @!attribute [rw] image # @return [::String] # Optional. A Docker container image that defines a custom environment. # # Cloud Workstations provides a number of # [preconfigured # images](https://cloud.google.com/workstations/docs/preconfigured-base-images), # but you can create your own # [custom container # images](https://cloud.google.com/workstations/docs/custom-container-images). # If using a private image, the `host.gceInstance.serviceAccount` field # must be specified in the workstation configuration. # If using a custom container image, the service account must have # [Artifact Registry # Reader](https://cloud.google.com/artifact-registry/docs/access-control#roles) # permission to pull the specified image. Otherwise, the image must be # publicly accessible. # @!attribute [rw] command # @return [::Array<::String>] # Optional. If set, overrides the default ENTRYPOINT specified by the # image. # @!attribute [rw] args # @return [::Array<::String>] # Optional. Arguments passed to the entrypoint. # @!attribute [rw] env # @return [::Google::Protobuf::Map{::String => ::String}] # Optional. Environment variables passed to the container's entrypoint. # @!attribute [rw] working_dir # @return [::String] # Optional. If set, overrides the default DIR specified by the image. # @!attribute [rw] run_as_user # @return [::Integer] # Optional. If set, overrides the USER specified in the image with the # given uid. class Container include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class EnvEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end end # A customer-managed encryption key (CMEK) for the Compute Engine # resources of the associated workstation configuration. Specify the name of # your Cloud KMS encryption key and the default service account. # We recommend that you use a separate service account and follow # [Cloud KMS best # practices](https://cloud.google.com/kms/docs/separation-of-duties). # @!attribute [rw] kms_key # @return [::String] # Immutable. The name of the Google Cloud KMS encryption key. For example, # `"projects/PROJECT_ID/locations/REGION/keyRings/KEY_RING/cryptoKeys/KEY_NAME"`. # The key must be in the same region as the workstation configuration. # @!attribute [rw] kms_key_service_account # @return [::String] # Immutable. The service account to use with the specified # KMS key. We recommend that you use a separate service account # and follow KMS best practices. For more information, see # [Separation of # duties](https://cloud.google.com/kms/docs/separation-of-duties) and # `gcloud kms keys add-iam-policy-binding` # [`--member`](https://cloud.google.com/sdk/gcloud/reference/kms/keys/add-iam-policy-binding#--member). class CustomerEncryptionKey include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # A readiness check to be performed on a workstation. # @!attribute [rw] path # @return [::String] # Optional. Path to which the request should be sent. # @!attribute [rw] port # @return [::Integer] # Optional. Port to which the request should be sent. class ReadinessCheck include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # HTTP options for the running workstations. # @!attribute [rw] allowed_unauthenticated_cors_preflight_requests # @return [::Boolean] # Optional. By default, the workstations service makes sure that all # requests to the workstation are authenticated. CORS preflight requests do # not include cookies or custom headers, and so are considered # unauthenticated and blocked by the workstations service. Enabling this # option allows these unauthenticated CORS preflight requests through to # the workstation, where it becomes the responsibility of the destination # server in the workstation to validate the request. # @!attribute [rw] disable_localhost_replacement # @return [::Boolean] # Optional. By default, the workstations service replaces references to # localhost, 127.0.0.1, and 0.0.0.0 with the workstation's hostname in http # responses from the workstation so that applications under development run # properly on the workstation. This may intefere with some applications, # and so this option allows that behavior to be disabled. class HttpOptions include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # A PortRange defines a range of ports. Both # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PortRange#first first} # and # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PortRange#last last} # are inclusive. To specify a single port, both # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PortRange#first first} # and # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PortRange#last last} # should be the same. # @!attribute [rw] first # @return [::Integer] # Required. Starting port number for the current range of ports. # Valid ports are 22, 80, and ports within the range 1024-65535. # @!attribute [rw] last # @return [::Integer] # Required. Ending port number for the current range of ports. # Valid ports are 22, 80, and ports within the range 1024-65535. class PortRange include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class AnnotationsEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class LabelsEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end end |
#satisfies_pzs ⇒ ::Boolean (readonly)
Returns Output only. Reserved for future use.
420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 |
# File 'proto_docs/google/cloud/workstations/v1beta/workstations.rb', line 420 class WorkstationConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # Runtime host for a workstation. # @!attribute [rw] gce_instance # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance] # Specifies a Compute Engine instance as the host. class Host include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # A runtime using a Compute Engine instance. # @!attribute [rw] machine_type # @return [::String] # Optional. The type of machine to use for VM instances—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). # @!attribute [rw] service_account # @return [::String] # Optional. The email address of the service account for Cloud # Workstations VMs created with this configuration. When specified, be # sure that the service account has `logging.logEntries.create` and # `monitoring.timeSeries.create` permissions on the project so it can # write logs out to Cloud Logging. If using a custom container image, the # service account must have [Artifact Registry # Reader](https://cloud.google.com/artifact-registry/docs/access-control#roles) # permission to pull the specified image. # # If you as the administrator want to be able to `ssh` into the # underlying VM, you need to set this value to a service account # for which you have the `iam.serviceAccounts.actAs` permission. # Conversely, if you don't want anyone to be able to `ssh` into the # underlying VM, use a service account where no one has that # permission. # # If not set, VMs run with a service account provided by the # Cloud Workstations service, and the image must be publicly # accessible. # @!attribute [rw] service_account_scopes # @return [::Array<::String>] # Optional. Scopes to grant to the # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance#service_account service_account}. # When specified, users of workstations under this configuration must # have `iam.serviceAccounts.actAs` on the service account. # @!attribute [rw] tags # @return [::Array<::String>] # Optional. Network tags to add to the Compute Engine VMs backing the # workstations. This option applies # [network # tags](https://cloud.google.com/vpc/docs/add-remove-network-tags) to VMs # created with this configuration. These network tags enable the creation # of [firewall # rules](https://cloud.google.com/workstations/docs/configure-firewall-rules). # @!attribute [rw] pool_size # @return [::Integer] # Optional. The number of VMs that the system should keep idle so that # new workstations can be started quickly for new users. Defaults to `0` # in the API. # @!attribute [r] pooled_instances # @return [::Integer] # Output only. Number of instances currently available in the pool for # faster workstation startup. # @!attribute [rw] disable_public_ip_addresses # @return [::Boolean] # Optional. When set to true, disables public IP addresses for VMs. If # you disable public IP addresses, you must set up Private Google Access # or Cloud NAT on your network. If you use Private Google Access and you # use `private.googleapis.com` or `restricted.googleapis.com` for # Container Registry and Artifact Registry, make sure that you set # up DNS records for domains `*.gcr.io` and `*.pkg.dev`. # Defaults to false (VMs have public IP addresses). # @!attribute [rw] enable_nested_virtualization # @return [::Boolean] # Optional. Whether to enable nested virtualization on Cloud Workstations # VMs created using this workstation configuration. # # Defaults to false. # # Nested virtualization lets you run virtual machine (VM) instances # inside your workstation. Before enabling nested virtualization, # consider the following important considerations. Cloud Workstations # instances are subject to the [same restrictions as Compute Engine # instances](https://cloud.google.com/compute/docs/instances/nested-virtualization/overview#restrictions): # # * **Organization policy**: projects, folders, or # organizations may be restricted from creating nested VMs if the # **Disable VM nested virtualization** constraint is enforced in # the organization policy. For more information, see the # Compute Engine section, # [Checking whether nested virtualization is # allowed](https://cloud.google.com/compute/docs/instances/nested-virtualization/managing-constraint#checking_whether_nested_virtualization_is_allowed). # * **Performance**: nested VMs might experience a 10% or greater # decrease in performance for workloads that are CPU-bound and # possibly greater than a 10% decrease for workloads that are # input/output bound. # * **Machine Type**: nested virtualization can only be enabled on # workstation configurations that specify a # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance#machine_type machine_type} # in the N1 or N2 machine series. # @!attribute [rw] shielded_instance_config # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::GceShieldedInstanceConfig] # Optional. A set of Compute Engine Shielded instance options. # @!attribute [rw] confidential_instance_config # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::GceConfidentialInstanceConfig] # Optional. A set of Compute Engine Confidential VM instance options. # @!attribute [rw] boot_disk_size_gb # @return [::Integer] # Optional. The size of the boot disk for the VM in gigabytes (GB). # The minimum boot disk size is `30` GB. Defaults to `50` GB. # @!attribute [rw] accelerators # @return [::Array<::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::Accelerator>] # Optional. A list of the type and count of accelerator cards attached to # the instance. # @!attribute [rw] boost_configs # @return [::Array<::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::BoostConfig>] # Optional. A list of the boost configurations that workstations created # using this workstation configuration are allowed to use. If specified, # users will have the option to choose from the list of boost configs # when starting a workstation. # @!attribute [rw] disable_ssh # @return [::Boolean] # Optional. Whether to disable SSH access to the VM. # @!attribute [rw] vm_tags # @return [::Google::Protobuf::Map{::String => ::String}] # Optional. Resource manager tags to be bound to this instance. # Tag keys and values have the same definition as [resource manager # tags](https://cloud.google.com/resource-manager/docs/tags/tags-overview). # Keys must be in the format `tagKeys/{tag_key_id}`, and # values are in the format `tagValues/456`. # @!attribute [rw] reservation_affinity # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::ReservationAffinity] # Optional. # [ReservationAffinity](https://cloud.google.com/compute/docs/instances/reserving-zonal-resources) # specifies a reservation that can be consumed to create VM # instances. If SPECIFIC_RESERVATION is specified, Cloud Workstations # will only create VMs in the zone where the reservation is located. # This would affect availability since the service will no longer be # resilient to zonal outages. If ANY_RESERVATION is specified, creating # reservations in both zones that the config creates VMs in will ensure # higher availability. # **Important Considerations for Reservation Affinity:** # # * This feature is intended for advanced users and requires # familiarity with Google Compute Engine reservations. # * Using reservations incurs charges, regardless of utilization. # * The resources in the pool will consume the specified # reservation. Take this into account when setting the # pool size. # @!attribute [rw] startup_script_uri # @return [::String] # Optional. Link to the startup script stored in Cloud Storage. This # script will be run on the host workstation VM when the VM is created. # The URI must be of the form gs://\\{bucket-name}/\\{object-name}. If # specifying a startup script, the service account must have [Permission # to access the bucket and script file in Cloud # Storage](https://cloud.google.com/storage/docs/access-control/iam-permissions). # Otherwise, the script must be publicly accessible. # Note that the service regularly updates the OS version of the host VM, # and it is the responsibility of the user to ensure the script stays # compatible with the OS version. # @!attribute [rw] instance_metadata # @return [::Google::Protobuf::Map{::String => ::String}] # Optional. Custom metadata to apply to Compute Engine instances. class GceInstance include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # A set of Compute Engine Shielded instance options. # @!attribute [rw] enable_secure_boot # @return [::Boolean] # Optional. Whether the instance has Secure Boot enabled. # @!attribute [rw] enable_vtpm # @return [::Boolean] # Optional. Whether the instance has the vTPM enabled. # @!attribute [rw] enable_integrity_monitoring # @return [::Boolean] # Optional. Whether the instance has integrity monitoring enabled. class GceShieldedInstanceConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # A set of Compute Engine Confidential VM instance options. # @!attribute [rw] enable_confidential_compute # @return [::Boolean] # Optional. Whether the instance has confidential compute enabled. class GceConfidentialInstanceConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # An accelerator card attached to the instance. # @!attribute [rw] type # @return [::String] # Optional. Type of accelerator resource to attach to the instance, for # example, # `"nvidia-tesla-p100"`. # @!attribute [rw] count # @return [::Integer] # Optional. Number of accelerator cards exposed to the instance. class Accelerator include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # A boost configuration is a set of resources that a workstation can use # to increase its performance. If you specify a boost configuration, upon # startup, workstation users can choose to use a VM provisioned under the # boost config by passing the boost config ID in the start request. If # the workstation user does not provide a boost config ID in the start # request, the system will choose a VM from the pool provisioned under # the default config. # @!attribute [rw] id # @return [::String] # Required. The ID to be used for the boost configuration. # @!attribute [rw] machine_type # @return [::String] # Optional. 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`. # @!attribute [rw] accelerators # @return [::Array<::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::Accelerator>] # Optional. A list of the type and count of accelerator cards attached # to the boost instance. Defaults to `none`. # @!attribute [rw] boot_disk_size_gb # @return [::Integer] # Optional. The size of the boot disk for the VM in gigabytes (GB). # The minimum boot disk size is `30` GB. Defaults to `50` GB. # @!attribute [rw] enable_nested_virtualization # @return [::Boolean] # Optional. Whether to enable nested virtualization on boosted Cloud # Workstations VMs running using this boost configuration. # # Defaults to false. # # Nested virtualization lets you run virtual machine (VM) instances # inside your workstation. Before enabling nested virtualization, # consider the following important considerations. Cloud Workstations # instances are subject to the [same restrictions as Compute Engine # instances](https://cloud.google.com/compute/docs/instances/nested-virtualization/overview#restrictions): # # * **Organization policy**: projects, folders, or # organizations may be restricted from creating nested VMs if the # **Disable VM nested virtualization** constraint is enforced in # the organization policy. For more information, see the # Compute Engine section, # [Checking whether nested virtualization is # allowed](https://cloud.google.com/compute/docs/instances/nested-virtualization/managing-constraint#checking_whether_nested_virtualization_is_allowed). # * **Performance**: nested VMs might experience a 10% or greater # decrease in performance for workloads that are CPU-bound and # possibly greater than a 10% decrease for workloads that are # input/output bound. # * **Machine Type**: nested virtualization can only be enabled on # boost configurations that specify a # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::BoostConfig#machine_type machine_type} # in the N1 or N2 machine series. # @!attribute [rw] pool_size # @return [::Integer] # Optional. The number of boost VMs that the system should keep idle so # that workstations can be boosted quickly. Defaults to `0`. # @!attribute [rw] reservation_affinity # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::ReservationAffinity] # Optional. # [ReservationAffinity](https://cloud.google.com/compute/docs/instances/reserving-zonal-resources) # specifies a reservation that can be consumed to create boost VM # instances. If SPECIFIC_RESERVATION is specified, Cloud Workstations # will only create VMs in the zone where the reservation is located. # This would affect availability since the service will no longer be # resilient to zonal outages. If ANY_RESERVATION is specified, creating # reservations in both zones that the config creates VMs in will ensure # higher availability. # **Important Considerations for Reservation Affinity:** # # * This feature is intended for advanced users and requires # familiarity with Google Compute Engine reservations. # * Using reservations incurs charges, regardless of utilization. # * The resources in the pool will consume the specified # reservation. Take this into account when setting the # pool size. class BoostConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # ReservationAffinity is the configuration of the desired reservation # from which instances can consume resources. # @!attribute [rw] consume_reservation_type # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::ReservationAffinity::Type] # Optional. Corresponds to the type of reservation consumption. # @!attribute [rw] key # @return [::String] # Optional. Corresponds to the label key of reservation resource. # @!attribute [rw] values # @return [::Array<::String>] # Optional. Corresponds to the label values of reservation resources. # Valid values are either the name of a reservation in the same project # or "projects/\\{project}/reservations/\\{reservation}" to target a shared # reservation in the same zone but in a different project. class ReservationAffinity include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # Indicates whether to consume capacity from a reservation or not. module Type # Default value. This should not be used. TYPE_UNSPECIFIED = 0 # Do not consume from any reserved capacity. NO_RESERVATION = 1 # Consume any reservation available. ANY_RESERVATION = 2 # Must consume from a specific reservation. Must specify key value # fields for specifying the reservations. SPECIFIC_RESERVATION = 3 end end # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class VmTagsEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class InstanceMetadataEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end end end # A directory to persist across workstation sessions. Updates to this field # will not update existing workstations and will only take effect on new # workstations. # @!attribute [rw] gce_pd # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk] # A PersistentDirectory backed by a Compute Engine persistent disk. # # Note: The following fields are mutually exclusive: `gce_pd`, `gce_hd`. If a field in that set is populated, all other fields in the set will automatically be cleared. # @!attribute [rw] gce_hd # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceHyperdiskBalancedHighAvailability] # A PersistentDirectory backed by a Compute Engine hyperdisk high # availability disk. # # Note: The following fields are mutually exclusive: `gce_hd`, `gce_pd`. If a field in that set is populated, all other fields in the set will automatically be cleared. # @!attribute [rw] mount_path # @return [::String] # Optional. Location of this directory in the running workstation. class PersistentDirectory include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # A Persistent Directory backed by a Compute Engine regional persistent # disk. The # {::Google::Cloud::Workstations::V1beta::WorkstationConfig#persistent_directories persistent_directories} # field is repeated, but it may contain only one entry. It creates a # [persistent # disk](https://cloud.google.com/compute/docs/disks/persistent-disks) that # mounts to the workstation VM at `/home` when the session starts and # detaches when the session ends. If this field is empty, workstations # created with this configuration do not have a persistent home # directory. # @!attribute [rw] size_gb # @return [::Integer] # Optional. The GB capacity of a persistent home directory for each # workstation created with this configuration. Must be empty if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk#source_snapshot source_snapshot} # is set. # # Valid values are `10`, `50`, `100`, `200`, `500`, or `1000`. # Defaults to `200`. If less than `200` GB, the # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk#disk_type disk_type} # must be # `"pd-balanced"` or `"pd-ssd"`. # @!attribute [rw] max_size_gb # @return [::Integer] # Optional. Maximum size in GB to which this persistent directory can be # resized. Defaults to unlimited if not set. # @!attribute [rw] fs_type # @return [::String] # Optional. Type of file system that the disk should be formatted with. # The workstation image must support this file system type. Must be empty # if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk#source_snapshot source_snapshot} # is set. Defaults to `"ext4"`. # @!attribute [rw] disk_type # @return [::String] # Optional. The [type of the persistent # disk](https://cloud.google.com/compute/docs/disks#disk-types) for the # home directory. Defaults to `"pd-standard"`. # @!attribute [rw] source_snapshot # @return [::String] # Optional. Name of the snapshot to use as the source for the disk. If # set, # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk#size_gb size_gb} # and # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk#fs_type fs_type} # must be empty. Must be formatted as ext4 file system with no # partitions. # @!attribute [rw] reclaim_policy # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk::ReclaimPolicy] # Optional. Whether the persistent disk should be deleted when the # workstation is deleted. Valid values are `DELETE` and `RETAIN`. # Defaults to `DELETE`. # @!attribute [rw] archive_timeout # @return [::Google::Protobuf::Duration] # Optional. Number of seconds to wait after initially creating or # subsequently shutting down the workstation before converting its disk # into a snapshot. This generally saves costs at the expense of greater # startup time on next workstation start, as the service will need to # create a disk from the archival snapshot. # # A value of `"0s"` indicates that the disk will never be archived. class GceRegionalPersistentDisk include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # Value representing what should happen to the disk after the workstation # is deleted. module ReclaimPolicy # Do not use. RECLAIM_POLICY_UNSPECIFIED = 0 # Delete the persistent disk when deleting the workstation. DELETE = 1 # Keep the persistent disk when deleting the workstation. # An administrator must manually delete the disk. RETAIN = 2 end end # A Persistent Directory backed by a Compute Engine # [Hyperdisk Balanced High Availability # Disk](https://cloud.google.com/compute/docs/disks/hd-types/hyperdisk-balanced-ha). # This is a high-availability block storage solution that offers a balance # between performance and cost for most general-purpose workloads. # @!attribute [rw] size_gb # @return [::Integer] # Optional. The GB capacity of a persistent home directory for each # workstation created with this configuration. Must be empty if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceHyperdiskBalancedHighAvailability#source_snapshot source_snapshot} # is set. # # Valid values are `10`, `50`, `100`, `200`, `500`, or `1000`. # Defaults to `200`. # @!attribute [rw] max_size_gb # @return [::Integer] # Optional. Maximum size in GB to which this persistent directory can be # resized. Defaults to unlimited if not set. # @!attribute [rw] source_snapshot # @return [::String] # Optional. Name of the snapshot to use as the source for the disk. If # set, # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceHyperdiskBalancedHighAvailability#size_gb size_gb} # must be empty. Must be formatted as ext4 file system with no # partitions. # @!attribute [rw] reclaim_policy # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceHyperdiskBalancedHighAvailability::ReclaimPolicy] # Optional. Whether the persistent disk should be deleted when the # workstation is deleted. Valid values are `DELETE` and `RETAIN`. # Defaults to `DELETE`. # @!attribute [rw] archive_timeout # @return [::Google::Protobuf::Duration] # Optional. Number of seconds to wait after initially creating or # subsequently shutting down the workstation before converting its disk # into a snapshot. This generally saves costs at the expense of greater # startup time on next workstation start, as the service will need to # create a disk from the archival snapshot. # # A value of `"0s"` indicates that the disk will never be archived. class GceHyperdiskBalancedHighAvailability include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # Value representing what should happen to the disk after the workstation # is deleted. module ReclaimPolicy # Do not use. RECLAIM_POLICY_UNSPECIFIED = 0 # Delete the persistent disk when deleting the workstation. DELETE = 1 # Keep the persistent disk when deleting the workstation. # An administrator must manually delete the disk. RETAIN = 2 end end end # An ephemeral directory which won't persist across workstation sessions. It # is freshly created on every workstation start operation. # @!attribute [rw] gce_pd # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk] # An EphemeralDirectory backed by a Compute Engine persistent disk. # @!attribute [rw] mount_path # @return [::String] # Required. Location of this directory in the running workstation. class EphemeralDirectory include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # An EphemeralDirectory is backed by a Compute Engine persistent disk. # @!attribute [rw] disk_type # @return [::String] # Optional. Type of the disk to use. Defaults to `"pd-standard"`. # @!attribute [rw] source_snapshot # @return [::String] # Optional. Name of the snapshot to use as the source for the disk. Must # be empty if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#source_image source_image} # is set. Must be empty if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#read_only read_only} # is false. Updating # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#source_snapshot source_snapshot} # will update content in the ephemeral directory after the workstation is # restarted. # # Only file systems supported by Container-Optimized OS (COS) # are explicitly supported. For a list of supported file systems, see # [the filesystems available in Container-Optimized # OS](https://cloud.google.com/container-optimized-os/docs/concepts/supported-filesystems). # # This field is mutable. # @!attribute [rw] source_image # @return [::String] # Optional. Name of the disk image to use as the source for the disk. # Must be empty if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#source_snapshot source_snapshot} # is set. Updating # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#source_image source_image} # will update content in the ephemeral directory after the workstation is # restarted. # # Only file systems supported by Container-Optimized OS (COS) # are explicitly supported. For a list of supported file systems, please # refer to the [COS # documentation](https://cloud.google.com/container-optimized-os/docs/concepts/supported-filesystems). # # This field is mutable. # @!attribute [rw] read_only # @return [::Boolean] # Optional. Whether the disk is read only. If true, the disk may be # shared by multiple VMs and # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#source_snapshot source_snapshot} # must be set. class GcePersistentDisk include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end end # A Docker container. # @!attribute [rw] image # @return [::String] # Optional. A Docker container image that defines a custom environment. # # Cloud Workstations provides a number of # [preconfigured # images](https://cloud.google.com/workstations/docs/preconfigured-base-images), # but you can create your own # [custom container # images](https://cloud.google.com/workstations/docs/custom-container-images). # If using a private image, the `host.gceInstance.serviceAccount` field # must be specified in the workstation configuration. # If using a custom container image, the service account must have # [Artifact Registry # Reader](https://cloud.google.com/artifact-registry/docs/access-control#roles) # permission to pull the specified image. Otherwise, the image must be # publicly accessible. # @!attribute [rw] command # @return [::Array<::String>] # Optional. If set, overrides the default ENTRYPOINT specified by the # image. # @!attribute [rw] args # @return [::Array<::String>] # Optional. Arguments passed to the entrypoint. # @!attribute [rw] env # @return [::Google::Protobuf::Map{::String => ::String}] # Optional. Environment variables passed to the container's entrypoint. # @!attribute [rw] working_dir # @return [::String] # Optional. If set, overrides the default DIR specified by the image. # @!attribute [rw] run_as_user # @return [::Integer] # Optional. If set, overrides the USER specified in the image with the # given uid. class Container include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class EnvEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end end # A customer-managed encryption key (CMEK) for the Compute Engine # resources of the associated workstation configuration. Specify the name of # your Cloud KMS encryption key and the default service account. # We recommend that you use a separate service account and follow # [Cloud KMS best # practices](https://cloud.google.com/kms/docs/separation-of-duties). # @!attribute [rw] kms_key # @return [::String] # Immutable. The name of the Google Cloud KMS encryption key. For example, # `"projects/PROJECT_ID/locations/REGION/keyRings/KEY_RING/cryptoKeys/KEY_NAME"`. # The key must be in the same region as the workstation configuration. # @!attribute [rw] kms_key_service_account # @return [::String] # Immutable. The service account to use with the specified # KMS key. We recommend that you use a separate service account # and follow KMS best practices. For more information, see # [Separation of # duties](https://cloud.google.com/kms/docs/separation-of-duties) and # `gcloud kms keys add-iam-policy-binding` # [`--member`](https://cloud.google.com/sdk/gcloud/reference/kms/keys/add-iam-policy-binding#--member). class CustomerEncryptionKey include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # A readiness check to be performed on a workstation. # @!attribute [rw] path # @return [::String] # Optional. Path to which the request should be sent. # @!attribute [rw] port # @return [::Integer] # Optional. Port to which the request should be sent. class ReadinessCheck include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # HTTP options for the running workstations. # @!attribute [rw] allowed_unauthenticated_cors_preflight_requests # @return [::Boolean] # Optional. By default, the workstations service makes sure that all # requests to the workstation are authenticated. CORS preflight requests do # not include cookies or custom headers, and so are considered # unauthenticated and blocked by the workstations service. Enabling this # option allows these unauthenticated CORS preflight requests through to # the workstation, where it becomes the responsibility of the destination # server in the workstation to validate the request. # @!attribute [rw] disable_localhost_replacement # @return [::Boolean] # Optional. By default, the workstations service replaces references to # localhost, 127.0.0.1, and 0.0.0.0 with the workstation's hostname in http # responses from the workstation so that applications under development run # properly on the workstation. This may intefere with some applications, # and so this option allows that behavior to be disabled. class HttpOptions include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # A PortRange defines a range of ports. Both # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PortRange#first first} # and # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PortRange#last last} # are inclusive. To specify a single port, both # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PortRange#first first} # and # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PortRange#last last} # should be the same. # @!attribute [rw] first # @return [::Integer] # Required. Starting port number for the current range of ports. # Valid ports are 22, 80, and ports within the range 1024-65535. # @!attribute [rw] last # @return [::Integer] # Required. Ending port number for the current range of ports. # Valid ports are 22, 80, and ports within the range 1024-65535. class PortRange include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class AnnotationsEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class LabelsEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end end |
#uid ⇒ ::String (readonly)
Returns Output only. A system-assigned unique identifier for this workstation configuration.
420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 |
# File 'proto_docs/google/cloud/workstations/v1beta/workstations.rb', line 420 class WorkstationConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # Runtime host for a workstation. # @!attribute [rw] gce_instance # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance] # Specifies a Compute Engine instance as the host. class Host include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # A runtime using a Compute Engine instance. # @!attribute [rw] machine_type # @return [::String] # Optional. The type of machine to use for VM instances—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). # @!attribute [rw] service_account # @return [::String] # Optional. The email address of the service account for Cloud # Workstations VMs created with this configuration. When specified, be # sure that the service account has `logging.logEntries.create` and # `monitoring.timeSeries.create` permissions on the project so it can # write logs out to Cloud Logging. If using a custom container image, the # service account must have [Artifact Registry # Reader](https://cloud.google.com/artifact-registry/docs/access-control#roles) # permission to pull the specified image. # # If you as the administrator want to be able to `ssh` into the # underlying VM, you need to set this value to a service account # for which you have the `iam.serviceAccounts.actAs` permission. # Conversely, if you don't want anyone to be able to `ssh` into the # underlying VM, use a service account where no one has that # permission. # # If not set, VMs run with a service account provided by the # Cloud Workstations service, and the image must be publicly # accessible. # @!attribute [rw] service_account_scopes # @return [::Array<::String>] # Optional. Scopes to grant to the # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance#service_account service_account}. # When specified, users of workstations under this configuration must # have `iam.serviceAccounts.actAs` on the service account. # @!attribute [rw] tags # @return [::Array<::String>] # Optional. Network tags to add to the Compute Engine VMs backing the # workstations. This option applies # [network # tags](https://cloud.google.com/vpc/docs/add-remove-network-tags) to VMs # created with this configuration. These network tags enable the creation # of [firewall # rules](https://cloud.google.com/workstations/docs/configure-firewall-rules). # @!attribute [rw] pool_size # @return [::Integer] # Optional. The number of VMs that the system should keep idle so that # new workstations can be started quickly for new users. Defaults to `0` # in the API. # @!attribute [r] pooled_instances # @return [::Integer] # Output only. Number of instances currently available in the pool for # faster workstation startup. # @!attribute [rw] disable_public_ip_addresses # @return [::Boolean] # Optional. When set to true, disables public IP addresses for VMs. If # you disable public IP addresses, you must set up Private Google Access # or Cloud NAT on your network. If you use Private Google Access and you # use `private.googleapis.com` or `restricted.googleapis.com` for # Container Registry and Artifact Registry, make sure that you set # up DNS records for domains `*.gcr.io` and `*.pkg.dev`. # Defaults to false (VMs have public IP addresses). # @!attribute [rw] enable_nested_virtualization # @return [::Boolean] # Optional. Whether to enable nested virtualization on Cloud Workstations # VMs created using this workstation configuration. # # Defaults to false. # # Nested virtualization lets you run virtual machine (VM) instances # inside your workstation. Before enabling nested virtualization, # consider the following important considerations. Cloud Workstations # instances are subject to the [same restrictions as Compute Engine # instances](https://cloud.google.com/compute/docs/instances/nested-virtualization/overview#restrictions): # # * **Organization policy**: projects, folders, or # organizations may be restricted from creating nested VMs if the # **Disable VM nested virtualization** constraint is enforced in # the organization policy. For more information, see the # Compute Engine section, # [Checking whether nested virtualization is # allowed](https://cloud.google.com/compute/docs/instances/nested-virtualization/managing-constraint#checking_whether_nested_virtualization_is_allowed). # * **Performance**: nested VMs might experience a 10% or greater # decrease in performance for workloads that are CPU-bound and # possibly greater than a 10% decrease for workloads that are # input/output bound. # * **Machine Type**: nested virtualization can only be enabled on # workstation configurations that specify a # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance#machine_type machine_type} # in the N1 or N2 machine series. # @!attribute [rw] shielded_instance_config # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::GceShieldedInstanceConfig] # Optional. A set of Compute Engine Shielded instance options. # @!attribute [rw] confidential_instance_config # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::GceConfidentialInstanceConfig] # Optional. A set of Compute Engine Confidential VM instance options. # @!attribute [rw] boot_disk_size_gb # @return [::Integer] # Optional. The size of the boot disk for the VM in gigabytes (GB). # The minimum boot disk size is `30` GB. Defaults to `50` GB. # @!attribute [rw] accelerators # @return [::Array<::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::Accelerator>] # Optional. A list of the type and count of accelerator cards attached to # the instance. # @!attribute [rw] boost_configs # @return [::Array<::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::BoostConfig>] # Optional. A list of the boost configurations that workstations created # using this workstation configuration are allowed to use. If specified, # users will have the option to choose from the list of boost configs # when starting a workstation. # @!attribute [rw] disable_ssh # @return [::Boolean] # Optional. Whether to disable SSH access to the VM. # @!attribute [rw] vm_tags # @return [::Google::Protobuf::Map{::String => ::String}] # Optional. Resource manager tags to be bound to this instance. # Tag keys and values have the same definition as [resource manager # tags](https://cloud.google.com/resource-manager/docs/tags/tags-overview). # Keys must be in the format `tagKeys/{tag_key_id}`, and # values are in the format `tagValues/456`. # @!attribute [rw] reservation_affinity # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::ReservationAffinity] # Optional. # [ReservationAffinity](https://cloud.google.com/compute/docs/instances/reserving-zonal-resources) # specifies a reservation that can be consumed to create VM # instances. If SPECIFIC_RESERVATION is specified, Cloud Workstations # will only create VMs in the zone where the reservation is located. # This would affect availability since the service will no longer be # resilient to zonal outages. If ANY_RESERVATION is specified, creating # reservations in both zones that the config creates VMs in will ensure # higher availability. # **Important Considerations for Reservation Affinity:** # # * This feature is intended for advanced users and requires # familiarity with Google Compute Engine reservations. # * Using reservations incurs charges, regardless of utilization. # * The resources in the pool will consume the specified # reservation. Take this into account when setting the # pool size. # @!attribute [rw] startup_script_uri # @return [::String] # Optional. Link to the startup script stored in Cloud Storage. This # script will be run on the host workstation VM when the VM is created. # The URI must be of the form gs://\\{bucket-name}/\\{object-name}. If # specifying a startup script, the service account must have [Permission # to access the bucket and script file in Cloud # Storage](https://cloud.google.com/storage/docs/access-control/iam-permissions). # Otherwise, the script must be publicly accessible. # Note that the service regularly updates the OS version of the host VM, # and it is the responsibility of the user to ensure the script stays # compatible with the OS version. # @!attribute [rw] instance_metadata # @return [::Google::Protobuf::Map{::String => ::String}] # Optional. Custom metadata to apply to Compute Engine instances. class GceInstance include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # A set of Compute Engine Shielded instance options. # @!attribute [rw] enable_secure_boot # @return [::Boolean] # Optional. Whether the instance has Secure Boot enabled. # @!attribute [rw] enable_vtpm # @return [::Boolean] # Optional. Whether the instance has the vTPM enabled. # @!attribute [rw] enable_integrity_monitoring # @return [::Boolean] # Optional. Whether the instance has integrity monitoring enabled. class GceShieldedInstanceConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # A set of Compute Engine Confidential VM instance options. # @!attribute [rw] enable_confidential_compute # @return [::Boolean] # Optional. Whether the instance has confidential compute enabled. class GceConfidentialInstanceConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # An accelerator card attached to the instance. # @!attribute [rw] type # @return [::String] # Optional. Type of accelerator resource to attach to the instance, for # example, # `"nvidia-tesla-p100"`. # @!attribute [rw] count # @return [::Integer] # Optional. Number of accelerator cards exposed to the instance. class Accelerator include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # A boost configuration is a set of resources that a workstation can use # to increase its performance. If you specify a boost configuration, upon # startup, workstation users can choose to use a VM provisioned under the # boost config by passing the boost config ID in the start request. If # the workstation user does not provide a boost config ID in the start # request, the system will choose a VM from the pool provisioned under # the default config. # @!attribute [rw] id # @return [::String] # Required. The ID to be used for the boost configuration. # @!attribute [rw] machine_type # @return [::String] # Optional. 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`. # @!attribute [rw] accelerators # @return [::Array<::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::Accelerator>] # Optional. A list of the type and count of accelerator cards attached # to the boost instance. Defaults to `none`. # @!attribute [rw] boot_disk_size_gb # @return [::Integer] # Optional. The size of the boot disk for the VM in gigabytes (GB). # The minimum boot disk size is `30` GB. Defaults to `50` GB. # @!attribute [rw] enable_nested_virtualization # @return [::Boolean] # Optional. Whether to enable nested virtualization on boosted Cloud # Workstations VMs running using this boost configuration. # # Defaults to false. # # Nested virtualization lets you run virtual machine (VM) instances # inside your workstation. Before enabling nested virtualization, # consider the following important considerations. Cloud Workstations # instances are subject to the [same restrictions as Compute Engine # instances](https://cloud.google.com/compute/docs/instances/nested-virtualization/overview#restrictions): # # * **Organization policy**: projects, folders, or # organizations may be restricted from creating nested VMs if the # **Disable VM nested virtualization** constraint is enforced in # the organization policy. For more information, see the # Compute Engine section, # [Checking whether nested virtualization is # allowed](https://cloud.google.com/compute/docs/instances/nested-virtualization/managing-constraint#checking_whether_nested_virtualization_is_allowed). # * **Performance**: nested VMs might experience a 10% or greater # decrease in performance for workloads that are CPU-bound and # possibly greater than a 10% decrease for workloads that are # input/output bound. # * **Machine Type**: nested virtualization can only be enabled on # boost configurations that specify a # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::BoostConfig#machine_type machine_type} # in the N1 or N2 machine series. # @!attribute [rw] pool_size # @return [::Integer] # Optional. The number of boost VMs that the system should keep idle so # that workstations can be boosted quickly. Defaults to `0`. # @!attribute [rw] reservation_affinity # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::ReservationAffinity] # Optional. # [ReservationAffinity](https://cloud.google.com/compute/docs/instances/reserving-zonal-resources) # specifies a reservation that can be consumed to create boost VM # instances. If SPECIFIC_RESERVATION is specified, Cloud Workstations # will only create VMs in the zone where the reservation is located. # This would affect availability since the service will no longer be # resilient to zonal outages. If ANY_RESERVATION is specified, creating # reservations in both zones that the config creates VMs in will ensure # higher availability. # **Important Considerations for Reservation Affinity:** # # * This feature is intended for advanced users and requires # familiarity with Google Compute Engine reservations. # * Using reservations incurs charges, regardless of utilization. # * The resources in the pool will consume the specified # reservation. Take this into account when setting the # pool size. class BoostConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # ReservationAffinity is the configuration of the desired reservation # from which instances can consume resources. # @!attribute [rw] consume_reservation_type # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::ReservationAffinity::Type] # Optional. Corresponds to the type of reservation consumption. # @!attribute [rw] key # @return [::String] # Optional. Corresponds to the label key of reservation resource. # @!attribute [rw] values # @return [::Array<::String>] # Optional. Corresponds to the label values of reservation resources. # Valid values are either the name of a reservation in the same project # or "projects/\\{project}/reservations/\\{reservation}" to target a shared # reservation in the same zone but in a different project. class ReservationAffinity include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # Indicates whether to consume capacity from a reservation or not. module Type # Default value. This should not be used. TYPE_UNSPECIFIED = 0 # Do not consume from any reserved capacity. NO_RESERVATION = 1 # Consume any reservation available. ANY_RESERVATION = 2 # Must consume from a specific reservation. Must specify key value # fields for specifying the reservations. SPECIFIC_RESERVATION = 3 end end # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class VmTagsEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class InstanceMetadataEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end end end # A directory to persist across workstation sessions. Updates to this field # will not update existing workstations and will only take effect on new # workstations. # @!attribute [rw] gce_pd # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk] # A PersistentDirectory backed by a Compute Engine persistent disk. # # Note: The following fields are mutually exclusive: `gce_pd`, `gce_hd`. If a field in that set is populated, all other fields in the set will automatically be cleared. # @!attribute [rw] gce_hd # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceHyperdiskBalancedHighAvailability] # A PersistentDirectory backed by a Compute Engine hyperdisk high # availability disk. # # Note: The following fields are mutually exclusive: `gce_hd`, `gce_pd`. If a field in that set is populated, all other fields in the set will automatically be cleared. # @!attribute [rw] mount_path # @return [::String] # Optional. Location of this directory in the running workstation. class PersistentDirectory include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # A Persistent Directory backed by a Compute Engine regional persistent # disk. The # {::Google::Cloud::Workstations::V1beta::WorkstationConfig#persistent_directories persistent_directories} # field is repeated, but it may contain only one entry. It creates a # [persistent # disk](https://cloud.google.com/compute/docs/disks/persistent-disks) that # mounts to the workstation VM at `/home` when the session starts and # detaches when the session ends. If this field is empty, workstations # created with this configuration do not have a persistent home # directory. # @!attribute [rw] size_gb # @return [::Integer] # Optional. The GB capacity of a persistent home directory for each # workstation created with this configuration. Must be empty if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk#source_snapshot source_snapshot} # is set. # # Valid values are `10`, `50`, `100`, `200`, `500`, or `1000`. # Defaults to `200`. If less than `200` GB, the # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk#disk_type disk_type} # must be # `"pd-balanced"` or `"pd-ssd"`. # @!attribute [rw] max_size_gb # @return [::Integer] # Optional. Maximum size in GB to which this persistent directory can be # resized. Defaults to unlimited if not set. # @!attribute [rw] fs_type # @return [::String] # Optional. Type of file system that the disk should be formatted with. # The workstation image must support this file system type. Must be empty # if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk#source_snapshot source_snapshot} # is set. Defaults to `"ext4"`. # @!attribute [rw] disk_type # @return [::String] # Optional. The [type of the persistent # disk](https://cloud.google.com/compute/docs/disks#disk-types) for the # home directory. Defaults to `"pd-standard"`. # @!attribute [rw] source_snapshot # @return [::String] # Optional. Name of the snapshot to use as the source for the disk. If # set, # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk#size_gb size_gb} # and # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk#fs_type fs_type} # must be empty. Must be formatted as ext4 file system with no # partitions. # @!attribute [rw] reclaim_policy # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk::ReclaimPolicy] # Optional. Whether the persistent disk should be deleted when the # workstation is deleted. Valid values are `DELETE` and `RETAIN`. # Defaults to `DELETE`. # @!attribute [rw] archive_timeout # @return [::Google::Protobuf::Duration] # Optional. Number of seconds to wait after initially creating or # subsequently shutting down the workstation before converting its disk # into a snapshot. This generally saves costs at the expense of greater # startup time on next workstation start, as the service will need to # create a disk from the archival snapshot. # # A value of `"0s"` indicates that the disk will never be archived. class GceRegionalPersistentDisk include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # Value representing what should happen to the disk after the workstation # is deleted. module ReclaimPolicy # Do not use. RECLAIM_POLICY_UNSPECIFIED = 0 # Delete the persistent disk when deleting the workstation. DELETE = 1 # Keep the persistent disk when deleting the workstation. # An administrator must manually delete the disk. RETAIN = 2 end end # A Persistent Directory backed by a Compute Engine # [Hyperdisk Balanced High Availability # Disk](https://cloud.google.com/compute/docs/disks/hd-types/hyperdisk-balanced-ha). # This is a high-availability block storage solution that offers a balance # between performance and cost for most general-purpose workloads. # @!attribute [rw] size_gb # @return [::Integer] # Optional. The GB capacity of a persistent home directory for each # workstation created with this configuration. Must be empty if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceHyperdiskBalancedHighAvailability#source_snapshot source_snapshot} # is set. # # Valid values are `10`, `50`, `100`, `200`, `500`, or `1000`. # Defaults to `200`. # @!attribute [rw] max_size_gb # @return [::Integer] # Optional. Maximum size in GB to which this persistent directory can be # resized. Defaults to unlimited if not set. # @!attribute [rw] source_snapshot # @return [::String] # Optional. Name of the snapshot to use as the source for the disk. If # set, # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceHyperdiskBalancedHighAvailability#size_gb size_gb} # must be empty. Must be formatted as ext4 file system with no # partitions. # @!attribute [rw] reclaim_policy # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceHyperdiskBalancedHighAvailability::ReclaimPolicy] # Optional. Whether the persistent disk should be deleted when the # workstation is deleted. Valid values are `DELETE` and `RETAIN`. # Defaults to `DELETE`. # @!attribute [rw] archive_timeout # @return [::Google::Protobuf::Duration] # Optional. Number of seconds to wait after initially creating or # subsequently shutting down the workstation before converting its disk # into a snapshot. This generally saves costs at the expense of greater # startup time on next workstation start, as the service will need to # create a disk from the archival snapshot. # # A value of `"0s"` indicates that the disk will never be archived. class GceHyperdiskBalancedHighAvailability include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # Value representing what should happen to the disk after the workstation # is deleted. module ReclaimPolicy # Do not use. RECLAIM_POLICY_UNSPECIFIED = 0 # Delete the persistent disk when deleting the workstation. DELETE = 1 # Keep the persistent disk when deleting the workstation. # An administrator must manually delete the disk. RETAIN = 2 end end end # An ephemeral directory which won't persist across workstation sessions. It # is freshly created on every workstation start operation. # @!attribute [rw] gce_pd # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk] # An EphemeralDirectory backed by a Compute Engine persistent disk. # @!attribute [rw] mount_path # @return [::String] # Required. Location of this directory in the running workstation. class EphemeralDirectory include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # An EphemeralDirectory is backed by a Compute Engine persistent disk. # @!attribute [rw] disk_type # @return [::String] # Optional. Type of the disk to use. Defaults to `"pd-standard"`. # @!attribute [rw] source_snapshot # @return [::String] # Optional. Name of the snapshot to use as the source for the disk. Must # be empty if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#source_image source_image} # is set. Must be empty if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#read_only read_only} # is false. Updating # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#source_snapshot source_snapshot} # will update content in the ephemeral directory after the workstation is # restarted. # # Only file systems supported by Container-Optimized OS (COS) # are explicitly supported. For a list of supported file systems, see # [the filesystems available in Container-Optimized # OS](https://cloud.google.com/container-optimized-os/docs/concepts/supported-filesystems). # # This field is mutable. # @!attribute [rw] source_image # @return [::String] # Optional. Name of the disk image to use as the source for the disk. # Must be empty if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#source_snapshot source_snapshot} # is set. Updating # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#source_image source_image} # will update content in the ephemeral directory after the workstation is # restarted. # # Only file systems supported by Container-Optimized OS (COS) # are explicitly supported. For a list of supported file systems, please # refer to the [COS # documentation](https://cloud.google.com/container-optimized-os/docs/concepts/supported-filesystems). # # This field is mutable. # @!attribute [rw] read_only # @return [::Boolean] # Optional. Whether the disk is read only. If true, the disk may be # shared by multiple VMs and # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#source_snapshot source_snapshot} # must be set. class GcePersistentDisk include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end end # A Docker container. # @!attribute [rw] image # @return [::String] # Optional. A Docker container image that defines a custom environment. # # Cloud Workstations provides a number of # [preconfigured # images](https://cloud.google.com/workstations/docs/preconfigured-base-images), # but you can create your own # [custom container # images](https://cloud.google.com/workstations/docs/custom-container-images). # If using a private image, the `host.gceInstance.serviceAccount` field # must be specified in the workstation configuration. # If using a custom container image, the service account must have # [Artifact Registry # Reader](https://cloud.google.com/artifact-registry/docs/access-control#roles) # permission to pull the specified image. Otherwise, the image must be # publicly accessible. # @!attribute [rw] command # @return [::Array<::String>] # Optional. If set, overrides the default ENTRYPOINT specified by the # image. # @!attribute [rw] args # @return [::Array<::String>] # Optional. Arguments passed to the entrypoint. # @!attribute [rw] env # @return [::Google::Protobuf::Map{::String => ::String}] # Optional. Environment variables passed to the container's entrypoint. # @!attribute [rw] working_dir # @return [::String] # Optional. If set, overrides the default DIR specified by the image. # @!attribute [rw] run_as_user # @return [::Integer] # Optional. If set, overrides the USER specified in the image with the # given uid. class Container include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class EnvEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end end # A customer-managed encryption key (CMEK) for the Compute Engine # resources of the associated workstation configuration. Specify the name of # your Cloud KMS encryption key and the default service account. # We recommend that you use a separate service account and follow # [Cloud KMS best # practices](https://cloud.google.com/kms/docs/separation-of-duties). # @!attribute [rw] kms_key # @return [::String] # Immutable. The name of the Google Cloud KMS encryption key. For example, # `"projects/PROJECT_ID/locations/REGION/keyRings/KEY_RING/cryptoKeys/KEY_NAME"`. # The key must be in the same region as the workstation configuration. # @!attribute [rw] kms_key_service_account # @return [::String] # Immutable. The service account to use with the specified # KMS key. We recommend that you use a separate service account # and follow KMS best practices. For more information, see # [Separation of # duties](https://cloud.google.com/kms/docs/separation-of-duties) and # `gcloud kms keys add-iam-policy-binding` # [`--member`](https://cloud.google.com/sdk/gcloud/reference/kms/keys/add-iam-policy-binding#--member). class CustomerEncryptionKey include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # A readiness check to be performed on a workstation. # @!attribute [rw] path # @return [::String] # Optional. Path to which the request should be sent. # @!attribute [rw] port # @return [::Integer] # Optional. Port to which the request should be sent. class ReadinessCheck include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # HTTP options for the running workstations. # @!attribute [rw] allowed_unauthenticated_cors_preflight_requests # @return [::Boolean] # Optional. By default, the workstations service makes sure that all # requests to the workstation are authenticated. CORS preflight requests do # not include cookies or custom headers, and so are considered # unauthenticated and blocked by the workstations service. Enabling this # option allows these unauthenticated CORS preflight requests through to # the workstation, where it becomes the responsibility of the destination # server in the workstation to validate the request. # @!attribute [rw] disable_localhost_replacement # @return [::Boolean] # Optional. By default, the workstations service replaces references to # localhost, 127.0.0.1, and 0.0.0.0 with the workstation's hostname in http # responses from the workstation so that applications under development run # properly on the workstation. This may intefere with some applications, # and so this option allows that behavior to be disabled. class HttpOptions include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # A PortRange defines a range of ports. Both # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PortRange#first first} # and # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PortRange#last last} # are inclusive. To specify a single port, both # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PortRange#first first} # and # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PortRange#last last} # should be the same. # @!attribute [rw] first # @return [::Integer] # Required. Starting port number for the current range of ports. # Valid ports are 22, 80, and ports within the range 1024-65535. # @!attribute [rw] last # @return [::Integer] # Required. Ending port number for the current range of ports. # Valid ports are 22, 80, and ports within the range 1024-65535. class PortRange include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class AnnotationsEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class LabelsEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end end |
#update_time ⇒ ::Google::Protobuf::Timestamp (readonly)
Returns Output only. Time when this workstation configuration was most recently updated.
420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 |
# File 'proto_docs/google/cloud/workstations/v1beta/workstations.rb', line 420 class WorkstationConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # Runtime host for a workstation. # @!attribute [rw] gce_instance # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance] # Specifies a Compute Engine instance as the host. class Host include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # A runtime using a Compute Engine instance. # @!attribute [rw] machine_type # @return [::String] # Optional. The type of machine to use for VM instances—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). # @!attribute [rw] service_account # @return [::String] # Optional. The email address of the service account for Cloud # Workstations VMs created with this configuration. When specified, be # sure that the service account has `logging.logEntries.create` and # `monitoring.timeSeries.create` permissions on the project so it can # write logs out to Cloud Logging. If using a custom container image, the # service account must have [Artifact Registry # Reader](https://cloud.google.com/artifact-registry/docs/access-control#roles) # permission to pull the specified image. # # If you as the administrator want to be able to `ssh` into the # underlying VM, you need to set this value to a service account # for which you have the `iam.serviceAccounts.actAs` permission. # Conversely, if you don't want anyone to be able to `ssh` into the # underlying VM, use a service account where no one has that # permission. # # If not set, VMs run with a service account provided by the # Cloud Workstations service, and the image must be publicly # accessible. # @!attribute [rw] service_account_scopes # @return [::Array<::String>] # Optional. Scopes to grant to the # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance#service_account service_account}. # When specified, users of workstations under this configuration must # have `iam.serviceAccounts.actAs` on the service account. # @!attribute [rw] tags # @return [::Array<::String>] # Optional. Network tags to add to the Compute Engine VMs backing the # workstations. This option applies # [network # tags](https://cloud.google.com/vpc/docs/add-remove-network-tags) to VMs # created with this configuration. These network tags enable the creation # of [firewall # rules](https://cloud.google.com/workstations/docs/configure-firewall-rules). # @!attribute [rw] pool_size # @return [::Integer] # Optional. The number of VMs that the system should keep idle so that # new workstations can be started quickly for new users. Defaults to `0` # in the API. # @!attribute [r] pooled_instances # @return [::Integer] # Output only. Number of instances currently available in the pool for # faster workstation startup. # @!attribute [rw] disable_public_ip_addresses # @return [::Boolean] # Optional. When set to true, disables public IP addresses for VMs. If # you disable public IP addresses, you must set up Private Google Access # or Cloud NAT on your network. If you use Private Google Access and you # use `private.googleapis.com` or `restricted.googleapis.com` for # Container Registry and Artifact Registry, make sure that you set # up DNS records for domains `*.gcr.io` and `*.pkg.dev`. # Defaults to false (VMs have public IP addresses). # @!attribute [rw] enable_nested_virtualization # @return [::Boolean] # Optional. Whether to enable nested virtualization on Cloud Workstations # VMs created using this workstation configuration. # # Defaults to false. # # Nested virtualization lets you run virtual machine (VM) instances # inside your workstation. Before enabling nested virtualization, # consider the following important considerations. Cloud Workstations # instances are subject to the [same restrictions as Compute Engine # instances](https://cloud.google.com/compute/docs/instances/nested-virtualization/overview#restrictions): # # * **Organization policy**: projects, folders, or # organizations may be restricted from creating nested VMs if the # **Disable VM nested virtualization** constraint is enforced in # the organization policy. For more information, see the # Compute Engine section, # [Checking whether nested virtualization is # allowed](https://cloud.google.com/compute/docs/instances/nested-virtualization/managing-constraint#checking_whether_nested_virtualization_is_allowed). # * **Performance**: nested VMs might experience a 10% or greater # decrease in performance for workloads that are CPU-bound and # possibly greater than a 10% decrease for workloads that are # input/output bound. # * **Machine Type**: nested virtualization can only be enabled on # workstation configurations that specify a # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance#machine_type machine_type} # in the N1 or N2 machine series. # @!attribute [rw] shielded_instance_config # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::GceShieldedInstanceConfig] # Optional. A set of Compute Engine Shielded instance options. # @!attribute [rw] confidential_instance_config # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::GceConfidentialInstanceConfig] # Optional. A set of Compute Engine Confidential VM instance options. # @!attribute [rw] boot_disk_size_gb # @return [::Integer] # Optional. The size of the boot disk for the VM in gigabytes (GB). # The minimum boot disk size is `30` GB. Defaults to `50` GB. # @!attribute [rw] accelerators # @return [::Array<::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::Accelerator>] # Optional. A list of the type and count of accelerator cards attached to # the instance. # @!attribute [rw] boost_configs # @return [::Array<::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::BoostConfig>] # Optional. A list of the boost configurations that workstations created # using this workstation configuration are allowed to use. If specified, # users will have the option to choose from the list of boost configs # when starting a workstation. # @!attribute [rw] disable_ssh # @return [::Boolean] # Optional. Whether to disable SSH access to the VM. # @!attribute [rw] vm_tags # @return [::Google::Protobuf::Map{::String => ::String}] # Optional. Resource manager tags to be bound to this instance. # Tag keys and values have the same definition as [resource manager # tags](https://cloud.google.com/resource-manager/docs/tags/tags-overview). # Keys must be in the format `tagKeys/{tag_key_id}`, and # values are in the format `tagValues/456`. # @!attribute [rw] reservation_affinity # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::ReservationAffinity] # Optional. # [ReservationAffinity](https://cloud.google.com/compute/docs/instances/reserving-zonal-resources) # specifies a reservation that can be consumed to create VM # instances. If SPECIFIC_RESERVATION is specified, Cloud Workstations # will only create VMs in the zone where the reservation is located. # This would affect availability since the service will no longer be # resilient to zonal outages. If ANY_RESERVATION is specified, creating # reservations in both zones that the config creates VMs in will ensure # higher availability. # **Important Considerations for Reservation Affinity:** # # * This feature is intended for advanced users and requires # familiarity with Google Compute Engine reservations. # * Using reservations incurs charges, regardless of utilization. # * The resources in the pool will consume the specified # reservation. Take this into account when setting the # pool size. # @!attribute [rw] startup_script_uri # @return [::String] # Optional. Link to the startup script stored in Cloud Storage. This # script will be run on the host workstation VM when the VM is created. # The URI must be of the form gs://\\{bucket-name}/\\{object-name}. If # specifying a startup script, the service account must have [Permission # to access the bucket and script file in Cloud # Storage](https://cloud.google.com/storage/docs/access-control/iam-permissions). # Otherwise, the script must be publicly accessible. # Note that the service regularly updates the OS version of the host VM, # and it is the responsibility of the user to ensure the script stays # compatible with the OS version. # @!attribute [rw] instance_metadata # @return [::Google::Protobuf::Map{::String => ::String}] # Optional. Custom metadata to apply to Compute Engine instances. class GceInstance include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # A set of Compute Engine Shielded instance options. # @!attribute [rw] enable_secure_boot # @return [::Boolean] # Optional. Whether the instance has Secure Boot enabled. # @!attribute [rw] enable_vtpm # @return [::Boolean] # Optional. Whether the instance has the vTPM enabled. # @!attribute [rw] enable_integrity_monitoring # @return [::Boolean] # Optional. Whether the instance has integrity monitoring enabled. class GceShieldedInstanceConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # A set of Compute Engine Confidential VM instance options. # @!attribute [rw] enable_confidential_compute # @return [::Boolean] # Optional. Whether the instance has confidential compute enabled. class GceConfidentialInstanceConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # An accelerator card attached to the instance. # @!attribute [rw] type # @return [::String] # Optional. Type of accelerator resource to attach to the instance, for # example, # `"nvidia-tesla-p100"`. # @!attribute [rw] count # @return [::Integer] # Optional. Number of accelerator cards exposed to the instance. class Accelerator include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # A boost configuration is a set of resources that a workstation can use # to increase its performance. If you specify a boost configuration, upon # startup, workstation users can choose to use a VM provisioned under the # boost config by passing the boost config ID in the start request. If # the workstation user does not provide a boost config ID in the start # request, the system will choose a VM from the pool provisioned under # the default config. # @!attribute [rw] id # @return [::String] # Required. The ID to be used for the boost configuration. # @!attribute [rw] machine_type # @return [::String] # Optional. 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`. # @!attribute [rw] accelerators # @return [::Array<::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::Accelerator>] # Optional. A list of the type and count of accelerator cards attached # to the boost instance. Defaults to `none`. # @!attribute [rw] boot_disk_size_gb # @return [::Integer] # Optional. The size of the boot disk for the VM in gigabytes (GB). # The minimum boot disk size is `30` GB. Defaults to `50` GB. # @!attribute [rw] enable_nested_virtualization # @return [::Boolean] # Optional. Whether to enable nested virtualization on boosted Cloud # Workstations VMs running using this boost configuration. # # Defaults to false. # # Nested virtualization lets you run virtual machine (VM) instances # inside your workstation. Before enabling nested virtualization, # consider the following important considerations. Cloud Workstations # instances are subject to the [same restrictions as Compute Engine # instances](https://cloud.google.com/compute/docs/instances/nested-virtualization/overview#restrictions): # # * **Organization policy**: projects, folders, or # organizations may be restricted from creating nested VMs if the # **Disable VM nested virtualization** constraint is enforced in # the organization policy. For more information, see the # Compute Engine section, # [Checking whether nested virtualization is # allowed](https://cloud.google.com/compute/docs/instances/nested-virtualization/managing-constraint#checking_whether_nested_virtualization_is_allowed). # * **Performance**: nested VMs might experience a 10% or greater # decrease in performance for workloads that are CPU-bound and # possibly greater than a 10% decrease for workloads that are # input/output bound. # * **Machine Type**: nested virtualization can only be enabled on # boost configurations that specify a # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::BoostConfig#machine_type machine_type} # in the N1 or N2 machine series. # @!attribute [rw] pool_size # @return [::Integer] # Optional. The number of boost VMs that the system should keep idle so # that workstations can be boosted quickly. Defaults to `0`. # @!attribute [rw] reservation_affinity # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::ReservationAffinity] # Optional. # [ReservationAffinity](https://cloud.google.com/compute/docs/instances/reserving-zonal-resources) # specifies a reservation that can be consumed to create boost VM # instances. If SPECIFIC_RESERVATION is specified, Cloud Workstations # will only create VMs in the zone where the reservation is located. # This would affect availability since the service will no longer be # resilient to zonal outages. If ANY_RESERVATION is specified, creating # reservations in both zones that the config creates VMs in will ensure # higher availability. # **Important Considerations for Reservation Affinity:** # # * This feature is intended for advanced users and requires # familiarity with Google Compute Engine reservations. # * Using reservations incurs charges, regardless of utilization. # * The resources in the pool will consume the specified # reservation. Take this into account when setting the # pool size. class BoostConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # ReservationAffinity is the configuration of the desired reservation # from which instances can consume resources. # @!attribute [rw] consume_reservation_type # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::ReservationAffinity::Type] # Optional. Corresponds to the type of reservation consumption. # @!attribute [rw] key # @return [::String] # Optional. Corresponds to the label key of reservation resource. # @!attribute [rw] values # @return [::Array<::String>] # Optional. Corresponds to the label values of reservation resources. # Valid values are either the name of a reservation in the same project # or "projects/\\{project}/reservations/\\{reservation}" to target a shared # reservation in the same zone but in a different project. class ReservationAffinity include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # Indicates whether to consume capacity from a reservation or not. module Type # Default value. This should not be used. TYPE_UNSPECIFIED = 0 # Do not consume from any reserved capacity. NO_RESERVATION = 1 # Consume any reservation available. ANY_RESERVATION = 2 # Must consume from a specific reservation. Must specify key value # fields for specifying the reservations. SPECIFIC_RESERVATION = 3 end end # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class VmTagsEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class InstanceMetadataEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end end end # A directory to persist across workstation sessions. Updates to this field # will not update existing workstations and will only take effect on new # workstations. # @!attribute [rw] gce_pd # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk] # A PersistentDirectory backed by a Compute Engine persistent disk. # # Note: The following fields are mutually exclusive: `gce_pd`, `gce_hd`. If a field in that set is populated, all other fields in the set will automatically be cleared. # @!attribute [rw] gce_hd # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceHyperdiskBalancedHighAvailability] # A PersistentDirectory backed by a Compute Engine hyperdisk high # availability disk. # # Note: The following fields are mutually exclusive: `gce_hd`, `gce_pd`. If a field in that set is populated, all other fields in the set will automatically be cleared. # @!attribute [rw] mount_path # @return [::String] # Optional. Location of this directory in the running workstation. class PersistentDirectory include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # A Persistent Directory backed by a Compute Engine regional persistent # disk. The # {::Google::Cloud::Workstations::V1beta::WorkstationConfig#persistent_directories persistent_directories} # field is repeated, but it may contain only one entry. It creates a # [persistent # disk](https://cloud.google.com/compute/docs/disks/persistent-disks) that # mounts to the workstation VM at `/home` when the session starts and # detaches when the session ends. If this field is empty, workstations # created with this configuration do not have a persistent home # directory. # @!attribute [rw] size_gb # @return [::Integer] # Optional. The GB capacity of a persistent home directory for each # workstation created with this configuration. Must be empty if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk#source_snapshot source_snapshot} # is set. # # Valid values are `10`, `50`, `100`, `200`, `500`, or `1000`. # Defaults to `200`. If less than `200` GB, the # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk#disk_type disk_type} # must be # `"pd-balanced"` or `"pd-ssd"`. # @!attribute [rw] max_size_gb # @return [::Integer] # Optional. Maximum size in GB to which this persistent directory can be # resized. Defaults to unlimited if not set. # @!attribute [rw] fs_type # @return [::String] # Optional. Type of file system that the disk should be formatted with. # The workstation image must support this file system type. Must be empty # if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk#source_snapshot source_snapshot} # is set. Defaults to `"ext4"`. # @!attribute [rw] disk_type # @return [::String] # Optional. The [type of the persistent # disk](https://cloud.google.com/compute/docs/disks#disk-types) for the # home directory. Defaults to `"pd-standard"`. # @!attribute [rw] source_snapshot # @return [::String] # Optional. Name of the snapshot to use as the source for the disk. If # set, # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk#size_gb size_gb} # and # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk#fs_type fs_type} # must be empty. Must be formatted as ext4 file system with no # partitions. # @!attribute [rw] reclaim_policy # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk::ReclaimPolicy] # Optional. Whether the persistent disk should be deleted when the # workstation is deleted. Valid values are `DELETE` and `RETAIN`. # Defaults to `DELETE`. # @!attribute [rw] archive_timeout # @return [::Google::Protobuf::Duration] # Optional. Number of seconds to wait after initially creating or # subsequently shutting down the workstation before converting its disk # into a snapshot. This generally saves costs at the expense of greater # startup time on next workstation start, as the service will need to # create a disk from the archival snapshot. # # A value of `"0s"` indicates that the disk will never be archived. class GceRegionalPersistentDisk include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # Value representing what should happen to the disk after the workstation # is deleted. module ReclaimPolicy # Do not use. RECLAIM_POLICY_UNSPECIFIED = 0 # Delete the persistent disk when deleting the workstation. DELETE = 1 # Keep the persistent disk when deleting the workstation. # An administrator must manually delete the disk. RETAIN = 2 end end # A Persistent Directory backed by a Compute Engine # [Hyperdisk Balanced High Availability # Disk](https://cloud.google.com/compute/docs/disks/hd-types/hyperdisk-balanced-ha). # This is a high-availability block storage solution that offers a balance # between performance and cost for most general-purpose workloads. # @!attribute [rw] size_gb # @return [::Integer] # Optional. The GB capacity of a persistent home directory for each # workstation created with this configuration. Must be empty if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceHyperdiskBalancedHighAvailability#source_snapshot source_snapshot} # is set. # # Valid values are `10`, `50`, `100`, `200`, `500`, or `1000`. # Defaults to `200`. # @!attribute [rw] max_size_gb # @return [::Integer] # Optional. Maximum size in GB to which this persistent directory can be # resized. Defaults to unlimited if not set. # @!attribute [rw] source_snapshot # @return [::String] # Optional. Name of the snapshot to use as the source for the disk. If # set, # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceHyperdiskBalancedHighAvailability#size_gb size_gb} # must be empty. Must be formatted as ext4 file system with no # partitions. # @!attribute [rw] reclaim_policy # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceHyperdiskBalancedHighAvailability::ReclaimPolicy] # Optional. Whether the persistent disk should be deleted when the # workstation is deleted. Valid values are `DELETE` and `RETAIN`. # Defaults to `DELETE`. # @!attribute [rw] archive_timeout # @return [::Google::Protobuf::Duration] # Optional. Number of seconds to wait after initially creating or # subsequently shutting down the workstation before converting its disk # into a snapshot. This generally saves costs at the expense of greater # startup time on next workstation start, as the service will need to # create a disk from the archival snapshot. # # A value of `"0s"` indicates that the disk will never be archived. class GceHyperdiskBalancedHighAvailability include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # Value representing what should happen to the disk after the workstation # is deleted. module ReclaimPolicy # Do not use. RECLAIM_POLICY_UNSPECIFIED = 0 # Delete the persistent disk when deleting the workstation. DELETE = 1 # Keep the persistent disk when deleting the workstation. # An administrator must manually delete the disk. RETAIN = 2 end end end # An ephemeral directory which won't persist across workstation sessions. It # is freshly created on every workstation start operation. # @!attribute [rw] gce_pd # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk] # An EphemeralDirectory backed by a Compute Engine persistent disk. # @!attribute [rw] mount_path # @return [::String] # Required. Location of this directory in the running workstation. class EphemeralDirectory include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # An EphemeralDirectory is backed by a Compute Engine persistent disk. # @!attribute [rw] disk_type # @return [::String] # Optional. Type of the disk to use. Defaults to `"pd-standard"`. # @!attribute [rw] source_snapshot # @return [::String] # Optional. Name of the snapshot to use as the source for the disk. Must # be empty if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#source_image source_image} # is set. Must be empty if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#read_only read_only} # is false. Updating # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#source_snapshot source_snapshot} # will update content in the ephemeral directory after the workstation is # restarted. # # Only file systems supported by Container-Optimized OS (COS) # are explicitly supported. For a list of supported file systems, see # [the filesystems available in Container-Optimized # OS](https://cloud.google.com/container-optimized-os/docs/concepts/supported-filesystems). # # This field is mutable. # @!attribute [rw] source_image # @return [::String] # Optional. Name of the disk image to use as the source for the disk. # Must be empty if # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#source_snapshot source_snapshot} # is set. Updating # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#source_image source_image} # will update content in the ephemeral directory after the workstation is # restarted. # # Only file systems supported by Container-Optimized OS (COS) # are explicitly supported. For a list of supported file systems, please # refer to the [COS # documentation](https://cloud.google.com/container-optimized-os/docs/concepts/supported-filesystems). # # This field is mutable. # @!attribute [rw] read_only # @return [::Boolean] # Optional. Whether the disk is read only. If true, the disk may be # shared by multiple VMs and # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#source_snapshot source_snapshot} # must be set. class GcePersistentDisk include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end end # A Docker container. # @!attribute [rw] image # @return [::String] # Optional. A Docker container image that defines a custom environment. # # Cloud Workstations provides a number of # [preconfigured # images](https://cloud.google.com/workstations/docs/preconfigured-base-images), # but you can create your own # [custom container # images](https://cloud.google.com/workstations/docs/custom-container-images). # If using a private image, the `host.gceInstance.serviceAccount` field # must be specified in the workstation configuration. # If using a custom container image, the service account must have # [Artifact Registry # Reader](https://cloud.google.com/artifact-registry/docs/access-control#roles) # permission to pull the specified image. Otherwise, the image must be # publicly accessible. # @!attribute [rw] command # @return [::Array<::String>] # Optional. If set, overrides the default ENTRYPOINT specified by the # image. # @!attribute [rw] args # @return [::Array<::String>] # Optional. Arguments passed to the entrypoint. # @!attribute [rw] env # @return [::Google::Protobuf::Map{::String => ::String}] # Optional. Environment variables passed to the container's entrypoint. # @!attribute [rw] working_dir # @return [::String] # Optional. If set, overrides the default DIR specified by the image. # @!attribute [rw] run_as_user # @return [::Integer] # Optional. If set, overrides the USER specified in the image with the # given uid. class Container include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class EnvEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end end # A customer-managed encryption key (CMEK) for the Compute Engine # resources of the associated workstation configuration. Specify the name of # your Cloud KMS encryption key and the default service account. # We recommend that you use a separate service account and follow # [Cloud KMS best # practices](https://cloud.google.com/kms/docs/separation-of-duties). # @!attribute [rw] kms_key # @return [::String] # Immutable. The name of the Google Cloud KMS encryption key. For example, # `"projects/PROJECT_ID/locations/REGION/keyRings/KEY_RING/cryptoKeys/KEY_NAME"`. # The key must be in the same region as the workstation configuration. # @!attribute [rw] kms_key_service_account # @return [::String] # Immutable. The service account to use with the specified # KMS key. We recommend that you use a separate service account # and follow KMS best practices. For more information, see # [Separation of # duties](https://cloud.google.com/kms/docs/separation-of-duties) and # `gcloud kms keys add-iam-policy-binding` # [`--member`](https://cloud.google.com/sdk/gcloud/reference/kms/keys/add-iam-policy-binding#--member). class CustomerEncryptionKey include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # A readiness check to be performed on a workstation. # @!attribute [rw] path # @return [::String] # Optional. Path to which the request should be sent. # @!attribute [rw] port # @return [::Integer] # Optional. Port to which the request should be sent. class ReadinessCheck include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # HTTP options for the running workstations. # @!attribute [rw] allowed_unauthenticated_cors_preflight_requests # @return [::Boolean] # Optional. By default, the workstations service makes sure that all # requests to the workstation are authenticated. CORS preflight requests do # not include cookies or custom headers, and so are considered # unauthenticated and blocked by the workstations service. Enabling this # option allows these unauthenticated CORS preflight requests through to # the workstation, where it becomes the responsibility of the destination # server in the workstation to validate the request. # @!attribute [rw] disable_localhost_replacement # @return [::Boolean] # Optional. By default, the workstations service replaces references to # localhost, 127.0.0.1, and 0.0.0.0 with the workstation's hostname in http # responses from the workstation so that applications under development run # properly on the workstation. This may intefere with some applications, # and so this option allows that behavior to be disabled. class HttpOptions include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # A PortRange defines a range of ports. Both # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PortRange#first first} # and # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PortRange#last last} # are inclusive. To specify a single port, both # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PortRange#first first} # and # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PortRange#last last} # should be the same. # @!attribute [rw] first # @return [::Integer] # Required. Starting port number for the current range of ports. # Valid ports are 22, 80, and ports within the range 1024-65535. # @!attribute [rw] last # @return [::Integer] # Required. Ending port number for the current range of ports. # Valid ports are 22, 80, and ports within the range 1024-65535. class PortRange include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class AnnotationsEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class LabelsEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end end |