You are viewing documentation for version 3 of the AWS SDK for Ruby. Version 2 documentation can be found here.

Class: Aws::DeviceFarm::Client

Inherits:
Seahorse::Client::Base show all
Includes:
ClientStubs
Defined in:
gems/aws-sdk-devicefarm/lib/aws-sdk-devicefarm/client.rb

Instance Attribute Summary

Attributes inherited from Seahorse::Client::Base

#config, #handlers

API Operations collapse

Instance Method Summary collapse

Methods included from ClientStubs

#api_requests, #stub_data, #stub_responses

Methods inherited from Seahorse::Client::Base

add_plugin, api, clear_plugins, define, new, #operation_names, plugins, remove_plugin, set_api, set_plugins

Methods included from Seahorse::Client::HandlerBuilder

#handle, #handle_request, #handle_response

Constructor Details

#initialize(options) ⇒ Client

Returns a new instance of Client

Parameters:

  • options (Hash)

Options Hash (options):

  • :credentials (required, Aws::CredentialProvider)

    Your AWS credentials. This can be an instance of any one of the following classes:

    • Aws::Credentials - Used for configuring static, non-refreshing credentials.

    • Aws::InstanceProfileCredentials - Used for loading credentials from an EC2 IMDS on an EC2 instance.

    • Aws::SharedCredentials - Used for loading credentials from a shared file, such as ~/.aws/config.

    • Aws::AssumeRoleCredentials - Used when you need to assume a role.

    When :credentials are not configured directly, the following locations will be searched for credentials:

    • Aws.config[:credentials]
    • The :access_key_id, :secret_access_key, and :session_token options.
    • ENV['AWS_ACCESS_KEY_ID'], ENV['AWS_SECRET_ACCESS_KEY']
    • ~/.aws/credentials
    • ~/.aws/config
    • EC2 IMDS instance profile - When used by default, the timeouts are very aggressive. Construct and pass an instance of Aws::InstanceProfileCredentails to enable retries and extended timeouts.
  • :region (required, String)

    The AWS region to connect to. The configured :region is used to determine the service :endpoint. When not passed, a default :region is search for in the following locations:

    • Aws.config[:region]
    • ENV['AWS_REGION']
    • ENV['AMAZON_REGION']
    • ENV['AWS_DEFAULT_REGION']
    • ~/.aws/credentials
    • ~/.aws/config
  • :access_key_id (String)
  • :active_endpoint_cache (Boolean) — default: false

    When set to true, a thread polling for endpoints will be running in the background every 60 secs (default). Defaults to false.

  • :client_side_monitoring (Boolean) — default: false

    When true, client-side metrics will be collected for all API requests from this client.

  • :client_side_monitoring_client_id (String) — default: ""

    Allows you to provide an identifier for this client which will be attached to all generated client side metrics. Defaults to an empty string.

  • :client_side_monitoring_host (String) — default: "127.0.0.1"

    Allows you to specify the DNS hostname or IPv4 or IPv6 address that the client side monitoring agent is running on, where client metrics will be published via UDP.

  • :client_side_monitoring_port (Integer) — default: 31000

    Required for publishing client metrics. The port that the client side monitoring agent is running on, where client metrics will be published via UDP.

  • :client_side_monitoring_publisher (Aws::ClientSideMonitoring::Publisher) — default: Aws::ClientSideMonitoring::Publisher

    Allows you to provide a custom client-side monitoring publisher class. By default, will use the Client Side Monitoring Agent Publisher.

  • :convert_params (Boolean) — default: true

    When true, an attempt is made to coerce request parameters into the required types.

  • :disable_host_prefix_injection (Boolean) — default: false

    Set to true to disable SDK automatically adding host prefix to default service endpoint when available.

  • :endpoint (String)

    The client endpoint is normally constructed from the :region option. You should only configure an :endpoint when connecting to test endpoints. This should be avalid HTTP(S) URI.

  • :endpoint_cache_max_entries (Integer) — default: 1000

    Used for the maximum size limit of the LRU cache storing endpoints data for endpoint discovery enabled operations. Defaults to 1000.

  • :endpoint_cache_max_threads (Integer) — default: 10

    Used for the maximum threads in use for polling endpoints to be cached, defaults to 10.

  • :endpoint_cache_poll_interval (Integer) — default: 60

    When :endpoint_discovery and :active_endpoint_cache is enabled, Use this option to config the time interval in seconds for making requests fetching endpoints information. Defaults to 60 sec.

  • :endpoint_discovery (Boolean) — default: false

    When set to true, endpoint discovery will be enabled for operations when available. Defaults to false.

  • :log_formatter (Aws::Log::Formatter) — default: Aws::Log::Formatter.default

    The log formatter.

  • :log_level (Symbol) — default: :info

    The log level to send messages to the :logger at.

  • :logger (Logger)

    The Logger instance to send log messages to. If this option is not set, logging will be disabled.

  • :profile (String) — default: "default"

    Used when loading credentials from the shared credentials file at HOME/.aws/credentials. When not specified, 'default' is used.

  • :retry_base_delay (Float) — default: 0.3

    The base delay in seconds used by the default backoff function.

  • :retry_jitter (Symbol) — default: :none

    A delay randomiser function used by the default backoff function. Some predefined functions can be referenced by name - :none, :equal, :full, otherwise a Proc that takes and returns a number.

    @see https://www.awsarchitectureblog.com/2015/03/backoff.html

  • :retry_limit (Integer) — default: 3

    The maximum number of times to retry failed requests. Only ~ 500 level server errors and certain ~ 400 level client errors are retried. Generally, these are throttling errors, data checksum errors, networking errors, timeout errors and auth errors from expired credentials.

  • :retry_max_delay (Integer) — default: 0

    The maximum number of seconds to delay between retries (0 for no limit) used by the default backoff function.

  • :secret_access_key (String)
  • :session_token (String)
  • :simple_json (Boolean) — default: false

    Disables request parameter conversion, validation, and formatting. Also disable response data type conversions. This option is useful when you want to ensure the highest level of performance by avoiding overhead of walking request parameters and response data structures.

    When :simple_json is enabled, the request parameters hash must be formatted exactly as the DynamoDB API expects.

  • :stub_responses (Boolean) — default: false

    Causes the client to return stubbed responses. By default fake responses are generated and returned. You can specify the response data to return or errors to raise by calling ClientStubs#stub_responses. See ClientStubs for more information.

    Please note When response stubbing is enabled, no HTTP requests are made, and retries are disabled.

  • :validate_params (Boolean) — default: true

    When true, request parameters are validated before sending the request.

  • :http_proxy (URI::HTTP, String)

    A proxy to send requests through. Formatted like 'http://proxy.com:123'.

  • :http_open_timeout (Float) — default: 15

    The number of seconds to wait when opening a HTTP session before rasing a Timeout::Error.

  • :http_read_timeout (Integer) — default: 60

    The default number of seconds to wait for response data. This value can safely be set per-request on the session yeidled by #session_for.

  • :http_idle_timeout (Float) — default: 5

    The number of seconds a connection is allowed to sit idble before it is considered stale. Stale connections are closed and removed from the pool before making a request.

  • :http_continue_timeout (Float) — default: 1

    The number of seconds to wait for a 100-continue response before sending the request body. This option has no effect unless the request has "Expect" header set to "100-continue". Defaults to nil which disables this behaviour. This value can safely be set per request on the session yeidled by #session_for.

  • :http_wire_trace (Boolean) — default: false

    When true, HTTP debug output will be sent to the :logger.

  • :ssl_verify_peer (Boolean) — default: true

    When true, SSL peer certificates are verified when establishing a connection.

  • :ssl_ca_bundle (String)

    Full path to the SSL certificate authority bundle file that should be used when verifying peer certificates. If you do not pass :ssl_ca_bundle or :ssl_ca_directory the the system default will be used if available.

  • :ssl_ca_directory (String)

    Full path of the directory that contains the unbundled SSL certificate authority files for verifying peer certificates. If you do not pass :ssl_ca_bundle or :ssl_ca_directory the the system default will be used if available.



261
262
263
# File 'gems/aws-sdk-devicefarm/lib/aws-sdk-devicefarm/client.rb', line 261

def initialize(*args)
  super
end

Instance Method Details

#create_device_pool(params = {}) ⇒ Types::CreateDevicePoolResult

Creates a device pool.

Examples:

Example: To create a new device pool


# The following example creates a new device pool named MyDevicePool inside an existing project.

resp = client.create_device_pool({
  name: "MyDevicePool", # A device pool contains related devices, such as devices that run only on Android or that run only on iOS.
  description: "My Android devices", 
  project_arn: "arn:aws:devicefarm:us-west-2:123456789101:project:EXAMPLE-GUID-123-456", # You can get the project ARN by using the list-projects CLI command.
  rules: [
  ], 
})

resp.to_h outputs the following:
{
  device_pool: {
  }, 
}

Request syntax with placeholder values


resp = client.create_device_pool({
  project_arn: "AmazonResourceName", # required
  name: "Name", # required
  description: "Message",
  rules: [ # required
    {
      attribute: "ARN", # accepts ARN, PLATFORM, FORM_FACTOR, MANUFACTURER, REMOTE_ACCESS_ENABLED, REMOTE_DEBUG_ENABLED, APPIUM_VERSION, INSTANCE_ARN, INSTANCE_LABELS, FLEET_TYPE, OS_VERSION, MODEL, AVAILABILITY
      operator: "EQUALS", # accepts EQUALS, LESS_THAN, LESS_THAN_OR_EQUALS, GREATER_THAN, GREATER_THAN_OR_EQUALS, IN, NOT_IN, CONTAINS
      value: "String",
    },
  ],
  max_devices: 1,
})

Response structure


resp.device_pool.arn #=> String
resp.device_pool.name #=> String
resp.device_pool.description #=> String
resp.device_pool.type #=> String, one of "CURATED", "PRIVATE"
resp.device_pool.rules #=> Array
resp.device_pool.rules[0].attribute #=> String, one of "ARN", "PLATFORM", "FORM_FACTOR", "MANUFACTURER", "REMOTE_ACCESS_ENABLED", "REMOTE_DEBUG_ENABLED", "APPIUM_VERSION", "INSTANCE_ARN", "INSTANCE_LABELS", "FLEET_TYPE", "OS_VERSION", "MODEL", "AVAILABILITY"
resp.device_pool.rules[0].operator #=> String, one of "EQUALS", "LESS_THAN", "LESS_THAN_OR_EQUALS", "GREATER_THAN", "GREATER_THAN_OR_EQUALS", "IN", "NOT_IN", "CONTAINS"
resp.device_pool.rules[0].value #=> String
resp.device_pool.max_devices #=> Integer

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :project_arn (required, String)

    The ARN of the project for the device pool.

  • :name (required, String)

    The device pool's name.

  • :description (String)

    The device pool's description.

  • :rules (required, Array<Types::Rule>)

    The device pool's rules.

  • :max_devices (Integer)

    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.

Returns:

See Also:



346
347
348
349
# File 'gems/aws-sdk-devicefarm/lib/aws-sdk-devicefarm/client.rb', line 346

def create_device_pool(params = {}, options = {})
  req = build_request(:create_device_pool, params)
  req.send_request(options)
end

#create_instance_profile(params = {}) ⇒ Types::CreateInstanceProfileResult

Creates a profile that can be applied to one or more private fleet device instances.

Examples:

Request syntax with placeholder values


resp = client.create_instance_profile({
  name: "Name", # required
  description: "Message",
  package_cleanup: false,
  exclude_app_packages_from_cleanup: ["String"],
  reboot_after_use: false,
})

Response structure


resp.instance_profile.arn #=> String
resp.instance_profile.package_cleanup #=> Boolean
resp.instance_profile.exclude_app_packages_from_cleanup #=> Array
resp.instance_profile.exclude_app_packages_from_cleanup[0] #=> String
resp.instance_profile.reboot_after_use #=> Boolean
resp.instance_profile.name #=> String
resp.instance_profile.description #=> String

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :name (required, String)

    The name of your instance profile.

  • :description (String)

    The description of your instance profile.

  • :package_cleanup (Boolean)

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

  • :exclude_app_packages_from_cleanup (Array<String>)

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

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

  • :reboot_after_use (Boolean)

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

Returns:

See Also:



403
404
405
406
# File 'gems/aws-sdk-devicefarm/lib/aws-sdk-devicefarm/client.rb', line 403

def create_instance_profile(params = {}, options = {})
  req = build_request(:create_instance_profile, params)
  req.send_request(options)
end

#create_network_profile(params = {}) ⇒ Types::CreateNetworkProfileResult

Creates a network profile.

Examples:

Request syntax with placeholder values


resp = client.create_network_profile({
  project_arn: "AmazonResourceName", # required
  name: "Name", # required
  description: "Message",
  type: "CURATED", # accepts CURATED, PRIVATE
  uplink_bandwidth_bits: 1,
  downlink_bandwidth_bits: 1,
  uplink_delay_ms: 1,
  downlink_delay_ms: 1,
  uplink_jitter_ms: 1,
  downlink_jitter_ms: 1,
  uplink_loss_percent: 1,
  downlink_loss_percent: 1,
})

Response structure


resp.network_profile.arn #=> String
resp.network_profile.name #=> String
resp.network_profile.description #=> String
resp.network_profile.type #=> String, one of "CURATED", "PRIVATE"
resp.network_profile.uplink_bandwidth_bits #=> Integer
resp.network_profile.downlink_bandwidth_bits #=> Integer
resp.network_profile.uplink_delay_ms #=> Integer
resp.network_profile.downlink_delay_ms #=> Integer
resp.network_profile.uplink_jitter_ms #=> Integer
resp.network_profile.downlink_jitter_ms #=> Integer
resp.network_profile.uplink_loss_percent #=> Integer
resp.network_profile.downlink_loss_percent #=> Integer

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :project_arn (required, String)

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

  • :name (required, String)

    The name you wish to specify for the new network profile.

  • :description (String)

    The description of the network profile.

  • :type (String)

    The type of network profile you wish to create. Valid values are listed below.

  • :uplink_bandwidth_bits (Integer)

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

  • :downlink_bandwidth_bits (Integer)

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

  • :uplink_delay_ms (Integer)

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

  • :downlink_delay_ms (Integer)

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

  • :uplink_jitter_ms (Integer)

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

  • :downlink_jitter_ms (Integer)

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

  • :uplink_loss_percent (Integer)

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

  • :downlink_loss_percent (Integer)

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

Returns:

See Also:



496
497
498
499
# File 'gems/aws-sdk-devicefarm/lib/aws-sdk-devicefarm/client.rb', line 496

def create_network_profile(params = {}, options = {})
  req = build_request(:create_network_profile, params)
  req.send_request(options)
end

#create_project(params = {}) ⇒ Types::CreateProjectResult

Creates a new project.

Examples:

Example: To create a new project


# The following example creates a new project named MyProject.

resp = client.create_project({
  name: "MyProject", # A project in Device Farm is a workspace that contains test runs. A run is a test of a single app against one or more devices.
})

resp.to_h outputs the following:
{
  project: {
    name: "MyProject", 
    arn: "arn:aws:devicefarm:us-west-2:123456789101:project:5e01a8c7-c861-4c0a-b1d5-12345EXAMPLE", 
    created: Time.parse("1472660939.152"), 
  }, 
}

Request syntax with placeholder values


resp = client.create_project({
  name: "Name", # required
  default_job_timeout_minutes: 1,
})

Response structure


resp.project.arn #=> String
resp.project.name #=> String
resp.project.default_job_timeout_minutes #=> Integer
resp.project.created #=> Time

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :name (required, String)

    The project's name.

  • :default_job_timeout_minutes (Integer)

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

Returns:

See Also:



551
552
553
554
# File 'gems/aws-sdk-devicefarm/lib/aws-sdk-devicefarm/client.rb', line 551

def create_project(params = {}, options = {})
  req = build_request(:create_project, params)
  req.send_request(options)
end

#create_remote_access_session(params = {}) ⇒ Types::CreateRemoteAccessSessionResult

Specifies and starts a remote access session.

Examples:

Example: To create a remote access session


# The following example creates a remote access session named MySession.

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

resp.to_h outputs the following:
{
  remote_access_session: {
  }, 
}

Request syntax with placeholder values


resp = client.create_remote_access_session({
  project_arn: "AmazonResourceName", # required
  device_arn: "AmazonResourceName", # required
  instance_arn: "AmazonResourceName",
  ssh_public_key: "SshPublicKey",
  remote_debug_enabled: false,
  remote_record_enabled: false,
  remote_record_app_arn: "AmazonResourceName",
  name: "Name",
  client_id: "ClientId",
  configuration: {
    billing_method: "METERED", # accepts METERED, UNMETERED
    vpce_configuration_arns: ["AmazonResourceName"],
  },
  interaction_mode: "INTERACTIVE", # accepts INTERACTIVE, NO_VIDEO, VIDEO_ONLY
  skip_app_resign: false,
})

Response structure


resp.remote_access_session.arn #=> String
resp.remote_access_session.name #=> String
resp.remote_access_session.created #=> Time
resp.remote_access_session.status #=> String, one of "PENDING", "PENDING_CONCURRENCY", "PENDING_DEVICE", "PROCESSING", "SCHEDULING", "PREPARING", "RUNNING", "COMPLETED", "STOPPING"
resp.remote_access_session.result #=> String, one of "PENDING", "PASSED", "WARNED", "FAILED", "SKIPPED", "ERRORED", "STOPPED"
resp.remote_access_session.message #=> String
resp.remote_access_session.started #=> Time
resp.remote_access_session.stopped #=> Time
resp.remote_access_session.device.arn #=> String
resp.remote_access_session.device.name #=> String
resp.remote_access_session.device.manufacturer #=> String
resp.remote_access_session.device.model #=> String
resp.remote_access_session.device.model_id #=> String
resp.remote_access_session.device.form_factor #=> String, one of "PHONE", "TABLET"
resp.remote_access_session.device.platform #=> String, one of "ANDROID", "IOS"
resp.remote_access_session.device.os #=> String
resp.remote_access_session.device.cpu.frequency #=> String
resp.remote_access_session.device.cpu.architecture #=> String
resp.remote_access_session.device.cpu.clock #=> Float
resp.remote_access_session.device.resolution.width #=> Integer
resp.remote_access_session.device.resolution.height #=> Integer
resp.remote_access_session.device.heap_size #=> Integer
resp.remote_access_session.device.memory #=> Integer
resp.remote_access_session.device.image #=> String
resp.remote_access_session.device.carrier #=> String
resp.remote_access_session.device.radio #=> String
resp.remote_access_session.device.remote_access_enabled #=> Boolean
resp.remote_access_session.device.remote_debug_enabled #=> Boolean
resp.remote_access_session.device.fleet_type #=> String
resp.remote_access_session.device.fleet_name #=> String
resp.remote_access_session.device.instances #=> Array
resp.remote_access_session.device.instances[0].arn #=> String
resp.remote_access_session.device.instances[0].device_arn #=> String
resp.remote_access_session.device.instances[0].labels #=> Array
resp.remote_access_session.device.instances[0].labels[0] #=> String
resp.remote_access_session.device.instances[0].status #=> String, one of "IN_USE", "PREPARING", "AVAILABLE", "NOT_AVAILABLE"
resp.remote_access_session.device.instances[0].udid #=> String
resp.remote_access_session.device.instances[0].instance_profile.arn #=> String
resp.remote_access_session.device.instances[0].instance_profile.package_cleanup #=> Boolean
resp.remote_access_session.device.instances[0].instance_profile.exclude_app_packages_from_cleanup #=> Array
resp.remote_access_session.device.instances[0].instance_profile.exclude_app_packages_from_cleanup[0] #=> String
resp.remote_access_session.device.instances[0].instance_profile.reboot_after_use #=> Boolean
resp.remote_access_session.device.instances[0].instance_profile.name #=> String
resp.remote_access_session.device.instances[0].instance_profile.description #=> String
resp.remote_access_session.device.availability #=> String, one of "TEMPORARY_NOT_AVAILABLE", "BUSY", "AVAILABLE", "HIGHLY_AVAILABLE"
resp.remote_access_session.instance_arn #=> String
resp.remote_access_session.remote_debug_enabled #=> Boolean
resp.remote_access_session.remote_record_enabled #=> Boolean
resp.remote_access_session.remote_record_app_arn #=> String
resp.remote_access_session.host_address #=> String
resp.remote_access_session.client_id #=> String
resp.remote_access_session.billing_method #=> String, one of "METERED", "UNMETERED"
resp.remote_access_session.device_minutes.total #=> Float
resp.remote_access_session.device_minutes.metered #=> Float
resp.remote_access_session.device_minutes.unmetered #=> Float
resp.remote_access_session.endpoint #=> String
resp.remote_access_session.device_udid #=> String
resp.remote_access_session.interaction_mode #=> String, one of "INTERACTIVE", "NO_VIDEO", "VIDEO_ONLY"
resp.remote_access_session.skip_app_resign #=> Boolean

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :project_arn (required, String)

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

  • :device_arn (required, String)

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

  • :instance_arn (String)

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

  • :ssh_public_key (String)

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

  • :remote_debug_enabled (Boolean)

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

  • :remote_record_enabled (Boolean)

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

  • :remote_record_app_arn (String)

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

  • :name (String)

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

  • :client_id (String)

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

  • :configuration (Types::CreateRemoteAccessSessionConfiguration)

    The configuration information for the remote access session request.

  • :interaction_mode (String)

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

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

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

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

  • :skip_app_resign (Boolean)

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

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

