google-apis-genomics_v1 0.3.0 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 68437112b096b88b6b9d8c8fb338ede222189beca1c42dde7856a4d49b7e61bb
4
- data.tar.gz: 859372f7aa39ca585bba9862e2cb7c9a868a4bd9f97f042c3e8bd57e5400f865
3
+ metadata.gz: 7d9864c3bd1867bd8e08a4c0b0ad34fc537c8f2478ac9b55f4bc374395b9255c
4
+ data.tar.gz: ba66a1ae4455871cc03d6b9cf4e333fc168436d4f4fcc72abbacd93ffb4c9a58
5
5
  SHA512:
6
- metadata.gz: 44b7c86a22c0585b8319ef59f2bed2c541e98910d48acf4cc3bde0d181f5338d3d5397d2a0399bdb6e9deafa9b556046dcbb2e765c1f6d6d0f687c141913630b
7
- data.tar.gz: aba3b558e4b1f0da4e73f2df15ea31652a7e93eb4c3fb429225186df5a237bc40a58a1d5bfc29c90082420e122381c2039bf4666ad090c252b848ff98e061324
6
+ metadata.gz: f58b565089a319f4cfb9aaff2db3af6f9fc7daf60868d3c1695be58c561aca269e800b09c11a24014e7a3bf25526b9681ebdc298d6f0469c875ada37b2ebd110
7
+ data.tar.gz: 7a259a4f5dc70240cd8ab9a705cdeb95275c10032e6cb010acdf3640326f7b9d3db3510efbd0bc92d0c5756b23a05bcd75f8b18795f27c1c241399bffacf296e
data/CHANGELOG.md CHANGED
@@ -1,5 +1,9 @@
1
1
  # Release history for google-apis-genomics_v1
2
2
 
3
+ ### v0.4.0 (2021-05-13)
4
+
5
+ * Regenerated from discovery document revision 20210512
6
+
3
7
  ### v0.3.0 (2021-03-24)
4
8
 
5
9
  * Regenerated from discovery document revision 20210322
@@ -28,12 +28,6 @@ module Google
28
28
  # Version of the Genomics API this client connects to.
29
29
  # This is NOT the gem version.
30
30
  VERSION = 'V1'
31
-
32
- # See, edit, configure, and delete your Google Cloud Platform data
33
- AUTH_CLOUD_PLATFORM = 'https://www.googleapis.com/auth/cloud-platform'
34
-
35
- # View and manage Genomics data
36
- AUTH_GENOMICS = 'https://www.googleapis.com/auth/genomics'
37
31
  end
38
32
  end
39
33
  end
@@ -22,43 +22,151 @@ module Google
22
22
  module Apis
23
23
  module GenomicsV1
24
24
 
25
- # The request message for Operations.CancelOperation.
26
- class CancelOperationRequest
25
+ # Carries information about an accelerator that can be attached to a VM.
26
+ class Accelerator
27
27
  include Google::Apis::Core::Hashable
28
28
 
29
+ # How many accelerators of this type to attach.
30
+ # Corresponds to the JSON property `count`
31
+ # @return [Fixnum]
32
+ attr_accessor :count
33
+
34
+ # The accelerator type string (for example, "nvidia-tesla-k80"). Only NVIDIA GPU
35
+ # accelerators are currently supported. If an NVIDIA GPU is attached, the
36
+ # required runtime libraries will be made available to all containers under `/
37
+ # usr/local/nvidia`. The driver version to install must be specified using the
38
+ # NVIDIA driver version parameter on the virtual machine specification. Note
39
+ # that attaching a GPU increases the worker VM startup time by a few minutes.
40
+ # Corresponds to the JSON property `type`
41
+ # @return [String]
42
+ attr_accessor :type
43
+
29
44
  def initialize(**args)
30
45
  update!(**args)
31
46
  end
32
47
 
33
48
  # Update properties of this object
34
49
  def update!(**args)
50
+ @count = args[:count] if args.key?(:count)
51
+ @type = args[:type] if args.key?(:type)
35
52
  end
36
53
  end
37
54
 
38
- # Describes a Compute Engine resource that is being managed by a running
39
- # pipeline.
40
- class ComputeEngine
55
+ # Specifies a single action that runs a Docker container.
56
+ class Action
41
57
  include Google::Apis::Core::Hashable
42
58
 
43
- # The names of the disks that were created for this pipeline.
44
- # Corresponds to the JSON property `diskNames`
59
+ # If specified, overrides the `CMD` specified in the container. If the container
60
+ # also has an `ENTRYPOINT` the values are used as entrypoint arguments.
61
+ # Otherwise, they are used as a command and arguments to run inside the
62
+ # container.
63
+ # Corresponds to the JSON property `commands`
45
64
  # @return [Array<String>]
46
- attr_accessor :disk_names
65
+ attr_accessor :commands
66
+
67
+ # Holds encrypted information that is only decrypted and stored in RAM by the
68
+ # worker VM when running the pipeline.
69
+ # Corresponds to the JSON property `credentials`
70
+ # @return [Google::Apis::GenomicsV1::Secret]
71
+ attr_accessor :credentials
72
+
73
+ # Holds encrypted information that is only decrypted and stored in RAM by the
74
+ # worker VM when running the pipeline.
75
+ # Corresponds to the JSON property `encryptedEnvironment`
76
+ # @return [Google::Apis::GenomicsV1::Secret]
77
+ attr_accessor :encrypted_environment
78
+
79
+ # If specified, overrides the `ENTRYPOINT` specified in the container.
80
+ # Corresponds to the JSON property `entrypoint`
81
+ # @return [String]
82
+ attr_accessor :entrypoint
83
+
84
+ # The environment to pass into the container. This environment is merged with
85
+ # values specified in the google.genomics.v2alpha1.Pipeline message, overwriting
86
+ # any duplicate values. In addition to the values passed here, a few other
87
+ # values are automatically injected into the environment. These cannot be hidden
88
+ # or overwritten. `GOOGLE_PIPELINE_FAILED` will be set to "1" if the pipeline
89
+ # failed because an action has exited with a non-zero status (and did not have
90
+ # the `IGNORE_EXIT_STATUS` flag set). This can be used to determine if
91
+ # additional debug or logging actions should execute. `GOOGLE_LAST_EXIT_STATUS`
92
+ # will be set to the exit status of the last non-background action that executed.
93
+ # This can be used by workflow engine authors to determine whether an
94
+ # individual action has succeeded or failed.
95
+ # Corresponds to the JSON property `environment`
96
+ # @return [Hash<String,String>]
97
+ attr_accessor :environment
47
98
 
