google-apis-workstations_v1beta 0.14.0 → 0.16.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -26,13 +26,13 @@ module Google
26
26
  class Accelerator
27
27
  include Google::Apis::Core::Hashable
28
28
 
29
- # Number of accelerator cards exposed to the instance.
29
+ # Optional. Number of accelerator cards exposed to the instance.
30
30
  # Corresponds to the JSON property `count`
31
31
  # @return [Fixnum]
32
32
  attr_accessor :count
33
33
 
34
- # Type of accelerator resource to attach to the instance, for example, "nvidia-
35
- # tesla-p100".
34
+ # Optional. Type of accelerator resource to attach to the instance, for example,
35
+ # `"nvidia-tesla-p100"`.
36
36
  # Corresponds to the JSON property `type`
37
37
  # @return [String]
38
38
  attr_accessor :type
@@ -212,24 +212,24 @@ module Google
212
212
  class Container
213
213
  include Google::Apis::Core::Hashable
214
214
 
215
- # Arguments passed to the entrypoint.
215
+ # Optional. Arguments passed to the entrypoint.
216
216
  # Corresponds to the JSON property `args`
217
217
  # @return [Array<String>]
218
218
  attr_accessor :args
219
219
 
220
- # If set, overrides the default ENTRYPOINT specified by the image.
220
+ # Optional. If set, overrides the default ENTRYPOINT specified by the image.
221
221
  # Corresponds to the JSON property `command`
222
222
  # @return [Array<String>]
223
223
  attr_accessor :command
224
224
 
225
- # Environment variables passed to the container's entrypoint.
225
+ # Optional. Environment variables passed to the container's entrypoint.
226
226
  # Corresponds to the JSON property `env`
227
227
  # @return [Hash<String,String>]
228
228
  attr_accessor :env
229
229
 
230
- # A Docker container image that defines a custom environment. Cloud Workstations
231
- # provides a number of [preconfigured images](https://cloud.google.com/
232
- # workstations/docs/preconfigured-base-images), but you can create your own [
230
+ # Optional. A Docker container image that defines a custom environment. Cloud
231
+ # Workstations provides a number of [preconfigured images](https://cloud.google.
232
+ # com/workstations/docs/preconfigured-base-images), but you can create your own [
233
233
  # custom container images](https://cloud.google.com/workstations/docs/custom-
234
234
  # container-images). If using a private image, the `host.gceInstance.
235
235
  # serviceAccount` field must be specified in the workstation configuration and
@@ -239,12 +239,12 @@ module Google
239
239
  # @return [String]
240
240
  attr_accessor :image
241
241
 
242
- # If set, overrides the USER specified in the image with the given uid.
242
+ # Optional. If set, overrides the USER specified in the image with the given uid.
243
243
  # Corresponds to the JSON property `runAsUser`
244
244
  # @return [Fixnum]
245
245
  attr_accessor :run_as_user
246
246
 
247
- # If set, overrides the default DIR specified by the image.
247
+ # Optional. If set, overrides the default DIR specified by the image.
248
248
  # Corresponds to the JSON property `workingDir`
249
249
  # @return [String]
250
250
  attr_accessor :working_dir
@@ -272,8 +272,8 @@ module Google
272
272
  class CustomerEncryptionKey
273
273
  include Google::Apis::Core::Hashable
274
274
 
275
- # Immutable. The name of the Google Cloud KMS encryption key. For example, `
276
- # projects/PROJECT_ID/locations/REGION/keyRings/KEY_RING/cryptoKeys/KEY_NAME`.
275
+ # Immutable. The name of the Google Cloud KMS encryption key. For example, `"
276
+ # projects/PROJECT_ID/locations/REGION/keyRings/KEY_RING/cryptoKeys/KEY_NAME"`.
277
277
  # The key must be in the same region as the workstation configuration.
278
278
  # Corresponds to the JSON property `kmsKey`
279
279
  # @return [String]
@@ -300,6 +300,32 @@ module Google
300
300
  end
301
301
  end
302
302
 
303
+ # An ephemeral directory which won't persist across workstation sessions. It is
304
+ # freshly created on every workstation start operation.
305
+ class EphemeralDirectory
306
+ include Google::Apis::Core::Hashable
307
+
308
+ # An EphemeralDirectory is backed by a Compute Engine persistent disk.
309
+ # Corresponds to the JSON property `gcePd`
310
+ # @return [Google::Apis::WorkstationsV1beta::GcePersistentDisk]
311
+ attr_accessor :gce_pd
312
+
313
+ # Required. Location of this directory in the running workstation.
314
+ # Corresponds to the JSON property `mountPath`
315
+ # @return [String]
316
+ attr_accessor :mount_path
317
+
318
+ def initialize(**args)
319
+ update!(**args)
320
+ end
321
+
322
+ # Update properties of this object
323
+ def update!(**args)
324
+ @gce_pd = args[:gce_pd] if args.key?(:gce_pd)
325
+ @mount_path = args[:mount_path] if args.key?(:mount_path)
326
+ end
327
+ end
328
+
303
329
  # Represents a textual expression in the Common Expression Language (CEL) syntax.
304
330
  # CEL is a C-like expression language. The syntax and semantics of CEL are
305
331
  # documented at https://github.com/google/cel-spec. Example (Comparison): title:
@@ -358,7 +384,7 @@ module Google
358
384
  class GceConfidentialInstanceConfig
359
385
  include Google::Apis::Core::Hashable
360
386
 
361
- # Whether the instance has confidential compute enabled.
387
+ # Optional. Whether the instance has confidential compute enabled.
362
388
  # Corresponds to the JSON property `enableConfidentialCompute`
363
389
  # @return [Boolean]
364
390
  attr_accessor :enable_confidential_compute
@@ -378,13 +404,14 @@ module Google
378
404
  class GceInstance
379
405
  include Google::Apis::Core::Hashable
380
406
 
381
- # A list of the type and count of accelerator cards attached to the instance.
407
+ # Optional. A list of the type and count of accelerator cards attached to the
408
+ # instance.
382
409
  # Corresponds to the JSON property `accelerators`
383
410
  # @return [Array<Google::Apis::WorkstationsV1beta::Accelerator>]
384
411
  attr_accessor :accelerators
385
412
 
386
- # The size of the boot disk for the VM in gigabytes (GB). The minimum boot disk
387
- # size is `30` GB. Defaults to `50` GB.
413
+ # Optional. The size of the boot disk for the VM in gigabytes (GB). The minimum
414
+ # boot disk size is `30` GB. Defaults to `50` GB.
388
415
  # Corresponds to the JSON property `bootDiskSizeGb`
389
416
  # @return [Fixnum]
390
417
  attr_accessor :boot_disk_size_gb
@@ -394,33 +421,56 @@ module Google
394
421
  # @return [Google::Apis::WorkstationsV1beta::GceConfidentialInstanceConfig]
395
422
  attr_accessor :confidential_instance_config
396
423
 