Returns:

See Also:



736
737
738
739
# File 'gems/aws-sdk-devicefarm/lib/aws-sdk-devicefarm/client.rb', line 736

def create_remote_access_session(params = {}, options = {})
  req = build_request(:create_remote_access_session, params)
  req.send_request(options)
end

#create_upload(params = {}) ⇒ Types::CreateUploadResult

Uploads an app or test scripts.

Examples:

Example: To create a new test package upload


# The following example creates a new Appium Python test package upload inside an existing project.

resp = client.create_upload({
  name: "MyAppiumPythonUpload", 
  type: "APPIUM_PYTHON_TEST_PACKAGE", 
  project_arn: "arn:aws:devicefarm:us-west-2:123456789101:project:EXAMPLE-GUID-123-456", # You can get the project ARN by using the list-projects CLI command.
})

resp.to_h outputs the following:
{
  upload: {
    name: "MyAppiumPythonUpload", 
    type: "APPIUM_PYTHON_TEST_PACKAGE", 
    arn: "arn:aws:devicefarm:us-west-2:123456789101:upload:5e01a8c7-c861-4c0a-b1d5-5ec6e6c6dd23/b5340a65-3da7-4da6-a26e-12345EXAMPLE", 
    created: Time.parse("1472661404.186"), 
    status: "INITIALIZED", 
    url: "https://prod-us-west-2-uploads.s3-us-west-2.amazonaws.com/arn%3Aaws%3Adevicefarm%3Aus-west-2%3A123456789101%3Aproject%3A5e01a8c7-c861-4c0a-b1d5-12345EXAMPLE/uploads/arn%3Aaws%3Adevicefarm%3Aus-west-2%3A123456789101%3Aupload%3A5e01a8c7-c861-4c0a-b1d5-5ec6e6c6dd23/b5340a65-3da7-4da6-a26e-12345EXAMPLE/MyAppiumPythonUpload?AWSAccessKeyId=1234567891011EXAMPLE&Expires=1472747804&Signature=1234567891011EXAMPLE", 
  }, 
}

Request syntax with placeholder values


resp = client.create_upload({
  project_arn: "AmazonResourceName", # required
  name: "Name", # required
  type: "ANDROID_APP", # required, accepts 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
  content_type: "ContentType",
})

Response structure


resp.upload.arn #=> String
resp.upload.name #=> String
resp.upload.created #=> Time
resp.upload.type #=> String, one of "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"
resp.upload.status #=> String, one of "INITIALIZED", "PROCESSING", "SUCCEEDED", "FAILED"
resp.upload.url #=> String
resp.upload. #=> String
resp.upload.content_type #=> String
resp.upload.message #=> String
resp.upload.category #=> String, one of "CURATED", "PRIVATE"

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :project_arn (required, String)

    The ARN of the project for the upload.

  • :name (required, String)

    The upload's file name. The name should not contain the '/' character. If uploading an iOS app, the file name needs to end with the .ipa extension. If uploading an Android app, the file name needs to end with the .apk extension. For all others, the file name must end with the .zip file extension.

  • :type (required, String)

    The upload's upload type.

    Must be one of the following values:

    • ANDROID_APP: An Android upload.

    • IOS_APP: An iOS upload.

    • WEB_APP: A web application upload.

    • EXTERNAL_DATA: An external data upload.

    • APPIUM_JAVA_JUNIT_TEST_PACKAGE: An Appium Java JUnit test package upload.

    • APPIUM_JAVA_TESTNG_TEST_PACKAGE: An Appium Java TestNG test package upload.

    • APPIUM_PYTHON_TEST_PACKAGE: An Appium Python test package upload.

    • APPIUM_NODE_TEST_PACKAGE: An Appium Node.js test package upload.

    • APPIUM_RUBY_TEST_PACKAGE: An Appium Ruby test package upload.

    • APPIUM_WEB_JAVA_JUNIT_TEST_PACKAGE: An Appium Java JUnit test package upload for a web app.

    • APPIUM_WEB_JAVA_TESTNG_TEST_PACKAGE: An Appium Java TestNG test package upload for a web app.

    • APPIUM_WEB_PYTHON_TEST_PACKAGE: An Appium Python test package upload for a web app.

    • APPIUM_WEB_NODE_TEST_PACKAGE: An Appium Node.js test package upload for a web app.

    • APPIUM_WEB_RUBY_TEST_PACKAGE: An Appium Ruby test package upload for a web app.

    • CALABASH_TEST_PACKAGE: A Calabash test package upload.

    • INSTRUMENTATION_TEST_PACKAGE: An instrumentation upload.

    • UIAUTOMATION_TEST_PACKAGE: A uiautomation test package upload.

    • UIAUTOMATOR_TEST_PACKAGE: A uiautomator test package upload.

    • XCTEST_TEST_PACKAGE: An Xcode test package upload.

    • XCTEST_UI_TEST_PACKAGE: An Xcode UI test package upload.

    • APPIUM_JAVA_JUNIT_TEST_SPEC: An Appium Java JUnit test spec upload.

    • APPIUM_JAVA_TESTNG_TEST_SPEC: An Appium Java TestNG test spec upload.

    • APPIUM_PYTHON_TEST_SPEC: An Appium Python test spec upload.

    • APPIUM_NODE_TEST_SPEC: An Appium Node.js test spec upload.

    • APPIUM_RUBY_TEST_SPEC: An Appium Ruby test spec upload.

    • APPIUM_WEB_JAVA_JUNIT_TEST_SPEC: An Appium Java JUnit test spec upload for a web app.

    • APPIUM_WEB_JAVA_TESTNG_TEST_SPEC: An Appium Java TestNG test spec upload for a web app.

    • APPIUM_WEB_PYTHON_TEST_SPEC: An Appium Python test spec upload for a web app.

    • APPIUM_WEB_NODE_TEST_SPEC: An Appium Node.js test spec upload for a web app.

    • APPIUM_WEB_RUBY_TEST_SPEC: An Appium Ruby test spec upload for a web app.

    • INSTRUMENTATION_TEST_SPEC: An instrumentation test spec upload.

    • XCTEST_UI_TEST_SPEC: An Xcode UI test spec upload.

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

  • :content_type (String)

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

Returns:

See Also:



896
897
898
899
# File 'gems/aws-sdk-devicefarm/lib/aws-sdk-devicefarm/client.rb', line 896

def create_upload(params = {}, options = {})
  req = build_request(:create_upload, params)
  req.send_request(options)
end

#create_vpce_configuration(params = {}) ⇒ Types::CreateVPCEConfigurationResult

Creates a configuration record in Device Farm for your Amazon Virtual Private Cloud (VPC) endpoint.

Examples:

Request syntax with placeholder values


resp = client.create_vpce_configuration({
  vpce_configuration_name: "VPCEConfigurationName", # required
  vpce_service_name: "VPCEServiceName", # required
  service_dns_name: "ServiceDnsName", # required
  vpce_configuration_description: "VPCEConfigurationDescription",
})

Response structure


resp.vpce_configuration.arn #=> String
resp.vpce_configuration.vpce_configuration_name #=> String
resp.vpce_configuration.vpce_service_name #=> String
resp.vpce_configuration.service_dns_name #=> String
resp.vpce_configuration.vpce_configuration_description #=> String

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :vpce_configuration_name (required, String)

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

  • :vpce_service_name (required, String)

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

  • :service_dns_name (required, String)

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

  • :vpce_configuration_description (String)

    An optional description, providing more details about your VPC endpoint configuration.

Returns:

See Also:



945
946
947
948
# File 'gems/aws-sdk-devicefarm/lib/aws-sdk-devicefarm/client.rb', line 945

def create_vpce_configuration(params = {}, options = {})
  req = build_request(:create_vpce_configuration, params)
  req.send_request(options)
end

#delete_device_pool(params = {}) ⇒ Struct

Deletes a device pool given the pool ARN. Does not allow deletion of curated pools owned by the system.

Examples:

Example: To delete a device pool


# The following example deletes a specific device pool.

resp = client.delete_device_pool({
  arn: "arn:aws:devicefarm:us-west-2::devicepool:123-456-EXAMPLE-GUID", # You can get the device pool ARN by using the list-device-pools CLI command.
})

resp.to_h outputs the following:
{
}

Request syntax with placeholder values


resp = client.delete_device_pool({
  arn: "AmazonResourceName", # required
})

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :arn (required, String)

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

Returns:

  • (Struct)

    Returns an empty response.

See Also:



982
983
984
985
# File 'gems/aws-sdk-devicefarm/lib/aws-sdk-devicefarm/client.rb', line 982

def delete_device_pool(params = {}, options = {})
  req = build_request(:delete_device_pool, params)
  req.send_request(options)
end

#delete_instance_profile(params = {}) ⇒ Struct

Deletes a profile that can be applied to one or more private device instances.

Examples:

Request syntax with placeholder values


resp = client.delete_instance_profile({
  arn: "AmazonResourceName", # required
})

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :arn (required, String)

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

Returns:

  • (Struct)

    Returns an empty response.

See Also:



1006
1007
1008
1009
# File 'gems/aws-sdk-devicefarm/lib/aws-sdk-devicefarm/client.rb', line 1006

def delete_instance_profile(params = {}, options = {})
  req = build_request(:delete_instance_profile, params)
  req.send_request(options)
end

#delete_network_profile(params = {}) ⇒ Struct

Deletes a network profile.

Examples:

Request syntax with placeholder values


resp = client.delete_network_profile({
  arn: "AmazonResourceName", # required
})

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :arn (required, String)

    The Amazon Resource Name (ARN) of the network profile you want to delete.

Returns:

  • (Struct)

    Returns an empty response.

See Also:



1029
1030
1031
1032
# File 'gems/aws-sdk-devicefarm/lib/aws-sdk-devicefarm/client.rb', line 1029

def delete_network_profile(params = {}, options = {})
  req = build_request(:delete_network_profile, params)
  req.send_request(options)
end

#delete_project(params = {}) ⇒ Struct

Deletes an AWS Device Farm project, given the project ARN.

Note Deleting this resource does not stop an in-progress run.

Examples:

Example: To delete a project


# The following example deletes a specific project.

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

resp.to_h outputs the following:
{
}

Request syntax with placeholder values


resp = client.delete_project({
  arn: "AmazonResourceName", # required
})

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :arn (required, String)

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

Returns:

  • (Struct)

    Returns an empty response.

See Also:



1067
1068
1069
1070
# File 'gems/aws-sdk-devicefarm/lib/aws-sdk-devicefarm/client.rb', line 1067

def delete_project(params = {}, options = {})
  req = build_request(:delete_project, params)
  req.send_request(options)
end

#delete_remote_access_session(params = {}) ⇒ Struct

Deletes a completed remote access session and its results.

Examples:

Example: To delete a specific remote access session


# The following example deletes a specific remote access session.

resp = client.delete_remote_access_session({
  arn: "arn:aws:devicefarm:us-west-2:123456789101:session:EXAMPLE-GUID-123-456", # You can get the remote access session ARN by using the list-remote-access-sessions CLI command.
})

resp.to_h outputs the following:
{
}

Request syntax with placeholder values


resp = client.delete_remote_access_session({
  arn: "AmazonResourceName", # required
})

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :arn (required, String)

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

Returns:

  • (Struct)

    Returns an empty response.

See Also:



1103
1104
1105
1106
# File 'gems/aws-sdk-devicefarm/lib/aws-sdk-devicefarm/client.rb', line 1103

def delete_remote_access_session(params = {}, options = {})
  req = build_request(:delete_remote_access_session, params)
  req.send_request(options)
end

#delete_run(params = {}) ⇒ Struct

Deletes the run, given the run ARN.

Note Deleting this resource does not stop an in-progress run.

Examples:

Example: To delete a run


# The following example deletes a specific test run.

resp = client.delete_run({
  arn: "arn:aws:devicefarm:us-west-2:123456789101:run:EXAMPLE-GUID-123-456", # You can get the run ARN by using the list-runs CLI command.
})

resp.to_h outputs the following:
{
}

Request syntax with placeholder values


resp = client.delete_run({
  arn: "AmazonResourceName", # required
})

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :arn (required, String)

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

Returns:

  • (Struct)

    Returns an empty response.

See Also:



1140
1141
1142
1143
# File 'gems/aws-sdk-devicefarm/lib/aws-sdk-devicefarm/client.rb', line 1140

def delete_run(params = {}, options = {})
  req = build_request(:delete_run, params)
  req.send_request(options)
end

#delete_upload(params = {}) ⇒ Struct

Deletes an upload given the upload ARN.

Examples:

Example: To delete a specific upload


# The following example deletes a specific upload.

resp = client.delete_upload({
  arn: "arn:aws:devicefarm:us-west-2:123456789101:upload:EXAMPLE-GUID-123-456", # You can get the upload ARN by using the list-uploads CLI command.
})

resp.to_h outputs the following:
{
}

Request syntax with placeholder values


resp = client.delete_upload({
  arn: "AmazonResourceName", # required
})

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :arn (required, String)

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

Returns:

  • (Struct)

    Returns an empty response.

See Also:



1176
1177
1178
1179
# File 'gems/aws-sdk-devicefarm/lib/aws-sdk-devicefarm/client.rb', line 1176

def delete_upload(params = {}, options = {})
  req = build_request(:delete_upload, params)
  req.send_request(options)
end

#delete_vpce_configuration(params = {}) ⇒ Struct

Deletes a configuration for your Amazon Virtual Private Cloud (VPC) endpoint.

Examples:

Request syntax with placeholder values


resp = client.delete_vpce_configuration({
  arn: "AmazonResourceName", # required
})

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :arn (required, String)

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

Returns:

  • (Struct)

    Returns an empty response.

See Also:



1200
1201
1202
1203
# File 'gems/aws-sdk-devicefarm/lib/aws-sdk-devicefarm/client.rb', line 1200

def delete_vpce_configuration(params = {}, options = {})
  req = build_request(:delete_vpce_configuration, params)
  req.send_request(options)
end

#get_account_settings(params = {}) ⇒ Types::GetAccountSettingsResult

Returns the number of unmetered iOS and/or unmetered Android devices that have been purchased by the account.

Examples:

Example: To get information about account settings


# The following example returns information about your Device Farm account settings.

resp = client.({
})

resp.to_h outputs the following:
{
  account_settings: {
    aws_account_number: "123456789101", 
    unmetered_devices: {
      "ANDROID" => 1, 
      "IOS" => 2, 
    }, 
  }, 
}

Response structure


resp.. #=> String
resp..unmetered_devices #=> Hash
resp..unmetered_devices["DevicePlatform"] #=> Integer
resp..unmetered_remote_access_devices #=> Hash
resp..unmetered_remote_access_devices["DevicePlatform"] #=> Integer
resp..max_job_timeout_minutes #=> Integer
resp..trial_minutes.total #=> Float
resp..trial_minutes.remaining #=> Float
resp..max_slots #=> Hash
resp..max_slots["String"] #=> Integer
resp..default_job_timeout_minutes #=> Integer
resp..skip_app_resign #=> Boolean

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Returns:

See Also:



1250
1251
1252
1253
# File 'gems/aws-sdk-devicefarm/lib/aws-sdk-devicefarm/client.rb', line 1250

def (params = {}, options = {})
  req = build_request(:get_account_settings, params)
  req.send_request(options)
end

#get_device(params = {}) ⇒ Types::GetDeviceResult

Gets information about a unique device type.

Examples:

Example: To get information about a device


# The following example returns information about a specific device.

resp = client.get_device({
  arn: "arn:aws:devicefarm:us-west-2::device:123EXAMPLE", 
})

resp.to_h outputs the following:
{
  device: {
    name: "LG G2 (Sprint)", 
    arn: "arn:aws:devicefarm:us-west-2::device:A0E6E6E1059E45918208DF75B2B7EF6C", 
    cpu: {
      architecture: "armeabi-v7a", 
      clock: 2265.6, 
      frequency: "MHz", 
    }, 
    form_factor: "PHONE", 
    heap_size: 256000000, 
    image: "75B2B7EF6C12345EXAMPLE", 
    manufacturer: "LG", 
    memory: 16000000000, 
    model: "G2 (Sprint)", 
    os: "4.2.2", 
    platform: "ANDROID", 
    resolution: {
      height: 1920, 
      width: 1080, 
    }, 
  }, 
}

Request syntax with placeholder values


resp = client.get_device({
  arn: "AmazonResourceName", # required
})

Response structure


resp.device.arn #=> String
resp.device.name #=> String
resp.device.manufacturer #=> String
resp.device.model #=> String
resp.device.model_id #=> String
resp.device.form_factor #=> String, one of "PHONE", "TABLET"
resp.device.platform #=> String, one of "ANDROID", "IOS"
resp.device.os #=> String
resp.device.cpu.frequency #=> String
resp.device.cpu.architecture #=> String
resp.device.cpu.clock #=> Float
resp.device.resolution.width #=> Integer
resp.device.resolution.height #=> Integer
resp.device.heap_size #=> Integer
resp.device.memory #=> Integer
resp.device.image #=> String
resp.device.carrier #=> String
resp.device.radio #=> String
resp.device.remote_access_enabled #=> Boolean
resp.device.remote_debug_enabled #=> Boolean
resp.device.fleet_type #=> String
resp.device.fleet_name #=> String
resp.device.instances #=> Array
resp.device.instances[0].arn #=> String
resp.device.instances[0].device_arn #=> String
resp.device.instances[0].labels #=> Array
resp.device.instances[0].labels[0] #=> String
resp.device.instances[0].status #=> String, one of "IN_USE", "PREPARING", "AVAILABLE", "NOT_AVAILABLE"
resp.device.instances[0].udid #=> String
resp.device.instances[0].instance_profile.arn #=> String
resp.device.instances[0].instance_profile.package_cleanup #=> Boolean
resp.device.instances[0].instance_profile.exclude_app_packages_from_cleanup #=> Array
resp.device.instances[0].instance_profile.exclude_app_packages_from_cleanup[0] #=> String
resp.device.instances[0].instance_profile.reboot_after_use #=> Boolean
resp.device.instances[0].instance_profile.name #=> String
resp.device.instances[0].instance_profile.description #=> String
resp.device.availability #=> String, one of "TEMPORARY_NOT_AVAILABLE", "BUSY", "AVAILABLE", "HIGHLY_AVAILABLE"

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :arn (required, String)

    The device type's ARN.

Returns:

See Also:



1348
1349
1350
1351
# File 'gems/aws-sdk-devicefarm/lib/aws-sdk-devicefarm/client.rb', line 1348

def get_device(params = {}, options = {})
  req = build_request(:get_device, params)
  req.send_request(options)
end

#get_device_instance(params = {}) ⇒ Types::GetDeviceInstanceResult

Returns information about a device instance belonging to a private device fleet.

Examples:

Request syntax with placeholder values


resp = client.get_device_instance({
  arn: "AmazonResourceName", # required
})

Response structure


resp.device_instance.arn #=> String
resp.device_instance.device_arn #=> String
resp.device_instance.labels #=> Array
resp.device_instance.labels[0] #=> String
resp.device_instance.status #=> String, one of "IN_USE", "PREPARING", "AVAILABLE", "NOT_AVAILABLE"
resp.device_instance.udid #=> String
resp.device_instance.instance_profile.arn #=> String
resp.device_instance.instance_profile.package_cleanup #=> Boolean
resp.device_instance.instance_profile.exclude_app_packages_from_cleanup #=> Array
resp.device_instance.instance_profile.exclude_app_packages_from_cleanup[0] #=> String
resp.device_instance.instance_profile.reboot_after_use #=> Boolean
resp.device_instance.instance_profile.name #=> String
resp.device_instance.instance_profile.description #=> String

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :arn (required, String)

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

Returns:

See Also:



1390
1391
1392
1393
# File 'gems/aws-sdk-devicefarm/lib/aws-sdk-devicefarm/client.rb', line 1390

def get_device_instance(params = {}, options = {})
  req = build_request(:get_device_instance, params)
  req.send_request(options)
end

#get_device_pool(params = {}) ⇒ Types::GetDevicePoolResult

Gets information about a device pool.

Examples:

Example: To get information about a device pool


# The following example returns information about a specific device pool, given a project ARN.

resp = client.get_device_pool({
  arn: "arn:aws:devicefarm:us-west-2:123456789101:project:EXAMPLE-GUID-123-456", # You can obtain the project ARN by using the list-projects CLI command.
})

resp.to_h outputs the following:
{
  device_pool: {
  }, 
}

Request syntax with placeholder values


resp = client.get_device_pool({
  arn: "AmazonResourceName", # required
})

Response structure


resp.device_pool.arn #=> String
resp.device_pool.name #=> String
resp.device_pool.description #=> String
resp.device_pool.type #=> String, one of "CURATED", "PRIVATE"
resp.device_pool.rules #=> Array
resp.device_pool.rules[0].attribute #=> String, one of "ARN", "PLATFORM", "FORM_FACTOR", "MANUFACTURER", "REMOTE_ACCESS_ENABLED", "REMOTE_DEBUG_ENABLED", "APPIUM_VERSION", "INSTANCE_ARN", "INSTANCE_LABELS", "FLEET_TYPE", "OS_VERSION", "MODEL", "AVAILABILITY"
resp.device_pool.rules[0].operator #=> String, one of "EQUALS", "LESS_THAN", "LESS_THAN_OR_EQUALS", "GREATER_THAN", "GREATER_THAN_OR_EQUALS", "IN", "NOT_IN", "CONTAINS"
resp.device_pool.rules[0].value #=> String
resp.device_pool.max_devices #=> Integer

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :arn (required, String)

    The device pool's ARN.

