google-apis-notebooks_v2 0.2.0 → 0.3.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.
@@ -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,191 @@ 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
|
+
def initialize(**args)
|
306
|
+
update!(**args)
|
307
|
+
end
|
308
|
+
|
309
|
+
# Update properties of this object
|
310
|
+
def update!(**args)
|
311
|
+
@diagnostic_config = args[:diagnostic_config] if args.key?(:diagnostic_config)
|
312
|
+
end
|
313
|
+
end
|
314
|
+
|
315
|
+
# Defines flags that are used to run the diagnostic tool
|
316
|
+
class DiagnosticConfig
|
317
|
+
include Google::Apis::Core::Hashable
|
318
|
+
|
319
|
+
# Optional. Enables flag to copy all `/home/jupyter` folder contents
|
320
|
+
# Corresponds to the JSON property `enableCopyHomeFilesFlag`
|
321
|
+
# @return [Boolean]
|
322
|
+
attr_accessor :enable_copy_home_files_flag
|
323
|
+
alias_method :enable_copy_home_files_flag?, :enable_copy_home_files_flag
|
324
|
+
|
325
|
+
# Optional. Enables flag to capture packets from the instance for 30 seconds
|
326
|
+
# Corresponds to the JSON property `enablePacketCaptureFlag`
|
327
|
+
# @return [Boolean]
|
328
|
+
attr_accessor :enable_packet_capture_flag
|
329
|
+
alias_method :enable_packet_capture_flag?, :enable_packet_capture_flag
|
330
|
+
|
331
|
+
# Optional. Enables flag to repair service for instance
|
332
|
+
# Corresponds to the JSON property `enableRepairFlag`
|
333
|
+
# @return [Boolean]
|
334
|
+
attr_accessor :enable_repair_flag
|
335
|
+
alias_method :enable_repair_flag?, :enable_repair_flag
|
336
|
+
|
337
|
+
# Required. User Cloud Storage bucket location (REQUIRED). Must be formatted
|
338
|
+
# with path prefix (`gs://$GCS_BUCKET`). Permissions: User Managed Notebooks: -
|
339
|
+
# storage.buckets.writer: Must be given to the project's service account
|
340
|
+
# attached to VM. Google Managed Notebooks: - storage.buckets.writer: Must be
|
341
|
+
# given to the project's service account or user credentials attached to VM
|
342
|
+
# depending on authentication mode. Cloud Storage bucket Log file will be
|
343
|
+
# written to `gs://$GCS_BUCKET/$RELATIVE_PATH/$VM_DATE_$TIME.tar.gz`
|
344
|
+
# Corresponds to the JSON property `gcsBucket`
|
345
|
+
# @return [String]
|
346
|
+
attr_accessor :gcs_bucket
|
347
|
+
|
348
|
+
# Optional. Defines the relative storage path in the Cloud Storage bucket where
|
349
|
+
# the diagnostic logs will be written: Default path will be the root directory
|
350
|
+
# of the Cloud Storage bucket (`gs://$GCS_BUCKET/$DATE_$TIME.tar.gz`) Example of
|
351
|
+
# full path where Log file will be written: `gs://$GCS_BUCKET/$RELATIVE_PATH/`
|
352
|
+
# Corresponds to the JSON property `relativePath`
|
353
|
+
# @return [String]
|
354
|
+
attr_accessor :relative_path
|
355
|
+
|
356
|
+
def initialize(**args)
|
357
|
+
update!(**args)
|
358
|
+
end
|
359
|
+
|
360
|
+
# Update properties of this object
|
361
|
+
def update!(**args)
|
362
|
+
@enable_copy_home_files_flag = args[:enable_copy_home_files_flag] if args.key?(:enable_copy_home_files_flag)
|
363
|
+
@enable_packet_capture_flag = args[:enable_packet_capture_flag] if args.key?(:enable_packet_capture_flag)
|
364
|
+
@enable_repair_flag = args[:enable_repair_flag] if args.key?(:enable_repair_flag)
|
365
|
+
@gcs_bucket = args[:gcs_bucket] if args.key?(:gcs_bucket)
|
366
|
+
@relative_path = args[:relative_path] if args.key?(:relative_path)
|
367
|
+
end
|
368
|
+
end
|
369
|
+
|
114
370
|
# A generic empty message that you can re-use to avoid defining duplicated empty
|
115
371
|
# messages in your APIs. A typical example is to use it as the request or the
|
116
372
|
# response type of an API method. For instance: service Foo ` rpc Bar(google.
|
@@ -127,6 +383,37 @@ module Google
|
|
127
383
|
end
|
128
384
|
end
|
129
385
|
|
386
|
+
# The definition of an Event for a managed / semi-managed notebook instance.
|
387
|
+
class Event
|
388
|
+
include Google::Apis::Core::Hashable
|
389
|
+
|
390
|
+
# Optional. Event details. This field is used to pass event information.
|
391
|
+
# Corresponds to the JSON property `details`
|
392
|
+
# @return [Hash<String,String>]
|
393
|
+
attr_accessor :details
|
394
|
+
|
395
|
+
# Optional. Event report time.
|
396
|
+
# Corresponds to the JSON property `reportTime`
|
397
|
+
# @return [String]
|
398
|
+
attr_accessor :report_time
|
399
|
+
|
400
|
+
# Optional. Event type.
|
401
|
+
# Corresponds to the JSON property `type`
|
402
|
+
# @return [String]
|
403
|
+
attr_accessor :type
|
404
|
+
|
405
|
+
def initialize(**args)
|
406
|
+
update!(**args)
|
407
|
+
end
|
408
|
+
|
409
|
+
# Update properties of this object
|
410
|
+
def update!(**args)
|
411
|
+
@details = args[:details] if args.key?(:details)
|
412
|
+
@report_time = args[:report_time] if args.key?(:report_time)
|
413
|
+
@type = args[:type] if args.key?(:type)
|
414
|
+
end
|
415
|
+
end
|
416
|
+
|
130
417
|
# Represents a textual expression in the Common Expression Language (CEL) syntax.
|
131
418
|
# CEL is a C-like expression language. The syntax and semantics of CEL are
|
132
419
|
# documented at https://github.com/google/cel-spec. Example (Comparison): title:
|
@@ -181,6 +468,289 @@ module Google
|
|
181
468
|
end
|
182
469
|
end
|
183
470
|
|
471
|
+
# A GPU driver configuration
|
472
|
+
class GpuDriverConfig
|
473
|
+
include Google::Apis::Core::Hashable
|
474
|
+
|
475
|
+
# Optional. Specify a custom Cloud Storage path where the GPU driver is stored.
|
476
|
+
# If not specified, we'll automatically choose from official GPU drivers.
|
477
|
+
# Corresponds to the JSON property `customGpuDriverPath`
|
478
|
+
# @return [String]
|
479
|
+
attr_accessor :custom_gpu_driver_path
|
480
|
+
|
481
|
+
# Optional. Whether the end user authorizes Google Cloud to install GPU driver
|
482
|
+
# on this VM instance. If this field is empty or set to false, the GPU driver
|
483
|
+
# won't be installed. Only applicable to instances with GPUs.
|
484
|
+
# Corresponds to the JSON property `enableGpuDriver`
|
485
|
+
# @return [Boolean]
|
486
|
+
attr_accessor :enable_gpu_driver
|
487
|
+
alias_method :enable_gpu_driver?, :enable_gpu_driver
|
488
|
+
|
489
|
+
def initialize(**args)
|
490
|
+
update!(**args)
|
491
|
+
end
|
492
|
+
|
493
|
+
# Update properties of this object
|
494
|
+
def update!(**args)
|
495
|
+
@custom_gpu_driver_path = args[:custom_gpu_driver_path] if args.key?(:custom_gpu_driver_path)
|
496
|
+
@enable_gpu_driver = args[:enable_gpu_driver] if args.key?(:enable_gpu_driver)
|
497
|
+
end
|
498
|
+
end
|
499
|
+
|
500
|
+
# The definition of how to configure a VM instance outside of Resources and
|
501
|
+
# Identity.
|
502
|
+
class GceSetup
|
503
|
+
include Google::Apis::Core::Hashable
|
504
|
+
|
505
|
+
# Optional. The hardware accelerators used on this instance. If you use
|
506
|
+
# accelerators, make sure that your configuration has [enough vCPUs and memory
|
507
|
+
# to support the `machine_type` you have selected](https://cloud.google.com/
|
508
|
+
# compute/docs/gpus/#gpus-list). Currently supports only one accelerator
|
509
|
+
# configuration.
|
510
|
+
# Corresponds to the JSON property `acceleratorConfigs`
|
511
|
+
# @return [Array<Google::Apis::NotebooksV2::AcceleratorConfig>]
|
512
|
+
attr_accessor :accelerator_configs
|
513
|
+
|
514
|
+
# The definition of a boot disk.
|
515
|
+
# Corresponds to the JSON property `bootDisk`
|
516
|
+
# @return [Google::Apis::NotebooksV2::BootDisk]
|
517
|
+
attr_accessor :boot_disk
|
518
|
+
|
519
|
+
# Definition of a container image for starting a notebook instance with the
|
520
|
+
# environment installed in a container.
|
521
|
+
# Corresponds to the JSON property `containerImage`
|
522
|
+
# @return [Google::Apis::NotebooksV2::ContainerImage]
|
523
|
+
attr_accessor :container_image
|
524
|
+
|
525
|
+
# Optional. Data disks attached to the VM instance. Currently supports only one
|
526
|
+
# data disk.
|
527
|
+
# Corresponds to the JSON property `dataDisks`
|
528
|
+
# @return [Array<Google::Apis::NotebooksV2::DataDisk>]
|
529
|
+
attr_accessor :data_disks
|
530
|
+
|
531
|
+
# Optional. If true, no external IP will be assigned to this VM instance.
|
532
|
+
# Corresponds to the JSON property `disablePublicIp`
|
533
|
+
# @return [Boolean]
|
534
|
+
attr_accessor :disable_public_ip
|
535
|
+
alias_method :disable_public_ip?, :disable_public_ip
|
536
|
+
|
537
|
+
# Optional. Flag to enable ip forwarding or not, default false/off. https://
|
538
|
+
# cloud.google.com/vpc/docs/using-routes#canipforward
|
539
|
+
# Corresponds to the JSON property `enableIpForwarding`
|
540
|
+
# @return [Boolean]
|
541
|
+
attr_accessor :enable_ip_forwarding
|
542
|
+
alias_method :enable_ip_forwarding?, :enable_ip_forwarding
|
543
|
+
|
544
|
+
# A GPU driver configuration
|
545
|
+
# Corresponds to the JSON property `gpuDriverConfig`
|
546
|
+
# @return [Google::Apis::NotebooksV2::GpuDriverConfig]
|
547
|
+
attr_accessor :gpu_driver_config
|
548
|
+
|
549
|
+
# Optional. The machine type of the VM instance. https://cloud.google.com/
|
550
|
+
# compute/docs/machine-resource
|
551
|
+
# Corresponds to the JSON property `machineType`
|
552
|
+
# @return [String]
|
553
|
+
attr_accessor :machine_type
|
554
|
+
|
555
|
+
# Optional. Custom metadata to apply to this instance.
|
556
|
+
# Corresponds to the JSON property `metadata`
|
557
|
+
# @return [Hash<String,String>]
|
558
|
+
attr_accessor :metadata
|
559
|
+
|
560
|
+
# Optional. The network interfaces for the VM. Supports only one interface.
|
561
|
+
# Corresponds to the JSON property `networkInterfaces`
|
562
|
+
# @return [Array<Google::Apis::NotebooksV2::NetworkInterface>]
|
563
|
+
attr_accessor :network_interfaces
|
564
|
+
|
565
|
+
# Optional. The service account that serves as an identity for the VM instance.
|
566
|
+
# Currently supports only one service account.
|
567
|
+
# Corresponds to the JSON property `serviceAccounts`
|
568
|
+
# @return [Array<Google::Apis::NotebooksV2::ServiceAccount>]
|
569
|
+
attr_accessor :service_accounts
|
570
|
+
|
571
|
+
# A set of Shielded Instance options. See [Images using supported Shielded VM
|
572
|
+
# features](https://cloud.google.com/compute/docs/instances/modifying-shielded-
|
573
|
+
# vm). Not all combinations are valid.
|
574
|
+
# Corresponds to the JSON property `shieldedInstanceConfig`
|
575
|
+
# @return [Google::Apis::NotebooksV2::ShieldedInstanceConfig]
|
576
|
+
attr_accessor :shielded_instance_config
|
577
|
+
|
578
|
+
# Optional. The Compute Engine tags to add to runtime (see [Tagging instances](
|
579
|
+
# https://cloud.google.com/compute/docs/label-or-tag-resources#tags)).
|
580
|
+
# Corresponds to the JSON property `tags`
|
581
|
+
# @return [Array<String>]
|
582
|
+
attr_accessor :tags
|
583
|
+
|
584
|
+
# Definition of a custom Compute Engine virtual machine image for starting a
|
585
|
+
# notebook instance with the environment installed directly on the VM.
|
586
|
+
# Corresponds to the JSON property `vmImage`
|
587
|
+
# @return [Google::Apis::NotebooksV2::VmImage]
|
588
|
+
attr_accessor :vm_image
|
589
|
+
|
590
|
+
def initialize(**args)
|
591
|
+
update!(**args)
|
592
|
+
end
|
593
|
+
|
594
|
+
# Update properties of this object
|
595
|
+
def update!(**args)
|
596
|
+
@accelerator_configs = args[:accelerator_configs] if args.key?(:accelerator_configs)
|
597
|
+
@boot_disk = args[:boot_disk] if args.key?(:boot_disk)
|
598
|
+
@container_image = args[:container_image] if args.key?(:container_image)
|
599
|
+
@data_disks = args[:data_disks] if args.key?(:data_disks)
|
600
|
+
@disable_public_ip = args[:disable_public_ip] if args.key?(:disable_public_ip)
|
601
|
+
@enable_ip_forwarding = args[:enable_ip_forwarding] if args.key?(:enable_ip_forwarding)
|
602
|
+
@gpu_driver_config = args[:gpu_driver_config] if args.key?(:gpu_driver_config)
|
603
|
+
@machine_type = args[:machine_type] if args.key?(:machine_type)
|
604
|
+
@metadata = args[:metadata] if args.key?(:metadata)
|
605
|
+
@network_interfaces = args[:network_interfaces] if args.key?(:network_interfaces)
|
606
|
+
@service_accounts = args[:service_accounts] if args.key?(:service_accounts)
|
607
|
+
@shielded_instance_config = args[:shielded_instance_config] if args.key?(:shielded_instance_config)
|
608
|
+
@tags = args[:tags] if args.key?(:tags)
|
609
|
+
@vm_image = args[:vm_image] if args.key?(:vm_image)
|
610
|
+
end
|
611
|
+
end
|
612
|
+
|
613
|
+
# The definition of a notebook instance.
|
614
|
+
class Instance
|
615
|
+
include Google::Apis::Core::Hashable
|
616
|
+
|
617
|
+
# Output only. Instance creation time.
|
618
|
+
# Corresponds to the JSON property `createTime`
|
619
|
+
# @return [String]
|
620
|
+
attr_accessor :create_time
|
621
|
+
|
622
|
+
# Output only. Email address of entity that sent original CreateInstance request.
|
623
|
+
# Corresponds to the JSON property `creator`
|
624
|
+
# @return [String]
|
625
|
+
attr_accessor :creator
|
626
|
+
|
627
|
+
# Optional. If true, the notebook instance will not register with the proxy.
|
628
|
+
# Corresponds to the JSON property `disableProxyAccess`
|
629
|
+
# @return [Boolean]
|
630
|
+
attr_accessor :disable_proxy_access
|
631
|
+
alias_method :disable_proxy_access?, :disable_proxy_access
|
632
|
+
|
633
|
+
# The definition of how to configure a VM instance outside of Resources and
|
634
|
+
# Identity.
|
635
|
+
# Corresponds to the JSON property `gceSetup`
|
636
|
+
# @return [Google::Apis::NotebooksV2::GceSetup]
|
637
|
+
attr_accessor :gce_setup
|
638
|
+
|
639
|
+
# Output only. Additional information about instance health. Example: healthInfo"
|
640
|
+
# : ` "docker_proxy_agent_status": "1", "docker_status": "1", "
|
641
|
+
# jupyterlab_api_status": "-1", "jupyterlab_status": "-1", "updated": "2020-10-
|
642
|
+
# 18 09:40:03.573409" `
|
643
|
+
# Corresponds to the JSON property `healthInfo`
|
644
|
+
# @return [Hash<String,String>]
|
645
|
+
attr_accessor :health_info
|
646
|
+
|
647
|
+
# Output only. Instance health_state.
|
648
|
+
# Corresponds to the JSON property `healthState`
|
649
|
+
# @return [String]
|
650
|
+
attr_accessor :health_state
|
651
|
+
|
652
|
+
# Output only. Unique ID of the resource.
|
653
|
+
# Corresponds to the JSON property `id`
|
654
|
+
# @return [String]
|
655
|
+
attr_accessor :id
|
656
|
+
|
657
|
+
# Optional. Input only. The owner of this instance after creation. Format: `
|
658
|
+
# alias@example.com` Currently supports one owner only. If not specified, all of
|
659
|
+
# the service account users of your VM instance's service account can use the
|
660
|
+
# instance.
|
661
|
+
# Corresponds to the JSON property `instanceOwners`
|
662
|
+
# @return [Array<String>]
|
663
|
+
attr_accessor :instance_owners
|
664
|
+
|
665
|
+
# Optional. Labels to apply to this instance. These can be later modified by the
|
666
|
+
# UpdateInstance method.
|
667
|
+
# Corresponds to the JSON property `labels`
|
668
|
+
# @return [Hash<String,String>]
|
669
|
+
attr_accessor :labels
|
670
|
+
|
671
|
+
# Output only. The name of this notebook instance. Format: `projects/`project_id`
|
672
|
+
# /locations/`location`/instances/`instance_id``
|
673
|
+
# Corresponds to the JSON property `name`
|
674
|
+
# @return [String]
|
675
|
+
attr_accessor :name
|
676
|
+
|
677
|
+
# Output only. The proxy endpoint that is used to access the Jupyter notebook.
|
678
|
+
# Corresponds to the JSON property `proxyUri`
|
679
|
+
# @return [String]
|
680
|
+
attr_accessor :proxy_uri
|
681
|
+
|
682
|
+
# Output only. The state of this instance.
|
683
|
+
# Corresponds to the JSON property `state`
|
684
|
+
# @return [String]
|
685
|
+
attr_accessor :state
|
686
|
+
|
687
|
+
# Output only. Instance update time.
|
688
|
+
# Corresponds to the JSON property `updateTime`
|
689
|
+
# @return [String]
|
690
|
+
attr_accessor :update_time
|
691
|
+
|
692
|
+
# Output only. The upgrade history of this instance.
|
693
|
+
# Corresponds to the JSON property `upgradeHistory`
|
694
|
+
# @return [Array<Google::Apis::NotebooksV2::UpgradeHistoryEntry>]
|
695
|
+
attr_accessor :upgrade_history
|
696
|
+
|
697
|
+
def initialize(**args)
|
698
|
+
update!(**args)
|
699
|
+
end
|
700
|
+
|
701
|
+
# Update properties of this object
|
702
|
+
def update!(**args)
|
703
|
+
@create_time = args[:create_time] if args.key?(:create_time)
|
704
|
+
@creator = args[:creator] if args.key?(:creator)
|
705
|
+
@disable_proxy_access = args[:disable_proxy_access] if args.key?(:disable_proxy_access)
|
706
|
+
@gce_setup = args[:gce_setup] if args.key?(:gce_setup)
|
707
|
+
@health_info = args[:health_info] if args.key?(:health_info)
|
708
|
+
@health_state = args[:health_state] if args.key?(:health_state)
|
709
|
+
@id = args[:id] if args.key?(:id)
|
710
|
+
@instance_owners = args[:instance_owners] if args.key?(:instance_owners)
|
711
|
+
@labels = args[:labels] if args.key?(:labels)
|
712
|
+
@name = args[:name] if args.key?(:name)
|
713
|
+
@proxy_uri = args[:proxy_uri] if args.key?(:proxy_uri)
|
714
|
+
@state = args[:state] if args.key?(:state)
|
715
|
+
@update_time = args[:update_time] if args.key?(:update_time)
|
716
|
+
@upgrade_history = args[:upgrade_history] if args.key?(:upgrade_history)
|
717
|
+
end
|
718
|
+
end
|
719
|
+
|
720
|
+
# Response for listing notebook instances.
|
721
|
+
class ListInstancesResponse
|
722
|
+
include Google::Apis::Core::Hashable
|
723
|
+
|
724
|
+
# A list of returned instances.
|
725
|
+
# Corresponds to the JSON property `instances`
|
726
|
+
# @return [Array<Google::Apis::NotebooksV2::Instance>]
|
727
|
+
attr_accessor :instances
|
728
|
+
|
729
|
+
# Page token that can be used to continue listing from the last result in the
|
730
|
+
# next list call.
|
731
|
+
# Corresponds to the JSON property `nextPageToken`
|
732
|
+
# @return [String]
|
733
|
+
attr_accessor :next_page_token
|
734
|
+
|
735
|
+
# Locations that could not be reached. For example, ['us-west1-a', 'us-central1-
|
736
|
+
# b']. A ListInstancesResponse will only contain either instances or
|
737
|
+
# unreachables,
|
738
|
+
# Corresponds to the JSON property `unreachable`
|
739
|
+
# @return [Array<String>]
|
740
|
+
attr_accessor :unreachable
|
741
|
+
|
742
|
+
def initialize(**args)
|
743
|
+
update!(**args)
|
744
|
+
end
|
745
|
+
|
746
|
+
# Update properties of this object
|
747
|
+
def update!(**args)
|
748
|
+
@instances = args[:instances] if args.key?(:instances)
|
749
|
+
@next_page_token = args[:next_page_token] if args.key?(:next_page_token)
|
750
|
+
@unreachable = args[:unreachable] if args.key?(:unreachable)
|
751
|
+
end
|
752
|
+
end
|
753
|
+
|
184
754
|
# The response message for Locations.ListLocations.
|
185
755
|
class ListLocationsResponse
|
186
756
|
include Google::Apis::Core::Hashable
|
@@ -278,6 +848,40 @@ module Google
|
|
278
848
|
end
|
279
849
|
end
|
280
850
|
|
851
|
+
# The definition of a network interface resource attached to a VM.
|
852
|
+
class NetworkInterface
|
853
|
+
include Google::Apis::Core::Hashable
|
854
|
+
|
855
|
+
# Optional. The name of the VPC that this VM instance is in. Format: `projects/`
|
856
|
+
# project_id`/global/networks/`network_id``
|
857
|
+
# Corresponds to the JSON property `network`
|
858
|
+
# @return [String]
|
859
|
+
attr_accessor :network
|
860
|
+
|
861
|
+
# Optional. The type of vNIC to be used on this interface. This may be gVNIC or
|
862
|
+
# VirtioNet.
|
863
|
+
# Corresponds to the JSON property `nicType`
|
864
|
+
# @return [String]
|
865
|
+
attr_accessor :nic_type
|
866
|
+
|
867
|
+
# Optional. The name of the subnet that this VM instance is in. Format: `
|
868
|
+
# projects/`project_id`/regions/`region`/subnetworks/`subnetwork_id``
|
869
|
+
# Corresponds to the JSON property `subnet`
|
870
|
+
# @return [String]
|
871
|
+
attr_accessor :subnet
|
872
|
+
|
873
|
+
def initialize(**args)
|
874
|
+
update!(**args)
|
875
|
+
end
|
876
|
+
|
877
|
+
# Update properties of this object
|
878
|
+
def update!(**args)
|
879
|
+
@network = args[:network] if args.key?(:network)
|
880
|
+
@nic_type = args[:nic_type] if args.key?(:nic_type)
|
881
|
+
@subnet = args[:subnet] if args.key?(:subnet)
|
882
|
+
end
|
883
|
+
end
|
884
|
+
|
281
885
|
# This resource represents a long-running operation that is the result of a
|
282
886
|
# network API call.
|
283
887
|
class Operation
|
@@ -493,6 +1097,97 @@ module Google
|
|
493
1097
|
end
|
494
1098
|
end
|
495
1099
|
|
1100
|
+
# Request for notebook instances to report information to Notebooks API.
|
1101
|
+
class ReportInstanceInfoSystemRequest
|
1102
|
+
include Google::Apis::Core::Hashable
|
1103
|
+
|
1104
|
+
# The definition of an Event for a managed / semi-managed notebook instance.
|
1105
|
+
# Corresponds to the JSON property `event`
|
1106
|
+
# @return [Google::Apis::NotebooksV2::Event]
|
1107
|
+
attr_accessor :event
|
1108
|
+
|
1109
|
+
# Required. The VM hardware token for authenticating the VM. https://cloud.
|
1110
|
+
# google.com/compute/docs/instances/verifying-instance-identity
|
1111
|
+
# Corresponds to the JSON property `vmId`
|
1112
|
+
# @return [String]
|
1113
|
+
attr_accessor :vm_id
|
1114
|
+
|
1115
|
+
def initialize(**args)
|
1116
|
+
update!(**args)
|
1117
|
+
end
|
1118
|
+
|
1119
|
+
# Update properties of this object
|
1120
|
+
def update!(**args)
|
1121
|
+
@event = args[:event] if args.key?(:event)
|
1122
|
+
@vm_id = args[:vm_id] if args.key?(:vm_id)
|
1123
|
+
end
|
1124
|
+
end
|
1125
|
+
|
1126
|
+
# Request for resetting a notebook instance
|
1127
|
+
class ResetInstanceRequest
|
1128
|
+
include Google::Apis::Core::Hashable
|
1129
|
+
|
1130
|
+
def initialize(**args)
|
1131
|
+
update!(**args)
|
1132
|
+
end
|
1133
|
+
|
1134
|
+
# Update properties of this object
|
1135
|
+
def update!(**args)
|
1136
|
+
end
|
1137
|
+
end
|
1138
|
+
|
1139
|
+
# Request for rollbacking a notebook instance
|
1140
|
+
class RollbackInstanceRequest
|
1141
|
+
include Google::Apis::Core::Hashable
|
1142
|
+
|
1143
|
+
# Required. Output only. Revision Id
|
1144
|
+
# Corresponds to the JSON property `revisionId`
|
1145
|
+
# @return [String]
|
1146
|
+
attr_accessor :revision_id
|
1147
|
+
|
1148
|
+
# Required. The snapshot for rollback. Example: "projects/test-project/global/
|
1149
|
+
# snapshots/krwlzipynril".
|
1150
|
+
# Corresponds to the JSON property `targetSnapshot`
|
1151
|
+
# @return [String]
|
1152
|
+
attr_accessor :target_snapshot
|
1153
|
+
|
1154
|
+
def initialize(**args)
|
1155
|
+
update!(**args)
|
1156
|
+
end
|
1157
|
+
|
1158
|
+
# Update properties of this object
|
1159
|
+
def update!(**args)
|
1160
|
+
@revision_id = args[:revision_id] if args.key?(:revision_id)
|
1161
|
+
@target_snapshot = args[:target_snapshot] if args.key?(:target_snapshot)
|
1162
|
+
end
|
1163
|
+
end
|
1164
|
+
|
1165
|
+
# A service account that acts as an identity.
|
1166
|
+
class ServiceAccount
|
1167
|
+
include Google::Apis::Core::Hashable
|
1168
|
+
|
1169
|
+
# Optional. Email address of the service account.
|
1170
|
+
# Corresponds to the JSON property `email`
|
1171
|
+
# @return [String]
|
1172
|
+
attr_accessor :email
|
1173
|
+
|
1174
|
+
# Output only. The list of scopes to be made available for this service account.
|
1175
|
+
# Set by the CLH to https://www.googleapis.com/auth/cloud-platform
|
1176
|
+
# Corresponds to the JSON property `scopes`
|
1177
|
+
# @return [Array<String>]
|
1178
|
+
attr_accessor :scopes
|
1179
|
+
|
1180
|
+
def initialize(**args)
|
1181
|
+
update!(**args)
|
1182
|
+
end
|
1183
|
+
|
1184
|
+
# Update properties of this object
|
1185
|
+
def update!(**args)
|
1186
|
+
@email = args[:email] if args.key?(:email)
|
1187
|
+
@scopes = args[:scopes] if args.key?(:scopes)
|
1188
|
+
end
|
1189
|
+
end
|
1190
|
+
|
496
1191
|
# Request message for `SetIamPolicy` method.
|
497
1192
|
class SetIamPolicyRequest
|
498
1193
|
include Google::Apis::Core::Hashable
|
@@ -538,6 +1233,63 @@ module Google
|
|
538
1233
|
end
|
539
1234
|
end
|
540
1235
|
|
1236
|
+
# A set of Shielded Instance options. See [Images using supported Shielded VM
|
1237
|
+
# features](https://cloud.google.com/compute/docs/instances/modifying-shielded-
|
1238
|
+
# vm). Not all combinations are valid.
|
1239
|
+
class ShieldedInstanceConfig
|
1240
|
+
include Google::Apis::Core::Hashable
|
1241
|
+
|
1242
|
+
# Optional. Defines whether the VM instance has integrity monitoring enabled.
|
1243
|
+
# Enables monitoring and attestation of the boot integrity of the VM instance.
|
1244
|
+
# The attestation is performed against the integrity policy baseline. This
|
1245
|
+
# baseline is initially derived from the implicitly trusted boot image when the
|
1246
|
+
# VM instance is created. Enabled by default.
|
1247
|
+
# Corresponds to the JSON property `enableIntegrityMonitoring`
|
1248
|
+
# @return [Boolean]
|
1249
|
+
attr_accessor :enable_integrity_monitoring
|
1250
|
+
alias_method :enable_integrity_monitoring?, :enable_integrity_monitoring
|
1251
|
+
|
1252
|
+
# Optional. Defines whether the VM instance has Secure Boot enabled. Secure Boot
|
1253
|
+
# helps ensure that the system only runs authentic software by verifying the
|
1254
|
+
# digital signature of all boot components, and halting the boot process if
|
1255
|
+
# signature verification fails. Disabled by default.
|
1256
|
+
# Corresponds to the JSON property `enableSecureBoot`
|
1257
|
+
# @return [Boolean]
|
1258
|
+
attr_accessor :enable_secure_boot
|
1259
|
+
alias_method :enable_secure_boot?, :enable_secure_boot
|
1260
|
+
|
1261
|
+
# Optional. Defines whether the VM instance has the vTPM enabled. Enabled by
|
1262
|
+
# default.
|
1263
|
+
# Corresponds to the JSON property `enableVtpm`
|
1264
|
+
# @return [Boolean]
|
1265
|
+
attr_accessor :enable_vtpm
|
1266
|
+
alias_method :enable_vtpm?, :enable_vtpm
|
1267
|
+
|
1268
|
+
def initialize(**args)
|
1269
|
+
update!(**args)
|
1270
|
+
end
|
1271
|
+
|
1272
|
+
# Update properties of this object
|
1273
|
+
def update!(**args)
|
1274
|
+
@enable_integrity_monitoring = args[:enable_integrity_monitoring] if args.key?(:enable_integrity_monitoring)
|
1275
|
+
@enable_secure_boot = args[:enable_secure_boot] if args.key?(:enable_secure_boot)
|
1276
|
+
@enable_vtpm = args[:enable_vtpm] if args.key?(:enable_vtpm)
|
1277
|
+
end
|
1278
|
+
end
|
1279
|
+
|
1280
|
+
# Request for starting a notebook instance
|
1281
|
+
class StartInstanceRequest
|
1282
|
+
include Google::Apis::Core::Hashable
|
1283
|
+
|
1284
|
+
def initialize(**args)
|
1285
|
+
update!(**args)
|
1286
|
+
end
|
1287
|
+
|
1288
|
+
# Update properties of this object
|
1289
|
+
def update!(**args)
|
1290
|
+
end
|
1291
|
+
end
|
1292
|
+
|
541
1293
|
# The `Status` type defines a logical error model that is suitable for different
|
542
1294
|
# programming environments, including REST APIs and RPC APIs. It is used by [
|
543
1295
|
# gRPC](https://github.com/grpc). Each `Status` message contains three pieces of
|
@@ -577,6 +1329,19 @@ module Google
|
|
577
1329
|
end
|
578
1330
|
end
|
579
1331
|
|
1332
|
+
# Request for stopping a notebook instance
|
1333
|
+
class StopInstanceRequest
|
1334
|
+
include Google::Apis::Core::Hashable
|
1335
|
+
|
1336
|
+
def initialize(**args)
|
1337
|
+
update!(**args)
|
1338
|
+
end
|
1339
|
+
|
1340
|
+
# Update properties of this object
|
1341
|
+
def update!(**args)
|
1342
|
+
end
|
1343
|
+
end
|
1344
|
+
|
580
1345
|
# Request message for `TestIamPermissions` method.
|
581
1346
|
class TestIamPermissionsRequest
|
582
1347
|
include Google::Apis::Core::Hashable
|
@@ -616,6 +1381,141 @@ module Google
|
|
616
1381
|
@permissions = args[:permissions] if args.key?(:permissions)
|
617
1382
|
end
|
618
1383
|
end
|
1384
|
+
|
1385
|
+
# The entry of VM image upgrade history.
|
1386
|
+
class UpgradeHistoryEntry
|
1387
|
+
include Google::Apis::Core::Hashable
|
1388
|
+
|
1389
|
+
# Optional. Action. Rolloback or Upgrade.
|
1390
|
+
# Corresponds to the JSON property `action`
|
1391
|
+
# @return [String]
|
1392
|
+
attr_accessor :action
|
1393
|
+
|
1394
|
+
# Optional. The container image before this instance upgrade.
|
1395
|
+
# Corresponds to the JSON property `containerImage`
|
1396
|
+
# @return [String]
|
1397
|
+
attr_accessor :container_image
|
1398
|
+
|
1399
|
+
# Immutable. The time that this instance upgrade history entry is created.
|
1400
|
+
# Corresponds to the JSON property `createTime`
|
1401
|
+
# @return [String]
|
1402
|
+
attr_accessor :create_time
|
1403
|
+
|
1404
|
+
# Optional. The framework of this notebook instance.
|
1405
|
+
# Corresponds to the JSON property `framework`
|
1406
|
+
# @return [String]
|
1407
|
+
attr_accessor :framework
|
1408
|
+
|
1409
|
+
# Optional. The snapshot of the boot disk of this notebook instance before
|
1410
|
+
# upgrade.
|
1411
|
+
# Corresponds to the JSON property `snapshot`
|
1412
|
+
# @return [String]
|
1413
|
+
attr_accessor :snapshot
|
1414
|
+
|
1415
|
+
# Output only. The state of this instance upgrade history entry.
|
1416
|
+
# Corresponds to the JSON property `state`
|
1417
|
+
# @return [String]
|
1418
|
+
attr_accessor :state
|
1419
|
+
|
1420
|
+
# Optional. Target VM Version, like m63.
|
1421
|
+
# Corresponds to the JSON property `targetVersion`
|
1422
|
+
# @return [String]
|
1423
|
+
attr_accessor :target_version
|
1424
|
+
|
1425
|
+
# Optional. The version of the notebook instance before this upgrade.
|
1426
|
+
# Corresponds to the JSON property `version`
|
1427
|
+
# @return [String]
|
1428
|
+
attr_accessor :version
|
1429
|
+
|
1430
|
+
# Optional. The VM image before this instance upgrade.
|
1431
|
+
# Corresponds to the JSON property `vmImage`
|
1432
|
+
# @return [String]
|
1433
|
+
attr_accessor :vm_image
|
1434
|
+
|
1435
|
+
def initialize(**args)
|
1436
|
+
update!(**args)
|
1437
|
+
end
|
1438
|
+
|
1439
|
+
# Update properties of this object
|
1440
|
+
def update!(**args)
|
1441
|
+
@action = args[:action] if args.key?(:action)
|
1442
|
+
@container_image = args[:container_image] if args.key?(:container_image)
|
1443
|
+
@create_time = args[:create_time] if args.key?(:create_time)
|
1444
|
+
@framework = args[:framework] if args.key?(:framework)
|
1445
|
+
@snapshot = args[:snapshot] if args.key?(:snapshot)
|
1446
|
+
@state = args[:state] if args.key?(:state)
|
1447
|
+
@target_version = args[:target_version] if args.key?(:target_version)
|
1448
|
+
@version = args[:version] if args.key?(:version)
|
1449
|
+
@vm_image = args[:vm_image] if args.key?(:vm_image)
|
1450
|
+
end
|
1451
|
+
end
|
1452
|
+
|
1453
|
+
# Request for upgrading a notebook instance
|
1454
|
+
class UpgradeInstanceRequest
|
1455
|
+
include Google::Apis::Core::Hashable
|
1456
|
+
|
1457
|
+
def initialize(**args)
|
1458
|
+
update!(**args)
|
1459
|
+
end
|
1460
|
+
|
1461
|
+
# Update properties of this object
|
1462
|
+
def update!(**args)
|
1463
|
+
end
|
1464
|
+
end
|
1465
|
+
|
1466
|
+
# Request for upgrading a notebook instance from within the VM
|
1467
|
+
class UpgradeInstanceSystemRequest
|
1468
|
+
include Google::Apis::Core::Hashable
|
1469
|
+
|
1470
|
+
# Required. The VM hardware token for authenticating the VM. https://cloud.
|
1471
|
+
# google.com/compute/docs/instances/verifying-instance-identity
|
1472
|
+
# Corresponds to the JSON property `vmId`
|
1473
|
+
# @return [String]
|
1474
|
+
attr_accessor :vm_id
|
1475
|
+
|
1476
|
+
def initialize(**args)
|
1477
|
+
update!(**args)
|
1478
|
+
end
|
1479
|
+
|
1480
|
+
# Update properties of this object
|
1481
|
+
def update!(**args)
|
1482
|
+
@vm_id = args[:vm_id] if args.key?(:vm_id)
|
1483
|
+
end
|
1484
|
+
end
|
1485
|
+
|
1486
|
+
# Definition of a custom Compute Engine virtual machine image for starting a
|
1487
|
+
# notebook instance with the environment installed directly on the VM.
|
1488
|
+
class VmImage
|
1489
|
+
include Google::Apis::Core::Hashable
|
1490
|
+
|
1491
|
+
# Optional. Use this VM image family to find the image; the newest image in this
|
1492
|
+
# family will be used.
|
1493
|
+
# Corresponds to the JSON property `family`
|
1494
|
+
# @return [String]
|
1495
|
+
attr_accessor :family
|
1496
|
+
|
1497
|
+
# Optional. Use VM image name to find the image.
|
1498
|
+
# Corresponds to the JSON property `name`
|
1499
|
+
# @return [String]
|
1500
|
+
attr_accessor :name
|
1501
|
+
|
1502
|
+
# Required. The name of the Google Cloud project that this VM image belongs to.
|
1503
|
+
# Format: ``project_id``
|
1504
|
+
# Corresponds to the JSON property `project`
|
1505
|
+
# @return [String]
|
1506
|
+
attr_accessor :project
|
1507
|
+
|
1508
|
+
def initialize(**args)
|
1509
|
+
update!(**args)
|
1510
|
+
end
|
1511
|
+
|
1512
|
+
# Update properties of this object
|
1513
|
+
def update!(**args)
|
1514
|
+
@family = args[:family] if args.key?(:family)
|
1515
|
+
@name = args[:name] if args.key?(:name)
|
1516
|
+
@project = args[:project] if args.key?(:project)
|
1517
|
+
end
|
1518
|
+
end
|
619
1519
|
end
|
620
1520
|
end
|
621
1521
|
end
|