AWS Device Farm

2017/04/20 - AWS Device Farm - 1 new10 updated api methods

Changes  Update devicefarm client to latest version

ListOfferingPromotions (new) Link ¶

Returns a list of offering promotions. Each offering promotion record contains the ID and description of the promotion. The API returns a NotEligible error if the caller is not permitted to invoke the operation. Contact aws-devicefarm-support@amazon.com if you believe that you should be able to invoke this operation.

See also: AWS API Documentation

Request Syntax

client.list_offering_promotions(
    nextToken='string'
)
type nextToken:

string

param nextToken:

An identifier that was returned from the previous call to this operation, which can be used to return the next set of items in the list.

rtype:

dict

returns:

Response Syntax

{
    'offeringPromotions': [
        {
            'id': 'string',
            'description': 'string'
        },
    ],
    'nextToken': 'string'
}

Response Structure

  • (dict) --

    • offeringPromotions (list) --

      Information about the offering promotions.

      • (dict) --

        Represents information about an offering promotion.

        • id (string) --

          The ID of the offering promotion.

        • description (string) --

          A string describing the offering promotion.

    • nextToken (string) --

      An identifier to be used in the next call to this operation, to return the next set of items in the list.

CreateDevicePool (updated) Link ¶
Changes (request, response)
Request
{'rules': {'attribute': {'APPIUM_VERSION'}, 'operator': {'CONTAINS'}}}
Response
{'devicePool': {'rules': {'attribute': {'APPIUM_VERSION'},
                          'operator': {'CONTAINS'}}}}

Creates a device pool.

See also: AWS API Documentation

Request Syntax

client.create_device_pool(
    projectArn='string',
    name='string',
    description='string',
    rules=[
        {
            'attribute': 'ARN'|'PLATFORM'|'FORM_FACTOR'|'MANUFACTURER'|'REMOTE_ACCESS_ENABLED'|'APPIUM_VERSION',
            'operator': 'EQUALS'|'LESS_THAN'|'GREATER_THAN'|'IN'|'NOT_IN'|'CONTAINS',
            'value': 'string'
        },
    ]
)
type projectArn:

string

param projectArn:

[REQUIRED]

The ARN of the project for the device pool.

type name:

string

param name:

[REQUIRED]

The device pool's name.

type description:

string

param description:

The device pool's description.

type rules:

list

param rules:

[REQUIRED]

The device pool's rules.

  • (dict) --

    Represents a condition for a device pool.

    • attribute (string) --

      The rule's stringified attribute. For example, specify the value as "\"abc\"".

      Allowed values include:

      • ARN: The ARN.

      • FORM_FACTOR: The form factor (for example, phone or tablet).

      • MANUFACTURER: The manufacturer.

      • PLATFORM: The platform (for example, Android or iOS).

      • REMOTE_ACCESS_ENABLED: Whether the device is enabled for remote access.

      • APPIUM_VERSION: The Appium version for the test.

    • operator (string) --

      The rule's operator.

      • EQUALS: The equals operator.

      • GREATER_THAN: The greater-than operator.

      • IN: The in operator.

      • LESS_THAN: The less-than operator.

      • NOT_IN: The not-in operator.

      • CONTAINS: The contains operator.

    • value (string) --

      The rule's value.

rtype:

dict

returns:

Response Syntax

{
    'devicePool': {
        'arn': 'string',
        'name': 'string',
        'description': 'string',
        'type': 'CURATED'|'PRIVATE',
        'rules': [
            {
                'attribute': 'ARN'|'PLATFORM'|'FORM_FACTOR'|'MANUFACTURER'|'REMOTE_ACCESS_ENABLED'|'APPIUM_VERSION',
                'operator': 'EQUALS'|'LESS_THAN'|'GREATER_THAN'|'IN'|'NOT_IN'|'CONTAINS',
                'value': 'string'
            },
        ]
    }
}

Response Structure

  • (dict) --

    Represents the result of a create device pool request.

    • devicePool (dict) --

      The newly created device pool.

      • arn (string) --

        The device pool's ARN.

      • name (string) --

        The device pool's name.

      • description (string) --

        The device pool's description.

      • type (string) --

        The device pool's type.

        Allowed values include:

        • CURATED: A device pool that is created and managed by AWS Device Farm.

        • PRIVATE: A device pool that is created and managed by the device pool developer.

      • rules (list) --

        Information about the device pool's rules.

        • (dict) --

          Represents a condition for a device pool.

          • attribute (string) --

            The rule's stringified attribute. For example, specify the value as "\"abc\"".

            Allowed values include:

            • ARN: The ARN.

            • FORM_FACTOR: The form factor (for example, phone or tablet).

            • MANUFACTURER: The manufacturer.

            • PLATFORM: The platform (for example, Android or iOS).

            • REMOTE_ACCESS_ENABLED: Whether the device is enabled for remote access.

            • APPIUM_VERSION: The Appium version for the test.

          • operator (string) --

            The rule's operator.

            • EQUALS: The equals operator.

            • GREATER_THAN: The greater-than operator.

            • IN: The in operator.

            • LESS_THAN: The less-than operator.

            • NOT_IN: The not-in operator.

            • CONTAINS: The contains operator.

          • value (string) --

            The rule's value.

GetAccountSettings (updated) Link ¶
Changes (response)
{'accountSettings': {'maxSlots': {'string': 'integer'},
                     'trialMinutes': {'remaining': 'double',
                                      'total': 'double'}}}