48
- # The instance on which the operation is running.
49
- # Corresponds to the JSON property `instanceName`
99
+ # The set of flags to apply to this action.
100
+ # Corresponds to the JSON property `flags`
101
+ # @return [Array<String>]
102
+ attr_accessor :flags
103
+
104
+ # Required. The URI to pull the container image from. Note that all images
105
+ # referenced by actions in the pipeline are pulled before the first action runs.
106
+ # If multiple actions reference the same image, it is only pulled once, ensuring
107
+ # that the same image is used for all actions in a single pipeline. The image
108
+ # URI can be either a complete host and image specification (e.g., quay.io/
109
+ # biocontainers/samtools), a library and image name (e.g., google/cloud-sdk) or
110
+ # a bare image name ('bash') to pull from the default library. No schema is
111
+ # required in any of these cases. If the specified image is not public, the
112
+ # service account specified for the Virtual Machine must have access to pull the
113
+ # images from GCR, or appropriate credentials must be specified in the google.
114
+ # genomics.v2alpha1.Action.credentials field.
115
+ # Corresponds to the JSON property `imageUri`
50
116
  # @return [String]
51
- attr_accessor :instance_name
117
+ attr_accessor :image_uri
52
118
 
53
- # The machine type of the instance.
54
- # Corresponds to the JSON property `machineType`
119
+ # Labels to associate with the action. This field is provided to assist workflow
120
+ # engine authors in identifying actions (for example, to indicate what sort of
121
+ # action they perform, such as localization or debugging). They are returned in
122
+ # the operation metadata, but are otherwise ignored.
123
+ # Corresponds to the JSON property `labels`
124
+ # @return [Hash<String,String>]
125
+ attr_accessor :labels
126
+
127
+ # A list of mounts to make available to the action. In addition to the values
128
+ # specified here, every action has a special virtual disk mounted under `/google`
129
+ # that contains log files and other operational components. - /google/logs All
130
+ # logs written during the pipeline execution. - /google/logs/output The combined
131
+ # standard output and standard error of all actions run as part of the pipeline
132
+ # execution. - /google/logs/action/*/stdout The complete contents of each
133
+ # individual action's standard output. - /google/logs/action/*/stderr The
134
+ # complete contents of each individual action's standard error output.
135
+ # Corresponds to the JSON property `mounts`
136
+ # @return [Array<Google::Apis::GenomicsV1::Mount>]
137
+ attr_accessor :mounts
138
+
139
+ # An optional name for the container. The container hostname will be set to this
140
+ # name, making it useful for inter-container communication. The name must
141
+ # contain only upper and lowercase alphanumeric characters and hyphens and
142
+ # cannot start with a hyphen.
143
+ # Corresponds to the JSON property `name`
55
144
  # @return [String]
56
- attr_accessor :machine_type
145
+ attr_accessor :name
57
146
 
58
- # The availability zone in which the instance resides.
59
- # Corresponds to the JSON property `zone`
147
+ # An optional identifier for a PID namespace to run the action inside. Multiple
148
+ # actions should use the same string to share a namespace. If unspecified, a
149
+ # separate isolated namespace is used.
150
+ # Corresponds to the JSON property `pidNamespace`
60
151
  # @return [String]
61
- attr_accessor :zone
152
+ attr_accessor :pid_namespace
153
+
154
+ # A map of containers to host port mappings for this container. If the container
155
+ # already specifies exposed ports, use the `PUBLISH_EXPOSED_PORTS` flag instead.
156
+ # The host port number must be less than 65536. If it is zero, an unused random
157
+ # port is assigned. To determine the resulting port number, consult the `
158
+ # ContainerStartedEvent` in the operation metadata.
159
+ # Corresponds to the JSON property `portMappings`
160
+ # @return [Hash<String,Fixnum>]
161
+ attr_accessor :port_mappings
162
+
163
+ # The maximum amount of time to give the action to complete. If the action fails
164
+ # to complete before the timeout, it will be terminated and the exit status will
165
+ # be non-zero. The pipeline will continue or terminate based on the rules
166
+ # defined by the `ALWAYS_RUN` and `IGNORE_EXIT_STATUS` flags.
167
+ # Corresponds to the JSON property `timeout`
168
+ # @return [String]
169
+ attr_accessor :timeout
62
170
 
63
171
  def initialize(**args)
64
172
  update!(**args)
@@ -66,10 +174,19 @@ module Google
66
174
 
67
175
  # Update properties of this object
68
176
  def update!(**args)
69
- @disk_names = args[:disk_names] if args.key?(:disk_names)
70
- @instance_name = args[:instance_name] if args.key?(:instance_name)
71
- @machine_type = args[:machine_type] if args.key?(:machine_type)
72
- @zone = args[:zone] if args.key?(:zone)
177
+ @commands = args[:commands] if args.key?(:commands)
178
+ @credentials = args[:credentials] if args.key?(:credentials)
179
+ @encrypted_environment = args[:encrypted_environment] if args.key?(:encrypted_environment)
180
+ @entrypoint = args[:entrypoint] if args.key?(:entrypoint)
181
+ @environment = args[:environment] if args.key?(:environment)
182
+ @flags = args[:flags] if args.key?(:flags)
183
+ @image_uri = args[:image_uri] if args.key?(:image_uri)
184
+ @labels = args[:labels] if args.key?(:labels)
185
+ @mounts = args[:mounts] if args.key?(:mounts)
186
+ @name = args[:name] if args.key?(:name)
187
+ @pid_namespace = args[:pid_namespace] if args.key?(:pid_namespace)
188
+ @port_mappings = args[:port_mappings] if args.key?(:port_mappings)
189
+ @timeout = args[:timeout] if args.key?(:timeout)
73
190
  end
