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

#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(*args) ⇒ Client

Returns a new instance of Client

Parameters:

  • options (Hash)

    a customizable set of options



152
153
154
# File 'gems/aws-sdk-devicefarm/lib/aws-sdk-devicefarm/client.rb', line 152

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
      operator: "EQUALS", # accepts EQUALS, LESS_THAN, GREATER_THAN, IN, NOT_IN, CONTAINS
      value: "String",
    },
  ],
})

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"
resp.device_pool.rules[0].operator #=> String, one of "EQUALS", "LESS_THAN", "GREATER_THAN", "IN", "NOT_IN", "CONTAINS"
resp.device_pool.rules[0].value #=> String

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.

Returns:

See Also:



225
226
227
228
# File 'gems/aws-sdk-devicefarm/lib/aws-sdk-devicefarm/client.rb', line 225

def create_device_pool(params = {}, options = {})
  req = build_request(:create_device_pool, 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:



318
319
320
321
# File 'gems/aws-sdk-devicefarm/lib/aws-sdk-devicefarm/client.rb', line 318

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:



373
374
375
376
# File 'gems/aws-sdk-devicefarm/lib/aws-sdk-devicefarm/client.rb', line 373

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
  ssh_public_key: "SshPublicKey",
  remote_debug_enabled: false,
  name: "Name",
  client_id: "ClientId",
  configuration: {
    billing_method: "METERED", # accepts METERED, UNMETERED
  },
})

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.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.remote_debug_enabled #=> Boolean
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

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.

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

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

  • :configuration (Types::CreateRemoteAccessSessionConfiguration)

    The configuration information for the remote access session request.

Returns:

See Also:



492
493
494
495
# File 'gems/aws-sdk-devicefarm/lib/aws-sdk-devicefarm/client.rb', line 492

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_WEB_JAVA_JUNIT_TEST_PACKAGE, APPIUM_WEB_JAVA_TESTNG_TEST_PACKAGE, APPIUM_WEB_PYTHON_TEST_PACKAGE, CALABASH_TEST_PACKAGE, INSTRUMENTATION_TEST_PACKAGE, UIAUTOMATION_TEST_PACKAGE, UIAUTOMATOR_TEST_PACKAGE, XCTEST_TEST_PACKAGE, XCTEST_UI_TEST_PACKAGE
  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_WEB_JAVA_JUNIT_TEST_PACKAGE", "APPIUM_WEB_JAVA_TESTNG_TEST_PACKAGE", "APPIUM_WEB_PYTHON_TEST_PACKAGE", "CALABASH_TEST_PACKAGE", "INSTRUMENTATION_TEST_PACKAGE", "UIAUTOMATION_TEST_PACKAGE", "UIAUTOMATOR_TEST_PACKAGE", "XCTEST_TEST_PACKAGE", "XCTEST_UI_TEST_PACKAGE"
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

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 appliction 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_WEB_JAVA_JUNIT_TEST_PACKAGE: An Appium Java JUnit test package upload.

    • APPIUM_WEB_JAVA_TESTNG_TEST_PACKAGE: An Appium Java TestNG test package upload.

    • APPIUM_WEB_PYTHON_TEST_PACKAGE: An Appium Python test package upload.

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

    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:



610
611
612
613
# File 'gems/aws-sdk-devicefarm/lib/aws-sdk-devicefarm/client.rb', line 610

