google-cloud-workstations-v1beta 0.8.0 → 0.9.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.
@@ -27,7 +27,7 @@ module Google
27
27
  # VPC network they're attached to.
28
28
  # @!attribute [rw] name
29
29
  # @return [::String]
30
- # Full name of this workstation cluster.
30
+ # Identifier. Full name of this workstation cluster.
31
31
  # @!attribute [rw] display_name
32
32
  # @return [::String]
33
33
  # Optional. Human-readable name for this workstation cluster.
@@ -80,16 +80,53 @@ module Google
80
80
  # @!attribute [rw] private_cluster_config
81
81
  # @return [::Google::Cloud::Workstations::V1beta::WorkstationCluster::PrivateClusterConfig]
82
82
  # Optional. Configuration for private workstation cluster.
83
+ # @!attribute [rw] domain_config
84
+ # @return [::Google::Cloud::Workstations::V1beta::WorkstationCluster::DomainConfig]
85
+ # Optional. Configuration options for a custom domain.
83
86
  # @!attribute [r] degraded
84
87
  # @return [::Boolean]
85
88
  # Output only. Whether this workstation cluster is in degraded mode, in which
86
- # case it may require user action to restore full functionality. Details can
87
- # be found in
88
- # {::Google::Cloud::Workstations::V1beta::WorkstationCluster#conditions conditions}.
89
+ # case it may require user action to restore full functionality. The
90
+ # {::Google::Cloud::Workstations::V1beta::WorkstationCluster#conditions conditions}
91
+ # field contains detailed information about the status of the cluster.
89
92
  # @!attribute [r] conditions
90
93
  # @return [::Array<::Google::Rpc::Status>]
91
94
  # Output only. Status conditions describing the workstation cluster's current
92
95
  # state.
96
+ # @!attribute [r] satisfies_pzs
97
+ # @return [::Boolean]
98
+ # Output only. Reserved for future use.
99
+ # @!attribute [r] satisfies_pzi
100
+ # @return [::Boolean]
101
+ # Output only. Reserved for future use.
102
+ # @!attribute [rw] tags
103
+ # @return [::Google::Protobuf::Map{::String => ::String}]
104
+ # Optional. Input only. Immutable. Tag keys/values directly bound to this
105
+ # resource. For example:
106
+ # "123/environment": "production",
107
+ # "123/costCenter": "marketing"
108
+ # @!attribute [rw] gateway_config
109
+ # @return [::Google::Cloud::Workstations::V1beta::WorkstationCluster::GatewayConfig]
110
+ # Optional. Configuration options for Cluster HTTP Gateway.
111
+ # @!attribute [rw] workstation_authorization_url
112
+ # @return [::String]
113
+ # Optional. Specifies the redirect URL for unauthorized requests received by
114
+ # workstation VMs in this cluster.
115
+ #
116
+ # Redirects to this endpoint will send a base64 encoded `state` query param
117
+ # containing the target workstation name and original request hostname. The
118
+ # endpoint is responsible for retrieving a token using `GenerateAccessToken`
119
+ # and redirecting back to the original hostname with the token.
120
+ # @!attribute [rw] workstation_launch_url
121
+ # @return [::String]
122
+ # Optional. Specifies the launch URL for workstations in this cluster.
123
+ # Requests sent to unstarted workstations will be redirected to this URL.
124
+ #
125
+ # Requests redirected to the launch endpoint will be sent with a
126
+ # `workstation` and `project` query parameter containing the full workstation
127
+ # resource name and project ID, respectively. The launch endpoint is
128
+ # responsible for starting the workstation, polling it until it reaches
129
+ # `STATE_RUNNING`, and then issuing a redirect to the workstation's host URL.
93
130
  class WorkstationCluster
94
131
  include ::Google::Protobuf::MessageExts
95
132
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -108,7 +145,7 @@ module Google
108
145
  # @!attribute [r] service_attachment_uri
109
146
  # @return [::String]
110
147
  # Output only. Service attachment URI for the workstation cluster. The
111
- # service attachemnt is created when private endpoint is enabled. To access
148
+ # service attachment is created when private endpoint is enabled. To access
112
149
  # workstations in the workstation cluster, configure access to the managed
113
150
  # service using [Private Service
114
151
  # Connect](https://cloud.google.com/vpc/docs/configure-private-service-connect-services).
@@ -122,6 +159,25 @@ module Google
122
159
  extend ::Google::Protobuf::MessageExts::ClassMethods
123
160
  end
124
161
 
162
+ # Configuration options for a custom domain.
163
+ # @!attribute [rw] domain
164
+ # @return [::String]
165
+ # Immutable. Domain used by Workstations for HTTP ingress.
166
+ class DomainConfig
167
+ include ::Google::Protobuf::MessageExts
168
+ extend ::Google::Protobuf::MessageExts::ClassMethods
169
+ end
170
+
171
+ # Configuration options for Cluster HTTP Gateway.
172
+ # @!attribute [rw] http2_enabled
173
+ # @return [::Boolean]
174
+ # Optional. Whether HTTP/2 is enabled for this workstation cluster.
175
+ # Defaults to false.
176
+ class GatewayConfig
177
+ include ::Google::Protobuf::MessageExts
178
+ extend ::Google::Protobuf::MessageExts::ClassMethods
179
+ end
180
+
125
181
  # @!attribute [rw] key
126
182
  # @return [::String]
127
183
  # @!attribute [rw] value
@@ -139,6 +195,15 @@ module Google
139
195
  include ::Google::Protobuf::MessageExts
140
196
  extend ::Google::Protobuf::MessageExts::ClassMethods
141
197
  end
198
+
199
+ # @!attribute [rw] key
200
+ # @return [::String]
201
+ # @!attribute [rw] value
202
+ # @return [::String]
203
+ class TagsEntry
204
+ include ::Google::Protobuf::MessageExts
205
+ extend ::Google::Protobuf::MessageExts::ClassMethods
206
+ end
142
207
  end
143
208
 
144
209
  # A workstation configuration resource in the Cloud Workstations API.
@@ -152,7 +217,7 @@ module Google
152
217
  # teams or to individual developers.
153
218
  # @!attribute [rw] name
154
219
  # @return [::String]
155
- # Full name of this workstation configuration.
220
+ # Identifier. Full name of this workstation configuration.
156
221
  # @!attribute [rw] display_name
157
222
  # @return [::String]
158
223
  # Optional. Human-readable name for this workstation configuration.
@@ -223,6 +288,22 @@ module Google
223
288
  # Warning: A value of `"0s"` indicates that Cloud Workstations VMs created
224
289
  # with this configuration have no maximum running time. This is strongly
225
290
  # discouraged because you incur costs and will not pick up security updates.
