AWS Device Farm

2025/05/05 - AWS Device Farm - 1 updated api methods

Changes  Add an optional parameter to the GetDevicePoolCompatibility API to pass in project information to check device pool compatibility.

GetDevicePoolCompatibility (updated) Link ΒΆ
Changes (request)
{'projectArn': 'string'}

Gets information about compatibility with a device pool.

See also: AWS API Documentation

Request Syntax

client.get_device_pool_compatibility(
    devicePoolArn='string',
    appArn='string',
    testType='BUILTIN_FUZZ'|'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'|'INSTRUMENTATION'|'XCTEST'|'XCTEST_UI',
    test={
        'type': 'BUILTIN_FUZZ'|'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'|'INSTRUMENTATION'|'XCTEST'|'XCTEST_UI',
        'testPackageArn': 'string',
        'testSpecArn': 'string',
        'filter': 'string',
        'parameters': {
            'string': 'string'
        }
    },
    configuration={
        'extraDataPackageArn': 'string',
        'networkProfileArn': 'string',
        'locale': 'string',
        'location': {
            'latitude': 123.0,
            'longitude': 123.0
        },
        'vpceConfigurationArns': [
            'string',
        ],
        'deviceProxy': {
            'host': 'string',
            'port': 123
        },
        'customerArtifactPaths': {
            'iosPaths': [
                'string',
            ],
            'androidPaths': [
                'string',
            ],
            'deviceHostPaths': [
                'string',
            ]
        },
        'radios': {
            'wifi': True|False,
            'bluetooth': True|False,
            'nfc': True|False,
            'gps': True|False
        },
        'auxiliaryApps': [
            'string',
        ],
        'billingMethod': 'METERED'|'UNMETERED'
    },
    projectArn='string'
)
type devicePoolArn:

string

param devicePoolArn:

[REQUIRED]

The device pool's ARN.

type appArn:

string

param appArn:

The ARN of the app that is associated with the specified device pool.

type testType:

string

param testType:

The test type for the specified device pool.

Allowed values include the following:

  • BUILTIN_FUZZ.

  • 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.

  • INSTRUMENTATION.

  • XCTEST.

  • XCTEST_UI.

type test:

dict

param test:

Information about the uploaded test to be run against the device pool.

  • type (string) -- [REQUIRED]

    The test's type.

    Must be one of the following values:

    • BUILTIN_FUZZ

    • 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

    • INSTRUMENTATION

    • XCTEST

    • XCTEST_UI

  • testPackageArn (string) --

    The ARN of the uploaded test to be run.

  • testSpecArn (string) --

    The ARN of the YAML-formatted test specification.

  • filter (string) --

    The test's filter.

  • parameters (dict) --

    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 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 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

    • (string) --

      • (string) --

type configuration:

dict

param configuration:

An object that contains information about the settings for a run.

  • extraDataPackageArn (string) --

    The ARN of the extra data for the run. The extra data is a .zip file that AWS Device Farm extracts to external data for Android or the app's sandbox for iOS.

  • networkProfileArn (string) --

    Reserved for internal use.

  • locale (string) --

    Information about the locale that is used for the run.

  • location (dict) --

    Information about the location that is used for the run.

    • latitude (float) -- [REQUIRED]

      The latitude.

    • longitude (float) -- [REQUIRED]

      The longitude.

  • vpceConfigurationArns (list) --

    An array of ARNs for your VPC endpoint configurations.

    • (string) --

  • deviceProxy (dict) --

    The device proxy to be configured on the device for the run.

    • host (string) -- [REQUIRED]

      Hostname or IPv4 address of the proxy.

    • port (integer) -- [REQUIRED]

      The port number on which the http/s proxy is listening.

  • customerArtifactPaths (dict) --

    Input CustomerArtifactPaths object for the scheduled run configuration.

    • iosPaths (list) --

      Comma-separated list of paths on the iOS device where the artifacts generated by the customer's tests are pulled from.

      • (string) --

    • androidPaths (list) --

      Comma-separated list of paths on the Android device where the artifacts generated by the customer's tests are pulled from.

      • (string) --

    • deviceHostPaths (list) --

      Comma-separated list of paths in the test execution environment where the artifacts generated by the customer's tests are pulled from.

      • (string) --

  • radios (dict) --

    Information about the radio states for the run.

    • wifi (boolean) --

      True if Wi-Fi is enabled at the beginning of the test. Otherwise, false.

    • bluetooth (boolean) --

      True if Bluetooth is enabled at the beginning of the test. Otherwise, false.

    • nfc (boolean) --

      True if NFC is enabled at the beginning of the test. Otherwise, false.

    • gps (boolean) --

      True if GPS is enabled at the beginning of the test. Otherwise, false.

  • auxiliaryApps (list) --

    A list of upload ARNs for app packages to be installed with your app.

    • (string) --

  • billingMethod (string) --

    Specifies the billing method for a test run: metered or unmetered. If the parameter is not specified, the default value is metered.