74
191
  end
75
192
 
@@ -198,20 +315,49 @@ module Google
198
315
  end
199
316
  end
200
317
 
201
- # A generic empty message that you can re-use to avoid defining duplicated empty
202
- # messages in your APIs. A typical example is to use it as the request or the
203
- # response type of an API method. For instance: service Foo ` rpc Bar(google.
204
- # protobuf.Empty) returns (google.protobuf.Empty); ` The JSON representation for
205
- # `Empty` is empty JSON object ````.
206
- class Empty
318
+ # Carries information about a disk that can be attached to a VM. See https://
319
+ # cloud.google.com/compute/docs/disks/performance for more information about
320
+ # disk type, size, and performance considerations. Specify either `Volume` or `
321
+ # Disk`, but not both.
322
+ class Disk
207
323
  include Google::Apis::Core::Hashable
208
324
 
325
+ # A user-supplied name for the disk. Used when mounting the disk into actions.
326
+ # The name must contain only upper and lowercase alphanumeric characters and
327
+ # hyphens and cannot start with a hyphen.
328
+ # Corresponds to the JSON property `name`
329
+ # @return [String]
330
+ attr_accessor :name
331
+
332
+ # The size, in GB, of the disk to attach. If the size is not specified, a
333
+ # default is chosen to ensure reasonable I/O performance. If the disk type is
334
+ # specified as `local-ssd`, multiple local drives are automatically combined to
335
+ # provide the requested size. Note, however, that each physical SSD is 375GB in
336
+ # size, and no more than 8 drives can be attached to a single instance.
337
+ # Corresponds to the JSON property `sizeGb`
338
+ # @return [Fixnum]
339
+ attr_accessor :size_gb
340
+
341
+ # An optional image to put on the disk before attaching it to the VM.
342
+ # Corresponds to the JSON property `sourceImage`
343
+ # @return [String]
344
+ attr_accessor :source_image
345
+
346
+ # The Compute Engine disk type. If unspecified, `pd-standard` is used.
347
+ # Corresponds to the JSON property `type`
348
+ # @return [String]
349
+ attr_accessor :type
350
+
209
351
  def initialize(**args)
210
352
  update!(**args)
211
353
  end
212
354
 
213
355
  # Update properties of this object
214
356
  def update!(**args)
357
+ @name = args[:name] if args.key?(:name)
358
+ @size_gb = args[:size_gb] if args.key?(:size_gb)
359
+ @source_image = args[:source_image] if args.key?(:source_image)
360
+ @type = args[:type] if args.key?(:type)
215
361
  end
216
362
  end
217
363
 
@@ -248,6 +394,32 @@ module Google
248
394
  end
249
395
  end
250
396
 
397
+ # Configuration for an existing disk to be attached to the VM.
398
+ class ExistingDisk
399
+ include Google::Apis::Core::Hashable
400
+
401
+ # If `disk` contains slashes, the Cloud Life Sciences API assumes that it is a
402
+ # complete URL for the disk. If `disk` does not contain slashes, the Cloud Life
403
+ # Sciences API assumes that the disk is a zonal disk and a URL will be generated
404
+ # of the form `zones//disks/`, where `` is the zone in which the instance is
405
+ # allocated. The disk must be ext4 formatted. If all `Mount` references to this
406
+ # disk have the `read_only` flag set to true, the disk will be attached in `read-
407
+ # only` mode and can be shared with other instances. Otherwise, the disk will be
408
+ # available for writing but cannot be shared.
409
+ # Corresponds to the JSON property `disk`
410
+ # @return [String]
411
+ attr_accessor :disk
412
+
413
+ def initialize(**args)
414
+ update!(**args)
415
+ end
416
+
417
+ # Update properties of this object
418
+ def update!(**args)
419
+ @disk = args[:disk] if args.key?(:disk)
420
+ end
421
+ end
422
+
251
423
  # An event generated when the execution of a pipeline has failed. Note that
252
424
  # other events can continue to occur after this event.
253
425
  class FailedEvent
@@ -274,19 +446,41 @@ module Google
274
446
  end
275
447
  end
276
448
 
277
- # The response message for Operations.ListOperations.
278
- class ListOperationsResponse
449
+ # Carries information about the pipeline execution that is returned in the long
450
+ # running operation's metadata field.
451
+ class Metadata
279
452
  include Google::Apis::Core::Hashable
280
453
 
281
- # The standard List next-page token.
282
- # Corresponds to the JSON property `nextPageToken`
454
+ # The time at which the operation was created by the API.
455
+ # Corresponds to the JSON property `createTime`
283
456
  # @return [String]
284
- attr_accessor :next_page_token
457
+ attr_accessor :create_time
285
458
 
286
- # A list of operations that matches the specified filter in the request.
287
- # Corresponds to the JSON property `operations`
288
- # @return [Array<Google::Apis::GenomicsV1::Operation>]
289
- attr_accessor :operations
459
+ # The time at which execution was completed and resources were cleaned up.
460
+ # Corresponds to the JSON property `endTime`
461
+ # @return [String]
462
+ attr_accessor :end_time
463
+
464
+ # The list of events that have happened so far during the execution of this
465
+ # operation.
466
+ # Corresponds to the JSON property `events`
467
+ # @return [Array<Google::Apis::GenomicsV1::Event>]
468
+ attr_accessor :events
469
+
470
+ # The user-defined labels associated with this operation.
471
+ # Corresponds to the JSON property `labels`
472
+ # @return [Hash<String,String>]
473
+ attr_accessor :labels
474
+
475
+ # Specifies a series of actions to execute, expressed as Docker containers.
476
+ # Corresponds to the JSON property `pipeline`
477
+ # @return [Google::Apis::GenomicsV1::Pipeline]
478
+ attr_accessor :pipeline
479
+
480
+ # The first time at which resources were allocated to execute the pipeline.
481
+ # Corresponds to the JSON property `startTime`
482
+ # @return [String]
483
+ attr_accessor :start_time
290
484
 