291
+ # @!attribute [rw] max_usable_workstations
292
+ # @return [::Integer]
293
+ # Optional. Maximum number of workstations under this configuration a user
294
+ # can have `workstations.workstation.use` permission on.
295
+ #
296
+ # Only enforced on CreateWorkstation API calls on the user issuing the API
297
+ # request. Can be overridden by:
298
+ #
299
+ # - granting a user
300
+ # workstations.workstationConfigs.exemptMaxUsableWorkstationLimit permission,
301
+ # or
302
+ # - having a user with that permission create a workstation and
303
+ # granting another user `workstations.workstation.use` permission on
304
+ # that workstation.
305
+ #
306
+ # If not specified, defaults to `0`, which indicates unlimited.
226
307
  # @!attribute [rw] host
227
308
  # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host]
228
309
  # Optional. Runtime host for the workstation.
@@ -273,20 +354,69 @@ module Google
273
354
  # Immutable after the workstation configuration is created.
274
355
  # @!attribute [r] degraded
275
356
  # @return [::Boolean]
276
- # Output only. Whether this resource is degraded, in which case it may
277
- # require user action to restore full functionality. See also the
357
+ # Output only. Whether this workstation configuration is in degraded mode, in
358
+ # which case it may require user action to restore full functionality. The
278
359
  # {::Google::Cloud::Workstations::V1beta::WorkstationConfig#conditions conditions}
279
- # field.
360
+ # field contains detailed information about the status of the configuration.
280
361
  # @!attribute [r] conditions
281
362
  # @return [::Array<::Google::Rpc::Status>]
282
- # Output only. Status conditions describing the current resource state.
363
+ # Output only. Status conditions describing the workstation configuration's
364
+ # current state.
283
365
  # @!attribute [rw] enable_audit_agent
284
366
  # @return [::Boolean]
285
367
  # Optional. Whether to enable Linux `auditd` logging on the workstation. When
286
- # enabled, a service account must also be specified that has
287
- # `logging.buckets.write` permission on the project. Operating system audit
368
+ # enabled, a
369
+ # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance#service_account service_account}
370
+ # must also be specified that has `roles/logging.logWriter` and
371
+ # `roles/monitoring.metricWriter` on the project. Operating system audit
288
372
  # logging is distinct from [Cloud Audit
289
- # Logs](https://cloud.google.com/workstations/docs/audit-logging).
373
+ # Logs](https://cloud.google.com/workstations/docs/audit-logging) and
374
+ # [Container output
375
+ # logging](https://cloud.google.com/workstations/docs/container-output-logging#overview).
376
+ # Operating system audit logs are available in the
377
+ # [Cloud Logging](https://cloud.google.com/logging/docs) console by querying:
378
+ #
379
+ # resource.type="gce_instance"
380
+ # log_name:"/logs/linux-auditd"
381
+ # @!attribute [rw] http_options
382
+ # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::HttpOptions]
383
+ # Optional. HTTP options that customize the behavior of the workstation
384
+ # service's HTTP proxy.
385
+ # @!attribute [rw] disable_tcp_connections
386
+ # @return [::Boolean]
387
+ # Optional. Disables support for plain TCP connections in the workstation.
388
+ # By default the service supports TCP connections through a websocket relay.
389
+ # Setting this option to true disables that relay, which prevents the usage
390
+ # of services that require plain TCP connections, such as SSH.
391
+ # When enabled, all communication must occur over HTTPS or WSS.
392
+ # @!attribute [rw] allowed_ports
393
+ # @return [::Array<::Google::Cloud::Workstations::V1beta::WorkstationConfig::PortRange>]
394
+ # Optional. A list of
395
+ # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PortRange PortRange}s
396
+ # specifying single ports or ranges of ports that are externally accessible
397
+ # in the workstation. Allowed ports must be one of 22, 80, or within range
398
+ # 1024-65535. If not specified defaults to ports 22, 80, and ports
399
+ # 1024-65535.
400
+ # @!attribute [r] satisfies_pzs
401
+ # @return [::Boolean]
402
+ # Output only. Reserved for future use.
403
+ # @!attribute [r] satisfies_pzi
404
+ # @return [::Boolean]
405
+ # Output only. Reserved for future use.
406
+ # @!attribute [rw] grant_workstation_admin_role_on_create
407
+ # @return [::Boolean]
408
+ # Optional. Grant creator of a workstation `roles/workstations.policyAdmin`
409
+ # role along with `roles/workstations.user` role on the workstation created
410
+ # by them. This allows workstation users to share access to either their
411
+ # entire workstation, or individual ports. Defaults to false.
412
+ # @!attribute [rw] enable_pushing_credentials
413
+ # @return [::Boolean]
414
+ # Optional. Enables pushing user provided credentials to Workstations by
415
+ # calling workstations.pushCredentials. If application_default_credentials
416
+ # are supplied to pushCredentials, the provided token is returned when tools
417
+ # and applications running in the user container make a request for Default
418
+ # Application Credentials. Please note that any credentials supplied are made
419
+ # available to all users with access to the workstation.
290
420
  class WorkstationConfig
291
421
  include ::Google::Protobuf::MessageExts
292
422
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -311,10 +441,12 @@ module Google
311
441
  # @return [::String]
312
442
  # Optional. The email address of the service account for Cloud
313
443
  # Workstations VMs created with this configuration. When specified, be
314
- # sure that the service account has `logginglogEntries.create` permission
315
- # on the project so it can write logs out to Cloud Logging. If using a
316
- # custom container image, the service account must have permissions to
317
- # pull the specified image.
444
+ # sure that the service account has `logging.logEntries.create` and
445
+ # `monitoring.timeSeries.create` permissions on the project so it can
446
+ # write logs out to Cloud Logging. If using a custom container image, the
447
+ # service account must have [Artifact Registry
448
+ # Reader](https://cloud.google.com/artifact-registry/docs/access-control#roles)
449
+ # permission to pull the specified image.
318
450
  #
319
451
  # If you as the administrator want to be able to `ssh` into the
320
452
  # underlying VM, you need to set this value to a service account
@@ -330,9 +462,8 @@ module Google
330
462
  # @return [::Array<::String>]
331
463
  # Optional. Scopes to grant to the
332
464
  # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance#service_account service_account}.
333
- # Various scopes are automatically added based on feature usage. When
334
- # specified, users of workstations under this configuration must have
335
- # `iam.serviceAccounts.actAs` on the service account.
465
+ # When specified, users of workstations under this configuration must
466
+ # have `iam.serviceAccounts.actAs` on the service account.
336
467
  # @!attribute [rw] tags
337
468
  # @return [::Array<::String>]
338
469
  # Optional. Network tags to add to the Compute Engine VMs backing the
@@ -363,7 +494,9 @@ module Google
363
494
  # @!attribute [rw] enable_nested_virtualization
364
495
  # @return [::Boolean]
365
496
  # Optional. Whether to enable nested virtualization on Cloud Workstations
