google-apis-notebooks_v2 0.2.0 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -22,6 +22,34 @@ module Google
22
22
  module Apis
23
23
  module NotebooksV2
24
24
 
25
+ # An accelerator configuration for a VM instance Definition of a hardware
26
+ # accelerator. Note that there is no check on `type` and `core_count`
27
+ # combinations. TPUs are not supported. See [GPUs on Compute Engine](https://
28
+ # cloud.google.com/compute/docs/gpus/#gpus-list) to find a valid combination.
29
+ class AcceleratorConfig
30
+ include Google::Apis::Core::Hashable
31
+
32
+ # Optional. Count of cores of this accelerator.
33
+ # Corresponds to the JSON property `coreCount`
34
+ # @return [Fixnum]
35
+ attr_accessor :core_count
36
+
37
+ # Optional. Type of this accelerator.
38
+ # Corresponds to the JSON property `type`
39
+ # @return [String]
40
+ attr_accessor :type
41
+
42
+ def initialize(**args)
43
+ update!(**args)
44
+ end
45
+
46
+ # Update properties of this object
47
+ def update!(**args)
48
+ @core_count = args[:core_count] if args.key?(:core_count)
49
+ @type = args[:type] if args.key?(:type)
50
+ end
51
+ end
52
+
25
53
  # Associates `members`, or principals, with a `role`.
26
54
  class Binding
27
55
  include Google::Apis::Core::Hashable
@@ -98,6 +126,49 @@ module Google
98
126
  end
99
127
  end
100
128
 
129
+ # The definition of a boot disk.
130
+ class BootDisk
131
+ include Google::Apis::Core::Hashable
132
+
133
+ # Optional. Input only. Disk encryption method used on the boot and data disks,
134
+ # defaults to GMEK.
135
+ # Corresponds to the JSON property `diskEncryption`
136
+ # @return [String]
137
+ attr_accessor :disk_encryption
138
+
139
+ # Optional. The size of the boot disk in GB attached to this instance, up to a
140
+ # maximum of 64000 GB (64 TB). If not specified, this defaults to the
141
+ # recommended value of 150GB.
142
+ # Corresponds to the JSON property `diskSizeGb`
143
+ # @return [Fixnum]
144
+ attr_accessor :disk_size_gb
145
+
146
+ # Optional. Indicates the type of the disk.
147
+ # Corresponds to the JSON property `diskType`
148
+ # @return [String]
149
+ attr_accessor :disk_type
150
+
151
+ # Optional. Input only. The KMS key used to encrypt the disks, only applicable
152
+ # if disk_encryption is CMEK. Format: `projects/`project_id`/locations/`location`
153
+ # /keyRings/`key_ring_id`/cryptoKeys/`key_id`` Learn more about using your own
154
+ # encryption keys.
155
+ # Corresponds to the JSON property `kmsKey`
156
+ # @return [String]
157
+ attr_accessor :kms_key
158
+
159
+ def initialize(**args)
160
+ update!(**args)
161
+ end
162
+
163
+ # Update properties of this object
164
+ def update!(**args)
165
+ @disk_encryption = args[:disk_encryption] if args.key?(:disk_encryption)
166
+ @disk_size_gb = args[:disk_size_gb] if args.key?(:disk_size_gb)
167
+ @disk_type = args[:disk_type] if args.key?(:disk_type)
168
+ @kms_key = args[:kms_key] if args.key?(:kms_key)
169
+ end
170
+ end
171
+
101
172
  # The request message for Operations.CancelOperation.
102
173
  class CancelOperationRequest
103
174
  include Google::Apis::Core::Hashable
@@ -111,6 +182,197 @@ module Google
111
182
  end
112
183
  end
113
184
 