291
485
  def initialize(**args)
292
486
  update!(**args)
@@ -294,50 +488,34 @@ module Google
294
488
 
295
489
  # Update properties of this object
296
490
  def update!(**args)
297
- @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
298
- @operations = args[:operations] if args.key?(:operations)
491
+ @create_time = args[:create_time] if args.key?(:create_time)
492
+ @end_time = args[:end_time] if args.key?(:end_time)
493
+ @events = args[:events] if args.key?(:events)
494
+ @labels = args[:labels] if args.key?(:labels)
495
+ @pipeline = args[:pipeline] if args.key?(:pipeline)
496
+ @start_time = args[:start_time] if args.key?(:start_time)
299
497
  end
300
498
  end
301
499
 
302
- # This resource represents a long-running operation that is the result of a
303
- # network API call.
304
- class Operation
500
+ # Carries information about a particular disk mount inside a container.
501
+ class Mount
305
502
  include Google::Apis::Core::Hashable
306
503
 
307
- # If the value is `false`, it means the operation is still in progress. If `true`
308
- # , the operation is completed, and either `error` or `response` is available.
309
- # Corresponds to the JSON property `done`
310
- # @return [Boolean]
311
- attr_accessor :done
312
- alias_method :done?, :done
313
-
314
- # The `Status` type defines a logical error model that is suitable for different
315
- # programming environments, including REST APIs and RPC APIs. It is used by [
316
- # gRPC](https://github.com/grpc). Each `Status` message contains three pieces of
317
- # data: error code, error message, and error details. You can find out more
318
- # about this error model and how to work with it in the [API Design Guide](https:
319
- # //cloud.google.com/apis/design/errors).
320
- # Corresponds to the JSON property `error`
321
- # @return [Google::Apis::GenomicsV1::Status]
322
- attr_accessor :error
323
-
324
- # An OperationMetadata or Metadata object. This will always be returned with the
325
- # Operation.
326
- # Corresponds to the JSON property `metadata`
327
- # @return [Hash<String,Object>]
328
- attr_accessor :metadata
504
+ # The name of the disk to mount, as specified in the resources section.
505
+ # Corresponds to the JSON property `disk`
506
+ # @return [String]
507
+ attr_accessor :disk
329
508
 
330
- # The server-assigned name, which is only unique within the same service that
331
- # originally returns it. For example: `operations/CJHU7Oi_ChDrveSpBRjfuL-
332
- # qzoWAgEw`
333
- # Corresponds to the JSON property `name`
509
+ # The path to mount the disk inside the container.
510
+ # Corresponds to the JSON property `path`
334
511
  # @return [String]
335
- attr_accessor :name
512
+ attr_accessor :path
336
513
 
337
- # An Empty object.
338
- # Corresponds to the JSON property `response`
339
- # @return [Hash<String,Object>]
340
- attr_accessor :response
514
+ # If true, the disk is mounted read-only inside the container.
515
+ # Corresponds to the JSON property `readOnly`
516
+ # @return [Boolean]
517
+ attr_accessor :read_only
518
+ alias_method :read_only?, :read_only
341
519
 
342
520
  def initialize(**args)
343
521
  update!(**args)
@@ -345,33 +523,61 @@ module Google
345
523
 
346
524
  # Update properties of this object
347
525
  def update!(**args)
348
- @done = args[:done] if args.key?(:done)
349
- @error = args[:error] if args.key?(:error)
350
- @metadata = args[:metadata] if args.key?(:metadata)
351
- @name = args[:name] if args.key?(:name)
352
- @response = args[:response] if args.key?(:response)
526
+ @disk = args[:disk] if args.key?(:disk)
527
+ @path = args[:path] if args.key?(:path)
528
+ @read_only = args[:read_only] if args.key?(:read_only)
353
529
  end
354
530
  end
355
531
 
356
- # An event that occurred during an Operation.
357
- class OperationEvent
532
+ # Configuration for an `NFSMount` to be attached to the VM.
533
+ class NfsMount
358
534
  include Google::Apis::Core::Hashable
359
535
 
360
- # Required description of event.
361
- # Corresponds to the JSON property `description`
536
+ # A target NFS mount. The target must be specified as `address:/mount".
537
+ # Corresponds to the JSON property `target`
362
538
  # @return [String]
363
- attr_accessor :description
539
+ attr_accessor :target
364
540
 
365
- # Optional time of when event finished. An event can have a start time and no
366
- # finish time. If an event has a finish time, there must be a start time.
367
- # Corresponds to the JSON property `endTime`
541
+ def initialize(**args)
542
+ update!(**args)
543
+ end
544
+
545
+ # Update properties of this object
546
+ def update!(**args)
547
+ @target = args[:target] if args.key?(:target)
548
+ end
549
+ end
550
+
551
+ # VM networking options.
552
+ class Network
553
+ include Google::Apis::Core::Hashable
554
+
555
+ # The network name to attach the VM's network interface to. The value will be
556
+ # prefixed with `global/networks/` unless it contains a `/`, in which case it is
557
+ # assumed to be a fully specified network resource URL. If unspecified, the
558
+ # global default network is used.
559
+ # Corresponds to the JSON property `name`
368
560
  # @return [String]
369
- attr_accessor :end_time
561
+ attr_accessor :name
370
562
 