366
- # VMs created under this workstation configuration.
497
+ # VMs created using this workstation configuration.
498
+ #
499
+ # Defaults to false.
367
500
  #
368
501
  # Nested virtualization lets you run virtual machine (VM) instances
369
502
  # inside your workstation. Before enabling nested virtualization,
@@ -386,16 +519,6 @@ module Google
386
519
  # workstation configurations that specify a
387
520
  # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance#machine_type machine_type}
388
521
  # in the N1 or N2 machine series.
389
- # * **GPUs**: nested virtualization may not be enabled on workstation
390
- # configurations with accelerators.
391
- # * **Operating System**: Because
392
- # [Container-Optimized
393
- # OS](https://cloud.google.com/compute/docs/images/os-details#container-optimized_os_cos)
394
- # does not support nested virtualization, when nested virtualization is
395
- # enabled, the underlying Compute Engine VM instances boot from an
396
- # [Ubuntu
397
- # LTS](https://cloud.google.com/compute/docs/images/os-details#ubuntu_lts)
398
- # image.
399
522
  # @!attribute [rw] shielded_instance_config
400
523
  # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::GceShieldedInstanceConfig]
401
524
  # Optional. A set of Compute Engine Shielded instance options.
@@ -410,6 +533,56 @@ module Google
410
533
  # @return [::Array<::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::Accelerator>]
411
534
  # Optional. A list of the type and count of accelerator cards attached to
412
535
  # the instance.
536
+ # @!attribute [rw] boost_configs
537
+ # @return [::Array<::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::BoostConfig>]
538
+ # Optional. A list of the boost configurations that workstations created
539
+ # using this workstation configuration are allowed to use. If specified,
540
+ # users will have the option to choose from the list of boost configs
541
+ # when starting a workstation.
542
+ # @!attribute [rw] disable_ssh
543
+ # @return [::Boolean]
544
+ # Optional. Whether to disable SSH access to the VM.
545
+ # @!attribute [rw] vm_tags
546
+ # @return [::Google::Protobuf::Map{::String => ::String}]
547
+ # Optional. Resource manager tags to be bound to this instance.
548
+ # Tag keys and values have the same definition as [resource manager
549
+ # tags](https://cloud.google.com/resource-manager/docs/tags/tags-overview).
550
+ # Keys must be in the format `tagKeys/{tag_key_id}`, and
551
+ # values are in the format `tagValues/456`.
552
+ # @!attribute [rw] reservation_affinity
553
+ # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::ReservationAffinity]
554
+ # Optional.
555
+ # [ReservationAffinity](https://cloud.google.com/compute/docs/instances/reserving-zonal-resources)
556
+ # specifies a reservation that can be consumed to create VM
557
+ # instances. If SPECIFIC_RESERVATION is specified, Cloud Workstations
558
+ # will only create VMs in the zone where the reservation is located.
559
+ # This would affect availability since the service will no longer be
560
+ # resilient to zonal outages. If ANY_RESERVATION is specified, creating
561
+ # reservations in both zones that the config creates VMs in will ensure
562
+ # higher availability.
563
+ # **Important Considerations for Reservation Affinity:**
564
+ #
565
+ # * This feature is intended for advanced users and requires
566
+ # familiarity with Google Compute Engine reservations.
567
+ # * Using reservations incurs charges, regardless of utilization.
568
+ # * The resources in the pool will consume the specified
569
+ # reservation. Take this into account when setting the
570
+ # pool size.
571
+ # @!attribute [rw] startup_script_uri
572
+ # @return [::String]
573
+ # Optional. Link to the startup script stored in Cloud Storage. This
574
+ # script will be run on the host workstation VM when the VM is created.
575
+ # The URI must be of the form gs://\\{bucket-name}/\\{object-name}. If
576
+ # specifying a startup script, the service account must have [Permission
577
+ # to access the bucket and script file in Cloud
578
+ # Storage](https://cloud.google.com/storage/docs/access-control/iam-permissions).
579
+ # Otherwise, the script must be publicly accessible.
580
+ # Note that the service regularly updates the OS version of the host VM,
581
+ # and it is the responsibility of the user to ensure the script stays
582
+ # compatible with the OS version.
583
+ # @!attribute [rw] instance_metadata
584
+ # @return [::Google::Protobuf::Map{::String => ::String}]
585
+ # Optional. Custom metadata to apply to Compute Engine instances.
413
586
  class GceInstance
414
587
  include ::Google::Protobuf::MessageExts
415
588
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -451,13 +624,157 @@ module Google
451
624
  include ::Google::Protobuf::MessageExts
452
625
  extend ::Google::Protobuf::MessageExts::ClassMethods
453
626
  end