397
- # When set to true, disables public IP addresses for VMs. If you disable public
398
- # IP addresses, you must set up Private Google Access or Cloud NAT on your
399
- # network. If you use Private Google Access and you use `private.googleapis.com`
400
- # or `restricted.googleapis.com` for Container Registry and Artifact Registry,
401
- # make sure that you set up DNS records for domains `*.gcr.io` and `*.pkg.dev`.
402
- # Defaults to false (VMs have public IP addresses).
424
+ # Optional. When set to true, disables public IP addresses for VMs. If you
425
+ # disable public IP addresses, you must set up Private Google Access or Cloud
426
+ # NAT on your network. If you use Private Google Access and you use `private.
427
+ # googleapis.com` or `restricted.googleapis.com` for Container Registry and
428
+ # Artifact Registry, make sure that you set up DNS records for domains `*.gcr.io`
429
+ # and `*.pkg.dev`. Defaults to false (VMs have public IP addresses).
403
430
  # Corresponds to the JSON property `disablePublicIpAddresses`
404
431
  # @return [Boolean]
405
432
  attr_accessor :disable_public_ip_addresses
406
433
  alias_method :disable_public_ip_addresses?, :disable_public_ip_addresses
407
434
 
408
- # Whether to enable nested virtualization on instances.
435
+ # Optional. Whether to enable nested virtualization on Cloud Workstations VMs
436
+ # created under this workstation configuration. Nested virtualization lets you
437
+ # run virtual machine (VM) instances inside your workstation. Before enabling
438
+ # nested virtualization, consider the following important considerations. Cloud
439
+ # Workstations instances are subject to the [same restrictions as Compute Engine
440
+ # instances](https://cloud.google.com/compute/docs/instances/nested-
441
+ # virtualization/overview#restrictions): * **Organization policy**: projects,
442
+ # folders, or organizations may be restricted from creating nested VMs if the **
443
+ # Disable VM nested virtualization** constraint is enforced in the organization
444
+ # policy. For more information, see the Compute Engine section, [Checking
445
+ # whether nested virtualization is allowed](https://cloud.google.com/compute/
446
+ # docs/instances/nested-virtualization/managing-constraint#
447
+ # checking_whether_nested_virtualization_is_allowed). * **Performance**: nested
448
+ # VMs might experience a 10% or greater decrease in performance for workloads
449
+ # that are CPU-bound and possibly greater than a 10% decrease for workloads that
450
+ # are input/output bound. * **Machine Type**: nested virtualization can only be
451
+ # enabled on workstation configurations that specify a machine_type in the N1 or
452
+ # N2 machine series. * **GPUs**: nested virtualization may not be enabled on
453
+ # workstation configurations with accelerators. * **Operating System**: Because [
454
+ # Container-Optimized OS](https://cloud.google.com/compute/docs/images/os-
455
+ # details#container-optimized_os_cos) does not support nested virtualization,
456
+ # when nested virtualization is enabled, the underlying Compute Engine VM
457
+ # instances boot from an [Ubuntu LTS](https://cloud.google.com/compute/docs/
458
+ # images/os-details#ubuntu_lts) image.
409
459
  # Corresponds to the JSON property `enableNestedVirtualization`
410
460
  # @return [Boolean]
411
461
  attr_accessor :enable_nested_virtualization
412
462
  alias_method :enable_nested_virtualization?, :enable_nested_virtualization
413
463
 
414
- # The type of machine to use for VM instances—for example, `e2-standard-4`. For
415
- # more information about machine types that Cloud Workstations supports, see the
416
- # list of [available machine types](https://cloud.google.com/workstations/docs/
417
- # available-machine-types).
464
+ # Optional. The type of machine to use for VM instances—for example, `"e2-
465
+ # standard-4"`. For more information about machine types that Cloud Workstations
466
+ # supports, see the list of [available machine types](https://cloud.google.com/
467
+ # workstations/docs/available-machine-types).
418
468
  # Corresponds to the JSON property `machineType`
419
469
  # @return [String]
420
470
  attr_accessor :machine_type
421
471
 
422
- # The number of VMs that the system should keep idle so that new workstations
423
- # can be started quickly for new users. Defaults to `0` in the API.
472
+ # Optional. The number of VMs that the system should keep idle so that new
473
+ # workstations can be started quickly for new users. Defaults to `0` in the API.
424
474
  # Corresponds to the JSON property `poolSize`
425
475
  # @return [Fixnum]
426
476
  attr_accessor :pool_size
@@ -431,30 +481,38 @@ module Google
431
481
  # @return [Fixnum]
432
482
  attr_accessor :pooled_instances
433
483
 
434
- # The email address of the service account for Cloud Workstations VMs created
435
- # with this configuration. When specified, be sure that the service account has `
436
- # logginglogEntries.create` permission on the project so it can write logs out
437
- # to Cloud Logging. If using a custom container image, the service account must
438
- # have permissions to pull the specified image. If you as the administrator want
439
- # to be able to `ssh` into the underlying VM, you need to set this value to a
440
- # service account for which you have the `iam.serviceAccounts.actAs` permission.
441
- # Conversely, if you don't want anyone to be able to `ssh` into the underlying
442
- # VM, use a service account where no one has that permission. If not set, VMs
443
- # run with a service account provided by the Cloud Workstations service, and the
444
- # image must be publicly accessible.
484
+ # Optional. The email address of the service account for Cloud Workstations VMs
485
+ # created with this configuration. When specified, be sure that the service
486
+ # account has `logginglogEntries.create` permission on the project so it can
487
+ # write logs out to Cloud Logging. If using a custom container image, the
488
+ # service account must have permissions to pull the specified image. If you as
489
+ # the administrator want to be able to `ssh` into the underlying VM, you need to
490
+ # set this value to a service account for which you have the `iam.
491
+ # serviceAccounts.actAs` permission. Conversely, if you don't want anyone to be
492
+ # able to `ssh` into the underlying VM, use a service account where no one has
493
+ # that permission. If not set, VMs run with a service account provided by the
494
+ # Cloud Workstations service, and the image must be publicly accessible.
445
495
  # Corresponds to the JSON property `serviceAccount`
446
496
  # @return [String]
447
497
  attr_accessor :service_account
448
498
 
499
+ # Optional. Scopes to grant to the service_account. Various scopes are
500
+ # automatically added based on feature usage. When specified, users of
501
+ # workstations under this configuration must have `iam.serviceAccounts.actAs` on
502
+ # the service account.
503
+ # Corresponds to the JSON property `serviceAccountScopes`
504
+ # @return [Array<String>]
505
+ attr_accessor :service_account_scopes
506
+
449
507
  # A set of Compute Engine Shielded instance options.
450
508
  # Corresponds to the JSON property `shieldedInstanceConfig`
451
509
  # @return [Google::Apis::WorkstationsV1beta::GceShieldedInstanceConfig]
452
510
  attr_accessor :shielded_instance_config
453
511
 
454
- # Network tags to add to the Compute Engine machines backing the workstations.
455
- # This option applies [network tags](https://cloud.google.com/vpc/docs/add-
456
- # remove-network-tags) to VMs created with this configuration. These network
457
- # tags enable the creation of [firewall rules](https://cloud.google.com/
512
+ # Optional. Network tags to add to the Compute Engine VMs backing the
513
+ # workstations. This option applies [network tags](https://cloud.google.com/vpc/
514
+ # docs/add-remove-network-tags) to VMs created with this configuration. These
515
+ # network tags enable the creation of [firewall rules](https://cloud.google.com/
458
516
  # workstations/docs/configure-firewall-rules).
459
517
  # Corresponds to the JSON property `tags`
460
518
  # @return [Array<String>]
