DeviceFarm / Client / create_remote_access_session

create_remote_access_session#

DeviceFarm.Client.create_remote_access_session(**kwargs)#

Specifies and starts a remote access session.

See also: AWS API Documentation

Request Syntax

response = 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
)
Parameters:
  • projectArn (string) –

    [REQUIRED]

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

  • deviceArn (string) –

    [REQUIRED]

    The ARN of the device for which you want to create a remote access session.

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

  • sshPublicKey (string) –

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

    Remote debugging is no longer supported.

  • remoteDebugEnabled (boolean) –

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

    Remote debugging is no longer supported.

  • remoteRecordEnabled (boolean) – Set to true to enable remote recording for the remote access session.

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

  • name (string) – The name of the remote access session to create.

  • clientId (string) –

    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 identifier is required only if remoteDebugEnabled is set to true.

    Remote debugging is no longer supported.

  • configuration (dict) –

    The configuration information for the remote access session request.

    • billingMethod (string) –

      The billing method for the remote access session.

    • vpceConfigurationArns (list) –

      An array of ARNs included in the VPC endpoint configuration.

      • (string) –

  • 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 does not sign your app again. For public devices, Device Farm always signs your apps again.

    For more information on how Device Farm modifies your uploads during tests, see Do you modify my app?

Return type:

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'
                    }
                },
            ],
            'availability': 'TEMPORARY_NOT_AVAILABLE'|'BUSY'|'AVAILABLE'|'HIGHLY_AVAILABLE'
        },
        '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,
        'vpcConfig': {
            'securityGroupIds': [
                'string',
            ],
            'subnetIds': [
                'string',
            ],
            'vpcId': 'string'
        }
    }
}

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.

        • PENDING_CONCURRENCY.

        • PENDING_DEVICE.

        • PROCESSING.

        • SCHEDULING.

        • PREPARING.

        • RUNNING.

        • COMPLETED.

        • STOPPING.

      • result (string) –

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

        • PENDING.

        • PASSED.

        • WARNED.

        • FAILED.

        • SKIPPED.

        • ERRORED.

        • STOPPED.

      • 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

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

      • instanceArn (string) –

        The ARN of the instance.

      • remoteDebugEnabled (boolean) –

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

        Remote debugging is no longer supported.

      • remoteRecordEnabled (boolean) –

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

      • remoteRecordAppArn (string) –

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

        Remote debugging is no longer supported.

      • clientId (string) –

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

        Remote debugging is no longer supported.

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

        Remote debugging is no longer supported.

      • 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 does not sign your app again. For public devices, Device Farm always signs your apps again.

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

      • vpcConfig (dict) –

        The VPC security groups and subnets that are attached to a project.

        • securityGroupIds (list) –

          An array of one or more security groups IDs in your Amazon VPC.

          • (string) –

        • subnetIds (list) –

          An array of one or more subnet IDs in your Amazon VPC.

          • (string) –

        • vpcId (string) –

          The ID of the Amazon VPC.

Exceptions

  • DeviceFarm.Client.exceptions.ArgumentException

  • DeviceFarm.Client.exceptions.NotFoundException

  • DeviceFarm.Client.exceptions.LimitExceededException

  • DeviceFarm.Client.exceptions.ServiceAccountException

Examples

The following example creates a remote access session named MySession.

response = client.create_remote_access_session(
    name='MySession',
    configuration={
        'billingMethod': 'METERED',
    },
    # You can get the device ARN by using the list-devices CLI command.
    deviceArn='arn:aws:devicefarm:us-west-2::device:123EXAMPLE',
    # You can get the project ARN by using the list-projects CLI command.
    projectArn='arn:aws:devicefarm:us-west-2:123456789101:project:EXAMPLE-GUID-123-456',
)

print(response)

Expected Output:

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