Returns:

See Also:



1441
1442
1443
1444
# File 'gems/aws-sdk-devicefarm/lib/aws-sdk-devicefarm/client.rb', line 1441

def get_device_pool(params = {}, options = {})
  req = build_request(:get_device_pool, params)
  req.send_request(options)
end

#get_device_pool_compatibility(params = {}) ⇒ Types::GetDevicePoolCompatibilityResult

Gets information about compatibility with a device pool.

Examples:

Example: To get information about the compatibility of a device pool


# The following example returns information about the compatibility of a specific device pool, given its ARN.

resp = client.get_device_pool_compatibility({
  app_arn: "arn:aws:devicefarm:us-west-2::app:123-456-EXAMPLE-GUID", 
  device_pool_arn: "arn:aws:devicefarm:us-west-2::devicepool:123-456-EXAMPLE-GUID", # You can get the device pool ARN by using the list-device-pools CLI command.
  test_type: "APPIUM_PYTHON", 
})

resp.to_h outputs the following:
{
  compatible_devices: [
  ], 
  incompatible_devices: [
  ], 
}

Request syntax with placeholder values


resp = client.get_device_pool_compatibility({
  device_pool_arn: "AmazonResourceName", # required
  app_arn: "AmazonResourceName",
  test_type: "BUILTIN_FUZZ", # accepts BUILTIN_FUZZ, BUILTIN_EXPLORER, WEB_PERFORMANCE_PROFILE, 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, CALABASH, INSTRUMENTATION, UIAUTOMATION, UIAUTOMATOR, XCTEST, XCTEST_UI, REMOTE_ACCESS_RECORD, REMOTE_ACCESS_REPLAY
  test: {
    type: "BUILTIN_FUZZ", # required, accepts BUILTIN_FUZZ, BUILTIN_EXPLORER, WEB_PERFORMANCE_PROFILE, 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, CALABASH, INSTRUMENTATION, UIAUTOMATION, UIAUTOMATOR, XCTEST, XCTEST_UI, REMOTE_ACCESS_RECORD, REMOTE_ACCESS_REPLAY
    test_package_arn: "AmazonResourceName",
    test_spec_arn: "AmazonResourceName",
    filter: "Filter",
    parameters: {
      "String" => "String",
    },
  },
  configuration: {
    extra_data_package_arn: "AmazonResourceName",
    network_profile_arn: "AmazonResourceName",
    locale: "String",
    location: {
      latitude: 1.0, # required
      longitude: 1.0, # required
    },
    vpce_configuration_arns: ["AmazonResourceName"],
    customer_artifact_paths: {
      ios_paths: ["String"],
      android_paths: ["String"],
      device_host_paths: ["String"],
    },
    radios: {
      wifi: false,
      bluetooth: false,
      nfc: false,
      gps: false,
    },
    auxiliary_apps: ["AmazonResourceName"],
    billing_method: "METERED", # accepts METERED, UNMETERED
  },
})

Response structure


resp.compatible_devices #=> Array
resp.compatible_devices[0].device.arn #=> String
resp.compatible_devices[0].device.name #=> String
resp.compatible_devices[0].device.manufacturer #=> String
resp.compatible_devices[0].device.model #=> String
resp.compatible_devices[0].device.model_id #=> String
resp.compatible_devices[0].device.form_factor #=> String, one of "PHONE", "TABLET"
resp.compatible_devices[0].device.platform #=> String, one of "ANDROID", "IOS"
resp.compatible_devices[0].device.os #=> String
resp.compatible_devices[0].device.cpu.frequency #=> String
resp.compatible_devices[0].device.cpu.architecture #=> String
resp.compatible_devices[0].device.cpu.clock #=> Float
resp.compatible_devices[0].device.resolution.width #=> Integer
resp.compatible_devices[0].device.resolution.height #=> Integer
resp.compatible_devices[0].device.heap_size #=> Integer
resp.compatible_devices[0].device.memory #=> Integer
resp.compatible_devices[0].device.image #=> String
resp.compatible_devices[0].device.carrier #=> String
resp.compatible_devices[0].device.radio #=> String
resp.compatible_devices[0].device.remote_access_enabled #=> Boolean
resp.compatible_devices[0].device.remote_debug_enabled #=> Boolean
resp.compatible_devices[0].device.fleet_type #=> String
resp.compatible_devices[0].device.fleet_name #=> String
resp.compatible_devices[0].device.instances #=> Array
resp.compatible_devices[0].device.instances[0].arn #=> String
resp.compatible_devices[0].device.instances[0].device_arn #=> String
resp.compatible_devices[0].device.instances[0].labels #=> Array
resp.compatible_devices[0].device.instances[0].labels[0] #=> String
resp.compatible_devices[0].device.instances[0].status #=> String, one of "IN_USE", "PREPARING", "AVAILABLE", "NOT_AVAILABLE"
resp.compatible_devices[0].device.instances[0].udid #=> String
resp.compatible_devices[0].device.instances[0].instance_profile.arn #=> String
resp.compatible_devices[0].device.instances[0].instance_profile.package_cleanup #=> Boolean
resp.compatible_devices[0].device.instances[0].instance_profile.exclude_app_packages_from_cleanup #=> Array
resp.compatible_devices[0].device.instances[0].instance_profile.exclude_app_packages_from_cleanup[0] #=> String
resp.compatible_devices[0].device.instances[0].instance_profile.reboot_after_use #=> Boolean
resp.compatible_devices[0].device.instances[0].instance_profile.name #=> String
resp.compatible_devices[0].device.instances[0].instance_profile.description #=> String
resp.compatible_devices[0].device.availability #=> String, one of "TEMPORARY_NOT_AVAILABLE", "BUSY", "AVAILABLE", "HIGHLY_AVAILABLE"
resp.compatible_devices[0].compatible #=> Boolean
resp.compatible_devices[0].incompatibility_messages #=> Array
resp.compatible_devices[0].incompatibility_messages[0].message #=> String
resp.compatible_devices[0].incompatibility_messages[0].type #=> String, one of "ARN", "PLATFORM", "FORM_FACTOR", "MANUFACTURER", "REMOTE_ACCESS_ENABLED", "REMOTE_DEBUG_ENABLED", "APPIUM_VERSION", "INSTANCE_ARN", "INSTANCE_LABELS", "FLEET_TYPE", "OS_VERSION", "MODEL", "AVAILABILITY"
resp.incompatible_devices #=> Array
resp.incompatible_devices[0].device.arn #=> String
resp.incompatible_devices[0].device.name #=> String
resp.incompatible_devices[0].device.manufacturer #=> String
resp.incompatible_devices[0].device.model #=> String
resp.incompatible_devices[0].device.model_id #=> String
resp.incompatible_devices[0].device.form_factor #=> String, one of "PHONE", "TABLET"
resp.incompatible_devices[0].device.platform #=> String, one of "ANDROID", "IOS"
resp.incompatible_devices[0].device.os #=> String
resp.incompatible_devices[0].device.cpu.frequency #=> String
resp.incompatible_devices[0].device.cpu.architecture #=> String
resp.incompatible_devices[0].device.cpu.clock #=> Float
resp.incompatible_devices[0].device.resolution.width #=> Integer
resp.incompatible_devices[0].device.resolution.height #=> Integer
resp.incompatible_devices[0].device.heap_size #=> Integer
resp.incompatible_devices[0].device.memory #=> Integer
resp.incompatible_devices[0].device.image #=> String
resp.incompatible_devices[0].device.carrier #=> String
resp.incompatible_devices[0].device.radio #=> String
resp.incompatible_devices[0].device.remote_access_enabled #=> Boolean
resp.incompatible_devices[0].device.remote_debug_enabled #=> Boolean
resp.incompatible_devices[0].device.fleet_type #=> String
resp.incompatible_devices[0].device.fleet_name #=> String
resp.incompatible_devices[0].device.instances #=> Array
resp.incompatible_devices[0].device.instances[0].arn #=> String
resp.incompatible_devices[0].device.instances[0].device_arn #=> String
resp.incompatible_devices[0].device.instances[0].labels #=> Array
resp.incompatible_devices[0].device.instances[0].labels[0] #=> String
resp.incompatible_devices[0].device.instances[0].status #=> String, one of "IN_USE", "PREPARING", "AVAILABLE", "NOT_AVAILABLE"
resp.incompatible_devices[0].device.instances[0].udid #=> String
resp.incompatible_devices[0].device.instances[0].instance_profile.arn #=> String
resp.incompatible_devices[0].device.instances[0].instance_profile.package_cleanup #=> Boolean
resp.incompatible_devices[0].device.instances[0].instance_profile.exclude_app_packages_from_cleanup #=> Array
resp.incompatible_devices[0].device.instances[0].instance_profile.exclude_app_packages_from_cleanup[0] #=> String
resp.incompatible_devices[0].device.instances[0].instance_profile.reboot_after_use #=> Boolean
resp.incompatible_devices[0].device.instances[0].instance_profile.name #=> String
resp.incompatible_devices[0].device.instances[0].instance_profile.description #=> String
resp.incompatible_devices[0].device.availability #=> String, one of "TEMPORARY_NOT_AVAILABLE", "BUSY", "AVAILABLE", "HIGHLY_AVAILABLE"
resp.incompatible_devices[0].compatible #=> Boolean
resp.incompatible_devices[0].incompatibility_messages #=> Array
resp.incompatible_devices[0].incompatibility_messages[0].message #=> String
resp.incompatible_devices[0].incompatibility_messages[0].type #=> String, one of "ARN", "PLATFORM", "FORM_FACTOR", "MANUFACTURER", "REMOTE_ACCESS_ENABLED", "REMOTE_DEBUG_ENABLED", "APPIUM_VERSION", "INSTANCE_ARN", "INSTANCE_LABELS", "FLEET_TYPE", "OS_VERSION", "MODEL", "AVAILABILITY"

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :device_pool_arn (required, String)

    The device pool's ARN.

  • :app_arn (String)

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

  • :test_type (String)

    The test type for the specified device pool.

    Allowed values include the following:

    • BUILTIN_FUZZ: The built-in fuzz type.

    • BUILTIN_EXPLORER: For Android, an app explorer that will traverse an Android app, interacting with it and capturing screenshots at the same time.

    • APPIUM_JAVA_JUNIT: The Appium Java JUnit type.

    • APPIUM_JAVA_TESTNG: The Appium Java TestNG type.

    • APPIUM_PYTHON: The Appium Python type.

    • APPIUM_NODE: The Appium Node.js type.

    • APPIUM_RUBY: The Appium Ruby type.

    • APPIUM_WEB_JAVA_JUNIT: The Appium Java JUnit type for web apps.

    • APPIUM_WEB_JAVA_TESTNG: The Appium Java TestNG type for web apps.

    • APPIUM_WEB_PYTHON: The Appium Python type for web apps.

    • APPIUM_WEB_NODE: The Appium Node.js type for web apps.

    • APPIUM_WEB_RUBY: The Appium Ruby type for web apps.

    • CALABASH: The Calabash type.

    • INSTRUMENTATION: The Instrumentation type.

    • UIAUTOMATION: The uiautomation type.

    • UIAUTOMATOR: The uiautomator type.

    • XCTEST: The Xcode test type.

    • XCTEST_UI: The Xcode UI test type.

  • :test (Types::ScheduleRunTest)

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

  • :configuration (Types::ScheduleRunConfiguration)

    An object containing information about the settings for a run.

Returns:

See Also:



1658
1659
1660
1661
# File 'gems/aws-sdk-devicefarm/lib/aws-sdk-devicefarm/client.rb', line 1658

def get_device_pool_compatibility(params = {}, options = {})
  req = build_request(:get_device_pool_compatibility, params)
  req.send_request(options)
end

#get_instance_profile(params = {}) ⇒ Types::GetInstanceProfileResult

Returns information about the specified instance profile.

Examples:

Request syntax with placeholder values


resp = client.get_instance_profile({
  arn: "AmazonResourceName", # required
})

Response structure


resp.instance_profile.arn #=> String
resp.instance_profile.package_cleanup #=> Boolean
resp.instance_profile.exclude_app_packages_from_cleanup #=> Array
resp.instance_profile.exclude_app_packages_from_cleanup[0] #=> String
resp.instance_profile.reboot_after_use #=> Boolean
resp.instance_profile.name #=> String
resp.instance_profile.description #=> String

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :arn (required, String)

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

Returns:

See Also:



1692
1693
1694
1695
# File 'gems/aws-sdk-devicefarm/lib/aws-sdk-devicefarm/client.rb', line 1692

def get_instance_profile(params = {}, options = {})
  req = build_request(:get_instance_profile, params)
  req.send_request(options)
end

#get_job(params = {}) ⇒ Types::GetJobResult

Gets information about a job.

Examples:

Example: To get information about a job


# The following example returns information about a specific job.

resp = client.get_job({
  arn: "arn:aws:devicefarm:us-west-2::job:123-456-EXAMPLE-GUID", # You can get the job ARN by using the list-jobs CLI command.
})

resp.to_h outputs the following:
{
  job: {
  }, 
}

Request syntax with placeholder values


resp = client.get_job({
  arn: "AmazonResourceName", # required
})

Response structure


resp.job.arn #=> String
resp.job.name #=> String
resp.job.type #=> String, one of "BUILTIN_FUZZ", "BUILTIN_EXPLORER", "WEB_PERFORMANCE_PROFILE", "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", "CALABASH", "INSTRUMENTATION", "UIAUTOMATION", "UIAUTOMATOR", "XCTEST", "XCTEST_UI", "REMOTE_ACCESS_RECORD", "REMOTE_ACCESS_REPLAY"
resp.job.created #=> Time
resp.job.status #=> String, one of "PENDING", "PENDING_CONCURRENCY", "PENDING_DEVICE", "PROCESSING", "SCHEDULING", "PREPARING", "RUNNING", "COMPLETED", "STOPPING"
resp.job.result #=> String, one of "PENDING", "PASSED", "WARNED", "FAILED", "SKIPPED", "ERRORED", "STOPPED"
resp.job.started #=> Time
resp.job.stopped #=> Time
resp.job.counters.total #=> Integer
resp.job.counters.passed #=> Integer
resp.job.counters.failed #=> Integer
resp.job.counters.warned #=> Integer
resp.job.counters.errored #=> Integer
resp.job.counters.stopped #=> Integer
resp.job.counters.skipped #=> Integer
resp.job.message #=> String
resp.job.device.arn #=> String
resp.job.device.name #=> String
resp.job.device.manufacturer #=> String
resp.job.device.model #=> String
resp.job.device.model_id #=> String
resp.job.device.form_factor #=> String, one of "PHONE", "TABLET"
resp.job.device.platform #=> String, one of "ANDROID", "IOS"
resp.job.device.os #=> String
resp.job.device.cpu.frequency #=> String
resp.job.device.cpu.architecture #=> String
resp.job.device.cpu.clock #=> Float
resp.job.device.resolution.width #=> Integer
resp.job.device.resolution.height #=> Integer
resp.job.device.heap_size #=> Integer
resp.job.device.memory #=> Integer
resp.job.device.image #=> String
resp.job.device.carrier #=> String
resp.job.device.radio #=> String
resp.job.device.remote_access_enabled #=> Boolean
resp.job.device.remote_debug_enabled #=> Boolean
resp.job.device.fleet_type #=> String
resp.job.device.fleet_name #=> String
resp.job.device.instances #=> Array
resp.job.device.instances[0].arn #=> String
resp.job.device.instances[0].device_arn #=> String
resp.job.device.instances[0].labels #=> Array
resp.job.device.instances[0].labels[0] #=> String
resp.job.device.instances[0].status #=> String, one of "IN_USE", "PREPARING", "AVAILABLE", "NOT_AVAILABLE"
resp.job.device.instances[0].udid #=> String
resp.job.device.instances[0].instance_profile.arn #=> String
resp.job.device.instances[0].instance_profile.package_cleanup #=> Boolean
resp.job.device.instances[0].instance_profile.exclude_app_packages_from_cleanup #=> Array
resp.job.device.instances[0].instance_profile.exclude_app_packages_from_cleanup[0] #=> String
resp.job.device.instances[0].instance_profile.reboot_after_use #=> Boolean
resp.job.device.instances[0].instance_profile.name #=> String
resp.job.device.instances[0].instance_profile.description #=> String
resp.job.device.availability #=> String, one of "TEMPORARY_NOT_AVAILABLE", "BUSY", "AVAILABLE", "HIGHLY_AVAILABLE"
resp.job.instance_arn #=> String
resp.job.device_minutes.total #=> Float
resp.job.device_minutes.metered #=> Float
resp.job.device_minutes.unmetered #=> Float
resp.job.video_endpoint #=> String
resp.job.video_capture #=> Boolean

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :arn (required, String)

    The job's ARN.

Returns:

See Also:



1793
1794
1795
1796
# File 'gems/aws-sdk-devicefarm/lib/aws-sdk-devicefarm/client.rb', line 1793

def get_job(params = {}, options = {})
  req = build_request(:get_job, params)
  req.send_request(options)
end

#get_network_profile(params = {}) ⇒ Types::GetNetworkProfileResult

Returns information about a network profile.

Examples:

Request syntax with placeholder values


resp = client.get_network_profile({
  arn: "AmazonResourceName", # required
})

Response structure


resp.network_profile.arn #=> String
resp.network_profile.name #=> String
resp.network_profile.description #=> String
resp.network_profile.type #=> String, one of "CURATED", "PRIVATE"
resp.network_profile.uplink_bandwidth_bits #=> Integer
resp.network_profile.downlink_bandwidth_bits #=> Integer
resp.network_profile.uplink_delay_ms #=> Integer
resp.network_profile.downlink_delay_ms #=> Integer
resp.network_profile.uplink_jitter_ms #=> Integer
resp.network_profile.downlink_jitter_ms #=> Integer
resp.network_profile.uplink_loss_percent #=> Integer
resp.network_profile.downlink_loss_percent #=> Integer

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :arn (required, String)

    The Amazon Resource Name (ARN) of the network profile you want to return information about.

Returns:

See Also:



1833
1834
1835
1836
# File 'gems/aws-sdk-devicefarm/lib/aws-sdk-devicefarm/client.rb', line 1833

def get_network_profile(params = {}, options = {})
  req = build_request(:get_network_profile, params)
  req.send_request(options)
end

#get_offering_status(params = {}) ⇒ Types::GetOfferingStatusResult

Gets the current status and future status of all offerings purchased by an AWS account. The response indicates how many offerings are currently available and the offerings that will be available in the next period. The API returns a NotEligible error if the user is not permitted to invoke the operation. Please contact aws-devicefarm-support@amazon.com if you believe that you should be able to invoke this operation.

Examples:

Example: To get status information about device offerings


# The following example returns information about Device Farm offerings available to your account.

resp = client.get_offering_status({
  next_token: "RW5DdDJkMWYwZjM2MzM2VHVpOHJIUXlDUXlhc2QzRGViYnc9SEXAMPLE=", # A dynamically generated value, used for paginating results.
})

resp.to_h outputs the following:
{
  current: {
    "D68B3C05-1BA6-4360-BC69-12345EXAMPLE" => {
      offering: {
        type: "RECURRING", 
        description: "Android Remote Access Unmetered Device Slot", 
        id: "D68B3C05-1BA6-4360-BC69-12345EXAMPLE", 
        platform: "ANDROID", 
      }, 
      quantity: 1, 
    }, 
  }, 
  next_period: {
    "D68B3C05-1BA6-4360-BC69-12345EXAMPLE" => {
      effective_on: Time.parse("1472688000"), 
      offering: {
        type: "RECURRING", 
        description: "Android Remote Access Unmetered Device Slot", 
        id: "D68B3C05-1BA6-4360-BC69-12345EXAMPLE", 
        platform: "ANDROID", 
      }, 
      quantity: 1, 
    }, 
  }, 
}

Request syntax with placeholder values


resp = client.get_offering_status({
  next_token: "PaginationToken",
})

Response structure


resp.current #=> Hash
resp.current["OfferingIdentifier"].type #=> String, one of "PURCHASE", "RENEW", "SYSTEM"
resp.current["OfferingIdentifier"].offering.id #=> String
resp.current["OfferingIdentifier"].offering.description #=> String
resp.current["OfferingIdentifier"].offering.type #=> String, one of "RECURRING"
resp.current["OfferingIdentifier"].offering.platform #=> String, one of "ANDROID", "IOS"
resp.current["OfferingIdentifier"].offering.recurring_charges #=> Array
resp.current["OfferingIdentifier"].offering.recurring_charges[0].cost.amount #=> Float
resp.current["OfferingIdentifier"].offering.recurring_charges[0].cost.currency_code #=> String, one of "USD"
resp.current["OfferingIdentifier"].offering.recurring_charges[0].frequency #=> String, one of "MONTHLY"
resp.current["OfferingIdentifier"].quantity #=> Integer
resp.current["OfferingIdentifier"].effective_on #=> Time
resp.next_period #=> Hash
resp.next_period["OfferingIdentifier"].type #=> String, one of "PURCHASE", "RENEW", "SYSTEM"
resp.next_period["OfferingIdentifier"].offering.id #=> String
resp.next_period["OfferingIdentifier"].offering.description #=> String
resp.next_period["OfferingIdentifier"].offering.type #=> String, one of "RECURRING"
resp.next_period["OfferingIdentifier"].offering.platform #=> String, one of "ANDROID", "IOS"
resp.next_period["OfferingIdentifier"].offering.recurring_charges #=> Array
resp.next_period["OfferingIdentifier"].offering.recurring_charges[0].cost.amount #=> Float
resp.next_period["OfferingIdentifier"].offering.recurring_charges[0].cost.currency_code #=> String, one of "USD"
resp.next_period["OfferingIdentifier"].offering.recurring_charges[0].frequency #=> String, one of "MONTHLY"
resp.next_period["OfferingIdentifier"].quantity #=> Integer
resp.next_period["OfferingIdentifier"].effective_on #=> Time
resp.next_token #=> String

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

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

