google-cloud-workstations-v1beta 0.a → 0.1.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.
Files changed (35) hide show
  1. checksums.yaml +4 -4
  2. data/.yardopts +12 -0
  3. data/AUTHENTICATION.md +122 -0
  4. data/README.md +144 -8
  5. data/lib/google/cloud/workstations/v1beta/bindings_override.rb +137 -0
  6. data/lib/google/cloud/workstations/v1beta/rest.rb +38 -0
  7. data/lib/google/cloud/workstations/v1beta/version.rb +7 -2
  8. data/lib/google/cloud/workstations/v1beta/workstations/client.rb +2543 -0
  9. data/lib/google/cloud/workstations/v1beta/workstations/credentials.rb +47 -0
  10. data/lib/google/cloud/workstations/v1beta/workstations/operations.rb +809 -0
  11. data/lib/google/cloud/workstations/v1beta/workstations/paths.rb +113 -0
  12. data/lib/google/cloud/workstations/v1beta/workstations/rest/client.rb +2380 -0
  13. data/lib/google/cloud/workstations/v1beta/workstations/rest/operations.rb +902 -0
  14. data/lib/google/cloud/workstations/v1beta/workstations/rest/service_stub.rb +1258 -0
  15. data/lib/google/cloud/workstations/v1beta/workstations/rest.rb +54 -0
  16. data/lib/google/cloud/workstations/v1beta/workstations.rb +56 -0
  17. data/lib/google/cloud/workstations/v1beta/workstations_pb.rb +100 -0
  18. data/lib/google/cloud/workstations/v1beta/workstations_services_pb.rb +86 -0
  19. data/lib/google/cloud/workstations/v1beta.rb +45 -0
  20. data/lib/google-cloud-workstations-v1beta.rb +21 -0
  21. data/proto_docs/README.md +4 -0
  22. data/proto_docs/google/api/client.rb +399 -0
  23. data/proto_docs/google/api/field_behavior.rb +85 -0
  24. data/proto_docs/google/api/launch_stage.rb +71 -0
  25. data/proto_docs/google/api/resource.rb +222 -0
  26. data/proto_docs/google/cloud/workstations/v1beta/workstations.rb +1261 -0
  27. data/proto_docs/google/longrunning/operations.rb +164 -0
  28. data/proto_docs/google/protobuf/any.rb +145 -0
  29. data/proto_docs/google/protobuf/duration.rb +98 -0
  30. data/proto_docs/google/protobuf/empty.rb +34 -0
  31. data/proto_docs/google/protobuf/field_mask.rb +229 -0
  32. data/proto_docs/google/protobuf/timestamp.rb +127 -0
  33. data/proto_docs/google/rpc/status.rb +48 -0
  34. data/proto_docs/google/type/expr.rb +75 -0
  35. metadata +114 -10
