list_devices

list_devices(**kwargs)

Gets information about unique device types.

See also: AWS API Documentation

Request Syntax

response = client.list_devices(
    arn='string',
    nextToken='string',
    filters=[
        {
            'attribute': 'ARN'|'PLATFORM'|'OS_VERSION'|'MODEL'|'AVAILABILITY'|'FORM_FACTOR'|'MANUFACTURER'|'REMOTE_ACCESS_ENABLED'|'REMOTE_DEBUG_ENABLED'|'INSTANCE_ARN'|'INSTANCE_LABELS'|'FLEET_TYPE',
            'operator': 'EQUALS'|'LESS_THAN'|'LESS_THAN_OR_EQUALS'|'GREATER_THAN'|'GREATER_THAN_OR_EQUALS'|'IN'|'NOT_IN'|'CONTAINS',
            'values': [
                'string',
            ]
        },
    ]
)
Parameters
  • arn (string) -- The Amazon Resource Name (ARN) of the project.
  • 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.
  • filters (list) --

    Used to select a set of devices. 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 attribute 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.
      • The IN and NOT_IN operators take a values array that has one or more elements.
      • The other operators require an array with a single element.
      • In a request, the AVAILABILITY attribute takes the following values: AVAILABLE, HIGHLY_AVAILABLE, BUSY, or TEMPORARY_NOT_AVAILABLE.
    • (dict) --

      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.

      • attribute (string) -- [REQUIRED]

        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.

        ARN

        The Amazon Resource Name (ARN) of the device (for example, arn:aws:devicefarm:us-west-2::device:12345Example ).

        Supported operators: EQUALS , IN , NOT_IN

        PLATFORM

        The device platform. Valid values are ANDROID or IOS.

        Supported operators: EQUALS

        OS_VERSION

        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

        MODEL

        The device model (for example, iPad 5th Gen).

        Supported operators: CONTAINS , EQUALS , IN , NOT_IN

        AVAILABILITY

        The current availability of the device. Valid values are AVAILABLE, HIGHLY_AVAILABLE, BUSY, or TEMPORARY_NOT_AVAILABLE.

        Supported operators: EQUALS

        FORM_FACTOR

        The device form factor. Valid values are PHONE or TABLET.

        Supported operators: EQUALS

        MANUFACTURER

        The device manufacturer (for example, Apple).

        Supported operators: EQUALS , IN , NOT_IN

        REMOTE_ACCESS_ENABLED

        Whether the device is enabled for remote access. Valid values are TRUE or FALSE.

        Supported operators: EQUALS

        REMOTE_DEBUG_ENABLED

        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.

        INSTANCE_ARN

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

        Supported operators: EQUALS , IN , NOT_IN

        INSTANCE_LABELS

        The label of the device instance.

        Supported operators: CONTAINS

        FLEET_TYPE

        The fleet type. Valid values are PUBLIC or PRIVATE.

        Supported operators: EQUALS

      • operator (string) -- [REQUIRED]

        Specifies how Device Farm compares the filter's attribute to the value. See the attribute descriptions.

      • values (list) -- [REQUIRED]

        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.
        • (string) --
Return type

dict

Returns

Response Syntax

{
    'devices': [
        {
            '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'
        },
    ],
    'nextToken': 'string'
}

Response Structure

  • (dict) --

    Represents the result of a list devices operation.

    • devices (list) --

      Information about the devices.

      • (dict) --

        Represents a device type that an app is tested against.

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

    • nextToken (string) --

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

Exceptions

  • DeviceFarm.Client.exceptions.ArgumentException
  • DeviceFarm.Client.exceptions.NotFoundException
  • DeviceFarm.Client.exceptions.LimitExceededException
  • DeviceFarm.Client.exceptions.ServiceAccountException

Examples

The following example returns information about the available devices in a specific project.

response = client.list_devices(
    # You can get the project ARN by using the list-projects CLI command.
    arn='arn:aws:devicefarm:us-west-2:123456789101:project:EXAMPLE-GUID-123-456',
)

print(response)

Expected Output:

{
    'ResponseMetadata': {
        '...': '...',
    },
}