627
+
628
+ # A boost configuration is a set of resources that a workstation can use
629
+ # to increase its performance. If you specify a boost configuration, upon
630
+ # startup, workstation users can choose to use a VM provisioned under the
631
+ # boost config by passing the boost config ID in the start request. If
632
+ # the workstation user does not provide a boost config ID in the start
633
+ # request, the system will choose a VM from the pool provisioned under
634
+ # the default config.
635
+ # @!attribute [rw] id
636
+ # @return [::String]
637
+ # Required. The ID to be used for the boost configuration.
638
+ # @!attribute [rw] machine_type
639
+ # @return [::String]
640
+ # Optional. The type of machine that boosted VM instances will use—for
641
+ # example, `e2-standard-4`. For more information about machine types
642
+ # that Cloud Workstations supports, see the list of [available machine
643
+ # types](https://cloud.google.com/workstations/docs/available-machine-types).
644
+ # Defaults to `e2-standard-4`.
645
+ # @!attribute [rw] accelerators
646
+ # @return [::Array<::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::Accelerator>]
647
+ # Optional. A list of the type and count of accelerator cards attached
648
+ # to the boost instance. Defaults to `none`.
649
+ # @!attribute [rw] boot_disk_size_gb
650
+ # @return [::Integer]
651
+ # Optional. The size of the boot disk for the VM in gigabytes (GB).
652
+ # The minimum boot disk size is `30` GB. Defaults to `50` GB.
653
+ # @!attribute [rw] enable_nested_virtualization
654
+ # @return [::Boolean]
655
+ # Optional. Whether to enable nested virtualization on boosted Cloud
656
+ # Workstations VMs running using this boost configuration.
657
+ #
658
+ # Defaults to false.
659
+ #
660
+ # Nested virtualization lets you run virtual machine (VM) instances
661
+ # inside your workstation. Before enabling nested virtualization,
662
+ # consider the following important considerations. Cloud Workstations
663
+ # instances are subject to the [same restrictions as Compute Engine
664
+ # instances](https://cloud.google.com/compute/docs/instances/nested-virtualization/overview#restrictions):
665
+ #
666
+ # * **Organization policy**: projects, folders, or
667
+ # organizations may be restricted from creating nested VMs if the
668
+ # **Disable VM nested virtualization** constraint is enforced in
669
+ # the organization policy. For more information, see the
670
+ # Compute Engine section,
671
+ # [Checking whether nested virtualization is
672
+ # allowed](https://cloud.google.com/compute/docs/instances/nested-virtualization/managing-constraint#checking_whether_nested_virtualization_is_allowed).
673
+ # * **Performance**: nested VMs might experience a 10% or greater
674
+ # decrease in performance for workloads that are CPU-bound and
675
+ # possibly greater than a 10% decrease for workloads that are
676
+ # input/output bound.
677
+ # * **Machine Type**: nested virtualization can only be enabled on
678
+ # boost configurations that specify a
679
+ # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::BoostConfig#machine_type machine_type}
680
+ # in the N1 or N2 machine series.
681
+ # @!attribute [rw] pool_size
682
+ # @return [::Integer]
683
+ # Optional. The number of boost VMs that the system should keep idle so
684
+ # that workstations can be boosted quickly. Defaults to `0`.
685
+ # @!attribute [rw] reservation_affinity
686
+ # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::ReservationAffinity]
687
+ # Optional.
688
+ # [ReservationAffinity](https://cloud.google.com/compute/docs/instances/reserving-zonal-resources)
689
+ # specifies a reservation that can be consumed to create boost VM
690
+ # instances. If SPECIFIC_RESERVATION is specified, Cloud Workstations
691
+ # will only create VMs in the zone where the reservation is located.
692
+ # This would affect availability since the service will no longer be
693
+ # resilient to zonal outages. If ANY_RESERVATION is specified, creating
694
+ # reservations in both zones that the config creates VMs in will ensure
695
+ # higher availability.
696
+ # **Important Considerations for Reservation Affinity:**
697
+ #
698
+ # * This feature is intended for advanced users and requires
699
+ # familiarity with Google Compute Engine reservations.
700
+ # * Using reservations incurs charges, regardless of utilization.
701
+ # * The resources in the pool will consume the specified
702
+ # reservation. Take this into account when setting the
703
+ # pool size.
704
+ class BoostConfig
705
+ include ::Google::Protobuf::MessageExts
706
+ extend ::Google::Protobuf::MessageExts::ClassMethods
707
+ end
708
+
709
+ # ReservationAffinity is the configuration of the desired reservation
710
+ # from which instances can consume resources.
711
+ # @!attribute [rw] consume_reservation_type
712
+ # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::ReservationAffinity::Type]
713
+ # Optional. Corresponds to the type of reservation consumption.
714
+ # @!attribute [rw] key
715
+ # @return [::String]
716
+ # Optional. Corresponds to the label key of reservation resource.
717
+ # @!attribute [rw] values
718
+ # @return [::Array<::String>]
719
+ # Optional. Corresponds to the label values of reservation resources.
720
+ # Valid values are either the name of a reservation in the same project
721
+ # or "projects/\\{project}/reservations/\\{reservation}" to target a shared
722
+ # reservation in the same zone but in a different project.
723
+ class ReservationAffinity
724
+ include ::Google::Protobuf::MessageExts
725
+ extend ::Google::Protobuf::MessageExts::ClassMethods
726
+
727
+ # Indicates whether to consume capacity from a reservation or not.
728
+ module Type
729
+ # Default value. This should not be used.
730
+ TYPE_UNSPECIFIED = 0
731
+
732
+ # Do not consume from any reserved capacity.
733
+ NO_RESERVATION = 1
734
+
735
+ # Consume any reservation available.
736
+ ANY_RESERVATION = 2
737
+
738
+ # Must consume from a specific reservation. Must specify key value
739
+ # fields for specifying the reservations.
740
+ SPECIFIC_RESERVATION = 3
741
+ end
742
+ end
743
+
744
+ # @!attribute [rw] key
745
+ # @return [::String]
746
+ # @!attribute [rw] value
747
+ # @return [::String]
748
+ class VmTagsEntry
749
+ include ::Google::Protobuf::MessageExts
750
+ extend ::Google::Protobuf::MessageExts::ClassMethods
751
+ end
752
+
753
+ # @!attribute [rw] key
754
+ # @return [::String]
755
+ # @!attribute [rw] value
756
+ # @return [::String]
757
+ class InstanceMetadataEntry
758
+ include ::Google::Protobuf::MessageExts
759
+ extend ::Google::Protobuf::MessageExts::ClassMethods
760
+ end
454
761
  end
455
762
  end
456
763
 
457
- # A directory to persist across workstation sessions.
764
+ # A directory to persist across workstation sessions. Updates to this field
765
+ # will not update existing workstations and will only take effect on new
766
+ # workstations.
458
767
  # @!attribute [rw] gce_pd
459
768
  # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk]
460
769
  # A PersistentDirectory backed by a Compute Engine persistent disk.
770
+ #
771
+ # Note: The following fields are mutually exclusive: `gce_pd`, `gce_hd`. If a field in that set is populated, all other fields in the set will automatically be cleared.
772
+ # @!attribute [rw] gce_hd
773
+ # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceHyperdiskBalancedHighAvailability]
774
+ # A PersistentDirectory backed by a Compute Engine hyperdisk high
775
+ # availability disk.
776
+ #
777
+ # Note: The following fields are mutually exclusive: `gce_hd`, `gce_pd`. If a field in that set is populated, all other fields in the set will automatically be cleared.
461
778
  # @!attribute [rw] mount_path
462
779
  # @return [::String]
463
780
  # Optional. Location of this directory in the running workstation.
@@ -465,7 +782,7 @@ module Google
465
782
  include ::Google::Protobuf::MessageExts
466
783
  extend ::Google::Protobuf::MessageExts::ClassMethods
467
784
 
468
- # A PersistentDirectory backed by a Compute Engine regional persistent
785
+ # A Persistent Directory backed by a Compute Engine regional persistent
469
786
  # disk. The
470
787
  # {::Google::Cloud::Workstations::V1beta::WorkstationConfig#persistent_directories persistent_directories}
471
788
  # field is repeated, but it may contain only one entry. It creates a
@@ -487,6 +804,10 @@ module Google
487
804
  # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk#disk_type disk_type}
488
805
  # must be
489
806
  # `"pd-balanced"` or `"pd-ssd"`.
807
+ # @!attribute [rw] max_size_gb
808
+ # @return [::Integer]
809
+ # Optional. Maximum size in GB to which this persistent directory can be
810
+ # resized. Defaults to unlimited if not set.
490
811
  # @!attribute [rw] fs_type
491
812
  # @return [::String]
492
813
  # Optional. Type of file system that the disk should be formatted with.
@@ -506,12 +827,22 @@ module Google
506
827
  # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk#size_gb size_gb}
507
828
  # and
508
829
  # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk#fs_type fs_type}