@@ -475,13 +533,59 @@ module Google
475
533
  @pool_size = args[:pool_size] if args.key?(:pool_size)
476
534
  @pooled_instances = args[:pooled_instances] if args.key?(:pooled_instances)
477
535
  @service_account = args[:service_account] if args.key?(:service_account)
536
+ @service_account_scopes = args[:service_account_scopes] if args.key?(:service_account_scopes)
478
537
  @shielded_instance_config = args[:shielded_instance_config] if args.key?(:shielded_instance_config)
479
538
  @tags = args[:tags] if args.key?(:tags)
480
539
  end
481
540
  end
482
541
 
542
+ # An EphemeralDirectory is backed by a Compute Engine persistent disk.
543
+ class GcePersistentDisk
544
+ include Google::Apis::Core::Hashable
545
+
546
+ # Optional. Type of the disk to use. Defaults to `"pd-standard"`.
547
+ # Corresponds to the JSON property `diskType`
548
+ # @return [String]
549
+ attr_accessor :disk_type
550
+
551
+ # Optional. Whether the disk is read only. If true, the disk may be shared by
552
+ # multiple VMs and source_snapshot must be set.
553
+ # Corresponds to the JSON property `readOnly`
554
+ # @return [Boolean]
555
+ attr_accessor :read_only
556
+ alias_method :read_only?, :read_only
557
+
558
+ # Optional. Name of the disk image to use as the source for the disk. Must be
559
+ # empty if source_snapshot is set. Updating source_image will update content in
560
+ # the ephemeral directory after the workstation is restarted. This field is
561
+ # mutable.
562
+ # Corresponds to the JSON property `sourceImage`
563
+ # @return [String]
564
+ attr_accessor :source_image
565
+
566
+ # Optional. Name of the snapshot to use as the source for the disk. Must be
567
+ # empty if source_image is set. Updating source_snapshot will update content in
568
+ # the ephemeral directory after the workstation is restarted. This field is
569
+ # mutable.
570
+ # Corresponds to the JSON property `sourceSnapshot`
571
+ # @return [String]
572
+ attr_accessor :source_snapshot
573
+
574
+ def initialize(**args)
575
+ update!(**args)
576
+ end
577
+
578
+ # Update properties of this object
579
+ def update!(**args)
580
+ @disk_type = args[:disk_type] if args.key?(:disk_type)
581
+ @read_only = args[:read_only] if args.key?(:read_only)
582
+ @source_image = args[:source_image] if args.key?(:source_image)
583
+ @source_snapshot = args[:source_snapshot] if args.key?(:source_snapshot)
584
+ end
585
+ end
586
+
483
587
  # A PersistentDirectory backed by a Compute Engine regional persistent disk. The
484
- # `persistentDirectories[]` field is repeated, but it may contain only one entry.
588
+ # persistent_directories field is repeated, but it may contain only one entry.
485
589
  # It creates a [persistent disk](https://cloud.google.com/compute/docs/disks/
486
590
  # persistent-disks) that mounts to the workstation VM at `/home` when the
487
591
  # session starts and detaches when the session ends. If this field is empty,
@@ -490,35 +594,35 @@ module Google
490
594
  class GceRegionalPersistentDisk
491
595
  include Google::Apis::Core::Hashable
492
596
 
493
- # The [type of the persistent disk](https://cloud.google.com/compute/docs/disks#
494
- # disk-types) for the home directory. Defaults to `pd-standard`.
597
+ # Optional. The [type of the persistent disk](https://cloud.google.com/compute/
598
+ # docs/disks#disk-types) for the home directory. Defaults to `"pd-standard"`.
495
599
  # Corresponds to the JSON property `diskType`
496
600
  # @return [String]
497
601
  attr_accessor :disk_type
498
602
 
499
- # Type of file system that the disk should be formatted with. The workstation
500
- # image must support this file system type. Must be empty if source_snapshot is
501
- # set. Defaults to `ext4`.
603
+ # Optional. Type of file system that the disk should be formatted with. The
604
+ # workstation image must support this file system type. Must be empty if
605
+ # source_snapshot is set. Defaults to `"ext4"`.
502
606
  # Corresponds to the JSON property `fsType`
503
607
  # @return [String]
504
608
  attr_accessor :fs_type
505
609
 
506
- # Whether the persistent disk should be deleted when the workstation is deleted.
507
- # Valid values are `DELETE` and `RETAIN`. Defaults to `DELETE`.
610
+ # Optional. Whether the persistent disk should be deleted when the workstation
611
+ # is deleted. Valid values are `DELETE` and `RETAIN`. Defaults to `DELETE`.
508
612
  # Corresponds to the JSON property `reclaimPolicy`
509
613
  # @return [String]
510
614
  attr_accessor :reclaim_policy
511
615
 
512
- # The GB capacity of a persistent home directory for each workstation created
513
- # with this configuration. Must be empty if `source_snapshot` is set. Valid
514
- # values are `10`, `50`, `100`, `200`, `500`, or `1000`. Defaults to `200`. If
515
- # less than `200` GB, the `diskType` must be `pd-balanced` or `pd-ssd`.
616
+ # Optional. The GB capacity of a persistent home directory for each workstation
617
+ # created with this configuration. Must be empty if source_snapshot is set.
618
+ # Valid values are `10`, `50`, `100`, `200`, `500`, or `1000`. Defaults to `200`.
619
+ # If less than `200` GB, the disk_type must be `"pd-balanced"` or `"pd-ssd"`.
516
620
  # Corresponds to the JSON property `sizeGb`
517
621
  # @return [Fixnum]
518
622
  attr_accessor :size_gb
519
623
 
520
- # Name of the snapshot to use as the source for the disk. If set, size_gb and
521
- # fs_type must be empty.
624
+ # Optional. Name of the snapshot to use as the source for the disk. If set,
625
+ # size_gb and fs_type must be empty.
522
626
  # Corresponds to the JSON property `sourceSnapshot`
523
627
  # @return [String]
524
628
  attr_accessor :source_snapshot
@@ -541,19 +645,19 @@ module Google
541
645
  class GceShieldedInstanceConfig
542
646
  include Google::Apis::Core::Hashable
543
647
 
544
- # Whether the instance has integrity monitoring enabled.
648
+ # Optional. Whether the instance has integrity monitoring enabled.
545
649
  # Corresponds to the JSON property `enableIntegrityMonitoring`
546
650
  # @return [Boolean]
547
651
  attr_accessor :enable_integrity_monitoring
548
652
  alias_method :enable_integrity_monitoring?, :enable_integrity_monitoring
549
653
 
550
- # Whether the instance has Secure Boot enabled.
654
+ # Optional. Whether the instance has Secure Boot enabled.
551
655
  # Corresponds to the JSON property `enableSecureBoot`
552
656
  # @return [Boolean]
553
657
  attr_accessor :enable_secure_boot
554
658
  alias_method :enable_secure_boot?, :enable_secure_boot
555
659
 
556
- # Whether the instance has the vTPM enabled.
660
+ # Optional. Whether the instance has the vTPM enabled.
557
661
  # Corresponds to the JSON property `enableVtpm`
558
662
  # @return [Boolean]
559
663
  attr_accessor :enable_vtpm
@@ -819,13 +923,13 @@ module Google
819
923
  class ListWorkstationsResponse
820
924
  include Google::Apis::Core::Hashable
821
925
 
