aws-sdk-devicefarm 1.0.0.rc1

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: eb1b98dfddecaba6606d4281f445865a83132f63
4
+ data.tar.gz: 259f1f40cf1de8e5911c21a226e2334ef037fdcd
5
+ SHA512:
6
+ metadata.gz: ac04efca2cd50d511610f61d7551eeef3e9d6917924e443332d2ef9369cb682b03a435923eeeef1c6f42fe63d6d52577c219accc217916f248b597081796e911
7
+ data.tar.gz: ed093b8618f436718a628f3d22833e0a3fd10653681d01ccf616ebd3e2fe3f507a2a03ebeb9594d8caa18f34cdb4dc397e4279e14d3cc0e188135c4e6667f623
@@ -0,0 +1,47 @@
1
+ # WARNING ABOUT GENERATED CODE
2
+ #
3
+ # This file is generated. See the contributing for info on making contributions:
4
+ # https://github.com/aws/aws-sdk-ruby/blob/master/CONTRIBUTING.md
5
+ #
6
+ # WARNING ABOUT GENERATED CODE
7
+
8
+ require 'aws-sdk-core'
9
+ require 'aws-sigv4'
10
+
11
+ require_relative 'aws-sdk-devicefarm/types'
12
+ require_relative 'aws-sdk-devicefarm/client_api'
13
+ require_relative 'aws-sdk-devicefarm/client'
14
+ require_relative 'aws-sdk-devicefarm/errors'
15
+ require_relative 'aws-sdk-devicefarm/resource'
16
+ require_relative 'aws-sdk-devicefarm/customizations'
17
+
18
+ # This module provides support for AWS Device Farm. This module is available in the
19
+ # `aws-sdk-devicefarm` gem.
20
+ #
21
+ # # Client
22
+ #
23
+ # The {Client} class provides one method for each API operation. Operation
24
+ # methods each accept a hash of request parameters and return a response
25
+ # structure.
26
+ #
27
+ # See {Client} for more information.
28
+ #
29
+ # # Errors
30
+ #
31
+ # Errors returned from AWS Device Farm all
32
+ # extend {Errors::ServiceError}.
33
+ #
34
+ # begin
35
+ # # do stuff
36
+ # rescue Aws::DeviceFarm::Errors::ServiceError
37
+ # # rescues all service API errors
38
+ # end
39
+ #
40
+ # See {Errors} for more information.
41
+ #
42
+ # @service
43
+ module Aws::DeviceFarm
44
+
45
+ GEM_VERSION = '1.0.0.rc1'
46
+
47
+ end
@@ -0,0 +1,2072 @@
1
+ # WARNING ABOUT GENERATED CODE
2
+ #
3
+ # This file is generated. See the contributing for info on making contributions:
4
+ # https://github.com/aws/aws-sdk-ruby/blob/master/CONTRIBUTING.md
5
+ #
6
+ # WARNING ABOUT GENERATED CODE
7
+
8
+ require 'seahorse/client/plugins/content_length.rb'
9
+ require 'aws-sdk-core/plugins/credentials_configuration.rb'
10
+ require 'aws-sdk-core/plugins/logging.rb'
11
+ require 'aws-sdk-core/plugins/param_converter.rb'
12
+ require 'aws-sdk-core/plugins/param_validator.rb'
13
+ require 'aws-sdk-core/plugins/user_agent.rb'
14
+ require 'aws-sdk-core/plugins/helpful_socket_errors.rb'
15
+ require 'aws-sdk-core/plugins/retry_errors.rb'
16
+ require 'aws-sdk-core/plugins/global_configuration.rb'
17
+ require 'aws-sdk-core/plugins/regional_endpoint.rb'
18
+ require 'aws-sdk-core/plugins/response_paging.rb'
19
+ require 'aws-sdk-core/plugins/stub_responses.rb'
20
+ require 'aws-sdk-core/plugins/idempotency_token.rb'
21
+ require 'aws-sdk-core/plugins/signature_v4.rb'
22
+ require 'aws-sdk-core/plugins/protocols/json_rpc.rb'
23
+
24
+ Aws::Plugins::GlobalConfiguration.add_identifier(:devicefarm)
25
+
26
+ module Aws
27
+ module DeviceFarm
28
+ class Client < Seahorse::Client::Base
29
+
30
+ include Aws::ClientStubs
31
+
32
+ @identifier = :devicefarm
33
+
34
+ set_api(ClientApi::API)
35
+
36
+ add_plugin(Seahorse::Client::Plugins::ContentLength)
37
+ add_plugin(Aws::Plugins::CredentialsConfiguration)
38
+ add_plugin(Aws::Plugins::Logging)
39
+ add_plugin(Aws::Plugins::ParamConverter)
40
+ add_plugin(Aws::Plugins::ParamValidator)
41
+ add_plugin(Aws::Plugins::UserAgent)
42
+ add_plugin(Aws::Plugins::HelpfulSocketErrors)
43
+ add_plugin(Aws::Plugins::RetryErrors)
44
+ add_plugin(Aws::Plugins::GlobalConfiguration)
45
+ add_plugin(Aws::Plugins::RegionalEndpoint)
46
+ add_plugin(Aws::Plugins::ResponsePaging)
47
+ add_plugin(Aws::Plugins::StubResponses)
48
+ add_plugin(Aws::Plugins::IdempotencyToken)
49
+ add_plugin(Aws::Plugins::SignatureV4)
50
+ add_plugin(Aws::Plugins::Protocols::JsonRpc)
51
+
52
+ # @option options [required, Aws::CredentialProvider] :credentials
53
+ # Your AWS credentials. This can be an instance of any one of the
54
+ # following classes:
55
+ #
56
+ # * `Aws::Credentials` - Used for configuring static, non-refreshing
57
+ # credentials.
58
+ #
59
+ # * `Aws::InstanceProfileCredentials` - Used for loading credentials
60
+ # from an EC2 IMDS on an EC2 instance.
61
+ #
62
+ # * `Aws::SharedCredentials` - Used for loading credentials from a
63
+ # shared file, such as `~/.aws/config`.
64
+ #
65
+ # * `Aws::AssumeRoleCredentials` - Used when you need to assume a role.
66
+ #
67
+ # When `:credentials` are not configured directly, the following
68
+ # locations will be searched for credentials:
69
+ #
70
+ # * `Aws.config[:credentials]`
71
+ # * The `:access_key_id`, `:secret_access_key`, and `:session_token` options.
72
+ # * ENV['AWS_ACCESS_KEY_ID'], ENV['AWS_SECRET_ACCESS_KEY']
73
+ # * `~/.aws/credentials`
74
+ # * `~/.aws/config`
75
+ # * EC2 IMDS instance profile - When used by default, the timeouts are
76
+ # very aggressive. Construct and pass an instance of
77
+ # `Aws::InstanceProfileCredentails` to enable retries and extended
78
+ # timeouts.
79
+ # @option options [required, String] :region
80
+ # The AWS region to connect to. The configured `:region` is
81
+ # used to determine the service `:endpoint`. When not passed,
82
+ # a default `:region` is search for in the following locations:
83
+ #
84
+ # * `Aws.config[:region]`
85
+ # * `ENV['AWS_REGION']`
86
+ # * `ENV['AMAZON_REGION']`
87
+ # * `ENV['AWS_DEFAULT_REGION']`
88
+ # * `~/.aws/credentials`
89
+ # * `~/.aws/config`
90
+ # @option options [String] :access_key_id
91
+ # @option options [Boolean] :convert_params (true)
92
+ # When `true`, an attempt is made to coerce request parameters into
93
+ # the required types.
94
+ # @option options [String] :endpoint
95
+ # The client endpoint is normally constructed from the `:region`
96
+ # option. You should only configure an `:endpoint` when connecting
97
+ # to test endpoints. This should be avalid HTTP(S) URI.
98
+ # @option options [Aws::Log::Formatter] :log_formatter (Aws::Log::Formatter.default)
99
+ # The log formatter.
100
+ # @option options [Symbol] :log_level (:info)
101
+ # The log level to send messages to the `:logger` at.
102
+ # @option options [Logger] :logger
103
+ # The Logger instance to send log messages to. If this option
104
+ # is not set, logging will be disabled.
105
+ # @option options [String] :profile ("default")
106
+ # Used when loading credentials from the shared credentials file
107
+ # at HOME/.aws/credentials. When not specified, 'default' is used.
108
+ # @option options [Integer] :retry_limit (3)
109
+ # The maximum number of times to retry failed requests. Only
110
+ # ~ 500 level server errors and certain ~ 400 level client errors
111
+ # are retried. Generally, these are throttling errors, data
112
+ # checksum errors, networking errors, timeout errors and auth
113
+ # errors from expired credentials.
114
+ # @option options [String] :secret_access_key
115
+ # @option options [String] :session_token
116
+ # @option options [Boolean] :simple_json (false)
117
+ # Disables request parameter conversion, validation, and formatting.
118
+ # Also disable response data type conversions. This option is useful
119
+ # when you want to ensure the highest level of performance by
120
+ # avoiding overhead of walking request parameters and response data
121
+ # structures.
122
+ #
123
+ # When `:simple_json` is enabled, the request parameters hash must
124
+ # be formatted exactly as the DynamoDB API expects.
125
+ # @option options [Boolean] :stub_responses (false)
126
+ # Causes the client to return stubbed responses. By default
127
+ # fake responses are generated and returned. You can specify
128
+ # the response data to return or errors to raise by calling
129
+ # {ClientStubs#stub_responses}. See {ClientStubs} for more information.
130
+ #
131
+ # ** Please note ** When response stubbing is enabled, no HTTP
132
+ # requests are made, and retries are disabled.
133
+ # @option options [Boolean] :validate_params (true)
134
+ # When `true`, request parameters are validated before
135
+ # sending the request.
136
+ def initialize(*args)
137
+ super
138
+ end
139
+
140
+ # @!group API Operations
141
+
142
+ # Creates a device pool.
143
+ # @option params [required, String] :project_arn
144
+ # The ARN of the project for the device pool.
145
+ # @option params [required, String] :name
146
+ # The device pool's name.
147
+ # @option params [String] :description
148
+ # The device pool's description.
149
+ # @option params [required, Array<Types::Rule>] :rules
150
+ # The device pool's rules.
151
+ # @return [Types::CreateDevicePoolResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
152
+ #
153
+ # * {Types::CreateDevicePoolResult#device_pool #devicePool} => Types::DevicePool
154
+ #
155
+ # @example Request syntax with placeholder values
156
+ # resp = client.create_device_pool({
157
+ # project_arn: "AmazonResourceName", # required
158
+ # name: "Name", # required
159
+ # description: "Message",
160
+ # rules: [ # required
161
+ # {
162
+ # attribute: "ARN", # accepts ARN, PLATFORM, FORM_FACTOR, MANUFACTURER, REMOTE_ACCESS_ENABLED
163
+ # operator: "EQUALS", # accepts EQUALS, LESS_THAN, GREATER_THAN, IN, NOT_IN
164
+ # value: "String",
165
+ # },
166
+ # ],
167
+ # })
168
+ #
169
+ # @example Response structure
170
+ # resp.device_pool.arn #=> String
171
+ # resp.device_pool.name #=> String
172
+ # resp.device_pool.description #=> String
173
+ # resp.device_pool.type #=> String, one of "CURATED", "PRIVATE"
174
+ # resp.device_pool.rules #=> Array
175
+ # resp.device_pool.rules[0].attribute #=> String, one of "ARN", "PLATFORM", "FORM_FACTOR", "MANUFACTURER", "REMOTE_ACCESS_ENABLED"
176
+ # resp.device_pool.rules[0].operator #=> String, one of "EQUALS", "LESS_THAN", "GREATER_THAN", "IN", "NOT_IN"
177
+ # resp.device_pool.rules[0].value #=> String
178
+ # @overload create_device_pool(params = {})
179
+ # @param [Hash] params ({})
180
+ def create_device_pool(params = {}, options = {})
181
+ req = build_request(:create_device_pool, params)
182
+ req.send_request(options)
183
+ end
184
+
185
+ # Creates a new project.
186
+ # @option params [required, String] :name
187
+ # The project's name.
188
+ # @return [Types::CreateProjectResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
189
+ #
190
+ # * {Types::CreateProjectResult#project #project} => Types::Project
191
+ #
192
+ # @example Request syntax with placeholder values
193
+ # resp = client.create_project({
194
+ # name: "Name", # required
195
+ # })
196
+ #
197
+ # @example Response structure
198
+ # resp.project.arn #=> String
199
+ # resp.project.name #=> String
200
+ # resp.project.created #=> Time
201
+ # @overload create_project(params = {})
202
+ # @param [Hash] params ({})
203
+ def create_project(params = {}, options = {})
204
+ req = build_request(:create_project, params)
205
+ req.send_request(options)
206
+ end
207
+
208
+ # Specifies and starts a remote access session.
209
+ # @option params [required, String] :project_arn
210
+ # The Amazon Resource Name (ARN) of the project for which you want to
211
+ # create a remote access session.
212
+ # @option params [required, String] :device_arn
213
+ # The Amazon Resource Name (ARN) of the device for which you want to
214
+ # create a remote access session.
215
+ # @option params [String] :name
216
+ # The name of the remote access session that you wish to create.
217
+ # @option params [Types::CreateRemoteAccessSessionConfiguration] :configuration
218
+ # The configuration information for the remote access session request.
219
+ # @return [Types::CreateRemoteAccessSessionResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
220
+ #
221
+ # * {Types::CreateRemoteAccessSessionResult#remote_access_session #remoteAccessSession} => Types::RemoteAccessSession
222
+ #
223
+ # @example Request syntax with placeholder values
224
+ # resp = client.create_remote_access_session({
225
+ # project_arn: "AmazonResourceName", # required
226
+ # device_arn: "AmazonResourceName", # required
227
+ # name: "Name",
228
+ # configuration: {
229
+ # billing_method: "METERED", # accepts METERED, UNMETERED
230
+ # },
231
+ # })
232
+ #
233
+ # @example Response structure
234
+ # resp.remote_access_session.arn #=> String
235
+ # resp.remote_access_session.name #=> String
236
+ # resp.remote_access_session.created #=> Time
237
+ # resp.remote_access_session.status #=> String, one of "PENDING", "PENDING_CONCURRENCY", "PENDING_DEVICE", "PROCESSING", "SCHEDULING", "PREPARING", "RUNNING", "COMPLETED", "STOPPING"
238
+ # resp.remote_access_session.result #=> String, one of "PENDING", "PASSED", "WARNED", "FAILED", "SKIPPED", "ERRORED", "STOPPED"
239
+ # resp.remote_access_session.message #=> String
240
+ # resp.remote_access_session.started #=> Time
241
+ # resp.remote_access_session.stopped #=> Time
242
+ # resp.remote_access_session.device.arn #=> String
243
+ # resp.remote_access_session.device.name #=> String
244
+ # resp.remote_access_session.device.manufacturer #=> String
245
+ # resp.remote_access_session.device.model #=> String
246
+ # resp.remote_access_session.device.form_factor #=> String, one of "PHONE", "TABLET"
247
+ # resp.remote_access_session.device.platform #=> String, one of "ANDROID", "IOS"
248
+ # resp.remote_access_session.device.os #=> String
249
+ # resp.remote_access_session.device.cpu.frequency #=> String
250
+ # resp.remote_access_session.device.cpu.architecture #=> String
251
+ # resp.remote_access_session.device.cpu.clock #=> Float
252
+ # resp.remote_access_session.device.resolution.width #=> Integer
253
+ # resp.remote_access_session.device.resolution.height #=> Integer
254
+ # resp.remote_access_session.device.heap_size #=> Integer
255
+ # resp.remote_access_session.device.memory #=> Integer
256
+ # resp.remote_access_session.device.image #=> String
257
+ # resp.remote_access_session.device.carrier #=> String
258
+ # resp.remote_access_session.device.radio #=> String
259
+ # resp.remote_access_session.device.remote_access_enabled #=> Boolean
260
+ # resp.remote_access_session.device.fleet_type #=> String
261
+ # resp.remote_access_session.device.fleet_name #=> String
262
+ # resp.remote_access_session.billing_method #=> String, one of "METERED", "UNMETERED"
263
+ # resp.remote_access_session.device_minutes.total #=> Float
264
+ # resp.remote_access_session.device_minutes.metered #=> Float
265
+ # resp.remote_access_session.device_minutes.unmetered #=> Float
266
+ # resp.remote_access_session.endpoint #=> String
267
+ # @overload create_remote_access_session(params = {})
268
+ # @param [Hash] params ({})
269
+ def create_remote_access_session(params = {}, options = {})
270
+ req = build_request(:create_remote_access_session, params)
271
+ req.send_request(options)
272
+ end
273
+
274
+ # Uploads an app or test scripts.
275
+ # @option params [required, String] :project_arn
276
+ # The ARN of the project for the upload.
277
+ # @option params [required, String] :name
278
+ # The upload's file name. The name should not contain the '/'
279
+ # character. If uploading an iOS app, the file name needs to end with
280
+ # the `.ipa` extension. If uploading an Android app, the file name needs
281
+ # to end with the `.apk` extension. For all others, the file name must
282
+ # end with the `.zip` file extension.
283
+ # @option params [required, String] :type
284
+ # The upload's upload type.
285
+ #
286
+ # Must be one of the following values:
287
+ #
288
+ # * ANDROID\_APP: An Android upload.
289
+ #
290
+ # * IOS\_APP: An iOS upload.
291
+ #
292
+ # * WEB\_APP: A web appliction upload.
293
+ #
294
+ # * EXTERNAL\_DATA: An external data upload.
295
+ #
296
+ # * APPIUM\_JAVA\_JUNIT\_TEST\_PACKAGE: An Appium Java JUnit test
297
+ # package upload.
298
+ #
299
+ # * APPIUM\_JAVA\_TESTNG\_TEST\_PACKAGE: An Appium Java TestNG test
300
+ # package upload.
301
+ #
302
+ # * APPIUM\_PYTHON\_TEST\_PACKAGE: An Appium Python test package upload.
303
+ #
304
+ # * APPIUM\_WEB\_JAVA\_JUNIT\_TEST\_PACKAGE: An Appium Java JUnit test
305
+ # package upload.
306
+ #
307
+ # * APPIUM\_WEB\_JAVA\_TESTNG\_TEST\_PACKAGE: An Appium Java TestNG test
308
+ # package upload.
309
+ #
310
+ # * APPIUM\_WEB\_PYTHON\_TEST\_PACKAGE: An Appium Python test package
311
+ # upload.
312
+ #
313
+ # * CALABASH\_TEST\_PACKAGE: A Calabash test package upload.
314
+ #
315
+ # * INSTRUMENTATION\_TEST\_PACKAGE: An instrumentation upload.
316
+ #
317
+ # * UIAUTOMATION\_TEST\_PACKAGE: A uiautomation test package upload.
318
+ #
319
+ # * UIAUTOMATOR\_TEST\_PACKAGE: A uiautomator test package upload.
320
+ #
321
+ # * XCTEST\_TEST\_PACKAGE: An XCode test package upload.
322
+ #
323
+ # * XCTEST\_UI\_TEST\_PACKAGE: An XCode UI test package upload.
324
+ #
325
+ # **Note** If you call `CreateUpload` with `WEB_APP` specified, AWS
326
+ # Device Farm throws an `ArgumentException` error.
327
+ # @option params [String] :content_type
328
+ # The upload's content type (for example,
329
+ # "application/octet-stream").
330
+ # @return [Types::CreateUploadResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
331
+ #
332
+ # * {Types::CreateUploadResult#upload #upload} => Types::Upload
333
+ #
334
+ # @example Request syntax with placeholder values
335
+ # resp = client.create_upload({
336
+ # project_arn: "AmazonResourceName", # required
337
+ # name: "Name", # required
338
+ # type: "ANDROID_APP", # required, accepts ANDROID_APP, IOS_APP, WEB_APP, EXTERNAL_DATA, APPIUM_JAVA_JUNIT_TEST_PACKAGE, APPIUM_JAVA_TESTNG_TEST_PACKAGE, APPIUM_PYTHON_TEST_PACKAGE, APPIUM_WEB_JAVA_JUNIT_TEST_PACKAGE, APPIUM_WEB_JAVA_TESTNG_TEST_PACKAGE, APPIUM_WEB_PYTHON_TEST_PACKAGE, CALABASH_TEST_PACKAGE, INSTRUMENTATION_TEST_PACKAGE, UIAUTOMATION_TEST_PACKAGE, UIAUTOMATOR_TEST_PACKAGE, XCTEST_TEST_PACKAGE, XCTEST_UI_TEST_PACKAGE
339
+ # content_type: "ContentType",
340
+ # })
341
+ #
342
+ # @example Response structure
343
+ # resp.upload.arn #=> String
344
+ # resp.upload.name #=> String
345
+ # resp.upload.created #=> Time
346
+ # resp.upload.type #=> String, one of "ANDROID_APP", "IOS_APP", "WEB_APP", "EXTERNAL_DATA", "APPIUM_JAVA_JUNIT_TEST_PACKAGE", "APPIUM_JAVA_TESTNG_TEST_PACKAGE", "APPIUM_PYTHON_TEST_PACKAGE", "APPIUM_WEB_JAVA_JUNIT_TEST_PACKAGE", "APPIUM_WEB_JAVA_TESTNG_TEST_PACKAGE", "APPIUM_WEB_PYTHON_TEST_PACKAGE", "CALABASH_TEST_PACKAGE", "INSTRUMENTATION_TEST_PACKAGE", "UIAUTOMATION_TEST_PACKAGE", "UIAUTOMATOR_TEST_PACKAGE", "XCTEST_TEST_PACKAGE", "XCTEST_UI_TEST_PACKAGE"
347
+ # resp.upload.status #=> String, one of "INITIALIZED", "PROCESSING", "SUCCEEDED", "FAILED"
348
+ # resp.upload.url #=> String
349
+ # resp.upload.metadata #=> String
350
+ # resp.upload.content_type #=> String
351
+ # resp.upload.message #=> String
352
+ # @overload create_upload(params = {})
353
+ # @param [Hash] params ({})
354
+ def create_upload(params = {}, options = {})
355
+ req = build_request(:create_upload, params)
356
+ req.send_request(options)
357
+ end
358
+
359
+ # Deletes a device pool given the pool ARN. Does not allow deletion of
360
+ # curated pools owned by the system.
361
+ # @option params [required, String] :arn
362
+ # Represents the Amazon Resource Name (ARN) of the Device Farm device
363
+ # pool you wish to delete.
364
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
365
+ #
366
+ # @example Request syntax with placeholder values
367
+ # resp = client.delete_device_pool({
368
+ # arn: "AmazonResourceName", # required
369
+ # })
370
+ # @overload delete_device_pool(params = {})
371
+ # @param [Hash] params ({})
372
+ def delete_device_pool(params = {}, options = {})
373
+ req = build_request(:delete_device_pool, params)
374
+ req.send_request(options)
375
+ end
376
+
377
+ # Deletes an AWS Device Farm project, given the project ARN.
378
+ #
379
+ # **Note** Deleting this resource does not stop an in-progress run.
380
+ # @option params [required, String] :arn
381
+ # Represents the Amazon Resource Name (ARN) of the Device Farm project
382
+ # you wish to delete.
383
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
384
+ #
385
+ # @example Request syntax with placeholder values
386
+ # resp = client.delete_project({
387
+ # arn: "AmazonResourceName", # required
388
+ # })
389
+ # @overload delete_project(params = {})
390
+ # @param [Hash] params ({})
391
+ def delete_project(params = {}, options = {})
392
+ req = build_request(:delete_project, params)
393
+ req.send_request(options)
394
+ end
395
+
396
+ # Deletes a completed remote access session and its results.
397
+ # @option params [required, String] :arn
398
+ # The Amazon Resource Name (ARN) of the sesssion for which you want to
399
+ # delete remote access.
400
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
401
+ #
402
+ # @example Request syntax with placeholder values
403
+ # resp = client.delete_remote_access_session({
404
+ # arn: "AmazonResourceName", # required
405
+ # })
406
+ # @overload delete_remote_access_session(params = {})
407
+ # @param [Hash] params ({})
408
+ def delete_remote_access_session(params = {}, options = {})
409
+ req = build_request(:delete_remote_access_session, params)
410
+ req.send_request(options)
411
+ end
412
+
413
+ # Deletes the run, given the run ARN.
414
+ #
415
+ # **Note** Deleting this resource does not stop an in-progress run.
416
+ # @option params [required, String] :arn
417
+ # The Amazon Resource Name (ARN) for the run you wish to delete.
418
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
419
+ #
420
+ # @example Request syntax with placeholder values
421
+ # resp = client.delete_run({
422
+ # arn: "AmazonResourceName", # required
423
+ # })
424
+ # @overload delete_run(params = {})
425
+ # @param [Hash] params ({})
426
+ def delete_run(params = {}, options = {})
427
+ req = build_request(:delete_run, params)
428
+ req.send_request(options)
429
+ end
430
+
431
+ # Deletes an upload given the upload ARN.
432
+ # @option params [required, String] :arn
433
+ # Represents the Amazon Resource Name (ARN) of the Device Farm upload
434
+ # you wish to delete.
435
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
436
+ #
437
+ # @example Request syntax with placeholder values
438
+ # resp = client.delete_upload({
439
+ # arn: "AmazonResourceName", # required
440
+ # })
441
+ # @overload delete_upload(params = {})
442
+ # @param [Hash] params ({})
443
+ def delete_upload(params = {}, options = {})
444
+ req = build_request(:delete_upload, params)
445
+ req.send_request(options)
446
+ end
447
+
448
+ # Returns the number of unmetered iOS and/or unmetered Android devices
449
+ # that have been purchased by the account.
450
+ # @return [Types::GetAccountSettingsResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
451
+ #
452
+ # * {Types::GetAccountSettingsResult#account_settings #accountSettings} => Types::AccountSettings
453
+ #
454
+ # @example Request syntax with placeholder values
455
+ # resp = client.get_account_settings()
456
+ #
457
+ # @example Response structure
458
+ # resp.account_settings.aws_account_number #=> String
459
+ # resp.account_settings.unmetered_devices #=> Hash
460
+ # resp.account_settings.unmetered_devices["DevicePlatform"] #=> Integer
461
+ # resp.account_settings.unmetered_remote_access_devices #=> Hash
462
+ # resp.account_settings.unmetered_remote_access_devices["DevicePlatform"] #=> Integer
463
+ # @overload get_account_settings(params = {})
464
+ # @param [Hash] params ({})
465
+ def get_account_settings(params = {}, options = {})
466
+ req = build_request(:get_account_settings, params)
467
+ req.send_request(options)
468
+ end
469
+
470
+ # Gets information about a unique device type.
471
+ # @option params [required, String] :arn
472
+ # The device type's ARN.
473
+ # @return [Types::GetDeviceResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
474
+ #
475
+ # * {Types::GetDeviceResult#device #device} => Types::Device
476
+ #
477
+ # @example Request syntax with placeholder values
478
+ # resp = client.get_device({
479
+ # arn: "AmazonResourceName", # required
480
+ # })
481
+ #
482
+ # @example Response structure
483
+ # resp.device.arn #=> String
484
+ # resp.device.name #=> String
485
+ # resp.device.manufacturer #=> String
486
+ # resp.device.model #=> String
487
+ # resp.device.form_factor #=> String, one of "PHONE", "TABLET"
488
+ # resp.device.platform #=> String, one of "ANDROID", "IOS"
489
+ # resp.device.os #=> String
490
+ # resp.device.cpu.frequency #=> String
491
+ # resp.device.cpu.architecture #=> String
492
+ # resp.device.cpu.clock #=> Float
493
+ # resp.device.resolution.width #=> Integer
494
+ # resp.device.resolution.height #=> Integer
495
+ # resp.device.heap_size #=> Integer
496
+ # resp.device.memory #=> Integer
497
+ # resp.device.image #=> String
498
+ # resp.device.carrier #=> String
499
+ # resp.device.radio #=> String
500
+ # resp.device.remote_access_enabled #=> Boolean
501
+ # resp.device.fleet_type #=> String
502
+ # resp.device.fleet_name #=> String
503
+ # @overload get_device(params = {})
504
+ # @param [Hash] params ({})
505
+ def get_device(params = {}, options = {})
506
+ req = build_request(:get_device, params)
507
+ req.send_request(options)
508
+ end
509
+
510
+ # Gets information about a device pool.
511
+ # @option params [required, String] :arn
512
+ # The device pool's ARN.
513
+ # @return [Types::GetDevicePoolResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
514
+ #
515
+ # * {Types::GetDevicePoolResult#device_pool #devicePool} => Types::DevicePool
516
+ #
517
+ # @example Request syntax with placeholder values
518
+ # resp = client.get_device_pool({
519
+ # arn: "AmazonResourceName", # required
520
+ # })
521
+ #
522
+ # @example Response structure
523
+ # resp.device_pool.arn #=> String
524
+ # resp.device_pool.name #=> String
525
+ # resp.device_pool.description #=> String
526
+ # resp.device_pool.type #=> String, one of "CURATED", "PRIVATE"
527
+ # resp.device_pool.rules #=> Array
528
+ # resp.device_pool.rules[0].attribute #=> String, one of "ARN", "PLATFORM", "FORM_FACTOR", "MANUFACTURER", "REMOTE_ACCESS_ENABLED"
529
+ # resp.device_pool.rules[0].operator #=> String, one of "EQUALS", "LESS_THAN", "GREATER_THAN", "IN", "NOT_IN"
530
+ # resp.device_pool.rules[0].value #=> String
531
+ # @overload get_device_pool(params = {})
532
+ # @param [Hash] params ({})
533
+ def get_device_pool(params = {}, options = {})
534
+ req = build_request(:get_device_pool, params)
535
+ req.send_request(options)
536
+ end
537
+
538
+ # Gets information about compatibility with a device pool.
539
+ # @option params [required, String] :device_pool_arn
540
+ # The device pool's ARN.
541
+ # @option params [String] :app_arn
542
+ # The ARN of the app that is associated with the specified device pool.
543
+ # @option params [String] :test_type
544
+ # The test type for the specified device pool.
545
+ #
546
+ # Allowed values include the following:
547
+ #
548
+ # * BUILTIN\_FUZZ: The built-in fuzz type.
549
+ #
550
+ # * BUILTIN\_EXPLORER: For Android, an app explorer that will traverse
551
+ # an Android app, interacting with it and capturing screenshots at the
552
+ # same time.
553
+ #
554
+ # * APPIUM\_JAVA\_JUNIT: The Appium Java JUnit type.
555
+ #
556
+ # * APPIUM\_JAVA\_TESTNG: The Appium Java TestNG type.
557
+ #
558
+ # * APPIUM\_PYTHON: The Appium Python type.
559
+ #
560
+ # * APPIUM\_WEB\_JAVA\_JUNIT: The Appium Java JUnit type for Web apps.
561
+ #
562
+ # * APPIUM\_WEB\_JAVA\_TESTNG: The Appium Java TestNG type for Web apps.
563
+ #
564
+ # * APPIUM\_WEB\_PYTHON: The Appium Python type for Web apps.
565
+ #
566
+ # * CALABASH: The Calabash type.
567
+ #
568
+ # * INSTRUMENTATION: The Instrumentation type.
569
+ #
570
+ # * UIAUTOMATION: The uiautomation type.
571
+ #
572
+ # * UIAUTOMATOR: The uiautomator type.
573
+ #
574
+ # * XCTEST: The XCode test type.
575
+ #
576
+ # * XCTEST\_UI: The XCode UI test type.
577
+ # @return [Types::GetDevicePoolCompatibilityResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
578
+ #
579
+ # * {Types::GetDevicePoolCompatibilityResult#compatible_devices #compatibleDevices} => Array&lt;Types::DevicePoolCompatibilityResult&gt;
580
+ # * {Types::GetDevicePoolCompatibilityResult#incompatible_devices #incompatibleDevices} => Array&lt;Types::DevicePoolCompatibilityResult&gt;
581
+ #
582
+ # @example Request syntax with placeholder values
583
+ # resp = client.get_device_pool_compatibility({
584
+ # device_pool_arn: "AmazonResourceName", # required
585
+ # app_arn: "AmazonResourceName",
586
+ # test_type: "BUILTIN_FUZZ", # accepts BUILTIN_FUZZ, BUILTIN_EXPLORER, APPIUM_JAVA_JUNIT, APPIUM_JAVA_TESTNG, APPIUM_PYTHON, APPIUM_WEB_JAVA_JUNIT, APPIUM_WEB_JAVA_TESTNG, APPIUM_WEB_PYTHON, CALABASH, INSTRUMENTATION, UIAUTOMATION, UIAUTOMATOR, XCTEST, XCTEST_UI
587
+ # })
588
+ #
589
+ # @example Response structure
590
+ # resp.compatible_devices #=> Array
591
+ # resp.compatible_devices[0].device.arn #=> String
592
+ # resp.compatible_devices[0].device.name #=> String
593
+ # resp.compatible_devices[0].device.manufacturer #=> String
594
+ # resp.compatible_devices[0].device.model #=> String
595
+ # resp.compatible_devices[0].device.form_factor #=> String, one of "PHONE", "TABLET"
596
+ # resp.compatible_devices[0].device.platform #=> String, one of "ANDROID", "IOS"
597
+ # resp.compatible_devices[0].device.os #=> String
598
+ # resp.compatible_devices[0].device.cpu.frequency #=> String
599
+ # resp.compatible_devices[0].device.cpu.architecture #=> String
600
+ # resp.compatible_devices[0].device.cpu.clock #=> Float
601
+ # resp.compatible_devices[0].device.resolution.width #=> Integer
602
+ # resp.compatible_devices[0].device.resolution.height #=> Integer
603
+ # resp.compatible_devices[0].device.heap_size #=> Integer
604
+ # resp.compatible_devices[0].device.memory #=> Integer
605
+ # resp.compatible_devices[0].device.image #=> String
606
+ # resp.compatible_devices[0].device.carrier #=> String
607
+ # resp.compatible_devices[0].device.radio #=> String
608
+ # resp.compatible_devices[0].device.remote_access_enabled #=> Boolean
609
+ # resp.compatible_devices[0].device.fleet_type #=> String
610
+ # resp.compatible_devices[0].device.fleet_name #=> String
611
+ # resp.compatible_devices[0].compatible #=> Boolean
612
+ # resp.compatible_devices[0].incompatibility_messages #=> Array
613
+ # resp.compatible_devices[0].incompatibility_messages[0].message #=> String
614
+ # resp.compatible_devices[0].incompatibility_messages[0].type #=> String, one of "ARN", "PLATFORM", "FORM_FACTOR", "MANUFACTURER", "REMOTE_ACCESS_ENABLED"
615
+ # resp.incompatible_devices #=> Array
616
+ # resp.incompatible_devices[0].device.arn #=> String
617
+ # resp.incompatible_devices[0].device.name #=> String
618
+ # resp.incompatible_devices[0].device.manufacturer #=> String
619
+ # resp.incompatible_devices[0].device.model #=> String
620
+ # resp.incompatible_devices[0].device.form_factor #=> String, one of "PHONE", "TABLET"
621
+ # resp.incompatible_devices[0].device.platform #=> String, one of "ANDROID", "IOS"
622
+ # resp.incompatible_devices[0].device.os #=> String
623
+ # resp.incompatible_devices[0].device.cpu.frequency #=> String
624
+ # resp.incompatible_devices[0].device.cpu.architecture #=> String
625
+ # resp.incompatible_devices[0].device.cpu.clock #=> Float
626
+ # resp.incompatible_devices[0].device.resolution.width #=> Integer
627
+ # resp.incompatible_devices[0].device.resolution.height #=> Integer
628
+ # resp.incompatible_devices[0].device.heap_size #=> Integer
629
+ # resp.incompatible_devices[0].device.memory #=> Integer
630
+ # resp.incompatible_devices[0].device.image #=> String
631
+ # resp.incompatible_devices[0].device.carrier #=> String
632
+ # resp.incompatible_devices[0].device.radio #=> String
633
+ # resp.incompatible_devices[0].device.remote_access_enabled #=> Boolean
634
+ # resp.incompatible_devices[0].device.fleet_type #=> String
635
+ # resp.incompatible_devices[0].device.fleet_name #=> String
636
+ # resp.incompatible_devices[0].compatible #=> Boolean
637
+ # resp.incompatible_devices[0].incompatibility_messages #=> Array
638
+ # resp.incompatible_devices[0].incompatibility_messages[0].message #=> String
639
+ # resp.incompatible_devices[0].incompatibility_messages[0].type #=> String, one of "ARN", "PLATFORM", "FORM_FACTOR", "MANUFACTURER", "REMOTE_ACCESS_ENABLED"
640
+ # @overload get_device_pool_compatibility(params = {})
641
+ # @param [Hash] params ({})
642
+ def get_device_pool_compatibility(params = {}, options = {})
643
+ req = build_request(:get_device_pool_compatibility, params)
644
+ req.send_request(options)
645
+ end
646
+
647
+ # Gets information about a job.
648
+ # @option params [required, String] :arn
649
+ # The job's ARN.
650
+ # @return [Types::GetJobResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
651
+ #
652
+ # * {Types::GetJobResult#job #job} => Types::Job
653
+ #
654
+ # @example Request syntax with placeholder values
655
+ # resp = client.get_job({
656
+ # arn: "AmazonResourceName", # required
657
+ # })
658
+ #
659
+ # @example Response structure
660
+ # resp.job.arn #=> String
661
+ # resp.job.name #=> String
662
+ # resp.job.type #=> String, one of "BUILTIN_FUZZ", "BUILTIN_EXPLORER", "APPIUM_JAVA_JUNIT", "APPIUM_JAVA_TESTNG", "APPIUM_PYTHON", "APPIUM_WEB_JAVA_JUNIT", "APPIUM_WEB_JAVA_TESTNG", "APPIUM_WEB_PYTHON", "CALABASH", "INSTRUMENTATION", "UIAUTOMATION", "UIAUTOMATOR", "XCTEST", "XCTEST_UI"
663
+ # resp.job.created #=> Time
664
+ # resp.job.status #=> String, one of "PENDING", "PENDING_CONCURRENCY", "PENDING_DEVICE", "PROCESSING", "SCHEDULING", "PREPARING", "RUNNING", "COMPLETED", "STOPPING"
665
+ # resp.job.result #=> String, one of "PENDING", "PASSED", "WARNED", "FAILED", "SKIPPED", "ERRORED", "STOPPED"
666
+ # resp.job.started #=> Time
667
+ # resp.job.stopped #=> Time
668
+ # resp.job.counters.total #=> Integer
669
+ # resp.job.counters.passed #=> Integer
670
+ # resp.job.counters.failed #=> Integer
671
+ # resp.job.counters.warned #=> Integer
672
+ # resp.job.counters.errored #=> Integer
673
+ # resp.job.counters.stopped #=> Integer
674
+ # resp.job.counters.skipped #=> Integer
675
+ # resp.job.message #=> String
676
+ # resp.job.device.arn #=> String
677
+ # resp.job.device.name #=> String
678
+ # resp.job.device.manufacturer #=> String
679
+ # resp.job.device.model #=> String
680
+ # resp.job.device.form_factor #=> String, one of "PHONE", "TABLET"
681
+ # resp.job.device.platform #=> String, one of "ANDROID", "IOS"
682
+ # resp.job.device.os #=> String
683
+ # resp.job.device.cpu.frequency #=> String
684
+ # resp.job.device.cpu.architecture #=> String
685
+ # resp.job.device.cpu.clock #=> Float
686
+ # resp.job.device.resolution.width #=> Integer
687
+ # resp.job.device.resolution.height #=> Integer
688
+ # resp.job.device.heap_size #=> Integer
689
+ # resp.job.device.memory #=> Integer
690
+ # resp.job.device.image #=> String
691
+ # resp.job.device.carrier #=> String
692
+ # resp.job.device.radio #=> String
693
+ # resp.job.device.remote_access_enabled #=> Boolean
694
+ # resp.job.device.fleet_type #=> String
695
+ # resp.job.device.fleet_name #=> String
696
+ # resp.job.device_minutes.total #=> Float
697
+ # resp.job.device_minutes.metered #=> Float
698
+ # resp.job.device_minutes.unmetered #=> Float
699
+ # @overload get_job(params = {})
700
+ # @param [Hash] params ({})
701
+ def get_job(params = {}, options = {})
702
+ req = build_request(:get_job, params)
703
+ req.send_request(options)
704
+ end
705
+
706
+ # Gets the current status and future status of all offerings purchased
707
+ # by an AWS account. The response indicates how many offerings are
708
+ # currently available and the offerings that will be available in the
709
+ # next period. The API returns a `NotEligible` error if the user is not
710
+ # permitted to invoke the operation. Please contact
711
+ # [aws-devicefarm-support@amazon.com](mailto:aws-devicefarm-support@amazon.com)
712
+ # if you believe that you should be able to invoke this operation.
713
+ # @option params [String] :next_token
714
+ # An identifier that was returned from the previous call to this
715
+ # operation, which can be used to return the next set of items in the
716
+ # list.
717
+ # @return [Types::GetOfferingStatusResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
718
+ #
719
+ # * {Types::GetOfferingStatusResult#current #current} => Hash&lt;String,Types::OfferingStatus&gt;
720
+ # * {Types::GetOfferingStatusResult#next_period #nextPeriod} => Hash&lt;String,Types::OfferingStatus&gt;
721
+ # * {Types::GetOfferingStatusResult#next_token #nextToken} => String
722
+ #
723
+ # @example Request syntax with placeholder values
724
+ # resp = client.get_offering_status({
725
+ # next_token: "PaginationToken",
726
+ # })
727
+ #
728
+ # @example Response structure
729
+ # resp.current #=> Hash
730
+ # resp.current["OfferingIdentifier"].type #=> String, one of "PURCHASE", "RENEW", "SYSTEM"
731
+ # resp.current["OfferingIdentifier"].offering.id #=> String
732
+ # resp.current["OfferingIdentifier"].offering.description #=> String
733
+ # resp.current["OfferingIdentifier"].offering.type #=> String, one of "RECURRING"
734
+ # resp.current["OfferingIdentifier"].offering.platform #=> String, one of "ANDROID", "IOS"
735
+ # resp.current["OfferingIdentifier"].offering.recurring_charges #=> Array
736
+ # resp.current["OfferingIdentifier"].offering.recurring_charges[0].cost.amount #=> Float
737
+ # resp.current["OfferingIdentifier"].offering.recurring_charges[0].cost.currency_code #=> String, one of "USD"
738
+ # resp.current["OfferingIdentifier"].offering.recurring_charges[0].frequency #=> String, one of "MONTHLY"
739
+ # resp.current["OfferingIdentifier"].quantity #=> Integer
740
+ # resp.current["OfferingIdentifier"].effective_on #=> Time
741
+ # resp.next_period #=> Hash
742
+ # resp.next_period["OfferingIdentifier"].type #=> String, one of "PURCHASE", "RENEW", "SYSTEM"
743
+ # resp.next_period["OfferingIdentifier"].offering.id #=> String
744
+ # resp.next_period["OfferingIdentifier"].offering.description #=> String
745
+ # resp.next_period["OfferingIdentifier"].offering.type #=> String, one of "RECURRING"
746
+ # resp.next_period["OfferingIdentifier"].offering.platform #=> String, one of "ANDROID", "IOS"
747
+ # resp.next_period["OfferingIdentifier"].offering.recurring_charges #=> Array
748
+ # resp.next_period["OfferingIdentifier"].offering.recurring_charges[0].cost.amount #=> Float
749
+ # resp.next_period["OfferingIdentifier"].offering.recurring_charges[0].cost.currency_code #=> String, one of "USD"
750
+ # resp.next_period["OfferingIdentifier"].offering.recurring_charges[0].frequency #=> String, one of "MONTHLY"
751
+ # resp.next_period["OfferingIdentifier"].quantity #=> Integer
752
+ # resp.next_period["OfferingIdentifier"].effective_on #=> Time
753
+ # resp.next_token #=> String
754
+ # @overload get_offering_status(params = {})
755
+ # @param [Hash] params ({})
756
+ def get_offering_status(params = {}, options = {})
757
+ req = build_request(:get_offering_status, params)
758
+ req.send_request(options)
759
+ end
760
+
761
+ # Gets information about a project.
762
+ # @option params [required, String] :arn
763
+ # The project's ARN.
764
+ # @return [Types::GetProjectResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
765
+ #
766
+ # * {Types::GetProjectResult#project #project} => Types::Project
767
+ #
768
+ # @example Request syntax with placeholder values
769
+ # resp = client.get_project({
770
+ # arn: "AmazonResourceName", # required
771
+ # })
772
+ #
773
+ # @example Response structure
774
+ # resp.project.arn #=> String
775
+ # resp.project.name #=> String
776
+ # resp.project.created #=> Time
777
+ # @overload get_project(params = {})
778
+ # @param [Hash] params ({})
779
+ def get_project(params = {}, options = {})
780
+ req = build_request(:get_project, params)
781
+ req.send_request(options)
782
+ end
783
+
784
+ # Returns a link to a currently running remote access session.
785
+ # @option params [required, String] :arn
786
+ # The Amazon Resource Name (ARN) of the remote access session about
787
+ # which you want to get session information.
788
+ # @return [Types::GetRemoteAccessSessionResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
789
+ #
790
+ # * {Types::GetRemoteAccessSessionResult#remote_access_session #remoteAccessSession} => Types::RemoteAccessSession
791
+ #
792
+ # @example Request syntax with placeholder values
793
+ # resp = client.get_remote_access_session({
794
+ # arn: "AmazonResourceName", # required
795
+ # })
796
+ #
797
+ # @example Response structure
798
+ # resp.remote_access_session.arn #=> String
799
+ # resp.remote_access_session.name #=> String
800
+ # resp.remote_access_session.created #=> Time
801
+ # resp.remote_access_session.status #=> String, one of "PENDING", "PENDING_CONCURRENCY", "PENDING_DEVICE", "PROCESSING", "SCHEDULING", "PREPARING", "RUNNING", "COMPLETED", "STOPPING"
802
+ # resp.remote_access_session.result #=> String, one of "PENDING", "PASSED", "WARNED", "FAILED", "SKIPPED", "ERRORED", "STOPPED"
803
+ # resp.remote_access_session.message #=> String
804
+ # resp.remote_access_session.started #=> Time
805
+ # resp.remote_access_session.stopped #=> Time
806
+ # resp.remote_access_session.device.arn #=> String
807
+ # resp.remote_access_session.device.name #=> String
808
+ # resp.remote_access_session.device.manufacturer #=> String
809
+ # resp.remote_access_session.device.model #=> String
810
+ # resp.remote_access_session.device.form_factor #=> String, one of "PHONE", "TABLET"
811
+ # resp.remote_access_session.device.platform #=> String, one of "ANDROID", "IOS"
812
+ # resp.remote_access_session.device.os #=> String
813
+ # resp.remote_access_session.device.cpu.frequency #=> String
814
+ # resp.remote_access_session.device.cpu.architecture #=> String
815
+ # resp.remote_access_session.device.cpu.clock #=> Float
816
+ # resp.remote_access_session.device.resolution.width #=> Integer
817
+ # resp.remote_access_session.device.resolution.height #=> Integer
818
+ # resp.remote_access_session.device.heap_size #=> Integer
819
+ # resp.remote_access_session.device.memory #=> Integer
820
+ # resp.remote_access_session.device.image #=> String
821
+ # resp.remote_access_session.device.carrier #=> String
822
+ # resp.remote_access_session.device.radio #=> String
823
+ # resp.remote_access_session.device.remote_access_enabled #=> Boolean
824
+ # resp.remote_access_session.device.fleet_type #=> String
825
+ # resp.remote_access_session.device.fleet_name #=> String
826
+ # resp.remote_access_session.billing_method #=> String, one of "METERED", "UNMETERED"
827
+ # resp.remote_access_session.device_minutes.total #=> Float
828
+ # resp.remote_access_session.device_minutes.metered #=> Float
829
+ # resp.remote_access_session.device_minutes.unmetered #=> Float
830
+ # resp.remote_access_session.endpoint #=> String
831
+ # @overload get_remote_access_session(params = {})
832
+ # @param [Hash] params ({})
833
+ def get_remote_access_session(params = {}, options = {})
834
+ req = build_request(:get_remote_access_session, params)
835
+ req.send_request(options)
836
+ end
837
+
838
+ # Gets information about a run.
839
+ # @option params [required, String] :arn
840
+ # The run's ARN.
841
+ # @return [Types::GetRunResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
842
+ #
843
+ # * {Types::GetRunResult#run #run} => Types::Run
844
+ #
845
+ # @example Request syntax with placeholder values
846
+ # resp = client.get_run({
847
+ # arn: "AmazonResourceName", # required
848
+ # })
849
+ #
850
+ # @example Response structure
851
+ # resp.run.arn #=> String
852
+ # resp.run.name #=> String
853
+ # resp.run.type #=> String, one of "BUILTIN_FUZZ", "BUILTIN_EXPLORER", "APPIUM_JAVA_JUNIT", "APPIUM_JAVA_TESTNG", "APPIUM_PYTHON", "APPIUM_WEB_JAVA_JUNIT", "APPIUM_WEB_JAVA_TESTNG", "APPIUM_WEB_PYTHON", "CALABASH", "INSTRUMENTATION", "UIAUTOMATION", "UIAUTOMATOR", "XCTEST", "XCTEST_UI"
854
+ # resp.run.platform #=> String, one of "ANDROID", "IOS"
855
+ # resp.run.created #=> Time
856
+ # resp.run.status #=> String, one of "PENDING", "PENDING_CONCURRENCY", "PENDING_DEVICE", "PROCESSING", "SCHEDULING", "PREPARING", "RUNNING", "COMPLETED", "STOPPING"
857
+ # resp.run.result #=> String, one of "PENDING", "PASSED", "WARNED", "FAILED", "SKIPPED", "ERRORED", "STOPPED"
858
+ # resp.run.started #=> Time
859
+ # resp.run.stopped #=> Time
860
+ # resp.run.counters.total #=> Integer
861
+ # resp.run.counters.passed #=> Integer
862
+ # resp.run.counters.failed #=> Integer
863
+ # resp.run.counters.warned #=> Integer
864
+ # resp.run.counters.errored #=> Integer
865
+ # resp.run.counters.stopped #=> Integer
866
+ # resp.run.counters.skipped #=> Integer
867
+ # resp.run.message #=> String
868
+ # resp.run.total_jobs #=> Integer
869
+ # resp.run.completed_jobs #=> Integer
870
+ # resp.run.billing_method #=> String, one of "METERED", "UNMETERED"
871
+ # resp.run.device_minutes.total #=> Float
872
+ # resp.run.device_minutes.metered #=> Float
873
+ # resp.run.device_minutes.unmetered #=> Float
874
+ # @overload get_run(params = {})
875
+ # @param [Hash] params ({})
876
+ def get_run(params = {}, options = {})
877
+ req = build_request(:get_run, params)
878
+ req.send_request(options)
879
+ end
880
+
881
+ # Gets information about a suite.
882
+ # @option params [required, String] :arn
883
+ # The suite's ARN.
884
+ # @return [Types::GetSuiteResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
885
+ #
886
+ # * {Types::GetSuiteResult#suite #suite} => Types::Suite
887
+ #
888
+ # @example Request syntax with placeholder values
889
+ # resp = client.get_suite({
890
+ # arn: "AmazonResourceName", # required
891
+ # })
892
+ #
893
+ # @example Response structure
894
+ # resp.suite.arn #=> String
895
+ # resp.suite.name #=> String
896
+ # resp.suite.type #=> String, one of "BUILTIN_FUZZ", "BUILTIN_EXPLORER", "APPIUM_JAVA_JUNIT", "APPIUM_JAVA_TESTNG", "APPIUM_PYTHON", "APPIUM_WEB_JAVA_JUNIT", "APPIUM_WEB_JAVA_TESTNG", "APPIUM_WEB_PYTHON", "CALABASH", "INSTRUMENTATION", "UIAUTOMATION", "UIAUTOMATOR", "XCTEST", "XCTEST_UI"
897
+ # resp.suite.created #=> Time
898
+ # resp.suite.status #=> String, one of "PENDING", "PENDING_CONCURRENCY", "PENDING_DEVICE", "PROCESSING", "SCHEDULING", "PREPARING", "RUNNING", "COMPLETED", "STOPPING"
899
+ # resp.suite.result #=> String, one of "PENDING", "PASSED", "WARNED", "FAILED", "SKIPPED", "ERRORED", "STOPPED"
900
+ # resp.suite.started #=> Time
901
+ # resp.suite.stopped #=> Time
902
+ # resp.suite.counters.total #=> Integer
903
+ # resp.suite.counters.passed #=> Integer
904
+ # resp.suite.counters.failed #=> Integer
905
+ # resp.suite.counters.warned #=> Integer
906
+ # resp.suite.counters.errored #=> Integer
907
+ # resp.suite.counters.stopped #=> Integer
908
+ # resp.suite.counters.skipped #=> Integer
909
+ # resp.suite.message #=> String
910
+ # resp.suite.device_minutes.total #=> Float
911
+ # resp.suite.device_minutes.metered #=> Float
912
+ # resp.suite.device_minutes.unmetered #=> Float
913
+ # @overload get_suite(params = {})
914
+ # @param [Hash] params ({})
915
+ def get_suite(params = {}, options = {})
916
+ req = build_request(:get_suite, params)
917
+ req.send_request(options)
918
+ end
919
+
920
+ # Gets information about a test.
921
+ # @option params [required, String] :arn
922
+ # The test's ARN.
923
+ # @return [Types::GetTestResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
924
+ #
925
+ # * {Types::GetTestResult#test #test} => Types::Test
926
+ #
927
+ # @example Request syntax with placeholder values
928
+ # resp = client.get_test({
929
+ # arn: "AmazonResourceName", # required
930
+ # })
931
+ #
932
+ # @example Response structure
933
+ # resp.test.arn #=> String
934
+ # resp.test.name #=> String
935
+ # resp.test.type #=> String, one of "BUILTIN_FUZZ", "BUILTIN_EXPLORER", "APPIUM_JAVA_JUNIT", "APPIUM_JAVA_TESTNG", "APPIUM_PYTHON", "APPIUM_WEB_JAVA_JUNIT", "APPIUM_WEB_JAVA_TESTNG", "APPIUM_WEB_PYTHON", "CALABASH", "INSTRUMENTATION", "UIAUTOMATION", "UIAUTOMATOR", "XCTEST", "XCTEST_UI"
936
+ # resp.test.created #=> Time
937
+ # resp.test.status #=> String, one of "PENDING", "PENDING_CONCURRENCY", "PENDING_DEVICE", "PROCESSING", "SCHEDULING", "PREPARING", "RUNNING", "COMPLETED", "STOPPING"
938
+ # resp.test.result #=> String, one of "PENDING", "PASSED", "WARNED", "FAILED", "SKIPPED", "ERRORED", "STOPPED"
939
+ # resp.test.started #=> Time
940
+ # resp.test.stopped #=> Time
941
+ # resp.test.counters.total #=> Integer
942
+ # resp.test.counters.passed #=> Integer
943
+ # resp.test.counters.failed #=> Integer
944
+ # resp.test.counters.warned #=> Integer
945
+ # resp.test.counters.errored #=> Integer
946
+ # resp.test.counters.stopped #=> Integer
947
+ # resp.test.counters.skipped #=> Integer
948
+ # resp.test.message #=> String
949
+ # resp.test.device_minutes.total #=> Float
950
+ # resp.test.device_minutes.metered #=> Float
951
+ # resp.test.device_minutes.unmetered #=> Float
952
+ # @overload get_test(params = {})
953
+ # @param [Hash] params ({})
954
+ def get_test(params = {}, options = {})
955
+ req = build_request(:get_test, params)
956
+ req.send_request(options)
957
+ end
958
+
959
+ # Gets information about an upload.
960
+ # @option params [required, String] :arn
961
+ # The upload's ARN.
962
+ # @return [Types::GetUploadResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
963
+ #
964
+ # * {Types::GetUploadResult#upload #upload} => Types::Upload
965
+ #
966
+ # @example Request syntax with placeholder values
967
+ # resp = client.get_upload({
968
+ # arn: "AmazonResourceName", # required
969
+ # })
970
+ #
971
+ # @example Response structure
972
+ # resp.upload.arn #=> String
973
+ # resp.upload.name #=> String
974
+ # resp.upload.created #=> Time
975
+ # resp.upload.type #=> String, one of "ANDROID_APP", "IOS_APP", "WEB_APP", "EXTERNAL_DATA", "APPIUM_JAVA_JUNIT_TEST_PACKAGE", "APPIUM_JAVA_TESTNG_TEST_PACKAGE", "APPIUM_PYTHON_TEST_PACKAGE", "APPIUM_WEB_JAVA_JUNIT_TEST_PACKAGE", "APPIUM_WEB_JAVA_TESTNG_TEST_PACKAGE", "APPIUM_WEB_PYTHON_TEST_PACKAGE", "CALABASH_TEST_PACKAGE", "INSTRUMENTATION_TEST_PACKAGE", "UIAUTOMATION_TEST_PACKAGE", "UIAUTOMATOR_TEST_PACKAGE", "XCTEST_TEST_PACKAGE", "XCTEST_UI_TEST_PACKAGE"
976
+ # resp.upload.status #=> String, one of "INITIALIZED", "PROCESSING", "SUCCEEDED", "FAILED"
977
+ # resp.upload.url #=> String
978
+ # resp.upload.metadata #=> String
979
+ # resp.upload.content_type #=> String
980
+ # resp.upload.message #=> String
981
+ # @overload get_upload(params = {})
982
+ # @param [Hash] params ({})
983
+ def get_upload(params = {}, options = {})
984
+ req = build_request(:get_upload, params)
985
+ req.send_request(options)
986
+ end
987
+
988
+ # Installs an application to the device in a remote access session. For
989
+ # Android applications, the file must be in .apk format. For iOS
990
+ # applications, the file must be in .ipa format.
991
+ # @option params [required, String] :remote_access_session_arn
992
+ # The Amazon Resource Name (ARN) of the remote access session about
993
+ # which you are requesting information.
994
+ # @option params [required, String] :app_arn
995
+ # The Amazon Resource Name (ARN) of the app about which you are
996
+ # requesting information.
997
+ # @return [Types::InstallToRemoteAccessSessionResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
998
+ #
999
+ # * {Types::InstallToRemoteAccessSessionResult#app_upload #appUpload} => Types::Upload
1000
+ #
1001
+ # @example Request syntax with placeholder values
1002
+ # resp = client.install_to_remote_access_session({
1003
+ # remote_access_session_arn: "AmazonResourceName", # required
1004
+ # app_arn: "AmazonResourceName", # required
1005
+ # })
1006
+ #
1007
+ # @example Response structure
1008
+ # resp.app_upload.arn #=> String
1009
+ # resp.app_upload.name #=> String
1010
+ # resp.app_upload.created #=> Time
1011
+ # resp.app_upload.type #=> String, one of "ANDROID_APP", "IOS_APP", "WEB_APP", "EXTERNAL_DATA", "APPIUM_JAVA_JUNIT_TEST_PACKAGE", "APPIUM_JAVA_TESTNG_TEST_PACKAGE", "APPIUM_PYTHON_TEST_PACKAGE", "APPIUM_WEB_JAVA_JUNIT_TEST_PACKAGE", "APPIUM_WEB_JAVA_TESTNG_TEST_PACKAGE", "APPIUM_WEB_PYTHON_TEST_PACKAGE", "CALABASH_TEST_PACKAGE", "INSTRUMENTATION_TEST_PACKAGE", "UIAUTOMATION_TEST_PACKAGE", "UIAUTOMATOR_TEST_PACKAGE", "XCTEST_TEST_PACKAGE", "XCTEST_UI_TEST_PACKAGE"
1012
+ # resp.app_upload.status #=> String, one of "INITIALIZED", "PROCESSING", "SUCCEEDED", "FAILED"
1013
+ # resp.app_upload.url #=> String
1014
+ # resp.app_upload.metadata #=> String
1015
+ # resp.app_upload.content_type #=> String
1016
+ # resp.app_upload.message #=> String
1017
+ # @overload install_to_remote_access_session(params = {})
1018
+ # @param [Hash] params ({})
1019
+ def install_to_remote_access_session(params = {}, options = {})
1020
+ req = build_request(:install_to_remote_access_session, params)
1021
+ req.send_request(options)
1022
+ end
1023
+
1024
+ # Gets information about artifacts.
1025
+ # @option params [required, String] :arn
1026
+ # The Run, Job, Suite, or Test ARN.
1027
+ # @option params [required, String] :type
1028
+ # The artifacts' type.
1029
+ #
1030
+ # Allowed values include:
1031
+ #
1032
+ # * FILE: The artifacts are files.
1033
+ #
1034
+ # * LOG: The artifacts are logs.
1035
+ #
1036
+ # * SCREENSHOT: The artifacts are screenshots.
1037
+ # @option params [String] :next_token
1038
+ # An identifier that was returned from the previous call to this
1039
+ # operation, which can be used to return the next set of items in the
1040
+ # list.
1041
+ # @return [Types::ListArtifactsResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1042
+ #
1043
+ # * {Types::ListArtifactsResult#artifacts #artifacts} => Array&lt;Types::Artifact&gt;
1044
+ # * {Types::ListArtifactsResult#next_token #nextToken} => String
1045
+ #
1046
+ # @example Request syntax with placeholder values
1047
+ # resp = client.list_artifacts({
1048
+ # arn: "AmazonResourceName", # required
1049
+ # type: "SCREENSHOT", # required, accepts SCREENSHOT, FILE, LOG
1050
+ # next_token: "PaginationToken",
1051
+ # })
1052
+ #
1053
+ # @example Response structure
1054
+ # resp.artifacts #=> Array
1055
+ # resp.artifacts[0].arn #=> String
1056
+ # resp.artifacts[0].name #=> String
1057
+ # resp.artifacts[0].type #=> String, one of "UNKNOWN", "SCREENSHOT", "DEVICE_LOG", "MESSAGE_LOG", "VIDEO_LOG", "RESULT_LOG", "SERVICE_LOG", "WEBKIT_LOG", "INSTRUMENTATION_OUTPUT", "EXERCISER_MONKEY_OUTPUT", "CALABASH_JSON_OUTPUT", "CALABASH_PRETTY_OUTPUT", "CALABASH_STANDARD_OUTPUT", "CALABASH_JAVA_XML_OUTPUT", "AUTOMATION_OUTPUT", "APPIUM_SERVER_OUTPUT", "APPIUM_JAVA_OUTPUT", "APPIUM_JAVA_XML_OUTPUT", "APPIUM_PYTHON_OUTPUT", "APPIUM_PYTHON_XML_OUTPUT", "EXPLORER_EVENT_LOG", "EXPLORER_SUMMARY_LOG", "APPLICATION_CRASH_REPORT", "XCTEST_LOG", "VIDEO"
1058
+ # resp.artifacts[0].extension #=> String
1059
+ # resp.artifacts[0].url #=> String
1060
+ # resp.next_token #=> String
1061
+ # @overload list_artifacts(params = {})
1062
+ # @param [Hash] params ({})
1063
+ def list_artifacts(params = {}, options = {})
1064
+ req = build_request(:list_artifacts, params)
1065
+ req.send_request(options)
1066
+ end
1067
+
1068
+ # Gets information about device pools.
1069
+ # @option params [required, String] :arn
1070
+ # The project ARN.
1071
+ # @option params [String] :type
1072
+ # The device pools' type.
1073
+ #
1074
+ # Allowed values include:
1075
+ #
1076
+ # * CURATED: A device pool that is created and managed by AWS Device
1077
+ # Farm.
1078
+ #
1079
+ # * PRIVATE: A device pool that is created and managed by the device
1080
+ # pool developer.
1081
+ # @option params [String] :next_token
1082
+ # An identifier that was returned from the previous call to this
1083
+ # operation, which can be used to return the next set of items in the
1084
+ # list.
1085
+ # @return [Types::ListDevicePoolsResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1086
+ #
1087
+ # * {Types::ListDevicePoolsResult#device_pools #devicePools} => Array&lt;Types::DevicePool&gt;
1088
+ # * {Types::ListDevicePoolsResult#next_token #nextToken} => String
1089
+ #
1090
+ # @example Request syntax with placeholder values
1091
+ # resp = client.list_device_pools({
1092
+ # arn: "AmazonResourceName", # required
1093
+ # type: "CURATED", # accepts CURATED, PRIVATE
1094
+ # next_token: "PaginationToken",
1095
+ # })
1096
+ #
1097
+ # @example Response structure
1098
+ # resp.device_pools #=> Array
1099
+ # resp.device_pools[0].arn #=> String
1100
+ # resp.device_pools[0].name #=> String
1101
+ # resp.device_pools[0].description #=> String
1102
+ # resp.device_pools[0].type #=> String, one of "CURATED", "PRIVATE"
1103
+ # resp.device_pools[0].rules #=> Array
1104
+ # resp.device_pools[0].rules[0].attribute #=> String, one of "ARN", "PLATFORM", "FORM_FACTOR", "MANUFACTURER", "REMOTE_ACCESS_ENABLED"
1105
+ # resp.device_pools[0].rules[0].operator #=> String, one of "EQUALS", "LESS_THAN", "GREATER_THAN", "IN", "NOT_IN"
1106
+ # resp.device_pools[0].rules[0].value #=> String
1107
+ # resp.next_token #=> String
1108
+ # @overload list_device_pools(params = {})
1109
+ # @param [Hash] params ({})
1110
+ def list_device_pools(params = {}, options = {})
1111
+ req = build_request(:list_device_pools, params)
1112
+ req.send_request(options)
1113
+ end
1114
+
1115
+ # Gets information about unique device types.
1116
+ # @option params [String] :arn
1117
+ # The Amazon Resource Name (ARN) of the project.
1118
+ # @option params [String] :next_token
1119
+ # An identifier that was returned from the previous call to this
1120
+ # operation, which can be used to return the next set of items in the
1121
+ # list.
1122
+ # @return [Types::ListDevicesResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1123
+ #
1124
+ # * {Types::ListDevicesResult#devices #devices} => Array&lt;Types::Device&gt;
1125
+ # * {Types::ListDevicesResult#next_token #nextToken} => String
1126
+ #
1127
+ # @example Request syntax with placeholder values
1128
+ # resp = client.list_devices({
1129
+ # arn: "AmazonResourceName",
1130
+ # next_token: "PaginationToken",
1131
+ # })
1132
+ #
1133
+ # @example Response structure
1134
+ # resp.devices #=> Array
1135
+ # resp.devices[0].arn #=> String
1136
+ # resp.devices[0].name #=> String
1137
+ # resp.devices[0].manufacturer #=> String
1138
+ # resp.devices[0].model #=> String
1139
+ # resp.devices[0].form_factor #=> String, one of "PHONE", "TABLET"
1140
+ # resp.devices[0].platform #=> String, one of "ANDROID", "IOS"
1141
+ # resp.devices[0].os #=> String
1142
+ # resp.devices[0].cpu.frequency #=> String
1143
+ # resp.devices[0].cpu.architecture #=> String
1144
+ # resp.devices[0].cpu.clock #=> Float
1145
+ # resp.devices[0].resolution.width #=> Integer
1146
+ # resp.devices[0].resolution.height #=> Integer
1147
+ # resp.devices[0].heap_size #=> Integer
1148
+ # resp.devices[0].memory #=> Integer
1149
+ # resp.devices[0].image #=> String
1150
+ # resp.devices[0].carrier #=> String
1151
+ # resp.devices[0].radio #=> String
1152
+ # resp.devices[0].remote_access_enabled #=> Boolean
1153
+ # resp.devices[0].fleet_type #=> String
1154
+ # resp.devices[0].fleet_name #=> String
1155
+ # resp.next_token #=> String
1156
+ # @overload list_devices(params = {})
1157
+ # @param [Hash] params ({})
1158
+ def list_devices(params = {}, options = {})
1159
+ req = build_request(:list_devices, params)
1160
+ req.send_request(options)
1161
+ end
1162
+
1163
+ # Gets information about jobs.
1164
+ # @option params [required, String] :arn
1165
+ # The jobs' ARNs.
1166
+ # @option params [String] :next_token
1167
+ # An identifier that was returned from the previous call to this
1168
+ # operation, which can be used to return the next set of items in the
1169
+ # list.
1170
+ # @return [Types::ListJobsResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1171
+ #
1172
+ # * {Types::ListJobsResult#jobs #jobs} => Array&lt;Types::Job&gt;
1173
+ # * {Types::ListJobsResult#next_token #nextToken} => String
1174
+ #
1175
+ # @example Request syntax with placeholder values
1176
+ # resp = client.list_jobs({
1177
+ # arn: "AmazonResourceName", # required
1178
+ # next_token: "PaginationToken",
1179
+ # })
1180
+ #
1181
+ # @example Response structure
1182
+ # resp.jobs #=> Array
1183
+ # resp.jobs[0].arn #=> String
1184
+ # resp.jobs[0].name #=> String
1185
+ # resp.jobs[0].type #=> String, one of "BUILTIN_FUZZ", "BUILTIN_EXPLORER", "APPIUM_JAVA_JUNIT", "APPIUM_JAVA_TESTNG", "APPIUM_PYTHON", "APPIUM_WEB_JAVA_JUNIT", "APPIUM_WEB_JAVA_TESTNG", "APPIUM_WEB_PYTHON", "CALABASH", "INSTRUMENTATION", "UIAUTOMATION", "UIAUTOMATOR", "XCTEST", "XCTEST_UI"
1186
+ # resp.jobs[0].created #=> Time
1187
+ # resp.jobs[0].status #=> String, one of "PENDING", "PENDING_CONCURRENCY", "PENDING_DEVICE", "PROCESSING", "SCHEDULING", "PREPARING", "RUNNING", "COMPLETED", "STOPPING"
1188
+ # resp.jobs[0].result #=> String, one of "PENDING", "PASSED", "WARNED", "FAILED", "SKIPPED", "ERRORED", "STOPPED"
1189
+ # resp.jobs[0].started #=> Time
1190
+ # resp.jobs[0].stopped #=> Time
1191
+ # resp.jobs[0].counters.total #=> Integer
1192
+ # resp.jobs[0].counters.passed #=> Integer
1193
+ # resp.jobs[0].counters.failed #=> Integer
1194
+ # resp.jobs[0].counters.warned #=> Integer
1195
+ # resp.jobs[0].counters.errored #=> Integer
1196
+ # resp.jobs[0].counters.stopped #=> Integer
1197
+ # resp.jobs[0].counters.skipped #=> Integer
1198
+ # resp.jobs[0].message #=> String
1199
+ # resp.jobs[0].device.arn #=> String
1200
+ # resp.jobs[0].device.name #=> String
1201
+ # resp.jobs[0].device.manufacturer #=> String
1202
+ # resp.jobs[0].device.model #=> String
1203
+ # resp.jobs[0].device.form_factor #=> String, one of "PHONE", "TABLET"
1204
+ # resp.jobs[0].device.platform #=> String, one of "ANDROID", "IOS"
1205
+ # resp.jobs[0].device.os #=> String
1206
+ # resp.jobs[0].device.cpu.frequency #=> String
1207
+ # resp.jobs[0].device.cpu.architecture #=> String
1208
+ # resp.jobs[0].device.cpu.clock #=> Float
1209
+ # resp.jobs[0].device.resolution.width #=> Integer
1210
+ # resp.jobs[0].device.resolution.height #=> Integer
1211
+ # resp.jobs[0].device.heap_size #=> Integer
1212
+ # resp.jobs[0].device.memory #=> Integer
1213
+ # resp.jobs[0].device.image #=> String
1214
+ # resp.jobs[0].device.carrier #=> String
1215
+ # resp.jobs[0].device.radio #=> String
1216
+ # resp.jobs[0].device.remote_access_enabled #=> Boolean
1217
+ # resp.jobs[0].device.fleet_type #=> String
1218
+ # resp.jobs[0].device.fleet_name #=> String
1219
+ # resp.jobs[0].device_minutes.total #=> Float
1220
+ # resp.jobs[0].device_minutes.metered #=> Float
1221
+ # resp.jobs[0].device_minutes.unmetered #=> Float
1222
+ # resp.next_token #=> String
1223
+ # @overload list_jobs(params = {})
1224
+ # @param [Hash] params ({})
1225
+ def list_jobs(params = {}, options = {})
1226
+ req = build_request(:list_jobs, params)
1227
+ req.send_request(options)
1228
+ end
1229
+
1230
+ # Returns a list of all historical purchases, renewals, and system
1231
+ # renewal transactions for an AWS account. The list is paginated and
1232
+ # ordered by a descending timestamp (most recent transactions are
1233
+ # first). The API returns a `NotEligible` error if the user is not
1234
+ # permitted to invoke the operation. Please contact
1235
+ # [aws-devicefarm-support@amazon.com](mailto:aws-devicefarm-support@amazon.com)
1236
+ # if you believe that you should be able to invoke this operation.
1237
+ # @option params [String] :next_token
1238
+ # An identifier that was returned from the previous call to this
1239
+ # operation, which can be used to return the next set of items in the
1240
+ # list.
1241
+ # @return [Types::ListOfferingTransactionsResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1242
+ #
1243
+ # * {Types::ListOfferingTransactionsResult#offering_transactions #offeringTransactions} => Array&lt;Types::OfferingTransaction&gt;
1244
+ # * {Types::ListOfferingTransactionsResult#next_token #nextToken} => String
1245
+ #
1246
+ # @example Request syntax with placeholder values
1247
+ # resp = client.list_offering_transactions({
1248
+ # next_token: "PaginationToken",
1249
+ # })
1250
+ #
1251
+ # @example Response structure
1252
+ # resp.offering_transactions #=> Array
1253
+ # resp.offering_transactions[0].offering_status.type #=> String, one of "PURCHASE", "RENEW", "SYSTEM"
1254
+ # resp.offering_transactions[0].offering_status.offering.id #=> String
1255
+ # resp.offering_transactions[0].offering_status.offering.description #=> String
1256
+ # resp.offering_transactions[0].offering_status.offering.type #=> String, one of "RECURRING"
1257
+ # resp.offering_transactions[0].offering_status.offering.platform #=> String, one of "ANDROID", "IOS"
1258
+ # resp.offering_transactions[0].offering_status.offering.recurring_charges #=> Array
1259
+ # resp.offering_transactions[0].offering_status.offering.recurring_charges[0].cost.amount #=> Float
1260
+ # resp.offering_transactions[0].offering_status.offering.recurring_charges[0].cost.currency_code #=> String, one of "USD"
1261
+ # resp.offering_transactions[0].offering_status.offering.recurring_charges[0].frequency #=> String, one of "MONTHLY"
1262
+ # resp.offering_transactions[0].offering_status.quantity #=> Integer
1263
+ # resp.offering_transactions[0].offering_status.effective_on #=> Time
1264
+ # resp.offering_transactions[0].transaction_id #=> String
1265
+ # resp.offering_transactions[0].created_on #=> Time
1266
+ # resp.offering_transactions[0].cost.amount #=> Float
1267
+ # resp.offering_transactions[0].cost.currency_code #=> String, one of "USD"
1268
+ # resp.next_token #=> String
1269
+ # @overload list_offering_transactions(params = {})
1270
+ # @param [Hash] params ({})
1271
+ def list_offering_transactions(params = {}, options = {})
1272
+ req = build_request(:list_offering_transactions, params)
1273
+ req.send_request(options)
1274
+ end
1275
+
1276
+ # Returns a list of products or offerings that the user can manage
1277
+ # through the API. Each offering record indicates the recurring price
1278
+ # per unit and the frequency for that offering. The API returns a
1279
+ # `NotEligible` error if the user is not permitted to invoke the
1280
+ # operation. Please contact
1281
+ # [aws-devicefarm-support@amazon.com](mailto:aws-devicefarm-support@amazon.com)
1282
+ # if you believe that you should be able to invoke this operation.
1283
+ # @option params [String] :next_token
1284
+ # An identifier that was returned from the previous call to this
1285
+ # operation, which can be used to return the next set of items in the
1286
+ # list.
1287
+ # @return [Types::ListOfferingsResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1288
+ #
1289
+ # * {Types::ListOfferingsResult#offerings #offerings} => Array&lt;Types::Offering&gt;
1290
+ # * {Types::ListOfferingsResult#next_token #nextToken} => String
1291
+ #
1292
+ # @example Request syntax with placeholder values
1293
+ # resp = client.list_offerings({
1294
+ # next_token: "PaginationToken",
1295
+ # })
1296
+ #
1297
+ # @example Response structure
1298
+ # resp.offerings #=> Array
1299
+ # resp.offerings[0].id #=> String
1300
+ # resp.offerings[0].description #=> String
1301
+ # resp.offerings[0].type #=> String, one of "RECURRING"
1302
+ # resp.offerings[0].platform #=> String, one of "ANDROID", "IOS"
1303
+ # resp.offerings[0].recurring_charges #=> Array
1304
+ # resp.offerings[0].recurring_charges[0].cost.amount #=> Float
1305
+ # resp.offerings[0].recurring_charges[0].cost.currency_code #=> String, one of "USD"
1306
+ # resp.offerings[0].recurring_charges[0].frequency #=> String, one of "MONTHLY"
1307
+ # resp.next_token #=> String
1308
+ # @overload list_offerings(params = {})
1309
+ # @param [Hash] params ({})
1310
+ def list_offerings(params = {}, options = {})
1311
+ req = build_request(:list_offerings, params)
1312
+ req.send_request(options)
1313
+ end
1314
+
1315
+ # Gets information about projects.
1316
+ # @option params [String] :arn
1317
+ # Optional. If no Amazon Resource Name (ARN) is specified, then AWS
1318
+ # Device Farm returns a list of all projects for the AWS account. You
1319
+ # can also specify a project ARN.
1320
+ # @option params [String] :next_token
1321
+ # An identifier that was returned from the previous call to this
1322
+ # operation, which can be used to return the next set of items in the
1323
+ # list.
1324
+ # @return [Types::ListProjectsResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1325
+ #
1326
+ # * {Types::ListProjectsResult#projects #projects} => Array&lt;Types::Project&gt;
1327
+ # * {Types::ListProjectsResult#next_token #nextToken} => String
1328
+ #
1329
+ # @example Request syntax with placeholder values
1330
+ # resp = client.list_projects({
1331
+ # arn: "AmazonResourceName",
1332
+ # next_token: "PaginationToken",
1333
+ # })
1334
+ #
1335
+ # @example Response structure
1336
+ # resp.projects #=> Array
1337
+ # resp.projects[0].arn #=> String
1338
+ # resp.projects[0].name #=> String
1339
+ # resp.projects[0].created #=> Time
1340
+ # resp.next_token #=> String
1341
+ # @overload list_projects(params = {})
1342
+ # @param [Hash] params ({})
1343
+ def list_projects(params = {}, options = {})
1344
+ req = build_request(:list_projects, params)
1345
+ req.send_request(options)
1346
+ end
1347
+
1348
+ # Returns a list of all currently running remote access sessions.
1349
+ # @option params [required, String] :arn
1350
+ # The Amazon Resource Name (ARN) of the remote access session about
1351
+ # which you are requesting information.
1352
+ # @option params [String] :next_token
1353
+ # An identifier that was returned from the previous call to this
1354
+ # operation, which can be used to return the next set of items in the
1355
+ # list.
1356
+ # @return [Types::ListRemoteAccessSessionsResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1357
+ #
1358
+ # * {Types::ListRemoteAccessSessionsResult#remote_access_sessions #remoteAccessSessions} => Array&lt;Types::RemoteAccessSession&gt;
1359
+ # * {Types::ListRemoteAccessSessionsResult#next_token #nextToken} => String
1360
+ #
1361
+ # @example Request syntax with placeholder values
1362
+ # resp = client.list_remote_access_sessions({
1363
+ # arn: "AmazonResourceName", # required
1364
+ # next_token: "PaginationToken",
1365
+ # })
1366
+ #
1367
+ # @example Response structure
1368
+ # resp.remote_access_sessions #=> Array
1369
+ # resp.remote_access_sessions[0].arn #=> String
1370
+ # resp.remote_access_sessions[0].name #=> String
1371
+ # resp.remote_access_sessions[0].created #=> Time
1372
+ # resp.remote_access_sessions[0].status #=> String, one of "PENDING", "PENDING_CONCURRENCY", "PENDING_DEVICE", "PROCESSING", "SCHEDULING", "PREPARING", "RUNNING", "COMPLETED", "STOPPING"
1373
+ # resp.remote_access_sessions[0].result #=> String, one of "PENDING", "PASSED", "WARNED", "FAILED", "SKIPPED", "ERRORED", "STOPPED"
1374
+ # resp.remote_access_sessions[0].message #=> String
1375
+ # resp.remote_access_sessions[0].started #=> Time
1376
+ # resp.remote_access_sessions[0].stopped #=> Time
1377
+ # resp.remote_access_sessions[0].device.arn #=> String
1378
+ # resp.remote_access_sessions[0].device.name #=> String
1379
+ # resp.remote_access_sessions[0].device.manufacturer #=> String
1380
+ # resp.remote_access_sessions[0].device.model #=> String
1381
+ # resp.remote_access_sessions[0].device.form_factor #=> String, one of "PHONE", "TABLET"
1382
+ # resp.remote_access_sessions[0].device.platform #=> String, one of "ANDROID", "IOS"
1383
+ # resp.remote_access_sessions[0].device.os #=> String
1384
+ # resp.remote_access_sessions[0].device.cpu.frequency #=> String
1385
+ # resp.remote_access_sessions[0].device.cpu.architecture #=> String
1386
+ # resp.remote_access_sessions[0].device.cpu.clock #=> Float
1387
+ # resp.remote_access_sessions[0].device.resolution.width #=> Integer
1388
+ # resp.remote_access_sessions[0].device.resolution.height #=> Integer
1389
+ # resp.remote_access_sessions[0].device.heap_size #=> Integer
1390
+ # resp.remote_access_sessions[0].device.memory #=> Integer
1391
+ # resp.remote_access_sessions[0].device.image #=> String
1392
+ # resp.remote_access_sessions[0].device.carrier #=> String
1393
+ # resp.remote_access_sessions[0].device.radio #=> String
1394
+ # resp.remote_access_sessions[0].device.remote_access_enabled #=> Boolean
1395
+ # resp.remote_access_sessions[0].device.fleet_type #=> String
1396
+ # resp.remote_access_sessions[0].device.fleet_name #=> String
1397
+ # resp.remote_access_sessions[0].billing_method #=> String, one of "METERED", "UNMETERED"
1398
+ # resp.remote_access_sessions[0].device_minutes.total #=> Float
1399
+ # resp.remote_access_sessions[0].device_minutes.metered #=> Float
1400
+ # resp.remote_access_sessions[0].device_minutes.unmetered #=> Float
1401
+ # resp.remote_access_sessions[0].endpoint #=> String
1402
+ # resp.next_token #=> String
1403
+ # @overload list_remote_access_sessions(params = {})
1404
+ # @param [Hash] params ({})
1405
+ def list_remote_access_sessions(params = {}, options = {})
1406
+ req = build_request(:list_remote_access_sessions, params)
1407
+ req.send_request(options)
1408
+ end
1409
+
1410
+ # Gets information about runs, given an AWS Device Farm project ARN.
1411
+ # @option params [required, String] :arn
1412
+ # The Amazon Resource Name (ARN) of the project for which you want to
1413
+ # list runs.
1414
+ # @option params [String] :next_token
1415
+ # An identifier that was returned from the previous call to this
1416
+ # operation, which can be used to return the next set of items in the
1417
+ # list.
1418
+ # @return [Types::ListRunsResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1419
+ #
1420
+ # * {Types::ListRunsResult#runs #runs} => Array&lt;Types::Run&gt;
1421
+ # * {Types::ListRunsResult#next_token #nextToken} => String
1422
+ #
1423
+ # @example Request syntax with placeholder values
1424
+ # resp = client.list_runs({
1425
+ # arn: "AmazonResourceName", # required
1426
+ # next_token: "PaginationToken",
1427
+ # })
1428
+ #
1429
+ # @example Response structure
1430
+ # resp.runs #=> Array
1431
+ # resp.runs[0].arn #=> String
1432
+ # resp.runs[0].name #=> String
1433
+ # resp.runs[0].type #=> String, one of "BUILTIN_FUZZ", "BUILTIN_EXPLORER", "APPIUM_JAVA_JUNIT", "APPIUM_JAVA_TESTNG", "APPIUM_PYTHON", "APPIUM_WEB_JAVA_JUNIT", "APPIUM_WEB_JAVA_TESTNG", "APPIUM_WEB_PYTHON", "CALABASH", "INSTRUMENTATION", "UIAUTOMATION", "UIAUTOMATOR", "XCTEST", "XCTEST_UI"
1434
+ # resp.runs[0].platform #=> String, one of "ANDROID", "IOS"
1435
+ # resp.runs[0].created #=> Time
1436
+ # resp.runs[0].status #=> String, one of "PENDING", "PENDING_CONCURRENCY", "PENDING_DEVICE", "PROCESSING", "SCHEDULING", "PREPARING", "RUNNING", "COMPLETED", "STOPPING"
1437
+ # resp.runs[0].result #=> String, one of "PENDING", "PASSED", "WARNED", "FAILED", "SKIPPED", "ERRORED", "STOPPED"
1438
+ # resp.runs[0].started #=> Time
1439
+ # resp.runs[0].stopped #=> Time
1440
+ # resp.runs[0].counters.total #=> Integer
1441
+ # resp.runs[0].counters.passed #=> Integer
1442
+ # resp.runs[0].counters.failed #=> Integer
1443
+ # resp.runs[0].counters.warned #=> Integer
1444
+ # resp.runs[0].counters.errored #=> Integer
1445
+ # resp.runs[0].counters.stopped #=> Integer
1446
+ # resp.runs[0].counters.skipped #=> Integer
1447
+ # resp.runs[0].message #=> String
1448
+ # resp.runs[0].total_jobs #=> Integer
1449
+ # resp.runs[0].completed_jobs #=> Integer
1450
+ # resp.runs[0].billing_method #=> String, one of "METERED", "UNMETERED"
1451
+ # resp.runs[0].device_minutes.total #=> Float
1452
+ # resp.runs[0].device_minutes.metered #=> Float
1453
+ # resp.runs[0].device_minutes.unmetered #=> Float
1454
+ # resp.next_token #=> String
1455
+ # @overload list_runs(params = {})
1456
+ # @param [Hash] params ({})
1457
+ def list_runs(params = {}, options = {})
1458
+ req = build_request(:list_runs, params)
1459
+ req.send_request(options)
1460
+ end
1461
+
1462
+ # Gets information about samples, given an AWS Device Farm project ARN
1463
+ # @option params [required, String] :arn
1464
+ # The Amazon Resource Name (ARN) of the project for which you want to
1465
+ # list samples.
1466
+ # @option params [String] :next_token
1467
+ # An identifier that was returned from the previous call to this
1468
+ # operation, which can be used to return the next set of items in the
1469
+ # list.
1470
+ # @return [Types::ListSamplesResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1471
+ #
1472
+ # * {Types::ListSamplesResult#samples #samples} => Array&lt;Types::Sample&gt;
1473
+ # * {Types::ListSamplesResult#next_token #nextToken} => String
1474
+ #
1475
+ # @example Request syntax with placeholder values
1476
+ # resp = client.list_samples({
1477
+ # arn: "AmazonResourceName", # required
1478
+ # next_token: "PaginationToken",
1479
+ # })
1480
+ #
1481
+ # @example Response structure
1482
+ # resp.samples #=> Array
1483
+ # resp.samples[0].arn #=> String
1484
+ # resp.samples[0].type #=> String, one of "CPU", "MEMORY", "THREADS", "RX_RATE", "TX_RATE", "RX", "TX", "NATIVE_FRAMES", "NATIVE_FPS", "NATIVE_MIN_DRAWTIME", "NATIVE_AVG_DRAWTIME", "NATIVE_MAX_DRAWTIME", "OPENGL_FRAMES", "OPENGL_FPS", "OPENGL_MIN_DRAWTIME", "OPENGL_AVG_DRAWTIME", "OPENGL_MAX_DRAWTIME"
1485
+ # resp.samples[0].url #=> String
1486
+ # resp.next_token #=> String
1487
+ # @overload list_samples(params = {})
1488
+ # @param [Hash] params ({})
1489
+ def list_samples(params = {}, options = {})
1490
+ req = build_request(:list_samples, params)
1491
+ req.send_request(options)
1492
+ end
1493
+
1494
+ # Gets information about suites.
1495
+ # @option params [required, String] :arn
1496
+ # The suites' ARNs.
1497
+ # @option params [String] :next_token
1498
+ # An identifier that was returned from the previous call to this
1499
+ # operation, which can be used to return the next set of items in the
1500
+ # list.
1501
+ # @return [Types::ListSuitesResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1502
+ #
1503
+ # * {Types::ListSuitesResult#suites #suites} => Array&lt;Types::Suite&gt;
1504
+ # * {Types::ListSuitesResult#next_token #nextToken} => String
1505
+ #
1506
+ # @example Request syntax with placeholder values
1507
+ # resp = client.list_suites({
1508
+ # arn: "AmazonResourceName", # required
1509
+ # next_token: "PaginationToken",
1510
+ # })
1511
+ #
1512
+ # @example Response structure
1513
+ # resp.suites #=> Array
1514
+ # resp.suites[0].arn #=> String
1515
+ # resp.suites[0].name #=> String
1516
+ # resp.suites[0].type #=> String, one of "BUILTIN_FUZZ", "BUILTIN_EXPLORER", "APPIUM_JAVA_JUNIT", "APPIUM_JAVA_TESTNG", "APPIUM_PYTHON", "APPIUM_WEB_JAVA_JUNIT", "APPIUM_WEB_JAVA_TESTNG", "APPIUM_WEB_PYTHON", "CALABASH", "INSTRUMENTATION", "UIAUTOMATION", "UIAUTOMATOR", "XCTEST", "XCTEST_UI"
1517
+ # resp.suites[0].created #=> Time
1518
+ # resp.suites[0].status #=> String, one of "PENDING", "PENDING_CONCURRENCY", "PENDING_DEVICE", "PROCESSING", "SCHEDULING", "PREPARING", "RUNNING", "COMPLETED", "STOPPING"
1519
+ # resp.suites[0].result #=> String, one of "PENDING", "PASSED", "WARNED", "FAILED", "SKIPPED", "ERRORED", "STOPPED"
1520
+ # resp.suites[0].started #=> Time
1521
+ # resp.suites[0].stopped #=> Time
1522
+ # resp.suites[0].counters.total #=> Integer
1523
+ # resp.suites[0].counters.passed #=> Integer
1524
+ # resp.suites[0].counters.failed #=> Integer
1525
+ # resp.suites[0].counters.warned #=> Integer
1526
+ # resp.suites[0].counters.errored #=> Integer
1527
+ # resp.suites[0].counters.stopped #=> Integer
1528
+ # resp.suites[0].counters.skipped #=> Integer
1529
+ # resp.suites[0].message #=> String
1530
+ # resp.suites[0].device_minutes.total #=> Float
1531
+ # resp.suites[0].device_minutes.metered #=> Float
1532
+ # resp.suites[0].device_minutes.unmetered #=> Float
1533
+ # resp.next_token #=> String
1534
+ # @overload list_suites(params = {})
1535
+ # @param [Hash] params ({})
1536
+ def list_suites(params = {}, options = {})
1537
+ req = build_request(:list_suites, params)
1538
+ req.send_request(options)
1539
+ end
1540
+
1541
+ # Gets information about tests.
1542
+ # @option params [required, String] :arn
1543
+ # The tests' ARNs.
1544
+ # @option params [String] :next_token
1545
+ # An identifier that was returned from the previous call to this
1546
+ # operation, which can be used to return the next set of items in the
1547
+ # list.
1548
+ # @return [Types::ListTestsResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1549
+ #
1550
+ # * {Types::ListTestsResult#tests #tests} => Array&lt;Types::Test&gt;
1551
+ # * {Types::ListTestsResult#next_token #nextToken} => String
1552
+ #
1553
+ # @example Request syntax with placeholder values
1554
+ # resp = client.list_tests({
1555
+ # arn: "AmazonResourceName", # required
1556
+ # next_token: "PaginationToken",
1557
+ # })
1558
+ #
1559
+ # @example Response structure
1560
+ # resp.tests #=> Array
1561
+ # resp.tests[0].arn #=> String
1562
+ # resp.tests[0].name #=> String
1563
+ # resp.tests[0].type #=> String, one of "BUILTIN_FUZZ", "BUILTIN_EXPLORER", "APPIUM_JAVA_JUNIT", "APPIUM_JAVA_TESTNG", "APPIUM_PYTHON", "APPIUM_WEB_JAVA_JUNIT", "APPIUM_WEB_JAVA_TESTNG", "APPIUM_WEB_PYTHON", "CALABASH", "INSTRUMENTATION", "UIAUTOMATION", "UIAUTOMATOR", "XCTEST", "XCTEST_UI"
1564
+ # resp.tests[0].created #=> Time
1565
+ # resp.tests[0].status #=> String, one of "PENDING", "PENDING_CONCURRENCY", "PENDING_DEVICE", "PROCESSING", "SCHEDULING", "PREPARING", "RUNNING", "COMPLETED", "STOPPING"
1566
+ # resp.tests[0].result #=> String, one of "PENDING", "PASSED", "WARNED", "FAILED", "SKIPPED", "ERRORED", "STOPPED"
1567
+ # resp.tests[0].started #=> Time
1568
+ # resp.tests[0].stopped #=> Time
1569
+ # resp.tests[0].counters.total #=> Integer
1570
+ # resp.tests[0].counters.passed #=> Integer
1571
+ # resp.tests[0].counters.failed #=> Integer
1572
+ # resp.tests[0].counters.warned #=> Integer
1573
+ # resp.tests[0].counters.errored #=> Integer
1574
+ # resp.tests[0].counters.stopped #=> Integer
1575
+ # resp.tests[0].counters.skipped #=> Integer
1576
+ # resp.tests[0].message #=> String
1577
+ # resp.tests[0].device_minutes.total #=> Float
1578
+ # resp.tests[0].device_minutes.metered #=> Float
1579
+ # resp.tests[0].device_minutes.unmetered #=> Float
1580
+ # resp.next_token #=> String
1581
+ # @overload list_tests(params = {})
1582
+ # @param [Hash] params ({})
1583
+ def list_tests(params = {}, options = {})
1584
+ req = build_request(:list_tests, params)
1585
+ req.send_request(options)
1586
+ end
1587
+
1588
+ # Gets information about unique problems.
1589
+ # @option params [required, String] :arn
1590
+ # The unique problems' ARNs.
1591
+ # @option params [String] :next_token
1592
+ # An identifier that was returned from the previous call to this
1593
+ # operation, which can be used to return the next set of items in the
1594
+ # list.
1595
+ # @return [Types::ListUniqueProblemsResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1596
+ #
1597
+ # * {Types::ListUniqueProblemsResult#unique_problems #uniqueProblems} => Hash&lt;String,Array&lt;Types::UniqueProblem&gt;&gt;
1598
+ # * {Types::ListUniqueProblemsResult#next_token #nextToken} => String
1599
+ #
1600
+ # @example Request syntax with placeholder values
1601
+ # resp = client.list_unique_problems({
1602
+ # arn: "AmazonResourceName", # required
1603
+ # next_token: "PaginationToken",
1604
+ # })
1605
+ #
1606
+ # @example Response structure
1607
+ # resp.unique_problems #=> Hash
1608
+ # resp.unique_problems["ExecutionResult"] #=> Array
1609
+ # resp.unique_problems["ExecutionResult"][0].message #=> String
1610
+ # resp.unique_problems["ExecutionResult"][0].problems #=> Array
1611
+ # resp.unique_problems["ExecutionResult"][0].problems[0].run.arn #=> String
1612
+ # resp.unique_problems["ExecutionResult"][0].problems[0].run.name #=> String
1613
+ # resp.unique_problems["ExecutionResult"][0].problems[0].job.arn #=> String
1614
+ # resp.unique_problems["ExecutionResult"][0].problems[0].job.name #=> String
1615
+ # resp.unique_problems["ExecutionResult"][0].problems[0].suite.arn #=> String
1616
+ # resp.unique_problems["ExecutionResult"][0].problems[0].suite.name #=> String
1617
+ # resp.unique_problems["ExecutionResult"][0].problems[0].test.arn #=> String
1618
+ # resp.unique_problems["ExecutionResult"][0].problems[0].test.name #=> String
1619
+ # resp.unique_problems["ExecutionResult"][0].problems[0].device.arn #=> String
1620
+ # resp.unique_problems["ExecutionResult"][0].problems[0].device.name #=> String
1621
+ # resp.unique_problems["ExecutionResult"][0].problems[0].device.manufacturer #=> String
1622
+ # resp.unique_problems["ExecutionResult"][0].problems[0].device.model #=> String
1623
+ # resp.unique_problems["ExecutionResult"][0].problems[0].device.form_factor #=> String, one of "PHONE", "TABLET"
1624
+ # resp.unique_problems["ExecutionResult"][0].problems[0].device.platform #=> String, one of "ANDROID", "IOS"
1625
+ # resp.unique_problems["ExecutionResult"][0].problems[0].device.os #=> String
1626
+ # resp.unique_problems["ExecutionResult"][0].problems[0].device.cpu.frequency #=> String
1627
+ # resp.unique_problems["ExecutionResult"][0].problems[0].device.cpu.architecture #=> String
1628
+ # resp.unique_problems["ExecutionResult"][0].problems[0].device.cpu.clock #=> Float
1629
+ # resp.unique_problems["ExecutionResult"][0].problems[0].device.resolution.width #=> Integer
1630
+ # resp.unique_problems["ExecutionResult"][0].problems[0].device.resolution.height #=> Integer
1631
+ # resp.unique_problems["ExecutionResult"][0].problems[0].device.heap_size #=> Integer
1632
+ # resp.unique_problems["ExecutionResult"][0].problems[0].device.memory #=> Integer
1633
+ # resp.unique_problems["ExecutionResult"][0].problems[0].device.image #=> String
1634
+ # resp.unique_problems["ExecutionResult"][0].problems[0].device.carrier #=> String
1635
+ # resp.unique_problems["ExecutionResult"][0].problems[0].device.radio #=> String
1636
+ # resp.unique_problems["ExecutionResult"][0].problems[0].device.remote_access_enabled #=> Boolean
1637
+ # resp.unique_problems["ExecutionResult"][0].problems[0].device.fleet_type #=> String
1638
+ # resp.unique_problems["ExecutionResult"][0].problems[0].device.fleet_name #=> String
1639
+ # resp.unique_problems["ExecutionResult"][0].problems[0].result #=> String, one of "PENDING", "PASSED", "WARNED", "FAILED", "SKIPPED", "ERRORED", "STOPPED"
1640
+ # resp.unique_problems["ExecutionResult"][0].problems[0].message #=> String
1641
+ # resp.next_token #=> String
1642
+ # @overload list_unique_problems(params = {})
1643
+ # @param [Hash] params ({})
1644
+ def list_unique_problems(params = {}, options = {})
1645
+ req = build_request(:list_unique_problems, params)
1646
+ req.send_request(options)
1647
+ end
1648
+
1649
+ # Gets information about uploads, given an AWS Device Farm project ARN.
1650
+ # @option params [required, String] :arn
1651
+ # The Amazon Resource Name (ARN) of the project for which you want to
1652
+ # list uploads.
1653
+ # @option params [String] :next_token
1654
+ # An identifier that was returned from the previous call to this
1655
+ # operation, which can be used to return the next set of items in the
1656
+ # list.
1657
+ # @return [Types::ListUploadsResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1658
+ #
1659
+ # * {Types::ListUploadsResult#uploads #uploads} => Array&lt;Types::Upload&gt;
1660
+ # * {Types::ListUploadsResult#next_token #nextToken} => String
1661
+ #
1662
+ # @example Request syntax with placeholder values
1663
+ # resp = client.list_uploads({
1664
+ # arn: "AmazonResourceName", # required
1665
+ # next_token: "PaginationToken",
1666
+ # })
1667
+ #
1668
+ # @example Response structure
1669
+ # resp.uploads #=> Array
1670
+ # resp.uploads[0].arn #=> String
1671
+ # resp.uploads[0].name #=> String
1672
+ # resp.uploads[0].created #=> Time
1673
+ # resp.uploads[0].type #=> String, one of "ANDROID_APP", "IOS_APP", "WEB_APP", "EXTERNAL_DATA", "APPIUM_JAVA_JUNIT_TEST_PACKAGE", "APPIUM_JAVA_TESTNG_TEST_PACKAGE", "APPIUM_PYTHON_TEST_PACKAGE", "APPIUM_WEB_JAVA_JUNIT_TEST_PACKAGE", "APPIUM_WEB_JAVA_TESTNG_TEST_PACKAGE", "APPIUM_WEB_PYTHON_TEST_PACKAGE", "CALABASH_TEST_PACKAGE", "INSTRUMENTATION_TEST_PACKAGE", "UIAUTOMATION_TEST_PACKAGE", "UIAUTOMATOR_TEST_PACKAGE", "XCTEST_TEST_PACKAGE", "XCTEST_UI_TEST_PACKAGE"
1674
+ # resp.uploads[0].status #=> String, one of "INITIALIZED", "PROCESSING", "SUCCEEDED", "FAILED"
1675
+ # resp.uploads[0].url #=> String
1676
+ # resp.uploads[0].metadata #=> String
1677
+ # resp.uploads[0].content_type #=> String
1678
+ # resp.uploads[0].message #=> String
1679
+ # resp.next_token #=> String
1680
+ # @overload list_uploads(params = {})
1681
+ # @param [Hash] params ({})
1682
+ def list_uploads(params = {}, options = {})
1683
+ req = build_request(:list_uploads, params)
1684
+ req.send_request(options)
1685
+ end
1686
+
1687
+ # Immediately purchases offerings for an AWS account. Offerings renew
1688
+ # with the latest total purchased quantity for an offering, unless the
1689
+ # renewal was overridden. The API returns a `NotEligible` error if the
1690
+ # user is not permitted to invoke the operation. Please contact
1691
+ # [aws-devicefarm-support@amazon.com](mailto:aws-devicefarm-support@amazon.com)
1692
+ # if you believe that you should be able to invoke this operation.
1693
+ # @option params [String] :offering_id
1694
+ # The ID of the offering.
1695
+ # @option params [Integer] :quantity
1696
+ # The number of device slots you wish to purchase in an offering
1697
+ # request.
1698
+ # @return [Types::PurchaseOfferingResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1699
+ #
1700
+ # * {Types::PurchaseOfferingResult#offering_transaction #offeringTransaction} => Types::OfferingTransaction
1701
+ #
1702
+ # @example Request syntax with placeholder values
1703
+ # resp = client.purchase_offering({
1704
+ # offering_id: "OfferingIdentifier",
1705
+ # quantity: 1,
1706
+ # })
1707
+ #
1708
+ # @example Response structure
1709
+ # resp.offering_transaction.offering_status.type #=> String, one of "PURCHASE", "RENEW", "SYSTEM"
1710
+ # resp.offering_transaction.offering_status.offering.id #=> String
1711
+ # resp.offering_transaction.offering_status.offering.description #=> String
1712
+ # resp.offering_transaction.offering_status.offering.type #=> String, one of "RECURRING"
1713
+ # resp.offering_transaction.offering_status.offering.platform #=> String, one of "ANDROID", "IOS"
1714
+ # resp.offering_transaction.offering_status.offering.recurring_charges #=> Array
1715
+ # resp.offering_transaction.offering_status.offering.recurring_charges[0].cost.amount #=> Float
1716
+ # resp.offering_transaction.offering_status.offering.recurring_charges[0].cost.currency_code #=> String, one of "USD"
1717
+ # resp.offering_transaction.offering_status.offering.recurring_charges[0].frequency #=> String, one of "MONTHLY"
1718
+ # resp.offering_transaction.offering_status.quantity #=> Integer
1719
+ # resp.offering_transaction.offering_status.effective_on #=> Time
1720
+ # resp.offering_transaction.transaction_id #=> String
1721
+ # resp.offering_transaction.created_on #=> Time
1722
+ # resp.offering_transaction.cost.amount #=> Float
1723
+ # resp.offering_transaction.cost.currency_code #=> String, one of "USD"
1724
+ # @overload purchase_offering(params = {})
1725
+ # @param [Hash] params ({})
1726
+ def purchase_offering(params = {}, options = {})
1727
+ req = build_request(:purchase_offering, params)
1728
+ req.send_request(options)
1729
+ end
1730
+
1731
+ # Explicitly sets the quantity of devices to renew for an offering,
1732
+ # starting from the `effectiveDate` of the next period. The API returns
1733
+ # a `NotEligible` error if the user is not permitted to invoke the
1734
+ # operation. Please contact
1735
+ # [aws-devicefarm-support@amazon.com](mailto:aws-devicefarm-support@amazon.com)
1736
+ # if you believe that you should be able to invoke this operation.
1737
+ # @option params [String] :offering_id
1738
+ # The ID of a request to renew an offering.
1739
+ # @option params [Integer] :quantity
1740
+ # The quantity requested in an offering renewal.
1741
+ # @return [Types::RenewOfferingResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1742
+ #
1743
+ # * {Types::RenewOfferingResult#offering_transaction #offeringTransaction} => Types::OfferingTransaction
1744
+ #
1745
+ # @example Request syntax with placeholder values
1746
+ # resp = client.renew_offering({
1747
+ # offering_id: "OfferingIdentifier",
1748
+ # quantity: 1,
1749
+ # })
1750
+ #
1751
+ # @example Response structure
1752
+ # resp.offering_transaction.offering_status.type #=> String, one of "PURCHASE", "RENEW", "SYSTEM"
1753
+ # resp.offering_transaction.offering_status.offering.id #=> String
1754
+ # resp.offering_transaction.offering_status.offering.description #=> String
1755
+ # resp.offering_transaction.offering_status.offering.type #=> String, one of "RECURRING"
1756
+ # resp.offering_transaction.offering_status.offering.platform #=> String, one of "ANDROID", "IOS"
1757
+ # resp.offering_transaction.offering_status.offering.recurring_charges #=> Array
1758
+ # resp.offering_transaction.offering_status.offering.recurring_charges[0].cost.amount #=> Float
1759
+ # resp.offering_transaction.offering_status.offering.recurring_charges[0].cost.currency_code #=> String, one of "USD"
1760
+ # resp.offering_transaction.offering_status.offering.recurring_charges[0].frequency #=> String, one of "MONTHLY"
1761
+ # resp.offering_transaction.offering_status.quantity #=> Integer
1762
+ # resp.offering_transaction.offering_status.effective_on #=> Time
1763
+ # resp.offering_transaction.transaction_id #=> String
1764
+ # resp.offering_transaction.created_on #=> Time
1765
+ # resp.offering_transaction.cost.amount #=> Float
1766
+ # resp.offering_transaction.cost.currency_code #=> String, one of "USD"
1767
+ # @overload renew_offering(params = {})
1768
+ # @param [Hash] params ({})
1769
+ def renew_offering(params = {}, options = {})
1770
+ req = build_request(:renew_offering, params)
1771
+ req.send_request(options)
1772
+ end
1773
+
1774
+ # Schedules a run.
1775
+ # @option params [required, String] :project_arn
1776
+ # The ARN of the project for the run to be scheduled.
1777
+ # @option params [String] :app_arn
1778
+ # The ARN of the app to schedule a run.
1779
+ # @option params [required, String] :device_pool_arn
1780
+ # The ARN of the device pool for the run to be scheduled.
1781
+ # @option params [String] :name
1782
+ # The name for the run to be scheduled.
1783
+ # @option params [required, Types::ScheduleRunTest] :test
1784
+ # Information about the test for the run to be scheduled.
1785
+ # @option params [Types::ScheduleRunConfiguration] :configuration
1786
+ # Information about the settings for the run to be scheduled.
1787
+ # @return [Types::ScheduleRunResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1788
+ #
1789
+ # * {Types::ScheduleRunResult#run #run} => Types::Run
1790
+ #
1791
+ # @example Request syntax with placeholder values
1792
+ # resp = client.schedule_run({
1793
+ # project_arn: "AmazonResourceName", # required
1794
+ # app_arn: "AmazonResourceName",
1795
+ # device_pool_arn: "AmazonResourceName", # required
1796
+ # name: "Name",
1797
+ # test: { # required
1798
+ # type: "BUILTIN_FUZZ", # required, accepts BUILTIN_FUZZ, BUILTIN_EXPLORER, APPIUM_JAVA_JUNIT, APPIUM_JAVA_TESTNG, APPIUM_PYTHON, APPIUM_WEB_JAVA_JUNIT, APPIUM_WEB_JAVA_TESTNG, APPIUM_WEB_PYTHON, CALABASH, INSTRUMENTATION, UIAUTOMATION, UIAUTOMATOR, XCTEST, XCTEST_UI
1799
+ # test_package_arn: "AmazonResourceName",
1800
+ # filter: "Filter",
1801
+ # parameters: {
1802
+ # "String" => "String",
1803
+ # },
1804
+ # },
1805
+ # configuration: {
1806
+ # extra_data_package_arn: "AmazonResourceName",
1807
+ # network_profile_arn: "AmazonResourceName",
1808
+ # locale: "String",
1809
+ # location: {
1810
+ # latitude: 1.0, # required
1811
+ # longitude: 1.0, # required
1812
+ # },
1813
+ # radios: {
1814
+ # wifi: false,
1815
+ # bluetooth: false,
1816
+ # nfc: false,
1817
+ # gps: false,
1818
+ # },
1819
+ # auxiliary_apps: ["AmazonResourceName"],
1820
+ # billing_method: "METERED", # accepts METERED, UNMETERED
1821
+ # },
1822
+ # })
1823
+ #
1824
+ # @example Response structure
1825
+ # resp.run.arn #=> String
1826
+ # resp.run.name #=> String
1827
+ # resp.run.type #=> String, one of "BUILTIN_FUZZ", "BUILTIN_EXPLORER", "APPIUM_JAVA_JUNIT", "APPIUM_JAVA_TESTNG", "APPIUM_PYTHON", "APPIUM_WEB_JAVA_JUNIT", "APPIUM_WEB_JAVA_TESTNG", "APPIUM_WEB_PYTHON", "CALABASH", "INSTRUMENTATION", "UIAUTOMATION", "UIAUTOMATOR", "XCTEST", "XCTEST_UI"
1828
+ # resp.run.platform #=> String, one of "ANDROID", "IOS"
1829
+ # resp.run.created #=> Time
1830
+ # resp.run.status #=> String, one of "PENDING", "PENDING_CONCURRENCY", "PENDING_DEVICE", "PROCESSING", "SCHEDULING", "PREPARING", "RUNNING", "COMPLETED", "STOPPING"
1831
+ # resp.run.result #=> String, one of "PENDING", "PASSED", "WARNED", "FAILED", "SKIPPED", "ERRORED", "STOPPED"
1832
+ # resp.run.started #=> Time
1833
+ # resp.run.stopped #=> Time
1834
+ # resp.run.counters.total #=> Integer
1835
+ # resp.run.counters.passed #=> Integer
1836
+ # resp.run.counters.failed #=> Integer
1837
+ # resp.run.counters.warned #=> Integer
1838
+ # resp.run.counters.errored #=> Integer
1839
+ # resp.run.counters.stopped #=> Integer
1840
+ # resp.run.counters.skipped #=> Integer
1841
+ # resp.run.message #=> String
1842
+ # resp.run.total_jobs #=> Integer
1843
+ # resp.run.completed_jobs #=> Integer
1844
+ # resp.run.billing_method #=> String, one of "METERED", "UNMETERED"
1845
+ # resp.run.device_minutes.total #=> Float
1846
+ # resp.run.device_minutes.metered #=> Float
1847
+ # resp.run.device_minutes.unmetered #=> Float
1848
+ # @overload schedule_run(params = {})
1849
+ # @param [Hash] params ({})
1850
+ def schedule_run(params = {}, options = {})
1851
+ req = build_request(:schedule_run, params)
1852
+ req.send_request(options)
1853
+ end
1854
+
1855
+ # Ends a specified remote access session.
1856
+ # @option params [required, String] :arn
1857
+ # The Amazon Resource Name (ARN) of the remote access session you wish
1858
+ # to stop.
1859
+ # @return [Types::StopRemoteAccessSessionResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1860
+ #
1861
+ # * {Types::StopRemoteAccessSessionResult#remote_access_session #remoteAccessSession} => Types::RemoteAccessSession
1862
+ #
1863
+ # @example Request syntax with placeholder values
1864
+ # resp = client.stop_remote_access_session({
1865
+ # arn: "AmazonResourceName", # required
1866
+ # })
1867
+ #
1868
+ # @example Response structure
1869
+ # resp.remote_access_session.arn #=> String
1870
+ # resp.remote_access_session.name #=> String
1871
+ # resp.remote_access_session.created #=> Time
1872
+ # resp.remote_access_session.status #=> String, one of "PENDING", "PENDING_CONCURRENCY", "PENDING_DEVICE", "PROCESSING", "SCHEDULING", "PREPARING", "RUNNING", "COMPLETED", "STOPPING"
1873
+ # resp.remote_access_session.result #=> String, one of "PENDING", "PASSED", "WARNED", "FAILED", "SKIPPED", "ERRORED", "STOPPED"
1874
+ # resp.remote_access_session.message #=> String
1875
+ # resp.remote_access_session.started #=> Time
1876
+ # resp.remote_access_session.stopped #=> Time
1877
+ # resp.remote_access_session.device.arn #=> String
1878
+ # resp.remote_access_session.device.name #=> String
1879
+ # resp.remote_access_session.device.manufacturer #=> String
1880
+ # resp.remote_access_session.device.model #=> String
1881
+ # resp.remote_access_session.device.form_factor #=> String, one of "PHONE", "TABLET"
1882
+ # resp.remote_access_session.device.platform #=> String, one of "ANDROID", "IOS"
1883
+ # resp.remote_access_session.device.os #=> String
1884
+ # resp.remote_access_session.device.cpu.frequency #=> String
1885
+ # resp.remote_access_session.device.cpu.architecture #=> String
1886
+ # resp.remote_access_session.device.cpu.clock #=> Float
1887
+ # resp.remote_access_session.device.resolution.width #=> Integer
1888
+ # resp.remote_access_session.device.resolution.height #=> Integer
1889
+ # resp.remote_access_session.device.heap_size #=> Integer
1890
+ # resp.remote_access_session.device.memory #=> Integer
1891
+ # resp.remote_access_session.device.image #=> String
1892
+ # resp.remote_access_session.device.carrier #=> String
1893
+ # resp.remote_access_session.device.radio #=> String
1894
+ # resp.remote_access_session.device.remote_access_enabled #=> Boolean
1895
+ # resp.remote_access_session.device.fleet_type #=> String
1896
+ # resp.remote_access_session.device.fleet_name #=> String
1897
+ # resp.remote_access_session.billing_method #=> String, one of "METERED", "UNMETERED"
1898
+ # resp.remote_access_session.device_minutes.total #=> Float
1899
+ # resp.remote_access_session.device_minutes.metered #=> Float
1900
+ # resp.remote_access_session.device_minutes.unmetered #=> Float
1901
+ # resp.remote_access_session.endpoint #=> String
1902
+ # @overload stop_remote_access_session(params = {})
1903
+ # @param [Hash] params ({})
1904
+ def stop_remote_access_session(params = {}, options = {})
1905
+ req = build_request(:stop_remote_access_session, params)
1906
+ req.send_request(options)
1907
+ end
1908
+
1909
+ # Initiates a stop request for the current test run. AWS Device Farm
1910
+ # will immediately stop the run on devices where tests have not started
1911
+ # executing, and you will not be billed for these devices. On devices
1912
+ # where tests have started executing, Setup Suite and Teardown Suite
1913
+ # tests will run to completion before stopping execution on those
1914
+ # devices. You will be billed for Setup, Teardown, and any tests that
1915
+ # were in progress or already completed.
1916
+ # @option params [required, String] :arn
1917
+ # Represents the Amazon Resource Name (ARN) of the Device Farm run you
1918
+ # wish to stop.
1919
+ # @return [Types::StopRunResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1920
+ #
1921
+ # * {Types::StopRunResult#run #run} => Types::Run
1922
+ #
1923
+ # @example Request syntax with placeholder values
1924
+ # resp = client.stop_run({
1925
+ # arn: "AmazonResourceName", # required
1926
+ # })
1927
+ #
1928
+ # @example Response structure
1929
+ # resp.run.arn #=> String
1930
+ # resp.run.name #=> String
1931
+ # resp.run.type #=> String, one of "BUILTIN_FUZZ", "BUILTIN_EXPLORER", "APPIUM_JAVA_JUNIT", "APPIUM_JAVA_TESTNG", "APPIUM_PYTHON", "APPIUM_WEB_JAVA_JUNIT", "APPIUM_WEB_JAVA_TESTNG", "APPIUM_WEB_PYTHON", "CALABASH", "INSTRUMENTATION", "UIAUTOMATION", "UIAUTOMATOR", "XCTEST", "XCTEST_UI"
1932
+ # resp.run.platform #=> String, one of "ANDROID", "IOS"
1933
+ # resp.run.created #=> Time
1934
+ # resp.run.status #=> String, one of "PENDING", "PENDING_CONCURRENCY", "PENDING_DEVICE", "PROCESSING", "SCHEDULING", "PREPARING", "RUNNING", "COMPLETED", "STOPPING"
1935
+ # resp.run.result #=> String, one of "PENDING", "PASSED", "WARNED", "FAILED", "SKIPPED", "ERRORED", "STOPPED"
1936
+ # resp.run.started #=> Time
1937
+ # resp.run.stopped #=> Time
1938
+ # resp.run.counters.total #=> Integer
1939
+ # resp.run.counters.passed #=> Integer
1940
+ # resp.run.counters.failed #=> Integer
1941
+ # resp.run.counters.warned #=> Integer
1942
+ # resp.run.counters.errored #=> Integer
1943
+ # resp.run.counters.stopped #=> Integer
1944
+ # resp.run.counters.skipped #=> Integer
1945
+ # resp.run.message #=> String
1946
+ # resp.run.total_jobs #=> Integer
1947
+ # resp.run.completed_jobs #=> Integer
1948
+ # resp.run.billing_method #=> String, one of "METERED", "UNMETERED"
1949
+ # resp.run.device_minutes.total #=> Float
1950
+ # resp.run.device_minutes.metered #=> Float
1951
+ # resp.run.device_minutes.unmetered #=> Float
1952
+ # @overload stop_run(params = {})
1953
+ # @param [Hash] params ({})
1954
+ def stop_run(params = {}, options = {})
1955
+ req = build_request(:stop_run, params)
1956
+ req.send_request(options)
1957
+ end
1958
+
1959
+ # Modifies the name, description, and rules in a device pool given the
1960
+ # attributes and the pool ARN. Rule updates are all-or-nothing, meaning
1961
+ # they can only be updated as a whole (or not at all).
1962
+ # @option params [required, String] :arn
1963
+ # The Amazon Resourc Name (ARN) of the Device Farm device pool you wish
1964
+ # to update.
1965
+ # @option params [String] :name
1966
+ # A string representing the name of the device pool you wish to update.
1967
+ # @option params [String] :description
1968
+ # A description of the device pool you wish to update.
1969
+ # @option params [Array<Types::Rule>] :rules
1970
+ # Represents the rules you wish to modify for the device pool. Updating
1971
+ # rules is optional; however, if you choose to update rules for your
1972
+ # request, the update will replace the existing rules.
1973
+ # @return [Types::UpdateDevicePoolResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1974
+ #
1975
+ # * {Types::UpdateDevicePoolResult#device_pool #devicePool} => Types::DevicePool
1976
+ #
1977
+ # @example Request syntax with placeholder values
1978
+ # resp = client.update_device_pool({
1979
+ # arn: "AmazonResourceName", # required
1980
+ # name: "Name",
1981
+ # description: "Message",
1982
+ # rules: [
1983
+ # {
1984
+ # attribute: "ARN", # accepts ARN, PLATFORM, FORM_FACTOR, MANUFACTURER, REMOTE_ACCESS_ENABLED
1985
+ # operator: "EQUALS", # accepts EQUALS, LESS_THAN, GREATER_THAN, IN, NOT_IN
1986
+ # value: "String",
1987
+ # },
1988
+ # ],
1989
+ # })
1990
+ #
1991
+ # @example Response structure
1992
+ # resp.device_pool.arn #=> String
1993
+ # resp.device_pool.name #=> String
1994
+ # resp.device_pool.description #=> String
1995
+ # resp.device_pool.type #=> String, one of "CURATED", "PRIVATE"
1996
+ # resp.device_pool.rules #=> Array
1997
+ # resp.device_pool.rules[0].attribute #=> String, one of "ARN", "PLATFORM", "FORM_FACTOR", "MANUFACTURER", "REMOTE_ACCESS_ENABLED"
1998
+ # resp.device_pool.rules[0].operator #=> String, one of "EQUALS", "LESS_THAN", "GREATER_THAN", "IN", "NOT_IN"
1999
+ # resp.device_pool.rules[0].value #=> String
2000
+ # @overload update_device_pool(params = {})
2001
+ # @param [Hash] params ({})
2002
+ def update_device_pool(params = {}, options = {})
2003
+ req = build_request(:update_device_pool, params)
2004
+ req.send_request(options)
2005
+ end
2006
+
2007
+ # Modifies the specified project name, given the project ARN and a new
2008
+ # name.
2009
+ # @option params [required, String] :arn
2010
+ # The Amazon Resource Name (ARN) of the project whose name you wish to
2011
+ # update.
2012
+ # @option params [String] :name
2013
+ # A string representing the new name of the project that you are
2014
+ # updating.
2015
+ # @return [Types::UpdateProjectResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2016
+ #
2017
+ # * {Types::UpdateProjectResult#project #project} => Types::Project
2018
+ #
2019
+ # @example Request syntax with placeholder values
2020
+ # resp = client.update_project({
2021
+ # arn: "AmazonResourceName", # required
2022
+ # name: "Name",
2023
+ # })
2024
+ #
2025
+ # @example Response structure
2026
+ # resp.project.arn #=> String
2027
+ # resp.project.name #=> String
2028
+ # resp.project.created #=> Time
2029
+ # @overload update_project(params = {})
2030
+ # @param [Hash] params ({})
2031
+ def update_project(params = {}, options = {})
2032
+ req = build_request(:update_project, params)
2033
+ req.send_request(options)
2034
+ end
2035
+
2036
+ # @!endgroup
2037
+
2038
+ # @param params ({})
2039
+ # @api private
2040
+ def build_request(operation_name, params = {})
2041
+ handlers = @handlers.for(operation_name)
2042
+ context = Seahorse::Client::RequestContext.new(
2043
+ operation_name: operation_name,
2044
+ operation: config.api.operation(operation_name),
2045
+ client: self,
2046
+ params: params,
2047
+ config: config)
2048
+ context[:gem_name] = 'aws-sdk-devicefarm'
2049
+ context[:gem_version] = '1.0.0.rc1'
2050
+ Seahorse::Client::Request.new(handlers, context)
2051
+ end
2052
+
2053
+ # @api private
2054
+ # @deprecated
2055
+ def waiter_names
2056
+ []
2057
+ end
2058
+
2059
+ class << self
2060
+
2061
+ # @api private
2062
+ attr_reader :identifier
2063
+
2064
+ # @api private
2065
+ def errors_module
2066
+ Errors
2067
+ end
2068
+
2069
+ end
2070
+ end
2071
+ end
2072
+ end