google-apis-vmmigration_v1 0.1.0

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