@@ -220,6 +220,80 @@ def update!(**args)
220220 end
221221 end
222222
223+ # A configuration that workstations can boost to.
224+ class BoostConfig
225+ include Google ::Apis ::Core ::Hashable
226+
227+ # Optional. A list of the type and count of accelerator cards attached to the
228+ # boost instance. Defaults to `none`.
229+ # Corresponds to the JSON property `accelerators`
230+ # @return [Array<Google::Apis::WorkstationsV1::Accelerator>]
231+ attr_accessor :accelerators
232+
233+ # Optional. The size of the boot disk for the VM in gigabytes (GB). The minimum
234+ # boot disk size is `30` GB. Defaults to `50` GB.
235+ # Corresponds to the JSON property `bootDiskSizeGb`
236+ # @return [Fixnum]
237+ attr_accessor :boot_disk_size_gb
238+
239+ # Optional. Whether to enable nested virtualization on boosted Cloud
240+ # Workstations VMs running using this boost configuration. Defaults to false.
241+ # Nested virtualization lets you run virtual machine (VM) instances inside your
242+ # workstation. Before enabling nested virtualization, consider the following
243+ # important considerations. Cloud Workstations instances are subject to the [
244+ # same restrictions as Compute Engine instances](https://cloud.google.com/
245+ # compute/docs/instances/nested-virtualization/overview#restrictions): * **
246+ # Organization policy**: projects, folders, or organizations may be restricted
247+ # from creating nested VMs if the **Disable VM nested virtualization**
248+ # constraint is enforced in the organization policy. For more information, see
249+ # the Compute Engine section, [Checking whether nested virtualization is allowed]
250+ # (https://cloud.google.com/compute/docs/instances/nested-virtualization/
251+ # managing-constraint#checking_whether_nested_virtualization_is_allowed). * **
252+ # Performance**: nested VMs might experience a 10% or greater decrease in
253+ # performance for workloads that are CPU-bound and possibly greater than a 10%
254+ # decrease for workloads that are input/output bound. * **Machine Type**: nested
255+ # virtualization can only be enabled on boost configurations that specify a
256+ # machine_type in the N1 or N2 machine series.
257+ # Corresponds to the JSON property `enableNestedVirtualization`
258+ # @return [Boolean]
259+ attr_accessor :enable_nested_virtualization
260+ alias_method :enable_nested_virtualization? , :enable_nested_virtualization
261+
262+ # Optional. Required. The id to be used for the boost configuration.
263+ # Corresponds to the JSON property `id`
264+ # @return [String]
265+ attr_accessor :id
266+
267+ # Optional. The type of machine that boosted VM instances will use—for example, `
268+ # e2-standard-4`. For more information about machine types that Cloud
269+ # Workstations supports, see the list of [available machine types](https://cloud.
270+ # google.com/workstations/docs/available-machine-types). Defaults to `e2-
271+ # standard-4`.
272+ # Corresponds to the JSON property `machineType`
273+ # @return [String]
274+ attr_accessor :machine_type
275+
276+ # Optional. The number of boost VMs that the system should keep idle so that
277+ # workstations can be boosted quickly. Defaults to `0`.
278+ # Corresponds to the JSON property `poolSize`
279+ # @return [Fixnum]
280+ attr_accessor :pool_size
281+
282+ def initialize ( **args )
283+ update! ( **args )
284+ end
285+
286+ # Update properties of this object
287+ def update! ( **args )
288+ @accelerators = args [ :accelerators ] if args . key? ( :accelerators )
289+ @boot_disk_size_gb = args [ :boot_disk_size_gb ] if args . key? ( :boot_disk_size_gb )
290+ @enable_nested_virtualization = args [ :enable_nested_virtualization ] if args . key? ( :enable_nested_virtualization )
291+ @id = args [ :id ] if args . key? ( :id )
292+ @machine_type = args [ :machine_type ] if args . key? ( :machine_type )
293+ @pool_size = args [ :pool_size ] if args . key? ( :pool_size )
294+ end
295+ end
296+
223297 # The request message for Operations.CancelOperation.
224298 class CancelOperationRequest
225299 include Google ::Apis ::Core ::Hashable
@@ -456,6 +530,12 @@ class GceInstance
456530 # @return [Array<Google::Apis::WorkstationsV1::Accelerator>]
457531 attr_accessor :accelerators
458532
533+ # Optional. A list of the boost configurations that workstations created using
534+ # this workstation configuration are allowed to use.
535+ # Corresponds to the JSON property `boostConfigs`
536+ # @return [Array<Google::Apis::WorkstationsV1::BoostConfig>]
537+ attr_accessor :boost_configs
538+
459539 # Optional. The size of the boot disk for the VM in gigabytes (GB). The minimum
460540 # boot disk size is `30` GB. Defaults to `50` GB.
461541 # Corresponds to the JSON property `bootDiskSizeGb`
@@ -580,6 +660,7 @@ def initialize(**args)
580660 # Update properties of this object
581661 def update! ( **args )
582662 @accelerators = args [ :accelerators ] if args . key? ( :accelerators )
663+ @boost_configs = args [ :boost_configs ] if args . key? ( :boost_configs )
583664 @boot_disk_size_gb = args [ :boot_disk_size_gb ] if args . key? ( :boot_disk_size_gb )
584665 @confidential_instance_config = args [ :confidential_instance_config ] if args . key? ( :confidential_instance_config )
585666 @disable_public_ip_addresses = args [ :disable_public_ip_addresses ] if args . key? ( :disable_public_ip_addresses )
@@ -1836,6 +1917,12 @@ class WorkstationCluster
18361917 # @return [String]
18371918 attr_accessor :subnetwork
18381919
1920+ # Optional. Tag keys/values directly bound to this resource. For example: "123/
1921+ # environment": "production", "123/costCenter": "marketing"
1922+ # Corresponds to the JSON property `tags`
1923+ # @return [Hash<String,String>]
1924+ attr_accessor :tags
1925+
18391926 # Output only. A system-assigned unique identifier for this workstation cluster.
18401927 # Corresponds to the JSON property `uid`
18411928 # @return [String]
@@ -1867,6 +1954,7 @@ def update!(**args)
18671954 @private_cluster_config = args [ :private_cluster_config ] if args . key? ( :private_cluster_config )
18681955 @reconciling = args [ :reconciling ] if args . key? ( :reconciling )
18691956 @subnetwork = args [ :subnetwork ] if args . key? ( :subnetwork )
1957+ @tags = args [ :tags ] if args . key? ( :tags )
18701958 @uid = args [ :uid ] if args . key? ( :uid )
18711959 @update_time = args [ :update_time ] if args . key? ( :update_time )
18721960 end
0 commit comments