509
- # must be empty.
830
+ # must be empty. Must be formatted as ext4 file system with no
831
+ # partitions.
510
832
  # @!attribute [rw] reclaim_policy
511
833
  # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk::ReclaimPolicy]
512
834
  # Optional. Whether the persistent disk should be deleted when the
513
835
  # workstation is deleted. Valid values are `DELETE` and `RETAIN`.
514
836
  # Defaults to `DELETE`.
837
+ # @!attribute [rw] archive_timeout
838
+ # @return [::Google::Protobuf::Duration]
839
+ # Optional. Number of seconds to wait after initially creating or
840
+ # subsequently shutting down the workstation before converting its disk
841
+ # into a snapshot. This generally saves costs at the expense of greater
842
+ # startup time on next workstation start, as the service will need to
843
+ # create a disk from the archival snapshot.
844
+ #
845
+ # A value of `"0s"` indicates that the disk will never be archived.
515
846
  class GceRegionalPersistentDisk
516
847
  include ::Google::Protobuf::MessageExts
517
848
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -530,6 +861,64 @@ module Google
530
861
  RETAIN = 2
531
862
  end
532
863
  end
864
+
865
+ # A Persistent Directory backed by a Compute Engine
866
+ # [Hyperdisk Balanced High Availability
867
+ # Disk](https://cloud.google.com/compute/docs/disks/hd-types/hyperdisk-balanced-ha).
868
+ # This is a high-availability block storage solution that offers a balance
869
+ # between performance and cost for most general-purpose workloads.
870
+ # @!attribute [rw] size_gb
871
+ # @return [::Integer]
872
+ # Optional. The GB capacity of a persistent home directory for each
873
+ # workstation created with this configuration. Must be empty if
874
+ # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceHyperdiskBalancedHighAvailability#source_snapshot source_snapshot}
875
+ # is set.
876
+ #
877
+ # Valid values are `10`, `50`, `100`, `200`, `500`, or `1000`.
878
+ # Defaults to `200`.
879
+ # @!attribute [rw] max_size_gb
880
+ # @return [::Integer]
881
+ # Optional. Maximum size in GB to which this persistent directory can be
882
+ # resized. Defaults to unlimited if not set.
883
+ # @!attribute [rw] source_snapshot
884
+ # @return [::String]
885
+ # Optional. Name of the snapshot to use as the source for the disk. If
886
+ # set,
887
+ # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceHyperdiskBalancedHighAvailability#size_gb size_gb}
888
+ # must be empty. Must be formatted as ext4 file system with no
889
+ # partitions.
890
+ # @!attribute [rw] reclaim_policy
891
+ # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceHyperdiskBalancedHighAvailability::ReclaimPolicy]
892
+ # Optional. Whether the persistent disk should be deleted when the
893
+ # workstation is deleted. Valid values are `DELETE` and `RETAIN`.
894
+ # Defaults to `DELETE`.
895
+ # @!attribute [rw] archive_timeout
896
+ # @return [::Google::Protobuf::Duration]
897
+ # Optional. Number of seconds to wait after initially creating or
898
+ # subsequently shutting down the workstation before converting its disk
899
+ # into a snapshot. This generally saves costs at the expense of greater
900
+ # startup time on next workstation start, as the service will need to
901
+ # create a disk from the archival snapshot.
902
+ #
903
+ # A value of `"0s"` indicates that the disk will never be archived.
904
+ class GceHyperdiskBalancedHighAvailability
905
+ include ::Google::Protobuf::MessageExts
906
+ extend ::Google::Protobuf::MessageExts::ClassMethods
907
+
908
+ # Value representing what should happen to the disk after the workstation
909
+ # is deleted.
910
+ module ReclaimPolicy
911
+ # Do not use.
912
+ RECLAIM_POLICY_UNSPECIFIED = 0
913
+
914
+ # Delete the persistent disk when deleting the workstation.
915
+ DELETE = 1
916
+
917
+ # Keep the persistent disk when deleting the workstation.
918
+ # An administrator must manually delete the disk.
919
+ RETAIN = 2
920
+ end
921
+ end
533
922
  end
534
923
 
535
924
  # An ephemeral directory which won't persist across workstation sessions. It
@@ -553,10 +942,19 @@ module Google
553
942
  # Optional. Name of the snapshot to use as the source for the disk. Must
554
943
  # be empty if
555
944
  # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#source_image source_image}
556
- # is set. Updating
945
+ # is set. Must be empty if
946
+ # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#read_only read_only}
947
+ # is false. Updating
557
948
  # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#source_snapshot source_snapshot}
558
949
  # will update content in the ephemeral directory after the workstation is
559
- # restarted. This field is mutable.
950
+ # restarted.
951
+ #
952
+ # Only file systems supported by Container-Optimized OS (COS)
953
+ # are explicitly supported. For a list of supported file systems, see
954
+ # [the filesystems available in Container-Optimized
955
+ # OS](https://cloud.google.com/container-optimized-os/docs/concepts/supported-filesystems).
956
+ #
957
+ # This field is mutable.
560
958
  # @!attribute [rw] source_image
561
959
  # @return [::String]
562
960
  # Optional. Name of the disk image to use as the source for the disk.
@@ -565,7 +963,14 @@ module Google
565
963
  # is set. Updating
566
964
  # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#source_image source_image}
567
965
  # will update content in the ephemeral directory after the workstation is
568
- # restarted. This field is mutable.
966
+ # restarted.
967
+ #
968
+ # Only file systems supported by Container-Optimized OS (COS)
969
+ # are explicitly supported. For a list of supported file systems, please
970
+ # refer to the [COS
971
+ # documentation](https://cloud.google.com/container-optimized-os/docs/concepts/supported-filesystems).
972
+ #
973
+ # This field is mutable.
569
974
  # @!attribute [rw] read_only
570
975
  # @return [::Boolean]
571
976
  # Optional. Whether the disk is read only. If true, the disk may be
@@ -590,7 +995,10 @@ module Google
590
995
  # [custom container
591
996
  # images](https://cloud.google.com/workstations/docs/custom-container-images).
592
997
  # If using a private image, the `host.gceInstance.serviceAccount` field
593
- # must be specified in the workstation configuration and must have
998
+ # must be specified in the workstation configuration.
999
+ # If using a custom container image, the service account must have
1000
+ # [Artifact Registry
1001
+ # Reader](https://cloud.google.com/artifact-registry/docs/access-control#roles)
594
1002
  # permission to pull the specified image. Otherwise, the image must be
595
1003
  # publicly accessible.
596
1004
  # @!attribute [rw] command
@@ -661,6 +1069,50 @@ module Google
661
1069
  extend ::Google::Protobuf::MessageExts::ClassMethods
662
1070
  end
663
1071
 
