google-cloud-workstations-v1 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/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