type projectArn:

string

param projectArn:

The ARN of the project for which you want to check device pool compatibility.

rtype:

dict

returns:

Response Syntax

{
    'compatibleDevices': [
        {
            'device': {
                'arn': 'string',
                'name': 'string',
                'manufacturer': 'string',
                'model': 'string',
                'modelId': 'string',
                'formFactor': 'PHONE'|'TABLET',
                'platform': 'ANDROID'|'IOS',
                'os': 'string',
                'cpu': {
                    'frequency': 'string',
                    'architecture': 'string',
                    'clock': 123.0
                },
                'resolution': {
                    'width': 123,
                    'height': 123
                },
                'heapSize': 123,
                'memory': 123,
                'image': 'string',
                'carrier': 'string',
                'radio': 'string',
                'remoteAccessEnabled': True|False,
                'remoteDebugEnabled': True|False,
                'fleetType': 'string',
                'fleetName': 'string',
                'instances': [
                    {
                        'arn': 'string',
                        'deviceArn': 'string',
                        'labels': [
                            'string',
                        ],
                        'status': 'IN_USE'|'PREPARING'|'AVAILABLE'|'NOT_AVAILABLE',
                        'udid': 'string',
                        'instanceProfile': {
                            'arn': 'string',
                            'packageCleanup': True|False,
                            'excludeAppPackagesFromCleanup': [
                                'string',
                            ],
                            'rebootAfterUse': True|False,
                            'name': 'string',
                            'description': 'string'
                        }
                    },
                ],
                'availability': 'TEMPORARY_NOT_AVAILABLE'|'BUSY'|'AVAILABLE'|'HIGHLY_AVAILABLE'
            },
            'compatible': True|False,
            'incompatibilityMessages': [
                {
                    'message': 'string',
                    'type': 'ARN'|'PLATFORM'|'FORM_FACTOR'|'MANUFACTURER'|'REMOTE_ACCESS_ENABLED'|'REMOTE_DEBUG_ENABLED'|'APPIUM_VERSION'|'INSTANCE_ARN'|'INSTANCE_LABELS'|'FLEET_TYPE'|'OS_VERSION'|'MODEL'|'AVAILABILITY'
                },
            ]
        },
    ],
    'incompatibleDevices': [
        {
            'device': {
                'arn': 'string',
                'name': 'string',
                'manufacturer': 'string',
                'model': 'string',
                'modelId': 'string',
                'formFactor': 'PHONE'|'TABLET',
                'platform': 'ANDROID'|'IOS',
                'os': 'string',
                'cpu': {
                    'frequency': 'string',
                    'architecture': 'string',
                    'clock': 123.0
                },
                'resolution': {
                    'width': 123,
                    'height': 123
                },
                'heapSize': 123,
                'memory': 123,
                'image': 'string',
                'carrier': 'string',
                'radio': 'string',
                'remoteAccessEnabled': True|False,
                'remoteDebugEnabled': True|False,
                'fleetType': 'string',
                'fleetName': 'string',
                'instances': [
                    {
                        'arn': 'string',
                        'deviceArn': 'string',
                        'labels': [
                            'string',
                        ],
                        'status': 'IN_USE'|'PREPARING'|'AVAILABLE'|'NOT_AVAILABLE',
                        'udid': 'string',
                        'instanceProfile': {
                            'arn': 'string',
                            'packageCleanup': True|False,
                            'excludeAppPackagesFromCleanup': [
                                'string',
                            ],
                            'rebootAfterUse': True|False,
                            'name': 'string',
                            'description': 'string'
                        }
                    },
                ],
                'availability': 'TEMPORARY_NOT_AVAILABLE'|'BUSY'|'AVAILABLE'|'HIGHLY_AVAILABLE'
            },
            'compatible': True|False,
            'incompatibilityMessages': [
                {
                    'message': 'string',
                    'type': 'ARN'|'PLATFORM'|'FORM_FACTOR'|'MANUFACTURER'|'REMOTE_ACCESS_ENABLED'|'REMOTE_DEBUG_ENABLED'|'APPIUM_VERSION'|'INSTANCE_ARN'|'INSTANCE_LABELS'|'FLEET_TYPE'|'OS_VERSION'|'MODEL'|'AVAILABILITY'
                },
            ]
        },
    ]
}