Returns:

See Also:



1931
1932
1933
1934
# File 'gems/aws-sdk-devicefarm/lib/aws-sdk-devicefarm/client.rb', line 1931

def get_offering_status(params = {}, options = {})
  req = build_request(:get_offering_status, params)
  req.send_request(options)
end

#get_project(params = {}) ⇒ Types::GetProjectResult

Gets information about a project.

Examples:

Example: To get information about a project


# The following example gets information about a specific project.

resp = client.get_project({
  arn: "arn:aws:devicefarm:us-west-2:123456789101:project:5e01a8c7-c861-4c0a-b1d5-12345EXAMPLE", # You can get the project ARN by using the list-projects CLI command.
})

resp.to_h outputs the following:
{
  project: {
    name: "My Project", 
    arn: "arn:aws:devicefarm:us-west-2:123456789101:project:5e01a8c7-c861-4c0a-b1d5-12345EXAMPLE", 
    created: Time.parse("1472660939.152"), 
  }, 
}

Request syntax with placeholder values


resp = client.get_project({
  arn: "AmazonResourceName", # required
})

Response structure


resp.project.arn #=> String
resp.project.name #=> String
resp.project.default_job_timeout_minutes #=> Integer
resp.project.created #=> Time

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :arn (required, String)

    The project's ARN.

Returns:

See Also:



1980
1981
1982
1983
# File 'gems/aws-sdk-devicefarm/lib/aws-sdk-devicefarm/client.rb', line 1980

def get_project(params = {}, options = {})
  req = build_request(:get_project, params)
  req.send_request(options)
end

#get_remote_access_session(params = {}) ⇒ Types::GetRemoteAccessSessionResult

Returns a link to a currently running remote access session.

Examples:

Example: To get a remote access session


# The following example gets a specific remote access session.

resp = client.get_remote_access_session({
  arn: "arn:aws:devicefarm:us-west-2:123456789101:session:EXAMPLE-GUID-123-456", # You can get the remote access session ARN by using the list-remote-access-sessions CLI command.
})

resp.to_h outputs the following:
{
  remote_access_session: {
  }, 
}

Request syntax with placeholder values


resp = client.get_remote_access_session({
  arn: "AmazonResourceName", # required
})

Response structure


resp.remote_access_session.arn #=> String
resp.remote_access_session.name #=> String
resp.remote_access_session.created #=> Time
resp.remote_access_session.status #=> String, one of "PENDING", "PENDING_CONCURRENCY", "PENDING_DEVICE", "PROCESSING", "SCHEDULING", "PREPARING", "RUNNING", "COMPLETED", "STOPPING"
resp.remote_access_session.result #=> String, one of "PENDING", "PASSED", "WARNED", "FAILED", "SKIPPED", "ERRORED", "STOPPED"
resp.remote_access_session.message #=> String
resp.remote_access_session.started #=> Time
resp.remote_access_session.stopped #=> Time
resp.remote_access_session.device.arn #=> String
resp.remote_access_session.device.name #=> String
resp.remote_access_session.device.manufacturer #=> String
resp.remote_access_session.device.model #=> String
resp.remote_access_session.device.model_id #=> String
resp.remote_access_session.device.form_factor #=> String, one of "PHONE", "TABLET"
resp.remote_access_session.device.platform #=> String, one of "ANDROID", "IOS"
resp.remote_access_session.device.os #=> String
resp.remote_access_session.device.cpu.frequency #=> String
resp.remote_access_session.device.cpu.architecture #=> String
resp.remote_access_session.device.cpu.clock #=> Float
resp.remote_access_session.device.resolution.width #=> Integer
resp.remote_access_session.device.resolution.height #=> Integer
resp.remote_access_session.device.heap_size #=> Integer
resp.remote_access_session.device.memory #=> Integer
resp.remote_access_session.device.image #=> String
resp.remote_access_session.device.carrier #=> String
resp.remote_access_session.device.radio #=> String
resp.remote_access_session.device.remote_access_enabled #=> Boolean
resp.remote_access_session.device.remote_debug_enabled #=> Boolean
resp.remote_access_session.device.fleet_type #=> String
resp.remote_access_session.device.fleet_name #=> String
resp.remote_access_session.device.instances #=> Array
resp.remote_access_session.device.instances[0].arn #=> String
resp.remote_access_session.device.instances[0].device_arn #=> String
resp.remote_access_session.device.instances[0].labels #=> Array
resp.remote_access_session.device.instances[0].labels[0] #=> String
resp.remote_access_session.device.instances[0].status #=> String, one of "IN_USE", "PREPARING", "AVAILABLE", "NOT_AVAILABLE"
resp.remote_access_session.device.instances[0].udid #=> String
resp.remote_access_session.device.instances[0].instance_profile.arn #=> String
resp.remote_access_session.device.instances[0].instance_profile.package_cleanup #=> Boolean
resp.remote_access_session.device.instances[0].instance_profile.exclude_app_packages_from_cleanup #=> Array
resp.remote_access_session.device.instances[0].instance_profile.exclude_app_packages_from_cleanup[0] #=> String
resp.remote_access_session.device.instances[0].instance_profile.reboot_after_use #=> Boolean
resp.remote_access_session.device.instances[0].instance_profile.name #=> String
resp.remote_access_session.device.instances[0].instance_profile.description #=> String
resp.remote_access_session.device.availability #=> String, one of "TEMPORARY_NOT_AVAILABLE", "BUSY", "AVAILABLE", "HIGHLY_AVAILABLE"
resp.remote_access_session.instance_arn #=> String
resp.remote_access_session.remote_debug_enabled #=> Boolean
resp.remote_access_session.remote_record_enabled #=> Boolean
resp.remote_access_session.remote_record_app_arn #=> String
resp.remote_access_session.host_address #=> String
resp.remote_access_session.client_id #=> String
resp.remote_access_session.billing_method #=> String, one of "METERED", "UNMETERED"
resp.remote_access_session.device_minutes.total #=> Float
resp.remote_access_session.device_minutes.metered #=> Float
resp.remote_access_session.device_minutes.unmetered #=> Float
resp.remote_access_session.endpoint #=> String
resp.remote_access_session.device_udid #=> String
resp.remote_access_session.interaction_mode #=> String, one of "INTERACTIVE", "NO_VIDEO", "VIDEO_ONLY"
resp.remote_access_session.skip_app_resign #=> Boolean

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :arn (required, String)

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

Returns:

See Also:



2082
2083
2084
2085
# File 'gems/aws-sdk-devicefarm/lib/aws-sdk-devicefarm/client.rb', line 2082

def get_remote_access_session(params = {}, options = {})
  req = build_request(:get_remote_access_session, params)
  req.send_request(options)
end

#get_run(params = {}) ⇒ Types::GetRunResult

Gets information about a run.

Examples:

Example: To get information about a test run


# The following example gets information about a specific test run.

resp = client.get_run({
  arn: "arn:aws:devicefarm:us-west-2:123456789101:run:5e01a8c7-c861-4c0a-b1d5-5ec6e6c6dd23/0fcac17b-6122-44d7-ae5a-12345EXAMPLE", # You can get the run ARN by using the list-runs CLI command.
})

resp.to_h outputs the following:
{
  run: {
    name: "My Test Run", 
    type: "BUILTIN_EXPLORER", 
    arn: "arn:aws:devicefarm:us-west-2:123456789101:run:5e01a8c7-c861-4c0a-b1d5-5ec6e6c6dd23/0fcac17b-6122-44d7-ae5a-12345EXAMPLE", 
    billing_method: "METERED", 
    completed_jobs: 0, 
    counters: {
      errored: 0, 
      failed: 0, 
      passed: 0, 
      skipped: 0, 
      stopped: 0, 
      total: 0, 
      warned: 0, 
    }, 
    created: Time.parse("1472667509.852"), 
    device_minutes: {
      metered: 0.0, 
      total: 0.0, 
      unmetered: 0.0, 
    }, 
    platform: "ANDROID", 
    result: "PENDING", 
    status: "RUNNING", 
    total_jobs: 3, 
  }, 
}

Request syntax with placeholder values


resp = client.get_run({
  arn: "AmazonResourceName", # required
})

Response structure


resp.run.arn #=> String
resp.run.name #=> String
resp.run.type #=> String, one of "BUILTIN_FUZZ", "BUILTIN_EXPLORER", "WEB_PERFORMANCE_PROFILE", "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", "CALABASH", "INSTRUMENTATION", "UIAUTOMATION", "UIAUTOMATOR", "XCTEST", "XCTEST_UI", "REMOTE_ACCESS_RECORD", "REMOTE_ACCESS_REPLAY"
resp.run.platform #=> String, one of "ANDROID", "IOS"
resp.run.created #=> Time
resp.run.status #=> String, one of "PENDING", "PENDING_CONCURRENCY", "PENDING_DEVICE", "PROCESSING", "SCHEDULING", "PREPARING", "RUNNING", "COMPLETED", "STOPPING"
resp.run.result #=> String, one of "PENDING", "PASSED", "WARNED", "FAILED", "SKIPPED", "ERRORED", "STOPPED"
resp.run.started #=> Time
resp.run.stopped #=> Time
resp.run.counters.total #=> Integer
resp.run.counters.passed #=> Integer
resp.run.counters.failed #=> Integer
resp.run.counters.warned #=> Integer
resp.run.counters.errored #=> Integer
resp.run.counters.stopped #=> Integer
resp.run.counters.skipped #=> Integer
resp.run.message #=> String
resp.run.total_jobs #=> Integer
resp.run.completed_jobs #=> Integer
resp.run.billing_method #=> String, one of "METERED", "UNMETERED"
resp.run.device_minutes.total #=> Float
resp.run.device_minutes.metered #=> Float
resp.run.device_minutes.unmetered #=> Float
resp.run.network_profile.arn #=> String
resp.run.network_profile.name #=> String
resp.run.network_profile.description #=> String
resp.run.network_profile.type #=> String, one of "CURATED", "PRIVATE"
resp.run.network_profile.uplink_bandwidth_bits #=> Integer
resp.run.network_profile.downlink_bandwidth_bits #=> Integer
resp.run.network_profile.uplink_delay_ms #=> Integer
resp.run.network_profile.downlink_delay_ms #=> Integer
resp.run.network_profile.uplink_jitter_ms #=> Integer
resp.run.network_profile.downlink_jitter_ms #=> Integer
resp.run.network_profile.uplink_loss_percent #=> Integer
resp.run.network_profile.downlink_loss_percent #=> Integer
resp.run.parsing_result_url #=> String
resp.run.result_code #=> String, one of "PARSING_FAILED", "VPC_ENDPOINT_SETUP_FAILED"
resp.run.seed #=> Integer
resp.run.app_upload #=> String
resp.run.event_count #=> Integer
resp.run.job_timeout_minutes #=> Integer
resp.run.device_pool_arn #=> String
resp.run.locale #=> String
resp.run.radios.wifi #=> Boolean
resp.run.radios.bluetooth #=> Boolean
resp.run.radios.nfc #=> Boolean
resp.run.radios.gps #=> Boolean
resp.run.location.latitude #=> Float
resp.run.location.longitude #=> Float
resp.run.customer_artifact_paths.ios_paths #=> Array
resp.run.customer_artifact_paths.ios_paths[0] #=> String
resp.run.customer_artifact_paths.android_paths #=> Array
resp.run.customer_artifact_paths.android_paths[0] #=> String
resp.run.customer_artifact_paths.device_host_paths #=> Array
resp.run.customer_artifact_paths.device_host_paths[0] #=> String
resp.run.web_url #=> String
resp.run.skip_app_resign #=> Boolean
resp.run.test_spec_arn #=> String
resp.run.device_selection_result.filters #=> Array
resp.run.device_selection_result.filters[0].attribute #=> String, one of "ARN", "PLATFORM", "OS_VERSION", "MODEL", "AVAILABILITY", "FORM_FACTOR", "MANUFACTURER", "REMOTE_ACCESS_ENABLED", "REMOTE_DEBUG_ENABLED", "INSTANCE_ARN", "INSTANCE_LABELS", "FLEET_TYPE"
resp.run.device_selection_result.filters[0].operator #=> String, one of "EQUALS", "LESS_THAN", "LESS_THAN_OR_EQUALS", "GREATER_THAN", "GREATER_THAN_OR_EQUALS", "IN", "NOT_IN", "CONTAINS"
resp.run.device_selection_result.filters[0].values #=> Array
resp.run.device_selection_result.filters[0].values[0] #=> String
resp.run.device_selection_result.matched_devices_count #=> Integer
resp.run.device_selection_result.max_devices #=> Integer

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :arn (required, String)

    The run's ARN.

Returns:

See Also:



2213
2214
2215
2216
# File 'gems/aws-sdk-devicefarm/lib/aws-sdk-devicefarm/client.rb', line 2213

def get_run(params = {}, options = {})
  req = build_request(:get_run, params)
  req.send_request(options)
end

#get_suite(params = {}) ⇒ Types::GetSuiteResult

Gets information about a suite.

Examples:

Example: To get information about a test suite


# The following example gets information about a specific test suite.

resp = client.get_suite({
  arn: "arn:aws:devicefarm:us-west-2:123456789101:suite:EXAMPLE-GUID-123-456", # You can get the suite ARN by using the list-suites CLI command.
})

resp.to_h outputs the following:
{
  suite: {
  }, 
}

Request syntax with placeholder values


resp = client.get_suite({
  arn: "AmazonResourceName", # required
})

Response structure


resp.suite.arn #=> String
resp.suite.name #=> String
resp.suite.type #=> String, one of "BUILTIN_FUZZ", "BUILTIN_EXPLORER", "WEB_PERFORMANCE_PROFILE", "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", "CALABASH", "INSTRUMENTATION", "UIAUTOMATION", "UIAUTOMATOR", "XCTEST", "XCTEST_UI", "REMOTE_ACCESS_RECORD", "REMOTE_ACCESS_REPLAY"
resp.suite.created #=> Time
resp.suite.status #=> String, one of "PENDING", "PENDING_CONCURRENCY", "PENDING_DEVICE", "PROCESSING", "SCHEDULING", "PREPARING", "RUNNING", "COMPLETED", "STOPPING"
resp.suite.result #=> String, one of "PENDING", "PASSED", "WARNED", "FAILED", "SKIPPED", "ERRORED", "STOPPED"
resp.suite.started #=> Time
resp.suite.stopped #=> Time
resp.suite.counters.total #=> Integer
resp.suite.counters.passed #=> Integer
resp.suite.counters.failed #=> Integer
resp.suite.counters.warned #=> Integer
resp.suite.counters.errored #=> Integer
resp.suite.counters.stopped #=> Integer
resp.suite.counters.skipped #=> Integer
resp.suite.message #=> String
resp.suite.device_minutes.total #=> Float
resp.suite.device_minutes.metered #=> Float
resp.suite.device_minutes.unmetered #=> Float

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :arn (required, String)

    The suite's ARN.

Returns:

See Also:



2274
2275
2276
2277
# File 'gems/aws-sdk-devicefarm/lib/aws-sdk-devicefarm/client.rb', line 2274

def get_suite(params = {}, options = {})
  req = build_request(:get_suite, params)
  req.send_request(options)
end

#get_test(params = {}) ⇒ Types::GetTestResult

Gets information about a test.

Examples:

Example: To get information about a specific test


# The following example gets information about a specific test.

resp = client.get_test({
  arn: "arn:aws:devicefarm:us-west-2:123456789101:test:EXAMPLE-GUID-123-456", # You can get the test ARN by using the list-tests CLI command.
})

resp.to_h outputs the following:
{
  test: {
  }, 
}

Request syntax with placeholder values


resp = client.get_test({
  arn: "AmazonResourceName", # required
})

Response structure


resp.test.arn #=> String
resp.test.name #=> String
resp.test.type #=> String, one of "BUILTIN_FUZZ", "BUILTIN_EXPLORER", "WEB_PERFORMANCE_PROFILE", "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", "CALABASH", "INSTRUMENTATION", "UIAUTOMATION", "UIAUTOMATOR", "XCTEST", "XCTEST_UI", "REMOTE_ACCESS_RECORD", "REMOTE_ACCESS_REPLAY"
resp.test.created #=> Time
resp.test.status #=> String, one of "PENDING", "PENDING_CONCURRENCY", "PENDING_DEVICE", "PROCESSING", "SCHEDULING", "PREPARING", "RUNNING", "COMPLETED", "STOPPING"
resp.test.result #=> String, one of "PENDING", "PASSED", "WARNED", "FAILED", "SKIPPED", "ERRORED", "STOPPED"
resp.test.started #=> Time
resp.test.stopped #=> Time
resp.test.counters.total #=> Integer
resp.test.counters.passed #=> Integer
resp.test.counters.failed #=> Integer
resp.test.counters.warned #=> Integer
resp.test.counters.errored #=> Integer
resp.test.counters.stopped #=> Integer
resp.test.counters.skipped #=> Integer
resp.test.message #=> String
resp.test.device_minutes.total #=> Float
resp.test.device_minutes.metered #=> Float
resp.test.device_minutes.unmetered #=> Float

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :arn (required, String)

    The test's ARN.

Returns:

See Also:



2335
2336
2337
2338
# File 'gems/aws-sdk-devicefarm/lib/aws-sdk-devicefarm/client.rb', line 2335

def get_test(params = {}, options = {})
  req = build_request(:get_test, params)
  req.send_request(options)
end

#get_upload(params = {}) ⇒ Types::GetUploadResult

Gets information about an upload.

Examples:

Example: To get information about a specific upload


# The following example gets information about a specific upload.

resp = client.get_upload({
  arn: "arn:aws:devicefarm:us-west-2:123456789101:upload:EXAMPLE-GUID-123-456", # You can get the test ARN by using the list-uploads CLI command.
})

resp.to_h outputs the following:
{
  upload: {
  }, 
}

Request syntax with placeholder values


resp = client.get_upload({
  arn: "AmazonResourceName", # required
})

Response structure


resp.upload.arn #=> String
resp.upload.name #=> String
resp.upload.created #=> Time
resp.upload.type #=> String, one of "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"
resp.upload.status #=> String, one of "INITIALIZED", "PROCESSING", "SUCCEEDED", "FAILED"
resp.upload.url #=> String
resp.upload. #=> String
resp.upload.content_type #=> String
resp.upload.message #=> String
resp.upload.category #=> String, one of "CURATED", "PRIVATE"

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :arn (required, String)

    The upload's ARN.

Returns:

See Also:



2387
2388
2389
2390
# File 'gems/aws-sdk-devicefarm/lib/aws-sdk-devicefarm/client.rb', line 2387

def get_upload(params = {}, options = {})
  req = build_request(:get_upload, params)
  req.send_request(options)
end

#get_vpce_configuration(params = {}) ⇒ Types::GetVPCEConfigurationResult

Returns information about the configuration settings for your Amazon Virtual Private Cloud (VPC) endpoint.

Examples:

Request syntax with placeholder values


resp = client.get_vpce_configuration({
  arn: "AmazonResourceName", # required
})

Response structure


resp.vpce_configuration.arn #=> String
resp.vpce_configuration.vpce_configuration_name #=> String
resp.vpce_configuration.vpce_service_name #=> String
resp.vpce_configuration.service_dns_name #=> String
resp.vpce_configuration.vpce_configuration_description #=> String

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :arn (required, String)

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

Returns:

See Also:



2421
2422
2423
2424
# File 'gems/aws-sdk-devicefarm/lib/aws-sdk-devicefarm/client.rb', line 2421

def get_vpce_configuration(params = {}, options = {})
  req = build_request(:get_vpce_configuration, params)
  req.send_request(options)
end

#install_to_remote_access_session(params = {}) ⇒ Types::InstallToRemoteAccessSessionResult

Installs an application to the device in a remote access session. For Android applications, the file must be in .apk format. For iOS applications, the file must be in .ipa format.

Examples:

Example: To install to a remote access session


# The following example installs a specific app to a device in a specific remote access session.

resp = client.install_to_remote_access_session({
  app_arn: "arn:aws:devicefarm:us-west-2:123456789101:app:EXAMPLE-GUID-123-456", 
  remote_access_session_arn: "arn:aws:devicefarm:us-west-2:123456789101:session:EXAMPLE-GUID-123-456", # You can get the remote access session ARN by using the list-remote-access-sessions CLI command.
})

resp.to_h outputs the following:
{
  app_upload: {
  }, 
}

Request syntax with placeholder values


resp = client.install_to_remote_access_session({
  remote_access_session_arn: "AmazonResourceName", # required
  app_arn: "AmazonResourceName", # required
})