371
- # Optional time of when event started.
372
- # Corresponds to the JSON property `startTime`
563
+ # If the specified network is configured for custom subnet creation, the name of
564
+ # the subnetwork to attach the instance to must be specified here. The value is
565
+ # prefixed with `regions/*/subnetworks/` unless it contains a `/`, in which case
566
+ # it is assumed to be a fully specified subnetwork resource URL. If the `*`
567
+ # character appears in the value, it is replaced with the region that the
568
+ # virtual machine has been allocated in.
569
+ # Corresponds to the JSON property `subnetwork`
373
570
  # @return [String]
374
- attr_accessor :start_time
571
+ attr_accessor :subnetwork
572
+
573
+ # If set to true, do not attach a public IP address to the VM. Note that without
574
+ # a public IP address, additional configuration is required to allow the VM to
575
+ # access Google services. See https://cloud.google.com/vpc/docs/configure-
576
+ # private-google-access for more information.
577
+ # Corresponds to the JSON property `usePrivateAddress`
578
+ # @return [Boolean]
579
+ attr_accessor :use_private_address
580
+ alias_method :use_private_address?, :use_private_address
375
581
 
376
582
  def initialize(**args)
377
583
  update!(**args)
@@ -379,65 +585,84 @@ module Google
379
585
 
380
586
  # Update properties of this object
381
587
  def update!(**args)
382
- @description = args[:description] if args.key?(:description)
383
- @end_time = args[:end_time] if args.key?(:end_time)
384
- @start_time = args[:start_time] if args.key?(:start_time)
588
+ @name = args[:name] if args.key?(:name)
589
+ @subnetwork = args[:subnetwork] if args.key?(:subnetwork)
590
+ @use_private_address = args[:use_private_address] if args.key?(:use_private_address)
385
591
  end
386
592
  end
387
593
 
388
- # Metadata describing an Operation.
389
- class OperationMetadata
594
+ # Configuration for a persistent disk to be attached to the VM. See https://
595
+ # cloud.google.com/compute/docs/disks/performance for more information about
596
+ # disk type, size, and performance considerations.
597
+ class PersistentDisk
390
598
  include Google::Apis::Core::Hashable
391
599
 
392
- # This field is deprecated. Use `labels` instead. Optionally provided by the
393
- # caller when submitting the request that creates the operation.
394
- # Corresponds to the JSON property `clientId`
395
- # @return [String]
396
- attr_accessor :client_id
600
+ # The size, in GB, of the disk to attach. If the size is not specified, a
601
+ # default is chosen to ensure reasonable I/O performance. If the disk type is
602
+ # specified as `local-ssd`, multiple local drives are automatically combined to
603
+ # provide the requested size. Note, however, that each physical SSD is 375GB in
604
+ # size, and no more than 8 drives can be attached to a single instance.
605
+ # Corresponds to the JSON property `sizeGb`
606
+ # @return [Fixnum]
607
+ attr_accessor :size_gb
397
608
 
398
- # The time at which the job was submitted to the Genomics service.
399
- # Corresponds to the JSON property `createTime`
609
+ # An image to put on the disk before attaching it to the VM.
610
+ # Corresponds to the JSON property `sourceImage`
400
611
  # @return [String]
401
- attr_accessor :create_time
612
+ attr_accessor :source_image
402
613
 
403
- # The time at which the job stopped running.
404
- # Corresponds to the JSON property `endTime`
614
+ # The Compute Engine disk type. If unspecified, `pd-standard` is used.
615
+ # Corresponds to the JSON property `type`
405
616
  # @return [String]
406
- attr_accessor :end_time
407
-
408
- # Optional event messages that were generated during the job's execution. This
409
- # also contains any warnings that were generated during import or export.
410
- # Corresponds to the JSON property `events`
411
- # @return [Array<Google::Apis::GenomicsV1::OperationEvent>]
412
- attr_accessor :events
617
+ attr_accessor :type
413
618
 
414
- # Optionally provided by the caller when submitting the request that creates the
415
- # operation.
416
- # Corresponds to the JSON property `labels`
417
- # @return [Hash<String,String>]
418
- attr_accessor :labels
419
-
420
- # The Google Cloud Project in which the job is scoped.
421
- # Corresponds to the JSON property `projectId`
422
- # @return [String]
423
- attr_accessor :project_id
619
+ def initialize(**args)
620
+ update!(**args)
621
+ end
424
622
 
425
- # The original request that started the operation. Note that this will be in
426
- # current version of the API. If the operation was started with v1beta2 API and
427
- # a GetOperation is performed on v1 API, a v1 request will be returned.
428
- # Corresponds to the JSON property `request`
429
- # @return [Hash<String,Object>]
430
- attr_accessor :request
623
+ # Update properties of this object
624
+ def update!(**args)
625
+ @size_gb = args[:size_gb] if args.key?(:size_gb)
626
+ @source_image = args[:source_image] if args.key?(:source_image)
627
+ @type = args[:type] if args.key?(:type)
628
+ end
629
+ end
431
630
 
432
- # Runtime metadata on this Operation.
433
- # Corresponds to the JSON property `runtimeMetadata`
434
- # @return [Hash<String,Object>]
435
- attr_accessor :runtime_metadata
631
+ # Specifies a series of actions to execute, expressed as Docker containers.
632
+ class Pipeline
633
+ include Google::Apis::Core::Hashable
436
634
 
437
- # The time at which the job began to run.
438
- # Corresponds to the JSON property `startTime`
635
+ # The list of actions to execute, in the order they are specified.
636
+ # Corresponds to the JSON property `actions`
637
+ # @return [Array<Google::Apis::GenomicsV1::Action>]
638
+ attr_accessor :actions
639
+
640
+ # Holds encrypted information that is only decrypted and stored in RAM by the
641
+ # worker VM when running the pipeline.
642
+ # Corresponds to the JSON property `encryptedEnvironment`
643
+ # @return [Google::Apis::GenomicsV1::Secret]
644
+ attr_accessor :encrypted_environment
645
+
646
+ # The environment to pass into every action. Each action can also specify
647
+ # additional environment variables but cannot delete an entry from this map (
648
+ # though they can overwrite it with a different value).
649
+ # Corresponds to the JSON property `environment`
650
+ # @return [Hash<String,String>]
651
+ attr_accessor :environment
652
+
653
+ # The system resources for the pipeline run. At least one zone or region must be
654
+ # specified or the pipeline run will fail.
655
+ # Corresponds to the JSON property `resources`
656
+ # @return [Google::Apis::GenomicsV1::Resources]
657
+ attr_accessor :resources
658
+
659
+ # The maximum amount of time to give the pipeline to complete. This includes the
660
+ # time spent waiting for a worker to be allocated. If the pipeline fails to
661
+ # complete before the timeout, it will be cancelled and the error code will be
662
+ # set to DEADLINE_EXCEEDED. If unspecified, it will default to 7 days.
663
+ # Corresponds to the JSON property `timeout`
439
664
  # @return [String]