185
+ # Response for checking if a notebook instance is upgradeable.
186
+ class CheckInstanceUpgradabilityResponse
187
+ include Google::Apis::Core::Hashable
188
+
189
+ # The new image self link this instance will be upgraded to if calling the
190
+ # upgrade endpoint. This field will only be populated if field upgradeable is
191
+ # true.
192
+ # Corresponds to the JSON property `upgradeImage`
193
+ # @return [String]
194
+ attr_accessor :upgrade_image
195
+
196
+ # Additional information about upgrade.
197
+ # Corresponds to the JSON property `upgradeInfo`
198
+ # @return [String]
199
+ attr_accessor :upgrade_info
200
+
201
+ # The version this instance will be upgraded to if calling the upgrade endpoint.
202
+ # This field will only be populated if field upgradeable is true.
203
+ # Corresponds to the JSON property `upgradeVersion`
204
+ # @return [String]
205
+ attr_accessor :upgrade_version
206
+
207
+ # If an instance is upgradeable.
208
+ # Corresponds to the JSON property `upgradeable`
209
+ # @return [Boolean]
210
+ attr_accessor :upgradeable
211
+ alias_method :upgradeable?, :upgradeable
212
+
213
+ def initialize(**args)
214
+ update!(**args)
215
+ end
216
+
217
+ # Update properties of this object
218
+ def update!(**args)
219
+ @upgrade_image = args[:upgrade_image] if args.key?(:upgrade_image)
220
+ @upgrade_info = args[:upgrade_info] if args.key?(:upgrade_info)
221
+ @upgrade_version = args[:upgrade_version] if args.key?(:upgrade_version)
222
+ @upgradeable = args[:upgradeable] if args.key?(:upgradeable)
223
+ end
224
+ end
225
+
226
+ # Definition of a container image for starting a notebook instance with the
227
+ # environment installed in a container.
228
+ class ContainerImage
229
+ include Google::Apis::Core::Hashable
230
+
231
+ # Required. The path to the container image repository. For example: `gcr.io/`
232
+ # project_id`/`image_name``
233
+ # Corresponds to the JSON property `repository`
234
+ # @return [String]
235
+ attr_accessor :repository
236
+
237
+ # Optional. The tag of the container image. If not specified, this defaults to
238
+ # the latest tag.
239
+ # Corresponds to the JSON property `tag`
240
+ # @return [String]
241
+ attr_accessor :tag
242
+
243
+ def initialize(**args)
244
+ update!(**args)
245
+ end
246
+
247
+ # Update properties of this object
248
+ def update!(**args)
249
+ @repository = args[:repository] if args.key?(:repository)
250
+ @tag = args[:tag] if args.key?(:tag)
251
+ end
252
+ end
253
+
254
+ # An instance-attached disk resource.
255
+ class DataDisk
256
+ include Google::Apis::Core::Hashable
257
+
258
+ # Optional. Input only. Disk encryption method used on the boot and data disks,
259
+ # defaults to GMEK.
260
+ # Corresponds to the JSON property `diskEncryption`
261
+ # @return [String]
262
+ attr_accessor :disk_encryption
263
+
264
+ # Optional. The size of the disk in GB attached to this VM instance, up to a
265
+ # maximum of 64000 GB (64 TB). If not specified, this defaults to 100.
266
+ # Corresponds to the JSON property `diskSizeGb`
267
+ # @return [Fixnum]
268
+ attr_accessor :disk_size_gb
269
+
270
+ # Optional. Input only. Indicates the type of the disk.
271
+ # Corresponds to the JSON property `diskType`
272
+ # @return [String]
273
+ attr_accessor :disk_type
274
+
275
+ # Optional. Input only. The KMS key used to encrypt the disks, only applicable
276
+ # if disk_encryption is CMEK. Format: `projects/`project_id`/locations/`location`
277
+ # /keyRings/`key_ring_id`/cryptoKeys/`key_id`` Learn more about using your own
278
+ # encryption keys.
279
+ # Corresponds to the JSON property `kmsKey`
280
+ # @return [String]
281
+ attr_accessor :kms_key
282
+
283
+ def initialize(**args)
284
+ update!(**args)
285
+ end
286
+
287
+ # Update properties of this object
288
+ def update!(**args)
289
+ @disk_encryption = args[:disk_encryption] if args.key?(:disk_encryption)
290
+ @disk_size_gb = args[:disk_size_gb] if args.key?(:disk_size_gb)
291
+ @disk_type = args[:disk_type] if args.key?(:disk_type)
292
+ @kms_key = args[:kms_key] if args.key?(:kms_key)
293
+ end
294
+ end
295
+
296
+ # Request for creating a notebook instance diagnostic file.
297
+ class DiagnoseInstanceRequest
298
+ include Google::Apis::Core::Hashable
299
+
300
+ # Defines flags that are used to run the diagnostic tool
301
+ # Corresponds to the JSON property `diagnosticConfig`
302
+ # @return [Google::Apis::NotebooksV2::DiagnosticConfig]
303
+ attr_accessor :diagnostic_config
304
+
305
+ # Optional. Maxmium amount of time in minutes before the operation times out.
306
+ # Corresponds to the JSON property `timeoutMinutes`
307
+ # @return [Fixnum]
308
+ attr_accessor :timeout_minutes
309
+
310
+ def initialize(**args)
311
+ update!(**args)
312
+ end
313
+
314
+ # Update properties of this object
315
+ def update!(**args)
316
+ @diagnostic_config = args[:diagnostic_config] if args.key?(:diagnostic_config)
317
+ @timeout_minutes = args[:timeout_minutes] if args.key?(:timeout_minutes)
318
+ end
319
+ end
320
+
321
+ # Defines flags that are used to run the diagnostic tool
322
+ class DiagnosticConfig
323
+ include Google::Apis::Core::Hashable
324
+
325
+ # Optional. Enables flag to copy all `/home/jupyter` folder contents
326
+ # Corresponds to the JSON property `enableCopyHomeFilesFlag`
327
+ # @return [Boolean]
328
+ attr_accessor :enable_copy_home_files_flag
329
+ alias_method :enable_copy_home_files_flag?, :enable_copy_home_files_flag
330
+
331
+ # Optional. Enables flag to capture packets from the instance for 30 seconds
332
+ # Corresponds to the JSON property `enablePacketCaptureFlag`
333
+ # @return [Boolean]
334
+ attr_accessor :enable_packet_capture_flag
335
+ alias_method :enable_packet_capture_flag?, :enable_packet_capture_flag
336
+
337
+ # Optional. Enables flag to repair service for instance
338
+ # Corresponds to the JSON property `enableRepairFlag`
339
+ # @return [Boolean]
340
+ attr_accessor :enable_repair_flag
341
+ alias_method :enable_repair_flag?, :enable_repair_flag
342
+
343
+ # Required. User Cloud Storage bucket location (REQUIRED). Must be formatted
344
+ # with path prefix (`gs://$GCS_BUCKET`). Permissions: User Managed Notebooks: -
345
+ # storage.buckets.writer: Must be given to the project's service account
346
+ # attached to VM. Google Managed Notebooks: - storage.buckets.writer: Must be
347
+ # given to the project's service account or user credentials attached to VM
348
+ # depending on authentication mode. Cloud Storage bucket Log file will be
349
+ # written to `gs://$GCS_BUCKET/$RELATIVE_PATH/$VM_DATE_$TIME.tar.gz`
350
+ # Corresponds to the JSON property `gcsBucket`
351
+ # @return [String]
352
+ attr_accessor :gcs_bucket
353
+
354
+ # Optional. Defines the relative storage path in the Cloud Storage bucket where
355
+ # the diagnostic logs will be written: Default path will be the root directory
356
+ # of the Cloud Storage bucket (`gs://$GCS_BUCKET/$DATE_$TIME.tar.gz`) Example of
357
+ # full path where Log file will be written: `gs://$GCS_BUCKET/$RELATIVE_PATH/`
358
+ # Corresponds to the JSON property `relativePath`
359
+ # @return [String]
360
+ attr_accessor :relative_path
361
+
362
+ def initialize(**args)
363
+ update!(**args)
364
+ end
365
+
366
+ # Update properties of this object
367
+ def update!(**args)
368
+ @enable_copy_home_files_flag = args[:enable_copy_home_files_flag] if args.key?(:enable_copy_home_files_flag)
369
+ @enable_packet_capture_flag = args[:enable_packet_capture_flag] if args.key?(:enable_packet_capture_flag)
370
+ @enable_repair_flag = args[:enable_repair_flag] if args.key?(:enable_repair_flag)
371
+ @gcs_bucket = args[:gcs_bucket] if args.key?(:gcs_bucket)
372
+ @relative_path = args[:relative_path] if args.key?(:relative_path)
373
+ end
374
+ end
375
+
114
376
  # A generic empty message that you can re-use to avoid defining duplicated empty