Response Structure

  • (dict) --

    Represents the result of describe device pool compatibility request.

    • compatibleDevices (list) --

      Information about compatible devices.

      • (dict) --

        Represents a device pool compatibility result.

        • device (dict) --

          The device (phone or tablet) to return information about.

          • arn (string) --

            The device's ARN.

          • name (string) --

            The device's display name.

          • manufacturer (string) --

            The device's manufacturer name.

          • model (string) --

            The device's model name.

          • modelId (string) --

            The device's model ID.

          • formFactor (string) --

            The device's form factor.

            Allowed values include:

            • PHONE

            • TABLET

          • platform (string) --

            The device's platform.

            Allowed values include:

            • ANDROID

            • IOS

          • os (string) --

            The device's operating system type.

          • cpu (dict) --

            Information about the device's CPU.

            • frequency (string) --

              The CPU's frequency.

            • architecture (string) --

              The CPU's architecture (for example, x86 or ARM).

            • clock (float) --

              The clock speed of the device's CPU, expressed in hertz (Hz). For example, a 1.2 GHz CPU is expressed as 1200000000.

          • resolution (dict) --

            The resolution of the device.

            • width (integer) --

              The screen resolution's width, expressed in pixels.

            • height (integer) --

              The screen resolution's height, expressed in pixels.

          • heapSize (integer) --

            The device's heap size, expressed in bytes.

          • memory (integer) --

            The device's total memory size, expressed in bytes.

          • image (string) --

            The device's image name.

          • carrier (string) --

            The device's carrier.

          • radio (string) --

            The device's radio.

          • remoteAccessEnabled (boolean) --

            Specifies whether remote access has been enabled for the specified device.

          • remoteDebugEnabled (boolean) --

            This flag is set to true if remote debugging is enabled for the device.

            Remote debugging is no longer supported.

          • fleetType (string) --

            The type of fleet to which this device belongs. Possible values are PRIVATE and PUBLIC.

          • fleetName (string) --

            The name of the fleet to which this device belongs.

          • instances (list) --

            The instances that belong to this device.

            • (dict) --

              Represents the device instance.

              • arn (string) --

                The Amazon Resource Name (ARN) of the device instance.

              • deviceArn (string) --

                The ARN of the device.

              • labels (list) --

                An array of strings that describe the device instance.

                • (string) --

              • status (string) --

                The status of the device instance. Valid values are listed here.

              • udid (string) --

                Unique device identifier for the device instance.

              • instanceProfile (dict) --

                A object that contains information about the instance profile.

                • arn (string) --

                  The Amazon Resource Name (ARN) of the instance profile.

                • packageCleanup (boolean) --

                  When set to true, Device Farm removes app packages after a test run. The default value is false for private devices.

                • excludeAppPackagesFromCleanup (list) --

                  An array of strings containing the list of app packages that should not be cleaned up from the device after a test run completes.

                  The list of packages is considered only if you set packageCleanup to true.

                  • (string) --

                • rebootAfterUse (boolean) --

                  When set to true, Device Farm reboots the instance after a test run. The default value is true.

                • name (string) --

                  The name of the instance profile.

                • description (string) --

                  The description of the instance profile.

          • availability (string) --

            Indicates how likely a device is available for a test run. Currently available in the ListDevices and GetDevice API methods.

        • compatible (boolean) --

          Whether the result was compatible with the device pool.

        • incompatibilityMessages (list) --

          Information about the compatibility.

          • (dict) --

            Represents information about incompatibility.

            • message (string) --

              A message about the incompatibility.

            • type (string) --

              The type of incompatibility.

              Allowed values include:

              • ARN

              • FORM_FACTOR (for example, phone or tablet)

              • MANUFACTURER

              • PLATFORM (for example, Android or iOS)

              • REMOTE_ACCESS_ENABLED

              • APPIUM_VERSION

    • incompatibleDevices (list) --

      Information about incompatible devices.

      • (dict) --

        Represents a device pool compatibility result.

        • device (dict) --

          The device (phone or tablet) to return information about.

          • arn (string) --

            The device's ARN.

          • name (string) --

            The device's display name.

          • manufacturer (string) --

            The device's manufacturer name.

          • model (string) --

            The device's model name.

          • modelId (string) --

            The device's model ID.

          • formFactor (string) --

            The device's form factor.

            Allowed values include:

            • PHONE

            • TABLET

          • platform (string) --

            The device's platform.

            Allowed values include:

            • ANDROID

            • IOS

          • os (string) --

            The device's operating system type.

          • cpu (dict) --

            Information about the device's CPU.

            • frequency (string) --

              The CPU's frequency.

            • architecture (string) --

              The CPU's architecture (for example, x86 or ARM).

            • clock (float) --

              The clock speed of the device's CPU, expressed in hertz (Hz). For example, a 1.2 GHz CPU is expressed as 1200000000.

          • resolution (dict) --

            The resolution of the device.

            • width (integer) --

              The screen resolution's width, expressed in pixels.

            • height (integer) --

              The screen resolution's height, expressed in pixels.

          • heapSize (integer) --

            The device's heap size, expressed in bytes.

          • memory (integer) --

            The device's total memory size, expressed in bytes.

          • image (string) --

            The device's image name.

          • carrier (string) --

            The device's carrier.

          • radio (string) --

            The device's radio.

          • remoteAccessEnabled (boolean) --

            Specifies whether remote access has been enabled for the specified device.

          • remoteDebugEnabled (boolean) --

            This flag is set to true if remote debugging is enabled for the device.

            Remote debugging is no longer supported.

          • fleetType (string) --

            The type of fleet to which this device belongs. Possible values are PRIVATE and PUBLIC.

          • fleetName (string) --

            The name of the fleet to which this device belongs.

          • instances (list) --

            The instances that belong to this device.

            • (dict) --

              Represents the device instance.

              • arn (string) --

                The Amazon Resource Name (ARN) of the device instance.

              • deviceArn (string) --

                The ARN of the device.

              • labels (list) --

                An array of strings that describe the device instance.

                • (string) --

              • status (string) --

                The status of the device instance. Valid values are listed here.

              • udid (string) --

                Unique device identifier for the device instance.

              • instanceProfile (dict) --

                A object that contains information about the instance profile.

                • arn (string) --

                  The Amazon Resource Name (ARN) of the instance profile.

                • packageCleanup (boolean) --

                  When set to true, Device Farm removes app packages after a test run. The default value is false for private devices.

                • excludeAppPackagesFromCleanup (list) --

                  An array of strings containing the list of app packages that should not be cleaned up from the device after a test run completes.

                  The list of packages is considered only if you set packageCleanup to true.

                  • (string) --

                • rebootAfterUse (boolean) --

                  When set to true, Device Farm reboots the instance after a test run. The default value is true.

                • name (string) --

                  The name of the instance profile.

                • description (string) --

                  The description of the instance profile.

          • availability (string) --

            Indicates how likely a device is available for a test run. Currently available in the ListDevices and GetDevice API methods.

        • compatible (boolean) --

          Whether the result was compatible with the device pool.

        • incompatibilityMessages (list) --

          Information about the compatibility.

          • (dict) --

            Represents information about incompatibility.

            • message (string) --

              A message about the incompatibility.

            • type (string) --

              The type of incompatibility.

              Allowed values include:

              • ARN

              • FORM_FACTOR (for example, phone or tablet)

              • MANUFACTURER

              • PLATFORM (for example, Android or iOS)

              • REMOTE_ACCESS_ENABLED

              • APPIUM_VERSION