@@ -0,0 +1,1261 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Copyright 2024 Google LLC
4
+ #
5
+ # Licensed under the Apache License, Version 2.0 (the "License");
6
+ # you may not use this file except in compliance with the License.
7
+ # You may obtain a copy of the License at
8
+ #
9
+ # https://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing, software
12
+ # distributed under the License is distributed on an "AS IS" BASIS,
13
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ # See the License for the specific language governing permissions and
15
+ # limitations under the License.
16
+
17
+ # Auto-generated by gapic-generator-ruby. DO NOT EDIT!
18
+
19
+
20
+ module Google
21
+ module Cloud
22
+ module Workstations
23
+ module V1beta
24
+ # A workstation cluster resource in the Cloud Workstations API.
25
+ #
26
+ # Defines a group of workstations in a particular region and the
27
+ # VPC network they're attached to.
28
+ # @!attribute [rw] name
29
+ # @return [::String]
30
+ # Full name of this workstation cluster.
31
+ # @!attribute [rw] display_name
32
+ # @return [::String]
33
+ # Optional. Human-readable name for this workstation cluster.
34
+ # @!attribute [r] uid
35
+ # @return [::String]
36
+ # Output only. A system-assigned unique identifier for this workstation
37
+ # cluster.
38
+ # @!attribute [r] reconciling
39
+ # @return [::Boolean]
40
+ # Output only. Indicates whether this workstation cluster is currently being
41
+ # updated to match its intended state.
42
+ # @!attribute [rw] annotations
43
+ # @return [::Google::Protobuf::Map{::String => ::String}]
44
+ # Optional. Client-specified annotations.
45
+ # @!attribute [rw] labels
46
+ # @return [::Google::Protobuf::Map{::String => ::String}]
47
+ # Optional.
48
+ # [Labels](https://cloud.google.com/workstations/docs/label-resources) that
49
+ # are applied to the workstation cluster and that are also propagated to the
50
+ # underlying Compute Engine resources.
51
+ # @!attribute [r] create_time
52
+ # @return [::Google::Protobuf::Timestamp]
53
+ # Output only. Time when this workstation cluster was created.
54
+ # @!attribute [r] update_time
55
+ # @return [::Google::Protobuf::Timestamp]
56
+ # Output only. Time when this workstation cluster was most recently updated.
57
+ # @!attribute [r] delete_time
58
+ # @return [::Google::Protobuf::Timestamp]
59
+ # Output only. Time when this workstation cluster was soft-deleted.
60
+ # @!attribute [rw] etag
61
+ # @return [::String]
62
+ # Optional. Checksum computed by the server. May be sent on update and delete
63
+ # requests to make sure that the client has an up-to-date value before
64
+ # proceeding.
65
+ # @!attribute [rw] network
66
+ # @return [::String]
67
+ # Immutable. Name of the Compute Engine network in which instances associated
68
+ # with this workstation cluster will be created.
69
+ # @!attribute [rw] subnetwork
70
+ # @return [::String]
71
+ # Immutable. Name of the Compute Engine subnetwork in which instances
72
+ # associated with this workstation cluster will be created. Must be part of
73
+ # the subnetwork specified for this workstation cluster.
74
+ # @!attribute [r] control_plane_ip
75
+ # @return [::String]
76
+ # Output only. The private IP address of the control plane for this
77
+ # workstation cluster. Workstation VMs need access to this IP address to work
78
+ # with the service, so make sure that your firewall rules allow egress from
79
+ # the workstation VMs to this address.
80
+ # @!attribute [rw] private_cluster_config
81
+ # @return [::Google::Cloud::Workstations::V1beta::WorkstationCluster::PrivateClusterConfig]
82
+ # Optional. Configuration for private workstation cluster.
83
+ # @!attribute [r] degraded
84
+ # @return [::Boolean]
85
+ # 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
+ # @!attribute [r] conditions
90
+ # @return [::Array<::Google::Rpc::Status>]
91
+ # Output only. Status conditions describing the workstation cluster's current
92
+ # state.
93
+ class WorkstationCluster
94
+ include ::Google::Protobuf::MessageExts
95
+ extend ::Google::Protobuf::MessageExts::ClassMethods
96
+
97
+ # Configuration options for private workstation clusters.
98
+ # @!attribute [rw] enable_private_endpoint
99
+ # @return [::Boolean]
100
+ # Immutable. Whether Workstations endpoint is private.
101
+ # @!attribute [r] cluster_hostname
102
+ # @return [::String]
103
+ # Output only. Hostname for the workstation cluster. This field will be
104
+ # populated only when private endpoint is enabled. To access workstations
105
+ # in the workstation cluster, create a new DNS zone mapping this domain
106
+ # name to an internal IP address and a forwarding rule mapping that address
107
+ # to the service attachment.
108
+ # @!attribute [r] service_attachment_uri
109
+ # @return [::String]
110
+ # Output only. Service attachment URI for the workstation cluster. The
111
+ # service attachemnt is created when private endpoint is enabled. To access
112
+ # workstations in the workstation cluster, configure access to the managed
113
+ # service using [Private Service
114
+ # Connect](https://cloud.google.com/vpc/docs/configure-private-service-connect-services).
115
+ # @!attribute [rw] allowed_projects
116
+ # @return [::Array<::String>]
117
+ # Optional. Additional projects that are allowed to attach to the
118
+ # workstation cluster's service attachment. By default, the workstation
119
+ # cluster's project and the VPC host project (if different) are allowed.
120
+ class PrivateClusterConfig
121
+ include ::Google::Protobuf::MessageExts
122
+ extend ::Google::Protobuf::MessageExts::ClassMethods
123
+ end
124
+
125
+ # @!attribute [rw] key
126
+ # @return [::String]
127
+ # @!attribute [rw] value
128
+ # @return [::String]
129
+ class AnnotationsEntry
130
+ include ::Google::Protobuf::MessageExts
131
+ extend ::Google::Protobuf::MessageExts::ClassMethods
132
+ end
133
+
134
+ # @!attribute [rw] key
135
+ # @return [::String]
136
+ # @!attribute [rw] value
137
+ # @return [::String]
138
+ class LabelsEntry
139
+ include ::Google::Protobuf::MessageExts
140
+ extend ::Google::Protobuf::MessageExts::ClassMethods
141
+ end
142
+ end
143
+
144
+ # A workstation configuration resource in the Cloud Workstations API.
145
+ #
146
+ # Workstation configurations act as templates for workstations. The workstation
147
+ # configuration defines details such as the workstation virtual machine (VM)
148
+ # instance type, persistent storage, container image defining environment,
149
+ # which IDE or Code Editor to use, and more. Administrators and platform teams
150
+ # can also use [Identity and Access Management
151
+ # (IAM)](https://cloud.google.com/iam/docs/overview) rules to grant access to
152
+ # teams or to individual developers.
153
+ # @!attribute [rw] name
154
+ # @return [::String]
155
+ # Full name of this workstation configuration.
156
+ # @!attribute [rw] display_name
157
+ # @return [::String]
158
+ # Optional. Human-readable name for this workstation configuration.
159
+ # @!attribute [r] uid
160
+ # @return [::String]
161
+ # Output only. A system-assigned unique identifier for this workstation
162
+ # configuration.
163
+ # @!attribute [r] reconciling
164
+ # @return [::Boolean]
165
+ # Output only. Indicates whether this workstation configuration is currently
166
+ # being updated to match its intended state.
167
+ # @!attribute [rw] annotations
168
+ # @return [::Google::Protobuf::Map{::String => ::String}]
169
+ # Optional. Client-specified annotations.
170
+ # @!attribute [rw] labels
171
+ # @return [::Google::Protobuf::Map{::String => ::String}]
172
+ # Optional.
173
+ # [Labels](https://cloud.google.com/workstations/docs/label-resources) that
174
+ # are applied to the workstation configuration and that are also propagated
175
+ # to the underlying Compute Engine resources.
176
+ # @!attribute [r] create_time
177
+ # @return [::Google::Protobuf::Timestamp]
178
+ # Output only. Time when this workstation configuration was created.
179
+ # @!attribute [r] update_time
180
+ # @return [::Google::Protobuf::Timestamp]
181
+ # Output only. Time when this workstation configuration was most recently
182
+ # updated.
183
+ # @!attribute [r] delete_time
184
+ # @return [::Google::Protobuf::Timestamp]
185
+ # Output only. Time when this workstation configuration was soft-deleted.
186
+ # @!attribute [rw] etag
187
+ # @return [::String]
188
+ # Optional. Checksum computed by the server. May be sent on update and delete
189
+ # requests to make sure that the client has an up-to-date value before
190
+ # proceeding.
191
+ # @!attribute [rw] idle_timeout
192
+ # @return [::Google::Protobuf::Duration]
193
+ # Optional. Number of seconds to wait before automatically stopping a
194
+ # workstation after it last received user traffic.
195
+ #
196
+ # A value of `"0s"` indicates that Cloud Workstations VMs created with this
197
+ # configuration should never time out due to idleness.
198
+ # Provide
199
+ # [duration](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#duration)
200
+ # terminated by `s` for seconds—for example, `"7200s"` (2 hours).
201
+ # The default is `"1200s"` (20 minutes).
202
+ # @!attribute [rw] running_timeout
203
+ # @return [::Google::Protobuf::Duration]
204
+ # Optional. Number of seconds that a workstation can run until it is
205
+ # automatically shut down. We recommend that workstations be shut down daily
206
+ # to reduce costs and so that security updates can be applied upon restart.
207
+ # The
208
+ # {::Google::Cloud::Workstations::V1beta::WorkstationConfig#idle_timeout idle_timeout}
209
+ # and
210
+ # {::Google::Cloud::Workstations::V1beta::WorkstationConfig#running_timeout running_timeout}
211
+ # fields are independent of each other. Note that the
212
+ # {::Google::Cloud::Workstations::V1beta::WorkstationConfig#running_timeout running_timeout}
213
+ # field shuts down VMs after the specified time, regardless of whether or not
214
+ # the VMs are idle.
215
+ #
216
+ # Provide duration terminated by `s` for seconds—for example, `"54000s"`
217
+ # (15 hours). Defaults to `"43200s"` (12 hours). A value of `"0s"` indicates
218
+ # that workstations using this configuration should never time out. If
219
+ # {::Google::Cloud::Workstations::V1beta::WorkstationConfig#encryption_key encryption_key}
220
+ # is set, it must be greater than `"0s"` and less than
221
+ # `"86400s"` (24 hours).
222
+ #
223
+ # Warning: A value of `"0s"` indicates that Cloud Workstations VMs created
224
+ # with this configuration have no maximum running time. This is strongly
225
+ # discouraged because you incur costs and will not pick up security updates.
226
+ # @!attribute [rw] host
227
+ # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host]
228
+ # Optional. Runtime host for the workstation.
229
+ # @!attribute [rw] persistent_directories
230
+ # @return [::Array<::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory>]
231
+ # Optional. Directories to persist across workstation sessions.
232
+ # @!attribute [rw] ephemeral_directories
233
+ # @return [::Array<::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory>]
234
+ # Optional. Ephemeral directories which won't persist across workstation
235
+ # sessions.
236
+ # @!attribute [rw] container
237
+ # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Container]
238
+ # Optional. Container that runs upon startup for each workstation using this
239
+ # workstation configuration.
240
+ # @!attribute [rw] encryption_key
241
+ # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::CustomerEncryptionKey]
242
+ # Immutable. Encrypts resources of this workstation configuration using a
243
+ # customer-managed encryption key (CMEK).
244
+ #
245
+ # If specified, the boot disk of the Compute Engine instance and the
246
+ # persistent disk are encrypted using this encryption key. If
247
+ # this field is not set, the disks are encrypted using a generated
248
+ # key. Customer-managed encryption keys do not protect disk metadata.
249
+ #
250
+ # If the customer-managed encryption key is rotated, when the workstation
251
+ # instance is stopped, the system attempts to recreate the
252
+ # persistent disk with the new version of the key. Be sure to keep
253
+ # older versions of the key until the persistent disk is recreated.
254
+ # Otherwise, data on the persistent disk might be lost.
255
+ #
256
+ # If the encryption key is revoked, the workstation session automatically
257
+ # stops within 7 hours.
258
+ #
259
+ # Immutable after the workstation configuration is created.
260
+ # @!attribute [rw] readiness_checks
261
+ # @return [::Array<::Google::Cloud::Workstations::V1beta::WorkstationConfig::ReadinessCheck>]
262
+ # Optional. Readiness checks to perform when starting a workstation using
263
+ # this workstation configuration. Mark a workstation as running only after
264
+ # all specified readiness checks return 200 status codes.
265
+ # @!attribute [rw] replica_zones
266
+ # @return [::Array<::String>]
267
+ # Optional. Immutable. Specifies the zones used to replicate the VM and disk
268
+ # resources within the region. If set, exactly two zones within the
269
+ # workstation cluster's region must be specified—for example,
270
+ # `['us-central1-a', 'us-central1-f']`. If this field is empty, two default
271
+ # zones within the region are used.
272
+ #
273
+ # Immutable after the workstation configuration is created.
274
+ # @!attribute [r] degraded
275
+ # @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
278
+ # {::Google::Cloud::Workstations::V1beta::WorkstationConfig#conditions conditions}
279
+ # field.
280
+ # @!attribute [r] conditions
281
+ # @return [::Array<::Google::Rpc::Status>]
282
+ # Output only. Status conditions describing the current resource state.
283
+ # @!attribute [rw] enable_audit_agent
284
+ # @return [::Boolean]
285
+ # 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
288
+ # logging is distinct from [Cloud Audit
289
+ # Logs](https://cloud.google.com/workstations/docs/audit-logging).
290
+ class WorkstationConfig
291
+ include ::Google::Protobuf::MessageExts
292
+ extend ::Google::Protobuf::MessageExts::ClassMethods
293
+
294
+ # Runtime host for a workstation.
295
+ # @!attribute [rw] gce_instance
296
+ # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance]
297
+ # Specifies a Compute Engine instance as the host.
298
+ class Host
299
+ include ::Google::Protobuf::MessageExts
300
+ extend ::Google::Protobuf::MessageExts::ClassMethods
301
+
302
+ # A runtime using a Compute Engine instance.
303
+ # @!attribute [rw] machine_type
304
+ # @return [::String]
305
+ # Optional. The type of machine to use for VM instances—for example,
306
+ # `"e2-standard-4"`. For more information about machine types that
307
+ # Cloud Workstations supports, see the list of
308
+ # [available machine
309
+ # types](https://cloud.google.com/workstations/docs/available-machine-types).
310
+ # @!attribute [rw] service_account
311
+ # @return [::String]
312
+ # Optional. The email address of the service account for Cloud
313
+ # 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.
318
+ #
319
+ # If you as the administrator want to be able to `ssh` into the
320
+ # underlying VM, you need to set this value to a service account
321
+ # for which you have the `iam.serviceAccounts.actAs` permission.
322
+ # Conversely, if you don't want anyone to be able to `ssh` into the
323
+ # underlying VM, use a service account where no one has that
324
+ # permission.
325
+ #
326
+ # If not set, VMs run with a service account provided by the
327
+ # Cloud Workstations service, and the image must be publicly
328
+ # accessible.
329
+ # @!attribute [rw] service_account_scopes
330
+ # @return [::Array<::String>]
331
+ # Optional. Scopes to grant to the
332
+ # {::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.
336
+ # @!attribute [rw] tags
337
+ # @return [::Array<::String>]
338
+ # Optional. Network tags to add to the Compute Engine VMs backing the
339
+ # workstations. This option applies
340
+ # [network
341
+ # tags](https://cloud.google.com/vpc/docs/add-remove-network-tags) to VMs
342
+ # created with this configuration. These network tags enable the creation
343
+ # of [firewall
344
+ # rules](https://cloud.google.com/workstations/docs/configure-firewall-rules).
345
+ # @!attribute [rw] pool_size
346
+ # @return [::Integer]
347
+ # Optional. The number of VMs that the system should keep idle so that
348
+ # new workstations can be started quickly for new users. Defaults to `0`
349
+ # in the API.
350
+ # @!attribute [r] pooled_instances
351
+ # @return [::Integer]
352
+ # Output only. Number of instances currently available in the pool for
353
+ # faster workstation startup.
354
+ # @!attribute [rw] disable_public_ip_addresses
355
+ # @return [::Boolean]
356
+ # Optional. When set to true, disables public IP addresses for VMs. If
357
+ # you disable public IP addresses, you must set up Private Google Access
358
+ # or Cloud NAT on your network. If you use Private Google Access and you
359
+ # use `private.googleapis.com` or `restricted.googleapis.com` for
360
+ # Container Registry and Artifact Registry, make sure that you set
361
+ # up DNS records for domains `*.gcr.io` and `*.pkg.dev`.
362
+ # Defaults to false (VMs have public IP addresses).
363
+ # @!attribute [rw] enable_nested_virtualization
364
+ # @return [::Boolean]
365
+ # Optional. Whether to enable nested virtualization on Cloud Workstations
366
+ # VMs created under this workstation configuration.
367
+ #
368
+ # Nested virtualization lets you run virtual machine (VM) instances
369
+ # inside your workstation. Before enabling nested virtualization,
370
+ # consider the following important considerations. Cloud Workstations
371
+ # instances are subject to the [same restrictions as Compute Engine
372
+ # instances](https://cloud.google.com/compute/docs/instances/nested-virtualization/overview#restrictions):
373
+ #
374
+ # * **Organization policy**: projects, folders, or
375
+ # organizations may be restricted from creating nested VMs if the
376
+ # **Disable VM nested virtualization** constraint is enforced in
377
+ # the organization policy. For more information, see the
378
+ # Compute Engine section,
379
+ # [Checking whether nested virtualization is
380
+ # allowed](https://cloud.google.com/compute/docs/instances/nested-virtualization/managing-constraint#checking_whether_nested_virtualization_is_allowed).
381
+ # * **Performance**: nested VMs might experience a 10% or greater
382
+ # decrease in performance for workloads that are CPU-bound and
383
+ # possibly greater than a 10% decrease for workloads that are
384
+ # input/output bound.
385
+ # * **Machine Type**: nested virtualization can only be enabled on
386
+ # workstation configurations that specify a
387
+ # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance#machine_type machine_type}
388
+ # 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
+ # @!attribute [rw] shielded_instance_config
400
+ # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::GceShieldedInstanceConfig]
401
+ # Optional. A set of Compute Engine Shielded instance options.
402
+ # @!attribute [rw] confidential_instance_config
403
+ # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::GceConfidentialInstanceConfig]
404
+ # Optional. A set of Compute Engine Confidential VM instance options.
405
+ # @!attribute [rw] boot_disk_size_gb
406
+ # @return [::Integer]
407
+ # Optional. The size of the boot disk for the VM in gigabytes (GB).
408
+ # The minimum boot disk size is `30` GB. Defaults to `50` GB.
409
+ # @!attribute [rw] accelerators
410
+ # @return [::Array<::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host::GceInstance::Accelerator>]
411
+ # Optional. A list of the type and count of accelerator cards attached to
412
+ # the instance.
413
+ class GceInstance
414
+ include ::Google::Protobuf::MessageExts
415
+ extend ::Google::Protobuf::MessageExts::ClassMethods
416
+
417
+ # A set of Compute Engine Shielded instance options.
418
+ # @!attribute [rw] enable_secure_boot
419
+ # @return [::Boolean]
420
+ # Optional. Whether the instance has Secure Boot enabled.
421
+ # @!attribute [rw] enable_vtpm
422
+ # @return [::Boolean]
423
+ # Optional. Whether the instance has the vTPM enabled.
424
+ # @!attribute [rw] enable_integrity_monitoring
425
+ # @return [::Boolean]
426
+ # Optional. Whether the instance has integrity monitoring enabled.
427
+ class GceShieldedInstanceConfig
428
+ include ::Google::Protobuf::MessageExts
429
+ extend ::Google::Protobuf::MessageExts::ClassMethods
430
+ end
431
+
432
+ # A set of Compute Engine Confidential VM instance options.
433
+ # @!attribute [rw] enable_confidential_compute
434
+ # @return [::Boolean]
435
+ # Optional. Whether the instance has confidential compute enabled.
436
+ class GceConfidentialInstanceConfig
437
+ include ::Google::Protobuf::MessageExts
438
+ extend ::Google::Protobuf::MessageExts::ClassMethods
439
+ end
440
+
441
+ # An accelerator card attached to the instance.
442
+ # @!attribute [rw] type
443
+ # @return [::String]
444
+ # Optional. Type of accelerator resource to attach to the instance, for
445
+ # example,
446
+ # `"nvidia-tesla-p100"`.
447
+ # @!attribute [rw] count
448
+ # @return [::Integer]
449
+ # Optional. Number of accelerator cards exposed to the instance.
450
+ class Accelerator
451
+ include ::Google::Protobuf::MessageExts
452
+ extend ::Google::Protobuf::MessageExts::ClassMethods
453
+ end
454
+ end
455
+ end
456
+
457
+ # A directory to persist across workstation sessions.
458
+ # @!attribute [rw] gce_pd
459
+ # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk]
460
+ # A PersistentDirectory backed by a Compute Engine persistent disk.
461
+ # @!attribute [rw] mount_path
462
+ # @return [::String]
463
+ # Optional. Location of this directory in the running workstation.
464
+ class PersistentDirectory
465
+ include ::Google::Protobuf::MessageExts
466
+ extend ::Google::Protobuf::MessageExts::ClassMethods
467
+
468
+ # A PersistentDirectory backed by a Compute Engine regional persistent
469
+ # disk. The
470
+ # {::Google::Cloud::Workstations::V1beta::WorkstationConfig#persistent_directories persistent_directories}
471
+ # field is repeated, but it may contain only one entry. It creates a
472
+ # [persistent
473
+ # disk](https://cloud.google.com/compute/docs/disks/persistent-disks) that
474
+ # mounts to the workstation VM at `/home` when the session starts and
475
+ # detaches when the session ends. If this field is empty, workstations
476
+ # created with this configuration do not have a persistent home
477
+ # directory.
478
+ # @!attribute [rw] size_gb
479
+ # @return [::Integer]
480
+ # Optional. The GB capacity of a persistent home directory for each
481
+ # workstation created with this configuration. Must be empty if
482
+ # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk#source_snapshot source_snapshot}
483
+ # is set.
484
+ #
485
+ # Valid values are `10`, `50`, `100`, `200`, `500`, or `1000`.
486
+ # Defaults to `200`. If less than `200` GB, the
487
+ # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk#disk_type disk_type}
488
+ # must be
489
+ # `"pd-balanced"` or `"pd-ssd"`.
490
+ # @!attribute [rw] fs_type
491
+ # @return [::String]
492
+ # Optional. Type of file system that the disk should be formatted with.
493
+ # The workstation image must support this file system type. Must be empty
494
+ # if
495
+ # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk#source_snapshot source_snapshot}
496
+ # is set. Defaults to `"ext4"`.
497
+ # @!attribute [rw] disk_type
498
+ # @return [::String]
499
+ # Optional. The [type of the persistent
500
+ # disk](https://cloud.google.com/compute/docs/disks#disk-types) for the
501
+ # home directory. Defaults to `"pd-standard"`.
502
+ # @!attribute [rw] source_snapshot
503
+ # @return [::String]
504
+ # Optional. Name of the snapshot to use as the source for the disk. If
505
+ # set,
506
+ # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk#size_gb size_gb}
507
+ # and
508
+ # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk#fs_type fs_type}
509
+ # must be empty.
510
+ # @!attribute [rw] reclaim_policy
511
+ # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk::ReclaimPolicy]
512
+ # Optional. Whether the persistent disk should be deleted when the
513
+ # workstation is deleted. Valid values are `DELETE` and `RETAIN`.
514
+ # Defaults to `DELETE`.
515
+ class GceRegionalPersistentDisk
516
+ include ::Google::Protobuf::MessageExts
517
+ extend ::Google::Protobuf::MessageExts::ClassMethods
518
+
519
+ # Value representing what should happen to the disk after the workstation
520
+ # is deleted.
521
+ module ReclaimPolicy
522
+ # Do not use.
523
+ RECLAIM_POLICY_UNSPECIFIED = 0
524
+
525
+ # Delete the persistent disk when deleting the workstation.
526
+ DELETE = 1
527
+
528
+ # Keep the persistent disk when deleting the workstation.
529
+ # An administrator must manually delete the disk.
530
+ RETAIN = 2
531
+ end
532
+ end
533
+ end
534
+
535
+ # An ephemeral directory which won't persist across workstation sessions. It
536
+ # is freshly created on every workstation start operation.
537
+ # @!attribute [rw] gce_pd
538
+ # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk]
539
+ # An EphemeralDirectory backed by a Compute Engine persistent disk.
540
+ # @!attribute [rw] mount_path
541
+ # @return [::String]
542
+ # Required. Location of this directory in the running workstation.
543
+ class EphemeralDirectory
544
+ include ::Google::Protobuf::MessageExts
545
+ extend ::Google::Protobuf::MessageExts::ClassMethods
546
+
547
+ # An EphemeralDirectory is backed by a Compute Engine persistent disk.
548
+ # @!attribute [rw] disk_type
549
+ # @return [::String]
550
+ # Optional. Type of the disk to use. Defaults to `"pd-standard"`.
551
+ # @!attribute [rw] source_snapshot
552
+ # @return [::String]
553
+ # Optional. Name of the snapshot to use as the source for the disk. Must
554
+ # be empty if
555
+ # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#source_image source_image}
556
+ # is set. Updating
557
+ # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#source_snapshot source_snapshot}
558
+ # will update content in the ephemeral directory after the workstation is
559
+ # restarted. This field is mutable.
560
+ # @!attribute [rw] source_image
561
+ # @return [::String]
562
+ # Optional. Name of the disk image to use as the source for the disk.
563
+ # Must be empty if
564
+ # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#source_snapshot source_snapshot}
565
+ # is set. Updating
566
+ # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#source_image source_image}
567
+ # will update content in the ephemeral directory after the workstation is
568
+ # restarted. This field is mutable.
569
+ # @!attribute [rw] read_only
570
+ # @return [::Boolean]
571
+ # Optional. Whether the disk is read only. If true, the disk may be
572
+ # shared by multiple VMs and
573
+ # {::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory::GcePersistentDisk#source_snapshot source_snapshot}
574
+ # must be set.
575
+ class GcePersistentDisk
576
+ include ::Google::Protobuf::MessageExts
577
+ extend ::Google::Protobuf::MessageExts::ClassMethods
578
+ end
579
+ end
580
+
581
+ # A Docker container.
582
+ # @!attribute [rw] image
583
+ # @return [::String]
584
+ # Optional. A Docker container image that defines a custom environment.
585
+ #
586
+ # Cloud Workstations provides a number of
587
+ # [preconfigured
588
+ # images](https://cloud.google.com/workstations/docs/preconfigured-base-images),
589
+ # but you can create your own
590
+ # [custom container
591
+ # images](https://cloud.google.com/workstations/docs/custom-container-images).
592
+ # If using a private image, the `host.gceInstance.serviceAccount` field
593
+ # must be specified in the workstation configuration and must have
594
+ # permission to pull the specified image. Otherwise, the image must be
595
+ # publicly accessible.
596
+ # @!attribute [rw] command
597
+ # @return [::Array<::String>]
598
+ # Optional. If set, overrides the default ENTRYPOINT specified by the
599
+ # image.
600
+ # @!attribute [rw] args
601
+ # @return [::Array<::String>]
602
+ # Optional. Arguments passed to the entrypoint.
603
+ # @!attribute [rw] env
604
+ # @return [::Google::Protobuf::Map{::String => ::String}]
605
+ # Optional. Environment variables passed to the container's entrypoint.
606
+ # @!attribute [rw] working_dir
607
+ # @return [::String]
608
+ # Optional. If set, overrides the default DIR specified by the image.
609
+ # @!attribute [rw] run_as_user
610
+ # @return [::Integer]
611
+ # Optional. If set, overrides the USER specified in the image with the
612
+ # given uid.
613
+ class Container
614
+ include ::Google::Protobuf::MessageExts
615
+ extend ::Google::Protobuf::MessageExts::ClassMethods
616
+
617
+ # @!attribute [rw] key
618
+ # @return [::String]
619
+ # @!attribute [rw] value
620
+ # @return [::String]
621
+ class EnvEntry
622
+ include ::Google::Protobuf::MessageExts
623
+ extend ::Google::Protobuf::MessageExts::ClassMethods
624
+ end
625
+ end
626
+
627
+ # A customer-managed encryption key (CMEK) for the Compute Engine
628
+ # resources of the associated workstation configuration. Specify the name of
629
+ # your Cloud KMS encryption key and the default service account.
630
+ # We recommend that you use a separate service account and follow
631
+ # [Cloud KMS best
632
+ # practices](https://cloud.google.com/kms/docs/separation-of-duties).
633
+ # @!attribute [rw] kms_key
634
+ # @return [::String]
635
+ # Immutable. The name of the Google Cloud KMS encryption key. For example,
636
+ # `"projects/PROJECT_ID/locations/REGION/keyRings/KEY_RING/cryptoKeys/KEY_NAME"`.
637
+ # The key must be in the same region as the workstation configuration.
638
+ # @!attribute [rw] kms_key_service_account
639
+ # @return [::String]
640
+ # Immutable. The service account to use with the specified
641
+ # KMS key. We recommend that you use a separate service account
642
+ # and follow KMS best practices. For more information, see
643
+ # [Separation of
644
+ # duties](https://cloud.google.com/kms/docs/separation-of-duties) and
645
+ # `gcloud kms keys add-iam-policy-binding`
646
+ # [`--member`](https://cloud.google.com/sdk/gcloud/reference/kms/keys/add-iam-policy-binding#--member).
647
+ class CustomerEncryptionKey
648
+ include ::Google::Protobuf::MessageExts
649
+ extend ::Google::Protobuf::MessageExts::ClassMethods
650
+ end
651
+
652
+ # A readiness check to be performed on a workstation.
653
+ # @!attribute [rw] path
654
+ # @return [::String]
655
+ # Optional. Path to which the request should be sent.
656
+ # @!attribute [rw] port
657
+ # @return [::Integer]
658
+ # Optional. Port to which the request should be sent.
659
+ class ReadinessCheck
660
+ include ::Google::Protobuf::MessageExts
661
+ extend ::Google::Protobuf::MessageExts::ClassMethods
662
+ end
663
+
664
+ # @!attribute [rw] key
665
+ # @return [::String]
666
+ # @!attribute [rw] value
667
+ # @return [::String]
668
+ class AnnotationsEntry
669
+ include ::Google::Protobuf::MessageExts
670
+ extend ::Google::Protobuf::MessageExts::ClassMethods
671
+ end
672
+
673
+ # @!attribute [rw] key
674
+ # @return [::String]
675
+ # @!attribute [rw] value
676
+ # @return [::String]
677
+ class LabelsEntry
678
+ include ::Google::Protobuf::MessageExts
679
+ extend ::Google::Protobuf::MessageExts::ClassMethods
680
+ end
681
+ end
682
+
683
+ # A single instance of a developer workstation with its own persistent storage.
684
+ # @!attribute [rw] name
685
+ # @return [::String]
686
+ # Full name of this workstation.
687
+ # @!attribute [rw] display_name
688
+ # @return [::String]
689
+ # Optional. Human-readable name for this workstation.
690
+ # @!attribute [r] uid
691
+ # @return [::String]
692
+ # Output only. A system-assigned unique identifier for this workstation.
693
+ # @!attribute [r] reconciling
694
+ # @return [::Boolean]
695
+ # Output only. Indicates whether this workstation is currently being updated
696
+ # to match its intended state.
697
+ # @!attribute [rw] annotations
698
+ # @return [::Google::Protobuf::Map{::String => ::String}]
699
+ # Optional. Client-specified annotations.
700
+ # @!attribute [rw] labels
701
+ # @return [::Google::Protobuf::Map{::String => ::String}]
702
+ # Optional.
703
+ # [Labels](https://cloud.google.com/workstations/docs/label-resources) that
704
+ # are applied to the workstation and that are also propagated to the
705
+ # underlying Compute Engine resources.
706
+ # @!attribute [r] create_time
707
+ # @return [::Google::Protobuf::Timestamp]
708
+ # Output only. Time when this workstation was created.
709
+ # @!attribute [r] update_time
710
+ # @return [::Google::Protobuf::Timestamp]
711
+ # Output only. Time when this workstation was most recently updated.
712
+ # @!attribute [r] start_time
713
+ # @return [::Google::Protobuf::Timestamp]
714
+ # Output only. Time when this workstation was most recently successfully
715
+ # started, regardless of the workstation's initial state.
716
+ # @!attribute [r] delete_time
717
+ # @return [::Google::Protobuf::Timestamp]
718
+ # Output only. Time when this workstation was soft-deleted.
719
+ # @!attribute [rw] etag
720
+ # @return [::String]
721
+ # Optional. Checksum computed by the server. May be sent on update and delete
722
+ # requests to make sure that the client has an up-to-date value before
723
+ # proceeding.
724
+ # @!attribute [r] state
725
+ # @return [::Google::Cloud::Workstations::V1beta::Workstation::State]
726
+ # Output only. Current state of the workstation.
727
+ # @!attribute [r] host
728
+ # @return [::String]
729
+ # Output only. Host to which clients can send HTTPS traffic that will be
730
+ # received by the workstation. Authorized traffic will be received to the
731
+ # workstation as HTTP on port 80. To send traffic to a different port,
732
+ # clients may prefix the host with the destination port in the format
733
+ # `{port}-{host}`.
734
+ # @!attribute [rw] env
735
+ # @return [::Google::Protobuf::Map{::String => ::String}]
736
+ # Optional. Environment variables passed to the workstation container's
737
+ # entrypoint.
738
+ class Workstation
739
+ include ::Google::Protobuf::MessageExts
740
+ extend ::Google::Protobuf::MessageExts::ClassMethods
741
+
742
+ # @!attribute [rw] key
743
+ # @return [::String]
744
+ # @!attribute [rw] value
745
+ # @return [::String]
746
+ class AnnotationsEntry
747
+ include ::Google::Protobuf::MessageExts
748
+ extend ::Google::Protobuf::MessageExts::ClassMethods
749
+ end
750
+
751
+ # @!attribute [rw] key
752
+ # @return [::String]
753
+ # @!attribute [rw] value
754
+ # @return [::String]
755
+ class LabelsEntry
756
+ include ::Google::Protobuf::MessageExts
757
+ extend ::Google::Protobuf::MessageExts::ClassMethods
758
+ end
759
+
760
+ # @!attribute [rw] key
761
+ # @return [::String]
762
+ # @!attribute [rw] value
763
+ # @return [::String]
764
+ class EnvEntry
765
+ include ::Google::Protobuf::MessageExts
766
+ extend ::Google::Protobuf::MessageExts::ClassMethods
767
+ end
768
+
769
+ # Whether a workstation is running and ready to receive user requests.
770
+ module State
771
+ # Do not use.
772
+ STATE_UNSPECIFIED = 0
773
+
774
+ # The workstation is not yet ready to accept requests from users but will
775
+ # be soon.
776
+ STATE_STARTING = 1
777
+
778
+ # The workstation is ready to accept requests from users.
779
+ STATE_RUNNING = 2
780
+
781
+ # The workstation is being stopped.
782
+ STATE_STOPPING = 3
783
+
784
+ # The workstation is stopped and will not be able to receive requests until
785
+ # it is started.
786
+ STATE_STOPPED = 4
787
+ end
788
+ end
789
+
790
+ # Request message for GetWorkstationCluster.
791
+ # @!attribute [rw] name
792
+ # @return [::String]
793
+ # Required. Name of the requested resource.
794
+ class GetWorkstationClusterRequest
795
+ include ::Google::Protobuf::MessageExts
796
+ extend ::Google::Protobuf::MessageExts::ClassMethods
797
+ end
798
+
799
+ # Request message for ListWorkstationClusters.
800
+ # @!attribute [rw] parent
801
+ # @return [::String]
802
+ # Required. Parent resource name.
803
+ # @!attribute [rw] page_size
804
+ # @return [::Integer]
805
+ # Optional. Maximum number of items to return.
806
+ # @!attribute [rw] page_token
807
+ # @return [::String]
808
+ # Optional. next_page_token value returned from a previous List request, if
809
+ # any.
810
+ class ListWorkstationClustersRequest
811
+ include ::Google::Protobuf::MessageExts
812
+ extend ::Google::Protobuf::MessageExts::ClassMethods
813
+ end
814
+
815
+ # Response message for ListWorkstationClusters.
816
+ # @!attribute [rw] workstation_clusters
817
+ # @return [::Array<::Google::Cloud::Workstations::V1beta::WorkstationCluster>]
818
+ # The requested workstation clusters.
819
+ # @!attribute [rw] next_page_token
820
+ # @return [::String]
821
+ # Token to retrieve the next page of results, or empty if there are no more
822
+ # results in the list.
823
+ # @!attribute [rw] unreachable
824
+ # @return [::Array<::String>]
825
+ # Unreachable resources.
826
+ class ListWorkstationClustersResponse
827
+ include ::Google::Protobuf::MessageExts
828
+ extend ::Google::Protobuf::MessageExts::ClassMethods
829
+ end
830
+
831
+ # Message for creating a CreateWorkstationCluster.
832
+ # @!attribute [rw] parent
833
+ # @return [::String]
834
+ # Required. Parent resource name.
835
+ # @!attribute [rw] workstation_cluster_id
836
+ # @return [::String]
837
+ # Required. ID to use for the workstation cluster.
838
+ # @!attribute [rw] workstation_cluster
839
+ # @return [::Google::Cloud::Workstations::V1beta::WorkstationCluster]
840
+ # Required. Workstation cluster to create.
841
+ # @!attribute [rw] validate_only
842
+ # @return [::Boolean]
843
+ # Optional. If set, validate the request and preview the review, but do not
844
+ # actually apply it.
845
+ class CreateWorkstationClusterRequest
846
+ include ::Google::Protobuf::MessageExts
847
+ extend ::Google::Protobuf::MessageExts::ClassMethods
848
+ end
849
+
850
+ # Request message for UpdateWorkstationCluster.
851
+ # @!attribute [rw] workstation_cluster
852
+ # @return [::Google::Cloud::Workstations::V1beta::WorkstationCluster]
853
+ # Required. Workstation cluster to update.
854
+ # @!attribute [rw] update_mask
855
+ # @return [::Google::Protobuf::FieldMask]
856
+ # Required. Mask that specifies which fields in the workstation cluster
857
+ # should be updated.
858
+ # @!attribute [rw] validate_only
859
+ # @return [::Boolean]
860
+ # Optional. If set, validate the request and preview the review, but do not
861
+ # actually apply it.
862
+ # @!attribute [rw] allow_missing
863
+ # @return [::Boolean]
864
+ # Optional. If set, and the workstation cluster is not found, a new
865
+ # workstation cluster will be created. In this situation, update_mask is
866
+ # ignored.
867
+ class UpdateWorkstationClusterRequest
868
+ include ::Google::Protobuf::MessageExts
869
+ extend ::Google::Protobuf::MessageExts::ClassMethods
870
+ end
871
+
872
+ # Message for deleting a workstation cluster.
873
+ # @!attribute [rw] name
874
+ # @return [::String]
875
+ # Required. Name of the workstation cluster to delete.
876
+ # @!attribute [rw] validate_only
877
+ # @return [::Boolean]
878
+ # Optional. If set, validate the request and preview the review, but do not
879
+ # apply it.
880
+ # @!attribute [rw] etag
881
+ # @return [::String]
882
+ # Optional. If set, the request will be rejected if the latest version of the
883
+ # workstation cluster on the server does not have this ETag.
884
+ # @!attribute [rw] force
885
+ # @return [::Boolean]
886
+ # Optional. If set, any workstation configurations and workstations in the
887
+ # workstation cluster are also deleted. Otherwise, the request only
888
+ # works if the workstation cluster has no configurations or workstations.
889
+ class DeleteWorkstationClusterRequest
890
+ include ::Google::Protobuf::MessageExts
891
+ extend ::Google::Protobuf::MessageExts::ClassMethods
892
+ end
893
+
894
+ # Request message for GetWorkstationConfig.
895
+ # @!attribute [rw] name
896
+ # @return [::String]
897
+ # Required. Name of the requested resource.
898
+ class GetWorkstationConfigRequest
899
+ include ::Google::Protobuf::MessageExts
900
+ extend ::Google::Protobuf::MessageExts::ClassMethods
901
+ end
902
+
903
+ # Request message for ListWorkstationConfigs.
904
+ # @!attribute [rw] parent
905
+ # @return [::String]
906
+ # Required. Parent resource name.
907
+ # @!attribute [rw] page_size
908
+ # @return [::Integer]
909
+ # Optional. Maximum number of items to return.
910
+ # @!attribute [rw] page_token
911
+ # @return [::String]
912
+ # Optional. next_page_token value returned from a previous List request, if
913
+ # any.
914
+ class ListWorkstationConfigsRequest
915
+ include ::Google::Protobuf::MessageExts
916
+ extend ::Google::Protobuf::MessageExts::ClassMethods
917
+ end
918
+
919
+ # Response message for ListWorkstationConfigs.
920
+ # @!attribute [rw] workstation_configs
921
+ # @return [::Array<::Google::Cloud::Workstations::V1beta::WorkstationConfig>]
922
+ # The requested configs.
923
+ # @!attribute [rw] next_page_token
924
+ # @return [::String]
925
+ # Token to retrieve the next page of results, or empty if there are no more
926
+ # results in the list.
927
+ # @!attribute [rw] unreachable
928
+ # @return [::Array<::String>]
929
+ # Unreachable resources.
930
+ class ListWorkstationConfigsResponse
931
+ include ::Google::Protobuf::MessageExts
932
+ extend ::Google::Protobuf::MessageExts::ClassMethods
933
+ end
934
+
935
+ # Request message for ListUsableWorkstationConfigs.
936
+ # @!attribute [rw] parent
937
+ # @return [::String]
938
+ # Required. Parent resource name.
939
+ # @!attribute [rw] page_size
940
+ # @return [::Integer]
941
+ # Optional. Maximum number of items to return.
942
+ # @!attribute [rw] page_token
943
+ # @return [::String]
944
+ # Optional. next_page_token value returned from a previous List request, if
945
+ # any.
946
+ class ListUsableWorkstationConfigsRequest
947
+ include ::Google::Protobuf::MessageExts
948
+ extend ::Google::Protobuf::MessageExts::ClassMethods
949
+ end
950
+
951
+ # Response message for ListUsableWorkstationConfigs.
952
+ # @!attribute [rw] workstation_configs
953
+ # @return [::Array<::Google::Cloud::Workstations::V1beta::WorkstationConfig>]
954
+ # The requested configs.
955
+ # @!attribute [rw] next_page_token
956
+ # @return [::String]
957
+ # Token to retrieve the next page of results, or empty if there are no more
958
+ # results in the list.
959
+ # @!attribute [rw] unreachable
960
+ # @return [::Array<::String>]
961
+ # Unreachable resources.
962
+ class ListUsableWorkstationConfigsResponse
963
+ include ::Google::Protobuf::MessageExts
964
+ extend ::Google::Protobuf::MessageExts::ClassMethods
965
+ end
966
+
967
+ # Message for creating a CreateWorkstationConfig.
968
+ # @!attribute [rw] parent
969
+ # @return [::String]
970
+ # Required. Parent resource name.
971
+ # @!attribute [rw] workstation_config_id
972
+ # @return [::String]
973
+ # Required. ID to use for the workstation configuration.
974
+ # @!attribute [rw] workstation_config
975
+ # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig]
976
+ # Required. Config to create.
977
+ # @!attribute [rw] validate_only
978
+ # @return [::Boolean]
979
+ # Optional. If set, validate the request and preview the review, but do not
980
+ # actually apply it.
981
+ class CreateWorkstationConfigRequest
982
+ include ::Google::Protobuf::MessageExts
983
+ extend ::Google::Protobuf::MessageExts::ClassMethods
984
+ end
985
+
986
+ # Request message for UpdateWorkstationConfig.
987
+ # @!attribute [rw] workstation_config
988
+ # @return [::Google::Cloud::Workstations::V1beta::WorkstationConfig]
989
+ # Required. Config to update.
990
+ # @!attribute [rw] update_mask
991
+ # @return [::Google::Protobuf::FieldMask]
992
+ # Required. Mask specifying which fields in the workstation configuration
993
+ # should be updated.
994
+ # @!attribute [rw] validate_only
995
+ # @return [::Boolean]
996
+ # Optional. If set, validate the request and preview the review, but do not
997
+ # actually apply it.
998
+ # @!attribute [rw] allow_missing
999
+ # @return [::Boolean]
1000
+ # Optional. If set and the workstation configuration is not found, a new
1001
+ # workstation configuration will be created. In this situation,
1002
+ # update_mask is ignored.
1003
+ class UpdateWorkstationConfigRequest
1004
+ include ::Google::Protobuf::MessageExts
1005
+ extend ::Google::Protobuf::MessageExts::ClassMethods
1006
+ end
1007
+
1008
+ # Message for deleting a workstation configuration.
1009
+ # @!attribute [rw] name
1010
+ # @return [::String]
1011
+ # Required. Name of the workstation configuration to delete.
1012
+ # @!attribute [rw] validate_only
1013
+ # @return [::Boolean]
1014
+ # Optional. If set, validate the request and preview the review, but do not
1015
+ # actually apply it.
1016
+ # @!attribute [rw] etag
1017
+ # @return [::String]
1018
+ # Optional. If set, the request is rejected if the latest version of the
1019
+ # workstation configuration on the server does not have this ETag.
1020
+ # @!attribute [rw] force
1021
+ # @return [::Boolean]
1022
+ # Optional. If set, any workstations in the workstation configuration are
1023
+ # also deleted. Otherwise, the request works only if the workstation
1024
+ # configuration has no workstations.
1025
+ class DeleteWorkstationConfigRequest
1026
+ include ::Google::Protobuf::MessageExts
1027
+ extend ::Google::Protobuf::MessageExts::ClassMethods
1028
+ end
1029
+
1030
+ # Request message for GetWorkstation.
1031
+ # @!attribute [rw] name
1032
+ # @return [::String]
1033
+ # Required. Name of the requested resource.
1034
+ class GetWorkstationRequest
1035
+ include ::Google::Protobuf::MessageExts
1036
+ extend ::Google::Protobuf::MessageExts::ClassMethods
1037
+ end
1038
+
1039
+ # Request message for ListWorkstations.
1040
+ # @!attribute [rw] parent
1041
+ # @return [::String]
1042
+ # Required. Parent resource name.
1043
+ # @!attribute [rw] page_size
1044
+ # @return [::Integer]
1045
+ # Optional. Maximum number of items to return.
1046
+ # @!attribute [rw] page_token
1047
+ # @return [::String]
1048
+ # Optional. next_page_token value returned from a previous List request, if
1049
+ # any.
1050
+ class ListWorkstationsRequest
1051
+ include ::Google::Protobuf::MessageExts
1052
+ extend ::Google::Protobuf::MessageExts::ClassMethods
1053
+ end
1054
+
1055
+ # Response message for ListWorkstations.
1056
+ # @!attribute [rw] workstations
1057
+ # @return [::Array<::Google::Cloud::Workstations::V1beta::Workstation>]
1058
+ # The requested workstations.
1059
+ # @!attribute [rw] next_page_token
1060
+ # @return [::String]
1061
+ # Optional. Token to retrieve the next page of results, or empty if there are
1062
+ # no more results in the list.
1063
+ # @!attribute [rw] unreachable
1064
+ # @return [::Array<::String>]
1065
+ # Optional. Unreachable resources.
1066
+ class ListWorkstationsResponse
1067
+ include ::Google::Protobuf::MessageExts
1068
+ extend ::Google::Protobuf::MessageExts::ClassMethods
1069
+ end
1070
+
1071
+ # Request message for ListUsableWorkstations.
1072
+ # @!attribute [rw] parent
1073
+ # @return [::String]
1074
+ # Required. Parent resource name.
1075
+ # @!attribute [rw] page_size
1076
+ # @return [::Integer]
1077
+ # Optional. Maximum number of items to return.
1078
+ # @!attribute [rw] page_token
1079
+ # @return [::String]
1080
+ # Optional. next_page_token value returned from a previous List request, if
1081
+ # any.
1082
+ class ListUsableWorkstationsRequest
1083
+ include ::Google::Protobuf::MessageExts
1084
+ extend ::Google::Protobuf::MessageExts::ClassMethods
1085
+ end
1086
+
1087
+ # Response message for ListUsableWorkstations.
1088
+ # @!attribute [rw] workstations
1089
+ # @return [::Array<::Google::Cloud::Workstations::V1beta::Workstation>]
1090
+ # The requested workstations.
1091
+ # @!attribute [rw] next_page_token
1092
+ # @return [::String]
1093
+ # Token to retrieve the next page of results, or empty if there are no more
1094
+ # results in the list.
1095
+ # @!attribute [rw] unreachable
1096
+ # @return [::Array<::String>]
1097
+ # Unreachable resources.
1098
+ class ListUsableWorkstationsResponse
1099
+ include ::Google::Protobuf::MessageExts
1100
+ extend ::Google::Protobuf::MessageExts::ClassMethods
1101
+ end
1102
+
1103
+ # Message for creating a CreateWorkstation.
1104
+ # @!attribute [rw] parent
1105
+ # @return [::String]
1106
+ # Required. Parent resource name.
1107
+ # @!attribute [rw] workstation_id
1108
+ # @return [::String]
1109
+ # Required. ID to use for the workstation.
1110
+ # @!attribute [rw] workstation
1111
+ # @return [::Google::Cloud::Workstations::V1beta::Workstation]
1112
+ # Required. Workstation to create.
1113
+ # @!attribute [rw] validate_only
1114
+ # @return [::Boolean]
1115
+ # Optional. If set, validate the request and preview the review, but do not
1116
+ # actually apply it.
1117
+ class CreateWorkstationRequest
1118
+ include ::Google::Protobuf::MessageExts
1119
+ extend ::Google::Protobuf::MessageExts::ClassMethods
1120
+ end
1121
+
1122
+ # Request message for UpdateWorkstation.
1123
+ # @!attribute [rw] workstation
1124
+ # @return [::Google::Cloud::Workstations::V1beta::Workstation]
1125
+ # Required. Workstation to update.
1126
+ # @!attribute [rw] update_mask
1127
+ # @return [::Google::Protobuf::FieldMask]
1128
+ # Required. Mask specifying which fields in the workstation configuration
1129
+ # should be updated.
1130
+ # @!attribute [rw] validate_only
1131
+ # @return [::Boolean]
1132
+ # Optional. If set, validate the request and preview the review, but do not
1133
+ # actually apply it.
1134
+ # @!attribute [rw] allow_missing
1135
+ # @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.
1139
+ class UpdateWorkstationRequest
1140
+ include ::Google::Protobuf::MessageExts
1141
+ extend ::Google::Protobuf::MessageExts::ClassMethods
1142
+ end
1143
+
1144
+ # Request message for DeleteWorkstation.
1145
+ # @!attribute [rw] name
1146
+ # @return [::String]
1147
+ # Required. Name of the workstation to delete.
1148
+ # @!attribute [rw] validate_only
1149
+ # @return [::Boolean]
1150
+ # Optional. If set, validate the request and preview the review, but do not
1151
+ # actually apply it.
1152
+ # @!attribute [rw] etag
1153
+ # @return [::String]
1154
+ # Optional. If set, the request will be rejected if the latest version of the
1155
+ # workstation on the server does not have this ETag.
1156
+ class DeleteWorkstationRequest
1157
+ include ::Google::Protobuf::MessageExts
1158
+ extend ::Google::Protobuf::MessageExts::ClassMethods
1159
+ end
1160
+
1161
+ # Request message for StartWorkstation.
1162
+ # @!attribute [rw] name
1163
+ # @return [::String]
1164
+ # Required. Name of the workstation to start.
1165
+ # @!attribute [rw] validate_only
1166
+ # @return [::Boolean]
1167
+ # Optional. If set, validate the request and preview the review, but do not
1168
+ # actually apply it.
1169
+ # @!attribute [rw] etag
1170
+ # @return [::String]
1171
+ # Optional. If set, the request will be rejected if the latest version of the
1172
+ # workstation on the server does not have this ETag.
1173
+ class StartWorkstationRequest
1174
+ include ::Google::Protobuf::MessageExts
1175
+ extend ::Google::Protobuf::MessageExts::ClassMethods
1176
+ end
1177
+
1178
+ # Request message for StopWorkstation.
1179
+ # @!attribute [rw] name
1180
+ # @return [::String]
1181
+ # Required. Name of the workstation to stop.
1182
+ # @!attribute [rw] validate_only
1183
+ # @return [::Boolean]
1184
+ # Optional. If set, validate the request and preview the review, but do not
1185
+ # actually apply it.
1186
+ # @!attribute [rw] etag
1187
+ # @return [::String]
1188
+ # Optional. If set, the request will be rejected if the latest version of the
1189
+ # workstation on the server does not have this ETag.
1190
+ class StopWorkstationRequest
1191
+ include ::Google::Protobuf::MessageExts
1192
+ extend ::Google::Protobuf::MessageExts::ClassMethods
1193
+ end
1194
+
1195
+ # Request message for GenerateAccessToken.
1196
+ # @!attribute [rw] expire_time
1197
+ # @return [::Google::Protobuf::Timestamp]
1198
+ # Desired expiration time of the access token. This value must
1199
+ # be at most 24 hours in the future. If a value is not specified, the
1200
+ # token's expiration time will be set to a default value of 1 hour in the
1201
+ # future.
1202
+ # @!attribute [rw] ttl
1203
+ # @return [::Google::Protobuf::Duration]
1204
+ # Desired lifetime duration of the access token. This value must
1205
+ # be at most 24 hours. If a value is not specified, the token's lifetime
1206
+ # will be set to a default value of 1 hour.
1207
+ # @!attribute [rw] workstation
1208
+ # @return [::String]
1209
+ # Required. Name of the workstation for which the access token should be
1210
+ # generated.
1211
+ class GenerateAccessTokenRequest
1212
+ include ::Google::Protobuf::MessageExts
1213
+ extend ::Google::Protobuf::MessageExts::ClassMethods
1214
+ end
1215
+
1216
+ # Response message for GenerateAccessToken.
1217
+ # @!attribute [rw] access_token
1218
+ # @return [::String]
1219
+ # The generated bearer access token. To use this token, include it in an
1220
+ # Authorization header of an HTTP request sent to the associated
1221
+ # workstation's hostname—for example, `Authorization: Bearer
1222
+ # <access_token>`.
1223
+ # @!attribute [rw] expire_time
1224
+ # @return [::Google::Protobuf::Timestamp]
1225
+ # Time at which the generated token will expire.
1226
+ class GenerateAccessTokenResponse
1227
+ include ::Google::Protobuf::MessageExts
1228
+ extend ::Google::Protobuf::MessageExts::ClassMethods
1229
+ end
1230
+
1231
+ # Metadata for long-running operations.
1232
+ # @!attribute [r] create_time
1233
+ # @return [::Google::Protobuf::Timestamp]
1234
+ # Output only. Time that the operation was created.
1235
+ # @!attribute [r] end_time
1236
+ # @return [::Google::Protobuf::Timestamp]
1237
+ # Output only. Time that the operation finished running.
1238
+ # @!attribute [r] target
1239
+ # @return [::String]
1240
+ # Output only. Server-defined resource path for the target of the operation.
1241
+ # @!attribute [r] verb
1242
+ # @return [::String]
1243
+ # Output only. Name of the verb executed by the operation.
1244
+ # @!attribute [r] status_message
1245
+ # @return [::String]
1246
+ # Output only. Human-readable status of the operation, if any.
1247
+ # @!attribute [r] requested_cancellation
1248
+ # @return [::Boolean]
1249
+ # Output only. Identifies whether the user has requested cancellation
1250
+ # of the operation.
1251
+ # @!attribute [r] api_version
1252
+ # @return [::String]
1253
+ # Output only. API version used to start the operation.
1254
+ class OperationMetadata
1255
+ include ::Google::Protobuf::MessageExts
1256
+ extend ::Google::Protobuf::MessageExts::ClassMethods
1257
+ end
1258
+ end
1259
+ end
1260
+ end
1261
+ end