822
- # Token to retrieve the next page of results, or empty if there are no more
823
- # results in the list.
926
+ # Optional. Token to retrieve the next page of results, or empty if there are no
927
+ # more results in the list.
824
928
  # Corresponds to the JSON property `nextPageToken`
825
929
  # @return [String]
826
930
  attr_accessor :next_page_token
827
931
 
828
- # Unreachable resources.
932
+ # Optional. Unreachable resources.
829
933
  # Corresponds to the JSON property `unreachable`
830
934
  # @return [Array<String>]
831
935
  attr_accessor :unreachable
@@ -884,13 +988,13 @@ module Google
884
988
  # @return [String]
885
989
  attr_accessor :name
886
990
 
887
- # The normal response of the operation in case of success. If the original
888
- # method returns no data on success, such as `Delete`, the response is `google.
889
- # protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`,
890
- # the response should be the resource. For other methods, the response should
891
- # have the type `XxxResponse`, where `Xxx` is the original method name. For
892
- # example, if the original method name is `TakeSnapshot()`, the inferred
893
- # response type is `TakeSnapshotResponse`.
991
+ # The normal, successful response of the operation. If the original method
992
+ # returns no data on success, such as `Delete`, the response is `google.protobuf.
993
+ # Empty`. If the original method is standard `Get`/`Create`/`Update`, the
994
+ # response should be the resource. For other methods, the response should have
995
+ # the type `XxxResponse`, where `Xxx` is the original method name. For example,
996
+ # if the original method name is `TakeSnapshot()`, the inferred response type is
997
+ # `TakeSnapshotResponse`.
894
998
  # Corresponds to the JSON property `response`
895
999
  # @return [Hash<String,Object>]
896
1000
  attr_accessor :response
@@ -971,7 +1075,7 @@ module Google
971
1075
  include Google::Apis::Core::Hashable
972
1076
 
973
1077
  # A PersistentDirectory backed by a Compute Engine regional persistent disk. The
974
- # `persistentDirectories[]` field is repeated, but it may contain only one entry.
1078
+ # persistent_directories field is repeated, but it may contain only one entry.
975
1079
  # It creates a [persistent disk](https://cloud.google.com/compute/docs/disks/
976
1080
  # persistent-disks) that mounts to the workstation VM at `/home` when the
977
1081
  # session starts and detaches when the session ends. If this field is empty,
@@ -981,7 +1085,7 @@ module Google
981
1085
  # @return [Google::Apis::WorkstationsV1beta::GceRegionalPersistentDisk]
982
1086
  attr_accessor :gce_pd
983
1087
 
984
- # Location of this directory in the running workstation.
1088
+ # Optional. Location of this directory in the running workstation.
985
1089
  # Corresponds to the JSON property `mountPath`
986
1090
  # @return [String]
987
1091
  attr_accessor :mount_path
@@ -1008,22 +1112,22 @@ module Google
1008
1112
  # evaluates to `true`. A condition can add constraints based on attributes of
1009
1113
  # the request, the resource, or both. To learn which resources support
1010
1114
  # conditions in their IAM policies, see the [IAM documentation](https://cloud.
1011
- # google.com/iam/help/conditions/resource-policies). **JSON example:** ` "
1115
+ # google.com/iam/help/conditions/resource-policies). **JSON example:** ``` ` "
1012
1116
  # bindings": [ ` "role": "roles/resourcemanager.organizationAdmin", "members": [
1013
1117
  # "user:mike@example.com", "group:admins@example.com", "domain:google.com", "
1014
1118
  # serviceAccount:my-project-id@appspot.gserviceaccount.com" ] `, ` "role": "
1015
1119
  # roles/resourcemanager.organizationViewer", "members": [ "user:eve@example.com"
1016
1120
  # ], "condition": ` "title": "expirable access", "description": "Does not grant
1017
1121
  # access after Sep 2020", "expression": "request.time < timestamp('2020-10-01T00:
1018
- # 00:00.000Z')", ` ` ], "etag": "BwWWja0YfJA=", "version": 3 ` **YAML example:**
1019
- # bindings: - members: - user:mike@example.com - group:admins@example.com -
1020
- # domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com
1021
- # role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.
1022
- # com role: roles/resourcemanager.organizationViewer condition: title: expirable
1023
- # access description: Does not grant access after Sep 2020 expression: request.
1024
- # time < timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 For
1025
- # a description of IAM and its features, see the [IAM documentation](https://
1026
- # cloud.google.com/iam/docs/).
1122
+ # 00:00.000Z')", ` ` ], "etag": "BwWWja0YfJA=", "version": 3 ` ``` **YAML
1123
+ # example:** ``` bindings: - members: - user:mike@example.com - group:admins@
1124
+ # example.com - domain:google.com - serviceAccount:my-project-id@appspot.
1125
+ # gserviceaccount.com role: roles/resourcemanager.organizationAdmin - members: -
1126
+ # user:eve@example.com role: roles/resourcemanager.organizationViewer condition:
1127
+ # title: expirable access description: Does not grant access after Sep 2020
1128
+ # expression: request.time < timestamp('2020-10-01T00:00:00.000Z') etag:
1129
+ # BwWWja0YfJA= version: 3 ``` For a description of IAM and its features, see the
1130
+ # [IAM documentation](https://cloud.google.com/iam/docs/).
1027
1131
  class Policy
1028
1132
  include Google::Apis::Core::Hashable
1029
1133
 
@@ -1092,21 +1196,22 @@ module Google
1092
1196
  end
1093
1197
  end
1094
1198
 
1095
- # Configuration options for private clusters.
1199
+ # Configuration options for private workstation clusters.
1096
1200
  class PrivateClusterConfig
1097
1201
  include Google::Apis::Core::Hashable
1098
1202
 
1099
- # Additional projects that are allowed to attach to the workstation cluster's
1100
- # service attachment. By default, the workstation cluster's project and the VPC
1101
- # host project (if different) are allowed.
1203
+ # Optional. Additional projects that are allowed to attach to the workstation
1204
+ # cluster's service attachment. By default, the workstation cluster's project
1205
+ # and the VPC host project (if different) are allowed.
1102
1206
  # Corresponds to the JSON property `allowedProjects`
1103
1207
  # @return [Array<String>]
1104
1208
  attr_accessor :allowed_projects
1105
1209
 
1106
1210
  # Output only. Hostname for the workstation cluster. This field will be
1107
1211
  # populated only when private endpoint is enabled. To access workstations in the
1108
- # cluster, create a new DNS zone mapping this domain name to an internal IP
1109
- # address and a forwarding rule mapping that address to the service attachment.
1212
+ # workstation cluster, create a new DNS zone mapping this domain name to an
1213
+ # internal IP address and a forwarding rule mapping that address to the service
1214
+ # attachment.
1110
1215
  # Corresponds to the JSON property `clusterHostname`
1111
1216
  # @return [String]
1112
1217
  attr_accessor :cluster_hostname
@@ -1119,9 +1224,9 @@ module Google
1119
1224
 
1120
1225
  # Output only. Service attachment URI for the workstation cluster. The service
1121
1226
  # attachemnt is created when private endpoint is enabled. To access workstations