115
377
  # messages in your APIs. A typical example is to use it as the request or the
116
378
  # response type of an API method. For instance: service Foo ` rpc Bar(google.
@@ -127,6 +389,37 @@ module Google
127
389
  end
128
390
  end
129
391
 
392
+ # The definition of an Event for a managed / semi-managed notebook instance.
393
+ class Event
394
+ include Google::Apis::Core::Hashable
395
+
396
+ # Optional. Event details. This field is used to pass event information.
397
+ # Corresponds to the JSON property `details`
398
+ # @return [Hash<String,String>]
399
+ attr_accessor :details
400
+
401
+ # Optional. Event report time.
402
+ # Corresponds to the JSON property `reportTime`
403
+ # @return [String]
404
+ attr_accessor :report_time
405
+
406
+ # Optional. Event type.
407
+ # Corresponds to the JSON property `type`
408
+ # @return [String]
409
+ attr_accessor :type
410
+
411
+ def initialize(**args)
412
+ update!(**args)
413
+ end
414
+
415
+ # Update properties of this object
416
+ def update!(**args)
417
+ @details = args[:details] if args.key?(:details)
418
+ @report_time = args[:report_time] if args.key?(:report_time)
419
+ @type = args[:type] if args.key?(:type)
420
+ end
421
+ end
422
+
130
423
  # Represents a textual expression in the Common Expression Language (CEL) syntax.
131
424
  # CEL is a C-like expression language. The syntax and semantics of CEL are
132
425
  # documented at https://github.com/google/cel-spec. Example (Comparison): title:
@@ -181,6 +474,289 @@ module Google
181
474
  end
182
475
  end
183
476
 
