import type { ArtifactCategory, ArtifactType, BillingMethod, CurrencyCode, DeviceAttribute, DeviceAvailability, DeviceFilterAttribute, DeviceFormFactor, DevicePlatform, DevicePoolType, ExecutionResult, ExecutionResultCode, ExecutionStatus, InstanceStatus, InteractionMode, NetworkProfileType, OfferingTransactionType, OfferingType, RecurringChargeFrequency, RuleOperator, SampleType, TestGridSessionArtifactCategory, TestGridSessionArtifactType, TestGridSessionStatus, TestType, UploadCategory, UploadStatus, UploadType } from "./enums"; /** *

Represents information about free trial device minutes for an AWS * account.

* @public */ export interface TrialMinutes { /** *

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

* @public */ total?: number | undefined; /** *

The number of free trial minutes remaining in the account.

* @public */ remaining?: number | undefined; } /** *

A container for account-level settings in AWS Device Farm.

* @public */ export interface AccountSettings { /** *

The AWS account number specified in the AccountSettings * container.

* @public */ awsAccountNumber?: string | undefined; /** *

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

* @public */ unmeteredDevices?: Partial> | undefined; /** *

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

* @public */ unmeteredRemoteAccessDevices?: Partial> | undefined; /** *

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

* @public */ maxJobTimeoutMinutes?: number | undefined; /** *

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

* @public */ trialMinutes?: TrialMinutes | undefined; /** *

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.

* @public */ maxSlots?: Record | undefined; /** *

The default number of minutes (at the account level) a test run executes before it times out. The * default value is 150 minutes.

* @public */ defaultJobTimeoutMinutes?: number | undefined; /** *

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.

* @public */ skipAppResign?: boolean | undefined; } /** *

Represents the output of a test. Examples of artifacts include logs and * screenshots.

* @public */ export interface Artifact { /** *

The artifact's ARN.

* @public */ arn?: string | undefined; /** *

The artifact's name.

* @public */ name?: string | undefined; /** *

The artifact's type.

*

Allowed values include the following:

*
    *
  • *

    UNKNOWN

    *
  • *
  • *

    SCREENSHOT

    *
  • *
  • *

    DEVICE_LOG

    *
  • *
  • *

    MESSAGE_LOG

    *
  • *
  • *

    VIDEO_LOG

    *
  • *
  • *

    RESULT_LOG

    *
  • *
  • *

    SERVICE_LOG

    *
  • *
  • *

    WEBKIT_LOG

    *
  • *
  • *

    INSTRUMENTATION_OUTPUT

    *
  • *
  • *

    EXERCISER_MONKEY_OUTPUT: the artifact (log) generated by an Android fuzz test.

    *
  • *
  • *

    APPIUM_SERVER_OUTPUT

    *
  • *
  • *

    APPIUM_JAVA_OUTPUT

    *
  • *
  • *

    APPIUM_JAVA_XML_OUTPUT

    *
  • *
  • *

    APPIUM_PYTHON_OUTPUT

    *
  • *
  • *

    APPIUM_PYTHON_XML_OUTPUT

    *
  • *
  • *

    APPLICATION_CRASH_REPORT

    *
  • *
  • *

    XCTEST_LOG

    *
  • *
  • *

    VIDEO

    *
  • *
  • *

    CUSTOMER_ARTIFACT

    *
  • *
  • *

    CUSTOMER_ARTIFACT_LOG

    *
  • *
  • *

    TESTSPEC_OUTPUT

    *
  • *
* @public */ type?: ArtifactType | undefined; /** *

The artifact's file extension.

* @public */ extension?: string | undefined; /** *

The presigned Amazon S3 URL that can be used with a GET request to download the artifact's * file.

* @public */ url?: string | undefined; } /** *

Represents entity counters.

* @public */ export interface Counters { /** *

The total number of entities.

* @public */ total?: number | undefined; /** *

The number of passed entities.

* @public */ passed?: number | undefined; /** *

The number of failed entities.

* @public */ failed?: number | undefined; /** *

The number of warned entities.

* @public */ warned?: number | undefined; /** *

The number of errored entities.

* @public */ errored?: number | undefined; /** *

The number of stopped entities.

* @public */ stopped?: number | undefined; /** *

The number of skipped entities.

* @public */ skipped?: number | undefined; } /** *

Represents the amount of CPU that an app is using on a physical device. Does not represent system-wide * CPU usage.

* @public */ export interface CPU { /** *

The CPU's frequency.

* @public */ frequency?: string | undefined; /** *

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

* @public */ architecture?: string | undefined; /** *

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

* @public */ clock?: number | undefined; } /** *

Represents a condition for a device pool.

* @public */ export interface Rule { /** *

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

*

The supported operators for each attribute are provided in the following * list.

*
*
APPIUM_VERSION
*
*

The Appium version for the test.

*

Supported operators: CONTAINS *

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

*
*
AVAILABILITY
*
*

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

*

Supported operators: EQUALS *

*
*
FLEET_TYPE
*
*

The fleet type. Valid values are PUBLIC or PRIVATE.

*

Supported operators: EQUALS *

*
*
FORM_FACTOR
*
*

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

*

Supported operators: EQUALS, * IN, NOT_IN *

*
*
INSTANCE_ARN
*
*

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

*

Supported operators: IN, * NOT_IN *

*
*
INSTANCE_LABELS
*
*

The label of the device instance.

*

Supported operators: CONTAINS *

*
*
MANUFACTURER
*
*

The device manufacturer (for example, Apple).

*

Supported operators: EQUALS, * IN, NOT_IN *

*
*
MODEL
*
*

The device model, such as Apple iPad Air 2 or Google Pixel.

*

Supported operators: CONTAINS, * EQUALS, IN, NOT_IN *

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

*
*
PLATFORM
*
*

The device platform. Valid values are ANDROID or IOS.

*

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.

*
*
* @public */ attribute?: DeviceAttribute | undefined; /** *

Specifies how Device Farm compares the rule's attribute to the value. For the * operators that are supported by each attribute, see the attribute * descriptions.

* @public */ operator?: RuleOperator | undefined; /** *

The rule's value.

* @public */ value?: string | undefined; } /** *

Represents a request to the create device pool operation.

* @public */ export interface CreateDevicePoolRequest { /** *

The ARN of the project for the device pool.

* @public */ projectArn: string | undefined; /** *

The device pool's name.

* @public */ name: string | undefined; /** *

The device pool's description.

* @public */ description?: string | undefined; /** *

The device pool's rules.

* @public */ rules: Rule[] | undefined; /** *

The number of devices that Device Farm can add to your device pool. Device Farm adds devices that are * available and meet the criteria that you assign for the rules parameter. Depending on how many * devices meet these constraints, your device pool might contain fewer devices than the value for this * parameter.

*

By specifying the maximum number of devices, you can control the costs that you incur * by running tests.

* @public */ maxDevices?: number | undefined; } /** *

Represents a collection of device types.

* @public */ export interface DevicePool { /** *

The device pool's ARN.

* @public */ arn?: string | undefined; /** *

The device pool's name.

* @public */ name?: string | undefined; /** *

The device pool's description.

* @public */ description?: string | undefined; /** *

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.

    *
  • *
* @public */ type?: DevicePoolType | undefined; /** *

Information about the device pool's rules.

* @public */ rules?: Rule[] | undefined; /** *

The number of devices that Device Farm can add to your device pool. Device Farm adds devices that are * available and meet the criteria that you assign for the rules parameter. Depending on how many * devices meet these constraints, your device pool might contain fewer devices than the value for this * parameter.

*

By specifying the maximum number of devices, you can control the costs that you incur * by running tests.

* @public */ maxDevices?: number | undefined; } /** *

Represents the result of a create device pool request.

* @public */ export interface CreateDevicePoolResult { /** *

The newly created device pool.

* @public */ devicePool?: DevicePool | undefined; } /** * @public */ export interface CreateInstanceProfileRequest { /** *

The name of your instance profile.

* @public */ name: string | undefined; /** *

The description of your instance profile.

* @public */ description?: string | undefined; /** *

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

* @public */ packageCleanup?: boolean | undefined; /** *

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

*

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

* @public */ excludeAppPackagesFromCleanup?: string[] | undefined; /** *

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

* @public */ rebootAfterUse?: boolean | undefined; } /** *

Represents the instance profile.

* @public */ export interface InstanceProfile { /** *

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

* @public */ arn?: string | undefined; /** *

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

* @public */ packageCleanup?: boolean | undefined; /** *

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.

* @public */ excludeAppPackagesFromCleanup?: string[] | undefined; /** *

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

* @public */ rebootAfterUse?: boolean | undefined; /** *

The name of the instance profile.

* @public */ name?: string | undefined; /** *

The description of the instance profile.

* @public */ description?: string | undefined; } /** * @public */ export interface CreateInstanceProfileResult { /** *

An object that contains information about your instance profile.

* @public */ instanceProfile?: InstanceProfile | undefined; } /** * @public */ export interface CreateNetworkProfileRequest { /** *

The Amazon Resource Name (ARN) of the project for which you want to create a * network profile.

* @public */ projectArn: string | undefined; /** *

The name for the new network profile.

* @public */ name: string | undefined; /** *

The description of the network profile.

* @public */ description?: string | undefined; /** *

The type of network profile to create. Valid values are listed here.

* @public */ type?: NetworkProfileType | undefined; /** *

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

* @public */ uplinkBandwidthBits?: number | undefined; /** *

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

* @public */ downlinkBandwidthBits?: number | undefined; /** *

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

* @public */ uplinkDelayMs?: number | undefined; /** *

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

* @public */ downlinkDelayMs?: number | undefined; /** *

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

* @public */ uplinkJitterMs?: number | undefined; /** *

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

* @public */ downlinkJitterMs?: number | undefined; /** *

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

* @public */ uplinkLossPercent?: number | undefined; /** *

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

* @public */ downlinkLossPercent?: number | undefined; } /** *

An array of settings that describes characteristics of a network profile.

* @public */ export interface NetworkProfile { /** *

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

* @public */ arn?: string | undefined; /** *

The name of the network profile.

* @public */ name?: string | undefined; /** *

The description of the network profile.

* @public */ description?: string | undefined; /** *

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

* @public */ type?: NetworkProfileType | undefined; /** *

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

* @public */ uplinkBandwidthBits?: number | undefined; /** *

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

* @public */ downlinkBandwidthBits?: number | undefined; /** *

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

* @public */ uplinkDelayMs?: number | undefined; /** *

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

* @public */ downlinkDelayMs?: number | undefined; /** *

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

* @public */ uplinkJitterMs?: number | undefined; /** *

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

* @public */ downlinkJitterMs?: number | undefined; /** *

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

* @public */ uplinkLossPercent?: number | undefined; /** *

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

* @public */ downlinkLossPercent?: number | undefined; } /** * @public */ export interface CreateNetworkProfileResult { /** *

The network profile that is returned by the create network profile * request.

* @public */ networkProfile?: NetworkProfile | undefined; } /** *

Information about an environment variable for a project or a run.

* @public */ export interface EnvironmentVariable { /** *

The name of the environment variable.

* @public */ name: string | undefined; /** *

The value of the environment variable.

* @public */ value: string | undefined; } /** *

Contains the VPC configuration data necessary to interface with AWS Device Farm's services.

* @public */ export interface VpcConfig { /** *

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

* @public */ securityGroupIds: string[] | undefined; /** *

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

* @public */ subnetIds: string[] | undefined; /** *

The ID of the Amazon VPC.

* @public */ vpcId: string | undefined; } /** *

Represents a request to the create project operation.

* @public */ export interface CreateProjectRequest { /** *

The project's name.

* @public */ name: string | undefined; /** *

Sets the execution timeout value (in minutes) for a project. All test runs in this project use the * specified execution timeout value unless overridden when scheduling a run.

* @public */ defaultJobTimeoutMinutes?: number | undefined; /** *

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

* @public */ vpcConfig?: VpcConfig | undefined; /** *

* A set of environment variables which are used by default for all runs in the project. * These environment variables are applied to the test run during the execution of a test spec file. *

*

* For more information about using test spec files, please see * Custom test environments in AWS Device * Farm. *

* @public */ environmentVariables?: EnvironmentVariable[] | undefined; /** *

An IAM role to be assumed by the test host for all runs in the project.

* @public */ executionRoleArn?: string | undefined; } /** *

Represents an operating-system neutral workspace for running and managing * tests.

* @public */ export interface Project { /** *

The project's ARN.

* @public */ arn?: string | undefined; /** *

The project's name.

* @public */ name?: string | undefined; /** *

The default number of minutes (at the project level) a test run executes before it times out. The * default value is 150 minutes.

* @public */ defaultJobTimeoutMinutes?: number | undefined; /** *

When the project was created.

* @public */ created?: Date | undefined; /** *

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

* @public */ vpcConfig?: VpcConfig | undefined; /** *

Environment variables associated with the project.

* @public */ environmentVariables?: EnvironmentVariable[] | undefined; /** *

The IAM execution role associated with the project.

* @public */ executionRoleArn?: string | undefined; } /** *

Represents the result of a create project request.

* @public */ export interface CreateProjectResult { /** *

The newly created project.

* @public */ project?: Project | undefined; } /** *

Represents the http/s proxy configuration that will be applied to a device during a run.

* @public */ export interface DeviceProxy { /** *

Hostname or IPv4 address of the proxy.

* @public */ host: string | undefined; /** *

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

* @public */ port: number | undefined; } /** *

Configuration settings for a remote access session, including billing * method.

* @public */ export interface CreateRemoteAccessSessionConfiguration { /** *

A list of upload ARNs for app packages to be installed onto your device. (Maximum 3)

* @public */ auxiliaryApps?: string[] | undefined; /** *

The billing method for the remote access session.

* @public */ billingMethod?: BillingMethod | undefined; /** *

An array of ARNs included in the VPC endpoint configuration.

* @public */ vpceConfigurationArns?: string[] | undefined; /** *

The device proxy to be configured on the device for the remote access session.

* @public */ deviceProxy?: DeviceProxy | undefined; } /** *

Creates and submits a request to start a remote access session.

* @public */ export interface CreateRemoteAccessSessionRequest { /** *

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

* @public */ projectArn: string | undefined; /** *

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

* @public */ deviceArn: string | undefined; /** *

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

* @public */ appArn?: string | undefined; /** *

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

* @public */ instanceArn?: string | undefined; /** *

The name of the remote access session to create.

* @public */ name?: string | undefined; /** *

The configuration information for the remote access session request.

* @public */ configuration?: CreateRemoteAccessSessionConfiguration | undefined; /** *

The interaction mode of the remote access session. Changing the interactive mode of remote access sessions is no longer available.

* * @deprecated (since 2019-09-09) Changing the interactive mode of Remote Access sessions is no longer available. * @public */ interactionMode?: InteractionMode | undefined; /** *

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

* @public */ skipAppResign?: boolean | undefined; } /** *

Represents the device instance.

* @public */ export interface DeviceInstance { /** *

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

* @public */ arn?: string | undefined; /** *

The ARN of the device.

* @public */ deviceArn?: string | undefined; /** *

An array of strings that describe the device instance.

* @public */ labels?: string[] | undefined; /** *

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

* @public */ status?: InstanceStatus | undefined; /** *

Unique device identifier for the device instance.

* @public */ udid?: string | undefined; /** *

A object that contains information about the instance profile.

* @public */ instanceProfile?: InstanceProfile | undefined; } /** *

Represents the screen resolution of a device in height and width, expressed in * pixels.

* @public */ export interface Resolution { /** *

The screen resolution's width, expressed in pixels.

* @public */ width?: number | undefined; /** *

The screen resolution's height, expressed in pixels.

* @public */ height?: number | undefined; } /** *

Represents a device type that an app is tested against.

* @public */ export interface Device { /** *

The device's ARN.

* @public */ arn?: string | undefined; /** *

The device's display name.

* @public */ name?: string | undefined; /** *

The device's manufacturer name.

* @public */ manufacturer?: string | undefined; /** *

The device's model name.

* @public */ model?: string | undefined; /** *

The device's model ID.

* @public */ modelId?: string | undefined; /** *

The device's form factor.

*

Allowed values include:

*
    *
  • *

    PHONE

    *
  • *
  • *

    TABLET

    *
  • *
* @public */ formFactor?: DeviceFormFactor | undefined; /** *

The device's platform.

*

Allowed values include:

*
    *
  • *

    ANDROID

    *
  • *
  • *

    IOS

    *
  • *
* @public */ platform?: DevicePlatform | undefined; /** *

The device's operating system type.

* @public */ os?: string | undefined; /** *

Information about the device's CPU.

* @public */ cpu?: CPU | undefined; /** *

The resolution of the device.

* @public */ resolution?: Resolution | undefined; /** *

The device's heap size, expressed in bytes.

* @public */ heapSize?: number | undefined; /** *

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

* @public */ memory?: number | undefined; /** *

The device's image name.

* @public */ image?: string | undefined; /** *

The device's carrier.

* @public */ carrier?: string | undefined; /** *

The device's radio.

* @public */ radio?: string | undefined; /** *

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

* @public */ remoteAccessEnabled?: boolean | undefined; /** *

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

*

Remote debugging is no * longer supported.

* * @deprecated (since 2019-09-09) Direct Device Access is no longer available. * @public */ remoteDebugEnabled?: boolean | undefined; /** *

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

* @public */ fleetType?: string | undefined; /** *

The name of the fleet to which this device belongs.

* @public */ fleetName?: string | undefined; /** *

The instances that belong to this device.

* @public */ instances?: DeviceInstance[] | undefined; /** *

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

* @public */ availability?: DeviceAvailability | undefined; } /** *

Represents the total (metered or unmetered) minutes used by the resource to run * tests. Contains the sum of minutes consumed by all children.

* @public */ export interface DeviceMinutes { /** *

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

* @public */ total?: number | undefined; /** *

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

* @public */ metered?: number | undefined; /** *

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

* @public */ unmetered?: number | undefined; } /** *

Represents the remote endpoints for viewing and controlling a device during a remote access session.

* @public */ export interface RemoteAccessEndpoints { /** *

URL for controlling the device using WebDriver-compliant clients, like Appium, during the remote access session.

* @public */ remoteDriverEndpoint?: string | undefined; /** *

URL for viewing and interacting with the device during the remote access session.

* @public */ interactiveEndpoint?: string | undefined; } /** *

Represents information about the remote access session.

* @public */ export interface RemoteAccessSession { /** *

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

* @public */ arn?: string | undefined; /** *

The name of the remote access session.

* @public */ name?: string | undefined; /** *

The date and time the remote access session was created.

* @public */ created?: Date | undefined; /** *

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

*
    *
  • *

    PENDING.

    *
  • *
  • *

    PENDING_CONCURRENCY.

    *
  • *
  • *

    PENDING_DEVICE.

    *
  • *
  • *

    PROCESSING.

    *
  • *
  • *

    SCHEDULING.

    *
  • *
  • *

    PREPARING.

    *
  • *
  • *

    RUNNING.

    *
  • *
  • *

    COMPLETED.

    *
  • *
  • *

    STOPPING.

    *
  • *
* @public */ status?: ExecutionStatus | undefined; /** *

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

*
    *
  • *

    PENDING.

    *
  • *
  • *

    PASSED.

    *
  • *
  • *

    WARNED.

    *
  • *
  • *

    FAILED.

    *
  • *
  • *

    SKIPPED.

    *
  • *
  • *

    ERRORED.

    *
  • *
  • *

    STOPPED.

    *
  • *
* @public */ result?: ExecutionResult | undefined; /** *

A message about the remote access session.

* @public */ message?: string | undefined; /** *

The date and time the remote access session was started.

* @public */ started?: Date | undefined; /** *

The date and time the remote access session was stopped.

* @public */ stopped?: Date | undefined; /** *

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

* @public */ device?: Device | undefined; /** *

The ARN of the instance.

* @public */ instanceArn?: string | undefined; /** *

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.

* @public */ billingMethod?: BillingMethod | undefined; /** *

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

* @public */ deviceMinutes?: DeviceMinutes | undefined; /** *

The endpoint for the remote access session. This field is deprecated, and is replaced by the new endpoints.interactiveEndpoint field.

* * @deprecated (since 2025-11-17) This field is deprecated, and is replaced by the new endpoints.interactiveEndpoint field. * @public */ endpoint?: string | undefined; /** *

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.

* @public */ deviceUdid?: string | undefined; /** *

The interaction mode of the remote access session. Changing the interactive mode of remote access sessions is no longer available.

* * @deprecated (since 2019-09-09) Changing the interactive mode of Remote Access sessions is no longer available. * @public */ interactionMode?: InteractionMode | undefined; /** *

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.

* @public */ skipAppResign?: boolean | undefined; /** *

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

* @public */ vpcConfig?: VpcConfig | undefined; /** *

The device proxy configured for the remote access session.

* @public */ deviceProxy?: DeviceProxy | undefined; /** *

The ARN for the app to be installed onto your device.

* @public */ appUpload?: string | undefined; /** *

Represents the remote endpoints for viewing and controlling a device during a remote access session.

* @public */ endpoints?: RemoteAccessEndpoints | undefined; } /** *

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

* @public */ export interface CreateRemoteAccessSessionResult { /** *

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

* @public */ remoteAccessSession?: RemoteAccessSession | undefined; } /** *

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

* @public */ export interface TestGridVpcConfig { /** *

A list of VPC security group IDs in your Amazon VPC.

* @public */ securityGroupIds: string[] | undefined; /** *

A list of VPC subnet IDs in your Amazon VPC.

* @public */ subnetIds: string[] | undefined; /** *

The ID of the Amazon VPC.

* @public */ vpcId: string | undefined; } /** * @public */ export interface CreateTestGridProjectRequest { /** *

Human-readable name of the Selenium testing project.

* @public */ name: string | undefined; /** *

Human-readable description of the project.

* @public */ description?: string | undefined; /** *

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

* @public */ vpcConfig?: TestGridVpcConfig | undefined; } /** *

A Selenium testing project. Projects are used to collect and collate sessions.

* @public */ export interface TestGridProject { /** *

The ARN for the project.

* @public */ arn?: string | undefined; /** *

A human-readable name for the project.

* @public */ name?: string | undefined; /** *

A human-readable description for the project.

* @public */ description?: string | undefined; /** *

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

* @public */ vpcConfig?: TestGridVpcConfig | undefined; /** *

When the project was created.

* @public */ created?: Date | undefined; } /** * @public */ export interface CreateTestGridProjectResult { /** *

ARN of the Selenium testing project that was created.

* @public */ testGridProject?: TestGridProject | undefined; } /** * @public */ export interface CreateTestGridUrlRequest { /** *

ARN (from CreateTestGridProject or ListTestGridProjects) to associate * with the short-term URL.

* @public */ projectArn: string | undefined; /** *

Lifetime, in seconds, of the URL.

* @public */ expiresInSeconds: number | undefined; } /** * @public */ export interface CreateTestGridUrlResult { /** *

A signed URL, expiring in CreateTestGridUrlRequest$expiresInSeconds seconds, to be passed * to a RemoteWebDriver.

* @public */ url?: string | undefined; /** *

The number of seconds the URL from CreateTestGridUrlResult$url stays active.

* @public */ expires?: Date | undefined; } /** *

Represents a request to the create upload operation.

* @public */ export interface CreateUploadRequest { /** *

The ARN of the project for the upload.

* @public */ projectArn: string | undefined; /** *

The upload's file name. The name should not contain any forward slashes (/). If you are * uploading an iOS app, the file name must end with the .ipa extension. If you are uploading an * Android app, the file name must end with the .apk extension. For all others, the file name must * end with the .zip file extension.

* @public */ name: string | undefined; /** *

The upload's upload type.

*

Must be one of the following values:

*
    *
  • *

    ANDROID_APP

    *
  • *
  • *

    IOS_APP

    *
  • *
  • *

    WEB_APP

    *
  • *
  • *

    EXTERNAL_DATA

    *
  • *
  • *

    APPIUM_JAVA_JUNIT_TEST_PACKAGE

    *
  • *
  • *

    APPIUM_JAVA_TESTNG_TEST_PACKAGE

    *
  • *
  • *

    APPIUM_PYTHON_TEST_PACKAGE

    *
  • *
  • *

    APPIUM_NODE_TEST_PACKAGE

    *
  • *
  • *

    APPIUM_RUBY_TEST_PACKAGE

    *
  • *
  • *

    APPIUM_WEB_JAVA_JUNIT_TEST_PACKAGE

    *
  • *
  • *

    APPIUM_WEB_JAVA_TESTNG_TEST_PACKAGE

    *
  • *
  • *

    APPIUM_WEB_PYTHON_TEST_PACKAGE

    *
  • *
  • *

    APPIUM_WEB_NODE_TEST_PACKAGE

    *
  • *
  • *

    APPIUM_WEB_RUBY_TEST_PACKAGE

    *
  • *
  • *

    INSTRUMENTATION_TEST_PACKAGE

    *
  • *
  • *

    XCTEST_TEST_PACKAGE

    *
  • *
  • *

    XCTEST_UI_TEST_PACKAGE

    *
  • *
  • *

    APPIUM_JAVA_JUNIT_TEST_SPEC

    *
  • *
  • *

    APPIUM_JAVA_TESTNG_TEST_SPEC

    *
  • *
  • *

    APPIUM_PYTHON_TEST_SPEC

    *
  • *
  • *

    APPIUM_NODE_TEST_SPEC

    *
  • *
  • *

    APPIUM_RUBY_TEST_SPEC

    *
  • *
  • *

    APPIUM_WEB_JAVA_JUNIT_TEST_SPEC

    *
  • *
  • *

    APPIUM_WEB_JAVA_TESTNG_TEST_SPEC

    *
  • *
  • *

    APPIUM_WEB_PYTHON_TEST_SPEC

    *
  • *
  • *

    APPIUM_WEB_NODE_TEST_SPEC

    *
  • *
  • *

    APPIUM_WEB_RUBY_TEST_SPEC

    *
  • *
  • *

    INSTRUMENTATION_TEST_SPEC

    *
  • *
  • *

    XCTEST_UI_TEST_SPEC

    *
  • *
*

If you call CreateUpload with WEB_APP specified, AWS * Device Farm throws an ArgumentException error.

* @public */ type: UploadType | undefined; /** *

The upload's content type (for example, application/octet-stream).

* @public */ contentType?: string | undefined; } /** *

An app or a set of one or more tests to upload or that have been * uploaded.

* @public */ export interface Upload { /** *

The upload's ARN.

* @public */ arn?: string | undefined; /** *

The upload's file name.

* @public */ name?: string | undefined; /** *

When the upload was created.

* @public */ created?: Date | undefined; /** *

The upload's type.

*

Must be one of the following values:

*
    *
  • *

    ANDROID_APP

    *
  • *
  • *

    IOS_APP

    *
  • *
  • *

    WEB_APP

    *
  • *
  • *

    EXTERNAL_DATA

    *
  • *
  • *

    APPIUM_JAVA_JUNIT_TEST_PACKAGE

    *
  • *
  • *

    APPIUM_JAVA_TESTNG_TEST_PACKAGE

    *
  • *
  • *

    APPIUM_PYTHON_TEST_PACKAGE

    *
  • *
  • *

    APPIUM_NODE_TEST_PACKAGE

    *
  • *
  • *

    APPIUM_RUBY_TEST_PACKAGE

    *
  • *
  • *

    APPIUM_WEB_JAVA_JUNIT_TEST_PACKAGE

    *
  • *
  • *

    APPIUM_WEB_JAVA_TESTNG_TEST_PACKAGE

    *
  • *
  • *

    APPIUM_WEB_PYTHON_TEST_PACKAGE

    *
  • *
  • *

    APPIUM_WEB_NODE_TEST_PACKAGE

    *
  • *
  • *

    APPIUM_WEB_RUBY_TEST_PACKAGE

    *
  • *
  • *

    INSTRUMENTATION_TEST_PACKAGE

    *
  • *
  • *

    XCTEST_TEST_PACKAGE

    *
  • *
  • *

    XCTEST_UI_TEST_PACKAGE

    *
  • *
  • *

    APPIUM_JAVA_JUNIT_TEST_SPEC

    *
  • *
  • *

    APPIUM_JAVA_TESTNG_TEST_SPEC

    *
  • *
  • *

    APPIUM_PYTHON_TEST_SPEC

    *
  • *
  • *

    APPIUM_NODE_TEST_SPEC

    *
  • *
  • *

    APPIUM_RUBY_TEST_SPEC

    *
  • *
  • *

    APPIUM_WEB_JAVA_JUNIT_TEST_SPEC

    *
  • *
  • *

    APPIUM_WEB_JAVA_TESTNG_TEST_SPEC

    *
  • *
  • *

    APPIUM_WEB_PYTHON_TEST_SPEC

    *
  • *
  • *

    APPIUM_WEB_NODE_TEST_SPEC

    *
  • *
  • *

    APPIUM_WEB_RUBY_TEST_SPEC

    *
  • *
  • *

    INSTRUMENTATION_TEST_SPEC

    *
  • *
  • *

    XCTEST_UI_TEST_SPEC

    *
  • *
* @public */ type?: UploadType | undefined; /** *

The upload's status.

*

Must be one of the following values:

*
    *
  • *

    FAILED

    *
  • *
  • *

    INITIALIZED

    *
  • *
  • *

    PROCESSING

    *
  • *
  • *

    SUCCEEDED

    *
  • *
* @public */ status?: UploadStatus | undefined; /** *

The presigned Amazon S3 URL that was used to store a file using a PUT request.

* @public */ url?: string | undefined; /** *

The upload's metadata. For example, for Android, this contains information that is * parsed from the manifest and is displayed in the AWS Device Farm console after the * associated app is uploaded.

* @public */ metadata?: string | undefined; /** *

The upload's content type (for example, application/octet-stream).

* @public */ contentType?: string | undefined; /** *

A message about the upload's result.

* @public */ message?: string | undefined; /** *

The upload's category. Allowed values include:

*
    *
  • *

    CURATED: An upload managed by AWS Device Farm.

    *
  • *
  • *

    PRIVATE: An upload managed by the AWS Device Farm customer.

    *
  • *
* @public */ category?: UploadCategory | undefined; } /** *

Represents the result of a create upload request.

* @public */ export interface CreateUploadResult { /** *

The newly created upload.

* @public */ upload?: Upload | undefined; } /** * @public */ export interface CreateVPCEConfigurationRequest { /** *

The friendly name you give to your VPC endpoint configuration, to manage your * configurations more easily.

* @public */ vpceConfigurationName: string | undefined; /** *

The name of the VPC endpoint service running in your AWS account that you want Device Farm to test.

* @public */ vpceServiceName: string | undefined; /** *

The DNS name of the service running in your VPC that you want Device Farm to * test.

* @public */ serviceDnsName: string | undefined; /** *

An optional description that provides details about your VPC endpoint configuration.

* @public */ vpceConfigurationDescription?: string | undefined; } /** *

Represents an Amazon Virtual Private Cloud (VPC) endpoint configuration.

* @public */ export interface VPCEConfiguration { /** *

The Amazon Resource Name (ARN) of the VPC endpoint configuration.

* @public */ arn?: string | undefined; /** *

The friendly name you give to your VPC endpoint configuration to manage your configurations more * easily.

* @public */ vpceConfigurationName?: string | undefined; /** *

The name of the VPC endpoint service running in your AWS account that you want Device Farm to test.

* @public */ vpceServiceName?: string | undefined; /** *

The DNS name that maps to the private IP address of the service you want to * access.

* @public */ serviceDnsName?: string | undefined; /** *

An optional description that provides details about your VPC endpoint configuration.

* @public */ vpceConfigurationDescription?: string | undefined; } /** * @public */ export interface CreateVPCEConfigurationResult { /** *

An object that contains information about your VPC endpoint configuration.

* @public */ vpceConfiguration?: VPCEConfiguration | undefined; } /** *

A JSON object that specifies the paths where the artifacts generated by the customer's tests, on the * device or in the test environment, are pulled from.

*

Specify deviceHostPaths and optionally specify either * iosPaths or androidPaths.

*

For web app tests, you can specify both iosPaths and * androidPaths.

* @public */ export interface CustomerArtifactPaths { /** *

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

* @public */ iosPaths?: string[] | undefined; /** *

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

* @public */ androidPaths?: string[] | undefined; /** *

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

* @public */ deviceHostPaths?: string[] | undefined; } /** *

Represents a request to the delete device pool operation.

* @public */ export interface DeleteDevicePoolRequest { /** *

Represents the Amazon Resource Name (ARN) of the Device Farm device pool to delete.

* @public */ arn: string | undefined; } /** *

Represents the result of a delete device pool request.

* @public */ export interface DeleteDevicePoolResult { } /** * @public */ export interface DeleteInstanceProfileRequest { /** *

The Amazon Resource Name (ARN) of the instance profile you are requesting to * delete.

* @public */ arn: string | undefined; } /** * @public */ export interface DeleteInstanceProfileResult { } /** * @public */ export interface DeleteNetworkProfileRequest { /** *

The ARN of the network profile to delete.

* @public */ arn: string | undefined; } /** * @public */ export interface DeleteNetworkProfileResult { } /** *

Represents a request to the delete project operation.

* @public */ export interface DeleteProjectRequest { /** *

Represents the Amazon Resource Name (ARN) of the Device Farm project to delete.

* @public */ arn: string | undefined; } /** *

Represents the result of a delete project request.

* @public */ export interface DeleteProjectResult { } /** *

Represents the request to delete the specified remote access session.

* @public */ export interface DeleteRemoteAccessSessionRequest { /** *

The Amazon Resource Name (ARN) of the session for which you want to delete remote * access.

* @public */ arn: string | undefined; } /** *

The response from the server when a request is made to delete the remote access * session.

* @public */ export interface DeleteRemoteAccessSessionResult { } /** *

Represents a request to the delete run operation.

* @public */ export interface DeleteRunRequest { /** *

The Amazon Resource Name (ARN) for the run to delete.

* @public */ arn: string | undefined; } /** *

Represents the result of a delete run request.

* @public */ export interface DeleteRunResult { } /** * @public */ export interface DeleteTestGridProjectRequest { /** *

The ARN of the project to delete, from CreateTestGridProject or ListTestGridProjects.

* @public */ projectArn: string | undefined; } /** * @public */ export interface DeleteTestGridProjectResult { } /** *

Represents a request to the delete upload operation.

* @public */ export interface DeleteUploadRequest { /** *

Represents the Amazon Resource Name (ARN) of the Device Farm upload to delete.

* @public */ arn: string | undefined; } /** *

Represents the result of a delete upload request.

* @public */ export interface DeleteUploadResult { } /** * @public */ export interface DeleteVPCEConfigurationRequest { /** *

The Amazon Resource Name (ARN) of the VPC endpoint configuration you want to * delete.

* @public */ arn: string | undefined; } /** * @public */ export interface DeleteVPCEConfigurationResult { } /** *

Represents the request sent to retrieve the account settings.

* @public */ export interface GetAccountSettingsRequest { } /** *

Represents the account settings return values from the * GetAccountSettings request.

* @public */ export interface GetAccountSettingsResult { /** *

The account settings.

* @public */ accountSettings?: AccountSettings | undefined; } /** *

Represents a request to the get device request.

* @public */ export interface GetDeviceRequest { /** *

The device type's ARN.

* @public */ arn: string | undefined; } /** *

Represents the result of a get device request.

* @public */ export interface GetDeviceResult { /** *

An object that contains information about the requested device.

* @public */ device?: Device | undefined; } /** * @public */ export interface GetDeviceInstanceRequest { /** *

The Amazon Resource Name (ARN) of the instance you're requesting information * about.

* @public */ arn: string | undefined; } /** * @public */ export interface GetDeviceInstanceResult { /** *

An object that contains information about your device instance.

* @public */ deviceInstance?: DeviceInstance | undefined; } /** *

Represents a request to the get device pool operation.

* @public */ export interface GetDevicePoolRequest { /** *

The device pool's ARN.

* @public */ arn: string | undefined; } /** *

Represents the result of a get device pool request.

* @public */ export interface GetDevicePoolResult { /** *

An object that contains information about the requested device pool.

* @public */ devicePool?: DevicePool | undefined; } /** *

Represents a latitude and longitude pair, expressed in geographic coordinate system degrees (for * example, 47.6204, -122.3491).

*

Elevation is currently not supported.

* @public */ export interface Location { /** *

The latitude.

* @public */ latitude: number | undefined; /** *

The longitude.

* @public */ longitude: number | undefined; } /** *

Represents the set of radios and their states on a device. Examples of radios * include Wi-Fi, GPS, Bluetooth, and NFC.

* @public */ export interface Radios { /** *

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

* @public */ wifi?: boolean | undefined; /** *

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

* @public */ bluetooth?: boolean | undefined; /** *

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

* @public */ nfc?: boolean | undefined; /** *

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

* @public */ gps?: boolean | undefined; } /** *

Represents the settings for a run. Includes things like location, radio states, * auxiliary apps, and network profiles.

* @public */ export interface ScheduleRunConfiguration { /** *

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

* @public */ extraDataPackageArn?: string | undefined; /** *

Reserved for internal use.

* @public */ networkProfileArn?: string | undefined; /** *

Information about the locale that is used for the run.

* @public */ locale?: string | undefined; /** *

Information about the location that is used for the run.

* @public */ location?: Location | undefined; /** *

An array of ARNs for your VPC endpoint configurations.

* @public */ vpceConfigurationArns?: string[] | undefined; /** *

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

* @public */ deviceProxy?: DeviceProxy | undefined; /** *

Input CustomerArtifactPaths object for the scheduled run * configuration.

* @public */ customerArtifactPaths?: CustomerArtifactPaths | undefined; /** *

Information about the radio states for the run.

* @public */ radios?: Radios | undefined; /** *

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

* @public */ auxiliaryApps?: string[] | undefined; /** *

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

* *

If you have purchased unmetered device slots, you must set this parameter to unmetered to * make use of them. Otherwise, your run counts against your metered time.

*
* @public */ billingMethod?: BillingMethod | undefined; /** *

Environment variables associated with the run.

* @public */ environmentVariables?: EnvironmentVariable[] | undefined; /** *

An IAM role to be assumed by the test host for the run.

* @public */ executionRoleArn?: string | undefined; } /** *

Represents test settings. This data structure is passed in as the test parameter to ScheduleRun. For an * example of the JSON request syntax, see ScheduleRun.

* @public */ export interface ScheduleRunTest { /** *

The test's type.

*

Must be one of the following values:

*
    *
  • *

    BUILTIN_FUZZ

    *
  • *
  • *

    APPIUM_JAVA_JUNIT

    *
  • *
  • *

    APPIUM_JAVA_TESTNG

    *
  • *
  • *

    APPIUM_PYTHON

    *
  • *
  • *

    APPIUM_NODE

    *
  • *
  • *

    APPIUM_RUBY

    *
  • *
  • *

    APPIUM_WEB_JAVA_JUNIT

    *
  • *
  • *

    APPIUM_WEB_JAVA_TESTNG

    *
  • *
  • *

    APPIUM_WEB_PYTHON

    *
  • *
  • *

    APPIUM_WEB_NODE

    *
  • *
  • *

    APPIUM_WEB_RUBY

    *
  • *
  • *

    INSTRUMENTATION

    *
  • *
  • *

    XCTEST

    *
  • *
  • *

    XCTEST_UI

    *
  • *
* @public */ type: TestType | undefined; /** *

The ARN of the uploaded test to be run.

* @public */ testPackageArn?: string | undefined; /** *

The ARN of the YAML-formatted test specification.

* @public */ testSpecArn?: string | undefined; /** *

The test's filter.

* @public */ filter?: string | undefined; /** *

The test's parameters, such as test framework parameters and fixture settings. * Parameters are represented by name-value pairs of strings.

*

For all tests:

*
    *
  • *

    * app_performance_monitoring: Performance monitoring is enabled by default. * Set this parameter to false to disable it.

    *
  • *
*

For Appium tests (all types):

*
    *
  • *

    appium_version: The Appium version. Currently supported values are 1.6.5 * (and later), latest, and default.

    *
      *
    • *

      latest runs the latest Appium version supported by Device * Farm (1.9.1).

      *
    • *
    • *

      For default, Device Farm selects a compatible version of * Appium for the device. The current behavior is to run 1.7.2 on Android * devices and iOS 9 and earlier and 1.7.2 for iOS 10 and later.

      *
    • *
    • *

      This behavior is subject to change.

      *
    • *
    *
  • *
*

For fuzz tests (Android only):

*
    *
  • *

    event_count: The number of events, between 1 and 10000, that the UI fuzz * test should perform.

    *
  • *
  • *

    throttle: The time, in ms, between 0 and 1000, that the UI fuzz test should * wait between events.

    *
  • *
  • *

    seed: A seed to use for randomizing the UI fuzz test. Using the same seed * value between tests ensures identical event sequences.

    *
  • *
*

For Instrumentation:

*
    *
  • *

    filter: A test filter string. Examples:

    *
      *
    • *

      Running a single test case: com.android.abc.Test1 *

      *
    • *
    • *

      Running a single test: com.android.abc.Test1#smoke *

      *
    • *
    • *

      Running multiple tests: * com.android.abc.Test1,com.android.abc.Test2 *

      *
    • *
    *
  • *
*

For XCTest and XCTestUI:

*
    *
  • *

    filter: A test filter string. Examples:

    *
      *
    • *

      Running a single test class: LoginTests *

      *
    • *
    • *

      Running a multiple test classes: LoginTests,SmokeTests *

      *
    • *
    • *

      Running a single test: LoginTests/testValid *

      *
    • *
    • *

      Running multiple tests: * LoginTests/testValid,LoginTests/testInvalid *

      *
    • *
    *
  • *
* @public */ parameters?: Record | undefined; } /** *

Represents a request to the get device pool compatibility operation.

* @public */ export interface GetDevicePoolCompatibilityRequest { /** *

The device pool's ARN.

* @public */ devicePoolArn: string | undefined; /** *

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

* @public */ appArn?: string | undefined; /** *

The test type for the specified device pool.

*

Allowed values include the following:

*
    *
  • *

    BUILTIN_FUZZ.

    *
  • *
  • *

    APPIUM_JAVA_JUNIT.

    *
  • *
  • *

    APPIUM_JAVA_TESTNG.

    *
  • *
  • *

    APPIUM_PYTHON.

    *
  • *
  • *

    APPIUM_NODE.

    *
  • *
  • *

    APPIUM_RUBY.

    *
  • *
  • *

    APPIUM_WEB_JAVA_JUNIT.

    *
  • *
  • *

    APPIUM_WEB_JAVA_TESTNG.

    *
  • *
  • *

    APPIUM_WEB_PYTHON.

    *
  • *
  • *

    APPIUM_WEB_NODE.

    *
  • *
  • *

    APPIUM_WEB_RUBY.

    *
  • *
  • *

    INSTRUMENTATION.

    *
  • *
  • *

    XCTEST.

    *
  • *
  • *

    XCTEST_UI.

    *
  • *
* @public */ testType?: TestType | undefined; /** *

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

* @public */ test?: ScheduleRunTest | undefined; /** *

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

* @public */ configuration?: ScheduleRunConfiguration | undefined; /** *

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

* @public */ projectArn?: string | undefined; } /** *

Represents information about incompatibility.

* @public */ export interface IncompatibilityMessage { /** *

A message about the incompatibility.

* @public */ message?: string | undefined; /** *

The type of incompatibility.

*

Allowed values include:

*
    *
  • *

    ARN

    *
  • *
  • *

    FORM_FACTOR (for example, phone or tablet)

    *
  • *
  • *

    MANUFACTURER

    *
  • *
  • *

    PLATFORM (for example, Android or iOS)

    *
  • *
  • *

    REMOTE_ACCESS_ENABLED

    *
  • *
  • *

    APPIUM_VERSION

    *
  • *
* @public */ type?: DeviceAttribute | undefined; } /** *

Represents a device pool compatibility result.

* @public */ export interface DevicePoolCompatibilityResult { /** *

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

* @public */ device?: Device | undefined; /** *

Whether the result was compatible with the device pool.

* @public */ compatible?: boolean | undefined; /** *

Information about the compatibility.

* @public */ incompatibilityMessages?: IncompatibilityMessage[] | undefined; } /** *

Represents the result of describe device pool compatibility request.

* @public */ export interface GetDevicePoolCompatibilityResult { /** *

Information about compatible devices.

* @public */ compatibleDevices?: DevicePoolCompatibilityResult[] | undefined; /** *

Information about incompatible devices.

* @public */ incompatibleDevices?: DevicePoolCompatibilityResult[] | undefined; } /** * @public */ export interface GetInstanceProfileRequest { /** *

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

* @public */ arn: string | undefined; } /** * @public */ export interface GetInstanceProfileResult { /** *

An object that contains information about an instance profile.

* @public */ instanceProfile?: InstanceProfile | undefined; } /** *

Represents a request to the get job operation.

* @public */ export interface GetJobRequest { /** *

The job's ARN.

* @public */ arn: string | undefined; } /** *

Represents a device.

* @public */ export interface Job { /** *

The job's ARN.

* @public */ arn?: string | undefined; /** *

The job's name.

* @public */ name?: string | undefined; /** *

The job's type.

*

Allowed values include the following:

*
    *
  • *

    BUILTIN_FUZZ

    *
  • *
  • *

    APPIUM_JAVA_JUNIT

    *
  • *
  • *

    APPIUM_JAVA_TESTNG

    *
  • *
  • *

    APPIUM_PYTHON

    *
  • *
  • *

    APPIUM_NODE

    *
  • *
  • *

    APPIUM_RUBY

    *
  • *
  • *

    APPIUM_WEB_JAVA_JUNIT

    *
  • *
  • *

    APPIUM_WEB_JAVA_TESTNG

    *
  • *
  • *

    APPIUM_WEB_PYTHON

    *
  • *
  • *

    APPIUM_WEB_NODE

    *
  • *
  • *

    APPIUM_WEB_RUBY

    *
  • *
  • *

    INSTRUMENTATION

    *
  • *
  • *

    XCTEST

    *
  • *
  • *

    XCTEST_UI

    *
  • *
* @public */ type?: TestType | undefined; /** *

When the job was created.

* @public */ created?: Date | undefined; /** *

The job's status.

*

Allowed values include:

*
    *
  • *

    PENDING

    *
  • *
  • *

    PENDING_CONCURRENCY

    *
  • *
  • *

    PENDING_DEVICE

    *
  • *
  • *

    PROCESSING

    *
  • *
  • *

    SCHEDULING

    *
  • *
  • *

    PREPARING

    *
  • *
  • *

    RUNNING

    *
  • *
  • *

    COMPLETED

    *
  • *
  • *

    STOPPING

    *
  • *
* @public */ status?: ExecutionStatus | undefined; /** *

The job's result.

*

Allowed values include:

*
    *
  • *

    PENDING

    *
  • *
  • *

    PASSED

    *
  • *
  • *

    WARNED

    *
  • *
  • *

    FAILED

    *
  • *
  • *

    SKIPPED

    *
  • *
  • *

    ERRORED

    *
  • *
  • *

    STOPPED

    *
  • *
* @public */ result?: ExecutionResult | undefined; /** *

The job's start time.

* @public */ started?: Date | undefined; /** *

The job's stop time.

* @public */ stopped?: Date | undefined; /** *

The job's result counters.

* @public */ counters?: Counters | undefined; /** *

A message about the job's result.

* @public */ message?: string | undefined; /** *

The device (phone or tablet).

* @public */ device?: Device | undefined; /** *

The ARN of the instance.

* @public */ instanceArn?: string | undefined; /** *

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

* @public */ deviceMinutes?: DeviceMinutes | undefined; /** *

The endpoint for streaming device video.

* @public */ videoEndpoint?: string | undefined; /** *

This value is set to true if video capture is enabled. Otherwise, it is set to false.

* @public */ videoCapture?: boolean | undefined; } /** *

Represents the result of a get job request.

* @public */ export interface GetJobResult { /** *

An object that contains information about the requested job.

* @public */ job?: Job | undefined; } /** * @public */ export interface GetNetworkProfileRequest { /** *

The ARN of the network profile to return information about.

* @public */ arn: string | undefined; } /** * @public */ export interface GetNetworkProfileResult { /** *

The network profile.

* @public */ networkProfile?: NetworkProfile | undefined; } /** *

Represents the request to retrieve the offering status for the specified customer * or account.

* @public */ export interface GetOfferingStatusRequest { /** *

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.

* @public */ nextToken?: string | undefined; } /** *

A number that represents the monetary amount for an offering or transaction.

* @public */ export interface MonetaryAmount { /** *

The numerical amount of an offering or transaction.

* @public */ amount?: number | undefined; /** *

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

* @public */ currencyCode?: CurrencyCode | undefined; } /** *

Specifies whether charges for devices are recurring.

* @public */ export interface RecurringCharge { /** *

The cost of the recurring charge.

* @public */ cost?: MonetaryAmount | undefined; /** *

The frequency in which charges recur.

* @public */ frequency?: RecurringChargeFrequency | undefined; } /** *

Represents the metadata of a device offering.

* @public */ export interface Offering { /** *

The ID that corresponds to a device offering.

* @public */ id?: string | undefined; /** *

A string that describes the offering.

* @public */ description?: string | undefined; /** *

The type of offering (for example, RECURRING) for a device.

* @public */ type?: OfferingType | undefined; /** *

The platform of the device (for example, ANDROID or IOS).

* @public */ platform?: DevicePlatform | undefined; /** *

Specifies whether there are recurring charges for the offering.

* @public */ recurringCharges?: RecurringCharge[] | undefined; } /** *

The status of the offering.

* @public */ export interface OfferingStatus { /** *

The type specified for the offering status.

* @public */ type?: OfferingTransactionType | undefined; /** *

Represents the metadata of an offering status.

* @public */ offering?: Offering | undefined; /** *

The number of available devices in the offering.

* @public */ quantity?: number | undefined; /** *

The date on which the offering is effective.

* @public */ effectiveOn?: Date | undefined; } /** *

Returns the status result for a device offering.

* @public */ export interface GetOfferingStatusResult { /** *

When specified, gets the offering status for the current period.

* @public */ current?: Record | undefined; /** *

When specified, gets the offering status for the next period.

* @public */ nextPeriod?: Record | undefined; /** *

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.

* @public */ nextToken?: string | undefined; } /** *

Represents a request to the get project operation.

* @public */ export interface GetProjectRequest { /** *

The project's ARN.

* @public */ arn: string | undefined; } /** *

Represents the result of a get project request.

* @public */ export interface GetProjectResult { /** *

The project to get information about.

* @public */ project?: Project | undefined; } /** *

Represents the request to get information about the specified remote access * session.

* @public */ export interface GetRemoteAccessSessionRequest { /** *

The Amazon Resource Name (ARN) of the remote access session about which you want to * get session information.

* @public */ arn: string | undefined; } /** *

Represents the response from the server that lists detailed information about the * remote access session.

* @public */ export interface GetRemoteAccessSessionResult { /** *

A container that lists detailed information about the remote access * session.

* @public */ remoteAccessSession?: RemoteAccessSession | undefined; } /** *

Represents a request to the get run operation.

* @public */ export interface GetRunRequest { /** *

The run's ARN.

* @public */ arn: string | undefined; } /** *

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.

* @public */ export interface DeviceFilter { /** *

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 *

*
*
* @public */ attribute: DeviceFilterAttribute | undefined; /** *

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

* @public */ operator: RuleOperator | undefined; /** *

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.

    *
  • *
* @public */ values: string[] | undefined; } /** *

Contains the run results requested by the device selection configuration and how many devices were * returned. For an example of the JSON response syntax, see ScheduleRun.

* @public */ export interface DeviceSelectionResult { /** *

The filters in a device selection result.

* @public */ filters?: DeviceFilter[] | undefined; /** *

The number of devices that matched the device filter selection criteria.

* @public */ matchedDevicesCount?: number | undefined; /** *

The maximum number of devices to be selected by a device filter and included in a test * run.

* @public */ maxDevices?: number | undefined; } /** *

Represents a test run on a set of devices with a given app package, test parameters, and so * on.

* @public */ export interface Run { /** *

The run's ARN.

* @public */ arn?: string | undefined; /** *

The run's name.

* @public */ name?: string | undefined; /** *

The run's type.

*

Must be one of the following values:

*
    *
  • *

    BUILTIN_FUZZ

    *
  • *
  • *

    APPIUM_JAVA_JUNIT

    *
  • *
  • *

    APPIUM_JAVA_TESTNG

    *
  • *
  • *

    APPIUM_PYTHON

    *
  • *
  • *

    APPIUM_NODE

    *
  • *
  • *

    APPIUM_RUBY

    *
  • *
  • *

    APPIUM_WEB_JAVA_JUNIT

    *
  • *
  • *

    APPIUM_WEB_JAVA_TESTNG

    *
  • *
  • *

    APPIUM_WEB_PYTHON

    *
  • *
  • *

    APPIUM_WEB_NODE

    *
  • *
  • *

    APPIUM_WEB_RUBY

    *
  • *
  • *

    INSTRUMENTATION

    *
  • *
  • *

    XCTEST

    *
  • *
  • *

    XCTEST_UI

    *
  • *
* @public */ type?: TestType | undefined; /** *

The run's platform.

*

Allowed values include:

*
    *
  • *

    ANDROID

    *
  • *
  • *

    IOS

    *
  • *
* @public */ platform?: DevicePlatform | undefined; /** *

When the run was created.

* @public */ created?: Date | undefined; /** *

The run's status.

*

Allowed values include:

*
    *
  • *

    PENDING

    *
  • *
  • *

    PENDING_CONCURRENCY

    *
  • *
  • *

    PENDING_DEVICE

    *
  • *
  • *

    PROCESSING

    *
  • *
  • *

    SCHEDULING

    *
  • *
  • *

    PREPARING

    *
  • *
  • *

    RUNNING

    *
  • *
  • *

    COMPLETED

    *
  • *
  • *

    STOPPING

    *
  • *
* @public */ status?: ExecutionStatus | undefined; /** *

The run's result.

*

Allowed values include:

*
    *
  • *

    PENDING

    *
  • *
  • *

    PASSED

    *
  • *
  • *

    WARNED

    *
  • *
  • *

    FAILED

    *
  • *
  • *

    SKIPPED

    *
  • *
  • *

    ERRORED

    *
  • *
  • *

    STOPPED

    *
  • *
* @public */ result?: ExecutionResult | undefined; /** *

The run's start time.

* @public */ started?: Date | undefined; /** *

The run's stop time.

* @public */ stopped?: Date | undefined; /** *

The run's result counters.

* @public */ counters?: Counters | undefined; /** *

A message about the run's result.

* @public */ message?: string | undefined; /** *

The total number of jobs for the run.

* @public */ totalJobs?: number | undefined; /** *

The total number of completed jobs.

* @public */ completedJobs?: number | undefined; /** *

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

* *

If you have unmetered device slots, you must set this to unmetered to use them. * Otherwise, the run is counted toward metered device minutes.

*
* @public */ billingMethod?: BillingMethod | undefined; /** *

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

* @public */ deviceMinutes?: DeviceMinutes | undefined; /** *

The network profile being used for a test run.

* @public */ networkProfile?: NetworkProfile | undefined; /** *

The device proxy configured for the devices in the run.

* @public */ deviceProxy?: DeviceProxy | undefined; /** *

Read-only URL for an object in an S3 bucket where you can get the parsing results of the test package. * If the test package doesn't parse, the reason why it doesn't parse appears in the file that this URL points * to.

* @public */ parsingResultUrl?: string | undefined; /** *

Supporting field for the result field. Set only if result is SKIPPED. * PARSING_FAILED if the result is skipped because of test package parsing failure.

* @public */ resultCode?: ExecutionResultCode | undefined; /** *

For fuzz tests, this is a seed to use for randomizing the UI fuzz test. Using the same * seed value between tests ensures identical event sequences.

* @public */ seed?: number | undefined; /** *

An app to upload or that has been uploaded.

* @public */ appUpload?: string | undefined; /** *

For fuzz tests, this is the number of events, between 1 and 10000, that the UI fuzz * test should perform.

* @public */ eventCount?: number | undefined; /** *

The number of minutes the job executes before it times out.

* @public */ jobTimeoutMinutes?: number | undefined; /** *

The ARN of the device pool for the run.

* @public */ devicePoolArn?: string | undefined; /** *

Information about the locale that is used for the run.

* @public */ locale?: string | undefined; /** *

Information about the radio states for the run.

* @public */ radios?: Radios | undefined; /** *

Information about the location that is used for the run.

* @public */ location?: Location | undefined; /** *

Output CustomerArtifactPaths object for the test run.

* @public */ customerArtifactPaths?: CustomerArtifactPaths | undefined; /** *

The Device Farm console URL for the recording of the run.

* @public */ webUrl?: string | undefined; /** *

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.

* @public */ skipAppResign?: boolean | undefined; /** *

The ARN of the YAML-formatted test specification for the run.

* @public */ testSpecArn?: string | undefined; /** *

The results of a device filter used to select the devices for a test run.

* @public */ deviceSelectionResult?: DeviceSelectionResult | undefined; /** *

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

* @public */ vpcConfig?: VpcConfig | undefined; /** *

The IAM role associated with the run.

* @public */ executionRoleArn?: string | undefined; /** *

Environment variables associated with the run.

* @public */ environmentVariables?: EnvironmentVariable[] | undefined; } /** *

Represents the result of a get run request.

* @public */ export interface GetRunResult { /** *

The run to get results from.

* @public */ run?: Run | undefined; } /** *

Represents a request to the get suite operation.

* @public */ export interface GetSuiteRequest { /** *

The suite's ARN.

* @public */ arn: string | undefined; } /** *

Represents a collection of one or more tests.

* @public */ export interface Suite { /** *

The suite's ARN.

* @public */ arn?: string | undefined; /** *

The suite's name.

* @public */ name?: string | undefined; /** *

The suite's type.

*

Must be one of the following values:

*
    *
  • *

    BUILTIN_FUZZ

    *
  • *
  • *

    APPIUM_JAVA_JUNIT

    *
  • *
  • *

    APPIUM_JAVA_TESTNG

    *
  • *
  • *

    APPIUM_PYTHON

    *
  • *
  • *

    APPIUM_NODE

    *
  • *
  • *

    APPIUM_RUBY

    *
  • *
  • *

    APPIUM_WEB_JAVA_JUNIT

    *
  • *
  • *

    APPIUM_WEB_JAVA_TESTNG

    *
  • *
  • *

    APPIUM_WEB_PYTHON

    *
  • *
  • *

    APPIUM_WEB_NODE

    *
  • *
  • *

    APPIUM_WEB_RUBY

    *
  • *
  • *

    INSTRUMENTATION

    *
  • *
  • *

    XCTEST

    *
  • *
  • *

    XCTEST_UI

    *
  • *
* @public */ type?: TestType | undefined; /** *

When the suite was created.

* @public */ created?: Date | undefined; /** *

The suite's status.

*

Allowed values include:

*
    *
  • *

    PENDING

    *
  • *
  • *

    PENDING_CONCURRENCY

    *
  • *
  • *

    PENDING_DEVICE

    *
  • *
  • *

    PROCESSING

    *
  • *
  • *

    SCHEDULING

    *
  • *
  • *

    PREPARING

    *
  • *
  • *

    RUNNING

    *
  • *
  • *

    COMPLETED

    *
  • *
  • *

    STOPPING

    *
  • *
* @public */ status?: ExecutionStatus | undefined; /** *

The suite's result.

*

Allowed values include:

*
    *
  • *

    PENDING

    *
  • *
  • *

    PASSED

    *
  • *
  • *

    WARNED

    *
  • *
  • *

    FAILED

    *
  • *
  • *

    SKIPPED

    *
  • *
  • *

    ERRORED

    *
  • *
  • *

    STOPPED

    *
  • *
* @public */ result?: ExecutionResult | undefined; /** *

The suite's start time.

* @public */ started?: Date | undefined; /** *

The suite's stop time.

* @public */ stopped?: Date | undefined; /** *

The suite's result counters.

* @public */ counters?: Counters | undefined; /** *

A message about the suite's result.

* @public */ message?: string | undefined; /** *

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

* @public */ deviceMinutes?: DeviceMinutes | undefined; } /** *

Represents the result of a get suite request.

* @public */ export interface GetSuiteResult { /** *

A collection of one or more tests.

* @public */ suite?: Suite | undefined; } /** *

Represents a request to the get test operation.

* @public */ export interface GetTestRequest { /** *

The test's ARN.

* @public */ arn: string | undefined; } /** *

Represents a condition that is evaluated.

* @public */ export interface Test { /** *

The test's ARN.

* @public */ arn?: string | undefined; /** *

The test's name.

* @public */ name?: string | undefined; /** *

The test's type.

*

Must be one of the following values:

*
    *
  • *

    BUILTIN_FUZZ

    *
  • *
  • *

    APPIUM_JAVA_JUNIT

    *
  • *
  • *

    APPIUM_JAVA_TESTNG

    *
  • *
  • *

    APPIUM_PYTHON

    *
  • *
  • *

    APPIUM_NODE

    *
  • *
  • *

    APPIUM_RUBY

    *
  • *
  • *

    APPIUM_WEB_JAVA_JUNIT

    *
  • *
  • *

    APPIUM_WEB_JAVA_TESTNG

    *
  • *
  • *

    APPIUM_WEB_PYTHON

    *
  • *
  • *

    APPIUM_WEB_NODE

    *
  • *
  • *

    APPIUM_WEB_RUBY

    *
  • *
  • *

    INSTRUMENTATION

    *
  • *
  • *

    XCTEST

    *
  • *
  • *

    XCTEST_UI

    *
  • *
* @public */ type?: TestType | undefined; /** *

When the test was created.

* @public */ created?: Date | undefined; /** *

The test's status.

*

Allowed values include:

*
    *
  • *

    PENDING

    *
  • *
  • *

    PENDING_CONCURRENCY

    *
  • *
  • *

    PENDING_DEVICE

    *
  • *
  • *

    PROCESSING

    *
  • *
  • *

    SCHEDULING

    *
  • *
  • *

    PREPARING

    *
  • *
  • *

    RUNNING

    *
  • *
  • *

    COMPLETED

    *
  • *
  • *

    STOPPING

    *
  • *
* @public */ status?: ExecutionStatus | undefined; /** *

The test's result.

*

Allowed values include:

*
    *
  • *

    PENDING

    *
  • *
  • *

    PASSED

    *
  • *
  • *

    WARNED

    *
  • *
  • *

    FAILED

    *
  • *
  • *

    SKIPPED

    *
  • *
  • *

    ERRORED

    *
  • *
  • *

    STOPPED

    *
  • *
* @public */ result?: ExecutionResult | undefined; /** *

The test's start time.

* @public */ started?: Date | undefined; /** *

The test's stop time.

* @public */ stopped?: Date | undefined; /** *

The test's result counters.

* @public */ counters?: Counters | undefined; /** *

A message about the test's result.

* @public */ message?: string | undefined; /** *

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

* @public */ deviceMinutes?: DeviceMinutes | undefined; } /** *

Represents the result of a get test request.

* @public */ export interface GetTestResult { /** *

A test condition that is evaluated.

* @public */ test?: Test | undefined; } /** * @public */ export interface GetTestGridProjectRequest { /** *

The ARN of the Selenium testing project, from either CreateTestGridProject or ListTestGridProjects.

* @public */ projectArn: string | undefined; } /** * @public */ export interface GetTestGridProjectResult { /** *

A TestGridProject.

* @public */ testGridProject?: TestGridProject | undefined; } /** * @public */ export interface GetTestGridSessionRequest { /** *

The ARN for the project that this session belongs to. See CreateTestGridProject and ListTestGridProjects.

* @public */ projectArn?: string | undefined; /** *

An ID associated with this session.

* @public */ sessionId?: string | undefined; /** *

An ARN that uniquely identifies a TestGridSession.

* @public */ sessionArn?: string | undefined; } /** *

A TestGridSession is a single instance of a browser launched from the URL provided by a * call to CreateTestGridUrl.

* @public */ export interface TestGridSession { /** *

The ARN of the session.

* @public */ arn?: string | undefined; /** *

The state of the session.

* @public */ status?: TestGridSessionStatus | undefined; /** *

The time that the session was started.

* @public */ created?: Date | undefined; /** *

The time the session ended.

* @public */ ended?: Date | undefined; /** *

The number of billed minutes that were used for this session.

* @public */ billingMinutes?: number | undefined; /** *

A JSON object of options and parameters passed to the Selenium WebDriver.

* @public */ seleniumProperties?: string | undefined; } /** * @public */ export interface GetTestGridSessionResult { /** *

The TestGridSession that was requested.

* @public */ testGridSession?: TestGridSession | undefined; } /** *

Represents a request to the get upload operation.

* @public */ export interface GetUploadRequest { /** *

The upload's ARN.

* @public */ arn: string | undefined; } /** *

Represents the result of a get upload request.

* @public */ export interface GetUploadResult { /** *

An app or a set of one or more tests to upload or that have been * uploaded.

* @public */ upload?: Upload | undefined; } /** * @public */ export interface GetVPCEConfigurationRequest { /** *

The Amazon Resource Name (ARN) of the VPC endpoint configuration you want to * describe.

* @public */ arn: string | undefined; } /** * @public */ export interface GetVPCEConfigurationResult { /** *

An object that contains information about your VPC endpoint configuration.

* @public */ vpceConfiguration?: VPCEConfiguration | undefined; } /** *

Represents the request to install an Android application (in .apk format) or an iOS * application (in .ipa format) as part of a remote access session.

* @public */ export interface InstallToRemoteAccessSessionRequest { /** *

The Amazon Resource Name (ARN) of the remote access session about which you are * requesting information.

* @public */ remoteAccessSessionArn: string | undefined; /** *

The ARN of the app about which you are requesting information.

* @public */ appArn: string | undefined; } /** *

Represents the response from the server after AWS Device Farm makes a request to * install to a remote access session.

* @public */ export interface InstallToRemoteAccessSessionResult { /** *

An app to upload or that has been uploaded.

* @public */ appUpload?: Upload | undefined; } /** *

Represents a request to the list artifacts operation.

* @public */ export interface ListArtifactsRequest { /** *

The run, job, suite, or test ARN.

* @public */ arn: string | undefined; /** *

The artifacts' type.

*

Allowed values include:

*
    *
  • *

    FILE

    *
  • *
  • *

    LOG

    *
  • *
  • *

    SCREENSHOT

    *
  • *
* @public */ type: ArtifactCategory | undefined; /** *

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.

* @public */ nextToken?: string | undefined; } /** *

Represents the result of a list artifacts operation.

* @public */ export interface ListArtifactsResult { /** *

Information about the artifacts.

* @public */ artifacts?: Artifact[] | undefined; /** *

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.

* @public */ nextToken?: string | undefined; } /** * @public */ export interface ListDeviceInstancesRequest { /** *

An integer that specifies the maximum number of items you want to return in the API response.

* @public */ maxResults?: number | undefined; /** *

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.

* @public */ nextToken?: string | undefined; } /** * @public */ export interface ListDeviceInstancesResult { /** *

An object that contains information about your device instances.

* @public */ deviceInstances?: DeviceInstance[] | undefined; /** *

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

* @public */ nextToken?: string | undefined; } /** *

Represents the result of a list device pools request.

* @public */ export interface ListDevicePoolsRequest { /** *

The project ARN.

* @public */ arn: string | undefined; /** *

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.

    *
  • *
* @public */ type?: DevicePoolType | undefined; /** *

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.

* @public */ nextToken?: string | undefined; } /** *

Represents the result of a list device pools request.

* @public */ export interface ListDevicePoolsResult { /** *

Information about the device pools.

* @public */ devicePools?: DevicePool[] | undefined; /** *

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.

* @public */ nextToken?: string | undefined; } /** *

Represents the result of a list devices request.

* @public */ export interface ListDevicesRequest { /** *

The Amazon Resource Name (ARN) of the project.

* @public */ arn?: string | undefined; /** *

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.

* @public */ nextToken?: string | undefined; /** *

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.

      *
    • *
    *
  • *
* @public */ filters?: DeviceFilter[] | undefined; } /** *

Represents the result of a list devices operation.

* @public */ export interface ListDevicesResult { /** *

Information about the devices.

* @public */ devices?: Device[] | undefined; /** *

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.

* @public */ nextToken?: string | undefined; } /** * @public */ export interface ListInstanceProfilesRequest { /** *

An integer that specifies the maximum number of items you want to return in the API response.

* @public */ maxResults?: number | undefined; /** *

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.

* @public */ nextToken?: string | undefined; } /** * @public */ export interface ListInstanceProfilesResult { /** *

An object that contains information about your instance profiles.

* @public */ instanceProfiles?: InstanceProfile[] | undefined; /** *

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

* @public */ nextToken?: string | undefined; } /** *

Represents a request to the list jobs operation.

* @public */ export interface ListJobsRequest { /** *

The run's Amazon Resource Name (ARN).

* @public */ arn: string | undefined; /** *

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.

* @public */ nextToken?: string | undefined; } /** *

Represents the result of a list jobs request.

* @public */ export interface ListJobsResult { /** *

Information about the jobs.

* @public */ jobs?: Job[] | undefined; /** *

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.

* @public */ nextToken?: string | undefined; } /** * @public */ export interface ListNetworkProfilesRequest { /** *

The Amazon Resource Name (ARN) of the project for which you want to list network * profiles.

* @public */ arn: string | undefined; /** *

The type of network profile to return information about. Valid values are listed here.

* @public */ type?: NetworkProfileType | undefined; /** *

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.

* @public */ nextToken?: string | undefined; } /** * @public */ export interface ListNetworkProfilesResult { /** *

A list of the available network profiles.

* @public */ networkProfiles?: NetworkProfile[] | undefined; /** *

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.

* @public */ nextToken?: string | undefined; } /** * @public */ export interface ListOfferingPromotionsRequest { /** *

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.

* @public */ nextToken?: string | undefined; } /** *

Represents information about an offering promotion.

* @public */ export interface OfferingPromotion { /** *

The ID of the offering promotion.

* @public */ id?: string | undefined; /** *

A string that describes the offering promotion.

* @public */ description?: string | undefined; } /** * @public */ export interface ListOfferingPromotionsResult { /** *

Information about the offering promotions.

* @public */ offeringPromotions?: OfferingPromotion[] | undefined; /** *

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

* @public */ nextToken?: string | undefined; } /** *

Represents the request to list all offerings.

* @public */ export interface ListOfferingsRequest { /** *

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.

* @public */ nextToken?: string | undefined; } /** *

Represents the return values of the list of offerings.

* @public */ export interface ListOfferingsResult { /** *

A value that represents the list offering results.

* @public */ offerings?: Offering[] | undefined; /** *

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.

* @public */ nextToken?: string | undefined; } /** *

Represents the request to list the offering transaction history.

* @public */ export interface ListOfferingTransactionsRequest { /** *

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.

* @public */ nextToken?: string | undefined; } /** *

Represents the metadata of an offering transaction.

* @public */ export interface OfferingTransaction { /** *

The status of an offering transaction.

* @public */ offeringStatus?: OfferingStatus | undefined; /** *

The transaction ID of the offering transaction.

* @public */ transactionId?: string | undefined; /** *

The ID that corresponds to a device offering promotion.

* @public */ offeringPromotionId?: string | undefined; /** *

The date on which an offering transaction was created.

* @public */ createdOn?: Date | undefined; /** *

The cost of an offering transaction.

* @public */ cost?: MonetaryAmount | undefined; } /** *

Returns the transaction log of the specified offerings.

* @public */ export interface ListOfferingTransactionsResult { /** *

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

* @public */ offeringTransactions?: OfferingTransaction[] | undefined; /** *

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.

* @public */ nextToken?: string | undefined; } /** *

Represents a request to the list projects operation.

* @public */ export interface ListProjectsRequest { /** *

Optional. If no Amazon Resource Name (ARN) is specified, then AWS Device Farm * returns a list of all projects for the AWS account. You can also specify a project * ARN.

* @public */ arn?: string | undefined; /** *

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.

* @public */ nextToken?: string | undefined; } /** *

Represents the result of a list projects request.

* @public */ export interface ListProjectsResult { /** *

Information about the projects.

* @public */ projects?: Project[] | undefined; /** *

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.

* @public */ nextToken?: string | undefined; } /** *

Represents the request to return information about the remote access * session.

* @public */ export interface ListRemoteAccessSessionsRequest { /** *

The Amazon Resource Name (ARN) of the project about which you are requesting * information.

* @public */ arn: string | undefined; /** *

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.

* @public */ nextToken?: string | undefined; } /** *

Represents the response from the server after AWS Device Farm makes a request to * return information about the remote access session.

* @public */ export interface ListRemoteAccessSessionsResult { /** *

A container that represents the metadata from the service about each remote access session you are * requesting.

* @public */ remoteAccessSessions?: RemoteAccessSession[] | undefined; /** *

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.

* @public */ nextToken?: string | undefined; } /** *

Represents a request to the list runs operation.

* @public */ export interface ListRunsRequest { /** *

The Amazon Resource Name (ARN) of the project for which you want to list * runs.

* @public */ arn: string | undefined; /** *

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.

* @public */ nextToken?: string | undefined; } /** *

Represents the result of a list runs request.

* @public */ export interface ListRunsResult { /** *

Information about the runs.

* @public */ runs?: Run[] | undefined; /** *

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.

* @public */ nextToken?: string | undefined; } /** *

Represents a request to the list samples operation.

* @public */ export interface ListSamplesRequest { /** *

The Amazon Resource Name (ARN) of the job used to list samples.

* @public */ arn: string | undefined; /** *

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.

* @public */ nextToken?: string | undefined; } /** *

Represents a sample of performance data.

* @public */ export interface Sample { /** *

The sample's ARN.

* @public */ arn?: string | undefined; /** *

The sample's type.

*

Must be one of the following values:

*
    *
  • *

    CPU: A CPU sample type. This is expressed as the app processing CPU time * (including child processes) as reported by process, as a percentage.

    *
  • *
  • *

    MEMORY: A memory usage sample type. This is expressed as the total * proportional set size of an app process, in kilobytes.

    *
  • *
  • *

    NATIVE_AVG_DRAWTIME

    *
  • *
  • *

    NATIVE_FPS

    *
  • *
  • *

    NATIVE_FRAMES

    *
  • *
  • *

    NATIVE_MAX_DRAWTIME

    *
  • *
  • *

    NATIVE_MIN_DRAWTIME

    *
  • *
  • *

    OPENGL_AVG_DRAWTIME

    *
  • *
  • *

    OPENGL_FPS

    *
  • *
  • *

    OPENGL_FRAMES

    *
  • *
  • *

    OPENGL_MAX_DRAWTIME

    *
  • *
  • *

    OPENGL_MIN_DRAWTIME

    *
  • *
  • *

    RX

    *
  • *
  • *

    RX_RATE: The total number of bytes per second (TCP and UDP) that are sent, * by app process.

    *
  • *
  • *

    THREADS: A threads sample type. This is expressed as the total number of * threads per app process.

    *
  • *
  • *

    TX

    *
  • *
  • *

    TX_RATE: The total number of bytes per second (TCP and UDP) that are * received, by app process.

    *
  • *
* @public */ type?: SampleType | undefined; /** *

The presigned Amazon S3 URL that can be used with a GET request to download the sample's * file.

* @public */ url?: string | undefined; } /** *

Represents the result of a list samples request.

* @public */ export interface ListSamplesResult { /** *

Information about the samples.

* @public */ samples?: Sample[] | undefined; /** *

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.

* @public */ nextToken?: string | undefined; } /** *

Represents a request to the list suites operation.

* @public */ export interface ListSuitesRequest { /** *

The job's Amazon Resource Name (ARN).

* @public */ arn: string | undefined; /** *

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.

* @public */ nextToken?: string | undefined; } /** *

Represents the result of a list suites request.

* @public */ export interface ListSuitesResult { /** *

Information about the suites.

* @public */ suites?: Suite[] | undefined; /** *

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.

* @public */ nextToken?: string | undefined; } /** * @public */ export interface ListTagsForResourceRequest { /** *

The Amazon Resource Name (ARN) of the resource or resources for which to list tags. You can associate tags * with the following Device Farm resources: PROJECT, TESTGRID_PROJECT, RUN, * NETWORK_PROFILE, INSTANCE_PROFILE, DEVICE_INSTANCE, * SESSION, DEVICE_POOL, DEVICE, and * VPCE_CONFIGURATION.

* @public */ ResourceARN: string | undefined; } /** *

The metadata that you apply to a resource to help you categorize and organize it. Each tag consists of a * key and an optional value, both of which you define. Tag keys can have a maximum character length of 128 * characters. Tag values can have a maximum length of 256 characters.

* @public */ export interface Tag { /** *

One part of a key-value pair that makes up a tag. A key is a general label that acts like a * category for more specific tag values.

* @public */ Key: string | undefined; /** *

The optional part of a key-value pair that makes up a tag. A value acts as a descriptor in a * tag category (key).

* @public */ Value: string | undefined; } /** * @public */ export interface ListTagsForResourceResponse { /** *

The tags to add to the resource. A tag is an array of key-value pairs. Tag keys can have a maximum * character length of 128 characters. Tag values can have a maximum length of 256 characters.

* @public */ Tags?: Tag[] | undefined; } /** * @public */ export interface ListTestGridProjectsRequest { /** *

Return no more than this number of results.

* @public */ maxResult?: number | undefined; /** *

From a response, used to continue a paginated listing.

* @public */ nextToken?: string | undefined; } /** * @public */ export interface ListTestGridProjectsResult { /** *

The list of TestGridProjects, based on a ListTestGridProjectsRequest.

* @public */ testGridProjects?: TestGridProject[] | undefined; /** *

Used for pagination. Pass into ListTestGridProjects to get more results in a paginated * request.

* @public */ nextToken?: string | undefined; } /** * @public */ export interface ListTestGridSessionActionsRequest { /** *

The ARN of the session to retrieve.

* @public */ sessionArn: string | undefined; /** *

The maximum number of sessions to return per response.

* @public */ maxResult?: number | undefined; /** *

Pagination token.

* @public */ nextToken?: string | undefined; } /** *

An action taken by a TestGridSession browser instance.

* @public */ export interface TestGridSessionAction { /** *

The action taken by the session.

* @public */ action?: string | undefined; /** *

The time that the session invoked the action.

* @public */ started?: Date | undefined; /** *

The time, in milliseconds, that the action took to complete in the browser.

* @public */ duration?: number | undefined; /** *

HTTP status code returned to the browser when the action was taken.

* @public */ statusCode?: string | undefined; /** *

HTTP method that the browser used to make the request.

* @public */ requestMethod?: string | undefined; } /** * @public */ export interface ListTestGridSessionActionsResult { /** *

The action taken by the session.

* @public */ actions?: TestGridSessionAction[] | undefined; /** *

Pagination token.

* @public */ nextToken?: string | undefined; } /** * @public */ export interface ListTestGridSessionArtifactsRequest { /** *

The ARN of a TestGridSession.

* @public */ sessionArn: string | undefined; /** *

Limit results to a specified type of artifact.

* @public */ type?: TestGridSessionArtifactCategory | undefined; /** *

The maximum number of results to be returned by a request.

* @public */ maxResult?: number | undefined; /** *

Pagination token.

* @public */ nextToken?: string | undefined; } /** *

Artifacts are video and other files that are produced in the process of running a browser in an automated * context.

* *

Video elements might be broken up into multiple artifacts as they grow in size during creation.

*
* @public */ export interface TestGridSessionArtifact { /** *

The file name of the artifact.

* @public */ filename?: string | undefined; /** *

The kind of artifact.

* @public */ type?: TestGridSessionArtifactType | undefined; /** *

A semi-stable URL to the content of the object.

* @public */ url?: string | undefined; } /** * @public */ export interface ListTestGridSessionArtifactsResult { /** *

A list of test grid session artifacts for a TestGridSession.

* @public */ artifacts?: TestGridSessionArtifact[] | undefined; /** *

Pagination token.

* @public */ nextToken?: string | undefined; } /** * @public */ export interface ListTestGridSessionsRequest { /** *

ARN of a TestGridProject.

* @public */ projectArn: string | undefined; /** *

Return only sessions in this state.

* @public */ status?: TestGridSessionStatus | undefined; /** *

Return only sessions created after this time.

* @public */ creationTimeAfter?: Date | undefined; /** *

Return only sessions created before this time.

* @public */ creationTimeBefore?: Date | undefined; /** *

Return only sessions that ended after this time.

* @public */ endTimeAfter?: Date | undefined; /** *

Return only sessions that ended before this time.

* @public */ endTimeBefore?: Date | undefined; /** *

Return only this many results at a time.

* @public */ maxResult?: number | undefined; /** *

Pagination token.

* @public */ nextToken?: string | undefined; } /** * @public */ export interface ListTestGridSessionsResult { /** *

The sessions that match the criteria in a ListTestGridSessionsRequest.

* @public */ testGridSessions?: TestGridSession[] | undefined; /** *

Pagination token.

* @public */ nextToken?: string | undefined; } /** *

Represents a request to the list tests operation.

* @public */ export interface ListTestsRequest { /** *

The test suite's Amazon Resource Name (ARN).

* @public */ arn: string | undefined; /** *

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.

* @public */ nextToken?: string | undefined; } /** *

Represents the result of a list tests request.

* @public */ export interface ListTestsResult { /** *

Information about the tests.

* @public */ tests?: Test[] | undefined; /** *

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.

* @public */ nextToken?: string | undefined; } /** *

Represents a request to the list unique problems operation.

* @public */ export interface ListUniqueProblemsRequest { /** *

The unique problems' ARNs.

* @public */ arn: string | undefined; /** *

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.

* @public */ nextToken?: string | undefined; } /** *

Information about a problem detail.

* @public */ export interface ProblemDetail { /** *

The problem detail's ARN.

* @public */ arn?: string | undefined; /** *

The problem detail's name.

* @public */ name?: string | undefined; } /** *

Represents a specific warning or failure.

* @public */ export interface Problem { /** *

Information about the associated run.

* @public */ run?: ProblemDetail | undefined; /** *

Information about the associated job.

* @public */ job?: ProblemDetail | undefined; /** *

Information about the associated suite.

* @public */ suite?: ProblemDetail | undefined; /** *

Information about the associated test.

* @public */ test?: ProblemDetail | undefined; /** *

Information about the associated device.

* @public */ device?: Device | undefined; /** *

The problem's result.

*

Allowed values include:

*
    *
  • *

    PENDING

    *
  • *
  • *

    PASSED

    *
  • *
  • *

    WARNED

    *
  • *
  • *

    FAILED

    *
  • *
  • *

    SKIPPED

    *
  • *
  • *

    ERRORED

    *
  • *
  • *

    STOPPED

    *
  • *
* @public */ result?: ExecutionResult | undefined; /** *

A message about the problem's result.

* @public */ message?: string | undefined; } /** *

A collection of one or more problems, grouped by their result.

* @public */ export interface UniqueProblem { /** *

A message about the unique problems' result.

* @public */ message?: string | undefined; /** *

Information about the problems.

* @public */ problems?: Problem[] | undefined; } /** *

Represents the result of a list unique problems request.

* @public */ export interface ListUniqueProblemsResult { /** *

Information about the unique problems.

*

Allowed values include:

*
    *
  • *

    PENDING

    *
  • *
  • *

    PASSED

    *
  • *
  • *

    WARNED

    *
  • *
  • *

    FAILED

    *
  • *
  • *

    SKIPPED

    *
  • *
  • *

    ERRORED

    *
  • *
  • *

    STOPPED

    *
  • *
* @public */ uniqueProblems?: Partial> | undefined; /** *

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.

* @public */ nextToken?: string | undefined; } /** *

Represents a request to the list uploads operation.

* @public */ export interface ListUploadsRequest { /** *

The Amazon Resource Name (ARN) of the project for which you want to list * uploads.

* @public */ arn: string | undefined; /** *

The type of upload.

*

Must be one of the following values:

*
    *
  • *

    ANDROID_APP

    *
  • *
  • *

    IOS_APP

    *
  • *
  • *

    WEB_APP

    *
  • *
  • *

    EXTERNAL_DATA

    *
  • *
  • *

    APPIUM_JAVA_JUNIT_TEST_PACKAGE

    *
  • *
  • *

    APPIUM_JAVA_TESTNG_TEST_PACKAGE

    *
  • *
  • *

    APPIUM_PYTHON_TEST_PACKAGE

    *
  • *
  • *

    APPIUM_NODE_TEST_PACKAGE

    *
  • *
  • *

    APPIUM_RUBY_TEST_PACKAGE

    *
  • *
  • *

    APPIUM_WEB_JAVA_JUNIT_TEST_PACKAGE

    *
  • *
  • *

    APPIUM_WEB_JAVA_TESTNG_TEST_PACKAGE

    *
  • *
  • *

    APPIUM_WEB_PYTHON_TEST_PACKAGE

    *
  • *
  • *

    APPIUM_WEB_NODE_TEST_PACKAGE

    *
  • *
  • *

    APPIUM_WEB_RUBY_TEST_PACKAGE

    *
  • *
  • *

    INSTRUMENTATION_TEST_PACKAGE

    *
  • *
  • *

    XCTEST_TEST_PACKAGE

    *
  • *
  • *

    XCTEST_UI_TEST_PACKAGE

    *
  • *
  • *

    APPIUM_JAVA_JUNIT_TEST_SPEC

    *
  • *
  • *

    APPIUM_JAVA_TESTNG_TEST_SPEC

    *
  • *
  • *

    APPIUM_PYTHON_TEST_SPEC

    *
  • *
  • *

    APPIUM_NODE_TEST_SPEC

    *
  • *
  • *

    APPIUM_RUBY_TEST_SPEC

    *
  • *
  • *

    APPIUM_WEB_JAVA_JUNIT_TEST_SPEC

    *
  • *
  • *

    APPIUM_WEB_JAVA_TESTNG_TEST_SPEC

    *
  • *
  • *

    APPIUM_WEB_PYTHON_TEST_SPEC

    *
  • *
  • *

    APPIUM_WEB_NODE_TEST_SPEC

    *
  • *
  • *

    APPIUM_WEB_RUBY_TEST_SPEC

    *
  • *
  • *

    INSTRUMENTATION_TEST_SPEC

    *
  • *
  • *

    XCTEST_UI_TEST_SPEC

    *
  • *
* @public */ type?: UploadType | undefined; /** *

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.

* @public */ nextToken?: string | undefined; } /** *

Represents the result of a list uploads request.

* @public */ export interface ListUploadsResult { /** *

Information about the uploads.

* @public */ uploads?: Upload[] | undefined; /** *

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.

* @public */ nextToken?: string | undefined; } /** * @public */ export interface ListVPCEConfigurationsRequest { /** *

An integer that specifies the maximum number of items you want to return in the API response.

* @public */ maxResults?: number | undefined; /** *

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.

* @public */ nextToken?: string | undefined; } /** * @public */ export interface ListVPCEConfigurationsResult { /** *

An array of VPCEConfiguration objects that contain information about your VPC endpoint * configuration.

* @public */ vpceConfigurations?: VPCEConfiguration[] | undefined; /** *

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.

* @public */ nextToken?: string | undefined; } /** *

Represents a request for a purchase offering.

* @public */ export interface PurchaseOfferingRequest { /** *

The ID of the offering.

* @public */ offeringId: string | undefined; /** *

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

* @public */ quantity: number | undefined; /** *

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

* @public */ offeringPromotionId?: string | undefined; } /** *

The result of the purchase offering (for example, success or failure).

* @public */ export interface PurchaseOfferingResult { /** *

Represents the offering transaction for the purchase result.

* @public */ offeringTransaction?: OfferingTransaction | undefined; } /** *

A request that represents an offering renewal.

* @public */ export interface RenewOfferingRequest { /** *

The ID of a request to renew an offering.

* @public */ offeringId: string | undefined; /** *

The quantity requested in an offering renewal.

* @public */ quantity: number | undefined; } /** *

The result of a renewal offering.

* @public */ export interface RenewOfferingResult { /** *

Represents the status of the offering transaction for the renewal.

* @public */ offeringTransaction?: OfferingTransaction | undefined; } /** *

Represents the device filters used in a test run and the maximum number of devices to be included in the * run. It is passed in as the deviceSelectionConfiguration request parameter in ScheduleRun.

* @public */ export interface DeviceSelectionConfiguration { /** *

Used to dynamically select a set of devices for a test run. 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 filter 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.

    *

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

      *
    • *
    *
  • *
* @public */ filters: DeviceFilter[] | undefined; /** *

The maximum number of devices to be included in a test run.

* @public */ maxDevices: number | undefined; } /** *

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

* @public */ export interface ExecutionConfiguration { /** *

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

* @public */ jobTimeoutMinutes?: number | undefined; /** *

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

* @public */ accountsCleanup?: boolean | undefined; /** *

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

* @public */ appPackagesCleanup?: boolean | undefined; /** *

Set to true to enable video capture. Otherwise, set to false. The default is true.

* @public */ videoCapture?: boolean | undefined; /** *

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.

* @public */ skipAppResign?: boolean | undefined; } /** *

Represents a request to the schedule run operation.

* @public */ export interface ScheduleRunRequest { /** *

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

* @public */ projectArn: string | undefined; /** *

The ARN of an application package to run tests against, created with CreateUpload. * See ListUploads.

* @public */ appArn?: string | undefined; /** *

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

* @public */ devicePoolArn?: string | undefined; /** *

The filter criteria used to dynamically select a set of devices for a test run and the maximum number of * devices to be included in the run.

*

Either * devicePoolArn * or * deviceSelectionConfiguration * is required in a * request.

* @public */ deviceSelectionConfiguration?: DeviceSelectionConfiguration | undefined; /** *

The name for the run to be scheduled.

* @public */ name?: string | undefined; /** *

Information about the test for the run to be scheduled.

* @public */ test: ScheduleRunTest | undefined; /** *

Information about the settings for the run to be scheduled.

* @public */ configuration?: ScheduleRunConfiguration | undefined; /** *

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

* @public */ executionConfiguration?: ExecutionConfiguration | undefined; } /** *

Represents the result of a schedule run request.

* @public */ export interface ScheduleRunResult { /** *

Information about the scheduled run.

* @public */ run?: Run | undefined; } /** * @public */ export interface StopJobRequest { /** *

Represents the Amazon Resource Name (ARN) of the Device Farm job to stop.

* @public */ arn: string | undefined; } /** * @public */ export interface StopJobResult { /** *

The job that was stopped.

* @public */ job?: Job | undefined; } /** *

Represents the request to stop the remote access session.

* @public */ export interface StopRemoteAccessSessionRequest { /** *

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

* @public */ arn: string | undefined; } /** *

Represents the response from the server that describes the remote access session * when AWS Device Farm stops the session.

* @public */ export interface StopRemoteAccessSessionResult { /** *

A container that represents the metadata from the service about the remote access session you are * stopping.

* @public */ remoteAccessSession?: RemoteAccessSession | undefined; } /** *

Represents the request to stop a specific run.

* @public */ export interface StopRunRequest { /** *

Represents the Amazon Resource Name (ARN) of the Device Farm run to stop.

* @public */ arn: string | undefined; } /** *

Represents the results of your stop run attempt.

* @public */ export interface StopRunResult { /** *

The run that was stopped.

* @public */ run?: Run | undefined; } /** * @public */ export interface TagResourceRequest { /** *

The Amazon Resource Name (ARN) of the resource or resources to which to add tags. You can associate tags * with the following Device Farm resources: PROJECT, TESTGRID_PROJECT, RUN, * NETWORK_PROFILE, INSTANCE_PROFILE, DEVICE_INSTANCE, * SESSION, DEVICE_POOL, DEVICE, and * VPCE_CONFIGURATION.

* @public */ ResourceARN: string | undefined; /** *

The tags to add to the resource. A tag is an array of key-value pairs. Tag keys can have a maximum * character length of 128 characters. Tag values can have a maximum length of 256 characters.

* @public */ Tags: Tag[] | undefined; } /** * @public */ export interface TagResourceResponse { } /** * @public */ export interface UntagResourceRequest { /** *

The Amazon Resource Name (ARN) of the resource or resources from which to delete tags. You can associate * tags with the following Device Farm resources: PROJECT, TESTGRID_PROJECT, RUN, * NETWORK_PROFILE, INSTANCE_PROFILE, DEVICE_INSTANCE, * SESSION, DEVICE_POOL, DEVICE, and * VPCE_CONFIGURATION.

* @public */ ResourceARN: string | undefined; /** *

The keys of the tags to be removed.

* @public */ TagKeys: string[] | undefined; } /** * @public */ export interface UntagResourceResponse { } /** * @public */ export interface UpdateDeviceInstanceRequest { /** *

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

* @public */ arn: string | undefined; /** *

The ARN of the profile that you want to associate with the device instance.

* @public */ profileArn?: string | undefined; /** *

An array of strings that you want to associate with the device instance.

* @public */ labels?: string[] | undefined; } /** * @public */ export interface UpdateDeviceInstanceResult { /** *

An object that contains information about your device instance.

* @public */ deviceInstance?: DeviceInstance | undefined; } /** *

Represents a request to the update device pool operation.

* @public */ export interface UpdateDevicePoolRequest { /** *

The Amazon Resource Name (ARN) of the Device Farm device pool to update.

* @public */ arn: string | undefined; /** *

A string that represents the name of the device pool to update.

* @public */ name?: string | undefined; /** *

A description of the device pool to update.

* @public */ description?: string | undefined; /** *

Represents the rules to modify for the device pool. Updating rules is optional. If you update rules for * your request, the update replaces the existing rules.

* @public */ rules?: Rule[] | undefined; /** *

The number of devices that Device Farm can add to your device pool. Device Farm adds * devices that are available and that meet the criteria that you assign for the * rules parameter. Depending on how many devices meet these constraints, * your device pool might contain fewer devices than the value for this parameter.

*

By specifying the maximum number of devices, you can control the costs that you incur * by running tests.

*

If you use this parameter in your request, you cannot use the * clearMaxDevices parameter in the same request.

* @public */ maxDevices?: number | undefined; /** *

Sets whether the maxDevices parameter applies to your device pool. If you set this parameter * to true, the maxDevices parameter does not apply, and Device Farm does not limit * the number of devices that it adds to your device pool. In this case, Device Farm adds all available devices * that meet the criteria specified in the rules parameter.

*

If you use this parameter in your request, you cannot use the maxDevices * parameter in the same request.

* @public */ clearMaxDevices?: boolean | undefined; } /** *

Represents the result of an update device pool request.

* @public */ export interface UpdateDevicePoolResult { /** *

The device pool you just updated.

* @public */ devicePool?: DevicePool | undefined; } /** * @public */ export interface UpdateInstanceProfileRequest { /** *

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

* @public */ arn: string | undefined; /** *

The updated name for your instance profile.

* @public */ name?: string | undefined; /** *

The updated description for your instance profile.

* @public */ description?: string | undefined; /** *

The updated choice for whether you want to specify package cleanup. The default value * is false for private devices.

* @public */ packageCleanup?: boolean | undefined; /** *

An array of strings that specifies 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.

* @public */ excludeAppPackagesFromCleanup?: string[] | undefined; /** *

The updated choice for whether you want to reboot the device after use. The default * value is true.

* @public */ rebootAfterUse?: boolean | undefined; } /** * @public */ export interface UpdateInstanceProfileResult { /** *

An object that contains information about your instance profile.

* @public */ instanceProfile?: InstanceProfile | undefined; } /** * @public */ export interface UpdateNetworkProfileRequest { /** *

The Amazon Resource Name (ARN) of the project for which you want to update network * profile settings.

* @public */ arn: string | undefined; /** *

The name of the network profile about which you are returning * information.

* @public */ name?: string | undefined; /** *

The description of the network profile about which you are returning * information.

* @public */ description?: string | undefined; /** *

The type of network profile to return information about. Valid values are listed here.

* @public */ type?: NetworkProfileType | undefined; /** *

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

* @public */ uplinkBandwidthBits?: number | undefined; /** *

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

* @public */ downlinkBandwidthBits?: number | undefined; /** *

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

* @public */ uplinkDelayMs?: number | undefined; /** *

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

* @public */ downlinkDelayMs?: number | undefined; /** *

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

* @public */ uplinkJitterMs?: number | undefined; /** *

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

* @public */ downlinkJitterMs?: number | undefined; /** *

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

* @public */ uplinkLossPercent?: number | undefined; /** *

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

* @public */ downlinkLossPercent?: number | undefined; } /** * @public */ export interface UpdateNetworkProfileResult { /** *

A list of the available network profiles.

* @public */ networkProfile?: NetworkProfile | undefined; } /** *

Represents a request to the update project operation.

* @public */ export interface UpdateProjectRequest { /** *

The Amazon Resource Name (ARN) of the project whose name to update.

* @public */ arn: string | undefined; /** *

A string that represents the new name of the project that you are updating.

* @public */ name?: string | undefined; /** *

The number of minutes a test run in the project executes before it times out.

* @public */ defaultJobTimeoutMinutes?: number | undefined; /** *

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

* @public */ vpcConfig?: VpcConfig | undefined; /** *

* A set of environment variables which are used by default for all runs in the project. * These environment variables are applied to the test run during the execution of a test spec file. *

*

* For more information about using test spec files, please see * Custom test environments in AWS Device * Farm. *

* @public */ environmentVariables?: EnvironmentVariable[] | undefined; /** *

An IAM role to be assumed by the test host for all runs in the project.

* @public */ executionRoleArn?: string | undefined; } /** *

Represents the result of an update project request.

* @public */ export interface UpdateProjectResult { /** *

The project to update.

* @public */ project?: Project | undefined; } /** * @public */ export interface UpdateTestGridProjectRequest { /** *

ARN of the project to update.

* @public */ projectArn: string | undefined; /** *

Human-readable name for the project.

* @public */ name?: string | undefined; /** *

Human-readable description for the project.

* @public */ description?: string | undefined; /** *

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

* @public */ vpcConfig?: TestGridVpcConfig | undefined; } /** * @public */ export interface UpdateTestGridProjectResult { /** *

The project, including updated information.

* @public */ testGridProject?: TestGridProject | undefined; } /** * @public */ export interface UpdateUploadRequest { /** *

The Amazon Resource Name (ARN) of the uploaded test spec.

* @public */ arn: string | undefined; /** *

The upload's test spec file name. The name must not contain any forward slashes (/). The test spec file * name must end with the .yaml or .yml file extension.

* @public */ name?: string | undefined; /** *

The upload's content type (for example, application/x-yaml).

* @public */ contentType?: string | undefined; /** *

Set to true if the YAML file has changed and must be updated. Otherwise, set to false.

* @public */ editContent?: boolean | undefined; } /** * @public */ export interface UpdateUploadResult { /** *

A test spec uploaded to Device Farm.

* @public */ upload?: Upload | undefined; } /** * @public */ export interface UpdateVPCEConfigurationRequest { /** *

The Amazon Resource Name (ARN) of the VPC endpoint configuration you want to * update.

* @public */ arn: string | undefined; /** *

The friendly name you give to your VPC endpoint configuration to manage your configurations more * easily.

* @public */ vpceConfigurationName?: string | undefined; /** *

The name of the VPC endpoint service running in your AWS account that you want Device Farm to test.

* @public */ vpceServiceName?: string | undefined; /** *

The DNS (domain) name used to connect to your private service in your VPC. The DNS name must not already * be in use on the internet.

* @public */ serviceDnsName?: string | undefined; /** *

An optional description that provides details about your VPC endpoint configuration.

* @public */ vpceConfigurationDescription?: string | undefined; } /** * @public */ export interface UpdateVPCEConfigurationResult { /** *

An object that contains information about your VPC endpoint configuration.

* @public */ vpceConfiguration?: VPCEConfiguration | undefined; }