google-apis-migrationcenter_v1 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,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