google-apis-workstations_v1beta 0.14.0 → 0.16.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -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)