google-apis-devicerun_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,810 @@
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 DevicerunV1
24
+
25
+ # Android-specific device attributes.
26
+ class CatalogAndroidDeviceDetails
27
+ include Google::Apis::Core::Hashable
28
+
29
+ # Output only. Mirrors the AOSP `ro.build.type` property, e.g. "user", "
30
+ # userdebug", "eng". Empty if unknown.
31
+ # Corresponds to the JSON property `buildType`
32
+ # @return [String]
33
+ attr_accessor :build_type
34
+
35
+ # Output only. Lists ABIs supported by the device (android.os.Build.
36
+ # SUPPORTED_ABIS), most preferred first, e.g. "arm64-v8a".
37
+ # Corresponds to the JSON property `supportedAbis`
38
+ # @return [Array<String>]
39
+ attr_accessor :supported_abis
40
+
41
+ def initialize(**args)
42
+ update!(**args)
43
+ end
44
+
45
+ # Update properties of this object
46
+ def update!(**args)
47
+ @build_type = args[:build_type] if args.key?(:build_type)
48
+ @supported_abis = args[:supported_abis] if args.key?(:supported_abis)
49
+ end
50
+ end
51
+
52
+ # AndroidX Test Orchestrator-specific attributes. Reserved for future
53
+ # orchestrator-only fields.
54
+ class CatalogAndroidxTestOrchestratorDetails
55
+ include Google::Apis::Core::Hashable
56
+
57
+ def initialize(**args)
58
+ update!(**args)
59
+ end
60
+
61
+ # Update properties of this object
62
+ def update!(**args)
63
+ end
64
+ end
65
+
66
+ # Per-product metadata for the Automation (DeviceRun) product.
67
+ class CatalogAutomationSupport
68
+ include Google::Apis::Core::Hashable
69
+
70
+ def initialize(**args)
71
+ update!(**args)
72
+ end
73
+
74
+ # Update properties of this object
75
+ def update!(**args)
76
+ end
77
+ end
78
+
79
+ # A single routable device configuration in the catalog.
80
+ class CatalogDevice
81
+ include Google::Apis::Core::Hashable
82
+
83
+ # Output only. Reasons for access denial. This model is accessible/usable if
84
+ # this list is empty, otherwise the model is viewable only.
85
+ # Corresponds to the JSON property `accessDeniedReasons`
86
+ # @return [Array<String>]
87
+ attr_accessor :access_denied_reasons
88
+
89
+ # Android-specific device attributes.
90
+ # Corresponds to the JSON property `androidDetails`
91
+ # @return [Google::Apis::DevicerunV1::CatalogAndroidDeviceDetails]
92
+ attr_accessor :android_details
93
+
94
+ # Fleet availability for a device configuration.
95
+ # Corresponds to the JSON property `availability`
96
+ # @return [Google::Apis::DevicerunV1::CatalogDeviceAvailability]
97
+ attr_accessor :availability
98
+
99
+ # Output only. Provides a human-readable display name, e.g. "Pixel 5".
100
+ # Corresponds to the JSON property `displayName`
101
+ # @return [String]
102
+ attr_accessor :display_name
103
+
104
+ # Output only. Specifies the form factor of the device.
105
+ # Corresponds to the JSON property `formFactor`
106
+ # @return [String]
107
+ attr_accessor :form_factor
108
+
109
+ # Output only. Indicates whether the device is physical or virtual.
110
+ # Corresponds to the JSON property `hardwareType`
111
+ # @return [String]
112
+ attr_accessor :hardware_type
113
+
114
+ # iOS-specific device attributes. Reserved for future iOS-only fields.
115
+ # Corresponds to the JSON property `iosDetails`
116
+ # @return [Google::Apis::DevicerunV1::CatalogIosDeviceDetails]
117
+ attr_accessor :ios_details
118
+
119
+ # The lab hosting a device.
120
+ # Corresponds to the JSON property `labInfo`
121
+ # @return [Google::Apis::DevicerunV1::CatalogLabInfo]
122
+ attr_accessor :lab_info
123
+
124
+ # Output only. Additional information. Informational only. May change over the
125
+ # lifecycle of a device.
126
+ # Corresponds to the JSON property `labels`
127
+ # @return [Hash<String,String>]
128
+ attr_accessor :labels
129
+
130
+ # Catalog resource lifecycle: maturity state plus key lifecycle dates.
131
+ # Corresponds to the JSON property `lifecycle`
132
+ # @return [Google::Apis::DevicerunV1::CatalogLifecycle]
133
+ attr_accessor :lifecycle
134
+
135
+ # Output only. Specifies the hardware manufacturer of the device.
136
+ # Corresponds to the JSON property `manufacturer`
137
+ # @return [String]
138
+ attr_accessor :manufacturer
139
+
140
+ # Output only. Provides a human-readable model identifier for this device,
141
+ # independent of OS version. May be empty. Platform-dependent: * Android
142
+ # physical: hardware codename (android.os.Build.DEVICE), e.g. "shiba". * Android
143
+ # virtual: AVD model identifier, e.g. "MediumPhone.arm". * iOS: model identifier,
144
+ # e.g. "iphone14pro".
145
+ # Corresponds to the JSON property `modelCode`
146
+ # @return [String]
147
+ attr_accessor :model_code
148
+
149
+ # Identifier. Identifies the device resource. Format: `projects/`project`/
150
+ # locations/`location`/devices/`device``. The `device` segment is an opaque,
151
+ # stable string. Clients must not parse it to derive or assume device-specific
152
+ # details.
153
+ # Corresponds to the JSON property `name`
154
+ # @return [String]
155
+ attr_accessor :name
156
+
157
+ # Output only. Specifies the OS version, e.g. "30" (Android API level) or "17.4"
158
+ # (iOS).
159
+ # Corresponds to the JSON property `osVersion`
160
+ # @return [String]
161
+ attr_accessor :os_version
162
+
163
+ # Output only. Specifies the platform of the device.
164
+ # Corresponds to the JSON property `platform`
165
+ # @return [String]
166
+ attr_accessor :platform
167
+
168
+ # Screen measurements of a device.
169
+ # Corresponds to the JSON property `primaryScreen`
170
+ # @return [Google::Apis::DevicerunV1::CatalogScreenMetrics]
171
+ attr_accessor :primary_screen
172
+
173
+ # Output only. Products/Services supported by this device.
174
+ # Corresponds to the JSON property `supportedProducts`
175
+ # @return [Array<Google::Apis::DevicerunV1::CatalogSupportedProduct>]
176
+ attr_accessor :supported_products
177
+
178
+ def initialize(**args)
179
+ update!(**args)
180
+ end
181
+
182
+ # Update properties of this object
183
+ def update!(**args)
184
+ @access_denied_reasons = args[:access_denied_reasons] if args.key?(:access_denied_reasons)
185
+ @android_details = args[:android_details] if args.key?(:android_details)
186
+ @availability = args[:availability] if args.key?(:availability)
187
+ @display_name = args[:display_name] if args.key?(:display_name)
188
+ @form_factor = args[:form_factor] if args.key?(:form_factor)
189
+ @hardware_type = args[:hardware_type] if args.key?(:hardware_type)
190
+ @ios_details = args[:ios_details] if args.key?(:ios_details)
191
+ @lab_info = args[:lab_info] if args.key?(:lab_info)
192
+ @labels = args[:labels] if args.key?(:labels)
193
+ @lifecycle = args[:lifecycle] if args.key?(:lifecycle)
194
+ @manufacturer = args[:manufacturer] if args.key?(:manufacturer)
195
+ @model_code = args[:model_code] if args.key?(:model_code)
196
+ @name = args[:name] if args.key?(:name)
197
+ @os_version = args[:os_version] if args.key?(:os_version)
198
+ @platform = args[:platform] if args.key?(:platform)
199
+ @primary_screen = args[:primary_screen] if args.key?(:primary_screen)
200
+ @supported_products = args[:supported_products] if args.key?(:supported_products)
201
+ end
202
+ end
203
+
204
+ # Fleet availability for a device configuration.
205
+ class CatalogDeviceAvailability
206
+ include Google::Apis::Core::Hashable
207
+
208
+ # Output only. Specifies the current availability bucket (idle, immediately
209
+ # allocatable devices) for this device configuration. This is a best-effort
210
+ # snapshot, refreshed periodically. It fluctuates depending on traffic as other
211
+ # requests allocate devices.
212
+ # Corresponds to the JSON property `available`
213
+ # @return [String]
214
+ attr_accessor :available
215
+
216
+ # Output only. Specifies the current capacity bucket for this device
217
+ # configuration. Represents the total number of online devices (idle or in use).
218
+ # Corresponds to the JSON property `capacity`
219
+ # @return [String]
220
+ attr_accessor :capacity
221
+
222
+ def initialize(**args)
223
+ update!(**args)
224
+ end
225
+
226
+ # Update properties of this object
227
+ def update!(**args)
228
+ @available = args[:available] if args.key?(:available)
229
+ @capacity = args[:capacity] if args.key?(:capacity)
230
+ end
231
+ end
232
+
233
+ # Per-product metadata for the DeviceStreaming product.
234
+ class CatalogDeviceStreamingSupport
235
+ include Google::Apis::Core::Hashable
236
+
237
+ # Output only. Specifies the minimum Android Studio version that supports this
238
+ # device. Optional; only set when the device is known to work only at or above a
239
+ # certain Android Studio version. Expected format "major.minor.micro.patch", e.g.
240
+ # "5921.22.2211.8881706".
241
+ # Corresponds to the JSON property `minimumAndroidStudioVersion`
242
+ # @return [String]
243
+ attr_accessor :minimum_android_studio_version
244
+
245
+ def initialize(**args)
246
+ update!(**args)
247
+ end
248
+
249
+ # Update properties of this object
250
+ def update!(**args)
251
+ @minimum_android_studio_version = args[:minimum_android_studio_version] if args.key?(:minimum_android_studio_version)
252
+ end
253
+ end
254
+
255
+ # iOS-specific device attributes. Reserved for future iOS-only fields.
256
+ class CatalogIosDeviceDetails
257
+ include Google::Apis::Core::Hashable
258
+
259
+ def initialize(**args)
260
+ update!(**args)
261
+ end
262
+
263
+ # Update properties of this object
264
+ def update!(**args)
265
+ end
266
+ end
267
+
268
+ # The lab hosting a device.
269
+ class CatalogLabInfo
270
+ include Google::Apis::Core::Hashable
271
+
272
+ # Output only. Display name of the lab where the device is hosted. If empty, the
273
+ # device is hosted in a Google owned lab.
274
+ # Corresponds to the JSON property `displayName`
275
+ # @return [String]
276
+ attr_accessor :display_name
277
+
278
+ # Output only. The Unicode country/region code (CLDR) of the lab where the
279
+ # device is hosted, e.g. "US" for United States, "KR" for South Korea. Empty
280
+ # when the hosting region is not published.
281
+ # Corresponds to the JSON property `regionCode`
282
+ # @return [String]
283
+ attr_accessor :region_code
284
+
285
+ def initialize(**args)
286
+ update!(**args)
287
+ end
288
+
289
+ # Update properties of this object
290
+ def update!(**args)
291
+ @display_name = args[:display_name] if args.key?(:display_name)
292
+ @region_code = args[:region_code] if args.key?(:region_code)
293
+ end
294
+ end
295
+
296
+ # Catalog resource lifecycle: maturity state plus key lifecycle dates.
297
+ class CatalogLifecycle
298
+ include Google::Apis::Core::Hashable
299
+
300
+ # Represents a whole or partial calendar date, such as a birthday. The time of
301
+ # day and time zone are either specified elsewhere or are insignificant. The
302
+ # date is relative to the Gregorian Calendar. This can represent one of the
303
+ # following: * A full date, with non-zero year, month, and day values. * A month
304
+ # and day, with a zero year (for example, an anniversary). * A year on its own,
305
+ # with a zero month and a zero day. * A year and month, with a zero day (for
306
+ # example, a credit card expiration date). Related types: * google.type.
307
+ # TimeOfDay * google.type.DateTime * google.protobuf.Timestamp
308
+ # Corresponds to the JSON property `removalDate`
309
+ # @return [Google::Apis::DevicerunV1::Date]
310
+ attr_accessor :removal_date
311
+
312
+ # Output only. Specifies the current maturity state of the resource.
313
+ # Corresponds to the JSON property `state`
314
+ # @return [String]
315
+ attr_accessor :state
316
+
317
+ def initialize(**args)
318
+ update!(**args)
319
+ end
320
+
321
+ # Update properties of this object
322
+ def update!(**args)
323
+ @removal_date = args[:removal_date] if args.key?(:removal_date)
324
+ @state = args[:state] if args.key?(:state)
325
+ end
326
+ end
327
+
328
+ # Response including listed devices.
329
+ class CatalogListDevicesResponse
330
+ include Google::Apis::Core::Hashable
331
+
332
+ # The list of devices.
333
+ # Corresponds to the JSON property `devices`
334
+ # @return [Array<Google::Apis::DevicerunV1::CatalogDevice>]
335
+ attr_accessor :devices
336
+
337
+ # Token to receive the next page of devices. This will be absent if the end of
338
+ # the response list has been reached.
339
+ # Corresponds to the JSON property `nextPageToken`
340
+ # @return [String]
341
+ attr_accessor :next_page_token
342
+
343
+ def initialize(**args)
344
+ update!(**args)
345
+ end
346
+
347
+ # Update properties of this object
348
+ def update!(**args)
349
+ @devices = args[:devices] if args.key?(:devices)
350
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
351
+ end
352
+ end
353
+
354
+ # Response including listed software versions.
355
+ class CatalogListSoftwareVersionsResponse
356
+ include Google::Apis::Core::Hashable
357
+
358
+ # Token to receive the next page of software versions. This will be absent if
359
+ # the end of the response list has been reached.
360
+ # Corresponds to the JSON property `nextPageToken`
361
+ # @return [String]
362
+ attr_accessor :next_page_token
363
+
364
+ # The list of software versions.
365
+ # Corresponds to the JSON property `softwareVersions`
366
+ # @return [Array<Google::Apis::DevicerunV1::CatalogSoftwareVersion>]
367
+ attr_accessor :software_versions
368
+
369
+ def initialize(**args)
370
+ update!(**args)
371
+ end
372
+
373
+ # Update properties of this object
374
+ def update!(**args)
375
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
376
+ @software_versions = args[:software_versions] if args.key?(:software_versions)
377
+ end
378
+ end
379
+
380
+ # Screen measurements of a device.
381
+ class CatalogScreenMetrics
382
+ include Google::Apis::Core::Hashable
383
+
384
+ # Output only. Pixel density in dots per inch (dpi).
385
+ # Corresponds to the JSON property `densityDpi`
386
+ # @return [Fixnum]
387
+ attr_accessor :density_dpi
388
+
389
+ # Output only. Height in pixels.
390
+ # Corresponds to the JSON property `heightPx`
391
+ # @return [Fixnum]
392
+ attr_accessor :height_px
393
+
394
+ # Output only. Width in pixels.
395
+ # Corresponds to the JSON property `widthPx`
396
+ # @return [Fixnum]
397
+ attr_accessor :width_px
398
+
399
+ def initialize(**args)
400
+ update!(**args)
401
+ end
402
+
403
+ # Update properties of this object
404
+ def update!(**args)
405
+ @density_dpi = args[:density_dpi] if args.key?(:density_dpi)
406
+ @height_px = args[:height_px] if args.key?(:height_px)
407
+ @width_px = args[:width_px] if args.key?(:width_px)
408
+ end
409
+ end
410
+
411
+ # A single software version in the catalog.
412
+ class CatalogSoftwareVersion
413
+ include Google::Apis::Core::Hashable
414
+
415
+ # AndroidX Test Orchestrator-specific attributes. Reserved for future
416
+ # orchestrator-only fields.
417
+ # Corresponds to the JSON property `androidxTestOrchestratorDetails`
418
+ # @return [Google::Apis::DevicerunV1::CatalogAndroidxTestOrchestratorDetails]
419
+ attr_accessor :androidx_test_orchestrator_details
420
+
421
+ # Output only. Provides a human-readable name for this version, e.g. "AndroidX
422
+ # Test Orchestrator 1.4.1".
423
+ # Corresponds to the JSON property `displayName`
424
+ # @return [String]
425
+ attr_accessor :display_name
426
+
427
+ # Output only. Indicates whether the system uses this version when a request
428
+ # does not select one explicitly. Exactly one version per `software_type` is the
429
+ # default, and it may change over time.
430
+ # Corresponds to the JSON property `isDefault`
431
+ # @return [Boolean]
432
+ attr_accessor :is_default
433
+ alias_method :is_default?, :is_default
434
+
435
+ # Catalog resource lifecycle: maturity state plus key lifecycle dates.
436
+ # Corresponds to the JSON property `lifecycle`
437
+ # @return [Google::Apis::DevicerunV1::CatalogLifecycle]
438
+ attr_accessor :lifecycle
439
+
440
+ # Identifier. Identifies the software version resource. Format: `projects/`
441
+ # project`/locations/`location`/softwareVersions/`software_version``. The `
442
+ # software_version` segment is an opaque, stable string. Clients must not parse
443
+ # it to derive or assume the version.
444
+ # Corresponds to the JSON property `name`
445
+ # @return [String]
446
+ attr_accessor :name
447
+
448
+ # Output only. Specifies which software this is a version of. Filter on this
449
+ # field to narrow the collection to a single kind of software, for example `
450
+ # software_type = "ANDROIDX_TEST_ORCHESTRATOR"`.
451
+ # Corresponds to the JSON property `softwareType`
452
+ # @return [String]
453
+ attr_accessor :software_type
454
+
455
+ # Output only. Specifies the version identifier, e.g. "1.4.1". Unique within a `
456
+ # software_type`.
457
+ # Corresponds to the JSON property `version`
458
+ # @return [String]
459
+ attr_accessor :version
460
+
461
+ # Xcode-specific attributes.
462
+ # Corresponds to the JSON property `xcodeDetails`
463
+ # @return [Google::Apis::DevicerunV1::CatalogXcodeDetails]
464
+ attr_accessor :xcode_details
465
+
466
+ def initialize(**args)
467
+ update!(**args)
468
+ end
469
+
470
+ # Update properties of this object
471
+ def update!(**args)
472
+ @androidx_test_orchestrator_details = args[:androidx_test_orchestrator_details] if args.key?(:androidx_test_orchestrator_details)
473
+ @display_name = args[:display_name] if args.key?(:display_name)
474
+ @is_default = args[:is_default] if args.key?(:is_default)
475
+ @lifecycle = args[:lifecycle] if args.key?(:lifecycle)
476
+ @name = args[:name] if args.key?(:name)
477
+ @software_type = args[:software_type] if args.key?(:software_type)
478
+ @version = args[:version] if args.key?(:version)
479
+ @xcode_details = args[:xcode_details] if args.key?(:xcode_details)
480
+ end
481
+ end
482
+
483
+ # Declares that a device supports a given Device Cloud product, with optional
484
+ # per-product metadata. Discriminated by which product-specific message is set;
485
+ # adding a new product = new oneof arm + new per-product message.
486
+ class CatalogSupportedProduct
487
+ include Google::Apis::Core::Hashable
488
+
489
+ # Per-product metadata for the Automation (DeviceRun) product.
490
+ # Corresponds to the JSON property `automation`
491
+ # @return [Google::Apis::DevicerunV1::CatalogAutomationSupport]
492
+ attr_accessor :automation
493
+
494
+ # Per-product metadata for the DeviceStreaming product.
495
+ # Corresponds to the JSON property `deviceStreaming`
496
+ # @return [Google::Apis::DevicerunV1::CatalogDeviceStreamingSupport]
497
+ attr_accessor :device_streaming
498
+
499
+ def initialize(**args)
500
+ update!(**args)
501
+ end
502
+
503
+ # Update properties of this object
504
+ def update!(**args)
505
+ @automation = args[:automation] if args.key?(:automation)
506
+ @device_streaming = args[:device_streaming] if args.key?(:device_streaming)
507
+ end
508
+ end
509
+
510
+ # Xcode-specific attributes.
511
+ class CatalogXcodeDetails
512
+ include Google::Apis::Core::Hashable
513
+
514
+ # Output only. Lists the iOS versions this Xcode can run tests against, e.g. "16.
515
+ # 6". This is a property of the toolchain, so it says nothing about whether a
516
+ # device on that iOS version is available; list the `Device` collection to find
517
+ # out.
518
+ # Corresponds to the JSON property `supportedIosVersions`
519
+ # @return [Array<String>]
520
+ attr_accessor :supported_ios_versions
521
+
522
+ def initialize(**args)
523
+ update!(**args)
524
+ end
525
+
526
+ # Update properties of this object
527
+ def update!(**args)
528
+ @supported_ios_versions = args[:supported_ios_versions] if args.key?(:supported_ios_versions)
529
+ end
530
+ end
531
+
532
+ # Represents a whole or partial calendar date, such as a birthday. The time of
533
+ # day and time zone are either specified elsewhere or are insignificant. The
534
+ # date is relative to the Gregorian Calendar. This can represent one of the
535
+ # following: * A full date, with non-zero year, month, and day values. * A month
536
+ # and day, with a zero year (for example, an anniversary). * A year on its own,
537
+ # with a zero month and a zero day. * A year and month, with a zero day (for
538
+ # example, a credit card expiration date). Related types: * google.type.
539
+ # TimeOfDay * google.type.DateTime * google.protobuf.Timestamp
540
+ class Date
541
+ include Google::Apis::Core::Hashable
542
+
543
+ # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to
544
+ # specify a year by itself or a year and month where the day isn't significant.
545
+ # Corresponds to the JSON property `day`
546
+ # @return [Fixnum]
547
+ attr_accessor :day
548
+
549
+ # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month
550
+ # and day.
551
+ # Corresponds to the JSON property `month`
552
+ # @return [Fixnum]
553
+ attr_accessor :month
554
+
555
+ # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a
556
+ # year.
557
+ # Corresponds to the JSON property `year`
558
+ # @return [Fixnum]
559
+ attr_accessor :year
560
+
561
+ def initialize(**args)
562
+ update!(**args)
563
+ end
564
+
565
+ # Update properties of this object
566
+ def update!(**args)
567
+ @day = args[:day] if args.key?(:day)
568
+ @month = args[:month] if args.key?(:month)
569
+ @year = args[:year] if args.key?(:year)
570
+ end
571
+ end
572
+
573
+ # A generic empty message that you can re-use to avoid defining duplicated empty
574
+ # messages in your APIs. A typical example is to use it as the request or the
575
+ # response type of an API method. For instance: service Foo ` rpc Bar(google.
576
+ # protobuf.Empty) returns (google.protobuf.Empty); `
577
+ class Empty
578
+ include Google::Apis::Core::Hashable
579
+
580
+ def initialize(**args)
581
+ update!(**args)
582
+ end
583
+
584
+ # Update properties of this object
585
+ def update!(**args)
586
+ end
587
+ end
588
+
589
+ # The request message for Operations.CancelOperation.
590
+ class GoogleLongrunningCancelOperationRequest
591
+ include Google::Apis::Core::Hashable
592
+
593
+ def initialize(**args)
594
+ update!(**args)
595
+ end
596
+
597
+ # Update properties of this object
598
+ def update!(**args)
599
+ end
600
+ end
601
+
602
+ # The response message for Operations.ListOperations.
603
+ class GoogleLongrunningListOperationsResponse
604
+ include Google::Apis::Core::Hashable
605
+
606
+ # The standard List next-page token.
607
+ # Corresponds to the JSON property `nextPageToken`
608
+ # @return [String]
609
+ attr_accessor :next_page_token
610
+
611
+ # A list of operations that matches the specified filter in the request.
612
+ # Corresponds to the JSON property `operations`
613
+ # @return [Array<Google::Apis::DevicerunV1::GoogleLongrunningOperation>]
614
+ attr_accessor :operations
615
+
616
+ # Unordered list. Unreachable resources. Populated when the request sets `
617
+ # ListOperationsRequest.return_partial_success` and reads across collections.
618
+ # For example, when attempting to list all resources across all supported
619
+ # locations.
620
+ # Corresponds to the JSON property `unreachable`
621
+ # @return [Array<String>]
622
+ attr_accessor :unreachable
623
+
624
+ def initialize(**args)
625
+ update!(**args)
626
+ end
627
+
628
+ # Update properties of this object
629
+ def update!(**args)
630
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
631
+ @operations = args[:operations] if args.key?(:operations)
632
+ @unreachable = args[:unreachable] if args.key?(:unreachable)
633
+ end
634
+ end
635
+
636
+ # This resource represents a long-running operation that is the result of a
637
+ # network API call.
638
+ class GoogleLongrunningOperation
639
+ include Google::Apis::Core::Hashable
640
+
641
+ # If the value is `false`, it means the operation is still in progress. If `true`
642
+ # , the operation is completed, and either `error` or `response` is available.
643
+ # Corresponds to the JSON property `done`
644
+ # @return [Boolean]
645
+ attr_accessor :done
646
+ alias_method :done?, :done
647
+
648
+ # The `Status` type defines a logical error model that is suitable for different
649
+ # programming environments, including REST APIs and RPC APIs. It is used by [
650
+ # gRPC](https://github.com/grpc). Each `Status` message contains three pieces of
651
+ # data: error code, error message, and error details. You can find out more
652
+ # about this error model and how to work with it in the [API Design Guide](https:
653
+ # //cloud.google.com/apis/design/errors).
654
+ # Corresponds to the JSON property `error`
655
+ # @return [Google::Apis::DevicerunV1::GoogleRpcStatus]
656
+ attr_accessor :error
657
+
658
+ # Service-specific metadata associated with the operation. It typically contains
659
+ # progress information and common metadata such as create time. Some services
660
+ # might not provide such metadata. Any method that returns a long-running
661
+ # operation should document the metadata type, if any.
662
+ # Corresponds to the JSON property `metadata`
663
+ # @return [Hash<String,Object>]
664
+ attr_accessor :metadata
665
+
666
+ # The server-assigned name, which is only unique within the same service that
667
+ # originally returns it. If you use the default HTTP mapping, the `name` should
668
+ # be a resource name ending with `operations/`unique_id``.
669
+ # Corresponds to the JSON property `name`
670
+ # @return [String]
671
+ attr_accessor :name
672
+
673
+ # The normal, successful response of the operation. If the original method
674
+ # returns no data on success, such as `Delete`, the response is `google.protobuf.
675
+ # Empty`. If the original method is standard `Get`/`Create`/`Update`, the
676
+ # response should be the resource. For other methods, the response should have
677
+ # the type `XxxResponse`, where `Xxx` is the original method name. For example,
678
+ # if the original method name is `TakeSnapshot()`, the inferred response type is
679
+ # `TakeSnapshotResponse`.
680
+ # Corresponds to the JSON property `response`
681
+ # @return [Hash<String,Object>]
682
+ attr_accessor :response
683
+
684
+ def initialize(**args)
685
+ update!(**args)
686
+ end
687
+
688
+ # Update properties of this object
689
+ def update!(**args)
690
+ @done = args[:done] if args.key?(:done)
691
+ @error = args[:error] if args.key?(:error)
692
+ @metadata = args[:metadata] if args.key?(:metadata)
693
+ @name = args[:name] if args.key?(:name)
694
+ @response = args[:response] if args.key?(:response)
695
+ end
696
+ end
697
+
698
+ # The `Status` type defines a logical error model that is suitable for different
699
+ # programming environments, including REST APIs and RPC APIs. It is used by [
700
+ # gRPC](https://github.com/grpc). Each `Status` message contains three pieces of
701
+ # data: error code, error message, and error details. You can find out more
702
+ # about this error model and how to work with it in the [API Design Guide](https:
703
+ # //cloud.google.com/apis/design/errors).
704
+ class GoogleRpcStatus
705
+ include Google::Apis::Core::Hashable
706
+
707
+ # The status code, which should be an enum value of google.rpc.Code.
708
+ # Corresponds to the JSON property `code`
709
+ # @return [Fixnum]
710
+ attr_accessor :code
711
+
712
+ # A list of messages that carry the error details. There is a common set of
713
+ # message types for APIs to use.
714
+ # Corresponds to the JSON property `details`
715
+ # @return [Array<Hash<String,Object>>]
716
+ attr_accessor :details
717
+
718
+ # A developer-facing error message, which should be in English. Any user-facing
719
+ # error message should be localized and sent in the google.rpc.Status.details
720
+ # field, or localized by the client.
721
+ # Corresponds to the JSON property `message`
722
+ # @return [String]
723
+ attr_accessor :message
724
+
725
+ def initialize(**args)
726
+ update!(**args)
727
+ end
728
+
729
+ # Update properties of this object
730
+ def update!(**args)
731
+ @code = args[:code] if args.key?(:code)
732
+ @details = args[:details] if args.key?(:details)
733
+ @message = args[:message] if args.key?(:message)
734
+ end
735
+ end
736
+
737
+ # The response message for Locations.ListLocations.
738
+ class ListLocationsResponse
739
+ include Google::Apis::Core::Hashable
740
+
741
+ # A list of locations that matches the specified filter in the request.
742
+ # Corresponds to the JSON property `locations`
743
+ # @return [Array<Google::Apis::DevicerunV1::Location>]
744
+ attr_accessor :locations
745
+
746
+ # The standard List next-page token.
747
+ # Corresponds to the JSON property `nextPageToken`
748
+ # @return [String]
749
+ attr_accessor :next_page_token
750
+
751
+ def initialize(**args)
752
+ update!(**args)
753
+ end
754
+
755
+ # Update properties of this object
756
+ def update!(**args)
757
+ @locations = args[:locations] if args.key?(:locations)
758
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
759
+ end
760
+ end
761
+
762
+ # A resource that represents a Google Cloud location.
763
+ class Location
764
+ include Google::Apis::Core::Hashable
765
+
766
+ # The friendly name for this location, typically a nearby city name. For example,
767
+ # "Tokyo".
768
+ # Corresponds to the JSON property `displayName`
769
+ # @return [String]
770
+ attr_accessor :display_name
771
+
772
+ # Cross-service attributes for the location. For example `"cloud.googleapis.com/
773
+ # region": "us-east1"`
774
+ # Corresponds to the JSON property `labels`
775
+ # @return [Hash<String,String>]
776
+ attr_accessor :labels
777
+
778
+ # The canonical id for this location. For example: `"us-east1"`.
779
+ # Corresponds to the JSON property `locationId`
780
+ # @return [String]
781
+ attr_accessor :location_id
782
+
783
+ # Service-specific metadata. For example the available capacity at the given
784
+ # location.
785
+ # Corresponds to the JSON property `metadata`
786
+ # @return [Hash<String,Object>]
787
+ attr_accessor :metadata
788
+
789
+ # Resource name for the location, which may vary between implementations. For
790
+ # example: `"projects/example-project/locations/us-east1"`
791
+ # Corresponds to the JSON property `name`
792
+ # @return [String]
793
+ attr_accessor :name
794
+
795
+ def initialize(**args)
796
+ update!(**args)
797
+ end
798
+
799
+ # Update properties of this object
800
+ def update!(**args)
801
+ @display_name = args[:display_name] if args.key?(:display_name)
802
+ @labels = args[:labels] if args.key?(:labels)
803
+ @location_id = args[:location_id] if args.key?(:location_id)
804
+ @metadata = args[:metadata] if args.key?(:metadata)
805
+ @name = args[:name] if args.key?(:name)
806
+ end
807
+ end
808
+ end
809
+ end
810
+ end