def create_upload(params = {}, options = {})
  req = build_request(:create_upload, 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:



647
648
649
650
# File 'gems/aws-sdk-devicefarm/lib/aws-sdk-devicefarm/client.rb', line 647

def delete_device_pool(params = {}, options = {})
  req = build_request(:delete_device_pool, 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:



670
671
672
673
# File 'gems/aws-sdk-devicefarm/lib/aws-sdk-devicefarm/client.rb', line 670

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:



708
709
710
711
# File 'gems/aws-sdk-devicefarm/lib/aws-sdk-devicefarm/client.rb', line 708

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 sesssion for which you want to delete remote access.

Returns:

  • (Struct)

    Returns an empty response.

See Also:



744
745
746
747
# File 'gems/aws-sdk-devicefarm/lib/aws-sdk-devicefarm/client.rb', line 744

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:



781
782
783
784
# File 'gems/aws-sdk-devicefarm/lib/aws-sdk-devicefarm/client.rb', line 781

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:



817
818
819
820
# File 'gems/aws-sdk-devicefarm/lib/aws-sdk-devicefarm/client.rb', line 817

def delete_upload(params = {}, options = {})
  req = build_request(:delete_upload, 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

Parameters:

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

    ({})

Returns:

See Also:



866
867
868
869
# File 'gems/aws-sdk-devicefarm/lib/aws-sdk-devicefarm/client.rb', line 866

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

Parameters:

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

    ({})

Options Hash (params):

  • :arn (required, String)

    The device type's ARN.

Returns:

See Also:



948
949
950
951
# File 'gems/aws-sdk-devicefarm/lib/aws-sdk-devicefarm/client.rb', line 948

def get_device(params = {}, options = {})
  req = build_request(:get_device, 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"
resp.device_pool.rules[0].operator #=> String, one of "EQUALS", "LESS_THAN", "GREATER_THAN", "IN", "NOT_IN", "CONTAINS"
resp.device_pool.rules[0].value #=> String

Parameters:

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

    ({})

Options Hash (params):

  • :arn (required, String)

    The device pool's ARN.

Returns:

See Also:



998
999
1000
1001
# File 'gems/aws-sdk-devicefarm/lib/aws-sdk-devicefarm/client.rb', line 998

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, APPIUM_JAVA_JUNIT, APPIUM_JAVA_TESTNG, APPIUM_PYTHON, APPIUM_WEB_JAVA_JUNIT, APPIUM_WEB_JAVA_TESTNG, APPIUM_WEB_PYTHON, CALABASH, INSTRUMENTATION, UIAUTOMATION, UIAUTOMATOR, XCTEST, XCTEST_UI
  test: {
    type: "BUILTIN_FUZZ", # required, accepts BUILTIN_FUZZ, BUILTIN_EXPLORER, APPIUM_JAVA_JUNIT, APPIUM_JAVA_TESTNG, APPIUM_PYTHON, APPIUM_WEB_JAVA_JUNIT, APPIUM_WEB_JAVA_TESTNG, APPIUM_WEB_PYTHON, CALABASH, INSTRUMENTATION, UIAUTOMATION, UIAUTOMATOR, XCTEST, XCTEST_UI
    test_package_arn: "AmazonResourceName",
    filter: "Filter",
    parameters: {
      "String" => "String",
    },
  },
})

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

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

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

Returns:

See Also:



1148
1149
1150
1151
# File 'gems/aws-sdk-devicefarm/lib/aws-sdk-devicefarm/client.rb', line 1148

def get_device_pool_compatibility(params = {}, options = {})
  req = build_request(:get_device_pool_compatibility, 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", "APPIUM_JAVA_JUNIT", "APPIUM_JAVA_TESTNG", "APPIUM_PYTHON", "APPIUM_WEB_JAVA_JUNIT", "APPIUM_WEB_JAVA_TESTNG", "APPIUM_WEB_PYTHON", "CALABASH", "INSTRUMENTATION", "UIAUTOMATION", "UIAUTOMATOR", "XCTEST", "XCTEST_UI"
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.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_minutes.total #=> Float
resp.job.device_minutes.metered #=> Float
resp.job.device_minutes.unmetered #=> Float

Parameters:

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

    ({})

Options Hash (params):

  • :arn (required, String)

    The job's ARN.

Returns:

See Also:



1230
1231
1232
1233
# File 'gems/aws-sdk-devicefarm/lib/aws-sdk-devicefarm/client.rb', line 1230

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:



1270
1271
1272
1273
# File 'gems/aws-sdk-devicefarm/lib/aws-sdk-devicefarm/client.rb', line 1270

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:



1368
1369
1370
1371
# File 'gems/aws-sdk-devicefarm/lib/aws-sdk-devicefarm/client.rb', line 1368

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:



1417
1418
1419
1420
# File 'gems/aws-sdk-devicefarm/lib/aws-sdk-devicefarm/client.rb', line 1417

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.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.remote_debug_enabled #=> Boolean
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

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:



1498
1499
1500
1501
# File 'gems/aws-sdk-devicefarm/lib/aws-sdk-devicefarm/client.rb', line 1498

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", "APPIUM_JAVA_JUNIT", "APPIUM_JAVA_TESTNG", "APPIUM_PYTHON", "APPIUM_WEB_JAVA_JUNIT", "APPIUM_WEB_JAVA_TESTNG", "APPIUM_WEB_PYTHON", "CALABASH", "INSTRUMENTATION", "UIAUTOMATION", "UIAUTOMATOR", "XCTEST", "XCTEST_UI"
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"
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

Parameters:

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

    ({})

Options Hash (params):

  • :arn (required, String)

    The run's ARN.

Returns:

See Also:



1607
1608
1609
1610
# File 'gems/aws-sdk-devicefarm/lib/aws-sdk-devicefarm/client.rb', line 1607

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", "APPIUM_JAVA_JUNIT", "APPIUM_JAVA_TESTNG", "APPIUM_PYTHON", "APPIUM_WEB_JAVA_JUNIT", "APPIUM_WEB_JAVA_TESTNG", "APPIUM_WEB_PYTHON", "CALABASH", "INSTRUMENTATION", "UIAUTOMATION", "UIAUTOMATOR", "XCTEST", "XCTEST_UI"
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:



1668
1669
1670
1671
# File 'gems/aws-sdk-devicefarm/lib/aws-sdk-devicefarm/client.rb', line 1668

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", "APPIUM_JAVA_JUNIT", "APPIUM_JAVA_TESTNG", "APPIUM_PYTHON", "APPIUM_WEB_JAVA_JUNIT", "APPIUM_WEB_JAVA_TESTNG", "APPIUM_WEB_PYTHON", "CALABASH", "INSTRUMENTATION", "UIAUTOMATION", "UIAUTOMATOR", "XCTEST", "XCTEST_UI"
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:



1729
1730
1731
1732
# File 'gems/aws-sdk-devicefarm/lib/aws-sdk-devicefarm/client.rb', line 1729

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_WEB_JAVA_JUNIT_TEST_PACKAGE", "APPIUM_WEB_JAVA_TESTNG_TEST_PACKAGE", "APPIUM_WEB_PYTHON_TEST_PACKAGE", "CALABASH_TEST_PACKAGE", "INSTRUMENTATION_TEST_PACKAGE", "UIAUTOMATION_TEST_PACKAGE", "UIAUTOMATOR_TEST_PACKAGE", "XCTEST_TEST_PACKAGE", "XCTEST_UI_TEST_PACKAGE"
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

Parameters:

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

    ({})

Options Hash (params):

  • :arn (required, String)

    The upload's ARN.

Returns:

See Also:



1780
1781
1782
1783
# File 'gems/aws-sdk-devicefarm/lib/aws-sdk-devicefarm/client.rb', line 1780

def get_upload(params = {}, options = {})
  req = build_request(:get_upload, 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_WEB_JAVA_JUNIT_TEST_PACKAGE", "APPIUM_WEB_JAVA_TESTNG_TEST_PACKAGE", "APPIUM_WEB_PYTHON_TEST_PACKAGE", "CALABASH_TEST_PACKAGE", "INSTRUMENTATION_TEST_PACKAGE", "UIAUTOMATION_TEST_PACKAGE", "UIAUTOMATOR_TEST_PACKAGE", "XCTEST_TEST_PACKAGE", "XCTEST_UI_TEST_PACKAGE"
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

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:



1840
1841
1842
1843
# File 'gems/aws-sdk-devicefarm/lib/aws-sdk-devicefarm/client.rb', line 1840

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



1903
1904
1905
1906
# File 'gems/aws-sdk-devicefarm/lib/aws-sdk-devicefarm/client.rb', line 1903

def list_artifacts(params = {}, options = {})
  req = build_request(:list_artifacts, 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"
resp.device_pools[0].rules[0].operator #=> String, one of "EQUALS", "LESS_THAN", "GREATER_THAN", "IN", "NOT_IN", "CONTAINS"
resp.device_pools[0].rules[0].value #=> String
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:



1999
2000
2001
2002
# File 'gems/aws-sdk-devicefarm/lib/aws-sdk-devicefarm/client.rb', line 1999

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",
})

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

Returns:

See Also:



2069
2070
2071
2072
# File 'gems/aws-sdk-devicefarm/lib/aws-sdk-devicefarm/client.rb', line 2069

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

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

Gets information about jobs.

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", "APPIUM_JAVA_JUNIT", "APPIUM_JAVA_TESTNG", "APPIUM_PYTHON", "APPIUM_WEB_JAVA_JUNIT", "APPIUM_WEB_JAVA_TESTNG", "APPIUM_WEB_PYTHON", "CALABASH", "INSTRUMENTATION", "UIAUTOMATION", "UIAUTOMATOR", "XCTEST", "XCTEST_UI"
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.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_minutes.total #=> Float
resp.jobs[0].device_minutes.metered #=> Float
resp.jobs[0].device_minutes.unmetered #=> Float
resp.next_token #=> String

Parameters:

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

    ({})

Options Hash (params):

  • :arn (required, String)

    The jobs' 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:



2154
2155
2156
2157
# File 'gems/aws-sdk-devicefarm/lib/aws-sdk-devicefarm/client.rb', line 2154

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:



2208
2209
2210
2211
# File 'gems/aws-sdk-devicefarm/lib/aws-sdk-devicefarm/client.rb', line 2208

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:



2247
2248
2249
2250
# File 'gems/aws-sdk-devicefarm/lib/aws-sdk-devicefarm/client.rb', line 2247

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:



2392
2393
2394
2395
# File 'gems/aws-sdk-devicefarm/lib/aws-sdk-devicefarm/client.rb', line 2392

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:



2513
2514
2515
2516
# File 'gems/aws-sdk-devicefarm/lib/aws-sdk-devicefarm/client.rb', line 2513

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:



2581
2582
2583
2584
# File 'gems/aws-sdk-devicefarm/lib/aws-sdk-devicefarm/client.rb', line 2581

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.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].remote_debug_enabled #=> Boolean
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.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:



2672
2673
2674
2675
# File 'gems/aws-sdk-devicefarm/lib/aws-sdk-devicefarm/client.rb', line 2672

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", "APPIUM_JAVA_JUNIT", "APPIUM_JAVA_TESTNG", "APPIUM_PYTHON", "APPIUM_WEB_JAVA_JUNIT", "APPIUM_WEB_JAVA_TESTNG", "APPIUM_WEB_PYTHON", "CALABASH", "INSTRUMENTATION", "UIAUTOMATION", "UIAUTOMATOR", "XCTEST", "XCTEST_UI"
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"
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.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:



2794
2795
2796
2797
# File 'gems/aws-sdk-devicefarm/lib/aws-sdk-devicefarm/client.rb', line 2794

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 project 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 project for which you want 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:



2850
2851
2852
2853
# File 'gems/aws-sdk-devicefarm/lib/aws-sdk-devicefarm/client.rb', line 2850

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

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

Gets information about suites.

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", "APPIUM_JAVA_JUNIT", "APPIUM_JAVA_TESTNG", "APPIUM_PYTHON", "APPIUM_WEB_JAVA_JUNIT", "APPIUM_WEB_JAVA_TESTNG", "APPIUM_WEB_PYTHON", "CALABASH", "INSTRUMENTATION", "UIAUTOMATION", "UIAUTOMATOR", "XCTEST", "XCTEST_UI"
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 suites' 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:



2921
2922
2923
2924
# File 'gems/aws-sdk-devicefarm/lib/aws-sdk-devicefarm/client.rb', line 2921

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

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

Gets information about tests.

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", "APPIUM_JAVA_JUNIT", "APPIUM_JAVA_TESTNG", "APPIUM_PYTHON", "APPIUM_WEB_JAVA_JUNIT", "APPIUM_WEB_JAVA_TESTNG", "APPIUM_WEB_PYTHON", "CALABASH", "INSTRUMENTATION", "UIAUTOMATION", "UIAUTOMATOR", "XCTEST", "XCTEST_UI"
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 tests' 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:



2992
2993
2994
2995
# File 'gems/aws-sdk-devicefarm/lib/aws-sdk-devicefarm/client.rb', line 2992

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



3078
3079
3080
3081
# File 'gems/aws-sdk-devicefarm/lib/aws-sdk-devicefarm/client.rb', line 3078

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
  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_WEB_JAVA_JUNIT_TEST_PACKAGE", "APPIUM_WEB_JAVA_TESTNG_TEST_PACKAGE", "APPIUM_WEB_PYTHON_TEST_PACKAGE", "CALABASH_TEST_PACKAGE", "INSTRUMENTATION_TEST_PACKAGE", "UIAUTOMATION_TEST_PACKAGE", "UIAUTOMATOR_TEST_PACKAGE", "XCTEST_TEST_PACKAGE", "XCTEST_UI_TEST_PACKAGE"
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.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.

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



3140
3141
3142
3143
# File 'gems/aws-sdk-devicefarm/lib/aws-sdk-devicefarm/client.rb', line 3140

def list_uploads(params = {}, options = {})
  req = build_request(:list_uploads, 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:



3230
3231
3232
3233
# File 'gems/aws-sdk-devicefarm/lib/aws-sdk-devicefarm/client.rb', line 3230

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:



3315
3316
3317
3318
# File 'gems/aws-sdk-devicefarm/lib/aws-sdk-devicefarm/client.rb', line 3315

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", # required
  name: "Name",
  test: { # required
    type: "BUILTIN_FUZZ", # required, accepts BUILTIN_FUZZ, BUILTIN_EXPLORER, APPIUM_JAVA_JUNIT, APPIUM_JAVA_TESTNG, APPIUM_PYTHON, APPIUM_WEB_JAVA_JUNIT, APPIUM_WEB_JAVA_TESTNG, APPIUM_WEB_PYTHON, CALABASH, INSTRUMENTATION, UIAUTOMATION, UIAUTOMATOR, XCTEST, XCTEST_UI
    test_package_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
    },
    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,
  },
})