477
+ # A GPU driver configuration
478
+ class GpuDriverConfig
479
+ include Google::Apis::Core::Hashable
480
+
481
+ # Optional. Specify a custom Cloud Storage path where the GPU driver is stored.
482
+ # If not specified, we'll automatically choose from official GPU drivers.
483
+ # Corresponds to the JSON property `customGpuDriverPath`
484
+ # @return [String]
485
+ attr_accessor :custom_gpu_driver_path
486
+
487
+ # Optional. Whether the end user authorizes Google Cloud to install GPU driver
488
+ # on this VM instance. If this field is empty or set to false, the GPU driver
489
+ # won't be installed. Only applicable to instances with GPUs.
490
+ # Corresponds to the JSON property `enableGpuDriver`
491
+ # @return [Boolean]
492
+ attr_accessor :enable_gpu_driver
493
+ alias_method :enable_gpu_driver?, :enable_gpu_driver
494
+
495
+ def initialize(**args)
496
+ update!(**args)
497
+ end
498
+
499
+ # Update properties of this object
500
+ def update!(**args)
501
+ @custom_gpu_driver_path = args[:custom_gpu_driver_path] if args.key?(:custom_gpu_driver_path)
502
+ @enable_gpu_driver = args[:enable_gpu_driver] if args.key?(:enable_gpu_driver)
503
+ end
504
+ end
505
+
506
+ # The definition of how to configure a VM instance outside of Resources and
507
+ # Identity.
508
+ class GceSetup
509
+ include Google::Apis::Core::Hashable
510
+
511
+ # Optional. The hardware accelerators used on this instance. If you use
512
+ # accelerators, make sure that your configuration has [enough vCPUs and memory
513
+ # to support the `machine_type` you have selected](https://cloud.google.com/
514
+ # compute/docs/gpus/#gpus-list). Currently supports only one accelerator
515
+ # configuration.
516
+ # Corresponds to the JSON property `acceleratorConfigs`
517
+ # @return [Array<Google::Apis::NotebooksV2::AcceleratorConfig>]
518
+ attr_accessor :accelerator_configs
519
+
520
+ # The definition of a boot disk.
521
+ # Corresponds to the JSON property `bootDisk`
522
+ # @return [Google::Apis::NotebooksV2::BootDisk]
523
+ attr_accessor :boot_disk
524
+
525
+ # Definition of a container image for starting a notebook instance with the
526
+ # environment installed in a container.
527
+ # Corresponds to the JSON property `containerImage`
528
+ # @return [Google::Apis::NotebooksV2::ContainerImage]
529
+ attr_accessor :container_image
530
+
531
+ # Optional. Data disks attached to the VM instance. Currently supports only one
532
+ # data disk.
533
+ # Corresponds to the JSON property `dataDisks`
534
+ # @return [Array<Google::Apis::NotebooksV2::DataDisk>]
535
+ attr_accessor :data_disks
536
+
537
+ # Optional. If true, no external IP will be assigned to this VM instance.
538
+ # Corresponds to the JSON property `disablePublicIp`
539
+ # @return [Boolean]
540
+ attr_accessor :disable_public_ip
541
+ alias_method :disable_public_ip?, :disable_public_ip
542
+
543
+ # Optional. Flag to enable ip forwarding or not, default false/off. https://
544
+ # cloud.google.com/vpc/docs/using-routes#canipforward
545
+ # Corresponds to the JSON property `enableIpForwarding`
546
+ # @return [Boolean]
547
+ attr_accessor :enable_ip_forwarding
548
+ alias_method :enable_ip_forwarding?, :enable_ip_forwarding
549
+
550
+ # A GPU driver configuration
551
+ # Corresponds to the JSON property `gpuDriverConfig`
552
+ # @return [Google::Apis::NotebooksV2::GpuDriverConfig]
553
+ attr_accessor :gpu_driver_config
554
+
555
+ # Optional. The machine type of the VM instance. https://cloud.google.com/
556
+ # compute/docs/machine-resource
557
+ # Corresponds to the JSON property `machineType`
558
+ # @return [String]
559
+ attr_accessor :machine_type
560
+
561
+ # Optional. Custom metadata to apply to this instance.
562
+ # Corresponds to the JSON property `metadata`
563
+ # @return [Hash<String,String>]
564
+ attr_accessor :metadata
565
+
566
+ # Optional. The network interfaces for the VM. Supports only one interface.
567
+ # Corresponds to the JSON property `networkInterfaces`
568
+ # @return [Array<Google::Apis::NotebooksV2::NetworkInterface>]
569
+ attr_accessor :network_interfaces
570
+
571
+ # Optional. The service account that serves as an identity for the VM instance.
572
+ # Currently supports only one service account.
573
+ # Corresponds to the JSON property `serviceAccounts`
574
+ # @return [Array<Google::Apis::NotebooksV2::ServiceAccount>]
575
+ attr_accessor :service_accounts
576
+
577
+ # A set of Shielded Instance options. See [Images using supported Shielded VM
578
+ # features](https://cloud.google.com/compute/docs/instances/modifying-shielded-
579
+ # vm). Not all combinations are valid.
580
+ # Corresponds to the JSON property `shieldedInstanceConfig`
581
+ # @return [Google::Apis::NotebooksV2::ShieldedInstanceConfig]
582
+ attr_accessor :shielded_instance_config
583
+
584
+ # Optional. The Compute Engine tags to add to runtime (see [Tagging instances](
585
+ # https://cloud.google.com/compute/docs/label-or-tag-resources#tags)).
586
+ # Corresponds to the JSON property `tags`
587
+ # @return [Array<String>]
588
+ attr_accessor :tags
589
+
590
+ # Definition of a custom Compute Engine virtual machine image for starting a
591
+ # notebook instance with the environment installed directly on the VM.
592
+ # Corresponds to the JSON property `vmImage`
593
+ # @return [Google::Apis::NotebooksV2::VmImage]
594
+ attr_accessor :vm_image
595
+
596
+ def initialize(**args)
597
+ update!(**args)
598
+ end
599
+
600
+ # Update properties of this object
601
+ def update!(**args)
602
+ @accelerator_configs = args[:accelerator_configs] if args.key?(:accelerator_configs)
603
+ @boot_disk = args[:boot_disk] if args.key?(:boot_disk)
604
+ @container_image = args[:container_image] if args.key?(:container_image)
605
+ @data_disks = args[:data_disks] if args.key?(:data_disks)
606
+ @disable_public_ip = args[:disable_public_ip] if args.key?(:disable_public_ip)
607
+ @enable_ip_forwarding = args[:enable_ip_forwarding] if args.key?(:enable_ip_forwarding)
608
+ @gpu_driver_config = args[:gpu_driver_config] if args.key?(:gpu_driver_config)
609
+ @machine_type = args[:machine_type] if args.key?(:machine_type)
610
+ @metadata = args[:metadata] if args.key?(:metadata)
611
+ @network_interfaces = args[:network_interfaces] if args.key?(:network_interfaces)
612
+ @service_accounts = args[:service_accounts] if args.key?(:service_accounts)
613
+ @shielded_instance_config = args[:shielded_instance_config] if args.key?(:shielded_instance_config)
614
+ @tags = args[:tags] if args.key?(:tags)
615
+ @vm_image = args[:vm_image] if args.key?(:vm_image)
616
+ end
617
+ end
618
+
619
+ # The definition of a notebook instance.
620
+ class Instance
621
+ include Google::Apis::Core::Hashable
622
+
623
+ # Output only. Instance creation time.
624
+ # Corresponds to the JSON property `createTime`
625
+ # @return [String]
626
+ attr_accessor :create_time
627
+
628
+ # Output only. Email address of entity that sent original CreateInstance request.
629
+ # Corresponds to the JSON property `creator`
630
+ # @return [String]
631
+ attr_accessor :creator
632
+
633
+ # Optional. If true, the notebook instance will not register with the proxy.
634
+ # Corresponds to the JSON property `disableProxyAccess`
635
+ # @return [Boolean]
636
+ attr_accessor :disable_proxy_access
637
+ alias_method :disable_proxy_access?, :disable_proxy_access
638
+
639
+ # The definition of how to configure a VM instance outside of Resources and
640
+ # Identity.
641
+ # Corresponds to the JSON property `gceSetup`
642
+ # @return [Google::Apis::NotebooksV2::GceSetup]
643
+ attr_accessor :gce_setup
644
+
645
+ # Output only. Additional information about instance health. Example: healthInfo"
646
+ # : ` "docker_proxy_agent_status": "1", "docker_status": "1", "
647
+ # jupyterlab_api_status": "-1", "jupyterlab_status": "-1", "updated": "2020-10-
648
+ # 18 09:40:03.573409" `
649
+ # Corresponds to the JSON property `healthInfo`
650
+ # @return [Hash<String,String>]
651
+ attr_accessor :health_info
652
+
653
+ # Output only. Instance health_state.
654
+ # Corresponds to the JSON property `healthState`
655
+ # @return [String]
656
+ attr_accessor :health_state
657
+
658
+ # Output only. Unique ID of the resource.
659
+ # Corresponds to the JSON property `id`
660
+ # @return [String]
661
+ attr_accessor :id
662
+
663
+ # Optional. Input only. The owner of this instance after creation. Format: `
664
+ # alias@example.com` Currently supports one owner only. If not specified, all of
665
+ # the service account users of your VM instance's service account can use the
666
+ # instance.
667
+ # Corresponds to the JSON property `instanceOwners`
668
+ # @return [Array<String>]
669
+ attr_accessor :instance_owners
670
+
671
+ # Optional. Labels to apply to this instance. These can be later modified by the
672
+ # UpdateInstance method.
673
+ # Corresponds to the JSON property `labels`
674
+ # @return [Hash<String,String>]
675
+ attr_accessor :labels
676
+
677
+ # Output only. The name of this notebook instance. Format: `projects/`project_id`
678
+ # /locations/`location`/instances/`instance_id``
679
+ # Corresponds to the JSON property `name`
680
+ # @return [String]
681
+ attr_accessor :name
682
+
683
+ # Output only. The proxy endpoint that is used to access the Jupyter notebook.
684
+ # Corresponds to the JSON property `proxyUri`
685
+ # @return [String]
686
+ attr_accessor :proxy_uri
687
+
688
+ # Output only. The state of this instance.
689
+ # Corresponds to the JSON property `state`
690
+ # @return [String]
691
+ attr_accessor :state
692
+
693
+ # Output only. Instance update time.
694
+ # Corresponds to the JSON property `updateTime`
695
+ # @return [String]
696
+ attr_accessor :update_time
697
+
698
+ # Output only. The upgrade history of this instance.
699
+ # Corresponds to the JSON property `upgradeHistory`
700
+ # @return [Array<Google::Apis::NotebooksV2::UpgradeHistoryEntry>]
701
+ attr_accessor :upgrade_history
702
+
703
+ def initialize(**args)
704
+ update!(**args)
705
+ end
706
+
707
+ # Update properties of this object
708
+ def update!(**args)
709
+ @create_time = args[:create_time] if args.key?(:create_time)
710
+ @creator = args[:creator] if args.key?(:creator)
711
+ @disable_proxy_access = args[:disable_proxy_access] if args.key?(:disable_proxy_access)
712
+ @gce_setup = args[:gce_setup] if args.key?(:gce_setup)
713
+ @health_info = args[:health_info] if args.key?(:health_info)
714
+ @health_state = args[:health_state] if args.key?(:health_state)
715
+ @id = args[:id] if args.key?(:id)
716
+ @instance_owners = args[:instance_owners] if args.key?(:instance_owners)
717
+ @labels = args[:labels] if args.key?(:labels)
718
+ @name = args[:name] if args.key?(:name)
719
+ @proxy_uri = args[:proxy_uri] if args.key?(:proxy_uri)
720
+ @state = args[:state] if args.key?(:state)
721
+ @update_time = args[:update_time] if args.key?(:update_time)
722
+ @upgrade_history = args[:upgrade_history] if args.key?(:upgrade_history)
723
+ end
724
+ end
725
+
726
+ # Response for listing notebook instances.
727
+ class ListInstancesResponse
728
+ include Google::Apis::Core::Hashable
729
+
730
+ # A list of returned instances.
731
+ # Corresponds to the JSON property `instances`
732
+ # @return [Array<Google::Apis::NotebooksV2::Instance>]
733
+ attr_accessor :instances
734
+
735
+ # Page token that can be used to continue listing from the last result in the
736
+ # next list call.
737
+ # Corresponds to the JSON property `nextPageToken`
738
+ # @return [String]
739
+ attr_accessor :next_page_token
740
+
741
+ # Locations that could not be reached. For example, ['us-west1-a', 'us-central1-
742
+ # b']. A ListInstancesResponse will only contain either instances or
743
+ # unreachables,
744
+ # Corresponds to the JSON property `unreachable`
745
+ # @return [Array<String>]
746
+ attr_accessor :unreachable
747
+
748
+ def initialize(**args)
749
+ update!(**args)
750
+ end
751
+
752
+ # Update properties of this object
753
+ def update!(**args)
754
+ @instances = args[:instances] if args.key?(:instances)
755
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
756
+ @unreachable = args[:unreachable] if args.key?(:unreachable)
757
+ end
758
+ end
759
+
184
760
  # The response message for Locations.ListLocations.