Response structure


resp.app_upload.arn #=> String
resp.app_upload.name #=> String
resp.app_upload.created #=> Time
resp.app_upload.type #=> String, one of "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"
resp.app_upload.status #=> String, one of "INITIALIZED", "PROCESSING", "SUCCEEDED", "FAILED"
resp.app_upload.url #=> String
resp.app_upload. #=> String
resp.app_upload.content_type #=> String
resp.app_upload.message #=> String
resp.app_upload.category #=> String, one of "CURATED", "PRIVATE"

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :remote_access_session_arn (required, String)

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

  • :app_arn (required, String)

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

Returns:

See Also:



2482
2483
2484
2485
# File 'gems/aws-sdk-devicefarm/lib/aws-sdk-devicefarm/client.rb', line 2482

def install_to_remote_access_session(params = {}, options = {})
  req = build_request(:install_to_remote_access_session, params)
  req.send_request(options)
end

#list_artifacts(params = {}) ⇒ Types::ListArtifactsResult

Gets information about artifacts.

Examples:

Example: To list artifacts for a resource


# The following example lists screenshot artifacts for a specific run.

resp = client.list_artifacts({
  type: "SCREENSHOT", 
  arn: "arn:aws:devicefarm:us-west-2:123456789101:run:EXAMPLE-GUID-123-456", # Can also be used to list artifacts for a Job, Suite, or Test ARN.
})

Request syntax with placeholder values


resp = client.list_artifacts({
  arn: "AmazonResourceName", # required
  type: "SCREENSHOT", # required, accepts SCREENSHOT, FILE, LOG
  next_token: "PaginationToken",
})

Response structure


resp.artifacts #=> Array
resp.artifacts[0].arn #=> String
resp.artifacts[0].name #=> String
resp.artifacts[0].type #=> String, one of "UNKNOWN", "SCREENSHOT", "DEVICE_LOG", "MESSAGE_LOG", "VIDEO_LOG", "RESULT_LOG", "SERVICE_LOG", "WEBKIT_LOG", "INSTRUMENTATION_OUTPUT", "EXERCISER_MONKEY_OUTPUT", "CALABASH_JSON_OUTPUT", "CALABASH_PRETTY_OUTPUT", "CALABASH_STANDARD_OUTPUT", "CALABASH_JAVA_XML_OUTPUT", "AUTOMATION_OUTPUT", "APPIUM_SERVER_OUTPUT", "APPIUM_JAVA_OUTPUT", "APPIUM_JAVA_XML_OUTPUT", "APPIUM_PYTHON_OUTPUT", "APPIUM_PYTHON_XML_OUTPUT", "EXPLORER_EVENT_LOG", "EXPLORER_SUMMARY_LOG", "APPLICATION_CRASH_REPORT", "XCTEST_LOG", "VIDEO", "CUSTOMER_ARTIFACT", "CUSTOMER_ARTIFACT_LOG", "TESTSPEC_OUTPUT"
resp.artifacts[0].extension #=> String
resp.artifacts[0].url #=> String
resp.next_token #=> String

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :arn (required, String)

    The Run, Job, Suite, or Test ARN.

  • :type (required, String)

    The artifacts' type.

    Allowed values include:

    • FILE: The artifacts are files.

    • LOG: The artifacts are logs.

    • SCREENSHOT: The artifacts are screenshots.

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

Returns:

See Also:



2545
2546
2547
2548
# File 'gems/aws-sdk-devicefarm/lib/aws-sdk-devicefarm/client.rb', line 2545

def list_artifacts(params = {}, options = {})
  req = build_request(:list_artifacts, params)
  req.send_request(options)
end

#list_device_instances(params = {}) ⇒ Types::ListDeviceInstancesResult

Returns information about the private device instances associated with one or more AWS accounts.

Examples:

Request syntax with placeholder values


resp = client.list_device_instances({
  max_results: 1,
  next_token: "PaginationToken",
})

Response structure


resp.device_instances #=> Array
resp.device_instances[0].arn #=> String
resp.device_instances[0].device_arn #=> String
resp.device_instances[0].labels #=> Array
resp.device_instances[0].labels[0] #=> String
resp.device_instances[0].status #=> String, one of "IN_USE", "PREPARING", "AVAILABLE", "NOT_AVAILABLE"
resp.device_instances[0].udid #=> String
resp.device_instances[0].instance_profile.arn #=> String
resp.device_instances[0].instance_profile.package_cleanup #=> Boolean
resp.device_instances[0].instance_profile.exclude_app_packages_from_cleanup #=> Array
resp.device_instances[0].instance_profile.exclude_app_packages_from_cleanup[0] #=> String
resp.device_instances[0].instance_profile.reboot_after_use #=> Boolean
resp.device_instances[0].instance_profile.name #=> String
resp.device_instances[0].instance_profile.description #=> String
resp.next_token #=> String

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :max_results (Integer)

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

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

Returns:

See Also:



2596
2597
2598
2599
# File 'gems/aws-sdk-devicefarm/lib/aws-sdk-devicefarm/client.rb', line 2596

def list_device_instances(params = {}, options = {})
  req = build_request(:list_device_instances, params)
  req.send_request(options)
end

#list_device_pools(params = {}) ⇒ Types::ListDevicePoolsResult

Gets information about device pools.

Examples:

Example: To get information about device pools


# The following example returns information about the private device pools in a specific project.

resp = client.list_device_pools({
  type: "PRIVATE", 
  arn: "arn:aws:devicefarm:us-west-2:123456789101:project:EXAMPLE-GUID-123-456", # You can get the project ARN by using the list-projects CLI command.
})

resp.to_h outputs the following:
{
  device_pools: [
    {
      name: "Top Devices", 
      arn: "arn:aws:devicefarm:us-west-2::devicepool:082d10e5-d7d7-48a5-ba5c-12345EXAMPLE", 
      description: "Top devices", 
      rules: [
        {
          value: "[\"arn:aws:devicefarm:us-west-2::device:123456789EXAMPLE\",\"arn:aws:devicefarm:us-west-2::device:123456789EXAMPLE\",\"arn:aws:devicefarm:us-west-2::device:123456789EXAMPLE\",\"arn:aws:devicefarm:us-west-2::device:123456789EXAMPLE\",\"arn:aws:devicefarm:us-west-2::device:123456789EXAMPLE\",\"arn:aws:devicefarm:us-west-2::device:123456789EXAMPLE\",\"arn:aws:devicefarm:us-west-2::device:123456789EXAMPLE\",\"arn:aws:devicefarm:us-west-2::device:123456789EXAMPLE\",\"arn:aws:devicefarm:us-west-2::device:123456789EXAMPLE\",\"arn:aws:devicefarm:us-west-2::device:123456789EXAMPLE\"]", 
          attribute: "ARN", 
          operator: "IN", 
        }, 
      ], 
    }, 
    {
      name: "My Android Device Pool", 
      arn: "arn:aws:devicefarm:us-west-2:123456789101:devicepool:5e01a8c7-c861-4c0a-b1d5-5ec6e6c6dd23/bf96e75a-28f6-4e61-b6a7-12345EXAMPLE", 
      description: "Samsung Galaxy Android devices", 
      rules: [
        {
          value: "[\"arn:aws:devicefarm:us-west-2::device:123456789EXAMPLE\",\"arn:aws:devicefarm:us-west-2::device:123456789EXAMPLE\",\"arn:aws:devicefarm:us-west-2::device:123456789EXAMPLE\"]", 
          attribute: "ARN", 
          operator: "IN", 
        }, 
      ], 
    }, 
  ], 
}

Request syntax with placeholder values


resp = client.list_device_pools({
  arn: "AmazonResourceName", # required
  type: "CURATED", # accepts CURATED, PRIVATE
  next_token: "PaginationToken",
})

Response structure


resp.device_pools #=> Array
resp.device_pools[0].arn #=> String
resp.device_pools[0].name #=> String
resp.device_pools[0].description #=> String
resp.device_pools[0].type #=> String, one of "CURATED", "PRIVATE"
resp.device_pools[0].rules #=> Array
resp.device_pools[0].rules[0].attribute #=> String, one of "ARN", "PLATFORM", "FORM_FACTOR", "MANUFACTURER", "REMOTE_ACCESS_ENABLED", "REMOTE_DEBUG_ENABLED", "APPIUM_VERSION", "INSTANCE_ARN", "INSTANCE_LABELS", "FLEET_TYPE", "OS_VERSION", "MODEL", "AVAILABILITY"
resp.device_pools[0].rules[0].operator #=> String, one of "EQUALS", "LESS_THAN", "LESS_THAN_OR_EQUALS", "GREATER_THAN", "GREATER_THAN_OR_EQUALS", "IN", "NOT_IN", "CONTAINS"
resp.device_pools[0].rules[0].value #=> String
resp.device_pools[0].max_devices #=> Integer
resp.next_token #=> String

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :arn (required, String)

    The project ARN.

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

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

Returns:

See Also:



2693
2694
2695
2696
# File 'gems/aws-sdk-devicefarm/lib/aws-sdk-devicefarm/client.rb', line 2693

def list_device_pools(params = {}, options = {})
  req = build_request(:list_device_pools, params)
  req.send_request(options)
end

#list_devices(params = {}) ⇒ Types::ListDevicesResult

Gets information about unique device types.

Examples:

Example: To get information about devices


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

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

resp.to_h outputs the following:
{
}

Request syntax with placeholder values


resp = client.list_devices({
  arn: "AmazonResourceName",
  next_token: "PaginationToken",
  filters: [
    {
      attribute: "ARN", # accepts ARN, PLATFORM, OS_VERSION, MODEL, AVAILABILITY, FORM_FACTOR, MANUFACTURER, REMOTE_ACCESS_ENABLED, REMOTE_DEBUG_ENABLED, INSTANCE_ARN, INSTANCE_LABELS, FLEET_TYPE
      operator: "EQUALS", # accepts EQUALS, LESS_THAN, LESS_THAN_OR_EQUALS, GREATER_THAN, GREATER_THAN_OR_EQUALS, IN, NOT_IN, CONTAINS
      values: ["String"],
    },
  ],
})

Response structure


resp.devices #=> Array
resp.devices[0].arn #=> String
resp.devices[0].name #=> String
resp.devices[0].manufacturer #=> String
resp.devices[0].model #=> String
resp.devices[0].model_id #=> String
resp.devices[0].form_factor #=> String, one of "PHONE", "TABLET"
resp.devices[0].platform #=> String, one of "ANDROID", "IOS"
resp.devices[0].os #=> String
resp.devices[0].cpu.frequency #=> String
resp.devices[0].cpu.architecture #=> String
resp.devices[0].cpu.clock #=> Float
resp.devices[0].resolution.width #=> Integer
resp.devices[0].resolution.height #=> Integer
resp.devices[0].heap_size #=> Integer
resp.devices[0].memory #=> Integer
resp.devices[0].image #=> String
resp.devices[0].carrier #=> String
resp.devices[0].radio #=> String
resp.devices[0].remote_access_enabled #=> Boolean
resp.devices[0].remote_debug_enabled #=> Boolean
resp.devices[0].fleet_type #=> String
resp.devices[0].fleet_name #=> String
resp.devices[0].instances #=> Array
resp.devices[0].instances[0].arn #=> String
resp.devices[0].instances[0].device_arn #=> String
resp.devices[0].instances[0].labels #=> Array
resp.devices[0].instances[0].labels[0] #=> String
resp.devices[0].instances[0].status #=> String, one of "IN_USE", "PREPARING", "AVAILABLE", "NOT_AVAILABLE"
resp.devices[0].instances[0].udid #=> String
resp.devices[0].instances[0].instance_profile.arn #=> String
resp.devices[0].instances[0].instance_profile.package_cleanup #=> Boolean
resp.devices[0].instances[0].instance_profile.exclude_app_packages_from_cleanup #=> Array
resp.devices[0].instances[0].instance_profile.exclude_app_packages_from_cleanup[0] #=> String
resp.devices[0].instances[0].instance_profile.reboot_after_use #=> Boolean
resp.devices[0].instances[0].instance_profile.name #=> String
resp.devices[0].instances[0].instance_profile.description #=> String
resp.devices[0].availability #=> String, one of "TEMPORARY_NOT_AVAILABLE", "BUSY", "AVAILABLE", "HIGHLY_AVAILABLE"
resp.next_token #=> String

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :arn (String)

    The Amazon Resource Name (ARN) of the project.

  • :next_token (String)

    An identifier that was returned from the previous call to this operation, which can be used to return the next set of items in the list.

  • :filters (Array<Types::DeviceFilter>)

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

      • 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 "AVAILABLE", "HIGHLY_AVAILABLE", "BUSY", or "TEMPORARY_NOT_AVAILABLE" as values.

Returns:

See Also:



2855
2856
2857
2858
# File 'gems/aws-sdk-devicefarm/lib/aws-sdk-devicefarm/client.rb', line 2855

def list_devices(params = {}, options = {})
  req = build_request(:list_devices, params)
  req.send_request(options)
end

#list_instance_profiles(params = {}) ⇒ Types::ListInstanceProfilesResult

Returns information about all the instance profiles in an AWS account.

Examples:

Request syntax with placeholder values


resp = client.list_instance_profiles({
  max_results: 1,
  next_token: "PaginationToken",
})

Response structure


resp.instance_profiles #=> Array
resp.instance_profiles[0].arn #=> String
resp.instance_profiles[0].package_cleanup #=> Boolean
resp.instance_profiles[0].exclude_app_packages_from_cleanup #=> Array
resp.instance_profiles[0].exclude_app_packages_from_cleanup[0] #=> String
resp.instance_profiles[0].reboot_after_use #=> Boolean
resp.instance_profiles[0].name #=> String
resp.instance_profiles[0].description #=> String
resp.next_token #=> String

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :max_results (Integer)

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

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

Returns:

See Also:



2899
2900
2901
2902
# File 'gems/aws-sdk-devicefarm/lib/aws-sdk-devicefarm/client.rb', line 2899

def list_instance_profiles(params = {}, options = {})
  req = build_request(:list_instance_profiles, params)
  req.send_request(options)
end

#list_jobs(params = {}) ⇒ Types::ListJobsResult

Gets information about jobs for a given test run.

Examples:

Example: To get information about jobs


# The following example returns information about jobs in a specific project.

resp = client.list_jobs({
  arn: "arn:aws:devicefarm:us-west-2:123456789101:project:EXAMPLE-GUID-123-456", # You can get the project ARN by using the list-jobs CLI command.
})

Request syntax with placeholder values


resp = client.list_jobs({
  arn: "AmazonResourceName", # required
  next_token: "PaginationToken",
})

Response structure


resp.jobs #=> Array
resp.jobs[0].arn #=> String
resp.jobs[0].name #=> String
resp.jobs[0].type #=> String, one of "BUILTIN_FUZZ", "BUILTIN_EXPLORER", "WEB_PERFORMANCE_PROFILE", "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", "CALABASH", "INSTRUMENTATION", "UIAUTOMATION", "UIAUTOMATOR", "XCTEST", "XCTEST_UI", "REMOTE_ACCESS_RECORD", "REMOTE_ACCESS_REPLAY"
resp.jobs[0].created #=> Time
resp.jobs[0].status #=> String, one of "PENDING", "PENDING_CONCURRENCY", "PENDING_DEVICE", "PROCESSING", "SCHEDULING", "PREPARING", "RUNNING", "COMPLETED", "STOPPING"
resp.jobs[0].result #=> String, one of "PENDING", "PASSED", "WARNED", "FAILED", "SKIPPED", "ERRORED", "STOPPED"
resp.jobs[0].started #=> Time
resp.jobs[0].stopped #=> Time
resp.jobs[0].counters.total #=> Integer
resp.jobs[0].counters.passed #=> Integer
resp.jobs[0].counters.failed #=> Integer
resp.jobs[0].counters.warned #=> Integer
resp.jobs[0].counters.errored #=> Integer
resp.jobs[0].counters.stopped #=> Integer
resp.jobs[0].counters.skipped #=> Integer
resp.jobs[0].message #=> String
resp.jobs[0].device.arn #=> String
resp.jobs[0].device.name #=> String
resp.jobs[0].device.manufacturer #=> String
resp.jobs[0].device.model #=> String
resp.jobs[0].device.model_id #=> String
resp.jobs[0].device.form_factor #=> String, one of "PHONE", "TABLET"
resp.jobs[0].device.platform #=> String, one of "ANDROID", "IOS"
resp.jobs[0].device.os #=> String
resp.jobs[0].device.cpu.frequency #=> String
resp.jobs[0].device.cpu.architecture #=> String
resp.jobs[0].device.cpu.clock #=> Float
resp.jobs[0].device.resolution.width #=> Integer
resp.jobs[0].device.resolution.height #=> Integer
resp.jobs[0].device.heap_size #=> Integer
resp.jobs[0].device.memory #=> Integer
resp.jobs[0].device.image #=> String
resp.jobs[0].device.carrier #=> String
resp.jobs[0].device.radio #=> String
resp.jobs[0].device.remote_access_enabled #=> Boolean
resp.jobs[0].device.remote_debug_enabled #=> Boolean
resp.jobs[0].device.fleet_type #=> String
resp.jobs[0].device.fleet_name #=> String
resp.jobs[0].device.instances #=> Array
resp.jobs[0].device.instances[0].arn #=> String
resp.jobs[0].device.instances[0].device_arn #=> String
resp.jobs[0].device.instances[0].labels #=> Array
resp.jobs[0].device.instances[0].labels[0] #=> String
resp.jobs[0].device.instances[0].status #=> String, one of "IN_USE", "PREPARING", "AVAILABLE", "NOT_AVAILABLE"
resp.jobs[0].device.instances[0].udid #=> String
resp.jobs[0].device.instances[0].instance_profile.arn #=> String
resp.jobs[0].device.instances[0].instance_profile.package_cleanup #=> Boolean
resp.jobs[0].device.instances[0].instance_profile.exclude_app_packages_from_cleanup #=> Array
resp.jobs[0].device.instances[0].instance_profile.exclude_app_packages_from_cleanup[0] #=> String
resp.jobs[0].device.instances[0].instance_profile.reboot_after_use #=> Boolean
resp.jobs[0].device.instances[0].instance_profile.name #=> String
resp.jobs[0].device.instances[0].instance_profile.description #=> String
resp.jobs[0].device.availability #=> String, one of "TEMPORARY_NOT_AVAILABLE", "BUSY", "AVAILABLE", "HIGHLY_AVAILABLE"
resp.jobs[0].instance_arn #=> String
resp.jobs[0].device_minutes.total #=> Float
resp.jobs[0].device_minutes.metered #=> Float
resp.jobs[0].device_minutes.unmetered #=> Float
resp.jobs[0].video_endpoint #=> String
resp.jobs[0].video_capture #=> Boolean
resp.next_token #=> String

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :arn (required, String)

    The run's Amazon Resource Name (ARN).

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

Returns:

See Also:



3003
3004
3005
3006
# File 'gems/aws-sdk-devicefarm/lib/aws-sdk-devicefarm/client.rb', line 3003

def list_jobs(params = {}, options = {})
  req = build_request(:list_jobs, params)
  req.send_request(options)
end

#list_network_profiles(params = {}) ⇒ Types::ListNetworkProfilesResult

Returns the list of available network profiles.

Examples:

Request syntax with placeholder values


resp = client.list_network_profiles({
  arn: "AmazonResourceName", # required
  type: "CURATED", # accepts CURATED, PRIVATE
  next_token: "PaginationToken",
})

Response structure


resp.network_profiles #=> Array
resp.network_profiles[0].arn #=> String
resp.network_profiles[0].name #=> String
resp.network_profiles[0].description #=> String
resp.network_profiles[0].type #=> String, one of "CURATED", "PRIVATE"
resp.network_profiles[0].uplink_bandwidth_bits #=> Integer
resp.network_profiles[0].downlink_bandwidth_bits #=> Integer
resp.network_profiles[0].uplink_delay_ms #=> Integer
resp.network_profiles[0].downlink_delay_ms #=> Integer
resp.network_profiles[0].uplink_jitter_ms #=> Integer
resp.network_profiles[0].downlink_jitter_ms #=> Integer
resp.network_profiles[0].uplink_loss_percent #=> Integer
resp.network_profiles[0].downlink_loss_percent #=> Integer
resp.next_token #=> String

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :arn (required, String)

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

  • :type (String)

    The type of network profile you wish to return information about. Valid values are listed below.

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

Returns:

See Also:



3057
3058
3059
3060
# File 'gems/aws-sdk-devicefarm/lib/aws-sdk-devicefarm/client.rb', line 3057

def list_network_profiles(params = {}, options = {})
  req = build_request(:list_network_profiles, params)
  req.send_request(options)
end

#list_offering_promotions(params = {}) ⇒ Types::ListOfferingPromotionsResult

Returns a list of offering promotions. Each offering promotion record contains the ID and description of the promotion. The API returns a NotEligible error if the caller is not permitted to invoke the operation. Contact aws-devicefarm-support@amazon.com if you believe that you should be able to invoke this operation.

Examples:

Request syntax with placeholder values


resp = client.list_offering_promotions({
  next_token: "PaginationToken",
})

Response structure


resp.offering_promotions #=> Array
resp.offering_promotions[0].id #=> String
resp.offering_promotions[0].description #=> String
resp.next_token #=> String

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

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

Returns:

See Also:



3096
3097
3098
3099
# File 'gems/aws-sdk-devicefarm/lib/aws-sdk-devicefarm/client.rb', line 3096

def list_offering_promotions(params = {}, options = {})
  req = build_request(:list_offering_promotions, params)
  req.send_request(options)
end

#list_offering_transactions(params = {}) ⇒ Types::ListOfferingTransactionsResult

Returns a list of all historical purchases, renewals, and system renewal transactions for an AWS account. The list is paginated and ordered by a descending timestamp (most recent transactions are first). The API returns a NotEligible error if the user is not permitted to invoke the operation. Please contact aws-devicefarm-support@amazon.com if you believe that you should be able to invoke this operation.

Examples:

Example: To get information about device offering transactions


# The following example returns information about Device Farm offering transactions.

resp = client.list_offering_transactions({
  next_token: "RW5DdDJkMWYwZjM2MzM2VHVpOHJIUXlDUXlhc2QzRGViYnc9SEXAMPLE=", # A dynamically generated value, used for paginating results.
})

resp.to_h outputs the following:
{
  offering_transactions: [
    {
      cost: {
        amount: 0, 
        currency_code: "USD", 
      }, 
      created_on: Time.parse("1470021420"), 
      offering_status: {
        type: "RENEW", 
        effective_on: Time.parse("1472688000"), 
        offering: {
          type: "RECURRING", 
          description: "Android Remote Access Unmetered Device Slot", 
          id: "D68B3C05-1BA6-4360-BC69-12345EXAMPLE", 
          platform: "ANDROID", 
        }, 
        quantity: 0, 
      }, 
      transaction_id: "03728003-d1ea-4851-abd6-12345EXAMPLE", 
    }, 
    {
      cost: {
        amount: 250, 
        currency_code: "USD", 
      }, 
      created_on: Time.parse("1470021420"), 
      offering_status: {
        type: "PURCHASE", 
        effective_on: Time.parse("1470021420"), 
        offering: {
          type: "RECURRING", 
          description: "Android Remote Access Unmetered Device Slot", 
          id: "D68B3C05-1BA6-4360-BC69-12345EXAMPLE", 
          platform: "ANDROID", 
        }, 
        quantity: 1, 
      }, 
      transaction_id: "56820b6e-06bd-473a-8ff8-12345EXAMPLE", 
    }, 
    {
      cost: {
        amount: 175, 
        currency_code: "USD", 
      }, 
      created_on: Time.parse("1465538520"), 
      offering_status: {
        type: "PURCHASE", 
        effective_on: Time.parse("1465538520"), 
        offering: {
          type: "RECURRING", 
          description: "Android Unmetered Device Slot", 
          id: "8980F81C-00D7-469D-8EC6-12345EXAMPLE", 
          platform: "ANDROID", 
        }, 
        quantity: 1, 
      }, 
      transaction_id: "953ae2c6-d760-4a04-9597-12345EXAMPLE", 
    }, 
    {
      cost: {
        amount: 8.07, 
        currency_code: "USD", 
      }, 
      created_on: Time.parse("1459344300"), 
      offering_status: {
        type: "PURCHASE", 
        effective_on: Time.parse("1459344300"), 
        offering: {
          type: "RECURRING", 
          description: "iOS Unmetered Device Slot", 
          id: "A53D4D73-A6F6-4B82-A0B0-12345EXAMPLE", 
          platform: "IOS", 
        }, 
        quantity: 1, 
      }, 
      transaction_id: "2baf9021-ae3e-47f5-ab52-12345EXAMPLE", 
    }, 
  ], 
}

Request syntax with placeholder values


resp = client.list_offering_transactions({
  next_token: "PaginationToken",
})

Response structure


resp.offering_transactions #=> Array
resp.offering_transactions[0].offering_status.type #=> String, one of "PURCHASE", "RENEW", "SYSTEM"
resp.offering_transactions[0].offering_status.offering.id #=> String
resp.offering_transactions[0].offering_status.offering.description #=> String
resp.offering_transactions[0].offering_status.offering.type #=> String, one of "RECURRING"
resp.offering_transactions[0].offering_status.offering.platform #=> String, one of "ANDROID", "IOS"
resp.offering_transactions[0].offering_status.offering.recurring_charges #=> Array
resp.offering_transactions[0].offering_status.offering.recurring_charges[0].cost.amount #=> Float
resp.offering_transactions[0].offering_status.offering.recurring_charges[0].cost.currency_code #=> String, one of "USD"
resp.offering_transactions[0].offering_status.offering.recurring_charges[0].frequency #=> String, one of "MONTHLY"
resp.offering_transactions[0].offering_status.quantity #=> Integer
resp.offering_transactions[0].offering_status.effective_on #=> Time
resp.offering_transactions[0].transaction_id #=> String
resp.offering_transactions[0].offering_promotion_id #=> String
resp.offering_transactions[0].created_on #=> Time
resp.offering_transactions[0].cost.amount #=> Float
resp.offering_transactions[0].cost.currency_code #=> String, one of "USD"
resp.next_token #=> String

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

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

Returns:

See Also:



3241
3242
3243
3244
# File 'gems/aws-sdk-devicefarm/lib/aws-sdk-devicefarm/client.rb', line 3241

def list_offering_transactions(params = {}, options = {})
  req = build_request(:list_offering_transactions, params)
  req.send_request(options)
end

#list_offerings(params = {}) ⇒ Types::ListOfferingsResult

Returns a list of products or offerings that the user can manage through the API. Each offering record indicates the recurring price per unit and the frequency for that offering. The API returns a NotEligible error if the user is not permitted to invoke the operation. Please contact aws-devicefarm-support@amazon.com if you believe that you should be able to invoke this operation.

Examples:

Example: To get information about device offerings


# The following example returns information about available device offerings.

resp = client.list_offerings({
  next_token: "RW5DdDJkMWYwZjM2MzM2VHVpOHJIUXlDUXlhc2QzRGViYnc9SEXAMPLE=", # A dynamically generated value, used for paginating results.
})

resp.to_h outputs the following:
{
  offerings: [
    {
      type: "RECURRING", 
      description: "iOS Unmetered Device Slot", 
      id: "A53D4D73-A6F6-4B82-A0B0-12345EXAMPLE", 
      platform: "IOS", 
      recurring_charges: [
        {
          cost: {
            amount: 250, 
            currency_code: "USD", 
          }, 
          frequency: "MONTHLY", 
        }, 
      ], 
    }, 
    {
      type: "RECURRING", 
      description: "Android Unmetered Device Slot", 
      id: "8980F81C-00D7-469D-8EC6-12345EXAMPLE", 
      platform: "ANDROID", 
      recurring_charges: [
        {
          cost: {
            amount: 250, 
            currency_code: "USD", 
          }, 
          frequency: "MONTHLY", 
        }, 
      ], 
    }, 
    {
      type: "RECURRING", 
      description: "Android Remote Access Unmetered Device Slot", 
      id: "D68B3C05-1BA6-4360-BC69-12345EXAMPLE", 
      platform: "ANDROID", 
      recurring_charges: [
        {
          cost: {
            amount: 250, 
            currency_code: "USD", 
          }, 
          frequency: "MONTHLY", 
        }, 
      ], 
    }, 
    {
      type: "RECURRING", 
      description: "iOS Remote Access Unmetered Device Slot", 
      id: "552B4DAD-A6C9-45C4-94FB-12345EXAMPLE", 
      platform: "IOS", 
      recurring_charges: [
        {
          cost: {
            amount: 250, 
            currency_code: "USD", 
          }, 
          frequency: "MONTHLY", 
        }, 
      ], 
    }, 
  ], 
}

Request syntax with placeholder values


resp = client.list_offerings({
  next_token: "PaginationToken",
})

Response structure


resp.offerings #=> Array
resp.offerings[0].id #=> String
resp.offerings[0].description #=> String
resp.offerings[0].type #=> String, one of "RECURRING"
resp.offerings[0].platform #=> String, one of "ANDROID", "IOS"
resp.offerings[0].recurring_charges #=> Array
resp.offerings[0].recurring_charges[0].cost.amount #=> Float
resp.offerings[0].recurring_charges[0].cost.currency_code #=> String, one of "USD"
resp.offerings[0].recurring_charges[0].frequency #=> String, one of "MONTHLY"
resp.next_token #=> String

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

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

Returns:

See Also:



3362
3363
3364
3365
# File 'gems/aws-sdk-devicefarm/lib/aws-sdk-devicefarm/client.rb', line 3362

def list_offerings(params = {}, options = {})
  req = build_request(:list_offerings, params)
  req.send_request(options)
end

#list_projects(params = {}) ⇒ Types::ListProjectsResult

Gets information about projects.

Examples:

Example: To get information about a Device Farm project


# The following example returns information about the specified project in Device Farm.

resp = client.list_projects({
  arn: "arn:aws:devicefarm:us-west-2:123456789101:project:7ad300ed-8183-41a7-bf94-12345EXAMPLE", 
  next_token: "RW5DdDJkMWYwZjM2MzM2VHVpOHJIUXlDUXlhc2QzRGViYnc9SEXAMPLE", # A dynamically generated value, used for paginating results.
})

resp.to_h outputs the following:
{
  projects: [
    {
      name: "My Test Project", 
      arn: "arn:aws:devicefarm:us-west-2:123456789101:project:7ad300ed-8183-41a7-bf94-12345EXAMPLE", 
      created: Time.parse("1453163262.105"), 
    }, 
    {
      name: "Hello World", 
      arn: "arn:aws:devicefarm:us-west-2:123456789101:project:d6b087d9-56db-4e44-b9ec-12345EXAMPLE", 
      created: Time.parse("1470350112.439"), 
    }, 
  ], 
}

Request syntax with placeholder values


resp = client.list_projects({
  arn: "AmazonResourceName",
  next_token: "PaginationToken",
})

Response structure


resp.projects #=> Array
resp.projects[0].arn #=> String
resp.projects[0].name #=> String
resp.projects[0].default_job_timeout_minutes #=> Integer
resp.projects[0].created #=> Time
resp.next_token #=> String

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :arn (String)

    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.

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

Returns:

See Also:



3430
3431
3432
3433
# File 'gems/aws-sdk-devicefarm/lib/aws-sdk-devicefarm/client.rb', line 3430

def list_projects(params = {}, options = {})
  req = build_request(:list_projects, params)
  req.send_request(options)
end

#list_remote_access_sessions(params = {}) ⇒ Types::ListRemoteAccessSessionsResult

Returns a list of all currently running remote access sessions.

Examples:

Example: To get information about a remote access session


# The following example returns information about a specific Device Farm remote access session.

resp = client.list_remote_access_sessions({
  arn: "arn:aws:devicefarm:us-west-2:123456789101:session:EXAMPLE-GUID-123-456", # You can get the Amazon Resource Name (ARN) of the session by using the list-sessions CLI command.
  next_token: "RW5DdDJkMWYwZjM2MzM2VHVpOHJIUXlDUXlhc2QzRGViYnc9SEXAMPLE=", # A dynamically generated value, used for paginating results.
})

resp.to_h outputs the following:
{
  remote_access_sessions: [
  ], 
}

Request syntax with placeholder values


resp = client.list_remote_access_sessions({
  arn: "AmazonResourceName", # required
  next_token: "PaginationToken",
})

Response structure


resp.remote_access_sessions #=> Array
resp.remote_access_sessions[0].arn #=> String
resp.remote_access_sessions[0].name #=> String
resp.remote_access_sessions[0].created #=> Time
resp.remote_access_sessions[0].status #=> String, one of "PENDING", "PENDING_CONCURRENCY", "PENDING_DEVICE", "PROCESSING", "SCHEDULING", "PREPARING", "RUNNING", "COMPLETED", "STOPPING"
resp.remote_access_sessions[0].result #=> String, one of "PENDING", "PASSED", "WARNED", "FAILED", "SKIPPED", "ERRORED", "STOPPED"
resp.remote_access_sessions[0].message #=> String
resp.remote_access_sessions[0].started #=> Time
resp.remote_access_sessions[0].stopped #=> Time
resp.remote_access_sessions[0].device.arn #=> String
resp.remote_access_sessions[0].device.name #=> String
resp.remote_access_sessions[0].device.manufacturer #=> String
resp.remote_access_sessions[0].device.model #=> String
resp.remote_access_sessions[0].device.model_id #=> String
resp.remote_access_sessions[0].device.form_factor #=> String, one of "PHONE", "TABLET"
resp.remote_access_sessions[0].device.platform #=> String, one of "ANDROID", "IOS"
resp.remote_access_sessions[0].device.os #=> String
resp.remote_access_sessions[0].device.cpu.frequency #=> String
resp.remote_access_sessions[0].device.cpu.architecture #=> String
resp.remote_access_sessions[0].device.cpu.clock #=> Float
resp.remote_access_sessions[0].device.resolution.width #=> Integer
resp.remote_access_sessions[0].device.resolution.height #=> Integer
resp.remote_access_sessions[0].device.heap_size #=> Integer
resp.remote_access_sessions[0].device.memory #=> Integer
resp.remote_access_sessions[0].device.image #=> String
resp.remote_access_sessions[0].device.carrier #=> String
resp.remote_access_sessions[0].device.radio #=> String
resp.remote_access_sessions[0].device.remote_access_enabled #=> Boolean
resp.remote_access_sessions[0].device.remote_debug_enabled #=> Boolean
resp.remote_access_sessions[0].device.fleet_type #=> String
resp.remote_access_sessions[0].device.fleet_name #=> String
resp.remote_access_sessions[0].device.instances #=> Array
resp.remote_access_sessions[0].device.instances[0].arn #=> String
resp.remote_access_sessions[0].device.instances[0].device_arn #=> String
resp.remote_access_sessions[0].device.instances[0].labels #=> Array
resp.remote_access_sessions[0].device.instances[0].labels[0] #=> String
resp.remote_access_sessions[0].device.instances[0].status #=> String, one of "IN_USE", "PREPARING", "AVAILABLE", "NOT_AVAILABLE"
resp.remote_access_sessions[0].device.instances[0].udid #=> String
resp.remote_access_sessions[0].device.instances[0].instance_profile.arn #=> String
resp.remote_access_sessions[0].device.instances[0].instance_profile.package_cleanup #=> Boolean
resp.remote_access_sessions[0].device.instances[0].instance_profile.exclude_app_packages_from_cleanup #=> Array
resp.remote_access_sessions[0].device.instances[0].instance_profile.exclude_app_packages_from_cleanup[0] #=> String
resp.remote_access_sessions[0].device.instances[0].instance_profile.reboot_after_use #=> Boolean
resp.remote_access_sessions[0].device.instances[0].instance_profile.name #=> String
resp.remote_access_sessions[0].device.instances[0].instance_profile.description #=> String
resp.remote_access_sessions[0].device.availability #=> String, one of "TEMPORARY_NOT_AVAILABLE", "BUSY", "AVAILABLE", "HIGHLY_AVAILABLE"
resp.remote_access_sessions[0].instance_arn #=> String
resp.remote_access_sessions[0].remote_debug_enabled #=> Boolean
resp.remote_access_sessions[0].remote_record_enabled #=> Boolean
resp.remote_access_sessions[0].remote_record_app_arn #=> String
resp.remote_access_sessions[0].host_address #=> String
resp.remote_access_sessions[0].client_id #=> String
resp.remote_access_sessions[0].billing_method #=> String, one of "METERED", "UNMETERED"
resp.remote_access_sessions[0].device_minutes.total #=> Float
resp.remote_access_sessions[0].device_minutes.metered #=> Float
resp.remote_access_sessions[0].device_minutes.unmetered #=> Float
resp.remote_access_sessions[0].endpoint #=> String
resp.remote_access_sessions[0].device_udid #=> String
resp.remote_access_sessions[0].interaction_mode #=> String, one of "INTERACTIVE", "NO_VIDEO", "VIDEO_ONLY"
resp.remote_access_sessions[0].skip_app_resign #=> Boolean
resp.next_token #=> String

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :arn (required, String)

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

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

Returns:

See Also:



3542
3543
3544
3545
# File 'gems/aws-sdk-devicefarm/lib/aws-sdk-devicefarm/client.rb', line 3542

def list_remote_access_sessions(params = {}, options = {})
  req = build_request(:list_remote_access_sessions, params)
  req.send_request(options)
end

#list_runs(params = {}) ⇒ Types::ListRunsResult

Gets information about runs, given an AWS Device Farm project ARN.

Examples:

Example: To get information about a test run


# The following example returns information about a specific test run.

resp = client.list_runs({
  arn: "arn:aws:devicefarm:us-west-2:123456789101:run:5e01a8c7-c861-4c0a-b1d5-5ec6e6c6dd23/0fcac17b-6122-44d7-ae5a-12345EXAMPLE", # You can get the Amazon Resource Name (ARN) of the run by using the list-runs CLI command.
  next_token: "RW5DdDJkMWYwZjM2MzM2VHVpOHJIUXlDUXlhc2QzRGViYnc9SEXAMPLE", # A dynamically generated value, used for paginating results.
})

resp.to_h outputs the following:
{
  runs: [
    {
      name: "My Test Run", 
      type: "BUILTIN_EXPLORER", 
      arn: "arn:aws:devicefarm:us-west-2:123456789101:run:5e01a8c7-c861-4c0a-b1d5-5ec6e6c6dd23/0fcac17b-6122-44d7-ae5a-12345EXAMPLE", 
      billing_method: "METERED", 
      completed_jobs: 0, 
      counters: {
        errored: 0, 
        failed: 0, 
        passed: 0, 
        skipped: 0, 
        stopped: 0, 
        total: 0, 
        warned: 0, 
      }, 
      created: Time.parse("1472667509.852"), 
      device_minutes: {
        metered: 0.0, 
        total: 0.0, 
        unmetered: 0.0, 
      }, 
      platform: "ANDROID", 
      result: "PENDING", 
      status: "RUNNING", 
      total_jobs: 3, 
    }, 
  ], 
}

Request syntax with placeholder values


resp = client.list_runs({
  arn: "AmazonResourceName", # required
  next_token: "PaginationToken",
})

Response structure


resp.runs #=> Array
resp.runs[0].arn #=> String
resp.runs[0].name #=> String
resp.runs[0].type #=> String, one of "BUILTIN_FUZZ", "BUILTIN_EXPLORER", "WEB_PERFORMANCE_PROFILE", "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", "CALABASH", "INSTRUMENTATION", "UIAUTOMATION", "UIAUTOMATOR", "XCTEST", "XCTEST_UI", "REMOTE_ACCESS_RECORD", "REMOTE_ACCESS_REPLAY"
resp.runs[0].platform #=> String, one of "ANDROID", "IOS"
resp.runs[0].created #=> Time
resp.runs[0].status #=> String, one of "PENDING", "PENDING_CONCURRENCY", "PENDING_DEVICE", "PROCESSING", "SCHEDULING", "PREPARING", "RUNNING", "COMPLETED", "STOPPING"
resp.runs[0].result #=> String, one of "PENDING", "PASSED", "WARNED", "FAILED", "SKIPPED", "ERRORED", "STOPPED"
resp.runs[0].started #=> Time
resp.runs[0].stopped #=> Time
resp.runs[0].counters.total #=> Integer
resp.runs[0].counters.passed #=> Integer
resp.runs[0].counters.failed #=> Integer
resp.runs[0].counters.warned #=> Integer
resp.runs[0].counters.errored #=> Integer
resp.runs[0].counters.stopped #=> Integer
resp.runs[0].counters.skipped #=> Integer
resp.runs[0].message #=> String
resp.runs[0].total_jobs #=> Integer
resp.runs[0].completed_jobs #=> Integer
resp.runs[0].billing_method #=> String, one of "METERED", "UNMETERED"
resp.runs[0].device_minutes.total #=> Float
resp.runs[0].device_minutes.metered #=> Float
resp.runs[0].device_minutes.unmetered #=> Float
resp.runs[0].network_profile.arn #=> String
resp.runs[0].network_profile.name #=> String
resp.runs[0].network_profile.description #=> String
resp.runs[0].network_profile.type #=> String, one of "CURATED", "PRIVATE"
resp.runs[0].network_profile.uplink_bandwidth_bits #=> Integer
resp.runs[0].network_profile.downlink_bandwidth_bits #=> Integer
resp.runs[0].network_profile.uplink_delay_ms #=> Integer
resp.runs[0].network_profile.downlink_delay_ms #=> Integer
resp.runs[0].network_profile.uplink_jitter_ms #=> Integer
resp.runs[0].network_profile.downlink_jitter_ms #=> Integer
resp.runs[0].network_profile.uplink_loss_percent #=> Integer
resp.runs[0].network_profile.downlink_loss_percent #=> Integer
resp.runs[0].parsing_result_url #=> String
resp.runs[0].result_code #=> String, one of "PARSING_FAILED", "VPC_ENDPOINT_SETUP_FAILED"
resp.runs[0].seed #=> Integer
resp.runs[0].app_upload #=> String
resp.runs[0].event_count #=> Integer
resp.runs[0].job_timeout_minutes #=> Integer
resp.runs[0].device_pool_arn #=> String
resp.runs[0].locale #=> String
resp.runs[0].radios.wifi #=> Boolean
resp.runs[0].radios.bluetooth #=> Boolean
resp.runs[0].radios.nfc #=> Boolean
resp.runs[0].radios.gps #=> Boolean
resp.runs[0].location.latitude #=> Float
resp.runs[0].location.longitude #=> Float
resp.runs[0].customer_artifact_paths.ios_paths #=> Array
resp.runs[0].customer_artifact_paths.ios_paths[0] #=> String
resp.runs[0].customer_artifact_paths.android_paths #=> Array
resp.runs[0].customer_artifact_paths.android_paths[0] #=> String
resp.runs[0].customer_artifact_paths.device_host_paths #=> Array
resp.runs[0].customer_artifact_paths.device_host_paths[0] #=> String
resp.runs[0].web_url #=> String
resp.runs[0].skip_app_resign #=> Boolean
resp.runs[0].test_spec_arn #=> String
resp.runs[0].device_selection_result.filters #=> Array
resp.runs[0].device_selection_result.filters[0].attribute #=> String, one of "ARN", "PLATFORM", "OS_VERSION", "MODEL", "AVAILABILITY", "FORM_FACTOR", "MANUFACTURER", "REMOTE_ACCESS_ENABLED", "REMOTE_DEBUG_ENABLED", "INSTANCE_ARN", "INSTANCE_LABELS", "FLEET_TYPE"
resp.runs[0].device_selection_result.filters[0].operator #=> String, one of "EQUALS", "LESS_THAN", "LESS_THAN_OR_EQUALS", "GREATER_THAN", "GREATER_THAN_OR_EQUALS", "IN", "NOT_IN", "CONTAINS"
resp.runs[0].device_selection_result.filters[0].values #=> Array
resp.runs[0].device_selection_result.filters[0].values[0] #=> String
resp.runs[0].device_selection_result.matched_devices_count #=> Integer
resp.runs[0].device_selection_result.max_devices #=> Integer
resp.next_token #=> String

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :arn (required, String)

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

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

