google-apis-vmmigration_v1alpha1 0.1.0

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