openapi: 3.0.0 info: version: 2015-06-23 x-release: v4 title: 'AWS Device Farm #X Amz Target=DeviceFarm 20150623.CreateDevicePool #X Amz Target=DeviceFarm 20150623.CreateDevicePool #X Amz Target=DeviceFarm 20150623.ScheduleRun API' description:
Welcome to the AWS Device Farm API documentation, which contains APIs for:
Testing on desktop browsers
Device Farm makes it possible for you to test your web applications on desktop browsers using Selenium. The APIs for desktop browser testing contain TestGrid in their names. For more information, see Testing Web Applications on Selenium with Device Farm.
Testing on real mobile devices
Device Farm makes it possible for you to test apps on physical phones, tablets, and other devices in the cloud. For more information, see the Device Farm Developer Guide.
Represents a latitude and longitude pair, expressed in geographic coordinate system degrees (for example, 47.6204, -122.3491).
Elevation is currently not supported.
Boolean: type: boolean AmazonResourceNames: type: array items: $ref: '#/components/schemas/AmazonResourceName' ScheduleRunResult: type: object example: run: {} properties: run: allOf: - $ref: '#/components/schemas/Run' - description: Information about the scheduled run. description: Represents the result of a schedule run request. DeviceFilters: type: array items: $ref: '#/components/schemas/DeviceFilter' DeviceFilterAttribute: type: string enum: - ARN - PLATFORM - OS_VERSION - MODEL - AVAILABILITY - FORM_FACTOR - MANUFACTURER - REMOTE_ACCESS_ENABLED - REMOTE_DEBUG_ENABLED - INSTANCE_ARN - INSTANCE_LABELS - FLEET_TYPE ScheduleRunTest: type: object required: - type properties: type: allOf: - $ref: '#/components/schemas/TestType' - description:The test's type.
Must be one of the following values:
BUILTIN_FUZZ
BUILTIN_EXPLORER. For Android, an app explorer that traverses an Android app, interacting with it and capturing screenshots at the same time.
APPIUM_JAVA_JUNIT
APPIUM_JAVA_TESTNG
APPIUM_PYTHON
APPIUM_NODE
APPIUM_RUBY
APPIUM_WEB_JAVA_JUNIT
APPIUM_WEB_JAVA_TESTNG
APPIUM_WEB_PYTHON
APPIUM_WEB_NODE
APPIUM_WEB_RUBY
CALABASH
INSTRUMENTATION
UIAUTOMATION
UIAUTOMATOR
XCTEST
XCTEST_UI
The test''s parameters, such as test framework parameters and fixture settings. Parameters are represented by name-value pairs of strings.
For all tests:
app_performance_monitoring: Performance monitoring is enabled by default. Set this parameter to false to disable it.
For Calabash tests:
profile: A cucumber profile (for example, my_profile_name).
tags: You can limit execution to features or scenarios that have (or don''t have) certain tags (for example, @smoke or @smoke,~@wip).
For Appium tests (all types):
appium_version: The Appium version. Currently supported values are 1.6.5 (and later), latest, and default.
latest runs the latest Appium version supported by Device Farm (1.9.1).
For default, Device Farm selects a compatible version of Appium for the device. The current behavior is to run 1.7.2 on Android devices and iOS 9 and earlier and 1.7.2 for iOS 10 and later.
This behavior is subject to change.
For fuzz tests (Android only):
event_count: The number of events, between 1 and 10000, that the UI fuzz test should perform.
throttle: The time, in ms, between 0 and 1000, that the UI fuzz test should wait between events.
seed: A seed to use for randomizing the UI fuzz test. Using the same seed value between tests ensures identical event sequences.
For Explorer tests:
username: A user name to use if the Explorer encounters a login form. If not supplied, no user name is inserted.
password: A password to use if the Explorer encounters a login form. If not supplied, no password is inserted.
For Instrumentation:
filter: A test filter string. Examples:
Running a single test case: com.android.abc.Test1
Running a single test: com.android.abc.Test1#smoke
Running multiple tests: com.android.abc.Test1,com.android.abc.Test2
For XCTest and XCTestUI:
filter: A test filter string. Examples:
Running a single test class: LoginTests
Running a multiple test classes: LoginTests,SmokeTests
Running a single test: LoginTests/testValid
Running multiple tests: LoginTests/testValid,LoginTests/testInvalid
For UIAutomator:
filter: A test filter string. Examples:
Running a single test case: com.android.abc.Test1
Running a single test: com.android.abc.Test1#smoke
Running multiple tests: com.android.abc.Test1,com.android.abc.Test2
A JSON object that specifies the paths where the artifacts generated by the customer's tests, on the device or in the test environment, are pulled from.
Specify deviceHostPaths and optionally specify either iosPaths or androidPaths.
For web app tests, you can specify both iosPaths and androidPaths.
The aspect of a device such as platform or model used as the selection criteria in a device filter.
The supported operators for each attribute are provided in the following list.
The Amazon Resource Name (ARN) of the device (for example, arn:aws:devicefarm:us-west-2::device:12345Example).
Supported operators: EQUALS, IN, NOT_IN
The device platform. Valid values are ANDROID or IOS.
Supported operators: EQUALS
The operating system version (for example, 10.3.2).
Supported operators: EQUALS, GREATER_THAN, GREATER_THAN_OR_EQUALS, IN, LESS_THAN, LESS_THAN_OR_EQUALS, NOT_IN
The device model (for example, iPad 5th Gen).
Supported operators: CONTAINS, EQUALS, IN, NOT_IN
The current availability of the device. Valid values are AVAILABLE, HIGHLY_AVAILABLE, BUSY, or TEMPORARY_NOT_AVAILABLE.
Supported operators: EQUALS
The device form factor. Valid values are PHONE or TABLET.
Supported operators: EQUALS
The device manufacturer (for example, Apple).
Supported operators: EQUALS, IN, NOT_IN
Whether the device is enabled for remote access. Valid values are TRUE or FALSE.
Supported operators: EQUALS
Whether the device is enabled for remote debugging. Valid values are TRUE or FALSE.
Supported operators: EQUALS
Because remote debugging is no longer supported, this filter is ignored.
The Amazon Resource Name (ARN) of the device instance.
Supported operators: EQUALS, IN, NOT_IN
The label of the device instance.
Supported operators: CONTAINS
The fleet type. Valid values are PUBLIC or PRIVATE.
Supported operators: EQUALS
An array of one or more filter values used in a device filter.
Operator Values
The IN and NOT_IN operators can take a values array that has more than one element.
The other operators require an array with a single element.
Attribute Values
The PLATFORM attribute can be set to ANDROID or IOS.
The AVAILABILITY attribute can be set to AVAILABLE, HIGHLY_AVAILABLE, BUSY, or TEMPORARY_NOT_AVAILABLE.
The FORM_FACTOR attribute can be set to PHONE or TABLET.
The FLEET_TYPE attribute can be set to PUBLIC or PRIVATE.
Represents a device filter used to select a set of devices to be included in a test run. This data structure is passed in as the deviceSelectionConfiguration parameter to ScheduleRun. For an example of the JSON request syntax, see ScheduleRun.
It is also passed in as the filters parameter to ListDevices. For an example of the JSON request syntax, see ListDevices.
The filter criteria used to dynamically select a set of devices for a test run and the maximum number of devices to be included in the run.
Either devicePoolArn or deviceSelectionConfiguration is required in a request.
CustomerArtifactPaths object for the scheduled run configuration.
radios:
allOf:
- $ref: '#/components/schemas/Radios'
- description: Information about the radio states for the run.
auxiliaryApps:
allOf:
- $ref: '#/components/schemas/AmazonResourceNames'
- description: A list of upload ARNs for app packages to be installed with your app.
billingMethod:
allOf:
- $ref: '#/components/schemas/BillingMethod'
- description: 'Specifies the billing method for a test run: metered or unmetered. If the parameter is not specified, the default value is metered.
If you have purchased unmetered device slots, you must set this parameter to unmetered to make use of them. Otherwise, your run counts against your metered time.
The run's type.
Must be one of the following values:
BUILTIN_FUZZ
BUILTIN_EXPLORER
For Android, an app explorer that traverses an Android app, interacting with it and capturing screenshots at the same time.
APPIUM_JAVA_JUNIT
APPIUM_JAVA_TESTNG
APPIUM_PYTHON
APPIUM_NODE
APPIUM_RUBY
APPIUM_WEB_JAVA_JUNIT
APPIUM_WEB_JAVA_TESTNG
APPIUM_WEB_PYTHON
APPIUM_WEB_NODE
APPIUM_WEB_RUBY
CALABASH
INSTRUMENTATION
UIAUTOMATION
UIAUTOMATOR
XCTEST
XCTEST_UI
The run's platform.
Allowed values include:
ANDROID
IOS
The run's status.
Allowed values include:
PENDING
PENDING_CONCURRENCY
PENDING_DEVICE
PROCESSING
SCHEDULING
PREPARING
RUNNING
COMPLETED
STOPPING
The run's result.
Allowed values include:
PENDING
PASSED
WARNED
FAILED
SKIPPED
ERRORED
STOPPED
Specifies the billing method for a test run: metered or unmetered. If the parameter is not specified, the default value is metered.
If you have unmetered device slots, you must set this to unmetered to use them. Otherwise, the run is counted toward metered device minutes.
result is SKIPPED. PARSING_FAILED if the result is skipped because of test package parsing failure.
seed:
allOf:
- $ref: '#/components/schemas/Integer'
- description: For fuzz tests, this is a seed to use for randomizing the UI fuzz test. Using the same seed value between tests ensures identical event sequences.
appUpload:
allOf:
- $ref: '#/components/schemas/AmazonResourceName'
- description: An app to upload or that has been uploaded.
eventCount:
allOf:
- $ref: '#/components/schemas/Integer'
- description: For fuzz tests, this is the number of events, between 1 and 10000, that the UI fuzz test should perform.
jobTimeoutMinutes:
allOf:
- $ref: '#/components/schemas/JobTimeoutMinutes'
- description: The number of minutes the job executes before it times out.
devicePoolArn:
allOf:
- $ref: '#/components/schemas/AmazonResourceName'
- description: The ARN of the device pool for the run.
locale:
allOf:
- $ref: '#/components/schemas/String'
- description: Information about the locale that is used for the run.
radios:
allOf:
- $ref: '#/components/schemas/Radios'
- description: Information about the radio states for the run.
location:
allOf:
- $ref: '#/components/schemas/Location'
- description: Information about the location that is used for the run.
customerArtifactPaths:
allOf:
- $ref: '#/components/schemas/CustomerArtifactPaths'
- description: Output CustomerArtifactPaths object for the test run.
webUrl:
allOf:
- $ref: '#/components/schemas/String'
- description: The Device Farm console URL for the recording of the run.
skipAppResign:
allOf:
- $ref: '#/components/schemas/SkipAppResign'
- description: When set to true, for private devices, Device Farm does not sign your app again. For public devices, Device Farm always signs your apps again.
For more information about how Device Farm re-signs your apps, see Do you modify my app? in the AWS Device Farm FAQs.
testSpecArn: allOf: - $ref: '#/components/schemas/AmazonResourceName' - description: The ARN of the YAML-formatted test specification for the run. deviceSelectionResult: allOf: - $ref: '#/components/schemas/DeviceSelectionResult' - description: The results of a device filter used to select the devices for a test run. vpcConfig: allOf: - $ref: '#/components/schemas/VpcConfig' - description: The VPC security groups and subnets that are attached to a project. description: Represents a test run on a set of devices with a given app package, test parameters, and so on. SecurityGroupId: type: string pattern: ^sg-[0-9a-fA-F]{8,}$ minLength: 1 maxLength: 4096 TestType: type: string enum: - BUILTIN_FUZZ - BUILTIN_EXPLORER - WEB_PERFORMANCE_PROFILE - APPIUM_JAVA_JUNIT - APPIUM_JAVA_TESTNG - APPIUM_PYTHON - APPIUM_NODE - APPIUM_RUBY - APPIUM_WEB_JAVA_JUNIT - APPIUM_WEB_JAVA_TESTNG - APPIUM_WEB_PYTHON - APPIUM_WEB_NODE - APPIUM_WEB_RUBY - CALABASH - INSTRUMENTATION - UIAUTOMATION - UIAUTOMATOR - XCTEST - XCTEST_UI - REMOTE_ACCESS_RECORD - REMOTE_ACCESS_REPLAY ExecutionStatus: type: string enum: - PENDING - PENDING_CONCURRENCY - PENDING_DEVICE - PROCESSING - SCHEDULING - PREPARING - RUNNING - COMPLETED - STOPPING ServiceAccountException: {} NotFoundException: {} VideoCapture: type: boolean IosPaths: type: array items: $ref: '#/components/schemas/String' AmazonResourceName: type: string pattern: ^arn:.+ minLength: 32 maxLength: 1011 DeviceSelectionConfiguration: type: object required: - filters - maxDevices properties: filters: allOf: - $ref: '#/components/schemas/DeviceFilters' - description: 'Used to dynamically select a set of devices for a test run. A filter is made up of an attribute, an operator, and one or more values.
Attribute
The aspect of a device such as platform or model used as the selection criteria in a device filter.
Allowed values include:
ARN: The Amazon Resource Name (ARN) of the device (for example, arn:aws:devicefarm:us-west-2::device:12345Example).
PLATFORM: The device platform. Valid values are ANDROID or IOS.
OS_VERSION: The operating system version (for example, 10.3.2).
MODEL: The device model (for example, iPad 5th Gen).
AVAILABILITY: The current availability of the device. Valid values are AVAILABLE, HIGHLY_AVAILABLE, BUSY, or TEMPORARY_NOT_AVAILABLE.
FORM_FACTOR: The device form factor. Valid values are PHONE or TABLET.
MANUFACTURER: The device manufacturer (for example, Apple).
REMOTE_ACCESS_ENABLED: Whether the device is enabled for remote access. Valid values are TRUE or FALSE.
REMOTE_DEBUG_ENABLED: Whether the device is enabled for remote debugging. Valid values are TRUE or FALSE. Because remote debugging is no longer supported, this filter is ignored.
INSTANCE_ARN: The Amazon Resource Name (ARN) of the device instance.
INSTANCE_LABELS: The label of the device instance.
FLEET_TYPE: The fleet type. Valid values are PUBLIC or PRIVATE.
Operator
The filter operator.
The EQUALS operator is available for every attribute except INSTANCE_LABELS.
The CONTAINS operator is available for the INSTANCE_LABELS and MODEL attributes.
The IN and NOT_IN operators are available for the ARN, OS_VERSION, MODEL, MANUFACTURER, and INSTANCE_ARN attributes.
The LESS_THAN, GREATER_THAN, LESS_THAN_OR_EQUALS, and GREATER_THAN_OR_EQUALS operators are also available for the OS_VERSION attribute.
Values
An array of one or more filter values.
Operator Values
The IN and NOT_IN operators can take a values array that has more than one element.
The other operators require an array with a single element.
Attribute Values
The PLATFORM attribute can be set to ANDROID or IOS.
The AVAILABILITY attribute can be set to AVAILABLE, HIGHLY_AVAILABLE, BUSY, or TEMPORARY_NOT_AVAILABLE.
The FORM_FACTOR attribute can be set to PHONE or TABLET.
The FLEET_TYPE attribute can be set to PUBLIC or PRIVATE.
deviceSelectionConfiguration request parameter in ScheduleRun.
Double:
type: number
format: double
Radios:
type: object
properties:
wifi:
allOf:
- $ref: '#/components/schemas/Boolean'
- description: True if Wi-Fi is enabled at the beginning of the test. Otherwise, false.
bluetooth:
allOf:
- $ref: '#/components/schemas/Boolean'
- description: True if Bluetooth is enabled at the beginning of the test. Otherwise, false.
nfc:
allOf:
- $ref: '#/components/schemas/Boolean'
- description: True if NFC is enabled at the beginning of the test. Otherwise, false.
gps:
allOf:
- $ref: '#/components/schemas/Boolean'
- description: True if GPS is enabled at the beginning of the test. Otherwise, false.
description: Represents the set of radios and their states on a device. Examples of radios include Wi-Fi, GPS, Bluetooth, and NFC.
AccountsCleanup:
type: boolean
JobTimeoutMinutes:
type: integer
DeviceSelectionResult:
type: object
properties:
filters:
allOf:
- $ref: '#/components/schemas/DeviceFilters'
- description: The filters in a device selection result.
matchedDevicesCount:
allOf:
- $ref: '#/components/schemas/Integer'
- description: The number of devices that matched the device filter selection criteria.
maxDevices:
allOf:
- $ref: '#/components/schemas/Integer'
- description: The maximum number of devices to be selected by a device filter and included in a test run.
description: Contains the run results requested by the device selection configuration and how many devices were returned. For an example of the JSON response syntax, see ScheduleRun.
Name:
type: string
minLength: 0
maxLength: 256
BillingMethod:
type: string
enum:
- METERED
- UNMETERED
AppPackagesCleanup:
type: boolean
RuleOperator:
type: string
enum:
- EQUALS
- LESS_THAN
- LESS_THAN_OR_EQUALS
- GREATER_THAN
- GREATER_THAN_OR_EQUALS
- IN
- NOT_IN
- CONTAINS
ExecutionConfiguration:
type: object
properties:
jobTimeoutMinutes:
allOf:
- $ref: '#/components/schemas/JobTimeoutMinutes'
- description: The number of minutes a test run executes before it times out.
accountsCleanup:
allOf:
- $ref: '#/components/schemas/AccountsCleanup'
- description: True if account cleanup is enabled at the beginning of the test. Otherwise, false.
appPackagesCleanup:
allOf:
- $ref: '#/components/schemas/AppPackagesCleanup'
- description: True if app package cleanup is enabled at the beginning of the test. Otherwise, false.
videoCapture:
allOf:
- $ref: '#/components/schemas/VideoCapture'
- description: Set to true to enable video capture. Otherwise, set to false. The default is true.
skipAppResign:
allOf:
- $ref: '#/components/schemas/SkipAppResign'
- description: When set to true, for private devices, Device Farm does not sign your app again. For public devices, Device Farm always signs your apps again.
For more information about how Device Farm re-signs your apps, see Do you modify my app? in the AWS Device Farm FAQs.
description: Represents configuration information about a test run, such as the execution timeout (in minutes). ArgumentException: {} TestParameters: type: object additionalProperties: $ref: '#/components/schemas/String' SkipAppResign: type: boolean NetworkProfileType: type: string enum: - CURATED - PRIVATE parameters: X-Amz-Credential: name: X-Amz-Credential in: header schema: type: string required: false X-Amz-Algorithm: name: X-Amz-Algorithm in: header schema: type: string required: false X-Amz-Content-Sha256: name: X-Amz-Content-Sha256 in: header schema: type: string required: false X-Amz-Security-Token: name: X-Amz-Security-Token in: header schema: type: string required: false X-Amz-SignedHeaders: name: X-Amz-SignedHeaders in: header schema: type: string required: false X-Amz-Date: name: X-Amz-Date in: header schema: type: string required: false X-Amz-Signature: name: X-Amz-Signature in: header schema: type: string required: false securitySchemes: hmac: type: apiKey name: Authorization in: header description: Amazon Signature authorization v4 x-amazon-apigateway-authtype: awsSigv4 externalDocs: description: Amazon Web Services documentation url: https://docs.aws.amazon.com/devicefarm/ x-hasEquivalentPaths: true