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  */
    attribute?: 'ARN' | 'PLATFORM' | 'FORM_FACTOR' | 'MANUFACTURER' | 'REMOTE_ACCESS_ENABLED' | 'REMOTE_DEBUG_ENABLED' | 'APPIUM_VERSION' | 'INSTANCE_ARN' | 'INSTANCE_LABELS' | 'FLEET_TYPE' | 'OS_VERSION' | 'MODEL' | 'AVAILABILITY';
    /** 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. */
    operator?: 'EQUALS' | 'LESS_THAN' | 'LESS_THAN_OR_EQUALS' | 'GREATER_THAN' | 'GREATER_THAN_OR_EQUALS' | 'IN' | 'NOT_IN' | 'CONTAINS';
    /** The rule's value. */
    value?: string;
}
export interface VpcConfig {
    /** An array of one or more security groups IDs in your Amazon VPC. */
    securityGroupIds: string[];
    /** An array of one or more subnet IDs in your Amazon VPC. */
    subnetIds: string[];
    /** The ID of the Amazon VPC. */
    vpcId: string;
}
export interface EnvironmentVariable {
    /** The name of the environment variable. */
    name: string;
    /** The value of the environment variable. */
    value: string;
}
export interface DeviceProxy {
    /** Hostname or IPv4 address of the proxy. */
    host: string;
    /** The port number on which the http/s proxy is listening. */
    port: number;
}
export interface CreateRemoteAccessSessionConfiguration {
    /** A list of upload ARNs for app packages to be installed onto your device. (Maximum 3) */
    auxiliaryApps?: string[];
    /** The billing method for the remote access session. */
    billingMethod?: 'METERED' | 'UNMETERED';
    /** An array of ARNs included in the VPC endpoint configuration. */
    vpceConfigurationArns?: string[];
    /** The device proxy to be configured on the device for the remote access session. */
    deviceProxy?: DeviceProxy;
}
export interface TestGridVpcConfig {
    /** A list of VPC security group IDs in your Amazon VPC. */
    securityGroupIds: string[];
    /** A list of VPC subnet IDs in your Amazon VPC. */
    subnetIds: string[];
    /** The ID of the Amazon VPC. */
    vpcId: string;
}
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_PY */
    type: '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';
    /** The ARN of the uploaded test to be run. */
    testPackageArn?: string;
    /** The ARN of the YAML-formatted test specification. */
    testSpecArn?: string;
    /** The test's filter. */
    filter?: string;
    /** 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 monitor */
    parameters?: Record<string, string>;
}
export interface Location {
    /** The latitude. */
    latitude: number;
    /** The longitude. */
    longitude: number;
}
export interface CustomerArtifactPaths {
    /** Comma-separated list of paths on the iOS device where the artifacts generated by the customer's tests are pulled from. */
    iosPaths?: any[];
    /** Comma-separated list of paths on the Android device where the artifacts generated by the customer's tests are pulled from. */
    androidPaths?: any[];
    /** Comma-separated list of paths in the test execution environment where the artifacts generated by the customer's tests are pulled from. */
    deviceHostPaths?: any[];
}
export interface Radios {
    /** True if Wi-Fi is enabled at the beginning of the test. Otherwise, false. */
    wifi?: boolean;
    /** True if Bluetooth is enabled at the beginning of the test. Otherwise, false. */
    bluetooth?: boolean;
    /** True if NFC is enabled at the beginning of the test. Otherwise, false. */
    nfc?: boolean;
    /** True if GPS is enabled at the beginning of the test. Otherwise, false. */
    gps?: boolean;
}
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. */
    extraDataPackageArn?: string;
    /** Reserved for internal use. */
    networkProfileArn?: string;
    /** Information about the locale that is used for the run. */
    locale?: string;
    /** Information about the location that is used for the run. */
    location?: Location;
    /** An array of ARNs for your VPC endpoint configurations. */
    vpceConfigurationArns?: string[];
    /** The device proxy to be configured on the device for the run. */
    deviceProxy?: DeviceProxy;
    /** Input CustomerArtifactPaths object for the scheduled run configuration. */
    customerArtifactPaths?: CustomerArtifactPaths;
    /** Information about the radio states for the run. */
    radios?: Radios;
    /** A list of upload ARNs for app packages to be installed with your app. */
    auxiliaryApps?: string[];
    /** 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 para */
    billingMethod?: 'METERED' | 'UNMETERED';
    /** Environment variables associated with the run. */
    environmentVariables?: any[];
    /** An IAM role to be assumed by the test host for the run. */
    executionRoleArn?: string;
}
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 Resour */
    attribute: 'ARN' | 'PLATFORM' | 'OS_VERSION' | 'MODEL' | 'AVAILABILITY' | 'FORM_FACTOR' | 'MANUFACTURER' | 'REMOTE_ACCESS_ENABLED' | 'REMOTE_DEBUG_ENABLED' | 'INSTANCE_ARN' | 'INSTANCE_LABELS' | 'FLEET_TYPE';
    /** Specifies how Device Farm compares the filter's attribute to the value. See the attribute descriptions. */
    operator: 'EQUALS' | 'LESS_THAN' | 'LESS_THAN_OR_EQUALS' | 'GREATER_THAN' | 'GREATER_THAN_OR_EQUALS' | 'IN' | 'NOT_IN' | 'CONTAINS';
    /** 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  */
    values: any[];
}
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 */
    filters: any[];
    /** The maximum number of devices to be included in a test run. */
    maxDevices: number;
}
export interface ExecutionConfiguration {
    /** The number of minutes a test run executes before it times out. */
    jobTimeoutMinutes?: number;
    /** True if account cleanup is enabled at the beginning of the test. Otherwise, false. */
    accountsCleanup?: boolean;
    /** True if app package cleanup is enabled at the beginning of the test. Otherwise, false. */
    appPackagesCleanup?: boolean;
    /** Set to true to enable video capture. Otherwise, set to false. The default is true. */
    videoCapture?: boolean;
    /** When set to true, for private devices, Device Farm does not sign your app again. For public devices, Device Farm always signs your apps again. For more information about how Device Farm re-signs your  */
    skipAppResign?: boolean;
}
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. */
    Key: string;
    /** The optional part of a key-value pair that makes up a tag. A value acts as a descriptor in a tag category (key). */
    Value: string;
}
/** Represents a request to the create device pool operation. */
export interface CreateDevicePoolInput {
    /** The device pool's name. */
    name: string;
    /** The ARN of the project for the device pool. */
    projectArn: string;
    /** The device pool's rules. */
    rules: Rule[];
    /** The device pool's description. */
    description?: string;
    /** 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 dev */
    maxDevices?: number;
}
export interface CreateInstanceProfileInput {
    /** The name of your instance profile. */
    name: string;
    /** The description of your instance profile. */
    description?: string;
    /** 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. */
    excludeAppPackagesFromCleanup?: string[];
    /** When set to true, Device Farm removes app packages after a test run. The default value is false for private devices. */
    packageCleanup?: boolean;
    /** When set to true, Device Farm reboots the instance after a test run. The default value is true. */
    rebootAfterUse?: boolean;
}
export interface CreateNetworkProfileInput {
    /** The name for the new network profile. */
    name: string;
    /** The Amazon Resource Name (ARN) of the project for which you want to create a network profile. */
    projectArn: string;
    /** The description of the network profile. */
    description?: string;
    /** The data throughput rate in bits per second, as an integer from 0 to 104857600. */
    downlinkBandwidthBits?: number;
    /** Delay time for all packets to destination in milliseconds as an integer from 0 to 2000. */
    downlinkDelayMs?: number;
    /** Time variation in the delay of received packets in milliseconds as an integer from 0 to 2000. */
    downlinkJitterMs?: number;
    /** Proportion of received packets that fail to arrive from 0 to 100 percent. */
    downlinkLossPercent?: number;
    /** The type of network profile to create. Valid values are listed here. */
    type?: 'CURATED' | 'PRIVATE';
    /** The data throughput rate in bits per second, as an integer from 0 to 104857600. */
    uplinkBandwidthBits?: number;
    /** Delay time for all packets to destination in milliseconds as an integer from 0 to 2000. */
    uplinkDelayMs?: number;
    /** Time variation in the delay of received packets in milliseconds as an integer from 0 to 2000. */
    uplinkJitterMs?: number;
    /** Proportion of transmitted packets that fail to arrive from 0 to 100 percent. */
    uplinkLossPercent?: number;
}
/** Represents a request to the create project operation. */
export interface CreateProjectInput {
    /** The project's name. */
    name: string;
    /** 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. */
    defaultJobTimeoutMinutes?: number;
    /** 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 informa */
    environmentVariables?: EnvironmentVariable[];
    /** An IAM role to be assumed by the test host for all runs in the project. */
    executionRoleArn?: string;
    /** The VPC security groups and subnets that are attached to a project. */
    vpcConfig?: VpcConfig;
}
/** Creates and submits a request to start a remote access session. */
export interface CreateRemoteAccessSessionInput {
    /** The ARN of the device for which you want to create a remote access session. */
    deviceArn: string;
    /** The Amazon Resource Name (ARN) of the project for which you want to create a remote access session. */
    projectArn: string;
    /** The Amazon Resource Name (ARN) of the app to create the remote access session. */
    appArn?: string;
    /** The configuration information for the remote access session request. */
    configuration?: CreateRemoteAccessSessionConfiguration;
    /** The Amazon Resource Name (ARN) of the device instance for which you want to create a remote access session. */
    instanceArn?: string;
    /** The interaction mode of the remote access session. Changing the interactive mode of remote access sessions is no longer available. */
    interactionMode?: 'INTERACTIVE' | 'NO_VIDEO' | 'VIDEO_ONLY';
    /** The name of the remote access session to create. */
    name?: string;
    /** 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 upl */
    skipAppResign?: boolean;
}
export interface CreateTestGridProjectInput {
    /** Human-readable name of the Selenium testing project. */
    name: string;
    /** Human-readable description of the project. */
    description?: string;
    /** The VPC security groups and subnets that are attached to a project. */
    vpcConfig?: TestGridVpcConfig;
}
export interface CreateTestGridUrlInput {
    /** Lifetime, in seconds, of the URL. */
    expiresInSeconds: number;
    /** ARN (from CreateTestGridProject or ListTestGridProjects) to associate with the short-term URL. */
    projectArn: string;
}
/** Represents a request to the create upload operation. */
export interface CreateUploadInput {
    /** 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 f */
    name: string;
    /** The ARN of the project for the upload. */
    projectArn: string;
    /** 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 APPIU */
    type: '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' | 'CALABASH_TEST_PACKAGE' | 'INSTRUMENTATION_TEST_PACKAGE' | 'UIAUTOMATION_TEST_PACKAGE' | 'UIAUTOMATOR_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';
    /** The upload's content type (for example, application/octet-stream). */
    contentType?: string;
}
export interface CreateVPCEConfigurationInput {
    /** The DNS name of the service running in your VPC that you want Device Farm to test. */
    serviceDnsName: string;
    /** The friendly name you give to your VPC endpoint configuration, to manage your configurations more easily. */
    vpceConfigurationName: string;
    /** The name of the VPC endpoint service running in your AWS account that you want Device Farm to test. */
    vpceServiceName: string;
    /** An optional description that provides details about your VPC endpoint configuration. */
    vpceConfigurationDescription?: string;
}
/** Represents a request to the delete device pool operation. */
export interface DeleteDevicePoolInput {
    /** Represents the Amazon Resource Name (ARN) of the Device Farm device pool to delete. */
    arn: string;
}
export interface DeleteInstanceProfileInput {
    /** The Amazon Resource Name (ARN) of the instance profile you are requesting to delete. */
    arn: string;
}
export interface DeleteNetworkProfileInput {
    /** The ARN of the network profile to delete. */
    arn: string;
}
/** Represents a request to the delete project operation. */
export interface DeleteProjectInput {
    /** Represents the Amazon Resource Name (ARN) of the Device Farm project to delete. */
    arn: string;
}
/** Represents the request to delete the specified remote access session. */
export interface DeleteRemoteAccessSessionInput {
    /** The Amazon Resource Name (ARN) of the session for which you want to delete remote access. */
    arn: string;
}
/** Represents a request to the delete run operation. */
export interface DeleteRunInput {
    /** The Amazon Resource Name (ARN) for the run to delete. */
    arn: string;
}
export interface DeleteTestGridProjectInput {
    /** The ARN of the project to delete, from CreateTestGridProject or ListTestGridProjects. */
    projectArn: string;
}
/** Represents a request to the delete upload operation. */
export interface DeleteUploadInput {
    /** Represents the Amazon Resource Name (ARN) of the Device Farm upload to delete. */
    arn: string;
}
export interface DeleteVPCEConfigurationInput {
    /** The Amazon Resource Name (ARN) of the VPC endpoint configuration you want to delete. */
    arn: string;
}
/** Represents a request to the get device request. */
export interface GetDeviceInput {
    /** The device type's ARN. */
    arn: string;
}
export interface GetDeviceInstanceInput {
    /** The Amazon Resource Name (ARN) of the instance you're requesting information about. */
    arn: string;
}
/** Represents a request to the get device pool operation. */
export interface GetDevicePoolInput {
    /** The device pool's ARN. */
    arn: string;
}
/** Represents a request to the get device pool compatibility operation. */
export interface GetDevicePoolCompatibilityInput {
    /** The device pool's ARN. */
    devicePoolArn: string;
    /** The ARN of the app that is associated with the specified device pool. */
    appArn?: string;
    /** An object that contains information about the settings for a run. */
    configuration?: ScheduleRunConfiguration;
    /** The ARN of the project for which you want to check device pool compatibility. */
    projectArn?: string;
    /** Information about the uploaded test to be run against the device pool. */
    test?: ScheduleRunTest;
    /** 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.  */
    testType?: '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';
}
export interface GetInstanceProfileInput {
    /** The Amazon Resource Name (ARN) of an instance profile. */
    arn: string;
}
/** Represents a request to the get job operation. */
export interface GetJobInput {
    /** The job's ARN. */
    arn: string;
}
export interface GetNetworkProfileInput {
    /** The ARN of the network profile to return information about. */
    arn: string;
}
/** Represents the request to retrieve the offering status for the specified customer or account. */
export interface GetOfferingStatusInput {
    /** 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. */
    nextToken?: string;
}
/** Represents a request to the get project operation. */
export interface GetProjectInput {
    /** The project's ARN. */
    arn: string;
}
/** Represents the request to get information about the specified remote access session. */
export interface GetRemoteAccessSessionInput {
    /** The Amazon Resource Name (ARN) of the remote access session about which you want to get session information. */
    arn: string;
}
/** Represents a request to the get run operation. */
export interface GetRunInput {
    /** The run's ARN. */
    arn: string;
}
/** Represents a request to the get suite operation. */
export interface GetSuiteInput {
    /** The suite's ARN. */
    arn: string;
}
/** Represents a request to the get test operation. */
export interface GetTestInput {
    /** The test's ARN. */
    arn: string;
}
export interface GetTestGridProjectInput {
    /** The ARN of the Selenium testing project, from either CreateTestGridProject or ListTestGridProjects. */
    projectArn: string;
}
export interface GetTestGridSessionInput {
    /** The ARN for the project that this session belongs to. See CreateTestGridProject and ListTestGridProjects. */
    projectArn?: string;
    /** An ARN that uniquely identifies a TestGridSession. */
    sessionArn?: string;
    /** An ID associated with this session. */
    sessionId?: string;
}
/** Represents a request to the get upload operation. */
export interface GetUploadInput {
    /** The upload's ARN. */
    arn: string;
}
export interface GetVPCEConfigurationInput {
    /** The Amazon Resource Name (ARN) of the VPC endpoint configuration you want to describe. */
    arn: string;
}
/** 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. */
export interface InstallToRemoteAccessSessionInput {
    /** The ARN of the app about which you are requesting information. */
    appArn: string;
    /** The Amazon Resource Name (ARN) of the remote access session about which you are requesting information. */
    remoteAccessSessionArn: string;
}
/** Represents a request to the list artifacts operation. */
export interface ListArtifactsInput {
    /** The run, job, suite, or test ARN. */
    arn: string;
    /** The artifacts' type. Allowed values include: FILE LOG SCREENSHOT */
    type: 'SCREENSHOT' | 'FILE' | 'LOG';
    /** 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. */
    nextToken?: string;
}
export interface ListDeviceInstancesInput {
    /** An integer that specifies the maximum number of items you want to return in the API response. */
    maxResults?: number;
    /** 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. */
    nextToken?: string;
}
/** Represents the result of a list device pools request. */
export interface ListDevicePoolsInput {
    /** The project ARN. */
    arn: string;
    /** An identifier that was returned from the previous call to this operation, which can be used to return the next set of items in the list. */
    nextToken?: string;
    /** The device pools' type. Allowed values include: CURATED: A device pool that is created and managed by AWS Device Farm. PRIVATE: A device pool that is created and managed by the device pool developer. */
    type?: 'CURATED' | 'PRIVATE';
}
/** Represents the result of a list devices request. */
export interface ListDevicesInput {
    /** The Amazon Resource Name (ARN) of the project. */
    arn?: string;
    /** 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 */
    filters?: DeviceFilter[];
    /** 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. */
    nextToken?: string;
}
export interface ListInstanceProfilesInput {
    /** An integer that specifies the maximum number of items you want to return in the API response. */
    maxResults?: number;
    /** 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. */
    nextToken?: string;
}
/** Represents a request to the list jobs operation. */
export interface ListJobsInput {
    /** The run's Amazon Resource Name (ARN). */
    arn: string;
    /** An identifier that was returned from the previous call to this operation, which can be used to return the next set of items in the list. */
    nextToken?: string;
}
export interface ListNetworkProfilesInput {
    /** The Amazon Resource Name (ARN) of the project for which you want to list network profiles. */
    arn: string;
    /** An identifier that was returned from the previous call to this operation, which can be used to return the next set of items in the list. */
    nextToken?: string;
    /** The type of network profile to return information about. Valid values are listed here. */
    type?: 'CURATED' | 'PRIVATE';
}
export interface ListOfferingPromotionsInput {
    /** 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. */
    nextToken?: string;
}
/** Represents the request to list all offerings. */
export interface ListOfferingsInput {
    /** 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. */
    nextToken?: string;
}
/** Represents the request to list the offering transaction history. */
export interface ListOfferingTransactionsInput {
    /** 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. */
    nextToken?: string;
}
/** Represents a request to the list projects operation. */
export interface ListProjectsInput {
    /** 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. */
    arn?: string;
    /** An identifier that was returned from the previous call to this operation, which can be used to return the next set of items in the list. */
    nextToken?: string;
}
/** Represents the request to return information about the remote access session. */
export interface ListRemoteAccessSessionsInput {
    /** The Amazon Resource Name (ARN) of the project about which you are requesting information. */
    arn: string;
    /** An identifier that was returned from the previous call to this operation, which can be used to return the next set of items in the list. */
    nextToken?: string;
}
/** Represents a request to the list runs operation. */
export interface ListRunsInput {
    /** The Amazon Resource Name (ARN) of the project for which you want to list runs. */
    arn: string;
    /** An identifier that was returned from the previous call to this operation, which can be used to return the next set of items in the list. */
    nextToken?: string;
}
/** Represents a request to the list samples operation. */
export interface ListSamplesInput {
    /** The Amazon Resource Name (ARN) of the job used to list samples. */
    arn: string;
    /** An identifier that was returned from the previous call to this operation, which can be used to return the next set of items in the list. */
    nextToken?: string;
}
/** Represents a request to the list suites operation. */
export interface ListSuitesInput {
    /** The job's Amazon Resource Name (ARN). */
    arn: string;
    /** An identifier that was returned from the previous call to this operation, which can be used to return the next set of items in the list. */
    nextToken?: string;
}
export interface ListTagsForResourceInput {
    /** 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, IN */
    ResourceARN: string;
}
export interface ListTestGridProjectsInput {
    /** Return no more than this number of results. */
    maxResult?: number;
    /** From a response, used to continue a paginated listing. */
    nextToken?: string;
}
export interface ListTestGridSessionActionsInput {
    /** The ARN of the session to retrieve. */
    sessionArn: string;
    /** The maximum number of sessions to return per response. */
    maxResult?: number;
    /** Pagination token. */
    nextToken?: string;
}
export interface ListTestGridSessionArtifactsInput {
    /** The ARN of a TestGridSession. */
    sessionArn: string;
    /** The maximum number of results to be returned by a request. */
    maxResult?: number;
    /** Pagination token. */
    nextToken?: string;
    /** Limit results to a specified type of artifact. */
    type?: 'VIDEO' | 'LOG';
}
export interface ListTestGridSessionsInput {
    /** ARN of a TestGridProject. */
    projectArn: string;
    /** Return only sessions created after this time. */
    creationTimeAfter?: string;
    /** Return only sessions created before this time. */
    creationTimeBefore?: string;
    /** Return only sessions that ended after this time. */
    endTimeAfter?: string;
    /** Return only sessions that ended before this time. */
    endTimeBefore?: string;
    /** Return only this many results at a time. */
    maxResult?: number;
    /** Pagination token. */
    nextToken?: string;
    /** Return only sessions in this state. */
    status?: 'ACTIVE' | 'CLOSED' | 'ERRORED';
}
/** Represents a request to the list tests operation. */
export interface ListTestsInput {
    /** The test suite's Amazon Resource Name (ARN). */
    arn: string;
    /** An identifier that was returned from the previous call to this operation, which can be used to return the next set of items in the list. */
    nextToken?: string;
}
/** Represents a request to the list unique problems operation. */
export interface ListUniqueProblemsInput {
    /** The unique problems' ARNs. */
    arn: string;
    /** An identifier that was returned from the previous call to this operation, which can be used to return the next set of items in the list. */
    nextToken?: string;
}
/** Represents a request to the list uploads operation. */
export interface ListUploadsInput {
    /** The Amazon Resource Name (ARN) of the project for which you want to list uploads. */
    arn: string;
    /** An identifier that was returned from the previous call to this operation, which can be used to return the next set of items in the list. */
    nextToken?: string;
    /** 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 */
    type?: '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' | 'CALABASH_TEST_PACKAGE' | 'INSTRUMENTATION_TEST_PACKAGE' | 'UIAUTOMATION_TEST_PACKAGE' | 'UIAUTOMATOR_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';
}
export interface ListVPCEConfigurationsInput {
    /** An integer that specifies the maximum number of items you want to return in the API response. */
    maxResults?: number;
    /** 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. */
    nextToken?: string;
}
/** Represents a request for a purchase offering. */
export interface PurchaseOfferingInput {
    /** The ID of the offering. */
    offeringId: string;
    /** The number of device slots to purchase in an offering request. */
    quantity: number;
    /** The ID of the offering promotion to be applied to the purchase. */
    offeringPromotionId?: string;
}
/** A request that represents an offering renewal. */
export interface RenewOfferingInput {
    /** The ID of a request to renew an offering. */
    offeringId: string;
    /** The quantity requested in an offering renewal. */
    quantity: number;
}
/** Represents a request to the schedule run operation. */
export interface ScheduleRunInput {
    /** The ARN of the project for the run to be scheduled. */
    projectArn: string;
    /** Information about the test for the run to be scheduled. */
    test: ScheduleRunTest;
    /** The ARN of an application package to run tests against, created with CreateUpload. See ListUploads. */
    appArn?: string;
    /** Information about the settings for the run to be scheduled. */
    configuration?: ScheduleRunConfiguration;
    /** The ARN of the device pool for the run to be scheduled. */
    devicePoolArn?: string;
    /** 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 requ */
    deviceSelectionConfiguration?: DeviceSelectionConfiguration;
    /** Specifies configuration information about a test run, such as the execution timeout (in minutes). */
    executionConfiguration?: ExecutionConfiguration;
    /** The name for the run to be scheduled. */
    name?: string;
}
export interface StopJobInput {
    /** Represents the Amazon Resource Name (ARN) of the Device Farm job to stop. */
    arn: string;
}
/** Represents the request to stop the remote access session. */
export interface StopRemoteAccessSessionInput {
    /** The Amazon Resource Name (ARN) of the remote access session to stop. */
    arn: string;
}
/** Represents the request to stop a specific run. */
export interface StopRunInput {
    /** Represents the Amazon Resource Name (ARN) of the Device Farm run to stop. */
    arn: string;
}
export interface TagResourceInput {
    /** 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, INST */
    ResourceARN: string;
    /** 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. */
    Tags: Tag[];
}
export interface UntagResourceInput {
    /** 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, */
    ResourceARN: string;
    /** The keys of the tags to be removed. */
    TagKeys: string[];
}
export interface UpdateDeviceInstanceInput {
    /** The Amazon Resource Name (ARN) of the device instance. */
    arn: string;
    /** An array of strings that you want to associate with the device instance. */
    labels?: string[];
    /** The ARN of the profile that you want to associate with the device instance. */
    profileArn?: string;
}
/** Represents a request to the update device pool operation. */
export interface UpdateDevicePoolInput {
    /** The Amazon Resource Name (ARN) of the Device Farm device pool to update. */
    arn: string;
    /** 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 */
    clearMaxDevices?: boolean;
    /** A description of the device pool to update. */
    description?: string;
    /** 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 man */
    maxDevices?: number;
    /** A string that represents the name of the device pool to update. */
    name?: string;
    /** 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. */
    rules?: Rule[];
}
export interface UpdateInstanceProfileInput {
    /** The Amazon Resource Name (ARN) of the instance profile. */
    arn: string;
    /** The updated description for your instance profile. */
    description?: string;
    /** 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 */
    excludeAppPackagesFromCleanup?: string[];
    /** The updated name for your instance profile. */
    name?: string;
    /** The updated choice for whether you want to specify package cleanup. The default value is false for private devices. */
    packageCleanup?: boolean;
    /** The updated choice for whether you want to reboot the device after use. The default value is true. */
    rebootAfterUse?: boolean;
}
export interface UpdateNetworkProfileInput {
    /** The Amazon Resource Name (ARN) of the project for which you want to update network profile settings. */
    arn: string;
    /** The description of the network profile about which you are returning information. */
    description?: string;
    /** The data throughput rate in bits per second, as an integer from 0 to 104857600. */
    downlinkBandwidthBits?: number;
    /** Delay time for all packets to destination in milliseconds as an integer from 0 to 2000. */
    downlinkDelayMs?: number;
    /** Time variation in the delay of received packets in milliseconds as an integer from 0 to 2000. */
    downlinkJitterMs?: number;
    /** Proportion of received packets that fail to arrive from 0 to 100 percent. */
    downlinkLossPercent?: number;
    /** The name of the network profile about which you are returning information. */
    name?: string;
    /** The type of network profile to return information about. Valid values are listed here. */
    type?: 'CURATED' | 'PRIVATE';
    /** The data throughput rate in bits per second, as an integer from 0 to 104857600. */
    uplinkBandwidthBits?: number;
    /** Delay time for all packets to destination in milliseconds as an integer from 0 to 2000. */
    uplinkDelayMs?: number;
    /** Time variation in the delay of received packets in milliseconds as an integer from 0 to 2000. */
    uplinkJitterMs?: number;
    /** Proportion of transmitted packets that fail to arrive from 0 to 100 percent. */
    uplinkLossPercent?: number;
}
/** Represents a request to the update project operation. */
export interface UpdateProjectInput {
    /** The Amazon Resource Name (ARN) of the project whose name to update. */
    arn: string;
    /** The number of minutes a test run in the project executes before it times out. */
    defaultJobTimeoutMinutes?: number;
    /** 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 informa */
    environmentVariables?: EnvironmentVariable[];
    /** An IAM role to be assumed by the test host for all runs in the project. */
    executionRoleArn?: string;
    /** A string that represents the new name of the project that you are updating. */
    name?: string;
    /** The VPC security groups and subnets that are attached to a project. */
    vpcConfig?: VpcConfig;
}
export interface UpdateTestGridProjectInput {
    /** ARN of the project to update. */
    projectArn: string;
    /** Human-readable description for the project. */
    description?: string;
    /** Human-readable name for the project. */
    name?: string;
    /** The VPC security groups and subnets that are attached to a project. */
    vpcConfig?: TestGridVpcConfig;
}
export interface UpdateUploadInput {
    /** The Amazon Resource Name (ARN) of the uploaded test spec. */
    arn: string;
    /** The upload's content type (for example, application/x-yaml). */
    contentType?: string;
    /** Set to true if the YAML file has changed and must be updated. Otherwise, set to false. */
    editContent?: boolean;
    /** 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. */
    name?: string;
}
export interface UpdateVPCEConfigurationInput {
    /** The Amazon Resource Name (ARN) of the VPC endpoint configuration you want to update. */
    arn: string;
    /** 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. */
    serviceDnsName?: string;
    /** An optional description that provides details about your VPC endpoint configuration. */
    vpceConfigurationDescription?: string;
    /** The friendly name you give to your VPC endpoint configuration to manage your configurations more easily. */
    vpceConfigurationName?: string;
    /** The name of the VPC endpoint service running in your AWS account that you want Device Farm to test. */
    vpceServiceName?: string;
}
/** Device Farm service binding for Step Functions SDK integrations. */
export declare class DeviceFarm {
    constructor();
    createDevicePool<T>(params: CreateDevicePoolInput): Promise<T>;
    createInstanceProfile<T>(params: CreateInstanceProfileInput): Promise<T>;
    createNetworkProfile<T>(params: CreateNetworkProfileInput): Promise<T>;
    createProject<T>(params: CreateProjectInput): Promise<T>;
    createRemoteAccessSession<T>(params: CreateRemoteAccessSessionInput): Promise<T>;
    createTestGridProject<T>(params: CreateTestGridProjectInput): Promise<T>;
    createTestGridUrl<T>(params: CreateTestGridUrlInput): Promise<T>;
    createUpload<T>(params: CreateUploadInput): Promise<T>;
    createVPCEConfiguration<T>(params: CreateVPCEConfigurationInput): Promise<T>;
    deleteDevicePool<T>(params: DeleteDevicePoolInput): Promise<T>;
    deleteInstanceProfile<T>(params: DeleteInstanceProfileInput): Promise<T>;
    deleteNetworkProfile<T>(params: DeleteNetworkProfileInput): Promise<T>;
    deleteProject<T>(params: DeleteProjectInput): Promise<T>;
    deleteRemoteAccessSession<T>(params: DeleteRemoteAccessSessionInput): Promise<T>;
    deleteRun<T>(params: DeleteRunInput): Promise<T>;
    deleteTestGridProject<T>(params: DeleteTestGridProjectInput): Promise<T>;
    deleteUpload<T>(params: DeleteUploadInput): Promise<T>;
    deleteVPCEConfiguration<T>(params: DeleteVPCEConfigurationInput): Promise<T>;
    getAccountSettings<T>(params: Record<string, any>): Promise<T>;
    getDevice<T>(params: GetDeviceInput): Promise<T>;
    getDeviceInstance<T>(params: GetDeviceInstanceInput): Promise<T>;
    getDevicePool<T>(params: GetDevicePoolInput): Promise<T>;
    getDevicePoolCompatibility<T>(params: GetDevicePoolCompatibilityInput): Promise<T>;
    getInstanceProfile<T>(params: GetInstanceProfileInput): Promise<T>;
    getJob<T>(params: GetJobInput): Promise<T>;
    getNetworkProfile<T>(params: GetNetworkProfileInput): Promise<T>;
    getOfferingStatus<T>(params: GetOfferingStatusInput): Promise<T>;
    getProject<T>(params: GetProjectInput): Promise<T>;
    getRemoteAccessSession<T>(params: GetRemoteAccessSessionInput): Promise<T>;
    getRun<T>(params: GetRunInput): Promise<T>;
    getSuite<T>(params: GetSuiteInput): Promise<T>;
    getTest<T>(params: GetTestInput): Promise<T>;
    getTestGridProject<T>(params: GetTestGridProjectInput): Promise<T>;
    getTestGridSession<T>(params: GetTestGridSessionInput): Promise<T>;
    getUpload<T>(params: GetUploadInput): Promise<T>;
    getVPCEConfiguration<T>(params: GetVPCEConfigurationInput): Promise<T>;
    installToRemoteAccessSession<T>(params: InstallToRemoteAccessSessionInput): Promise<T>;
    listArtifacts<T>(params: ListArtifactsInput): Promise<T>;
    listDeviceInstances<T>(params: ListDeviceInstancesInput): Promise<T>;
    listDevicePools<T>(params: ListDevicePoolsInput): Promise<T>;
    listDevices<T>(params: ListDevicesInput): Promise<T>;
    listInstanceProfiles<T>(params: ListInstanceProfilesInput): Promise<T>;
    listJobs<T>(params: ListJobsInput): Promise<T>;
    listNetworkProfiles<T>(params: ListNetworkProfilesInput): Promise<T>;
    listOfferingPromotions<T>(params: ListOfferingPromotionsInput): Promise<T>;
    listOfferings<T>(params: ListOfferingsInput): Promise<T>;
    listOfferingTransactions<T>(params: ListOfferingTransactionsInput): Promise<T>;
    listProjects<T>(params: ListProjectsInput): Promise<T>;
    listRemoteAccessSessions<T>(params: ListRemoteAccessSessionsInput): Promise<T>;
    listRuns<T>(params: ListRunsInput): Promise<T>;
    listSamples<T>(params: ListSamplesInput): Promise<T>;
    listSuites<T>(params: ListSuitesInput): Promise<T>;
    listTagsForResource<T>(params: ListTagsForResourceInput): Promise<T>;
    listTestGridProjects<T>(params: ListTestGridProjectsInput): Promise<T>;
    listTestGridSessionActions<T>(params: ListTestGridSessionActionsInput): Promise<T>;
    listTestGridSessionArtifacts<T>(params: ListTestGridSessionArtifactsInput): Promise<T>;
    listTestGridSessions<T>(params: ListTestGridSessionsInput): Promise<T>;
    listTests<T>(params: ListTestsInput): Promise<T>;
    listUniqueProblems<T>(params: ListUniqueProblemsInput): Promise<T>;
    listUploads<T>(params: ListUploadsInput): Promise<T>;
    listVPCEConfigurations<T>(params: ListVPCEConfigurationsInput): Promise<T>;
    purchaseOffering<T>(params: PurchaseOfferingInput): Promise<T>;
    renewOffering<T>(params: RenewOfferingInput): Promise<T>;
    scheduleRun<T>(params: ScheduleRunInput): Promise<T>;
    stopJob<T>(params: StopJobInput): Promise<T>;
    stopRemoteAccessSession<T>(params: StopRemoteAccessSessionInput): Promise<T>;
    stopRun<T>(params: StopRunInput): Promise<T>;
    tagResource<T>(params: TagResourceInput): Promise<T>;
    untagResource<T>(params: UntagResourceInput): Promise<T>;
    updateDeviceInstance<T>(params: UpdateDeviceInstanceInput): Promise<T>;
    updateDevicePool<T>(params: UpdateDevicePoolInput): Promise<T>;
    updateInstanceProfile<T>(params: UpdateInstanceProfileInput): Promise<T>;
    updateNetworkProfile<T>(params: UpdateNetworkProfileInput): Promise<T>;
    updateProject<T>(params: UpdateProjectInput): Promise<T>;
    updateTestGridProject<T>(params: UpdateTestGridProjectInput): Promise<T>;
    updateUpload<T>(params: UpdateUploadInput): Promise<T>;
    updateVPCEConfiguration<T>(params: UpdateVPCEConfigurationInput): Promise<T>;
}
//# sourceMappingURL=DeviceFarm.d.ts.map