1122
- # in the cluster, configure access to the managed service using [Private Service
1123
- # Connect](https://cloud.google.com/vpc/docs/configure-private-service-connect-
1124
- # services).
1227
+ # in the workstation cluster, configure access to the managed service using [
1228
+ # Private Service Connect](https://cloud.google.com/vpc/docs/configure-private-
1229
+ # service-connect-services).
1125
1230
  # Corresponds to the JSON property `serviceAttachmentUri`
1126
1231
  # @return [String]
1127
1232
  attr_accessor :service_attachment_uri
@@ -1143,12 +1248,12 @@ module Google
1143
1248
  class ReadinessCheck
1144
1249
  include Google::Apis::Core::Hashable
1145
1250
 
1146
- # Path to which the request should be sent.
1251
+ # Optional. Path to which the request should be sent.
1147
1252
  # Corresponds to the JSON property `path`
1148
1253
  # @return [String]
1149
1254
  attr_accessor :path
1150
1255
 
1151
- # Port to which the request should be sent.
1256
+ # Optional. Port to which the request should be sent.
1152
1257
  # Corresponds to the JSON property `port`
1153
1258
  # @return [Fixnum]
1154
1259
  attr_accessor :port
@@ -1179,22 +1284,22 @@ module Google
1179
1284
  # evaluates to `true`. A condition can add constraints based on attributes of
1180
1285
  # the request, the resource, or both. To learn which resources support
1181
1286
  # conditions in their IAM policies, see the [IAM documentation](https://cloud.
1182
- # google.com/iam/help/conditions/resource-policies). **JSON example:** ` "
1287
+ # google.com/iam/help/conditions/resource-policies). **JSON example:** ``` ` "
1183
1288
  # bindings": [ ` "role": "roles/resourcemanager.organizationAdmin", "members": [
1184
1289
  # "user:mike@example.com", "group:admins@example.com", "domain:google.com", "
1185
1290
  # serviceAccount:my-project-id@appspot.gserviceaccount.com" ] `, ` "role": "
1186
1291
  # roles/resourcemanager.organizationViewer", "members": [ "user:eve@example.com"
1187
1292
  # ], "condition": ` "title": "expirable access", "description": "Does not grant
1188
1293
  # access after Sep 2020", "expression": "request.time < timestamp('2020-10-01T00:
1189
- # 00:00.000Z')", ` ` ], "etag": "BwWWja0YfJA=", "version": 3 ` **YAML example:**
1190
- # bindings: - members: - user:mike@example.com - group:admins@example.com -
1191
- # domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com
1192
- # role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.
1193
- # com role: roles/resourcemanager.organizationViewer condition: title: expirable
1194
- # access description: Does not grant access after Sep 2020 expression: request.
1195
- # time < timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 For
1196
- # a description of IAM and its features, see the [IAM documentation](https://
1197
- # cloud.google.com/iam/docs/).
1294
+ # 00:00.000Z')", ` ` ], "etag": "BwWWja0YfJA=", "version": 3 ` ``` **YAML
1295
+ # example:** ``` bindings: - members: - user:mike@example.com - group:admins@
1296
+ # example.com - domain:google.com - serviceAccount:my-project-id@appspot.
1297
+ # gserviceaccount.com role: roles/resourcemanager.organizationAdmin - members: -
1298
+ # user:eve@example.com role: roles/resourcemanager.organizationViewer condition:
1299
+ # title: expirable access description: Does not grant access after Sep 2020
1300
+ # expression: request.time < timestamp('2020-10-01T00:00:00.000Z') etag:
1301
+ # BwWWja0YfJA= version: 3 ``` For a description of IAM and its features, see the
1302
+ # [IAM documentation](https://cloud.google.com/iam/docs/).
1198
1303
  # Corresponds to the JSON property `policy`
1199
1304
  # @return [Google::Apis::WorkstationsV1beta::Policy]
1200
1305
  attr_accessor :policy
@@ -1221,14 +1326,14 @@ module Google
1221
1326
  class StartWorkstationRequest
1222
1327
  include Google::Apis::Core::Hashable
1223
1328
 
1224
- # If set, the request will be rejected if the latest version of the workstation
1225
- # on the server does not have this ETag.
1329
+ # Optional. If set, the request will be rejected if the latest version of the
1330
+ # workstation on the server does not have this ETag.
1226
1331
  # Corresponds to the JSON property `etag`
1227
1332
  # @return [String]
1228
1333
  attr_accessor :etag
1229
1334
 
1230
- # If set, validate the request and preview the review, but do not actually apply
1231
- # it.
1335
+ # Optional. If set, validate the request and preview the review, but do not
1336
+ # actually apply it.
1232
1337
  # Corresponds to the JSON property `validateOnly`
1233
1338
  # @return [Boolean]
1234
1339
  attr_accessor :validate_only
@@ -1288,14 +1393,14 @@ module Google
1288
1393
  class StopWorkstationRequest
1289
1394
  include Google::Apis::Core::Hashable
1290
1395
 
1291
- # If set, the request will be rejected if the latest version of the workstation
1292
- # on the server does not have this ETag.
1396
+ # Optional. If set, the request will be rejected if the latest version of the
1397
+ # workstation on the server does not have this ETag.
1293
1398
  # Corresponds to the JSON property `etag`
1294
1399
  # @return [String]
1295
1400
  attr_accessor :etag
1296
1401
 
1297
- # If set, validate the request and preview the review, but do not actually apply
1298
- # it.
1402
+ # Optional. If set, validate the request and preview the review, but do not
1403
+ # actually apply it.
1299
1404
  # Corresponds to the JSON property `validateOnly`
1300
1405
  # @return [Boolean]
1301
1406
  attr_accessor :validate_only
@@ -1356,33 +1461,35 @@ module Google
1356
1461
  class Workstation
1357
1462
  include Google::Apis::Core::Hashable
1358
1463
 
1359
- # Client-specified annotations.
1464
+ # Optional. Client-specified annotations.
1360
1465
  # Corresponds to the JSON property `annotations`
1361
1466
  # @return [Hash<String,String>]
1362
1467
  attr_accessor :annotations
1363
1468
 
1364
- # Output only. Time when this resource was created.
1469
+ # Output only. Time when this workstation was created.
1365
1470
  # Corresponds to the JSON property `createTime`
1366
1471
  # @return [String]
1367
1472
  attr_accessor :create_time
1368
1473
 
1369
- # Output only. Time when this resource was soft-deleted.
1474
+ # Output only. Time when this workstation was soft-deleted.
1370
1475
  # Corresponds to the JSON property `deleteTime`
1371
1476
  # @return [String]
1372
1477
  attr_accessor :delete_time
1373
1478
 
1374
- # Human-readable name for this resource.
1479
+ # Optional. Human-readable name for this workstation.
1375
1480
  # Corresponds to the JSON property `displayName`
1376
1481
  # @return [String]
1377
1482
  attr_accessor :display_name
1378
1483
 
1379
- # Environment variables passed to the workstation container's entrypoint.
1484
+ # Optional. Environment variables passed to the workstation container's
1485
+ # entrypoint.
1380
1486
  # Corresponds to the JSON property `env`
1381
1487
  # @return [Hash<String,String>]
1382
1488
  attr_accessor :env
1383
1489
 
1384
- # Checksum computed by the server. May be sent on update and delete requests to
1385
- # make sure that the client has an up-to-date value before proceeding.
1490
+ # Optional. Checksum computed by the server. May be sent on update and delete
1491
+ # requests to make sure that the client has an up-to-date value before
1492
+ # proceeding.
1386
1493
  # Corresponds to the JSON property `etag`