Returns:

See Also:



3686
3687
3688
3689
# File 'gems/aws-sdk-devicefarm/lib/aws-sdk-devicefarm/client.rb', line 3686

def list_runs(params = {}, options = {})
  req = build_request(:list_runs, params)
  req.send_request(options)
end

#list_samples(params = {}) ⇒ Types::ListSamplesResult

Gets information about samples, given an AWS Device Farm job ARN.

Examples:

Example: To get information about samples


# The following example returns information about samples, given a specific Device Farm project.

resp = client.list_samples({
  arn: "arn:aws:devicefarm:us-west-2:123456789101:project:EXAMPLE-GUID-123-456", # You can get the Amazon Resource Name (ARN) of the project by using the list-projects CLI command.
  next_token: "RW5DdDJkMWYwZjM2MzM2VHVpOHJIUXlDUXlhc2QzRGViYnc9SEXAMPLE", # A dynamically generated value, used for paginating results.
})

resp.to_h outputs the following:
{
  samples: [
  ], 
}

Request syntax with placeholder values


resp = client.list_samples({
  arn: "AmazonResourceName", # required
  next_token: "PaginationToken",
})

Response structure


resp.samples #=> Array
resp.samples[0].arn #=> String
resp.samples[0].type #=> String, one of "CPU", "MEMORY", "THREADS", "RX_RATE", "TX_RATE", "RX", "TX", "NATIVE_FRAMES", "NATIVE_FPS", "NATIVE_MIN_DRAWTIME", "NATIVE_AVG_DRAWTIME", "NATIVE_MAX_DRAWTIME", "OPENGL_FRAMES", "OPENGL_FPS", "OPENGL_MIN_DRAWTIME", "OPENGL_AVG_DRAWTIME", "OPENGL_MAX_DRAWTIME"
resp.samples[0].url #=> String
resp.next_token #=> String

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :arn (required, String)

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

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

Returns:

See Also:



3741
3742
3743
3744
# File 'gems/aws-sdk-devicefarm/lib/aws-sdk-devicefarm/client.rb', line 3741

def list_samples(params = {}, options = {})
  req = build_request(:list_samples, params)
  req.send_request(options)
end

#list_suites(params = {}) ⇒ Types::ListSuitesResult

Gets information about test suites for a given job.

Examples:

Example: To get information about suites


# The following example returns information about suites, given a specific Device Farm project.

resp = client.list_suites({
  arn: "arn:aws:devicefarm:us-west-2:123456789101:project:EXAMPLE-GUID-123-456", # You can get the Amazon Resource Name (ARN) of the project by using the list-projects CLI command.
  next_token: "RW5DdDJkMWYwZjM2MzM2VHVpOHJIUXlDUXlhc2QzRGViYnc9SEXAMPLE", # A dynamically generated value, used for paginating results.
})

resp.to_h outputs the following:
{
  suites: [
  ], 
}

Request syntax with placeholder values


resp = client.list_suites({
  arn: "AmazonResourceName", # required
  next_token: "PaginationToken",
})

Response structure


resp.suites #=> Array
resp.suites[0].arn #=> String
resp.suites[0].name #=> String
resp.suites[0].type #=> String, one of "BUILTIN_FUZZ", "BUILTIN_EXPLORER", "WEB_PERFORMANCE_PROFILE", "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", "CALABASH", "INSTRUMENTATION", "UIAUTOMATION", "UIAUTOMATOR", "XCTEST", "XCTEST_UI", "REMOTE_ACCESS_RECORD", "REMOTE_ACCESS_REPLAY"
resp.suites[0].created #=> Time
resp.suites[0].status #=> String, one of "PENDING", "PENDING_CONCURRENCY", "PENDING_DEVICE", "PROCESSING", "SCHEDULING", "PREPARING", "RUNNING", "COMPLETED", "STOPPING"
resp.suites[0].result #=> String, one of "PENDING", "PASSED", "WARNED", "FAILED", "SKIPPED", "ERRORED", "STOPPED"
resp.suites[0].started #=> Time
resp.suites[0].stopped #=> Time
resp.suites[0].counters.total #=> Integer
resp.suites[0].counters.passed #=> Integer
resp.suites[0].counters.failed #=> Integer
resp.suites[0].counters.warned #=> Integer
resp.suites[0].counters.errored #=> Integer
resp.suites[0].counters.stopped #=> Integer
resp.suites[0].counters.skipped #=> Integer
resp.suites[0].message #=> String
resp.suites[0].device_minutes.total #=> Float
resp.suites[0].device_minutes.metered #=> Float
resp.suites[0].device_minutes.unmetered #=> Float
resp.next_token #=> String

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :arn (required, String)

    The job's Amazon Resource Name (ARN).

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

Returns:

See Also:



3812
3813
3814
3815
# File 'gems/aws-sdk-devicefarm/lib/aws-sdk-devicefarm/client.rb', line 3812

def list_suites(params = {}, options = {})
  req = build_request(:list_suites, params)
  req.send_request(options)
end

#list_tags_for_resource(params = {}) ⇒ Types::ListTagsForResourceResponse

List the tags for an AWS Device Farm resource.

Examples:

Request syntax with placeholder values


resp = client.list_tags_for_resource({
  resource_arn: "AmazonResourceName", # required
})

Response structure


resp.tags #=> Array
resp.tags[0].key #=> String
resp.tags[0].value #=> String

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :resource_arn (required, String)

    The Amazon Resource Name (ARN) of the resource(s) for which to list tags. You can associate tags with the following Device Farm resources: PROJECT, RUN, NETWORK_PROFILE, INSTANCE_PROFILE, DEVICE_INSTANCE, SESSION, DEVICE_POOL, DEVICE, and VPCE_CONFIGURATION.

Returns:

See Also:



3846
3847
3848
3849
# File 'gems/aws-sdk-devicefarm/lib/aws-sdk-devicefarm/client.rb', line 3846

def list_tags_for_resource(params = {}, options = {})
  req = build_request(:list_tags_for_resource, params)
  req.send_request(options)
end

#list_tests(params = {}) ⇒ Types::ListTestsResult

Gets information about tests in a given test suite.

Examples:

Example: To get information about tests


# The following example returns information about tests, given a specific Device Farm project.

resp = client.list_tests({
  arn: "arn:aws:devicefarm:us-west-2:123456789101:project:EXAMPLE-GUID-123-456", # You can get the Amazon Resource Name (ARN) of the project by using the list-projects CLI command.
  next_token: "RW5DdDJkMWYwZjM2MzM2VHVpOHJIUXlDUXlhc2QzRGViYnc9SEXAMPLE", # A dynamically generated value, used for paginating results.
})

resp.to_h outputs the following:
{
  tests: [
  ], 
}

Request syntax with placeholder values


resp = client.list_tests({
  arn: "AmazonResourceName", # required
  next_token: "PaginationToken",
})

Response structure


resp.tests #=> Array
resp.tests[0].arn #=> String
resp.tests[0].name #=> String
resp.tests[0].type #=> String, one of "BUILTIN_FUZZ", "BUILTIN_EXPLORER", "WEB_PERFORMANCE_PROFILE", "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", "CALABASH", "INSTRUMENTATION", "UIAUTOMATION", "UIAUTOMATOR", "XCTEST", "XCTEST_UI", "REMOTE_ACCESS_RECORD", "REMOTE_ACCESS_REPLAY"
resp.tests[0].created #=> Time
resp.tests[0].status #=> String, one of "PENDING", "PENDING_CONCURRENCY", "PENDING_DEVICE", "PROCESSING", "SCHEDULING", "PREPARING", "RUNNING", "COMPLETED", "STOPPING"
resp.tests[0].result #=> String, one of "PENDING", "PASSED", "WARNED", "FAILED", "SKIPPED", "ERRORED", "STOPPED"
resp.tests[0].started #=> Time
resp.tests[0].stopped #=> Time
resp.tests[0].counters.total #=> Integer
resp.tests[0].counters.passed #=> Integer
resp.tests[0].counters.failed #=> Integer
resp.tests[0].counters.warned #=> Integer
resp.tests[0].counters.errored #=> Integer
resp.tests[0].counters.stopped #=> Integer
resp.tests[0].counters.skipped #=> Integer
resp.tests[0].message #=> String
resp.tests[0].device_minutes.total #=> Float
resp.tests[0].device_minutes.metered #=> Float
resp.tests[0].device_minutes.unmetered #=> Float
resp.next_token #=> String

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :arn (required, String)

    The test suite's Amazon Resource Name (ARN).

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

Returns:

See Also:



3917
3918
3919
3920
# File 'gems/aws-sdk-devicefarm/lib/aws-sdk-devicefarm/client.rb', line 3917

def list_tests(params = {}, options = {})
  req = build_request(:list_tests, params)
  req.send_request(options)
end

#list_unique_problems(params = {}) ⇒ Types::ListUniqueProblemsResult

Gets information about unique problems.

Examples:

Example: To get information about unique problems


# The following example returns information about unique problems, given a specific Device Farm project.

resp = client.list_unique_problems({
  arn: "arn:aws:devicefarm:us-west-2:123456789101:project:EXAMPLE-GUID-123-456", # You can get the Amazon Resource Name (ARN) of the project by using the list-projects CLI command.
  next_token: "RW5DdDJkMWYwZjM2MzM2VHVpOHJIUXlDUXlhc2QzRGViYnc9SEXAMPLE", # A dynamically generated value, used for paginating results.
})

resp.to_h outputs the following:
{
  unique_problems: {
  }, 
}

Request syntax with placeholder values


resp = client.list_unique_problems({
  arn: "AmazonResourceName", # required
  next_token: "PaginationToken",
})

Response structure


resp.unique_problems #=> Hash
resp.unique_problems["ExecutionResult"] #=> Array
resp.unique_problems["ExecutionResult"][0].message #=> String
resp.unique_problems["ExecutionResult"][0].problems #=> Array
resp.unique_problems["ExecutionResult"][0].problems[0].run.arn #=> String
resp.unique_problems["ExecutionResult"][0].problems[0].run.name #=> String
resp.unique_problems["ExecutionResult"][0].problems[0].job.arn #=> String
resp.unique_problems["ExecutionResult"][0].problems[0].job.name #=> String
resp.unique_problems["ExecutionResult"][0].problems[0].suite.arn #=> String
resp.unique_problems["ExecutionResult"][0].problems[0].suite.name #=> String
resp.unique_problems["ExecutionResult"][0].problems[0].test.arn #=> String
resp.unique_problems["ExecutionResult"][0].problems[0].test.name #=> String
resp.unique_problems["ExecutionResult"][0].problems[0].device.arn #=> String
resp.unique_problems["ExecutionResult"][0].problems[0].device.name #=> String
resp.unique_problems["ExecutionResult"][0].problems[0].device.manufacturer #=> String
resp.unique_problems["ExecutionResult"][0].problems[0].device.model #=> String
resp.unique_problems["ExecutionResult"][0].problems[0].device.model_id #=> String
resp.unique_problems["ExecutionResult"][0].problems[0].device.form_factor #=> String, one of "PHONE", "TABLET"
resp.unique_problems["ExecutionResult"][0].problems[0].device.platform #=> String, one of "ANDROID", "IOS"
resp.unique_problems["ExecutionResult"][0].problems[0].device.os #=> String
resp.unique_problems["ExecutionResult"][0].problems[0].device.cpu.frequency #=> String
resp.unique_problems["ExecutionResult"][0].problems[0].device.cpu.architecture #=> String
resp.unique_problems["ExecutionResult"][0].problems[0].device.cpu.clock #=> Float
resp.unique_problems["ExecutionResult"][0].problems[0].device.resolution.width #=> Integer
resp.unique_problems["ExecutionResult"][0].problems[0].device.resolution.height #=> Integer
resp.unique_problems["ExecutionResult"][0].problems[0].device.heap_size #=> Integer
resp.unique_problems["ExecutionResult"][0].problems[0].device.memory #=> Integer
resp.unique_problems["ExecutionResult"][0].problems[0].device.image #=> String
resp.unique_problems["ExecutionResult"][0].problems[0].device.carrier #=> String
resp.unique_problems["ExecutionResult"][0].problems[0].device.radio #=> String
resp.unique_problems["ExecutionResult"][0].problems[0].device.remote_access_enabled #=> Boolean
resp.unique_problems["ExecutionResult"][0].problems[0].device.remote_debug_enabled #=> Boolean
resp.unique_problems["ExecutionResult"][0].problems[0].device.fleet_type #=> String
resp.unique_problems["ExecutionResult"][0].problems[0].device.fleet_name #=> String
resp.unique_problems["ExecutionResult"][0].problems[0].device.instances #=> Array
resp.unique_problems["ExecutionResult"][0].problems[0].device.instances[0].arn #=> String
resp.unique_problems["ExecutionResult"][0].problems[0].device.instances[0].device_arn #=> String
resp.unique_problems["ExecutionResult"][0].problems[0].device.instances[0].labels #=> Array
resp.unique_problems["ExecutionResult"][0].problems[0].device.instances[0].labels[0] #=> String
resp.unique_problems["ExecutionResult"][0].problems[0].device.instances[0].status #=> String, one of "IN_USE", "PREPARING", "AVAILABLE", "NOT_AVAILABLE"
resp.unique_problems["ExecutionResult"][0].problems[0].device.instances[0].udid #=> String
resp.unique_problems["ExecutionResult"][0].problems[0].device.instances[0].instance_profile.arn #=> String
resp.unique_problems["ExecutionResult"][0].problems[0].device.instances[0].instance_profile.package_cleanup #=> Boolean
resp.unique_problems["ExecutionResult"][0].problems[0].device.instances[0].instance_profile.exclude_app_packages_from_cleanup #=> Array
resp.unique_problems["ExecutionResult"][0].problems[0].device.instances[0].instance_profile.exclude_app_packages_from_cleanup[0] #=> String
resp.unique_problems["ExecutionResult"][0].problems[0].device.instances[0].instance_profile.reboot_after_use #=> Boolean
resp.unique_problems["ExecutionResult"][0].problems[0].device.instances[0].instance_profile.name #=> String
resp.unique_problems["ExecutionResult"][0].problems[0].device.instances[0].instance_profile.description #=> String
resp.unique_problems["ExecutionResult"][0].problems[0].device.availability #=> String, one of "TEMPORARY_NOT_AVAILABLE", "BUSY", "AVAILABLE", "HIGHLY_AVAILABLE"
resp.unique_problems["ExecutionResult"][0].problems[0].result #=> String, one of "PENDING", "PASSED", "WARNED", "FAILED", "SKIPPED", "ERRORED", "STOPPED"
resp.unique_problems["ExecutionResult"][0].problems[0].message #=> String
resp.next_token #=> String

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :arn (required, String)

    The unique problems' ARNs.

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

Returns:

See Also:



4019
4020
4021
4022
# File 'gems/aws-sdk-devicefarm/lib/aws-sdk-devicefarm/client.rb', line 4019

def list_unique_problems(params = {}, options = {})
  req = build_request(:list_unique_problems, params)
  req.send_request(options)
end

#list_uploads(params = {}) ⇒ Types::ListUploadsResult

Gets information about uploads, given an AWS Device Farm project ARN.

Examples:

Example: To get information about uploads


# The following example returns information about uploads, given a specific Device Farm project.

resp = client.list_uploads({
  arn: "arn:aws:devicefarm:us-west-2:123456789101:project:EXAMPLE-GUID-123-456", # You can get the Amazon Resource Name (ARN) of the project by using the list-projects CLI command.
  next_token: "RW5DdDJkMWYwZjM2MzM2VHVpOHJIUXlDUXlhc2QzRGViYnc9SEXAMPLE", # A dynamically generated value, used for paginating results.
})

resp.to_h outputs the following:
{
  uploads: [
  ], 
}

Request syntax with placeholder values


resp = client.list_uploads({
  arn: "AmazonResourceName", # required
  type: "ANDROID_APP", # accepts 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
  next_token: "PaginationToken",
})

Response structure


resp.uploads #=> Array
resp.uploads[0].arn #=> String
resp.uploads[0].name #=> String
resp.uploads[0].created #=> Time
resp.uploads[0].type #=> String, one of "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"
resp.uploads[0].status #=> String, one of "INITIALIZED", "PROCESSING", "SUCCEEDED", "FAILED"
resp.uploads[0].url #=> String
resp.uploads[0]. #=> String
resp.uploads[0].content_type #=> String
resp.uploads[0].message #=> String
resp.uploads[0].category #=> String, one of "CURATED", "PRIVATE"
resp.next_token #=> String

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :arn (required, String)

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

  • :type (String)

    The type of upload.

    Must be one of the following values:

    • ANDROID_APP: An Android upload.

    • IOS_APP: An iOS upload.

    • WEB_APP: A web application upload.

    • EXTERNAL_DATA: An external data upload.

    • APPIUM_JAVA_JUNIT_TEST_PACKAGE: An Appium Java JUnit test package upload.

    • APPIUM_JAVA_TESTNG_TEST_PACKAGE: An Appium Java TestNG test package upload.

    • APPIUM_PYTHON_TEST_PACKAGE: An Appium Python test package upload.

    • APPIUM_NODE_TEST_PACKAGE: An Appium Node.js test package upload.

    • APPIUM_RUBY_TEST_PACKAGE: An Appium Ruby test package upload.

    • APPIUM_WEB_JAVA_JUNIT_TEST_PACKAGE: An Appium Java JUnit test package upload for a web app.

    • APPIUM_WEB_JAVA_TESTNG_TEST_PACKAGE: An Appium Java TestNG test package upload for a web app.

    • APPIUM_WEB_PYTHON_TEST_PACKAGE: An Appium Python test package upload for a web app.

    • APPIUM_WEB_NODE_TEST_PACKAGE: An Appium Node.js test package upload for a web app.

    • APPIUM_WEB_RUBY_TEST_PACKAGE: An Appium Ruby test package upload for a web app.

    • CALABASH_TEST_PACKAGE: A Calabash test package upload.

    • INSTRUMENTATION_TEST_PACKAGE: An instrumentation upload.

    • UIAUTOMATION_TEST_PACKAGE: A uiautomation test package upload.

    • UIAUTOMATOR_TEST_PACKAGE: A uiautomator test package upload.

    • XCTEST_TEST_PACKAGE: An Xcode test package upload.

    • XCTEST_UI_TEST_PACKAGE: An Xcode UI test package upload.

    • APPIUM_JAVA_JUNIT_TEST_SPEC: An Appium Java JUnit test spec upload.

    • APPIUM_JAVA_TESTNG_TEST_SPEC: An Appium Java TestNG test spec upload.

    • APPIUM_PYTHON_TEST_SPEC: An Appium Python test spec upload.

    • APPIUM_NODE_TEST_SPEC: An Appium Node.js test spec upload.

    • APPIUM_RUBY_TEST_SPEC: An Appium Ruby test spec upload.

    • APPIUM_WEB_JAVA_JUNIT_TEST_SPEC: An Appium Java JUnit test spec upload for a web app.

    • APPIUM_WEB_JAVA_TESTNG_TEST_SPEC: An Appium Java TestNG test spec upload for a web app.

    • APPIUM_WEB_PYTHON_TEST_SPEC: An Appium Python test spec upload for a web app.

    • APPIUM_WEB_NODE_TEST_SPEC: An Appium Node.js test spec upload for a web app.

    • APPIUM_WEB_RUBY_TEST_SPEC: An Appium Ruby test spec upload for a web app.

    • INSTRUMENTATION_TEST_SPEC: An instrumentation test spec upload.

    • XCTEST_UI_TEST_SPEC: An Xcode UI test spec upload.

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

Returns:

See Also:



4166
4167
4168
4169
# File 'gems/aws-sdk-devicefarm/lib/aws-sdk-devicefarm/client.rb', line 4166

