google-apis-migrationcenter_v1 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,4882 @@
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 MigrationcenterV1
24
+
25
+ # A request to add assets to a group.
26
+ class AddAssetsToGroupRequest
27
+ include Google::Apis::Core::Hashable
28
+
29
+ # Optional. When this value is set to `false` and one of the given assets is
30
+ # already an existing member of the group, the operation fails with an `Already
31
+ # Exists` error. When set to `true` this situation is silently ignored by the
32
+ # server. Default value is `false`.
33
+ # Corresponds to the JSON property `allowExisting`
34
+ # @return [Boolean]
35
+ attr_accessor :allow_existing
36
+ alias_method :allow_existing?, :allow_existing
37
+
38
+ # Lists the asset IDs of all assets.
39
+ # Corresponds to the JSON property `assets`
40
+ # @return [Google::Apis::MigrationcenterV1::AssetList]
41
+ attr_accessor :assets
42
+
43
+ # Optional. An optional request ID to identify requests. Specify a unique
44
+ # request ID so that if you must retry your request, the server will know to
45
+ # ignore the request if it has already been completed. The server will guarantee
46
+ # that for at least 60 minutes after the first request. For example, consider a
47
+ # situation where you make an initial request and the request times out. If you
48
+ # make the request again with the same request ID, the server can check if
49
+ # original operation with the same request ID was received, and if so, will
50
+ # ignore the second request. This prevents clients from accidentally creating
51
+ # duplicate commitments. The request ID must be a valid UUID with the exception
52
+ # that zero UUID is not supported (00000000-0000-0000-0000-000000000000).
53
+ # Corresponds to the JSON property `requestId`
54
+ # @return [String]
55
+ attr_accessor :request_id
56
+
57
+ def initialize(**args)
58
+ update!(**args)
59
+ end
60
+
61
+ # Update properties of this object
62
+ def update!(**args)
63
+ @allow_existing = args[:allow_existing] if args.key?(:allow_existing)
64
+ @assets = args[:assets] if args.key?(:assets)
65
+ @request_id = args[:request_id] if args.key?(:request_id)
66
+ end
67
+ end
68
+
69
+ # A request to aggregate one or more values.
70
+ class AggregateAssetsValuesRequest
71
+ include Google::Apis::Core::Hashable
72
+
73
+ # Array of aggregations to perform. Up to 25 aggregations can be defined.
74
+ # Corresponds to the JSON property `aggregations`
75
+ # @return [Array<Google::Apis::MigrationcenterV1::Aggregation>]
76
+ attr_accessor :aggregations
77
+
78
+ # The aggregation will be performed on assets that match the provided filter.
79
+ # Corresponds to the JSON property `filter`
80
+ # @return [String]
81
+ attr_accessor :filter
82
+
83
+ def initialize(**args)
84
+ update!(**args)
85
+ end
86
+
87
+ # Update properties of this object
88
+ def update!(**args)
89
+ @aggregations = args[:aggregations] if args.key?(:aggregations)
90
+ @filter = args[:filter] if args.key?(:filter)
91
+ end
92
+ end
93
+
94
+ # A response to a request to aggregated assets values.
95
+ class AggregateAssetsValuesResponse
96
+ include Google::Apis::Core::Hashable
97
+
98
+ # The aggregation results.
99
+ # Corresponds to the JSON property `results`
100
+ # @return [Array<Google::Apis::MigrationcenterV1::AggregationResult>]
101
+ attr_accessor :results
102
+
103
+ def initialize(**args)
104
+ update!(**args)
105
+ end
106
+
107
+ # Update properties of this object
108
+ def update!(**args)
109
+ @results = args[:results] if args.key?(:results)
110
+ end
111
+ end
112
+
113
+ # Message describing an aggregation. The message includes the aggregation type,
114
+ # parameters, and the field on which to perform the aggregation.
115
+ class Aggregation
116
+ include Google::Apis::Core::Hashable
117
+
118
+ # Object count.
119
+ # Corresponds to the JSON property `count`
120
+ # @return [Google::Apis::MigrationcenterV1::AggregationCount]
121
+ attr_accessor :count
122
+
123
+ # The name of the field on which to aggregate.
124
+ # Corresponds to the JSON property `field`
125
+ # @return [String]
126
+ attr_accessor :field
127
+
128
+ # Frequency distribution of all field values.
129
+ # Corresponds to the JSON property `frequency`
130
+ # @return [Google::Apis::MigrationcenterV1::AggregationFrequency]
131
+ attr_accessor :frequency
132
+
133
+ # Histogram of bucketed assets counts by field value.
134
+ # Corresponds to the JSON property `histogram`
135
+ # @return [Google::Apis::MigrationcenterV1::AggregationHistogram]
136
+ attr_accessor :histogram
137
+
138
+ # Sum of field values.
139
+ # Corresponds to the JSON property `sum`
140
+ # @return [Google::Apis::MigrationcenterV1::AggregationSum]
141
+ attr_accessor :sum
142
+
143
+ def initialize(**args)
144
+ update!(**args)
145
+ end
146
+
147
+ # Update properties of this object
148
+ def update!(**args)
149
+ @count = args[:count] if args.key?(:count)
150
+ @field = args[:field] if args.key?(:field)
151
+ @frequency = args[:frequency] if args.key?(:frequency)
152
+ @histogram = args[:histogram] if args.key?(:histogram)
153
+ @sum = args[:sum] if args.key?(:sum)
154
+ end
155
+ end
156
+
157
+ # Object count.
158
+ class AggregationCount
159
+ include Google::Apis::Core::Hashable
160
+
161
+ def initialize(**args)
162
+ update!(**args)
163
+ end
164
+
165
+ # Update properties of this object
166
+ def update!(**args)
167
+ end
168
+ end
169
+
170
+ # Frequency distribution of all field values.
171
+ class AggregationFrequency
172
+ include Google::Apis::Core::Hashable
173
+
174
+ def initialize(**args)
175
+ update!(**args)
176
+ end
177
+
178
+ # Update properties of this object
179
+ def update!(**args)
180
+ end
181
+ end
182
+
183
+ # Histogram of bucketed assets counts by field value.
184
+ class AggregationHistogram
185
+ include Google::Apis::Core::Hashable
186
+
187
+ # Lower bounds of buckets. The response will contain `n+1` buckets for `n`
188
+ # bounds. The first bucket will count all assets for which the field value is
189
+ # smaller than the first bound. Subsequent buckets will count assets for which
190
+ # the field value is greater or equal to a lower bound and smaller than the next
191
+ # one. The last bucket will count assets for which the field value is greater or
192
+ # equal to the final lower bound. You can define up to 20 lower bounds.
193
+ # Corresponds to the JSON property `lowerBounds`
194
+ # @return [Array<Float>]
195
+ attr_accessor :lower_bounds
196
+
197
+ def initialize(**args)
198
+ update!(**args)
199
+ end
200
+
201
+ # Update properties of this object
202
+ def update!(**args)
203
+ @lower_bounds = args[:lower_bounds] if args.key?(:lower_bounds)
204
+ end
205
+ end
206
+
207
+ # Message describing a result of an aggregation.
208
+ class AggregationResult
209
+ include Google::Apis::Core::Hashable
210
+
211
+ # The result of a count aggregation.
212
+ # Corresponds to the JSON property `count`
213
+ # @return [Google::Apis::MigrationcenterV1::AggregationResultCount]
214
+ attr_accessor :count
215
+
216
+ #
217
+ # Corresponds to the JSON property `field`
218
+ # @return [String]
219
+ attr_accessor :field
220
+
221
+ # The result of a frequency distribution aggregation.
222
+ # Corresponds to the JSON property `frequency`
223
+ # @return [Google::Apis::MigrationcenterV1::AggregationResultFrequency]
224
+ attr_accessor :frequency
225
+
226
+ # The result of a bucketed histogram aggregation.
227
+ # Corresponds to the JSON property `histogram`
228
+ # @return [Google::Apis::MigrationcenterV1::AggregationResultHistogram]
229
+ attr_accessor :histogram
230
+
231
+ # The result of a sum aggregation.
232
+ # Corresponds to the JSON property `sum`
233
+ # @return [Google::Apis::MigrationcenterV1::AggregationResultSum]
234
+ attr_accessor :sum
235
+
236
+ def initialize(**args)
237
+ update!(**args)
238
+ end
239
+
240
+ # Update properties of this object
241
+ def update!(**args)
242
+ @count = args[:count] if args.key?(:count)
243
+ @field = args[:field] if args.key?(:field)
244
+ @frequency = args[:frequency] if args.key?(:frequency)
245
+ @histogram = args[:histogram] if args.key?(:histogram)
246
+ @sum = args[:sum] if args.key?(:sum)
247
+ end
248
+ end
249
+
250
+ # The result of a count aggregation.
251
+ class AggregationResultCount
252
+ include Google::Apis::Core::Hashable
253
+
254
+ #
255
+ # Corresponds to the JSON property `value`
256
+ # @return [Fixnum]
257
+ attr_accessor :value
258
+
259
+ def initialize(**args)
260
+ update!(**args)
261
+ end
262
+
263
+ # Update properties of this object
264
+ def update!(**args)
265
+ @value = args[:value] if args.key?(:value)
266
+ end
267
+ end
268
+
269
+ # The result of a frequency distribution aggregation.
270
+ class AggregationResultFrequency
271
+ include Google::Apis::Core::Hashable
272
+
273
+ #
274
+ # Corresponds to the JSON property `values`
275
+ # @return [Hash<String,Fixnum>]
276
+ attr_accessor :values
277
+
278
+ def initialize(**args)
279
+ update!(**args)
280
+ end
281
+
282
+ # Update properties of this object
283
+ def update!(**args)
284
+ @values = args[:values] if args.key?(:values)
285
+ end
286
+ end
287
+
288
+ # The result of a bucketed histogram aggregation.
289
+ class AggregationResultHistogram
290
+ include Google::Apis::Core::Hashable
291
+
292
+ # Buckets in the histogram. There will be `n+1` buckets matching `n` lower
293
+ # bounds in the request. The first bucket will be from -infinity to the first
294
+ # bound. Subsequent buckets will be between one bound and the next. The final
295
+ # bucket will be from the final bound to infinity.
296
+ # Corresponds to the JSON property `buckets`
297
+ # @return [Array<Google::Apis::MigrationcenterV1::AggregationResultHistogramBucket>]
298
+ attr_accessor :buckets
299
+
300
+ def initialize(**args)
301
+ update!(**args)
302
+ end
303
+
304
+ # Update properties of this object
305
+ def update!(**args)
306
+ @buckets = args[:buckets] if args.key?(:buckets)
307
+ end
308
+ end
309
+
310
+ # A histogram bucket with a lower and upper bound, and a count of items with a
311
+ # field value between those bounds. The lower bound is inclusive and the upper
312
+ # bound is exclusive. Lower bound may be -infinity and upper bound may be
313
+ # infinity.
314
+ class AggregationResultHistogramBucket
315
+ include Google::Apis::Core::Hashable
316
+
317
+ # Count of items in the bucket.
318
+ # Corresponds to the JSON property `count`
319
+ # @return [Fixnum]
320
+ attr_accessor :count
321
+
322
+ # Lower bound - inclusive.
323
+ # Corresponds to the JSON property `lowerBound`
324
+ # @return [Float]
325
+ attr_accessor :lower_bound
326
+
327
+ # Upper bound - exclusive.
328
+ # Corresponds to the JSON property `upperBound`
329
+ # @return [Float]
330
+ attr_accessor :upper_bound
331
+
332
+ def initialize(**args)
333
+ update!(**args)
334
+ end
335
+
336
+ # Update properties of this object
337
+ def update!(**args)
338
+ @count = args[:count] if args.key?(:count)
339
+ @lower_bound = args[:lower_bound] if args.key?(:lower_bound)
340
+ @upper_bound = args[:upper_bound] if args.key?(:upper_bound)
341
+ end
342
+ end
343
+
344
+ # The result of a sum aggregation.
345
+ class AggregationResultSum
346
+ include Google::Apis::Core::Hashable
347
+
348
+ #
349
+ # Corresponds to the JSON property `value`
350
+ # @return [Float]
351
+ attr_accessor :value
352
+
353
+ def initialize(**args)
354
+ update!(**args)
355
+ end
356
+
357
+ # Update properties of this object
358
+ def update!(**args)
359
+ @value = args[:value] if args.key?(:value)
360
+ end
361
+ end
362
+
363
+ # Sum of field values.
364
+ class AggregationSum
365
+ include Google::Apis::Core::Hashable
366
+
367
+ def initialize(**args)
368
+ update!(**args)
369
+ end
370
+
371
+ # Update properties of this object
372
+ def update!(**args)
373
+ end
374
+ end
375
+
376
+ # An asset represents a resource in your environment. Asset types include
377
+ # virtual machines and databases.
378
+ class Asset
379
+ include Google::Apis::Core::Hashable
380
+
381
+ # Output only. The list of groups that the asset is assigned to.
382
+ # Corresponds to the JSON property `assignedGroups`
383
+ # @return [Array<String>]
384
+ attr_accessor :assigned_groups
385
+
386
+ # Generic asset attributes.
387
+ # Corresponds to the JSON property `attributes`
388
+ # @return [Hash<String,String>]
389
+ attr_accessor :attributes
390
+
391
+ # Output only. The timestamp when the asset was created.
392
+ # Corresponds to the JSON property `createTime`
393
+ # @return [String]
394
+ attr_accessor :create_time
395
+
396
+ # Message containing insights list.
397
+ # Corresponds to the JSON property `insightList`
398
+ # @return [Google::Apis::MigrationcenterV1::InsightList]
399
+ attr_accessor :insight_list
400
+
401
+ # Labels as key value pairs.
402
+ # Corresponds to the JSON property `labels`
403
+ # @return [Hash<String,String>]
404
+ attr_accessor :labels
405
+
406
+ # Details of a machine.
407
+ # Corresponds to the JSON property `machineDetails`
408
+ # @return [Google::Apis::MigrationcenterV1::MachineDetails]
409
+ attr_accessor :machine_details
410
+
411
+ # Output only. The full name of the asset.
412
+ # Corresponds to the JSON property `name`
413
+ # @return [String]
414
+ attr_accessor :name
415
+
416
+ # Performance data for an asset.
417
+ # Corresponds to the JSON property `performanceData`
418
+ # @return [Google::Apis::MigrationcenterV1::AssetPerformanceData]
419
+ attr_accessor :performance_data
420
+
421
+ # Output only. The list of sources contributing to the asset.
422
+ # Corresponds to the JSON property `sources`
423
+ # @return [Array<String>]
424
+ attr_accessor :sources
425
+
426
+ # Output only. The timestamp when the asset was last updated.
427
+ # Corresponds to the JSON property `updateTime`
428
+ # @return [String]
429
+ attr_accessor :update_time
430
+
431
+ def initialize(**args)
432
+ update!(**args)
433
+ end
434
+
435
+ # Update properties of this object
436
+ def update!(**args)
437
+ @assigned_groups = args[:assigned_groups] if args.key?(:assigned_groups)
438
+ @attributes = args[:attributes] if args.key?(:attributes)
439
+ @create_time = args[:create_time] if args.key?(:create_time)
440
+ @insight_list = args[:insight_list] if args.key?(:insight_list)
441
+ @labels = args[:labels] if args.key?(:labels)
442
+ @machine_details = args[:machine_details] if args.key?(:machine_details)
443
+ @name = args[:name] if args.key?(:name)
444
+ @performance_data = args[:performance_data] if args.key?(:performance_data)
445
+ @sources = args[:sources] if args.key?(:sources)
446
+ @update_time = args[:update_time] if args.key?(:update_time)
447
+ end
448
+ end
449
+
450
+ # Contains data reported from an inventory source on an asset.
451
+ class AssetFrame
452
+ include Google::Apis::Core::Hashable
453
+
454
+ # Generic asset attributes.
455
+ # Corresponds to the JSON property `attributes`
456
+ # @return [Hash<String,String>]
457
+ attr_accessor :attributes
458
+
459
+ # Labels as key value pairs.
460
+ # Corresponds to the JSON property `labels`
461
+ # @return [Hash<String,String>]
462
+ attr_accessor :labels
463
+
464
+ # Details of a machine.
465
+ # Corresponds to the JSON property `machineDetails`
466
+ # @return [Google::Apis::MigrationcenterV1::MachineDetails]
467
+ attr_accessor :machine_details
468
+
469
+ # Asset performance data samples. Samples that are from more than 40 days ago or
470
+ # after tomorrow are ignored.
471
+ # Corresponds to the JSON property `performanceSamples`
472
+ # @return [Array<Google::Apis::MigrationcenterV1::PerformanceSample>]
473
+ attr_accessor :performance_samples
474
+
475
+ # The time the data was reported.
476
+ # Corresponds to the JSON property `reportTime`
477
+ # @return [String]
478
+ attr_accessor :report_time
479
+
480
+ # Optional. Trace token is optionally provided to assist with debugging and
481
+ # traceability.
482
+ # Corresponds to the JSON property `traceToken`
483
+ # @return [String]
484
+ attr_accessor :trace_token
485
+
486
+ def initialize(**args)
487
+ update!(**args)
488
+ end
489
+
490
+ # Update properties of this object
491
+ def update!(**args)
492
+ @attributes = args[:attributes] if args.key?(:attributes)
493
+ @labels = args[:labels] if args.key?(:labels)
494
+ @machine_details = args[:machine_details] if args.key?(:machine_details)
495
+ @performance_samples = args[:performance_samples] if args.key?(:performance_samples)
496
+ @report_time = args[:report_time] if args.key?(:report_time)
497
+ @trace_token = args[:trace_token] if args.key?(:trace_token)
498
+ end
499
+ end
500
+
501
+ # Lists the asset IDs of all assets.
502
+ class AssetList
503
+ include Google::Apis::Core::Hashable
504
+
505
+ # Required. A list of asset IDs
506
+ # Corresponds to the JSON property `assetIds`
507
+ # @return [Array<String>]
508
+ attr_accessor :asset_ids
509
+
510
+ def initialize(**args)
511
+ update!(**args)
512
+ end
513
+
514
+ # Update properties of this object
515
+ def update!(**args)
516
+ @asset_ids = args[:asset_ids] if args.key?(:asset_ids)
517
+ end
518
+ end
519
+
520
+ # Performance data for an asset.
521
+ class AssetPerformanceData
522
+ include Google::Apis::Core::Hashable
523
+
524
+ # Daily resource usage aggregations. Contains all of the data available for an
525
+ # asset, up to the last 420 days. Aggregations are sorted from oldest to most
526
+ # recent.
527
+ # Corresponds to the JSON property `dailyResourceUsageAggregations`
528
+ # @return [Array<Google::Apis::MigrationcenterV1::DailyResourceUsageAggregation>]
529
+ attr_accessor :daily_resource_usage_aggregations
530
+
531
+ def initialize(**args)
532
+ update!(**args)
533
+ end
534
+
535
+ # Update properties of this object
536
+ def update!(**args)
537
+ @daily_resource_usage_aggregations = args[:daily_resource_usage_aggregations] if args.key?(:daily_resource_usage_aggregations)
538
+ end
539
+ end
540
+
541
+ # AWS EC2 specific details.
542
+ class AwsEc2PlatformDetails
543
+ include Google::Apis::Core::Hashable
544
+
545
+ # The location of the machine in the AWS format.
546
+ # Corresponds to the JSON property `location`
547
+ # @return [String]
548
+ attr_accessor :location
549
+
550
+ # AWS platform's machine type label.
551
+ # Corresponds to the JSON property `machineTypeLabel`
552
+ # @return [String]
553
+ attr_accessor :machine_type_label
554
+
555
+ def initialize(**args)
556
+ update!(**args)
557
+ end
558
+
559
+ # Update properties of this object
560
+ def update!(**args)
561
+ @location = args[:location] if args.key?(:location)
562
+ @machine_type_label = args[:machine_type_label] if args.key?(:machine_type_label)
563
+ end
564
+ end
565
+
566
+ # Azure VM specific details.
567
+ class AzureVmPlatformDetails
568
+ include Google::Apis::Core::Hashable
569
+
570
+ # The location of the machine in the Azure format.
571
+ # Corresponds to the JSON property `location`
572
+ # @return [String]
573
+ attr_accessor :location
574
+
575
+ # Azure platform's machine type label.
576
+ # Corresponds to the JSON property `machineTypeLabel`
577
+ # @return [String]
578
+ attr_accessor :machine_type_label
579
+
580
+ # Azure platform's provisioning state.
581
+ # Corresponds to the JSON property `provisioningState`
582
+ # @return [String]
583
+ attr_accessor :provisioning_state
584
+
585
+ def initialize(**args)
586
+ update!(**args)
587
+ end
588
+
589
+ # Update properties of this object
590
+ def update!(**args)
591
+ @location = args[:location] if args.key?(:location)
592
+ @machine_type_label = args[:machine_type_label] if args.key?(:machine_type_label)
593
+ @provisioning_state = args[:provisioning_state] if args.key?(:provisioning_state)
594
+ end
595
+ end
596
+
597
+ # A request to delete a list of asset.
598
+ class BatchDeleteAssetsRequest
599
+ include Google::Apis::Core::Hashable
600
+
601
+ # Optional. When this value is set to `true` the request is a no-op for non-
602
+ # existing assets. See https://google.aip.dev/135#delete-if-existing for
603
+ # additional details. Default value is `false`.
604
+ # Corresponds to the JSON property `allowMissing`
605
+ # @return [Boolean]
606
+ attr_accessor :allow_missing
607
+ alias_method :allow_missing?, :allow_missing
608
+
609
+ # Required. The IDs of the assets to delete. A maximum of 1000 assets can be
610
+ # deleted in a batch. Format: projects/`project`/locations/`location`/assets/`
611
+ # name`.
612
+ # Corresponds to the JSON property `names`
613
+ # @return [Array<String>]
614
+ attr_accessor :names
615
+
616
+ def initialize(**args)
617
+ update!(**args)
618
+ end
619
+
620
+ # Update properties of this object
621
+ def update!(**args)
622
+ @allow_missing = args[:allow_missing] if args.key?(:allow_missing)
623
+ @names = args[:names] if args.key?(:names)
624
+ end
625
+ end
626
+
627
+ # A request to update a list of assets.
628
+ class BatchUpdateAssetsRequest
629
+ include Google::Apis::Core::Hashable
630
+
631
+ # Required. The request message specifying the resources to update. A maximum of
632
+ # 1000 assets can be modified in a batch.
633
+ # Corresponds to the JSON property `requests`
634
+ # @return [Array<Google::Apis::MigrationcenterV1::UpdateAssetRequest>]
635
+ attr_accessor :requests
636
+
637
+ def initialize(**args)
638
+ update!(**args)
639
+ end
640
+
641
+ # Update properties of this object
642
+ def update!(**args)
643
+ @requests = args[:requests] if args.key?(:requests)
644
+ end
645
+ end
646
+
647
+ # Response for updating a list of assets.
648
+ class BatchUpdateAssetsResponse
649
+ include Google::Apis::Core::Hashable
650
+
651
+ # Update asset content. The content only includes values after field mask being
652
+ # applied.
653
+ # Corresponds to the JSON property `assets`
654
+ # @return [Array<Google::Apis::MigrationcenterV1::Asset>]
655
+ attr_accessor :assets
656
+
657
+ def initialize(**args)
658
+ update!(**args)
659
+ end
660
+
661
+ # Update properties of this object
662
+ def update!(**args)
663
+ @assets = args[:assets] if args.key?(:assets)
664
+ end
665
+ end
666
+
667
+ # Details about the BIOS.
668
+ class BiosDetails
669
+ include Google::Apis::Core::Hashable
670
+
671
+ # BIOS name. This fields is deprecated. Please use the `id` field instead.
672
+ # Corresponds to the JSON property `biosName`
673
+ # @return [String]
674
+ attr_accessor :bios_name
675
+
676
+ # BIOS ID.
677
+ # Corresponds to the JSON property `id`
678
+ # @return [String]
679
+ attr_accessor :id
680
+
681
+ # BIOS manufacturer.
682
+ # Corresponds to the JSON property `manufacturer`
683
+ # @return [String]
684
+ attr_accessor :manufacturer
685
+
686
+ # Represents a whole or partial calendar date, such as a birthday. The time of
687
+ # day and time zone are either specified elsewhere or are insignificant. The
688
+ # date is relative to the Gregorian Calendar. This can represent one of the
689
+ # following: * A full date, with non-zero year, month, and day values. * A month
690
+ # and day, with a zero year (for example, an anniversary). * A year on its own,
691
+ # with a zero month and a zero day. * A year and month, with a zero day (for
692
+ # example, a credit card expiration date). Related types: * google.type.
693
+ # TimeOfDay * google.type.DateTime * google.protobuf.Timestamp
694
+ # Corresponds to the JSON property `releaseDate`
695
+ # @return [Google::Apis::MigrationcenterV1::Date]
696
+ attr_accessor :release_date
697
+
698
+ # SMBIOS UUID.
699
+ # Corresponds to the JSON property `smbiosUuid`
700
+ # @return [String]
701
+ attr_accessor :smbios_uuid
702
+
703
+ # BIOS version.
704
+ # Corresponds to the JSON property `version`
705
+ # @return [String]
706
+ attr_accessor :version
707
+
708
+ def initialize(**args)
709
+ update!(**args)
710
+ end
711
+
712
+ # Update properties of this object
713
+ def update!(**args)
714
+ @bios_name = args[:bios_name] if args.key?(:bios_name)
715
+ @id = args[:id] if args.key?(:id)
716
+ @manufacturer = args[:manufacturer] if args.key?(:manufacturer)
717
+ @release_date = args[:release_date] if args.key?(:release_date)
718
+ @smbios_uuid = args[:smbios_uuid] if args.key?(:smbios_uuid)
719
+ @version = args[:version] if args.key?(:version)
720
+ end
721
+ end
722
+
723
+ # The request message for Operations.CancelOperation.
724
+ class CancelOperationRequest
725
+ include Google::Apis::Core::Hashable
726
+
727
+ def initialize(**args)
728
+ update!(**args)
729
+ end
730
+
731
+ # Update properties of this object
732
+ def update!(**args)
733
+ end
734
+ end
735
+
736
+ # Compute engine migration target.
737
+ class ComputeEngineMigrationTarget
738
+ include Google::Apis::Core::Hashable
739
+
740
+ # Compute Engine target shape descriptor.
741
+ # Corresponds to the JSON property `shape`
742
+ # @return [Google::Apis::MigrationcenterV1::ComputeEngineShapeDescriptor]
743
+ attr_accessor :shape
744
+
745
+ def initialize(**args)
746
+ update!(**args)
747
+ end
748
+
749
+ # Update properties of this object
750
+ def update!(**args)
751
+ @shape = args[:shape] if args.key?(:shape)
752
+ end
753
+ end
754
+
755
+ # The user preferences relating to Compute Engine target platform.
756
+ class ComputeEnginePreferences
757
+ include Google::Apis::Core::Hashable
758
+
759
+ # License type to consider when calculating costs for virtual machine insights
760
+ # and recommendations. If unspecified, costs are calculated based on the default
761
+ # licensing plan.
762
+ # Corresponds to the JSON property `licenseType`
763
+ # @return [String]
764
+ attr_accessor :license_type
765
+
766
+ # The type of machines to consider when calculating virtual machine migration
767
+ # insights and recommendations. Not all machine types are available in all zones
768
+ # and regions.
769
+ # Corresponds to the JSON property `machinePreferences`
770
+ # @return [Google::Apis::MigrationcenterV1::MachinePreferences]
771
+ attr_accessor :machine_preferences
772
+
773
+ def initialize(**args)
774
+ update!(**args)
775
+ end
776
+
777
+ # Update properties of this object
778
+ def update!(**args)
779
+ @license_type = args[:license_type] if args.key?(:license_type)
780
+ @machine_preferences = args[:machine_preferences] if args.key?(:machine_preferences)
781
+ end
782
+ end
783
+
784
+ # Compute Engine target shape descriptor.
785
+ class ComputeEngineShapeDescriptor
786
+ include Google::Apis::Core::Hashable
787
+
788
+ # Number of logical cores.
789
+ # Corresponds to the JSON property `logicalCoreCount`
790
+ # @return [Fixnum]
791
+ attr_accessor :logical_core_count
792
+
793
+ # Compute Engine machine type.
794
+ # Corresponds to the JSON property `machineType`
795
+ # @return [String]
796
+ attr_accessor :machine_type
797
+
798
+ # Memory in mebibytes.
799
+ # Corresponds to the JSON property `memoryMb`
800
+ # @return [Fixnum]
801
+ attr_accessor :memory_mb
802
+
803
+ # Number of physical cores.
804
+ # Corresponds to the JSON property `physicalCoreCount`
805
+ # @return [Fixnum]
806
+ attr_accessor :physical_core_count
807
+
808
+ # Compute Engine machine series.
809
+ # Corresponds to the JSON property `series`
810
+ # @return [String]
811
+ attr_accessor :series
812
+
813
+ # Compute Engine storage. Never empty.
814
+ # Corresponds to the JSON property `storage`
815
+ # @return [Array<Google::Apis::MigrationcenterV1::ComputeStorageDescriptor>]
816
+ attr_accessor :storage
817
+
818
+ def initialize(**args)
819
+ update!(**args)
820
+ end
821
+
822
+ # Update properties of this object
823
+ def update!(**args)
824
+ @logical_core_count = args[:logical_core_count] if args.key?(:logical_core_count)
825
+ @machine_type = args[:machine_type] if args.key?(:machine_type)
826
+ @memory_mb = args[:memory_mb] if args.key?(:memory_mb)
827
+ @physical_core_count = args[:physical_core_count] if args.key?(:physical_core_count)
828
+ @series = args[:series] if args.key?(:series)
829
+ @storage = args[:storage] if args.key?(:storage)
830
+ end
831
+ end
832
+
833
+ # Compute Engine storage option descriptor.
834
+ class ComputeStorageDescriptor
835
+ include Google::Apis::Core::Hashable
836
+
837
+ # Disk size in GiB.
838
+ # Corresponds to the JSON property `sizeGb`
839
+ # @return [Fixnum]
840
+ attr_accessor :size_gb
841
+
842
+ # Disk type backing the storage.
843
+ # Corresponds to the JSON property `type`
844
+ # @return [String]
845
+ attr_accessor :type
846
+
847
+ def initialize(**args)
848
+ update!(**args)
849
+ end
850
+
851
+ # Update properties of this object
852
+ def update!(**args)
853
+ @size_gb = args[:size_gb] if args.key?(:size_gb)
854
+ @type = args[:type] if args.key?(:type)
855
+ end
856
+ end
857
+
858
+ # CPU usage sample.
859
+ class CpuUsageSample
860
+ include Google::Apis::Core::Hashable
861
+
862
+ # Percentage of total CPU capacity utilized. Must be in the interval [0, 100].
863
+ # On most systems can be calculated using 100 - idle percentage.
864
+ # Corresponds to the JSON property `utilizedPercentage`
865
+ # @return [Float]
866
+ attr_accessor :utilized_percentage
867
+
868
+ def initialize(**args)
869
+ update!(**args)
870
+ end
871
+
872
+ # Update properties of this object
873
+ def update!(**args)
874
+ @utilized_percentage = args[:utilized_percentage] if args.key?(:utilized_percentage)
875
+ end
876
+ end
877
+
878
+ # Usage data aggregation for a single day.
879
+ class DailyResourceUsageAggregation
880
+ include Google::Apis::Core::Hashable
881
+
882
+ # Statistical aggregation of CPU usage.
883
+ # Corresponds to the JSON property `cpu`
884
+ # @return [Google::Apis::MigrationcenterV1::DailyResourceUsageAggregationCpu]
885
+ attr_accessor :cpu
886
+
887
+ # Represents a whole or partial calendar date, such as a birthday. The time of
888
+ # day and time zone are either specified elsewhere or are insignificant. The
889
+ # date is relative to the Gregorian Calendar. This can represent one of the
890
+ # following: * A full date, with non-zero year, month, and day values. * A month
891
+ # and day, with a zero year (for example, an anniversary). * A year on its own,
892
+ # with a zero month and a zero day. * A year and month, with a zero day (for
893
+ # example, a credit card expiration date). Related types: * google.type.
894
+ # TimeOfDay * google.type.DateTime * google.protobuf.Timestamp
895
+ # Corresponds to the JSON property `date`
896
+ # @return [Google::Apis::MigrationcenterV1::Date]
897
+ attr_accessor :date
898
+
899
+ # Statistical aggregation of disk usage.
900
+ # Corresponds to the JSON property `disk`
901
+ # @return [Google::Apis::MigrationcenterV1::DailyResourceUsageAggregationDisk]
902
+ attr_accessor :disk
903
+
904
+ # Statistical aggregation of memory usage.
905
+ # Corresponds to the JSON property `memory`
906
+ # @return [Google::Apis::MigrationcenterV1::DailyResourceUsageAggregationMemory]
907
+ attr_accessor :memory
908
+
909
+ # Statistical aggregation of network usage.
910
+ # Corresponds to the JSON property `network`
911
+ # @return [Google::Apis::MigrationcenterV1::DailyResourceUsageAggregationNetwork]
912
+ attr_accessor :network
913
+
914
+ def initialize(**args)
915
+ update!(**args)
916
+ end
917
+
918
+ # Update properties of this object
919
+ def update!(**args)
920
+ @cpu = args[:cpu] if args.key?(:cpu)
921
+ @date = args[:date] if args.key?(:date)
922
+ @disk = args[:disk] if args.key?(:disk)
923
+ @memory = args[:memory] if args.key?(:memory)
924
+ @network = args[:network] if args.key?(:network)
925
+ end
926
+ end
927
+
928
+ # Statistical aggregation of CPU usage.
929
+ class DailyResourceUsageAggregationCpu
930
+ include Google::Apis::Core::Hashable
931
+
932
+ # Statistical aggregation of samples for a single resource usage.
933
+ # Corresponds to the JSON property `utilizationPercentage`
934
+ # @return [Google::Apis::MigrationcenterV1::DailyResourceUsageAggregationStats]
935
+ attr_accessor :utilization_percentage
936
+
937
+ def initialize(**args)
938
+ update!(**args)
939
+ end
940
+
941
+ # Update properties of this object
942
+ def update!(**args)
943
+ @utilization_percentage = args[:utilization_percentage] if args.key?(:utilization_percentage)
944
+ end
945
+ end
946
+
947
+ # Statistical aggregation of disk usage.
948
+ class DailyResourceUsageAggregationDisk
949
+ include Google::Apis::Core::Hashable
950
+
951
+ # Statistical aggregation of samples for a single resource usage.
952
+ # Corresponds to the JSON property `iops`
953
+ # @return [Google::Apis::MigrationcenterV1::DailyResourceUsageAggregationStats]
954
+ attr_accessor :iops
955
+
956
+ def initialize(**args)
957
+ update!(**args)
958
+ end
959
+
960
+ # Update properties of this object
961
+ def update!(**args)
962
+ @iops = args[:iops] if args.key?(:iops)
963
+ end
964
+ end
965
+
966
+ # Statistical aggregation of memory usage.
967
+ class DailyResourceUsageAggregationMemory
968
+ include Google::Apis::Core::Hashable
969
+
970
+ # Statistical aggregation of samples for a single resource usage.
971
+ # Corresponds to the JSON property `utilizationPercentage`
972
+ # @return [Google::Apis::MigrationcenterV1::DailyResourceUsageAggregationStats]
973
+ attr_accessor :utilization_percentage
974
+
975
+ def initialize(**args)
976
+ update!(**args)
977
+ end
978
+
979
+ # Update properties of this object
980
+ def update!(**args)
981
+ @utilization_percentage = args[:utilization_percentage] if args.key?(:utilization_percentage)
982
+ end
983
+ end
984
+
985
+ # Statistical aggregation of network usage.
986
+ class DailyResourceUsageAggregationNetwork
987
+ include Google::Apis::Core::Hashable
988
+
989
+ # Statistical aggregation of samples for a single resource usage.
990
+ # Corresponds to the JSON property `egressBps`
991
+ # @return [Google::Apis::MigrationcenterV1::DailyResourceUsageAggregationStats]
992
+ attr_accessor :egress_bps
993
+
994
+ # Statistical aggregation of samples for a single resource usage.
995
+ # Corresponds to the JSON property `ingressBps`
996
+ # @return [Google::Apis::MigrationcenterV1::DailyResourceUsageAggregationStats]
997
+ attr_accessor :ingress_bps
998
+
999
+ def initialize(**args)
1000
+ update!(**args)
1001
+ end
1002
+
1003
+ # Update properties of this object
1004
+ def update!(**args)
1005
+ @egress_bps = args[:egress_bps] if args.key?(:egress_bps)
1006
+ @ingress_bps = args[:ingress_bps] if args.key?(:ingress_bps)
1007
+ end
1008
+ end
1009
+
1010
+ # Statistical aggregation of samples for a single resource usage.
1011
+ class DailyResourceUsageAggregationStats
1012
+ include Google::Apis::Core::Hashable
1013
+
1014
+ # Average usage value.
1015
+ # Corresponds to the JSON property `average`
1016
+ # @return [Float]
1017
+ attr_accessor :average
1018
+
1019
+ # Median usage value.
1020
+ # Corresponds to the JSON property `median`
1021
+ # @return [Float]
1022
+ attr_accessor :median
1023
+
1024
+ # 95th percentile usage value.
1025
+ # Corresponds to the JSON property `ninteyFifthPercentile`
1026
+ # @return [Float]
1027
+ attr_accessor :nintey_fifth_percentile
1028
+
1029
+ # Peak usage value.
1030
+ # Corresponds to the JSON property `peak`
1031
+ # @return [Float]
1032
+ attr_accessor :peak
1033
+
1034
+ def initialize(**args)
1035
+ update!(**args)
1036
+ end
1037
+
1038
+ # Update properties of this object
1039
+ def update!(**args)
1040
+ @average = args[:average] if args.key?(:average)
1041
+ @median = args[:median] if args.key?(:median)
1042
+ @nintey_fifth_percentile = args[:nintey_fifth_percentile] if args.key?(:nintey_fifth_percentile)
1043
+ @peak = args[:peak] if args.key?(:peak)
1044
+ end
1045
+ end
1046
+
1047
+ # Represents a whole or partial calendar date, such as a birthday. The time of
1048
+ # day and time zone are either specified elsewhere or are insignificant. The
1049
+ # date is relative to the Gregorian Calendar. This can represent one of the
1050
+ # following: * A full date, with non-zero year, month, and day values. * A month
1051
+ # and day, with a zero year (for example, an anniversary). * A year on its own,
1052
+ # with a zero month and a zero day. * A year and month, with a zero day (for
1053
+ # example, a credit card expiration date). Related types: * google.type.
1054
+ # TimeOfDay * google.type.DateTime * google.protobuf.Timestamp
1055
+ class Date
1056
+ include Google::Apis::Core::Hashable
1057
+
1058
+ # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to
1059
+ # specify a year by itself or a year and month where the day isn't significant.
1060
+ # Corresponds to the JSON property `day`
1061
+ # @return [Fixnum]
1062
+ attr_accessor :day
1063
+
1064
+ # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month
1065
+ # and day.
1066
+ # Corresponds to the JSON property `month`
1067
+ # @return [Fixnum]
1068
+ attr_accessor :month
1069
+
1070
+ # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a
1071
+ # year.
1072
+ # Corresponds to the JSON property `year`
1073
+ # @return [Fixnum]
1074
+ attr_accessor :year
1075
+
1076
+ def initialize(**args)
1077
+ update!(**args)
1078
+ end
1079
+
1080
+ # Update properties of this object
1081
+ def update!(**args)
1082
+ @day = args[:day] if args.key?(:day)
1083
+ @month = args[:month] if args.key?(:month)
1084
+ @year = args[:year] if args.key?(:year)
1085
+ end
1086
+ end
1087
+
1088
+ # Single disk entry.
1089
+ class DiskEntry
1090
+ include Google::Apis::Core::Hashable
1091
+
1092
+ # Disk capacity.
1093
+ # Corresponds to the JSON property `capacityBytes`
1094
+ # @return [Fixnum]
1095
+ attr_accessor :capacity_bytes
1096
+
1097
+ # Disk label.
1098
+ # Corresponds to the JSON property `diskLabel`
1099
+ # @return [String]
1100
+ attr_accessor :disk_label
1101
+
1102
+ # Disk label type (e.g. BIOS/GPT)
1103
+ # Corresponds to the JSON property `diskLabelType`
1104
+ # @return [String]
1105
+ attr_accessor :disk_label_type
1106
+
1107
+ # Disk free space.
1108
+ # Corresponds to the JSON property `freeBytes`
1109
+ # @return [Fixnum]
1110
+ attr_accessor :free_bytes
1111
+
1112
+ # Disk hardware address (e.g. 0:1 for SCSI).
1113
+ # Corresponds to the JSON property `hwAddress`
1114
+ # @return [String]
1115
+ attr_accessor :hw_address
1116
+
1117
+ # Disks interface type.
1118
+ # Corresponds to the JSON property `interfaceType`
1119
+ # @return [String]
1120
+ attr_accessor :interface_type
1121
+
1122
+ # Disk partition list.
1123
+ # Corresponds to the JSON property `partitions`
1124
+ # @return [Google::Apis::MigrationcenterV1::DiskPartitionList]
1125
+ attr_accessor :partitions
1126
+
1127
+ # VMware disk config details.
1128
+ # Corresponds to the JSON property `vmware`
1129
+ # @return [Google::Apis::MigrationcenterV1::VmwareDiskConfig]
1130
+ attr_accessor :vmware
1131
+
1132
+ def initialize(**args)
1133
+ update!(**args)
1134
+ end
1135
+
1136
+ # Update properties of this object
1137
+ def update!(**args)
1138
+ @capacity_bytes = args[:capacity_bytes] if args.key?(:capacity_bytes)
1139
+ @disk_label = args[:disk_label] if args.key?(:disk_label)
1140
+ @disk_label_type = args[:disk_label_type] if args.key?(:disk_label_type)
1141
+ @free_bytes = args[:free_bytes] if args.key?(:free_bytes)
1142
+ @hw_address = args[:hw_address] if args.key?(:hw_address)
1143
+ @interface_type = args[:interface_type] if args.key?(:interface_type)
1144
+ @partitions = args[:partitions] if args.key?(:partitions)
1145
+ @vmware = args[:vmware] if args.key?(:vmware)
1146
+ end
1147
+ end
1148
+
1149
+ # VM disks.
1150
+ class DiskEntryList
1151
+ include Google::Apis::Core::Hashable
1152
+
1153
+ # Disk entries.
1154
+ # Corresponds to the JSON property `entries`
1155
+ # @return [Array<Google::Apis::MigrationcenterV1::DiskEntry>]
1156
+ attr_accessor :entries
1157
+
1158
+ def initialize(**args)
1159
+ update!(**args)
1160
+ end
1161
+
1162
+ # Update properties of this object
1163
+ def update!(**args)
1164
+ @entries = args[:entries] if args.key?(:entries)
1165
+ end
1166
+ end
1167
+
1168
+ # Disk Partition details.
1169
+ class DiskPartition
1170
+ include Google::Apis::Core::Hashable
1171
+
1172
+ # Partition capacity.
1173
+ # Corresponds to the JSON property `capacityBytes`
1174
+ # @return [Fixnum]
1175
+ attr_accessor :capacity_bytes
1176
+
1177
+ # Partition file system.
1178
+ # Corresponds to the JSON property `fileSystem`
1179
+ # @return [String]
1180
+ attr_accessor :file_system
1181
+
1182
+ # Partition free space.
1183
+ # Corresponds to the JSON property `freeBytes`
1184
+ # @return [Fixnum]
1185
+ attr_accessor :free_bytes
1186
+
1187
+ # Mount pount (Linux/Windows) or drive letter (Windows).
1188
+ # Corresponds to the JSON property `mountPoint`
1189
+ # @return [String]
1190
+ attr_accessor :mount_point
1191
+
1192
+ # Disk partition list.
1193
+ # Corresponds to the JSON property `subPartitions`
1194
+ # @return [Google::Apis::MigrationcenterV1::DiskPartitionList]
1195
+ attr_accessor :sub_partitions
1196
+
1197
+ # Partition type.
1198
+ # Corresponds to the JSON property `type`
1199
+ # @return [String]
1200
+ attr_accessor :type
1201
+
1202
+ # Partition UUID.
1203
+ # Corresponds to the JSON property `uuid`
1204
+ # @return [String]
1205
+ attr_accessor :uuid
1206
+
1207
+ def initialize(**args)
1208
+ update!(**args)
1209
+ end
1210
+
1211
+ # Update properties of this object
1212
+ def update!(**args)
1213
+ @capacity_bytes = args[:capacity_bytes] if args.key?(:capacity_bytes)
1214
+ @file_system = args[:file_system] if args.key?(:file_system)
1215
+ @free_bytes = args[:free_bytes] if args.key?(:free_bytes)
1216
+ @mount_point = args[:mount_point] if args.key?(:mount_point)
1217
+ @sub_partitions = args[:sub_partitions] if args.key?(:sub_partitions)
1218
+ @type = args[:type] if args.key?(:type)
1219
+ @uuid = args[:uuid] if args.key?(:uuid)
1220
+ end
1221
+ end
1222
+
1223
+ # Disk partition list.
1224
+ class DiskPartitionList
1225
+ include Google::Apis::Core::Hashable
1226
+
1227
+ # Partition entries.
1228
+ # Corresponds to the JSON property `entries`
1229
+ # @return [Array<Google::Apis::MigrationcenterV1::DiskPartition>]
1230
+ attr_accessor :entries
1231
+
1232
+ def initialize(**args)
1233
+ update!(**args)
1234
+ end
1235
+
1236
+ # Update properties of this object
1237
+ def update!(**args)
1238
+ @entries = args[:entries] if args.key?(:entries)
1239
+ end
1240
+ end
1241
+
1242
+ # Disk usage sample. Values are across all disks.
1243
+ class DiskUsageSample
1244
+ include Google::Apis::Core::Hashable
1245
+
1246
+ # Average IOPS sampled over a short window. Must be non-negative.
1247
+ # Corresponds to the JSON property `averageIops`
1248
+ # @return [Float]
1249
+ attr_accessor :average_iops
1250
+
1251
+ def initialize(**args)
1252
+ update!(**args)
1253
+ end
1254
+
1255
+ # Update properties of this object
1256
+ def update!(**args)
1257
+ @average_iops = args[:average_iops] if args.key?(:average_iops)
1258
+ end
1259
+ end
1260
+
1261
+ # A generic empty message that you can re-use to avoid defining duplicated empty
1262
+ # messages in your APIs. A typical example is to use it as the request or the
1263
+ # response type of an API method. For instance: service Foo ` rpc Bar(google.
1264
+ # protobuf.Empty) returns (google.protobuf.Empty); `
1265
+ class Empty
1266
+ include Google::Apis::Core::Hashable
1267
+
1268
+ def initialize(**args)
1269
+ update!(**args)
1270
+ end
1271
+
1272
+ # Update properties of this object
1273
+ def update!(**args)
1274
+ end
1275
+ end
1276
+
1277
+ # Message representing a frame which failed to be processed due to an error.
1278
+ class ErrorFrame
1279
+ include Google::Apis::Core::Hashable
1280
+
1281
+ # Output only. Frame ingestion time.
1282
+ # Corresponds to the JSON property `ingestionTime`
1283
+ # @return [String]
1284
+ attr_accessor :ingestion_time
1285
+
1286
+ # Output only. The identifier of the ErrorFrame.
1287
+ # Corresponds to the JSON property `name`
1288
+ # @return [String]
1289
+ attr_accessor :name
1290
+
1291
+ # Contains data reported from an inventory source on an asset.
1292
+ # Corresponds to the JSON property `originalFrame`
1293
+ # @return [Google::Apis::MigrationcenterV1::AssetFrame]
1294
+ attr_accessor :original_frame
1295
+
1296
+ # Output only. All the violations that were detected for the frame.
1297
+ # Corresponds to the JSON property `violations`
1298
+ # @return [Array<Google::Apis::MigrationcenterV1::FrameViolationEntry>]
1299
+ attr_accessor :violations
1300
+
1301
+ def initialize(**args)
1302
+ update!(**args)
1303
+ end
1304
+
1305
+ # Update properties of this object
1306
+ def update!(**args)
1307
+ @ingestion_time = args[:ingestion_time] if args.key?(:ingestion_time)
1308
+ @name = args[:name] if args.key?(:name)
1309
+ @original_frame = args[:original_frame] if args.key?(:original_frame)
1310
+ @violations = args[:violations] if args.key?(:violations)
1311
+ end
1312
+ end
1313
+
1314
+ # A resource that reports result of the import job execution.
1315
+ class ExecutionReport
1316
+ include Google::Apis::Core::Hashable
1317
+
1318
+ # A resource that aggregates errors across import job files.
1319
+ # Corresponds to the JSON property `executionErrors`
1320
+ # @return [Google::Apis::MigrationcenterV1::ValidationReport]
1321
+ attr_accessor :execution_errors
1322
+
1323
+ # Total number of asset frames reported for the import job.
1324
+ # Corresponds to the JSON property `framesReported`
1325
+ # @return [Fixnum]
1326
+ attr_accessor :frames_reported
1327
+
1328
+ # Total number of rows in the import job.
1329
+ # Corresponds to the JSON property `totalRowsCount`
1330
+ # @return [Fixnum]
1331
+ attr_accessor :total_rows_count
1332
+
1333
+ def initialize(**args)
1334
+ update!(**args)
1335
+ end
1336
+
1337
+ # Update properties of this object
1338
+ def update!(**args)
1339
+ @execution_errors = args[:execution_errors] if args.key?(:execution_errors)
1340
+ @frames_reported = args[:frames_reported] if args.key?(:frames_reported)
1341
+ @total_rows_count = args[:total_rows_count] if args.key?(:total_rows_count)
1342
+ end
1343
+ end
1344
+
1345
+ # A resource that aggregates the validation errors found in an import job file.
1346
+ class FileValidationReport
1347
+ include Google::Apis::Core::Hashable
1348
+
1349
+ # List of file level errors.
1350
+ # Corresponds to the JSON property `fileErrors`
1351
+ # @return [Array<Google::Apis::MigrationcenterV1::ImportError>]
1352
+ attr_accessor :file_errors
1353
+
1354
+ # The name of the file.
1355
+ # Corresponds to the JSON property `fileName`
1356
+ # @return [String]
1357
+ attr_accessor :file_name
1358
+
1359
+ # Flag indicating that processing was aborted due to maximum number of errors.
1360
+ # Corresponds to the JSON property `partialReport`
1361
+ # @return [Boolean]
1362
+ attr_accessor :partial_report
1363
+ alias_method :partial_report?, :partial_report
1364
+
1365
+ # Partial list of rows that encountered validation error.
1366
+ # Corresponds to the JSON property `rowErrors`
1367
+ # @return [Array<Google::Apis::MigrationcenterV1::ImportRowError>]
1368
+ attr_accessor :row_errors
1369
+
1370
+ def initialize(**args)
1371
+ update!(**args)
1372
+ end
1373
+
1374
+ # Update properties of this object
1375
+ def update!(**args)
1376
+ @file_errors = args[:file_errors] if args.key?(:file_errors)
1377
+ @file_name = args[:file_name] if args.key?(:file_name)
1378
+ @partial_report = args[:partial_report] if args.key?(:partial_report)
1379
+ @row_errors = args[:row_errors] if args.key?(:row_errors)
1380
+ end
1381
+ end
1382
+
1383
+ # Describes the fit level of an asset for migration to a specific target.
1384
+ class FitDescriptor
1385
+ include Google::Apis::Core::Hashable
1386
+
1387
+ # Fit level.
1388
+ # Corresponds to the JSON property `fitLevel`
1389
+ # @return [String]
1390
+ attr_accessor :fit_level
1391
+
1392
+ def initialize(**args)
1393
+ update!(**args)
1394
+ end
1395
+
1396
+ # Update properties of this object
1397
+ def update!(**args)
1398
+ @fit_level = args[:fit_level] if args.key?(:fit_level)
1399
+ end
1400
+ end
1401
+
1402
+ # A resource that contains a single violation of a reported `AssetFrame`
1403
+ # resource.
1404
+ class FrameViolationEntry
1405
+ include Google::Apis::Core::Hashable
1406
+
1407
+ # The field of the original frame where the violation occurred.
1408
+ # Corresponds to the JSON property `field`
1409
+ # @return [String]
1410
+ attr_accessor :field
1411
+
1412
+ # A message describing the violation.
1413
+ # Corresponds to the JSON property `violation`
1414
+ # @return [String]
1415
+ attr_accessor :violation
1416
+
1417
+ def initialize(**args)
1418
+ update!(**args)
1419
+ end
1420
+
1421
+ # Update properties of this object
1422
+ def update!(**args)
1423
+ @field = args[:field] if args.key?(:field)
1424
+ @violation = args[:violation] if args.key?(:violation)
1425
+ end
1426
+ end
1427
+
1428
+ # Collection of frame data.
1429
+ class Frames
1430
+ include Google::Apis::Core::Hashable
1431
+
1432
+ # A repeated field of asset data.
1433
+ # Corresponds to the JSON property `framesData`
1434
+ # @return [Array<Google::Apis::MigrationcenterV1::AssetFrame>]
1435
+ attr_accessor :frames_data
1436
+
1437
+ def initialize(**args)
1438
+ update!(**args)
1439
+ end
1440
+
1441
+ # Update properties of this object
1442
+ def update!(**args)
1443
+ @frames_data = args[:frames_data] if args.key?(:frames_data)
1444
+ end
1445
+ end
1446
+
1447
+ # Single fstab entry.
1448
+ class FstabEntry
1449
+ include Google::Apis::Core::Hashable
1450
+
1451
+ # The mount point for the filesystem.
1452
+ # Corresponds to the JSON property `file`
1453
+ # @return [String]
1454
+ attr_accessor :file
1455
+
1456
+ # Used by dump to determine which filesystems need to be dumped.
1457
+ # Corresponds to the JSON property `freq`
1458
+ # @return [Fixnum]
1459
+ attr_accessor :freq
1460
+
1461
+ # Mount options associated with the filesystem.
1462
+ # Corresponds to the JSON property `mntops`
1463
+ # @return [String]
1464
+ attr_accessor :mntops
1465
+
1466
+ # Used by the fsck(8) program to determine the order in which filesystem checks
1467
+ # are done at reboot time.
1468
+ # Corresponds to the JSON property `passno`
1469
+ # @return [Fixnum]
1470
+ attr_accessor :passno
1471
+
1472
+ # The block special device or remote filesystem to be mounted.
1473
+ # Corresponds to the JSON property `spec`
1474
+ # @return [String]
1475
+ attr_accessor :spec
1476
+
1477
+ # The type of the filesystem.
1478
+ # Corresponds to the JSON property `vfstype`
1479
+ # @return [String]
1480
+ attr_accessor :vfstype
1481
+
1482
+ def initialize(**args)
1483
+ update!(**args)
1484
+ end
1485
+
1486
+ # Update properties of this object
1487
+ def update!(**args)
1488
+ @file = args[:file] if args.key?(:file)
1489
+ @freq = args[:freq] if args.key?(:freq)
1490
+ @mntops = args[:mntops] if args.key?(:mntops)
1491
+ @passno = args[:passno] if args.key?(:passno)
1492
+ @spec = args[:spec] if args.key?(:spec)
1493
+ @vfstype = args[:vfstype] if args.key?(:vfstype)
1494
+ end
1495
+ end
1496
+
1497
+ # Fstab content.
1498
+ class FstabEntryList
1499
+ include Google::Apis::Core::Hashable
1500
+
1501
+ # Fstab entries.
1502
+ # Corresponds to the JSON property `entries`
1503
+ # @return [Array<Google::Apis::MigrationcenterV1::FstabEntry>]
1504
+ attr_accessor :entries
1505
+
1506
+ def initialize(**args)
1507
+ update!(**args)
1508
+ end
1509
+
1510
+ # Update properties of this object
1511
+ def update!(**args)
1512
+ @entries = args[:entries] if args.key?(:entries)
1513
+ end
1514
+ end
1515
+
1516
+ # Generic platform details.
1517
+ class GenericPlatformDetails
1518
+ include Google::Apis::Core::Hashable
1519
+
1520
+ # Free text representation of the machine location. The format of this field
1521
+ # should not be relied on. Different VMs in the same location may have different
1522
+ # string values for this field.
1523
+ # Corresponds to the JSON property `location`
1524
+ # @return [String]
1525
+ attr_accessor :location
1526
+
1527
+ def initialize(**args)
1528
+ update!(**args)
1529
+ end
1530
+
1531
+ # Update properties of this object
1532
+ def update!(**args)
1533
+ @location = args[:location] if args.key?(:location)
1534
+ end
1535
+ end
1536
+
1537
+ # A resource that represents an asset group. The purpose of an asset group is to
1538
+ # bundle a set of assets that have something in common, while allowing users to
1539
+ # add annotations to the group. An asset can belong to multiple groups.
1540
+ class Group
1541
+ include Google::Apis::Core::Hashable
1542
+
1543
+ # Output only. The timestamp when the group was created.
1544
+ # Corresponds to the JSON property `createTime`
1545
+ # @return [String]
1546
+ attr_accessor :create_time
1547
+
1548
+ # The description of the resource.
1549
+ # Corresponds to the JSON property `description`
1550
+ # @return [String]
1551
+ attr_accessor :description
1552
+
1553
+ # User-friendly display name.
1554
+ # Corresponds to the JSON property `displayName`
1555
+ # @return [String]
1556
+ attr_accessor :display_name
1557
+
1558
+ # Labels as key value pairs.
1559
+ # Corresponds to the JSON property `labels`
1560
+ # @return [Hash<String,String>]
1561
+ attr_accessor :labels
1562
+
1563
+ # Output only. The name of the group.
1564
+ # Corresponds to the JSON property `name`
1565
+ # @return [String]
1566
+ attr_accessor :name
1567
+
1568
+ # Output only. The timestamp when the group was last updated.
1569
+ # Corresponds to the JSON property `updateTime`
1570
+ # @return [String]
1571
+ attr_accessor :update_time
1572
+
1573
+ def initialize(**args)
1574
+ update!(**args)
1575
+ end
1576
+
1577
+ # Update properties of this object
1578
+ def update!(**args)
1579
+ @create_time = args[:create_time] if args.key?(:create_time)
1580
+ @description = args[:description] if args.key?(:description)
1581
+ @display_name = args[:display_name] if args.key?(:display_name)
1582
+ @labels = args[:labels] if args.key?(:labels)
1583
+ @name = args[:name] if args.key?(:name)
1584
+ @update_time = args[:update_time] if args.key?(:update_time)
1585
+ end
1586
+ end
1587
+
1588
+ # Guest OS config information.
1589
+ class GuestConfigDetails
1590
+ include Google::Apis::Core::Hashable
1591
+
1592
+ # Fstab content.
1593
+ # Corresponds to the JSON property `fstab`
1594
+ # @return [Google::Apis::MigrationcenterV1::FstabEntryList]
1595
+ attr_accessor :fstab
1596
+
1597
+ # Hosts content.
1598
+ # Corresponds to the JSON property `hosts`
1599
+ # @return [Google::Apis::MigrationcenterV1::HostsEntryList]
1600
+ attr_accessor :hosts
1601
+
1602
+ # OS issue (typically /etc/issue in Linux).
1603
+ # Corresponds to the JSON property `issue`
1604
+ # @return [String]
1605
+ attr_accessor :issue
1606
+
1607
+ # NFS exports.
1608
+ # Corresponds to the JSON property `nfsExports`
1609
+ # @return [Google::Apis::MigrationcenterV1::NfsExportList]
1610
+ attr_accessor :nfs_exports
1611
+
1612
+ # Security-Enhanced Linux (SELinux) mode.
1613
+ # Corresponds to the JSON property `selinuxMode`
1614
+ # @return [String]
1615
+ attr_accessor :selinux_mode
1616
+
1617
+ def initialize(**args)
1618
+ update!(**args)
1619
+ end
1620
+
1621
+ # Update properties of this object
1622
+ def update!(**args)
1623
+ @fstab = args[:fstab] if args.key?(:fstab)
1624
+ @hosts = args[:hosts] if args.key?(:hosts)
1625
+ @issue = args[:issue] if args.key?(:issue)
1626
+ @nfs_exports = args[:nfs_exports] if args.key?(:nfs_exports)
1627
+ @selinux_mode = args[:selinux_mode] if args.key?(:selinux_mode)
1628
+ end
1629
+ end
1630
+
1631
+ # Guest installed application information.
1632
+ class GuestInstalledApplication
1633
+ include Google::Apis::Core::Hashable
1634
+
1635
+ # Installed application name.
1636
+ # Corresponds to the JSON property `applicationName`
1637
+ # @return [String]
1638
+ attr_accessor :application_name
1639
+
1640
+ # The time when the application was installed.
1641
+ # Corresponds to the JSON property `installTime`
1642
+ # @return [String]
1643
+ attr_accessor :install_time
1644
+
1645
+ # Source path.
1646
+ # Corresponds to the JSON property `path`
1647
+ # @return [String]
1648
+ attr_accessor :path
1649
+
1650
+ # Installed application vendor.
1651
+ # Corresponds to the JSON property `vendor`
1652
+ # @return [String]
1653
+ attr_accessor :vendor
1654
+
1655
+ # Installed application version.
1656
+ # Corresponds to the JSON property `version`
1657
+ # @return [String]
1658
+ attr_accessor :version
1659
+
1660
+ def initialize(**args)
1661
+ update!(**args)
1662
+ end
1663
+
1664
+ # Update properties of this object
1665
+ def update!(**args)
1666
+ @application_name = args[:application_name] if args.key?(:application_name)
1667
+ @install_time = args[:install_time] if args.key?(:install_time)
1668
+ @path = args[:path] if args.key?(:path)
1669
+ @vendor = args[:vendor] if args.key?(:vendor)
1670
+ @version = args[:version] if args.key?(:version)
1671
+ end
1672
+ end
1673
+
1674
+ # Guest installed application list.
1675
+ class GuestInstalledApplicationList
1676
+ include Google::Apis::Core::Hashable
1677
+
1678
+ # Application entries.
1679
+ # Corresponds to the JSON property `entries`
1680
+ # @return [Array<Google::Apis::MigrationcenterV1::GuestInstalledApplication>]
1681
+ attr_accessor :entries
1682
+
1683
+ def initialize(**args)
1684
+ update!(**args)
1685
+ end
1686
+
1687
+ # Update properties of this object
1688
+ def update!(**args)
1689
+ @entries = args[:entries] if args.key?(:entries)
1690
+ end
1691
+ end
1692
+
1693
+ # Information from Guest-level collections.
1694
+ class GuestOsDetails
1695
+ include Google::Apis::Core::Hashable
1696
+
1697
+ # Guest OS config information.
1698
+ # Corresponds to the JSON property `config`
1699
+ # @return [Google::Apis::MigrationcenterV1::GuestConfigDetails]
1700
+ attr_accessor :config
1701
+
1702
+ # What family the OS belong to, if known.
1703
+ # Corresponds to the JSON property `family`
1704
+ # @return [String]
1705
+ attr_accessor :family
1706
+
1707
+ # The name of the operating system.
1708
+ # Corresponds to the JSON property `osName`
1709
+ # @return [String]
1710
+ attr_accessor :os_name
1711
+
1712
+ # Guest OS runtime information.
1713
+ # Corresponds to the JSON property `runtime`
1714
+ # @return [Google::Apis::MigrationcenterV1::GuestRuntimeDetails]
1715
+ attr_accessor :runtime
1716
+
1717
+ # The version of the operating system.
1718
+ # Corresponds to the JSON property `version`
1719
+ # @return [String]
1720
+ attr_accessor :version
1721
+
1722
+ def initialize(**args)
1723
+ update!(**args)
1724
+ end
1725
+
1726
+ # Update properties of this object
1727
+ def update!(**args)
1728
+ @config = args[:config] if args.key?(:config)
1729
+ @family = args[:family] if args.key?(:family)
1730
+ @os_name = args[:os_name] if args.key?(:os_name)
1731
+ @runtime = args[:runtime] if args.key?(:runtime)
1732
+ @version = args[:version] if args.key?(:version)
1733
+ end
1734
+ end
1735
+
1736
+ # Guest OS runtime information.
1737
+ class GuestRuntimeDetails
1738
+ include Google::Apis::Core::Hashable
1739
+
1740
+ # Domain, e.g. c.stratozone-development.internal.
1741
+ # Corresponds to the JSON property `domain`
1742
+ # @return [String]
1743
+ attr_accessor :domain
1744
+
1745
+ # Guest installed application list.
1746
+ # Corresponds to the JSON property `installedApps`
1747
+ # @return [Google::Apis::MigrationcenterV1::GuestInstalledApplicationList]
1748
+ attr_accessor :installed_apps
1749
+
1750
+ # Last time the OS was booted.
1751
+ # Corresponds to the JSON property `lastBootTime`
1752
+ # @return [String]
1753
+ attr_accessor :last_boot_time
1754
+
1755
+ # Machine name.
1756
+ # Corresponds to the JSON property `machineName`
1757
+ # @return [String]
1758
+ attr_accessor :machine_name
1759
+
1760
+ # Runtime networking information.
1761
+ # Corresponds to the JSON property `network`
1762
+ # @return [Google::Apis::MigrationcenterV1::RuntimeNetworkInfo]
1763
+ attr_accessor :network
1764
+
1765
+ # Open file list.
1766
+ # Corresponds to the JSON property `openFileList`
1767
+ # @return [Google::Apis::MigrationcenterV1::OpenFileList]
1768
+ attr_accessor :open_file_list
1769
+
1770
+ # List of running guest OS processes.
1771
+ # Corresponds to the JSON property `processes`
1772
+ # @return [Google::Apis::MigrationcenterV1::RunningProcessList]
1773
+ attr_accessor :processes
1774
+
1775
+ # List of running guest OS services.
1776
+ # Corresponds to the JSON property `services`
1777
+ # @return [Google::Apis::MigrationcenterV1::RunningServiceList]
1778
+ attr_accessor :services
1779
+
1780
+ def initialize(**args)
1781
+ update!(**args)
1782
+ end
1783
+
1784
+ # Update properties of this object
1785
+ def update!(**args)
1786
+ @domain = args[:domain] if args.key?(:domain)
1787
+ @installed_apps = args[:installed_apps] if args.key?(:installed_apps)
1788
+ @last_boot_time = args[:last_boot_time] if args.key?(:last_boot_time)
1789
+ @machine_name = args[:machine_name] if args.key?(:machine_name)
1790
+ @network = args[:network] if args.key?(:network)
1791
+ @open_file_list = args[:open_file_list] if args.key?(:open_file_list)
1792
+ @processes = args[:processes] if args.key?(:processes)
1793
+ @services = args[:services] if args.key?(:services)
1794
+ end
1795
+ end
1796
+
1797
+ # Single /etc/hosts entry.
1798
+ class HostsEntry
1799
+ include Google::Apis::Core::Hashable
1800
+
1801
+ # List of host names / aliases.
1802
+ # Corresponds to the JSON property `hostNames`
1803
+ # @return [Array<String>]
1804
+ attr_accessor :host_names
1805
+
1806
+ # IP (raw, IPv4/6 agnostic).
1807
+ # Corresponds to the JSON property `ip`
1808
+ # @return [String]
1809
+ attr_accessor :ip
1810
+
1811
+ def initialize(**args)
1812
+ update!(**args)
1813
+ end
1814
+
1815
+ # Update properties of this object
1816
+ def update!(**args)
1817
+ @host_names = args[:host_names] if args.key?(:host_names)
1818
+ @ip = args[:ip] if args.key?(:ip)
1819
+ end
1820
+ end
1821
+
1822
+ # Hosts content.
1823
+ class HostsEntryList
1824
+ include Google::Apis::Core::Hashable
1825
+
1826
+ # Hosts entries.
1827
+ # Corresponds to the JSON property `entries`
1828
+ # @return [Array<Google::Apis::MigrationcenterV1::HostsEntry>]
1829
+ attr_accessor :entries
1830
+
1831
+ def initialize(**args)
1832
+ update!(**args)
1833
+ end
1834
+
1835
+ # Update properties of this object
1836
+ def update!(**args)
1837
+ @entries = args[:entries] if args.key?(:entries)
1838
+ end
1839
+ end
1840
+
1841
+ # A resource that represents a payload file in an import job.
1842
+ class ImportDataFile
1843
+ include Google::Apis::Core::Hashable
1844
+
1845
+ # Output only. The timestamp when the file was created.
1846
+ # Corresponds to the JSON property `createTime`
1847
+ # @return [String]
1848
+ attr_accessor :create_time
1849
+
1850
+ # User-friendly display name. Maximum length is 63 characters.
1851
+ # Corresponds to the JSON property `displayName`
1852
+ # @return [String]
1853
+ attr_accessor :display_name
1854
+
1855
+ # Required. The payload format.
1856
+ # Corresponds to the JSON property `format`
1857
+ # @return [String]
1858
+ attr_accessor :format
1859
+
1860
+ # Output only. The name of the file.
1861
+ # Corresponds to the JSON property `name`
1862
+ # @return [String]
1863
+ attr_accessor :name
1864
+
1865
+ # Output only. The state of the import data file.
1866
+ # Corresponds to the JSON property `state`
1867
+ # @return [String]
1868
+ attr_accessor :state
1869
+
1870
+ # A resource that contains a URI to which a data file can be uploaded.
1871
+ # Corresponds to the JSON property `uploadFileInfo`
1872
+ # @return [Google::Apis::MigrationcenterV1::UploadFileInfo]
1873
+ attr_accessor :upload_file_info
1874
+
1875
+ def initialize(**args)
1876
+ update!(**args)
1877
+ end
1878
+
1879
+ # Update properties of this object
1880
+ def update!(**args)
1881
+ @create_time = args[:create_time] if args.key?(:create_time)
1882
+ @display_name = args[:display_name] if args.key?(:display_name)
1883
+ @format = args[:format] if args.key?(:format)
1884
+ @name = args[:name] if args.key?(:name)
1885
+ @state = args[:state] if args.key?(:state)
1886
+ @upload_file_info = args[:upload_file_info] if args.key?(:upload_file_info)
1887
+ end
1888
+ end
1889
+
1890
+ # A resource that reports the errors encountered while processing an import job.
1891
+ class ImportError
1892
+ include Google::Apis::Core::Hashable
1893
+
1894
+ # The error information.
1895
+ # Corresponds to the JSON property `errorDetails`
1896
+ # @return [String]
1897
+ attr_accessor :error_details
1898
+
1899
+ # The severity of the error.
1900
+ # Corresponds to the JSON property `severity`
1901
+ # @return [String]
1902
+ attr_accessor :severity
1903
+
1904
+ def initialize(**args)
1905
+ update!(**args)
1906
+ end
1907
+
1908
+ # Update properties of this object
1909
+ def update!(**args)
1910
+ @error_details = args[:error_details] if args.key?(:error_details)
1911
+ @severity = args[:severity] if args.key?(:severity)
1912
+ end
1913
+ end
1914
+
1915
+ # A resource that represents the background job that imports asset frames.
1916
+ class ImportJob
1917
+ include Google::Apis::Core::Hashable
1918
+
1919
+ # Required. Reference to a source.
1920
+ # Corresponds to the JSON property `assetSource`
1921
+ # @return [String]
1922
+ attr_accessor :asset_source
1923
+
1924
+ # Output only. The timestamp when the import job was completed.
1925
+ # Corresponds to the JSON property `completeTime`
1926
+ # @return [String]
1927
+ attr_accessor :complete_time
1928
+
1929
+ # Output only. The timestamp when the import job was created.
1930
+ # Corresponds to the JSON property `createTime`
1931
+ # @return [String]
1932
+ attr_accessor :create_time
1933
+
1934
+ # User-friendly display name. Maximum length is 63 characters.
1935
+ # Corresponds to the JSON property `displayName`
1936
+ # @return [String]
1937
+ attr_accessor :display_name
1938
+
1939
+ # A resource that reports result of the import job execution.
1940
+ # Corresponds to the JSON property `executionReport`
1941
+ # @return [Google::Apis::MigrationcenterV1::ExecutionReport]
1942
+ attr_accessor :execution_report
1943
+
1944
+ # Labels as key value pairs.
1945
+ # Corresponds to the JSON property `labels`
1946
+ # @return [Hash<String,String>]
1947
+ attr_accessor :labels
1948
+
1949
+ # Output only. The full name of the import job.
1950
+ # Corresponds to the JSON property `name`
1951
+ # @return [String]
1952
+ attr_accessor :name
1953
+
1954
+ # Output only. The state of the import job.
1955
+ # Corresponds to the JSON property `state`
1956
+ # @return [String]
1957
+ attr_accessor :state
1958
+
1959
+ # Output only. The timestamp when the import job was last updated.
1960
+ # Corresponds to the JSON property `updateTime`
1961
+ # @return [String]
1962
+ attr_accessor :update_time
1963
+
1964
+ # A resource that aggregates errors across import job files.
1965
+ # Corresponds to the JSON property `validationReport`
1966
+ # @return [Google::Apis::MigrationcenterV1::ValidationReport]
1967
+ attr_accessor :validation_report
1968
+
1969
+ def initialize(**args)
1970
+ update!(**args)
1971
+ end
1972
+
1973
+ # Update properties of this object
1974
+ def update!(**args)
1975
+ @asset_source = args[:asset_source] if args.key?(:asset_source)
1976
+ @complete_time = args[:complete_time] if args.key?(:complete_time)
1977
+ @create_time = args[:create_time] if args.key?(:create_time)
1978
+ @display_name = args[:display_name] if args.key?(:display_name)
1979
+ @execution_report = args[:execution_report] if args.key?(:execution_report)
1980
+ @labels = args[:labels] if args.key?(:labels)
1981
+ @name = args[:name] if args.key?(:name)
1982
+ @state = args[:state] if args.key?(:state)
1983
+ @update_time = args[:update_time] if args.key?(:update_time)
1984
+ @validation_report = args[:validation_report] if args.key?(:validation_report)
1985
+ end
1986
+ end
1987
+
1988
+ # A resource that reports the import job errors at row level.
1989
+ class ImportRowError
1990
+ include Google::Apis::Core::Hashable
1991
+
1992
+ # The list of errors detected in the row.
1993
+ # Corresponds to the JSON property `errors`
1994
+ # @return [Array<Google::Apis::MigrationcenterV1::ImportError>]
1995
+ attr_accessor :errors
1996
+
1997
+ # The row number where the error was detected.
1998
+ # Corresponds to the JSON property `rowNumber`
1999
+ # @return [Fixnum]
2000
+ attr_accessor :row_number
2001
+
2002
+ # The name of the VM in the row.
2003
+ # Corresponds to the JSON property `vmName`
2004
+ # @return [String]
2005
+ attr_accessor :vm_name
2006
+
2007
+ # The VM UUID.
2008
+ # Corresponds to the JSON property `vmUuid`
2009
+ # @return [String]
2010
+ attr_accessor :vm_uuid
2011
+
2012
+ def initialize(**args)
2013
+ update!(**args)
2014
+ end
2015
+
2016
+ # Update properties of this object
2017
+ def update!(**args)
2018
+ @errors = args[:errors] if args.key?(:errors)
2019
+ @row_number = args[:row_number] if args.key?(:row_number)
2020
+ @vm_name = args[:vm_name] if args.key?(:vm_name)
2021
+ @vm_uuid = args[:vm_uuid] if args.key?(:vm_uuid)
2022
+ end
2023
+ end
2024
+
2025
+ # An insight about an asset.
2026
+ class Insight
2027
+ include Google::Apis::Core::Hashable
2028
+
2029
+ # An insight about potential migrations for an asset.
2030
+ # Corresponds to the JSON property `migrationInsight`
2031
+ # @return [Google::Apis::MigrationcenterV1::MigrationInsight]
2032
+ attr_accessor :migration_insight
2033
+
2034
+ def initialize(**args)
2035
+ update!(**args)
2036
+ end
2037
+
2038
+ # Update properties of this object
2039
+ def update!(**args)
2040
+ @migration_insight = args[:migration_insight] if args.key?(:migration_insight)
2041
+ end
2042
+ end
2043
+
2044
+ # Message containing insights list.
2045
+ class InsightList
2046
+ include Google::Apis::Core::Hashable
2047
+
2048
+ # Output only. Insights of the list.
2049
+ # Corresponds to the JSON property `insights`
2050
+ # @return [Array<Google::Apis::MigrationcenterV1::Insight>]
2051
+ attr_accessor :insights
2052
+
2053
+ # Output only. Update timestamp.
2054
+ # Corresponds to the JSON property `updateTime`
2055
+ # @return [String]
2056
+ attr_accessor :update_time
2057
+
2058
+ def initialize(**args)
2059
+ update!(**args)
2060
+ end
2061
+
2062
+ # Update properties of this object
2063
+ def update!(**args)
2064
+ @insights = args[:insights] if args.key?(:insights)
2065
+ @update_time = args[:update_time] if args.key?(:update_time)
2066
+ end
2067
+ end
2068
+
2069
+ # Response message for listing assets.
2070
+ class ListAssetsResponse
2071
+ include Google::Apis::Core::Hashable
2072
+
2073
+ # A list of assets.
2074
+ # Corresponds to the JSON property `assets`
2075
+ # @return [Array<Google::Apis::MigrationcenterV1::Asset>]
2076
+ attr_accessor :assets
2077
+
2078
+ # A token identifying a page of results the server should return.
2079
+ # Corresponds to the JSON property `nextPageToken`
2080
+ # @return [String]
2081
+ attr_accessor :next_page_token
2082
+
2083
+ # Locations that could not be reached.
2084
+ # Corresponds to the JSON property `unreachable`
2085
+ # @return [Array<String>]
2086
+ attr_accessor :unreachable
2087
+
2088
+ def initialize(**args)
2089
+ update!(**args)
2090
+ end
2091
+
2092
+ # Update properties of this object
2093
+ def update!(**args)
2094
+ @assets = args[:assets] if args.key?(:assets)
2095
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
2096
+ @unreachable = args[:unreachable] if args.key?(:unreachable)
2097
+ end
2098
+ end
2099
+
2100
+ # A response for listing error frames.
2101
+ class ListErrorFramesResponse
2102
+ include Google::Apis::Core::Hashable
2103
+
2104
+ # The list of error frames.
2105
+ # Corresponds to the JSON property `errorFrames`
2106
+ # @return [Array<Google::Apis::MigrationcenterV1::ErrorFrame>]
2107
+ attr_accessor :error_frames
2108
+
2109
+ # A token identifying a page of results the server should return.
2110
+ # Corresponds to the JSON property `nextPageToken`
2111
+ # @return [String]
2112
+ attr_accessor :next_page_token
2113
+
2114
+ # Locations that could not be reached.
2115
+ # Corresponds to the JSON property `unreachable`
2116
+ # @return [Array<String>]
2117
+ attr_accessor :unreachable
2118
+
2119
+ def initialize(**args)
2120
+ update!(**args)
2121
+ end
2122
+
2123
+ # Update properties of this object
2124
+ def update!(**args)
2125
+ @error_frames = args[:error_frames] if args.key?(:error_frames)
2126
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
2127
+ @unreachable = args[:unreachable] if args.key?(:unreachable)
2128
+ end
2129
+ end
2130
+
2131
+ # A response for listing groups.
2132
+ class ListGroupsResponse
2133
+ include Google::Apis::Core::Hashable
2134
+
2135
+ # The list of Group
2136
+ # Corresponds to the JSON property `groups`
2137
+ # @return [Array<Google::Apis::MigrationcenterV1::Group>]
2138
+ attr_accessor :groups
2139
+
2140
+ # A token identifying a page of results the server should return.
2141
+ # Corresponds to the JSON property `nextPageToken`
2142
+ # @return [String]
2143
+ attr_accessor :next_page_token
2144
+
2145
+ # Locations that could not be reached.
2146
+ # Corresponds to the JSON property `unreachable`
2147
+ # @return [Array<String>]
2148
+ attr_accessor :unreachable
2149
+
2150
+ def initialize(**args)
2151
+ update!(**args)
2152
+ end
2153
+
2154
+ # Update properties of this object
2155
+ def update!(**args)
2156
+ @groups = args[:groups] if args.key?(:groups)
2157
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
2158
+ @unreachable = args[:unreachable] if args.key?(:unreachable)
2159
+ end
2160
+ end
2161
+
2162
+ # Response for listing payload files of an import job.
2163
+ class ListImportDataFilesResponse
2164
+ include Google::Apis::Core::Hashable
2165
+
2166
+ # The list of import data files.
2167
+ # Corresponds to the JSON property `importDataFiles`
2168
+ # @return [Array<Google::Apis::MigrationcenterV1::ImportDataFile>]
2169
+ attr_accessor :import_data_files
2170
+
2171
+ # A token that can be sent as `page_token` to retrieve the next page. If this
2172
+ # field is omitted, there are no subsequent pages.
2173
+ # Corresponds to the JSON property `nextPageToken`
2174
+ # @return [String]
2175
+ attr_accessor :next_page_token
2176
+
2177
+ # Locations that could not be reached.
2178
+ # Corresponds to the JSON property `unreachable`
2179
+ # @return [Array<String>]
2180
+ attr_accessor :unreachable
2181
+
2182
+ def initialize(**args)
2183
+ update!(**args)
2184
+ end
2185
+
2186
+ # Update properties of this object
2187
+ def update!(**args)
2188
+ @import_data_files = args[:import_data_files] if args.key?(:import_data_files)
2189
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
2190
+ @unreachable = args[:unreachable] if args.key?(:unreachable)
2191
+ end
2192
+ end
2193
+
2194
+ # A response for listing import jobs.
2195
+ class ListImportJobsResponse
2196
+ include Google::Apis::Core::Hashable
2197
+
2198
+ # The list of import jobs.
2199
+ # Corresponds to the JSON property `importJobs`
2200
+ # @return [Array<Google::Apis::MigrationcenterV1::ImportJob>]
2201
+ attr_accessor :import_jobs
2202
+
2203
+ # A token identifying a page of results the server should return.
2204
+ # Corresponds to the JSON property `nextPageToken`
2205
+ # @return [String]
2206
+ attr_accessor :next_page_token
2207
+
2208
+ # Locations that could not be reached.
2209
+ # Corresponds to the JSON property `unreachable`
2210
+ # @return [Array<String>]
2211
+ attr_accessor :unreachable
2212
+
2213
+ def initialize(**args)
2214
+ update!(**args)
2215
+ end
2216
+
2217
+ # Update properties of this object
2218
+ def update!(**args)
2219
+ @import_jobs = args[:import_jobs] if args.key?(:import_jobs)
2220
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
2221
+ @unreachable = args[:unreachable] if args.key?(:unreachable)
2222
+ end
2223
+ end
2224
+
2225
+ # The response message for Locations.ListLocations.
2226
+ class ListLocationsResponse
2227
+ include Google::Apis::Core::Hashable
2228
+
2229
+ # A list of locations that matches the specified filter in the request.
2230
+ # Corresponds to the JSON property `locations`
2231
+ # @return [Array<Google::Apis::MigrationcenterV1::Location>]
2232
+ attr_accessor :locations
2233
+
2234
+ # The standard List next-page token.
2235
+ # Corresponds to the JSON property `nextPageToken`
2236
+ # @return [String]
2237
+ attr_accessor :next_page_token
2238
+
2239
+ def initialize(**args)
2240
+ update!(**args)
2241
+ end
2242
+
2243
+ # Update properties of this object
2244
+ def update!(**args)
2245
+ @locations = args[:locations] if args.key?(:locations)
2246
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
2247
+ end
2248
+ end
2249
+
2250
+ # The response message for Operations.ListOperations.
2251
+ class ListOperationsResponse
2252
+ include Google::Apis::Core::Hashable
2253
+
2254
+ # The standard List next-page token.
2255
+ # Corresponds to the JSON property `nextPageToken`
2256
+ # @return [String]
2257
+ attr_accessor :next_page_token
2258
+
2259
+ # A list of operations that matches the specified filter in the request.
2260
+ # Corresponds to the JSON property `operations`
2261
+ # @return [Array<Google::Apis::MigrationcenterV1::Operation>]
2262
+ attr_accessor :operations
2263
+
2264
+ def initialize(**args)
2265
+ update!(**args)
2266
+ end
2267
+
2268
+ # Update properties of this object
2269
+ def update!(**args)
2270
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
2271
+ @operations = args[:operations] if args.key?(:operations)
2272
+ end
2273
+ end
2274
+
2275
+ # Response message for listing preference sets.
2276
+ class ListPreferenceSetsResponse
2277
+ include Google::Apis::Core::Hashable
2278
+
2279
+ # A token identifying a page of results the server should return.
2280
+ # Corresponds to the JSON property `nextPageToken`
2281
+ # @return [String]
2282
+ attr_accessor :next_page_token
2283
+
2284
+ # The list of PreferenceSets
2285
+ # Corresponds to the JSON property `preferenceSets`
2286
+ # @return [Array<Google::Apis::MigrationcenterV1::PreferenceSet>]
2287
+ attr_accessor :preference_sets
2288
+
2289
+ # Locations that could not be reached.
2290
+ # Corresponds to the JSON property `unreachable`
2291
+ # @return [Array<String>]
2292
+ attr_accessor :unreachable
2293
+
2294
+ def initialize(**args)
2295
+ update!(**args)
2296
+ end
2297
+
2298
+ # Update properties of this object
2299
+ def update!(**args)
2300
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
2301
+ @preference_sets = args[:preference_sets] if args.key?(:preference_sets)
2302
+ @unreachable = args[:unreachable] if args.key?(:unreachable)
2303
+ end
2304
+ end
2305
+
2306
+ # Response message for listing report configs.
2307
+ class ListReportConfigsResponse
2308
+ include Google::Apis::Core::Hashable
2309
+
2310
+ # A token identifying a page of results the server should return.
2311
+ # Corresponds to the JSON property `nextPageToken`
2312
+ # @return [String]
2313
+ attr_accessor :next_page_token
2314
+
2315
+ # A list of report configs.
2316
+ # Corresponds to the JSON property `reportConfigs`
2317
+ # @return [Array<Google::Apis::MigrationcenterV1::ReportConfig>]
2318
+ attr_accessor :report_configs
2319
+
2320
+ # Locations that could not be reached.
2321
+ # Corresponds to the JSON property `unreachable`
2322
+ # @return [Array<String>]
2323
+ attr_accessor :unreachable
2324
+
2325
+ def initialize(**args)
2326
+ update!(**args)
2327
+ end
2328
+
2329
+ # Update properties of this object
2330
+ def update!(**args)
2331
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
2332
+ @report_configs = args[:report_configs] if args.key?(:report_configs)
2333
+ @unreachable = args[:unreachable] if args.key?(:unreachable)
2334
+ end
2335
+ end
2336
+
2337
+ # Response message for listing Reports.
2338
+ class ListReportsResponse
2339
+ include Google::Apis::Core::Hashable
2340
+
2341
+ # A token identifying a page of results the server should return.
2342
+ # Corresponds to the JSON property `nextPageToken`
2343
+ # @return [String]
2344
+ attr_accessor :next_page_token
2345
+
2346
+ # The list of Reports.
2347
+ # Corresponds to the JSON property `reports`
2348
+ # @return [Array<Google::Apis::MigrationcenterV1::Report>]
2349
+ attr_accessor :reports
2350
+
2351
+ # Locations that could not be reached.
2352
+ # Corresponds to the JSON property `unreachable`
2353
+ # @return [Array<String>]
2354
+ attr_accessor :unreachable
2355
+
2356
+ def initialize(**args)
2357
+ update!(**args)
2358
+ end
2359
+
2360
+ # Update properties of this object
2361
+ def update!(**args)
2362
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
2363
+ @reports = args[:reports] if args.key?(:reports)
2364
+ @unreachable = args[:unreachable] if args.key?(:unreachable)
2365
+ end
2366
+ end
2367
+
2368
+ # Response message for listing sources.
2369
+ class ListSourcesResponse
2370
+ include Google::Apis::Core::Hashable
2371
+
2372
+ # A token identifying a page of results the server should return.
2373
+ # Corresponds to the JSON property `nextPageToken`
2374
+ # @return [String]
2375
+ attr_accessor :next_page_token
2376
+
2377
+ # The list of sources.
2378
+ # Corresponds to the JSON property `sources`
2379
+ # @return [Array<Google::Apis::MigrationcenterV1::Source>]
2380
+ attr_accessor :sources
2381
+
2382
+ # Locations that could not be reached.
2383
+ # Corresponds to the JSON property `unreachable`
2384
+ # @return [Array<String>]
2385
+ attr_accessor :unreachable
2386
+
2387
+ def initialize(**args)
2388
+ update!(**args)
2389
+ end
2390
+
2391
+ # Update properties of this object
2392
+ def update!(**args)
2393
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
2394
+ @sources = args[:sources] if args.key?(:sources)
2395
+ @unreachable = args[:unreachable] if args.key?(:unreachable)
2396
+ end
2397
+ end
2398
+
2399
+ # A resource that represents a Google Cloud location.
2400
+ class Location
2401
+ include Google::Apis::Core::Hashable
2402
+
2403
+ # The friendly name for this location, typically a nearby city name. For example,
2404
+ # "Tokyo".
2405
+ # Corresponds to the JSON property `displayName`
2406
+ # @return [String]
2407
+ attr_accessor :display_name
2408
+
2409
+ # Cross-service attributes for the location. For example `"cloud.googleapis.com/
2410
+ # region": "us-east1"`
2411
+ # Corresponds to the JSON property `labels`
2412
+ # @return [Hash<String,String>]
2413
+ attr_accessor :labels
2414
+
2415
+ # The canonical id for this location. For example: `"us-east1"`.
2416
+ # Corresponds to the JSON property `locationId`
2417
+ # @return [String]
2418
+ attr_accessor :location_id
2419
+
2420
+ # Service-specific metadata. For example the available capacity at the given
2421
+ # location.
2422
+ # Corresponds to the JSON property `metadata`
2423
+ # @return [Hash<String,Object>]
2424
+ attr_accessor :metadata
2425
+
2426
+ # Resource name for the location, which may vary between implementations. For
2427
+ # example: `"projects/example-project/locations/us-east1"`
2428
+ # Corresponds to the JSON property `name`
2429
+ # @return [String]
2430
+ attr_accessor :name
2431
+
2432
+ def initialize(**args)
2433
+ update!(**args)
2434
+ end
2435
+
2436
+ # Update properties of this object
2437
+ def update!(**args)
2438
+ @display_name = args[:display_name] if args.key?(:display_name)
2439
+ @labels = args[:labels] if args.key?(:labels)
2440
+ @location_id = args[:location_id] if args.key?(:location_id)
2441
+ @metadata = args[:metadata] if args.key?(:metadata)
2442
+ @name = args[:name] if args.key?(:name)
2443
+ end
2444
+ end
2445
+
2446
+ # Details of the machine architecture.
2447
+ class MachineArchitectureDetails
2448
+ include Google::Apis::Core::Hashable
2449
+
2450
+ # Details about the BIOS.
2451
+ # Corresponds to the JSON property `bios`
2452
+ # @return [Google::Apis::MigrationcenterV1::BiosDetails]
2453
+ attr_accessor :bios
2454
+
2455
+ # CPU architecture, e.g., "x64-based PC", "x86_64", "i686" etc.
2456
+ # Corresponds to the JSON property `cpuArchitecture`
2457
+ # @return [String]
2458
+ attr_accessor :cpu_architecture
2459
+
2460
+ # CPU name, e.g., "Intel Xeon E5-2690", "AMD EPYC 7571" etc.
2461
+ # Corresponds to the JSON property `cpuName`
2462
+ # @return [String]
2463
+ attr_accessor :cpu_name
2464
+
2465
+ # Number of processor sockets allocated to the machine.
2466
+ # Corresponds to the JSON property `cpuSocketCount`
2467
+ # @return [Fixnum]
2468
+ attr_accessor :cpu_socket_count
2469
+
2470
+ # Number of CPU threads allocated to the machine.
2471
+ # Corresponds to the JSON property `cpuThreadCount`
2472
+ # @return [Fixnum]
2473
+ attr_accessor :cpu_thread_count
2474
+
2475
+ # Firmware type.
2476
+ # Corresponds to the JSON property `firmwareType`
2477
+ # @return [String]
2478
+ attr_accessor :firmware_type
2479
+
2480
+ # CPU hyper-threading support.
2481
+ # Corresponds to the JSON property `hyperthreading`
2482
+ # @return [String]
2483
+ attr_accessor :hyperthreading
2484
+
2485
+ # Hardware vendor.
2486
+ # Corresponds to the JSON property `vendor`
2487
+ # @return [String]
2488
+ attr_accessor :vendor
2489
+
2490
+ def initialize(**args)
2491
+ update!(**args)
2492
+ end
2493
+
2494
+ # Update properties of this object
2495
+ def update!(**args)
2496
+ @bios = args[:bios] if args.key?(:bios)
2497
+ @cpu_architecture = args[:cpu_architecture] if args.key?(:cpu_architecture)
2498
+ @cpu_name = args[:cpu_name] if args.key?(:cpu_name)
2499
+ @cpu_socket_count = args[:cpu_socket_count] if args.key?(:cpu_socket_count)
2500
+ @cpu_thread_count = args[:cpu_thread_count] if args.key?(:cpu_thread_count)
2501
+ @firmware_type = args[:firmware_type] if args.key?(:firmware_type)
2502
+ @hyperthreading = args[:hyperthreading] if args.key?(:hyperthreading)
2503
+ @vendor = args[:vendor] if args.key?(:vendor)
2504
+ end
2505
+ end
2506
+
2507
+ # Details of a machine.
2508
+ class MachineDetails
2509
+ include Google::Apis::Core::Hashable
2510
+
2511
+ # Details of the machine architecture.
2512
+ # Corresponds to the JSON property `architecture`
2513
+ # @return [Google::Apis::MigrationcenterV1::MachineArchitectureDetails]
2514
+ attr_accessor :architecture
2515
+
2516
+ # Number of CPU cores in the machine. Must be non-negative.
2517
+ # Corresponds to the JSON property `coreCount`
2518
+ # @return [Fixnum]
2519
+ attr_accessor :core_count
2520
+
2521
+ # Machine creation time.
2522
+ # Corresponds to the JSON property `createTime`
2523
+ # @return [String]
2524
+ attr_accessor :create_time
2525
+
2526
+ # Details of machine disks.
2527
+ # Corresponds to the JSON property `disks`
2528
+ # @return [Google::Apis::MigrationcenterV1::MachineDiskDetails]
2529
+ attr_accessor :disks
2530
+
2531
+ # Information from Guest-level collections.
2532
+ # Corresponds to the JSON property `guestOs`
2533
+ # @return [Google::Apis::MigrationcenterV1::GuestOsDetails]
2534
+ attr_accessor :guest_os
2535
+
2536
+ # Machine name.
2537
+ # Corresponds to the JSON property `machineName`
2538
+ # @return [String]
2539
+ attr_accessor :machine_name
2540
+
2541
+ # The amount of memory in the machine. Must be non-negative.
2542
+ # Corresponds to the JSON property `memoryMb`
2543
+ # @return [Fixnum]
2544
+ attr_accessor :memory_mb
2545
+
2546
+ # Details of network adapters and settings.
2547
+ # Corresponds to the JSON property `network`
2548
+ # @return [Google::Apis::MigrationcenterV1::MachineNetworkDetails]
2549
+ attr_accessor :network
2550
+
2551
+ # Information about the platform.
2552
+ # Corresponds to the JSON property `platform`
2553
+ # @return [Google::Apis::MigrationcenterV1::PlatformDetails]
2554
+ attr_accessor :platform
2555
+
2556
+ # Power state of the machine.
2557
+ # Corresponds to the JSON property `powerState`
2558
+ # @return [String]
2559
+ attr_accessor :power_state
2560
+
2561
+ # Machine unique identifier.
2562
+ # Corresponds to the JSON property `uuid`
2563
+ # @return [String]
2564
+ attr_accessor :uuid
2565
+
2566
+ def initialize(**args)
2567
+ update!(**args)
2568
+ end
2569
+
2570
+ # Update properties of this object
2571
+ def update!(**args)
2572
+ @architecture = args[:architecture] if args.key?(:architecture)
2573
+ @core_count = args[:core_count] if args.key?(:core_count)
2574
+ @create_time = args[:create_time] if args.key?(:create_time)
2575
+ @disks = args[:disks] if args.key?(:disks)
2576
+ @guest_os = args[:guest_os] if args.key?(:guest_os)
2577
+ @machine_name = args[:machine_name] if args.key?(:machine_name)
2578
+ @memory_mb = args[:memory_mb] if args.key?(:memory_mb)
2579
+ @network = args[:network] if args.key?(:network)
2580
+ @platform = args[:platform] if args.key?(:platform)
2581
+ @power_state = args[:power_state] if args.key?(:power_state)
2582
+ @uuid = args[:uuid] if args.key?(:uuid)
2583
+ end
2584
+ end
2585
+
2586
+ # Details of machine disks.
2587
+ class MachineDiskDetails
2588
+ include Google::Apis::Core::Hashable
2589
+
2590
+ # VM disks.
2591
+ # Corresponds to the JSON property `disks`
2592
+ # @return [Google::Apis::MigrationcenterV1::DiskEntryList]
2593
+ attr_accessor :disks
2594
+
2595
+ # Disk total Capacity.
2596
+ # Corresponds to the JSON property `totalCapacityBytes`
2597
+ # @return [Fixnum]
2598
+ attr_accessor :total_capacity_bytes
2599
+
2600
+ # Total disk free space.
2601
+ # Corresponds to the JSON property `totalFreeBytes`
2602
+ # @return [Fixnum]
2603
+ attr_accessor :total_free_bytes
2604
+
2605
+ def initialize(**args)
2606
+ update!(**args)
2607
+ end
2608
+
2609
+ # Update properties of this object
2610
+ def update!(**args)
2611
+ @disks = args[:disks] if args.key?(:disks)
2612
+ @total_capacity_bytes = args[:total_capacity_bytes] if args.key?(:total_capacity_bytes)
2613
+ @total_free_bytes = args[:total_free_bytes] if args.key?(:total_free_bytes)
2614
+ end
2615
+ end
2616
+
2617
+ # Details of network adapters and settings.
2618
+ class MachineNetworkDetails
2619
+ include Google::Apis::Core::Hashable
2620
+
2621
+ # List of network adapters.
2622
+ # Corresponds to the JSON property `adapters`
2623
+ # @return [Google::Apis::MigrationcenterV1::NetworkAdapterList]
2624
+ attr_accessor :adapters
2625
+
2626
+ # The primary IP address of the machine.
2627
+ # Corresponds to the JSON property `primaryIpAddress`
2628
+ # @return [String]
2629
+ attr_accessor :primary_ip_address
2630
+
2631
+ # MAC address of the machine. This property is used to uniqly identify the
2632
+ # machine.
2633
+ # Corresponds to the JSON property `primaryMacAddress`
2634
+ # @return [String]
2635
+ attr_accessor :primary_mac_address
2636
+
2637
+ # The public IP address of the machine.
2638
+ # Corresponds to the JSON property `publicIpAddress`
2639
+ # @return [String]
2640
+ attr_accessor :public_ip_address
2641
+
2642
+ def initialize(**args)
2643
+ update!(**args)
2644
+ end
2645
+
2646
+ # Update properties of this object
2647
+ def update!(**args)
2648
+ @adapters = args[:adapters] if args.key?(:adapters)
2649
+ @primary_ip_address = args[:primary_ip_address] if args.key?(:primary_ip_address)
2650
+ @primary_mac_address = args[:primary_mac_address] if args.key?(:primary_mac_address)
2651
+ @public_ip_address = args[:public_ip_address] if args.key?(:public_ip_address)
2652
+ end
2653
+ end
2654
+
2655
+ # The type of machines to consider when calculating virtual machine migration
2656
+ # insights and recommendations. Not all machine types are available in all zones
2657
+ # and regions.
2658
+ class MachinePreferences
2659
+ include Google::Apis::Core::Hashable
2660
+
2661
+ # Compute Engine machine series to consider for insights and recommendations. If
2662
+ # empty, no restriction is applied on the machine series.
2663
+ # Corresponds to the JSON property `allowedMachineSeries`
2664
+ # @return [Array<Google::Apis::MigrationcenterV1::MachineSeries>]
2665
+ attr_accessor :allowed_machine_series
2666
+
2667
+ def initialize(**args)
2668
+ update!(**args)
2669
+ end
2670
+
2671
+ # Update properties of this object
2672
+ def update!(**args)
2673
+ @allowed_machine_series = args[:allowed_machine_series] if args.key?(:allowed_machine_series)
2674
+ end
2675
+ end
2676
+
2677
+ # A Compute Engine machine series.
2678
+ class MachineSeries
2679
+ include Google::Apis::Core::Hashable
2680
+
2681
+ # Code to identify a Compute Engine machine series. Consult https://cloud.google.
2682
+ # com/compute/docs/machine-resource#machine_type_comparison for more details on
2683
+ # the available series.
2684
+ # Corresponds to the JSON property `code`
2685
+ # @return [String]
2686
+ attr_accessor :code
2687
+
2688
+ def initialize(**args)
2689
+ update!(**args)
2690
+ end
2691
+
2692
+ # Update properties of this object
2693
+ def update!(**args)
2694
+ @code = args[:code] if args.key?(:code)
2695
+ end
2696
+ end
2697
+
2698
+ # Memory usage sample.
2699
+ class MemoryUsageSample
2700
+ include Google::Apis::Core::Hashable
2701
+
2702
+ # Percentage of system memory utilized. Must be in the interval [0, 100].
2703
+ # Corresponds to the JSON property `utilizedPercentage`
2704
+ # @return [Float]
2705
+ attr_accessor :utilized_percentage
2706
+
2707
+ def initialize(**args)
2708
+ update!(**args)
2709
+ end
2710
+
2711
+ # Update properties of this object
2712
+ def update!(**args)
2713
+ @utilized_percentage = args[:utilized_percentage] if args.key?(:utilized_percentage)
2714
+ end
2715
+ end
2716
+
2717
+ # An insight about potential migrations for an asset.
2718
+ class MigrationInsight
2719
+ include Google::Apis::Core::Hashable
2720
+
2721
+ # Compute engine migration target.
2722
+ # Corresponds to the JSON property `computeEngineTarget`
2723
+ # @return [Google::Apis::MigrationcenterV1::ComputeEngineMigrationTarget]
2724
+ attr_accessor :compute_engine_target
2725
+
2726
+ # Describes the fit level of an asset for migration to a specific target.
2727
+ # Corresponds to the JSON property `fit`
2728
+ # @return [Google::Apis::MigrationcenterV1::FitDescriptor]
2729
+ attr_accessor :fit
2730
+
2731
+ def initialize(**args)
2732
+ update!(**args)
2733
+ end
2734
+
2735
+ # Update properties of this object
2736
+ def update!(**args)
2737
+ @compute_engine_target = args[:compute_engine_target] if args.key?(:compute_engine_target)
2738
+ @fit = args[:fit] if args.key?(:fit)
2739
+ end
2740
+ end
2741
+
2742
+ # Represents an amount of money with its currency type.
2743
+ class Money
2744
+ include Google::Apis::Core::Hashable
2745
+
2746
+ # The three-letter currency code defined in ISO 4217.
2747
+ # Corresponds to the JSON property `currencyCode`
2748
+ # @return [String]
2749
+ attr_accessor :currency_code
2750
+
2751
+ # Number of nano (10^-9) units of the amount. The value must be between -999,999,
2752
+ # 999 and +999,999,999 inclusive. If `units` is positive, `nanos` must be
2753
+ # positive or zero. If `units` is zero, `nanos` can be positive, zero, or
2754
+ # negative. If `units` is negative, `nanos` must be negative or zero. For
2755
+ # example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.
2756
+ # Corresponds to the JSON property `nanos`
2757
+ # @return [Fixnum]
2758
+ attr_accessor :nanos
2759
+
2760
+ # The whole units of the amount. For example if `currencyCode` is `"USD"`, then
2761
+ # 1 unit is one US dollar.
2762
+ # Corresponds to the JSON property `units`
2763
+ # @return [Fixnum]
2764
+ attr_accessor :units
2765
+
2766
+ def initialize(**args)
2767
+ update!(**args)
2768
+ end
2769
+
2770
+ # Update properties of this object
2771
+ def update!(**args)
2772
+ @currency_code = args[:currency_code] if args.key?(:currency_code)
2773
+ @nanos = args[:nanos] if args.key?(:nanos)
2774
+ @units = args[:units] if args.key?(:units)
2775
+ end
2776
+ end
2777
+
2778
+ # Details of network adapter.
2779
+ class NetworkAdapterDetails
2780
+ include Google::Apis::Core::Hashable
2781
+
2782
+ # Network adapter type (e.g. VMXNET3).
2783
+ # Corresponds to the JSON property `adapterType`
2784
+ # @return [String]
2785
+ attr_accessor :adapter_type
2786
+
2787
+ # List of allocated/assigned network addresses.
2788
+ # Corresponds to the JSON property `addresses`
2789
+ # @return [Google::Apis::MigrationcenterV1::NetworkAddressList]
2790
+ attr_accessor :addresses
2791
+
2792
+ # MAC address.
2793
+ # Corresponds to the JSON property `macAddress`
2794
+ # @return [String]
2795
+ attr_accessor :mac_address
2796
+
2797
+ def initialize(**args)
2798
+ update!(**args)
2799
+ end
2800
+
2801
+ # Update properties of this object
2802
+ def update!(**args)
2803
+ @adapter_type = args[:adapter_type] if args.key?(:adapter_type)
2804
+ @addresses = args[:addresses] if args.key?(:addresses)
2805
+ @mac_address = args[:mac_address] if args.key?(:mac_address)
2806
+ end
2807
+ end
2808
+
2809
+ # List of network adapters.
2810
+ class NetworkAdapterList
2811
+ include Google::Apis::Core::Hashable
2812
+
2813
+ # Network adapter entries.
2814
+ # Corresponds to the JSON property `entries`
2815
+ # @return [Array<Google::Apis::MigrationcenterV1::NetworkAdapterDetails>]
2816
+ attr_accessor :entries
2817
+
2818
+ def initialize(**args)
2819
+ update!(**args)
2820
+ end
2821
+
2822
+ # Update properties of this object
2823
+ def update!(**args)
2824
+ @entries = args[:entries] if args.key?(:entries)
2825
+ end
2826
+ end
2827
+
2828
+ # Details of network address.
2829
+ class NetworkAddress
2830
+ include Google::Apis::Core::Hashable
2831
+
2832
+ # Whether DHCP is used to assign addresses.
2833
+ # Corresponds to the JSON property `assignment`
2834
+ # @return [String]
2835
+ attr_accessor :assignment
2836
+
2837
+ # Broadcast address.
2838
+ # Corresponds to the JSON property `bcast`
2839
+ # @return [String]
2840
+ attr_accessor :bcast
2841
+
2842
+ # Fully qualified domain name.
2843
+ # Corresponds to the JSON property `fqdn`
2844
+ # @return [String]
2845
+ attr_accessor :fqdn
2846
+
2847
+ # Assigned or configured IP Address.
2848
+ # Corresponds to the JSON property `ipAddress`
2849
+ # @return [String]
2850
+ attr_accessor :ip_address
2851
+
2852
+ # Subnet mask.
2853
+ # Corresponds to the JSON property `subnetMask`
2854
+ # @return [String]
2855
+ attr_accessor :subnet_mask
2856
+
2857
+ def initialize(**args)
2858
+ update!(**args)
2859
+ end
2860
+
2861
+ # Update properties of this object
2862
+ def update!(**args)
2863
+ @assignment = args[:assignment] if args.key?(:assignment)
2864
+ @bcast = args[:bcast] if args.key?(:bcast)
2865
+ @fqdn = args[:fqdn] if args.key?(:fqdn)
2866
+ @ip_address = args[:ip_address] if args.key?(:ip_address)
2867
+ @subnet_mask = args[:subnet_mask] if args.key?(:subnet_mask)
2868
+ end
2869
+ end
2870
+
2871
+ # List of allocated/assigned network addresses.
2872
+ class NetworkAddressList
2873
+ include Google::Apis::Core::Hashable
2874
+
2875
+ # Network address entries.
2876
+ # Corresponds to the JSON property `entries`
2877
+ # @return [Array<Google::Apis::MigrationcenterV1::NetworkAddress>]
2878
+ attr_accessor :entries
2879
+
2880
+ def initialize(**args)
2881
+ update!(**args)
2882
+ end
2883
+
2884
+ # Update properties of this object
2885
+ def update!(**args)
2886
+ @entries = args[:entries] if args.key?(:entries)
2887
+ end
2888
+ end
2889
+
2890
+ #
2891
+ class NetworkConnection
2892
+ include Google::Apis::Core::Hashable
2893
+
2894
+ # Local IP address.
2895
+ # Corresponds to the JSON property `localIpAddress`
2896
+ # @return [String]
2897
+ attr_accessor :local_ip_address
2898
+
2899
+ # Local port.
2900
+ # Corresponds to the JSON property `localPort`
2901
+ # @return [Fixnum]
2902
+ attr_accessor :local_port
2903
+
2904
+ # Process ID.
2905
+ # Corresponds to the JSON property `pid`
2906
+ # @return [Fixnum]
2907
+ attr_accessor :pid
2908
+
2909
+ # Process or service name.
2910
+ # Corresponds to the JSON property `processName`
2911
+ # @return [String]
2912
+ attr_accessor :process_name
2913
+
2914
+ # Connection protocol (e.g. TCP/UDP).
2915
+ # Corresponds to the JSON property `protocol`
2916
+ # @return [String]
2917
+ attr_accessor :protocol
2918
+
2919
+ # Remote IP address.
2920
+ # Corresponds to the JSON property `remoteIpAddress`
2921
+ # @return [String]
2922
+ attr_accessor :remote_ip_address
2923
+
2924
+ # Remote port.
2925
+ # Corresponds to the JSON property `remotePort`
2926
+ # @return [Fixnum]
2927
+ attr_accessor :remote_port
2928
+
2929
+ # Network connection state.
2930
+ # Corresponds to the JSON property `state`
2931
+ # @return [String]
2932
+ attr_accessor :state
2933
+
2934
+ def initialize(**args)
2935
+ update!(**args)
2936
+ end
2937
+
2938
+ # Update properties of this object
2939
+ def update!(**args)
2940
+ @local_ip_address = args[:local_ip_address] if args.key?(:local_ip_address)
2941
+ @local_port = args[:local_port] if args.key?(:local_port)
2942
+ @pid = args[:pid] if args.key?(:pid)
2943
+ @process_name = args[:process_name] if args.key?(:process_name)
2944
+ @protocol = args[:protocol] if args.key?(:protocol)
2945
+ @remote_ip_address = args[:remote_ip_address] if args.key?(:remote_ip_address)
2946
+ @remote_port = args[:remote_port] if args.key?(:remote_port)
2947
+ @state = args[:state] if args.key?(:state)
2948
+ end
2949
+ end
2950
+
2951
+ # Network connection list.
2952
+ class NetworkConnectionList
2953
+ include Google::Apis::Core::Hashable
2954
+
2955
+ # Network connection entries.
2956
+ # Corresponds to the JSON property `entries`
2957
+ # @return [Array<Google::Apis::MigrationcenterV1::NetworkConnection>]
2958
+ attr_accessor :entries
2959
+
2960
+ def initialize(**args)
2961
+ update!(**args)
2962
+ end
2963
+
2964
+ # Update properties of this object
2965
+ def update!(**args)
2966
+ @entries = args[:entries] if args.key?(:entries)
2967
+ end
2968
+ end
2969
+
2970
+ # Network usage sample. Values are across all network interfaces.
2971
+ class NetworkUsageSample
2972
+ include Google::Apis::Core::Hashable
2973
+
2974
+ # Average network egress in B/s sampled over a short window. Must be non-
2975
+ # negative.
2976
+ # Corresponds to the JSON property `averageEgressBps`
2977
+ # @return [Float]
2978
+ attr_accessor :average_egress_bps
2979
+
2980
+ # Average network ingress in B/s sampled over a short window. Must be non-
2981
+ # negative.
2982
+ # Corresponds to the JSON property `averageIngressBps`
2983
+ # @return [Float]
2984
+ attr_accessor :average_ingress_bps
2985
+
2986
+ def initialize(**args)
2987
+ update!(**args)
2988
+ end
2989
+
2990
+ # Update properties of this object
2991
+ def update!(**args)
2992
+ @average_egress_bps = args[:average_egress_bps] if args.key?(:average_egress_bps)
2993
+ @average_ingress_bps = args[:average_ingress_bps] if args.key?(:average_ingress_bps)
2994
+ end
2995
+ end
2996
+
2997
+ # NFS export.
2998
+ class NfsExport
2999
+ include Google::Apis::Core::Hashable
3000
+
3001
+ # The directory being exported.
3002
+ # Corresponds to the JSON property `exportDirectory`
3003
+ # @return [String]
3004
+ attr_accessor :export_directory
3005
+
3006
+ # The hosts or networks to which the export is being shared.
3007
+ # Corresponds to the JSON property `hosts`
3008
+ # @return [Array<String>]
3009
+ attr_accessor :hosts
3010
+
3011
+ def initialize(**args)
3012
+ update!(**args)
3013
+ end
3014
+
3015
+ # Update properties of this object
3016
+ def update!(**args)
3017
+ @export_directory = args[:export_directory] if args.key?(:export_directory)
3018
+ @hosts = args[:hosts] if args.key?(:hosts)
3019
+ end
3020
+ end
3021
+
3022
+ # NFS exports.
3023
+ class NfsExportList
3024
+ include Google::Apis::Core::Hashable
3025
+
3026
+ # NFS export entries.
3027
+ # Corresponds to the JSON property `entries`
3028
+ # @return [Array<Google::Apis::MigrationcenterV1::NfsExport>]
3029
+ attr_accessor :entries
3030
+
3031
+ def initialize(**args)
3032
+ update!(**args)
3033
+ end
3034
+
3035
+ # Update properties of this object
3036
+ def update!(**args)
3037
+ @entries = args[:entries] if args.key?(:entries)
3038
+ end
3039
+ end
3040
+
3041
+ # Open file Information.
3042
+ class OpenFileDetails
3043
+ include Google::Apis::Core::Hashable
3044
+
3045
+ # Opened file command.
3046
+ # Corresponds to the JSON property `command`
3047
+ # @return [String]
3048
+ attr_accessor :command
3049
+
3050
+ # Opened file file path.
3051
+ # Corresponds to the JSON property `filePath`
3052
+ # @return [String]
3053
+ attr_accessor :file_path
3054
+
3055
+ # Opened file file type.
3056
+ # Corresponds to the JSON property `fileType`
3057
+ # @return [String]
3058
+ attr_accessor :file_type
3059
+
3060
+ # Opened file user.
3061
+ # Corresponds to the JSON property `user`
3062
+ # @return [String]
3063
+ attr_accessor :user
3064
+
3065
+ def initialize(**args)
3066
+ update!(**args)
3067
+ end
3068
+
3069
+ # Update properties of this object
3070
+ def update!(**args)
3071
+ @command = args[:command] if args.key?(:command)
3072
+ @file_path = args[:file_path] if args.key?(:file_path)
3073
+ @file_type = args[:file_type] if args.key?(:file_type)
3074
+ @user = args[:user] if args.key?(:user)
3075
+ end
3076
+ end
3077
+
3078
+ # Open file list.
3079
+ class OpenFileList
3080
+ include Google::Apis::Core::Hashable
3081
+
3082
+ # Open file details entries.
3083
+ # Corresponds to the JSON property `entries`
3084
+ # @return [Array<Google::Apis::MigrationcenterV1::OpenFileDetails>]
3085
+ attr_accessor :entries
3086
+
3087
+ def initialize(**args)
3088
+ update!(**args)
3089
+ end
3090
+
3091
+ # Update properties of this object
3092
+ def update!(**args)
3093
+ @entries = args[:entries] if args.key?(:entries)
3094
+ end
3095
+ end
3096
+
3097
+ # This resource represents a long-running operation that is the result of a
3098
+ # network API call.
3099
+ class Operation
3100
+ include Google::Apis::Core::Hashable
3101
+
3102
+ # If the value is `false`, it means the operation is still in progress. If `true`
3103
+ # , the operation is completed, and either `error` or `response` is available.
3104
+ # Corresponds to the JSON property `done`
3105
+ # @return [Boolean]
3106
+ attr_accessor :done
3107
+ alias_method :done?, :done
3108
+
3109
+ # The `Status` type defines a logical error model that is suitable for different
3110
+ # programming environments, including REST APIs and RPC APIs. It is used by [
3111
+ # gRPC](https://github.com/grpc). Each `Status` message contains three pieces of
3112
+ # data: error code, error message, and error details. You can find out more
3113
+ # about this error model and how to work with it in the [API Design Guide](https:
3114
+ # //cloud.google.com/apis/design/errors).
3115
+ # Corresponds to the JSON property `error`
3116
+ # @return [Google::Apis::MigrationcenterV1::Status]
3117
+ attr_accessor :error
3118
+
3119
+ # Service-specific metadata associated with the operation. It typically contains
3120
+ # progress information and common metadata such as create time. Some services
3121
+ # might not provide such metadata. Any method that returns a long-running
3122
+ # operation should document the metadata type, if any.
3123
+ # Corresponds to the JSON property `metadata`
3124
+ # @return [Hash<String,Object>]
3125
+ attr_accessor :metadata
3126
+
3127
+ # The server-assigned name, which is only unique within the same service that
3128
+ # originally returns it. If you use the default HTTP mapping, the `name` should
3129
+ # be a resource name ending with `operations/`unique_id``.
3130
+ # Corresponds to the JSON property `name`
3131
+ # @return [String]
3132
+ attr_accessor :name
3133
+
3134
+ # The normal response of the operation in case of success. If the original
3135
+ # method returns no data on success, such as `Delete`, the response is `google.
3136
+ # protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`,
3137
+ # the response should be the resource. For other methods, the response should
3138
+ # have the type `XxxResponse`, where `Xxx` is the original method name. For
3139
+ # example, if the original method name is `TakeSnapshot()`, the inferred
3140
+ # response type is `TakeSnapshotResponse`.
3141
+ # Corresponds to the JSON property `response`
3142
+ # @return [Hash<String,Object>]
3143
+ attr_accessor :response
3144
+
3145
+ def initialize(**args)
3146
+ update!(**args)
3147
+ end
3148
+
3149
+ # Update properties of this object
3150
+ def update!(**args)
3151
+ @done = args[:done] if args.key?(:done)
3152
+ @error = args[:error] if args.key?(:error)
3153
+ @metadata = args[:metadata] if args.key?(:metadata)
3154
+ @name = args[:name] if args.key?(:name)
3155
+ @response = args[:response] if args.key?(:response)
3156
+ end
3157
+ end
3158
+
3159
+ # Represents the metadata of the long-running operation.
3160
+ class OperationMetadata
3161
+ include Google::Apis::Core::Hashable
3162
+
3163
+ # Output only. API version used to start the operation.
3164
+ # Corresponds to the JSON property `apiVersion`
3165
+ # @return [String]
3166
+ attr_accessor :api_version
3167
+
3168
+ # Output only. The time the operation was created.
3169
+ # Corresponds to the JSON property `createTime`
3170
+ # @return [String]
3171
+ attr_accessor :create_time
3172
+
3173
+ # Output only. The time the operation finished running.
3174
+ # Corresponds to the JSON property `endTime`
3175
+ # @return [String]
3176
+ attr_accessor :end_time
3177
+
3178
+ # Output only. Identifies whether the user has requested cancellation of the
3179
+ # operation. Operations that have been cancelled successfully have Operation.
3180
+ # error value with a google.rpc.Status.code of 1, corresponding to `Code.
3181
+ # CANCELLED`.
3182
+ # Corresponds to the JSON property `requestedCancellation`
3183
+ # @return [Boolean]
3184
+ attr_accessor :requested_cancellation
3185
+ alias_method :requested_cancellation?, :requested_cancellation
3186
+
3187
+ # Output only. Human-readable status of the operation, if any.
3188
+ # Corresponds to the JSON property `statusMessage`
3189
+ # @return [String]
3190
+ attr_accessor :status_message
3191
+
3192
+ # Output only. Server-defined resource path for the target of the operation.
3193
+ # Corresponds to the JSON property `target`
3194
+ # @return [String]
3195
+ attr_accessor :target
3196
+
3197
+ # Output only. Name of the verb executed by the operation.
3198
+ # Corresponds to the JSON property `verb`
3199
+ # @return [String]
3200
+ attr_accessor :verb
3201
+
3202
+ def initialize(**args)
3203
+ update!(**args)
3204
+ end
3205
+
3206
+ # Update properties of this object
3207
+ def update!(**args)
3208
+ @api_version = args[:api_version] if args.key?(:api_version)
3209
+ @create_time = args[:create_time] if args.key?(:create_time)
3210
+ @end_time = args[:end_time] if args.key?(:end_time)
3211
+ @requested_cancellation = args[:requested_cancellation] if args.key?(:requested_cancellation)
3212
+ @status_message = args[:status_message] if args.key?(:status_message)
3213
+ @target = args[:target] if args.key?(:target)
3214
+ @verb = args[:verb] if args.key?(:verb)
3215
+ end
3216
+ end
3217
+
3218
+ # Performance data sample.
3219
+ class PerformanceSample
3220
+ include Google::Apis::Core::Hashable
3221
+
3222
+ # CPU usage sample.
3223
+ # Corresponds to the JSON property `cpu`
3224
+ # @return [Google::Apis::MigrationcenterV1::CpuUsageSample]
3225
+ attr_accessor :cpu
3226
+
3227
+ # Disk usage sample. Values are across all disks.
3228
+ # Corresponds to the JSON property `disk`
3229
+ # @return [Google::Apis::MigrationcenterV1::DiskUsageSample]
3230
+ attr_accessor :disk
3231
+
3232
+ # Memory usage sample.
3233
+ # Corresponds to the JSON property `memory`
3234
+ # @return [Google::Apis::MigrationcenterV1::MemoryUsageSample]
3235
+ attr_accessor :memory
3236
+
3237
+ # Network usage sample. Values are across all network interfaces.
3238
+ # Corresponds to the JSON property `network`
3239
+ # @return [Google::Apis::MigrationcenterV1::NetworkUsageSample]
3240
+ attr_accessor :network
3241
+
3242
+ # Time the sample was If omitted, the frame report time will be used.
3243
+ # Corresponds to the JSON property `sampleTime`
3244
+ # @return [String]
3245
+ attr_accessor :sample_time
3246
+
3247
+ def initialize(**args)
3248
+ update!(**args)
3249
+ end
3250
+
3251
+ # Update properties of this object
3252
+ def update!(**args)
3253
+ @cpu = args[:cpu] if args.key?(:cpu)
3254
+ @disk = args[:disk] if args.key?(:disk)
3255
+ @memory = args[:memory] if args.key?(:memory)
3256
+ @network = args[:network] if args.key?(:network)
3257
+ @sample_time = args[:sample_time] if args.key?(:sample_time)
3258
+ end
3259
+ end
3260
+
3261
+ # Platform specific details for Physical Machines.
3262
+ class PhysicalPlatformDetails
3263
+ include Google::Apis::Core::Hashable
3264
+
3265
+ # Free text representation of the machine location. The format of this field
3266
+ # should not be relied on. Different machines in the same location may have
3267
+ # different string values for this field.
3268
+ # Corresponds to the JSON property `location`
3269
+ # @return [String]
3270
+ attr_accessor :location
3271
+
3272
+ def initialize(**args)
3273
+ update!(**args)
3274
+ end
3275
+
3276
+ # Update properties of this object
3277
+ def update!(**args)
3278
+ @location = args[:location] if args.key?(:location)
3279
+ end
3280
+ end
3281
+
3282
+ # Information about the platform.
3283
+ class PlatformDetails
3284
+ include Google::Apis::Core::Hashable
3285
+
3286
+ # AWS EC2 specific details.
3287
+ # Corresponds to the JSON property `awsEc2Details`
3288
+ # @return [Google::Apis::MigrationcenterV1::AwsEc2PlatformDetails]
3289
+ attr_accessor :aws_ec2_details
3290
+
3291
+ # Azure VM specific details.
3292
+ # Corresponds to the JSON property `azureVmDetails`
3293
+ # @return [Google::Apis::MigrationcenterV1::AzureVmPlatformDetails]
3294
+ attr_accessor :azure_vm_details
3295
+
3296
+ # Generic platform details.
3297
+ # Corresponds to the JSON property `genericDetails`
3298
+ # @return [Google::Apis::MigrationcenterV1::GenericPlatformDetails]
3299
+ attr_accessor :generic_details
3300
+
3301
+ # Platform specific details for Physical Machines.
3302
+ # Corresponds to the JSON property `physicalDetails`
3303
+ # @return [Google::Apis::MigrationcenterV1::PhysicalPlatformDetails]
3304
+ attr_accessor :physical_details
3305
+
3306
+ # VMware specific details.
3307
+ # Corresponds to the JSON property `vmwareDetails`
3308
+ # @return [Google::Apis::MigrationcenterV1::VmwarePlatformDetails]
3309
+ attr_accessor :vmware_details
3310
+
3311
+ def initialize(**args)
3312
+ update!(**args)
3313
+ end
3314
+
3315
+ # Update properties of this object
3316
+ def update!(**args)
3317
+ @aws_ec2_details = args[:aws_ec2_details] if args.key?(:aws_ec2_details)
3318
+ @azure_vm_details = args[:azure_vm_details] if args.key?(:azure_vm_details)
3319
+ @generic_details = args[:generic_details] if args.key?(:generic_details)
3320
+ @physical_details = args[:physical_details] if args.key?(:physical_details)
3321
+ @vmware_details = args[:vmware_details] if args.key?(:vmware_details)
3322
+ end
3323
+ end
3324
+
3325
+ # The preferences that apply to all assets in a given context.
3326
+ class PreferenceSet
3327
+ include Google::Apis::Core::Hashable
3328
+
3329
+ # Output only. The timestamp when the preference set was created.
3330
+ # Corresponds to the JSON property `createTime`
3331
+ # @return [String]
3332
+ attr_accessor :create_time
3333
+
3334
+ # A description of the preference set.
3335
+ # Corresponds to the JSON property `description`
3336
+ # @return [String]
3337
+ attr_accessor :description
3338
+
3339
+ # User-friendly display name. Maximum length is 63 characters.
3340
+ # Corresponds to the JSON property `displayName`
3341
+ # @return [String]
3342
+ attr_accessor :display_name
3343
+
3344
+ # Output only. Name of the preference set.
3345
+ # Corresponds to the JSON property `name`
3346
+ # @return [String]
3347
+ attr_accessor :name
3348
+
3349
+ # Output only. The timestamp when the preference set was last updated.
3350
+ # Corresponds to the JSON property `updateTime`
3351
+ # @return [String]
3352
+ attr_accessor :update_time
3353
+
3354
+ # VirtualMachinePreferences enables you to create sets of assumptions, for
3355
+ # example, a geographical location and pricing track, for your migrated virtual
3356
+ # machines. The set of preferences influence recommendations for migrating
3357
+ # virtual machine assets.
3358
+ # Corresponds to the JSON property `virtualMachinePreferences`
3359
+ # @return [Google::Apis::MigrationcenterV1::VirtualMachinePreferences]
3360
+ attr_accessor :virtual_machine_preferences
3361
+
3362
+ def initialize(**args)
3363
+ update!(**args)
3364
+ end
3365
+
3366
+ # Update properties of this object
3367
+ def update!(**args)
3368
+ @create_time = args[:create_time] if args.key?(:create_time)
3369
+ @description = args[:description] if args.key?(:description)
3370
+ @display_name = args[:display_name] if args.key?(:display_name)
3371
+ @name = args[:name] if args.key?(:name)
3372
+ @update_time = args[:update_time] if args.key?(:update_time)
3373
+ @virtual_machine_preferences = args[:virtual_machine_preferences] if args.key?(:virtual_machine_preferences)
3374
+ end
3375
+ end
3376
+
3377
+ # The user preferences relating to target regions.
3378
+ class RegionPreferences
3379
+ include Google::Apis::Core::Hashable
3380
+
3381
+ # A list of preferred regions, ordered by the most preferred region first. Set
3382
+ # only valid Google Cloud region names. See https://cloud.google.com/compute/
3383
+ # docs/regions-zones for available regions.
3384
+ # Corresponds to the JSON property `preferredRegions`
3385
+ # @return [Array<String>]
3386
+ attr_accessor :preferred_regions
3387
+
3388
+ def initialize(**args)
3389
+ update!(**args)
3390
+ end
3391
+
3392
+ # Update properties of this object
3393
+ def update!(**args)
3394
+ @preferred_regions = args[:preferred_regions] if args.key?(:preferred_regions)
3395
+ end
3396
+ end
3397
+
3398
+ # A request to remove assets from a group.
3399
+ class RemoveAssetsFromGroupRequest
3400
+ include Google::Apis::Core::Hashable
3401
+
3402
+ # Optional. When this value is set to `false` and one of the given assets is not
3403
+ # an existing member of the group, the operation fails with a `Not Found` error.
3404
+ # When set to `true` this situation is silently ignored by the server. Default
3405
+ # value is `false`.
3406
+ # Corresponds to the JSON property `allowMissing`
3407
+ # @return [Boolean]
3408
+ attr_accessor :allow_missing
3409
+ alias_method :allow_missing?, :allow_missing
3410
+
3411
+ # Lists the asset IDs of all assets.
3412
+ # Corresponds to the JSON property `assets`
3413
+ # @return [Google::Apis::MigrationcenterV1::AssetList]
3414
+ attr_accessor :assets
3415
+
3416
+ # Optional. An optional request ID to identify requests. Specify a unique
3417
+ # request ID so that if you must retry your request, the server will know to
3418
+ # ignore the request if it has already been completed. The server will guarantee
3419
+ # that for at least 60 minutes after the first request. For example, consider a
3420
+ # situation where you make an initial request and the request times out. If you
3421
+ # make the request again with the same request ID, the server can check if
3422
+ # original operation with the same request ID was received, and if so, will
3423
+ # ignore the second request. This prevents clients from accidentally creating
3424
+ # duplicate commitments. The request ID must be a valid UUID with the exception
3425
+ # that zero UUID is not supported (00000000-0000-0000-0000-000000000000).
3426
+ # Corresponds to the JSON property `requestId`
3427
+ # @return [String]
3428
+ attr_accessor :request_id
3429
+
3430
+ def initialize(**args)
3431
+ update!(**args)
3432
+ end
3433
+
3434
+ # Update properties of this object
3435
+ def update!(**args)
3436
+ @allow_missing = args[:allow_missing] if args.key?(:allow_missing)
3437
+ @assets = args[:assets] if args.key?(:assets)
3438
+ @request_id = args[:request_id] if args.key?(:request_id)
3439
+ end
3440
+ end
3441
+
3442
+ # Report represents a point-in-time rendering of the ReportConfig results.
3443
+ class Report
3444
+ include Google::Apis::Core::Hashable
3445
+
3446
+ # Output only. Creation timestamp.
3447
+ # Corresponds to the JSON property `createTime`
3448
+ # @return [String]
3449
+ attr_accessor :create_time
3450
+
3451
+ # Free-text description.
3452
+ # Corresponds to the JSON property `description`
3453
+ # @return [String]
3454
+ attr_accessor :description
3455
+
3456
+ # User-friendly display name. Maximum length is 63 characters.
3457
+ # Corresponds to the JSON property `displayName`
3458
+ # @return [String]
3459
+ attr_accessor :display_name
3460
+
3461
+ # Output only. Name of resource.
3462
+ # Corresponds to the JSON property `name`
3463
+ # @return [String]
3464
+ attr_accessor :name
3465
+
3466
+ # Report creation state.
3467
+ # Corresponds to the JSON property `state`
3468
+ # @return [String]
3469
+ attr_accessor :state
3470
+
3471
+ # Describes the Summary view of a Report, which contains aggregated values for
3472
+ # all the groups and preference sets included in this Report.
3473
+ # Corresponds to the JSON property `summary`
3474
+ # @return [Google::Apis::MigrationcenterV1::ReportSummary]
3475
+ attr_accessor :summary
3476
+
3477
+ # Report type.
3478
+ # Corresponds to the JSON property `type`
3479
+ # @return [String]
3480
+ attr_accessor :type
3481
+
3482
+ # Output only. Last update timestamp.
3483
+ # Corresponds to the JSON property `updateTime`
3484
+ # @return [String]
3485
+ attr_accessor :update_time
3486
+
3487
+ def initialize(**args)
3488
+ update!(**args)
3489
+ end
3490
+
3491
+ # Update properties of this object
3492
+ def update!(**args)
3493
+ @create_time = args[:create_time] if args.key?(:create_time)
3494
+ @description = args[:description] if args.key?(:description)
3495
+ @display_name = args[:display_name] if args.key?(:display_name)
3496
+ @name = args[:name] if args.key?(:name)
3497
+ @state = args[:state] if args.key?(:state)
3498
+ @summary = args[:summary] if args.key?(:summary)
3499
+ @type = args[:type] if args.key?(:type)
3500
+ @update_time = args[:update_time] if args.key?(:update_time)
3501
+ end
3502
+ end
3503
+
3504
+ # A response to a call to `ReportAssetFrame`.
3505
+ class ReportAssetFramesResponse
3506
+ include Google::Apis::Core::Hashable
3507
+
3508
+ def initialize(**args)
3509
+ update!(**args)
3510
+ end
3511
+
3512
+ # Update properties of this object
3513
+ def update!(**args)
3514
+ end
3515
+ end
3516
+
3517
+ # The groups and associated preference sets on which we can generate reports.
3518
+ class ReportConfig
3519
+ include Google::Apis::Core::Hashable
3520
+
3521
+ # Output only. The timestamp when the resource was created.
3522
+ # Corresponds to the JSON property `createTime`
3523
+ # @return [String]
3524
+ attr_accessor :create_time
3525
+
3526
+ # Free-text description.
3527
+ # Corresponds to the JSON property `description`
3528
+ # @return [String]
3529
+ attr_accessor :description
3530
+
3531
+ # User-friendly display name. Maximum length is 63 characters.
3532
+ # Corresponds to the JSON property `displayName`
3533
+ # @return [String]
3534
+ attr_accessor :display_name
3535
+
3536
+ # Required. Collection of combinations of groups and preference sets.
3537
+ # Corresponds to the JSON property `groupPreferencesetAssignments`
3538
+ # @return [Array<Google::Apis::MigrationcenterV1::ReportConfigGroupPreferenceSetAssignment>]
3539
+ attr_accessor :group_preferenceset_assignments
3540
+
3541
+ # Output only. Name of resource.
3542
+ # Corresponds to the JSON property `name`
3543
+ # @return [String]
3544
+ attr_accessor :name
3545
+
3546
+ # Output only. The timestamp when the resource was last updated.
3547
+ # Corresponds to the JSON property `updateTime`
3548
+ # @return [String]
3549
+ attr_accessor :update_time
3550
+
3551
+ def initialize(**args)
3552
+ update!(**args)
3553
+ end
3554
+
3555
+ # Update properties of this object
3556
+ def update!(**args)
3557
+ @create_time = args[:create_time] if args.key?(:create_time)
3558
+ @description = args[:description] if args.key?(:description)
3559
+ @display_name = args[:display_name] if args.key?(:display_name)
3560
+ @group_preferenceset_assignments = args[:group_preferenceset_assignments] if args.key?(:group_preferenceset_assignments)
3561
+ @name = args[:name] if args.key?(:name)
3562
+ @update_time = args[:update_time] if args.key?(:update_time)
3563
+ end
3564
+ end
3565
+
3566
+ # Represents a combination of a group with a preference set.
3567
+ class ReportConfigGroupPreferenceSetAssignment
3568
+ include Google::Apis::Core::Hashable
3569
+
3570
+ # Required. Name of the group.
3571
+ # Corresponds to the JSON property `group`
3572
+ # @return [String]
3573
+ attr_accessor :group
3574
+
3575
+ # Required. Name of the Preference Set.
3576
+ # Corresponds to the JSON property `preferenceSet`
3577
+ # @return [String]
3578
+ attr_accessor :preference_set
3579
+
3580
+ def initialize(**args)
3581
+ update!(**args)
3582
+ end
3583
+
3584
+ # Update properties of this object
3585
+ def update!(**args)
3586
+ @group = args[:group] if args.key?(:group)
3587
+ @preference_set = args[:preference_set] if args.key?(:preference_set)
3588
+ end
3589
+ end
3590
+
3591
+ # Describes the Summary view of a Report, which contains aggregated values for
3592
+ # all the groups and preference sets included in this Report.
3593
+ class ReportSummary
3594
+ include Google::Apis::Core::Hashable
3595
+
3596
+ # Aggregate statistics for a collection of assets.
3597
+ # Corresponds to the JSON property `allAssetsStats`
3598
+ # @return [Google::Apis::MigrationcenterV1::ReportSummaryAssetAggregateStats]
3599
+ attr_accessor :all_assets_stats
3600
+
3601
+ # Findings for each Group included in this report.
3602
+ # Corresponds to the JSON property `groupFindings`
3603
+ # @return [Array<Google::Apis::MigrationcenterV1::ReportSummaryGroupFinding>]
3604
+ attr_accessor :group_findings
3605
+
3606
+ def initialize(**args)
3607
+ update!(**args)
3608
+ end
3609
+
3610
+ # Update properties of this object
3611
+ def update!(**args)
3612
+ @all_assets_stats = args[:all_assets_stats] if args.key?(:all_assets_stats)
3613
+ @group_findings = args[:group_findings] if args.key?(:group_findings)
3614
+ end
3615
+ end
3616
+
3617
+ # Aggregate statistics for a collection of assets.
3618
+ class ReportSummaryAssetAggregateStats
3619
+ include Google::Apis::Core::Hashable
3620
+
3621
+ # A Histogram Chart shows a distribution of values into buckets, showing a count
3622
+ # of values which fall into a bucket.
3623
+ # Corresponds to the JSON property `coreCountHistogram`
3624
+ # @return [Google::Apis::MigrationcenterV1::ReportSummaryHistogramChartData]
3625
+ attr_accessor :core_count_histogram
3626
+
3627
+ # A Histogram Chart shows a distribution of values into buckets, showing a count
3628
+ # of values which fall into a bucket.
3629
+ # Corresponds to the JSON property `memoryBytesHistogram`
3630
+ # @return [Google::Apis::MigrationcenterV1::ReportSummaryHistogramChartData]
3631
+ attr_accessor :memory_bytes_histogram
3632
+
3633
+ # Utilization Chart is a specific type of visualization which displays a metric
3634
+ # classified into "Used" and "Free" buckets.
3635
+ # Corresponds to the JSON property `memoryUtilizationChart`
3636
+ # @return [Google::Apis::MigrationcenterV1::ReportSummaryUtilizationChartData]
3637
+ attr_accessor :memory_utilization_chart
3638
+
3639
+ # Describes a collection of data points rendered as a Chart.
3640
+ # Corresponds to the JSON property `operatingSystem`
3641
+ # @return [Google::Apis::MigrationcenterV1::ReportSummaryChartData]
3642
+ attr_accessor :operating_system
3643
+
3644
+ # A Histogram Chart shows a distribution of values into buckets, showing a count
3645
+ # of values which fall into a bucket.
3646
+ # Corresponds to the JSON property `storageBytesHistogram`
3647
+ # @return [Google::Apis::MigrationcenterV1::ReportSummaryHistogramChartData]
3648
+ attr_accessor :storage_bytes_histogram
3649
+
3650
+ # Utilization Chart is a specific type of visualization which displays a metric
3651
+ # classified into "Used" and "Free" buckets.
3652
+ # Corresponds to the JSON property `storageUtilizationChart`
3653
+ # @return [Google::Apis::MigrationcenterV1::ReportSummaryUtilizationChartData]
3654
+ attr_accessor :storage_utilization_chart
3655
+
3656
+ # Count of the number of unique assets in this collection.
3657
+ # Corresponds to the JSON property `totalAssets`
3658
+ # @return [Fixnum]
3659
+ attr_accessor :total_assets
3660
+
3661
+ # Sum of the CPU core count of all the assets in this collection.
3662
+ # Corresponds to the JSON property `totalCores`
3663
+ # @return [Fixnum]
3664
+ attr_accessor :total_cores
3665
+
3666
+ # Sum of the memory in bytes of all the assets in this collection.
3667
+ # Corresponds to the JSON property `totalMemoryBytes`
3668
+ # @return [Fixnum]
3669
+ attr_accessor :total_memory_bytes
3670
+
3671
+ # Sum of persistent storage in bytes of all the assets in this collection.
3672
+ # Corresponds to the JSON property `totalStorageBytes`
3673
+ # @return [Fixnum]
3674
+ attr_accessor :total_storage_bytes
3675
+
3676
+ def initialize(**args)
3677
+ update!(**args)
3678
+ end
3679
+
3680
+ # Update properties of this object
3681
+ def update!(**args)
3682
+ @core_count_histogram = args[:core_count_histogram] if args.key?(:core_count_histogram)
3683
+ @memory_bytes_histogram = args[:memory_bytes_histogram] if args.key?(:memory_bytes_histogram)
3684
+ @memory_utilization_chart = args[:memory_utilization_chart] if args.key?(:memory_utilization_chart)
3685
+ @operating_system = args[:operating_system] if args.key?(:operating_system)
3686
+ @storage_bytes_histogram = args[:storage_bytes_histogram] if args.key?(:storage_bytes_histogram)
3687
+ @storage_utilization_chart = args[:storage_utilization_chart] if args.key?(:storage_utilization_chart)
3688
+ @total_assets = args[:total_assets] if args.key?(:total_assets)
3689
+ @total_cores = args[:total_cores] if args.key?(:total_cores)
3690
+ @total_memory_bytes = args[:total_memory_bytes] if args.key?(:total_memory_bytes)
3691
+ @total_storage_bytes = args[:total_storage_bytes] if args.key?(:total_storage_bytes)
3692
+ end
3693
+ end
3694
+
3695
+ # Describes a collection of data points rendered as a Chart.
3696
+ class ReportSummaryChartData
3697
+ include Google::Apis::Core::Hashable
3698
+
3699
+ # Each data point in the chart is represented as a name-value pair with the name
3700
+ # being the x-axis label, and the value being the y-axis value.
3701
+ # Corresponds to the JSON property `dataPoints`
3702
+ # @return [Array<Google::Apis::MigrationcenterV1::ReportSummaryChartDataDataPoint>]
3703
+ attr_accessor :data_points
3704
+
3705
+ def initialize(**args)
3706
+ update!(**args)
3707
+ end
3708
+
3709
+ # Update properties of this object
3710
+ def update!(**args)
3711
+ @data_points = args[:data_points] if args.key?(:data_points)
3712
+ end
3713
+ end
3714
+
3715
+ # Describes a single data point in the Chart.
3716
+ class ReportSummaryChartDataDataPoint
3717
+ include Google::Apis::Core::Hashable
3718
+
3719
+ # The X-axis label for this data point.
3720
+ # Corresponds to the JSON property `label`
3721
+ # @return [String]
3722
+ attr_accessor :label
3723
+
3724
+ # The Y-axis value for this data point.
3725
+ # Corresponds to the JSON property `value`
3726
+ # @return [Float]
3727
+ attr_accessor :value
3728
+
3729
+ def initialize(**args)
3730
+ update!(**args)
3731
+ end
3732
+
3733
+ # Update properties of this object
3734
+ def update!(**args)
3735
+ @label = args[:label] if args.key?(:label)
3736
+ @value = args[:value] if args.key?(:value)
3737
+ end
3738
+ end
3739
+
3740
+ # A set of findings that applies to assets destined for Compute Engine.
3741
+ class ReportSummaryComputeEngineFinding
3742
+ include Google::Apis::Core::Hashable
3743
+
3744
+ # Count of assets which were allocated.
3745
+ # Corresponds to the JSON property `allocatedAssetCount`
3746
+ # @return [Fixnum]
3747
+ attr_accessor :allocated_asset_count
3748
+
3749
+ # Set of disk types allocated to assets.
3750
+ # Corresponds to the JSON property `allocatedDiskTypes`
3751
+ # @return [Array<String>]
3752
+ attr_accessor :allocated_disk_types
3753
+
3754
+ # Set of regions in which the assets were allocated.
3755
+ # Corresponds to the JSON property `allocatedRegions`
3756
+ # @return [Array<String>]
3757
+ attr_accessor :allocated_regions
3758
+
3759
+ # Distribution of assets based on the Machine Series.
3760
+ # Corresponds to the JSON property `machineSeriesAllocations`
3761
+ # @return [Array<Google::Apis::MigrationcenterV1::ReportSummaryMachineSeriesAllocation>]
3762
+ attr_accessor :machine_series_allocations
3763
+
3764
+ def initialize(**args)
3765
+ update!(**args)
3766
+ end
3767
+
3768
+ # Update properties of this object
3769
+ def update!(**args)
3770
+ @allocated_asset_count = args[:allocated_asset_count] if args.key?(:allocated_asset_count)
3771
+ @allocated_disk_types = args[:allocated_disk_types] if args.key?(:allocated_disk_types)
3772
+ @allocated_regions = args[:allocated_regions] if args.key?(:allocated_regions)
3773
+ @machine_series_allocations = args[:machine_series_allocations] if args.key?(:machine_series_allocations)
3774
+ end
3775
+ end
3776
+
3777
+ # Summary Findings for a specific Group.
3778
+ class ReportSummaryGroupFinding
3779
+ include Google::Apis::Core::Hashable
3780
+
3781
+ # Aggregate statistics for a collection of assets.
3782
+ # Corresponds to the JSON property `assetAggregateStats`
3783
+ # @return [Google::Apis::MigrationcenterV1::ReportSummaryAssetAggregateStats]
3784
+ attr_accessor :asset_aggregate_stats
3785
+
3786
+ # Description for the Group.
3787
+ # Corresponds to the JSON property `description`
3788
+ # @return [String]
3789
+ attr_accessor :description
3790
+
3791
+ # Display Name for the Group.
3792
+ # Corresponds to the JSON property `displayName`
3793
+ # @return [String]
3794
+ attr_accessor :display_name
3795
+
3796
+ # Count of the number of assets in this group which are also included in another
3797
+ # group within the same report.
3798
+ # Corresponds to the JSON property `overlappingAssetCount`
3799
+ # @return [Fixnum]
3800
+ attr_accessor :overlapping_asset_count
3801
+
3802
+ # Findings for each of the PreferenceSets for this group.
3803
+ # Corresponds to the JSON property `preferenceSetFindings`
3804
+ # @return [Array<Google::Apis::MigrationcenterV1::ReportSummaryGroupPreferenceSetFinding>]
3805
+ attr_accessor :preference_set_findings
3806
+
3807
+ def initialize(**args)
3808
+ update!(**args)
3809
+ end
3810
+
3811
+ # Update properties of this object
3812
+ def update!(**args)
3813
+ @asset_aggregate_stats = args[:asset_aggregate_stats] if args.key?(:asset_aggregate_stats)
3814
+ @description = args[:description] if args.key?(:description)
3815
+ @display_name = args[:display_name] if args.key?(:display_name)
3816
+ @overlapping_asset_count = args[:overlapping_asset_count] if args.key?(:overlapping_asset_count)
3817
+ @preference_set_findings = args[:preference_set_findings] if args.key?(:preference_set_findings)
3818
+ end
3819
+ end
3820
+
3821
+ # Summary Findings for a specific Group/PreferenceSet combination.
3822
+ class ReportSummaryGroupPreferenceSetFinding
3823
+ include Google::Apis::Core::Hashable
3824
+
3825
+ # A set of findings that applies to assets destined for Compute Engine.
3826
+ # Corresponds to the JSON property `computeEngineFinding`
3827
+ # @return [Google::Apis::MigrationcenterV1::ReportSummaryComputeEngineFinding]
3828
+ attr_accessor :compute_engine_finding
3829
+
3830
+ # Description for the Preference Set.
3831
+ # Corresponds to the JSON property `description`
3832
+ # @return [String]
3833
+ attr_accessor :description
3834
+
3835
+ # Display Name of the Preference Set
3836
+ # Corresponds to the JSON property `displayName`
3837
+ # @return [String]
3838
+ attr_accessor :display_name
3839
+
3840
+ # VirtualMachinePreferences enables you to create sets of assumptions, for
3841
+ # example, a geographical location and pricing track, for your migrated virtual
3842
+ # machines. The set of preferences influence recommendations for migrating
3843
+ # virtual machine assets.
3844
+ # Corresponds to the JSON property `machinePreferences`
3845
+ # @return [Google::Apis::MigrationcenterV1::VirtualMachinePreferences]
3846
+ attr_accessor :machine_preferences
3847
+
3848
+ # Represents an amount of money with its currency type.
3849
+ # Corresponds to the JSON property `monthlyCostCompute`
3850
+ # @return [Google::Apis::MigrationcenterV1::Money]
3851
+ attr_accessor :monthly_cost_compute
3852
+
3853
+ # Represents an amount of money with its currency type.
3854
+ # Corresponds to the JSON property `monthlyCostNetworkEgress`
3855
+ # @return [Google::Apis::MigrationcenterV1::Money]
3856
+ attr_accessor :monthly_cost_network_egress
3857
+
3858
+ # Represents an amount of money with its currency type.
3859
+ # Corresponds to the JSON property `monthlyCostOsLicense`
3860
+ # @return [Google::Apis::MigrationcenterV1::Money]
3861
+ attr_accessor :monthly_cost_os_license
3862
+
3863
+ # Represents an amount of money with its currency type.
3864
+ # Corresponds to the JSON property `monthlyCostOther`
3865
+ # @return [Google::Apis::MigrationcenterV1::Money]
3866
+ attr_accessor :monthly_cost_other
3867
+
3868
+ # Represents an amount of money with its currency type.
3869
+ # Corresponds to the JSON property `monthlyCostStorage`
3870
+ # @return [Google::Apis::MigrationcenterV1::Money]
3871
+ attr_accessor :monthly_cost_storage
3872
+
3873
+ # Represents an amount of money with its currency type.
3874
+ # Corresponds to the JSON property `monthlyCostTotal`
3875
+ # @return [Google::Apis::MigrationcenterV1::Money]
3876
+ attr_accessor :monthly_cost_total
3877
+
3878
+ # A set of findings that applies to assets destined for Sole-Tenant nodes.
3879
+ # Corresponds to the JSON property `soleTenantFinding`
3880
+ # @return [Google::Apis::MigrationcenterV1::ReportSummarySoleTenantFinding]
3881
+ attr_accessor :sole_tenant_finding
3882
+
3883
+ # A set of findings that applies to assets destined for VMWare Engine.
3884
+ # Corresponds to the JSON property `vmwareEngineFinding`
3885
+ # @return [Google::Apis::MigrationcenterV1::ReportSummaryVmwareEngineFinding]
3886
+ attr_accessor :vmware_engine_finding
3887
+
3888
+ def initialize(**args)
3889
+ update!(**args)
3890
+ end
3891
+
3892
+ # Update properties of this object
3893
+ def update!(**args)
3894
+ @compute_engine_finding = args[:compute_engine_finding] if args.key?(:compute_engine_finding)
3895
+ @description = args[:description] if args.key?(:description)
3896
+ @display_name = args[:display_name] if args.key?(:display_name)
3897
+ @machine_preferences = args[:machine_preferences] if args.key?(:machine_preferences)
3898
+ @monthly_cost_compute = args[:monthly_cost_compute] if args.key?(:monthly_cost_compute)
3899
+ @monthly_cost_network_egress = args[:monthly_cost_network_egress] if args.key?(:monthly_cost_network_egress)
3900
+ @monthly_cost_os_license = args[:monthly_cost_os_license] if args.key?(:monthly_cost_os_license)
3901
+ @monthly_cost_other = args[:monthly_cost_other] if args.key?(:monthly_cost_other)
3902
+ @monthly_cost_storage = args[:monthly_cost_storage] if args.key?(:monthly_cost_storage)
3903
+ @monthly_cost_total = args[:monthly_cost_total] if args.key?(:monthly_cost_total)
3904
+ @sole_tenant_finding = args[:sole_tenant_finding] if args.key?(:sole_tenant_finding)
3905
+ @vmware_engine_finding = args[:vmware_engine_finding] if args.key?(:vmware_engine_finding)
3906
+ end
3907
+ end
3908
+
3909
+ # A Histogram Chart shows a distribution of values into buckets, showing a count
3910
+ # of values which fall into a bucket.
3911
+ class ReportSummaryHistogramChartData
3912
+ include Google::Apis::Core::Hashable
3913
+
3914
+ # Buckets in the histogram. There will be `n+1` buckets matching `n` lower
3915
+ # bounds in the request. The first bucket will be from -infinity to the first
3916
+ # bound. Subsequent buckets will be between one bound and the next. The final
3917
+ # bucket will be from the final bound to infinity.
3918
+ # Corresponds to the JSON property `buckets`
3919
+ # @return [Array<Google::Apis::MigrationcenterV1::ReportSummaryHistogramChartDataBucket>]
3920
+ attr_accessor :buckets
3921
+
3922
+ def initialize(**args)
3923
+ update!(**args)
3924
+ end
3925
+
3926
+ # Update properties of this object
3927
+ def update!(**args)
3928
+ @buckets = args[:buckets] if args.key?(:buckets)
3929
+ end
3930
+ end
3931
+
3932
+ # A histogram bucket with a lower and upper bound, and a count of items with a
3933
+ # field value between those bounds. The lower bound is inclusive and the upper
3934
+ # bound is exclusive. Lower bound may be -infinity and upper bound may be
3935
+ # infinity.
3936
+ class ReportSummaryHistogramChartDataBucket
3937
+ include Google::Apis::Core::Hashable
3938
+
3939
+ # Count of items in the bucket.
3940
+ # Corresponds to the JSON property `count`
3941
+ # @return [Fixnum]
3942
+ attr_accessor :count
3943
+
3944
+ # Lower bound - inclusive.
3945
+ # Corresponds to the JSON property `lowerBound`
3946
+ # @return [Fixnum]
3947
+ attr_accessor :lower_bound
3948
+
3949
+ # Upper bound - exclusive.
3950
+ # Corresponds to the JSON property `upperBound`
3951
+ # @return [Fixnum]
3952
+ attr_accessor :upper_bound
3953
+
3954
+ def initialize(**args)
3955
+ update!(**args)
3956
+ end
3957
+
3958
+ # Update properties of this object
3959
+ def update!(**args)
3960
+ @count = args[:count] if args.key?(:count)
3961
+ @lower_bound = args[:lower_bound] if args.key?(:lower_bound)
3962
+ @upper_bound = args[:upper_bound] if args.key?(:upper_bound)
3963
+ end
3964
+ end
3965
+
3966
+ # Represents a data point tracking the count of assets allocated for a specific
3967
+ # Machine Series.
3968
+ class ReportSummaryMachineSeriesAllocation
3969
+ include Google::Apis::Core::Hashable
3970
+
3971
+ # Count of assets allocated to this machine series.
3972
+ # Corresponds to the JSON property `allocatedAssetCount`
3973
+ # @return [Fixnum]
3974
+ attr_accessor :allocated_asset_count
3975
+
3976
+ # A Compute Engine machine series.
3977
+ # Corresponds to the JSON property `machineSeries`
3978
+ # @return [Google::Apis::MigrationcenterV1::MachineSeries]
3979
+ attr_accessor :machine_series
3980
+
3981
+ def initialize(**args)
3982
+ update!(**args)
3983
+ end
3984
+
3985
+ # Update properties of this object
3986
+ def update!(**args)
3987
+ @allocated_asset_count = args[:allocated_asset_count] if args.key?(:allocated_asset_count)
3988
+ @machine_series = args[:machine_series] if args.key?(:machine_series)
3989
+ end
3990
+ end
3991
+
3992
+ # A set of findings that applies to assets destined for Sole-Tenant nodes.
3993
+ class ReportSummarySoleTenantFinding
3994
+ include Google::Apis::Core::Hashable
3995
+
3996
+ # Count of assets which are allocated
3997
+ # Corresponds to the JSON property `allocatedAssetCount`
3998
+ # @return [Fixnum]
3999
+ attr_accessor :allocated_asset_count
4000
+
4001
+ # Set of regions in which the assets are allocated
4002
+ # Corresponds to the JSON property `allocatedRegions`
4003
+ # @return [Array<String>]
4004
+ attr_accessor :allocated_regions
4005
+
4006
+ # Set of per-nodetype allocation records
4007
+ # Corresponds to the JSON property `nodeAllocations`
4008
+ # @return [Array<Google::Apis::MigrationcenterV1::ReportSummarySoleTenantNodeAllocation>]
4009
+ attr_accessor :node_allocations
4010
+
4011
+ def initialize(**args)
4012
+ update!(**args)
4013
+ end
4014
+
4015
+ # Update properties of this object
4016
+ def update!(**args)
4017
+ @allocated_asset_count = args[:allocated_asset_count] if args.key?(:allocated_asset_count)
4018
+ @allocated_regions = args[:allocated_regions] if args.key?(:allocated_regions)
4019
+ @node_allocations = args[:node_allocations] if args.key?(:node_allocations)
4020
+ end
4021
+ end
4022
+
4023
+ # Represents the assets allocated to a specific Sole-Tenant node type.
4024
+ class ReportSummarySoleTenantNodeAllocation
4025
+ include Google::Apis::Core::Hashable
4026
+
4027
+ # Count of assets allocated to these nodes
4028
+ # Corresponds to the JSON property `allocatedAssetCount`
4029
+ # @return [Fixnum]
4030
+ attr_accessor :allocated_asset_count
4031
+
4032
+ # A Sole Tenant node type.
4033
+ # Corresponds to the JSON property `node`
4034
+ # @return [Google::Apis::MigrationcenterV1::SoleTenantNodeType]
4035
+ attr_accessor :node
4036
+
4037
+ # Count of this node type to be provisioned
4038
+ # Corresponds to the JSON property `nodeCount`
4039
+ # @return [Fixnum]
4040
+ attr_accessor :node_count
4041
+
4042
+ def initialize(**args)
4043
+ update!(**args)
4044
+ end
4045
+
4046
+ # Update properties of this object
4047
+ def update!(**args)
4048
+ @allocated_asset_count = args[:allocated_asset_count] if args.key?(:allocated_asset_count)
4049
+ @node = args[:node] if args.key?(:node)
4050
+ @node_count = args[:node_count] if args.key?(:node_count)
4051
+ end
4052
+ end
4053
+
4054
+ # Utilization Chart is a specific type of visualization which displays a metric
4055
+ # classified into "Used" and "Free" buckets.
4056
+ class ReportSummaryUtilizationChartData
4057
+ include Google::Apis::Core::Hashable
4058
+
4059
+ # Aggregate value which falls into the "Free" bucket.
4060
+ # Corresponds to the JSON property `free`
4061
+ # @return [Fixnum]
4062
+ attr_accessor :free
4063
+
4064
+ # Aggregate value which falls into the "Used" bucket.
4065
+ # Corresponds to the JSON property `used`
4066
+ # @return [Fixnum]
4067
+ attr_accessor :used
4068
+
4069
+ def initialize(**args)
4070
+ update!(**args)
4071
+ end
4072
+
4073
+ # Update properties of this object
4074
+ def update!(**args)
4075
+ @free = args[:free] if args.key?(:free)
4076
+ @used = args[:used] if args.key?(:used)
4077
+ end
4078
+ end
4079
+
4080
+ # A set of findings that applies to assets destined for VMWare Engine.
4081
+ class ReportSummaryVmwareEngineFinding
4082
+ include Google::Apis::Core::Hashable
4083
+
4084
+ # Count of assets which are allocated
4085
+ # Corresponds to the JSON property `allocatedAssetCount`
4086
+ # @return [Fixnum]
4087
+ attr_accessor :allocated_asset_count
4088
+
4089
+ # Set of regions in which the assets were allocated
4090
+ # Corresponds to the JSON property `allocatedRegions`
4091
+ # @return [Array<String>]
4092
+ attr_accessor :allocated_regions
4093
+
4094
+ # Set of per-nodetype allocation records
4095
+ # Corresponds to the JSON property `nodeAllocations`
4096
+ # @return [Array<Google::Apis::MigrationcenterV1::ReportSummaryVmwareNodeAllocation>]
4097
+ attr_accessor :node_allocations
4098
+
4099
+ def initialize(**args)
4100
+ update!(**args)
4101
+ end
4102
+
4103
+ # Update properties of this object
4104
+ def update!(**args)
4105
+ @allocated_asset_count = args[:allocated_asset_count] if args.key?(:allocated_asset_count)
4106
+ @allocated_regions = args[:allocated_regions] if args.key?(:allocated_regions)
4107
+ @node_allocations = args[:node_allocations] if args.key?(:node_allocations)
4108
+ end
4109
+ end
4110
+
4111
+ # A VMWare Engine Node
4112
+ class ReportSummaryVmwareNode
4113
+ include Google::Apis::Core::Hashable
4114
+
4115
+ # Code to identify VMware Engine node series, e.g. "ve1-standard-72". Based on
4116
+ # the displayName of cloud.google.com/vmware-engine/docs/reference/rest/v1/
4117
+ # projects.locations.nodeTypes
4118
+ # Corresponds to the JSON property `code`
4119
+ # @return [String]
4120
+ attr_accessor :code
4121
+
4122
+ def initialize(**args)
4123
+ update!(**args)
4124
+ end
4125
+
4126
+ # Update properties of this object
4127
+ def update!(**args)
4128
+ @code = args[:code] if args.key?(:code)
4129
+ end
4130
+ end
4131
+
4132
+ # Represents assets allocated to a specific VMWare Node type.
4133
+ class ReportSummaryVmwareNodeAllocation
4134
+ include Google::Apis::Core::Hashable
4135
+
4136
+ # Count of assets allocated to these nodes
4137
+ # Corresponds to the JSON property `allocatedAssetCount`
4138
+ # @return [Fixnum]
4139
+ attr_accessor :allocated_asset_count
4140
+
4141
+ # Count of this node type to be provisioned
4142
+ # Corresponds to the JSON property `nodeCount`
4143
+ # @return [Fixnum]
4144
+ attr_accessor :node_count
4145
+
4146
+ # A VMWare Engine Node
4147
+ # Corresponds to the JSON property `vmwareNode`
4148
+ # @return [Google::Apis::MigrationcenterV1::ReportSummaryVmwareNode]
4149
+ attr_accessor :vmware_node
4150
+
4151
+ def initialize(**args)
4152
+ update!(**args)
4153
+ end
4154
+
4155
+ # Update properties of this object
4156
+ def update!(**args)
4157
+ @allocated_asset_count = args[:allocated_asset_count] if args.key?(:allocated_asset_count)
4158
+ @node_count = args[:node_count] if args.key?(:node_count)
4159
+ @vmware_node = args[:vmware_node] if args.key?(:vmware_node)
4160
+ end
4161
+ end
4162
+
4163
+ # A request to run an import job.
4164
+ class RunImportJobRequest
4165
+ include Google::Apis::Core::Hashable
4166
+
4167
+ # Optional. An optional request ID to identify requests. Specify a unique
4168
+ # request ID so that if you must retry your request, the server will know to
4169
+ # ignore the request if it has already been completed. The server will guarantee
4170
+ # that for at least 60 minutes after the first request. For example, consider a
4171
+ # situation where you make an initial request and the request times out. If you
4172
+ # make the request again with the same request ID, the server can check if
4173
+ # original operation with the same request ID was received, and if so, will
4174
+ # ignore the second request. This prevents clients from accidentally creating
4175
+ # duplicate commitments. The request ID must be a valid UUID with the exception
4176
+ # that zero UUID is not supported (00000000-0000-0000-0000-000000000000).
4177
+ # Corresponds to the JSON property `requestId`
4178
+ # @return [String]
4179
+ attr_accessor :request_id
4180
+
4181
+ def initialize(**args)
4182
+ update!(**args)
4183
+ end
4184
+
4185
+ # Update properties of this object
4186
+ def update!(**args)
4187
+ @request_id = args[:request_id] if args.key?(:request_id)
4188
+ end
4189
+ end
4190
+
4191
+ # Guest OS running process details.
4192
+ class RunningProcess
4193
+ include Google::Apis::Core::Hashable
4194
+
4195
+ # Process extended attributes.
4196
+ # Corresponds to the JSON property `attributes`
4197
+ # @return [Hash<String,String>]
4198
+ attr_accessor :attributes
4199
+
4200
+ # Process full command line.
4201
+ # Corresponds to the JSON property `cmdline`
4202
+ # @return [String]
4203
+ attr_accessor :cmdline
4204
+
4205
+ # Process binary path.
4206
+ # Corresponds to the JSON property `exePath`
4207
+ # @return [String]
4208
+ attr_accessor :exe_path
4209
+
4210
+ # Process ID.
4211
+ # Corresponds to the JSON property `pid`
4212
+ # @return [Fixnum]
4213
+ attr_accessor :pid
4214
+
4215
+ # User running the process.
4216
+ # Corresponds to the JSON property `user`
4217
+ # @return [String]
4218
+ attr_accessor :user
4219
+
4220
+ def initialize(**args)
4221
+ update!(**args)
4222
+ end
4223
+
4224
+ # Update properties of this object
4225
+ def update!(**args)
4226
+ @attributes = args[:attributes] if args.key?(:attributes)
4227
+ @cmdline = args[:cmdline] if args.key?(:cmdline)
4228
+ @exe_path = args[:exe_path] if args.key?(:exe_path)
4229
+ @pid = args[:pid] if args.key?(:pid)
4230
+ @user = args[:user] if args.key?(:user)
4231
+ end
4232
+ end
4233
+
4234
+ # List of running guest OS processes.
4235
+ class RunningProcessList
4236
+ include Google::Apis::Core::Hashable
4237
+
4238
+ # Running process entries.
4239
+ # Corresponds to the JSON property `entries`
4240
+ # @return [Array<Google::Apis::MigrationcenterV1::RunningProcess>]
4241
+ attr_accessor :entries
4242
+
4243
+ def initialize(**args)
4244
+ update!(**args)
4245
+ end
4246
+
4247
+ # Update properties of this object
4248
+ def update!(**args)
4249
+ @entries = args[:entries] if args.key?(:entries)
4250
+ end
4251
+ end
4252
+
4253
+ # Guest OS running service details.
4254
+ class RunningService
4255
+ include Google::Apis::Core::Hashable
4256
+
4257
+ # Service command line.
4258
+ # Corresponds to the JSON property `cmdline`
4259
+ # @return [String]
4260
+ attr_accessor :cmdline
4261
+
4262
+ # Service binary path.
4263
+ # Corresponds to the JSON property `exePath`
4264
+ # @return [String]
4265
+ attr_accessor :exe_path
4266
+
4267
+ # Service pid.
4268
+ # Corresponds to the JSON property `pid`
4269
+ # @return [Fixnum]
4270
+ attr_accessor :pid
4271
+
4272
+ # Service name.
4273
+ # Corresponds to the JSON property `serviceName`
4274
+ # @return [String]
4275
+ attr_accessor :service_name
4276
+
4277
+ # Service start mode (OS-agnostic).
4278
+ # Corresponds to the JSON property `startMode`
4279
+ # @return [String]
4280
+ attr_accessor :start_mode
4281
+
4282
+ # Service state (OS-agnostic).
4283
+ # Corresponds to the JSON property `state`
4284
+ # @return [String]
4285
+ attr_accessor :state
4286
+
4287
+ def initialize(**args)
4288
+ update!(**args)
4289
+ end
4290
+
4291
+ # Update properties of this object
4292
+ def update!(**args)
4293
+ @cmdline = args[:cmdline] if args.key?(:cmdline)
4294
+ @exe_path = args[:exe_path] if args.key?(:exe_path)
4295
+ @pid = args[:pid] if args.key?(:pid)
4296
+ @service_name = args[:service_name] if args.key?(:service_name)
4297
+ @start_mode = args[:start_mode] if args.key?(:start_mode)
4298
+ @state = args[:state] if args.key?(:state)
4299
+ end
4300
+ end
4301
+
4302
+ # List of running guest OS services.
4303
+ class RunningServiceList
4304
+ include Google::Apis::Core::Hashable
4305
+
4306
+ # Running service entries.
4307
+ # Corresponds to the JSON property `entries`
4308
+ # @return [Array<Google::Apis::MigrationcenterV1::RunningService>]
4309
+ attr_accessor :entries
4310
+
4311
+ def initialize(**args)
4312
+ update!(**args)
4313
+ end
4314
+
4315
+ # Update properties of this object
4316
+ def update!(**args)
4317
+ @entries = args[:entries] if args.key?(:entries)
4318
+ end
4319
+ end
4320
+
4321
+ # Runtime networking information.
4322
+ class RuntimeNetworkInfo
4323
+ include Google::Apis::Core::Hashable
4324
+
4325
+ # Network connection list.
4326
+ # Corresponds to the JSON property `connections`
4327
+ # @return [Google::Apis::MigrationcenterV1::NetworkConnectionList]
4328
+ attr_accessor :connections
4329
+
4330
+ # Time of the last network scan.
4331
+ # Corresponds to the JSON property `scanTime`
4332
+ # @return [String]
4333
+ attr_accessor :scan_time
4334
+
4335
+ def initialize(**args)
4336
+ update!(**args)
4337
+ end
4338
+
4339
+ # Update properties of this object
4340
+ def update!(**args)
4341
+ @connections = args[:connections] if args.key?(:connections)
4342
+ @scan_time = args[:scan_time] if args.key?(:scan_time)
4343
+ end
4344
+ end
4345
+
4346
+ # Describes the Migration Center settings related to the project.
4347
+ class Settings
4348
+ include Google::Apis::Core::Hashable
4349
+
4350
+ # Output only. The name of the resource.
4351
+ # Corresponds to the JSON property `name`
4352
+ # @return [String]
4353
+ attr_accessor :name
4354
+
4355
+ # The preference set used by default for a project.
4356
+ # Corresponds to the JSON property `preferenceSet`
4357
+ # @return [String]
4358
+ attr_accessor :preference_set
4359
+
4360
+ def initialize(**args)
4361
+ update!(**args)
4362
+ end
4363
+
4364
+ # Update properties of this object
4365
+ def update!(**args)
4366
+ @name = args[:name] if args.key?(:name)
4367
+ @preference_set = args[:preference_set] if args.key?(:preference_set)
4368
+ end
4369
+ end
4370
+
4371
+ # Preferences concerning Sole Tenancy nodes and VMs.
4372
+ class SoleTenancyPreferences
4373
+ include Google::Apis::Core::Hashable
4374
+
4375
+ # Commitment plan to consider when calculating costs for virtual machine
4376
+ # insights and recommendations. If you are unsure which value to set, a 3 year
4377
+ # commitment plan is often a good value to start with.
4378
+ # Corresponds to the JSON property `commitmentPlan`
4379
+ # @return [String]
4380
+ attr_accessor :commitment_plan
4381
+
4382
+ # CPU overcommit ratio. Acceptable values are between 1.0 and 2.0 inclusive.
4383
+ # Corresponds to the JSON property `cpuOvercommitRatio`
4384
+ # @return [Float]
4385
+ attr_accessor :cpu_overcommit_ratio
4386
+
4387
+ # Sole Tenancy nodes maintenance policy.
4388
+ # Corresponds to the JSON property `hostMaintenancePolicy`
4389
+ # @return [String]
4390
+ attr_accessor :host_maintenance_policy
4391
+
4392
+ # A list of sole tenant node types. An empty list means that all possible node
4393
+ # types will be considered.
4394
+ # Corresponds to the JSON property `nodeTypes`
4395
+ # @return [Array<Google::Apis::MigrationcenterV1::SoleTenantNodeType>]
4396
+ attr_accessor :node_types
4397
+
4398
+ def initialize(**args)
4399
+ update!(**args)
4400
+ end
4401
+
4402
+ # Update properties of this object
4403
+ def update!(**args)
4404
+ @commitment_plan = args[:commitment_plan] if args.key?(:commitment_plan)
4405
+ @cpu_overcommit_ratio = args[:cpu_overcommit_ratio] if args.key?(:cpu_overcommit_ratio)
4406
+ @host_maintenance_policy = args[:host_maintenance_policy] if args.key?(:host_maintenance_policy)
4407
+ @node_types = args[:node_types] if args.key?(:node_types)
4408
+ end
4409
+ end
4410
+
4411
+ # A Sole Tenant node type.
4412
+ class SoleTenantNodeType
4413
+ include Google::Apis::Core::Hashable
4414
+
4415
+ # Name of the Sole Tenant node. Consult https://cloud.google.com/compute/docs/
4416
+ # nodes/sole-tenant-nodes
4417
+ # Corresponds to the JSON property `nodeName`
4418
+ # @return [String]
4419
+ attr_accessor :node_name
4420
+
4421
+ def initialize(**args)
4422
+ update!(**args)
4423
+ end
4424
+
4425
+ # Update properties of this object
4426
+ def update!(**args)
4427
+ @node_name = args[:node_name] if args.key?(:node_name)
4428
+ end
4429
+ end
4430
+
4431
+ # Source represents an object from which asset information is streamed to
4432
+ # Migration Center.
4433
+ class Source
4434
+ include Google::Apis::Core::Hashable
4435
+
4436
+ # Output only. The timestamp when the source was created.
4437
+ # Corresponds to the JSON property `createTime`
4438
+ # @return [String]
4439
+ attr_accessor :create_time
4440
+
4441
+ # Free-text description.
4442
+ # Corresponds to the JSON property `description`
4443
+ # @return [String]
4444
+ attr_accessor :description
4445
+
4446
+ # User-friendly display name.
4447
+ # Corresponds to the JSON property `displayName`
4448
+ # @return [String]
4449
+ attr_accessor :display_name
4450
+
4451
+ # Output only. The number of frames that were reported by the source and
4452
+ # contained errors.
4453
+ # Corresponds to the JSON property `errorFrameCount`
4454
+ # @return [Fixnum]
4455
+ attr_accessor :error_frame_count
4456
+
4457
+ # If `true`, the source is managed by other service(s).
4458
+ # Corresponds to the JSON property `managed`
4459
+ # @return [Boolean]
4460
+ attr_accessor :managed
4461
+ alias_method :managed?, :managed
4462
+
4463
+ # Output only. The full name of the source.
4464
+ # Corresponds to the JSON property `name`
4465
+ # @return [String]
4466
+ attr_accessor :name
4467
+
4468
+ # Output only. Number of frames that are still being processed.
4469
+ # Corresponds to the JSON property `pendingFrameCount`
4470
+ # @return [Fixnum]
4471
+ attr_accessor :pending_frame_count
4472
+
4473
+ # The information confidence of the source. The higher the value, the higher the
4474
+ # confidence.
4475
+ # Corresponds to the JSON property `priority`
4476
+ # @return [Fixnum]
4477
+ attr_accessor :priority
4478
+
4479
+ # Output only. The state of the source.
4480
+ # Corresponds to the JSON property `state`
4481
+ # @return [String]
4482
+ attr_accessor :state
4483
+
4484
+ # Data source type.
4485
+ # Corresponds to the JSON property `type`
4486
+ # @return [String]
4487
+ attr_accessor :type
4488
+
4489
+ # Output only. The timestamp when the source was last updated.
4490
+ # Corresponds to the JSON property `updateTime`
4491
+ # @return [String]
4492
+ attr_accessor :update_time
4493
+
4494
+ def initialize(**args)
4495
+ update!(**args)
4496
+ end
4497
+
4498
+ # Update properties of this object
4499
+ def update!(**args)
4500
+ @create_time = args[:create_time] if args.key?(:create_time)
4501
+ @description = args[:description] if args.key?(:description)
4502
+ @display_name = args[:display_name] if args.key?(:display_name)
4503
+ @error_frame_count = args[:error_frame_count] if args.key?(:error_frame_count)
4504
+ @managed = args[:managed] if args.key?(:managed)
4505
+ @name = args[:name] if args.key?(:name)
4506
+ @pending_frame_count = args[:pending_frame_count] if args.key?(:pending_frame_count)
4507
+ @priority = args[:priority] if args.key?(:priority)
4508
+ @state = args[:state] if args.key?(:state)
4509
+ @type = args[:type] if args.key?(:type)
4510
+ @update_time = args[:update_time] if args.key?(:update_time)
4511
+ end
4512
+ end
4513
+
4514
+ # The `Status` type defines a logical error model that is suitable for different
4515
+ # programming environments, including REST APIs and RPC APIs. It is used by [
4516
+ # gRPC](https://github.com/grpc). Each `Status` message contains three pieces of
4517
+ # data: error code, error message, and error details. You can find out more
4518
+ # about this error model and how to work with it in the [API Design Guide](https:
4519
+ # //cloud.google.com/apis/design/errors).
4520
+ class Status
4521
+ include Google::Apis::Core::Hashable
4522
+
4523
+ # The status code, which should be an enum value of google.rpc.Code.
4524
+ # Corresponds to the JSON property `code`
4525
+ # @return [Fixnum]
4526
+ attr_accessor :code
4527
+
4528
+ # A list of messages that carry the error details. There is a common set of
4529
+ # message types for APIs to use.
4530
+ # Corresponds to the JSON property `details`
4531
+ # @return [Array<Hash<String,Object>>]
4532
+ attr_accessor :details
4533
+
4534
+ # A developer-facing error message, which should be in English. Any user-facing
4535
+ # error message should be localized and sent in the google.rpc.Status.details
4536
+ # field, or localized by the client.
4537
+ # Corresponds to the JSON property `message`
4538
+ # @return [String]
4539
+ attr_accessor :message
4540
+
4541
+ def initialize(**args)
4542
+ update!(**args)
4543
+ end
4544
+
4545
+ # Update properties of this object
4546
+ def update!(**args)
4547
+ @code = args[:code] if args.key?(:code)
4548
+ @details = args[:details] if args.key?(:details)
4549
+ @message = args[:message] if args.key?(:message)
4550
+ end
4551
+ end
4552
+
4553
+ # A request to update an asset.
4554
+ class UpdateAssetRequest
4555
+ include Google::Apis::Core::Hashable
4556
+
4557
+ # An asset represents a resource in your environment. Asset types include
4558
+ # virtual machines and databases.
4559
+ # Corresponds to the JSON property `asset`
4560
+ # @return [Google::Apis::MigrationcenterV1::Asset]
4561
+ attr_accessor :asset
4562
+
4563
+ # Optional. An optional request ID to identify requests. Specify a unique
4564
+ # request ID so that if you must retry your request, the server will know to
4565
+ # ignore the request if it has already been completed. The server will guarantee
4566
+ # that for at least 60 minutes since the first request. For example, consider a
4567
+ # situation where you make an initial request and the request times out. If you
4568
+ # make the request again with the same request ID, the server can check if
4569
+ # original operation with the same request ID was received, and if so, will
4570
+ # ignore the second request. This prevents clients from accidentally creating
4571
+ # duplicate commitments. The request ID must be a valid UUID with the exception
4572
+ # that zero UUID is not supported (00000000-0000-0000-0000-000000000000).
4573
+ # Corresponds to the JSON property `requestId`
4574
+ # @return [String]
4575
+ attr_accessor :request_id
4576
+
4577
+ # Required. Field mask is used to specify the fields to be overwritten in the `
4578
+ # Asset` resource by the update. The values specified in the `update_mask` field
4579
+ # are relative to the resource, not the full request. A field will be
4580
+ # overwritten if it is in the mask. A single * value in the mask lets you to
4581
+ # overwrite all fields.
4582
+ # Corresponds to the JSON property `updateMask`
4583
+ # @return [String]
4584
+ attr_accessor :update_mask
4585
+
4586
+ def initialize(**args)
4587
+ update!(**args)
4588
+ end
4589
+
4590
+ # Update properties of this object
4591
+ def update!(**args)
4592
+ @asset = args[:asset] if args.key?(:asset)
4593
+ @request_id = args[:request_id] if args.key?(:request_id)
4594
+ @update_mask = args[:update_mask] if args.key?(:update_mask)
4595
+ end
4596
+ end
4597
+
4598
+ # A resource that contains a URI to which a data file can be uploaded.
4599
+ class UploadFileInfo
4600
+ include Google::Apis::Core::Hashable
4601
+
4602
+ # Output only. The headers that were used to sign the URI.
4603
+ # Corresponds to the JSON property `headers`
4604
+ # @return [Hash<String,String>]
4605
+ attr_accessor :headers
4606
+
4607
+ # Output only. Upload URI for the file.
4608
+ # Corresponds to the JSON property `signedUri`
4609
+ # @return [String]
4610
+ attr_accessor :signed_uri
4611
+
4612
+ # Output only. Expiration time of the upload URI.
4613
+ # Corresponds to the JSON property `uriExpirationTime`
4614
+ # @return [String]
4615
+ attr_accessor :uri_expiration_time
4616
+
4617
+ def initialize(**args)
4618
+ update!(**args)
4619
+ end
4620
+
4621
+ # Update properties of this object
4622
+ def update!(**args)
4623
+ @headers = args[:headers] if args.key?(:headers)
4624
+ @signed_uri = args[:signed_uri] if args.key?(:signed_uri)
4625
+ @uri_expiration_time = args[:uri_expiration_time] if args.key?(:uri_expiration_time)
4626
+ end
4627
+ end
4628
+
4629
+ # A request to validate an import job.
4630
+ class ValidateImportJobRequest
4631
+ include Google::Apis::Core::Hashable
4632
+
4633
+ # Optional. An optional request ID to identify requests. Specify a unique
4634
+ # request ID so that if you must retry your request, the server will know to
4635
+ # ignore the request if it has already been completed. The server will guarantee
4636
+ # that for at least 60 minutes after the first request. For example, consider a
4637
+ # situation where you make an initial request and the request times out. If you
4638
+ # make the request again with the same request ID, the server can check if
4639
+ # original operation with the same request ID was received, and if so, will
4640
+ # ignore the second request. This prevents clients from accidentally creating
4641
+ # duplicate commitments. The request ID must be a valid UUID with the exception
4642
+ # that zero UUID is not supported (00000000-0000-0000-0000-000000000000).
4643
+ # Corresponds to the JSON property `requestId`
4644
+ # @return [String]
4645
+ attr_accessor :request_id
4646
+
4647
+ def initialize(**args)
4648
+ update!(**args)
4649
+ end
4650
+
4651
+ # Update properties of this object
4652
+ def update!(**args)
4653
+ @request_id = args[:request_id] if args.key?(:request_id)
4654
+ end
4655
+ end
4656
+
4657
+ # A resource that aggregates errors across import job files.
4658
+ class ValidationReport
4659
+ include Google::Apis::Core::Hashable
4660
+
4661
+ # List of errors found in files.
4662
+ # Corresponds to the JSON property `fileValidations`
4663
+ # @return [Array<Google::Apis::MigrationcenterV1::FileValidationReport>]
4664
+ attr_accessor :file_validations
4665
+
4666
+ # List of job level errors.
4667
+ # Corresponds to the JSON property `jobErrors`
4668
+ # @return [Array<Google::Apis::MigrationcenterV1::ImportError>]
4669
+ attr_accessor :job_errors
4670
+
4671
+ def initialize(**args)
4672
+ update!(**args)
4673
+ end
4674
+
4675
+ # Update properties of this object
4676
+ def update!(**args)
4677
+ @file_validations = args[:file_validations] if args.key?(:file_validations)
4678
+ @job_errors = args[:job_errors] if args.key?(:job_errors)
4679
+ end
4680
+ end
4681
+
4682
+ # VirtualMachinePreferences enables you to create sets of assumptions, for
4683
+ # example, a geographical location and pricing track, for your migrated virtual
4684
+ # machines. The set of preferences influence recommendations for migrating
4685
+ # virtual machine assets.
4686
+ class VirtualMachinePreferences
4687
+ include Google::Apis::Core::Hashable
4688
+
4689
+ # Commitment plan to consider when calculating costs for virtual machine
4690
+ # insights and recommendations. If you are unsure which value to set, a 3 year
4691
+ # commitment plan is often a good value to start with.
4692
+ # Corresponds to the JSON property `commitmentPlan`
4693
+ # @return [String]
4694
+ attr_accessor :commitment_plan
4695
+
4696
+ # The user preferences relating to Compute Engine target platform.
4697
+ # Corresponds to the JSON property `computeEnginePreferences`
4698
+ # @return [Google::Apis::MigrationcenterV1::ComputeEnginePreferences]
4699
+ attr_accessor :compute_engine_preferences
4700
+
4701
+ # The user preferences relating to target regions.
4702
+ # Corresponds to the JSON property `regionPreferences`
4703
+ # @return [Google::Apis::MigrationcenterV1::RegionPreferences]
4704
+ attr_accessor :region_preferences
4705
+
4706
+ # Sizing optimization strategy specifies the preferred strategy used when
4707
+ # extrapolating usage data to calculate insights and recommendations for a
4708
+ # virtual machine. If you are unsure which value to set, a moderate sizing
4709
+ # optimization strategy is often a good value to start with.
4710
+ # Corresponds to the JSON property `sizingOptimizationStrategy`
4711
+ # @return [String]
4712
+ attr_accessor :sizing_optimization_strategy
4713
+
4714
+ # Preferences concerning Sole Tenancy nodes and VMs.
4715
+ # Corresponds to the JSON property `soleTenancyPreferences`
4716
+ # @return [Google::Apis::MigrationcenterV1::SoleTenancyPreferences]
4717
+ attr_accessor :sole_tenancy_preferences
4718
+
4719
+ # Target product for assets using this preference set. Specify either target
4720
+ # product or business goal, but not both.
4721
+ # Corresponds to the JSON property `targetProduct`
4722
+ # @return [String]
4723
+ attr_accessor :target_product
4724
+
4725
+ # The user preferences relating to Google Cloud VMware Engine target platform.
4726
+ # Corresponds to the JSON property `vmwareEnginePreferences`
4727
+ # @return [Google::Apis::MigrationcenterV1::VmwareEnginePreferences]
4728
+ attr_accessor :vmware_engine_preferences
4729
+
4730
+ def initialize(**args)
4731
+ update!(**args)
4732
+ end
4733
+
4734
+ # Update properties of this object
4735
+ def update!(**args)
4736
+ @commitment_plan = args[:commitment_plan] if args.key?(:commitment_plan)
4737
+ @compute_engine_preferences = args[:compute_engine_preferences] if args.key?(:compute_engine_preferences)
4738
+ @region_preferences = args[:region_preferences] if args.key?(:region_preferences)
4739
+ @sizing_optimization_strategy = args[:sizing_optimization_strategy] if args.key?(:sizing_optimization_strategy)
4740
+ @sole_tenancy_preferences = args[:sole_tenancy_preferences] if args.key?(:sole_tenancy_preferences)
4741
+ @target_product = args[:target_product] if args.key?(:target_product)
4742
+ @vmware_engine_preferences = args[:vmware_engine_preferences] if args.key?(:vmware_engine_preferences)
4743
+ end
4744
+ end
4745
+
4746
+ # VMware disk config details.
4747
+ class VmwareDiskConfig
4748
+ include Google::Apis::Core::Hashable
4749
+
4750
+ # VMDK backing type.
4751
+ # Corresponds to the JSON property `backingType`
4752
+ # @return [String]
4753
+ attr_accessor :backing_type
4754
+
4755
+ # RDM compatibility mode.
4756
+ # Corresponds to the JSON property `rdmCompatibility`
4757
+ # @return [String]
4758
+ attr_accessor :rdm_compatibility
4759
+
4760
+ # Is VMDK shared with other VMs.
4761
+ # Corresponds to the JSON property `shared`
4762
+ # @return [Boolean]
4763
+ attr_accessor :shared
4764
+ alias_method :shared?, :shared
4765
+
4766
+ # VMDK disk mode.
4767
+ # Corresponds to the JSON property `vmdkMode`
4768
+ # @return [String]
4769
+ attr_accessor :vmdk_mode
4770
+
4771
+ def initialize(**args)
4772
+ update!(**args)
4773
+ end
4774
+
4775
+ # Update properties of this object
4776
+ def update!(**args)
4777
+ @backing_type = args[:backing_type] if args.key?(:backing_type)
4778
+ @rdm_compatibility = args[:rdm_compatibility] if args.key?(:rdm_compatibility)
4779
+ @shared = args[:shared] if args.key?(:shared)
4780
+ @vmdk_mode = args[:vmdk_mode] if args.key?(:vmdk_mode)
4781
+ end
4782
+ end
4783
+
4784
+ # The user preferences relating to Google Cloud VMware Engine target platform.
4785
+ class VmwareEnginePreferences
4786
+ include Google::Apis::Core::Hashable
4787
+
4788
+ # Commitment plan to consider when calculating costs for virtual machine
4789
+ # insights and recommendations. If you are unsure which value to set, a 3 year
4790
+ # commitment plan is often a good value to start with.
4791
+ # Corresponds to the JSON property `commitmentPlan`
4792
+ # @return [String]
4793
+ attr_accessor :commitment_plan
4794
+
4795
+ # CPU overcommit ratio. Acceptable values are between 1.0 and 8.0, with 0.1
4796
+ # increment.
4797
+ # Corresponds to the JSON property `cpuOvercommitRatio`
4798
+ # @return [Float]
4799
+ attr_accessor :cpu_overcommit_ratio
4800
+
4801
+ # Memory overcommit ratio. Acceptable values are 1.0, 1.25, 1.5, 1.75 and 2.0.
4802
+ # Corresponds to the JSON property `memoryOvercommitRatio`
4803
+ # @return [Float]
4804
+ attr_accessor :memory_overcommit_ratio
4805
+
4806
+ # The Deduplication and Compression ratio is based on the logical (Used Before)
4807
+ # space required to store data before applying deduplication and compression, in
4808
+ # relation to the physical (Used After) space required after applying
4809
+ # deduplication and compression. Specifically, the ratio is the Used Before
4810
+ # space divided by the Used After space. For example, if the Used Before space
4811
+ # is 3 GB, but the physical Used After space is 1 GB, the deduplication and
4812
+ # compression ratio is 3x. Acceptable values are between 1.0 and 4.0.
4813
+ # Corresponds to the JSON property `storageDeduplicationCompressionRatio`
4814
+ # @return [Float]
4815
+ attr_accessor :storage_deduplication_compression_ratio
4816
+
4817
+ def initialize(**args)
4818
+ update!(**args)
4819
+ end
4820
+
4821
+ # Update properties of this object
4822
+ def update!(**args)
4823
+ @commitment_plan = args[:commitment_plan] if args.key?(:commitment_plan)
4824
+ @cpu_overcommit_ratio = args[:cpu_overcommit_ratio] if args.key?(:cpu_overcommit_ratio)
4825
+ @memory_overcommit_ratio = args[:memory_overcommit_ratio] if args.key?(:memory_overcommit_ratio)
4826
+ @storage_deduplication_compression_ratio = args[:storage_deduplication_compression_ratio] if args.key?(:storage_deduplication_compression_ratio)
4827
+ end
4828
+ end
4829
+
4830
+ # VMware specific details.
4831
+ class VmwarePlatformDetails
4832
+ include Google::Apis::Core::Hashable
4833
+
4834
+ # ESX version.
4835
+ # Corresponds to the JSON property `esxVersion`
4836
+ # @return [String]
4837
+ attr_accessor :esx_version
4838
+
4839
+ # VMware os enum - https://vdc-repo.vmware.com/vmwb-repository/dcr-public/
4840
+ # da47f910-60ac-438b-8b9b-6122f4d14524/16b7274a-bf8b-4b4c-a05e-746f2aa93c8c/doc/
4841
+ # vim.vm.GuestOsDescriptor.GuestOsIdentifier.html.
4842
+ # Corresponds to the JSON property `osid`
4843
+ # @return [String]
4844
+ attr_accessor :osid
4845
+
4846
+ # Folder name in vCenter where asset resides.
4847
+ # Corresponds to the JSON property `vcenterFolder`
4848
+ # @return [String]
4849
+ attr_accessor :vcenter_folder
4850
+
4851
+ # vCenter URI used in collection.
4852
+ # Corresponds to the JSON property `vcenterUri`
4853
+ # @return [String]
4854
+ attr_accessor :vcenter_uri
4855
+
4856
+ # vCenter version.
4857
+ # Corresponds to the JSON property `vcenterVersion`
4858
+ # @return [String]
4859
+ attr_accessor :vcenter_version
4860
+
4861
+ # vCenter VM ID.
4862
+ # Corresponds to the JSON property `vcenterVmId`
4863
+ # @return [String]
4864
+ attr_accessor :vcenter_vm_id
4865
+
4866
+ def initialize(**args)
4867
+ update!(**args)
4868
+ end
4869
+
4870
+ # Update properties of this object
4871
+ def update!(**args)
4872
+ @esx_version = args[:esx_version] if args.key?(:esx_version)
4873
+ @osid = args[:osid] if args.key?(:osid)
4874
+ @vcenter_folder = args[:vcenter_folder] if args.key?(:vcenter_folder)
4875
+ @vcenter_uri = args[:vcenter_uri] if args.key?(:vcenter_uri)
4876
+ @vcenter_version = args[:vcenter_version] if args.key?(:vcenter_version)
4877
+ @vcenter_vm_id = args[:vcenter_vm_id] if args.key?(:vcenter_vm_id)
4878
+ end
4879
+ end
4880
+ end
4881
+ end
4882
+ end