1387
1494
  # @return [String]
1388
1495
  attr_accessor :etag
@@ -1395,35 +1502,42 @@ module Google
1395
1502
  # @return [String]
1396
1503
  attr_accessor :host
1397
1504
 
1398
- # Client-specified labels that are applied to the resource and that are also
1399
- # propagated to the underlying Compute Engine resources.
1505
+ # Optional. [Labels](https://cloud.google.com/workstations/docs/label-resources)
1506
+ # that are applied to the workstation and that are also propagated to the
1507
+ # underlying Compute Engine resources.
1400
1508
  # Corresponds to the JSON property `labels`
1401
1509
  # @return [Hash<String,String>]
1402
1510
  attr_accessor :labels
1403
1511
 
1404
- # Full name of this resource.
1512
+ # Full name of this workstation.
1405
1513
  # Corresponds to the JSON property `name`
1406
1514
  # @return [String]
1407
1515
  attr_accessor :name
1408
1516
 
1409
- # Output only. Indicates whether this resource is currently being updated to
1517
+ # Output only. Indicates whether this workstation is currently being updated to
1410
1518
  # match its intended state.
1411
1519
  # Corresponds to the JSON property `reconciling`
1412
1520
  # @return [Boolean]
1413
1521
  attr_accessor :reconciling
1414
1522
  alias_method :reconciling?, :reconciling
1415
1523
 
1524
+ # Output only. Time when this workstation was most recently successfully started,
1525
+ # regardless of the workstation's initial state.
1526
+ # Corresponds to the JSON property `startTime`
1527
+ # @return [String]
1528
+ attr_accessor :start_time
1529
+
1416
1530
  # Output only. Current state of the workstation.
1417
1531
  # Corresponds to the JSON property `state`
1418
1532
  # @return [String]
1419
1533
  attr_accessor :state
1420
1534
 
1421
- # Output only. A system-assigned unique identifier for this resource.
1535
+ # Output only. A system-assigned unique identifier for this workstation.
1422
1536
  # Corresponds to the JSON property `uid`
1423
1537
  # @return [String]
1424
1538
  attr_accessor :uid
1425
1539
 
1426
- # Output only. Time when this resource was most recently updated.
1540
+ # Output only. Time when this workstation was most recently updated.
1427
1541
  # Corresponds to the JSON property `updateTime`
1428
1542
  # @return [String]
1429
1543
  attr_accessor :update_time
@@ -1444,106 +1558,110 @@ module Google
1444
1558
  @labels = args[:labels] if args.key?(:labels)
1445
1559
  @name = args[:name] if args.key?(:name)
1446
1560
  @reconciling = args[:reconciling] if args.key?(:reconciling)
1561
+ @start_time = args[:start_time] if args.key?(:start_time)
1447
1562
  @state = args[:state] if args.key?(:state)
1448
1563
  @uid = args[:uid] if args.key?(:uid)
1449
1564
  @update_time = args[:update_time] if args.key?(:update_time)
1450
1565
  end
1451
1566
  end
1452
1567
 
1453
- # A grouping of workstation configurations and the associated workstations in
1454
- # that region.
1568
+ # A workstation cluster resource in the Cloud Workstations API. Defines a group
1569
+ # of workstations in a particular region and the VPC network they're attached to.
1455
1570
  class WorkstationCluster
1456
1571
  include Google::Apis::Core::Hashable
1457
1572
 
1458
- # Client-specified annotations.
1573
+ # Optional. Client-specified annotations.
1459
1574
  # Corresponds to the JSON property `annotations`
1460
1575
  # @return [Hash<String,String>]
1461
1576
  attr_accessor :annotations
1462
1577
 
1463
- # Output only. Status conditions describing the current resource state.
1578
+ # Output only. Status conditions describing the workstation cluster's current
1579
+ # state.
1464
1580
  # Corresponds to the JSON property `conditions`
1465
1581
  # @return [Array<Google::Apis::WorkstationsV1beta::Status>]
1466
1582
  attr_accessor :conditions
1467
1583
 
1468
- # Output only. The private IP address of the control plane for this cluster.
1469
- # Workstation VMs need access to this IP address to work with the service, so
1470
- # make sure that your firewall rules allow egress from the workstation VMs to
1471
- # this address.
1584
+ # Output only. The private IP address of the control plane for this workstation
1585
+ # cluster. Workstation VMs need access to this IP address to work with the
1586
+ # service, so make sure that your firewall rules allow egress from the
1587
+ # workstation VMs to this address.
1472
1588
  # Corresponds to the JSON property `controlPlaneIp`
1473
1589
  # @return [String]
1474
1590
  attr_accessor :control_plane_ip
1475
1591
 
1476
- # Output only. Time when this resource was created.
1592
+ # Output only. Time when this workstation cluster was created.
1477
1593
  # Corresponds to the JSON property `createTime`
1478
1594
  # @return [String]
1479
1595
  attr_accessor :create_time
1480
1596
 
1481
- # Output only. Whether this resource is in degraded mode, in which case it may
1482
- # require user action to restore full functionality. Details can be found in the
1483
- # `conditions` field.
1597
+ # Output only. Whether this workstation cluster is in degraded mode, in which
1598
+ # case it may require user action to restore full functionality. Details can be
1599
+ # found in conditions.
1484
1600
  # Corresponds to the JSON property `degraded`
1485
1601
  # @return [Boolean]
1486
1602
  attr_accessor :degraded
1487
1603
  alias_method :degraded?, :degraded
1488
1604
 
1489
- # Output only. Time when this resource was soft-deleted.
1605
+ # Output only. Time when this workstation cluster was soft-deleted.
1490
1606
  # Corresponds to the JSON property `deleteTime`
1491
1607
  # @return [String]
1492
1608
  attr_accessor :delete_time
1493
1609
 
1494
- # Human-readable name for this resource.
1610
+ # Optional. Human-readable name for this workstation cluster.
1495
1611
  # Corresponds to the JSON property `displayName`
1496
1612
  # @return [String]
1497
1613
  attr_accessor :display_name
1498
1614
 
1499
- # Checksum computed by the server. May be sent on update and delete requests to
1500
- # make sure that the client has an up-to-date value before proceeding.
1615
+ # Optional. Checksum computed by the server. May be sent on update and delete
1616
+ # requests to make sure that the client has an up-to-date value before
1617
+ # proceeding.
1501
1618
  # Corresponds to the JSON property `etag`
1502
1619
  # @return [String]
1503
1620
  attr_accessor :etag
1504
1621
 
1505
- # Client-specified labels that are applied to the resource and that are also
1506
- # propagated to the underlying Compute Engine resources.
1622
+ # Optional. [Labels](https://cloud.google.com/workstations/docs/label-resources)
1623
+ # that are applied to the workstation cluster and that are also propagated to
1624
+ # the underlying Compute Engine resources.
1507
1625
  # Corresponds to the JSON property `labels`
1508
1626
  # @return [Hash<String,String>]
1509
1627
  attr_accessor :labels
1510
1628
 
1511
- # Full name of this resource.
1629
+ # Full name of this workstation cluster.
1512
1630
  # Corresponds to the JSON property `name`
1513
1631
  # @return [String]
1514
1632
  attr_accessor :name