440
- attr_accessor :start_time
665
+ attr_accessor :timeout
441
666
 
442
667
  def initialize(**args)
443
668
  update!(**args)
@@ -445,15 +670,11 @@ module Google
445
670
 
446
671
  # Update properties of this object
447
672
  def update!(**args)
448
- @client_id = args[:client_id] if args.key?(:client_id)
449
- @create_time = args[:create_time] if args.key?(:create_time)
450
- @end_time = args[:end_time] if args.key?(:end_time)
451
- @events = args[:events] if args.key?(:events)
452
- @labels = args[:labels] if args.key?(:labels)
453
- @project_id = args[:project_id] if args.key?(:project_id)
454
- @request = args[:request] if args.key?(:request)
455
- @runtime_metadata = args[:runtime_metadata] if args.key?(:runtime_metadata)
456
- @start_time = args[:start_time] if args.key?(:start_time)
673
+ @actions = args[:actions] if args.key?(:actions)
674
+ @encrypted_environment = args[:encrypted_environment] if args.key?(:encrypted_environment)
675
+ @environment = args[:environment] if args.key?(:environment)
676
+ @resources = args[:resources] if args.key?(:resources)
677
+ @timeout = args[:timeout] if args.key?(:timeout)
457
678
  end
458
679
  end
459
680
 
@@ -495,6 +716,46 @@ module Google
495
716
  end
496
717
  end
497
718
 
719
+ # The system resources for the pipeline run. At least one zone or region must be
720
+ # specified or the pipeline run will fail.
721
+ class Resources
722
+ include Google::Apis::Core::Hashable
723
+
724
+ # The project ID to allocate resources in.
725
+ # Corresponds to the JSON property `projectId`
726
+ # @return [String]
727
+ attr_accessor :project_id
728
+
729
+ # The list of regions allowed for VM allocation. If set, the `zones` field must
730
+ # not be set.
731
+ # Corresponds to the JSON property `regions`
732
+ # @return [Array<String>]
733
+ attr_accessor :regions
734
+
735
+ # Carries information about a Compute Engine VM resource.
736
+ # Corresponds to the JSON property `virtualMachine`
737
+ # @return [Google::Apis::GenomicsV1::VirtualMachine]
738
+ attr_accessor :virtual_machine
739
+
740
+ # The list of zones allowed for VM allocation. If set, the `regions` field must
741
+ # not be set.
742
+ # Corresponds to the JSON property `zones`
743
+ # @return [Array<String>]
744
+ attr_accessor :zones
745
+
746
+ def initialize(**args)
747
+ update!(**args)
748
+ end
749
+
750
+ # Update properties of this object
751
+ def update!(**args)
752
+ @project_id = args[:project_id] if args.key?(:project_id)
753
+ @regions = args[:regions] if args.key?(:regions)
754
+ @virtual_machine = args[:virtual_machine] if args.key?(:virtual_machine)
755
+ @zones = args[:zones] if args.key?(:zones)
756
+ end
757
+ end
758
+
498
759
  # The response to the RunPipeline method, returned in the operation's result
499
760
  # field on success.
500
761
  class RunPipelineResponse
@@ -509,16 +770,23 @@ module Google
509
770
  end
510
771
  end
511
772
 
512
- # Runtime metadata that will be populated in the runtimeMetadata field of the
513
- # Operation associated with a RunPipeline execution.
514
- class RuntimeMetadata
773
+ # Holds encrypted information that is only decrypted and stored in RAM by the
774
+ # worker VM when running the pipeline.
775
+ class Secret
515
776
  include Google::Apis::Core::Hashable
516
777
 
517
- # Describes a Compute Engine resource that is being managed by a running
518
- # pipeline.
519
- # Corresponds to the JSON property `computeEngine`
520
- # @return [Google::Apis::GenomicsV1::ComputeEngine]
521
- attr_accessor :compute_engine
778
+ # The value of the cipherText response from the `encrypt` method. This field is
779
+ # intentionally unaudited.
780
+ # Corresponds to the JSON property `cipherText`
781
+ # @return [String]
782
+ attr_accessor :cipher_text
783
+
784
+ # The name of the Cloud KMS key that will be used to decrypt the secret value.
785
+ # The VM service account must have the required permissions and authentication
786
+ # scopes to invoke the `decrypt` method on the specified key.
787
+ # Corresponds to the JSON property `keyName`
788
+ # @return [String]
789
+ attr_accessor :key_name
522
790
 
523
791
  def initialize(**args)
524
792
  update!(**args)
@@ -526,36 +794,26 @@ module Google
526
794
 
527
795
  # Update properties of this object
528
796
  def update!(**args)
529
- @compute_engine = args[:compute_engine] if args.key?(:compute_engine)
797
+ @cipher_text = args[:cipher_text] if args.key?(:cipher_text)
798
+ @key_name = args[:key_name] if args.key?(:key_name)
530
799
  end
531
800
  end
532
801
 
533
- # The `Status` type defines a logical error model that is suitable for different
534
- # programming environments, including REST APIs and RPC APIs. It is used by [
535
- # gRPC](https://github.com/grpc). Each `Status` message contains three pieces of
536
- # data: error code, error message, and error details. You can find out more
537
- # about this error model and how to work with it in the [API Design Guide](https:
538
- # //cloud.google.com/apis/design/errors).
539
- class Status
802
+ # Carries information about a Google Cloud service account.
803
+ class ServiceAccount
540
804
  include Google::Apis::Core::Hashable