Response structure


resp.run.arn #=> String
resp.run.name #=> String
resp.run.type #=> String, one of "BUILTIN_FUZZ", "BUILTIN_EXPLORER", "APPIUM_JAVA_JUNIT", "APPIUM_JAVA_TESTNG", "APPIUM_PYTHON", "APPIUM_WEB_JAVA_JUNIT", "APPIUM_WEB_JAVA_TESTNG", "APPIUM_WEB_PYTHON", "CALABASH", "INSTRUMENTATION", "UIAUTOMATION", "UIAUTOMATOR", "XCTEST", "XCTEST_UI"
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"
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

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 (required, String)

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

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



3463
3464
3465
3466
# File 'gems/aws-sdk-devicefarm/lib/aws-sdk-devicefarm/client.rb', line 3463

def schedule_run(params = {}, options = {})
  req = build_request(:schedule_run, 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.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.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.remote_debug_enabled #=> Boolean
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

Parameters:

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

    ({})

Options Hash (params):

  • :arn (required, String)

    The Amazon Resource Name (ARN) of the remote access session you wish to stop.

Returns:

See Also:



3529
3530
3531
3532
# File 'gems/aws-sdk-devicefarm/lib/aws-sdk-devicefarm/client.rb', line 3529

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

#stop_run(params = {}) ⇒ Types::StopRunResult

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

Examples:

Example: To stop a test run


# The following example stops a specific test run.

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

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

Request syntax with placeholder values


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

Response structure


resp.run.arn #=> String
resp.run.name #=> String
resp.run.type #=> String, one of "BUILTIN_FUZZ", "BUILTIN_EXPLORER", "APPIUM_JAVA_JUNIT", "APPIUM_JAVA_TESTNG", "APPIUM_PYTHON", "APPIUM_WEB_JAVA_JUNIT", "APPIUM_WEB_JAVA_TESTNG", "APPIUM_WEB_PYTHON", "CALABASH", "INSTRUMENTATION", "UIAUTOMATION", "UIAUTOMATOR", "XCTEST", "XCTEST_UI"
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"
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

Parameters:

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

    ({})

Options Hash (params):

  • :arn (required, String)

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

Returns:

See Also:



3621
3622
3623
3624
# File 'gems/aws-sdk-devicefarm/lib/aws-sdk-devicefarm/client.rb', line 3621

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

#update_device_pool(params = {}) ⇒ Types::UpdateDevicePoolResult

Modifies the name, description, and rules in a device pool given the attributes and the pool ARN. Rule updates are all-or-nothing, meaning they can only be updated as a whole (or not at all).

Examples:

Example: To update a device pool


# The following example updates the specified device pool with a new name and description. It also enables remote access
# of devices in the device pool.

resp = client.update_device_pool({
  name: "NewName", 
  arn: "arn:aws:devicefarm:us-west-2::devicepool:082d10e5-d7d7-48a5-ba5c-12345EXAMPLE", # You can get the Amazon Resource Name (ARN) of the device pool by using the list-pools CLI command.
  description: "NewDescription", 
  rules: [
    {
      value: "True", 
      attribute: "REMOTE_ACCESS_ENABLED", 
      operator: "EQUALS", 
    }, 
  ], 
})

resp.to_h outputs the following:
{
  device_pool: {
  }, # Note: you cannot update curated device pools.
}

Request syntax with placeholder values


resp = client.update_device_pool({
  arn: "AmazonResourceName", # required
  name: "Name",
  description: "Message",
  rules: [
    {
      attribute: "ARN", # accepts ARN, PLATFORM, FORM_FACTOR, MANUFACTURER, REMOTE_ACCESS_ENABLED, REMOTE_DEBUG_ENABLED, APPIUM_VERSION
      operator: "EQUALS", # accepts EQUALS, LESS_THAN, GREATER_THAN, IN, NOT_IN, CONTAINS
      value: "String",
    },
  ],
})

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"
resp.device_pool.rules[0].operator #=> String, one of "EQUALS", "LESS_THAN", "GREATER_THAN", "IN", "NOT_IN", "CONTAINS"
resp.device_pool.rules[0].value #=> String

Parameters:

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

    ({})

Options Hash (params):

  • :arn (required, String)

    The Amazon Resourc Name (ARN) of the Device Farm device pool you wish to update.

  • :name (String)

    A string representing the name of the device pool you wish to update.

  • :description (String)

    A description of the device pool you wish to update.

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

    Represents the rules you wish to modify for the device pool. Updating rules is optional; however, if you choose to update rules for your request, the update will replace the existing rules.

Returns:

See Also:



3704
3705
3706
3707
# File 'gems/aws-sdk-devicefarm/lib/aws-sdk-devicefarm/client.rb', line 3704

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

#update_network_profile(params = {}) ⇒ Types::UpdateNetworkProfileResult

Updates the network profile with specific settings.

Examples:

Request syntax with placeholder values


resp = client.update_network_profile({
  arn: "AmazonResourceName", # required
  name: "Name",
  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):

  • :arn (required, String)

    The Amazon Resource Name (ARN) of the project that you wish to update network profile settings.

  • :name (String)

    The name of the network profile about which you are returning information.

  • :description (String)

    The descriptoin of the network profile about which you are returning information.

  • :type (String)

    The type of network profile you wish to return information about. 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:



3799
3800
3801
3802
# File 'gems/aws-sdk-devicefarm/lib/aws-sdk-devicefarm/client.rb', line 3799

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

#update_project(params = {}) ⇒ Types::UpdateProjectResult

Modifies the specified project name, given the project ARN and a new name.

Examples:

Example: To update a device pool


# The following example updates the specified project with a new name.

resp = client.update_project({
  name: "NewName", 
  arn: "arn:aws:devicefarm:us-west-2:123456789101:project:8f75187d-101e-4625-accc-12345EXAMPLE", # You can get the Amazon Resource Name (ARN) of the project by using the list-projects CLI command.
})

resp.to_h outputs the following:
{
  project: {
    name: "NewName", 
    arn: "arn:aws:devicefarm:us-west-2:123456789101:project:8f75187d-101e-4625-accc-12345EXAMPLE", 
    created: Time.parse("1448400709.927"), 
  }, 
}

Request syntax with placeholder values


resp = client.update_project({
  arn: "AmazonResourceName", # required
  name: "Name",
  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):

  • :arn (required, String)

    The Amazon Resource Name (ARN) of the project whose name you wish to update.

  • :name (String)

    A string representing the new name of the project that you are updating.

  • :default_job_timeout_minutes (Integer)

    The number of minutes a test run in the project will execute before it times out.

Returns:

See Also:



3861
3862
3863
3864
# File 'gems/aws-sdk-devicefarm/lib/aws-sdk-devicefarm/client.rb', line 3861

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