185
761
  class ListLocationsResponse
186
762
  include Google::Apis::Core::Hashable
@@ -278,6 +854,40 @@ module Google
278
854
  end
279
855
  end
280
856
 
857
+ # The definition of a network interface resource attached to a VM.
858
+ class NetworkInterface
859
+ include Google::Apis::Core::Hashable
860
+
861
+ # Optional. The name of the VPC that this VM instance is in. Format: `projects/`
862
+ # project_id`/global/networks/`network_id``
863
+ # Corresponds to the JSON property `network`
864
+ # @return [String]
865
+ attr_accessor :network
866
+
867
+ # Optional. The type of vNIC to be used on this interface. This may be gVNIC or
868
+ # VirtioNet.
869
+ # Corresponds to the JSON property `nicType`
870
+ # @return [String]
871
+ attr_accessor :nic_type
872
+
873
+ # Optional. The name of the subnet that this VM instance is in. Format: `
874
+ # projects/`project_id`/regions/`region`/subnetworks/`subnetwork_id``
875
+ # Corresponds to the JSON property `subnet`
876
+ # @return [String]
877
+ attr_accessor :subnet
878
+
879
+ def initialize(**args)
880
+ update!(**args)
881
+ end
882
+
883
+ # Update properties of this object
884
+ def update!(**args)
885
+ @network = args[:network] if args.key?(:network)
886
+ @nic_type = args[:nic_type] if args.key?(:nic_type)
887
+ @subnet = args[:subnet] if args.key?(:subnet)
888
+ end
889
+ end
890
+
281
891
  # This resource represents a long-running operation that is the result of a