Returns the number of unmetered iOS and/or unmetered Android devices that have been purchased by the account.

See also: AWS API Documentation

Request Syntax

client.get_account_settings()
rtype:

dict

returns:

Response Syntax

{
    'accountSettings': {
        'awsAccountNumber': 'string',
        'unmeteredDevices': {
            'string': 123
        },
        'unmeteredRemoteAccessDevices': {
            'string': 123
        },
        'maxJobTimeoutMinutes': 123,
        'trialMinutes': {
            'total': 123.0,
            'remaining': 123.0
        },
        'maxSlots': {
            'string': 123
        },
        'defaultJobTimeoutMinutes': 123
    }
}

Response Structure

  • (dict) --

    Represents the account settings return values from the GetAccountSettings request.

    • accountSettings (dict) --

      The account settings.

      • awsAccountNumber (string) --

        The AWS account number specified in the AccountSettings container.

      • unmeteredDevices (dict) --

        Returns the unmetered devices you have purchased or want to purchase.

        • (string) --

          • (integer) --

      • unmeteredRemoteAccessDevices (dict) --

        Returns the unmetered remote access devices you have purchased or want to purchase.

        • (string) --

          • (integer) --

      • maxJobTimeoutMinutes (integer) --

        The maximum number of minutes a test run will execute before it times out.

      • trialMinutes (dict) --

        Information about an AWS account's usage of free trial device minutes.

        • total (float) --

          The total number of free trial minutes that the account started with.

        • remaining (float) --

          The number of free trial minutes remaining in the account.

      • maxSlots (dict) --

        The maximum number of device slots that the AWS account can purchase. Each maximum is expressed as an offering-id:number pair, where the offering-id represents one of the IDs returned by the ListOfferings command.

        • (string) --

          • (integer) --

      • defaultJobTimeoutMinutes (integer) --

        The default number of minutes (at the account level) a test run will execute before it times out. Default value is 60 minutes.

GetDevicePool (updated) Link ¶
Changes (response)
{'devicePool': {'rules': {'attribute': {'APPIUM_VERSION'},
                          'operator': {'CONTAINS'}}}}

Gets information about a device pool.

See also: AWS API Documentation

Request Syntax

client.get_device_pool(
    arn='string'
)
type arn:

string

param arn:

[REQUIRED]

The device pool's ARN.

rtype:

dict

returns:

Response Syntax

{
    'devicePool': {
        'arn': 'string',
        'name': 'string',
        'description': 'string',
        'type': 'CURATED'|'PRIVATE',
        'rules': [
            {
                'attribute': 'ARN'|'PLATFORM'|'FORM_FACTOR'|'MANUFACTURER'|'REMOTE_ACCESS_ENABLED'|'APPIUM_VERSION',
                'operator': 'EQUALS'|'LESS_THAN'|'GREATER_THAN'|'IN'|'NOT_IN'|'CONTAINS',
                'value': 'string'
            },
        ]
    }
}

Response Structure

  • (dict) --

    Represents the result of a get device pool request.

    • devicePool (dict) --

      An object containing information about the requested device pool.

      • arn (string) --

        The device pool's ARN.

      • name (string) --

        The device pool's name.

      • description (string) --

        The device pool's description.

      • type (string) --

        The device pool's type.

        Allowed values include:

        • CURATED: A device pool that is created and managed by AWS Device Farm.

        • PRIVATE: A device pool that is created and managed by the device pool developer.

      • rules (list) --

        Information about the device pool's rules.

        • (dict) --

          Represents a condition for a device pool.

          • attribute (string) --

            The rule's stringified attribute. For example, specify the value as "\"abc\"".

            Allowed values include:

            • ARN: The ARN.

            • FORM_FACTOR: The form factor (for example, phone or tablet).

            • MANUFACTURER: The manufacturer.

            • PLATFORM: The platform (for example, Android or iOS).

            • REMOTE_ACCESS_ENABLED: Whether the device is enabled for remote access.

            • APPIUM_VERSION: The Appium version for the test.

          • operator (string) --

            The rule's operator.

            • EQUALS: The equals operator.

            • GREATER_THAN: The greater-than operator.

            • IN: The in operator.

            • LESS_THAN: The less-than operator.

            • NOT_IN: The not-in operator.

            • CONTAINS: The contains operator.

          • value (string) --

            The rule's value.

GetDevicePoolCompatibility (updated) Link ¶
Changes (request, response)
Request
{'test': {'filter': 'string',
          'parameters': {'string': 'string'},
          'testPackageArn': 'string',
          'type': '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'}}