1072
+ # HTTP options for the running workstations.
1073
+ # @!attribute [rw] allowed_unauthenticated_cors_preflight_requests
1074
+ # @return [::Boolean]
1075
+ # Optional. By default, the workstations service makes sure that all
1076
+ # requests to the workstation are authenticated. CORS preflight requests do
1077
+ # not include cookies or custom headers, and so are considered
1078
+ # unauthenticated and blocked by the workstations service. Enabling this
1079
+ # option allows these unauthenticated CORS preflight requests through to
1080
+ # the workstation, where it becomes the responsibility of the destination
1081
+ # server in the workstation to validate the request.
1082
+ # @!attribute [rw] disable_localhost_replacement
1083
+ # @return [::Boolean]
1084
+ # Optional. By default, the workstations service replaces references to
1085
+ # localhost, 127.0.0.1, and 0.0.0.0 with the workstation's hostname in http
1086
+ # responses from the workstation so that applications under development run
1087
+ # properly on the workstation. This may intefere with some applications,
1088
+ # and so this option allows that behavior to be disabled.
1089
+ class HttpOptions
1090
+ include ::Google::Protobuf::MessageExts
1091
+ extend ::Google::Protobuf::MessageExts::ClassMethods
1092
+ end
1093
+
1094
+ # A PortRange defines a range of ports. Both
1095
+ # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PortRange#first first}
1096
+ # and
1097
+ # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PortRange#last last}
1098
+ # are inclusive. To specify a single port, both
1099
+ # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PortRange#first first}
1100
+ # and
1101
+ # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PortRange#last last}
1102
+ # should be the same.
1103
+ # @!attribute [rw] first
1104
+ # @return [::Integer]
1105
+ # Required. Starting port number for the current range of ports.
1106
+ # Valid ports are 22, 80, and ports within the range 1024-65535.
1107
+ # @!attribute [rw] last
1108
+ # @return [::Integer]
1109
+ # Required. Ending port number for the current range of ports.
1110
+ # Valid ports are 22, 80, and ports within the range 1024-65535.
1111
+ class PortRange
1112
+ include ::Google::Protobuf::MessageExts
1113
+ extend ::Google::Protobuf::MessageExts::ClassMethods
1114
+ end
1115
+
664
1116
  # @!attribute [rw] key
665
1117
  # @return [::String]
666
1118
  # @!attribute [rw] value
@@ -683,7 +1135,7 @@ module Google
683
1135
  # A single instance of a developer workstation with its own persistent storage.
684
1136
  # @!attribute [rw] name
685
1137
  # @return [::String]
686
- # Full name of this workstation.
1138
+ # Identifier. Full name of this workstation.
687
1139
  # @!attribute [rw] display_name
688
1140
  # @return [::String]
689
1141
  # Optional. Human-readable name for this workstation.
@@ -721,6 +1173,9 @@ module Google
721
1173
  # Optional. Checksum computed by the server. May be sent on update and delete
722
1174
  # requests to make sure that the client has an up-to-date value before
723
1175
  # proceeding.
1176
+ # @!attribute [rw] persistent_directories
1177
+ # @return [::Array<::Google::Cloud::Workstations::V1beta::Workstation::WorkstationPersistentDirectory>]
1178
+ # Optional. Directories to persist across workstation sessions.
724
1179
  # @!attribute [r] state
725
1180
  # @return [::Google::Cloud::Workstations::V1beta::Workstation::State]
726
1181
  # Output only. Current state of the workstation.
@@ -735,10 +1190,95 @@ module Google
735
1190
  # @return [::Google::Protobuf::Map{::String => ::String}]
736
1191
  # Optional. Environment variables passed to the workstation container's
737
1192
  # entrypoint.
1193
+ # @!attribute [r] kms_key
1194
+ # @return [::String]
1195
+ # Output only. The name of the Google Cloud KMS encryption key used to
1196
+ # encrypt this workstation. The KMS key can only be configured in the
1197
+ # WorkstationConfig. The expected format is
1198
+ # `projects/*/locations/*/keyRings/*/cryptoKeys/*`.
1199
+ # @!attribute [r] boost_configs
1200
+ # @return [::Array<::Google::Cloud::Workstations::V1beta::Workstation::WorkstationBoostConfig>]
1201
+ # Output only. List of available boost configuration IDs that this
1202
+ # workstation can be boosted up to.
1203
+ # @!attribute [rw] source_workstation
1204
+ # @return [::String]
1205
+ # Optional. The source workstation from which this workstation's persistent
1206
+ # directories were cloned on creation.
1207
+ # @!attribute [r] satisfies_pzs
1208
+ # @return [::Boolean]
1209
+ # Output only. Reserved for future use.
1210
+ # @!attribute [r] satisfies_pzi
1211
+ # @return [::Boolean]
1212
+ # Output only. Reserved for future use.
1213
+ # @!attribute [r] runtime_host
1214
+ # @return [::Google::Cloud::Workstations::V1beta::Workstation::RuntimeHost]
1215
+ # Optional. Output only. Runtime host for the workstation when in
1216
+ # STATE_RUNNING.
1217
+ # @!attribute [r] degraded
1218
+ # @return [::Boolean]
1219
+ # Output only. Whether this workstation is in degraded mode, in which case it
1220
+ # may require user action to restore full functionality. The
1221
+ # {::Google::Cloud::Workstations::V1beta::Workstation#conditions conditions} field
1222
+ # contains detailed information about the status of the workstation.
1223
+ # @!attribute [r] conditions
1224
+ # @return [::Array<::Google::Rpc::Status>]
1225
+ # Output only. Status conditions describing the workstation's current state.
738
1226
  class Workstation
739
1227
  include ::Google::Protobuf::MessageExts
740
1228
  extend ::Google::Protobuf::MessageExts::ClassMethods
741
1229
 