282
892
  # network API call.
283
893
  class Operation
@@ -493,6 +1103,97 @@ module Google
493
1103
  end
494
1104
  end
495
1105
 
1106
+ # Request for notebook instances to report information to Notebooks API.
1107
+ class ReportInstanceInfoSystemRequest
1108
+ include Google::Apis::Core::Hashable
1109
+
1110
+ # The definition of an Event for a managed / semi-managed notebook instance.
1111
+ # Corresponds to the JSON property `event`
1112
+ # @return [Google::Apis::NotebooksV2::Event]
1113
+ attr_accessor :event
1114
+
1115
+ # Required. The VM hardware token for authenticating the VM. https://cloud.
1116
+ # google.com/compute/docs/instances/verifying-instance-identity
1117
+ # Corresponds to the JSON property `vmId`
1118
+ # @return [String]
1119
+ attr_accessor :vm_id
1120
+
1121
+ def initialize(**args)
1122
+ update!(**args)
1123
+ end
1124
+
1125
+ # Update properties of this object
1126
+ def update!(**args)
1127
+ @event = args[:event] if args.key?(:event)
1128
+ @vm_id = args[:vm_id] if args.key?(:vm_id)
1129
+ end
1130
+ end
1131
+
1132
+ # Request for resetting a notebook instance
1133
+ class ResetInstanceRequest
1134
+ include Google::Apis::Core::Hashable
1135
+
1136
+ def initialize(**args)
1137
+ update!(**args)
1138
+ end
1139
+
1140
+ # Update properties of this object
1141
+ def update!(**args)
1142
+ end
1143
+ end
1144
+
1145
+ # Request for rollbacking a notebook instance
1146
+ class RollbackInstanceRequest
1147
+ include Google::Apis::Core::Hashable
1148
+
1149
+ # Required. Output only. Revision Id
1150
+ # Corresponds to the JSON property `revisionId`
1151
+ # @return [String]
1152
+ attr_accessor :revision_id
1153
+
1154
+ # Required. The snapshot for rollback. Example: "projects/test-project/global/
1155
+ # snapshots/krwlzipynril".
1156
+ # Corresponds to the JSON property `targetSnapshot`
1157
+ # @return [String]
1158
+ attr_accessor :target_snapshot
1159
+
1160
+ def initialize(**args)
1161
+ update!(**args)
1162
+ end
1163
+
1164
+ # Update properties of this object
1165
+ def update!(**args)
1166
+ @revision_id = args[:revision_id] if args.key?(:revision_id)
1167
+ @target_snapshot = args[:target_snapshot] if args.key?(:target_snapshot)
1168
+ end
1169
+ end
1170
+
1171
+ # A service account that acts as an identity.
1172
+ class ServiceAccount
1173
+ include Google::Apis::Core::Hashable
1174
+
1175
+ # Optional. Email address of the service account.
1176
+ # Corresponds to the JSON property `email`
1177
+ # @return [String]
1178
+ attr_accessor :email
1179
+
1180
+ # Output only. The list of scopes to be made available for this service account.
1181
+ # Set by the CLH to https://www.googleapis.com/auth/cloud-platform
1182
+ # Corresponds to the JSON property `scopes`
1183
+ # @return [Array<String>]
1184
+ attr_accessor :scopes
1185
+
1186
+ def initialize(**args)
1187
+ update!(**args)
1188
+ end
1189
+
1190
+ # Update properties of this object
1191
+ def update!(**args)
1192
+ @email = args[:email] if args.key?(:email)
1193
+ @scopes = args[:scopes] if args.key?(:scopes)
1194
+ end
1195
+ end
1196
+
496
1197
  # Request message for `SetIamPolicy` method.