Response
{'compatibleDevices': {'incompatibilityMessages': {'type': {'APPIUM_VERSION'}}},
 'incompatibleDevices': {'incompatibilityMessages': {'type': {'APPIUM_VERSION'}}}}

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'|'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',
    test={
        'type': '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',
        'testPackageArn': 'string',
        'filter': 'string',
        'parameters': {
            'string': '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: The built-in fuzz type.

  • BUILTIN_EXPLORER: For Android, an app explorer that will traverse an Android app, interacting with it and capturing screenshots at the same time.

  • APPIUM_JAVA_JUNIT: The Appium Java JUnit type.

  • APPIUM_JAVA_TESTNG: The Appium Java TestNG type.

  • APPIUM_PYTHON: The Appium Python type.

  • APPIUM_WEB_JAVA_JUNIT: The Appium Java JUnit type for Web apps.

  • APPIUM_WEB_JAVA_TESTNG: The Appium Java TestNG type for Web apps.

  • APPIUM_WEB_PYTHON: The Appium Python type for Web apps.

  • CALABASH: The Calabash type.

  • INSTRUMENTATION: The Instrumentation type.

  • UIAUTOMATION: The uiautomation type.

  • UIAUTOMATOR: The uiautomator type.

  • XCTEST: The XCode test type.

  • XCTEST_UI: The XCode UI test type.

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: The built-in fuzz type.

    • BUILTIN_EXPLORER: For Android, an app explorer that will traverse an Android app, interacting with it and capturing screenshots at the same time.

    • APPIUM_JAVA_JUNIT: The Appium Java JUnit type.

    • APPIUM_JAVA_TESTNG: The Appium Java TestNG type.

    • APPIUM_PYTHON: The Appium Python type.

    • APPIUM_WEB_JAVA_JUNIT: The Appium Java JUnit type for Web apps.

    • APPIUM_WEB_JAVA_TESTNG: The Appium Java TestNG type for Web apps.

    • APPIUM_WEB_PYTHON: The Appium Python type for Web apps.

    • CALABASH: The Calabash type.

    • INSTRUMENTATION: The Instrumentation type.

    • UIAUTOMATION: The uiautomation type.

    • UIAUTOMATOR: The uiautomator type.

    • XCTEST: The XCode test type.

    • XCTEST_UI: The XCode UI test type.

  • testPackageArn (string) --

    The ARN of the uploaded test that will be run.

  • filter (string) --

    The test's filter.

  • parameters (dict) --

    The test's parameters, such as the following test framework parameters and fixture settings:

    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.4.16", "1.6.3", "latest", and "default".

      • “latest” will run the latest Appium version supported by Device Farm (1.6.3).

      • For “default”, Device Farm will choose a compatible version of Appium for the device. The current behavior is to run 1.4.16 on Android devices and iOS 9 and earlier, 1.6.3 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 username to use if the Explorer encounters a login form. If not supplied, no username will be inserted.

    • password: A password to use if the Explorer encounters a login form. If not supplied, no password will be 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"

    • (string) --

      • (string) --

rtype:

dict

returns:

Response Syntax

{
    'compatibleDevices': [
        {
            'device': {
                'arn': 'string',
                'name': 'string',
                'manufacturer': 'string',
                'model': '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,
                'fleetType': 'string',
                'fleetName': 'string'
            },
            'compatible': True|False,
            'incompatibilityMessages': [
                {
                    'message': 'string',
                    'type': 'ARN'|'PLATFORM'|'FORM_FACTOR'|'MANUFACTURER'|'REMOTE_ACCESS_ENABLED'|'APPIUM_VERSION'
                },
            ]
        },
    ],
    'incompatibleDevices': [
        {
            'device': {
                'arn': 'string',
                'name': 'string',
                'manufacturer': 'string',
                'model': '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,
                'fleetType': 'string',
                'fleetName': 'string'
            },
            'compatible': True|False,
            'incompatibilityMessages': [
                {
                    'message': 'string',
                    'type': 'ARN'|'PLATFORM'|'FORM_FACTOR'|'MANUFACTURER'|'REMOTE_ACCESS_ENABLED'|'APPIUM_VERSION'
                },
            ]
        },
    ]
}

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) that you wish 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.

          • formFactor (string) --

            The device's form factor.

            Allowed values include:

            • PHONE: The phone form factor.

            • TABLET: The tablet form factor.

          • platform (string) --

            The device's platform.

            Allowed values include:

            • ANDROID: The Android platform.

            • IOS: The iOS platform.

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

          • fleetType (string) --

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

          • fleetName (string) --

            The name of the fleet to which this device belongs.

        • 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: The ARN.

              • FORM_FACTOR: The form factor (for example, phone or tablet).

              • MANUFACTURER: The manufacturer.

              • PLATFORM: The platform (for example, Android or iOS).

              • REMOTE_ACCESS_ENABLED: Whether the device is enabled for remote access.

              • APPIUM_VERSION: The Appium version for the test.

    • incompatibleDevices (list) --

      Information about incompatible devices.

      • (dict) --

        Represents a device pool compatibility result.

        • device (dict) --

          The device (phone or tablet) that you wish 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.

          • formFactor (string) --

            The device's form factor.

            Allowed values include:

            • PHONE: The phone form factor.

            • TABLET: The tablet form factor.

          • platform (string) --

            The device's platform.

            Allowed values include:

            • ANDROID: The Android platform.

            • IOS: The iOS platform.

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

          • fleetType (string) --

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

          • fleetName (string) --

            The name of the fleet to which this device belongs.

        • 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: The ARN.

              • FORM_FACTOR: The form factor (for example, phone or tablet).

              • MANUFACTURER: The manufacturer.

              • PLATFORM: The platform (for example, Android or iOS).

              • REMOTE_ACCESS_ENABLED: Whether the device is enabled for remote access.

              • APPIUM_VERSION: The Appium version for the test.

ListDevicePools (updated) Link ¶
Changes (response)
{'devicePools': {'rules': {'attribute': {'APPIUM_VERSION'},
                           'operator': {'CONTAINS'}}}}

Gets information about device pools.

See also: AWS API Documentation

Request Syntax

client.list_device_pools(
    arn='string',
    type='CURATED'|'PRIVATE',
    nextToken='string'
)
type arn:

string

param arn:

[REQUIRED]

The project ARN.

type type:

string

param type:

The device pools' type.

Allowed values include:

  • CURATED: A device pool that is created and managed by AWS Device Farm.

  • PRIVATE: A device pool that is created and managed by the device pool developer.

type nextToken:

string

param nextToken:

An identifier that was returned from the previous call to this operation, which can be used to return the next set of items in the list.

rtype:

dict

returns:

Response Syntax

{
    'devicePools': [
        {
            'arn': 'string',
            'name': 'string',
            'description': 'string',
            'type': 'CURATED'|'PRIVATE',
            'rules': [
                {
                    'attribute': 'ARN'|'PLATFORM'|'FORM_FACTOR'|'MANUFACTURER'|'REMOTE_ACCESS_ENABLED'|'APPIUM_VERSION',
                    'operator': 'EQUALS'|'LESS_THAN'|'GREATER_THAN'|'IN'|'NOT_IN'|'CONTAINS',
                    'value': 'string'
                },
            ]
        },
    ],
    'nextToken': 'string'
}

Response Structure

  • (dict) --

    Represents the result of a list device pools request.

    • devicePools (list) --

      Information about the device pools.

      • (dict) --

        Represents a collection of device types.

        • arn (string) --

          The device pool's ARN.

        • name (string) --

          The device pool's name.

        • description (string) --

          The device pool's description.

        • type (string) --

          The device pool's type.

          Allowed values include:

          • CURATED: A device pool that is created and managed by AWS Device Farm.

          • PRIVATE: A device pool that is created and managed by the device pool developer.

        • rules (list) --

          Information about the device pool's rules.

          • (dict) --

            Represents a condition for a device pool.

            • attribute (string) --

              The rule's stringified attribute. For example, specify the value as "\"abc\"".

              Allowed values include:

              • ARN: The ARN.

              • FORM_FACTOR: The form factor (for example, phone or tablet).

              • MANUFACTURER: The manufacturer.

              • PLATFORM: The platform (for example, Android or iOS).

              • REMOTE_ACCESS_ENABLED: Whether the device is enabled for remote access.

              • APPIUM_VERSION: The Appium version for the test.

            • operator (string) --

              The rule's operator.

              • EQUALS: The equals operator.

              • GREATER_THAN: The greater-than operator.

              • IN: The in operator.

              • LESS_THAN: The less-than operator.

              • NOT_IN: The not-in operator.

              • CONTAINS: The contains operator.

            • value (string) --

              The rule's value.

    • nextToken (string) --

      If the number of items that are returned is significantly large, this is an identifier that is also returned, which can be used in a subsequent call to this operation to return the next set of items in the list.

ListOfferingTransactions (updated) Link ¶
Changes (response)
{'offeringTransactions': {'offeringPromotionId': 'string'}}

Returns a list of all historical purchases, renewals, and system renewal transactions for an AWS account. The list is paginated and ordered by a descending timestamp (most recent transactions are first). The API returns a NotEligible error if the user is not permitted to invoke the operation. Please contact aws-devicefarm-support@amazon.com if you believe that you should be able to invoke this operation.

See also: AWS API Documentation

Request Syntax

client.list_offering_transactions(
    nextToken='string'
)
type nextToken:

string

param nextToken:

An identifier that was returned from the previous call to this operation, which can be used to return the next set of items in the list.

rtype:

dict

returns:

Response Syntax

{
    'offeringTransactions': [
        {
            'offeringStatus': {
                'type': 'PURCHASE'|'RENEW'|'SYSTEM',
                'offering': {
                    'id': 'string',
                    'description': 'string',
                    'type': 'RECURRING',
                    'platform': 'ANDROID'|'IOS',
                    'recurringCharges': [
                        {
                            'cost': {
                                'amount': 123.0,
                                'currencyCode': 'USD'
                            },
                            'frequency': 'MONTHLY'
                        },
                    ]
                },
                'quantity': 123,
                'effectiveOn': datetime(2015, 1, 1)
            },
            'transactionId': 'string',
            'offeringPromotionId': 'string',
            'createdOn': datetime(2015, 1, 1),
            'cost': {
                'amount': 123.0,
                'currencyCode': 'USD'
            }
        },
    ],
    'nextToken': 'string'
}

Response Structure

  • (dict) --

    Returns the transaction log of the specified offerings.

    • offeringTransactions (list) --

      The audit log of subscriptions you have purchased and modified through AWS Device Farm.

      • (dict) --

        Represents the metadata of an offering transaction.

        • offeringStatus (dict) --

          The status of an offering transaction.

          • type (string) --

            The type specified for the offering status.

          • offering (dict) --

            Represents the metadata of an offering status.

            • id (string) --

              The ID that corresponds to a device offering.

            • description (string) --

              A string describing the offering.

            • type (string) --

              The type of offering (e.g., "RECURRING") for a device.

            • platform (string) --

              The platform of the device (e.g., ANDROID or IOS).

            • recurringCharges (list) --

              Specifies whether there are recurring charges for the offering.

              • (dict) --

                Specifies whether charges for devices will be recurring.

                • cost (dict) --

                  The cost of the recurring charge.

                  • amount (float) --

                    The numerical amount of an offering or transaction.

                  • currencyCode (string) --

                    The currency code of a monetary amount. For example, USD means "U.S. dollars."

                • frequency (string) --

                  The frequency in which charges will recur.

          • quantity (integer) --

            The number of available devices in the offering.

          • effectiveOn (datetime) --

            The date on which the offering is effective.

        • transactionId (string) --

          The transaction ID of the offering transaction.

        • offeringPromotionId (string) --

          The ID that corresponds to a device offering promotion.

        • createdOn (datetime) --

          The date on which an offering transaction was created.

        • cost (dict) --

          The cost of an offering transaction.

          • amount (float) --

            The numerical amount of an offering or transaction.

          • currencyCode (string) --

            The currency code of a monetary amount. For example, USD means "U.S. dollars."

    • nextToken (string) --

      An identifier that was returned from the previous call to this operation, which can be used to return the next set of items in the list.

PurchaseOffering (updated) Link ¶
Changes (request, response)
Request
{'offeringPromotionId': 'string'}
Response
{'offeringTransaction': {'offeringPromotionId': 'string'}}

Immediately purchases offerings for an AWS account. Offerings renew with the latest total purchased quantity for an offering, unless the renewal was overridden. The API returns a NotEligible error if the user is not permitted to invoke the operation. Please contact aws-devicefarm-support@amazon.com if you believe that you should be able to invoke this operation.

See also: AWS API Documentation

Request Syntax

client.purchase_offering(
    offeringId='string',
    quantity=123,
    offeringPromotionId='string'
)
type offeringId:

string

param offeringId:

The ID of the offering.

type quantity:

integer

param quantity:

The number of device slots you wish to purchase in an offering request.

type offeringPromotionId:

string

param offeringPromotionId:

The ID of the offering promotion to be applied to the purchase.

rtype:

dict

returns:

Response Syntax

{
    'offeringTransaction': {
        'offeringStatus': {
            'type': 'PURCHASE'|'RENEW'|'SYSTEM',
            'offering': {
                'id': 'string',
                'description': 'string',
                'type': 'RECURRING',
                'platform': 'ANDROID'|'IOS',
                'recurringCharges': [
                    {
                        'cost': {
                            'amount': 123.0,
                            'currencyCode': 'USD'
                        },
                        'frequency': 'MONTHLY'
                    },
                ]
            },
            'quantity': 123,
            'effectiveOn': datetime(2015, 1, 1)
        },
        'transactionId': 'string',
        'offeringPromotionId': 'string',
        'createdOn': datetime(2015, 1, 1),
        'cost': {
            'amount': 123.0,
            'currencyCode': 'USD'
        }
    }
}

Response Structure

  • (dict) --

    The result of the purchase offering (e.g., success or failure).

    • offeringTransaction (dict) --

      Represents the offering transaction for the purchase result.

      • offeringStatus (dict) --

        The status of an offering transaction.

        • type (string) --

          The type specified for the offering status.

        • offering (dict) --

          Represents the metadata of an offering status.

          • id (string) --

            The ID that corresponds to a device offering.

          • description (string) --

            A string describing the offering.

          • type (string) --

            The type of offering (e.g., "RECURRING") for a device.

          • platform (string) --

            The platform of the device (e.g., ANDROID or IOS).

          • recurringCharges (list) --

            Specifies whether there are recurring charges for the offering.

            • (dict) --

              Specifies whether charges for devices will be recurring.

              • cost (dict) --

                The cost of the recurring charge.

                • amount (float) --

                  The numerical amount of an offering or transaction.

                • currencyCode (string) --

                  The currency code of a monetary amount. For example, USD means "U.S. dollars."

              • frequency (string) --

                The frequency in which charges will recur.

        • quantity (integer) --

          The number of available devices in the offering.

        • effectiveOn (datetime) --

          The date on which the offering is effective.

      • transactionId (string) --

        The transaction ID of the offering transaction.

      • offeringPromotionId (string) --

        The ID that corresponds to a device offering promotion.

      • createdOn (datetime) --

        The date on which an offering transaction was created.

      • cost (dict) --

        The cost of an offering transaction.

        • amount (float) --

          The numerical amount of an offering or transaction.

        • currencyCode (string) --

          The currency code of a monetary amount. For example, USD means "U.S. dollars."

RenewOffering (updated) Link ¶
Changes (response)
{'offeringTransaction': {'offeringPromotionId': 'string'}}

Explicitly sets the quantity of devices to renew for an offering, starting from the effectiveDate of the next period. The API returns a NotEligible error if the user is not permitted to invoke the operation. Please contact aws-devicefarm-support@amazon.com if you believe that you should be able to invoke this operation.

See also: AWS API Documentation

Request Syntax

client.renew_offering(
    offeringId='string',
    quantity=123
)
type offeringId:

string

param offeringId:

The ID of a request to renew an offering.

type quantity:

integer

param quantity:

The quantity requested in an offering renewal.

rtype:

dict

returns:

Response Syntax

{
    'offeringTransaction': {
        'offeringStatus': {
            'type': 'PURCHASE'|'RENEW'|'SYSTEM',
            'offering': {
                'id': 'string',
                'description': 'string',
                'type': 'RECURRING',
                'platform': 'ANDROID'|'IOS',
                'recurringCharges': [
                    {
                        'cost': {
                            'amount': 123.0,
                            'currencyCode': 'USD'
                        },
                        'frequency': 'MONTHLY'
                    },
                ]
            },
            'quantity': 123,
            'effectiveOn': datetime(2015, 1, 1)
        },
        'transactionId': 'string',
        'offeringPromotionId': 'string',
        'createdOn': datetime(2015, 1, 1),
        'cost': {
            'amount': 123.0,
            'currencyCode': 'USD'
        }
    }
}

Response Structure

  • (dict) --

    The result of a renewal offering.

    • offeringTransaction (dict) --

      Represents the status of the offering transaction for the renewal.

      • offeringStatus (dict) --

        The status of an offering transaction.

        • type (string) --

          The type specified for the offering status.

        • offering (dict) --

          Represents the metadata of an offering status.

          • id (string) --

            The ID that corresponds to a device offering.

          • description (string) --

            A string describing the offering.

          • type (string) --

            The type of offering (e.g., "RECURRING") for a device.

          • platform (string) --

            The platform of the device (e.g., ANDROID or IOS).

          • recurringCharges (list) --

            Specifies whether there are recurring charges for the offering.

            • (dict) --

              Specifies whether charges for devices will be recurring.

              • cost (dict) --

                The cost of the recurring charge.

                • amount (float) --

                  The numerical amount of an offering or transaction.

                • currencyCode (string) --

                  The currency code of a monetary amount. For example, USD means "U.S. dollars."

              • frequency (string) --

                The frequency in which charges will recur.

        • quantity (integer) --

          The number of available devices in the offering.

        • effectiveOn (datetime) --

          The date on which the offering is effective.

      • transactionId (string) --

        The transaction ID of the offering transaction.

      • offeringPromotionId (string) --

        The ID that corresponds to a device offering promotion.

      • createdOn (datetime) --

        The date on which an offering transaction was created.

      • cost (dict) --

        The cost of an offering transaction.

        • amount (float) --

          The numerical amount of an offering or transaction.

        • currencyCode (string) --

          The currency code of a monetary amount. For example, USD means "U.S. dollars."

ScheduleRun (updated) Link ¶
Changes (request)
{'executionConfiguration': {'accountsCleanup': 'boolean',
                            'appPackagesCleanup': 'boolean'}}

Schedules a run.

See also: AWS API Documentation

Request Syntax

client.schedule_run(
    projectArn='string',
    appArn='string',
    devicePoolArn='string',
    name='string',
    test={
        'type': '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',
        'testPackageArn': 'string',
        'filter': 'string',
        'parameters': {
            'string': 'string'
        }
    },
    configuration={
        'extraDataPackageArn': 'string',
        'networkProfileArn': 'string',
        'locale': 'string',
        'location': {
            'latitude': 123.0,
            'longitude': 123.0
        },
        'radios': {
            'wifi': True|False,
            'bluetooth': True|False,
            'nfc': True|False,
            'gps': True|False
        },
        'auxiliaryApps': [
            'string',
        ],
        'billingMethod': 'METERED'|'UNMETERED'
    },
    executionConfiguration={
        'jobTimeoutMinutes': 123,
        'accountsCleanup': True|False,
        'appPackagesCleanup': True|False
    }
)
type projectArn:

string

param projectArn:

[REQUIRED]

The ARN of the project for the run to be scheduled.

type appArn:

string

param appArn:

The ARN of the app to schedule a run.

type devicePoolArn:

string

param devicePoolArn:

[REQUIRED]

The ARN of the device pool for the run to be scheduled.

type name:

string

param name:

The name for the run to be scheduled.

type test:

dict

param test:

[REQUIRED]

Information about the test for the run to be scheduled.

  • type (string) -- [REQUIRED]

    The test's type.

    Must be one of the following values:

    • BUILTIN_FUZZ: The built-in fuzz type.

    • BUILTIN_EXPLORER: For Android, an app explorer that will traverse an Android app, interacting with it and capturing screenshots at the same time.

    • APPIUM_JAVA_JUNIT: The Appium Java JUnit type.

    • APPIUM_JAVA_TESTNG: The Appium Java TestNG type.

    • APPIUM_PYTHON: The Appium Python type.

    • APPIUM_WEB_JAVA_JUNIT: The Appium Java JUnit type for Web apps.

    • APPIUM_WEB_JAVA_TESTNG: The Appium Java TestNG type for Web apps.

    • APPIUM_WEB_PYTHON: The Appium Python type for Web apps.

    • CALABASH: The Calabash type.

    • INSTRUMENTATION: The Instrumentation type.

    • UIAUTOMATION: The uiautomation type.

    • UIAUTOMATOR: The uiautomator type.

    • XCTEST: The XCode test type.

    • XCTEST_UI: The XCode UI test type.

  • testPackageArn (string) --

    The ARN of the uploaded test that will be run.

  • filter (string) --

    The test's filter.

  • parameters (dict) --

    The test's parameters, such as the following test framework parameters and fixture settings:

    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.4.16", "1.6.3", "latest", and "default".

      • “latest” will run the latest Appium version supported by Device Farm (1.6.3).

      • For “default”, Device Farm will choose a compatible version of Appium for the device. The current behavior is to run 1.4.16 on Android devices and iOS 9 and earlier, 1.6.3 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 username to use if the Explorer encounters a login form. If not supplied, no username will be inserted.

    • password: A password to use if the Explorer encounters a login form. If not supplied, no password will be 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"

    • (string) --

      • (string) --

type configuration:

dict

param configuration:

Information about the settings for the run to be scheduled.

  • extraDataPackageArn (string) --

    The ARN of the extra data for the run. The extra data is a .zip file that AWS Device Farm will extract 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.

  • 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 auxiliary apps for the run.

    • (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 executionConfiguration:

dict

param executionConfiguration:

Specifies configuration information about a test run, such as the execution timeout (in minutes).

  • jobTimeoutMinutes (integer) --

    The number of minutes a test run will execute before it times out.

  • accountsCleanup (boolean) --

    True if account cleanup is enabled at the beginning of the test; otherwise, false.

  • appPackagesCleanup (boolean) --

    True if app package cleanup is enabled at the beginning of the test; otherwise, false.

rtype:

dict

returns:

Response Syntax

{
    'run': {
        'arn': 'string',
        'name': 'string',
        'type': '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',
        'platform': 'ANDROID'|'IOS',
        'created': datetime(2015, 1, 1),
        'status': 'PENDING'|'PENDING_CONCURRENCY'|'PENDING_DEVICE'|'PROCESSING'|'SCHEDULING'|'PREPARING'|'RUNNING'|'COMPLETED'|'STOPPING',
        'result': 'PENDING'|'PASSED'|'WARNED'|'FAILED'|'SKIPPED'|'ERRORED'|'STOPPED',
        'started': datetime(2015, 1, 1),
        'stopped': datetime(2015, 1, 1),
        'counters': {
            'total': 123,
            'passed': 123,
            'failed': 123,
            'warned': 123,
            'errored': 123,
            'stopped': 123,
            'skipped': 123
        },
        'message': 'string',
        'totalJobs': 123,
        'completedJobs': 123,
        'billingMethod': 'METERED'|'UNMETERED',
        'deviceMinutes': {
            'total': 123.0,
            'metered': 123.0,
            'unmetered': 123.0
        },
        'networkProfile': {
            'arn': 'string',
            'name': 'string',
            'description': 'string',
            'type': 'CURATED'|'PRIVATE',
            'uplinkBandwidthBits': 123,
            'downlinkBandwidthBits': 123,
            'uplinkDelayMs': 123,
            'downlinkDelayMs': 123,
            'uplinkJitterMs': 123,
            'downlinkJitterMs': 123,
            'uplinkLossPercent': 123,
            'downlinkLossPercent': 123
        }
    }
}

Response Structure

  • (dict) --

    Represents the result of a schedule run request.

    • run (dict) --

      Information about the scheduled run.

      • arn (string) --

        The run's ARN.

      • name (string) --

        The run's name.

      • type (string) --

        The run's type.

        Must be one of the following values:

        • BUILTIN_FUZZ: The built-in fuzz type.

        • BUILTIN_EXPLORER: For Android, an app explorer that will traverse an Android app, interacting with it and capturing screenshots at the same time.

        • APPIUM_JAVA_JUNIT: The Appium Java JUnit type.

        • APPIUM_JAVA_TESTNG: The Appium Java TestNG type.

        • APPIUM_PYTHON: The Appium Python type.

        • APPIUM_WEB_JAVA_JUNIT: The Appium Java JUnit type for Web apps.

        • APPIUM_WEB_JAVA_TESTNG: The Appium Java TestNG type for Web apps.

        • APPIUM_WEB_PYTHON: The Appium Python type for Web apps.

        • CALABASH: The Calabash type.

        • INSTRUMENTATION: The Instrumentation type.

        • UIAUTOMATION: The uiautomation type.

        • UIAUTOMATOR: The uiautomator type.

        • XCTEST: The XCode test type.

        • XCTEST_UI: The XCode UI test type.

      • platform (string) --

        The run's platform.

        Allowed values include:

        • ANDROID: The Android platform.

        • IOS: The iOS platform.

      • created (datetime) --

        When the run was created.

      • status (string) --

        The run's status.

        Allowed values include:

        • PENDING: A pending status.

        • PENDING_CONCURRENCY: A pending concurrency status.

        • PENDING_DEVICE: A pending device status.

        • PROCESSING: A processing status.

        • SCHEDULING: A scheduling status.

        • PREPARING: A preparing status.

        • RUNNING: A running status.

        • COMPLETED: A completed status.

        • STOPPING: A stopping status.

      • result (string) --

        The run's result.

        Allowed values include:

        • PENDING: A pending condition.

        • PASSED: A passing condition.

        • WARNED: A warning condition.

        • FAILED: A failed condition.

        • SKIPPED: A skipped condition.

        • ERRORED: An error condition.

        • STOPPED: A stopped condition.

      • started (datetime) --

        The run's start time.

      • stopped (datetime) --

        The run's stop time.

      • counters (dict) --

        The run's result counters.

        • total (integer) --

          The total number of entities.

        • passed (integer) --

          The number of passed entities.

        • failed (integer) --

          The number of failed entities.

        • warned (integer) --

          The number of warned entities.

        • errored (integer) --

          The number of errored entities.

        • stopped (integer) --

          The number of stopped entities.

        • skipped (integer) --

          The number of skipped entities.

      • message (string) --

        A message about the run's result.

      • totalJobs (integer) --

        The total number of jobs for the run.

      • completedJobs (integer) --

        The total number of completed jobs.

      • billingMethod (string) --

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

      • deviceMinutes (dict) --

        Represents the total (metered or unmetered) minutes used by the test run.

        • total (float) --

          When specified, represents the total minutes used by the resource to run tests.

        • metered (float) --

          When specified, represents only the sum of metered minutes used by the resource to run tests.

        • unmetered (float) --

          When specified, represents only the sum of unmetered minutes used by the resource to run tests.

      • networkProfile (dict) --

        The network profile being used for a test run.

        • arn (string) --

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

        • name (string) --

          The name of the network profile.

        • description (string) --

          The description of the network profile.

        • type (string) --

          The type of network profile. Valid values are listed below.

        • uplinkBandwidthBits (integer) --

          The data throughput rate in bits per second, as an integer from 0 to 104857600.

        • downlinkBandwidthBits (integer) --

          The data throughput rate in bits per second, as an integer from 0 to 104857600.

        • uplinkDelayMs (integer) --

          Delay time for all packets to destination in milliseconds as an integer from 0 to 2000.

        • downlinkDelayMs (integer) --

          Delay time for all packets to destination in milliseconds as an integer from 0 to 2000.

        • uplinkJitterMs (integer) --

          Time variation in the delay of received packets in milliseconds as an integer from 0 to 2000.

        • downlinkJitterMs (integer) --

          Time variation in the delay of received packets in milliseconds as an integer from 0 to 2000.

        • uplinkLossPercent (integer) --

          Proportion of transmitted packets that fail to arrive from 0 to 100 percent.

        • downlinkLossPercent (integer) --

          Proportion of received packets that fail to arrive from 0 to 100 percent.

UpdateDevicePool (updated) Link ¶
Changes (request, response)
Request
{'rules': {'attribute': {'APPIUM_VERSION'}, 'operator': {'CONTAINS'}}}
Response
{'devicePool': {'rules': {'attribute': {'APPIUM_VERSION'},
                          'operator': {'CONTAINS'}}}}

Modifies the name, description, and rules in a device pool given the attributes and the pool ARN. Rule updates are all-or-nothing, meaning they can only be updated as a whole (or not at all).

See also: AWS API Documentation

Request Syntax

client.update_device_pool(
    arn='string',
    name='string',
    description='string',
    rules=[
        {
            'attribute': 'ARN'|'PLATFORM'|'FORM_FACTOR'|'MANUFACTURER'|'REMOTE_ACCESS_ENABLED'|'APPIUM_VERSION',
            'operator': 'EQUALS'|'LESS_THAN'|'GREATER_THAN'|'IN'|'NOT_IN'|'CONTAINS',
            'value': 'string'
        },
    ]
)
type arn:

string

param arn:

[REQUIRED]

The Amazon Resourc Name (ARN) of the Device Farm device pool you wish to update.

type name:

string

param name:

A string representing the name of the device pool you wish to update.

type description:

string

param description:

A description of the device pool you wish to update.

type rules:

list

param rules:

Represents the rules you wish to modify for the device pool. Updating rules is optional; however, if you choose to update rules for your request, the update will replace the existing rules.

  • (dict) --

    Represents a condition for a device pool.

    • attribute (string) --

      The rule's stringified attribute. For example, specify the value as "\"abc\"".

      Allowed values include:

      • ARN: The ARN.

      • FORM_FACTOR: The form factor (for example, phone or tablet).

      • MANUFACTURER: The manufacturer.

      • PLATFORM: The platform (for example, Android or iOS).

      • REMOTE_ACCESS_ENABLED: Whether the device is enabled for remote access.

      • APPIUM_VERSION: The Appium version for the test.

    • operator (string) --

      The rule's operator.

      • EQUALS: The equals operator.

      • GREATER_THAN: The greater-than operator.

      • IN: The in operator.

      • LESS_THAN: The less-than operator.

      • NOT_IN: The not-in operator.

      • CONTAINS: The contains operator.

    • value (string) --

      The rule's value.

rtype:

dict

returns:

Response Syntax

{
    'devicePool': {
        'arn': 'string',
        'name': 'string',
        'description': 'string',
        'type': 'CURATED'|'PRIVATE',
        'rules': [
            {
                'attribute': 'ARN'|'PLATFORM'|'FORM_FACTOR'|'MANUFACTURER'|'REMOTE_ACCESS_ENABLED'|'APPIUM_VERSION',
                'operator': 'EQUALS'|'LESS_THAN'|'GREATER_THAN'|'IN'|'NOT_IN'|'CONTAINS',
                'value': 'string'
            },
        ]
    }
}

Response Structure

  • (dict) --

    Represents the result of an update device pool request.

    • devicePool (dict) --

      The device pool you just updated.

      • arn (string) --

        The device pool's ARN.

      • name (string) --

        The device pool's name.

      • description (string) --

        The device pool's description.

      • type (string) --

        The device pool's type.

        Allowed values include:

        • CURATED: A device pool that is created and managed by AWS Device Farm.

        • PRIVATE: A device pool that is created and managed by the device pool developer.

      • rules (list) --

        Information about the device pool's rules.

        • (dict) --

          Represents a condition for a device pool.

          • attribute (string) --

            The rule's stringified attribute. For example, specify the value as "\"abc\"".

            Allowed values include:

            • ARN: The ARN.

            • FORM_FACTOR: The form factor (for example, phone or tablet).

            • MANUFACTURER: The manufacturer.

            • PLATFORM: The platform (for example, Android or iOS).

            • REMOTE_ACCESS_ENABLED: Whether the device is enabled for remote access.

            • APPIUM_VERSION: The Appium version for the test.

          • operator (string) --

            The rule's operator.

            • EQUALS: The equals operator.

            • GREATER_THAN: The greater-than operator.

            • IN: The in operator.

            • LESS_THAN: The less-than operator.

            • NOT_IN: The not-in operator.

            • CONTAINS: The contains operator.

          • value (string) --

            The rule's value.