1515
1633
 
1516
1634
  # Immutable. Name of the Compute Engine network in which instances associated
1517
- # with this cluster will be created.
1635
+ # with this workstation cluster will be created.
1518
1636
  # Corresponds to the JSON property `network`
1519
1637
  # @return [String]
1520
1638
  attr_accessor :network
1521
1639
 
1522
- # Configuration options for private clusters.
1640
+ # Configuration options for private workstation clusters.
1523
1641
  # Corresponds to the JSON property `privateClusterConfig`
1524
1642
  # @return [Google::Apis::WorkstationsV1beta::PrivateClusterConfig]
1525
1643
  attr_accessor :private_cluster_config
1526
1644
 
1527
- # Output only. Indicates whether this resource is currently being updated to
1528
- # match its intended state.
1645
+ # Output only. Indicates whether this workstation cluster is currently being
1646
+ # updated to match its intended state.
1529
1647
  # Corresponds to the JSON property `reconciling`
1530
1648
  # @return [Boolean]
1531
1649
  attr_accessor :reconciling
1532
1650
  alias_method :reconciling?, :reconciling
1533
1651
 
1534
1652
  # Immutable. Name of the Compute Engine subnetwork in which instances associated
1535
- # with this cluster will be created. Must be part of the subnetwork specified
1536
- # for this cluster.
1653
+ # with this workstation cluster will be created. Must be part of the subnetwork
1654
+ # specified for this workstation cluster.
1537
1655
  # Corresponds to the JSON property `subnetwork`
1538
1656
  # @return [String]
1539
1657
  attr_accessor :subnetwork
1540
1658
 
1541
- # Output only. A system-assigned unique identifier for this resource.
1659
+ # Output only. A system-assigned unique identifier for this workstation cluster.
1542
1660
  # Corresponds to the JSON property `uid`
1543
1661
  # @return [String]
1544
1662
  attr_accessor :uid
1545
1663
 
1546
- # Output only. Time when this resource was most recently updated.
1664
+ # Output only. Time when this workstation cluster was most recently updated.
1547
1665
  # Corresponds to the JSON property `updateTime`
1548
1666
  # @return [String]
1549
1667
  attr_accessor :update_time
@@ -1573,13 +1691,17 @@ module Google
1573
1691
  end
1574
1692
  end
1575
1693
 
1576
- # A set of configuration options that describe how a workstation runs.
1577
- # Workstation configurations are intended to be shared across multiple
1578
- # workstations.
1694
+ # A workstation configuration resource in the Cloud Workstations API.
1695
+ # Workstation configurations act as templates for workstations. The workstation
1696
+ # configuration defines details such as the workstation virtual machine (VM)
1697
+ # instance type, persistent storage, container image defining environment, which
1698
+ # IDE or Code Editor to use, and more. Administrators and platform teams can
1699
+ # also use [Identity and Access Management (IAM)](https://cloud.google.com/iam/
1700
+ # docs/overview) rules to grant access to teams or to individual developers.
1579
1701
  class WorkstationConfig
1580
1702
  include Google::Apis::Core::Hashable
1581
1703
 
1582
- # Client-specified annotations.
1704
+ # Optional. Client-specified annotations.
1583
1705
  # Corresponds to the JSON property `annotations`
1584
1706
  # @return [Hash<String,String>]
1585
1707
  attr_accessor :annotations
@@ -1594,32 +1716,33 @@ module Google
1594
1716
  # @return [Google::Apis::WorkstationsV1beta::Container]
1595
1717
  attr_accessor :container
1596
1718
 
1597
- # Output only. Time when this resource was created.
1719
+ # Output only. Time when this workstation configuration was created.
1598
1720
  # Corresponds to the JSON property `createTime`
1599
1721
  # @return [String]
1600
1722
  attr_accessor :create_time
1601
1723
 
1602
1724
  # Output only. Whether this resource is degraded, in which case it may require
1603
- # user action to restore full functionality. See also the `conditions` field.
1725
+ # user action to restore full functionality. See also the conditions field.
1604
1726
  # Corresponds to the JSON property `degraded`
1605
1727
  # @return [Boolean]
1606
1728
  attr_accessor :degraded
1607
1729
  alias_method :degraded?, :degraded
1608
1730
 
1609
- # Output only. Time when this resource was soft-deleted.
1731
+ # Output only. Time when this workstation configuration was soft-deleted.
1610
1732
  # Corresponds to the JSON property `deleteTime`
1611
1733
  # @return [String]
1612
1734
  attr_accessor :delete_time
1613
1735
 
1614
- # Human-readable name for this resource.
1736
+ # Optional. Human-readable name for this workstation configuration.
1615
1737
  # Corresponds to the JSON property `displayName`
1616
1738
  # @return [String]
1617
1739
  attr_accessor :display_name
1618
1740
 
1619
- # Whether to enable Linux `auditd` logging on the workstation. When enabled, a
1620
- # service account must also be specified that has `logging.buckets.write`
1621
- # permission on the project. Operating system audit logging is distinct from [
1622
- # Cloud Audit Logs](https://cloud.google.com/workstations/docs/audit-logging).
1741
+ # Optional. Whether to enable Linux `auditd` logging on the workstation. When
1742
+ # enabled, a service account must also be specified that has `logging.buckets.
1743
+ # write` permission on the project. Operating system audit logging is distinct
1744
+ # from [Cloud Audit Logs](https://cloud.google.com/workstations/docs/audit-
1745
+ # logging).
1623
1746
  # Corresponds to the JSON property `enableAuditAgent`
1624
1747
  # @return [Boolean]
1625
1748
  attr_accessor :enable_audit_agent
@@ -1634,8 +1757,15 @@ module Google
1634
1757
  # @return [Google::Apis::WorkstationsV1beta::CustomerEncryptionKey]
1635
1758
  attr_accessor :encryption_key
1636
1759
 
1637
- # Checksum computed by the server. May be sent on update and delete requests to
1638
- # make sure that the client has an up-to-date value before proceeding.
1760
+ # Optional. Ephemeral directories which won't persist across workstation
1761
+ # sessions.
1762
+ # Corresponds to the JSON property `ephemeralDirectories`
1763
+ # @return [Array<Google::Apis::WorkstationsV1beta::EphemeralDirectory>]
1764
+ attr_accessor :ephemeral_directories
1765
+
1766
+ # Optional. Checksum computed by the server. May be sent on update and delete
1767
+ # requests to make sure that the client has an up-to-date value before
1768
+ # proceeding.
1639
1769
  # Corresponds to the JSON property `etag`
1640
1770
  # @return [String]
1641
1771
  attr_accessor :etag
@@ -1645,69 +1775,81 @@ module Google
1645
1775
  # @return [Google::Apis::WorkstationsV1beta::Host]
1646
1776
  attr_accessor :host
1647
1777
 
1648
- # Number of seconds to wait before automatically stopping a workstation after it
1649
- # last received user traffic. A value of `0s` indicates that Cloud Workstations
1650
- # VMs created with this configuration should never time out due to idleness.
1651
- # Provide [duration](https://developers.google.com/protocol-buffers/docs/
1652
- # reference/google.protobuf#duration) terminated by `s` for seconds—for example,
1653
- # `7200s` (2 hours). The default is `1200s` (20 minutes).
1778
+ # Optional. Number of seconds to wait before automatically stopping a
1779
+ # workstation after it last received user traffic. A value of `"0s"` indicates
1780
+ # that Cloud Workstations VMs created with this configuration should never time
1781
+ # out due to idleness. Provide [duration](https://developers.google.com/protocol-
1782
+ # buffers/docs/reference/google.protobuf#duration) terminated by `s` for seconds—
1783
+ # for example, `"7200s"` (2 hours). The default is `"1200s"` (20 minutes).
1654
1784
  # Corresponds to the JSON property `idleTimeout`
