google-apis-vmmigration_v1 0.1.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.
@@ -0,0 +1,2166 @@
1
+ # Copyright 2020 Google LLC
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+
15
+ require 'date'
16
+ require 'google/apis/core/base_service'
17
+ require 'google/apis/core/json_representation'
18
+ require 'google/apis/core/hashable'
19
+ require 'google/apis/errors'
20
+
21
+ module Google
22
+ module Apis
23
+ module VmmigrationV1
24
+
25
+ # Request message for 'AddGroupMigration' request.
26
+ class AddGroupMigrationRequest
27
+ include Google::Apis::Core::Hashable
28
+
29
+ # The full path name of the MigratingVm to add.
30
+ # Corresponds to the JSON property `migratingVm`
31
+ # @return [String]
32
+ attr_accessor :migrating_vm
33
+
34
+ def initialize(**args)
35
+ update!(**args)
36
+ end
37
+
38
+ # Update properties of this object
39
+ def update!(**args)
40
+ @migrating_vm = args[:migrating_vm] if args.key?(:migrating_vm)
41
+ end
42
+ end
43
+
44
+ # AppliedLicense holds the license data returned by adaptation module report.
45
+ class AppliedLicense
46
+ include Google::Apis::Core::Hashable
47
+
48
+ # The OS license returned from the adaptation module's report.
49
+ # Corresponds to the JSON property `osLicense`
50
+ # @return [String]
51
+ attr_accessor :os_license
52
+
53
+ # The license type that was used in OS adaptation.
54
+ # Corresponds to the JSON property `type`
55
+ # @return [String]
56
+ attr_accessor :type
57
+
58
+ def initialize(**args)
59
+ update!(**args)
60
+ end
61
+
62
+ # Update properties of this object
63
+ def update!(**args)
64
+ @os_license = args[:os_license] if args.key?(:os_license)
65
+ @type = args[:type] if args.key?(:type)
66
+ end
67
+ end
68
+
69
+ # Request message for 'CancelCloneJob' request.
70
+ class CancelCloneJobRequest
71
+ include Google::Apis::Core::Hashable
72
+
73
+ def initialize(**args)
74
+ update!(**args)
75
+ end
76
+
77
+ # Update properties of this object
78
+ def update!(**args)
79
+ end
80
+ end
81
+
82
+ # Request message for 'CancelCutoverJob' request.
83
+ class CancelCutoverJobRequest
84
+ include Google::Apis::Core::Hashable
85
+
86
+ def initialize(**args)
87
+ update!(**args)
88
+ end
89
+
90
+ # Update properties of this object
91
+ def update!(**args)
92
+ end
93
+ end
94
+
95
+ # The request message for Operations.CancelOperation.
96
+ class CancelOperationRequest
97
+ include Google::Apis::Core::Hashable
98
+
99
+ def initialize(**args)
100
+ update!(**args)
101
+ end
102
+
103
+ # Update properties of this object
104
+ def update!(**args)
105
+ end
106
+ end
107
+
108
+ # CloneJob describes the process of creating a clone of a MigratingVM to the
109
+ # requested target based on the latest successful uploaded snapshots. While the
110
+ # migration cycles of a MigratingVm take place, it is possible to verify the
111
+ # uploaded VM can be started in the cloud, by creating a clone. The clone can be
112
+ # created without any downtime, and it is created using the latest snapshots
113
+ # which are already in the cloud. The cloneJob is only responsible for its work,
114
+ # not its products, which means once it is finished, it will never touch the
115
+ # instance it created. It will only delete it in case of the CloneJob being
116
+ # cancelled or upon failure to clone.
117
+ class CloneJob
118
+ include Google::Apis::Core::Hashable
119
+
120
+ # ComputeEngineTargetDetails is a collection of details for creating a VM in a
121
+ # target Compute Engine project.
122
+ # Corresponds to the JSON property `computeEngineTargetDetails`
123
+ # @return [Google::Apis::VmmigrationV1::ComputeEngineTargetDetails]
124
+ attr_accessor :compute_engine_target_details
125
+
126
+ # TargetVMDetails is a collection of details for creating a VM in a target
127
+ # Compute Engine project.
128
+ # Corresponds to the JSON property `computeEngineVmDetails`
129
+ # @return [Google::Apis::VmmigrationV1::TargetVmDetails]
130
+ attr_accessor :compute_engine_vm_details
131
+
132
+ # Output only. The time the clone job was created (as an API call, not when it
133
+ # was actually created in the target).
134
+ # Corresponds to the JSON property `createTime`
135
+ # @return [String]
136
+ attr_accessor :create_time
137
+
138
+ # The `Status` type defines a logical error model that is suitable for different
139
+ # programming environments, including REST APIs and RPC APIs. It is used by [
140
+ # gRPC](https://github.com/grpc). Each `Status` message contains three pieces of
141
+ # data: error code, error message, and error details. You can find out more
142
+ # about this error model and how to work with it in the [API Design Guide](https:
143
+ # //cloud.google.com/apis/design/errors).
144
+ # Corresponds to the JSON property `error`
145
+ # @return [Google::Apis::VmmigrationV1::Status]
146
+ attr_accessor :error
147
+
148
+ # The name of the clone.
149
+ # Corresponds to the JSON property `name`
150
+ # @return [String]
151
+ attr_accessor :name
152
+
153
+ # Output only. State of the clone job.
154
+ # Corresponds to the JSON property `state`
155
+ # @return [String]
156
+ attr_accessor :state
157
+
158
+ # Output only. The time the state was last updated.
159
+ # Corresponds to the JSON property `stateTime`
160
+ # @return [String]
161
+ attr_accessor :state_time
162
+
163
+ def initialize(**args)
164
+ update!(**args)
165
+ end
166
+
167
+ # Update properties of this object
168
+ def update!(**args)
169
+ @compute_engine_target_details = args[:compute_engine_target_details] if args.key?(:compute_engine_target_details)
170
+ @compute_engine_vm_details = args[:compute_engine_vm_details] if args.key?(:compute_engine_vm_details)
171
+ @create_time = args[:create_time] if args.key?(:create_time)
172
+ @error = args[:error] if args.key?(:error)
173
+ @name = args[:name] if args.key?(:name)
174
+ @state = args[:state] if args.key?(:state)
175
+ @state_time = args[:state_time] if args.key?(:state_time)
176
+ end
177
+ end
178
+
179
+ # ComputeEngineTargetDefaults is a collection of details for creating a VM in a
180
+ # target Compute Engine project.
181
+ class ComputeEngineTargetDefaults
182
+ include Google::Apis::Core::Hashable
183
+
184
+ # AppliedLicense holds the license data returned by adaptation module report.
185
+ # Corresponds to the JSON property `appliedLicense`
186
+ # @return [Google::Apis::VmmigrationV1::AppliedLicense]
187
+ attr_accessor :applied_license
188
+
189
+ # Scheduling information for VM on maintenance/restart behaviour and node
190
+ # allocation in sole tenant nodes.
191
+ # Corresponds to the JSON property `computeScheduling`
192
+ # @return [Google::Apis::VmmigrationV1::ComputeScheduling]
193
+ attr_accessor :compute_scheduling
194
+
195
+ # The disk type to use in the VM.
196
+ # Corresponds to the JSON property `diskType`
197
+ # @return [String]
198
+ attr_accessor :disk_type
199
+
200
+ # A map of labels to associate with the VM.
201
+ # Corresponds to the JSON property `labels`
202
+ # @return [Hash<String,String>]
203
+ attr_accessor :labels
204
+
205
+ # The license type to use in OS adaptation.
206
+ # Corresponds to the JSON property `licenseType`
207
+ # @return [String]
208
+ attr_accessor :license_type
209
+
210
+ # The machine type to create the VM with.
211
+ # Corresponds to the JSON property `machineType`
212
+ # @return [String]
213
+ attr_accessor :machine_type
214
+
215
+ # The machine type series to create the VM with.
216
+ # Corresponds to the JSON property `machineTypeSeries`
217
+ # @return [String]
218
+ attr_accessor :machine_type_series
219
+
220
+ # List of NICs connected to this VM.
221
+ # Corresponds to the JSON property `networkInterfaces`
222
+ # @return [Array<Google::Apis::VmmigrationV1::NetworkInterface>]
223
+ attr_accessor :network_interfaces
224
+
225
+ # A map of network tags to associate with the VM.
226
+ # Corresponds to the JSON property `networkTags`
227
+ # @return [Array<String>]
228
+ attr_accessor :network_tags
229
+
230
+ # The service account to associate the VM with.
231
+ # Corresponds to the JSON property `serviceAccount`
232
+ # @return [String]
233
+ attr_accessor :service_account
234
+
235
+ # The full path of the resource of type TargetProject which represents the
236
+ # Compute Engine project in which to create this VM.
237
+ # Corresponds to the JSON property `targetProject`
238
+ # @return [String]
239
+ attr_accessor :target_project
240
+
241
+ # The name of the VM to create.
242
+ # Corresponds to the JSON property `vmName`
243
+ # @return [String]
244
+ attr_accessor :vm_name
245
+
246
+ # The zone in which to create the VM.
247
+ # Corresponds to the JSON property `zone`
248
+ # @return [String]
249
+ attr_accessor :zone
250
+
251
+ def initialize(**args)
252
+ update!(**args)
253
+ end
254
+
255
+ # Update properties of this object
256
+ def update!(**args)
257
+ @applied_license = args[:applied_license] if args.key?(:applied_license)
258
+ @compute_scheduling = args[:compute_scheduling] if args.key?(:compute_scheduling)
259
+ @disk_type = args[:disk_type] if args.key?(:disk_type)
260
+ @labels = args[:labels] if args.key?(:labels)
261
+ @license_type = args[:license_type] if args.key?(:license_type)
262
+ @machine_type = args[:machine_type] if args.key?(:machine_type)
263
+ @machine_type_series = args[:machine_type_series] if args.key?(:machine_type_series)
264
+ @network_interfaces = args[:network_interfaces] if args.key?(:network_interfaces)
265
+ @network_tags = args[:network_tags] if args.key?(:network_tags)
266
+ @service_account = args[:service_account] if args.key?(:service_account)
267
+ @target_project = args[:target_project] if args.key?(:target_project)
268
+ @vm_name = args[:vm_name] if args.key?(:vm_name)
269
+ @zone = args[:zone] if args.key?(:zone)
270
+ end
271
+ end
272
+
273
+ # ComputeEngineTargetDetails is a collection of details for creating a VM in a
274
+ # target Compute Engine project.
275
+ class ComputeEngineTargetDetails
276
+ include Google::Apis::Core::Hashable
277
+
278
+ # AppliedLicense holds the license data returned by adaptation module report.
279
+ # Corresponds to the JSON property `appliedLicense`
280
+ # @return [Google::Apis::VmmigrationV1::AppliedLicense]
281
+ attr_accessor :applied_license
282
+
283
+ # The VM Boot Option, as set in the source vm.
284
+ # Corresponds to the JSON property `bootOption`
285
+ # @return [String]
286
+ attr_accessor :boot_option
287
+
288
+ # Scheduling information for VM on maintenance/restart behaviour and node
289
+ # allocation in sole tenant nodes.
290
+ # Corresponds to the JSON property `computeScheduling`
291
+ # @return [Google::Apis::VmmigrationV1::ComputeScheduling]
292
+ attr_accessor :compute_scheduling
293
+
294
+ # The disk type to use in the VM.
295
+ # Corresponds to the JSON property `diskType`
296
+ # @return [String]
297
+ attr_accessor :disk_type
298
+
299
+ # A map of labels to associate with the VM.
300
+ # Corresponds to the JSON property `labels`
301
+ # @return [Hash<String,String>]
302
+ attr_accessor :labels
303
+
304
+ # The license type to use in OS adaptation.
305
+ # Corresponds to the JSON property `licenseType`
306
+ # @return [String]
307
+ attr_accessor :license_type
308
+
309
+ # The machine type to create the VM with.
310
+ # Corresponds to the JSON property `machineType`
311
+ # @return [String]
312
+ attr_accessor :machine_type
313
+
314
+ # The machine type series to create the VM with.
315
+ # Corresponds to the JSON property `machineTypeSeries`
316
+ # @return [String]
317
+ attr_accessor :machine_type_series
318
+
319
+ # The metadata key/value pairs to assign to the VM.
320
+ # Corresponds to the JSON property `metadata`
321
+ # @return [Hash<String,String>]
322
+ attr_accessor :metadata
323
+
324
+ # List of NICs connected to this VM.
325
+ # Corresponds to the JSON property `networkInterfaces`
326
+ # @return [Array<Google::Apis::VmmigrationV1::NetworkInterface>]
327
+ attr_accessor :network_interfaces
328
+
329
+ # A map of network tags to associate with the VM.
330
+ # Corresponds to the JSON property `networkTags`
331
+ # @return [Array<String>]
332
+ attr_accessor :network_tags
333
+
334
+ # The GCP target project ID or project name.
335
+ # Corresponds to the JSON property `project`
336
+ # @return [String]
337
+ attr_accessor :project
338
+
339
+ # Defines whether the instance has Secure Boot enabled. This can be set to true
340
+ # only if the vm boot option is EFI.
341
+ # Corresponds to the JSON property `secureBoot`
342
+ # @return [Boolean]
343
+ attr_accessor :secure_boot
344
+ alias_method :secure_boot?, :secure_boot
345
+
346
+ # The service account to associate the VM with.
347
+ # Corresponds to the JSON property `serviceAccount`
348
+ # @return [String]
349
+ attr_accessor :service_account
350
+
351
+ # The name of the VM to create.
352
+ # Corresponds to the JSON property `vmName`
353
+ # @return [String]
354
+ attr_accessor :vm_name
355
+
356
+ # The zone in which to create the VM.
357
+ # Corresponds to the JSON property `zone`
358
+ # @return [String]
359
+ attr_accessor :zone
360
+
361
+ def initialize(**args)
362
+ update!(**args)
363
+ end
364
+
365
+ # Update properties of this object
366
+ def update!(**args)
367
+ @applied_license = args[:applied_license] if args.key?(:applied_license)
368
+ @boot_option = args[:boot_option] if args.key?(:boot_option)
369
+ @compute_scheduling = args[:compute_scheduling] if args.key?(:compute_scheduling)
370
+ @disk_type = args[:disk_type] if args.key?(:disk_type)
371
+ @labels = args[:labels] if args.key?(:labels)
372
+ @license_type = args[:license_type] if args.key?(:license_type)
373
+ @machine_type = args[:machine_type] if args.key?(:machine_type)
374
+ @machine_type_series = args[:machine_type_series] if args.key?(:machine_type_series)
375
+ @metadata = args[:metadata] if args.key?(:metadata)
376
+ @network_interfaces = args[:network_interfaces] if args.key?(:network_interfaces)
377
+ @network_tags = args[:network_tags] if args.key?(:network_tags)
378
+ @project = args[:project] if args.key?(:project)
379
+ @secure_boot = args[:secure_boot] if args.key?(:secure_boot)
380
+ @service_account = args[:service_account] if args.key?(:service_account)
381
+ @vm_name = args[:vm_name] if args.key?(:vm_name)
382
+ @zone = args[:zone] if args.key?(:zone)
383
+ end
384
+ end
385
+
386
+ # Scheduling information for VM on maintenance/restart behaviour and node
387
+ # allocation in sole tenant nodes.
388
+ class ComputeScheduling
389
+ include Google::Apis::Core::Hashable
390
+
391
+ # The minimum number of virtual CPUs this instance will consume when running on
392
+ # a sole-tenant node. Ignored if no node_affinites are configured.
393
+ # Corresponds to the JSON property `minNodeCpus`
394
+ # @return [Fixnum]
395
+ attr_accessor :min_node_cpus
396
+
397
+ # A set of node affinity and anti-affinity configurations for sole tenant nodes.
398
+ # Corresponds to the JSON property `nodeAffinities`
399
+ # @return [Array<Google::Apis::VmmigrationV1::SchedulingNodeAffinity>]
400
+ attr_accessor :node_affinities
401
+
402
+ # How the instance should behave when the host machine undergoes maintenance
403
+ # that may temporarily impact instance performance.
404
+ # Corresponds to the JSON property `onHostMaintenance`
405
+ # @return [String]
406
+ attr_accessor :on_host_maintenance
407
+
408
+ # Whether the Instance should be automatically restarted whenever it is
409
+ # terminated by Compute Engine (not terminated by user). This configuration is
410
+ # identical to `automaticRestart` field in Compute Engine create instance under
411
+ # scheduling. It was changed to an enum (instead of a boolean) to match the
412
+ # default value in Compute Engine which is automatic restart.
413
+ # Corresponds to the JSON property `restartType`
414
+ # @return [String]
415
+ attr_accessor :restart_type
416
+
417
+ def initialize(**args)
418
+ update!(**args)
419
+ end
420
+
421
+ # Update properties of this object
422
+ def update!(**args)
423
+ @min_node_cpus = args[:min_node_cpus] if args.key?(:min_node_cpus)
424
+ @node_affinities = args[:node_affinities] if args.key?(:node_affinities)
425
+ @on_host_maintenance = args[:on_host_maintenance] if args.key?(:on_host_maintenance)
426
+ @restart_type = args[:restart_type] if args.key?(:restart_type)
427
+ end
428
+ end
429
+
430
+ # CutoverJob message describes a cutover of a migrating VM. The CutoverJob is
431
+ # the operation of shutting down the VM, creating a snapshot and clonning the VM
432
+ # using the replicated snapshot.
433
+ class CutoverJob
434
+ include Google::Apis::Core::Hashable
435
+
436
+ # ComputeEngineTargetDetails is a collection of details for creating a VM in a
437
+ # target Compute Engine project.
438
+ # Corresponds to the JSON property `computeEngineTargetDetails`
439
+ # @return [Google::Apis::VmmigrationV1::ComputeEngineTargetDetails]
440
+ attr_accessor :compute_engine_target_details
441
+
442
+ # TargetVMDetails is a collection of details for creating a VM in a target
443
+ # Compute Engine project.
444
+ # Corresponds to the JSON property `computeEngineVmDetails`
445
+ # @return [Google::Apis::VmmigrationV1::TargetVmDetails]
446
+ attr_accessor :compute_engine_vm_details
447
+
448
+ # Output only. The time the cutover job was created (as an API call, not when it
449
+ # was actually created in the target).
450
+ # Corresponds to the JSON property `createTime`
451
+ # @return [String]
452
+ attr_accessor :create_time
453
+
454
+ # The `Status` type defines a logical error model that is suitable for different
455
+ # programming environments, including REST APIs and RPC APIs. It is used by [
456
+ # gRPC](https://github.com/grpc). Each `Status` message contains three pieces of
457
+ # data: error code, error message, and error details. You can find out more
458
+ # about this error model and how to work with it in the [API Design Guide](https:
459
+ # //cloud.google.com/apis/design/errors).
460
+ # Corresponds to the JSON property `error`
461
+ # @return [Google::Apis::VmmigrationV1::Status]
462
+ attr_accessor :error
463
+
464
+ # Output only. The name of the cutover job.
465
+ # Corresponds to the JSON property `name`
466
+ # @return [String]
467
+ attr_accessor :name
468
+
469
+ # Output only. The current progress in percentage of the cutover job.
470
+ # Corresponds to the JSON property `progressPercent`
471
+ # @return [Fixnum]
472
+ attr_accessor :progress_percent
473
+
474
+ # Output only. State of the cutover job.
475
+ # Corresponds to the JSON property `state`
476
+ # @return [String]
477
+ attr_accessor :state
478
+
479
+ # Output only. A message providing possible extra details about the current
480
+ # state.
481
+ # Corresponds to the JSON property `stateMessage`
482
+ # @return [String]
483
+ attr_accessor :state_message
484
+
485
+ # Output only. The time the state was last updated.
486
+ # Corresponds to the JSON property `stateTime`
487
+ # @return [String]
488
+ attr_accessor :state_time
489
+
490
+ def initialize(**args)
491
+ update!(**args)
492
+ end
493
+
494
+ # Update properties of this object
495
+ def update!(**args)
496
+ @compute_engine_target_details = args[:compute_engine_target_details] if args.key?(:compute_engine_target_details)
497
+ @compute_engine_vm_details = args[:compute_engine_vm_details] if args.key?(:compute_engine_vm_details)
498
+ @create_time = args[:create_time] if args.key?(:create_time)
499
+ @error = args[:error] if args.key?(:error)
500
+ @name = args[:name] if args.key?(:name)
501
+ @progress_percent = args[:progress_percent] if args.key?(:progress_percent)
502
+ @state = args[:state] if args.key?(:state)
503
+ @state_message = args[:state_message] if args.key?(:state_message)
504
+ @state_time = args[:state_time] if args.key?(:state_time)
505
+ end
506
+ end
507
+
508
+ # DatacenterConnector message describes a connector between the Source and GCP,
509
+ # which is installed on a vmware datacenter (an OVA vm installed by the user) to
510
+ # connect the Datacenter to GCP and support vm migration data transfer.
511
+ class DatacenterConnector
512
+ include Google::Apis::Core::Hashable
513
+
514
+ # Output only. The communication channel between the datacenter connector and
515
+ # GCP.
516
+ # Corresponds to the JSON property `bucket`
517
+ # @return [String]
518
+ attr_accessor :bucket
519
+
520
+ # Output only. The time the connector was created (as an API call, not when it
521
+ # was actually installed).
522
+ # Corresponds to the JSON property `createTime`
523
+ # @return [String]
524
+ attr_accessor :create_time
525
+
526
+ # The `Status` type defines a logical error model that is suitable for different
527
+ # programming environments, including REST APIs and RPC APIs. It is used by [
528
+ # gRPC](https://github.com/grpc). Each `Status` message contains three pieces of
529
+ # data: error code, error message, and error details. You can find out more
530
+ # about this error model and how to work with it in the [API Design Guide](https:
531
+ # //cloud.google.com/apis/design/errors).
532
+ # Corresponds to the JSON property `error`
533
+ # @return [Google::Apis::VmmigrationV1::Status]
534
+ attr_accessor :error
535
+
536
+ # Output only. The connector's name.
537
+ # Corresponds to the JSON property `name`
538
+ # @return [String]
539
+ attr_accessor :name
540
+
541
+ # Immutable. A unique key for this connector. This key is internal to the OVA
542
+ # connector and is supplied with its creation during the registration process
543
+ # and can not be modified.
544
+ # Corresponds to the JSON property `registrationId`
545
+ # @return [String]
546
+ attr_accessor :registration_id
547
+
548
+ # The service account to use in the connector when communicating with the cloud.
549
+ # Corresponds to the JSON property `serviceAccount`
550
+ # @return [String]
551
+ attr_accessor :service_account
552
+
553
+ # Output only. State of the DatacenterConnector, as determined by the health
554
+ # checks.
555
+ # Corresponds to the JSON property `state`
556
+ # @return [String]
557
+ attr_accessor :state
558
+
559
+ # Output only. The time the state was last set.
560
+ # Corresponds to the JSON property `stateTime`
561
+ # @return [String]
562
+ attr_accessor :state_time
563
+
564
+ # Output only. The last time the connector was updated with an API call.
565
+ # Corresponds to the JSON property `updateTime`
566
+ # @return [String]
567
+ attr_accessor :update_time
568
+
569
+ # The version running in the DatacenterConnector. This is supplied by the OVA
570
+ # connector during the registration process and can not be modified.
571
+ # Corresponds to the JSON property `version`
572
+ # @return [String]
573
+ attr_accessor :version
574
+
575
+ def initialize(**args)
576
+ update!(**args)
577
+ end
578
+
579
+ # Update properties of this object
580
+ def update!(**args)
581
+ @bucket = args[:bucket] if args.key?(:bucket)
582
+ @create_time = args[:create_time] if args.key?(:create_time)
583
+ @error = args[:error] if args.key?(:error)
584
+ @name = args[:name] if args.key?(:name)
585
+ @registration_id = args[:registration_id] if args.key?(:registration_id)
586
+ @service_account = args[:service_account] if args.key?(:service_account)
587
+ @state = args[:state] if args.key?(:state)
588
+ @state_time = args[:state_time] if args.key?(:state_time)
589
+ @update_time = args[:update_time] if args.key?(:update_time)
590
+ @version = args[:version] if args.key?(:version)
591
+ end
592
+ end
593
+
594
+ # A generic empty message that you can re-use to avoid defining duplicated empty
595
+ # messages in your APIs. A typical example is to use it as the request or the
596
+ # response type of an API method. For instance: service Foo ` rpc Bar(google.
597
+ # protobuf.Empty) returns (google.protobuf.Empty); ` The JSON representation for
598
+ # `Empty` is empty JSON object ````.
599
+ class Empty
600
+ include Google::Apis::Core::Hashable
601
+
602
+ def initialize(**args)
603
+ update!(**args)
604
+ end
605
+
606
+ # Update properties of this object
607
+ def update!(**args)
608
+ end
609
+ end
610
+
611
+ # Response message for fetchInventory.
612
+ class FetchInventoryResponse
613
+ include Google::Apis::Core::Hashable
614
+
615
+ # Output only. The timestamp when the source was last queried (if the result is
616
+ # from the cache).
617
+ # Corresponds to the JSON property `updateTime`
618
+ # @return [String]
619
+ attr_accessor :update_time
620
+
621
+ # VmwareVmsDetails describes VMs in vCenter.
622
+ # Corresponds to the JSON property `vmwareVms`
623
+ # @return [Google::Apis::VmmigrationV1::VmwareVmsDetails]
624
+ attr_accessor :vmware_vms
625
+
626
+ def initialize(**args)
627
+ update!(**args)
628
+ end
629
+
630
+ # Update properties of this object
631
+ def update!(**args)
632
+ @update_time = args[:update_time] if args.key?(:update_time)
633
+ @vmware_vms = args[:vmware_vms] if args.key?(:vmware_vms)
634
+ end
635
+ end
636
+
637
+ # Request message for 'FinalizeMigration' request.
638
+ class FinalizeMigrationRequest
639
+ include Google::Apis::Core::Hashable
640
+
641
+ def initialize(**args)
642
+ update!(**args)
643
+ end
644
+
645
+ # Update properties of this object
646
+ def update!(**args)
647
+ end
648
+ end
649
+
650
+ # Describes message for 'Group' resource. The Group is a collections of several
651
+ # MigratingVms.
652
+ class Group
653
+ include Google::Apis::Core::Hashable
654
+
655
+ # Output only. The create time timestamp.
656
+ # Corresponds to the JSON property `createTime`
657
+ # @return [String]
658
+ attr_accessor :create_time
659
+
660
+ # User-provided description of the group.
661
+ # Corresponds to the JSON property `description`
662
+ # @return [String]
663
+ attr_accessor :description
664
+
665
+ # Display name is a user defined name for this group which can be updated.
666
+ # Corresponds to the JSON property `displayName`
667
+ # @return [String]
668
+ attr_accessor :display_name
669
+
670
+ # The Group name.
671
+ # Corresponds to the JSON property `name`
672
+ # @return [String]
673
+ attr_accessor :name
674
+
675
+ # Output only. The update time timestamp.
676
+ # Corresponds to the JSON property `updateTime`
677
+ # @return [String]
678
+ attr_accessor :update_time
679
+
680
+ def initialize(**args)
681
+ update!(**args)
682
+ end
683
+
684
+ # Update properties of this object
685
+ def update!(**args)
686
+ @create_time = args[:create_time] if args.key?(:create_time)
687
+ @description = args[:description] if args.key?(:description)
688
+ @display_name = args[:display_name] if args.key?(:display_name)
689
+ @name = args[:name] if args.key?(:name)
690
+ @update_time = args[:update_time] if args.key?(:update_time)
691
+ end
692
+ end
693
+
694
+ # Describes a URL link.
695
+ class Link
696
+ include Google::Apis::Core::Hashable
697
+
698
+ # Describes what the link offers.
699
+ # Corresponds to the JSON property `description`
700
+ # @return [String]
701
+ attr_accessor :description
702
+
703
+ # The URL of the link.
704
+ # Corresponds to the JSON property `url`
705
+ # @return [String]
706
+ attr_accessor :url
707
+
708
+ def initialize(**args)
709
+ update!(**args)
710
+ end
711
+
712
+ # Update properties of this object
713
+ def update!(**args)
714
+ @description = args[:description] if args.key?(:description)
715
+ @url = args[:url] if args.key?(:url)
716
+ end
717
+ end
718
+
719
+ # Response message for 'ListCloneJobs' request.
720
+ class ListCloneJobsResponse
721
+ include Google::Apis::Core::Hashable
722
+
723
+ # Output only. The list of clone jobs response.
724
+ # Corresponds to the JSON property `cloneJobs`
725
+ # @return [Array<Google::Apis::VmmigrationV1::CloneJob>]
726
+ attr_accessor :clone_jobs
727
+
728
+ # Output only. A token, which can be sent as `page_token` to retrieve the next
729
+ # page. If this field is omitted, there are no subsequent pages.
730
+ # Corresponds to the JSON property `nextPageToken`
731
+ # @return [String]
732
+ attr_accessor :next_page_token
733
+
734
+ # Output only. Locations that could not be reached.
735
+ # Corresponds to the JSON property `unreachable`
736
+ # @return [Array<String>]
737
+ attr_accessor :unreachable
738
+
739
+ def initialize(**args)
740
+ update!(**args)
741
+ end
742
+
743
+ # Update properties of this object
744
+ def update!(**args)
745
+ @clone_jobs = args[:clone_jobs] if args.key?(:clone_jobs)
746
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
747
+ @unreachable = args[:unreachable] if args.key?(:unreachable)
748
+ end
749
+ end
750
+
751
+ # Response message for 'ListCutoverJobs' request.
752
+ class ListCutoverJobsResponse
753
+ include Google::Apis::Core::Hashable
754
+
755
+ # Output only. The list of cutover jobs response.
756
+ # Corresponds to the JSON property `cutoverJobs`
757
+ # @return [Array<Google::Apis::VmmigrationV1::CutoverJob>]
758
+ attr_accessor :cutover_jobs
759
+
760
+ # Output only. A token, which can be sent as `page_token` to retrieve the next
761
+ # page. If this field is omitted, there are no subsequent pages.
762
+ # Corresponds to the JSON property `nextPageToken`
763
+ # @return [String]
764
+ attr_accessor :next_page_token
765
+
766
+ # Output only. Locations that could not be reached.
767
+ # Corresponds to the JSON property `unreachable`
768
+ # @return [Array<String>]
769
+ attr_accessor :unreachable
770
+
771
+ def initialize(**args)
772
+ update!(**args)
773
+ end
774
+
775
+ # Update properties of this object
776
+ def update!(**args)
777
+ @cutover_jobs = args[:cutover_jobs] if args.key?(:cutover_jobs)
778
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
779
+ @unreachable = args[:unreachable] if args.key?(:unreachable)
780
+ end
781
+ end
782
+
783
+ # Response message for 'ListDatacenterConnectors' request.
784
+ class ListDatacenterConnectorsResponse
785
+ include Google::Apis::Core::Hashable
786
+
787
+ # Output only. The list of sources response.
788
+ # Corresponds to the JSON property `datacenterConnectors`
789
+ # @return [Array<Google::Apis::VmmigrationV1::DatacenterConnector>]
790
+ attr_accessor :datacenter_connectors
791
+
792
+ # Output only. A token, which can be sent as `page_token` to retrieve the next
793
+ # page. If this field is omitted, there are no subsequent pages.
794
+ # Corresponds to the JSON property `nextPageToken`
795
+ # @return [String]
796
+ attr_accessor :next_page_token
797
+
798
+ # Output only. Locations that could not be reached.
799
+ # Corresponds to the JSON property `unreachable`
800
+ # @return [Array<String>]
801
+ attr_accessor :unreachable
802
+
803
+ def initialize(**args)
804
+ update!(**args)
805
+ end
806
+
807
+ # Update properties of this object
808
+ def update!(**args)
809
+ @datacenter_connectors = args[:datacenter_connectors] if args.key?(:datacenter_connectors)
810
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
811
+ @unreachable = args[:unreachable] if args.key?(:unreachable)
812
+ end
813
+ end
814
+
815
+ # Response message for 'ListGroups' request.
816
+ class ListGroupsResponse
817
+ include Google::Apis::Core::Hashable
818
+
819
+ # Output only. The list of groups response.
820
+ # Corresponds to the JSON property `groups`
821
+ # @return [Array<Google::Apis::VmmigrationV1::Group>]
822
+ attr_accessor :groups
823
+
824
+ # Output only. A token, which can be sent as `page_token` to retrieve the next
825
+ # page. If this field is omitted, there are no subsequent pages.
826
+ # Corresponds to the JSON property `nextPageToken`
827
+ # @return [String]
828
+ attr_accessor :next_page_token
829
+
830
+ # Output only. Locations that could not be reached.
831
+ # Corresponds to the JSON property `unreachable`
832
+ # @return [Array<String>]
833
+ attr_accessor :unreachable
834
+
835
+ def initialize(**args)
836
+ update!(**args)
837
+ end
838
+
839
+ # Update properties of this object
840
+ def update!(**args)
841
+ @groups = args[:groups] if args.key?(:groups)
842
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
843
+ @unreachable = args[:unreachable] if args.key?(:unreachable)
844
+ end
845
+ end
846
+
847
+ # The response message for Locations.ListLocations.
848
+ class ListLocationsResponse
849
+ include Google::Apis::Core::Hashable
850
+
851
+ # A list of locations that matches the specified filter in the request.
852
+ # Corresponds to the JSON property `locations`
853
+ # @return [Array<Google::Apis::VmmigrationV1::Location>]
854
+ attr_accessor :locations
855
+
856
+ # The standard List next-page token.
857
+ # Corresponds to the JSON property `nextPageToken`
858
+ # @return [String]
859
+ attr_accessor :next_page_token
860
+
861
+ def initialize(**args)
862
+ update!(**args)
863
+ end
864
+
865
+ # Update properties of this object
866
+ def update!(**args)
867
+ @locations = args[:locations] if args.key?(:locations)
868
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
869
+ end
870
+ end
871
+
872
+ # Response message for 'ListMigratingVms' request.
873
+ class ListMigratingVmsResponse
874
+ include Google::Apis::Core::Hashable
875
+
876
+ # Output only. The list of Migrating VMs response.
877
+ # Corresponds to the JSON property `migratingVms`
878
+ # @return [Array<Google::Apis::VmmigrationV1::MigratingVm>]
879
+ attr_accessor :migrating_vms
880
+
881
+ # Output only. A token, which can be sent as `page_token` to retrieve the next
882
+ # page. If this field is omitted, there are no subsequent pages.
883
+ # Corresponds to the JSON property `nextPageToken`
884
+ # @return [String]
885
+ attr_accessor :next_page_token
886
+
887
+ # Output only. Locations that could not be reached.
888
+ # Corresponds to the JSON property `unreachable`
889
+ # @return [Array<String>]
890
+ attr_accessor :unreachable
891
+
892
+ def initialize(**args)
893
+ update!(**args)
894
+ end
895
+
896
+ # Update properties of this object
897
+ def update!(**args)
898
+ @migrating_vms = args[:migrating_vms] if args.key?(:migrating_vms)
899
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
900
+ @unreachable = args[:unreachable] if args.key?(:unreachable)
901
+ end
902
+ end
903
+
904
+ # The response message for Operations.ListOperations.
905
+ class ListOperationsResponse
906
+ include Google::Apis::Core::Hashable
907
+
908
+ # The standard List next-page token.
909
+ # Corresponds to the JSON property `nextPageToken`
910
+ # @return [String]
911
+ attr_accessor :next_page_token
912
+
913
+ # A list of operations that matches the specified filter in the request.
914
+ # Corresponds to the JSON property `operations`
915
+ # @return [Array<Google::Apis::VmmigrationV1::Operation>]
916
+ attr_accessor :operations
917
+
918
+ def initialize(**args)
919
+ update!(**args)
920
+ end
921
+
922
+ # Update properties of this object
923
+ def update!(**args)
924
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
925
+ @operations = args[:operations] if args.key?(:operations)
926
+ end
927
+ end
928
+
929
+ # Response message for 'ListSources' request.
930
+ class ListSourcesResponse
931
+ include Google::Apis::Core::Hashable
932
+
933
+ # Output only. A token, which can be sent as `page_token` to retrieve the next
934
+ # page. If this field is omitted, there are no subsequent pages.
935
+ # Corresponds to the JSON property `nextPageToken`
936
+ # @return [String]
937
+ attr_accessor :next_page_token
938
+
939
+ # Output only. The list of sources response.
940
+ # Corresponds to the JSON property `sources`
941
+ # @return [Array<Google::Apis::VmmigrationV1::Source>]
942
+ attr_accessor :sources
943
+
944
+ # Output only. Locations that could not be reached.
945
+ # Corresponds to the JSON property `unreachable`
946
+ # @return [Array<String>]
947
+ attr_accessor :unreachable
948
+
949
+ def initialize(**args)
950
+ update!(**args)
951
+ end
952
+
953
+ # Update properties of this object
954
+ def update!(**args)
955
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
956
+ @sources = args[:sources] if args.key?(:sources)
957
+ @unreachable = args[:unreachable] if args.key?(:unreachable)
958
+ end
959
+ end
960
+
961
+ # Response message for 'ListTargetProjects' call.
962
+ class ListTargetProjectsResponse
963
+ include Google::Apis::Core::Hashable
964
+
965
+ # Output only. A token, which can be sent as `page_token` to retrieve the next
966
+ # page. If this field is omitted, there are no subsequent pages.
967
+ # Corresponds to the JSON property `nextPageToken`
968
+ # @return [String]
969
+ attr_accessor :next_page_token
970
+
971
+ # Output only. The list of target response.
972
+ # Corresponds to the JSON property `targetProjects`
973
+ # @return [Array<Google::Apis::VmmigrationV1::TargetProject>]
974
+ attr_accessor :target_projects
975
+
976
+ # Output only. Locations that could not be reached.
977
+ # Corresponds to the JSON property `unreachable`
978
+ # @return [Array<String>]
979
+ attr_accessor :unreachable
980
+
981
+ def initialize(**args)
982
+ update!(**args)
983
+ end
984
+
985
+ # Update properties of this object
986
+ def update!(**args)
987
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
988
+ @target_projects = args[:target_projects] if args.key?(:target_projects)
989
+ @unreachable = args[:unreachable] if args.key?(:unreachable)
990
+ end
991
+ end
992
+
993
+ # Response message for 'ListUtilizationReports' request.
994
+ class ListUtilizationReportsResponse
995
+ include Google::Apis::Core::Hashable
996
+
997
+ # Output only. A token, which can be sent as `page_token` to retrieve the next
998
+ # page. If this field is omitted, there are no subsequent pages.
999
+ # Corresponds to the JSON property `nextPageToken`
1000
+ # @return [String]
1001
+ attr_accessor :next_page_token
1002
+
1003
+ # Output only. Locations that could not be reached.
1004
+ # Corresponds to the JSON property `unreachable`
1005
+ # @return [Array<String>]
1006
+ attr_accessor :unreachable
1007
+
1008
+ # Output only. The list of reports.
1009
+ # Corresponds to the JSON property `utilizationReports`
1010
+ # @return [Array<Google::Apis::VmmigrationV1::UtilizationReport>]
1011
+ attr_accessor :utilization_reports
1012
+
1013
+ def initialize(**args)
1014
+ update!(**args)
1015
+ end
1016
+
1017
+ # Update properties of this object
1018
+ def update!(**args)
1019
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1020
+ @unreachable = args[:unreachable] if args.key?(:unreachable)
1021
+ @utilization_reports = args[:utilization_reports] if args.key?(:utilization_reports)
1022
+ end
1023
+ end
1024
+
1025
+ # Provides a localized error message that is safe to return to the user which
1026
+ # can be attached to an RPC error.
1027
+ class LocalizedMessage
1028
+ include Google::Apis::Core::Hashable
1029
+
1030
+ # The locale used following the specification defined at http://www.rfc-editor.
1031
+ # org/rfc/bcp/bcp47.txt. Examples are: "en-US", "fr-CH", "es-MX"
1032
+ # Corresponds to the JSON property `locale`
1033
+ # @return [String]
1034
+ attr_accessor :locale
1035
+
1036
+ # The localized error message in the above locale.
1037
+ # Corresponds to the JSON property `message`
1038
+ # @return [String]
1039
+ attr_accessor :message
1040
+
1041
+ def initialize(**args)
1042
+ update!(**args)
1043
+ end
1044
+
1045
+ # Update properties of this object
1046
+ def update!(**args)
1047
+ @locale = args[:locale] if args.key?(:locale)
1048
+ @message = args[:message] if args.key?(:message)
1049
+ end
1050
+ end
1051
+
1052
+ # A resource that represents Google Cloud Platform location.
1053
+ class Location
1054
+ include Google::Apis::Core::Hashable
1055
+
1056
+ # The friendly name for this location, typically a nearby city name. For example,
1057
+ # "Tokyo".
1058
+ # Corresponds to the JSON property `displayName`
1059
+ # @return [String]
1060
+ attr_accessor :display_name
1061
+
1062
+ # Cross-service attributes for the location. For example `"cloud.googleapis.com/
1063
+ # region": "us-east1"`
1064
+ # Corresponds to the JSON property `labels`
1065
+ # @return [Hash<String,String>]
1066
+ attr_accessor :labels
1067
+
1068
+ # The canonical id for this location. For example: `"us-east1"`.
1069
+ # Corresponds to the JSON property `locationId`
1070
+ # @return [String]
1071
+ attr_accessor :location_id
1072
+
1073
+ # Service-specific metadata. For example the available capacity at the given
1074
+ # location.
1075
+ # Corresponds to the JSON property `metadata`
1076
+ # @return [Hash<String,Object>]
1077
+ attr_accessor :metadata
1078
+
1079
+ # Resource name for the location, which may vary between implementations. For
1080
+ # example: `"projects/example-project/locations/us-east1"`
1081
+ # Corresponds to the JSON property `name`
1082
+ # @return [String]
1083
+ attr_accessor :name
1084
+
1085
+ def initialize(**args)
1086
+ update!(**args)
1087
+ end
1088
+
1089
+ # Update properties of this object
1090
+ def update!(**args)
1091
+ @display_name = args[:display_name] if args.key?(:display_name)
1092
+ @labels = args[:labels] if args.key?(:labels)
1093
+ @location_id = args[:location_id] if args.key?(:location_id)
1094
+ @metadata = args[:metadata] if args.key?(:metadata)
1095
+ @name = args[:name] if args.key?(:name)
1096
+ end
1097
+ end
1098
+
1099
+ # MigratingVm describes the VM that will be migrated from a Source environment
1100
+ # and its replication state.
1101
+ class MigratingVm
1102
+ include Google::Apis::Core::Hashable
1103
+
1104
+ # ComputeEngineTargetDefaults is a collection of details for creating a VM in a
1105
+ # target Compute Engine project.
1106
+ # Corresponds to the JSON property `computeEngineTargetDefaults`
1107
+ # @return [Google::Apis::VmmigrationV1::ComputeEngineTargetDefaults]
1108
+ attr_accessor :compute_engine_target_defaults
1109
+
1110
+ # Output only. The time the migrating VM was created (this refers to this
1111
+ # resource and not to the time it was installed in the source).
1112
+ # Corresponds to the JSON property `createTime`
1113
+ # @return [String]
1114
+ attr_accessor :create_time
1115
+
1116
+ # ReplicationCycle contains information about the current replication cycle
1117
+ # status.
1118
+ # Corresponds to the JSON property `currentSyncInfo`
1119
+ # @return [Google::Apis::VmmigrationV1::ReplicationCycle]
1120
+ attr_accessor :current_sync_info
1121
+
1122
+ # The description attached to the migrating VM by the user.
1123
+ # Corresponds to the JSON property `description`
1124
+ # @return [String]
1125
+ attr_accessor :description
1126
+
1127
+ # The display name attached to the MigratingVm by the user.
1128
+ # Corresponds to the JSON property `displayName`
1129
+ # @return [String]
1130
+ attr_accessor :display_name
1131
+
1132
+ # The `Status` type defines a logical error model that is suitable for different
1133
+ # programming environments, including REST APIs and RPC APIs. It is used by [
1134
+ # gRPC](https://github.com/grpc). Each `Status` message contains three pieces of
1135
+ # data: error code, error message, and error details. You can find out more
1136
+ # about this error model and how to work with it in the [API Design Guide](https:
1137
+ # //cloud.google.com/apis/design/errors).
1138
+ # Corresponds to the JSON property `error`
1139
+ # @return [Google::Apis::VmmigrationV1::Status]
1140
+ attr_accessor :error
1141
+
1142
+ # Output only. The group this migrating vm is included in, if any. The group is
1143
+ # represented by the full path of the appropriate Group resource.
1144
+ # Corresponds to the JSON property `group`
1145
+ # @return [String]
1146
+ attr_accessor :group
1147
+
1148
+ # The labels of the migrating VM.
1149
+ # Corresponds to the JSON property `labels`
1150
+ # @return [Hash<String,String>]
1151
+ attr_accessor :labels
1152
+
1153
+ # ReplicationSync contain information about the last replica sync to the cloud.
1154
+ # Corresponds to the JSON property `lastSync`
1155
+ # @return [Google::Apis::VmmigrationV1::ReplicationSync]
1156
+ attr_accessor :last_sync
1157
+
1158
+ # Output only. The identifier of the MigratingVm.
1159
+ # Corresponds to the JSON property `name`
1160
+ # @return [String]
1161
+ attr_accessor :name
1162
+
1163
+ # A policy for scheduling replications.
1164
+ # Corresponds to the JSON property `policy`
1165
+ # @return [Google::Apis::VmmigrationV1::SchedulePolicy]
1166
+ attr_accessor :policy
1167
+
1168
+ # The unique ID of the VM in the source. The VM's name in vSphere can be changed,
1169
+ # so this is not the VM's name but rather its moRef id. This id is of the form
1170
+ # vm-.
1171
+ # Corresponds to the JSON property `sourceVmId`
1172
+ # @return [String]
1173
+ attr_accessor :source_vm_id
1174
+
1175
+ # Output only. State of the MigratingVm.
1176
+ # Corresponds to the JSON property `state`
1177
+ # @return [String]
1178
+ attr_accessor :state
1179
+
1180
+ # Output only. The last time the migrating VM state was updated.
1181
+ # Corresponds to the JSON property `stateTime`
1182
+ # @return [String]
1183
+ attr_accessor :state_time
1184
+
1185
+ # Output only. The last time the migrating VM resource was updated.
1186
+ # Corresponds to the JSON property `updateTime`
1187
+ # @return [String]
1188
+ attr_accessor :update_time
1189
+
1190
+ def initialize(**args)
1191
+ update!(**args)
1192
+ end
1193
+
1194
+ # Update properties of this object
1195
+ def update!(**args)
1196
+ @compute_engine_target_defaults = args[:compute_engine_target_defaults] if args.key?(:compute_engine_target_defaults)
1197
+ @create_time = args[:create_time] if args.key?(:create_time)
1198
+ @current_sync_info = args[:current_sync_info] if args.key?(:current_sync_info)
1199
+ @description = args[:description] if args.key?(:description)
1200
+ @display_name = args[:display_name] if args.key?(:display_name)
1201
+ @error = args[:error] if args.key?(:error)
1202
+ @group = args[:group] if args.key?(:group)
1203
+ @labels = args[:labels] if args.key?(:labels)
1204
+ @last_sync = args[:last_sync] if args.key?(:last_sync)
1205
+ @name = args[:name] if args.key?(:name)
1206
+ @policy = args[:policy] if args.key?(:policy)
1207
+ @source_vm_id = args[:source_vm_id] if args.key?(:source_vm_id)
1208
+ @state = args[:state] if args.key?(:state)
1209
+ @state_time = args[:state_time] if args.key?(:state_time)
1210
+ @update_time = args[:update_time] if args.key?(:update_time)
1211
+ end
1212
+ end
1213
+
1214
+ # Represents migration resource error information that can be used with google.
1215
+ # rpc.Status message. MigrationError is used to present the user with error
1216
+ # information in migration operations.
1217
+ class MigrationError
1218
+ include Google::Apis::Core::Hashable
1219
+
1220
+ # Provides a localized error message that is safe to return to the user which
1221
+ # can be attached to an RPC error.
1222
+ # Corresponds to the JSON property `actionItem`
1223
+ # @return [Google::Apis::VmmigrationV1::LocalizedMessage]
1224
+ attr_accessor :action_item
1225
+
1226
+ # Output only. The error code.
1227
+ # Corresponds to the JSON property `code`
1228
+ # @return [String]
1229
+ attr_accessor :code
1230
+
1231
+ # Provides a localized error message that is safe to return to the user which
1232
+ # can be attached to an RPC error.
1233
+ # Corresponds to the JSON property `errorMessage`
1234
+ # @return [Google::Apis::VmmigrationV1::LocalizedMessage]
1235
+ attr_accessor :error_message
1236
+
1237
+ # Output only. The time the error occurred.
1238
+ # Corresponds to the JSON property `errorTime`
1239
+ # @return [String]
1240
+ attr_accessor :error_time
1241
+
1242
+ # Output only. URL(s) pointing to additional information on handling the current
1243
+ # error.
1244
+ # Corresponds to the JSON property `helpLinks`
1245
+ # @return [Array<Google::Apis::VmmigrationV1::Link>]
1246
+ attr_accessor :help_links
1247
+
1248
+ def initialize(**args)
1249
+ update!(**args)
1250
+ end
1251
+
1252
+ # Update properties of this object
1253
+ def update!(**args)
1254
+ @action_item = args[:action_item] if args.key?(:action_item)
1255
+ @code = args[:code] if args.key?(:code)
1256
+ @error_message = args[:error_message] if args.key?(:error_message)
1257
+ @error_time = args[:error_time] if args.key?(:error_time)
1258
+ @help_links = args[:help_links] if args.key?(:help_links)
1259
+ end
1260
+ end
1261
+
1262
+ # NetworkInterface represents a NIC of a VM.
1263
+ class NetworkInterface
1264
+ include Google::Apis::Core::Hashable
1265
+
1266
+ # The external IP to define in the NIC.
1267
+ # Corresponds to the JSON property `externalIp`
1268
+ # @return [String]
1269
+ attr_accessor :external_ip
1270
+
1271
+ # The internal IP to define in the NIC. The formats accepted are: `ephemeral` \
1272
+ # ipv4 address \ a named address resource full path.
1273
+ # Corresponds to the JSON property `internalIp`
1274
+ # @return [String]
1275
+ attr_accessor :internal_ip
1276
+
1277
+ # The network to connect the NIC to.
1278
+ # Corresponds to the JSON property `network`
1279
+ # @return [String]
1280
+ attr_accessor :network
1281
+
1282
+ # The subnetwork to connect the NIC to.
1283
+ # Corresponds to the JSON property `subnetwork`
1284
+ # @return [String]
1285
+ attr_accessor :subnetwork
1286
+
1287
+ def initialize(**args)
1288
+ update!(**args)
1289
+ end
1290
+
1291
+ # Update properties of this object
1292
+ def update!(**args)
1293
+ @external_ip = args[:external_ip] if args.key?(:external_ip)
1294
+ @internal_ip = args[:internal_ip] if args.key?(:internal_ip)
1295
+ @network = args[:network] if args.key?(:network)
1296
+ @subnetwork = args[:subnetwork] if args.key?(:subnetwork)
1297
+ end
1298
+ end
1299
+
1300
+ # This resource represents a long-running operation that is the result of a
1301
+ # network API call.
1302
+ class Operation
1303
+ include Google::Apis::Core::Hashable
1304
+
1305
+ # If the value is `false`, it means the operation is still in progress. If `true`
1306
+ # , the operation is completed, and either `error` or `response` is available.
1307
+ # Corresponds to the JSON property `done`
1308
+ # @return [Boolean]
1309
+ attr_accessor :done
1310
+ alias_method :done?, :done
1311
+
1312
+ # The `Status` type defines a logical error model that is suitable for different
1313
+ # programming environments, including REST APIs and RPC APIs. It is used by [
1314
+ # gRPC](https://github.com/grpc). Each `Status` message contains three pieces of
1315
+ # data: error code, error message, and error details. You can find out more
1316
+ # about this error model and how to work with it in the [API Design Guide](https:
1317
+ # //cloud.google.com/apis/design/errors).
1318
+ # Corresponds to the JSON property `error`
1319
+ # @return [Google::Apis::VmmigrationV1::Status]
1320
+ attr_accessor :error
1321
+
1322
+ # Service-specific metadata associated with the operation. It typically contains
1323
+ # progress information and common metadata such as create time. Some services
1324
+ # might not provide such metadata. Any method that returns a long-running
1325
+ # operation should document the metadata type, if any.
1326
+ # Corresponds to the JSON property `metadata`
1327
+ # @return [Hash<String,Object>]
1328
+ attr_accessor :metadata
1329
+
1330
+ # The server-assigned name, which is only unique within the same service that
1331
+ # originally returns it. If you use the default HTTP mapping, the `name` should
1332
+ # be a resource name ending with `operations/`unique_id``.
1333
+ # Corresponds to the JSON property `name`
1334
+ # @return [String]
1335
+ attr_accessor :name
1336
+
1337
+ # The normal response of the operation in case of success. If the original
1338
+ # method returns no data on success, such as `Delete`, the response is `google.
1339
+ # protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`,
1340
+ # the response should be the resource. For other methods, the response should
1341
+ # have the type `XxxResponse`, where `Xxx` is the original method name. For
1342
+ # example, if the original method name is `TakeSnapshot()`, the inferred
1343
+ # response type is `TakeSnapshotResponse`.
1344
+ # Corresponds to the JSON property `response`
1345
+ # @return [Hash<String,Object>]
1346
+ attr_accessor :response
1347
+
1348
+ def initialize(**args)
1349
+ update!(**args)
1350
+ end
1351
+
1352
+ # Update properties of this object
1353
+ def update!(**args)
1354
+ @done = args[:done] if args.key?(:done)
1355
+ @error = args[:error] if args.key?(:error)
1356
+ @metadata = args[:metadata] if args.key?(:metadata)
1357
+ @name = args[:name] if args.key?(:name)
1358
+ @response = args[:response] if args.key?(:response)
1359
+ end
1360
+ end
1361
+
1362
+ # Represents the metadata of the long-running operation.
1363
+ class OperationMetadata
1364
+ include Google::Apis::Core::Hashable
1365
+
1366
+ # Output only. API version used to start the operation.
1367
+ # Corresponds to the JSON property `apiVersion`
1368
+ # @return [String]
1369
+ attr_accessor :api_version
1370
+
1371
+ # Output only. The time the operation was created.
1372
+ # Corresponds to the JSON property `createTime`
1373
+ # @return [String]
1374
+ attr_accessor :create_time
1375
+
1376
+ # Output only. The time the operation finished running.
1377
+ # Corresponds to the JSON property `endTime`
1378
+ # @return [String]
1379
+ attr_accessor :end_time
1380
+
1381
+ # Output only. Identifies whether the user has requested cancellation of the
1382
+ # operation. Operations that have successfully been cancelled have Operation.
1383
+ # error value with a google.rpc.Status.code of 1, corresponding to `Code.
1384
+ # CANCELLED`.
1385
+ # Corresponds to the JSON property `requestedCancellation`
1386
+ # @return [Boolean]
1387
+ attr_accessor :requested_cancellation
1388
+ alias_method :requested_cancellation?, :requested_cancellation
1389
+
1390
+ # Output only. Human-readable status of the operation, if any.
1391
+ # Corresponds to the JSON property `statusMessage`
1392
+ # @return [String]
1393
+ attr_accessor :status_message
1394
+
1395
+ # Output only. Server-defined resource path for the target of the operation.
1396
+ # Corresponds to the JSON property `target`
1397
+ # @return [String]
1398
+ attr_accessor :target
1399
+
1400
+ # Output only. Name of the verb executed by the operation.
1401
+ # Corresponds to the JSON property `verb`
1402
+ # @return [String]
1403
+ attr_accessor :verb
1404
+
1405
+ def initialize(**args)
1406
+ update!(**args)
1407
+ end
1408
+
1409
+ # Update properties of this object
1410
+ def update!(**args)
1411
+ @api_version = args[:api_version] if args.key?(:api_version)
1412
+ @create_time = args[:create_time] if args.key?(:create_time)
1413
+ @end_time = args[:end_time] if args.key?(:end_time)
1414
+ @requested_cancellation = args[:requested_cancellation] if args.key?(:requested_cancellation)
1415
+ @status_message = args[:status_message] if args.key?(:status_message)
1416
+ @target = args[:target] if args.key?(:target)
1417
+ @verb = args[:verb] if args.key?(:verb)
1418
+ end
1419
+ end
1420
+
1421
+ # Request message for 'PauseMigration' request.
1422
+ class PauseMigrationRequest
1423
+ include Google::Apis::Core::Hashable
1424
+
1425
+ def initialize(**args)
1426
+ update!(**args)
1427
+ end
1428
+
1429
+ # Update properties of this object
1430
+ def update!(**args)
1431
+ end
1432
+ end
1433
+
1434
+ # Request message for 'RemoveMigration' request.
1435
+ class RemoveGroupMigrationRequest
1436
+ include Google::Apis::Core::Hashable
1437
+
1438
+ # The MigratingVm to remove.
1439
+ # Corresponds to the JSON property `migratingVm`
1440
+ # @return [String]
1441
+ attr_accessor :migrating_vm
1442
+
1443
+ def initialize(**args)
1444
+ update!(**args)
1445
+ end
1446
+
1447
+ # Update properties of this object
1448
+ def update!(**args)
1449
+ @migrating_vm = args[:migrating_vm] if args.key?(:migrating_vm)
1450
+ end
1451
+ end
1452
+
1453
+ # ReplicationCycle contains information about the current replication cycle
1454
+ # status.
1455
+ class ReplicationCycle
1456
+ include Google::Apis::Core::Hashable
1457
+
1458
+ # The current progress in percentage of this cycle.
1459
+ # Corresponds to the JSON property `progressPercent`
1460
+ # @return [Fixnum]
1461
+ attr_accessor :progress_percent
1462
+
1463
+ # The time the replication cycle has started.
1464
+ # Corresponds to the JSON property `startTime`
1465
+ # @return [String]
1466
+ attr_accessor :start_time
1467
+
1468
+ def initialize(**args)
1469
+ update!(**args)
1470
+ end
1471
+
1472
+ # Update properties of this object
1473
+ def update!(**args)
1474
+ @progress_percent = args[:progress_percent] if args.key?(:progress_percent)
1475
+ @start_time = args[:start_time] if args.key?(:start_time)
1476
+ end
1477
+ end
1478
+
1479
+ # ReplicationSync contain information about the last replica sync to the cloud.
1480
+ class ReplicationSync
1481
+ include Google::Apis::Core::Hashable
1482
+
1483
+ # The most updated snapshot created time in the source that finished replication.
1484
+ # Corresponds to the JSON property `lastSyncTime`
1485
+ # @return [String]
1486
+ attr_accessor :last_sync_time
1487
+
1488
+ def initialize(**args)
1489
+ update!(**args)
1490
+ end
1491
+
1492
+ # Update properties of this object
1493
+ def update!(**args)
1494
+ @last_sync_time = args[:last_sync_time] if args.key?(:last_sync_time)
1495
+ end
1496
+ end
1497
+
1498
+ # Request message for 'ResumeMigration' request.
1499
+ class ResumeMigrationRequest
1500
+ include Google::Apis::Core::Hashable
1501
+
1502
+ def initialize(**args)
1503
+ update!(**args)
1504
+ end
1505
+
1506
+ # Update properties of this object
1507
+ def update!(**args)
1508
+ end
1509
+ end
1510
+
1511
+ # A policy for scheduling replications.
1512
+ class SchedulePolicy
1513
+ include Google::Apis::Core::Hashable
1514
+
1515
+ # The idle duration between replication stages.
1516
+ # Corresponds to the JSON property `idleDuration`
1517
+ # @return [String]
1518
+ attr_accessor :idle_duration
1519
+
1520
+ # A flag to indicate whether to skip OS adaptation during the replication sync.
1521
+ # OS adaptation is a process where the VM's operating system undergoes changes
1522
+ # and adaptations to fully function on Compute Engine.
1523
+ # Corresponds to the JSON property `skipOsAdaptation`
1524
+ # @return [Boolean]
1525
+ attr_accessor :skip_os_adaptation
1526
+ alias_method :skip_os_adaptation?, :skip_os_adaptation
1527
+
1528
+ def initialize(**args)
1529
+ update!(**args)
1530
+ end
1531
+
1532
+ # Update properties of this object
1533
+ def update!(**args)
1534
+ @idle_duration = args[:idle_duration] if args.key?(:idle_duration)
1535
+ @skip_os_adaptation = args[:skip_os_adaptation] if args.key?(:skip_os_adaptation)
1536
+ end
1537
+ end
1538
+
1539
+ # Node Affinity: the configuration of desired nodes onto which this Instance
1540
+ # could be scheduled. Based on https://cloud.google.com/compute/docs/reference/
1541
+ # rest/v1/instances/setScheduling
1542
+ class SchedulingNodeAffinity
1543
+ include Google::Apis::Core::Hashable
1544
+
1545
+ # The label key of Node resource to reference.
1546
+ # Corresponds to the JSON property `key`
1547
+ # @return [String]
1548
+ attr_accessor :key
1549
+
1550
+ # The operator to use for the node resources specified in the `values` parameter.
1551
+ # Corresponds to the JSON property `operator`
1552
+ # @return [String]
1553
+ attr_accessor :operator
1554
+
1555
+ # Corresponds to the label values of Node resource.
1556
+ # Corresponds to the JSON property `values`
1557
+ # @return [Array<String>]
1558
+ attr_accessor :values
1559
+
1560
+ def initialize(**args)
1561
+ update!(**args)
1562
+ end
1563
+
1564
+ # Update properties of this object
1565
+ def update!(**args)
1566
+ @key = args[:key] if args.key?(:key)
1567
+ @operator = args[:operator] if args.key?(:operator)
1568
+ @values = args[:values] if args.key?(:values)
1569
+ end
1570
+ end
1571
+
1572
+ # Source message describes a specific vm migration Source resource. It contains
1573
+ # the source environment information.
1574
+ class Source
1575
+ include Google::Apis::Core::Hashable
1576
+
1577
+ # Output only. The create time timestamp.
1578
+ # Corresponds to the JSON property `createTime`
1579
+ # @return [String]
1580
+ attr_accessor :create_time
1581
+
1582
+ # User-provided description of the source.
1583
+ # Corresponds to the JSON property `description`
1584
+ # @return [String]
1585
+ attr_accessor :description
1586
+
1587
+ # The labels of the source.
1588
+ # Corresponds to the JSON property `labels`
1589
+ # @return [Hash<String,String>]
1590
+ attr_accessor :labels
1591
+
1592
+ # Output only. The Source name.
1593
+ # Corresponds to the JSON property `name`
1594
+ # @return [String]
1595
+ attr_accessor :name
1596
+
1597
+ # Output only. The update time timestamp.
1598
+ # Corresponds to the JSON property `updateTime`
1599
+ # @return [String]
1600
+ attr_accessor :update_time
1601
+
1602
+ # VmwareSourceDetails message describes a specific source details for the vmware
1603
+ # source type.
1604
+ # Corresponds to the JSON property `vmware`
1605
+ # @return [Google::Apis::VmmigrationV1::VmwareSourceDetails]
1606
+ attr_accessor :vmware
1607
+
1608
+ def initialize(**args)
1609
+ update!(**args)
1610
+ end
1611
+
1612
+ # Update properties of this object
1613
+ def update!(**args)
1614
+ @create_time = args[:create_time] if args.key?(:create_time)
1615
+ @description = args[:description] if args.key?(:description)
1616
+ @labels = args[:labels] if args.key?(:labels)
1617
+ @name = args[:name] if args.key?(:name)
1618
+ @update_time = args[:update_time] if args.key?(:update_time)
1619
+ @vmware = args[:vmware] if args.key?(:vmware)
1620
+ end
1621
+ end
1622
+
1623
+ # Request message for 'StartMigrationRequest' request.
1624
+ class StartMigrationRequest
1625
+ include Google::Apis::Core::Hashable
1626
+
1627
+ def initialize(**args)
1628
+ update!(**args)
1629
+ end
1630
+
1631
+ # Update properties of this object
1632
+ def update!(**args)
1633
+ end
1634
+ end
1635
+
1636
+ # The `Status` type defines a logical error model that is suitable for different
1637
+ # programming environments, including REST APIs and RPC APIs. It is used by [
1638
+ # gRPC](https://github.com/grpc). Each `Status` message contains three pieces of
1639
+ # data: error code, error message, and error details. You can find out more
1640
+ # about this error model and how to work with it in the [API Design Guide](https:
1641
+ # //cloud.google.com/apis/design/errors).
1642
+ class Status
1643
+ include Google::Apis::Core::Hashable
1644
+
1645
+ # The status code, which should be an enum value of google.rpc.Code.
1646
+ # Corresponds to the JSON property `code`
1647
+ # @return [Fixnum]
1648
+ attr_accessor :code
1649
+
1650
+ # A list of messages that carry the error details. There is a common set of
1651
+ # message types for APIs to use.
1652
+ # Corresponds to the JSON property `details`
1653
+ # @return [Array<Hash<String,Object>>]
1654
+ attr_accessor :details
1655
+
1656
+ # A developer-facing error message, which should be in English. Any user-facing
1657
+ # error message should be localized and sent in the google.rpc.Status.details
1658
+ # field, or localized by the client.
1659
+ # Corresponds to the JSON property `message`
1660
+ # @return [String]
1661
+ attr_accessor :message
1662
+
1663
+ def initialize(**args)
1664
+ update!(**args)
1665
+ end
1666
+
1667
+ # Update properties of this object
1668
+ def update!(**args)
1669
+ @code = args[:code] if args.key?(:code)
1670
+ @details = args[:details] if args.key?(:details)
1671
+ @message = args[:message] if args.key?(:message)
1672
+ end
1673
+ end
1674
+
1675
+ # TargetProject message represents a target Compute Engine project for a
1676
+ # migration or a clone.
1677
+ class TargetProject
1678
+ include Google::Apis::Core::Hashable
1679
+
1680
+ # Output only. The time this target project resource was created (not related to
1681
+ # when the Compute Engine project it points to was created).
1682
+ # Corresponds to the JSON property `createTime`
1683
+ # @return [String]
1684
+ attr_accessor :create_time
1685
+
1686
+ # The target project's description.
1687
+ # Corresponds to the JSON property `description`
1688
+ # @return [String]
1689
+ attr_accessor :description
1690
+
1691
+ # The name of the target project.
1692
+ # Corresponds to the JSON property `name`
1693
+ # @return [String]
1694
+ attr_accessor :name
1695
+
1696
+ # The target project ID (number) or project name.
1697
+ # Corresponds to the JSON property `project`
1698
+ # @return [String]
1699
+ attr_accessor :project
1700
+
1701
+ # Output only. The last time the target project resource was updated.
1702
+ # Corresponds to the JSON property `updateTime`
1703
+ # @return [String]
1704
+ attr_accessor :update_time
1705
+
1706
+ def initialize(**args)
1707
+ update!(**args)
1708
+ end
1709
+
1710
+ # Update properties of this object
1711
+ def update!(**args)
1712
+ @create_time = args[:create_time] if args.key?(:create_time)
1713
+ @description = args[:description] if args.key?(:description)
1714
+ @name = args[:name] if args.key?(:name)
1715
+ @project = args[:project] if args.key?(:project)
1716
+ @update_time = args[:update_time] if args.key?(:update_time)
1717
+ end
1718
+ end
1719
+
1720
+ # TargetVMDetails is a collection of details for creating a VM in a target
1721
+ # Compute Engine project.
1722
+ class TargetVmDetails
1723
+ include Google::Apis::Core::Hashable
1724
+
1725
+ # AppliedLicense holds the license data returned by adaptation module report.
1726
+ # Corresponds to the JSON property `appliedLicense`
1727
+ # @return [Google::Apis::VmmigrationV1::AppliedLicense]
1728
+ attr_accessor :applied_license
1729
+
1730
+ # Output only. The VM Boot Option, as set in the source vm.
1731
+ # Corresponds to the JSON property `bootOption`
1732
+ # @return [String]
1733
+ attr_accessor :boot_option
1734
+
1735
+ # Scheduling information for VM on maintenance/restart behaviour and node
1736
+ # allocation in sole tenant nodes.
1737
+ # Corresponds to the JSON property `computeScheduling`
1738
+ # @return [Google::Apis::VmmigrationV1::ComputeScheduling]
1739
+ attr_accessor :compute_scheduling
1740
+
1741
+ # The disk type to use in the VM.
1742
+ # Corresponds to the JSON property `diskType`
1743
+ # @return [String]
1744
+ attr_accessor :disk_type
1745
+
1746
+ # A map of labels to associate with the VM.
1747
+ # Corresponds to the JSON property `labels`
1748
+ # @return [Hash<String,String>]
1749
+ attr_accessor :labels
1750
+
1751
+ # The license type to use in OS adaptation.
1752
+ # Corresponds to the JSON property `licenseType`
1753
+ # @return [String]
1754
+ attr_accessor :license_type
1755
+
1756
+ # The machine type to create the VM with.
1757
+ # Corresponds to the JSON property `machineType`
1758
+ # @return [String]
1759
+ attr_accessor :machine_type
1760
+
1761
+ # The machine type series to create the VM with.
1762
+ # Corresponds to the JSON property `machineTypeSeries`
1763
+ # @return [String]
1764
+ attr_accessor :machine_type_series
1765
+
1766
+ # The metadata key/value pairs to assign to the VM.
1767
+ # Corresponds to the JSON property `metadata`
1768
+ # @return [Hash<String,String>]
1769
+ attr_accessor :metadata
1770
+
1771
+ # The name of the VM to create.
1772
+ # Corresponds to the JSON property `name`
1773
+ # @return [String]
1774
+ attr_accessor :name
1775
+
1776
+ # List of NICs connected to this VM.
1777
+ # Corresponds to the JSON property `networkInterfaces`
1778
+ # @return [Array<Google::Apis::VmmigrationV1::NetworkInterface>]
1779
+ attr_accessor :network_interfaces
1780
+
1781
+ # A map of network tags to associate with the VM.
1782
+ # Corresponds to the JSON property `networkTags`
1783
+ # @return [Array<String>]
1784
+ attr_accessor :network_tags
1785
+
1786
+ # The project in which to create the VM.
1787
+ # Corresponds to the JSON property `project`
1788
+ # @return [String]
1789
+ attr_accessor :project
1790
+
1791
+ # Defines whether the instance has Secure Boot enabled. This can be set to true
1792
+ # only if the vm boot option is EFI.
1793
+ # Corresponds to the JSON property `secureBoot`
1794
+ # @return [Boolean]
1795
+ attr_accessor :secure_boot
1796
+ alias_method :secure_boot?, :secure_boot
1797
+
1798
+ # The service account to associate the VM with.
1799
+ # Corresponds to the JSON property `serviceAccount`
1800
+ # @return [String]
1801
+ attr_accessor :service_account
1802
+
1803
+ # The full path of the resource of type TargetProject which represents the
1804
+ # Compute Engine project in which to create this VM.
1805
+ # Corresponds to the JSON property `targetProject`
1806
+ # @return [String]
1807
+ attr_accessor :target_project
1808
+
1809
+ # The zone in which to create the VM.
1810
+ # Corresponds to the JSON property `zone`
1811
+ # @return [String]
1812
+ attr_accessor :zone
1813
+
1814
+ def initialize(**args)
1815
+ update!(**args)
1816
+ end
1817
+
1818
+ # Update properties of this object
1819
+ def update!(**args)
1820
+ @applied_license = args[:applied_license] if args.key?(:applied_license)
1821
+ @boot_option = args[:boot_option] if args.key?(:boot_option)
1822
+ @compute_scheduling = args[:compute_scheduling] if args.key?(:compute_scheduling)
1823
+ @disk_type = args[:disk_type] if args.key?(:disk_type)
1824
+ @labels = args[:labels] if args.key?(:labels)
1825
+ @license_type = args[:license_type] if args.key?(:license_type)
1826
+ @machine_type = args[:machine_type] if args.key?(:machine_type)
1827
+ @machine_type_series = args[:machine_type_series] if args.key?(:machine_type_series)
1828
+ @metadata = args[:metadata] if args.key?(:metadata)
1829
+ @name = args[:name] if args.key?(:name)
1830
+ @network_interfaces = args[:network_interfaces] if args.key?(:network_interfaces)
1831
+ @network_tags = args[:network_tags] if args.key?(:network_tags)
1832
+ @project = args[:project] if args.key?(:project)
1833
+ @secure_boot = args[:secure_boot] if args.key?(:secure_boot)
1834
+ @service_account = args[:service_account] if args.key?(:service_account)
1835
+ @target_project = args[:target_project] if args.key?(:target_project)
1836
+ @zone = args[:zone] if args.key?(:zone)
1837
+ end
1838
+ end
1839
+
1840
+ # Utilization report details the utilization (CPU, memory, etc.) of selected
1841
+ # source VMs.
1842
+ class UtilizationReport
1843
+ include Google::Apis::Core::Hashable
1844
+
1845
+ # Output only. The time the report was created (this refers to the time of the
1846
+ # request, not the time the report creation completed).
1847
+ # Corresponds to the JSON property `createTime`
1848
+ # @return [String]
1849
+ attr_accessor :create_time
1850
+
1851
+ # The report display name, as assigned by the user.
1852
+ # Corresponds to the JSON property `displayName`
1853
+ # @return [String]
1854
+ attr_accessor :display_name
1855
+
1856
+ # The `Status` type defines a logical error model that is suitable for different
1857
+ # programming environments, including REST APIs and RPC APIs. It is used by [
1858
+ # gRPC](https://github.com/grpc). Each `Status` message contains three pieces of
1859
+ # data: error code, error message, and error details. You can find out more
1860
+ # about this error model and how to work with it in the [API Design Guide](https:
1861
+ # //cloud.google.com/apis/design/errors).
1862
+ # Corresponds to the JSON property `error`
1863
+ # @return [Google::Apis::VmmigrationV1::Status]
1864
+ attr_accessor :error
1865
+
1866
+ # Output only. The point in time when the time frame ends. Notice that the time
1867
+ # frame is counted backwards. For instance if the "frame_end_time" value is 2021/
1868
+ # 01/20 and the time frame is WEEK then the report covers the week between 2021/
1869
+ # 01/20 and 2021/01/14.
1870
+ # Corresponds to the JSON property `frameEndTime`
1871
+ # @return [String]
1872
+ attr_accessor :frame_end_time
1873
+
1874
+ # Output only. The report unique name.
1875
+ # Corresponds to the JSON property `name`
1876
+ # @return [String]
1877
+ attr_accessor :name
1878
+
1879
+ # Output only. Current state of the report.
1880
+ # Corresponds to the JSON property `state`
1881
+ # @return [String]
1882
+ attr_accessor :state
1883
+
1884
+ # Output only. The time the state was last set.
1885
+ # Corresponds to the JSON property `stateTime`
1886
+ # @return [String]
1887
+ attr_accessor :state_time
1888
+
1889
+ # Time frame of the report.
1890
+ # Corresponds to the JSON property `timeFrame`
1891
+ # @return [String]
1892
+ attr_accessor :time_frame
1893
+
1894
+ # Output only. Total number of VMs included in the report.
1895
+ # Corresponds to the JSON property `vmCount`
1896
+ # @return [Fixnum]
1897
+ attr_accessor :vm_count
1898
+
1899
+ # List of utilization information per VM. When sent as part of the request, the "
1900
+ # vm_id" field is used in order to specify which VMs to include in the report.
1901
+ # In that case all other fields are ignored.
1902
+ # Corresponds to the JSON property `vms`
1903
+ # @return [Array<Google::Apis::VmmigrationV1::VmUtilizationInfo>]
1904
+ attr_accessor :vms
1905
+
1906
+ def initialize(**args)
1907
+ update!(**args)
1908
+ end
1909
+
1910
+ # Update properties of this object
1911
+ def update!(**args)
1912
+ @create_time = args[:create_time] if args.key?(:create_time)
1913
+ @display_name = args[:display_name] if args.key?(:display_name)
1914
+ @error = args[:error] if args.key?(:error)
1915
+ @frame_end_time = args[:frame_end_time] if args.key?(:frame_end_time)
1916
+ @name = args[:name] if args.key?(:name)
1917
+ @state = args[:state] if args.key?(:state)
1918
+ @state_time = args[:state_time] if args.key?(:state_time)
1919
+ @time_frame = args[:time_frame] if args.key?(:time_frame)
1920
+ @vm_count = args[:vm_count] if args.key?(:vm_count)
1921
+ @vms = args[:vms] if args.key?(:vms)
1922
+ end
1923
+ end
1924
+
1925
+ # Utilization information of a single VM.
1926
+ class VmUtilizationInfo
1927
+ include Google::Apis::Core::Hashable
1928
+
1929
+ # Utilization metrics values for a single VM.
1930
+ # Corresponds to the JSON property `utilization`
1931
+ # @return [Google::Apis::VmmigrationV1::VmUtilizationMetrics]
1932
+ attr_accessor :utilization
1933
+
1934
+ # The VM's ID in the source.
1935
+ # Corresponds to the JSON property `vmId`
1936
+ # @return [String]
1937
+ attr_accessor :vm_id
1938
+
1939
+ # VmwareVmDetails describes a VM in vCenter.
1940
+ # Corresponds to the JSON property `vmwareVmDetails`
1941
+ # @return [Google::Apis::VmmigrationV1::VmwareVmDetails]
1942
+ attr_accessor :vmware_vm_details
1943
+
1944
+ def initialize(**args)
1945
+ update!(**args)
1946
+ end
1947
+
1948
+ # Update properties of this object
1949
+ def update!(**args)
1950
+ @utilization = args[:utilization] if args.key?(:utilization)
1951
+ @vm_id = args[:vm_id] if args.key?(:vm_id)
1952
+ @vmware_vm_details = args[:vmware_vm_details] if args.key?(:vmware_vm_details)
1953
+ end
1954
+ end
1955
+
1956
+ # Utilization metrics values for a single VM.
1957
+ class VmUtilizationMetrics
1958
+ include Google::Apis::Core::Hashable
1959
+
1960
+ # Average CPU usage, percent.
1961
+ # Corresponds to the JSON property `cpuAveragePercent`
1962
+ # @return [Fixnum]
1963
+ attr_accessor :cpu_average_percent
1964
+
1965
+ # Max CPU usage, percent.
1966
+ # Corresponds to the JSON property `cpuMaxPercent`
1967
+ # @return [Fixnum]
1968
+ attr_accessor :cpu_max_percent
1969
+
1970
+ # Average disk IO rate, in kilobytes per second.
1971
+ # Corresponds to the JSON property `diskIoRateAverageKbps`
1972
+ # @return [Fixnum]
1973
+ attr_accessor :disk_io_rate_average_kbps
1974
+
1975
+ # Max disk IO rate, in kilobytes per second.
1976
+ # Corresponds to the JSON property `diskIoRateMaxKbps`
1977
+ # @return [Fixnum]
1978
+ attr_accessor :disk_io_rate_max_kbps
1979
+
1980
+ # Average memory usage, percent.
1981
+ # Corresponds to the JSON property `memoryAveragePercent`
1982
+ # @return [Fixnum]
1983
+ attr_accessor :memory_average_percent
1984
+
1985
+ # Max memory usage, percent.
1986
+ # Corresponds to the JSON property `memoryMaxPercent`
1987
+ # @return [Fixnum]
1988
+ attr_accessor :memory_max_percent
1989
+
1990
+ # Average network throughput (combined transmit-rates and receive-rates), in
1991
+ # kilobytes per second.
1992
+ # Corresponds to the JSON property `networkThroughputAverageKbps`
1993
+ # @return [Fixnum]
1994
+ attr_accessor :network_throughput_average_kbps
1995
+
1996
+ # Max network throughput (combined transmit-rates and receive-rates), in
1997
+ # kilobytes per second.
1998
+ # Corresponds to the JSON property `networkThroughputMaxKbps`
1999
+ # @return [Fixnum]
2000
+ attr_accessor :network_throughput_max_kbps
2001
+
2002
+ def initialize(**args)
2003
+ update!(**args)
2004
+ end
2005
+
2006
+ # Update properties of this object
2007
+ def update!(**args)
2008
+ @cpu_average_percent = args[:cpu_average_percent] if args.key?(:cpu_average_percent)
2009
+ @cpu_max_percent = args[:cpu_max_percent] if args.key?(:cpu_max_percent)
2010
+ @disk_io_rate_average_kbps = args[:disk_io_rate_average_kbps] if args.key?(:disk_io_rate_average_kbps)
2011
+ @disk_io_rate_max_kbps = args[:disk_io_rate_max_kbps] if args.key?(:disk_io_rate_max_kbps)
2012
+ @memory_average_percent = args[:memory_average_percent] if args.key?(:memory_average_percent)
2013
+ @memory_max_percent = args[:memory_max_percent] if args.key?(:memory_max_percent)
2014
+ @network_throughput_average_kbps = args[:network_throughput_average_kbps] if args.key?(:network_throughput_average_kbps)
2015
+ @network_throughput_max_kbps = args[:network_throughput_max_kbps] if args.key?(:network_throughput_max_kbps)
2016
+ end
2017
+ end
2018
+
2019
+ # VmwareSourceDetails message describes a specific source details for the vmware
2020
+ # source type.
2021
+ class VmwareSourceDetails
2022
+ include Google::Apis::Core::Hashable
2023
+
2024
+ # Input only. The credentials password. This is write only and can not be read
2025
+ # in a GET operation.
2026
+ # Corresponds to the JSON property `password`
2027
+ # @return [String]
2028
+ attr_accessor :password
2029
+
2030
+ # The thumbprint representing the certificate for the vcenter.
2031
+ # Corresponds to the JSON property `thumbprint`
2032
+ # @return [String]
2033
+ attr_accessor :thumbprint
2034
+
2035
+ # The credentials username.
2036
+ # Corresponds to the JSON property `username`
2037
+ # @return [String]
2038
+ attr_accessor :username
2039
+
2040
+ # The ip address of the vcenter this Source represents.
2041
+ # Corresponds to the JSON property `vcenterIp`
2042
+ # @return [String]
2043
+ attr_accessor :vcenter_ip
2044
+
2045
+ def initialize(**args)
2046
+ update!(**args)
2047
+ end
2048
+
2049
+ # Update properties of this object
2050
+ def update!(**args)
2051
+ @password = args[:password] if args.key?(:password)
2052
+ @thumbprint = args[:thumbprint] if args.key?(:thumbprint)
2053
+ @username = args[:username] if args.key?(:username)
2054
+ @vcenter_ip = args[:vcenter_ip] if args.key?(:vcenter_ip)
2055
+ end
2056
+ end
2057
+
2058
+ # VmwareVmDetails describes a VM in vCenter.
2059
+ class VmwareVmDetails
2060
+ include Google::Apis::Core::Hashable
2061
+
2062
+ # Output only. The VM Boot Option.
2063
+ # Corresponds to the JSON property `bootOption`
2064
+ # @return [String]
2065
+ attr_accessor :boot_option
2066
+
2067
+ # The total size of the storage allocated to the VM in MB.
2068
+ # Corresponds to the JSON property `committedStorageMb`
2069
+ # @return [Fixnum]
2070
+ attr_accessor :committed_storage_mb
2071
+
2072
+ # The number of cpus in the VM.
2073
+ # Corresponds to the JSON property `cpuCount`
2074
+ # @return [Fixnum]
2075
+ attr_accessor :cpu_count
2076
+
2077
+ # The descriptive name of the vCenter's datacenter this VM is contained in.
2078
+ # Corresponds to the JSON property `datacenterDescription`
2079
+ # @return [String]
2080
+ attr_accessor :datacenter_description
2081
+
2082
+ # The id of the vCenter's datacenter this VM is contained in.
2083
+ # Corresponds to the JSON property `datacenterId`
2084
+ # @return [String]
2085
+ attr_accessor :datacenter_id
2086
+
2087
+ # The number of disks the VM has.
2088
+ # Corresponds to the JSON property `diskCount`
2089
+ # @return [Fixnum]
2090
+ attr_accessor :disk_count
2091
+
2092
+ # The display name of the VM. Note that this is not necessarily unique.
2093
+ # Corresponds to the JSON property `displayName`
2094
+ # @return [String]
2095
+ attr_accessor :display_name
2096
+
2097
+ # The VM's OS. See for example https://pubs.vmware.com/vi-sdk/visdk250/
2098
+ # ReferenceGuide/vim.vm.GuestOsDescriptor.GuestOsIdentifier.html for types of
2099
+ # strings this might hold.
2100
+ # Corresponds to the JSON property `guestDescription`
2101
+ # @return [String]
2102
+ attr_accessor :guest_description
2103
+
2104
+ # The size of the memory of the VM in MB.
2105
+ # Corresponds to the JSON property `memoryMb`
2106
+ # @return [Fixnum]
2107
+ attr_accessor :memory_mb
2108
+
2109
+ # The power state of the VM at the moment list was taken.
2110
+ # Corresponds to the JSON property `powerState`
2111
+ # @return [String]
2112
+ attr_accessor :power_state
2113
+
2114
+ # The unique identifier of the VM in vCenter.
2115
+ # Corresponds to the JSON property `uuid`
2116
+ # @return [String]
2117
+ attr_accessor :uuid
2118
+
2119
+ # The VM's id in the source (note that this is not the MigratingVm's id). This
2120
+ # is the moref id of the VM.
2121
+ # Corresponds to the JSON property `vmId`
2122
+ # @return [String]
2123
+ attr_accessor :vm_id
2124
+
2125
+ def initialize(**args)
2126
+ update!(**args)
2127
+ end
2128
+
2129
+ # Update properties of this object
2130
+ def update!(**args)
2131
+ @boot_option = args[:boot_option] if args.key?(:boot_option)
2132
+ @committed_storage_mb = args[:committed_storage_mb] if args.key?(:committed_storage_mb)
2133
+ @cpu_count = args[:cpu_count] if args.key?(:cpu_count)
2134
+ @datacenter_description = args[:datacenter_description] if args.key?(:datacenter_description)
2135
+ @datacenter_id = args[:datacenter_id] if args.key?(:datacenter_id)
2136
+ @disk_count = args[:disk_count] if args.key?(:disk_count)
2137
+ @display_name = args[:display_name] if args.key?(:display_name)
2138
+ @guest_description = args[:guest_description] if args.key?(:guest_description)
2139
+ @memory_mb = args[:memory_mb] if args.key?(:memory_mb)
2140
+ @power_state = args[:power_state] if args.key?(:power_state)
2141
+ @uuid = args[:uuid] if args.key?(:uuid)
2142
+ @vm_id = args[:vm_id] if args.key?(:vm_id)
2143
+ end
2144
+ end
2145
+
2146
+ # VmwareVmsDetails describes VMs in vCenter.
2147
+ class VmwareVmsDetails
2148
+ include Google::Apis::Core::Hashable
2149
+
2150
+ # The details of the vmware VMs.
2151
+ # Corresponds to the JSON property `details`
2152
+ # @return [Array<Google::Apis::VmmigrationV1::VmwareVmDetails>]
2153
+ attr_accessor :details
2154
+
2155
+ def initialize(**args)
2156
+ update!(**args)
2157
+ end
2158
+
2159
+ # Update properties of this object
2160
+ def update!(**args)
2161
+ @details = args[:details] if args.key?(:details)
2162
+ end
2163
+ end
2164
+ end
2165
+ end
2166
+ end