def list_uploads(params = {}, options = {})
  req = build_request(:list_uploads, params)
  req.send_request(options)
end

#list_vpce_configurations(params = {}) ⇒ Types::ListVPCEConfigurationsResult

Returns information about all Amazon Virtual Private Cloud (VPC) endpoint configurations in the AWS account.

Examples:

Request syntax with placeholder values


resp = client.list_vpce_configurations({
  max_results: 1,
  next_token: "PaginationToken",
})

Response structure


resp.vpce_configurations #=> Array
resp.vpce_configurations[0].arn #=> String
resp.vpce_configurations[0].vpce_configuration_name #=> String
resp.vpce_configurations[0].vpce_service_name #=> String
resp.vpce_configurations[0].service_dns_name #=> String
resp.vpce_configurations[0].vpce_configuration_description #=> String
resp.next_token #=> String

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :max_results (Integer)

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

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

Returns:

See Also:



4209
4210
4211
4212
# File 'gems/aws-sdk-devicefarm/lib/aws-sdk-devicefarm/client.rb', line 4209

def list_vpce_configurations(params = {}, options = {})
  req = build_request(:list_vpce_configurations, params)
  req.send_request(options)
end

#purchase_offering(params = {}) ⇒ Types::PurchaseOfferingResult

Immediately purchases offerings for an AWS account. Offerings renew with the latest total purchased quantity for an offering, unless the renewal was overridden. The API returns a NotEligible error if the user is not permitted to invoke the operation. Please contact aws-devicefarm-support@amazon.com if you believe that you should be able to invoke this operation.

Examples:

Example: To purchase a device slot offering


# The following example purchases a specific device slot offering.

resp = client.purchase_offering({
  offering_id: "D68B3C05-1BA6-4360-BC69-12345EXAMPLE", # You can get the offering ID by using the list-offerings CLI command.
  quantity: 1, 
})

resp.to_h outputs the following:
{
  offering_transaction: {
    cost: {
      amount: 8.07, 
      currency_code: "USD", 
    }, 
    created_on: Time.parse("1472648340"), 
    offering_status: {
      type: "PURCHASE", 
      effective_on: Time.parse("1472648340"), 
      offering: {
        type: "RECURRING", 
        description: "Android Remote Access Unmetered Device Slot", 
        id: "D68B3C05-1BA6-4360-BC69-12345EXAMPLE", 
        platform: "ANDROID", 
      }, 
      quantity: 1, 
    }, 
    transaction_id: "d30614ed-1b03-404c-9893-12345EXAMPLE", 
  }, 
}

Request syntax with placeholder values


resp = client.purchase_offering({
  offering_id: "OfferingIdentifier",
  quantity: 1,
  offering_promotion_id: "OfferingPromotionIdentifier",
})

Response structure


resp.offering_transaction.offering_status.type #=> String, one of "PURCHASE", "RENEW", "SYSTEM"
resp.offering_transaction.offering_status.offering.id #=> String
resp.offering_transaction.offering_status.offering.description #=> String
resp.offering_transaction.offering_status.offering.type #=> String, one of "RECURRING"
resp.offering_transaction.offering_status.offering.platform #=> String, one of "ANDROID", "IOS"
resp.offering_transaction.offering_status.offering.recurring_charges #=> Array
resp.offering_transaction.offering_status.offering.recurring_charges[0].cost.amount #=> Float
resp.offering_transaction.offering_status.offering.recurring_charges[0].cost.currency_code #=> String, one of "USD"
resp.offering_transaction.offering_status.offering.recurring_charges[0].frequency #=> String, one of "MONTHLY"
resp.offering_transaction.offering_status.quantity #=> Integer
resp.offering_transaction.offering_status.effective_on #=> Time
resp.offering_transaction.transaction_id #=> String
resp.offering_transaction.offering_promotion_id #=> String
resp.offering_transaction.created_on #=> Time
resp.offering_transaction.cost.amount #=> Float
resp.offering_transaction.cost.currency_code #=> String, one of "USD"

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :offering_id (String)

    The ID of the offering.

  • :quantity (Integer)

    The number of device slots you wish to purchase in an offering request.

  • :offering_promotion_id (String)

    The ID of the offering promotion to be applied to the purchase.

Returns:

See Also:



4299
4300
4301
4302
# File 'gems/aws-sdk-devicefarm/lib/aws-sdk-devicefarm/client.rb', line 4299

def purchase_offering(params = {}, options = {})
  req = build_request(:purchase_offering, params)
  req.send_request(options)
end

#renew_offering(params = {}) ⇒ Types::RenewOfferingResult

Explicitly sets the quantity of devices to renew for an offering, starting from the effectiveDate of the next period. The API returns a NotEligible error if the user is not permitted to invoke the operation. Please contact aws-devicefarm-support@amazon.com if you believe that you should be able to invoke this operation.

Examples:

Example: To renew a device slot offering


# The following example renews a specific device slot offering.

resp = client.renew_offering({
  offering_id: "D68B3C05-1BA6-4360-BC69-12345EXAMPLE", # You can get the offering ID by using the list-offerings CLI command.
  quantity: 1, 
})

resp.to_h outputs the following:
{
  offering_transaction: {
    cost: {
      amount: 250, 
      currency_code: "USD", 
    }, 
    created_on: Time.parse("1472648880"), 
    offering_status: {
      type: "RENEW", 
      effective_on: Time.parse("1472688000"), 
      offering: {
        type: "RECURRING", 
        description: "Android Remote Access Unmetered Device Slot", 
        id: "D68B3C05-1BA6-4360-BC69-12345EXAMPLE", 
        platform: "ANDROID", 
      }, 
      quantity: 1, 
    }, 
    transaction_id: "e90f1405-8c35-4561-be43-12345EXAMPLE", 
  }, 
}

Request syntax with placeholder values


resp = client.renew_offering({
  offering_id: "OfferingIdentifier",
  quantity: 1,
})

Response structure


resp.offering_transaction.offering_status.type #=> String, one of "PURCHASE", "RENEW", "SYSTEM"
resp.offering_transaction.offering_status.offering.id #=> String
resp.offering_transaction.offering_status.offering.description #=> String
resp.offering_transaction.offering_status.offering.type #=> String, one of "RECURRING"
resp.offering_transaction.offering_status.offering.platform #=> String, one of "ANDROID", "IOS"
resp.offering_transaction.offering_status.offering.recurring_charges #=> Array
resp.offering_transaction.offering_status.offering.recurring_charges[0].cost.amount #=> Float
resp.offering_transaction.offering_status.offering.recurring_charges[0].cost.currency_code #=> String, one of "USD"
resp.offering_transaction.offering_status.offering.recurring_charges[0].frequency #=> String, one of "MONTHLY"
resp.offering_transaction.offering_status.quantity #=> Integer
resp.offering_transaction.offering_status.effective_on #=> Time
resp.offering_transaction.transaction_id #=> String
resp.offering_transaction.offering_promotion_id #=> String
resp.offering_transaction.created_on #=> Time
resp.offering_transaction.cost.amount #=> Float
resp.offering_transaction.cost.currency_code #=> String, one of "USD"

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :offering_id (String)

    The ID of a request to renew an offering.

  • :quantity (Integer)

    The quantity requested in an offering renewal.

Returns:

See Also:



4384
4385
4386
4387
# File 'gems/aws-sdk-devicefarm/lib/aws-sdk-devicefarm/client.rb', line 4384

def renew_offering(params = {}, options = {})
  req = build_request(:renew_offering, params)
  req.send_request(options)
end

#schedule_run(params = {}) ⇒ Types::ScheduleRunResult

Schedules a run.

Examples:

Example: To schedule a test run


# The following example schedules a test run named MyRun.

resp = client.schedule_run({
  name: "MyRun", 
  device_pool_arn: "arn:aws:devicefarm:us-west-2:123456789101:pool:EXAMPLE-GUID-123-456", # You can get the Amazon Resource Name (ARN) of the device pool by using the list-pools CLI command.
  project_arn: "arn:aws:devicefarm:us-west-2:123456789101:project:EXAMPLE-GUID-123-456", # You can get the Amazon Resource Name (ARN) of the project by using the list-projects CLI command.
  test: {
    type: "APPIUM_JAVA_JUNIT", 
    test_package_arn: "arn:aws:devicefarm:us-west-2:123456789101:test:EXAMPLE-GUID-123-456", 
  }, 
})

resp.to_h outputs the following:
{
  run: {
  }, 
}

Request syntax with placeholder values


resp = client.schedule_run({
  project_arn: "AmazonResourceName", # required
  app_arn: "AmazonResourceName",
  device_pool_arn: "AmazonResourceName",
  device_selection_configuration: {
    filters: [ # required
      {
        attribute: "ARN", # accepts ARN, PLATFORM, OS_VERSION, MODEL, AVAILABILITY, FORM_FACTOR, MANUFACTURER, REMOTE_ACCESS_ENABLED, REMOTE_DEBUG_ENABLED, INSTANCE_ARN, INSTANCE_LABELS, FLEET_TYPE
        operator: "EQUALS", # accepts EQUALS, LESS_THAN, LESS_THAN_OR_EQUALS, GREATER_THAN, GREATER_THAN_OR_EQUALS, IN, NOT_IN, CONTAINS
        values: ["String"],
      },
    ],
    max_devices: 1, # required
  },
  name: "Name",
  test: { # required
    type: "BUILTIN_FUZZ", # required, accepts BUILTIN_FUZZ, BUILTIN_EXPLORER, WEB_PERFORMANCE_PROFILE, 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, CALABASH, INSTRUMENTATION, UIAUTOMATION, UIAUTOMATOR, XCTEST, XCTEST_UI, REMOTE_ACCESS_RECORD, REMOTE_ACCESS_REPLAY
    test_package_arn: "AmazonResourceName",
    test_spec_arn: "AmazonResourceName",
    filter: "Filter",
    parameters: {
      "String" => "String",
    },
  },
  configuration: {
    extra_data_package_arn: "AmazonResourceName",
    network_profile_arn: "AmazonResourceName",
    locale: "String",
    location: {
      latitude: 1.0, # required
      longitude: 1.0, # required
    },
    vpce_configuration_arns: ["AmazonResourceName"],
    customer_artifact_paths: {
      ios_paths: ["String"],
      android_paths: ["String"],
      device_host_paths: ["String"],
    },
    radios: {
      wifi: false,
      bluetooth: false,
      nfc: false,
      gps: false,
    },
    auxiliary_apps: ["AmazonResourceName"],
    billing_method: "METERED", # accepts METERED, UNMETERED
  },
  execution_configuration: {
    job_timeout_minutes: 1,
    accounts_cleanup: false,
    app_packages_cleanup: false,
    video_capture: false,
    skip_app_resign: false,
  },
})

Response structure


resp.run.arn #=> String
resp.run.name #=> String
resp.run.type #=> String, one of "BUILTIN_FUZZ", "BUILTIN_EXPLORER", "WEB_PERFORMANCE_PROFILE", "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", "CALABASH", "INSTRUMENTATION", "UIAUTOMATION", "UIAUTOMATOR", "XCTEST", "XCTEST_UI", "REMOTE_ACCESS_RECORD", "REMOTE_ACCESS_REPLAY"
resp.run.platform #=> String, one of "ANDROID", "IOS"
resp.run.created #=> Time
resp.run.status #=> String, one of "PENDING", "PENDING_CONCURRENCY", "PENDING_DEVICE", "PROCESSING", "SCHEDULING", "PREPARING", "RUNNING", "COMPLETED", "STOPPING"
resp.run.result #=> String, one of "PENDING", "PASSED", "WARNED", "FAILED", "SKIPPED", "ERRORED", "STOPPED"
resp.run.started #=> Time
resp.run.stopped #=> Time
resp.run.counters.total #=> Integer
resp.run.counters.passed #=> Integer
resp.run.counters.failed #=> Integer
resp.run.counters.warned #=> Integer
resp.run.counters.errored #=> Integer
resp.run.counters.stopped #=> Integer
resp.run.counters.skipped #=> Integer
resp.run.message #=> String
resp.run.total_jobs #=> Integer
resp.run.completed_jobs #=> Integer
resp.run.billing_method #=> String, one of "METERED", "UNMETERED"
resp.run.device_minutes.total #=> Float
resp.run.device_minutes.metered #=> Float
resp.run.device_minutes.unmetered #=> Float
resp.run.network_profile.arn #=> String
resp.run.network_profile.name #=> String
resp.run.network_profile.description #=> String
resp.run.network_profile.type #=> String, one of "CURATED", "PRIVATE"
resp.run.network_profile.uplink_bandwidth_bits #=> Integer
resp.run.network_profile.downlink_bandwidth_bits #=> Integer
resp.run.network_profile.uplink_delay_ms #=> Integer
resp.run.network_profile.downlink_delay_ms #=> Integer
resp.run.network_profile.uplink_jitter_ms #=> Integer
resp.run.network_profile.downlink_jitter_ms #=> Integer
resp.run.network_profile.uplink_loss_percent #=> Integer
resp.run.network_profile.downlink_loss_percent #=> Integer
resp.run.parsing_result_url #=> String
resp.run.result_code #=> String, one of "PARSING_FAILED", "VPC_ENDPOINT_SETUP_FAILED"
resp.run.seed #=> Integer
resp.run.app_upload #=> String
resp.run.event_count #=> Integer
resp.run.job_timeout_minutes #=> Integer
resp.run.device_pool_arn #=> String
resp.run.locale #=> String
resp.run.radios.wifi #=> Boolean
resp.run.radios.bluetooth #=> Boolean
resp.run.radios.nfc #=> Boolean
resp.run.radios.gps #=> Boolean
resp.run.location.latitude #=> Float
resp.run.location.longitude #=> Float
resp.run.customer_artifact_paths.ios_paths #=> Array
resp.run.customer_artifact_paths.ios_paths[0] #=> String
resp.run.customer_artifact_paths.android_paths #=> Array
resp.run.customer_artifact_paths.android_paths[0] #=> String
resp.run.customer_artifact_paths.device_host_paths #=> Array
resp.run.customer_artifact_paths.device_host_paths[0] #=> String
resp.run.web_url #=> String
resp.run.skip_app_resign #=> Boolean
resp.run.test_spec_arn #=> String
resp.run.device_selection_result.filters #=> Array
resp.run.device_selection_result.filters[0].attribute #=> String, one of "ARN", "PLATFORM", "OS_VERSION", "MODEL", "AVAILABILITY", "FORM_FACTOR", "MANUFACTURER", "REMOTE_ACCESS_ENABLED", "REMOTE_DEBUG_ENABLED", "INSTANCE_ARN", "INSTANCE_LABELS", "FLEET_TYPE"
resp.run.device_selection_result.filters[0].operator #=> String, one of "EQUALS", "LESS_THAN", "LESS_THAN_OR_EQUALS", "GREATER_THAN", "GREATER_THAN_OR_EQUALS", "IN", "NOT_IN", "CONTAINS"
resp.run.device_selection_result.filters[0].values #=> Array
resp.run.device_selection_result.filters[0].values[0] #=> String
resp.run.device_selection_result.matched_devices_count #=> Integer
resp.run.device_selection_result.max_devices #=> Integer

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :project_arn (required, String)

    The ARN of the project for the run to be scheduled.

  • :app_arn (String)

    The ARN of the app to schedule a run.

  • :device_pool_arn (String)

    The ARN of the device pool for the run to be scheduled.

  • :device_selection_configuration (Types::DeviceSelectionConfiguration)

    The filter criteria used to dynamically select a set of devices for a test run, as well as the maximum number of devices to be included in the run.

    Either devicePoolArn or deviceSelectionConfiguration is required in a request.

  • :name (String)

    The name for the run to be scheduled.

  • :test (required, Types::ScheduleRunTest)

    Information about the test for the run to be scheduled.

  • :configuration (Types::ScheduleRunConfiguration)

    Information about the settings for the run to be scheduled.

  • :execution_configuration (Types::ExecutionConfiguration)

    Specifies configuration information about a test run, such as the execution timeout (in minutes).

Returns:

See Also:



4577
4578
4579
4580
# File 'gems/aws-sdk-devicefarm/lib/aws-sdk-devicefarm/client.rb', line 4577

def schedule_run(params = {}, options = {})
  req = build_request(:schedule_run, params)
  req.send_request(options)
end

#stop_job(params = {}) ⇒ Types::StopJobResult

Initiates a stop request for the current job. AWS Device Farm will immediately stop the job on the device where tests have not started executing, and you will not be billed for this device. On the device where tests have started executing, Setup Suite and Teardown Suite tests will run to completion before stopping execution on the device. You will be billed for Setup, Teardown, and any tests that were in progress or already completed.

Examples:

Request syntax with placeholder values


resp = client.stop_job({
  arn: "AmazonResourceName", # required
})

Response structure


resp.job.arn #=> String
resp.job.name #=> String
resp.job.type #=> String, one of "BUILTIN_FUZZ", "BUILTIN_EXPLORER", "WEB_PERFORMANCE_PROFILE", "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", "CALABASH", "INSTRUMENTATION", "UIAUTOMATION", "UIAUTOMATOR", "XCTEST", "XCTEST_UI", "REMOTE_ACCESS_RECORD", "REMOTE_ACCESS_REPLAY"
resp.job.created #=> Time
resp.job.status #=> String, one of "PENDING", "PENDING_CONCURRENCY", "PENDING_DEVICE", "PROCESSING", "SCHEDULING", "PREPARING", "RUNNING", "COMPLETED", "STOPPING"
resp.job.result #=> String, one of "PENDING", "PASSED", "WARNED", "FAILED", "SKIPPED", "ERRORED", "STOPPED"
resp.job.started #=> Time
resp.job.stopped #=> Time
resp.job.counters.total #=> Integer
resp.job.counters.passed #=> Integer
resp.job.counters.failed #=> Integer
resp.job.counters.warned #=> Integer
resp.job.counters.errored #=> Integer
resp.job.counters.stopped #=> Integer
resp.job.counters.skipped #=> Integer
resp.job.message #=> String
resp.job.device.arn #=> String
resp.job.device.name #=> String
resp.job.device.manufacturer #=> String
resp.job.device.model #=> String
resp.job.device.model_id #=> String
resp.job.device.form_factor #=> String, one of "PHONE", "TABLET"
resp.job.device.platform #=> String, one of "ANDROID", "IOS"
resp.job.device.os #=> String
resp.job.device.cpu.frequency #=> String
resp.job.device.cpu.architecture #=> String
resp.job.device.cpu.clock #=> Float
resp.job.device.resolution.width #=> Integer
resp.job.device.resolution.height #=> Integer
resp.job.device.heap_size #=> Integer
resp.job.device.memory #=> Integer
resp.job.device.image #=> String
resp.job.device.carrier #=> String
resp.job.device.radio #=> String
resp.job.device.remote_access_enabled #=> Boolean
resp.job.device.remote_debug_enabled #=> Boolean
resp.job.device.fleet_type #=> String
resp.job.device.fleet_name #=> String
resp.job.device.instances #=> Array
resp.job.device.instances[0].arn #=> String
resp.job.device.instances[0].device_arn #=> String
resp.job.device.instances[0].labels #=> Array
resp.job.device.instances[0].labels[0] #=> String
resp.job.device.instances[0].status #=> String, one of "IN_USE", "PREPARING", "AVAILABLE", "NOT_AVAILABLE"
resp.job.device.instances[0].udid #=> String
resp.job.device.instances[0].instance_profile.arn #=> String
resp.job.device.instances[0].instance_profile.package_cleanup #=> Boolean
resp.job.device.instances[0].instance_profile.exclude_app_packages_from_cleanup #=> Array
resp.job.device.instances[0].instance_profile.exclude_app_packages_from_cleanup[0] #=> String
resp.job.device.instances[0].instance_profile.reboot_after_use #=> Boolean
resp.job.device.instances[0].instance_profile.name #=> String
resp.job.device.instances[0].instance_profile.description #=> String
resp.job.device.availability #=> String, one of "TEMPORARY_NOT_AVAILABLE", "BUSY", "AVAILABLE", "HIGHLY_AVAILABLE"
resp.job.instance_arn #=> String
resp.job.device_minutes.total #=> Float
resp.job.device_minutes.metered #=> Float
resp.job.device_minutes.unmetered #=> Float
resp.job.video_endpoint #=> String
resp.job.video_capture #=> Boolean

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :arn (required, String)

    Represents the Amazon Resource Name (ARN) of the Device Farm job you wish to stop.

Returns:

See Also:



4670
4671
4672
4673
# File 'gems/aws-sdk-devicefarm/lib/aws-sdk-devicefarm/client.rb', line 4670

def stop_job(params = {}, options = {})
  req = build_request(:stop_job, params)
  req.send_request(options)
end

#stop_remote_access_session(params = {}) ⇒ Types::StopRemoteAccessSessionResult

Ends a specified remote access session.

Examples:

Request syntax with placeholder values


resp = client.stop_remote_access_session({
  arn: "AmazonResourceName", # required
})

Response structure


resp.remote_access_session.arn #=> String
resp.remote_access_session.name #=> String
resp.remote_access_session.created #=> Time
resp.remote_access_session.status #=> String, one of "PENDING", "PENDING_CONCURRENCY", "PENDING_DEVICE", "PROCESSING", "SCHEDULING", "PREPARING", "RUNNING", "COMPLETED", "STOPPING"
resp.