AWS Device Farm

2018/06/12 - AWS Device Farm - 1 updated api methods

Changes  Adding VPCEndpoint support for Remote access. Allows customers to be able to access their private endpoints/services running in their VPC during remote access.

CreateRemoteAccessSession (updated) Link ΒΆ
Changes (request)
{'configuration': {'vpceConfigurationArns': ['string']}}

Specifies and starts a remote access session.

See also: AWS API Documentation

Request Syntax

client.create_remote_access_session(
    projectArn='string',
    deviceArn='string',
    instanceArn='string',
    sshPublicKey='string',
    remoteDebugEnabled=True|False,
    remoteRecordEnabled=True|False,
    remoteRecordAppArn='string',
    name='string',
    clientId='string',
    configuration={
        'billingMethod': 'METERED'|'UNMETERED',
        'vpceConfigurationArns': [
            'string',
        ]
    },
    interactionMode='INTERACTIVE'|'NO_VIDEO'|'VIDEO_ONLY',
    skipAppResign=True|False
)
type projectArn

string

param projectArn

[REQUIRED]

The Amazon Resource Name (ARN) of the project for which you want to create a remote access session.

type deviceArn

string

param deviceArn

[REQUIRED]

The Amazon Resource Name (ARN) of the device for which you want to create a remote access session.

type instanceArn

string

param instanceArn

The Amazon Resource Name (ARN) of the device instance for which you want to create a remote access session.

type sshPublicKey

string

param sshPublicKey

The public key of the ssh key pair you want to use for connecting to remote devices in your remote debugging session. This is only required if remoteDebugEnabled is set to true .

type remoteDebugEnabled

boolean

param remoteDebugEnabled

Set to true if you want to access devices remotely for debugging in your remote access session.

type remoteRecordEnabled

boolean

param remoteRecordEnabled

Set to true to enable remote recording for the remote access session.

type remoteRecordAppArn

string

param remoteRecordAppArn

The Amazon Resource Name (ARN) for the app to be recorded in the remote access session.

type name

string

param name

The name of the remote access session that you wish to create.

type clientId

string

param clientId

Unique identifier for the client. If you want access to multiple devices on the same client, you should pass the same clientId value in each call to CreateRemoteAccessSession . This is required only if remoteDebugEnabled is set to true .

type configuration

dict

param configuration

The configuration information for the remote access session request.

  • billingMethod (string) --

    The billing method for the remote access session.

  • vpceConfigurationArns (list) --

    An array of Amazon Resource Names (ARNs) included in the VPC endpoint configuration.

    • (string) --

type interactionMode

string

param interactionMode

The interaction mode of the remote access session. Valid values are:

  • INTERACTIVE: You can interact with the iOS device by viewing, touching, and rotating the screen. You cannot run XCUITest framework-based tests in this mode.

  • NO_VIDEO: You are connected to the device but cannot interact with it or view the screen. This mode has the fastest test execution speed. You can run XCUITest framework-based tests in this mode.

  • VIDEO_ONLY: You can view the screen but cannot touch or rotate it. You can run XCUITest framework-based tests and watch the screen in this mode.

type skipAppResign

boolean

param skipAppResign

When set to true , for private devices, Device Farm will not sign your app again. For public devices, Device Farm always signs your apps again and this parameter has no effect.

For more information about how Device Farm re-signs your app(s), see Do you modify my app? in the AWS Device Farm FAQs .

rtype

dict

returns

Response Syntax

{
    'remoteAccessSession': {
        'arn': 'string',
        'name': 'string',
        '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',
        'message': 'string',
        'started': datetime(2015, 1, 1),
        'stopped': datetime(2015, 1, 1),
        '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'
                    }
                },
            ]
        },
        'instanceArn': 'string',
        'remoteDebugEnabled': True|False,
        'remoteRecordEnabled': True|False,
        'remoteRecordAppArn': 'string',
        'hostAddress': 'string',
        'clientId': 'string',
        'billingMethod': 'METERED'|'UNMETERED',
        'deviceMinutes': {
            'total': 123.0,
            'metered': 123.0,
            'unmetered': 123.0
        },
        'endpoint': 'string',
        'deviceUdid': 'string',
        'interactionMode': 'INTERACTIVE'|'NO_VIDEO'|'VIDEO_ONLY',
        'skipAppResign': True|False
    }
}