1230
+ # A directory to persist across workstation sessions. Updates to this field
1231
+ # will only take effect on this workstation after it is restarted.
1232
+ # @!attribute [rw] mount_path
1233
+ # @return [::String]
1234
+ # Optional. The mount path of the persistent directory.
1235
+ # @!attribute [rw] size_gb
1236
+ # @return [::Integer]
1237
+ # Optional. Size of the persistent directory in GB. If specified in an
1238
+ # update request, this is the desired size of the directory.
1239
+ class WorkstationPersistentDirectory
1240
+ include ::Google::Protobuf::MessageExts
1241
+ extend ::Google::Protobuf::MessageExts::ClassMethods
1242
+ end
1243
+
1244
+ # Boost configuration for this workstation. This object is populated from the
1245
+ # parent workstation configuration.
1246
+ # @!attribute [r] id
1247
+ # @return [::String]
1248
+ # Output only. Boost configuration ID.
1249
+ # @!attribute [r] running
1250
+ # @return [::Boolean]
1251
+ # Output only. Whether or not the current workstation is actively boosted
1252
+ # with this id.
1253
+ class WorkstationBoostConfig
1254
+ include ::Google::Protobuf::MessageExts
1255
+ extend ::Google::Protobuf::MessageExts::ClassMethods
1256
+ end
1257
+
1258
+ # Runtime host for the workstation.
1259
+ # @!attribute [rw] gce_instance_host
1260
+ # @return [::Google::Cloud::Workstations::V1beta::Workstation::RuntimeHost::GceInstanceHost]
1261
+ # Specifies a Compute Engine instance as the host.
1262
+ class RuntimeHost
1263
+ include ::Google::Protobuf::MessageExts
1264
+ extend ::Google::Protobuf::MessageExts::ClassMethods
1265
+
1266
+ # The Compute Engine instance host.
1267
+ # @!attribute [r] name
1268
+ # @return [::String]
1269
+ # Optional. Output only. The name of the Compute Engine instance.
1270
+ # @!attribute [r] id
1271
+ # @return [::String]
1272
+ # Optional. Output only. The ID of the Compute Engine instance.
1273
+ # @!attribute [r] zone
1274
+ # @return [::String]
1275
+ # Optional. Output only. The zone of the Compute Engine instance.
1276
+ class GceInstanceHost
1277
+ include ::Google::Protobuf::MessageExts
1278
+ extend ::Google::Protobuf::MessageExts::ClassMethods
1279
+ end
1280
+ end
1281
+
742
1282
  # @!attribute [rw] key
743
1283
  # @return [::String]
744
1284
  # @!attribute [rw] value
@@ -807,6 +1347,10 @@ module Google
807
1347
  # @return [::String]
808
1348
  # Optional. next_page_token value returned from a previous List request, if
809
1349
  # any.
1350
+ # @!attribute [rw] filter
1351
+ # @return [::String]
1352
+ # Optional. Filter the WorkstationClusters to be listed. Possible filters are
1353
+ # described in https://google.aip.dev/160.
810
1354
  class ListWorkstationClustersRequest
811
1355
  include ::Google::Protobuf::MessageExts
812
1356
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -840,7 +1384,7 @@ module Google
840
1384
  # Required. Workstation cluster to create.
841
1385
  # @!attribute [rw] validate_only
842
1386
  # @return [::Boolean]
843
- # Optional. If set, validate the request and preview the review, but do not
1387
+ # Optional. If set, validate the request and preview the result, but do not
844
1388
  # actually apply it.
845
1389
  class CreateWorkstationClusterRequest
846
1390
  include ::Google::Protobuf::MessageExts
@@ -857,7 +1401,7 @@ module Google
857
1401
  # should be updated.
858
1402
  # @!attribute [rw] validate_only
859
1403
  # @return [::Boolean]
860
- # Optional. If set, validate the request and preview the review, but do not
1404
+ # Optional. If set, validate the request and preview the result, but do not
861
1405
  # actually apply it.
862
1406
  # @!attribute [rw] allow_missing
863
1407
  # @return [::Boolean]
@@ -875,7 +1419,7 @@ module Google
875
1419
  # Required. Name of the workstation cluster to delete.
876
1420
  # @!attribute [rw] validate_only
877
1421
  # @return [::Boolean]
878
- # Optional. If set, validate the request and preview the review, but do not
1422
+ # Optional. If set, validate the request and preview the result, but do not
879
1423
  # apply it.
880
1424
  # @!attribute [rw] etag
881
1425
  # @return [::String]
@@ -911,6 +1455,10 @@ module Google
911
1455
  # @return [::String]
912
1456
  # Optional. next_page_token value returned from a previous List request, if
913
1457
  # any.
1458
+ # @!attribute [rw] filter
1459
+ # @return [::String]
1460
+ # Optional. Filter the WorkstationConfigs to be listed. Possible filters are
1461
+ # described in https://google.aip.dev/160.
914
1462
  class ListWorkstationConfigsRequest
915
1463
  include ::Google::Protobuf::MessageExts
916
1464
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -973,10 +1521,10 @@ module Google
973
1521
  # Required. ID to use for the workstation configuration.
974
1522
  # @!attribute [rw] workstation_config
975
1523
  # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig]
976
- # Required. Config to create.
1524
+ # Required. Workstation configuration to create.
977
1525
  # @!attribute [rw] validate_only
978
1526
  # @return [::Boolean]
979
- # Optional. If set, validate the request and preview the review, but do not
1527
+ # Optional. If set, validate the request and preview the result, but do not
980
1528
  # actually apply it.
981
1529
  class CreateWorkstationConfigRequest
982
1530
  include ::Google::Protobuf::MessageExts
@@ -986,14 +1534,14 @@ module Google
986
1534
  # Request message for UpdateWorkstationConfig.
987
1535
  # @!attribute [rw] workstation_config
988
1536
  # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig]
989
- # Required. Config to update.
1537
+ # Required. Workstation configuration to update.
990
1538
  # @!attribute [rw] update_mask
991
1539
  # @return [::Google::Protobuf::FieldMask]
992
1540
  # Required. Mask specifying which fields in the workstation configuration
993
1541
  # should be updated.
994
1542
  # @!attribute [rw] validate_only
995
1543
  # @return [::Boolean]
996
- # Optional. If set, validate the request and preview the review, but do not
1544
+ # Optional. If set, validate the request and preview the result, but do not
997
1545
  # actually apply it.
998
1546
  # @!attribute [rw] allow_missing
999
1547
  # @return [::Boolean]
@@ -1011,7 +1559,7 @@ module Google
1011
1559
  # Required. Name of the workstation configuration to delete.
1012
1560
  # @!attribute [rw] validate_only
1013
1561
  # @return [::Boolean]
1014
- # Optional. If set, validate the request and preview the review, but do not
1562
+ # Optional. If set, validate the request and preview the result, but do not
1015
1563
  # actually apply it.
1016
1564
  # @!attribute [rw] etag
1017
1565
  # @return [::String]
@@ -1047,6 +1595,10 @@ module Google
1047
1595
  # @return [::String]
1048
1596
  # Optional. next_page_token value returned from a previous List request, if
1049
1597
  # any.
1598
+ # @!attribute [rw] filter
1599
+ # @return [::String]
1600
+ # Optional. Filter the Workstations to be listed. Possible filters are
1601
+ # described in https://google.aip.dev/160.
1050
1602
  class ListWorkstationsRequest
1051
1603
  include ::Google::Protobuf::MessageExts
1052
1604
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -1109,10 +1661,14 @@ module Google
1109
1661
  # Required. ID to use for the workstation.
1110
1662
  # @!attribute [rw] workstation
1111
1663
  # @return [::Google::Cloud::Workstations::V1beta::Workstation]