1655
1785
  # @return [String]
1656
1786
  attr_accessor :idle_timeout
1657
1787
 
1658
- # Client-specified labels that are applied to the resource and that are also
1659
- # propagated to the underlying Compute Engine resources.
1788
+ # Optional. [Labels](https://cloud.google.com/workstations/docs/label-resources)
1789
+ # that are applied to the workstation configuration and that are also propagated
1790
+ # to the underlying Compute Engine resources.
1660
1791
  # Corresponds to the JSON property `labels`
1661
1792
  # @return [Hash<String,String>]
1662
1793
  attr_accessor :labels
1663
1794
 
1664
- # Full name of this resource.
1795
+ # Full name of this workstation configuration.
1665
1796
  # Corresponds to the JSON property `name`
1666
1797
  # @return [String]
1667
1798
  attr_accessor :name
1668
1799
 
1669
- # Directories to persist across workstation sessions.
1800
+ # Optional. Directories to persist across workstation sessions.
1670
1801
  # Corresponds to the JSON property `persistentDirectories`
1671
1802
  # @return [Array<Google::Apis::WorkstationsV1beta::PersistentDirectory>]
1672
1803
  attr_accessor :persistent_directories
1673
1804
 
1674
- # Readiness checks to perform when starting a workstation using this workstation
1675
- # configuration. Mark a workstation as running only after all specified
1676
- # readiness checks return 200 status codes.
1805
+ # Optional. Readiness checks to perform when starting a workstation using this
1806
+ # workstation configuration. Mark a workstation as running only after all
1807
+ # specified readiness checks return 200 status codes.
1677
1808
  # Corresponds to the JSON property `readinessChecks`
1678
1809
  # @return [Array<Google::Apis::WorkstationsV1beta::ReadinessCheck>]
1679
1810
  attr_accessor :readiness_checks
1680
1811
 
1681
- # Output only. Indicates whether this resource is currently being updated to
1682
- # match its intended state.
1812
+ # Output only. Indicates whether this workstation configuration is currently
1813
+ # being updated to match its intended state.
1683
1814
  # Corresponds to the JSON property `reconciling`
1684
1815
  # @return [Boolean]
1685
1816
  attr_accessor :reconciling
1686
1817
  alias_method :reconciling?, :reconciling
1687
1818
 
1688
- # Number of seconds that a workstation can run until it is automatically shut
1689
- # down. We recommend that workstations be shut down daily to reduce costs and so
1690
- # that security updates can be applied upon restart. The `idleTimeout` and `
1691
- # runningTimeout` parameters are independent of each other. Note that the `
1692
- # runningTimeout` parameter shuts down VMs after the specified time, regardless
1693
- # of whether or not the VMs are idle. Provide duration terminated by `s` for
1694
- # seconds—for example, `54000s` (15 hours). Defaults to `43200s` (12 hours). A
1695
- # value of `0` indicates that workstations using this configuration should never
1696
- # time out. If `encryption_key` is set, it must be greater than `0` and less
1697
- # than `86400s` (24 hours). Warning: A value of `0s` indicates that Cloud
1698
- # Workstations VMs created with this configuration have no maximum running time.
1699
- # This is strongly discouraged because you incur costs and will not pick up
1700
- # security updates.
1819
+ # Optional. Immutable. Specifies the zones used to replicate the VM and disk
1820
+ # resources within the region. If set, exactly two zones within the workstation
1821
+ # cluster's region must be specified—for example, `['us-central1-a', 'us-
1822
+ # central1-f']`. If this field is empty, two default zones within the region are
1823
+ # used. Immutable after the workstation configuration is created.
1824
+ # Corresponds to the JSON property `replicaZones`
1825
+ # @return [Array<String>]
1826
+ attr_accessor :replica_zones
1827
+
1828
+ # Optional. Number of seconds that a workstation can run until it is
1829
+ # automatically shut down. We recommend that workstations be shut down daily to
1830
+ # reduce costs and so that security updates can be applied upon restart. The
1831
+ # idle_timeout and running_timeout fields are independent of each other. Note
1832
+ # that the running_timeout field shuts down VMs after the specified time,
1833
+ # regardless of whether or not the VMs are idle. Provide duration terminated by `
1834
+ # s` for seconds—for example, `"54000s"` (15 hours). Defaults to `"43200s"` (12
1835
+ # hours). A value of `"0s"` indicates that workstations using this configuration
1836
+ # should never time out. If encryption_key is set, it must be greater than `"0s"`
1837
+ # and less than `"86400s"` (24 hours). Warning: A value of `"0s"` indicates
1838
+ # that Cloud Workstations VMs created with this configuration have no maximum
1839
+ # running time. This is strongly discouraged because you incur costs and will
1840
+ # not pick up security updates.
1701
1841
  # Corresponds to the JSON property `runningTimeout`
1702
1842
  # @return [String]
1703
1843
  attr_accessor :running_timeout
1704
1844
 
1705
- # Output only. A system-assigned unique identifier for this resource.
1845
+ # Output only. A system-assigned unique identifier for this workstation
1846
+ # configuration.
1706
1847
  # Corresponds to the JSON property `uid`
1707
1848
  # @return [String]
1708
1849
  attr_accessor :uid
1709
1850
 
1710
- # Output only. Time when this resource was most recently updated.
1851
+ # Output only. Time when this workstation configuration was most recently
1852
+ # updated.
1711
1853
  # Corresponds to the JSON property `updateTime`
1712
1854
  # @return [String]
1713
1855
  attr_accessor :update_time
@@ -1727,6 +1869,7 @@ module Google
1727
1869
  @display_name = args[:display_name] if args.key?(:display_name)
1728
1870
  @enable_audit_agent = args[:enable_audit_agent] if args.key?(:enable_audit_agent)
1729
1871
  @encryption_key = args[:encryption_key] if args.key?(:encryption_key)
1872
+ @ephemeral_directories = args[:ephemeral_directories] if args.key?(:ephemeral_directories)
1730
1873
  @etag = args[:etag] if args.key?(:etag)
1731
1874
  @host = args[:host] if args.key?(:host)
1732
1875
  @idle_timeout = args[:idle_timeout] if args.key?(:idle_timeout)
@@ -1735,6 +1878,7 @@ module Google
1735
1878
  @persistent_directories = args[:persistent_directories] if args.key?(:persistent_directories)
1736
1879
  @readiness_checks = args[:readiness_checks] if args.key?(:readiness_checks)
1737
1880
  @reconciling = args[:reconciling] if args.key?(:reconciling)
1881
+ @replica_zones = args[:replica_zones] if args.key?(:replica_zones)
1738
1882
  @running_timeout = args[:running_timeout] if args.key?(:running_timeout)
1739
1883
  @uid = args[:uid] if args.key?(:uid)
1740
1884
  @update_time = args[:update_time] if args.key?(:update_time)