497
1198
  class SetIamPolicyRequest
498
1199
  include Google::Apis::Core::Hashable
@@ -538,6 +1239,63 @@ module Google
538
1239
  end
539
1240
  end
540
1241
 
1242
+ # A set of Shielded Instance options. See [Images using supported Shielded VM
1243
+ # features](https://cloud.google.com/compute/docs/instances/modifying-shielded-
1244
+ # vm). Not all combinations are valid.
1245
+ class ShieldedInstanceConfig
1246
+ include Google::Apis::Core::Hashable
1247
+
1248
+ # Optional. Defines whether the VM instance has integrity monitoring enabled.
1249
+ # Enables monitoring and attestation of the boot integrity of the VM instance.
1250
+ # The attestation is performed against the integrity policy baseline. This
1251
+ # baseline is initially derived from the implicitly trusted boot image when the
1252
+ # VM instance is created. Enabled by default.
1253
+ # Corresponds to the JSON property `enableIntegrityMonitoring`
1254
+ # @return [Boolean]
1255
+ attr_accessor :enable_integrity_monitoring
1256
+ alias_method :enable_integrity_monitoring?, :enable_integrity_monitoring
1257
+
1258
+ # Optional. Defines whether the VM instance has Secure Boot enabled. Secure Boot
1259
+ # helps ensure that the system only runs authentic software by verifying the
1260
+ # digital signature of all boot components, and halting the boot process if
1261
+ # signature verification fails. Disabled by default.
1262
+ # Corresponds to the JSON property `enableSecureBoot`
1263
+ # @return [Boolean]
1264
+ attr_accessor :enable_secure_boot
1265
+ alias_method :enable_secure_boot?, :enable_secure_boot
1266
+
1267
+ # Optional. Defines whether the VM instance has the vTPM enabled. Enabled by
1268
+ # default.
1269
+ # Corresponds to the JSON property `enableVtpm`
1270
+ # @return [Boolean]
1271
+ attr_accessor :enable_vtpm
1272
+ alias_method :enable_vtpm?, :enable_vtpm
1273
+
1274
+ def initialize(**args)
1275
+ update!(**args)
1276
+ end
1277
+
1278
+ # Update properties of this object
1279
+ def update!(**args)
1280
+ @enable_integrity_monitoring = args[:enable_integrity_monitoring] if args.key?(:enable_integrity_monitoring)
1281
+ @enable_secure_boot = args[:enable_secure_boot] if args.key?(:enable_secure_boot)
1282
+ @enable_vtpm = args[:enable_vtpm] if args.key?(:enable_vtpm)
1283
+ end
1284
+ end
1285
+
1286
+ # Request for starting a notebook instance
1287
+ class StartInstanceRequest
1288
+ include Google::Apis::Core::Hashable
1289
+
1290
+ def initialize(**args)
1291
+ update!(**args)
1292
+ end
1293
+
1294
+ # Update properties of this object
1295
+ def update!(**args)
1296
+ end
1297
+ end
1298
+
541
1299
  # The `Status` type defines a logical error model that is suitable for different
542
1300
  # programming environments, including REST APIs and RPC APIs. It is used by [
543
1301
  # gRPC](https://github.com/grpc). Each `Status` message contains three pieces of
@@ -577,6 +1335,19 @@ module Google
577
1335
  end
578
1336
  end
579
1337
 
1338
+ # Request for stopping a notebook instance
1339
+ class StopInstanceRequest
1340
+ include Google::Apis::Core::Hashable
1341
+
1342
+ def initialize(**args)
1343
+ update!(**args)
1344
+ end
1345
+
1346
+ # Update properties of this object
1347
+ def update!(**args)
1348
+ end
1349
+ end
1350
+
580
1351
  # Request message for `TestIamPermissions` method.
581
1352
  class TestIamPermissionsRequest
582
1353
  include Google::Apis::Core::Hashable
@@ -616,6 +1387,141 @@ module Google
616
1387
  @permissions = args[:permissions] if args.key?(:permissions)
617
1388
  end
618
1389
  end