1112
- # Required. Workstation to create.
1664
+ # Required. Workstation to create. If source_workstation is specified, the
1665
+ # user must have `workstations.workstations.use` permission on the source
1666
+ # workstation, and the Cloud Workstations Service Agent for the project where
1667
+ # you are creating the new workstation must have compute.disks.createSnapshot
1668
+ # and compute.snapshots.useReadOnly on the source project.
1113
1669
  # @!attribute [rw] validate_only
1114
1670
  # @return [::Boolean]
1115
- # Optional. If set, validate the request and preview the review, but do not
1671
+ # Optional. If set, validate the request and preview the result, but do not
1116
1672
  # actually apply it.
1117
1673
  class CreateWorkstationRequest
1118
1674
  include ::Google::Protobuf::MessageExts
@@ -1125,17 +1681,16 @@ module Google
1125
1681
  # Required. Workstation to update.
1126
1682
  # @!attribute [rw] update_mask
1127
1683
  # @return [::Google::Protobuf::FieldMask]
1128
- # Required. Mask specifying which fields in the workstation configuration
1129
- # should be updated.
1684
+ # Required. Mask specifying which fields in the workstation should be
1685
+ # updated.
1130
1686
  # @!attribute [rw] validate_only
1131
1687
  # @return [::Boolean]
1132
- # Optional. If set, validate the request and preview the review, but do not
1688
+ # Optional. If set, validate the request and preview the result, but do not
1133
1689
  # actually apply it.
1134
1690
  # @!attribute [rw] allow_missing
1135
1691
  # @return [::Boolean]
1136
- # Optional. If set and the workstation configuration is not found, a new
1137
- # workstation configuration is created. In this situation, update_mask
1138
- # is ignored.
1692
+ # Optional. If set and the workstation is not found, a new workstation is
1693
+ # created. In this situation, update_mask is ignored.
1139
1694
  class UpdateWorkstationRequest
1140
1695
  include ::Google::Protobuf::MessageExts
1141
1696
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -1147,7 +1702,7 @@ module Google
1147
1702
  # Required. Name of the workstation to delete.
1148
1703
  # @!attribute [rw] validate_only
1149
1704
  # @return [::Boolean]
1150
- # Optional. If set, validate the request and preview the review, but do not
1705
+ # Optional. If set, validate the request and preview the result, but do not
1151
1706
  # actually apply it.
1152
1707
  # @!attribute [rw] etag
1153
1708
  # @return [::String]
@@ -1164,12 +1719,16 @@ module Google
1164
1719
  # Required. Name of the workstation to start.
1165
1720
  # @!attribute [rw] validate_only
1166
1721
  # @return [::Boolean]
1167
- # Optional. If set, validate the request and preview the review, but do not
1722
+ # Optional. If set, validate the request and preview the result, but do not
1168
1723
  # actually apply it.
1169
1724
  # @!attribute [rw] etag
1170
1725
  # @return [::String]
1171
1726
  # Optional. If set, the request will be rejected if the latest version of the
1172
1727
  # workstation on the server does not have this ETag.
1728
+ # @!attribute [rw] boost_config
1729
+ # @return [::String]
1730
+ # Optional. If set, the workstation starts using the boost configuration with
1731
+ # the specified ID.
1173
1732
  class StartWorkstationRequest
1174
1733
  include ::Google::Protobuf::MessageExts
1175
1734
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -1181,7 +1740,7 @@ module Google
1181
1740
  # Required. Name of the workstation to stop.
1182
1741
  # @!attribute [rw] validate_only
1183
1742
  # @return [::Boolean]
1184
- # Optional. If set, validate the request and preview the review, but do not
1743
+ # Optional. If set, validate the request and preview the result, but do not
1185
1744
  # actually apply it.
1186
1745
  # @!attribute [rw] etag
1187
1746
  # @return [::String]
@@ -1212,6 +1771,13 @@ module Google
1212
1771
  # @return [::String]
1213
1772
  # Required. Name of the workstation for which the access token should be
1214
1773
  # generated.
1774
+ # @!attribute [rw] port
1775
+ # @return [::Integer]
1776
+ # Optional. Port for which the access token should be generated. If
1777
+ # specified, the generated access token grants access only to the
1778
+ # specified port of the workstation. If specified, values must be within the
1779
+ # range [1 - 65535]. If not specified, the generated access token grants
1780
+ # access to all ports of the workstation.
1215
1781
  class GenerateAccessTokenRequest
1216
1782
  include ::Google::Protobuf::MessageExts
1217
1783
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -1232,6 +1798,49 @@ module Google
1232
1798
  extend ::Google::Protobuf::MessageExts::ClassMethods
1233
1799
  end
1234
1800
 
1801
+ # Request message for PushCredentials.
1802
+ # @!attribute [rw] workstation
1803
+ # @return [::String]
1804
+ # Required. Name of the workstation for which the credentials should be
1805
+ # pushed.
1806
+ # @!attribute [rw] application_default_credentials
1807
+ # @return [::Google::Cloud::Workstations::V1beta::PushCredentialsRequest::OAuthToken]
1808
+ # Optional. Credentials used by Cloud Client Libraries, Google API Client
1809
+ # Libraries, and other tooling within the user conainer:
1810
+ # https://cloud.google.com/docs/authentication/application-default-credentials
1811
+ class PushCredentialsRequest
1812
+ include ::Google::Protobuf::MessageExts
1813
+ extend ::Google::Protobuf::MessageExts::ClassMethods
1814
+
1815
+ # OAuth token.
1816
+ # @!attribute [rw] email
1817
+ # @return [::String]
1818
+ # Optional. The email address encapsulated in the OAuth token.
1819
+ # @!attribute [rw] scopes
1820
+ # @return [::String]
1821
+ # Optional. The scopes encapsulated in the OAuth token.
1822
+ # See https://developers.google.com/identity/protocols/oauth2/scopes for
1823
+ # more information.
1824
+ # @!attribute [rw] access_token
1825
+ # @return [::String]
1826
+ # Required. The OAuth token.
1827
+ # @!attribute [rw] expire_time
1828
+ # @return [::Google::Protobuf::Timestamp]
1829
+ # Optional. The time the OAuth access token will expire. This should be the
1830
+ # time the access token was generated plus the expires_in offset returned
1831
+ # from the Access Token Response.
1832
+ class OAuthToken
1833
+ include ::Google::Protobuf::MessageExts
1834
+ extend ::Google::Protobuf::MessageExts::ClassMethods
1835
+ end
1836
+ end
1837
+
1838
+ # Metadata message for PushCredentials.
1839
+ class PushCredentialsMetadata
1840
+ include ::Google::Protobuf::MessageExts
1841
+ extend ::Google::Protobuf::MessageExts::ClassMethods
1842
+ end
1843
+
1235
1844
  # Metadata for long-running operations.
1236
1845
  # @!attribute [r] create_time
1237
1846
  # @return [::Google::Protobuf::Timestamp]