google-cloud-workstations-v1beta 0.a → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
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