1390
+
1391
+ # The entry of VM image upgrade history.
1392
+ class UpgradeHistoryEntry
1393
+ include Google::Apis::Core::Hashable
1394
+
1395
+ # Optional. Action. Rolloback or Upgrade.
1396
+ # Corresponds to the JSON property `action`
1397
+ # @return [String]
1398
+ attr_accessor :action
1399
+
1400
+ # Optional. The container image before this instance upgrade.
1401
+ # Corresponds to the JSON property `containerImage`
1402
+ # @return [String]
1403
+ attr_accessor :container_image
1404
+
1405
+ # Immutable. The time that this instance upgrade history entry is created.
1406
+ # Corresponds to the JSON property `createTime`
1407
+ # @return [String]
1408
+ attr_accessor :create_time
1409
+
1410
+ # Optional. The framework of this notebook instance.
1411
+ # Corresponds to the JSON property `framework`
1412
+ # @return [String]
1413
+ attr_accessor :framework
1414
+
1415
+ # Optional. The snapshot of the boot disk of this notebook instance before
1416
+ # upgrade.
1417
+ # Corresponds to the JSON property `snapshot`
1418
+ # @return [String]
1419
+ attr_accessor :snapshot
1420
+
1421
+ # Output only. The state of this instance upgrade history entry.
1422
+ # Corresponds to the JSON property `state`
1423
+ # @return [String]
1424
+ attr_accessor :state
1425
+
1426
+ # Optional. Target VM Version, like m63.
1427
+ # Corresponds to the JSON property `targetVersion`
1428
+ # @return [String]
1429
+ attr_accessor :target_version
1430
+
1431
+ # Optional. The version of the notebook instance before this upgrade.
1432
+ # Corresponds to the JSON property `version`
1433
+ # @return [String]
1434
+ attr_accessor :version
1435
+
1436
+ # Optional. The VM image before this instance upgrade.
1437
+ # Corresponds to the JSON property `vmImage`
1438
+ # @return [String]
1439
+ attr_accessor :vm_image
1440
+
1441
+ def initialize(**args)
1442
+ update!(**args)
1443
+ end
1444
+
1445
+ # Update properties of this object
1446
+ def update!(**args)
1447
+ @action = args[:action] if args.key?(:action)
1448
+ @container_image = args[:container_image] if args.key?(:container_image)
1449
+ @create_time = args[:create_time] if args.key?(:create_time)
1450
+ @framework = args[:framework] if args.key?(:framework)
1451
+ @snapshot = args[:snapshot] if args.key?(:snapshot)
1452
+ @state = args[:state] if args.key?(:state)
1453
+ @target_version = args[:target_version] if args.key?(:target_version)
1454
+ @version = args[:version] if args.key?(:version)
1455
+ @vm_image = args[:vm_image] if args.key?(:vm_image)
1456
+ end
1457
+ end
1458
+
1459
+ # Request for upgrading a notebook instance
1460
+ class UpgradeInstanceRequest
1461
+ include Google::Apis::Core::Hashable
1462
+
1463
+ def initialize(**args)
1464
+ update!(**args)
1465
+ end
1466
+
1467
+ # Update properties of this object
1468
+ def update!(**args)
1469
+ end
1470
+ end
1471
+
1472
+ # Request for upgrading a notebook instance from within the VM
1473
+ class UpgradeInstanceSystemRequest
1474
+ include Google::Apis::Core::Hashable
1475
+
1476
+ # Required. The VM hardware token for authenticating the VM. https://cloud.
1477
+ # google.com/compute/docs/instances/verifying-instance-identity
1478
+ # Corresponds to the JSON property `vmId`
1479
+ # @return [String]
1480
+ attr_accessor :vm_id
1481
+
1482
+ def initialize(**args)
1483
+ update!(**args)
1484
+ end
1485
+
1486
+ # Update properties of this object
1487
+ def update!(**args)
1488
+ @vm_id = args[:vm_id] if args.key?(:vm_id)
1489
+ end
1490
+ end
1491
+
1492
+ # Definition of a custom Compute Engine virtual machine image for starting a
1493
+ # notebook instance with the environment installed directly on the VM.
1494
+ class VmImage
1495
+ include Google::Apis::Core::Hashable
1496
+
1497
+ # Optional. Use this VM image family to find the image; the newest image in this
1498
+ # family will be used.
1499
+ # Corresponds to the JSON property `family`
1500
+ # @return [String]
1501
+ attr_accessor :family
1502
+
1503
+ # Optional. Use VM image name to find the image.
1504
+ # Corresponds to the JSON property `name`
1505
+ # @return [String]
1506
+ attr_accessor :name
1507
+
1508
+ # Required. The name of the Google Cloud project that this VM image belongs to.
1509
+ # Format: ``project_id``
1510
+ # Corresponds to the JSON property `project`
1511
+ # @return [String]
1512
+ attr_accessor :project
1513
+
1514
+ def initialize(**args)
1515
+ update!(**args)
1516
+ end
1517
+
1518
+ # Update properties of this object
1519
+ def update!(**args)
1520
+ @family = args[:family] if args.key?(:family)
1521
+ @name = args[:name] if args.key?(:name)
1522
+ @project = args[:project] if args.key?(:project)
1523
+ end
1524
+ end
619
1525
  end
620
1526
  end
621
1527
  end