541
805
 
542
- # The status code, which should be an enum value of google.rpc.Code.
543
- # Corresponds to the JSON property `code`
544
- # @return [Fixnum]
545
- attr_accessor :code
546
-
547
- # A list of messages that carry the error details. There is a common set of
548
- # message types for APIs to use.
549
- # Corresponds to the JSON property `details`
550
- # @return [Array<Hash<String,Object>>]
551
- attr_accessor :details
552
-
553
- # A developer-facing error message, which should be in English. Any user-facing
554
- # error message should be localized and sent in the google.rpc.Status.details
555
- # field, or localized by the client.
556
- # Corresponds to the JSON property `message`
806
+ # Email address of the service account. If not specified, the default Compute
807
+ # Engine service account for the project will be used.
808
+ # Corresponds to the JSON property `email`
557
809
  # @return [String]
558
- attr_accessor :message
810
+ attr_accessor :email
811
+
812
+ # List of scopes to be enabled for this service account on the VM, in addition
813
+ # to the cloud-platform API scope that will be added by default.
814
+ # Corresponds to the JSON property `scopes`
815
+ # @return [Array<String>]
816
+ attr_accessor :scopes
559
817
 
560
818
  def initialize(**args)
561
819
  update!(**args)
@@ -563,9 +821,8 @@ module Google
563
821
 
564
822
  # Update properties of this object
565
823
  def update!(**args)
566
- @code = args[:code] if args.key?(:code)
567
- @details = args[:details] if args.key?(:details)
568
- @message = args[:message] if args.key?(:message)
824
+ @email = args[:email] if args.key?(:email)
825
+ @scopes = args[:scopes] if args.key?(:scopes)
569
826
  end
570
827
  end
571
828
 
@@ -597,6 +854,186 @@ module Google
597
854
  end
598
855
  end
599
856
 