Response Structure

  • (dict) --

    Represents the server response from a request to create a remote access session.

    • remoteAccessSession (dict) --

      A container that describes the remote access session when the request to create a remote access session is sent.

      • arn (string) --

        The Amazon Resource Name (ARN) of the remote access session.

      • name (string) --

        The name of the remote access session.

      • created (datetime) --

        The date and time the remote access session was created.

      • status (string) --

        The status of the remote access session. Can be any of the following:

        • 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 result of the remote access session. Can be any of the following:

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

      • message (string) --

        A message about the remote access session.

      • started (datetime) --

        The date and time the remote access session was started.

      • stopped (datetime) --

        The date and time the remote access session was stopped.

      • device (dict) --

        The device (phone or tablet) used in the remote access session.

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

        • remoteDebugEnabled (boolean) --

          This flag is set to true if remote debugging is enabled for the 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.

        • instances (list) --

          The instances belonging to this device.

          • (dict) --

            Represents the device instance.

            • arn (string) --

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

            • deviceArn (string) --

              The Amazon Resource Name (ARN) of the device.

            • labels (list) --

              An array of strings describing the device instance.

              • (string) --

            • status (string) --

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

            • udid (string) --

              Unique device identifier for the device instance.

            • instanceProfile (dict) --

              A object containing information about the instance profile.

              • arn (string) --

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

              • packageCleanup (boolean) --

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

              • excludeAppPackagesFromCleanup (list) --

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

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

                • (string) --

              • rebootAfterUse (boolean) --

                When set to true , Device Farm will reboot 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.

      • instanceArn (string) --

        The Amazon Resource Name (ARN) of the instance.

      • remoteDebugEnabled (boolean) --

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

      • remoteRecordEnabled (boolean) --

        This flag is set to true if remote recording is enabled for the remote access session.

      • remoteRecordAppArn (string) --

        The Amazon Resource Name (ARN) for the app to be recorded in the remote access session.

      • hostAddress (string) --

        IP address of the EC2 host where you need to connect to remotely debug devices. Only returned if remote debugging is enabled for the remote access session.

      • clientId (string) --

        Unique identifier of your client for the remote access session. Only returned if remote debugging is enabled for the remote access session.

      • billingMethod (string) --

        The billing method of the remote access session. Possible values include METERED or UNMETERED . For more information about metered devices, see AWS Device Farm terminology."

      • deviceMinutes (dict) --

        The number of minutes a device is used in a remote access sesssion (including setup and teardown minutes).

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

      • endpoint (string) --

        The endpoint for the remote access sesssion.

      • deviceUdid (string) --

        Unique device identifier for the remote device. Only returned if remote debugging is enabled for the remote access session.

      • interactionMode (string) --

        The interaction mode of the remote access session. Valid values are:

        • INTERACTIVE: You can interact with the iOS device by viewing, touching, and rotating the screen. You cannot run XCUITest framework-based tests in this mode.

        • NO_VIDEO: You are connected to the device but cannot interact with it or view the screen. This mode has the fastest test execution speed. You can run XCUITest framework-based tests in this mode.

        • VIDEO_ONLY: You can view the screen but cannot touch or rotate it. You can run XCUITest framework-based tests and watch the screen in this mode.

      • skipAppResign (boolean) --

        When set to true , for private devices, Device Farm will not sign your app again. For public devices, Device Farm always signs your apps again and this parameter has no effect.

        For more information about how Device Farm re-signs your app(s), see Do you modify my app? in the AWS Device Farm FAQs .