google-apis-devicerun_v1alpha 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.
- checksums.yaml +7 -0
- data/.yardopts +13 -0
- data/CHANGELOG.md +7 -0
- data/LICENSE.md +202 -0
- data/OVERVIEW.md +96 -0
- data/lib/google/apis/devicerun_v1alpha/classes.rb +2539 -0
- data/lib/google/apis/devicerun_v1alpha/gem_version.rb +28 -0
- data/lib/google/apis/devicerun_v1alpha/representations.rb +1241 -0
- data/lib/google/apis/devicerun_v1alpha/service.rb +681 -0
- data/lib/google/apis/devicerun_v1alpha.rb +37 -0
- data/lib/google-apis-devicerun_v1alpha.rb +15 -0
- metadata +79 -0
|
@@ -0,0 +1,2539 @@
|
|
|
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 DevicerunV1alpha
|
|
24
|
+
|
|
25
|
+
# Allocation config.
|
|
26
|
+
class AllocationConfig
|
|
27
|
+
include Google::Apis::Core::Hashable
|
|
28
|
+
|
|
29
|
+
# Required. At least one device config is required. If more than one device
|
|
30
|
+
# config is required, the multiple devices are allocated to each shard of the
|
|
31
|
+
# OmniLab job to run multi-device-interaction tests.
|
|
32
|
+
# Corresponds to the JSON property `deviceConfigs`
|
|
33
|
+
# @return [Array<Google::Apis::DevicerunV1alpha::DeviceConfig>]
|
|
34
|
+
attr_accessor :device_configs
|
|
35
|
+
|
|
36
|
+
def initialize(**args)
|
|
37
|
+
update!(**args)
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
# Update properties of this object
|
|
41
|
+
def update!(**args)
|
|
42
|
+
@device_configs = args[:device_configs] if args.key?(:device_configs)
|
|
43
|
+
end
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
# Captures a bugreport from the device. The output will be written to a file
|
|
47
|
+
# named `bugreport.zip` in the execution output directory.
|
|
48
|
+
class AndroidBugreportDeviceAction
|
|
49
|
+
include Google::Apis::Core::Hashable
|
|
50
|
+
|
|
51
|
+
# Optional. Whether to deliver the bugreport when the test passes. If false, the
|
|
52
|
+
# bugreport is skipped on pass to save time (default behavior). If true, the
|
|
53
|
+
# bugreport is always delivered.
|
|
54
|
+
# Corresponds to the JSON property `collectOnPass`
|
|
55
|
+
# @return [Boolean]
|
|
56
|
+
attr_accessor :collect_on_pass
|
|
57
|
+
alias_method :collect_on_pass?, :collect_on_pass
|
|
58
|
+
|
|
59
|
+
def initialize(**args)
|
|
60
|
+
update!(**args)
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
# Update properties of this object
|
|
64
|
+
def update!(**args)
|
|
65
|
+
@collect_on_pass = args[:collect_on_pass] if args.key?(:collect_on_pass)
|
|
66
|
+
end
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
# Captures dumpsys output from the device. The output will be written to a file
|
|
70
|
+
# named `dumpsys.log` in the execution output directory.
|
|
71
|
+
class AndroidDumpsysDeviceAction
|
|
72
|
+
include Google::Apis::Core::Hashable
|
|
73
|
+
|
|
74
|
+
# Optional. Whether to deliver the dumpsys when the test passes. If false, the
|
|
75
|
+
# dumpsys is skipped on pass to save time (default behavior). If true, the
|
|
76
|
+
# dumpsys is always delivered.
|
|
77
|
+
# Corresponds to the JSON property `collectOnPass`
|
|
78
|
+
# @return [Boolean]
|
|
79
|
+
attr_accessor :collect_on_pass
|
|
80
|
+
alias_method :collect_on_pass?, :collect_on_pass
|
|
81
|
+
|
|
82
|
+
def initialize(**args)
|
|
83
|
+
update!(**args)
|
|
84
|
+
end
|
|
85
|
+
|
|
86
|
+
# Update properties of this object
|
|
87
|
+
def update!(**args)
|
|
88
|
+
@collect_on_pass = args[:collect_on_pass] if args.key?(:collect_on_pass)
|
|
89
|
+
end
|
|
90
|
+
end
|
|
91
|
+
|
|
92
|
+
# Installs Android packages on the device. At least one installable is specified
|
|
93
|
+
# when using this device action. Limits: - A maximum of 20 installables in total
|
|
94
|
+
# are allowed. - A maximum of 100 files are allowed in total across all
|
|
95
|
+
# installables.
|
|
96
|
+
class AndroidInstallPackagesDeviceAction
|
|
97
|
+
include Google::Apis::Core::Hashable
|
|
98
|
+
|
|
99
|
+
# Optional. Deprecated: use `pre_target_app_installables`, `target_app` and `
|
|
100
|
+
# post_target_app_installables` instead. The Android packages to install on the
|
|
101
|
+
# device. The installation will be performed in the order specified, before the
|
|
102
|
+
# installables of all other fields.
|
|
103
|
+
# Corresponds to the JSON property `installables`
|
|
104
|
+
# @return [Array<Google::Apis::DevicerunV1alpha::AndroidInstallable>]
|
|
105
|
+
attr_accessor :installables
|
|
106
|
+
|
|
107
|
+
# Optional. The Android packages to install on the device after `target_app` (if
|
|
108
|
+
# specified) is installed. The installation will be performed in the order
|
|
109
|
+
# specified.
|
|
110
|
+
# Corresponds to the JSON property `postTargetAppInstallables`
|
|
111
|
+
# @return [Array<Google::Apis::DevicerunV1alpha::AndroidInstallable>]
|
|
112
|
+
attr_accessor :post_target_app_installables
|
|
113
|
+
|
|
114
|
+
# Optional. The Android packages to install on the device before `target_app` (
|
|
115
|
+
# if specified) is installed. The installation will be performed in the order
|
|
116
|
+
# specified.
|
|
117
|
+
# Corresponds to the JSON property `preTargetAppInstallables`
|
|
118
|
+
# @return [Array<Google::Apis::DevicerunV1alpha::AndroidInstallable>]
|
|
119
|
+
attr_accessor :pre_target_app_installables
|
|
120
|
+
|
|
121
|
+
# An Android Installable represents the file(s) for installing an Android
|
|
122
|
+
# package on a device. This can be an APK, an Android App Bundle (AAB), or an
|
|
123
|
+
# APK Set.
|
|
124
|
+
# Corresponds to the JSON property `targetApp`
|
|
125
|
+
# @return [Google::Apis::DevicerunV1alpha::AndroidInstallable]
|
|
126
|
+
attr_accessor :target_app
|
|
127
|
+
|
|
128
|
+
def initialize(**args)
|
|
129
|
+
update!(**args)
|
|
130
|
+
end
|
|
131
|
+
|
|
132
|
+
# Update properties of this object
|
|
133
|
+
def update!(**args)
|
|
134
|
+
@installables = args[:installables] if args.key?(:installables)
|
|
135
|
+
@post_target_app_installables = args[:post_target_app_installables] if args.key?(:post_target_app_installables)
|
|
136
|
+
@pre_target_app_installables = args[:pre_target_app_installables] if args.key?(:pre_target_app_installables)
|
|
137
|
+
@target_app = args[:target_app] if args.key?(:target_app)
|
|
138
|
+
end
|
|
139
|
+
end
|
|
140
|
+
|
|
141
|
+
# An Android Installable represents the file(s) for installing an Android
|
|
142
|
+
# package on a device. This can be an APK, an Android App Bundle (AAB), or an
|
|
143
|
+
# APK Set.
|
|
144
|
+
class AndroidInstallable
|
|
145
|
+
include Google::Apis::Core::Hashable
|
|
146
|
+
|
|
147
|
+
# Required. Files that make up the package. Supported formats are distinguished
|
|
148
|
+
# by their file extension: - APK: One or more files with extension `.apk`. - App
|
|
149
|
+
# Bundle: A single file with extension `.aab`. - APK Set: A single file with
|
|
150
|
+
# extension `.apks`.
|
|
151
|
+
# Corresponds to the JSON property `files`
|
|
152
|
+
# @return [Array<Google::Apis::DevicerunV1alpha::InputFile>]
|
|
153
|
+
attr_accessor :files
|
|
154
|
+
|
|
155
|
+
def initialize(**args)
|
|
156
|
+
update!(**args)
|
|
157
|
+
end
|
|
158
|
+
|
|
159
|
+
# Update properties of this object
|
|
160
|
+
def update!(**args)
|
|
161
|
+
@files = args[:files] if args.key?(:files)
|
|
162
|
+
end
|
|
163
|
+
end
|
|
164
|
+
|
|
165
|
+
# The configuration of an Android instrumentation test. See https://developer.
|
|
166
|
+
# android.com/training/testing/instrumented-tests for more information on
|
|
167
|
+
# Android instrumentation tests.
|
|
168
|
+
class AndroidInstrumentationTest
|
|
169
|
+
include Google::Apis::Core::Hashable
|
|
170
|
+
|
|
171
|
+
# Optional. Additional test options to pass to the test runner. Passed to `am
|
|
172
|
+
# instrument` command as `-e` options, which will be passed to the
|
|
173
|
+
# instrumentation test runner using its `onCreate()` method. Formats supported
|
|
174
|
+
# in test_targets are not allowed to be used here. Limits: - Maximum number of
|
|
175
|
+
# entries: 32. - Maximum key size: 64 bytes (UTF-8). - Maximum value size: 1024
|
|
176
|
+
# bytes (UTF-8).
|
|
177
|
+
# Corresponds to the JSON property `additionalTestOptions`
|
|
178
|
+
# @return [Hash<String,String>]
|
|
179
|
+
attr_accessor :additional_test_options
|
|
180
|
+
|
|
181
|
+
# Optional. Whether to enable code coverage collection for the test. A coverage
|
|
182
|
+
# file `coverage.ec` will be uploaded to the results folder. For this to work,
|
|
183
|
+
# your classes have to be instrumented offline (build time) by EMMA/JaCoCo.
|
|
184
|
+
# Corresponds to the JSON property `enableCodeCoverage`
|
|
185
|
+
# @return [Boolean]
|
|
186
|
+
attr_accessor :enable_code_coverage
|
|
187
|
+
alias_method :enable_code_coverage?, :enable_code_coverage
|
|
188
|
+
|
|
189
|
+
# Optional. The timeout of the instrumentation test. Default value: 5 min. Range:
|
|
190
|
+
# [1 min, 3 hours].
|
|
191
|
+
# Corresponds to the JSON property `instrumentationTimeout`
|
|
192
|
+
# @return [String]
|
|
193
|
+
attr_accessor :instrumentation_timeout
|
|
194
|
+
|
|
195
|
+
# Optional. The version of the Android Test Orchestrator to use for the test.
|
|
196
|
+
# The available orchestrator versions can be retrieved from the catalog service.
|
|
197
|
+
# If set to "auto", the default orchestrator is used. If not set, no
|
|
198
|
+
# orchestrator is used.
|
|
199
|
+
# Corresponds to the JSON property `orchestratorVersion`
|
|
200
|
+
# @return [String]
|
|
201
|
+
attr_accessor :orchestrator_version
|
|
202
|
+
|
|
203
|
+
# The smart sharding strategy to split the job into multiple shards based on the
|
|
204
|
+
# test methods and their recorded execution time.
|
|
205
|
+
# Corresponds to the JSON property `smartSharding`
|
|
206
|
+
# @return [Google::Apis::DevicerunV1alpha::AndroidInstrumentationTestSmartSharding]
|
|
207
|
+
attr_accessor :smart_sharding
|
|
208
|
+
|
|
209
|
+
# An Android Installable represents the file(s) for installing an Android
|
|
210
|
+
# package on a device. This can be an APK, an Android App Bundle (AAB), or an
|
|
211
|
+
# APK Set.
|
|
212
|
+
# Corresponds to the JSON property `testInstallable`
|
|
213
|
+
# @return [Google::Apis::DevicerunV1alpha::AndroidInstallable]
|
|
214
|
+
attr_accessor :test_installable
|
|
215
|
+
|
|
216
|
+
# Optional. Full class name of the test runner class. The class must be `
|
|
217
|
+
# androidx.test.runner.AndroidJUnitRunner` or a subclass of it. The default
|
|
218
|
+
# value is determined by examining the application's manifest. If multiple
|
|
219
|
+
# instrumentations are found, the first one in the manifest will be used.
|
|
220
|
+
# Corresponds to the JSON property `testRunnerClass`
|
|
221
|
+
# @return [String]
|
|
222
|
+
attr_accessor :test_runner_class
|
|
223
|
+
|
|
224
|
+
# Optional. A list of test targets or target filters to run. Each target must be
|
|
225
|
+
# fully qualified with the package name or class name, in one of these formats: -
|
|
226
|
+
# `package package_name` - `notPackage com.package.to.skip` - `class
|
|
227
|
+
# package_name.class_name` - `class package_name.class_name#method_name` - `
|
|
228
|
+
# notClass com.foo.ClassToSkip` - `notClass com.foo.ClassName#testMethodToSkip` -
|
|
229
|
+
# `annotation com.foo.AnnotationToRun` - `notAnnotation com.foo.
|
|
230
|
+
# AnnotationToSkip` - `size [small|medium|large]` Formats like `testfile` or `
|
|
231
|
+
# notTestfile` won't be supported. If empty, all targets in the module will be
|
|
232
|
+
# run. Limits: - Maximum number of entries: 1024.
|
|
233
|
+
# Corresponds to the JSON property `testTargets`
|
|
234
|
+
# @return [Array<String>]
|
|
235
|
+
attr_accessor :test_targets
|
|
236
|
+
|
|
237
|
+
# Uniformly shards test cases given a total number of shards. It will be
|
|
238
|
+
# translated to `-e numShard` and `-e shardIndex` AndroidJUnitRunner arguments.
|
|
239
|
+
# With uniform sharding enabled, specifying either of these sharding arguments
|
|
240
|
+
# via `environment_variables` is invalid. Based on the sharding mechanism
|
|
241
|
+
# AndroidJUnitRunner uses, there is no guarantee that test cases will be
|
|
242
|
+
# distributed uniformly across all shards.
|
|
243
|
+
# Corresponds to the JSON property `uniformSharding`
|
|
244
|
+
# @return [Google::Apis::DevicerunV1alpha::AndroidInstrumentationTestUniformSharding]
|
|
245
|
+
attr_accessor :uniform_sharding
|
|
246
|
+
|
|
247
|
+
def initialize(**args)
|
|
248
|
+
update!(**args)
|
|
249
|
+
end
|
|
250
|
+
|
|
251
|
+
# Update properties of this object
|
|
252
|
+
def update!(**args)
|
|
253
|
+
@additional_test_options = args[:additional_test_options] if args.key?(:additional_test_options)
|
|
254
|
+
@enable_code_coverage = args[:enable_code_coverage] if args.key?(:enable_code_coverage)
|
|
255
|
+
@instrumentation_timeout = args[:instrumentation_timeout] if args.key?(:instrumentation_timeout)
|
|
256
|
+
@orchestrator_version = args[:orchestrator_version] if args.key?(:orchestrator_version)
|
|
257
|
+
@smart_sharding = args[:smart_sharding] if args.key?(:smart_sharding)
|
|
258
|
+
@test_installable = args[:test_installable] if args.key?(:test_installable)
|
|
259
|
+
@test_runner_class = args[:test_runner_class] if args.key?(:test_runner_class)
|
|
260
|
+
@test_targets = args[:test_targets] if args.key?(:test_targets)
|
|
261
|
+
@uniform_sharding = args[:uniform_sharding] if args.key?(:uniform_sharding)
|
|
262
|
+
end
|
|
263
|
+
end
|
|
264
|
+
|
|
265
|
+
# The smart sharding strategy to split the job into multiple shards based on the
|
|
266
|
+
# test methods and their recorded execution time.
|
|
267
|
+
class AndroidInstrumentationTestSmartSharding
|
|
268
|
+
include Google::Apis::Core::Hashable
|
|
269
|
+
|
|
270
|
+
# Optional. The maximum number of shards to create. If unset or less than 1,
|
|
271
|
+
# system-defined max limits are used. This limit takes precedence if the
|
|
272
|
+
# targeted_shard_duration cannot be satisfied. Limits: - For physical devices,
|
|
273
|
+
# the number of shards must be <= 20. - For virtual devices, the number of
|
|
274
|
+
# shards must be <= 200.
|
|
275
|
+
# Corresponds to the JSON property `maxShardCount`
|
|
276
|
+
# @return [Fixnum]
|
|
277
|
+
attr_accessor :max_shard_count
|
|
278
|
+
|
|
279
|
+
# Required. The targeted duration of each shard. Limits: - Must be at least 2
|
|
280
|
+
# minutes. - Must be at most 3 hours. Shard duration is not guaranteed because
|
|
281
|
+
# smart sharding uses test case history and default durations which may not be
|
|
282
|
+
# accurate. Durations are calculated based on the following inputs: - Timing
|
|
283
|
+
# records from previous runs of the same test case. - For new test cases, the
|
|
284
|
+
# average duration of other known test cases. - A system-chosen, default
|
|
285
|
+
# duration if there are no previous timing records available. Because the actual
|
|
286
|
+
# shard duration can exceed the targeted shard duration, we recommend that you
|
|
287
|
+
# set the targeted value at least 5 minutes less than the maximum allowed
|
|
288
|
+
# instrumentation timeout. This approach avoids cancelling the shard before all
|
|
289
|
+
# tests can finish.
|
|
290
|
+
# Corresponds to the JSON property `targetedShardDuration`
|
|
291
|
+
# @return [String]
|
|
292
|
+
attr_accessor :targeted_shard_duration
|
|
293
|
+
|
|
294
|
+
# Input file.
|
|
295
|
+
# Corresponds to the JSON property `timingRecord`
|
|
296
|
+
# @return [Google::Apis::DevicerunV1alpha::InputFile]
|
|
297
|
+
attr_accessor :timing_record
|
|
298
|
+
|
|
299
|
+
def initialize(**args)
|
|
300
|
+
update!(**args)
|
|
301
|
+
end
|
|
302
|
+
|
|
303
|
+
# Update properties of this object
|
|
304
|
+
def update!(**args)
|
|
305
|
+
@max_shard_count = args[:max_shard_count] if args.key?(:max_shard_count)
|
|
306
|
+
@targeted_shard_duration = args[:targeted_shard_duration] if args.key?(:targeted_shard_duration)
|
|
307
|
+
@timing_record = args[:timing_record] if args.key?(:timing_record)
|
|
308
|
+
end
|
|
309
|
+
end
|
|
310
|
+
|
|
311
|
+
# Uniformly shards test cases given a total number of shards. It will be
|
|
312
|
+
# translated to `-e numShard` and `-e shardIndex` AndroidJUnitRunner arguments.
|
|
313
|
+
# With uniform sharding enabled, specifying either of these sharding arguments
|
|
314
|
+
# via `environment_variables` is invalid. Based on the sharding mechanism
|
|
315
|
+
# AndroidJUnitRunner uses, there is no guarantee that test cases will be
|
|
316
|
+
# distributed uniformly across all shards.
|
|
317
|
+
class AndroidInstrumentationTestUniformSharding
|
|
318
|
+
include Google::Apis::Core::Hashable
|
|
319
|
+
|
|
320
|
+
# Required. The total number of shards to create. This must always be a positive
|
|
321
|
+
# number that is no greater than the total number of test cases. Limits: - For
|
|
322
|
+
# physical devices, the number of shards must be <= 20. - For virtual devices,
|
|
323
|
+
# the number of shards must be <= 200.
|
|
324
|
+
# Corresponds to the JSON property `shardCount`
|
|
325
|
+
# @return [Fixnum]
|
|
326
|
+
attr_accessor :shard_count
|
|
327
|
+
|
|
328
|
+
def initialize(**args)
|
|
329
|
+
update!(**args)
|
|
330
|
+
end
|
|
331
|
+
|
|
332
|
+
# Update properties of this object
|
|
333
|
+
def update!(**args)
|
|
334
|
+
@shard_count = args[:shard_count] if args.key?(:shard_count)
|
|
335
|
+
end
|
|
336
|
+
end
|
|
337
|
+
|
|
338
|
+
# Collects logcat output from the device. The output will be written to a file
|
|
339
|
+
# named `logcat.txt` in the execution output directory.
|
|
340
|
+
class AndroidLogcatDeviceAction
|
|
341
|
+
include Google::Apis::Core::Hashable
|
|
342
|
+
|
|
343
|
+
def initialize(**args)
|
|
344
|
+
update!(**args)
|
|
345
|
+
end
|
|
346
|
+
|
|
347
|
+
# Update properties of this object
|
|
348
|
+
def update!(**args)
|
|
349
|
+
end
|
|
350
|
+
end
|
|
351
|
+
|
|
352
|
+
# Mocks the location of the Android device.
|
|
353
|
+
class AndroidMockLocationDeviceAction
|
|
354
|
+
include Google::Apis::Core::Hashable
|
|
355
|
+
|
|
356
|
+
# An object that represents a latitude/longitude pair. This is expressed as a
|
|
357
|
+
# pair of doubles to represent degrees latitude and degrees longitude. Unless
|
|
358
|
+
# specified otherwise, this object must conform to the WGS84 standard. Values
|
|
359
|
+
# must be within normalized ranges.
|
|
360
|
+
# Corresponds to the JSON property `location`
|
|
361
|
+
# @return [Google::Apis::DevicerunV1alpha::LatLng]
|
|
362
|
+
attr_accessor :location
|
|
363
|
+
|
|
364
|
+
def initialize(**args)
|
|
365
|
+
update!(**args)
|
|
366
|
+
end
|
|
367
|
+
|
|
368
|
+
# Update properties of this object
|
|
369
|
+
def update!(**args)
|
|
370
|
+
@location = args[:location] if args.key?(:location)
|
|
371
|
+
end
|
|
372
|
+
end
|
|
373
|
+
|
|
374
|
+
# The configuration of an Android native binary execution.
|
|
375
|
+
class AndroidNativeBinary
|
|
376
|
+
include Google::Apis::Core::Hashable
|
|
377
|
+
|
|
378
|
+
# Input file.
|
|
379
|
+
# Corresponds to the JSON property `androidNativeBinary`
|
|
380
|
+
# @return [Google::Apis::DevicerunV1alpha::InputFile]
|
|
381
|
+
attr_accessor :android_native_binary
|
|
382
|
+
|
|
383
|
+
# Optional. Arguments for running the binary file. The flags will be appended to
|
|
384
|
+
# the command line that invokes the binary. The number of options is limited to
|
|
385
|
+
# 100.
|
|
386
|
+
# Corresponds to the JSON property `args`
|
|
387
|
+
# @return [Array<String>]
|
|
388
|
+
attr_accessor :args
|
|
389
|
+
|
|
390
|
+
# Optional. A map of environment variables to set for the binary process. The
|
|
391
|
+
# keys are the variable names and the values are the variable values. The
|
|
392
|
+
# maximum number of entries is 100. Each key is limited to 128 characters and
|
|
393
|
+
# must conform to POSIX standards. Each value is limited to 2048 characters. The
|
|
394
|
+
# total size of all environment variables must not exceed 16 KiB.
|
|
395
|
+
# Corresponds to the JSON property `envVars`
|
|
396
|
+
# @return [Hash<String,String>]
|
|
397
|
+
attr_accessor :env_vars
|
|
398
|
+
|
|
399
|
+
# Optional. The timeout of the execution. Default value: 5 min. Range: [1 min, 3
|
|
400
|
+
# hours].
|
|
401
|
+
# Corresponds to the JSON property `executionTimeout`
|
|
402
|
+
# @return [String]
|
|
403
|
+
attr_accessor :execution_timeout
|
|
404
|
+
|
|
405
|
+
def initialize(**args)
|
|
406
|
+
update!(**args)
|
|
407
|
+
end
|
|
408
|
+
|
|
409
|
+
# Update properties of this object
|
|
410
|
+
def update!(**args)
|
|
411
|
+
@android_native_binary = args[:android_native_binary] if args.key?(:android_native_binary)
|
|
412
|
+
@args = args[:args] if args.key?(:args)
|
|
413
|
+
@env_vars = args[:env_vars] if args.key?(:env_vars)
|
|
414
|
+
@execution_timeout = args[:execution_timeout] if args.key?(:execution_timeout)
|
|
415
|
+
end
|
|
416
|
+
end
|
|
417
|
+
|
|
418
|
+
# Sets the orientation of the device.
|
|
419
|
+
class AndroidOrientationDeviceAction
|
|
420
|
+
include Google::Apis::Core::Hashable
|
|
421
|
+
|
|
422
|
+
# Required. The orientation to set the device to. One of `portrait` or `
|
|
423
|
+
# landscape`.
|
|
424
|
+
# Corresponds to the JSON property `orientation`
|
|
425
|
+
# @return [String]
|
|
426
|
+
attr_accessor :orientation
|
|
427
|
+
|
|
428
|
+
def initialize(**args)
|
|
429
|
+
update!(**args)
|
|
430
|
+
end
|
|
431
|
+
|
|
432
|
+
# Update properties of this object
|
|
433
|
+
def update!(**args)
|
|
434
|
+
@orientation = args[:orientation] if args.key?(:orientation)
|
|
435
|
+
end
|
|
436
|
+
end
|
|
437
|
+
|
|
438
|
+
# Pulls directories and files from the device at the end of the run. Files will
|
|
439
|
+
# be copied to the '/artifacts' directory, with the absolute path structure
|
|
440
|
+
# preserved. Note that: 1. A clean device is provided for the run. 2. Any
|
|
441
|
+
# existing files in the output directory may be overwritten. 3. Pulling files is
|
|
442
|
+
# best effort. Will skip files if they don't exist on the device.
|
|
443
|
+
class AndroidPullFilesDeviceAction
|
|
444
|
+
include Google::Apis::Core::Hashable
|
|
445
|
+
|
|
446
|
+
# Required. Absolute directory or file paths to pull from the device. Limits: -
|
|
447
|
+
# A maximum of 10 paths are allowed.
|
|
448
|
+
# Corresponds to the JSON property `paths`
|
|
449
|
+
# @return [Array<String>]
|
|
450
|
+
attr_accessor :paths
|
|
451
|
+
|
|
452
|
+
def initialize(**args)
|
|
453
|
+
update!(**args)
|
|
454
|
+
end
|
|
455
|
+
|
|
456
|
+
# Update properties of this object
|
|
457
|
+
def update!(**args)
|
|
458
|
+
@paths = args[:paths] if args.key?(:paths)
|
|
459
|
+
end
|
|
460
|
+
end
|
|
461
|
+
|
|
462
|
+
# Pushes files to the device at the beginning of the run. Files are overwritten
|
|
463
|
+
# if a file with the same path already exists on the device, if device
|
|
464
|
+
# permissions allow.
|
|
465
|
+
class AndroidPushFilesDeviceAction
|
|
466
|
+
include Google::Apis::Core::Hashable
|
|
467
|
+
|
|
468
|
+
# Required. Configs of pushing files to the device. Limits: - A maximum of 50
|
|
469
|
+
# files are allowed.
|
|
470
|
+
# Corresponds to the JSON property `fileConfigs`
|
|
471
|
+
# @return [Array<Google::Apis::DevicerunV1alpha::AndroidPushFilesDeviceActionFileConfig>]
|
|
472
|
+
attr_accessor :file_configs
|
|
473
|
+
|
|
474
|
+
def initialize(**args)
|
|
475
|
+
update!(**args)
|
|
476
|
+
end
|
|
477
|
+
|
|
478
|
+
# Update properties of this object
|
|
479
|
+
def update!(**args)
|
|
480
|
+
@file_configs = args[:file_configs] if args.key?(:file_configs)
|
|
481
|
+
end
|
|
482
|
+
end
|
|
483
|
+
|
|
484
|
+
# The configuration of pushing a file to the device.
|
|
485
|
+
class AndroidPushFilesDeviceActionFileConfig
|
|
486
|
+
include Google::Apis::Core::Hashable
|
|
487
|
+
|
|
488
|
+
# Required. The destination path on the device.
|
|
489
|
+
# Corresponds to the JSON property `destinationPath`
|
|
490
|
+
# @return [String]
|
|
491
|
+
attr_accessor :destination_path
|
|
492
|
+
|
|
493
|
+
# Input file.
|
|
494
|
+
# Corresponds to the JSON property `sourceFile`
|
|
495
|
+
# @return [Google::Apis::DevicerunV1alpha::InputFile]
|
|
496
|
+
attr_accessor :source_file
|
|
497
|
+
|
|
498
|
+
def initialize(**args)
|
|
499
|
+
update!(**args)
|
|
500
|
+
end
|
|
501
|
+
|
|
502
|
+
# Update properties of this object
|
|
503
|
+
def update!(**args)
|
|
504
|
+
@destination_path = args[:destination_path] if args.key?(:destination_path)
|
|
505
|
+
@source_file = args[:source_file] if args.key?(:source_file)
|
|
506
|
+
end
|
|
507
|
+
end
|
|
508
|
+
|
|
509
|
+
# Records a video of the device screen during the run. The video will be written
|
|
510
|
+
# to a file named `video.mp4` in the execution output directory.
|
|
511
|
+
class AndroidRecordVideoDeviceAction
|
|
512
|
+
include Google::Apis::Core::Hashable
|
|
513
|
+
|
|
514
|
+
# Optional. Whether to discard and not upload the recording when the test passes.
|
|
515
|
+
# Default is false.
|
|
516
|
+
# Corresponds to the JSON property `discardOnPass`
|
|
517
|
+
# @return [Boolean]
|
|
518
|
+
attr_accessor :discard_on_pass
|
|
519
|
+
alias_method :discard_on_pass?, :discard_on_pass
|
|
520
|
+
|
|
521
|
+
def initialize(**args)
|
|
522
|
+
update!(**args)
|
|
523
|
+
end
|
|
524
|
+
|
|
525
|
+
# Update properties of this object
|
|
526
|
+
def update!(**args)
|
|
527
|
+
@discard_on_pass = args[:discard_on_pass] if args.key?(:discard_on_pass)
|
|
528
|
+
end
|
|
529
|
+
end
|
|
530
|
+
|
|
531
|
+
# Switches the locale (language and region) of the device.
|
|
532
|
+
class AndroidSwitchLocaleDeviceAction
|
|
533
|
+
include Google::Apis::Core::Hashable
|
|
534
|
+
|
|
535
|
+
# Required. The locale (language and region) to switch the device to. The format
|
|
536
|
+
# is `language-region`, e.g. "en-US", "zh-CN", etc. The typical language value
|
|
537
|
+
# is a two or three-letter language code as defined in ISO639. The typical
|
|
538
|
+
# region value is a two-letter ISO 3166 code or a three-digit UN M.49 area code.
|
|
539
|
+
# Corresponds to the JSON property `localeCode`
|
|
540
|
+
# @return [String]
|
|
541
|
+
attr_accessor :locale_code
|
|
542
|
+
|
|
543
|
+
def initialize(**args)
|
|
544
|
+
update!(**args)
|
|
545
|
+
end
|
|
546
|
+
|
|
547
|
+
# Update properties of this object
|
|
548
|
+
def update!(**args)
|
|
549
|
+
@locale_code = args[:locale_code] if args.key?(:locale_code)
|
|
550
|
+
end
|
|
551
|
+
end
|
|
552
|
+
|
|
553
|
+
# Request to cancel a session.
|
|
554
|
+
class CancelSessionRequest
|
|
555
|
+
include Google::Apis::Core::Hashable
|
|
556
|
+
|
|
557
|
+
def initialize(**args)
|
|
558
|
+
update!(**args)
|
|
559
|
+
end
|
|
560
|
+
|
|
561
|
+
# Update properties of this object
|
|
562
|
+
def update!(**args)
|
|
563
|
+
end
|
|
564
|
+
end
|
|
565
|
+
|
|
566
|
+
# Response of the cancel session request.
|
|
567
|
+
class CancelSessionResponse
|
|
568
|
+
include Google::Apis::Core::Hashable
|
|
569
|
+
|
|
570
|
+
# The result of the request.
|
|
571
|
+
# Corresponds to the JSON property `cancelResult`
|
|
572
|
+
# @return [String]
|
|
573
|
+
attr_accessor :cancel_result
|
|
574
|
+
|
|
575
|
+
def initialize(**args)
|
|
576
|
+
update!(**args)
|
|
577
|
+
end
|
|
578
|
+
|
|
579
|
+
# Update properties of this object
|
|
580
|
+
def update!(**args)
|
|
581
|
+
@cancel_result = args[:cancel_result] if args.key?(:cancel_result)
|
|
582
|
+
end
|
|
583
|
+
end
|
|
584
|
+
|
|
585
|
+
# Android-specific device attributes.
|
|
586
|
+
class CatalogAndroidDeviceDetails
|
|
587
|
+
include Google::Apis::Core::Hashable
|
|
588
|
+
|
|
589
|
+
# Output only. Mirrors the AOSP `ro.build.type` property, e.g. "user", "
|
|
590
|
+
# userdebug", "eng". Empty if unknown.
|
|
591
|
+
# Corresponds to the JSON property `buildType`
|
|
592
|
+
# @return [String]
|
|
593
|
+
attr_accessor :build_type
|
|
594
|
+
|
|
595
|
+
# Output only. Lists ABIs supported by the device (android.os.Build.
|
|
596
|
+
# SUPPORTED_ABIS), most preferred first, e.g. "arm64-v8a".
|
|
597
|
+
# Corresponds to the JSON property `supportedAbis`
|
|
598
|
+
# @return [Array<String>]
|
|
599
|
+
attr_accessor :supported_abis
|
|
600
|
+
|
|
601
|
+
def initialize(**args)
|
|
602
|
+
update!(**args)
|
|
603
|
+
end
|
|
604
|
+
|
|
605
|
+
# Update properties of this object
|
|
606
|
+
def update!(**args)
|
|
607
|
+
@build_type = args[:build_type] if args.key?(:build_type)
|
|
608
|
+
@supported_abis = args[:supported_abis] if args.key?(:supported_abis)
|
|
609
|
+
end
|
|
610
|
+
end
|
|
611
|
+
|
|
612
|
+
# AndroidX Test Orchestrator-specific attributes. Reserved for future
|
|
613
|
+
# orchestrator-only fields.
|
|
614
|
+
class CatalogAndroidxTestOrchestratorDetails
|
|
615
|
+
include Google::Apis::Core::Hashable
|
|
616
|
+
|
|
617
|
+
def initialize(**args)
|
|
618
|
+
update!(**args)
|
|
619
|
+
end
|
|
620
|
+
|
|
621
|
+
# Update properties of this object
|
|
622
|
+
def update!(**args)
|
|
623
|
+
end
|
|
624
|
+
end
|
|
625
|
+
|
|
626
|
+
# Per-product metadata for the Automation (DeviceRun) product.
|
|
627
|
+
class CatalogAutomationSupport
|
|
628
|
+
include Google::Apis::Core::Hashable
|
|
629
|
+
|
|
630
|
+
def initialize(**args)
|
|
631
|
+
update!(**args)
|
|
632
|
+
end
|
|
633
|
+
|
|
634
|
+
# Update properties of this object
|
|
635
|
+
def update!(**args)
|
|
636
|
+
end
|
|
637
|
+
end
|
|
638
|
+
|
|
639
|
+
# A single routable device configuration in the catalog.
|
|
640
|
+
class CatalogDevice
|
|
641
|
+
include Google::Apis::Core::Hashable
|
|
642
|
+
|
|
643
|
+
# Output only. Reasons for access denial. This model is accessible/usable if
|
|
644
|
+
# this list is empty, otherwise the model is viewable only.
|
|
645
|
+
# Corresponds to the JSON property `accessDeniedReasons`
|
|
646
|
+
# @return [Array<String>]
|
|
647
|
+
attr_accessor :access_denied_reasons
|
|
648
|
+
|
|
649
|
+
# Android-specific device attributes.
|
|
650
|
+
# Corresponds to the JSON property `androidDetails`
|
|
651
|
+
# @return [Google::Apis::DevicerunV1alpha::CatalogAndroidDeviceDetails]
|
|
652
|
+
attr_accessor :android_details
|
|
653
|
+
|
|
654
|
+
# Fleet availability for a device configuration.
|
|
655
|
+
# Corresponds to the JSON property `availability`
|
|
656
|
+
# @return [Google::Apis::DevicerunV1alpha::CatalogDeviceAvailability]
|
|
657
|
+
attr_accessor :availability
|
|
658
|
+
|
|
659
|
+
# Output only. Provides a human-readable display name, e.g. "Pixel 5".
|
|
660
|
+
# Corresponds to the JSON property `displayName`
|
|
661
|
+
# @return [String]
|
|
662
|
+
attr_accessor :display_name
|
|
663
|
+
|
|
664
|
+
# Output only. Specifies the form factor of the device.
|
|
665
|
+
# Corresponds to the JSON property `formFactor`
|
|
666
|
+
# @return [String]
|
|
667
|
+
attr_accessor :form_factor
|
|
668
|
+
|
|
669
|
+
# Output only. Indicates whether the device is physical or virtual.
|
|
670
|
+
# Corresponds to the JSON property `hardwareType`
|
|
671
|
+
# @return [String]
|
|
672
|
+
attr_accessor :hardware_type
|
|
673
|
+
|
|
674
|
+
# iOS-specific device attributes. Reserved for future iOS-only fields.
|
|
675
|
+
# Corresponds to the JSON property `iosDetails`
|
|
676
|
+
# @return [Google::Apis::DevicerunV1alpha::CatalogIosDeviceDetails]
|
|
677
|
+
attr_accessor :ios_details
|
|
678
|
+
|
|
679
|
+
# The lab hosting a device.
|
|
680
|
+
# Corresponds to the JSON property `labInfo`
|
|
681
|
+
# @return [Google::Apis::DevicerunV1alpha::CatalogLabInfo]
|
|
682
|
+
attr_accessor :lab_info
|
|
683
|
+
|
|
684
|
+
# Output only. Additional information. Informational only. May change over the
|
|
685
|
+
# lifecycle of a device.
|
|
686
|
+
# Corresponds to the JSON property `labels`
|
|
687
|
+
# @return [Hash<String,String>]
|
|
688
|
+
attr_accessor :labels
|
|
689
|
+
|
|
690
|
+
# Catalog resource lifecycle: maturity state plus key lifecycle dates.
|
|
691
|
+
# Corresponds to the JSON property `lifecycle`
|
|
692
|
+
# @return [Google::Apis::DevicerunV1alpha::CatalogLifecycle]
|
|
693
|
+
attr_accessor :lifecycle
|
|
694
|
+
|
|
695
|
+
# Output only. Specifies the hardware manufacturer of the device.
|
|
696
|
+
# Corresponds to the JSON property `manufacturer`
|
|
697
|
+
# @return [String]
|
|
698
|
+
attr_accessor :manufacturer
|
|
699
|
+
|
|
700
|
+
# Output only. Provides a human-readable model identifier for this device,
|
|
701
|
+
# independent of OS version. May be empty. Platform-dependent: * Android
|
|
702
|
+
# physical: hardware codename (android.os.Build.DEVICE), e.g. "shiba". * Android
|
|
703
|
+
# virtual: AVD model identifier, e.g. "MediumPhone.arm". * iOS: model identifier,
|
|
704
|
+
# e.g. "iphone14pro".
|
|
705
|
+
# Corresponds to the JSON property `modelCode`
|
|
706
|
+
# @return [String]
|
|
707
|
+
attr_accessor :model_code
|
|
708
|
+
|
|
709
|
+
# Identifier. Identifies the device resource. Format: `projects/`project`/
|
|
710
|
+
# locations/`location`/devices/`device``. The `device` segment is an opaque,
|
|
711
|
+
# stable string. Clients must not parse it to derive or assume device-specific
|
|
712
|
+
# details.
|
|
713
|
+
# Corresponds to the JSON property `name`
|
|
714
|
+
# @return [String]
|
|
715
|
+
attr_accessor :name
|
|
716
|
+
|
|
717
|
+
# Output only. Specifies the OS version, e.g. "30" (Android API level) or "17.4"
|
|
718
|
+
# (iOS).
|
|
719
|
+
# Corresponds to the JSON property `osVersion`
|
|
720
|
+
# @return [String]
|
|
721
|
+
attr_accessor :os_version
|
|
722
|
+
|
|
723
|
+
# Output only. Specifies the platform of the device.
|
|
724
|
+
# Corresponds to the JSON property `platform`
|
|
725
|
+
# @return [String]
|
|
726
|
+
attr_accessor :platform
|
|
727
|
+
|
|
728
|
+
# Screen measurements of a device.
|
|
729
|
+
# Corresponds to the JSON property `primaryScreen`
|
|
730
|
+
# @return [Google::Apis::DevicerunV1alpha::CatalogScreenMetrics]
|
|
731
|
+
attr_accessor :primary_screen
|
|
732
|
+
|
|
733
|
+
# Output only. Products/Services supported by this device.
|
|
734
|
+
# Corresponds to the JSON property `supportedProducts`
|
|
735
|
+
# @return [Array<Google::Apis::DevicerunV1alpha::CatalogSupportedProduct>]
|
|
736
|
+
attr_accessor :supported_products
|
|
737
|
+
|
|
738
|
+
def initialize(**args)
|
|
739
|
+
update!(**args)
|
|
740
|
+
end
|
|
741
|
+
|
|
742
|
+
# Update properties of this object
|
|
743
|
+
def update!(**args)
|
|
744
|
+
@access_denied_reasons = args[:access_denied_reasons] if args.key?(:access_denied_reasons)
|
|
745
|
+
@android_details = args[:android_details] if args.key?(:android_details)
|
|
746
|
+
@availability = args[:availability] if args.key?(:availability)
|
|
747
|
+
@display_name = args[:display_name] if args.key?(:display_name)
|
|
748
|
+
@form_factor = args[:form_factor] if args.key?(:form_factor)
|
|
749
|
+
@hardware_type = args[:hardware_type] if args.key?(:hardware_type)
|
|
750
|
+
@ios_details = args[:ios_details] if args.key?(:ios_details)
|
|
751
|
+
@lab_info = args[:lab_info] if args.key?(:lab_info)
|
|
752
|
+
@labels = args[:labels] if args.key?(:labels)
|
|
753
|
+
@lifecycle = args[:lifecycle] if args.key?(:lifecycle)
|
|
754
|
+
@manufacturer = args[:manufacturer] if args.key?(:manufacturer)
|
|
755
|
+
@model_code = args[:model_code] if args.key?(:model_code)
|
|
756
|
+
@name = args[:name] if args.key?(:name)
|
|
757
|
+
@os_version = args[:os_version] if args.key?(:os_version)
|
|
758
|
+
@platform = args[:platform] if args.key?(:platform)
|
|
759
|
+
@primary_screen = args[:primary_screen] if args.key?(:primary_screen)
|
|
760
|
+
@supported_products = args[:supported_products] if args.key?(:supported_products)
|
|
761
|
+
end
|
|
762
|
+
end
|
|
763
|
+
|
|
764
|
+
# Fleet availability for a device configuration.
|
|
765
|
+
class CatalogDeviceAvailability
|
|
766
|
+
include Google::Apis::Core::Hashable
|
|
767
|
+
|
|
768
|
+
# Output only. Specifies the current availability bucket (idle, immediately
|
|
769
|
+
# allocatable devices) for this device configuration. This is a best-effort
|
|
770
|
+
# snapshot, refreshed periodically. It fluctuates depending on traffic as other
|
|
771
|
+
# requests allocate devices.
|
|
772
|
+
# Corresponds to the JSON property `available`
|
|
773
|
+
# @return [String]
|
|
774
|
+
attr_accessor :available
|
|
775
|
+
|
|
776
|
+
# Output only. Specifies the current capacity bucket for this device
|
|
777
|
+
# configuration. Represents the total number of online devices (idle or in use).
|
|
778
|
+
# Corresponds to the JSON property `capacity`
|
|
779
|
+
# @return [String]
|
|
780
|
+
attr_accessor :capacity
|
|
781
|
+
|
|
782
|
+
def initialize(**args)
|
|
783
|
+
update!(**args)
|
|
784
|
+
end
|
|
785
|
+
|
|
786
|
+
# Update properties of this object
|
|
787
|
+
def update!(**args)
|
|
788
|
+
@available = args[:available] if args.key?(:available)
|
|
789
|
+
@capacity = args[:capacity] if args.key?(:capacity)
|
|
790
|
+
end
|
|
791
|
+
end
|
|
792
|
+
|
|
793
|
+
# Per-product metadata for the DeviceStreaming product.
|
|
794
|
+
class CatalogDeviceStreamingSupport
|
|
795
|
+
include Google::Apis::Core::Hashable
|
|
796
|
+
|
|
797
|
+
# Output only. Specifies the minimum Android Studio version that supports this
|
|
798
|
+
# device. Optional; only set when the device is known to work only at or above a
|
|
799
|
+
# certain Android Studio version. Expected format "major.minor.micro.patch", e.g.
|
|
800
|
+
# "5921.22.2211.8881706".
|
|
801
|
+
# Corresponds to the JSON property `minimumAndroidStudioVersion`
|
|
802
|
+
# @return [String]
|
|
803
|
+
attr_accessor :minimum_android_studio_version
|
|
804
|
+
|
|
805
|
+
def initialize(**args)
|
|
806
|
+
update!(**args)
|
|
807
|
+
end
|
|
808
|
+
|
|
809
|
+
# Update properties of this object
|
|
810
|
+
def update!(**args)
|
|
811
|
+
@minimum_android_studio_version = args[:minimum_android_studio_version] if args.key?(:minimum_android_studio_version)
|
|
812
|
+
end
|
|
813
|
+
end
|
|
814
|
+
|
|
815
|
+
# iOS-specific device attributes. Reserved for future iOS-only fields.
|
|
816
|
+
class CatalogIosDeviceDetails
|
|
817
|
+
include Google::Apis::Core::Hashable
|
|
818
|
+
|
|
819
|
+
def initialize(**args)
|
|
820
|
+
update!(**args)
|
|
821
|
+
end
|
|
822
|
+
|
|
823
|
+
# Update properties of this object
|
|
824
|
+
def update!(**args)
|
|
825
|
+
end
|
|
826
|
+
end
|
|
827
|
+
|
|
828
|
+
# The lab hosting a device.
|
|
829
|
+
class CatalogLabInfo
|
|
830
|
+
include Google::Apis::Core::Hashable
|
|
831
|
+
|
|
832
|
+
# Output only. Display name of the lab where the device is hosted. If empty, the
|
|
833
|
+
# device is hosted in a Google owned lab.
|
|
834
|
+
# Corresponds to the JSON property `displayName`
|
|
835
|
+
# @return [String]
|
|
836
|
+
attr_accessor :display_name
|
|
837
|
+
|
|
838
|
+
# Output only. The Unicode country/region code (CLDR) of the lab where the
|
|
839
|
+
# device is hosted, e.g. "US" for United States, "KR" for South Korea. Empty
|
|
840
|
+
# when the hosting region is not published.
|
|
841
|
+
# Corresponds to the JSON property `regionCode`
|
|
842
|
+
# @return [String]
|
|
843
|
+
attr_accessor :region_code
|
|
844
|
+
|
|
845
|
+
def initialize(**args)
|
|
846
|
+
update!(**args)
|
|
847
|
+
end
|
|
848
|
+
|
|
849
|
+
# Update properties of this object
|
|
850
|
+
def update!(**args)
|
|
851
|
+
@display_name = args[:display_name] if args.key?(:display_name)
|
|
852
|
+
@region_code = args[:region_code] if args.key?(:region_code)
|
|
853
|
+
end
|
|
854
|
+
end
|
|
855
|
+
|
|
856
|
+
# Catalog resource lifecycle: maturity state plus key lifecycle dates.
|
|
857
|
+
class CatalogLifecycle
|
|
858
|
+
include Google::Apis::Core::Hashable
|
|
859
|
+
|
|
860
|
+
# Represents a whole or partial calendar date, such as a birthday. The time of
|
|
861
|
+
# day and time zone are either specified elsewhere or are insignificant. The
|
|
862
|
+
# date is relative to the Gregorian Calendar. This can represent one of the
|
|
863
|
+
# following: * A full date, with non-zero year, month, and day values. * A month
|
|
864
|
+
# and day, with a zero year (for example, an anniversary). * A year on its own,
|
|
865
|
+
# with a zero month and a zero day. * A year and month, with a zero day (for
|
|
866
|
+
# example, a credit card expiration date). Related types: * google.type.
|
|
867
|
+
# TimeOfDay * google.type.DateTime * google.protobuf.Timestamp
|
|
868
|
+
# Corresponds to the JSON property `removalDate`
|
|
869
|
+
# @return [Google::Apis::DevicerunV1alpha::Date]
|
|
870
|
+
attr_accessor :removal_date
|
|
871
|
+
|
|
872
|
+
# Output only. Specifies the current maturity state of the resource.
|
|
873
|
+
# Corresponds to the JSON property `state`
|
|
874
|
+
# @return [String]
|
|
875
|
+
attr_accessor :state
|
|
876
|
+
|
|
877
|
+
def initialize(**args)
|
|
878
|
+
update!(**args)
|
|
879
|
+
end
|
|
880
|
+
|
|
881
|
+
# Update properties of this object
|
|
882
|
+
def update!(**args)
|
|
883
|
+
@removal_date = args[:removal_date] if args.key?(:removal_date)
|
|
884
|
+
@state = args[:state] if args.key?(:state)
|
|
885
|
+
end
|
|
886
|
+
end
|
|
887
|
+
|
|
888
|
+
# Response including listed devices.
|
|
889
|
+
class CatalogListDevicesResponse
|
|
890
|
+
include Google::Apis::Core::Hashable
|
|
891
|
+
|
|
892
|
+
# The list of devices.
|
|
893
|
+
# Corresponds to the JSON property `devices`
|
|
894
|
+
# @return [Array<Google::Apis::DevicerunV1alpha::CatalogDevice>]
|
|
895
|
+
attr_accessor :devices
|
|
896
|
+
|
|
897
|
+
# Token to receive the next page of devices. This will be absent if the end of
|
|
898
|
+
# the response list has been reached.
|
|
899
|
+
# Corresponds to the JSON property `nextPageToken`
|
|
900
|
+
# @return [String]
|
|
901
|
+
attr_accessor :next_page_token
|
|
902
|
+
|
|
903
|
+
def initialize(**args)
|
|
904
|
+
update!(**args)
|
|
905
|
+
end
|
|
906
|
+
|
|
907
|
+
# Update properties of this object
|
|
908
|
+
def update!(**args)
|
|
909
|
+
@devices = args[:devices] if args.key?(:devices)
|
|
910
|
+
@next_page_token = args[:next_page_token] if args.key?(:next_page_token)
|
|
911
|
+
end
|
|
912
|
+
end
|
|
913
|
+
|
|
914
|
+
# Response including listed software versions.
|
|
915
|
+
class CatalogListSoftwareVersionsResponse
|
|
916
|
+
include Google::Apis::Core::Hashable
|
|
917
|
+
|
|
918
|
+
# Token to receive the next page of software versions. This will be absent if
|
|
919
|
+
# the end of the response list has been reached.
|
|
920
|
+
# Corresponds to the JSON property `nextPageToken`
|
|
921
|
+
# @return [String]
|
|
922
|
+
attr_accessor :next_page_token
|
|
923
|
+
|
|
924
|
+
# The list of software versions.
|
|
925
|
+
# Corresponds to the JSON property `softwareVersions`
|
|
926
|
+
# @return [Array<Google::Apis::DevicerunV1alpha::CatalogSoftwareVersion>]
|
|
927
|
+
attr_accessor :software_versions
|
|
928
|
+
|
|
929
|
+
def initialize(**args)
|
|
930
|
+
update!(**args)
|
|
931
|
+
end
|
|
932
|
+
|
|
933
|
+
# Update properties of this object
|
|
934
|
+
def update!(**args)
|
|
935
|
+
@next_page_token = args[:next_page_token] if args.key?(:next_page_token)
|
|
936
|
+
@software_versions = args[:software_versions] if args.key?(:software_versions)
|
|
937
|
+
end
|
|
938
|
+
end
|
|
939
|
+
|
|
940
|
+
# Screen measurements of a device.
|
|
941
|
+
class CatalogScreenMetrics
|
|
942
|
+
include Google::Apis::Core::Hashable
|
|
943
|
+
|
|
944
|
+
# Output only. Pixel density in dots per inch (dpi).
|
|
945
|
+
# Corresponds to the JSON property `densityDpi`
|
|
946
|
+
# @return [Fixnum]
|
|
947
|
+
attr_accessor :density_dpi
|
|
948
|
+
|
|
949
|
+
# Output only. Height in pixels.
|
|
950
|
+
# Corresponds to the JSON property `heightPx`
|
|
951
|
+
# @return [Fixnum]
|
|
952
|
+
attr_accessor :height_px
|
|
953
|
+
|
|
954
|
+
# Output only. Width in pixels.
|
|
955
|
+
# Corresponds to the JSON property `widthPx`
|
|
956
|
+
# @return [Fixnum]
|
|
957
|
+
attr_accessor :width_px
|
|
958
|
+
|
|
959
|
+
def initialize(**args)
|
|
960
|
+
update!(**args)
|
|
961
|
+
end
|
|
962
|
+
|
|
963
|
+
# Update properties of this object
|
|
964
|
+
def update!(**args)
|
|
965
|
+
@density_dpi = args[:density_dpi] if args.key?(:density_dpi)
|
|
966
|
+
@height_px = args[:height_px] if args.key?(:height_px)
|
|
967
|
+
@width_px = args[:width_px] if args.key?(:width_px)
|
|
968
|
+
end
|
|
969
|
+
end
|
|
970
|
+
|
|
971
|
+
# A single software version in the catalog.
|
|
972
|
+
class CatalogSoftwareVersion
|
|
973
|
+
include Google::Apis::Core::Hashable
|
|
974
|
+
|
|
975
|
+
# AndroidX Test Orchestrator-specific attributes. Reserved for future
|
|
976
|
+
# orchestrator-only fields.
|
|
977
|
+
# Corresponds to the JSON property `androidxTestOrchestratorDetails`
|
|
978
|
+
# @return [Google::Apis::DevicerunV1alpha::CatalogAndroidxTestOrchestratorDetails]
|
|
979
|
+
attr_accessor :androidx_test_orchestrator_details
|
|
980
|
+
|
|
981
|
+
# Output only. Provides a human-readable name for this version, e.g. "AndroidX
|
|
982
|
+
# Test Orchestrator 1.4.1".
|
|
983
|
+
# Corresponds to the JSON property `displayName`
|
|
984
|
+
# @return [String]
|
|
985
|
+
attr_accessor :display_name
|
|
986
|
+
|
|
987
|
+
# Output only. Indicates whether the system uses this version when a request
|
|
988
|
+
# does not select one explicitly. Exactly one version per `software_type` is the
|
|
989
|
+
# default, and it may change over time.
|
|
990
|
+
# Corresponds to the JSON property `isDefault`
|
|
991
|
+
# @return [Boolean]
|
|
992
|
+
attr_accessor :is_default
|
|
993
|
+
alias_method :is_default?, :is_default
|
|
994
|
+
|
|
995
|
+
# Catalog resource lifecycle: maturity state plus key lifecycle dates.
|
|
996
|
+
# Corresponds to the JSON property `lifecycle`
|
|
997
|
+
# @return [Google::Apis::DevicerunV1alpha::CatalogLifecycle]
|
|
998
|
+
attr_accessor :lifecycle
|
|
999
|
+
|
|
1000
|
+
# Identifier. Identifies the software version resource. Format: `projects/`
|
|
1001
|
+
# project`/locations/`location`/softwareVersions/`software_version``. The `
|
|
1002
|
+
# software_version` segment is an opaque, stable string. Clients must not parse
|
|
1003
|
+
# it to derive or assume the version.
|
|
1004
|
+
# Corresponds to the JSON property `name`
|
|
1005
|
+
# @return [String]
|
|
1006
|
+
attr_accessor :name
|
|
1007
|
+
|
|
1008
|
+
# Output only. Specifies which software this is a version of. Filter on this
|
|
1009
|
+
# field to narrow the collection to a single kind of software, for example `
|
|
1010
|
+
# software_type = "ANDROIDX_TEST_ORCHESTRATOR"`.
|
|
1011
|
+
# Corresponds to the JSON property `softwareType`
|
|
1012
|
+
# @return [String]
|
|
1013
|
+
attr_accessor :software_type
|
|
1014
|
+
|
|
1015
|
+
# Output only. Specifies the version identifier, e.g. "1.4.1". Unique within a `
|
|
1016
|
+
# software_type`.
|
|
1017
|
+
# Corresponds to the JSON property `version`
|
|
1018
|
+
# @return [String]
|
|
1019
|
+
attr_accessor :version
|
|
1020
|
+
|
|
1021
|
+
# Xcode-specific attributes.
|
|
1022
|
+
# Corresponds to the JSON property `xcodeDetails`
|
|
1023
|
+
# @return [Google::Apis::DevicerunV1alpha::CatalogXcodeDetails]
|
|
1024
|
+
attr_accessor :xcode_details
|
|
1025
|
+
|
|
1026
|
+
def initialize(**args)
|
|
1027
|
+
update!(**args)
|
|
1028
|
+
end
|
|
1029
|
+
|
|
1030
|
+
# Update properties of this object
|
|
1031
|
+
def update!(**args)
|
|
1032
|
+
@androidx_test_orchestrator_details = args[:androidx_test_orchestrator_details] if args.key?(:androidx_test_orchestrator_details)
|
|
1033
|
+
@display_name = args[:display_name] if args.key?(:display_name)
|
|
1034
|
+
@is_default = args[:is_default] if args.key?(:is_default)
|
|
1035
|
+
@lifecycle = args[:lifecycle] if args.key?(:lifecycle)
|
|
1036
|
+
@name = args[:name] if args.key?(:name)
|
|
1037
|
+
@software_type = args[:software_type] if args.key?(:software_type)
|
|
1038
|
+
@version = args[:version] if args.key?(:version)
|
|
1039
|
+
@xcode_details = args[:xcode_details] if args.key?(:xcode_details)
|
|
1040
|
+
end
|
|
1041
|
+
end
|
|
1042
|
+
|
|
1043
|
+
# Declares that a device supports a given Device Cloud product, with optional
|
|
1044
|
+
# per-product metadata. Discriminated by which product-specific message is set;
|
|
1045
|
+
# adding a new product = new oneof arm + new per-product message.
|
|
1046
|
+
class CatalogSupportedProduct
|
|
1047
|
+
include Google::Apis::Core::Hashable
|
|
1048
|
+
|
|
1049
|
+
# Per-product metadata for the Automation (DeviceRun) product.
|
|
1050
|
+
# Corresponds to the JSON property `automation`
|
|
1051
|
+
# @return [Google::Apis::DevicerunV1alpha::CatalogAutomationSupport]
|
|
1052
|
+
attr_accessor :automation
|
|
1053
|
+
|
|
1054
|
+
# Per-product metadata for the DeviceStreaming product.
|
|
1055
|
+
# Corresponds to the JSON property `deviceStreaming`
|
|
1056
|
+
# @return [Google::Apis::DevicerunV1alpha::CatalogDeviceStreamingSupport]
|
|
1057
|
+
attr_accessor :device_streaming
|
|
1058
|
+
|
|
1059
|
+
def initialize(**args)
|
|
1060
|
+
update!(**args)
|
|
1061
|
+
end
|
|
1062
|
+
|
|
1063
|
+
# Update properties of this object
|
|
1064
|
+
def update!(**args)
|
|
1065
|
+
@automation = args[:automation] if args.key?(:automation)
|
|
1066
|
+
@device_streaming = args[:device_streaming] if args.key?(:device_streaming)
|
|
1067
|
+
end
|
|
1068
|
+
end
|
|
1069
|
+
|
|
1070
|
+
# Xcode-specific attributes.
|
|
1071
|
+
class CatalogXcodeDetails
|
|
1072
|
+
include Google::Apis::Core::Hashable
|
|
1073
|
+
|
|
1074
|
+
# Output only. Lists the iOS versions this Xcode can run tests against, e.g. "16.
|
|
1075
|
+
# 6". This is a property of the toolchain, so it says nothing about whether a
|
|
1076
|
+
# device on that iOS version is available; list the `Device` collection to find
|
|
1077
|
+
# out.
|
|
1078
|
+
# Corresponds to the JSON property `supportedIosVersions`
|
|
1079
|
+
# @return [Array<String>]
|
|
1080
|
+
attr_accessor :supported_ios_versions
|
|
1081
|
+
|
|
1082
|
+
def initialize(**args)
|
|
1083
|
+
update!(**args)
|
|
1084
|
+
end
|
|
1085
|
+
|
|
1086
|
+
# Update properties of this object
|
|
1087
|
+
def update!(**args)
|
|
1088
|
+
@supported_ios_versions = args[:supported_ios_versions] if args.key?(:supported_ios_versions)
|
|
1089
|
+
end
|
|
1090
|
+
end
|
|
1091
|
+
|
|
1092
|
+
# Represents a whole or partial calendar date, such as a birthday. The time of
|
|
1093
|
+
# day and time zone are either specified elsewhere or are insignificant. The
|
|
1094
|
+
# date is relative to the Gregorian Calendar. This can represent one of the
|
|
1095
|
+
# following: * A full date, with non-zero year, month, and day values. * A month
|
|
1096
|
+
# and day, with a zero year (for example, an anniversary). * A year on its own,
|
|
1097
|
+
# with a zero month and a zero day. * A year and month, with a zero day (for
|
|
1098
|
+
# example, a credit card expiration date). Related types: * google.type.
|
|
1099
|
+
# TimeOfDay * google.type.DateTime * google.protobuf.Timestamp
|
|
1100
|
+
class Date
|
|
1101
|
+
include Google::Apis::Core::Hashable
|
|
1102
|
+
|
|
1103
|
+
# Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to
|
|
1104
|
+
# specify a year by itself or a year and month where the day isn't significant.
|
|
1105
|
+
# Corresponds to the JSON property `day`
|
|
1106
|
+
# @return [Fixnum]
|
|
1107
|
+
attr_accessor :day
|
|
1108
|
+
|
|
1109
|
+
# Month of a year. Must be from 1 to 12, or 0 to specify a year without a month
|
|
1110
|
+
# and day.
|
|
1111
|
+
# Corresponds to the JSON property `month`
|
|
1112
|
+
# @return [Fixnum]
|
|
1113
|
+
attr_accessor :month
|
|
1114
|
+
|
|
1115
|
+
# Year of the date. Must be from 1 to 9999, or 0 to specify a date without a
|
|
1116
|
+
# year.
|
|
1117
|
+
# Corresponds to the JSON property `year`
|
|
1118
|
+
# @return [Fixnum]
|
|
1119
|
+
attr_accessor :year
|
|
1120
|
+
|
|
1121
|
+
def initialize(**args)
|
|
1122
|
+
update!(**args)
|
|
1123
|
+
end
|
|
1124
|
+
|
|
1125
|
+
# Update properties of this object
|
|
1126
|
+
def update!(**args)
|
|
1127
|
+
@day = args[:day] if args.key?(:day)
|
|
1128
|
+
@month = args[:month] if args.key?(:month)
|
|
1129
|
+
@year = args[:year] if args.key?(:year)
|
|
1130
|
+
end
|
|
1131
|
+
end
|
|
1132
|
+
|
|
1133
|
+
# The action to be performed on a device.
|
|
1134
|
+
class DeviceAction
|
|
1135
|
+
include Google::Apis::Core::Hashable
|
|
1136
|
+
|
|
1137
|
+
# Captures a bugreport from the device. The output will be written to a file
|
|
1138
|
+
# named `bugreport.zip` in the execution output directory.
|
|
1139
|
+
# Corresponds to the JSON property `androidBugreport`
|
|
1140
|
+
# @return [Google::Apis::DevicerunV1alpha::AndroidBugreportDeviceAction]
|
|
1141
|
+
attr_accessor :android_bugreport
|
|
1142
|
+
|
|
1143
|
+
# Captures dumpsys output from the device. The output will be written to a file
|
|
1144
|
+
# named `dumpsys.log` in the execution output directory.
|
|
1145
|
+
# Corresponds to the JSON property `androidDumpsys`
|
|
1146
|
+
# @return [Google::Apis::DevicerunV1alpha::AndroidDumpsysDeviceAction]
|
|
1147
|
+
attr_accessor :android_dumpsys
|
|
1148
|
+
|
|
1149
|
+
# Installs Android packages on the device. At least one installable is specified
|
|
1150
|
+
# when using this device action. Limits: - A maximum of 20 installables in total
|
|
1151
|
+
# are allowed. - A maximum of 100 files are allowed in total across all
|
|
1152
|
+
# installables.
|
|
1153
|
+
# Corresponds to the JSON property `androidInstallPackages`
|
|
1154
|
+
# @return [Google::Apis::DevicerunV1alpha::AndroidInstallPackagesDeviceAction]
|
|
1155
|
+
attr_accessor :android_install_packages
|
|
1156
|
+
|
|
1157
|
+
# Collects logcat output from the device. The output will be written to a file
|
|
1158
|
+
# named `logcat.txt` in the execution output directory.
|
|
1159
|
+
# Corresponds to the JSON property `androidLogcat`
|
|
1160
|
+
# @return [Google::Apis::DevicerunV1alpha::AndroidLogcatDeviceAction]
|
|
1161
|
+
attr_accessor :android_logcat
|
|
1162
|
+
|
|
1163
|
+
# Mocks the location of the Android device.
|
|
1164
|
+
# Corresponds to the JSON property `androidMockLocation`
|
|
1165
|
+
# @return [Google::Apis::DevicerunV1alpha::AndroidMockLocationDeviceAction]
|
|
1166
|
+
attr_accessor :android_mock_location
|
|
1167
|
+
|
|
1168
|
+
# Sets the orientation of the device.
|
|
1169
|
+
# Corresponds to the JSON property `androidOrientation`
|
|
1170
|
+
# @return [Google::Apis::DevicerunV1alpha::AndroidOrientationDeviceAction]
|
|
1171
|
+
attr_accessor :android_orientation
|
|
1172
|
+
|
|
1173
|
+
# Pulls directories and files from the device at the end of the run. Files will
|
|
1174
|
+
# be copied to the '/artifacts' directory, with the absolute path structure
|
|
1175
|
+
# preserved. Note that: 1. A clean device is provided for the run. 2. Any
|
|
1176
|
+
# existing files in the output directory may be overwritten. 3. Pulling files is
|
|
1177
|
+
# best effort. Will skip files if they don't exist on the device.
|
|
1178
|
+
# Corresponds to the JSON property `androidPullFiles`
|
|
1179
|
+
# @return [Google::Apis::DevicerunV1alpha::AndroidPullFilesDeviceAction]
|
|
1180
|
+
attr_accessor :android_pull_files
|
|
1181
|
+
|
|
1182
|
+
# Pushes files to the device at the beginning of the run. Files are overwritten
|
|
1183
|
+
# if a file with the same path already exists on the device, if device
|
|
1184
|
+
# permissions allow.
|
|
1185
|
+
# Corresponds to the JSON property `androidPushFiles`
|
|
1186
|
+
# @return [Google::Apis::DevicerunV1alpha::AndroidPushFilesDeviceAction]
|
|
1187
|
+
attr_accessor :android_push_files
|
|
1188
|
+
|
|
1189
|
+
# Records a video of the device screen during the run. The video will be written
|
|
1190
|
+
# to a file named `video.mp4` in the execution output directory.
|
|
1191
|
+
# Corresponds to the JSON property `androidRecordVideo`
|
|
1192
|
+
# @return [Google::Apis::DevicerunV1alpha::AndroidRecordVideoDeviceAction]
|
|
1193
|
+
attr_accessor :android_record_video
|
|
1194
|
+
|
|
1195
|
+
# Switches the locale (language and region) of the device.
|
|
1196
|
+
# Corresponds to the JSON property `androidSwitchLocale`
|
|
1197
|
+
# @return [Google::Apis::DevicerunV1alpha::AndroidSwitchLocaleDeviceAction]
|
|
1198
|
+
attr_accessor :android_switch_locale
|
|
1199
|
+
|
|
1200
|
+
# Collects the exported iOS App Privacy Report during the test run. When enabled,
|
|
1201
|
+
# the iOS device records application activity (such as network access, domain
|
|
1202
|
+
# requests, and sensitive resource access like photos, camera, or location) and
|
|
1203
|
+
# exports Apple's official App Privacy Report. The report will be written to a
|
|
1204
|
+
# file named `AppActivityReport.ndjson` in the execution output directory.
|
|
1205
|
+
# Corresponds to the JSON property `iosAppPrivacyReport`
|
|
1206
|
+
# @return [Google::Apis::DevicerunV1alpha::IosAppPrivacyReportDeviceAction]
|
|
1207
|
+
attr_accessor :ios_app_privacy_report
|
|
1208
|
+
|
|
1209
|
+
# Installs iOS packages on the device.
|
|
1210
|
+
# Corresponds to the JSON property `iosInstallPackages`
|
|
1211
|
+
# @return [Google::Apis::DevicerunV1alpha::IosInstallPackagesDeviceAction]
|
|
1212
|
+
attr_accessor :ios_install_packages
|
|
1213
|
+
|
|
1214
|
+
# Pulls directories and files from the iOS device sandbox at the end of the run.
|
|
1215
|
+
# Corresponds to the JSON property `iosPullFiles`
|
|
1216
|
+
# @return [Google::Apis::DevicerunV1alpha::IosPullFilesDeviceAction]
|
|
1217
|
+
attr_accessor :ios_pull_files
|
|
1218
|
+
|
|
1219
|
+
# Pushes files to the iOS device sandbox at the beginning of the run.
|
|
1220
|
+
# Corresponds to the JSON property `iosPushFiles`
|
|
1221
|
+
# @return [Google::Apis::DevicerunV1alpha::IosPushFilesDeviceAction]
|
|
1222
|
+
attr_accessor :ios_push_files
|
|
1223
|
+
|
|
1224
|
+
# Records a video of the iOS device screen during the run. The video will be
|
|
1225
|
+
# written to a file named `video.mp4` in the execution output directory.
|
|
1226
|
+
# Corresponds to the JSON property `iosRecordVideo`
|
|
1227
|
+
# @return [Google::Apis::DevicerunV1alpha::IosRecordVideoDeviceAction]
|
|
1228
|
+
attr_accessor :ios_record_video
|
|
1229
|
+
|
|
1230
|
+
# Switches the locale (language and region) of the iOS application.
|
|
1231
|
+
# Corresponds to the JSON property `iosSwitchLocale`
|
|
1232
|
+
# @return [Google::Apis::DevicerunV1alpha::IosSwitchLocaleDeviceAction]
|
|
1233
|
+
attr_accessor :ios_switch_locale
|
|
1234
|
+
|
|
1235
|
+
def initialize(**args)
|
|
1236
|
+
update!(**args)
|
|
1237
|
+
end
|
|
1238
|
+
|
|
1239
|
+
# Update properties of this object
|
|
1240
|
+
def update!(**args)
|
|
1241
|
+
@android_bugreport = args[:android_bugreport] if args.key?(:android_bugreport)
|
|
1242
|
+
@android_dumpsys = args[:android_dumpsys] if args.key?(:android_dumpsys)
|
|
1243
|
+
@android_install_packages = args[:android_install_packages] if args.key?(:android_install_packages)
|
|
1244
|
+
@android_logcat = args[:android_logcat] if args.key?(:android_logcat)
|
|
1245
|
+
@android_mock_location = args[:android_mock_location] if args.key?(:android_mock_location)
|
|
1246
|
+
@android_orientation = args[:android_orientation] if args.key?(:android_orientation)
|
|
1247
|
+
@android_pull_files = args[:android_pull_files] if args.key?(:android_pull_files)
|
|
1248
|
+
@android_push_files = args[:android_push_files] if args.key?(:android_push_files)
|
|
1249
|
+
@android_record_video = args[:android_record_video] if args.key?(:android_record_video)
|
|
1250
|
+
@android_switch_locale = args[:android_switch_locale] if args.key?(:android_switch_locale)
|
|
1251
|
+
@ios_app_privacy_report = args[:ios_app_privacy_report] if args.key?(:ios_app_privacy_report)
|
|
1252
|
+
@ios_install_packages = args[:ios_install_packages] if args.key?(:ios_install_packages)
|
|
1253
|
+
@ios_pull_files = args[:ios_pull_files] if args.key?(:ios_pull_files)
|
|
1254
|
+
@ios_push_files = args[:ios_push_files] if args.key?(:ios_push_files)
|
|
1255
|
+
@ios_record_video = args[:ios_record_video] if args.key?(:ios_record_video)
|
|
1256
|
+
@ios_switch_locale = args[:ios_switch_locale] if args.key?(:ios_switch_locale)
|
|
1257
|
+
end
|
|
1258
|
+
end
|
|
1259
|
+
|
|
1260
|
+
# The configuration of a run on a device.
|
|
1261
|
+
class DeviceConfig
|
|
1262
|
+
include Google::Apis::Core::Hashable
|
|
1263
|
+
|
|
1264
|
+
# Optional. The actions to be performed on the device. Actions will be executed
|
|
1265
|
+
# in the order they are specified in the list. Each action type can at most have
|
|
1266
|
+
# 1 instance in the list.
|
|
1267
|
+
# Corresponds to the JSON property `actions`
|
|
1268
|
+
# @return [Array<Google::Apis::DevicerunV1alpha::DeviceAction>]
|
|
1269
|
+
attr_accessor :actions
|
|
1270
|
+
|
|
1271
|
+
# The requirement of a device.
|
|
1272
|
+
# Corresponds to the JSON property `requirement`
|
|
1273
|
+
# @return [Google::Apis::DevicerunV1alpha::DeviceRequirement]
|
|
1274
|
+
attr_accessor :requirement
|
|
1275
|
+
|
|
1276
|
+
def initialize(**args)
|
|
1277
|
+
update!(**args)
|
|
1278
|
+
end
|
|
1279
|
+
|
|
1280
|
+
# Update properties of this object
|
|
1281
|
+
def update!(**args)
|
|
1282
|
+
@actions = args[:actions] if args.key?(:actions)
|
|
1283
|
+
@requirement = args[:requirement] if args.key?(:requirement)
|
|
1284
|
+
end
|
|
1285
|
+
end
|
|
1286
|
+
|
|
1287
|
+
# The requirement of a device.
|
|
1288
|
+
class DeviceRequirement
|
|
1289
|
+
include Google::Apis::Core::Hashable
|
|
1290
|
+
|
|
1291
|
+
# The device ID of a device in the catalog. The device ID is the last part of a
|
|
1292
|
+
# device's resource name.
|
|
1293
|
+
# Corresponds to the JSON property `deviceId`
|
|
1294
|
+
# @return [String]
|
|
1295
|
+
attr_accessor :device_id
|
|
1296
|
+
|
|
1297
|
+
def initialize(**args)
|
|
1298
|
+
update!(**args)
|
|
1299
|
+
end
|
|
1300
|
+
|
|
1301
|
+
# Update properties of this object
|
|
1302
|
+
def update!(**args)
|
|
1303
|
+
@device_id = args[:device_id] if args.key?(:device_id)
|
|
1304
|
+
end
|
|
1305
|
+
end
|
|
1306
|
+
|
|
1307
|
+
# A generic empty message that you can re-use to avoid defining duplicated empty
|
|
1308
|
+
# messages in your APIs. A typical example is to use it as the request or the
|
|
1309
|
+
# response type of an API method. For instance: service Foo ` rpc Bar(google.
|
|
1310
|
+
# protobuf.Empty) returns (google.protobuf.Empty); `
|
|
1311
|
+
class Empty
|
|
1312
|
+
include Google::Apis::Core::Hashable
|
|
1313
|
+
|
|
1314
|
+
def initialize(**args)
|
|
1315
|
+
update!(**args)
|
|
1316
|
+
end
|
|
1317
|
+
|
|
1318
|
+
# Update properties of this object
|
|
1319
|
+
def update!(**args)
|
|
1320
|
+
end
|
|
1321
|
+
end
|
|
1322
|
+
|
|
1323
|
+
# The runtime information and result report of a single on-device execution
|
|
1324
|
+
# attempt.
|
|
1325
|
+
class ExecutionReport
|
|
1326
|
+
include Google::Apis::Core::Hashable
|
|
1327
|
+
|
|
1328
|
+
# Output only. The display_name set by users in the ExecutionConfig.
|
|
1329
|
+
# Corresponds to the JSON property `displayName`
|
|
1330
|
+
# @return [String]
|
|
1331
|
+
attr_accessor :display_name
|
|
1332
|
+
|
|
1333
|
+
# Output only. The end time of the execution.
|
|
1334
|
+
# Corresponds to the JSON property `endTime`
|
|
1335
|
+
# @return [String]
|
|
1336
|
+
attr_accessor :end_time
|
|
1337
|
+
|
|
1338
|
+
# Output only. The unique identifier of the execution.
|
|
1339
|
+
# Corresponds to the JSON property `id`
|
|
1340
|
+
# @return [String]
|
|
1341
|
+
attr_accessor :id
|
|
1342
|
+
|
|
1343
|
+
# Output only. The output files of the execution.
|
|
1344
|
+
# Corresponds to the JSON property `outputFiles`
|
|
1345
|
+
# @return [Array<Google::Apis::DevicerunV1alpha::OutputFile>]
|
|
1346
|
+
attr_accessor :output_files
|
|
1347
|
+
|
|
1348
|
+
# The result of a session/job/execution.
|
|
1349
|
+
# Corresponds to the JSON property `result`
|
|
1350
|
+
# @return [Google::Apis::DevicerunV1alpha::Result]
|
|
1351
|
+
attr_accessor :result
|
|
1352
|
+
|
|
1353
|
+
# Output only. The start time of the execution.
|
|
1354
|
+
# Corresponds to the JSON property `startTime`
|
|
1355
|
+
# @return [String]
|
|
1356
|
+
attr_accessor :start_time
|
|
1357
|
+
|
|
1358
|
+
# The status of a session/job/execution.
|
|
1359
|
+
# Corresponds to the JSON property `status`
|
|
1360
|
+
# @return [Google::Apis::DevicerunV1alpha::Status]
|
|
1361
|
+
attr_accessor :status
|
|
1362
|
+
|
|
1363
|
+
# Output only. Non-fatal warnings collected during the execution.
|
|
1364
|
+
# Corresponds to the JSON property `warnings`
|
|
1365
|
+
# @return [Array<Google::Apis::DevicerunV1alpha::Warning>]
|
|
1366
|
+
attr_accessor :warnings
|
|
1367
|
+
|
|
1368
|
+
def initialize(**args)
|
|
1369
|
+
update!(**args)
|
|
1370
|
+
end
|
|
1371
|
+
|
|
1372
|
+
# Update properties of this object
|
|
1373
|
+
def update!(**args)
|
|
1374
|
+
@display_name = args[:display_name] if args.key?(:display_name)
|
|
1375
|
+
@end_time = args[:end_time] if args.key?(:end_time)
|
|
1376
|
+
@id = args[:id] if args.key?(:id)
|
|
1377
|
+
@output_files = args[:output_files] if args.key?(:output_files)
|
|
1378
|
+
@result = args[:result] if args.key?(:result)
|
|
1379
|
+
@start_time = args[:start_time] if args.key?(:start_time)
|
|
1380
|
+
@status = args[:status] if args.key?(:status)
|
|
1381
|
+
@warnings = args[:warnings] if args.key?(:warnings)
|
|
1382
|
+
end
|
|
1383
|
+
end
|
|
1384
|
+
|
|
1385
|
+
# A path to a file or directory in Google Cloud Storage.
|
|
1386
|
+
class GcsPath
|
|
1387
|
+
include Google::Apis::Core::Hashable
|
|
1388
|
+
|
|
1389
|
+
# Required. The Google Cloud Storage path of the file or directory. Format: `gs:/
|
|
1390
|
+
# //`.
|
|
1391
|
+
# Corresponds to the JSON property `path`
|
|
1392
|
+
# @return [String]
|
|
1393
|
+
attr_accessor :path
|
|
1394
|
+
|
|
1395
|
+
def initialize(**args)
|
|
1396
|
+
update!(**args)
|
|
1397
|
+
end
|
|
1398
|
+
|
|
1399
|
+
# Update properties of this object
|
|
1400
|
+
def update!(**args)
|
|
1401
|
+
@path = args[:path] if args.key?(:path)
|
|
1402
|
+
end
|
|
1403
|
+
end
|
|
1404
|
+
|
|
1405
|
+
# The request message for Operations.CancelOperation.
|
|
1406
|
+
class GoogleLongrunningCancelOperationRequest
|
|
1407
|
+
include Google::Apis::Core::Hashable
|
|
1408
|
+
|
|
1409
|
+
def initialize(**args)
|
|
1410
|
+
update!(**args)
|
|
1411
|
+
end
|
|
1412
|
+
|
|
1413
|
+
# Update properties of this object
|
|
1414
|
+
def update!(**args)
|
|
1415
|
+
end
|
|
1416
|
+
end
|
|
1417
|
+
|
|
1418
|
+
# The response message for Operations.ListOperations.
|
|
1419
|
+
class GoogleLongrunningListOperationsResponse
|
|
1420
|
+
include Google::Apis::Core::Hashable
|
|
1421
|
+
|
|
1422
|
+
# The standard List next-page token.
|
|
1423
|
+
# Corresponds to the JSON property `nextPageToken`
|
|
1424
|
+
# @return [String]
|
|
1425
|
+
attr_accessor :next_page_token
|
|
1426
|
+
|
|
1427
|
+
# A list of operations that matches the specified filter in the request.
|
|
1428
|
+
# Corresponds to the JSON property `operations`
|
|
1429
|
+
# @return [Array<Google::Apis::DevicerunV1alpha::GoogleLongrunningOperation>]
|
|
1430
|
+
attr_accessor :operations
|
|
1431
|
+
|
|
1432
|
+
# Unordered list. Unreachable resources. Populated when the request sets `
|
|
1433
|
+
# ListOperationsRequest.return_partial_success` and reads across collections.
|
|
1434
|
+
# For example, when attempting to list all resources across all supported
|
|
1435
|
+
# locations.
|
|
1436
|
+
# Corresponds to the JSON property `unreachable`
|
|
1437
|
+
# @return [Array<String>]
|
|
1438
|
+
attr_accessor :unreachable
|
|
1439
|
+
|
|
1440
|
+
def initialize(**args)
|
|
1441
|
+
update!(**args)
|
|
1442
|
+
end
|
|
1443
|
+
|
|
1444
|
+
# Update properties of this object
|
|
1445
|
+
def update!(**args)
|
|
1446
|
+
@next_page_token = args[:next_page_token] if args.key?(:next_page_token)
|
|
1447
|
+
@operations = args[:operations] if args.key?(:operations)
|
|
1448
|
+
@unreachable = args[:unreachable] if args.key?(:unreachable)
|
|
1449
|
+
end
|
|
1450
|
+
end
|
|
1451
|
+
|
|
1452
|
+
# This resource represents a long-running operation that is the result of a
|
|
1453
|
+
# network API call.
|
|
1454
|
+
class GoogleLongrunningOperation
|
|
1455
|
+
include Google::Apis::Core::Hashable
|
|
1456
|
+
|
|
1457
|
+
# If the value is `false`, it means the operation is still in progress. If `true`
|
|
1458
|
+
# , the operation is completed, and either `error` or `response` is available.
|
|
1459
|
+
# Corresponds to the JSON property `done`
|
|
1460
|
+
# @return [Boolean]
|
|
1461
|
+
attr_accessor :done
|
|
1462
|
+
alias_method :done?, :done
|
|
1463
|
+
|
|
1464
|
+
# The `Status` type defines a logical error model that is suitable for different
|
|
1465
|
+
# programming environments, including REST APIs and RPC APIs. It is used by [
|
|
1466
|
+
# gRPC](https://github.com/grpc). Each `Status` message contains three pieces of
|
|
1467
|
+
# data: error code, error message, and error details. You can find out more
|
|
1468
|
+
# about this error model and how to work with it in the [API Design Guide](https:
|
|
1469
|
+
# //cloud.google.com/apis/design/errors).
|
|
1470
|
+
# Corresponds to the JSON property `error`
|
|
1471
|
+
# @return [Google::Apis::DevicerunV1alpha::GoogleRpcStatus]
|
|
1472
|
+
attr_accessor :error
|
|
1473
|
+
|
|
1474
|
+
# Service-specific metadata associated with the operation. It typically contains
|
|
1475
|
+
# progress information and common metadata such as create time. Some services
|
|
1476
|
+
# might not provide such metadata. Any method that returns a long-running
|
|
1477
|
+
# operation should document the metadata type, if any.
|
|
1478
|
+
# Corresponds to the JSON property `metadata`
|
|
1479
|
+
# @return [Hash<String,Object>]
|
|
1480
|
+
attr_accessor :metadata
|
|
1481
|
+
|
|
1482
|
+
# The server-assigned name, which is only unique within the same service that
|
|
1483
|
+
# originally returns it. If you use the default HTTP mapping, the `name` should
|
|
1484
|
+
# be a resource name ending with `operations/`unique_id``.
|
|
1485
|
+
# Corresponds to the JSON property `name`
|
|
1486
|
+
# @return [String]
|
|
1487
|
+
attr_accessor :name
|
|
1488
|
+
|
|
1489
|
+
# The normal, successful response of the operation. If the original method
|
|
1490
|
+
# returns no data on success, such as `Delete`, the response is `google.protobuf.
|
|
1491
|
+
# Empty`. If the original method is standard `Get`/`Create`/`Update`, the
|
|
1492
|
+
# response should be the resource. For other methods, the response should have
|
|
1493
|
+
# the type `XxxResponse`, where `Xxx` is the original method name. For example,
|
|
1494
|
+
# if the original method name is `TakeSnapshot()`, the inferred response type is
|
|
1495
|
+
# `TakeSnapshotResponse`.
|
|
1496
|
+
# Corresponds to the JSON property `response`
|
|
1497
|
+
# @return [Hash<String,Object>]
|
|
1498
|
+
attr_accessor :response
|
|
1499
|
+
|
|
1500
|
+
def initialize(**args)
|
|
1501
|
+
update!(**args)
|
|
1502
|
+
end
|
|
1503
|
+
|
|
1504
|
+
# Update properties of this object
|
|
1505
|
+
def update!(**args)
|
|
1506
|
+
@done = args[:done] if args.key?(:done)
|
|
1507
|
+
@error = args[:error] if args.key?(:error)
|
|
1508
|
+
@metadata = args[:metadata] if args.key?(:metadata)
|
|
1509
|
+
@name = args[:name] if args.key?(:name)
|
|
1510
|
+
@response = args[:response] if args.key?(:response)
|
|
1511
|
+
end
|
|
1512
|
+
end
|
|
1513
|
+
|
|
1514
|
+
# The `Status` type defines a logical error model that is suitable for different
|
|
1515
|
+
# programming environments, including REST APIs and RPC APIs. It is used by [
|
|
1516
|
+
# gRPC](https://github.com/grpc). Each `Status` message contains three pieces of
|
|
1517
|
+
# data: error code, error message, and error details. You can find out more
|
|
1518
|
+
# about this error model and how to work with it in the [API Design Guide](https:
|
|
1519
|
+
# //cloud.google.com/apis/design/errors).
|
|
1520
|
+
class GoogleRpcStatus
|
|
1521
|
+
include Google::Apis::Core::Hashable
|
|
1522
|
+
|
|
1523
|
+
# The status code, which should be an enum value of google.rpc.Code.
|
|
1524
|
+
# Corresponds to the JSON property `code`
|
|
1525
|
+
# @return [Fixnum]
|
|
1526
|
+
attr_accessor :code
|
|
1527
|
+
|
|
1528
|
+
# A list of messages that carry the error details. There is a common set of
|
|
1529
|
+
# message types for APIs to use.
|
|
1530
|
+
# Corresponds to the JSON property `details`
|
|
1531
|
+
# @return [Array<Hash<String,Object>>]
|
|
1532
|
+
attr_accessor :details
|
|
1533
|
+
|
|
1534
|
+
# A developer-facing error message, which should be in English. Any user-facing
|
|
1535
|
+
# error message should be localized and sent in the google.rpc.Status.details
|
|
1536
|
+
# field, or localized by the client.
|
|
1537
|
+
# Corresponds to the JSON property `message`
|
|
1538
|
+
# @return [String]
|
|
1539
|
+
attr_accessor :message
|
|
1540
|
+
|
|
1541
|
+
def initialize(**args)
|
|
1542
|
+
update!(**args)
|
|
1543
|
+
end
|
|
1544
|
+
|
|
1545
|
+
# Update properties of this object
|
|
1546
|
+
def update!(**args)
|
|
1547
|
+
@code = args[:code] if args.key?(:code)
|
|
1548
|
+
@details = args[:details] if args.key?(:details)
|
|
1549
|
+
@message = args[:message] if args.key?(:message)
|
|
1550
|
+
end
|
|
1551
|
+
end
|
|
1552
|
+
|
|
1553
|
+
# Input file.
|
|
1554
|
+
class InputFile
|
|
1555
|
+
include Google::Apis::Core::Hashable
|
|
1556
|
+
|
|
1557
|
+
# A path to a file or directory in Google Cloud Storage.
|
|
1558
|
+
# Corresponds to the JSON property `gcsInputFile`
|
|
1559
|
+
# @return [Google::Apis::DevicerunV1alpha::GcsPath]
|
|
1560
|
+
attr_accessor :gcs_input_file
|
|
1561
|
+
|
|
1562
|
+
def initialize(**args)
|
|
1563
|
+
update!(**args)
|
|
1564
|
+
end
|
|
1565
|
+
|
|
1566
|
+
# Update properties of this object
|
|
1567
|
+
def update!(**args)
|
|
1568
|
+
@gcs_input_file = args[:gcs_input_file] if args.key?(:gcs_input_file)
|
|
1569
|
+
end
|
|
1570
|
+
end
|
|
1571
|
+
|
|
1572
|
+
# Collects the exported iOS App Privacy Report during the test run. When enabled,
|
|
1573
|
+
# the iOS device records application activity (such as network access, domain
|
|
1574
|
+
# requests, and sensitive resource access like photos, camera, or location) and
|
|
1575
|
+
# exports Apple's official App Privacy Report. The report will be written to a
|
|
1576
|
+
# file named `AppActivityReport.ndjson` in the execution output directory.
|
|
1577
|
+
class IosAppPrivacyReportDeviceAction
|
|
1578
|
+
include Google::Apis::Core::Hashable
|
|
1579
|
+
|
|
1580
|
+
def initialize(**args)
|
|
1581
|
+
update!(**args)
|
|
1582
|
+
end
|
|
1583
|
+
|
|
1584
|
+
# Update properties of this object
|
|
1585
|
+
def update!(**args)
|
|
1586
|
+
end
|
|
1587
|
+
end
|
|
1588
|
+
|
|
1589
|
+
# Installs iOS packages on the device.
|
|
1590
|
+
class IosInstallPackagesDeviceAction
|
|
1591
|
+
include Google::Apis::Core::Hashable
|
|
1592
|
+
|
|
1593
|
+
# Required. Additional iOS packages (IPAs) to install on the device. Limits: - A
|
|
1594
|
+
# maximum of 20 IPAs are allowed.
|
|
1595
|
+
# Corresponds to the JSON property `ipas`
|
|
1596
|
+
# @return [Array<Google::Apis::DevicerunV1alpha::InputFile>]
|
|
1597
|
+
attr_accessor :ipas
|
|
1598
|
+
|
|
1599
|
+
def initialize(**args)
|
|
1600
|
+
update!(**args)
|
|
1601
|
+
end
|
|
1602
|
+
|
|
1603
|
+
# Update properties of this object
|
|
1604
|
+
def update!(**args)
|
|
1605
|
+
@ipas = args[:ipas] if args.key?(:ipas)
|
|
1606
|
+
end
|
|
1607
|
+
end
|
|
1608
|
+
|
|
1609
|
+
# Pulls directories and files from the iOS device sandbox at the end of the run.
|
|
1610
|
+
class IosPullFilesDeviceAction
|
|
1611
|
+
include Google::Apis::Core::Hashable
|
|
1612
|
+
|
|
1613
|
+
# Required. Absolute directory or file paths to pull from the device. Limits: -
|
|
1614
|
+
# A maximum of 10 paths are allowed.
|
|
1615
|
+
# Corresponds to the JSON property `paths`
|
|
1616
|
+
# @return [Array<Google::Apis::DevicerunV1alpha::IosPullFilesDeviceActionPathConfig>]
|
|
1617
|
+
attr_accessor :paths
|
|
1618
|
+
|
|
1619
|
+
def initialize(**args)
|
|
1620
|
+
update!(**args)
|
|
1621
|
+
end
|
|
1622
|
+
|
|
1623
|
+
# Update properties of this object
|
|
1624
|
+
def update!(**args)
|
|
1625
|
+
@paths = args[:paths] if args.key?(:paths)
|
|
1626
|
+
end
|
|
1627
|
+
end
|
|
1628
|
+
|
|
1629
|
+
# The configuration of pulling a file or directory from the iOS device.
|
|
1630
|
+
class IosPullFilesDeviceActionPathConfig
|
|
1631
|
+
include Google::Apis::Core::Hashable
|
|
1632
|
+
|
|
1633
|
+
# Required. The bundle ID of the application sandbox.
|
|
1634
|
+
# Corresponds to the JSON property `bundleId`
|
|
1635
|
+
# @return [String]
|
|
1636
|
+
attr_accessor :bundle_id
|
|
1637
|
+
|
|
1638
|
+
# Required. The device path relative to the app sandbox, e.g. "/Documents/output/
|
|
1639
|
+
# ".
|
|
1640
|
+
# Corresponds to the JSON property `devicePath`
|
|
1641
|
+
# @return [String]
|
|
1642
|
+
attr_accessor :device_path
|
|
1643
|
+
|
|
1644
|
+
def initialize(**args)
|
|
1645
|
+
update!(**args)
|
|
1646
|
+
end
|
|
1647
|
+
|
|
1648
|
+
# Update properties of this object
|
|
1649
|
+
def update!(**args)
|
|
1650
|
+
@bundle_id = args[:bundle_id] if args.key?(:bundle_id)
|
|
1651
|
+
@device_path = args[:device_path] if args.key?(:device_path)
|
|
1652
|
+
end
|
|
1653
|
+
end
|
|
1654
|
+
|
|
1655
|
+
# Pushes files to the iOS device sandbox at the beginning of the run.
|
|
1656
|
+
class IosPushFilesDeviceAction
|
|
1657
|
+
include Google::Apis::Core::Hashable
|
|
1658
|
+
|
|
1659
|
+
# Required. Configs of pushing files to the device. Limits: - A maximum of 50
|
|
1660
|
+
# files are allowed.
|
|
1661
|
+
# Corresponds to the JSON property `fileConfigs`
|
|
1662
|
+
# @return [Array<Google::Apis::DevicerunV1alpha::IosPushFilesDeviceActionFileConfig>]
|
|
1663
|
+
attr_accessor :file_configs
|
|
1664
|
+
|
|
1665
|
+
def initialize(**args)
|
|
1666
|
+
update!(**args)
|
|
1667
|
+
end
|
|
1668
|
+
|
|
1669
|
+
# Update properties of this object
|
|
1670
|
+
def update!(**args)
|
|
1671
|
+
@file_configs = args[:file_configs] if args.key?(:file_configs)
|
|
1672
|
+
end
|
|
1673
|
+
end
|
|
1674
|
+
|
|
1675
|
+
# The configuration of pushing a file to the iOS device.
|
|
1676
|
+
class IosPushFilesDeviceActionFileConfig
|
|
1677
|
+
include Google::Apis::Core::Hashable
|
|
1678
|
+
|
|
1679
|
+
# Required. The bundle ID of the application sandbox.
|
|
1680
|
+
# Corresponds to the JSON property `bundleId`
|
|
1681
|
+
# @return [String]
|
|
1682
|
+
attr_accessor :bundle_id
|
|
1683
|
+
|
|
1684
|
+
# Required. The destination path relative to the app sandbox, e.g. "/Documents/
|
|
1685
|
+
# file.txt".
|
|
1686
|
+
# Corresponds to the JSON property `destinationPath`
|
|
1687
|
+
# @return [String]
|
|
1688
|
+
attr_accessor :destination_path
|
|
1689
|
+
|
|
1690
|
+
# Input file.
|
|
1691
|
+
# Corresponds to the JSON property `sourceFile`
|
|
1692
|
+
# @return [Google::Apis::DevicerunV1alpha::InputFile]
|
|
1693
|
+
attr_accessor :source_file
|
|
1694
|
+
|
|
1695
|
+
def initialize(**args)
|
|
1696
|
+
update!(**args)
|
|
1697
|
+
end
|
|
1698
|
+
|
|
1699
|
+
# Update properties of this object
|
|
1700
|
+
def update!(**args)
|
|
1701
|
+
@bundle_id = args[:bundle_id] if args.key?(:bundle_id)
|
|
1702
|
+
@destination_path = args[:destination_path] if args.key?(:destination_path)
|
|
1703
|
+
@source_file = args[:source_file] if args.key?(:source_file)
|
|
1704
|
+
end
|
|
1705
|
+
end
|
|
1706
|
+
|
|
1707
|
+
# Records a video of the iOS device screen during the run. The video will be
|
|
1708
|
+
# written to a file named `video.mp4` in the execution output directory.
|
|
1709
|
+
class IosRecordVideoDeviceAction
|
|
1710
|
+
include Google::Apis::Core::Hashable
|
|
1711
|
+
|
|
1712
|
+
# Optional. Whether to discard the video if the test passes. If not specified,
|
|
1713
|
+
# the default is false (always keep the video).
|
|
1714
|
+
# Corresponds to the JSON property `discardOnPass`
|
|
1715
|
+
# @return [Boolean]
|
|
1716
|
+
attr_accessor :discard_on_pass
|
|
1717
|
+
alias_method :discard_on_pass?, :discard_on_pass
|
|
1718
|
+
|
|
1719
|
+
def initialize(**args)
|
|
1720
|
+
update!(**args)
|
|
1721
|
+
end
|
|
1722
|
+
|
|
1723
|
+
# Update properties of this object
|
|
1724
|
+
def update!(**args)
|
|
1725
|
+
@discard_on_pass = args[:discard_on_pass] if args.key?(:discard_on_pass)
|
|
1726
|
+
end
|
|
1727
|
+
end
|
|
1728
|
+
|
|
1729
|
+
# Switches the locale (language and region) of the iOS application.
|
|
1730
|
+
class IosSwitchLocaleDeviceAction
|
|
1731
|
+
include Google::Apis::Core::Hashable
|
|
1732
|
+
|
|
1733
|
+
# Required. The locale (language and region) to switch the app to. The format is
|
|
1734
|
+
# `language-region` or `language`, e.g. "en-US", "zh-CN", "ja", etc.
|
|
1735
|
+
# Corresponds to the JSON property `localeCode`
|
|
1736
|
+
# @return [String]
|
|
1737
|
+
attr_accessor :locale_code
|
|
1738
|
+
|
|
1739
|
+
def initialize(**args)
|
|
1740
|
+
update!(**args)
|
|
1741
|
+
end
|
|
1742
|
+
|
|
1743
|
+
# Update properties of this object
|
|
1744
|
+
def update!(**args)
|
|
1745
|
+
@locale_code = args[:locale_code] if args.key?(:locale_code)
|
|
1746
|
+
end
|
|
1747
|
+
end
|
|
1748
|
+
|
|
1749
|
+
# The configuration of an iOS XCTest.
|
|
1750
|
+
class IosXcTest
|
|
1751
|
+
include Google::Apis::Core::Hashable
|
|
1752
|
+
|
|
1753
|
+
# Input file.
|
|
1754
|
+
# Corresponds to the JSON property `testsZip`
|
|
1755
|
+
# @return [Google::Apis::DevicerunV1alpha::InputFile]
|
|
1756
|
+
attr_accessor :tests_zip
|
|
1757
|
+
|
|
1758
|
+
# Optional. The timeout of the test. Default value: 5 min. Range: [1 min, 3
|
|
1759
|
+
# hours].
|
|
1760
|
+
# Corresponds to the JSON property `xcTestTimeout`
|
|
1761
|
+
# @return [String]
|
|
1762
|
+
attr_accessor :xc_test_timeout
|
|
1763
|
+
|
|
1764
|
+
# Optional. The Xcode version that should be used for the test. If not set, a
|
|
1765
|
+
# system-default Xcode version is used. The available Xcode versions can be
|
|
1766
|
+
# retrieved from the catalog service.
|
|
1767
|
+
# Corresponds to the JSON property `xcodeVersion`
|
|
1768
|
+
# @return [String]
|
|
1769
|
+
attr_accessor :xcode_version
|
|
1770
|
+
|
|
1771
|
+
# Input file.
|
|
1772
|
+
# Corresponds to the JSON property `xctestrun`
|
|
1773
|
+
# @return [Google::Apis::DevicerunV1alpha::InputFile]
|
|
1774
|
+
attr_accessor :xctestrun
|
|
1775
|
+
|
|
1776
|
+
def initialize(**args)
|
|
1777
|
+
update!(**args)
|
|
1778
|
+
end
|
|
1779
|
+
|
|
1780
|
+
# Update properties of this object
|
|
1781
|
+
def update!(**args)
|
|
1782
|
+
@tests_zip = args[:tests_zip] if args.key?(:tests_zip)
|
|
1783
|
+
@xc_test_timeout = args[:xc_test_timeout] if args.key?(:xc_test_timeout)
|
|
1784
|
+
@xcode_version = args[:xcode_version] if args.key?(:xcode_version)
|
|
1785
|
+
@xctestrun = args[:xctestrun] if args.key?(:xctestrun)
|
|
1786
|
+
end
|
|
1787
|
+
end
|
|
1788
|
+
|
|
1789
|
+
# Describes the summary of an issue (error or warning) with structured details.
|
|
1790
|
+
class IssueSummary
|
|
1791
|
+
include Google::Apis::Core::Hashable
|
|
1792
|
+
|
|
1793
|
+
# Output only. Human-readable explanation of the issue in English.
|
|
1794
|
+
# Corresponds to the JSON property `message`
|
|
1795
|
+
# @return [String]
|
|
1796
|
+
attr_accessor :message
|
|
1797
|
+
|
|
1798
|
+
# Output only. The reason of the issue. This is a constant value that identifies
|
|
1799
|
+
# the proximate cause of the issue. This should be at most 63 characters and
|
|
1800
|
+
# match a regular expression of `A-Z*[A-Z0-9]`, which represents
|
|
1801
|
+
# UPPER_SNAKE_CASE.
|
|
1802
|
+
# Corresponds to the JSON property `reason`
|
|
1803
|
+
# @return [String]
|
|
1804
|
+
attr_accessor :reason
|
|
1805
|
+
|
|
1806
|
+
# Output only. The issue classification based on responsibility.
|
|
1807
|
+
# Corresponds to the JSON property `type`
|
|
1808
|
+
# @return [String]
|
|
1809
|
+
attr_accessor :type
|
|
1810
|
+
|
|
1811
|
+
def initialize(**args)
|
|
1812
|
+
update!(**args)
|
|
1813
|
+
end
|
|
1814
|
+
|
|
1815
|
+
# Update properties of this object
|
|
1816
|
+
def update!(**args)
|
|
1817
|
+
@message = args[:message] if args.key?(:message)
|
|
1818
|
+
@reason = args[:reason] if args.key?(:reason)
|
|
1819
|
+
@type = args[:type] if args.key?(:type)
|
|
1820
|
+
end
|
|
1821
|
+
end
|
|
1822
|
+
|
|
1823
|
+
# The action to be performed in a job.
|
|
1824
|
+
class JobAction
|
|
1825
|
+
include Google::Apis::Core::Hashable
|
|
1826
|
+
|
|
1827
|
+
# The configuration of an Android instrumentation test. See https://developer.
|
|
1828
|
+
# android.com/training/testing/instrumented-tests for more information on
|
|
1829
|
+
# Android instrumentation tests.
|
|
1830
|
+
# Corresponds to the JSON property `androidInstrumentationTest`
|
|
1831
|
+
# @return [Google::Apis::DevicerunV1alpha::AndroidInstrumentationTest]
|
|
1832
|
+
attr_accessor :android_instrumentation_test
|
|
1833
|
+
|
|
1834
|
+
# The configuration of an Android native binary execution.
|
|
1835
|
+
# Corresponds to the JSON property `androidNativeBinary`
|
|
1836
|
+
# @return [Google::Apis::DevicerunV1alpha::AndroidNativeBinary]
|
|
1837
|
+
attr_accessor :android_native_binary
|
|
1838
|
+
|
|
1839
|
+
# The configuration of an iOS XCTest.
|
|
1840
|
+
# Corresponds to the JSON property `iosXcTest`
|
|
1841
|
+
# @return [Google::Apis::DevicerunV1alpha::IosXcTest]
|
|
1842
|
+
attr_accessor :ios_xc_test
|
|
1843
|
+
|
|
1844
|
+
def initialize(**args)
|
|
1845
|
+
update!(**args)
|
|
1846
|
+
end
|
|
1847
|
+
|
|
1848
|
+
# Update properties of this object
|
|
1849
|
+
def update!(**args)
|
|
1850
|
+
@android_instrumentation_test = args[:android_instrumentation_test] if args.key?(:android_instrumentation_test)
|
|
1851
|
+
@android_native_binary = args[:android_native_binary] if args.key?(:android_native_binary)
|
|
1852
|
+
@ios_xc_test = args[:ios_xc_test] if args.key?(:ios_xc_test)
|
|
1853
|
+
end
|
|
1854
|
+
end
|
|
1855
|
+
|
|
1856
|
+
# The configuration of a job.
|
|
1857
|
+
class JobConfig
|
|
1858
|
+
include Google::Apis::Core::Hashable
|
|
1859
|
+
|
|
1860
|
+
# The action to be performed in a job.
|
|
1861
|
+
# Corresponds to the JSON property `action`
|
|
1862
|
+
# @return [Google::Apis::DevicerunV1alpha::JobAction]
|
|
1863
|
+
attr_accessor :action
|
|
1864
|
+
|
|
1865
|
+
# Allocation config.
|
|
1866
|
+
# Corresponds to the JSON property `allocationConfig`
|
|
1867
|
+
# @return [Google::Apis::DevicerunV1alpha::AllocationConfig]
|
|
1868
|
+
attr_accessor :allocation_config
|
|
1869
|
+
|
|
1870
|
+
# Optional. User-settable, human-readable name for the job. If set, it must be
|
|
1871
|
+
# unique within the session. If not set, the display name will default to `job-`,
|
|
1872
|
+
# where `` is the 0-based index of the job in the session formatted as three
|
|
1873
|
+
# digits (e.g., job-000, job-001, ...). Maximum size is 63 bytes when encoded as
|
|
1874
|
+
# UTF-8. If set, must match regex: `^A-Za-z0-9*$`.
|
|
1875
|
+
# Corresponds to the JSON property `displayName`
|
|
1876
|
+
# @return [String]
|
|
1877
|
+
attr_accessor :display_name
|
|
1878
|
+
|
|
1879
|
+
# Optional. User-defined metadata for tracking or categorization. These labels
|
|
1880
|
+
# do not affect job execution and are surfaced in the JobReport. Limits: -
|
|
1881
|
+
# Maximum number of entries: 16. - Maximum key size: 32 bytes (UTF-8). - Maximum
|
|
1882
|
+
# value size: 1024 bytes (UTF-8).
|
|
1883
|
+
# Corresponds to the JSON property `labels`
|
|
1884
|
+
# @return [Hash<String,String>]
|
|
1885
|
+
attr_accessor :labels
|
|
1886
|
+
|
|
1887
|
+
# Job settings to control the job execution.
|
|
1888
|
+
# Corresponds to the JSON property `settings`
|
|
1889
|
+
# @return [Google::Apis::DevicerunV1alpha::JobSettings]
|
|
1890
|
+
attr_accessor :settings
|
|
1891
|
+
|
|
1892
|
+
def initialize(**args)
|
|
1893
|
+
update!(**args)
|
|
1894
|
+
end
|
|
1895
|
+
|
|
1896
|
+
# Update properties of this object
|
|
1897
|
+
def update!(**args)
|
|
1898
|
+
@action = args[:action] if args.key?(:action)
|
|
1899
|
+
@allocation_config = args[:allocation_config] if args.key?(:allocation_config)
|
|
1900
|
+
@display_name = args[:display_name] if args.key?(:display_name)
|
|
1901
|
+
@labels = args[:labels] if args.key?(:labels)
|
|
1902
|
+
@settings = args[:settings] if args.key?(:settings)
|
|
1903
|
+
end
|
|
1904
|
+
end
|
|
1905
|
+
|
|
1906
|
+
# The runtime information and result report of a job.
|
|
1907
|
+
class JobReport
|
|
1908
|
+
include Google::Apis::Core::Hashable
|
|
1909
|
+
|
|
1910
|
+
# Output only. The display_name set by users in the JobConfig.
|
|
1911
|
+
# Corresponds to the JSON property `displayName`
|
|
1912
|
+
# @return [String]
|
|
1913
|
+
attr_accessor :display_name
|
|
1914
|
+
|
|
1915
|
+
# Output only. The end time of the job.
|
|
1916
|
+
# Corresponds to the JSON property `endTime`
|
|
1917
|
+
# @return [String]
|
|
1918
|
+
attr_accessor :end_time
|
|
1919
|
+
|
|
1920
|
+
# Output only. Reports of the execution attempts of the job.
|
|
1921
|
+
# Corresponds to the JSON property `executionReports`
|
|
1922
|
+
# @return [Array<Google::Apis::DevicerunV1alpha::ExecutionReport>]
|
|
1923
|
+
attr_accessor :execution_reports
|
|
1924
|
+
|
|
1925
|
+
# Output only. The unique identifier of the job.
|
|
1926
|
+
# Corresponds to the JSON property `id`
|
|
1927
|
+
# @return [String]
|
|
1928
|
+
attr_accessor :id
|
|
1929
|
+
|
|
1930
|
+
# Output only. The original labels provided by the user during job creation.
|
|
1931
|
+
# Corresponds to the JSON property `labels`
|
|
1932
|
+
# @return [Hash<String,String>]
|
|
1933
|
+
attr_accessor :labels
|
|
1934
|
+
|
|
1935
|
+
# Output only. The output files of the job.
|
|
1936
|
+
# Corresponds to the JSON property `outputFiles`
|
|
1937
|
+
# @return [Array<Google::Apis::DevicerunV1alpha::OutputFile>]
|
|
1938
|
+
attr_accessor :output_files
|
|
1939
|
+
|
|
1940
|
+
# The result of a session/job/execution.
|
|
1941
|
+
# Corresponds to the JSON property `result`
|
|
1942
|
+
# @return [Google::Apis::DevicerunV1alpha::Result]
|
|
1943
|
+
attr_accessor :result
|
|
1944
|
+
|
|
1945
|
+
# Output only. The start time of the job.
|
|
1946
|
+
# Corresponds to the JSON property `startTime`
|
|
1947
|
+
# @return [String]
|
|
1948
|
+
attr_accessor :start_time
|
|
1949
|
+
|
|
1950
|
+
# The status of a session/job/execution.
|
|
1951
|
+
# Corresponds to the JSON property `status`
|
|
1952
|
+
# @return [Google::Apis::DevicerunV1alpha::Status]
|
|
1953
|
+
attr_accessor :status
|
|
1954
|
+
|
|
1955
|
+
# Output only. Non-fatal warnings collected during the job.
|
|
1956
|
+
# Corresponds to the JSON property `warnings`
|
|
1957
|
+
# @return [Array<Google::Apis::DevicerunV1alpha::Warning>]
|
|
1958
|
+
attr_accessor :warnings
|
|
1959
|
+
|
|
1960
|
+
def initialize(**args)
|
|
1961
|
+
update!(**args)
|
|
1962
|
+
end
|
|
1963
|
+
|
|
1964
|
+
# Update properties of this object
|
|
1965
|
+
def update!(**args)
|
|
1966
|
+
@display_name = args[:display_name] if args.key?(:display_name)
|
|
1967
|
+
@end_time = args[:end_time] if args.key?(:end_time)
|
|
1968
|
+
@execution_reports = args[:execution_reports] if args.key?(:execution_reports)
|
|
1969
|
+
@id = args[:id] if args.key?(:id)
|
|
1970
|
+
@labels = args[:labels] if args.key?(:labels)
|
|
1971
|
+
@output_files = args[:output_files] if args.key?(:output_files)
|
|
1972
|
+
@result = args[:result] if args.key?(:result)
|
|
1973
|
+
@start_time = args[:start_time] if args.key?(:start_time)
|
|
1974
|
+
@status = args[:status] if args.key?(:status)
|
|
1975
|
+
@warnings = args[:warnings] if args.key?(:warnings)
|
|
1976
|
+
end
|
|
1977
|
+
end
|
|
1978
|
+
|
|
1979
|
+
# Job settings to control the job execution.
|
|
1980
|
+
class JobSettings
|
|
1981
|
+
include Google::Apis::Core::Hashable
|
|
1982
|
+
|
|
1983
|
+
# Retry settings.
|
|
1984
|
+
# Corresponds to the JSON property `retrySettings`
|
|
1985
|
+
# @return [Google::Apis::DevicerunV1alpha::RetrySettings]
|
|
1986
|
+
attr_accessor :retry_settings
|
|
1987
|
+
|
|
1988
|
+
def initialize(**args)
|
|
1989
|
+
update!(**args)
|
|
1990
|
+
end
|
|
1991
|
+
|
|
1992
|
+
# Update properties of this object
|
|
1993
|
+
def update!(**args)
|
|
1994
|
+
@retry_settings = args[:retry_settings] if args.key?(:retry_settings)
|
|
1995
|
+
end
|
|
1996
|
+
end
|
|
1997
|
+
|
|
1998
|
+
# An object that represents a latitude/longitude pair. This is expressed as a
|
|
1999
|
+
# pair of doubles to represent degrees latitude and degrees longitude. Unless
|
|
2000
|
+
# specified otherwise, this object must conform to the WGS84 standard. Values
|
|
2001
|
+
# must be within normalized ranges.
|
|
2002
|
+
class LatLng
|
|
2003
|
+
include Google::Apis::Core::Hashable
|
|
2004
|
+
|
|
2005
|
+
# The latitude in degrees. It must be in the range [-90.0, +90.0].
|
|
2006
|
+
# Corresponds to the JSON property `latitude`
|
|
2007
|
+
# @return [Float]
|
|
2008
|
+
attr_accessor :latitude
|
|
2009
|
+
|
|
2010
|
+
# The longitude in degrees. It must be in the range [-180.0, +180.0].
|
|
2011
|
+
# Corresponds to the JSON property `longitude`
|
|
2012
|
+
# @return [Float]
|
|
2013
|
+
attr_accessor :longitude
|
|
2014
|
+
|
|
2015
|
+
def initialize(**args)
|
|
2016
|
+
update!(**args)
|
|
2017
|
+
end
|
|
2018
|
+
|
|
2019
|
+
# Update properties of this object
|
|
2020
|
+
def update!(**args)
|
|
2021
|
+
@latitude = args[:latitude] if args.key?(:latitude)
|
|
2022
|
+
@longitude = args[:longitude] if args.key?(:longitude)
|
|
2023
|
+
end
|
|
2024
|
+
end
|
|
2025
|
+
|
|
2026
|
+
# The response message for Locations.ListLocations.
|
|
2027
|
+
class ListLocationsResponse
|
|
2028
|
+
include Google::Apis::Core::Hashable
|
|
2029
|
+
|
|
2030
|
+
# A list of locations that matches the specified filter in the request.
|
|
2031
|
+
# Corresponds to the JSON property `locations`
|
|
2032
|
+
# @return [Array<Google::Apis::DevicerunV1alpha::Location>]
|
|
2033
|
+
attr_accessor :locations
|
|
2034
|
+
|
|
2035
|
+
# The standard List next-page token.
|
|
2036
|
+
# Corresponds to the JSON property `nextPageToken`
|
|
2037
|
+
# @return [String]
|
|
2038
|
+
attr_accessor :next_page_token
|
|
2039
|
+
|
|
2040
|
+
def initialize(**args)
|
|
2041
|
+
update!(**args)
|
|
2042
|
+
end
|
|
2043
|
+
|
|
2044
|
+
# Update properties of this object
|
|
2045
|
+
def update!(**args)
|
|
2046
|
+
@locations = args[:locations] if args.key?(:locations)
|
|
2047
|
+
@next_page_token = args[:next_page_token] if args.key?(:next_page_token)
|
|
2048
|
+
end
|
|
2049
|
+
end
|
|
2050
|
+
|
|
2051
|
+
# Response including listed sessions.
|
|
2052
|
+
class ListSessionsResponse
|
|
2053
|
+
include Google::Apis::Core::Hashable
|
|
2054
|
+
|
|
2055
|
+
# Token to receive the next page of sessions. This will be absent if the end of
|
|
2056
|
+
# the response list has been reached.
|
|
2057
|
+
# Corresponds to the JSON property `nextPageToken`
|
|
2058
|
+
# @return [String]
|
|
2059
|
+
attr_accessor :next_page_token
|
|
2060
|
+
|
|
2061
|
+
# The list of sessions.
|
|
2062
|
+
# Corresponds to the JSON property `sessions`
|
|
2063
|
+
# @return [Array<Google::Apis::DevicerunV1alpha::Session>]
|
|
2064
|
+
attr_accessor :sessions
|
|
2065
|
+
|
|
2066
|
+
# Unordered list. Sessions that could not be reached.
|
|
2067
|
+
# Corresponds to the JSON property `unreachable`
|
|
2068
|
+
# @return [Array<String>]
|
|
2069
|
+
attr_accessor :unreachable
|
|
2070
|
+
|
|
2071
|
+
def initialize(**args)
|
|
2072
|
+
update!(**args)
|
|
2073
|
+
end
|
|
2074
|
+
|
|
2075
|
+
# Update properties of this object
|
|
2076
|
+
def update!(**args)
|
|
2077
|
+
@next_page_token = args[:next_page_token] if args.key?(:next_page_token)
|
|
2078
|
+
@sessions = args[:sessions] if args.key?(:sessions)
|
|
2079
|
+
@unreachable = args[:unreachable] if args.key?(:unreachable)
|
|
2080
|
+
end
|
|
2081
|
+
end
|
|
2082
|
+
|
|
2083
|
+
# A resource that represents a Google Cloud location.
|
|
2084
|
+
class Location
|
|
2085
|
+
include Google::Apis::Core::Hashable
|
|
2086
|
+
|
|
2087
|
+
# The friendly name for this location, typically a nearby city name. For example,
|
|
2088
|
+
# "Tokyo".
|
|
2089
|
+
# Corresponds to the JSON property `displayName`
|
|
2090
|
+
# @return [String]
|
|
2091
|
+
attr_accessor :display_name
|
|
2092
|
+
|
|
2093
|
+
# Cross-service attributes for the location. For example `"cloud.googleapis.com/
|
|
2094
|
+
# region": "us-east1"`
|
|
2095
|
+
# Corresponds to the JSON property `labels`
|
|
2096
|
+
# @return [Hash<String,String>]
|
|
2097
|
+
attr_accessor :labels
|
|
2098
|
+
|
|
2099
|
+
# The canonical id for this location. For example: `"us-east1"`.
|
|
2100
|
+
# Corresponds to the JSON property `locationId`
|
|
2101
|
+
# @return [String]
|
|
2102
|
+
attr_accessor :location_id
|
|
2103
|
+
|
|
2104
|
+
# Service-specific metadata. For example the available capacity at the given
|
|
2105
|
+
# location.
|
|
2106
|
+
# Corresponds to the JSON property `metadata`
|
|
2107
|
+
# @return [Hash<String,Object>]
|
|
2108
|
+
attr_accessor :metadata
|
|
2109
|
+
|
|
2110
|
+
# Resource name for the location, which may vary between implementations. For
|
|
2111
|
+
# example: `"projects/example-project/locations/us-east1"`
|
|
2112
|
+
# Corresponds to the JSON property `name`
|
|
2113
|
+
# @return [String]
|
|
2114
|
+
attr_accessor :name
|
|
2115
|
+
|
|
2116
|
+
def initialize(**args)
|
|
2117
|
+
update!(**args)
|
|
2118
|
+
end
|
|
2119
|
+
|
|
2120
|
+
# Update properties of this object
|
|
2121
|
+
def update!(**args)
|
|
2122
|
+
@display_name = args[:display_name] if args.key?(:display_name)
|
|
2123
|
+
@labels = args[:labels] if args.key?(:labels)
|
|
2124
|
+
@location_id = args[:location_id] if args.key?(:location_id)
|
|
2125
|
+
@metadata = args[:metadata] if args.key?(:metadata)
|
|
2126
|
+
@name = args[:name] if args.key?(:name)
|
|
2127
|
+
end
|
|
2128
|
+
end
|
|
2129
|
+
|
|
2130
|
+
# Represents the metadata of the long-running operation.
|
|
2131
|
+
class OperationMetadata
|
|
2132
|
+
include Google::Apis::Core::Hashable
|
|
2133
|
+
|
|
2134
|
+
# Output only. API version used to start the operation.
|
|
2135
|
+
# Corresponds to the JSON property `apiVersion`
|
|
2136
|
+
# @return [String]
|
|
2137
|
+
attr_accessor :api_version
|
|
2138
|
+
|
|
2139
|
+
# Output only. The time the operation was created.
|
|
2140
|
+
# Corresponds to the JSON property `createTime`
|
|
2141
|
+
# @return [String]
|
|
2142
|
+
attr_accessor :create_time
|
|
2143
|
+
|
|
2144
|
+
# Output only. The time the operation finished running.
|
|
2145
|
+
# Corresponds to the JSON property `endTime`
|
|
2146
|
+
# @return [String]
|
|
2147
|
+
attr_accessor :end_time
|
|
2148
|
+
|
|
2149
|
+
# Output only. Identifies whether the user has requested cancellation of the
|
|
2150
|
+
# operation. Operations that have been cancelled successfully have google.
|
|
2151
|
+
# longrunning.Operation.error value with a google.rpc.Status.code of `1`,
|
|
2152
|
+
# corresponding to `Code.CANCELLED`.
|
|
2153
|
+
# Corresponds to the JSON property `requestedCancellation`
|
|
2154
|
+
# @return [Boolean]
|
|
2155
|
+
attr_accessor :requested_cancellation
|
|
2156
|
+
alias_method :requested_cancellation?, :requested_cancellation
|
|
2157
|
+
|
|
2158
|
+
# Output only. Human-readable status of the operation, if any.
|
|
2159
|
+
# Corresponds to the JSON property `statusMessage`
|
|
2160
|
+
# @return [String]
|
|
2161
|
+
attr_accessor :status_message
|
|
2162
|
+
|
|
2163
|
+
# Output only. Server-defined resource path for the target of the operation.
|
|
2164
|
+
# Corresponds to the JSON property `target`
|
|
2165
|
+
# @return [String]
|
|
2166
|
+
attr_accessor :target
|
|
2167
|
+
|
|
2168
|
+
# Output only. Name of the verb executed by the operation.
|
|
2169
|
+
# Corresponds to the JSON property `verb`
|
|
2170
|
+
# @return [String]
|
|
2171
|
+
attr_accessor :verb
|
|
2172
|
+
|
|
2173
|
+
def initialize(**args)
|
|
2174
|
+
update!(**args)
|
|
2175
|
+
end
|
|
2176
|
+
|
|
2177
|
+
# Update properties of this object
|
|
2178
|
+
def update!(**args)
|
|
2179
|
+
@api_version = args[:api_version] if args.key?(:api_version)
|
|
2180
|
+
@create_time = args[:create_time] if args.key?(:create_time)
|
|
2181
|
+
@end_time = args[:end_time] if args.key?(:end_time)
|
|
2182
|
+
@requested_cancellation = args[:requested_cancellation] if args.key?(:requested_cancellation)
|
|
2183
|
+
@status_message = args[:status_message] if args.key?(:status_message)
|
|
2184
|
+
@target = args[:target] if args.key?(:target)
|
|
2185
|
+
@verb = args[:verb] if args.key?(:verb)
|
|
2186
|
+
end
|
|
2187
|
+
end
|
|
2188
|
+
|
|
2189
|
+
# Output file.
|
|
2190
|
+
class OutputFile
|
|
2191
|
+
include Google::Apis::Core::Hashable
|
|
2192
|
+
|
|
2193
|
+
# A path to a file or directory in Google Cloud Storage.
|
|
2194
|
+
# Corresponds to the JSON property `gcsOutputFile`
|
|
2195
|
+
# @return [Google::Apis::DevicerunV1alpha::GcsPath]
|
|
2196
|
+
attr_accessor :gcs_output_file
|
|
2197
|
+
|
|
2198
|
+
def initialize(**args)
|
|
2199
|
+
update!(**args)
|
|
2200
|
+
end
|
|
2201
|
+
|
|
2202
|
+
# Update properties of this object
|
|
2203
|
+
def update!(**args)
|
|
2204
|
+
@gcs_output_file = args[:gcs_output_file] if args.key?(:gcs_output_file)
|
|
2205
|
+
end
|
|
2206
|
+
end
|
|
2207
|
+
|
|
2208
|
+
# The result of a session/job/execution.
|
|
2209
|
+
class Result
|
|
2210
|
+
include Google::Apis::Core::Hashable
|
|
2211
|
+
|
|
2212
|
+
# Describes the cause of the non-passed result occurred during the execution.
|
|
2213
|
+
# Corresponds to the JSON property `cause`
|
|
2214
|
+
# @return [Google::Apis::DevicerunV1alpha::ResultCause]
|
|
2215
|
+
attr_accessor :cause
|
|
2216
|
+
|
|
2217
|
+
# Output only. The result type of the session/job/execution.
|
|
2218
|
+
# Corresponds to the JSON property `resultType`
|
|
2219
|
+
# @return [String]
|
|
2220
|
+
attr_accessor :result_type
|
|
2221
|
+
|
|
2222
|
+
def initialize(**args)
|
|
2223
|
+
update!(**args)
|
|
2224
|
+
end
|
|
2225
|
+
|
|
2226
|
+
# Update properties of this object
|
|
2227
|
+
def update!(**args)
|
|
2228
|
+
@cause = args[:cause] if args.key?(:cause)
|
|
2229
|
+
@result_type = args[:result_type] if args.key?(:result_type)
|
|
2230
|
+
end
|
|
2231
|
+
end
|
|
2232
|
+
|
|
2233
|
+
# Describes the cause of the non-passed result occurred during the execution.
|
|
2234
|
+
class ResultCause
|
|
2235
|
+
include Google::Apis::Core::Hashable
|
|
2236
|
+
|
|
2237
|
+
# Describes the summary of an issue (error or warning) with structured details.
|
|
2238
|
+
# Corresponds to the JSON property `summary`
|
|
2239
|
+
# @return [Google::Apis::DevicerunV1alpha::IssueSummary]
|
|
2240
|
+
attr_accessor :summary
|
|
2241
|
+
|
|
2242
|
+
def initialize(**args)
|
|
2243
|
+
update!(**args)
|
|
2244
|
+
end
|
|
2245
|
+
|
|
2246
|
+
# Update properties of this object
|
|
2247
|
+
def update!(**args)
|
|
2248
|
+
@summary = args[:summary] if args.key?(:summary)
|
|
2249
|
+
end
|
|
2250
|
+
end
|
|
2251
|
+
|
|
2252
|
+
# Retry settings.
|
|
2253
|
+
class RetrySettings
|
|
2254
|
+
include Google::Apis::Core::Hashable
|
|
2255
|
+
|
|
2256
|
+
# Default retry strategy. It will retry on test failures for up to
|
|
2257
|
+
# flaky_test_attempts (including the initial run). It also retries on infra
|
|
2258
|
+
# issues for up to 2 attempts (including the initial run). So in total, an
|
|
2259
|
+
# execution can run up to flaky_test_attempts * 2 times in the worst case.
|
|
2260
|
+
# Corresponds to the JSON property `flakyTestRetryStrategy`
|
|
2261
|
+
# @return [Google::Apis::DevicerunV1alpha::RetrySettingsFlakyTestRetryStrategy]
|
|
2262
|
+
attr_accessor :flaky_test_retry_strategy
|
|
2263
|
+
|
|
2264
|
+
def initialize(**args)
|
|
2265
|
+
update!(**args)
|
|
2266
|
+
end
|
|
2267
|
+
|
|
2268
|
+
# Update properties of this object
|
|
2269
|
+
def update!(**args)
|
|
2270
|
+
@flaky_test_retry_strategy = args[:flaky_test_retry_strategy] if args.key?(:flaky_test_retry_strategy)
|
|
2271
|
+
end
|
|
2272
|
+
end
|
|
2273
|
+
|
|
2274
|
+
# Default retry strategy. It will retry on test failures for up to
|
|
2275
|
+
# flaky_test_attempts (including the initial run). It also retries on infra
|
|
2276
|
+
# issues for up to 2 attempts (including the initial run). So in total, an
|
|
2277
|
+
# execution can run up to flaky_test_attempts * 2 times in the worst case.
|
|
2278
|
+
class RetrySettingsFlakyTestRetryStrategy
|
|
2279
|
+
include Google::Apis::Core::Hashable
|
|
2280
|
+
|
|
2281
|
+
# Required. The total attempts for flaky tests, including the initial run.
|
|
2282
|
+
# Default value: 1 (no retry). Range: [1, 5].
|
|
2283
|
+
# Corresponds to the JSON property `flakyTestAttempts`
|
|
2284
|
+
# @return [Fixnum]
|
|
2285
|
+
attr_accessor :flaky_test_attempts
|
|
2286
|
+
|
|
2287
|
+
# Optional. Whether to retry the test failures in parallel. By default, the test
|
|
2288
|
+
# is retried sequentially. If true, when the initial attempt fails, (
|
|
2289
|
+
# flaky_test_attempts - 1) attempts will be triggered at the same time to run in
|
|
2290
|
+
# parallel.
|
|
2291
|
+
# Corresponds to the JSON property `parallelRetry`
|
|
2292
|
+
# @return [Boolean]
|
|
2293
|
+
attr_accessor :parallel_retry
|
|
2294
|
+
alias_method :parallel_retry?, :parallel_retry
|
|
2295
|
+
|
|
2296
|
+
# Optional. The mode of test reduction for retry. If the test runner doesn't
|
|
2297
|
+
# support the specified test reduction mode, the request will be rejected with
|
|
2298
|
+
# an `INVALID_ARGUMENT` error.
|
|
2299
|
+
# Corresponds to the JSON property `testReductionMode`
|
|
2300
|
+
# @return [String]
|
|
2301
|
+
attr_accessor :test_reduction_mode
|
|
2302
|
+
|
|
2303
|
+
def initialize(**args)
|
|
2304
|
+
update!(**args)
|
|
2305
|
+
end
|
|
2306
|
+
|
|
2307
|
+
# Update properties of this object
|
|
2308
|
+
def update!(**args)
|
|
2309
|
+
@flaky_test_attempts = args[:flaky_test_attempts] if args.key?(:flaky_test_attempts)
|
|
2310
|
+
@parallel_retry = args[:parallel_retry] if args.key?(:parallel_retry)
|
|
2311
|
+
@test_reduction_mode = args[:test_reduction_mode] if args.key?(:test_reduction_mode)
|
|
2312
|
+
end
|
|
2313
|
+
end
|
|
2314
|
+
|
|
2315
|
+
# A session resource in the AutomationSession API. At a high level, `Session`
|
|
2316
|
+
# describes the configuration of one or multiple jobs, the state transitions it
|
|
2317
|
+
# goes through, and the results.
|
|
2318
|
+
class Session
|
|
2319
|
+
include Google::Apis::Core::Hashable
|
|
2320
|
+
|
|
2321
|
+
# Identifier. The resource name of the session. Format: `projects/`project`/
|
|
2322
|
+
# locations/`location`/sessions/`session``.
|
|
2323
|
+
# Corresponds to the JSON property `name`
|
|
2324
|
+
# @return [String]
|
|
2325
|
+
attr_accessor :name
|
|
2326
|
+
|
|
2327
|
+
# SessionConfig is used to create a session.
|
|
2328
|
+
# Corresponds to the JSON property `sessionConfig`
|
|
2329
|
+
# @return [Google::Apis::DevicerunV1alpha::SessionConfig]
|
|
2330
|
+
attr_accessor :session_config
|
|
2331
|
+
|
|
2332
|
+
# The runtime information and result report of a session.
|
|
2333
|
+
# Corresponds to the JSON property `sessionReport`
|
|
2334
|
+
# @return [Google::Apis::DevicerunV1alpha::SessionReport]
|
|
2335
|
+
attr_accessor :session_report
|
|
2336
|
+
|
|
2337
|
+
def initialize(**args)
|
|
2338
|
+
update!(**args)
|
|
2339
|
+
end
|
|
2340
|
+
|
|
2341
|
+
# Update properties of this object
|
|
2342
|
+
def update!(**args)
|
|
2343
|
+
@name = args[:name] if args.key?(:name)
|
|
2344
|
+
@session_config = args[:session_config] if args.key?(:session_config)
|
|
2345
|
+
@session_report = args[:session_report] if args.key?(:session_report)
|
|
2346
|
+
end
|
|
2347
|
+
end
|
|
2348
|
+
|
|
2349
|
+
# SessionConfig is used to create a session.
|
|
2350
|
+
class SessionConfig
|
|
2351
|
+
include Google::Apis::Core::Hashable
|
|
2352
|
+
|
|
2353
|
+
# Optional. User-settable, human-readable name for the session. Maximum size is
|
|
2354
|
+
# 63 bytes when encoded as UTF-8. If set, must match regex: `^A-Za-z0-9*$`.
|
|
2355
|
+
# Corresponds to the JSON property `displayName`
|
|
2356
|
+
# @return [String]
|
|
2357
|
+
attr_accessor :display_name
|
|
2358
|
+
|
|
2359
|
+
# Required. Configs of the jobs in the session.
|
|
2360
|
+
# Corresponds to the JSON property `jobConfigs`
|
|
2361
|
+
# @return [Array<Google::Apis::DevicerunV1alpha::JobConfig>]
|
|
2362
|
+
attr_accessor :job_configs
|
|
2363
|
+
|
|
2364
|
+
# Config to control session notification.
|
|
2365
|
+
# Corresponds to the JSON property `notificationConfig`
|
|
2366
|
+
# @return [Google::Apis::DevicerunV1alpha::SessionConfigSessionNotificationConfig]
|
|
2367
|
+
attr_accessor :notification_config
|
|
2368
|
+
|
|
2369
|
+
# Config to control session output file directory.
|
|
2370
|
+
# Corresponds to the JSON property `outputDirectoryConfig`
|
|
2371
|
+
# @return [Google::Apis::DevicerunV1alpha::SessionConfigSessionOutputFileDirectoryConfig]
|
|
2372
|
+
attr_accessor :output_directory_config
|
|
2373
|
+
|
|
2374
|
+
def initialize(**args)
|
|
2375
|
+
update!(**args)
|
|
2376
|
+
end
|
|
2377
|
+
|
|
2378
|
+
# Update properties of this object
|
|
2379
|
+
def update!(**args)
|
|
2380
|
+
@display_name = args[:display_name] if args.key?(:display_name)
|
|
2381
|
+
@job_configs = args[:job_configs] if args.key?(:job_configs)
|
|
2382
|
+
@notification_config = args[:notification_config] if args.key?(:notification_config)
|
|
2383
|
+
@output_directory_config = args[:output_directory_config] if args.key?(:output_directory_config)
|
|
2384
|
+
end
|
|
2385
|
+
end
|
|
2386
|
+
|
|
2387
|
+
# Config to control session notification.
|
|
2388
|
+
class SessionConfigSessionNotificationConfig
|
|
2389
|
+
include Google::Apis::Core::Hashable
|
|
2390
|
+
|
|
2391
|
+
# Optional. The Pub/Sub topics to which session events are published. Format: `
|
|
2392
|
+
# projects/`project`/topics/`topic``. See https://cloud.google.com/pubsub/docs/
|
|
2393
|
+
# admin#topic_and_subscription_name_restrictions
|
|
2394
|
+
# Corresponds to the JSON property `pubsubTopic`
|
|
2395
|
+
# @return [Array<String>]
|
|
2396
|
+
attr_accessor :pubsub_topic
|
|
2397
|
+
|
|
2398
|
+
def initialize(**args)
|
|
2399
|
+
update!(**args)
|
|
2400
|
+
end
|
|
2401
|
+
|
|
2402
|
+
# Update properties of this object
|
|
2403
|
+
def update!(**args)
|
|
2404
|
+
@pubsub_topic = args[:pubsub_topic] if args.key?(:pubsub_topic)
|
|
2405
|
+
end
|
|
2406
|
+
end
|
|
2407
|
+
|
|
2408
|
+
# Config to control session output file directory.
|
|
2409
|
+
class SessionConfigSessionOutputFileDirectoryConfig
|
|
2410
|
+
include Google::Apis::Core::Hashable
|
|
2411
|
+
|
|
2412
|
+
# Optional. Whether to write output files directly under the output directory
|
|
2413
|
+
# instead of nesting them under service-generated subdirectories. By default (`
|
|
2414
|
+
# false`), output files are stored under `////`. When `true`, the session ID
|
|
2415
|
+
# subdirectory is never appended, and the job display name subdirectory is
|
|
2416
|
+
# appended only when the session has more than one job. Output files are
|
|
2417
|
+
# therefore stored under: - `//` for a single-job session. - `///` for a multi-
|
|
2418
|
+
# job session. Set this to `true` when the output directory is already unique
|
|
2419
|
+
# per session (for example, when a CI system generates it), to avoid redundant
|
|
2420
|
+
# nesting.
|
|
2421
|
+
# Corresponds to the JSON property `flatDirectoryStructure`
|
|
2422
|
+
# @return [Boolean]
|
|
2423
|
+
attr_accessor :flat_directory_structure
|
|
2424
|
+
alias_method :flat_directory_structure?, :flat_directory_structure
|
|
2425
|
+
|
|
2426
|
+
# A path to a file or directory in Google Cloud Storage.
|
|
2427
|
+
# Corresponds to the JSON property `gcsOutputDirectory`
|
|
2428
|
+
# @return [Google::Apis::DevicerunV1alpha::GcsPath]
|
|
2429
|
+
attr_accessor :gcs_output_directory
|
|
2430
|
+
|
|
2431
|
+
def initialize(**args)
|
|
2432
|
+
update!(**args)
|
|
2433
|
+
end
|
|
2434
|
+
|
|
2435
|
+
# Update properties of this object
|
|
2436
|
+
def update!(**args)
|
|
2437
|
+
@flat_directory_structure = args[:flat_directory_structure] if args.key?(:flat_directory_structure)
|
|
2438
|
+
@gcs_output_directory = args[:gcs_output_directory] if args.key?(:gcs_output_directory)
|
|
2439
|
+
end
|
|
2440
|
+
end
|
|
2441
|
+
|
|
2442
|
+
# The runtime information and result report of a session.
|
|
2443
|
+
class SessionReport
|
|
2444
|
+
include Google::Apis::Core::Hashable
|
|
2445
|
+
|
|
2446
|
+
# Output only. The end time of the session.
|
|
2447
|
+
# Corresponds to the JSON property `endTime`
|
|
2448
|
+
# @return [String]
|
|
2449
|
+
attr_accessor :end_time
|
|
2450
|
+
|
|
2451
|
+
# Output only. The unique identifier of the session.
|
|
2452
|
+
# Corresponds to the JSON property `id`
|
|
2453
|
+
# @return [String]
|
|
2454
|
+
attr_accessor :id
|
|
2455
|
+
|
|
2456
|
+
# Output only. Reports of the jobs in the session.
|
|
2457
|
+
# Corresponds to the JSON property `jobReports`
|
|
2458
|
+
# @return [Array<Google::Apis::DevicerunV1alpha::JobReport>]
|
|
2459
|
+
attr_accessor :job_reports
|
|
2460
|
+
|
|
2461
|
+
# The result of a session/job/execution.
|
|
2462
|
+
# Corresponds to the JSON property `result`
|
|
2463
|
+
# @return [Google::Apis::DevicerunV1alpha::Result]
|
|
2464
|
+
attr_accessor :result
|
|
2465
|
+
|
|
2466
|
+
# Output only. The start time of the session.
|
|
2467
|
+
# Corresponds to the JSON property `startTime`
|
|
2468
|
+
# @return [String]
|
|
2469
|
+
attr_accessor :start_time
|
|
2470
|
+
|
|
2471
|
+
# The status of a session/job/execution.
|
|
2472
|
+
# Corresponds to the JSON property `status`
|
|
2473
|
+
# @return [Google::Apis::DevicerunV1alpha::Status]
|
|
2474
|
+
attr_accessor :status
|
|
2475
|
+
|
|
2476
|
+
def initialize(**args)
|
|
2477
|
+
update!(**args)
|
|
2478
|
+
end
|
|
2479
|
+
|
|
2480
|
+
# Update properties of this object
|
|
2481
|
+
def update!(**args)
|
|
2482
|
+
@end_time = args[:end_time] if args.key?(:end_time)
|
|
2483
|
+
@id = args[:id] if args.key?(:id)
|
|
2484
|
+
@job_reports = args[:job_reports] if args.key?(:job_reports)
|
|
2485
|
+
@result = args[:result] if args.key?(:result)
|
|
2486
|
+
@start_time = args[:start_time] if args.key?(:start_time)
|
|
2487
|
+
@status = args[:status] if args.key?(:status)
|
|
2488
|
+
end
|
|
2489
|
+
end
|
|
2490
|
+
|
|
2491
|
+
# The status of a session/job/execution.
|
|
2492
|
+
class Status
|
|
2493
|
+
include Google::Apis::Core::Hashable
|
|
2494
|
+
|
|
2495
|
+
# Output only. Human-readable, detailed descriptions of the session/job/
|
|
2496
|
+
# execution's progress. For example: "Provisioning a device", "Starting Test".
|
|
2497
|
+
# Each message should contain only one line of text. During the course of
|
|
2498
|
+
# execution new data may be appended to the end of progress_messages.
|
|
2499
|
+
# Corresponds to the JSON property `progressMessages`
|
|
2500
|
+
# @return [Array<String>]
|
|
2501
|
+
attr_accessor :progress_messages
|
|
2502
|
+
|
|
2503
|
+
# Output only. The status type of the session/job/execution.
|
|
2504
|
+
# Corresponds to the JSON property `statusType`
|
|
2505
|
+
# @return [String]
|
|
2506
|
+
attr_accessor :status_type
|
|
2507
|
+
|
|
2508
|
+
def initialize(**args)
|
|
2509
|
+
update!(**args)
|
|
2510
|
+
end
|
|
2511
|
+
|
|
2512
|
+
# Update properties of this object
|
|
2513
|
+
def update!(**args)
|
|
2514
|
+
@progress_messages = args[:progress_messages] if args.key?(:progress_messages)
|
|
2515
|
+
@status_type = args[:status_type] if args.key?(:status_type)
|
|
2516
|
+
end
|
|
2517
|
+
end
|
|
2518
|
+
|
|
2519
|
+
# Non-fatal operational anomaly, lint observation, or execution insight.
|
|
2520
|
+
class Warning
|
|
2521
|
+
include Google::Apis::Core::Hashable
|
|
2522
|
+
|
|
2523
|
+
# Describes the summary of an issue (error or warning) with structured details.
|
|
2524
|
+
# Corresponds to the JSON property `summary`
|
|
2525
|
+
# @return [Google::Apis::DevicerunV1alpha::IssueSummary]
|
|
2526
|
+
attr_accessor :summary
|
|
2527
|
+
|
|
2528
|
+
def initialize(**args)
|
|
2529
|
+
update!(**args)
|
|
2530
|
+
end
|
|
2531
|
+
|
|
2532
|
+
# Update properties of this object
|
|
2533
|
+
def update!(**args)
|
|
2534
|
+
@summary = args[:summary] if args.key?(:summary)
|
|
2535
|
+
end
|
|
2536
|
+
end
|
|
2537
|
+
end
|
|
2538
|
+
end
|
|
2539
|
+
end
|