google-cloud-workstations-v1 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/v1/bindings_override.rb +137 -0
  6. data/lib/google/cloud/workstations/v1/rest.rb +38 -0
  7. data/lib/google/cloud/workstations/v1/version.rb +7 -2
  8. data/lib/google/cloud/workstations/v1/workstations/client.rb +2543 -0
  9. data/lib/google/cloud/workstations/v1/workstations/credentials.rb +47 -0
  10. data/lib/google/cloud/workstations/v1/workstations/operations.rb +809 -0
  11. data/lib/google/cloud/workstations/v1/workstations/paths.rb +113 -0
  12. data/lib/google/cloud/workstations/v1/workstations/rest/client.rb +2380 -0
  13. data/lib/google/cloud/workstations/v1/workstations/rest/operations.rb +902 -0
  14. data/lib/google/cloud/workstations/v1/workstations/rest/service_stub.rb +1258 -0
  15. data/lib/google/cloud/workstations/v1/workstations/rest.rb +54 -0
  16. data/lib/google/cloud/workstations/v1/workstations.rb +56 -0
  17. data/lib/google/cloud/workstations/v1/workstations_pb.rb +97 -0
  18. data/lib/google/cloud/workstations/v1/workstations_services_pb.rb +86 -0
  19. data/lib/google/cloud/workstations/v1.rb +45 -0
  20. data/lib/google-cloud-workstations-v1.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/v1/workstations.rb +1173 -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,1173 @@
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 V1
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::V1::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::V1::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::V1::WorkstationConfig#idle_timeout idle_timeout}
209
+ # and
210
+ # {::Google::Cloud::Workstations::V1::WorkstationConfig#running_timeout running_timeout}
211
+ # fields are independent of each other. Note that the
212
+ # {::Google::Cloud::Workstations::V1::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::V1::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::V1::WorkstationConfig::Host]
228
+ # Optional. Runtime host for the workstation.
229
+ # @!attribute [rw] persistent_directories
230
+ # @return [::Array<::Google::Cloud::Workstations::V1::WorkstationConfig::PersistentDirectory>]
231
+ # Optional. Directories to persist across workstation sessions.
232
+ # @!attribute [rw] container
233
+ # @return [::Google::Cloud::Workstations::V1::WorkstationConfig::Container]
234
+ # Optional. Container that runs upon startup for each workstation using this
235
+ # workstation configuration.
236
+ # @!attribute [rw] encryption_key
237
+ # @return [::Google::Cloud::Workstations::V1::WorkstationConfig::CustomerEncryptionKey]
238
+ # Immutable. Encrypts resources of this workstation configuration using a
239
+ # customer-managed encryption key (CMEK).
240
+ #
241
+ # If specified, the boot disk of the Compute Engine instance and the
242
+ # persistent disk are encrypted using this encryption key. If
243
+ # this field is not set, the disks are encrypted using a generated
244
+ # key. Customer-managed encryption keys do not protect disk metadata.
245
+ #
246
+ # If the customer-managed encryption key is rotated, when the workstation
247
+ # instance is stopped, the system attempts to recreate the
248
+ # persistent disk with the new version of the key. Be sure to keep
249
+ # older versions of the key until the persistent disk is recreated.
250
+ # Otherwise, data on the persistent disk might be lost.
251
+ #
252
+ # If the encryption key is revoked, the workstation session automatically
253
+ # stops within 7 hours.
254
+ #
255
+ # Immutable after the workstation configuration is created.
256
+ # @!attribute [rw] readiness_checks
257
+ # @return [::Array<::Google::Cloud::Workstations::V1::WorkstationConfig::ReadinessCheck>]
258
+ # Optional. Readiness checks to perform when starting a workstation using
259
+ # this workstation configuration. Mark a workstation as running only after
260
+ # all specified readiness checks return 200 status codes.
261
+ # @!attribute [rw] replica_zones
262
+ # @return [::Array<::String>]
263
+ # Optional. Immutable. Specifies the zones used to replicate the VM and disk
264
+ # resources within the region. If set, exactly two zones within the
265
+ # workstation cluster's region must be specified—for example,
266
+ # `['us-central1-a', 'us-central1-f']`. If this field is empty, two default
267
+ # zones within the region are used.
268
+ #
269
+ # Immutable after the workstation configuration is created.
270
+ # @!attribute [r] degraded
271
+ # @return [::Boolean]
272
+ # Output only. Whether this resource is degraded, in which case it may
273
+ # require user action to restore full functionality. See also the
274
+ # {::Google::Cloud::Workstations::V1::WorkstationConfig#conditions conditions}
275
+ # field.
276
+ # @!attribute [r] conditions
277
+ # @return [::Array<::Google::Rpc::Status>]
278
+ # Output only. Status conditions describing the current resource state.
279
+ class WorkstationConfig
280
+ include ::Google::Protobuf::MessageExts
281
+ extend ::Google::Protobuf::MessageExts::ClassMethods
282
+
283
+ # Runtime host for a workstation.
284
+ # @!attribute [rw] gce_instance
285
+ # @return [::Google::Cloud::Workstations::V1::WorkstationConfig::Host::GceInstance]
286
+ # Specifies a Compute Engine instance as the host.
287
+ class Host
288
+ include ::Google::Protobuf::MessageExts
289
+ extend ::Google::Protobuf::MessageExts::ClassMethods
290
+
291
+ # A runtime using a Compute Engine instance.
292
+ # @!attribute [rw] machine_type
293
+ # @return [::String]
294
+ # Optional. The type of machine to use for VM instances—for example,
295
+ # `"e2-standard-4"`. For more information about machine types that
296
+ # Cloud Workstations supports, see the list of
297
+ # [available machine
298
+ # types](https://cloud.google.com/workstations/docs/available-machine-types).
299
+ # @!attribute [rw] service_account
300
+ # @return [::String]
301
+ # Optional. The email address of the service account for Cloud
302
+ # Workstations VMs created with this configuration. When specified, be
303
+ # sure that the service account has `logginglogEntries.create` permission
304
+ # on the project so it can write logs out to Cloud Logging. If using a
305
+ # custom container image, the service account must have permissions to
306
+ # pull the specified image.
307
+ #
308
+ # If you as the administrator want to be able to `ssh` into the
309
+ # underlying VM, you need to set this value to a service account
310
+ # for which you have the `iam.serviceAccounts.actAs` permission.
311
+ # Conversely, if you don't want anyone to be able to `ssh` into the
312
+ # underlying VM, use a service account where no one has that
313
+ # permission.
314
+ #
315
+ # If not set, VMs run with a service account provided by the
316
+ # Cloud Workstations service, and the image must be publicly
317
+ # accessible.
318
+ # @!attribute [rw] service_account_scopes
319
+ # @return [::Array<::String>]
320
+ # Optional. Scopes to grant to the
321
+ # {::Google::Cloud::Workstations::V1::WorkstationConfig::Host::GceInstance#service_account service_account}.
322
+ # Various scopes are automatically added based on feature usage. When
323
+ # specified, users of workstations under this configuration must have
324
+ # `iam.serviceAccounts.actAs` on the service account.
325
+ # @!attribute [rw] tags
326
+ # @return [::Array<::String>]
327
+ # Optional. Network tags to add to the Compute Engine VMs backing the
328
+ # workstations. This option applies
329
+ # [network
330
+ # tags](https://cloud.google.com/vpc/docs/add-remove-network-tags) to VMs
331
+ # created with this configuration. These network tags enable the creation
332
+ # of [firewall
333
+ # rules](https://cloud.google.com/workstations/docs/configure-firewall-rules).
334
+ # @!attribute [rw] pool_size
335
+ # @return [::Integer]
336
+ # Optional. The number of VMs that the system should keep idle so that
337
+ # new workstations can be started quickly for new users. Defaults to `0`
338
+ # in the API.
339
+ # @!attribute [r] pooled_instances
340
+ # @return [::Integer]
341
+ # Output only. Number of instances currently available in the pool for
342
+ # faster workstation startup.
343
+ # @!attribute [rw] disable_public_ip_addresses
344
+ # @return [::Boolean]
345
+ # Optional. When set to true, disables public IP addresses for VMs. If
346
+ # you disable public IP addresses, you must set up Private Google Access
347
+ # or Cloud NAT on your network. If you use Private Google Access and you
348
+ # use `private.googleapis.com` or `restricted.googleapis.com` for
349
+ # Container Registry and Artifact Registry, make sure that you set
350
+ # up DNS records for domains `*.gcr.io` and `*.pkg.dev`.
351
+ # Defaults to false (VMs have public IP addresses).
352
+ # @!attribute [rw] enable_nested_virtualization
353
+ # @return [::Boolean]
354
+ # Optional. Whether to enable nested virtualization on Cloud Workstations
355
+ # VMs created under this workstation configuration.
356
+ #
357
+ # Nested virtualization lets you run virtual machine (VM) instances
358
+ # inside your workstation. Before enabling nested virtualization,
359
+ # consider the following important considerations. Cloud Workstations
360
+ # instances are subject to the [same restrictions as Compute Engine
361
+ # instances](https://cloud.google.com/compute/docs/instances/nested-virtualization/overview#restrictions):
362
+ #
363
+ # * **Organization policy**: projects, folders, or
364
+ # organizations may be restricted from creating nested VMs if the
365
+ # **Disable VM nested virtualization** constraint is enforced in
366
+ # the organization policy. For more information, see the
367
+ # Compute Engine section,
368
+ # [Checking whether nested virtualization is
369
+ # allowed](https://cloud.google.com/compute/docs/instances/nested-virtualization/managing-constraint#checking_whether_nested_virtualization_is_allowed).
370
+ # * **Performance**: nested VMs might experience a 10% or greater
371
+ # decrease in performance for workloads that are CPU-bound and
372
+ # possibly greater than a 10% decrease for workloads that are
373
+ # input/output bound.
374
+ # * **Machine Type**: nested virtualization can only be enabled on
375
+ # workstation configurations that specify a
376
+ # {::Google::Cloud::Workstations::V1::WorkstationConfig::Host::GceInstance#machine_type machine_type}
377
+ # in the N1 or N2 machine series.
378
+ # * **GPUs**: nested virtualization may not be enabled on workstation
379
+ # configurations with accelerators.
380
+ # * **Operating System**: Because
381
+ # [Container-Optimized
382
+ # OS](https://cloud.google.com/compute/docs/images/os-details#container-optimized_os_cos)
383
+ # does not support nested virtualization, when nested virtualization is
384
+ # enabled, the underlying Compute Engine VM instances boot from an
385
+ # [Ubuntu
386
+ # LTS](https://cloud.google.com/compute/docs/images/os-details#ubuntu_lts)
387
+ # image.
388
+ # @!attribute [rw] shielded_instance_config
389
+ # @return [::Google::Cloud::Workstations::V1::WorkstationConfig::Host::GceInstance::GceShieldedInstanceConfig]
390
+ # Optional. A set of Compute Engine Shielded instance options.
391
+ # @!attribute [rw] confidential_instance_config
392
+ # @return [::Google::Cloud::Workstations::V1::WorkstationConfig::Host::GceInstance::GceConfidentialInstanceConfig]
393
+ # Optional. A set of Compute Engine Confidential VM instance options.
394
+ # @!attribute [rw] boot_disk_size_gb
395
+ # @return [::Integer]
396
+ # Optional. The size of the boot disk for the VM in gigabytes (GB).
397
+ # The minimum boot disk size is `30` GB. Defaults to `50` GB.
398
+ class GceInstance
399
+ include ::Google::Protobuf::MessageExts
400
+ extend ::Google::Protobuf::MessageExts::ClassMethods
401
+
402
+ # A set of Compute Engine Shielded instance options.
403
+ # @!attribute [rw] enable_secure_boot
404
+ # @return [::Boolean]
405
+ # Optional. Whether the instance has Secure Boot enabled.
406
+ # @!attribute [rw] enable_vtpm
407
+ # @return [::Boolean]
408
+ # Optional. Whether the instance has the vTPM enabled.
409
+ # @!attribute [rw] enable_integrity_monitoring
410
+ # @return [::Boolean]
411
+ # Optional. Whether the instance has integrity monitoring enabled.
412
+ class GceShieldedInstanceConfig
413
+ include ::Google::Protobuf::MessageExts
414
+ extend ::Google::Protobuf::MessageExts::ClassMethods
415
+ end
416
+
417
+ # A set of Compute Engine Confidential VM instance options.
418
+ # @!attribute [rw] enable_confidential_compute
419
+ # @return [::Boolean]
420
+ # Optional. Whether the instance has confidential compute enabled.
421
+ class GceConfidentialInstanceConfig
422
+ include ::Google::Protobuf::MessageExts
423
+ extend ::Google::Protobuf::MessageExts::ClassMethods
424
+ end
425
+ end
426
+ end
427
+
428
+ # A directory to persist across workstation sessions.
429
+ # @!attribute [rw] gce_pd
430
+ # @return [::Google::Cloud::Workstations::V1::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk]
431
+ # A PersistentDirectory backed by a Compute Engine persistent disk.
432
+ # @!attribute [rw] mount_path
433
+ # @return [::String]
434
+ # Optional. Location of this directory in the running workstation.
435
+ class PersistentDirectory
436
+ include ::Google::Protobuf::MessageExts
437
+ extend ::Google::Protobuf::MessageExts::ClassMethods
438
+
439
+ # A PersistentDirectory backed by a Compute Engine regional persistent
440
+ # disk. The
441
+ # {::Google::Cloud::Workstations::V1::WorkstationConfig#persistent_directories persistent_directories}
442
+ # field is repeated, but it may contain only one entry. It creates a
443
+ # [persistent
444
+ # disk](https://cloud.google.com/compute/docs/disks/persistent-disks) that
445
+ # mounts to the workstation VM at `/home` when the session starts and
446
+ # detaches when the session ends. If this field is empty, workstations
447
+ # created with this configuration do not have a persistent home
448
+ # directory.
449
+ # @!attribute [rw] size_gb
450
+ # @return [::Integer]
451
+ # Optional. The GB capacity of a persistent home directory for each
452
+ # workstation created with this configuration. Must be empty if
453
+ # {::Google::Cloud::Workstations::V1::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk#source_snapshot source_snapshot}
454
+ # is set.
455
+ #
456
+ # Valid values are `10`, `50`, `100`, `200`, `500`, or `1000`.
457
+ # Defaults to `200`. If less than `200` GB, the
458
+ # {::Google::Cloud::Workstations::V1::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk#disk_type disk_type}
459
+ # must be
460
+ # `"pd-balanced"` or `"pd-ssd"`.
461
+ # @!attribute [rw] fs_type
462
+ # @return [::String]
463
+ # Optional. Type of file system that the disk should be formatted with.
464
+ # The workstation image must support this file system type. Must be empty
465
+ # if
466
+ # {::Google::Cloud::Workstations::V1::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk#source_snapshot source_snapshot}
467
+ # is set. Defaults to `"ext4"`.
468
+ # @!attribute [rw] disk_type
469
+ # @return [::String]
470
+ # Optional. The [type of the persistent
471
+ # disk](https://cloud.google.com/compute/docs/disks#disk-types) for the
472
+ # home directory. Defaults to `"pd-standard"`.
473
+ # @!attribute [rw] source_snapshot
474
+ # @return [::String]
475
+ # Optional. Name of the snapshot to use as the source for the disk. If
476
+ # set,
477
+ # {::Google::Cloud::Workstations::V1::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk#size_gb size_gb}
478
+ # and
479
+ # {::Google::Cloud::Workstations::V1::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk#fs_type fs_type}
480
+ # must be empty.
481
+ # @!attribute [rw] reclaim_policy
482
+ # @return [::Google::Cloud::Workstations::V1::WorkstationConfig::PersistentDirectory::GceRegionalPersistentDisk::ReclaimPolicy]
483
+ # Optional. Whether the persistent disk should be deleted when the
484
+ # workstation is deleted. Valid values are `DELETE` and `RETAIN`.
485
+ # Defaults to `DELETE`.
486
+ class GceRegionalPersistentDisk
487
+ include ::Google::Protobuf::MessageExts
488
+ extend ::Google::Protobuf::MessageExts::ClassMethods
489
+
490
+ # Value representing what should happen to the disk after the workstation
491
+ # is deleted.
492
+ module ReclaimPolicy
493
+ # Do not use.
494
+ RECLAIM_POLICY_UNSPECIFIED = 0
495
+
496
+ # Delete the persistent disk when deleting the workstation.
497
+ DELETE = 1
498
+
499
+ # Keep the persistent disk when deleting the workstation.
500
+ # An administrator must manually delete the disk.
501
+ RETAIN = 2
502
+ end
503
+ end
504
+ end
505
+
506
+ # A Docker container.
507
+ # @!attribute [rw] image
508
+ # @return [::String]
509
+ # Optional. A Docker container image that defines a custom environment.
510
+ #
511
+ # Cloud Workstations provides a number of
512
+ # [preconfigured
513
+ # images](https://cloud.google.com/workstations/docs/preconfigured-base-images),
514
+ # but you can create your own
515
+ # [custom container
516
+ # images](https://cloud.google.com/workstations/docs/custom-container-images).
517
+ # If using a private image, the `host.gceInstance.serviceAccount` field
518
+ # must be specified in the workstation configuration and must have
519
+ # permission to pull the specified image. Otherwise, the image must be
520
+ # publicly accessible.
521
+ # @!attribute [rw] command
522
+ # @return [::Array<::String>]
523
+ # Optional. If set, overrides the default ENTRYPOINT specified by the
524
+ # image.
525
+ # @!attribute [rw] args
526
+ # @return [::Array<::String>]
527
+ # Optional. Arguments passed to the entrypoint.
528
+ # @!attribute [rw] env
529
+ # @return [::Google::Protobuf::Map{::String => ::String}]
530
+ # Optional. Environment variables passed to the container's entrypoint.
531
+ # @!attribute [rw] working_dir
532
+ # @return [::String]
533
+ # Optional. If set, overrides the default DIR specified by the image.
534
+ # @!attribute [rw] run_as_user
535
+ # @return [::Integer]
536
+ # Optional. If set, overrides the USER specified in the image with the
537
+ # given uid.
538
+ class Container
539
+ include ::Google::Protobuf::MessageExts
540
+ extend ::Google::Protobuf::MessageExts::ClassMethods
541
+
542
+ # @!attribute [rw] key
543
+ # @return [::String]
544
+ # @!attribute [rw] value
545
+ # @return [::String]
546
+ class EnvEntry
547
+ include ::Google::Protobuf::MessageExts
548
+ extend ::Google::Protobuf::MessageExts::ClassMethods
549
+ end
550
+ end
551
+
552
+ # A customer-managed encryption key (CMEK) for the Compute Engine
553
+ # resources of the associated workstation configuration. Specify the name of
554
+ # your Cloud KMS encryption key and the default service account.
555
+ # We recommend that you use a separate service account and follow
556
+ # [Cloud KMS best
557
+ # practices](https://cloud.google.com/kms/docs/separation-of-duties).
558
+ # @!attribute [rw] kms_key
559
+ # @return [::String]
560
+ # Immutable. The name of the Google Cloud KMS encryption key. For example,
561
+ # `"projects/PROJECT_ID/locations/REGION/keyRings/KEY_RING/cryptoKeys/KEY_NAME"`.
562
+ # The key must be in the same region as the workstation configuration.
563
+ # @!attribute [rw] kms_key_service_account
564
+ # @return [::String]
565
+ # Immutable. The service account to use with the specified
566
+ # KMS key. We recommend that you use a separate service account
567
+ # and follow KMS best practices. For more information, see
568
+ # [Separation of
569
+ # duties](https://cloud.google.com/kms/docs/separation-of-duties) and
570
+ # `gcloud kms keys add-iam-policy-binding`
571
+ # [`--member`](https://cloud.google.com/sdk/gcloud/reference/kms/keys/add-iam-policy-binding#--member).
572
+ class CustomerEncryptionKey
573
+ include ::Google::Protobuf::MessageExts
574
+ extend ::Google::Protobuf::MessageExts::ClassMethods
575
+ end
576
+
577
+ # A readiness check to be performed on a workstation.
578
+ # @!attribute [rw] path
579
+ # @return [::String]
580
+ # Optional. Path to which the request should be sent.
581
+ # @!attribute [rw] port
582
+ # @return [::Integer]
583
+ # Optional. Port to which the request should be sent.
584
+ class ReadinessCheck
585
+ include ::Google::Protobuf::MessageExts
586
+ extend ::Google::Protobuf::MessageExts::ClassMethods
587
+ end
588
+
589
+ # @!attribute [rw] key
590
+ # @return [::String]
591
+ # @!attribute [rw] value
592
+ # @return [::String]
593
+ class AnnotationsEntry
594
+ include ::Google::Protobuf::MessageExts
595
+ extend ::Google::Protobuf::MessageExts::ClassMethods
596
+ end
597
+
598
+ # @!attribute [rw] key
599
+ # @return [::String]
600
+ # @!attribute [rw] value
601
+ # @return [::String]
602
+ class LabelsEntry
603
+ include ::Google::Protobuf::MessageExts
604
+ extend ::Google::Protobuf::MessageExts::ClassMethods
605
+ end
606
+ end
607
+
608
+ # A single instance of a developer workstation with its own persistent storage.
609
+ # @!attribute [rw] name
610
+ # @return [::String]
611
+ # Full name of this workstation.
612
+ # @!attribute [rw] display_name
613
+ # @return [::String]
614
+ # Optional. Human-readable name for this workstation.
615
+ # @!attribute [r] uid
616
+ # @return [::String]
617
+ # Output only. A system-assigned unique identifier for this workstation.
618
+ # @!attribute [r] reconciling
619
+ # @return [::Boolean]
620
+ # Output only. Indicates whether this workstation is currently being updated
621
+ # to match its intended state.
622
+ # @!attribute [rw] annotations
623
+ # @return [::Google::Protobuf::Map{::String => ::String}]
624
+ # Optional. Client-specified annotations.
625
+ # @!attribute [rw] labels
626
+ # @return [::Google::Protobuf::Map{::String => ::String}]
627
+ # Optional.
628
+ # [Labels](https://cloud.google.com/workstations/docs/label-resources) that
629
+ # are applied to the workstation and that are also propagated to the
630
+ # underlying Compute Engine resources.
631
+ # @!attribute [r] create_time
632
+ # @return [::Google::Protobuf::Timestamp]
633
+ # Output only. Time when this workstation was created.
634
+ # @!attribute [r] update_time
635
+ # @return [::Google::Protobuf::Timestamp]
636
+ # Output only. Time when this workstation was most recently updated.
637
+ # @!attribute [r] start_time
638
+ # @return [::Google::Protobuf::Timestamp]
639
+ # Output only. Time when this workstation was most recently successfully
640
+ # started, regardless of the workstation's initial state.
641
+ # @!attribute [r] delete_time
642
+ # @return [::Google::Protobuf::Timestamp]
643
+ # Output only. Time when this workstation was soft-deleted.
644
+ # @!attribute [rw] etag
645
+ # @return [::String]
646
+ # Optional. Checksum computed by the server. May be sent on update and delete
647
+ # requests to make sure that the client has an up-to-date value before
648
+ # proceeding.
649
+ # @!attribute [r] state
650
+ # @return [::Google::Cloud::Workstations::V1::Workstation::State]
651
+ # Output only. Current state of the workstation.
652
+ # @!attribute [r] host
653
+ # @return [::String]
654
+ # Output only. Host to which clients can send HTTPS traffic that will be
655
+ # received by the workstation. Authorized traffic will be received to the
656
+ # workstation as HTTP on port 80. To send traffic to a different port,
657
+ # clients may prefix the host with the destination port in the format
658
+ # `{port}-{host}`.
659
+ class Workstation
660
+ include ::Google::Protobuf::MessageExts
661
+ extend ::Google::Protobuf::MessageExts::ClassMethods
662
+
663
+ # @!attribute [rw] key
664
+ # @return [::String]
665
+ # @!attribute [rw] value
666
+ # @return [::String]
667
+ class AnnotationsEntry
668
+ include ::Google::Protobuf::MessageExts
669
+ extend ::Google::Protobuf::MessageExts::ClassMethods
670
+ end
671
+
672
+ # @!attribute [rw] key
673
+ # @return [::String]
674
+ # @!attribute [rw] value
675
+ # @return [::String]
676
+ class LabelsEntry
677
+ include ::Google::Protobuf::MessageExts
678
+ extend ::Google::Protobuf::MessageExts::ClassMethods
679
+ end
680
+
681
+ # Whether a workstation is running and ready to receive user requests.
682
+ module State
683
+ # Do not use.
684
+ STATE_UNSPECIFIED = 0
685
+
686
+ # The workstation is not yet ready to accept requests from users but will
687
+ # be soon.
688
+ STATE_STARTING = 1
689
+
690
+ # The workstation is ready to accept requests from users.
691
+ STATE_RUNNING = 2
692
+
693
+ # The workstation is being stopped.
694
+ STATE_STOPPING = 3
695
+
696
+ # The workstation is stopped and will not be able to receive requests until
697
+ # it is started.
698
+ STATE_STOPPED = 4
699
+ end
700
+ end
701
+
702
+ # Request message for GetWorkstationCluster.
703
+ # @!attribute [rw] name
704
+ # @return [::String]
705
+ # Required. Name of the requested resource.
706
+ class GetWorkstationClusterRequest
707
+ include ::Google::Protobuf::MessageExts
708
+ extend ::Google::Protobuf::MessageExts::ClassMethods
709
+ end
710
+
711
+ # Request message for ListWorkstationClusters.
712
+ # @!attribute [rw] parent
713
+ # @return [::String]
714
+ # Required. Parent resource name.
715
+ # @!attribute [rw] page_size
716
+ # @return [::Integer]
717
+ # Optional. Maximum number of items to return.
718
+ # @!attribute [rw] page_token
719
+ # @return [::String]
720
+ # Optional. next_page_token value returned from a previous List request, if
721
+ # any.
722
+ class ListWorkstationClustersRequest
723
+ include ::Google::Protobuf::MessageExts
724
+ extend ::Google::Protobuf::MessageExts::ClassMethods
725
+ end
726
+
727
+ # Response message for ListWorkstationClusters.
728
+ # @!attribute [rw] workstation_clusters
729
+ # @return [::Array<::Google::Cloud::Workstations::V1::WorkstationCluster>]
730
+ # The requested workstation clusters.
731
+ # @!attribute [rw] next_page_token
732
+ # @return [::String]
733
+ # Token to retrieve the next page of results, or empty if there are no more
734
+ # results in the list.
735
+ # @!attribute [rw] unreachable
736
+ # @return [::Array<::String>]
737
+ # Unreachable resources.
738
+ class ListWorkstationClustersResponse
739
+ include ::Google::Protobuf::MessageExts
740
+ extend ::Google::Protobuf::MessageExts::ClassMethods
741
+ end
742
+
743
+ # Message for creating a CreateWorkstationCluster.
744
+ # @!attribute [rw] parent
745
+ # @return [::String]
746
+ # Required. Parent resource name.
747
+ # @!attribute [rw] workstation_cluster_id
748
+ # @return [::String]
749
+ # Required. ID to use for the workstation cluster.
750
+ # @!attribute [rw] workstation_cluster
751
+ # @return [::Google::Cloud::Workstations::V1::WorkstationCluster]
752
+ # Required. Workstation cluster to create.
753
+ # @!attribute [rw] validate_only
754
+ # @return [::Boolean]
755
+ # Optional. If set, validate the request and preview the review, but do not
756
+ # actually apply it.
757
+ class CreateWorkstationClusterRequest
758
+ include ::Google::Protobuf::MessageExts
759
+ extend ::Google::Protobuf::MessageExts::ClassMethods
760
+ end
761
+
762
+ # Request message for UpdateWorkstationCluster.
763
+ # @!attribute [rw] workstation_cluster
764
+ # @return [::Google::Cloud::Workstations::V1::WorkstationCluster]
765
+ # Required. Workstation cluster to update.
766
+ # @!attribute [rw] update_mask
767
+ # @return [::Google::Protobuf::FieldMask]
768
+ # Required. Mask that specifies which fields in the workstation cluster
769
+ # should be updated.
770
+ # @!attribute [rw] validate_only
771
+ # @return [::Boolean]
772
+ # Optional. If set, validate the request and preview the review, but do not
773
+ # actually apply it.
774
+ # @!attribute [rw] allow_missing
775
+ # @return [::Boolean]
776
+ # Optional. If set, and the workstation cluster is not found, a new
777
+ # workstation cluster will be created. In this situation, update_mask is
778
+ # ignored.
779
+ class UpdateWorkstationClusterRequest
780
+ include ::Google::Protobuf::MessageExts
781
+ extend ::Google::Protobuf::MessageExts::ClassMethods
782
+ end
783
+
784
+ # Message for deleting a workstation cluster.
785
+ # @!attribute [rw] name
786
+ # @return [::String]
787
+ # Required. Name of the workstation cluster to delete.
788
+ # @!attribute [rw] validate_only
789
+ # @return [::Boolean]
790
+ # Optional. If set, validate the request and preview the review, but do not
791
+ # apply it.
792
+ # @!attribute [rw] etag
793
+ # @return [::String]
794
+ # Optional. If set, the request will be rejected if the latest version of the
795
+ # workstation cluster on the server does not have this ETag.
796
+ # @!attribute [rw] force
797
+ # @return [::Boolean]
798
+ # Optional. If set, any workstation configurations and workstations in the
799
+ # workstation cluster are also deleted. Otherwise, the request only
800
+ # works if the workstation cluster has no configurations or workstations.
801
+ class DeleteWorkstationClusterRequest
802
+ include ::Google::Protobuf::MessageExts
803
+ extend ::Google::Protobuf::MessageExts::ClassMethods
804
+ end
805
+
806
+ # Request message for GetWorkstationConfig.
807
+ # @!attribute [rw] name
808
+ # @return [::String]
809
+ # Required. Name of the requested resource.
810
+ class GetWorkstationConfigRequest
811
+ include ::Google::Protobuf::MessageExts
812
+ extend ::Google::Protobuf::MessageExts::ClassMethods
813
+ end
814
+
815
+ # Request message for ListWorkstationConfigs.
816
+ # @!attribute [rw] parent
817
+ # @return [::String]
818
+ # Required. Parent resource name.
819
+ # @!attribute [rw] page_size
820
+ # @return [::Integer]
821
+ # Optional. Maximum number of items to return.
822
+ # @!attribute [rw] page_token
823
+ # @return [::String]
824
+ # Optional. next_page_token value returned from a previous List request, if
825
+ # any.
826
+ class ListWorkstationConfigsRequest
827
+ include ::Google::Protobuf::MessageExts
828
+ extend ::Google::Protobuf::MessageExts::ClassMethods
829
+ end
830
+
831
+ # Response message for ListWorkstationConfigs.
832
+ # @!attribute [rw] workstation_configs
833
+ # @return [::Array<::Google::Cloud::Workstations::V1::WorkstationConfig>]
834
+ # The requested configs.
835
+ # @!attribute [rw] next_page_token
836
+ # @return [::String]
837
+ # Token to retrieve the next page of results, or empty if there are no more
838
+ # results in the list.
839
+ # @!attribute [rw] unreachable
840
+ # @return [::Array<::String>]
841
+ # Unreachable resources.
842
+ class ListWorkstationConfigsResponse
843
+ include ::Google::Protobuf::MessageExts
844
+ extend ::Google::Protobuf::MessageExts::ClassMethods
845
+ end
846
+
847
+ # Request message for ListUsableWorkstationConfigs.
848
+ # @!attribute [rw] parent
849
+ # @return [::String]
850
+ # Required. Parent resource name.
851
+ # @!attribute [rw] page_size
852
+ # @return [::Integer]
853
+ # Optional. Maximum number of items to return.
854
+ # @!attribute [rw] page_token
855
+ # @return [::String]
856
+ # Optional. next_page_token value returned from a previous List request, if
857
+ # any.
858
+ class ListUsableWorkstationConfigsRequest
859
+ include ::Google::Protobuf::MessageExts
860
+ extend ::Google::Protobuf::MessageExts::ClassMethods
861
+ end
862
+
863
+ # Response message for ListUsableWorkstationConfigs.
864
+ # @!attribute [rw] workstation_configs
865
+ # @return [::Array<::Google::Cloud::Workstations::V1::WorkstationConfig>]
866
+ # The requested configs.
867
+ # @!attribute [rw] next_page_token
868
+ # @return [::String]
869
+ # Token to retrieve the next page of results, or empty if there are no more
870
+ # results in the list.
871
+ # @!attribute [rw] unreachable
872
+ # @return [::Array<::String>]
873
+ # Unreachable resources.
874
+ class ListUsableWorkstationConfigsResponse
875
+ include ::Google::Protobuf::MessageExts
876
+ extend ::Google::Protobuf::MessageExts::ClassMethods
877
+ end
878
+
879
+ # Message for creating a CreateWorkstationConfig.
880
+ # @!attribute [rw] parent
881
+ # @return [::String]
882
+ # Required. Parent resource name.
883
+ # @!attribute [rw] workstation_config_id
884
+ # @return [::String]
885
+ # Required. ID to use for the workstation configuration.
886
+ # @!attribute [rw] workstation_config
887
+ # @return [::Google::Cloud::Workstations::V1::WorkstationConfig]
888
+ # Required. Config to create.
889
+ # @!attribute [rw] validate_only
890
+ # @return [::Boolean]
891
+ # Optional. If set, validate the request and preview the review, but do not
892
+ # actually apply it.
893
+ class CreateWorkstationConfigRequest
894
+ include ::Google::Protobuf::MessageExts
895
+ extend ::Google::Protobuf::MessageExts::ClassMethods
896
+ end
897
+
898
+ # Request message for UpdateWorkstationConfig.
899
+ # @!attribute [rw] workstation_config
900
+ # @return [::Google::Cloud::Workstations::V1::WorkstationConfig]
901
+ # Required. Config to update.
902
+ # @!attribute [rw] update_mask
903
+ # @return [::Google::Protobuf::FieldMask]
904
+ # Required. Mask specifying which fields in the workstation configuration
905
+ # should be updated.
906
+ # @!attribute [rw] validate_only
907
+ # @return [::Boolean]
908
+ # Optional. If set, validate the request and preview the review, but do not
909
+ # actually apply it.
910
+ # @!attribute [rw] allow_missing
911
+ # @return [::Boolean]
912
+ # Optional. If set and the workstation configuration is not found, a new
913
+ # workstation configuration will be created. In this situation,
914
+ # update_mask is ignored.
915
+ class UpdateWorkstationConfigRequest
916
+ include ::Google::Protobuf::MessageExts
917
+ extend ::Google::Protobuf::MessageExts::ClassMethods
918
+ end
919
+
920
+ # Message for deleting a workstation configuration.
921
+ # @!attribute [rw] name
922
+ # @return [::String]
923
+ # Required. Name of the workstation configuration to delete.
924
+ # @!attribute [rw] validate_only
925
+ # @return [::Boolean]
926
+ # Optional. If set, validate the request and preview the review, but do not
927
+ # actually apply it.
928
+ # @!attribute [rw] etag
929
+ # @return [::String]
930
+ # Optional. If set, the request is rejected if the latest version of the
931
+ # workstation configuration on the server does not have this ETag.
932
+ # @!attribute [rw] force
933
+ # @return [::Boolean]
934
+ # Optional. If set, any workstations in the workstation configuration are
935
+ # also deleted. Otherwise, the request works only if the workstation
936
+ # configuration has no workstations.
937
+ class DeleteWorkstationConfigRequest
938
+ include ::Google::Protobuf::MessageExts
939
+ extend ::Google::Protobuf::MessageExts::ClassMethods
940
+ end
941
+
942
+ # Request message for GetWorkstation.
943
+ # @!attribute [rw] name
944
+ # @return [::String]
945
+ # Required. Name of the requested resource.
946
+ class GetWorkstationRequest
947
+ include ::Google::Protobuf::MessageExts
948
+ extend ::Google::Protobuf::MessageExts::ClassMethods
949
+ end
950
+
951
+ # Request message for ListWorkstations.
952
+ # @!attribute [rw] parent
953
+ # @return [::String]
954
+ # Required. Parent resource name.
955
+ # @!attribute [rw] page_size
956
+ # @return [::Integer]
957
+ # Optional. Maximum number of items to return.
958
+ # @!attribute [rw] page_token
959
+ # @return [::String]
960
+ # Optional. next_page_token value returned from a previous List request, if
961
+ # any.
962
+ class ListWorkstationsRequest
963
+ include ::Google::Protobuf::MessageExts
964
+ extend ::Google::Protobuf::MessageExts::ClassMethods
965
+ end
966
+
967
+ # Response message for ListWorkstations.
968
+ # @!attribute [rw] workstations
969
+ # @return [::Array<::Google::Cloud::Workstations::V1::Workstation>]
970
+ # The requested workstations.
971
+ # @!attribute [rw] next_page_token
972
+ # @return [::String]
973
+ # Optional. Token to retrieve the next page of results, or empty if there are
974
+ # no more results in the list.
975
+ # @!attribute [rw] unreachable
976
+ # @return [::Array<::String>]
977
+ # Optional. Unreachable resources.
978
+ class ListWorkstationsResponse
979
+ include ::Google::Protobuf::MessageExts
980
+ extend ::Google::Protobuf::MessageExts::ClassMethods
981
+ end
982
+
983
+ # Request message for ListUsableWorkstations.
984
+ # @!attribute [rw] parent
985
+ # @return [::String]
986
+ # Required. Parent resource name.
987
+ # @!attribute [rw] page_size
988
+ # @return [::Integer]
989
+ # Optional. Maximum number of items to return.
990
+ # @!attribute [rw] page_token
991
+ # @return [::String]
992
+ # Optional. next_page_token value returned from a previous List request, if
993
+ # any.
994
+ class ListUsableWorkstationsRequest
995
+ include ::Google::Protobuf::MessageExts
996
+ extend ::Google::Protobuf::MessageExts::ClassMethods
997
+ end
998
+
999
+ # Response message for ListUsableWorkstations.
1000
+ # @!attribute [rw] workstations
1001
+ # @return [::Array<::Google::Cloud::Workstations::V1::Workstation>]
1002
+ # The requested workstations.
1003
+ # @!attribute [rw] next_page_token
1004
+ # @return [::String]
1005
+ # Token to retrieve the next page of results, or empty if there are no more
1006
+ # results in the list.
1007
+ # @!attribute [rw] unreachable
1008
+ # @return [::Array<::String>]
1009
+ # Unreachable resources.
1010
+ class ListUsableWorkstationsResponse
1011
+ include ::Google::Protobuf::MessageExts
1012
+ extend ::Google::Protobuf::MessageExts::ClassMethods
1013
+ end
1014
+
1015
+ # Message for creating a CreateWorkstation.
1016
+ # @!attribute [rw] parent
1017
+ # @return [::String]
1018
+ # Required. Parent resource name.
1019
+ # @!attribute [rw] workstation_id
1020
+ # @return [::String]
1021
+ # Required. ID to use for the workstation.
1022
+ # @!attribute [rw] workstation
1023
+ # @return [::Google::Cloud::Workstations::V1::Workstation]
1024
+ # Required. Workstation to create.
1025
+ # @!attribute [rw] validate_only
1026
+ # @return [::Boolean]
1027
+ # Optional. If set, validate the request and preview the review, but do not
1028
+ # actually apply it.
1029
+ class CreateWorkstationRequest
1030
+ include ::Google::Protobuf::MessageExts
1031
+ extend ::Google::Protobuf::MessageExts::ClassMethods
1032
+ end
1033
+
1034
+ # Request message for UpdateWorkstation.
1035
+ # @!attribute [rw] workstation
1036
+ # @return [::Google::Cloud::Workstations::V1::Workstation]
1037
+ # Required. Workstation to update.
1038
+ # @!attribute [rw] update_mask
1039
+ # @return [::Google::Protobuf::FieldMask]
1040
+ # Required. Mask specifying which fields in the workstation configuration
1041
+ # should be updated.
1042
+ # @!attribute [rw] validate_only
1043
+ # @return [::Boolean]
1044
+ # Optional. If set, validate the request and preview the review, but do not
1045
+ # actually apply it.
1046
+ # @!attribute [rw] allow_missing
1047
+ # @return [::Boolean]
1048
+ # Optional. If set and the workstation configuration is not found, a new
1049
+ # workstation configuration is created. In this situation, update_mask
1050
+ # is ignored.
1051
+ class UpdateWorkstationRequest
1052
+ include ::Google::Protobuf::MessageExts
1053
+ extend ::Google::Protobuf::MessageExts::ClassMethods
1054
+ end
1055
+
1056
+ # Request message for DeleteWorkstation.
1057
+ # @!attribute [rw] name
1058
+ # @return [::String]
1059
+ # Required. Name of the workstation to delete.
1060
+ # @!attribute [rw] validate_only
1061
+ # @return [::Boolean]
1062
+ # Optional. If set, validate the request and preview the review, but do not
1063
+ # actually apply it.
1064
+ # @!attribute [rw] etag
1065
+ # @return [::String]
1066
+ # Optional. If set, the request will be rejected if the latest version of the
1067
+ # workstation on the server does not have this ETag.
1068
+ class DeleteWorkstationRequest
1069
+ include ::Google::Protobuf::MessageExts
1070
+ extend ::Google::Protobuf::MessageExts::ClassMethods
1071
+ end
1072
+
1073
+ # Request message for StartWorkstation.
1074
+ # @!attribute [rw] name
1075
+ # @return [::String]
1076
+ # Required. Name of the workstation to start.
1077
+ # @!attribute [rw] validate_only
1078
+ # @return [::Boolean]
1079
+ # Optional. If set, validate the request and preview the review, but do not
1080
+ # actually apply it.
1081
+ # @!attribute [rw] etag
1082
+ # @return [::String]
1083
+ # Optional. If set, the request will be rejected if the latest version of the
1084
+ # workstation on the server does not have this ETag.
1085
+ class StartWorkstationRequest
1086
+ include ::Google::Protobuf::MessageExts
1087
+ extend ::Google::Protobuf::MessageExts::ClassMethods
1088
+ end
1089
+
1090
+ # Request message for StopWorkstation.
1091
+ # @!attribute [rw] name
1092
+ # @return [::String]
1093
+ # Required. Name of the workstation to stop.
1094
+ # @!attribute [rw] validate_only
1095
+ # @return [::Boolean]
1096
+ # Optional. If set, validate the request and preview the review, but do not
1097
+ # actually apply it.
1098
+ # @!attribute [rw] etag
1099
+ # @return [::String]
1100
+ # Optional. If set, the request will be rejected if the latest version of the
1101
+ # workstation on the server does not have this ETag.
1102
+ class StopWorkstationRequest
1103
+ include ::Google::Protobuf::MessageExts
1104
+ extend ::Google::Protobuf::MessageExts::ClassMethods
1105
+ end
1106
+
1107
+ # Request message for GenerateAccessToken.
1108
+ # @!attribute [rw] expire_time
1109
+ # @return [::Google::Protobuf::Timestamp]
1110
+ # Desired expiration time of the access token. This value must
1111
+ # be at most 24 hours in the future. If a value is not specified, the
1112
+ # token's expiration time will be set to a default value of 1 hour in the
1113
+ # future.
1114
+ # @!attribute [rw] ttl
1115
+ # @return [::Google::Protobuf::Duration]
1116
+ # Desired lifetime duration of the access token. This value must
1117
+ # be at most 24 hours. If a value is not specified, the token's lifetime
1118
+ # will be set to a default value of 1 hour.
1119
+ # @!attribute [rw] workstation
1120
+ # @return [::String]
1121
+ # Required. Name of the workstation for which the access token should be
1122
+ # generated.
1123
+ class GenerateAccessTokenRequest
1124
+ include ::Google::Protobuf::MessageExts
1125
+ extend ::Google::Protobuf::MessageExts::ClassMethods
1126
+ end
1127
+
1128
+ # Response message for GenerateAccessToken.
1129
+ # @!attribute [rw] access_token
1130
+ # @return [::String]
1131
+ # The generated bearer access token. To use this token, include it in an
1132
+ # Authorization header of an HTTP request sent to the associated
1133
+ # workstation's hostname—for example, `Authorization: Bearer
1134
+ # <access_token>`.
1135
+ # @!attribute [rw] expire_time
1136
+ # @return [::Google::Protobuf::Timestamp]
1137
+ # Time at which the generated token will expire.
1138
+ class GenerateAccessTokenResponse
1139
+ include ::Google::Protobuf::MessageExts
1140
+ extend ::Google::Protobuf::MessageExts::ClassMethods
1141
+ end
1142
+
1143
+ # Metadata for long-running operations.
1144
+ # @!attribute [r] create_time
1145
+ # @return [::Google::Protobuf::Timestamp]
1146
+ # Output only. Time that the operation was created.
1147
+ # @!attribute [r] end_time
1148
+ # @return [::Google::Protobuf::Timestamp]
1149
+ # Output only. Time that the operation finished running.
1150
+ # @!attribute [r] target
1151
+ # @return [::String]
1152
+ # Output only. Server-defined resource path for the target of the operation.
1153
+ # @!attribute [r] verb
1154
+ # @return [::String]
1155
+ # Output only. Name of the verb executed by the operation.
1156
+ # @!attribute [r] status_message
1157
+ # @return [::String]
1158
+ # Output only. Human-readable status of the operation, if any.
1159
+ # @!attribute [r] requested_cancellation
1160
+ # @return [::Boolean]
1161
+ # Output only. Identifies whether the user has requested cancellation
1162
+ # of the operation.
1163
+ # @!attribute [r] api_version
1164
+ # @return [::String]
1165
+ # Output only. API version used to start the operation.
1166
+ class OperationMetadata
1167
+ include ::Google::Protobuf::MessageExts
1168
+ extend ::Google::Protobuf::MessageExts::ClassMethods
1169
+ end
1170
+ end
1171
+ end
1172
+ end
1173
+ end