857
+ # Carries information about a Compute Engine VM resource.
858
+ class VirtualMachine
859
+ include Google::Apis::Core::Hashable
860
+
861
+ # The list of accelerators to attach to the VM.
862
+ # Corresponds to the JSON property `accelerators`
863
+ # @return [Array<Google::Apis::GenomicsV1::Accelerator>]
864
+ attr_accessor :accelerators
865
+
866
+ # The size of the boot disk, in GB. The boot disk must be large enough to
867
+ # accommodate all of the Docker images from each action in the pipeline at the
868
+ # same time. If not specified, a small but reasonable default value is used.
869
+ # Corresponds to the JSON property `bootDiskSizeGb`
870
+ # @return [Fixnum]
871
+ attr_accessor :boot_disk_size_gb
872
+
873
+ # The host operating system image to use. Currently, only Container-Optimized OS
874
+ # images can be used. The default value is `projects/cos-cloud/global/images/
875
+ # family/cos-stable`, which selects the latest stable release of Container-
876
+ # Optimized OS. This option is provided to allow testing against the beta
877
+ # release of the operating system to ensure that the new version does not
878
+ # interact negatively with production pipelines. To test a pipeline against the
879
+ # beta release of Container-Optimized OS, use the value `projects/cos-cloud/
880
+ # global/images/family/cos-beta`.
881
+ # Corresponds to the JSON property `bootImage`
882
+ # @return [String]
883
+ attr_accessor :boot_image
884
+
885
+ # The CPU platform to request. An instance based on a newer platform can be
886
+ # allocated, but never one with fewer capabilities. The value of this parameter
887
+ # must be a valid Compute Engine CPU platform name (such as "Intel Skylake").
888
+ # This parameter is only useful for carefully optimized work loads where the CPU
889
+ # platform has a significant impact. For more information about the effect of
890
+ # this parameter, see https://cloud.google.com/compute/docs/instances/specify-
891
+ # min-cpu-platform.
892
+ # Corresponds to the JSON property `cpuPlatform`
893
+ # @return [String]
894
+ attr_accessor :cpu_platform
895
+
896
+ # The list of disks to create and attach to the VM. Specify either the `volumes[]
897
+ # ` field or the `disks[]` field, but not both.
898
+ # Corresponds to the JSON property `disks`
899
+ # @return [Array<Google::Apis::GenomicsV1::Disk>]
900
+ attr_accessor :disks
901
+
902
+ # The Compute Engine Disk Images to use as a Docker cache. The disks will be
903
+ # mounted into the Docker folder in a way that the images present in the cache
904
+ # will not need to be pulled. The digests of the cached images must match those
905
+ # of the tags used or the latest version will still be pulled. The root
906
+ # directory of the ext4 image must contain `image` and `overlay2` directories
907
+ # copied from the Docker directory of a VM where the desired Docker images have
908
+ # already been pulled. Any images pulled that are not cached will be stored on
909
+ # the first cache disk instead of the boot disk. Only a single image is
910
+ # supported.
911
+ # Corresponds to the JSON property `dockerCacheImages`
912
+ # @return [Array<String>]
913
+ attr_accessor :docker_cache_images
914
+
915
+ # Whether Stackdriver monitoring should be enabled on the VM.
916
+ # Corresponds to the JSON property `enableStackdriverMonitoring`
917
+ # @return [Boolean]
918
+ attr_accessor :enable_stackdriver_monitoring
919
+ alias_method :enable_stackdriver_monitoring?, :enable_stackdriver_monitoring
920
+
921
+ # Optional set of labels to apply to the VM and any attached disk resources.
922
+ # These labels must adhere to the [name and value restrictions](https://cloud.
923
+ # google.com/compute/docs/labeling-resources) on VM labels imposed by Compute
924
+ # Engine. Labels keys with the prefix 'google-' are reserved for use by Google.
925
+ # Labels applied at creation time to the VM. Applied on a best-effort basis to
926
+ # attached disk resources shortly after VM creation.
927
+ # Corresponds to the JSON property `labels`
928
+ # @return [Hash<String,String>]
929
+ attr_accessor :labels
930
+
931
+ # Required. The machine type of the virtual machine to create. Must be the short
932
+ # name of a standard machine type (such as "n1-standard-1") or a custom machine
933
+ # type (such as "custom-1-4096", where "1" indicates the number of vCPUs and "
934
+ # 4096" indicates the memory in MB). See [Creating an instance with a custom
935
+ # machine type](https://cloud.google.com/compute/docs/instances/creating-
936
+ # instance-with-custom-machine-type#create) for more specifications on creating
937
+ # a custom machine type.
938
+ # Corresponds to the JSON property `machineType`
939
+ # @return [String]
940
+ attr_accessor :machine_type
941
+
942
+ # VM networking options.
943
+ # Corresponds to the JSON property `network`
944
+ # @return [Google::Apis::GenomicsV1::Network]
945
+ attr_accessor :network
946
+
947
+ # The NVIDIA driver version to use when attaching an NVIDIA GPU accelerator. The
948
+ # version specified here must be compatible with the GPU libraries contained in
949
+ # the container being executed, and must be one of the drivers hosted in the `
950
+ # nvidia-drivers-us-public` bucket on Google Cloud Storage.
951
+ # Corresponds to the JSON property `nvidiaDriverVersion`
952
+ # @return [String]
953
+ attr_accessor :nvidia_driver_version
954
+
955
+ # If true, allocate a preemptible VM.
956
+ # Corresponds to the JSON property `preemptible`
957
+ # @return [Boolean]
958
+ attr_accessor :preemptible
959
+ alias_method :preemptible?, :preemptible
960
+
961
+ # Carries information about a Google Cloud service account.
962
+ # Corresponds to the JSON property `serviceAccount`
963
+ # @return [Google::Apis::GenomicsV1::ServiceAccount]
964
+ attr_accessor :service_account
965
+
966
+ # The list of disks and other storage to create or attach to the VM. Specify
967
+ # either the `volumes[]` field or the `disks[]` field, but not both.
968
+ # Corresponds to the JSON property `volumes`
969
+ # @return [Array<Google::Apis::GenomicsV1::Volume>]
970
+ attr_accessor :volumes
971
+
972
+ def initialize(**args)
973
+ update!(**args)
974
+ end
975
+
976
+ # Update properties of this object
977
+ def update!(**args)
978
+ @accelerators = args[:accelerators] if args.key?(:accelerators)
979
+ @boot_disk_size_gb = args[:boot_disk_size_gb] if args.key?(:boot_disk_size_gb)
980
+ @boot_image = args[:boot_image] if args.key?(:boot_image)
981
+ @cpu_platform = args[:cpu_platform] if args.key?(:cpu_platform)
982
+ @disks = args[:disks] if args.key?(:disks)
983
+ @docker_cache_images = args[:docker_cache_images] if args.key?(:docker_cache_images)
984
+ @enable_stackdriver_monitoring = args[:enable_stackdriver_monitoring] if args.key?(:enable_stackdriver_monitoring)
985
+ @labels = args[:labels] if args.key?(:labels)
986
+ @machine_type = args[:machine_type] if args.key?(:machine_type)
987
+ @network = args[:network] if args.key?(:network)
988
+ @nvidia_driver_version = args[:nvidia_driver_version] if args.key?(:nvidia_driver_version)
989
+ @preemptible = args[:preemptible] if args.key?(:preemptible)
990
+ @service_account = args[:service_account] if args.key?(:service_account)
991
+ @volumes = args[:volumes] if args.key?(:volumes)
992
+ end
993
+ end
994
+
995
+ # Carries information about storage that can be attached to a VM. Specify either
996
+ # `Volume` or `Disk`, but not both.
997
+ class Volume
998
+ include Google::Apis::Core::Hashable
999
+
1000
+ # Configuration for an existing disk to be attached to the VM.
1001
+ # Corresponds to the JSON property `existingDisk`
1002
+ # @return [Google::Apis::GenomicsV1::ExistingDisk]
1003
+ attr_accessor :existing_disk
1004
+
1005
+ # Configuration for an `NFSMount` to be attached to the VM.
1006
+ # Corresponds to the JSON property `nfsMount`
1007
+ # @return [Google::Apis::GenomicsV1::NfsMount]
1008
+ attr_accessor :nfs_mount
1009
+
1010
+ # Configuration for a persistent disk to be attached to the VM. See https://
1011
+ # cloud.google.com/compute/docs/disks/performance for more information about
1012
+ # disk type, size, and performance considerations.
1013
+ # Corresponds to the JSON property `persistentDisk`
1014
+ # @return [Google::Apis::GenomicsV1::PersistentDisk]
1015
+ attr_accessor :persistent_disk
1016
+
1017
+ # A user-supplied name for the volume. Used when mounting the volume into `
1018
+ # Actions`. The name must contain only upper and lowercase alphanumeric
1019
+ # characters and hyphens and cannot start with a hyphen.
1020
+ # Corresponds to the JSON property `volume`
1021
+ # @return [String]
1022
+ attr_accessor :volume
1023
+
1024
+ def initialize(**args)
1025
+ update!(**args)
1026
+ end
1027
+
1028
+ # Update properties of this object
1029
+ def update!(**args)
1030
+ @existing_disk = args[:existing_disk] if args.key?(:existing_disk)
1031
+ @nfs_mount = args[:nfs_mount] if args.key?(:nfs_mount)
1032
+ @persistent_disk = args[:persistent_disk] if args.key?(:persistent_disk)
1033
+ @volume = args[:volume] if args.key?(:volume)
1034
+ end
1035
+ end
1036
+
600
1037
  # An event generated after a worker VM has been assigned to run the pipeline.
601
1038
  class WorkerAssignedEvent
602
1039
  include Google::Apis::Core::Hashable