google-cloud-life_sciences-v2beta 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,854 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Copyright 2021 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 LifeSciences
23
+ module V2beta
24
+ # The arguments to the `RunPipeline` method. The requesting user must have
25
+ # the `iam.serviceAccounts.actAs` permission for the Cloud Life Sciences
26
+ # service account or the request will fail.
27
+ # @!attribute [rw] parent
28
+ # @return [::String]
29
+ # The project and location that this request should be executed against.
30
+ # @!attribute [rw] pipeline
31
+ # @return [::Google::Cloud::LifeSciences::V2beta::Pipeline]
32
+ # Required. The description of the pipeline to run.
33
+ # @!attribute [rw] labels
34
+ # @return [::Google::Protobuf::Map{::String => ::String}]
35
+ # User-defined labels to associate with the returned operation. These
36
+ # labels are not propagated to any Google Cloud Platform resources used by
37
+ # the operation, and can be modified at any time.
38
+ #
39
+ # To associate labels with resources created while executing the operation,
40
+ # see the appropriate resource message (for example, `VirtualMachine`).
41
+ # @!attribute [rw] pub_sub_topic
42
+ # @return [::String]
43
+ # The name of an existing Pub/Sub topic. The server will publish
44
+ # messages to this topic whenever the status of the operation changes.
45
+ # The Life Sciences Service Agent account must have publisher permissions to
46
+ # the specified topic or notifications will not be sent.
47
+ class RunPipelineRequest
48
+ include ::Google::Protobuf::MessageExts
49
+ extend ::Google::Protobuf::MessageExts::ClassMethods
50
+
51
+ # @!attribute [rw] key
52
+ # @return [::String]
53
+ # @!attribute [rw] value
54
+ # @return [::String]
55
+ class LabelsEntry
56
+ include ::Google::Protobuf::MessageExts
57
+ extend ::Google::Protobuf::MessageExts::ClassMethods
58
+ end
59
+ end
60
+
61
+ # The response to the RunPipeline method, returned in the operation's result
62
+ # field on success.
63
+ class RunPipelineResponse
64
+ include ::Google::Protobuf::MessageExts
65
+ extend ::Google::Protobuf::MessageExts::ClassMethods
66
+ end
67
+
68
+ # Specifies a series of actions to execute, expressed as Docker containers.
69
+ # @!attribute [rw] actions
70
+ # @return [::Array<::Google::Cloud::LifeSciences::V2beta::Action>]
71
+ # The list of actions to execute, in the order they are specified.
72
+ # @!attribute [rw] resources
73
+ # @return [::Google::Cloud::LifeSciences::V2beta::Resources]
74
+ # The resources required for execution.
75
+ # @!attribute [rw] environment
76
+ # @return [::Google::Protobuf::Map{::String => ::String}]
77
+ # The environment to pass into every action. Each action can also specify
78
+ # additional environment variables but cannot delete an entry from this map
79
+ # (though they can overwrite it with a different value).
80
+ # @!attribute [rw] timeout
81
+ # @return [::Google::Protobuf::Duration]
82
+ # The maximum amount of time to give the pipeline to complete. This includes
83
+ # the time spent waiting for a worker to be allocated. If the pipeline fails
84
+ # to complete before the timeout, it will be cancelled and the error code
85
+ # will be set to DEADLINE_EXCEEDED.
86
+ #
87
+ # If unspecified, it will default to 7 days.
88
+ class Pipeline
89
+ include ::Google::Protobuf::MessageExts
90
+ extend ::Google::Protobuf::MessageExts::ClassMethods
91
+
92
+ # @!attribute [rw] key
93
+ # @return [::String]
94
+ # @!attribute [rw] value
95
+ # @return [::String]
96
+ class EnvironmentEntry
97
+ include ::Google::Protobuf::MessageExts
98
+ extend ::Google::Protobuf::MessageExts::ClassMethods
99
+ end
100
+ end
101
+
102
+ # Specifies a single action that runs a Docker container.
103
+ # @!attribute [rw] container_name
104
+ # @return [::String]
105
+ # An optional name for the container. The container hostname will be set to
106
+ # this name, making it useful for inter-container communication. The name
107
+ # must contain only upper and lowercase alphanumeric characters and hyphens
108
+ # and cannot start with a hyphen.
109
+ # @!attribute [rw] image_uri
110
+ # @return [::String]
111
+ # Required. The URI to pull the container image from. Note that all images referenced
112
+ # by actions in the pipeline are pulled before the first action runs. If
113
+ # multiple actions reference the same image, it is only pulled once,
114
+ # ensuring that the same image is used for all actions in a single pipeline.
115
+ #
116
+ # The image URI can be either a complete host and image specification (e.g.,
117
+ # quay.io/biocontainers/samtools), a library and image name (e.g.,
118
+ # google/cloud-sdk) or a bare image name ('bash') to pull from the default
119
+ # library. No schema is required in any of these cases.
120
+ #
121
+ # If the specified image is not public, the service account specified for
122
+ # the Virtual Machine must have access to pull the images from GCR, or
123
+ # appropriate credentials must be specified in the
124
+ # {::Google::Cloud::LifeSciences::V2beta::Action#credentials google.cloud.lifesciences.v2beta.Action.credentials} field.
125
+ # @!attribute [rw] commands
126
+ # @return [::Array<::String>]
127
+ # If specified, overrides the `CMD` specified in the container. If the
128
+ # container also has an `ENTRYPOINT` the values are used as entrypoint
129
+ # arguments. Otherwise, they are used as a command and arguments to run
130
+ # inside the container.
131
+ # @!attribute [rw] entrypoint
132
+ # @return [::String]
133
+ # If specified, overrides the `ENTRYPOINT` specified in the container.
134
+ # @!attribute [rw] environment
135
+ # @return [::Google::Protobuf::Map{::String => ::String}]
136
+ # The environment to pass into the container. This environment is merged
137
+ # with values specified in the {::Google::Cloud::LifeSciences::V2beta::Pipeline google.cloud.lifesciences.v2beta.Pipeline}
138
+ # message, overwriting any duplicate values.
139
+ #
140
+ # In addition to the values passed here, a few other values are
141
+ # automatically injected into the environment. These cannot be hidden or
142
+ # overwritten.
143
+ #
144
+ # `GOOGLE_PIPELINE_FAILED` will be set to "1" if the pipeline failed
145
+ # because an action has exited with a non-zero status (and did not have the
146
+ # `IGNORE_EXIT_STATUS` flag set). This can be used to determine if additional
147
+ # debug or logging actions should execute.
148
+ #
149
+ # `GOOGLE_LAST_EXIT_STATUS` will be set to the exit status of the last
150
+ # non-background action that executed. This can be used by workflow engine
151
+ # authors to determine whether an individual action has succeeded or failed.
152
+ # @!attribute [rw] pid_namespace
153
+ # @return [::String]
154
+ # An optional identifier for a PID namespace to run the action inside.
155
+ # Multiple actions should use the same string to share a namespace. If
156
+ # unspecified, a separate isolated namespace is used.
157
+ # @!attribute [rw] port_mappings
158
+ # @return [::Google::Protobuf::Map{::Integer => ::Integer}]
159
+ # A map of containers to host port mappings for this container. If the
160
+ # container already specifies exposed ports, use the
161
+ # `PUBLISH_EXPOSED_PORTS` flag instead.
162
+ #
163
+ # The host port number must be less than 65536. If it is zero, an unused
164
+ # random port is assigned. To determine the resulting port number, consult
165
+ # the `ContainerStartedEvent` in the operation metadata.
166
+ # @!attribute [rw] mounts
167
+ # @return [::Array<::Google::Cloud::LifeSciences::V2beta::Mount>]
168
+ # A list of mounts to make available to the action.
169
+ #
170
+ # In addition to the values specified here, every action has a special
171
+ # virtual disk mounted under `/google` that contains log files and other
172
+ # operational components.
173
+ #
174
+ # <ul>
175
+ # <li><code>/google/logs</code> All logs written during the pipeline
176
+ # execution.</li>
177
+ # <li><code>/google/logs/output</code> The combined standard output and
178
+ # standard error of all actions run as part of the pipeline
179
+ # execution.</li>
180
+ # <li><code>/google/logs/action/*/stdout</code> The complete contents of
181
+ # each individual action's standard output.</li>
182
+ # <li><code>/google/logs/action/*/stderr</code> The complete contents of
183
+ # each individual action's standard error output.</li>
184
+ # </ul>
185
+ # @!attribute [rw] labels
186
+ # @return [::Google::Protobuf::Map{::String => ::String}]
187
+ # Labels to associate with the action. This field is provided to assist
188
+ # workflow engine authors in identifying actions (for example, to indicate
189
+ # what sort of action they perform, such as localization or debugging).
190
+ # They are returned in the operation metadata, but are otherwise ignored.
191
+ # @!attribute [rw] credentials
192
+ # @return [::Google::Cloud::LifeSciences::V2beta::Secret]
193
+ # If the specified image is hosted on a private registry other than Google
194
+ # Container Registry, the credentials required to pull the image must be
195
+ # specified here as an encrypted secret.
196
+ #
197
+ # The secret must decrypt to a JSON-encoded dictionary containing both
198
+ # `username` and `password` keys.
199
+ # @!attribute [rw] timeout
200
+ # @return [::Google::Protobuf::Duration]
201
+ # The maximum amount of time to give the action to complete. If the action
202
+ # fails to complete before the timeout, it will be terminated and the exit
203
+ # status will be non-zero. The pipeline will continue or terminate based
204
+ # on the rules defined by the `ALWAYS_RUN` and `IGNORE_EXIT_STATUS` flags.
205
+ # @!attribute [rw] ignore_exit_status
206
+ # @return [::Boolean]
207
+ # Normally, a non-zero exit status causes the pipeline to fail. This flag
208
+ # allows execution of other actions to continue instead.
209
+ # @!attribute [rw] run_in_background
210
+ # @return [::Boolean]
211
+ # This flag allows an action to continue running in the background while
212
+ # executing subsequent actions. This is useful to provide services to
213
+ # other actions (or to provide debugging support tools like SSH servers).
214
+ # @!attribute [rw] always_run
215
+ # @return [::Boolean]
216
+ # By default, after an action fails, no further actions are run. This flag
217
+ # indicates that this action must be run even if the pipeline has already
218
+ # failed. This is useful for actions that copy output files off of the VM
219
+ # or for debugging. Note that no actions will be run if image prefetching
220
+ # fails.
221
+ # @!attribute [rw] enable_fuse
222
+ # @return [::Boolean]
223
+ # Enable access to the FUSE device for this action. Filesystems can then
224
+ # be mounted into disks shared with other actions. The other actions do
225
+ # not need the `enable_fuse` flag to access the mounted filesystem.
226
+ #
227
+ # This has the effect of causing the container to be executed with
228
+ # `CAP_SYS_ADMIN` and exposes `/dev/fuse` to the container, so use it only
229
+ # for containers you trust.
230
+ # @!attribute [rw] publish_exposed_ports
231
+ # @return [::Boolean]
232
+ # Exposes all ports specified by `EXPOSE` statements in the container. To
233
+ # discover the host side port numbers, consult the `ACTION_STARTED` event
234
+ # in the operation metadata.
235
+ # @!attribute [rw] disable_image_prefetch
236
+ # @return [::Boolean]
237
+ # All container images are typically downloaded before any actions are
238
+ # executed. This helps prevent typos in URIs or issues like lack of disk
239
+ # space from wasting large amounts of compute resources.
240
+ #
241
+ # If set, this flag prevents the worker from downloading the image until
242
+ # just before the action is executed.
243
+ # @!attribute [rw] disable_standard_error_capture
244
+ # @return [::Boolean]
245
+ # A small portion of the container's standard error stream is typically
246
+ # captured and returned inside the `ContainerStoppedEvent`. Setting this
247
+ # flag disables this functionality.
248
+ # @!attribute [rw] block_external_network
249
+ # @return [::Boolean]
250
+ # Prevents the container from accessing the external network.
251
+ class Action
252
+ include ::Google::Protobuf::MessageExts
253
+ extend ::Google::Protobuf::MessageExts::ClassMethods
254
+
255
+ # @!attribute [rw] key
256
+ # @return [::String]
257
+ # @!attribute [rw] value
258
+ # @return [::String]
259
+ class EnvironmentEntry
260
+ include ::Google::Protobuf::MessageExts
261
+ extend ::Google::Protobuf::MessageExts::ClassMethods
262
+ end
263
+
264
+ # @!attribute [rw] key
265
+ # @return [::Integer]
266
+ # @!attribute [rw] value
267
+ # @return [::Integer]
268
+ class PortMappingsEntry
269
+ include ::Google::Protobuf::MessageExts
270
+ extend ::Google::Protobuf::MessageExts::ClassMethods
271
+ end
272
+
273
+ # @!attribute [rw] key
274
+ # @return [::String]
275
+ # @!attribute [rw] value
276
+ # @return [::String]
277
+ class LabelsEntry
278
+ include ::Google::Protobuf::MessageExts
279
+ extend ::Google::Protobuf::MessageExts::ClassMethods
280
+ end
281
+ end
282
+
283
+ # Holds encrypted information that is only decrypted and stored in RAM
284
+ # by the worker VM when running the pipeline.
285
+ # @!attribute [rw] key_name
286
+ # @return [::String]
287
+ # The name of the Cloud KMS key that will be used to decrypt the secret
288
+ # value. The VM service account must have the required permissions and
289
+ # authentication scopes to invoke the `decrypt` method on the specified key.
290
+ # @!attribute [rw] cipher_text
291
+ # @return [::String]
292
+ # The value of the cipherText response from the `encrypt` method. This field
293
+ # is intentionally unaudited.
294
+ class Secret
295
+ include ::Google::Protobuf::MessageExts
296
+ extend ::Google::Protobuf::MessageExts::ClassMethods
297
+ end
298
+
299
+ # Carries information about a particular disk mount inside a container.
300
+ # @!attribute [rw] disk
301
+ # @return [::String]
302
+ # The name of the disk to mount, as specified in the resources section.
303
+ # @!attribute [rw] path
304
+ # @return [::String]
305
+ # The path to mount the disk inside the container.
306
+ # @!attribute [rw] read_only
307
+ # @return [::Boolean]
308
+ # If true, the disk is mounted read-only inside the container.
309
+ class Mount
310
+ include ::Google::Protobuf::MessageExts
311
+ extend ::Google::Protobuf::MessageExts::ClassMethods
312
+ end
313
+
314
+ # The system resources for the pipeline run.
315
+ #
316
+ # At least one zone or region must be specified or the pipeline run will fail.
317
+ # @!attribute [rw] regions
318
+ # @return [::Array<::String>]
319
+ # The list of regions allowed for VM allocation. If set, the `zones` field
320
+ # must not be set.
321
+ # @!attribute [rw] zones
322
+ # @return [::Array<::String>]
323
+ # The list of zones allowed for VM allocation. If set, the `regions` field
324
+ # must not be set.
325
+ # @!attribute [rw] virtual_machine
326
+ # @return [::Google::Cloud::LifeSciences::V2beta::VirtualMachine]
327
+ # The virtual machine specification.
328
+ class Resources
329
+ include ::Google::Protobuf::MessageExts
330
+ extend ::Google::Protobuf::MessageExts::ClassMethods
331
+ end
332
+
333
+ # Carries information about a Compute Engine VM resource.
334
+ # @!attribute [rw] machine_type
335
+ # @return [::String]
336
+ # Required. The machine type of the virtual machine to create. Must be the short name
337
+ # of a standard machine type (such as "n1-standard-1") or a custom machine
338
+ # type (such as "custom-1-4096", where "1" indicates the number of vCPUs and
339
+ # "4096" indicates the memory in MB). See
340
+ # [Creating an instance with a custom machine
341
+ # type](https://cloud.google.com/compute/docs/instances/creating-instance-with-custom-machine-type#create)
342
+ # for more specifications on creating a custom machine type.
343
+ # @!attribute [rw] preemptible
344
+ # @return [::Boolean]
345
+ # If true, allocate a preemptible VM.
346
+ # @!attribute [rw] labels
347
+ # @return [::Google::Protobuf::Map{::String => ::String}]
348
+ # Optional set of labels to apply to the VM and any attached disk resources.
349
+ # These labels must adhere to the [name and value
350
+ # restrictions](https://cloud.google.com/compute/docs/labeling-resources) on
351
+ # VM labels imposed by Compute Engine.
352
+ #
353
+ # Labels keys with the prefix 'google-' are reserved for use by Google.
354
+ #
355
+ # Labels applied at creation time to the VM. Applied on a best-effort basis
356
+ # to attached disk resources shortly after VM creation.
357
+ # @!attribute [rw] disks
358
+ # @return [::Array<::Google::Cloud::LifeSciences::V2beta::Disk>]
359
+ # The list of disks to create and attach to the VM.
360
+ #
361
+ # Specify either the `volumes[]` field or the `disks[]` field, but not both.
362
+ # @!attribute [rw] network
363
+ # @return [::Google::Cloud::LifeSciences::V2beta::Network]
364
+ # The VM network configuration.
365
+ # @!attribute [rw] accelerators
366
+ # @return [::Array<::Google::Cloud::LifeSciences::V2beta::Accelerator>]
367
+ # The list of accelerators to attach to the VM.
368
+ # @!attribute [rw] service_account
369
+ # @return [::Google::Cloud::LifeSciences::V2beta::ServiceAccount]
370
+ # The service account to install on the VM. This account does not need
371
+ # any permissions other than those required by the pipeline.
372
+ # @!attribute [rw] boot_disk_size_gb
373
+ # @return [::Integer]
374
+ # The size of the boot disk, in GB. The boot disk must be large
375
+ # enough to accommodate all of the Docker images from each action in the
376
+ # pipeline at the same time. If not specified, a small but reasonable
377
+ # default value is used.
378
+ # @!attribute [rw] cpu_platform
379
+ # @return [::String]
380
+ # The CPU platform to request. An instance based on a newer platform can be
381
+ # allocated, but never one with fewer capabilities. The value of this
382
+ # parameter must be a valid Compute Engine CPU platform name (such as "Intel
383
+ # Skylake"). This parameter is only useful for carefully optimized work
384
+ # loads where the CPU platform has a significant impact.
385
+ #
386
+ # For more information about the effect of this parameter, see
387
+ # https://cloud.google.com/compute/docs/instances/specify-min-cpu-platform.
388
+ # @!attribute [rw] boot_image
389
+ # @return [::String]
390
+ # The host operating system image to use.
391
+ #
392
+ # Currently, only Container-Optimized OS images can be used.
393
+ #
394
+ # The default value is `projects/cos-cloud/global/images/family/cos-stable`,
395
+ # which selects the latest stable release of Container-Optimized OS.
396
+ #
397
+ # This option is provided to allow testing against the beta release of the
398
+ # operating system to ensure that the new version does not interact
399
+ # negatively with production pipelines.
400
+ #
401
+ # To test a pipeline against the beta release of Container-Optimized OS,
402
+ # use the value `projects/cos-cloud/global/images/family/cos-beta`.
403
+ # @!attribute [rw] nvidia_driver_version
404
+ # @return [::String]
405
+ # The NVIDIA driver version to use when attaching an NVIDIA GPU accelerator.
406
+ # The version specified here must be compatible with the GPU libraries
407
+ # contained in the container being executed, and must be one of the drivers
408
+ # hosted in the `nvidia-drivers-us-public` bucket on Google Cloud Storage.
409
+ # @!attribute [rw] enable_stackdriver_monitoring
410
+ # @return [::Boolean]
411
+ # Whether Stackdriver monitoring should be enabled on the VM.
412
+ # @!attribute [rw] docker_cache_images
413
+ # @return [::Array<::String>]
414
+ # The Compute Engine Disk Images to use as a Docker cache. The disks will be
415
+ # mounted into the Docker folder in a way that the images present in the
416
+ # cache will not need to be pulled. The digests of the cached images must
417
+ # match those of the tags used or the latest version will still be pulled.
418
+ # The root directory of the ext4 image must contain `image` and `overlay2`
419
+ # directories copied from the Docker directory of a VM where the desired
420
+ # Docker images have already been pulled. Any images pulled that are not
421
+ # cached will be stored on the first cache disk instead of the boot disk.
422
+ # Only a single image is supported.
423
+ # @!attribute [rw] volumes
424
+ # @return [::Array<::Google::Cloud::LifeSciences::V2beta::Volume>]
425
+ # The list of disks and other storage to create or attach to the VM.
426
+ #
427
+ # Specify either the `volumes[]` field or the `disks[]` field, but not both.
428
+ class VirtualMachine
429
+ include ::Google::Protobuf::MessageExts
430
+ extend ::Google::Protobuf::MessageExts::ClassMethods
431
+
432
+ # @!attribute [rw] key
433
+ # @return [::String]
434
+ # @!attribute [rw] value
435
+ # @return [::String]
436
+ class LabelsEntry
437
+ include ::Google::Protobuf::MessageExts
438
+ extend ::Google::Protobuf::MessageExts::ClassMethods
439
+ end
440
+ end
441
+
442
+ # Carries information about a Google Cloud service account.
443
+ # @!attribute [rw] email
444
+ # @return [::String]
445
+ # Email address of the service account. If not specified, the default
446
+ # Compute Engine service account for the project will be used.
447
+ # @!attribute [rw] scopes
448
+ # @return [::Array<::String>]
449
+ # List of scopes to be enabled for this service account on the VM, in
450
+ # addition to the cloud-platform API scope that will be added by default.
451
+ class ServiceAccount
452
+ include ::Google::Protobuf::MessageExts
453
+ extend ::Google::Protobuf::MessageExts::ClassMethods
454
+ end
455
+
456
+ # Carries information about an accelerator that can be attached to a VM.
457
+ # @!attribute [rw] type
458
+ # @return [::String]
459
+ # The accelerator type string (for example, "nvidia-tesla-k80").
460
+ #
461
+ # Only NVIDIA GPU accelerators are currently supported. If an NVIDIA GPU is
462
+ # attached, the required runtime libraries will be made available to all
463
+ # containers under `/usr/local/nvidia`. The driver version to install must
464
+ # be specified using the NVIDIA driver version parameter on the virtual
465
+ # machine specification. Note that attaching a GPU increases the worker VM
466
+ # startup time by a few minutes.
467
+ # @!attribute [rw] count
468
+ # @return [::Integer]
469
+ # How many accelerators of this type to attach.
470
+ class Accelerator
471
+ include ::Google::Protobuf::MessageExts
472
+ extend ::Google::Protobuf::MessageExts::ClassMethods
473
+ end
474
+
475
+ # VM networking options.
476
+ # @!attribute [rw] network
477
+ # @return [::String]
478
+ # The network name to attach the VM's network interface to. The value will
479
+ # be prefixed with `global/networks/` unless it contains a `/`, in which
480
+ # case it is assumed to be a fully specified network resource URL.
481
+ #
482
+ # If unspecified, the global default network is used.
483
+ # @!attribute [rw] use_private_address
484
+ # @return [::Boolean]
485
+ # If set to true, do not attach a public IP address to the VM. Note that
486
+ # without a public IP address, additional configuration is required to
487
+ # allow the VM to access Google services.
488
+ #
489
+ # See https://cloud.google.com/vpc/docs/configure-private-google-access
490
+ # for more information.
491
+ # @!attribute [rw] subnetwork
492
+ # @return [::String]
493
+ # If the specified network is configured for custom subnet creation, the
494
+ # name of the subnetwork to attach the instance to must be specified here.
495
+ #
496
+ # The value is prefixed with `regions/*/subnetworks/` unless it contains a
497
+ # `/`, in which case it is assumed to be a fully specified subnetwork
498
+ # resource URL.
499
+ #
500
+ # If the `*` character appears in the value, it is replaced with the region
501
+ # that the virtual machine has been allocated in.
502
+ class Network
503
+ include ::Google::Protobuf::MessageExts
504
+ extend ::Google::Protobuf::MessageExts::ClassMethods
505
+ end
506
+
507
+ # Carries information about a disk that can be attached to a VM.
508
+ #
509
+ # See https://cloud.google.com/compute/docs/disks/performance for more
510
+ # information about disk type, size, and performance considerations.
511
+ #
512
+ # Specify either {::Google::Cloud::LifeSciences::V2beta::Volume `Volume`} or
513
+ # {::Google::Cloud::LifeSciences::V2beta::Disk `Disk`}, but not both.
514
+ # @!attribute [rw] name
515
+ # @return [::String]
516
+ # A user-supplied name for the disk. Used when mounting the disk into
517
+ # actions. The name must contain only upper and lowercase alphanumeric
518
+ # characters and hyphens and cannot start with a hyphen.
519
+ # @!attribute [rw] size_gb
520
+ # @return [::Integer]
521
+ # The size, in GB, of the disk to attach. If the size is not
522
+ # specified, a default is chosen to ensure reasonable I/O performance.
523
+ #
524
+ # If the disk type is specified as `local-ssd`, multiple local drives are
525
+ # automatically combined to provide the requested size. Note, however, that
526
+ # each physical SSD is 375GB in size, and no more than 8 drives can be
527
+ # attached to a single instance.
528
+ # @!attribute [rw] type
529
+ # @return [::String]
530
+ # The Compute Engine disk type. If unspecified, `pd-standard` is used.
531
+ # @!attribute [rw] source_image
532
+ # @return [::String]
533
+ # An optional image to put on the disk before attaching it to the VM.
534
+ class Disk
535
+ include ::Google::Protobuf::MessageExts
536
+ extend ::Google::Protobuf::MessageExts::ClassMethods
537
+ end
538
+
539
+ # Carries information about storage that can be attached to a VM.
540
+ #
541
+ # Specify either {::Google::Cloud::LifeSciences::V2beta::Volume `Volume`} or
542
+ # {::Google::Cloud::LifeSciences::V2beta::Disk `Disk`}, but not both.
543
+ # @!attribute [rw] volume
544
+ # @return [::String]
545
+ # A user-supplied name for the volume. Used when mounting the volume into
546
+ # {::Google::Cloud::LifeSciences::V2beta::Action `Actions`}. The name must contain
547
+ # only upper and lowercase alphanumeric characters and hyphens and cannot
548
+ # start with a hyphen.
549
+ # @!attribute [rw] persistent_disk
550
+ # @return [::Google::Cloud::LifeSciences::V2beta::PersistentDisk]
551
+ # Configuration for a persistent disk.
552
+ # @!attribute [rw] existing_disk
553
+ # @return [::Google::Cloud::LifeSciences::V2beta::ExistingDisk]
554
+ # Configuration for a existing disk.
555
+ # @!attribute [rw] nfs_mount
556
+ # @return [::Google::Cloud::LifeSciences::V2beta::NFSMount]
557
+ # Configuration for an NFS mount.
558
+ class Volume
559
+ include ::Google::Protobuf::MessageExts
560
+ extend ::Google::Protobuf::MessageExts::ClassMethods
561
+ end
562
+
563
+ # Configuration for a persistent disk to be attached to the VM.
564
+ #
565
+ # See https://cloud.google.com/compute/docs/disks/performance for more
566
+ # information about disk type, size, and performance considerations.
567
+ # @!attribute [rw] size_gb
568
+ # @return [::Integer]
569
+ # The size, in GB, of the disk to attach. If the size is not
570
+ # specified, a default is chosen to ensure reasonable I/O performance.
571
+ #
572
+ # If the disk type is specified as `local-ssd`, multiple local drives are
573
+ # automatically combined to provide the requested size. Note, however, that
574
+ # each physical SSD is 375GB in size, and no more than 8 drives can be
575
+ # attached to a single instance.
576
+ # @!attribute [rw] type
577
+ # @return [::String]
578
+ # The Compute Engine disk type. If unspecified, `pd-standard` is used.
579
+ # @!attribute [rw] source_image
580
+ # @return [::String]
581
+ # An image to put on the disk before attaching it to the VM.
582
+ class PersistentDisk
583
+ include ::Google::Protobuf::MessageExts
584
+ extend ::Google::Protobuf::MessageExts::ClassMethods
585
+ end
586
+
587
+ # Configuration for an existing disk to be attached to the VM.
588
+ # @!attribute [rw] disk
589
+ # @return [::String]
590
+ # If `disk` contains slashes, the Cloud Life Sciences API assumes that it is
591
+ # a complete URL for the disk. If `disk` does not contain slashes, the Cloud
592
+ # Life Sciences API assumes that the disk is a zonal disk and a URL will be
593
+ # generated of the form `zones/<zone>/disks/<disk>`, where `<zone>` is the
594
+ # zone in which the instance is allocated. The disk must be ext4 formatted.
595
+ #
596
+ # If all `Mount` references to this disk have the `read_only` flag set to
597
+ # true, the disk will be attached in `read-only` mode and can be shared with
598
+ # other instances. Otherwise, the disk will be available for writing but
599
+ # cannot be shared.
600
+ class ExistingDisk
601
+ include ::Google::Protobuf::MessageExts
602
+ extend ::Google::Protobuf::MessageExts::ClassMethods
603
+ end
604
+
605
+ # Configuration for an `NFSMount` to be attached to the VM.
606
+ # @!attribute [rw] target
607
+ # @return [::String]
608
+ # A target NFS mount. The target must be specified as `address:/mount".
609
+ class NFSMount
610
+ include ::Google::Protobuf::MessageExts
611
+ extend ::Google::Protobuf::MessageExts::ClassMethods
612
+ end
613
+
614
+ # Carries information about the pipeline execution that is returned
615
+ # in the long running operation's metadata field.
616
+ # @!attribute [rw] pipeline
617
+ # @return [::Google::Cloud::LifeSciences::V2beta::Pipeline]
618
+ # The pipeline this operation represents.
619
+ # @!attribute [rw] labels
620
+ # @return [::Google::Protobuf::Map{::String => ::String}]
621
+ # The user-defined labels associated with this operation.
622
+ # @!attribute [rw] events
623
+ # @return [::Array<::Google::Cloud::LifeSciences::V2beta::Event>]
624
+ # The list of events that have happened so far during the execution of this
625
+ # operation.
626
+ # @!attribute [rw] create_time
627
+ # @return [::Google::Protobuf::Timestamp]
628
+ # The time at which the operation was created by the API.
629
+ # @!attribute [rw] start_time
630
+ # @return [::Google::Protobuf::Timestamp]
631
+ # The first time at which resources were allocated to execute the pipeline.
632
+ # @!attribute [rw] end_time
633
+ # @return [::Google::Protobuf::Timestamp]
634
+ # The time at which execution was completed and resources were cleaned up.
635
+ # @!attribute [rw] pub_sub_topic
636
+ # @return [::String]
637
+ # The name of the Cloud Pub/Sub topic where notifications of operation status
638
+ # changes are sent.
639
+ class Metadata
640
+ include ::Google::Protobuf::MessageExts
641
+ extend ::Google::Protobuf::MessageExts::ClassMethods
642
+
643
+ # @!attribute [rw] key
644
+ # @return [::String]
645
+ # @!attribute [rw] value
646
+ # @return [::String]
647
+ class LabelsEntry
648
+ include ::Google::Protobuf::MessageExts
649
+ extend ::Google::Protobuf::MessageExts::ClassMethods
650
+ end
651
+ end
652
+
653
+ # Carries information about events that occur during pipeline execution.
654
+ # @!attribute [rw] timestamp
655
+ # @return [::Google::Protobuf::Timestamp]
656
+ # The time at which the event occurred.
657
+ # @!attribute [rw] description
658
+ # @return [::String]
659
+ # A human-readable description of the event. Note that these strings can
660
+ # change at any time without notice. Any application logic must use the
661
+ # information in the `details` field.
662
+ # @!attribute [rw] delayed
663
+ # @return [::Google::Cloud::LifeSciences::V2beta::DelayedEvent]
664
+ # See {::Google::Cloud::LifeSciences::V2beta::DelayedEvent google.cloud.lifesciences.v2beta.DelayedEvent}.
665
+ # @!attribute [rw] worker_assigned
666
+ # @return [::Google::Cloud::LifeSciences::V2beta::WorkerAssignedEvent]
667
+ # See {::Google::Cloud::LifeSciences::V2beta::WorkerAssignedEvent google.cloud.lifesciences.v2beta.WorkerAssignedEvent}.
668
+ # @!attribute [rw] worker_released
669
+ # @return [::Google::Cloud::LifeSciences::V2beta::WorkerReleasedEvent]
670
+ # See {::Google::Cloud::LifeSciences::V2beta::WorkerReleasedEvent google.cloud.lifesciences.v2beta.WorkerReleasedEvent}.
671
+ # @!attribute [rw] pull_started
672
+ # @return [::Google::Cloud::LifeSciences::V2beta::PullStartedEvent]
673
+ # See {::Google::Cloud::LifeSciences::V2beta::PullStartedEvent google.cloud.lifesciences.v2beta.PullStartedEvent}.
674
+ # @!attribute [rw] pull_stopped
675
+ # @return [::Google::Cloud::LifeSciences::V2beta::PullStoppedEvent]
676
+ # See {::Google::Cloud::LifeSciences::V2beta::PullStoppedEvent google.cloud.lifesciences.v2beta.PullStoppedEvent}.
677
+ # @!attribute [rw] container_started
678
+ # @return [::Google::Cloud::LifeSciences::V2beta::ContainerStartedEvent]
679
+ # See {::Google::Cloud::LifeSciences::V2beta::ContainerStartedEvent google.cloud.lifesciences.v2beta.ContainerStartedEvent}.
680
+ # @!attribute [rw] container_stopped
681
+ # @return [::Google::Cloud::LifeSciences::V2beta::ContainerStoppedEvent]
682
+ # See {::Google::Cloud::LifeSciences::V2beta::ContainerStoppedEvent google.cloud.lifesciences.v2beta.ContainerStoppedEvent}.
683
+ # @!attribute [rw] container_killed
684
+ # @return [::Google::Cloud::LifeSciences::V2beta::ContainerKilledEvent]
685
+ # See {::Google::Cloud::LifeSciences::V2beta::ContainerKilledEvent google.cloud.lifesciences.v2beta.ContainerKilledEvent}.
686
+ # @!attribute [rw] unexpected_exit_status
687
+ # @return [::Google::Cloud::LifeSciences::V2beta::UnexpectedExitStatusEvent]
688
+ # See {::Google::Cloud::LifeSciences::V2beta::UnexpectedExitStatusEvent google.cloud.lifesciences.v2beta.UnexpectedExitStatusEvent}.
689
+ # @!attribute [rw] failed
690
+ # @return [::Google::Cloud::LifeSciences::V2beta::FailedEvent]
691
+ # See {::Google::Cloud::LifeSciences::V2beta::FailedEvent google.cloud.lifesciences.v2beta.FailedEvent}.
692
+ class Event
693
+ include ::Google::Protobuf::MessageExts
694
+ extend ::Google::Protobuf::MessageExts::ClassMethods
695
+ end
696
+
697
+ # An event generated whenever a resource limitation or transient error
698
+ # delays execution of a pipeline that was otherwise ready to run.
699
+ # @!attribute [rw] cause
700
+ # @return [::String]
701
+ # A textual description of the cause of the delay. The string can change
702
+ # without notice because it is often generated by another service (such as
703
+ # Compute Engine).
704
+ # @!attribute [rw] metrics
705
+ # @return [::Array<::String>]
706
+ # If the delay was caused by a resource shortage, this field lists the
707
+ # Compute Engine metrics that are preventing this operation from running
708
+ # (for example, `CPUS` or `INSTANCES`). If the particular metric is not
709
+ # known, a single `UNKNOWN` metric will be present.
710
+ class DelayedEvent
711
+ include ::Google::Protobuf::MessageExts
712
+ extend ::Google::Protobuf::MessageExts::ClassMethods
713
+ end
714
+
715
+ # An event generated after a worker VM has been assigned to run the
716
+ # pipeline.
717
+ # @!attribute [rw] zone
718
+ # @return [::String]
719
+ # The zone the worker is running in.
720
+ # @!attribute [rw] instance
721
+ # @return [::String]
722
+ # The worker's instance name.
723
+ # @!attribute [rw] machine_type
724
+ # @return [::String]
725
+ # The machine type that was assigned for the worker.
726
+ class WorkerAssignedEvent
727
+ include ::Google::Protobuf::MessageExts
728
+ extend ::Google::Protobuf::MessageExts::ClassMethods
729
+ end
730
+
731
+ # An event generated when the worker VM that was assigned to the pipeline
732
+ # has been released (deleted).
733
+ # @!attribute [rw] zone
734
+ # @return [::String]
735
+ # The zone the worker was running in.
736
+ # @!attribute [rw] instance
737
+ # @return [::String]
738
+ # The worker's instance name.
739
+ class WorkerReleasedEvent
740
+ include ::Google::Protobuf::MessageExts
741
+ extend ::Google::Protobuf::MessageExts::ClassMethods
742
+ end
743
+
744
+ # An event generated when the worker starts pulling an image.
745
+ # @!attribute [rw] image_uri
746
+ # @return [::String]
747
+ # The URI of the image that was pulled.
748
+ class PullStartedEvent
749
+ include ::Google::Protobuf::MessageExts
750
+ extend ::Google::Protobuf::MessageExts::ClassMethods
751
+ end
752
+
753
+ # An event generated when the worker stops pulling an image.
754
+ # @!attribute [rw] image_uri
755
+ # @return [::String]
756
+ # The URI of the image that was pulled.
757
+ class PullStoppedEvent
758
+ include ::Google::Protobuf::MessageExts
759
+ extend ::Google::Protobuf::MessageExts::ClassMethods
760
+ end
761
+
762
+ # An event generated when a container starts.
763
+ # @!attribute [rw] action_id
764
+ # @return [::Integer]
765
+ # The numeric ID of the action that started this container.
766
+ # @!attribute [rw] port_mappings
767
+ # @return [::Google::Protobuf::Map{::Integer => ::Integer}]
768
+ # The container-to-host port mappings installed for this container. This
769
+ # set will contain any ports exposed using the `PUBLISH_EXPOSED_PORTS` flag
770
+ # as well as any specified in the `Action` definition.
771
+ # @!attribute [rw] ip_address
772
+ # @return [::String]
773
+ # The public IP address that can be used to connect to the container. This
774
+ # field is only populated when at least one port mapping is present. If the
775
+ # instance was created with a private address, this field will be empty even
776
+ # if port mappings exist.
777
+ class ContainerStartedEvent
778
+ include ::Google::Protobuf::MessageExts
779
+ extend ::Google::Protobuf::MessageExts::ClassMethods
780
+
781
+ # @!attribute [rw] key
782
+ # @return [::Integer]
783
+ # @!attribute [rw] value
784
+ # @return [::Integer]
785
+ class PortMappingsEntry
786
+ include ::Google::Protobuf::MessageExts
787
+ extend ::Google::Protobuf::MessageExts::ClassMethods
788
+ end
789
+ end
790
+
791
+ # An event generated when a container exits.
792
+ # @!attribute [rw] action_id
793
+ # @return [::Integer]
794
+ # The numeric ID of the action that started this container.
795
+ # @!attribute [rw] exit_status
796
+ # @return [::Integer]
797
+ # The exit status of the container.
798
+ # @!attribute [rw] stderr
799
+ # @return [::String]
800
+ # The tail end of any content written to standard error by the container.
801
+ # If the content emits large amounts of debugging noise or contains
802
+ # sensitive information, you can prevent the content from being printed by
803
+ # setting the `DISABLE_STANDARD_ERROR_CAPTURE` flag.
804
+ #
805
+ # Note that only a small amount of the end of the stream is captured here.
806
+ # The entire stream is stored in the `/google/logs` directory mounted into
807
+ # each action, and can be copied off the machine as described elsewhere.
808
+ class ContainerStoppedEvent
809
+ include ::Google::Protobuf::MessageExts
810
+ extend ::Google::Protobuf::MessageExts::ClassMethods
811
+ end
812
+
813
+ # An event generated when the execution of a container results in a
814
+ # non-zero exit status that was not otherwise ignored. Execution will
815
+ # continue, but only actions that are flagged as `ALWAYS_RUN` will be
816
+ # executed. Other actions will be skipped.
817
+ # @!attribute [rw] action_id
818
+ # @return [::Integer]
819
+ # The numeric ID of the action that started the container.
820
+ # @!attribute [rw] exit_status
821
+ # @return [::Integer]
822
+ # The exit status of the container.
823
+ class UnexpectedExitStatusEvent
824
+ include ::Google::Protobuf::MessageExts
825
+ extend ::Google::Protobuf::MessageExts::ClassMethods
826
+ end
827
+
828
+ # An event generated when a container is forcibly terminated by the
829
+ # worker. Currently, this only occurs when the container outlives the
830
+ # timeout specified by the user.
831
+ # @!attribute [rw] action_id
832
+ # @return [::Integer]
833
+ # The numeric ID of the action that started the container.
834
+ class ContainerKilledEvent
835
+ include ::Google::Protobuf::MessageExts
836
+ extend ::Google::Protobuf::MessageExts::ClassMethods
837
+ end
838
+
839
+ # An event generated when the execution of a pipeline has failed. Note
840
+ # that other events can continue to occur after this event.
841
+ # @!attribute [rw] code
842
+ # @return [::Google::Rpc::Code]
843
+ # The Google standard error code that best describes this failure.
844
+ # @!attribute [rw] cause
845
+ # @return [::String]
846
+ # The human-readable description of the cause of the failure.
847
+ class FailedEvent
848
+ include ::Google::Protobuf::MessageExts
849
+ extend ::Google::Protobuf::MessageExts::ClassMethods
850
+ end
851
+ end
852
+ end
853
+ end
854
+ end