You are viewing documentation for version 2 of the AWS SDK for Ruby. Version 3 documentation can be found here.
Class: Aws::DeviceFarm::Client
- Inherits:
-
Seahorse::Client::Base
- Object
- Seahorse::Client::Base
- Aws::DeviceFarm::Client
- Defined in:
- (unknown)
Overview
An API client for AWS Device Farm. To construct a client, you need to configure a :region
and :credentials
.
devicefarm = Aws::DeviceFarm::Client.new(
region: region_name,
credentials: credentials,
# ...
)
See #initialize for a full list of supported configuration options.
Region
You can configure a default region in the following locations:
ENV['AWS_REGION']
Aws.config[:region]
Go here for a list of supported regions.
Credentials
Default credentials are loaded automatically from the following locations:
ENV['AWS_ACCESS_KEY_ID']
andENV['AWS_SECRET_ACCESS_KEY']
Aws.config[:credentials]
- The shared credentials ini file at
~/.aws/credentials
(more information) - From an instance profile when running on EC2
You can also construct a credentials object from one of the following classes:
Alternatively, you configure credentials with :access_key_id
and
:secret_access_key
:
# load credentials from disk
creds = YAML.load(File.read('/path/to/secrets'))
Aws::DeviceFarm::Client.new(
access_key_id: creds['access_key_id'],
secret_access_key: creds['secret_access_key']
)
Always load your credentials from outside your application. Avoid configuring credentials statically and never commit them to source control.
Instance Attribute Summary
Attributes inherited from Seahorse::Client::Base
Constructor collapse
-
#initialize(options = {}) ⇒ Aws::DeviceFarm::Client
constructor
Constructs an API client.
API Operations collapse
-
#create_device_pool(options = {}) ⇒ Types::CreateDevicePoolResult
Creates a device pool.
.
-
#create_instance_profile(options = {}) ⇒ Types::CreateInstanceProfileResult
Creates a profile that can be applied to one or more private fleet device instances.
.
-
#create_network_profile(options = {}) ⇒ Types::CreateNetworkProfileResult
Creates a network profile.
.
-
#create_project(options = {}) ⇒ Types::CreateProjectResult
Creates a project.
.
-
#create_remote_access_session(options = {}) ⇒ Types::CreateRemoteAccessSessionResult
Specifies and starts a remote access session.
.
-
#create_test_grid_project(options = {}) ⇒ Types::CreateTestGridProjectResult
Creates a Selenium testing project.
-
#create_test_grid_url(options = {}) ⇒ Types::CreateTestGridUrlResult
Creates a signed, short-term URL that can be passed to a Selenium
RemoteWebDriver
constructor..
-
#create_upload(options = {}) ⇒ Types::CreateUploadResult
Uploads an app or test scripts.
.
-
#create_vpce_configuration(options = {}) ⇒ Types::CreateVPCEConfigurationResult
Creates a configuration record in Device Farm for your Amazon Virtual Private Cloud (VPC) endpoint.
.
-
#delete_device_pool(options = {}) ⇒ Struct
Deletes a device pool given the pool ARN.
-
#delete_instance_profile(options = {}) ⇒ Struct
Deletes a profile that can be applied to one or more private device instances.
.
-
#delete_network_profile(options = {}) ⇒ Struct
Deletes a network profile.
.
-
#delete_project(options = {}) ⇒ Struct
Deletes an AWS Device Farm project, given the project ARN.
Deleting this resource does not stop an in-progress run.
. -
#delete_remote_access_session(options = {}) ⇒ Struct
Deletes a completed remote access session and its results.
.
-
#delete_run(options = {}) ⇒ Struct
Deletes the run, given the run ARN.
Deleting this resource does not stop an in-progress run.
. -
#delete_test_grid_project(options = {}) ⇒ Struct
Deletes a Selenium testing project and all content generated under it.
-
#delete_upload(options = {}) ⇒ Struct
Deletes an upload given the upload ARN.
.
-
#delete_vpce_configuration(options = {}) ⇒ Struct
Deletes a configuration for your Amazon Virtual Private Cloud (VPC) endpoint.
.
-
#get_account_settings(options = {}) ⇒ Types::GetAccountSettingsResult
Returns the number of unmetered iOS or unmetered Android devices that have been purchased by the account.
.
-
#get_device(options = {}) ⇒ Types::GetDeviceResult
Gets information about a unique device type.
.
-
#get_device_instance(options = {}) ⇒ Types::GetDeviceInstanceResult
Returns information about a device instance that belongs to a private device fleet.
.
-
#get_device_pool(options = {}) ⇒ Types::GetDevicePoolResult
Gets information about a device pool.
.
-
#get_device_pool_compatibility(options = {}) ⇒ Types::GetDevicePoolCompatibilityResult
Gets information about compatibility with a device pool.
.
-
#get_instance_profile(options = {}) ⇒ Types::GetInstanceProfileResult
Returns information about the specified instance profile.
.
-
#get_job(options = {}) ⇒ Types::GetJobResult
Gets information about a job.
.
-
#get_network_profile(options = {}) ⇒ Types::GetNetworkProfileResult
Returns information about a network profile.
.
-
#get_offering_status(options = {}) ⇒ Types::GetOfferingStatusResult
Gets the current status and future status of all offerings purchased by an AWS account.
-
#get_project(options = {}) ⇒ Types::GetProjectResult
Gets information about a project.
.
-
#get_remote_access_session(options = {}) ⇒ Types::GetRemoteAccessSessionResult
Returns a link to a currently running remote access session.
.
-
#get_run(options = {}) ⇒ Types::GetRunResult
Gets information about a run.
.
-
#get_suite(options = {}) ⇒ Types::GetSuiteResult
Gets information about a suite.
.
-
#get_test(options = {}) ⇒ Types::GetTestResult
Gets information about a test.
.
-
#get_test_grid_project(options = {}) ⇒ Types::GetTestGridProjectResult
Retrieves information about a Selenium testing project.
.
-
#get_test_grid_session(options = {}) ⇒ Types::GetTestGridSessionResult
A session is an instance of a browser created through a
RemoteWebDriver
with the URL from CreateTestGridUrlResult$url. -
#get_upload(options = {}) ⇒ Types::GetUploadResult
Gets information about an upload.
.
-
#get_vpce_configuration(options = {}) ⇒ Types::GetVPCEConfigurationResult
Returns information about the configuration settings for your Amazon Virtual Private Cloud (VPC) endpoint.
.
-
#install_to_remote_access_session(options = {}) ⇒ Types::InstallToRemoteAccessSessionResult
Installs an application to the device in a remote access session.
-
#list_artifacts(options = {}) ⇒ Types::ListArtifactsResult
Gets information about artifacts.
.
-
#list_device_instances(options = {}) ⇒ Types::ListDeviceInstancesResult
Returns information about the private device instances associated with one or more AWS accounts.
.
-
#list_device_pools(options = {}) ⇒ Types::ListDevicePoolsResult
Gets information about device pools.
.
-
#list_devices(options = {}) ⇒ Types::ListDevicesResult
Gets information about unique device types.
.
-
#list_instance_profiles(options = {}) ⇒ Types::ListInstanceProfilesResult
Returns information about all the instance profiles in an AWS account.
.
-
#list_jobs(options = {}) ⇒ Types::ListJobsResult
Gets information about jobs for a given test run.
.
-
#list_network_profiles(options = {}) ⇒ Types::ListNetworkProfilesResult
Returns the list of available network profiles.
.
-
#list_offering_promotions(options = {}) ⇒ Types::ListOfferingPromotionsResult
Returns a list of offering promotions.
-
#list_offering_transactions(options = {}) ⇒ Types::ListOfferingTransactionsResult
Returns a list of all historical purchases, renewals, and system renewal transactions for an AWS account.
-
#list_offerings(options = {}) ⇒ Types::ListOfferingsResult
Returns a list of products or offerings that the user can manage through the API.
-
#list_projects(options = {}) ⇒ Types::ListProjectsResult
Gets information about projects.
.
-
#list_remote_access_sessions(options = {}) ⇒ Types::ListRemoteAccessSessionsResult
Returns a list of all currently running remote access sessions.
.
-
#list_runs(options = {}) ⇒ Types::ListRunsResult
Gets information about runs, given an AWS Device Farm project ARN.
.
-
#list_samples(options = {}) ⇒ Types::ListSamplesResult
Gets information about samples, given an AWS Device Farm job ARN.
.
-
#list_suites(options = {}) ⇒ Types::ListSuitesResult
Gets information about test suites for a given job.
.
-
#list_tags_for_resource(options = {}) ⇒ Types::ListTagsForResourceResponse
List the tags for an AWS Device Farm resource.
.
-
#list_test_grid_projects(options = {}) ⇒ Types::ListTestGridProjectsResult
Gets a list of all Selenium testing projects in your account.
.
-
#list_test_grid_session_actions(options = {}) ⇒ Types::ListTestGridSessionActionsResult
Returns a list of the actions taken in a TestGridSession.
.
-
#list_test_grid_session_artifacts(options = {}) ⇒ Types::ListTestGridSessionArtifactsResult
Retrieves a list of artifacts created during the session.
.
-
#list_test_grid_sessions(options = {}) ⇒ Types::ListTestGridSessionsResult
Retrieves a list of sessions for a TestGridProject.
.
-
#list_tests(options = {}) ⇒ Types::ListTestsResult
Gets information about tests in a given test suite.
.
-
#list_unique_problems(options = {}) ⇒ Types::ListUniqueProblemsResult
Gets information about unique problems, such as exceptions or crashes.
Unique problems are defined as a single instance of an error across a run, job, or suite.
-
#list_uploads(options = {}) ⇒ Types::ListUploadsResult
Gets information about uploads, given an AWS Device Farm project ARN.
.
-
#list_vpce_configurations(options = {}) ⇒ Types::ListVPCEConfigurationsResult
Returns information about all Amazon Virtual Private Cloud (VPC) endpoint configurations in the AWS account.
.
-
#purchase_offering(options = {}) ⇒ Types::PurchaseOfferingResult
Immediately purchases offerings for an AWS account.
-
#renew_offering(options = {}) ⇒ Types::RenewOfferingResult
Explicitly sets the quantity of devices to renew for an offering, starting from the
effectiveDate
of the next period. -
#schedule_run(options = {}) ⇒ Types::ScheduleRunResult
Schedules a run.
.
-
#stop_job(options = {}) ⇒ Types::StopJobResult
Initiates a stop request for the current job.
-
#stop_remote_access_session(options = {}) ⇒ Types::StopRemoteAccessSessionResult
Ends a specified remote access session.
.
-
#stop_run(options = {}) ⇒ Types::StopRunResult
Initiates a stop request for the current test run.
-
#tag_resource(options = {}) ⇒ Struct
Associates the specified tags to a resource with the specified
resourceArn
. -
#untag_resource(options = {}) ⇒ Struct
Deletes the specified tags from a resource.
.
-
#update_device_instance(options = {}) ⇒ Types::UpdateDeviceInstanceResult
Updates information about a private device instance.
.
-
#update_device_pool(options = {}) ⇒ Types::UpdateDevicePoolResult
Modifies the name, description, and rules in a device pool given the attributes and the pool ARN.
-
#update_instance_profile(options = {}) ⇒ Types::UpdateInstanceProfileResult
Updates information about an existing private device instance profile.
.
-
#update_network_profile(options = {}) ⇒ Types::UpdateNetworkProfileResult
Updates the network profile.
.
-
#update_project(options = {}) ⇒ Types::UpdateProjectResult
Modifies the specified project name, given the project ARN and a new name.
.
-
#update_test_grid_project(options = {}) ⇒ Types::UpdateTestGridProjectResult
Change details of a project.
.
-
#update_upload(options = {}) ⇒ Types::UpdateUploadResult
Updates an uploaded test spec.
.
-
#update_vpce_configuration(options = {}) ⇒ Types::UpdateVPCEConfigurationResult
Updates information about an Amazon Virtual Private Cloud (VPC) endpoint configuration.
.
Instance Method Summary collapse
-
#wait_until(waiter_name, params = {}) {|waiter| ... } ⇒ Boolean
Waiters polls an API operation until a resource enters a desired state.
-
#waiter_names ⇒ Array<Symbol>
Returns the list of supported waiters.
Methods inherited from Seahorse::Client::Base
add_plugin, api, #build_request, clear_plugins, define, new, #operation, #operation_names, plugins, remove_plugin, set_api, set_plugins
Methods included from Seahorse::Client::HandlerBuilder
#handle, #handle_request, #handle_response
Constructor Details
#initialize(options = {}) ⇒ Aws::DeviceFarm::Client
Constructs an API client.
Options Hash (options):
-
:access_key_id
(String)
—
Used to set credentials statically. See Plugins::RequestSigner for more details.
-
:active_endpoint_cache
(Boolean)
—
When set to
true
, a thread polling for endpoints will be running in the background every 60 secs (default). Defaults tofalse
. See Plugins::EndpointDiscovery for more details. -
:convert_params
(Boolean)
— default:
true
—
When
true
, an attempt is made to coerce request parameters into the required types. See Plugins::ParamConverter for more details. -
:credentials
(required, Credentials)
—
Your AWS credentials. The following locations will be searched in order for credentials:
:access_key_id
,:secret_access_key
, and:session_token
options- ENV['AWS_ACCESS_KEY_ID'], ENV['AWS_SECRET_ACCESS_KEY']
HOME/.aws/credentials
shared credentials file- EC2 instance profile credentials See Plugins::RequestSigner for more details.
-
:disable_host_prefix_injection
(Boolean)
—
Set to true to disable SDK automatically adding host prefix to default service endpoint when available. See Plugins::EndpointPattern for more details.
-
:endpoint
(String)
—
A default endpoint is constructed from the
:region
. See Plugins::RegionalEndpoint for more details. -
:endpoint_cache_max_entries
(Integer)
—
Used for the maximum size limit of the LRU cache storing endpoints data for endpoint discovery enabled operations. Defaults to 1000. See Plugins::EndpointDiscovery for more details.
-
:endpoint_cache_max_threads
(Integer)
—
Used for the maximum threads in use for polling endpoints to be cached, defaults to 10. See Plugins::EndpointDiscovery for more details.
-
:endpoint_cache_poll_interval
(Integer)
—
When :endpoint_discovery and :active_endpoint_cache is enabled, Use this option to config the time interval in seconds for making requests fetching endpoints information. Defaults to 60 sec. See Plugins::EndpointDiscovery for more details.
-
:endpoint_discovery
(Boolean)
—
When set to
true
, endpoint discovery will be enabled for operations when available. Defaults tofalse
. See Plugins::EndpointDiscovery for more details. -
:http_continue_timeout
(Float)
— default:
1
—
See Seahorse::Client::Plugins::NetHttp for more details.
-
:http_idle_timeout
(Integer)
— default:
5
—
See Seahorse::Client::Plugins::NetHttp for more details.
-
:http_open_timeout
(Integer)
— default:
15
—
See Seahorse::Client::Plugins::NetHttp for more details.
-
:http_proxy
(String)
—
See Seahorse::Client::Plugins::NetHttp for more details.
-
:http_read_timeout
(Integer)
— default:
60
—
See Seahorse::Client::Plugins::NetHttp for more details.
-
:http_wire_trace
(Boolean)
— default:
false
—
See Seahorse::Client::Plugins::NetHttp for more details.
-
:log_level
(Symbol)
— default:
:info
—
The log level to send messages to the logger at. See Plugins::Logging for more details.
-
:log_formatter
(Logging::LogFormatter)
—
The log formatter. Defaults to Seahorse::Client::Logging::Formatter.default. See Plugins::Logging for more details.
-
:logger
(Logger)
— default:
nil
—
The Logger instance to send log messages to. If this option is not set, logging will be disabled. See Plugins::Logging for more details.
-
:profile
(String)
—
Used when loading credentials from the shared credentials file at HOME/.aws/credentials. When not specified, 'default' is used. See Plugins::RequestSigner for more details.
-
:raise_response_errors
(Boolean)
— default:
true
—
When
true
, response errors are raised. See Seahorse::Client::Plugins::RaiseResponseErrors for more details. -
:region
(required, String)
—
The AWS region to connect to. The region is used to construct the client endpoint. Defaults to
ENV['AWS_REGION']
. Also checksAMAZON_REGION
andAWS_DEFAULT_REGION
. See Plugins::RegionalEndpoint for more details. -
:retry_limit
(Integer)
— default:
3
—
The maximum number of times to retry failed requests. Only ~ 500 level server errors and certain ~ 400 level client errors are retried. Generally, these are throttling errors, data checksum errors, networking errors, timeout errors and auth errors from expired credentials. See Plugins::RetryErrors for more details.
-
:secret_access_key
(String)
—
Used to set credentials statically. See Plugins::RequestSigner for more details.
-
:session_token
(String)
—
Used to set credentials statically. See Plugins::RequestSigner for more details.
-
:simple_json
(Boolean)
— default:
false
—
Disables request parameter conversion, validation, and formatting. Also disable response data type conversions. This option is useful when you want to ensure the highest level of performance by avoiding overhead of walking request parameters and response data structures.
When
:simple_json
is enabled, the request parameters hash must be formatted exactly as the DynamoDB API expects. See Plugins::Protocols::JsonRpc for more details. -
:ssl_ca_bundle
(String)
—
See Seahorse::Client::Plugins::NetHttp for more details.
-
:ssl_ca_directory
(String)
—
See Seahorse::Client::Plugins::NetHttp for more details.
-
:ssl_ca_store
(String)
—
See Seahorse::Client::Plugins::NetHttp for more details.
-
:ssl_verify_peer
(Boolean)
— default:
true
—
See Seahorse::Client::Plugins::NetHttp for more details.
-
:stub_responses
(Boolean)
— default:
false
—
Causes the client to return stubbed responses. By default fake responses are generated and returned. You can specify the response data to return or errors to raise by calling ClientStubs#stub_responses. See ClientStubs for more information.
Please note When response stubbing is enabled, no HTTP requests are made, and retries are disabled. See Plugins::StubResponses for more details.
-
:validate_params
(Boolean)
— default:
true
—
When
true
, request parameters are validated before sending the request. See Plugins::ParamValidator for more details.
Instance Method Details
#create_device_pool(options = {}) ⇒ Types::CreateDevicePoolResult
Creates a device pool.
Examples:
Example: To create a new device pool
# The following example creates a new device pool named MyDevicePool inside an existing project.
resp = client.create_device_pool({
name: "MyDevicePool", # A device pool contains related devices, such as devices that run only on Android or that run only on iOS.
description: "My Android devices",
project_arn: "arn:aws:devicefarm:us-west-2:123456789101:project:EXAMPLE-GUID-123-456", # You can get the project ARN by using the list-projects CLI command.
rules: [
],
})
# resp.to_h outputs the following:
{
device_pool: {
},
}
Request syntax with placeholder values
resp = client.create_device_pool({
project_arn: "AmazonResourceName", # required
name: "Name", # required
description: "Message",
rules: [ # required
{
attribute: "ARN", # accepts ARN, PLATFORM, FORM_FACTOR, MANUFACTURER, REMOTE_ACCESS_ENABLED, REMOTE_DEBUG_ENABLED, APPIUM_VERSION, INSTANCE_ARN, INSTANCE_LABELS, FLEET_TYPE, OS_VERSION, MODEL, AVAILABILITY
operator: "EQUALS", # accepts EQUALS, LESS_THAN, LESS_THAN_OR_EQUALS, GREATER_THAN, GREATER_THAN_OR_EQUALS, IN, NOT_IN, CONTAINS
value: "String",
},
],
max_devices: 1,
})
Response structure
resp.device_pool.arn #=> String
resp.device_pool.name #=> String
resp.device_pool.description #=> String
resp.device_pool.type #=> String, one of "CURATED", "PRIVATE"
resp.device_pool.rules #=> Array
resp.device_pool.rules[0].attribute #=> String, one of "ARN", "PLATFORM", "FORM_FACTOR", "MANUFACTURER", "REMOTE_ACCESS_ENABLED", "REMOTE_DEBUG_ENABLED", "APPIUM_VERSION", "INSTANCE_ARN", "INSTANCE_LABELS", "FLEET_TYPE", "OS_VERSION", "MODEL", "AVAILABILITY"
resp.device_pool.rules[0].operator #=> String, one of "EQUALS", "LESS_THAN", "LESS_THAN_OR_EQUALS", "GREATER_THAN", "GREATER_THAN_OR_EQUALS", "IN", "NOT_IN", "CONTAINS"
resp.device_pool.rules[0].value #=> String
resp.device_pool.max_devices #=> Integer
Options Hash (options):
-
:project_arn
(required, String)
—
The ARN of the project for the device pool.
-
:name
(required, String)
—
The device pool\'s name.
-
:description
(String)
—
The device pool\'s description.
-
:rules
(required, Array<Types::Rule>)
—
The device pool\'s rules.
-
:max_devices
(Integer)
—
The number of devices that Device Farm can add to your device pool. Device Farm adds devices that are available and meet the criteria that you assign for the
rules
parameter. Depending on how many devices meet these constraints, your device pool might contain fewer devices than the value for this parameter.By specifying the maximum number of devices, you can control the costs that you incur by running tests.
Returns:
-
(Types::CreateDevicePoolResult)
—
Returns a response object which responds to the following methods:
See Also:
#create_instance_profile(options = {}) ⇒ Types::CreateInstanceProfileResult
Creates a profile that can be applied to one or more private fleet device instances.
Examples:
Request syntax with placeholder values
resp = client.create_instance_profile({
name: "Name", # required
description: "Message",
package_cleanup: false,
exclude_app_packages_from_cleanup: ["String"],
reboot_after_use: false,
})
Response structure
resp.instance_profile.arn #=> String
resp.instance_profile.package_cleanup #=> true/false
resp.instance_profile.exclude_app_packages_from_cleanup #=> Array
resp.instance_profile.exclude_app_packages_from_cleanup[0] #=> String
resp.instance_profile.reboot_after_use #=> true/false
resp.instance_profile.name #=> String
resp.instance_profile.description #=> String
Options Hash (options):
-
:name
(required, String)
—
The name of your instance profile.
-
:description
(String)
—
The description of your instance profile.
-
:package_cleanup
(Boolean)
—
When set to
true
, Device Farm removes app packages after a test run. The default value isfalse
for private devices. -
:exclude_app_packages_from_cleanup
(Array<String>)
—
An array of strings that specifies the list of app packages that should not be cleaned up from the device after a test run.
The list of packages is considered only if you set
packageCleanup
totrue
. -
:reboot_after_use
(Boolean)
—
When set to
true
, Device Farm reboots the instance after a test run. The default value istrue
.
Returns:
-
(Types::CreateInstanceProfileResult)
—
Returns a response object which responds to the following methods:
See Also:
#create_network_profile(options = {}) ⇒ 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
Options Hash (options):
-
: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 for the new network profile.
-
:description
(String)
—
The description of the network profile.
-
:type
(String)
—
The type of network profile to create. Valid values are listed here.
-
: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:
-
(Types::CreateNetworkProfileResult)
—
Returns a response object which responds to the following methods:
See Also:
#create_project(options = {}) ⇒ Types::CreateProjectResult
Creates a 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
Options Hash (options):
-
: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 use the specified execution timeout value unless overridden when scheduling a run.
Returns:
-
(Types::CreateProjectResult)
—
Returns a response object which responds to the following methods:
See Also:
#create_remote_access_session(options = {}) ⇒ Types::CreateRemoteAccessSessionResult
Specifies and starts a remote access session.
Examples:
Example: To create a remote access session
# The following example creates a remote access session named MySession.
resp = client.create_remote_access_session({
name: "MySession",
configuration: {
billing_method: "METERED",
},
device_arn: "arn:aws:devicefarm:us-west-2::device:123EXAMPLE", # You can get the device ARN by using the list-devices CLI command.
project_arn: "arn:aws:devicefarm:us-west-2:123456789101:project:EXAMPLE-GUID-123-456", # You can get the project ARN by using the list-projects CLI command.
})
# resp.to_h outputs the following:
{
remote_access_session: {
},
}
Request syntax with placeholder values
resp = client.create_remote_access_session({
project_arn: "AmazonResourceName", # required
device_arn: "AmazonResourceName", # required
instance_arn: "AmazonResourceName",
ssh_public_key: "SshPublicKey",
remote_debug_enabled: false,
remote_record_enabled: false,
remote_record_app_arn: "AmazonResourceName",
name: "Name",
client_id: "ClientId",
configuration: {
billing_method: "METERED", # accepts METERED, UNMETERED
vpce_configuration_arns: ["AmazonResourceName"],
},
interaction_mode: "INTERACTIVE", # accepts INTERACTIVE, NO_VIDEO, VIDEO_ONLY
skip_app_resign: false,
})
Response structure
resp.remote_access_session.arn #=> String
resp.remote_access_session.name #=> String
resp.remote_access_session.created #=> Time
resp.remote_access_session.status #=> String, one of "PENDING", "PENDING_CONCURRENCY", "PENDING_DEVICE", "PROCESSING", "SCHEDULING", "PREPARING", "RUNNING", "COMPLETED", "STOPPING"
resp.remote_access_session.result #=> String, one of "PENDING", "PASSED", "WARNED", "FAILED", "SKIPPED", "ERRORED", "STOPPED"
resp.remote_access_session.message #=> String
resp.remote_access_session.started #=> Time
resp.remote_access_session.stopped #=> Time
resp.remote_access_session.device.arn #=> String
resp.remote_access_session.device.name #=> String
resp.remote_access_session.device.manufacturer #=> String
resp.remote_access_session.device.model #=> String
resp.remote_access_session.device.model_id #=> String
resp.remote_access_session.device.form_factor #=> String, one of "PHONE", "TABLET"
resp.remote_access_session.device.platform #=> String, one of "ANDROID", "IOS"
resp.remote_access_session.device.os #=> String
resp.remote_access_session.device.cpu.frequency #=> String
resp.remote_access_session.device.cpu.architecture #=> String
resp.remote_access_session.device.cpu.clock #=> Float
resp.remote_access_session.device.resolution.width #=> Integer
resp.remote_access_session.device.resolution.height #=> Integer
resp.remote_access_session.device.heap_size #=> Integer
resp.remote_access_session.device.memory #=> Integer
resp.remote_access_session.device.image #=> String
resp.remote_access_session.device.carrier #=> String
resp.remote_access_session.device.radio #=> String
resp.remote_access_session.device.remote_access_enabled #=> true/false
resp.remote_access_session.device.remote_debug_enabled #=> true/false
resp.remote_access_session.device.fleet_type #=> String
resp.remote_access_session.device.fleet_name #=> String
resp.remote_access_session.device.instances #=> Array
resp.remote_access_session.device.instances[0].arn #=> String
resp.remote_access_session.device.instances[0].device_arn #=> String
resp.remote_access_session.device.instances[0].labels #=> Array
resp.remote_access_session.device.instances[0].labels[0] #=> String
resp.remote_access_session.device.instances[0].status #=> String, one of "IN_USE", "PREPARING", "AVAILABLE", "NOT_AVAILABLE"
resp.remote_access_session.device.instances[0].udid #=> String
resp.remote_access_session.device.instances[0].instance_profile.arn #=> String
resp.remote_access_session.device.instances[0].instance_profile.package_cleanup #=> true/false
resp.remote_access_session.device.instances[0].instance_profile.exclude_app_packages_from_cleanup #=> Array
resp.remote_access_session.device.instances[0].instance_profile.exclude_app_packages_from_cleanup[0] #=> String
resp.remote_access_session.device.instances[0].instance_profile.reboot_after_use #=> true/false
resp.remote_access_session.device.instances[0].instance_profile.name #=> String
resp.remote_access_session.device.instances[0].instance_profile.description #=> String
resp.remote_access_session.device.availability #=> String, one of "TEMPORARY_NOT_AVAILABLE", "BUSY", "AVAILABLE", "HIGHLY_AVAILABLE"
resp.remote_access_session.instance_arn #=> String
resp.remote_access_session.remote_debug_enabled #=> true/false
resp.remote_access_session.remote_record_enabled #=> true/false
resp.remote_access_session.remote_record_app_arn #=> String
resp.remote_access_session.host_address #=> String
resp.remote_access_session.client_id #=> String
resp.remote_access_session.billing_method #=> String, one of "METERED", "UNMETERED"
resp.remote_access_session.device_minutes.total #=> Float
resp.remote_access_session.device_minutes.metered #=> Float
resp.remote_access_session.device_minutes.unmetered #=> Float
resp.remote_access_session.endpoint #=> String
resp.remote_access_session.device_udid #=> String
resp.remote_access_session.interaction_mode #=> String, one of "INTERACTIVE", "NO_VIDEO", "VIDEO_ONLY"
resp.remote_access_session.skip_app_resign #=> true/false
Options Hash (options):
-
: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 ARN of the device for which you want to create a remote access session.
-
:instance_arn
(String)
—
The Amazon Resource Name (ARN) of the device instance for which you want to create a remote access session.
-
:ssh_public_key
(String)
—
Ignored. The public key of the
ssh
key pair you want to use for connecting to remote devices in your remote debugging session. This key is required only ifremoteDebugEnabled
is set totrue
.Remote debugging is no longer supported.
-
:remote_debug_enabled
(Boolean)
—
Set to
true
if you want to access devices remotely for debugging in your remote access session.Remote debugging is no longer supported.
-
:remote_record_enabled
(Boolean)
—
Set to
true
to enable remote recording for the remote access session. -
:remote_record_app_arn
(String)
—
The Amazon Resource Name (ARN) for the app to be recorded in the remote access session.
-
:name
(String)
—
The name of the remote access session 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 toCreateRemoteAccessSession
. This identifier is required only ifremoteDebugEnabled
is set totrue
.Remote debugging is no longer supported.
-
:configuration
(Types::CreateRemoteAccessSessionConfiguration)
—
The configuration information for the remote access session request.
-
:interaction_mode
(String)
—
The interaction mode of the remote access session. Valid values are:
INTERACTIVE: You can interact with the iOS device by viewing, touching, and rotating the screen. You cannot run XCUITest framework-based tests in this mode.
NO_VIDEO: You are connected to the device, but cannot interact with it or view the screen. This mode has the fastest test execution speed. You can run XCUITest framework-based tests in this mode.
VIDEO_ONLY: You can view the screen, but cannot touch or rotate it. You can run XCUITest framework-based tests and watch the screen in this mode.
-
:skip_app_resign
(Boolean)
—
When set to
true
, for private devices, Device Farm does not sign your app again. For public devices, Device Farm always signs your apps again.For more information on how Device Farm modifies your uploads during tests, see Do you modify my app?
Returns:
-
(Types::CreateRemoteAccessSessionResult)
—
Returns a response object which responds to the following methods:
See Also:
#create_test_grid_project(options = {}) ⇒ Types::CreateTestGridProjectResult
Creates a Selenium testing project. Projects are used to track TestGridSession instances.
Examples:
Request syntax with placeholder values
resp = client.create_test_grid_project({
name: "ResourceName", # required
description: "ResourceDescription",
})
Response structure
resp.test_grid_project.arn #=> String
resp.test_grid_project.name #=> String
resp.test_grid_project.description #=> String
resp.test_grid_project.created #=> Time
Options Hash (options):
-
:name
(required, String)
—
Human-readable name of the Selenium testing project.
-
:description
(String)
—
Human-readable description of the project.
Returns:
-
(Types::CreateTestGridProjectResult)
—
Returns a response object which responds to the following methods:
See Also:
#create_test_grid_url(options = {}) ⇒ Types::CreateTestGridUrlResult
Creates a signed, short-term URL that can be passed to a Selenium RemoteWebDriver
constructor.
Examples:
Request syntax with placeholder values
resp = client.create_test_grid_url({
project_arn: "DeviceFarmArn", # required
expires_in_seconds: 1, # required
})
Response structure
resp.url #=> String
resp.expires #=> Time
Options Hash (options):
-
:project_arn
(required, String)
—
ARN (from CreateTestGridProject or ListTestGridProjects) to associate with the short-term URL.
-
:expires_in_seconds
(required, Integer)
—
Lifetime, in seconds, of the URL.
Returns:
See Also:
#create_upload(options = {}) ⇒ Types::CreateUploadResult
Uploads an app or test scripts.
Examples:
Example: To create a new test package upload
# The following example creates a new Appium Python test package upload inside an existing project.
resp = client.create_upload({
name: "MyAppiumPythonUpload",
type: "APPIUM_PYTHON_TEST_PACKAGE",
project_arn: "arn:aws:devicefarm:us-west-2:123456789101:project:EXAMPLE-GUID-123-456", # You can get the project ARN by using the list-projects CLI command.
})
# resp.to_h outputs the following:
{
upload: {
name: "MyAppiumPythonUpload",
type: "APPIUM_PYTHON_TEST_PACKAGE",
arn: "arn:aws:devicefarm:us-west-2:123456789101:upload:5e01a8c7-c861-4c0a-b1d5-5ec6e6c6dd23/b5340a65-3da7-4da6-a26e-12345EXAMPLE",
created: Time.parse("1472661404.186"),
status: "INITIALIZED",
url: "https://prod-us-west-2-uploads.s3-us-west-2.amazonaws.com/arn%3Aaws%3Adevicefarm%3Aus-west-2%3A123456789101%3Aproject%3A5e01a8c7-c861-4c0a-b1d5-12345EXAMPLE/uploads/arn%3Aaws%3Adevicefarm%3Aus-west-2%3A123456789101%3Aupload%3A5e01a8c7-c861-4c0a-b1d5-5ec6e6c6dd23/b5340a65-3da7-4da6-a26e-12345EXAMPLE/MyAppiumPythonUpload?AWSAccessKeyId=1234567891011EXAMPLE&Expires=1472747804&Signature=1234567891011EXAMPLE",
},
}
Request syntax with placeholder values
resp = client.create_upload({
project_arn: "AmazonResourceName", # required
name: "Name", # required
type: "ANDROID_APP", # required, accepts ANDROID_APP, IOS_APP, WEB_APP, EXTERNAL_DATA, APPIUM_JAVA_JUNIT_TEST_PACKAGE, APPIUM_JAVA_TESTNG_TEST_PACKAGE, APPIUM_PYTHON_TEST_PACKAGE, APPIUM_NODE_TEST_PACKAGE, APPIUM_RUBY_TEST_PACKAGE, APPIUM_WEB_JAVA_JUNIT_TEST_PACKAGE, APPIUM_WEB_JAVA_TESTNG_TEST_PACKAGE, APPIUM_WEB_PYTHON_TEST_PACKAGE, APPIUM_WEB_NODE_TEST_PACKAGE, APPIUM_WEB_RUBY_TEST_PACKAGE, CALABASH_TEST_PACKAGE, INSTRUMENTATION_TEST_PACKAGE, UIAUTOMATION_TEST_PACKAGE, UIAUTOMATOR_TEST_PACKAGE, XCTEST_TEST_PACKAGE, XCTEST_UI_TEST_PACKAGE, APPIUM_JAVA_JUNIT_TEST_SPEC, APPIUM_JAVA_TESTNG_TEST_SPEC, APPIUM_PYTHON_TEST_SPEC, APPIUM_NODE_TEST_SPEC, APPIUM_RUBY_TEST_SPEC, APPIUM_WEB_JAVA_JUNIT_TEST_SPEC, APPIUM_WEB_JAVA_TESTNG_TEST_SPEC, APPIUM_WEB_PYTHON_TEST_SPEC, APPIUM_WEB_NODE_TEST_SPEC, APPIUM_WEB_RUBY_TEST_SPEC, INSTRUMENTATION_TEST_SPEC, XCTEST_UI_TEST_SPEC
content_type: "ContentType",
})
Response structure
resp.upload.arn #=> String
resp.upload.name #=> String
resp.upload.created #=> Time
resp.upload.type #=> String, one of "ANDROID_APP", "IOS_APP", "WEB_APP", "EXTERNAL_DATA", "APPIUM_JAVA_JUNIT_TEST_PACKAGE", "APPIUM_JAVA_TESTNG_TEST_PACKAGE", "APPIUM_PYTHON_TEST_PACKAGE", "APPIUM_NODE_TEST_PACKAGE", "APPIUM_RUBY_TEST_PACKAGE", "APPIUM_WEB_JAVA_JUNIT_TEST_PACKAGE", "APPIUM_WEB_JAVA_TESTNG_TEST_PACKAGE", "APPIUM_WEB_PYTHON_TEST_PACKAGE", "APPIUM_WEB_NODE_TEST_PACKAGE", "APPIUM_WEB_RUBY_TEST_PACKAGE", "CALABASH_TEST_PACKAGE", "INSTRUMENTATION_TEST_PACKAGE", "UIAUTOMATION_TEST_PACKAGE", "UIAUTOMATOR_TEST_PACKAGE", "XCTEST_TEST_PACKAGE", "XCTEST_UI_TEST_PACKAGE", "APPIUM_JAVA_JUNIT_TEST_SPEC", "APPIUM_JAVA_TESTNG_TEST_SPEC", "APPIUM_PYTHON_TEST_SPEC", "APPIUM_NODE_TEST_SPEC", "APPIUM_RUBY_TEST_SPEC", "APPIUM_WEB_JAVA_JUNIT_TEST_SPEC", "APPIUM_WEB_JAVA_TESTNG_TEST_SPEC", "APPIUM_WEB_PYTHON_TEST_SPEC", "APPIUM_WEB_NODE_TEST_SPEC", "APPIUM_WEB_RUBY_TEST_SPEC", "INSTRUMENTATION_TEST_SPEC", "XCTEST_UI_TEST_SPEC"
resp.upload.status #=> String, one of "INITIALIZED", "PROCESSING", "SUCCEEDED", "FAILED"
resp.upload.url #=> String
resp.upload.metadata #=> String
resp.upload.content_type #=> String
resp.upload.message #=> String
resp.upload.category #=> String, one of "CURATED", "PRIVATE"
Options Hash (options):
-
: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 any forward slashes (
/
). If you are uploading an iOS app, the file name must end with the.ipa
extension. If you are uploading an Android app, the file name must end with the.apk
extension. For all others, the file name must end with the.zip
file extension. -
:type
(required, String)
—
The upload\'s upload type.
Must be one of the following values:
ANDROID_APP
IOS_APP
WEB_APP
EXTERNAL_DATA
APPIUM_JAVA_JUNIT_TEST_PACKAGE
APPIUM_JAVA_TESTNG_TEST_PACKAGE
APPIUM_PYTHON_TEST_PACKAGE
APPIUM_NODE_TEST_PACKAGE
APPIUM_RUBY_TEST_PACKAGE
APPIUM_WEB_JAVA_JUNIT_TEST_PACKAGE
APPIUM_WEB_JAVA_TESTNG_TEST_PACKAGE
APPIUM_WEB_PYTHON_TEST_PACKAGE
APPIUM_WEB_NODE_TEST_PACKAGE
APPIUM_WEB_RUBY_TEST_PACKAGE
CALABASH_TEST_PACKAGE
INSTRUMENTATION_TEST_PACKAGE
UIAUTOMATION_TEST_PACKAGE
UIAUTOMATOR_TEST_PACKAGE
XCTEST_TEST_PACKAGE
XCTEST_UI_TEST_PACKAGE
APPIUM_JAVA_JUNIT_TEST_SPEC
APPIUM_JAVA_TESTNG_TEST_SPEC
APPIUM_PYTHON_TEST_SPEC
APPIUM_NODE_TEST_SPEC
APPIUM_RUBY_TEST_SPEC
APPIUM_WEB_JAVA_JUNIT_TEST_SPEC
APPIUM_WEB_JAVA_TESTNG_TEST_SPEC
APPIUM_WEB_PYTHON_TEST_SPEC
APPIUM_WEB_NODE_TEST_SPEC
APPIUM_WEB_RUBY_TEST_SPEC
INSTRUMENTATION_TEST_SPEC
XCTEST_UI_TEST_SPEC
If you call
CreateUpload
withWEB_APP
specified, AWS Device Farm throws anArgumentException
error. -
:content_type
(String)
—
The upload\'s content type (for example,
application/octet-stream
).
Returns:
-
(Types::CreateUploadResult)
—
Returns a response object which responds to the following methods:
See Also:
#create_vpce_configuration(options = {}) ⇒ Types::CreateVPCEConfigurationResult
Creates a configuration record in Device Farm for your Amazon Virtual Private Cloud (VPC) endpoint.
Examples:
Request syntax with placeholder values
resp = client.create_vpce_configuration({
vpce_configuration_name: "VPCEConfigurationName", # required
vpce_service_name: "VPCEServiceName", # required
service_dns_name: "ServiceDnsName", # required
vpce_configuration_description: "VPCEConfigurationDescription",
})
Response structure
resp.vpce_configuration.arn #=> String
resp.vpce_configuration.vpce_configuration_name #=> String
resp.vpce_configuration.vpce_service_name #=> String
resp.vpce_configuration.service_dns_name #=> String
resp.vpce_configuration.vpce_configuration_description #=> String
Options Hash (options):
-
:vpce_configuration_name
(required, String)
—
The friendly name you give to your VPC endpoint configuration, to manage your configurations more easily.
-
:vpce_service_name
(required, String)
—
The name of the VPC endpoint service running in your AWS account that you want Device Farm to test.
-
:service_dns_name
(required, String)
—
The DNS name of the service running in your VPC that you want Device Farm to test.
-
:vpce_configuration_description
(String)
—
An optional description that provides details about your VPC endpoint configuration.
Returns:
-
(Types::CreateVPCEConfigurationResult)
—
Returns a response object which responds to the following methods:
See Also:
#delete_device_pool(options = {}) ⇒ 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
})
Options Hash (options):
-
:arn
(required, String)
—
Represents the Amazon Resource Name (ARN) of the Device Farm device pool to delete.
Returns:
-
(Struct)
—
Returns an empty response.
See Also:
#delete_instance_profile(options = {}) ⇒ Struct
Deletes a profile that can be applied to one or more private device instances.
Examples:
Request syntax with placeholder values
resp = client.delete_instance_profile({
arn: "AmazonResourceName", # required
})
Options Hash (options):
-
:arn
(required, String)
—
The Amazon Resource Name (ARN) of the instance profile you are requesting to delete.
Returns:
-
(Struct)
—
Returns an empty response.
See Also:
#delete_network_profile(options = {}) ⇒ Struct
Deletes a network profile.
Examples:
Request syntax with placeholder values
resp = client.delete_network_profile({
arn: "AmazonResourceName", # required
})
Options Hash (options):
-
:arn
(required, String)
—
The ARN of the network profile to delete.
Returns:
-
(Struct)
—
Returns an empty response.
See Also:
#delete_project(options = {}) ⇒ Struct
Deletes an AWS Device Farm project, given the project ARN.
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
})
Options Hash (options):
-
:arn
(required, String)
—
Represents the Amazon Resource Name (ARN) of the Device Farm project to delete.
Returns:
-
(Struct)
—
Returns an empty response.
See Also:
#delete_remote_access_session(options = {}) ⇒ 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
})
Options Hash (options):
-
:arn
(required, String)
—
The Amazon Resource Name (ARN) of the session for which you want to delete remote access.
Returns:
-
(Struct)
—
Returns an empty response.
See Also:
#delete_run(options = {}) ⇒ Struct
Deletes the run, given the run ARN.
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
})
Options Hash (options):
-
:arn
(required, String)
—
The Amazon Resource Name (ARN) for the run to delete.
Returns:
-
(Struct)
—
Returns an empty response.
See Also:
#delete_test_grid_project(options = {}) ⇒ Struct
Deletes a Selenium testing project and all content generated under it.
You cannot undo this operation. You cannot delete a project if it has active sessions.
Examples:
Request syntax with placeholder values
resp = client.delete_test_grid_project({
project_arn: "DeviceFarmArn", # required
})
Options Hash (options):
-
:project_arn
(required, String)
—
The ARN of the project to delete, from CreateTestGridProject or ListTestGridProjects.
Returns:
-
(Struct)
—
Returns an empty response.
See Also:
#delete_upload(options = {}) ⇒ 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
})
Options Hash (options):
-
:arn
(required, String)
—
Represents the Amazon Resource Name (ARN) of the Device Farm upload to delete.
Returns:
-
(Struct)
—
Returns an empty response.
See Also:
#delete_vpce_configuration(options = {}) ⇒ Struct
Deletes a configuration for your Amazon Virtual Private Cloud (VPC) endpoint.
Examples:
Request syntax with placeholder values
resp = client.delete_vpce_configuration({
arn: "AmazonResourceName", # required
})
Options Hash (options):
-
:arn
(required, String)
—
The Amazon Resource Name (ARN) of the VPC endpoint configuration you want to delete.
Returns:
-
(Struct)
—
Returns an empty response.
See Also:
#get_account_settings(options = {}) ⇒ Types::GetAccountSettingsResult
Returns the number of unmetered iOS 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.get_account_settings({
})
# resp.to_h outputs the following:
{
account_settings: {
aws_account_number: "123456789101",
unmetered_devices: {
"ANDROID" => 1,
"IOS" => 2,
},
},
}
Request syntax with placeholder values
resp = client.get_account_settings()
Response structure
resp.account_settings.aws_account_number #=> String
resp.account_settings.unmetered_devices #=> Hash
resp.account_settings.unmetered_devices["DevicePlatform"] #=> Integer
resp.account_settings.unmetered_remote_access_devices #=> Hash
resp.account_settings.unmetered_remote_access_devices["DevicePlatform"] #=> Integer
resp.account_settings.max_job_timeout_minutes #=> Integer
resp.account_settings.trial_minutes.total #=> Float
resp.account_settings.trial_minutes.remaining #=> Float
resp.account_settings.max_slots #=> Hash
resp.account_settings.max_slots["String"] #=> Integer
resp.account_settings.default_job_timeout_minutes #=> Integer
resp.account_settings.skip_app_resign #=> true/false
Returns:
-
(Types::GetAccountSettingsResult)
—
Returns a response object which responds to the following methods:
See Also:
#get_device(options = {}) ⇒ Types::GetDeviceResult
Gets information about a unique device type.
Examples:
Example: To get information about a device
# The following example returns information about a specific device.
resp = client.get_device({
arn: "arn:aws:devicefarm:us-west-2::device:123EXAMPLE",
})
# resp.to_h outputs the following:
{
device: {
name: "LG G2 (Sprint)",
arn: "arn:aws:devicefarm:us-west-2::device:A0E6E6E1059E45918208DF75B2B7EF6C",
cpu: {
architecture: "armeabi-v7a",
clock: 2265.6,
frequency: "MHz",
},
form_factor: "PHONE",
heap_size: 256000000,
image: "75B2B7EF6C12345EXAMPLE",
manufacturer: "LG",
memory: 16000000000,
model: "G2 (Sprint)",
os: "4.2.2",
platform: "ANDROID",
resolution: {
height: 1920,
width: 1080,
},
},
}
Request syntax with placeholder values
resp = client.get_device({
arn: "AmazonResourceName", # required
})
Response structure
resp.device.arn #=> String
resp.device.name #=> String
resp.device.manufacturer #=> String
resp.device.model #=> String
resp.device.model_id #=> String
resp.device.form_factor #=> String, one of "PHONE", "TABLET"
resp.device.platform #=> String, one of "ANDROID", "IOS"
resp.device.os #=> String
resp.device.cpu.frequency #=> String
resp.device.cpu.architecture #=> String
resp.device.cpu.clock #=> Float
resp.device.resolution.width #=> Integer
resp.device.resolution.height #=> Integer
resp.device.heap_size #=> Integer
resp.device.memory #=> Integer
resp.device.image #=> String
resp.device.carrier #=> String
resp.device.radio #=> String
resp.device.remote_access_enabled #=> true/false
resp.device.remote_debug_enabled #=> true/false
resp.device.fleet_type #=> String
resp.device.fleet_name #=> String
resp.device.instances #=> Array
resp.device.instances[0].arn #=> String
resp.device.instances[0].device_arn #=> String
resp.device.instances[0].labels #=> Array
resp.device.instances[0].labels[0] #=> String
resp.device.instances[0].status #=> String, one of "IN_USE", "PREPARING", "AVAILABLE", "NOT_AVAILABLE"
resp.device.instances[0].udid #=> String
resp.device.instances[0].instance_profile.arn #=> String
resp.device.instances[0].instance_profile.package_cleanup #=> true/false
resp.device.instances[0].instance_profile.exclude_app_packages_from_cleanup #=> Array
resp.device.instances[0].instance_profile.exclude_app_packages_from_cleanup[0] #=> String
resp.device.instances[0].instance_profile.reboot_after_use #=> true/false
resp.device.instances[0].instance_profile.name #=> String
resp.device.instances[0].instance_profile.description #=> String
resp.device.availability #=> String, one of "TEMPORARY_NOT_AVAILABLE", "BUSY", "AVAILABLE", "HIGHLY_AVAILABLE"
Options Hash (options):
-
:arn
(required, String)
—
The device type\'s ARN.
Returns:
-
(Types::GetDeviceResult)
—
Returns a response object which responds to the following methods:
See Also:
#get_device_instance(options = {}) ⇒ Types::GetDeviceInstanceResult
Returns information about a device instance that belongs to a private device fleet.
Examples:
Request syntax with placeholder values
resp = client.get_device_instance({
arn: "AmazonResourceName", # required
})
Response structure
resp.device_instance.arn #=> String
resp.device_instance.device_arn #=> String
resp.device_instance.labels #=> Array
resp.device_instance.labels[0] #=> String
resp.device_instance.status #=> String, one of "IN_USE", "PREPARING", "AVAILABLE", "NOT_AVAILABLE"
resp.device_instance.udid #=> String
resp.device_instance.instance_profile.arn #=> String
resp.device_instance.instance_profile.package_cleanup #=> true/false
resp.device_instance.instance_profile.exclude_app_packages_from_cleanup #=> Array
resp.device_instance.instance_profile.exclude_app_packages_from_cleanup[0] #=> String
resp.device_instance.instance_profile.reboot_after_use #=> true/false
resp.device_instance.instance_profile.name #=> String
resp.device_instance.instance_profile.description #=> String
Options Hash (options):
-
:arn
(required, String)
—
The Amazon Resource Name (ARN) of the instance you\'re requesting information about.
Returns:
-
(Types::GetDeviceInstanceResult)
—
Returns a response object which responds to the following methods:
See Also:
#get_device_pool(options = {}) ⇒ Types::GetDevicePoolResult
Gets information about a device pool.
Examples:
Example: To get information about a device pool
# The following example returns information about a specific device pool, given a project ARN.
resp = client.get_device_pool({
arn: "arn:aws:devicefarm:us-west-2:123456789101:project:EXAMPLE-GUID-123-456", # You can obtain the project ARN by using the list-projects CLI command.
})
# resp.to_h outputs the following:
{
device_pool: {
},
}
Request syntax with placeholder values
resp = client.get_device_pool({
arn: "AmazonResourceName", # required
})
Response structure
resp.device_pool.arn #=> String
resp.device_pool.name #=> String
resp.device_pool.description #=> String
resp.device_pool.type #=> String, one of "CURATED", "PRIVATE"
resp.device_pool.rules #=> Array
resp.device_pool.rules[0].attribute #=> String, one of "ARN", "PLATFORM", "FORM_FACTOR", "MANUFACTURER", "REMOTE_ACCESS_ENABLED", "REMOTE_DEBUG_ENABLED", "APPIUM_VERSION", "INSTANCE_ARN", "INSTANCE_LABELS", "FLEET_TYPE", "OS_VERSION", "MODEL", "AVAILABILITY"
resp.device_pool.rules[0].operator #=> String, one of "EQUALS", "LESS_THAN", "LESS_THAN_OR_EQUALS", "GREATER_THAN", "GREATER_THAN_OR_EQUALS", "IN", "NOT_IN", "CONTAINS"
resp.device_pool.rules[0].value #=> String
resp.device_pool.max_devices #=> Integer
Options Hash (options):
-
:arn
(required, String)
—
The device pool\'s ARN.
Returns:
-
(Types::GetDevicePoolResult)
—
Returns a response object which responds to the following methods:
See Also:
#get_device_pool_compatibility(options = {}) ⇒ Types::GetDevicePoolCompatibilityResult
Gets information about compatibility with a device pool.
Examples:
Example: To get information about the compatibility of a device pool
# The following example returns information about the compatibility of a specific device pool, given its ARN.
resp = client.get_device_pool_compatibility({
app_arn: "arn:aws:devicefarm:us-west-2::app:123-456-EXAMPLE-GUID",
device_pool_arn: "arn:aws:devicefarm:us-west-2::devicepool:123-456-EXAMPLE-GUID", # You can get the device pool ARN by using the list-device-pools CLI command.
test_type: "APPIUM_PYTHON",
})
# resp.to_h outputs the following:
{
compatible_devices: [
],
incompatible_devices: [
],
}
Request syntax with placeholder values
resp = client.get_device_pool_compatibility({
device_pool_arn: "AmazonResourceName", # required
app_arn: "AmazonResourceName",
test_type: "BUILTIN_FUZZ", # accepts BUILTIN_FUZZ, BUILTIN_EXPLORER, WEB_PERFORMANCE_PROFILE, APPIUM_JAVA_JUNIT, APPIUM_JAVA_TESTNG, APPIUM_PYTHON, APPIUM_NODE, APPIUM_RUBY, APPIUM_WEB_JAVA_JUNIT, APPIUM_WEB_JAVA_TESTNG, APPIUM_WEB_PYTHON, APPIUM_WEB_NODE, APPIUM_WEB_RUBY, CALABASH, INSTRUMENTATION, UIAUTOMATION, UIAUTOMATOR, XCTEST, XCTEST_UI, REMOTE_ACCESS_RECORD, REMOTE_ACCESS_REPLAY
test: {
type: "BUILTIN_FUZZ", # required, accepts BUILTIN_FUZZ, BUILTIN_EXPLORER, WEB_PERFORMANCE_PROFILE, APPIUM_JAVA_JUNIT, APPIUM_JAVA_TESTNG, APPIUM_PYTHON, APPIUM_NODE, APPIUM_RUBY, APPIUM_WEB_JAVA_JUNIT, APPIUM_WEB_JAVA_TESTNG, APPIUM_WEB_PYTHON, APPIUM_WEB_NODE, APPIUM_WEB_RUBY, CALABASH, INSTRUMENTATION, UIAUTOMATION, UIAUTOMATOR, XCTEST, XCTEST_UI, REMOTE_ACCESS_RECORD, REMOTE_ACCESS_REPLAY
test_package_arn: "AmazonResourceName",
test_spec_arn: "AmazonResourceName",
filter: "Filter",
parameters: {
"String" => "String",
},
},
configuration: {
extra_data_package_arn: "AmazonResourceName",
network_profile_arn: "AmazonResourceName",
locale: "String",
location: {
latitude: 1.0, # required
longitude: 1.0, # required
},
vpce_configuration_arns: ["AmazonResourceName"],
customer_artifact_paths: {
ios_paths: ["String"],
android_paths: ["String"],
device_host_paths: ["String"],
},
radios: {
wifi: false,
bluetooth: false,
nfc: false,
gps: false,
},
auxiliary_apps: ["AmazonResourceName"],
billing_method: "METERED", # accepts METERED, UNMETERED
},
})
Response structure
resp.compatible_devices #=> Array
resp.compatible_devices[0].device.arn #=> String
resp.compatible_devices[0].device.name #=> String
resp.compatible_devices[0].device.manufacturer #=> String
resp.compatible_devices[0].device.model #=> String
resp.compatible_devices[0].device.model_id #=> String
resp.compatible_devices[0].device.form_factor #=> String, one of "PHONE", "TABLET"
resp.compatible_devices[0].device.platform #=> String, one of "ANDROID", "IOS"
resp.compatible_devices[0].device.os #=> String
resp.compatible_devices[0].device.cpu.frequency #=> String
resp.compatible_devices[0].device.cpu.architecture #=> String
resp.compatible_devices[0].device.cpu.clock #=> Float
resp.compatible_devices[0].device.resolution.width #=> Integer
resp.compatible_devices[0].device.resolution.height #=> Integer
resp.compatible_devices[0].device.heap_size #=> Integer
resp.compatible_devices[0].device.memory #=> Integer
resp.compatible_devices[0].device.image #=> String
resp.compatible_devices[0].device.carrier #=> String
resp.compatible_devices[0].device.radio #=> String
resp.compatible_devices[0].device.remote_access_enabled #=> true/false
resp.compatible_devices[0].device.remote_debug_enabled #=> true/false
resp.compatible_devices[0].device.fleet_type #=> String
resp.compatible_devices[0].device.fleet_name #=> String
resp.compatible_devices[0].device.instances #=> Array
resp.compatible_devices[0].device.instances[0].arn #=> String
resp.compatible_devices[0].device.instances[0].device_arn #=> String
resp.compatible_devices[0].device.instances[0].labels #=> Array
resp.compatible_devices[0].device.instances[0].labels[0] #=> String
resp.compatible_devices[0].device.instances[0].status #=> String, one of "IN_USE", "PREPARING", "AVAILABLE", "NOT_AVAILABLE"
resp.compatible_devices[0].device.instances[0].udid #=> String
resp.compatible_devices[0].device.instances[0].instance_profile.arn #=> String
resp.compatible_devices[0].device.instances[0].instance_profile.package_cleanup #=> true/false
resp.compatible_devices[0].device.instances[0].instance_profile.exclude_app_packages_from_cleanup #=> Array
resp.compatible_devices[0].device.instances[0].instance_profile.exclude_app_packages_from_cleanup[0] #=> String
resp.compatible_devices[0].device.instances[0].instance_profile.reboot_after_use #=> true/false
resp.compatible_devices[0].device.instances[0].instance_profile.name #=> String
resp.compatible_devices[0].device.instances[0].instance_profile.description #=> String
resp.compatible_devices[0].device.availability #=> String, one of "TEMPORARY_NOT_AVAILABLE", "BUSY", "AVAILABLE", "HIGHLY_AVAILABLE"
resp.compatible_devices[0].compatible #=> true/false
resp.compatible_devices[0].incompatibility_messages #=> Array
resp.compatible_devices[0].incompatibility_messages[0].message #=> String
resp.compatible_devices[0].incompatibility_messages[0].type #=> String, one of "ARN", "PLATFORM", "FORM_FACTOR", "MANUFACTURER", "REMOTE_ACCESS_ENABLED", "REMOTE_DEBUG_ENABLED", "APPIUM_VERSION", "INSTANCE_ARN", "INSTANCE_LABELS", "FLEET_TYPE", "OS_VERSION", "MODEL", "AVAILABILITY"
resp.incompatible_devices #=> Array
resp.incompatible_devices[0].device.arn #=> String
resp.incompatible_devices[0].device.name #=> String
resp.incompatible_devices[0].device.manufacturer #=> String
resp.incompatible_devices[0].device.model #=> String
resp.incompatible_devices[0].device.model_id #=> String
resp.incompatible_devices[0].device.form_factor #=> String, one of "PHONE", "TABLET"
resp.incompatible_devices[0].device.platform #=> String, one of "ANDROID", "IOS"
resp.incompatible_devices[0].device.os #=> String
resp.incompatible_devices[0].device.cpu.frequency #=> String
resp.incompatible_devices[0].device.cpu.architecture #=> String
resp.incompatible_devices[0].device.cpu.clock #=> Float
resp.incompatible_devices[0].device.resolution.width #=> Integer
resp.incompatible_devices[0].device.resolution.height #=> Integer
resp.incompatible_devices[0].device.heap_size #=> Integer
resp.incompatible_devices[0].device.memory #=> Integer
resp.incompatible_devices[0].device.image #=> String
resp.incompatible_devices[0].device.carrier #=> String
resp.incompatible_devices[0].device.radio #=> String
resp.incompatible_devices[0].device.remote_access_enabled #=> true/false
resp.incompatible_devices[0].device.remote_debug_enabled #=> true/false
resp.incompatible_devices[0].device.fleet_type #=> String
resp.incompatible_devices[0].device.fleet_name #=> String
resp.incompatible_devices[0].device.instances #=> Array
resp.incompatible_devices[0].device.instances[0].arn #=> String
resp.incompatible_devices[0].device.instances[0].device_arn #=> String
resp.incompatible_devices[0].device.instances[0].labels #=> Array
resp.incompatible_devices[0].device.instances[0].labels[0] #=> String
resp.incompatible_devices[0].device.instances[0].status #=> String, one of "IN_USE", "PREPARING", "AVAILABLE", "NOT_AVAILABLE"
resp.incompatible_devices[0].device.instances[0].udid #=> String
resp.incompatible_devices[0].device.instances[0].instance_profile.arn #=> String
resp.incompatible_devices[0].device.instances[0].instance_profile.package_cleanup #=> true/false
resp.incompatible_devices[0].device.instances[0].instance_profile.exclude_app_packages_from_cleanup #=> Array
resp.incompatible_devices[0].device.instances[0].instance_profile.exclude_app_packages_from_cleanup[0] #=> String
resp.incompatible_devices[0].device.instances[0].instance_profile.reboot_after_use #=> true/false
resp.incompatible_devices[0].device.instances[0].instance_profile.name #=> String
resp.incompatible_devices[0].device.instances[0].instance_profile.description #=> String
resp.incompatible_devices[0].device.availability #=> String, one of "TEMPORARY_NOT_AVAILABLE", "BUSY", "AVAILABLE", "HIGHLY_AVAILABLE"
resp.incompatible_devices[0].compatible #=> true/false
resp.incompatible_devices[0].incompatibility_messages #=> Array
resp.incompatible_devices[0].incompatibility_messages[0].message #=> String
resp.incompatible_devices[0].incompatibility_messages[0].type #=> String, one of "ARN", "PLATFORM", "FORM_FACTOR", "MANUFACTURER", "REMOTE_ACCESS_ENABLED", "REMOTE_DEBUG_ENABLED", "APPIUM_VERSION", "INSTANCE_ARN", "INSTANCE_LABELS", "FLEET_TYPE", "OS_VERSION", "MODEL", "AVAILABILITY"
Options Hash (options):
-
: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.
BUILTIN_EXPLORER. For Android, an app explorer that traverses an Android app, interacting with it and capturing screenshots at the same time.
APPIUM_JAVA_JUNIT.
APPIUM_JAVA_TESTNG.
APPIUM_PYTHON.
APPIUM_NODE.
APPIUM_RUBY.
APPIUM_WEB_JAVA_JUNIT.
APPIUM_WEB_JAVA_TESTNG.
APPIUM_WEB_PYTHON.
APPIUM_WEB_NODE.
APPIUM_WEB_RUBY.
CALABASH.
INSTRUMENTATION.
UIAUTOMATION.
UIAUTOMATOR.
XCTEST.
XCTEST_UI.
-
:test
(Types::ScheduleRunTest)
—
Information about the uploaded test to be run against the device pool.
-
:configuration
(Types::ScheduleRunConfiguration)
—
An object that contains information about the settings for a run.
Returns:
-
(Types::GetDevicePoolCompatibilityResult)
—
Returns a response object which responds to the following methods:
See Also:
#get_instance_profile(options = {}) ⇒ Types::GetInstanceProfileResult
Returns information about the specified instance profile.
Examples:
Request syntax with placeholder values
resp = client.get_instance_profile({
arn: "AmazonResourceName", # required
})
Response structure
resp.instance_profile.arn #=> String
resp.instance_profile.package_cleanup #=> true/false
resp.instance_profile.exclude_app_packages_from_cleanup #=> Array
resp.instance_profile.exclude_app_packages_from_cleanup[0] #=> String
resp.instance_profile.reboot_after_use #=> true/false
resp.instance_profile.name #=> String
resp.instance_profile.description #=> String
Options Hash (options):
-
:arn
(required, String)
—
The Amazon Resource Name (ARN) of an instance profile.
Returns:
-
(Types::GetInstanceProfileResult)
—
Returns a response object which responds to the following methods:
See Also:
#get_job(options = {}) ⇒ Types::GetJobResult
Gets information about a job.
Examples:
Example: To get information about a job
# The following example returns information about a specific job.
resp = client.get_job({
arn: "arn:aws:devicefarm:us-west-2::job:123-456-EXAMPLE-GUID", # You can get the job ARN by using the list-jobs CLI command.
})
# resp.to_h outputs the following:
{
job: {
},
}
Request syntax with placeholder values
resp = client.get_job({
arn: "AmazonResourceName", # required
})
Response structure
resp.job.arn #=> String
resp.job.name #=> String
resp.job.type #=> String, one of "BUILTIN_FUZZ", "BUILTIN_EXPLORER", "WEB_PERFORMANCE_PROFILE", "APPIUM_JAVA_JUNIT", "APPIUM_JAVA_TESTNG", "APPIUM_PYTHON", "APPIUM_NODE", "APPIUM_RUBY", "APPIUM_WEB_JAVA_JUNIT", "APPIUM_WEB_JAVA_TESTNG", "APPIUM_WEB_PYTHON", "APPIUM_WEB_NODE", "APPIUM_WEB_RUBY", "CALABASH", "INSTRUMENTATION", "UIAUTOMATION", "UIAUTOMATOR", "XCTEST", "XCTEST_UI", "REMOTE_ACCESS_RECORD", "REMOTE_ACCESS_REPLAY"
resp.job.created #=> Time
resp.job.status #=> String, one of "PENDING", "PENDING_CONCURRENCY", "PENDING_DEVICE", "PROCESSING", "SCHEDULING", "PREPARING", "RUNNING", "COMPLETED", "STOPPING"
resp.job.result #=> String, one of "PENDING", "PASSED", "WARNED", "FAILED", "SKIPPED", "ERRORED", "STOPPED"
resp.job.started #=> Time
resp.job.stopped #=> Time
resp.job.counters.total #=> Integer
resp.job.counters.passed #=> Integer
resp.job.counters.failed #=> Integer
resp.job.counters.warned #=> Integer
resp.job.counters.errored #=> Integer
resp.job.counters.stopped #=> Integer
resp.job.counters.skipped #=> Integer
resp.job.message #=> String
resp.job.device.arn #=> String
resp.job.device.name #=> String
resp.job.device.manufacturer #=> String
resp.job.device.model #=> String
resp.job.device.model_id #=> String
resp.job.device.form_factor #=> String, one of "PHONE", "TABLET"
resp.job.device.platform #=> String, one of "ANDROID", "IOS"
resp.job.device.os #=> String
resp.job.device.cpu.frequency #=> String
resp.job.device.cpu.architecture #=> String
resp.job.device.cpu.clock #=> Float
resp.job.device.resolution.width #=> Integer
resp.job.device.resolution.height #=> Integer
resp.job.device.heap_size #=> Integer
resp.job.device.memory #=> Integer
resp.job.device.image #=> String
resp.job.device.carrier #=> String
resp.job.device.radio #=> String
resp.job.device.remote_access_enabled #=> true/false
resp.job.device.remote_debug_enabled #=> true/false
resp.job.device.fleet_type #=> String
resp.job.device.fleet_name #=> String
resp.job.device.instances #=> Array
resp.job.device.instances[0].arn #=> String
resp.job.device.instances[0].device_arn #=> String
resp.job.device.instances[0].labels #=> Array
resp.job.device.instances[0].labels[0] #=> String
resp.job.device.instances[0].status #=> String, one of "IN_USE", "PREPARING", "AVAILABLE", "NOT_AVAILABLE"
resp.job.device.instances[0].udid #=> String
resp.job.device.instances[0].instance_profile.arn #=> String
resp.job.device.instances[0].instance_profile.package_cleanup #=> true/false
resp.job.device.instances[0].instance_profile.exclude_app_packages_from_cleanup #=> Array
resp.job.device.instances[0].instance_profile.exclude_app_packages_from_cleanup[0] #=> String
resp.job.device.instances[0].instance_profile.reboot_after_use #=> true/false
resp.job.device.instances[0].instance_profile.name #=> String
resp.job.device.instances[0].instance_profile.description #=> String
resp.job.device.availability #=> String, one of "TEMPORARY_NOT_AVAILABLE", "BUSY", "AVAILABLE", "HIGHLY_AVAILABLE"
resp.job.instance_arn #=> String
resp.job.device_minutes.total #=> Float
resp.job.device_minutes.metered #=> Float
resp.job.device_minutes.unmetered #=> Float
resp.job.video_endpoint #=> String
resp.job.video_capture #=> true/false
Options Hash (options):
-
:arn
(required, String)
—
The job\'s ARN.
Returns:
-
(Types::GetJobResult)
—
Returns a response object which responds to the following methods:
- #job => Types::Job
See Also:
#get_network_profile(options = {}) ⇒ 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
Options Hash (options):
-
:arn
(required, String)
—
The ARN of the network profile to return information about.
Returns:
-
(Types::GetNetworkProfileResult)
—
Returns a response object which responds to the following methods:
See Also:
#get_offering_status(options = {}) ⇒ 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. If you must be able to invoke this operation, contact aws-devicefarm-support@amazon.com.
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
Options Hash (options):
-
: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:
-
(Types::GetOfferingStatusResult)
—
Returns a response object which responds to the following methods:
- #current => Hash<String,Types::OfferingStatus>
- #next_period => Hash<String,Types::OfferingStatus>
- #next_token => String
See Also:
#get_project(options = {}) ⇒ 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
Options Hash (options):
-
:arn
(required, String)
—
The project\'s ARN.
Returns:
-
(Types::GetProjectResult)
—
Returns a response object which responds to the following methods:
See Also:
#get_remote_access_session(options = {}) ⇒ Types::GetRemoteAccessSessionResult
Returns a link to a currently running remote access session.
Examples:
Example: To get a remote access session
# The following example gets a specific remote access session.
resp = client.get_remote_access_session({
arn: "arn:aws:devicefarm:us-west-2:123456789101:session:EXAMPLE-GUID-123-456", # You can get the remote access session ARN by using the list-remote-access-sessions CLI command.
})
# resp.to_h outputs the following:
{
remote_access_session: {
},
}
Request syntax with placeholder values
resp = client.get_remote_access_session({
arn: "AmazonResourceName", # required
})
Response structure
resp.remote_access_session.arn #=> String
resp.remote_access_session.name #=> String
resp.remote_access_session.created #=> Time
resp.remote_access_session.status #=> String, one of "PENDING", "PENDING_CONCURRENCY", "PENDING_DEVICE", "PROCESSING", "SCHEDULING", "PREPARING", "RUNNING", "COMPLETED", "STOPPING"
resp.remote_access_session.result #=> String, one of "PENDING", "PASSED", "WARNED", "FAILED", "SKIPPED", "ERRORED", "STOPPED"
resp.remote_access_session.message #=> String
resp.remote_access_session.started #=> Time
resp.remote_access_session.stopped #=> Time
resp.remote_access_session.device.arn #=> String
resp.remote_access_session.device.name #=> String
resp.remote_access_session.device.manufacturer #=> String
resp.remote_access_session.device.model #=> String
resp.remote_access_session.device.model_id #=> String
resp.remote_access_session.device.form_factor #=> String, one of "PHONE", "TABLET"
resp.remote_access_session.device.platform #=> String, one of "ANDROID", "IOS"
resp.remote_access_session.device.os #=> String
resp.remote_access_session.device.cpu.frequency #=> String
resp.remote_access_session.device.cpu.architecture #=> String
resp.remote_access_session.device.cpu.clock #=> Float
resp.remote_access_session.device.resolution.width #=> Integer
resp.remote_access_session.device.resolution.height #=> Integer
resp.remote_access_session.device.heap_size #=> Integer
resp.remote_access_session.device.memory #=> Integer
resp.remote_access_session.device.image #=> String
resp.remote_access_session.device.carrier #=> String
resp.remote_access_session.device.radio #=> String
resp.remote_access_session.device.remote_access_enabled #=> true/false
resp.remote_access_session.device.remote_debug_enabled #=> true/false
resp.remote_access_session.device.fleet_type #=> String
resp.remote_access_session.device.fleet_name #=> String
resp.remote_access_session.device.instances #=> Array
resp.remote_access_session.device.instances[0].arn #=> String
resp.remote_access_session.device.instances[0].device_arn #=> String
resp.remote_access_session.device.instances[0].labels #=> Array
resp.remote_access_session.device.instances[0].labels[0] #=> String
resp.remote_access_session.device.instances[0].status #=> String, one of "IN_USE", "PREPARING", "AVAILABLE", "NOT_AVAILABLE"
resp.remote_access_session.device.instances[0].udid #=> String
resp.remote_access_session.device.instances[0].instance_profile.arn #=> String
resp.remote_access_session.device.instances[0].instance_profile.package_cleanup #=> true/false
resp.remote_access_session.device.instances[0].instance_profile.exclude_app_packages_from_cleanup #=> Array
resp.remote_access_session.device.instances[0].instance_profile.exclude_app_packages_from_cleanup[0] #=> String
resp.remote_access_session.device.instances[0].instance_profile.reboot_after_use #=> true/false
resp.remote_access_session.device.instances[0].instance_profile.name #=> String
resp.remote_access_session.device.instances[0].instance_profile.description #=> String
resp.remote_access_session.device.availability #=> String, one of "TEMPORARY_NOT_AVAILABLE", "BUSY", "AVAILABLE", "HIGHLY_AVAILABLE"
resp.remote_access_session.instance_arn #=> String
resp.remote_access_session.remote_debug_enabled #=> true/false
resp.remote_access_session.remote_record_enabled #=> true/false
resp.remote_access_session.remote_record_app_arn #=> String
resp.remote_access_session.host_address #=> String
resp.remote_access_session.client_id #=> String
resp.remote_access_session.billing_method #=> String, one of "METERED", "UNMETERED"
resp.remote_access_session.device_minutes.total #=> Float
resp.remote_access_session.device_minutes.metered #=> Float
resp.remote_access_session.device_minutes.unmetered #=> Float
resp.remote_access_session.endpoint #=> String
resp.remote_access_session.device_udid #=> String
resp.remote_access_session.interaction_mode #=> String, one of "INTERACTIVE", "NO_VIDEO", "VIDEO_ONLY"
resp.remote_access_session.skip_app_resign #=> true/false
Options Hash (options):
-
:arn
(required, String)
—
The Amazon Resource Name (ARN) of the remote access session about which you want to get session information.
Returns:
-
(Types::GetRemoteAccessSessionResult)
—
Returns a response object which responds to the following methods:
See Also:
#get_run(options = {}) ⇒ Types::GetRunResult
Gets information about a run.
Examples:
Example: To get information about a test run
# The following example gets information about a specific test run.
resp = client.get_run({
arn: "arn:aws:devicefarm:us-west-2:123456789101:run:5e01a8c7-c861-4c0a-b1d5-5ec6e6c6dd23/0fcac17b-6122-44d7-ae5a-12345EXAMPLE", # You can get the run ARN by using the list-runs CLI command.
})
# resp.to_h outputs the following:
{
run: {
name: "My Test Run",
type: "BUILTIN_EXPLORER",
arn: "arn:aws:devicefarm:us-west-2:123456789101:run:5e01a8c7-c861-4c0a-b1d5-5ec6e6c6dd23/0fcac17b-6122-44d7-ae5a-12345EXAMPLE",
billing_method: "METERED",
completed_jobs: 0,
counters: {
errored: 0,
failed: 0,
passed: 0,
skipped: 0,
stopped: 0,
total: 0,
warned: 0,
},
created: Time.parse("1472667509.852"),
device_minutes: {
metered: 0.0,
total: 0.0,
unmetered: 0.0,
},
platform: "ANDROID",
result: "PENDING",
status: "RUNNING",
total_jobs: 3,
},
}
Request syntax with placeholder values
resp = client.get_run({
arn: "AmazonResourceName", # required
})
Response structure
resp.run.arn #=> String
resp.run.name #=> String
resp.run.type #=> String, one of "BUILTIN_FUZZ", "BUILTIN_EXPLORER", "WEB_PERFORMANCE_PROFILE", "APPIUM_JAVA_JUNIT", "APPIUM_JAVA_TESTNG", "APPIUM_PYTHON", "APPIUM_NODE", "APPIUM_RUBY", "APPIUM_WEB_JAVA_JUNIT", "APPIUM_WEB_JAVA_TESTNG", "APPIUM_WEB_PYTHON", "APPIUM_WEB_NODE", "APPIUM_WEB_RUBY", "CALABASH", "INSTRUMENTATION", "UIAUTOMATION", "UIAUTOMATOR", "XCTEST", "XCTEST_UI", "REMOTE_ACCESS_RECORD", "REMOTE_ACCESS_REPLAY"
resp.run.platform #=> String, one of "ANDROID", "IOS"
resp.run.created #=> Time
resp.run.status #=> String, one of "PENDING", "PENDING_CONCURRENCY", "PENDING_DEVICE", "PROCESSING", "SCHEDULING", "PREPARING", "RUNNING", "COMPLETED", "STOPPING"
resp.run.result #=> String, one of "PENDING", "PASSED", "WARNED", "FAILED", "SKIPPED", "ERRORED", "STOPPED"
resp.run.started #=> Time
resp.run.stopped #=> Time
resp.run.counters.total #=> Integer
resp.run.counters.passed #=> Integer
resp.run.counters.failed #=> Integer
resp.run.counters.warned #=> Integer
resp.run.counters.errored #=> Integer
resp.run.counters.stopped #=> Integer
resp.run.counters.skipped #=> Integer
resp.run.message #=> String
resp.run.total_jobs #=> Integer
resp.run.completed_jobs #=> Integer
resp.run.billing_method #=> String, one of "METERED", "UNMETERED"
resp.run.device_minutes.total #=> Float
resp.run.device_minutes.metered #=> Float
resp.run.device_minutes.unmetered #=> Float
resp.run.network_profile.arn #=> String
resp.run.network_profile.name #=> String
resp.run.network_profile.description #=> String
resp.run.network_profile.type #=> String, one of "CURATED", "PRIVATE"
resp.run.network_profile.uplink_bandwidth_bits #=> Integer
resp.run.network_profile.downlink_bandwidth_bits #=> Integer
resp.run.network_profile.uplink_delay_ms #=> Integer
resp.run.network_profile.downlink_delay_ms #=> Integer
resp.run.network_profile.uplink_jitter_ms #=> Integer
resp.run.network_profile.downlink_jitter_ms #=> Integer
resp.run.network_profile.uplink_loss_percent #=> Integer
resp.run.network_profile.downlink_loss_percent #=> Integer
resp.run.parsing_result_url #=> String
resp.run.result_code #=> String, one of "PARSING_FAILED", "VPC_ENDPOINT_SETUP_FAILED"
resp.run.seed #=> Integer
resp.run.app_upload #=> String
resp.run.event_count #=> Integer
resp.run.job_timeout_minutes #=> Integer
resp.run.device_pool_arn #=> String
resp.run.locale #=> String
resp.run.radios.wifi #=> true/false
resp.run.radios.bluetooth #=> true/false
resp.run.radios.nfc #=> true/false
resp.run.radios.gps #=> true/false
resp.run.location.latitude #=> Float
resp.run.location.longitude #=> Float
resp.run.customer_artifact_paths.ios_paths #=> Array
resp.run.customer_artifact_paths.ios_paths[0] #=> String
resp.run.customer_artifact_paths.android_paths #=> Array
resp.run.customer_artifact_paths.android_paths[0] #=> String
resp.run.customer_artifact_paths.device_host_paths #=> Array
resp.run.customer_artifact_paths.device_host_paths[0] #=> String
resp.run.web_url #=> String
resp.run.skip_app_resign #=> true/false
resp.run.test_spec_arn #=> String
resp.run.device_selection_result.filters #=> Array
resp.run.device_selection_result.filters[0].attribute #=> String, one of "ARN", "PLATFORM", "OS_VERSION", "MODEL", "AVAILABILITY", "FORM_FACTOR", "MANUFACTURER", "REMOTE_ACCESS_ENABLED", "REMOTE_DEBUG_ENABLED", "INSTANCE_ARN", "INSTANCE_LABELS", "FLEET_TYPE"
resp.run.device_selection_result.filters[0].operator #=> String, one of "EQUALS", "LESS_THAN", "LESS_THAN_OR_EQUALS", "GREATER_THAN", "GREATER_THAN_OR_EQUALS", "IN", "NOT_IN", "CONTAINS"
resp.run.device_selection_result.filters[0].values #=> Array
resp.run.device_selection_result.filters[0].values[0] #=> String
resp.run.device_selection_result.matched_devices_count #=> Integer
resp.run.device_selection_result.max_devices #=> Integer
Options Hash (options):
-
:arn
(required, String)
—
The run\'s ARN.
Returns:
-
(Types::GetRunResult)
—
Returns a response object which responds to the following methods:
- #run => Types::Run
See Also:
#get_suite(options = {}) ⇒ Types::GetSuiteResult
Gets information about a suite.
Examples:
Example: To get information about a test suite
# The following example gets information about a specific test suite.
resp = client.get_suite({
arn: "arn:aws:devicefarm:us-west-2:123456789101:suite:EXAMPLE-GUID-123-456", # You can get the suite ARN by using the list-suites CLI command.
})
# resp.to_h outputs the following:
{
suite: {
},
}
Request syntax with placeholder values
resp = client.get_suite({
arn: "AmazonResourceName", # required
})
Response structure
resp.suite.arn #=> String
resp.suite.name #=> String
resp.suite.type #=> String, one of "BUILTIN_FUZZ", "BUILTIN_EXPLORER", "WEB_PERFORMANCE_PROFILE", "APPIUM_JAVA_JUNIT", "APPIUM_JAVA_TESTNG", "APPIUM_PYTHON", "APPIUM_NODE", "APPIUM_RUBY", "APPIUM_WEB_JAVA_JUNIT", "APPIUM_WEB_JAVA_TESTNG", "APPIUM_WEB_PYTHON", "APPIUM_WEB_NODE", "APPIUM_WEB_RUBY", "CALABASH", "INSTRUMENTATION", "UIAUTOMATION", "UIAUTOMATOR", "XCTEST", "XCTEST_UI", "REMOTE_ACCESS_RECORD", "REMOTE_ACCESS_REPLAY"
resp.suite.created #=> Time
resp.suite.status #=> String, one of "PENDING", "PENDING_CONCURRENCY", "PENDING_DEVICE", "PROCESSING", "SCHEDULING", "PREPARING", "RUNNING", "COMPLETED", "STOPPING"
resp.suite.result #=> String, one of "PENDING", "PASSED", "WARNED", "FAILED", "SKIPPED", "ERRORED", "STOPPED"
resp.suite.started #=> Time
resp.suite.stopped #=> Time
resp.suite.counters.total #=> Integer
resp.suite.counters.passed #=> Integer
resp.suite.counters.failed #=> Integer
resp.suite.counters.warned #=> Integer
resp.suite.counters.errored #=> Integer
resp.suite.counters.stopped #=> Integer
resp.suite.counters.skipped #=> Integer
resp.suite.message #=> String
resp.suite.device_minutes.total #=> Float
resp.suite.device_minutes.metered #=> Float
resp.suite.device_minutes.unmetered #=> Float
Options Hash (options):
-
:arn
(required, String)
—
The suite\'s ARN.
Returns:
-
(Types::GetSuiteResult)
—
Returns a response object which responds to the following methods:
See Also:
#get_test(options = {}) ⇒ Types::GetTestResult
Gets information about a test.
Examples:
Example: To get information about a specific test
# The following example gets information about a specific test.
resp = client.get_test({
arn: "arn:aws:devicefarm:us-west-2:123456789101:test:EXAMPLE-GUID-123-456", # You can get the test ARN by using the list-tests CLI command.
})
# resp.to_h outputs the following:
{
test: {
},
}
Request syntax with placeholder values
resp = client.get_test({
arn: "AmazonResourceName", # required
})
Response structure
resp.test.arn #=> String
resp.test.name #=> String
resp.test.type #=> String, one of "BUILTIN_FUZZ", "BUILTIN_EXPLORER", "WEB_PERFORMANCE_PROFILE", "APPIUM_JAVA_JUNIT", "APPIUM_JAVA_TESTNG", "APPIUM_PYTHON", "APPIUM_NODE", "APPIUM_RUBY", "APPIUM_WEB_JAVA_JUNIT", "APPIUM_WEB_JAVA_TESTNG", "APPIUM_WEB_PYTHON", "APPIUM_WEB_NODE", "APPIUM_WEB_RUBY", "CALABASH", "INSTRUMENTATION", "UIAUTOMATION", "UIAUTOMATOR", "XCTEST", "XCTEST_UI", "REMOTE_ACCESS_RECORD", "REMOTE_ACCESS_REPLAY"
resp.test.created #=> Time
resp.test.status #=> String, one of "PENDING", "PENDING_CONCURRENCY", "PENDING_DEVICE", "PROCESSING", "SCHEDULING", "PREPARING", "RUNNING", "COMPLETED", "STOPPING"
resp.test.result #=> String, one of "PENDING", "PASSED", "WARNED", "FAILED", "SKIPPED", "ERRORED", "STOPPED"
resp.test.started #=> Time
resp.test.stopped #=> Time
resp.test.counters.total #=> Integer
resp.test.counters.passed #=> Integer
resp.test.counters.failed #=> Integer
resp.test.counters.warned #=> Integer
resp.test.counters.errored #=> Integer
resp.test.counters.stopped #=> Integer
resp.test.counters.skipped #=> Integer
resp.test.message #=> String
resp.test.device_minutes.total #=> Float
resp.test.device_minutes.metered #=> Float
resp.test.device_minutes.unmetered #=> Float
Options Hash (options):
-
:arn
(required, String)
—
The test\'s ARN.
Returns:
-
(Types::GetTestResult)
—
Returns a response object which responds to the following methods:
- #test => Types::Test
See Also:
#get_test_grid_project(options = {}) ⇒ Types::GetTestGridProjectResult
Retrieves information about a Selenium testing project.
Examples:
Request syntax with placeholder values
resp = client.get_test_grid_project({
project_arn: "DeviceFarmArn", # required
})
Response structure
resp.test_grid_project.arn #=> String
resp.test_grid_project.name #=> String
resp.test_grid_project.description #=> String
resp.test_grid_project.created #=> Time
Options Hash (options):
-
:project_arn
(required, String)
—
The ARN of the Selenium testing project, from either CreateTestGridProject or ListTestGridProjects.
Returns:
-
(Types::GetTestGridProjectResult)
—
Returns a response object which responds to the following methods:
See Also:
#get_test_grid_session(options = {}) ⇒ Types::GetTestGridSessionResult
A session is an instance of a browser created through a RemoteWebDriver
with the URL from CreateTestGridUrlResult$url. You can use the following to look up sessions:
-
The session ARN (GetTestGridSessionRequest$sessionArn).
-
The project ARN and a session ID (GetTestGridSessionRequest$projectArn and GetTestGridSessionRequest$sessionId).
Examples:
Request syntax with placeholder values
resp = client.get_test_grid_session({
project_arn: "DeviceFarmArn",
session_id: "ResourceId",
session_arn: "DeviceFarmArn",
})
Response structure
resp.test_grid_session.arn #=> String
resp.test_grid_session.status #=> String, one of "ACTIVE", "CLOSED", "ERRORED"
resp.test_grid_session.created #=> Time
resp.test_grid_session.ended #=> Time
resp.test_grid_session.billing_minutes #=> Float
resp.test_grid_session.selenium_properties #=> String
Options Hash (options):
-
:project_arn
(String)
—
The ARN for the project that this session belongs to. See CreateTestGridProject and ListTestGridProjects.
-
:session_id
(String)
—
An ID associated with this session.
-
:session_arn
(String)
—
An ARN that uniquely identifies a TestGridSession.
Returns:
-
(Types::GetTestGridSessionResult)
—
Returns a response object which responds to the following methods:
See Also:
#get_upload(options = {}) ⇒ Types::GetUploadResult
Gets information about an upload.
Examples:
Example: To get information about a specific upload
# The following example gets information about a specific upload.
resp = client.get_upload({
arn: "arn:aws:devicefarm:us-west-2:123456789101:upload:EXAMPLE-GUID-123-456", # You can get the test ARN by using the list-uploads CLI command.
})
# resp.to_h outputs the following:
{
upload: {
},
}
Request syntax with placeholder values
resp = client.get_upload({
arn: "AmazonResourceName", # required
})
Response structure
resp.upload.arn #=> String
resp.upload.name #=> String
resp.upload.created #=> Time
resp.upload.type #=> String, one of "ANDROID_APP", "IOS_APP", "WEB_APP", "EXTERNAL_DATA", "APPIUM_JAVA_JUNIT_TEST_PACKAGE", "APPIUM_JAVA_TESTNG_TEST_PACKAGE", "APPIUM_PYTHON_TEST_PACKAGE", "APPIUM_NODE_TEST_PACKAGE", "APPIUM_RUBY_TEST_PACKAGE", "APPIUM_WEB_JAVA_JUNIT_TEST_PACKAGE", "APPIUM_WEB_JAVA_TESTNG_TEST_PACKAGE", "APPIUM_WEB_PYTHON_TEST_PACKAGE", "APPIUM_WEB_NODE_TEST_PACKAGE", "APPIUM_WEB_RUBY_TEST_PACKAGE", "CALABASH_TEST_PACKAGE", "INSTRUMENTATION_TEST_PACKAGE", "UIAUTOMATION_TEST_PACKAGE", "UIAUTOMATOR_TEST_PACKAGE", "XCTEST_TEST_PACKAGE", "XCTEST_UI_TEST_PACKAGE", "APPIUM_JAVA_JUNIT_TEST_SPEC", "APPIUM_JAVA_TESTNG_TEST_SPEC", "APPIUM_PYTHON_TEST_SPEC", "APPIUM_NODE_TEST_SPEC", "APPIUM_RUBY_TEST_SPEC", "APPIUM_WEB_JAVA_JUNIT_TEST_SPEC", "APPIUM_WEB_JAVA_TESTNG_TEST_SPEC", "APPIUM_WEB_PYTHON_TEST_SPEC", "APPIUM_WEB_NODE_TEST_SPEC", "APPIUM_WEB_RUBY_TEST_SPEC", "INSTRUMENTATION_TEST_SPEC", "XCTEST_UI_TEST_SPEC"
resp.upload.status #=> String, one of "INITIALIZED", "PROCESSING", "SUCCEEDED", "FAILED"
resp.upload.url #=> String
resp.upload.metadata #=> String
resp.upload.content_type #=> String
resp.upload.message #=> String
resp.upload.category #=> String, one of "CURATED", "PRIVATE"
Options Hash (options):
-
:arn
(required, String)
—
The upload\'s ARN.
Returns:
-
(Types::GetUploadResult)
—
Returns a response object which responds to the following methods:
See Also:
#get_vpce_configuration(options = {}) ⇒ Types::GetVPCEConfigurationResult
Returns information about the configuration settings for your Amazon Virtual Private Cloud (VPC) endpoint.
Examples:
Request syntax with placeholder values
resp = client.get_vpce_configuration({
arn: "AmazonResourceName", # required
})
Response structure
resp.vpce_configuration.arn #=> String
resp.vpce_configuration.vpce_configuration_name #=> String
resp.vpce_configuration.vpce_service_name #=> String
resp.vpce_configuration.service_dns_name #=> String
resp.vpce_configuration.vpce_configuration_description #=> String
Options Hash (options):
-
:arn
(required, String)
—
The Amazon Resource Name (ARN) of the VPC endpoint configuration you want to describe.
Returns:
-
(Types::GetVPCEConfigurationResult)
—
Returns a response object which responds to the following methods:
See Also:
#install_to_remote_access_session(options = {}) ⇒ Types::InstallToRemoteAccessSessionResult
Installs an application to the device in a remote access session. For Android applications, the file must be in .apk format. For iOS applications, the file must be in .ipa format.
Examples:
Example: To install to a remote access session
# The following example installs a specific app to a device in a specific remote access session.
resp = client.install_to_remote_access_session({
app_arn: "arn:aws:devicefarm:us-west-2:123456789101:app:EXAMPLE-GUID-123-456",
remote_access_session_arn: "arn:aws:devicefarm:us-west-2:123456789101:session:EXAMPLE-GUID-123-456", # You can get the remote access session ARN by using the list-remote-access-sessions CLI command.
})
# resp.to_h outputs the following:
{
app_upload: {
},
}
Request syntax with placeholder values
resp = client.install_to_remote_access_session({
remote_access_session_arn: "AmazonResourceName", # required
app_arn: "AmazonResourceName", # required
})
Response structure
resp.app_upload.arn #=> String
resp.app_upload.name #=> String
resp.app_upload.created #=> Time
resp.app_upload.type #=> String, one of "ANDROID_APP", "IOS_APP", "WEB_APP", "EXTERNAL_DATA", "APPIUM_JAVA_JUNIT_TEST_PACKAGE", "APPIUM_JAVA_TESTNG_TEST_PACKAGE", "APPIUM_PYTHON_TEST_PACKAGE", "APPIUM_NODE_TEST_PACKAGE", "APPIUM_RUBY_TEST_PACKAGE", "APPIUM_WEB_JAVA_JUNIT_TEST_PACKAGE", "APPIUM_WEB_JAVA_TESTNG_TEST_PACKAGE", "APPIUM_WEB_PYTHON_TEST_PACKAGE", "APPIUM_WEB_NODE_TEST_PACKAGE", "APPIUM_WEB_RUBY_TEST_PACKAGE", "CALABASH_TEST_PACKAGE", "INSTRUMENTATION_TEST_PACKAGE", "UIAUTOMATION_TEST_PACKAGE", "UIAUTOMATOR_TEST_PACKAGE", "XCTEST_TEST_PACKAGE", "XCTEST_UI_TEST_PACKAGE", "APPIUM_JAVA_JUNIT_TEST_SPEC", "APPIUM_JAVA_TESTNG_TEST_SPEC", "APPIUM_PYTHON_TEST_SPEC", "APPIUM_NODE_TEST_SPEC", "APPIUM_RUBY_TEST_SPEC", "APPIUM_WEB_JAVA_JUNIT_TEST_SPEC", "APPIUM_WEB_JAVA_TESTNG_TEST_SPEC", "APPIUM_WEB_PYTHON_TEST_SPEC", "APPIUM_WEB_NODE_TEST_SPEC", "APPIUM_WEB_RUBY_TEST_SPEC", "INSTRUMENTATION_TEST_SPEC", "XCTEST_UI_TEST_SPEC"
resp.app_upload.status #=> String, one of "INITIALIZED", "PROCESSING", "SUCCEEDED", "FAILED"
resp.app_upload.url #=> String
resp.app_upload.metadata #=> String
resp.app_upload.content_type #=> String
resp.app_upload.message #=> String
resp.app_upload.category #=> String, one of "CURATED", "PRIVATE"
Options Hash (options):
-
: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 ARN of the app about which you are requesting information.
Returns:
-
(Types::InstallToRemoteAccessSessionResult)
—
Returns a response object which responds to the following methods:
See Also:
#list_artifacts(options = {}) ⇒ Types::ListArtifactsResult
Gets information about artifacts.
Examples:
Example: To list artifacts for a resource
# The following example lists screenshot artifacts for a specific run.
resp = client.list_artifacts({
type: "SCREENSHOT",
arn: "arn:aws:devicefarm:us-west-2:123456789101:run:EXAMPLE-GUID-123-456", # Can also be used to list artifacts for a Job, Suite, or Test ARN.
})
Request syntax with placeholder values
resp = client.list_artifacts({
arn: "AmazonResourceName", # required
type: "SCREENSHOT", # required, accepts SCREENSHOT, FILE, LOG
next_token: "PaginationToken",
})
Response structure
resp.artifacts #=> Array
resp.artifacts[0].arn #=> String
resp.artifacts[0].name #=> String
resp.artifacts[0].type #=> String, one of "UNKNOWN", "SCREENSHOT", "DEVICE_LOG", "MESSAGE_LOG", "VIDEO_LOG", "RESULT_LOG", "SERVICE_LOG", "WEBKIT_LOG", "INSTRUMENTATION_OUTPUT", "EXERCISER_MONKEY_OUTPUT", "CALABASH_JSON_OUTPUT", "CALABASH_PRETTY_OUTPUT", "CALABASH_STANDARD_OUTPUT", "CALABASH_JAVA_XML_OUTPUT", "AUTOMATION_OUTPUT", "APPIUM_SERVER_OUTPUT", "APPIUM_JAVA_OUTPUT", "APPIUM_JAVA_XML_OUTPUT", "APPIUM_PYTHON_OUTPUT", "APPIUM_PYTHON_XML_OUTPUT", "EXPLORER_EVENT_LOG", "EXPLORER_SUMMARY_LOG", "APPLICATION_CRASH_REPORT", "XCTEST_LOG", "VIDEO", "CUSTOMER_ARTIFACT", "CUSTOMER_ARTIFACT_LOG", "TESTSPEC_OUTPUT"
resp.artifacts[0].extension #=> String
resp.artifacts[0].url #=> String
resp.next_token #=> String
Options Hash (options):
-
:arn
(required, String)
—
The run, job, suite, or test ARN.
-
:type
(required, String)
—
The artifacts\' type.
Allowed values include:
FILE
LOG
SCREENSHOT
-
: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:
-
(Types::ListArtifactsResult)
—
Returns a response object which responds to the following methods:
- #artifacts => Array<Types::Artifact>
- #next_token => String
See Also:
#list_device_instances(options = {}) ⇒ Types::ListDeviceInstancesResult
Returns information about the private device instances associated with one or more AWS accounts.
Examples:
Request syntax with placeholder values
resp = client.list_device_instances({
max_results: 1,
next_token: "PaginationToken",
})
Response structure
resp.device_instances #=> Array
resp.device_instances[0].arn #=> String
resp.device_instances[0].device_arn #=> String
resp.device_instances[0].labels #=> Array
resp.device_instances[0].labels[0] #=> String
resp.device_instances[0].status #=> String, one of "IN_USE", "PREPARING", "AVAILABLE", "NOT_AVAILABLE"
resp.device_instances[0].udid #=> String
resp.device_instances[0].instance_profile.arn #=> String
resp.device_instances[0].instance_profile.package_cleanup #=> true/false
resp.device_instances[0].instance_profile.exclude_app_packages_from_cleanup #=> Array
resp.device_instances[0].instance_profile.exclude_app_packages_from_cleanup[0] #=> String
resp.device_instances[0].instance_profile.reboot_after_use #=> true/false
resp.device_instances[0].instance_profile.name #=> String
resp.device_instances[0].instance_profile.description #=> String
resp.next_token #=> String
Options Hash (options):
-
:max_results
(Integer)
—
An integer that specifies the maximum number of items you want to return in the API response.
-
:next_token
(String)
—
An identifier that was returned from the previous call to this operation, which can be used to return the next set of items in the list.
Returns:
-
(Types::ListDeviceInstancesResult)
—
Returns a response object which responds to the following methods:
- #device_instances => Array<Types::DeviceInstance>
- #next_token => String
See Also:
#list_device_pools(options = {}) ⇒ Types::ListDevicePoolsResult
Gets information about device pools.
Examples:
Example: To get information about device pools
# The following example returns information about the private device pools in a specific project.
resp = client.list_device_pools({
type: "PRIVATE",
arn: "arn:aws:devicefarm:us-west-2:123456789101:project:EXAMPLE-GUID-123-456", # You can get the project ARN by using the list-projects CLI command.
})
# resp.to_h outputs the following:
{
device_pools: [
{
name: "Top Devices",
arn: "arn:aws:devicefarm:us-west-2::devicepool:082d10e5-d7d7-48a5-ba5c-12345EXAMPLE",
description: "Top devices",
rules: [
{
value: "[\"arn:aws:devicefarm:us-west-2::device:123456789EXAMPLE\",\"arn:aws:devicefarm:us-west-2::device:123456789EXAMPLE\",\"arn:aws:devicefarm:us-west-2::device:123456789EXAMPLE\",\"arn:aws:devicefarm:us-west-2::device:123456789EXAMPLE\",\"arn:aws:devicefarm:us-west-2::device:123456789EXAMPLE\",\"arn:aws:devicefarm:us-west-2::device:123456789EXAMPLE\",\"arn:aws:devicefarm:us-west-2::device:123456789EXAMPLE\",\"arn:aws:devicefarm:us-west-2::device:123456789EXAMPLE\",\"arn:aws:devicefarm:us-west-2::device:123456789EXAMPLE\",\"arn:aws:devicefarm:us-west-2::device:123456789EXAMPLE\"]",
attribute: "ARN",
operator: "IN",
},
],
},
{
name: "My Android Device Pool",
arn: "arn:aws:devicefarm:us-west-2:123456789101:devicepool:5e01a8c7-c861-4c0a-b1d5-5ec6e6c6dd23/bf96e75a-28f6-4e61-b6a7-12345EXAMPLE",
description: "Samsung Galaxy Android devices",
rules: [
{
value: "[\"arn:aws:devicefarm:us-west-2::device:123456789EXAMPLE\",\"arn:aws:devicefarm:us-west-2::device:123456789EXAMPLE\",\"arn:aws:devicefarm:us-west-2::device:123456789EXAMPLE\"]",
attribute: "ARN",
operator: "IN",
},
],
},
],
}
Request syntax with placeholder values
resp = client.list_device_pools({
arn: "AmazonResourceName", # required
type: "CURATED", # accepts CURATED, PRIVATE
next_token: "PaginationToken",
})
Response structure
resp.device_pools #=> Array
resp.device_pools[0].arn #=> String
resp.device_pools[0].name #=> String
resp.device_pools[0].description #=> String
resp.device_pools[0].type #=> String, one of "CURATED", "PRIVATE"
resp.device_pools[0].rules #=> Array
resp.device_pools[0].rules[0].attribute #=> String, one of "ARN", "PLATFORM", "FORM_FACTOR", "MANUFACTURER", "REMOTE_ACCESS_ENABLED", "REMOTE_DEBUG_ENABLED", "APPIUM_VERSION", "INSTANCE_ARN", "INSTANCE_LABELS", "FLEET_TYPE", "OS_VERSION", "MODEL", "AVAILABILITY"
resp.device_pools[0].rules[0].operator #=> String, one of "EQUALS", "LESS_THAN", "LESS_THAN_OR_EQUALS", "GREATER_THAN", "GREATER_THAN_OR_EQUALS", "IN", "NOT_IN", "CONTAINS"
resp.device_pools[0].rules[0].value #=> String
resp.device_pools[0].max_devices #=> Integer
resp.next_token #=> String
Options Hash (options):
-
: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:
-
(Types::ListDevicePoolsResult)
—
Returns a response object which responds to the following methods:
- #device_pools => Array<Types::DevicePool>
- #next_token => String
See Also:
#list_devices(options = {}) ⇒ Types::ListDevicesResult
Gets information about unique device types.
Examples:
Example: To get information about devices
# The following example returns information about the available devices in a specific project.
resp = client.list_devices({
arn: "arn:aws:devicefarm:us-west-2:123456789101:project:EXAMPLE-GUID-123-456", # You can get the project ARN by using the list-projects CLI command.
})
# resp.to_h outputs the following:
{
}
Request syntax with placeholder values
resp = client.list_devices({
arn: "AmazonResourceName",
next_token: "PaginationToken",
filters: [
{
attribute: "ARN", # accepts ARN, PLATFORM, OS_VERSION, MODEL, AVAILABILITY, FORM_FACTOR, MANUFACTURER, REMOTE_ACCESS_ENABLED, REMOTE_DEBUG_ENABLED, INSTANCE_ARN, INSTANCE_LABELS, FLEET_TYPE
operator: "EQUALS", # accepts EQUALS, LESS_THAN, LESS_THAN_OR_EQUALS, GREATER_THAN, GREATER_THAN_OR_EQUALS, IN, NOT_IN, CONTAINS
values: ["String"],
},
],
})
Response structure
resp.devices #=> Array
resp.devices[0].arn #=> String
resp.devices[0].name #=> String
resp.devices[0].manufacturer #=> String
resp.devices[0].model #=> String
resp.devices[0].model_id #=> String
resp.devices[0].form_factor #=> String, one of "PHONE", "TABLET"
resp.devices[0].platform #=> String, one of "ANDROID", "IOS"
resp.devices[0].os #=> String
resp.devices[0].cpu.frequency #=> String
resp.devices[0].cpu.architecture #=> String
resp.devices[0].cpu.clock #=> Float
resp.devices[0].resolution.width #=> Integer
resp.devices[0].resolution.height #=> Integer
resp.devices[0].heap_size #=> Integer
resp.devices[0].memory #=> Integer
resp.devices[0].image #=> String
resp.devices[0].carrier #=> String
resp.devices[0].radio #=> String
resp.devices[0].remote_access_enabled #=> true/false
resp.devices[0].remote_debug_enabled #=> true/false
resp.devices[0].fleet_type #=> String
resp.devices[0].fleet_name #=> String
resp.devices[0].instances #=> Array
resp.devices[0].instances[0].arn #=> String
resp.devices[0].instances[0].device_arn #=> String
resp.devices[0].instances[0].labels #=> Array
resp.devices[0].instances[0].labels[0] #=> String
resp.devices[0].instances[0].status #=> String, one of "IN_USE", "PREPARING", "AVAILABLE", "NOT_AVAILABLE"
resp.devices[0].instances[0].udid #=> String
resp.devices[0].instances[0].instance_profile.arn #=> String
resp.devices[0].instances[0].instance_profile.package_cleanup #=> true/false
resp.devices[0].instances[0].instance_profile.exclude_app_packages_from_cleanup #=> Array
resp.devices[0].instances[0].instance_profile.exclude_app_packages_from_cleanup[0] #=> String
resp.devices[0].instances[0].instance_profile.reboot_after_use #=> true/false
resp.devices[0].instances[0].instance_profile.name #=> String
resp.devices[0].instances[0].instance_profile.description #=> String
resp.devices[0].availability #=> String, one of "TEMPORARY_NOT_AVAILABLE", "BUSY", "AVAILABLE", "HIGHLY_AVAILABLE"
resp.next_token #=> String
Options Hash (options):
-
:arn
(String)
—
The Amazon Resource Name (ARN) of the project.
-
:next_token
(String)
—
An identifier that was returned from the previous call to this operation, which can be used to return the next set of items in the list.
-
:filters
(Array<Types::DeviceFilter>)
—
Used to select a set of devices. A filter is made up of an attribute, an operator, and one or more values.
Attribute: The aspect of a device such as platform or model used as the selection criteria in a device filter.
Allowed values include:
ARN: The Amazon Resource Name (ARN) of the device (for example,
arn:aws:devicefarm:us-west-2::device:12345Example
).PLATFORM: The device platform. Valid values are ANDROID or IOS.
OS_VERSION: The operating system version (for example, 10.3.2).
MODEL: The device model (for example, iPad 5th Gen).
AVAILABILITY: The current availability of the device. Valid values are AVAILABLE, HIGHLY_AVAILABLE, BUSY, or TEMPORARY_NOT_AVAILABLE.
FORM_FACTOR: The device form factor. Valid values are PHONE or TABLET.
MANUFACTURER: The device manufacturer (for example, Apple).
REMOTE_ACCESS_ENABLED: Whether the device is enabled for remote access. Valid values are TRUE or FALSE.
REMOTE_DEBUG_ENABLED: Whether the device is enabled for remote debugging. Valid values are TRUE or FALSE. Because remote debugging is no longer supported, this attribute is ignored.
INSTANCE_ARN: The Amazon Resource Name (ARN) of the device instance.
INSTANCE_LABELS: The label of the device instance.
FLEET_TYPE: The fleet type. Valid values are PUBLIC or PRIVATE.
Operator: The filter operator.
The EQUALS operator is available for every attribute except INSTANCE_LABELS.
The CONTAINS operator is available for the INSTANCE_LABELS and MODEL attributes.
The IN and NOT_IN operators are available for the ARN, OS_VERSION, MODEL, MANUFACTURER, and INSTANCE_ARN attributes.
The LESS_THAN, GREATER_THAN, LESS_THAN_OR_EQUALS, and GREATER_THAN_OR_EQUALS operators are also available for the OS_VERSION attribute.
Values: An array of one or more filter values.
The IN and NOT_IN operators take a values array that has one or more elements.
The other operators require an array with a single element.
In a request, the AVAILABILITY attribute takes the following values: AVAILABLE, HIGHLY_AVAILABLE, BUSY, or TEMPORARY_NOT_AVAILABLE.
Returns:
-
(Types::ListDevicesResult)
—
Returns a response object which responds to the following methods:
- #devices => Array<Types::Device>
- #next_token => String
See Also:
#list_instance_profiles(options = {}) ⇒ Types::ListInstanceProfilesResult
Returns information about all the instance profiles in an AWS account.
Examples:
Request syntax with placeholder values
resp = client.list_instance_profiles({
max_results: 1,
next_token: "PaginationToken",
})
Response structure
resp.instance_profiles #=> Array
resp.instance_profiles[0].arn #=> String
resp.instance_profiles[0].package_cleanup #=> true/false
resp.instance_profiles[0].exclude_app_packages_from_cleanup #=> Array
resp.instance_profiles[0].exclude_app_packages_from_cleanup[0] #=> String
resp.instance_profiles[0].reboot_after_use #=> true/false
resp.instance_profiles[0].name #=> String
resp.instance_profiles[0].description #=> String
resp.next_token #=> String
Options Hash (options):
-
:max_results
(Integer)
—
An integer that specifies the maximum number of items you want to return in the API response.
-
:next_token
(String)
—
An identifier that was returned from the previous call to this operation, which can be used to return the next set of items in the list.
Returns:
-
(Types::ListInstanceProfilesResult)
—
Returns a response object which responds to the following methods:
- #instance_profiles => Array<Types::InstanceProfile>
- #next_token => String
See Also:
#list_jobs(options = {}) ⇒ Types::ListJobsResult
Gets information about jobs for a given test run.
Examples:
Example: To get information about jobs
# The following example returns information about jobs in a specific project.
resp = client.list_jobs({
arn: "arn:aws:devicefarm:us-west-2:123456789101:project:EXAMPLE-GUID-123-456", # You can get the project ARN by using the list-jobs CLI command.
})
Request syntax with placeholder values
resp = client.list_jobs({
arn: "AmazonResourceName", # required
next_token: "PaginationToken",
})
Response structure
resp.jobs #=> Array
resp.jobs[0].arn #=> String
resp.jobs[0].name #=> String
resp.jobs[0].type #=> String, one of "BUILTIN_FUZZ", "BUILTIN_EXPLORER", "WEB_PERFORMANCE_PROFILE", "APPIUM_JAVA_JUNIT", "APPIUM_JAVA_TESTNG", "APPIUM_PYTHON", "APPIUM_NODE", "APPIUM_RUBY", "APPIUM_WEB_JAVA_JUNIT", "APPIUM_WEB_JAVA_TESTNG", "APPIUM_WEB_PYTHON", "APPIUM_WEB_NODE", "APPIUM_WEB_RUBY", "CALABASH", "INSTRUMENTATION", "UIAUTOMATION", "UIAUTOMATOR", "XCTEST", "XCTEST_UI", "REMOTE_ACCESS_RECORD", "REMOTE_ACCESS_REPLAY"
resp.jobs[0].created #=> Time
resp.jobs[0].status #=> String, one of "PENDING", "PENDING_CONCURRENCY", "PENDING_DEVICE", "PROCESSING", "SCHEDULING", "PREPARING", "RUNNING", "COMPLETED", "STOPPING"
resp.jobs[0].result #=> String, one of "PENDING", "PASSED", "WARNED", "FAILED", "SKIPPED", "ERRORED", "STOPPED"
resp.jobs[0].started #=> Time
resp.jobs[0].stopped #=> Time
resp.jobs[0].counters.total #=> Integer
resp.jobs[0].counters.passed #=> Integer
resp.jobs[0].counters.failed #=> Integer
resp.jobs[0].counters.warned #=> Integer
resp.jobs[0].counters.errored #=> Integer
resp.jobs[0].counters.stopped #=> Integer
resp.jobs[0].counters.skipped #=> Integer
resp.jobs[0].message #=> String
resp.jobs[0].device.arn #=> String
resp.jobs[0].device.name #=> String
resp.jobs[0].device.manufacturer #=> String
resp.jobs[0].device.model #=> String
resp.jobs[0].device.model_id #=> String
resp.jobs[0].device.form_factor #=> String, one of "PHONE", "TABLET"
resp.jobs[0].device.platform #=> String, one of "ANDROID", "IOS"
resp.jobs[0].device.os #=> String
resp.jobs[0].device.cpu.frequency #=> String
resp.jobs[0].device.cpu.architecture #=> String
resp.jobs[0].device.cpu.clock #=> Float
resp.jobs[0].device.resolution.width #=> Integer
resp.jobs[0].device.resolution.height #=> Integer
resp.jobs[0].device.heap_size #=> Integer
resp.jobs[0].device.memory #=> Integer
resp.jobs[0].device.image #=> String
resp.jobs[0].device.carrier #=> String
resp.jobs[0].device.radio #=> String
resp.jobs[0].device.remote_access_enabled #=> true/false
resp.jobs[0].device.remote_debug_enabled #=> true/false
resp.jobs[0].device.fleet_type #=> String
resp.jobs[0].device.fleet_name #=> String
resp.jobs[0].device.instances #=> Array
resp.jobs[0].device.instances[0].arn #=> String
resp.jobs[0].device.instances[0].device_arn #=> String
resp.jobs[0].device.instances[0].labels #=> Array
resp.jobs[0].device.instances[0].labels[0] #=> String
resp.jobs[0].device.instances[0].status #=> String, one of "IN_USE", "PREPARING", "AVAILABLE", "NOT_AVAILABLE"
resp.jobs[0].device.instances[0].udid #=> String
resp.jobs[0].device.instances[0].instance_profile.arn #=> String
resp.jobs[0].device.instances[0].instance_profile.package_cleanup #=> true/false
resp.jobs[0].device.instances[0].instance_profile.exclude_app_packages_from_cleanup #=> Array
resp.jobs[0].device.instances[0].instance_profile.exclude_app_packages_from_cleanup[0] #=> String
resp.jobs[0].device.instances[0].instance_profile.reboot_after_use #=> true/false
resp.jobs[0].device.instances[0].instance_profile.name #=> String
resp.jobs[0].device.instances[0].instance_profile.description #=> String
resp.jobs[0].device.availability #=> String, one of "TEMPORARY_NOT_AVAILABLE", "BUSY", "AVAILABLE", "HIGHLY_AVAILABLE"
resp.jobs[0].instance_arn #=> String
resp.jobs[0].device_minutes.total #=> Float
resp.jobs[0].device_minutes.metered #=> Float
resp.jobs[0].device_minutes.unmetered #=> Float
resp.jobs[0].video_endpoint #=> String
resp.jobs[0].video_capture #=> true/false
resp.next_token #=> String
Options Hash (options):
-
:arn
(required, String)
—
The run\'s Amazon Resource Name (ARN).
-
:next_token
(String)
—
An identifier that was returned from the previous call to this operation, which can be used to return the next set of items in the list.
Returns:
-
(Types::ListJobsResult)
—
Returns a response object which responds to the following methods:
- #jobs => Array<Types::Job>
- #next_token => String
See Also:
#list_network_profiles(options = {}) ⇒ 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
Options Hash (options):
-
: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 to return information about. Valid values are listed here.
-
: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:
-
(Types::ListNetworkProfilesResult)
—
Returns a response object which responds to the following methods:
- #network_profiles => Array<Types::NetworkProfile>
- #next_token => String
See Also:
#list_offering_promotions(options = {}) ⇒ 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 must 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
Options Hash (options):
-
: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:
-
(Types::ListOfferingPromotionsResult)
—
Returns a response object which responds to the following methods:
- #offering_promotions => Array<Types::OfferingPromotion>
- #next_token => String
See Also:
#list_offering_transactions(options = {}) ⇒ 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. If you must be able to invoke this operation, contact aws-devicefarm-support@amazon.com.
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
Options Hash (options):
-
: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:
-
(Types::ListOfferingTransactionsResult)
—
Returns a response object which responds to the following methods:
- #offering_transactions => Array<Types::OfferingTransaction>
- #next_token => String
See Also:
#list_offerings(options = {}) ⇒ 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. If you must be able to invoke this operation, contact aws-devicefarm-support@amazon.com.
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
Options Hash (options):
-
: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:
-
(Types::ListOfferingsResult)
—
Returns a response object which responds to the following methods:
- #offerings => Array<Types::Offering>
- #next_token => String
See Also:
#list_projects(options = {}) ⇒ 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
Options Hash (options):
-
: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:
-
(Types::ListProjectsResult)
—
Returns a response object which responds to the following methods:
- #projects => Array<Types::Project>
- #next_token => String
See Also:
#list_remote_access_sessions(options = {}) ⇒ Types::ListRemoteAccessSessionsResult
Returns a list of all currently running remote access sessions.
Examples:
Example: To get information about a remote access session
# The following example returns information about a specific Device Farm remote access session.
resp = client.list_remote_access_sessions({
arn: "arn:aws:devicefarm:us-west-2:123456789101:session:EXAMPLE-GUID-123-456", # You can get the Amazon Resource Name (ARN) of the session by using the list-sessions CLI command.
next_token: "RW5DdDJkMWYwZjM2MzM2VHVpOHJIUXlDUXlhc2QzRGViYnc9SEXAMPLE=", # A dynamically generated value, used for paginating results.
})
# resp.to_h outputs the following:
{
remote_access_sessions: [
],
}
Request syntax with placeholder values
resp = client.list_remote_access_sessions({
arn: "AmazonResourceName", # required
next_token: "PaginationToken",
})
Response structure
resp.remote_access_sessions #=> Array
resp.remote_access_sessions[0].arn #=> String
resp.remote_access_sessions[0].name #=> String
resp.remote_access_sessions[0].created #=> Time
resp.remote_access_sessions[0].status #=> String, one of "PENDING", "PENDING_CONCURRENCY", "PENDING_DEVICE", "PROCESSING", "SCHEDULING", "PREPARING", "RUNNING", "COMPLETED", "STOPPING"
resp.remote_access_sessions[0].result #=> String, one of "PENDING", "PASSED", "WARNED", "FAILED", "SKIPPED", "ERRORED", "STOPPED"
resp.remote_access_sessions[0].message #=> String
resp.remote_access_sessions[0].started #=> Time
resp.remote_access_sessions[0].stopped #=> Time
resp.remote_access_sessions[0].device.arn #=> String
resp.remote_access_sessions[0].device.name #=> String
resp.remote_access_sessions[0].device.manufacturer #=> String
resp.remote_access_sessions[0].device.model #=> String
resp.remote_access_sessions[0].device.model_id #=> String
resp.remote_access_sessions[0].device.form_factor #=> String, one of "PHONE", "TABLET"
resp.remote_access_sessions[0].device.platform #=> String, one of "ANDROID", "IOS"
resp.remote_access_sessions[0].device.os #=> String
resp.remote_access_sessions[0].device.cpu.frequency #=> String
resp.remote_access_sessions[0].device.cpu.architecture #=> String
resp.remote_access_sessions[0].device.cpu.clock #=> Float
resp.remote_access_sessions[0].device.resolution.width #=> Integer
resp.remote_access_sessions[0].device.resolution.height #=> Integer
resp.remote_access_sessions[0].device.heap_size #=> Integer
resp.remote_access_sessions[0].device.memory #=> Integer
resp.remote_access_sessions[0].device.image #=> String
resp.remote_access_sessions[0].device.carrier #=> String
resp.remote_access_sessions[0].device.radio #=> String
resp.remote_access_sessions[0].device.remote_access_enabled #=> true/false
resp.remote_access_sessions[0].device.remote_debug_enabled #=> true/false
resp.remote_access_sessions[0].device.fleet_type #=> String
resp.remote_access_sessions[0].device.fleet_name #=> String
resp.remote_access_sessions[0].device.instances #=> Array
resp.remote_access_sessions[0].device.instances[0].arn #=> String
resp.remote_access_sessions[0].device.instances[0].device_arn #=> String
resp.remote_access_sessions[0].device.instances[0].labels #=> Array
resp.remote_access_sessions[0].device.instances[0].labels[0] #=> String
resp.remote_access_sessions[0].device.instances[0].status #=> String, one of "IN_USE", "PREPARING", "AVAILABLE", "NOT_AVAILABLE"
resp.remote_access_sessions[0].device.instances[0].udid #=> String
resp.remote_access_sessions[0].device.instances[0].instance_profile.arn #=> String
resp.remote_access_sessions[0].device.instances[0].instance_profile.package_cleanup #=> true/false
resp.remote_access_sessions[0].device.instances[0].instance_profile.exclude_app_packages_from_cleanup #=> Array
resp.remote_access_sessions[0].device.instances[0].instance_profile.exclude_app_packages_from_cleanup[0] #=> String
resp.remote_access_sessions[0].device.instances[0].instance_profile.reboot_after_use #=> true/false
resp.remote_access_sessions[0].device.instances[0].instance_profile.name #=> String
resp.remote_access_sessions[0].device.instances[0].instance_profile.description #=> String
resp.remote_access_sessions[0].device.availability #=> String, one of "TEMPORARY_NOT_AVAILABLE", "BUSY", "AVAILABLE", "HIGHLY_AVAILABLE"
resp.remote_access_sessions[0].instance_arn #=> String
resp.remote_access_sessions[0].remote_debug_enabled #=> true/false
resp.remote_access_sessions[0].remote_record_enabled #=> true/false
resp.remote_access_sessions[0].remote_record_app_arn #=> String
resp.remote_access_sessions[0].host_address #=> String
resp.remote_access_sessions[0].client_id #=> String
resp.remote_access_sessions[0].billing_method #=> String, one of "METERED", "UNMETERED"
resp.remote_access_sessions[0].device_minutes.total #=> Float
resp.remote_access_sessions[0].device_minutes.metered #=> Float
resp.remote_access_sessions[0].device_minutes.unmetered #=> Float
resp.remote_access_sessions[0].endpoint #=> String
resp.remote_access_sessions[0].device_udid #=> String
resp.remote_access_sessions[0].interaction_mode #=> String, one of "INTERACTIVE", "NO_VIDEO", "VIDEO_ONLY"
resp.remote_access_sessions[0].skip_app_resign #=> true/false
resp.next_token #=> String
Options Hash (options):
-
:arn
(required, String)
—
The Amazon Resource Name (ARN) of the project 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:
-
(Types::ListRemoteAccessSessionsResult)
—
Returns a response object which responds to the following methods:
- #remote_access_sessions => Array<Types::RemoteAccessSession>
- #next_token => String
See Also:
#list_runs(options = {}) ⇒ Types::ListRunsResult
Gets information about runs, given an AWS Device Farm project ARN.
Examples:
Example: To get information about a test run
# The following example returns information about a specific test run.
resp = client.list_runs({
arn: "arn:aws:devicefarm:us-west-2:123456789101:run:5e01a8c7-c861-4c0a-b1d5-5ec6e6c6dd23/0fcac17b-6122-44d7-ae5a-12345EXAMPLE", # You can get the Amazon Resource Name (ARN) of the run by using the list-runs CLI command.
next_token: "RW5DdDJkMWYwZjM2MzM2VHVpOHJIUXlDUXlhc2QzRGViYnc9SEXAMPLE", # A dynamically generated value, used for paginating results.
})
# resp.to_h outputs the following:
{
runs: [
{
name: "My Test Run",
type: "BUILTIN_EXPLORER",
arn: "arn:aws:devicefarm:us-west-2:123456789101:run:5e01a8c7-c861-4c0a-b1d5-5ec6e6c6dd23/0fcac17b-6122-44d7-ae5a-12345EXAMPLE",
billing_method: "METERED",
completed_jobs: 0,
counters: {
errored: 0,
failed: 0,
passed: 0,
skipped: 0,
stopped: 0,
total: 0,
warned: 0,
},
created: Time.parse("1472667509.852"),
device_minutes: {
metered: 0.0,
total: 0.0,
unmetered: 0.0,
},
platform: "ANDROID",
result: "PENDING",
status: "RUNNING",
total_jobs: 3,
},
],
}
Request syntax with placeholder values
resp = client.list_runs({
arn: "AmazonResourceName", # required
next_token: "PaginationToken",
})
Response structure
resp.runs #=> Array
resp.runs[0].arn #=> String
resp.runs[0].name #=> String
resp.runs[0].type #=> String, one of "BUILTIN_FUZZ", "BUILTIN_EXPLORER", "WEB_PERFORMANCE_PROFILE", "APPIUM_JAVA_JUNIT", "APPIUM_JAVA_TESTNG", "APPIUM_PYTHON", "APPIUM_NODE", "APPIUM_RUBY", "APPIUM_WEB_JAVA_JUNIT", "APPIUM_WEB_JAVA_TESTNG", "APPIUM_WEB_PYTHON", "APPIUM_WEB_NODE", "APPIUM_WEB_RUBY", "CALABASH", "INSTRUMENTATION", "UIAUTOMATION", "UIAUTOMATOR", "XCTEST", "XCTEST_UI", "REMOTE_ACCESS_RECORD", "REMOTE_ACCESS_REPLAY"
resp.runs[0].platform #=> String, one of "ANDROID", "IOS"
resp.runs[0].created #=> Time
resp.runs[0].status #=> String, one of "PENDING", "PENDING_CONCURRENCY", "PENDING_DEVICE", "PROCESSING", "SCHEDULING", "PREPARING", "RUNNING", "COMPLETED", "STOPPING"
resp.runs[0].result #=> String, one of "PENDING", "PASSED", "WARNED", "FAILED", "SKIPPED", "ERRORED", "STOPPED"
resp.runs[0].started #=> Time
resp.runs[0].stopped #=> Time
resp.runs[0].counters.total #=> Integer
resp.runs[0].counters.passed #=> Integer
resp.runs[0].counters.failed #=> Integer
resp.runs[0].counters.warned #=> Integer
resp.runs[0].counters.errored #=> Integer
resp.runs[0].counters.stopped #=> Integer
resp.runs[0].counters.skipped #=> Integer
resp.runs[0].message #=> String
resp.runs[0].total_jobs #=> Integer
resp.runs[0].completed_jobs #=> Integer
resp.runs[0].billing_method #=> String, one of "METERED", "UNMETERED"
resp.runs[0].device_minutes.total #=> Float
resp.runs[0].device_minutes.metered #=> Float
resp.runs[0].device_minutes.unmetered #=> Float
resp.runs[0].network_profile.arn #=> String
resp.runs[0].network_profile.name #=> String
resp.runs[0].network_profile.description #=> String
resp.runs[0].network_profile.type #=> String, one of "CURATED", "PRIVATE"
resp.runs[0].network_profile.uplink_bandwidth_bits #=> Integer
resp.runs[0].network_profile.downlink_bandwidth_bits #=> Integer
resp.runs[0].network_profile.uplink_delay_ms #=> Integer
resp.runs[0].network_profile.downlink_delay_ms #=> Integer
resp.runs[0].network_profile.uplink_jitter_ms #=> Integer
resp.runs[0].network_profile.downlink_jitter_ms #=> Integer
resp.runs[0].network_profile.uplink_loss_percent #=> Integer
resp.runs[0].network_profile.downlink_loss_percent #=> Integer
resp.runs[0].parsing_result_url #=> String
resp.runs[0].result_code #=> String, one of "PARSING_FAILED", "VPC_ENDPOINT_SETUP_FAILED"
resp.runs[0].seed #=> Integer
resp.runs[0].app_upload #=> String
resp.runs[0].event_count #=> Integer
resp.runs[0].job_timeout_minutes #=> Integer
resp.runs[0].device_pool_arn #=> String
resp.runs[0].locale #=> String
resp.runs[0].radios.wifi #=> true/false
resp.runs[0].radios.bluetooth #=> true/false
resp.runs[0].radios.nfc #=> true/false
resp.runs[0].radios.gps #=> true/false
resp.runs[0].location.latitude #=> Float
resp.runs[0].location.longitude #=> Float
resp.runs[0].customer_artifact_paths.ios_paths #=> Array
resp.runs[0].customer_artifact_paths.ios_paths[0] #=> String
resp.runs[0].customer_artifact_paths.android_paths #=> Array
resp.runs[0].customer_artifact_paths.android_paths[0] #=> String
resp.runs[0].customer_artifact_paths.device_host_paths #=> Array
resp.runs[0].customer_artifact_paths.device_host_paths[0] #=> String
resp.runs[0].web_url #=> String
resp.runs[0].skip_app_resign #=> true/false
resp.runs[0].test_spec_arn #=> String
resp.runs[0].device_selection_result.filters #=> Array
resp.runs[0].device_selection_result.filters[0].attribute #=> String, one of "ARN", "PLATFORM", "OS_VERSION", "MODEL", "AVAILABILITY", "FORM_FACTOR", "MANUFACTURER", "REMOTE_ACCESS_ENABLED", "REMOTE_DEBUG_ENABLED", "INSTANCE_ARN", "INSTANCE_LABELS", "FLEET_TYPE"
resp.runs[0].device_selection_result.filters[0].operator #=> String, one of "EQUALS", "LESS_THAN", "LESS_THAN_OR_EQUALS", "GREATER_THAN", "GREATER_THAN_OR_EQUALS", "IN", "NOT_IN", "CONTAINS"
resp.runs[0].device_selection_result.filters[0].values #=> Array
resp.runs[0].device_selection_result.filters[0].values[0] #=> String
resp.runs[0].device_selection_result.matched_devices_count #=> Integer
resp.runs[0].device_selection_result.max_devices #=> Integer
resp.next_token #=> String
Options Hash (options):
-
: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:
-
(Types::ListRunsResult)
—
Returns a response object which responds to the following methods:
- #runs => Array<Types::Run>
- #next_token => String
See Also:
#list_samples(options = {}) ⇒ Types::ListSamplesResult
Gets information about samples, given an AWS Device Farm job ARN.
Examples:
Example: To get information about samples
# The following example returns information about samples, given a specific Device Farm project.
resp = client.list_samples({
arn: "arn:aws:devicefarm:us-west-2:123456789101:project:EXAMPLE-GUID-123-456", # You can get the Amazon Resource Name (ARN) of the project by using the list-projects CLI command.
next_token: "RW5DdDJkMWYwZjM2MzM2VHVpOHJIUXlDUXlhc2QzRGViYnc9SEXAMPLE", # A dynamically generated value, used for paginating results.
})
# resp.to_h outputs the following:
{
samples: [
],
}
Request syntax with placeholder values
resp = client.list_samples({
arn: "AmazonResourceName", # required
next_token: "PaginationToken",
})
Response structure
resp.samples #=> Array
resp.samples[0].arn #=> String
resp.samples[0].type #=> String, one of "CPU", "MEMORY", "THREADS", "RX_RATE", "TX_RATE", "RX", "TX", "NATIVE_FRAMES", "NATIVE_FPS", "NATIVE_MIN_DRAWTIME", "NATIVE_AVG_DRAWTIME", "NATIVE_MAX_DRAWTIME", "OPENGL_FRAMES", "OPENGL_FPS", "OPENGL_MIN_DRAWTIME", "OPENGL_AVG_DRAWTIME", "OPENGL_MAX_DRAWTIME"
resp.samples[0].url #=> String
resp.next_token #=> String
Options Hash (options):
-
:arn
(required, String)
—
The Amazon Resource Name (ARN) of the job used to list samples.
-
:next_token
(String)
—
An identifier that was returned from the previous call to this operation, which can be used to return the next set of items in the list.
Returns:
-
(Types::ListSamplesResult)
—
Returns a response object which responds to the following methods:
- #samples => Array<Types::Sample>
- #next_token => String
See Also:
#list_suites(options = {}) ⇒ Types::ListSuitesResult
Gets information about test suites for a given job.
Examples:
Example: To get information about suites
# The following example returns information about suites, given a specific Device Farm job.
resp = client.list_suites({
arn: "arn:aws:devicefarm:us-west-2:123456789101:job:EXAMPLE-GUID-123-456", # You can get the Amazon Resource Name (ARN) of the job by using the list-jobs CLI command.
next_token: "RW5DdDJkMWYwZjM2MzM2VHVpOHJIUXlDUXlhc2QzRGViYnc9SEXAMPLE", # A dynamically generated value, used for paginating results.
})
# resp.to_h outputs the following:
{
suites: [
],
}
Request syntax with placeholder values
resp = client.list_suites({
arn: "AmazonResourceName", # required
next_token: "PaginationToken",
})
Response structure
resp.suites #=> Array
resp.suites[0].arn #=> String
resp.suites[0].name #=> String
resp.suites[0].type #=> String, one of "BUILTIN_FUZZ", "BUILTIN_EXPLORER", "WEB_PERFORMANCE_PROFILE", "APPIUM_JAVA_JUNIT", "APPIUM_JAVA_TESTNG", "APPIUM_PYTHON", "APPIUM_NODE", "APPIUM_RUBY", "APPIUM_WEB_JAVA_JUNIT", "APPIUM_WEB_JAVA_TESTNG", "APPIUM_WEB_PYTHON", "APPIUM_WEB_NODE", "APPIUM_WEB_RUBY", "CALABASH", "INSTRUMENTATION", "UIAUTOMATION", "UIAUTOMATOR", "XCTEST", "XCTEST_UI", "REMOTE_ACCESS_RECORD", "REMOTE_ACCESS_REPLAY"
resp.suites[0].created #=> Time
resp.suites[0].status #=> String, one of "PENDING", "PENDING_CONCURRENCY", "PENDING_DEVICE", "PROCESSING", "SCHEDULING", "PREPARING", "RUNNING", "COMPLETED", "STOPPING"
resp.suites[0].result #=> String, one of "PENDING", "PASSED", "WARNED", "FAILED", "SKIPPED", "ERRORED", "STOPPED"
resp.suites[0].started #=> Time
resp.suites[0].stopped #=> Time
resp.suites[0].counters.total #=> Integer
resp.suites[0].counters.passed #=> Integer
resp.suites[0].counters.failed #=> Integer
resp.suites[0].counters.warned #=> Integer
resp.suites[0].counters.errored #=> Integer
resp.suites[0].counters.stopped #=> Integer
resp.suites[0].counters.skipped #=> Integer
resp.suites[0].message #=> String
resp.suites[0].device_minutes.total #=> Float
resp.suites[0].device_minutes.metered #=> Float
resp.suites[0].device_minutes.unmetered #=> Float
resp.next_token #=> String
Options Hash (options):
-
:arn
(required, String)
—
The job\'s Amazon Resource Name (ARN).
-
:next_token
(String)
—
An identifier that was returned from the previous call to this operation, which can be used to return the next set of items in the list.
Returns:
-
(Types::ListSuitesResult)
—
Returns a response object which responds to the following methods:
- #suites => Array<Types::Suite>
- #next_token => String
See Also:
#list_tags_for_resource(options = {}) ⇒ Types::ListTagsForResourceResponse
List the tags for an AWS Device Farm resource.
Examples:
Request syntax with placeholder values
resp = client.list_tags_for_resource({
resource_arn: "DeviceFarmArn", # required
})
Response structure
resp.tags #=> Array
resp.tags[0].key #=> String
resp.tags[0].value #=> String
Options Hash (options):
-
:resource_arn
(required, String)
—
The Amazon Resource Name (ARN) of the resource or resources for which to list tags. You can associate tags with the following Device Farm resources:
PROJECT
,RUN
,NETWORK_PROFILE
,INSTANCE_PROFILE
,DEVICE_INSTANCE
,SESSION
,DEVICE_POOL
,DEVICE
, andVPCE_CONFIGURATION
.
Returns:
-
(Types::ListTagsForResourceResponse)
—
Returns a response object which responds to the following methods:
- #tags => Array<Types::Tag>
See Also:
#list_test_grid_projects(options = {}) ⇒ Types::ListTestGridProjectsResult
Gets a list of all Selenium testing projects in your account.
Examples:
Request syntax with placeholder values
resp = client.list_test_grid_projects({
max_result: 1,
next_token: "PaginationToken",
})
Response structure
resp.test_grid_projects #=> Array
resp.test_grid_projects[0].arn #=> String
resp.test_grid_projects[0].name #=> String
resp.test_grid_projects[0].description #=> String
resp.test_grid_projects[0].created #=> Time
resp.next_token #=> String
Options Hash (options):
-
:max_result
(Integer)
—
Return no more than this number of results.
-
:next_token
(String)
—
From a response, used to continue a paginated listing.
Returns:
-
(Types::ListTestGridProjectsResult)
—
Returns a response object which responds to the following methods:
- #test_grid_projects => Array<Types::TestGridProject>
- #next_token => String
See Also:
#list_test_grid_session_actions(options = {}) ⇒ Types::ListTestGridSessionActionsResult
Returns a list of the actions taken in a TestGridSession.
Examples:
Request syntax with placeholder values
resp = client.list_test_grid_session_actions({
session_arn: "DeviceFarmArn", # required
max_result: 1,
next_token: "PaginationToken",
})
Response structure
resp.actions #=> Array
resp.actions[0].action #=> String
resp.actions[0].started #=> Time
resp.actions[0].duration #=> Integer
resp.actions[0].status_code #=> String
resp.actions[0].request_method #=> String
resp.next_token #=> String
Options Hash (options):
-
:session_arn
(required, String)
—
The ARN of the session to retrieve.
-
:max_result
(Integer)
—
The maximum number of sessions to return per response.
-
:next_token
(String)
—
Pagination token.
Returns:
-
(Types::ListTestGridSessionActionsResult)
—
Returns a response object which responds to the following methods:
- #actions => Array<Types::TestGridSessionAction>
- #next_token => String
See Also:
#list_test_grid_session_artifacts(options = {}) ⇒ Types::ListTestGridSessionArtifactsResult
Retrieves a list of artifacts created during the session.
Examples:
Request syntax with placeholder values
resp = client.list_test_grid_session_artifacts({
session_arn: "DeviceFarmArn", # required
type: "VIDEO", # accepts VIDEO, LOG
max_result: 1,
next_token: "PaginationToken",
})
Response structure
resp.artifacts #=> Array
resp.artifacts[0].filename #=> String
resp.artifacts[0].type #=> String, one of "UNKNOWN", "VIDEO", "SELENIUM_LOG"
resp.artifacts[0].url #=> String
resp.next_token #=> String
Options Hash (options):
-
:session_arn
(required, String)
—
The ARN of a TestGridSession.
-
:type
(String)
—
Limit results to a specified type of artifact.
-
:max_result
(Integer)
—
The maximum number of results to be returned by a request.
-
:next_token
(String)
—
Pagination token.
Returns:
-
(Types::ListTestGridSessionArtifactsResult)
—
Returns a response object which responds to the following methods:
- #artifacts => Array<Types::TestGridSessionArtifact>
- #next_token => String
See Also:
#list_test_grid_sessions(options = {}) ⇒ Types::ListTestGridSessionsResult
Retrieves a list of sessions for a TestGridProject.
Examples:
Request syntax with placeholder values
resp = client.list_test_grid_sessions({
project_arn: "DeviceFarmArn", # required
status: "ACTIVE", # accepts ACTIVE, CLOSED, ERRORED
creation_time_after: Time.now,
creation_time_before: Time.now,
end_time_after: Time.now,
end_time_before: Time.now,
max_result: 1,
next_token: "PaginationToken",
})
Response structure
resp.test_grid_sessions #=> Array
resp.test_grid_sessions[0].arn #=> String
resp.test_grid_sessions[0].status #=> String, one of "ACTIVE", "CLOSED", "ERRORED"
resp.test_grid_sessions[0].created #=> Time
resp.test_grid_sessions[0].ended #=> Time
resp.test_grid_sessions[0].billing_minutes #=> Float
resp.test_grid_sessions[0].selenium_properties #=> String
resp.next_token #=> String
Options Hash (options):
-
:project_arn
(required, String)
—
ARN of a TestGridProject.
-
:status
(String)
—
Return only sessions in this state.
-
:creation_time_after
(Time)
—
Return only sessions created after this time.
-
:creation_time_before
(Time)
—
Return only sessions created before this time.
-
:end_time_after
(Time)
—
Return only sessions that ended after this time.
-
:end_time_before
(Time)
—
Return only sessions that ended before this time.
-
:max_result
(Integer)
—
Return only this many results at a time.
-
:next_token
(String)
—
Pagination token.
Returns:
-
(Types::ListTestGridSessionsResult)
—
Returns a response object which responds to the following methods:
- #test_grid_sessions => Array<Types::TestGridSession>
- #next_token => String
See Also:
#list_tests(options = {}) ⇒ Types::ListTestsResult
Gets information about tests in a given test suite.
Examples:
Example: To get information about tests
# The following example returns information about tests, given a specific Device Farm project.
resp = client.list_tests({
arn: "arn:aws:devicefarm:us-west-2:123456789101:project:EXAMPLE-GUID-123-456", # You can get the Amazon Resource Name (ARN) of the project by using the list-projects CLI command.
next_token: "RW5DdDJkMWYwZjM2MzM2VHVpOHJIUXlDUXlhc2QzRGViYnc9SEXAMPLE", # A dynamically generated value, used for paginating results.
})
# resp.to_h outputs the following:
{
tests: [
],
}
Request syntax with placeholder values
resp = client.list_tests({
arn: "AmazonResourceName", # required
next_token: "PaginationToken",
})
Response structure
resp.tests #=> Array
resp.tests[0].arn #=> String
resp.tests[0].name #=> String
resp.tests[0].type #=> String, one of "BUILTIN_FUZZ", "BUILTIN_EXPLORER", "WEB_PERFORMANCE_PROFILE", "APPIUM_JAVA_JUNIT", "APPIUM_JAVA_TESTNG", "APPIUM_PYTHON", "APPIUM_NODE", "APPIUM_RUBY", "APPIUM_WEB_JAVA_JUNIT", "APPIUM_WEB_JAVA_TESTNG", "APPIUM_WEB_PYTHON", "APPIUM_WEB_NODE", "APPIUM_WEB_RUBY", "CALABASH", "INSTRUMENTATION", "UIAUTOMATION", "UIAUTOMATOR", "XCTEST", "XCTEST_UI", "REMOTE_ACCESS_RECORD", "REMOTE_ACCESS_REPLAY"
resp.tests[0].created #=> Time
resp.tests[0].status #=> String, one of "PENDING", "PENDING_CONCURRENCY", "PENDING_DEVICE", "PROCESSING", "SCHEDULING", "PREPARING", "RUNNING", "COMPLETED", "STOPPING"
resp.tests[0].result #=> String, one of "PENDING", "PASSED", "WARNED", "FAILED", "SKIPPED", "ERRORED", "STOPPED"
resp.tests[0].started #=> Time
resp.tests[0].stopped #=> Time
resp.tests[0].counters.total #=> Integer
resp.tests[0].counters.passed #=> Integer
resp.tests[0].counters.failed #=> Integer
resp.tests[0].counters.warned #=> Integer
resp.tests[0].counters.errored #=> Integer
resp.tests[0].counters.stopped #=> Integer
resp.tests[0].counters.skipped #=> Integer
resp.tests[0].message #=> String
resp.tests[0].device_minutes.total #=> Float
resp.tests[0].device_minutes.metered #=> Float
resp.tests[0].device_minutes.unmetered #=> Float
resp.next_token #=> String
Options Hash (options):
-
:arn
(required, String)
—
The test suite\'s Amazon Resource Name (ARN).
-
:next_token
(String)
—
An identifier that was returned from the previous call to this operation, which can be used to return the next set of items in the list.
Returns:
-
(Types::ListTestsResult)
—
Returns a response object which responds to the following methods:
- #tests => Array<Types::Test>
- #next_token => String
See Also:
#list_unique_problems(options = {}) ⇒ Types::ListUniqueProblemsResult
Gets information about unique problems, such as exceptions or crashes.
Unique problems are defined as a single instance of an error across a run, job, or suite. For example, if a call in your application consistently raises an exception (OutOfBoundsException in MyActivity.java:386
), ListUniqueProblems
returns a single entry instead of many individual entries for that exception.
Examples:
Example: To get information about unique problems
# The following example returns information about unique problems, given a specific Device Farm project.
resp = client.list_unique_problems({
arn: "arn:aws:devicefarm:us-west-2:123456789101:project:EXAMPLE-GUID-123-456", # You can get the Amazon Resource Name (ARN) of the project by using the list-projects CLI command.
next_token: "RW5DdDJkMWYwZjM2MzM2VHVpOHJIUXlDUXlhc2QzRGViYnc9SEXAMPLE", # A dynamically generated value, used for paginating results.
})
# resp.to_h outputs the following:
{
unique_problems: {
},
}
Request syntax with placeholder values
resp = client.list_unique_problems({
arn: "AmazonResourceName", # required
next_token: "PaginationToken",
})
Response structure
resp.unique_problems #=> Hash
resp.unique_problems["ExecutionResult"] #=> Array
resp.unique_problems["ExecutionResult"][0].message #=> String
resp.unique_problems["ExecutionResult"][0].problems #=> Array
resp.unique_problems["ExecutionResult"][0].problems[0].run.arn #=> String
resp.unique_problems["ExecutionResult"][0].problems[0].run.name #=> String
resp.unique_problems["ExecutionResult"][0].problems[0].job.arn #=> String
resp.unique_problems["ExecutionResult"][0].problems[0].job.name #=> String
resp.unique_problems["ExecutionResult"][0].problems[0].suite.arn #=> String
resp.unique_problems["ExecutionResult"][0].problems[0].suite.name #=> String
resp.unique_problems["ExecutionResult"][0].problems[0].test.arn #=> String
resp.unique_problems["ExecutionResult"][0].problems[0].test.name #=> String
resp.unique_problems["ExecutionResult"][0].problems[0].device.arn #=> String
resp.unique_problems["ExecutionResult"][0].problems[0].device.name #=> String
resp.unique_problems["ExecutionResult"][0].problems[0].device.manufacturer #=> String
resp.unique_problems["ExecutionResult"][0].problems[0].device.model #=> String
resp.unique_problems["ExecutionResult"][0].problems[0].device.model_id #=> String
resp.unique_problems["ExecutionResult"][0].problems[0].device.form_factor #=> String, one of "PHONE", "TABLET"
resp.unique_problems["ExecutionResult"][0].problems[0].device.platform #=> String, one of "ANDROID", "IOS"
resp.unique_problems["ExecutionResult"][0].problems[0].device.os #=> String
resp.unique_problems["ExecutionResult"][0].problems[0].device.cpu.frequency #=> String
resp.unique_problems["ExecutionResult"][0].problems[0].device.cpu.architecture #=> String
resp.unique_problems["ExecutionResult"][0].problems[0].device.cpu.clock #=> Float
resp.unique_problems["ExecutionResult"][0].problems[0].device.resolution.width #=> Integer
resp.unique_problems["ExecutionResult"][0].problems[0].device.resolution.height #=> Integer
resp.unique_problems["ExecutionResult"][0].problems[0].device.heap_size #=> Integer
resp.unique_problems["ExecutionResult"][0].problems[0].device.memory #=> Integer
resp.unique_problems["ExecutionResult"][0].problems[0].device.image #=> String
resp.unique_problems["ExecutionResult"][0].problems[0].device.carrier #=> String
resp.unique_problems["ExecutionResult"][0].problems[0].device.radio #=> String
resp.unique_problems["ExecutionResult"][0].problems[0].device.remote_access_enabled #=> true/false
resp.unique_problems["ExecutionResult"][0].problems[0].device.remote_debug_enabled #=> true/false
resp.unique_problems["ExecutionResult"][0].problems[0].device.fleet_type #=> String
resp.unique_problems["ExecutionResult"][0].problems[0].device.fleet_name #=> String
resp.unique_problems["ExecutionResult"][0].problems[0].device.instances #=> Array
resp.unique_problems["ExecutionResult"][0].problems[0].device.instances[0].arn #=> String
resp.unique_problems["ExecutionResult"][0].problems[0].device.instances[0].device_arn #=> String
resp.unique_problems["ExecutionResult"][0].problems[0].device.instances[0].labels #=> Array
resp.unique_problems["ExecutionResult"][0].problems[0].device.instances[0].labels[0] #=> String
resp.unique_problems["ExecutionResult"][0].problems[0].device.instances[0].status #=> String, one of "IN_USE", "PREPARING", "AVAILABLE", "NOT_AVAILABLE"
resp.unique_problems["ExecutionResult"][0].problems[0].device.instances[0].udid #=> String
resp.unique_problems["ExecutionResult"][0].problems[0].device.instances[0].instance_profile.arn #=> String
resp.unique_problems["ExecutionResult"][0].problems[0].device.instances[0].instance_profile.package_cleanup #=> true/false
resp.unique_problems["ExecutionResult"][0].problems[0].device.instances[0].instance_profile.exclude_app_packages_from_cleanup #=> Array
resp.unique_problems["ExecutionResult"][0].problems[0].device.instances[0].instance_profile.exclude_app_packages_from_cleanup[0] #=> String
resp.unique_problems["ExecutionResult"][0].problems[0].device.instances[0].instance_profile.reboot_after_use #=> true/false
resp.unique_problems["ExecutionResult"][0].problems[0].device.instances[0].instance_profile.name #=> String
resp.unique_problems["ExecutionResult"][0].problems[0].device.instances[0].instance_profile.description #=> String
resp.unique_problems["ExecutionResult"][0].problems[0].device.availability #=> String, one of "TEMPORARY_NOT_AVAILABLE", "BUSY", "AVAILABLE", "HIGHLY_AVAILABLE"
resp.unique_problems["ExecutionResult"][0].problems[0].result #=> String, one of "PENDING", "PASSED", "WARNED", "FAILED", "SKIPPED", "ERRORED", "STOPPED"
resp.unique_problems["ExecutionResult"][0].problems[0].message #=> String
resp.next_token #=> String
Options Hash (options):
-
: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:
-
(Types::ListUniqueProblemsResult)
—
Returns a response object which responds to the following methods:
- #unique_problems => Hash<String,Array<Types::UniqueProblem>>
- #next_token => String
See Also:
#list_uploads(options = {}) ⇒ Types::ListUploadsResult
Gets information about uploads, given an AWS Device Farm project ARN.
Examples:
Example: To get information about uploads
# The following example returns information about uploads, given a specific Device Farm project.
resp = client.list_uploads({
arn: "arn:aws:devicefarm:us-west-2:123456789101:project:EXAMPLE-GUID-123-456", # You can get the Amazon Resource Name (ARN) of the project by using the list-projects CLI command.
next_token: "RW5DdDJkMWYwZjM2MzM2VHVpOHJIUXlDUXlhc2QzRGViYnc9SEXAMPLE", # A dynamically generated value, used for paginating results.
})
# resp.to_h outputs the following:
{
uploads: [
],
}
Request syntax with placeholder values
resp = client.list_uploads({
arn: "AmazonResourceName", # required
type: "ANDROID_APP", # accepts ANDROID_APP, IOS_APP, WEB_APP, EXTERNAL_DATA, APPIUM_JAVA_JUNIT_TEST_PACKAGE, APPIUM_JAVA_TESTNG_TEST_PACKAGE, APPIUM_PYTHON_TEST_PACKAGE, APPIUM_NODE_TEST_PACKAGE, APPIUM_RUBY_TEST_PACKAGE, APPIUM_WEB_JAVA_JUNIT_TEST_PACKAGE, APPIUM_WEB_JAVA_TESTNG_TEST_PACKAGE, APPIUM_WEB_PYTHON_TEST_PACKAGE, APPIUM_WEB_NODE_TEST_PACKAGE, APPIUM_WEB_RUBY_TEST_PACKAGE, CALABASH_TEST_PACKAGE, INSTRUMENTATION_TEST_PACKAGE, UIAUTOMATION_TEST_PACKAGE, UIAUTOMATOR_TEST_PACKAGE, XCTEST_TEST_PACKAGE, XCTEST_UI_TEST_PACKAGE, APPIUM_JAVA_JUNIT_TEST_SPEC, APPIUM_JAVA_TESTNG_TEST_SPEC, APPIUM_PYTHON_TEST_SPEC, APPIUM_NODE_TEST_SPEC, APPIUM_RUBY_TEST_SPEC, APPIUM_WEB_JAVA_JUNIT_TEST_SPEC, APPIUM_WEB_JAVA_TESTNG_TEST_SPEC, APPIUM_WEB_PYTHON_TEST_SPEC, APPIUM_WEB_NODE_TEST_SPEC, APPIUM_WEB_RUBY_TEST_SPEC, INSTRUMENTATION_TEST_SPEC, XCTEST_UI_TEST_SPEC
next_token: "PaginationToken",
})
Response structure
resp.uploads #=> Array
resp.uploads[0].arn #=> String
resp.uploads[0].name #=> String
resp.uploads[0].created #=> Time
resp.uploads[0].type #=> String, one of "ANDROID_APP", "IOS_APP", "WEB_APP", "EXTERNAL_DATA", "APPIUM_JAVA_JUNIT_TEST_PACKAGE", "APPIUM_JAVA_TESTNG_TEST_PACKAGE", "APPIUM_PYTHON_TEST_PACKAGE", "APPIUM_NODE_TEST_PACKAGE", "APPIUM_RUBY_TEST_PACKAGE", "APPIUM_WEB_JAVA_JUNIT_TEST_PACKAGE", "APPIUM_WEB_JAVA_TESTNG_TEST_PACKAGE", "APPIUM_WEB_PYTHON_TEST_PACKAGE", "APPIUM_WEB_NODE_TEST_PACKAGE", "APPIUM_WEB_RUBY_TEST_PACKAGE", "CALABASH_TEST_PACKAGE", "INSTRUMENTATION_TEST_PACKAGE", "UIAUTOMATION_TEST_PACKAGE", "UIAUTOMATOR_TEST_PACKAGE", "XCTEST_TEST_PACKAGE", "XCTEST_UI_TEST_PACKAGE", "APPIUM_JAVA_JUNIT_TEST_SPEC", "APPIUM_JAVA_TESTNG_TEST_SPEC", "APPIUM_PYTHON_TEST_SPEC", "APPIUM_NODE_TEST_SPEC", "APPIUM_RUBY_TEST_SPEC", "APPIUM_WEB_JAVA_JUNIT_TEST_SPEC", "APPIUM_WEB_JAVA_TESTNG_TEST_SPEC", "APPIUM_WEB_PYTHON_TEST_SPEC", "APPIUM_WEB_NODE_TEST_SPEC", "APPIUM_WEB_RUBY_TEST_SPEC", "INSTRUMENTATION_TEST_SPEC", "XCTEST_UI_TEST_SPEC"
resp.uploads[0].status #=> String, one of "INITIALIZED", "PROCESSING", "SUCCEEDED", "FAILED"
resp.uploads[0].url #=> String
resp.uploads[0].metadata #=> String
resp.uploads[0].content_type #=> String
resp.uploads[0].message #=> String
resp.uploads[0].category #=> String, one of "CURATED", "PRIVATE"
resp.next_token #=> String
Options Hash (options):
-
:arn
(required, String)
—
The Amazon Resource Name (ARN) of the project for which you want to list uploads.
-
:type
(String)
—
The type of upload.
Must be one of the following values:
ANDROID_APP
IOS_APP
WEB_APP
EXTERNAL_DATA
APPIUM_JAVA_JUNIT_TEST_PACKAGE
APPIUM_JAVA_TESTNG_TEST_PACKAGE
APPIUM_PYTHON_TEST_PACKAGE
APPIUM_NODE_TEST_PACKAGE
APPIUM_RUBY_TEST_PACKAGE
APPIUM_WEB_JAVA_JUNIT_TEST_PACKAGE
APPIUM_WEB_JAVA_TESTNG_TEST_PACKAGE
APPIUM_WEB_PYTHON_TEST_PACKAGE
APPIUM_WEB_NODE_TEST_PACKAGE
APPIUM_WEB_RUBY_TEST_PACKAGE
CALABASH_TEST_PACKAGE
INSTRUMENTATION_TEST_PACKAGE
UIAUTOMATION_TEST_PACKAGE
UIAUTOMATOR_TEST_PACKAGE
XCTEST_TEST_PACKAGE
XCTEST_UI_TEST_PACKAGE
APPIUM_JAVA_JUNIT_TEST_SPEC
APPIUM_JAVA_TESTNG_TEST_SPEC
APPIUM_PYTHON_TEST_SPEC
APPIUM_NODE_TEST_SPEC
APPIUM_RUBY_TEST_SPEC
APPIUM_WEB_JAVA_JUNIT_TEST_SPEC
APPIUM_WEB_JAVA_TESTNG_TEST_SPEC
APPIUM_WEB_PYTHON_TEST_SPEC
APPIUM_WEB_NODE_TEST_SPEC
APPIUM_WEB_RUBY_TEST_SPEC
INSTRUMENTATION_TEST_SPEC
XCTEST_UI_TEST_SPEC
-
:next_token
(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:
-
(Types::ListUploadsResult)
—
Returns a response object which responds to the following methods:
- #uploads => Array<Types::Upload>
- #next_token => String
See Also:
#list_vpce_configurations(options = {}) ⇒ Types::ListVPCEConfigurationsResult
Returns information about all Amazon Virtual Private Cloud (VPC) endpoint configurations in the AWS account.
Examples:
Request syntax with placeholder values
resp = client.list_vpce_configurations({
max_results: 1,
next_token: "PaginationToken",
})
Response structure
resp.vpce_configurations #=> Array
resp.vpce_configurations[0].arn #=> String
resp.vpce_configurations[0].vpce_configuration_name #=> String
resp.vpce_configurations[0].vpce_service_name #=> String
resp.vpce_configurations[0].service_dns_name #=> String
resp.vpce_configurations[0].vpce_configuration_description #=> String
resp.next_token #=> String
Options Hash (options):
-
:max_results
(Integer)
—
An integer that specifies the maximum number of items you want to return in the API response.
-
:next_token
(String)
—
An identifier that was returned from the previous call to this operation, which can be used to return the next set of items in the list.
Returns:
-
(Types::ListVPCEConfigurationsResult)
—
Returns a response object which responds to the following methods:
- #vpce_configurations => Array<Types::VPCEConfiguration>
- #next_token => String
See Also:
#purchase_offering(options = {}) ⇒ 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. If you must be able to invoke this operation, contact aws-devicefarm-support@amazon.com.
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"
Options Hash (options):
-
:offering_id
(String)
—
The ID of the offering.
-
:quantity
(Integer)
—
The number of device slots to purchase in an offering request.
-
:offering_promotion_id
(String)
—
The ID of the offering promotion to be applied to the purchase.
Returns:
-
(Types::PurchaseOfferingResult)
—
Returns a response object which responds to the following methods:
See Also:
#renew_offering(options = {}) ⇒ 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. If you must be able to invoke this operation, contact aws-devicefarm-support@amazon.com.
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"
Options Hash (options):
-
:offering_id
(String)
—
The ID of a request to renew an offering.
-
:quantity
(Integer)
—
The quantity requested in an offering renewal.
Returns:
-
(Types::RenewOfferingResult)
—
Returns a response object which responds to the following methods:
See Also:
#schedule_run(options = {}) ⇒ Types::ScheduleRunResult
Schedules a run.
Examples:
Example: To schedule a test run
# The following example schedules a test run named MyRun.
resp = client.schedule_run({
name: "MyRun",
device_pool_arn: "arn:aws:devicefarm:us-west-2:123456789101:pool:EXAMPLE-GUID-123-456", # You can get the Amazon Resource Name (ARN) of the device pool by using the list-pools CLI command.
project_arn: "arn:aws:devicefarm:us-west-2:123456789101:project:EXAMPLE-GUID-123-456", # You can get the Amazon Resource Name (ARN) of the project by using the list-projects CLI command.
test: {
type: "APPIUM_JAVA_JUNIT",
test_package_arn: "arn:aws:devicefarm:us-west-2:123456789101:test:EXAMPLE-GUID-123-456",
},
})
# resp.to_h outputs the following:
{
run: {
},
}
Request syntax with placeholder values
resp = client.schedule_run({
project_arn: "AmazonResourceName", # required
app_arn: "AmazonResourceName",
device_pool_arn: "AmazonResourceName",
device_selection_configuration: {
filters: [ # required
{
attribute: "ARN", # accepts ARN, PLATFORM, OS_VERSION, MODEL, AVAILABILITY, FORM_FACTOR, MANUFACTURER, REMOTE_ACCESS_ENABLED, REMOTE_DEBUG_ENABLED, INSTANCE_ARN, INSTANCE_LABELS, FLEET_TYPE
operator: "EQUALS", # accepts EQUALS, LESS_THAN, LESS_THAN_OR_EQUALS, GREATER_THAN, GREATER_THAN_OR_EQUALS, IN, NOT_IN, CONTAINS
values: ["String"],
},
],
max_devices: 1, # required
},
name: "Name",
test: { # required
type: "BUILTIN_FUZZ", # required, accepts BUILTIN_FUZZ, BUILTIN_EXPLORER, WEB_PERFORMANCE_PROFILE, APPIUM_JAVA_JUNIT, APPIUM_JAVA_TESTNG, APPIUM_PYTHON, APPIUM_NODE, APPIUM_RUBY, APPIUM_WEB_JAVA_JUNIT, APPIUM_WEB_JAVA_TESTNG, APPIUM_WEB_PYTHON, APPIUM_WEB_NODE, APPIUM_WEB_RUBY, CALABASH, INSTRUMENTATION, UIAUTOMATION, UIAUTOMATOR, XCTEST, XCTEST_UI, REMOTE_ACCESS_RECORD, REMOTE_ACCESS_REPLAY
test_package_arn: "AmazonResourceName",
test_spec_arn: "AmazonResourceName",
filter: "Filter",
parameters: {
"String" => "String",
},
},
configuration: {
extra_data_package_arn: "AmazonResourceName",
network_profile_arn: "AmazonResourceName",
locale: "String",
location: {
latitude: 1.0, # required
longitude: 1.0, # required
},
vpce_configuration_arns: ["AmazonResourceName"],
customer_artifact_paths: {
ios_paths: ["String"],
android_paths: ["String"],
device_host_paths: ["String"],
},
radios: {
wifi: false,
bluetooth: false,
nfc: false,
gps: false,
},
auxiliary_apps: ["AmazonResourceName"],
billing_method: "METERED", # accepts METERED, UNMETERED
},
execution_configuration: {
job_timeout_minutes: 1,
accounts_cleanup: false,
app_packages_cleanup: false,
video_capture: false,
skip_app_resign: false,
},
})
Response structure
resp.run.arn #=> String
resp.run.name #=> String
resp.run.type #=> String, one of "BUILTIN_FUZZ", "BUILTIN_EXPLORER", "WEB_PERFORMANCE_PROFILE", "APPIUM_JAVA_JUNIT", "APPIUM_JAVA_TESTNG", "APPIUM_PYTHON", "APPIUM_NODE", "APPIUM_RUBY", "APPIUM_WEB_JAVA_JUNIT", "APPIUM_WEB_JAVA_TESTNG", "APPIUM_WEB_PYTHON", "APPIUM_WEB_NODE", "APPIUM_WEB_RUBY", "CALABASH", "INSTRUMENTATION", "UIAUTOMATION", "UIAUTOMATOR", "XCTEST", "XCTEST_UI", "REMOTE_ACCESS_RECORD", "REMOTE_ACCESS_REPLAY"
resp.run.platform #=> String, one of "ANDROID", "IOS"
resp.run.created #=> Time
resp.run.status #=> String, one of "PENDING", "PENDING_CONCURRENCY", "PENDING_DEVICE", "PROCESSING", "SCHEDULING", "PREPARING", "RUNNING", "COMPLETED", "STOPPING"
resp.run.result #=> String, one of "PENDING", "PASSED", "WARNED", "FAILED", "SKIPPED", "ERRORED", "STOPPED"
resp.run.started #=> Time
resp.run.stopped #=> Time
resp.run.counters.total #=> Integer
resp.run.counters.passed #=> Integer
resp.run.counters.failed #=> Integer
resp.run.counters.warned #=> Integer
resp.run.counters.errored #=> Integer
resp.run.counters.stopped #=> Integer
resp.run.counters.skipped #=> Integer
resp.run.message #=> String
resp.run.total_jobs #=> Integer
resp.run.completed_jobs #=> Integer
resp.run.billing_method #=> String, one of "METERED", "UNMETERED"
resp.run.device_minutes.total #=> Float
resp.run.device_minutes.metered #=> Float
resp.run.device_minutes.unmetered #=> Float
resp.run.network_profile.arn #=> String
resp.run.network_profile.name #=> String
resp.run.network_profile.description #=> String
resp.run.network_profile.type #=> String, one of "CURATED", "PRIVATE"
resp.run.network_profile.uplink_bandwidth_bits #=> Integer
resp.run.network_profile.downlink_bandwidth_bits #=> Integer
resp.run.network_profile.uplink_delay_ms #=> Integer
resp.run.network_profile.downlink_delay_ms #=> Integer
resp.run.network_profile.uplink_jitter_ms #=> Integer
resp.run.network_profile.downlink_jitter_ms #=> Integer
resp.run.network_profile.uplink_loss_percent #=> Integer
resp.run.network_profile.downlink_loss_percent #=> Integer
resp.run.parsing_result_url #=> String
resp.run.result_code #=> String, one of "PARSING_FAILED", "VPC_ENDPOINT_SETUP_FAILED"
resp.run.seed #=> Integer
resp.run.app_upload #=> String
resp.run.event_count #=> Integer
resp.run.job_timeout_minutes #=> Integer
resp.run.device_pool_arn #=> String
resp.run.locale #=> String
resp.run.radios.wifi #=> true/false
resp.run.radios.bluetooth #=> true/false
resp.run.radios.nfc #=> true/false
resp.run.radios.gps #=> true/false
resp.run.location.latitude #=> Float
resp.run.location.longitude #=> Float
resp.run.customer_artifact_paths.ios_paths #=> Array
resp.run.customer_artifact_paths.ios_paths[0] #=> String
resp.run.customer_artifact_paths.android_paths #=> Array
resp.run.customer_artifact_paths.android_paths[0] #=> String
resp.run.customer_artifact_paths.device_host_paths #=> Array
resp.run.customer_artifact_paths.device_host_paths[0] #=> String
resp.run.web_url #=> String
resp.run.skip_app_resign #=> true/false
resp.run.test_spec_arn #=> String
resp.run.device_selection_result.filters #=> Array
resp.run.device_selection_result.filters[0].attribute #=> String, one of "ARN", "PLATFORM", "OS_VERSION", "MODEL", "AVAILABILITY", "FORM_FACTOR", "MANUFACTURER", "REMOTE_ACCESS_ENABLED", "REMOTE_DEBUG_ENABLED", "INSTANCE_ARN", "INSTANCE_LABELS", "FLEET_TYPE"
resp.run.device_selection_result.filters[0].operator #=> String, one of "EQUALS", "LESS_THAN", "LESS_THAN_OR_EQUALS", "GREATER_THAN", "GREATER_THAN_OR_EQUALS", "IN", "NOT_IN", "CONTAINS"
resp.run.device_selection_result.filters[0].values #=> Array
resp.run.device_selection_result.filters[0].values[0] #=> String
resp.run.device_selection_result.matched_devices_count #=> Integer
resp.run.device_selection_result.max_devices #=> Integer
Options Hash (options):
-
:project_arn
(required, String)
—
The ARN of the project for the run to be scheduled.
-
:app_arn
(String)
—
The ARN of an application package to run tests against, created with CreateUpload. See ListUploads.
-
:device_pool_arn
(String)
—
The ARN of the device pool for the run to be scheduled.
-
:device_selection_configuration
(Types::DeviceSelectionConfiguration)
—
The filter criteria used to dynamically select a set of devices for a test run and the maximum number of devices to be included in the run.
Either
devicePoolArn
ordeviceSelectionConfiguration
is required in a request. -
:name
(String)
—
The name for the run to be scheduled.
-
:test
(required, Types::ScheduleRunTest)
—
Information about the test for the run to be scheduled.
-
:configuration
(Types::ScheduleRunConfiguration)
—
Information about the settings for the run to be scheduled.
-
:execution_configuration
(Types::ExecutionConfiguration)
—
Specifies configuration information about a test run, such as the execution timeout (in minutes).
Returns:
-
(Types::ScheduleRunResult)
—
Returns a response object which responds to the following methods:
- #run => Types::Run
See Also:
#stop_job(options = {}) ⇒ Types::StopJobResult
Initiates a stop request for the current job. AWS Device Farm immediately stops the job on the device where tests have not started. You are not billed for this device. On the device where tests have started, setup suite and teardown suite tests run to completion on the device. You are billed for setup, teardown, and any tests that were in progress or already completed.
Examples:
Request syntax with placeholder values
resp = client.stop_job({
arn: "AmazonResourceName", # required
})
Response structure
resp.job.arn #=> String
resp.job.name #=> String
resp.job.type #=> String, one of "BUILTIN_FUZZ", "BUILTIN_EXPLORER", "WEB_PERFORMANCE_PROFILE", "APPIUM_JAVA_JUNIT", "APPIUM_JAVA_TESTNG", "APPIUM_PYTHON", "APPIUM_NODE", "APPIUM_RUBY", "APPIUM_WEB_JAVA_JUNIT", "APPIUM_WEB_JAVA_TESTNG", "APPIUM_WEB_PYTHON", "APPIUM_WEB_NODE", "APPIUM_WEB_RUBY", "CALABASH", "INSTRUMENTATION", "UIAUTOMATION", "UIAUTOMATOR", "XCTEST", "XCTEST_UI", "REMOTE_ACCESS_RECORD", "REMOTE_ACCESS_REPLAY"
resp.job.created #=> Time
resp.job.status #=> String, one of "PENDING", "PENDING_CONCURRENCY", "PENDING_DEVICE", "PROCESSING", "SCHEDULING", "PREPARING", "RUNNING", "COMPLETED", "STOPPING"
resp.job.result #=> String, one of "PENDING", "PASSED", "WARNED", "FAILED", "SKIPPED", "ERRORED", "STOPPED"
resp.job.started #=> Time
resp.job.stopped #=> Time
resp.job.counters.total #=> Integer
resp.job.counters.passed #=> Integer
resp.job.counters.failed #=> Integer
resp.job.counters.warned #=> Integer
resp.job.counters.errored #=> Integer
resp.job.counters.stopped #=> Integer
resp.job.counters.skipped #=> Integer
resp.job.message #=> String
resp.job.device.arn #=> String
resp.job.device.name #=> String
resp.job.device.manufacturer #=> String
resp.job.device.model #=> String
resp.job.device.model_id #=> String
resp.job.device.form_factor #=> String, one of "PHONE", "TABLET"
resp.job.device.platform #=> String, one of "ANDROID", "IOS"
resp.job.device.os #=> String
resp.job.device.cpu.frequency #=> String
resp.job.device.cpu.architecture #=> String
resp.job.device.cpu.clock #=> Float
resp.job.device.resolution.width #=> Integer
resp.job.device.resolution.height #=> Integer
resp.job.device.heap_size #=> Integer
resp.job.device.memory #=> Integer
resp.job.device.image #=> String
resp.job.device.carrier #=> String
resp.job.device.radio #=> String
resp.job.device.remote_access_enabled #=> true/false
resp.job.device.remote_debug_enabled #=> true/false
resp.job.device.fleet_type #=> String
resp.job.device.fleet_name #=> String
resp.job.device.instances #=> Array
resp.job.device.instances[0].arn #=> String
resp.job.device.instances[0].device_arn #=> String
resp.job.device.instances[0].labels #=> Array
resp.job.device.instances[0].labels[0] #=> String
resp.job.device.instances[0].status #=> String, one of "IN_USE", "PREPARING", "AVAILABLE", "NOT_AVAILABLE"
resp.job.device.instances[0].udid #=> String
resp.job.device.instances[0].instance_profile.arn #=> String
resp.job.device.instances[0].instance_profile.package_cleanup #=> true/false
resp.job.device.instances[0].instance_profile.exclude_app_packages_from_cleanup #=> Array
resp.job.device.instances[0].instance_profile.exclude_app_packages_from_cleanup[0] #=> String
resp.job.device.instances[0].instance_profile.reboot_after_use #=> true/false
resp.job.device.instances[0].instance_profile.name #=> String
resp.job.device.instances[0].instance_profile.description #=> String
resp.job.device.availability #=> String, one of "TEMPORARY_NOT_AVAILABLE", "BUSY", "AVAILABLE", "HIGHLY_AVAILABLE"
resp.job.instance_arn #=> String
resp.job.device_minutes.total #=> Float
resp.job.device_minutes.metered #=> Float
resp.job.device_minutes.unmetered #=> Float
resp.job.video_endpoint #=> String
resp.job.video_capture #=> true/false
Options Hash (options):
-
:arn
(required, String)
—
Represents the Amazon Resource Name (ARN) of the Device Farm job to stop.
Returns:
-
(Types::StopJobResult)
—
Returns a response object which responds to the following methods:
- #job => Types::Job
See Also:
#stop_remote_access_session(options = {}) ⇒ 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.model_id #=> String
resp.remote_access_session.device.form_factor #=> String, one of "PHONE", "TABLET"
resp.remote_access_session.device.platform #=> String, one of "ANDROID", "IOS"
resp.remote_access_session.device.os #=> String
resp.remote_access_session.device.cpu.frequency #=> String
resp.remote_access_session.device.cpu.architecture #=> String
resp.remote_access_session.device.cpu.clock #=> Float
resp.remote_access_session.device.resolution.width #=> Integer
resp.remote_access_session.device.resolution.height #=> Integer
resp.remote_access_session.device.heap_size #=> Integer
resp.remote_access_session.device.memory #=> Integer
resp.remote_access_session.device.image #=> String
resp.remote_access_session.device.carrier #=> String
resp.remote_access_session.device.radio #=> String
resp.remote_access_session.device.remote_access_enabled #=> true/false
resp.remote_access_session.device.remote_debug_enabled #=> true/false
resp.remote_access_session.device.fleet_type #=> String
resp.remote_access_session.device.fleet_name #=> String
resp.remote_access_session.device.instances #=> Array
resp.remote_access_session.device.instances[0].arn #=> String
resp.remote_access_session.device.instances[0].device_arn #=> String
resp.remote_access_session.device.instances[0].labels #=> Array
resp.remote_access_session.device.instances[0].labels[0] #=> String
resp.remote_access_session.device.instances[0].status #=> String, one of "IN_USE", "PREPARING", "AVAILABLE", "NOT_AVAILABLE"
resp.remote_access_session.device.instances[0].udid #=> String
resp.remote_access_session.device.instances[0].instance_profile.arn #=> String
resp.remote_access_session.device.instances[0].instance_profile.package_cleanup #=> true/false
resp.remote_access_session.device.instances[0].instance_profile.exclude_app_packages_from_cleanup #=> Array
resp.remote_access_session.device.instances[0].instance_profile.exclude_app_packages_from_cleanup[0] #=> String
resp.remote_access_session.device.instances[0].instance_profile.reboot_after_use #=> true/false
resp.remote_access_session.device.instances[0].instance_profile.name #=> String
resp.remote_access_session.device.instances[0].instance_profile.description #=> String
resp.remote_access_session.device.availability #=> String, one of "TEMPORARY_NOT_AVAILABLE", "BUSY", "AVAILABLE", "HIGHLY_AVAILABLE"
resp.remote_access_session.instance_arn #=> String
resp.remote_access_session.remote_debug_enabled #=> true/false
resp.remote_access_session.remote_record_enabled #=> true/false
resp.remote_access_session.remote_record_app_arn #=> String
resp.remote_access_session.host_address #=> String
resp.remote_access_session.client_id #=> String
resp.remote_access_session.billing_method #=> String, one of "METERED", "UNMETERED"
resp.remote_access_session.device_minutes.total #=> Float
resp.remote_access_session.device_minutes.metered #=> Float
resp.remote_access_session.device_minutes.unmetered #=> Float
resp.remote_access_session.endpoint #=> String
resp.remote_access_session.device_udid #=> String
resp.remote_access_session.interaction_mode #=> String, one of "INTERACTIVE", "NO_VIDEO", "VIDEO_ONLY"
resp.remote_access_session.skip_app_resign #=> true/false
Options Hash (options):
-
:arn
(required, String)
—
The Amazon Resource Name (ARN) of the remote access session to stop.
Returns:
-
(Types::StopRemoteAccessSessionResult)
—
Returns a response object which responds to the following methods:
See Also:
#stop_run(options = {}) ⇒ Types::StopRunResult
Initiates a stop request for the current test run. AWS Device Farm immediately stops the run on devices where tests have not started. You are not billed for these devices. On devices where tests have started executing, setup suite and teardown suite tests run to completion on those devices. You are 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", "WEB_PERFORMANCE_PROFILE", "APPIUM_JAVA_JUNIT", "APPIUM_JAVA_TESTNG", "APPIUM_PYTHON", "APPIUM_NODE", "APPIUM_RUBY", "APPIUM_WEB_JAVA_JUNIT", "APPIUM_WEB_JAVA_TESTNG", "APPIUM_WEB_PYTHON", "APPIUM_WEB_NODE", "APPIUM_WEB_RUBY", "CALABASH", "INSTRUMENTATION", "UIAUTOMATION", "UIAUTOMATOR", "XCTEST", "XCTEST_UI", "REMOTE_ACCESS_RECORD", "REMOTE_ACCESS_REPLAY"
resp.run.platform #=> String, one of "ANDROID", "IOS"
resp.run.created #=> Time
resp.run.status #=> String, one of "PENDING", "PENDING_CONCURRENCY", "PENDING_DEVICE", "PROCESSING", "SCHEDULING", "PREPARING", "RUNNING", "COMPLETED", "STOPPING"
resp.run.result #=> String, one of "PENDING", "PASSED", "WARNED", "FAILED", "SKIPPED", "ERRORED", "STOPPED"
resp.run.started #=> Time
resp.run.stopped #=> Time
resp.run.counters.total #=> Integer
resp.run.counters.passed #=> Integer
resp.run.counters.failed #=> Integer
resp.run.counters.warned #=> Integer
resp.run.counters.errored #=> Integer
resp.run.counters.stopped #=> Integer
resp.run.counters.skipped #=> Integer
resp.run.message #=> String
resp.run.total_jobs #=> Integer
resp.run.completed_jobs #=> Integer
resp.run.billing_method #=> String, one of "METERED", "UNMETERED"
resp.run.device_minutes.total #=> Float
resp.run.device_minutes.metered #=> Float
resp.run.device_minutes.unmetered #=> Float
resp.run.network_profile.arn #=> String
resp.run.network_profile.name #=> String
resp.run.network_profile.description #=> String
resp.run.network_profile.type #=> String, one of "CURATED", "PRIVATE"
resp.run.network_profile.uplink_bandwidth_bits #=> Integer
resp.run.network_profile.downlink_bandwidth_bits #=> Integer
resp.run.network_profile.uplink_delay_ms #=> Integer
resp.run.network_profile.downlink_delay_ms #=> Integer
resp.run.network_profile.uplink_jitter_ms #=> Integer
resp.run.network_profile.downlink_jitter_ms #=> Integer
resp.run.network_profile.uplink_loss_percent #=> Integer
resp.run.network_profile.downlink_loss_percent #=> Integer
resp.run.parsing_result_url #=> String
resp.run.result_code #=> String, one of "PARSING_FAILED", "VPC_ENDPOINT_SETUP_FAILED"
resp.run.seed #=> Integer
resp.run.app_upload #=> String
resp.run.event_count #=> Integer
resp.run.job_timeout_minutes #=> Integer
resp.run.device_pool_arn #=> String
resp.run.locale #=> String
resp.run.radios.wifi #=> true/false
resp.run.radios.bluetooth #=> true/false
resp.run.radios.nfc #=> true/false
resp.run.radios.gps #=> true/false
resp.run.location.latitude #=> Float
resp.run.location.longitude #=> Float
resp.run.customer_artifact_paths.ios_paths #=> Array
resp.run.customer_artifact_paths.ios_paths[0] #=> String
resp.run.customer_artifact_paths.android_paths #=> Array
resp.run.customer_artifact_paths.android_paths[0] #=> String
resp.run.customer_artifact_paths.device_host_paths #=> Array
resp.run.customer_artifact_paths.device_host_paths[0] #=> String
resp.run.web_url #=> String
resp.run.skip_app_resign #=> true/false
resp.run.test_spec_arn #=> String
resp.run.device_selection_result.filters #=> Array
resp.run.device_selection_result.filters[0].attribute #=> String, one of "ARN", "PLATFORM", "OS_VERSION", "MODEL", "AVAILABILITY", "FORM_FACTOR", "MANUFACTURER", "REMOTE_ACCESS_ENABLED", "REMOTE_DEBUG_ENABLED", "INSTANCE_ARN", "INSTANCE_LABELS", "FLEET_TYPE"
resp.run.device_selection_result.filters[0].operator #=> String, one of "EQUALS", "LESS_THAN", "LESS_THAN_OR_EQUALS", "GREATER_THAN", "GREATER_THAN_OR_EQUALS", "IN", "NOT_IN", "CONTAINS"
resp.run.device_selection_result.filters[0].values #=> Array
resp.run.device_selection_result.filters[0].values[0] #=> String
resp.run.device_selection_result.matched_devices_count #=> Integer
resp.run.device_selection_result.max_devices #=> Integer
Options Hash (options):
-
:arn
(required, String)
—
Represents the Amazon Resource Name (ARN) of the Device Farm run to stop.
Returns:
-
(Types::StopRunResult)
—
Returns a response object which responds to the following methods:
- #run => Types::Run
See Also:
#tag_resource(options = {}) ⇒ Struct
Associates the specified tags to a resource with the specified resourceArn
. If existing tags on a resource are not specified in the request parameters, they are not changed. When a resource is deleted, the tags associated with that resource are also deleted.
Examples:
Request syntax with placeholder values
resp = client.tag_resource({
resource_arn: "DeviceFarmArn", # required
tags: [ # required
{
key: "TagKey", # required
value: "TagValue", # required
},
],
})
Options Hash (options):
-
:resource_arn
(required, String)
—
The Amazon Resource Name (ARN) of the resource or resources to which to add tags. You can associate tags with the following Device Farm resources:
PROJECT
,RUN
,NETWORK_PROFILE
,INSTANCE_PROFILE
,DEVICE_INSTANCE
,SESSION
,DEVICE_POOL
,DEVICE
, andVPCE_CONFIGURATION
. -
:tags
(required, Array<Types::Tag>)
—
The tags to add to the resource. A tag is an array of key-value pairs. Tag keys can have a maximum character length of 128 characters. Tag values can have a maximum length of 256 characters.
Returns:
-
(Struct)
—
Returns an empty response.
See Also:
#untag_resource(options = {}) ⇒ Struct
Deletes the specified tags from a resource.
Examples:
Request syntax with placeholder values
resp = client.untag_resource({
resource_arn: "DeviceFarmArn", # required
tag_keys: ["TagKey"], # required
})
Options Hash (options):
-
:resource_arn
(required, String)
—
The Amazon Resource Name (ARN) of the resource or resources from which to delete tags. You can associate tags with the following Device Farm resources:
PROJECT
,RUN
,NETWORK_PROFILE
,INSTANCE_PROFILE
,DEVICE_INSTANCE
,SESSION
,DEVICE_POOL
,DEVICE
, andVPCE_CONFIGURATION
. -
:tag_keys
(required, Array<String>)
—
The keys of the tags to be removed.
Returns:
-
(Struct)
—
Returns an empty response.
See Also:
#update_device_instance(options = {}) ⇒ Types::UpdateDeviceInstanceResult
Updates information about a private device instance.
Examples:
Request syntax with placeholder values
resp = client.update_device_instance({
arn: "AmazonResourceName", # required
profile_arn: "AmazonResourceName",
labels: ["String"],
})
Response structure
resp.device_instance.arn #=> String
resp.device_instance.device_arn #=> String
resp.device_instance.labels #=> Array
resp.device_instance.labels[0] #=> String
resp.device_instance.status #=> String, one of "IN_USE", "PREPARING", "AVAILABLE", "NOT_AVAILABLE"
resp.device_instance.udid #=> String
resp.device_instance.instance_profile.arn #=> String
resp.device_instance.instance_profile.package_cleanup #=> true/false
resp.device_instance.instance_profile.exclude_app_packages_from_cleanup #=> Array
resp.device_instance.instance_profile.exclude_app_packages_from_cleanup[0] #=> String
resp.device_instance.instance_profile.reboot_after_use #=> true/false
resp.device_instance.instance_profile.name #=> String
resp.device_instance.instance_profile.description #=> String
Options Hash (options):
-
:arn
(required, String)
—
The Amazon Resource Name (ARN) of the device instance.
-
:profile_arn
(String)
—
The ARN of the profile that you want to associate with the device instance.
-
:labels
(Array<String>)
—
An array of strings that you want to associate with the device instance.
Returns:
-
(Types::UpdateDeviceInstanceResult)
—
Returns a response object which responds to the following methods:
See Also:
#update_device_pool(options = {}) ⇒ 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, INSTANCE_ARN, INSTANCE_LABELS, FLEET_TYPE, OS_VERSION, MODEL, AVAILABILITY
operator: "EQUALS", # accepts EQUALS, LESS_THAN, LESS_THAN_OR_EQUALS, GREATER_THAN, GREATER_THAN_OR_EQUALS, IN, NOT_IN, CONTAINS
value: "String",
},
],
max_devices: 1,
clear_max_devices: false,
})
Response structure
resp.device_pool.arn #=> String
resp.device_pool.name #=> String
resp.device_pool.description #=> String
resp.device_pool.type #=> String, one of "CURATED", "PRIVATE"
resp.device_pool.rules #=> Array
resp.device_pool.rules[0].attribute #=> String, one of "ARN", "PLATFORM", "FORM_FACTOR", "MANUFACTURER", "REMOTE_ACCESS_ENABLED", "REMOTE_DEBUG_ENABLED", "APPIUM_VERSION", "INSTANCE_ARN", "INSTANCE_LABELS", "FLEET_TYPE", "OS_VERSION", "MODEL", "AVAILABILITY"
resp.device_pool.rules[0].operator #=> String, one of "EQUALS", "LESS_THAN", "LESS_THAN_OR_EQUALS", "GREATER_THAN", "GREATER_THAN_OR_EQUALS", "IN", "NOT_IN", "CONTAINS"
resp.device_pool.rules[0].value #=> String
resp.device_pool.max_devices #=> Integer
Options Hash (options):
-
:arn
(required, String)
—
The Amazon Resource Name (ARN) of the Device Farm device pool to update.
-
:name
(String)
—
A string that represents the name of the device pool to update.
-
:description
(String)
—
A description of the device pool to update.
-
:rules
(Array<Types::Rule>)
—
Represents the rules to modify for the device pool. Updating rules is optional. If you update rules for your request, the update replaces the existing rules.
-
:max_devices
(Integer)
—
The number of devices that Device Farm can add to your device pool. Device Farm adds devices that are available and that meet the criteria that you assign for the
rules
parameter. Depending on how many devices meet these constraints, your device pool might contain fewer devices than the value for this parameter.By specifying the maximum number of devices, you can control the costs that you incur by running tests.
If you use this parameter in your request, you cannot use the
clearMaxDevices
parameter in the same request. -
:clear_max_devices
(Boolean)
—
Sets whether the
maxDevices
parameter applies to your device pool. If you set this parameter totrue
, themaxDevices
parameter does not apply, and Device Farm does not limit the number of devices that it adds to your device pool. In this case, Device Farm adds all available devices that meet the criteria specified in therules
parameter.If you use this parameter in your request, you cannot use the
maxDevices
parameter in the same request.
Returns:
-
(Types::UpdateDevicePoolResult)
—
Returns a response object which responds to the following methods:
See Also:
#update_instance_profile(options = {}) ⇒ Types::UpdateInstanceProfileResult
Updates information about an existing private device instance profile.
Examples:
Request syntax with placeholder values
resp = client.update_instance_profile({
arn: "AmazonResourceName", # required
name: "Name",
description: "Message",
package_cleanup: false,
exclude_app_packages_from_cleanup: ["String"],
reboot_after_use: false,
})
Response structure
resp.instance_profile.arn #=> String
resp.instance_profile.package_cleanup #=> true/false
resp.instance_profile.exclude_app_packages_from_cleanup #=> Array
resp.instance_profile.exclude_app_packages_from_cleanup[0] #=> String
resp.instance_profile.reboot_after_use #=> true/false
resp.instance_profile.name #=> String
resp.instance_profile.description #=> String
Options Hash (options):
-
:arn
(required, String)
—
The Amazon Resource Name (ARN) of the instance profile.
-
:name
(String)
—
The updated name for your instance profile.
-
:description
(String)
—
The updated description for your instance profile.
-
:package_cleanup
(Boolean)
—
The updated choice for whether you want to specify package cleanup. The default value is
false
for private devices. -
:exclude_app_packages_from_cleanup
(Array<String>)
—
An array of strings that specifies the list of app packages that should not be cleaned up from the device after a test run is over.
The list of packages is only considered if you set
packageCleanup
totrue
. -
:reboot_after_use
(Boolean)
—
The updated choice for whether you want to reboot the device after use. The default value is
true
.
Returns:
-
(Types::UpdateInstanceProfileResult)
—
Returns a response object which responds to the following methods:
See Also:
#update_network_profile(options = {}) ⇒ Types::UpdateNetworkProfileResult
Updates the network profile.
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
Options Hash (options):
-
:arn
(required, String)
—
The Amazon Resource Name (ARN) of the project for which you want to update network profile settings.
-
:name
(String)
—
The name of the network profile about which you are returning information.
-
:description
(String)
—
The description of the network profile about which you are returning information.
-
:type
(String)
—
The type of network profile to return information about. Valid values are listed here.
-
: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:
-
(Types::UpdateNetworkProfileResult)
—
Returns a response object which responds to the following methods:
See Also:
#update_project(options = {}) ⇒ 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
Options Hash (options):
-
:arn
(required, String)
—
The Amazon Resource Name (ARN) of the project whose name to update.
-
:name
(String)
—
A string that represents 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 executes before it times out.
Returns:
-
(Types::UpdateProjectResult)
—
Returns a response object which responds to the following methods:
See Also:
#update_test_grid_project(options = {}) ⇒ Types::UpdateTestGridProjectResult
Change details of a project.
Examples:
Request syntax with placeholder values
resp = client.update_test_grid_project({
project_arn: "DeviceFarmArn", # required
name: "ResourceName",
description: "ResourceDescription",
})
Response structure
resp.test_grid_project.arn #=> String
resp.test_grid_project.name #=> String
resp.test_grid_project.description #=> String
resp.test_grid_project.created #=> Time
Options Hash (options):
-
:project_arn
(required, String)
—
ARN of the project to update.
-
:name
(String)
—
Human-readable name for the project.
-
:description
(String)
—
Human-readable description for the project.
Returns:
-
(Types::UpdateTestGridProjectResult)
—
Returns a response object which responds to the following methods:
See Also:
#update_upload(options = {}) ⇒ Types::UpdateUploadResult
Updates an uploaded test spec.
Examples:
Request syntax with placeholder values
resp = client.update_upload({
arn: "AmazonResourceName", # required
name: "Name",
content_type: "ContentType",
edit_content: false,
})
Response structure
resp.upload.arn #=> String
resp.upload.name #=> String
resp.upload.created #=> Time
resp.upload.type #=> String, one of "ANDROID_APP", "IOS_APP", "WEB_APP", "EXTERNAL_DATA", "APPIUM_JAVA_JUNIT_TEST_PACKAGE", "APPIUM_JAVA_TESTNG_TEST_PACKAGE", "APPIUM_PYTHON_TEST_PACKAGE", "APPIUM_NODE_TEST_PACKAGE", "APPIUM_RUBY_TEST_PACKAGE", "APPIUM_WEB_JAVA_JUNIT_TEST_PACKAGE", "APPIUM_WEB_JAVA_TESTNG_TEST_PACKAGE", "APPIUM_WEB_PYTHON_TEST_PACKAGE", "APPIUM_WEB_NODE_TEST_PACKAGE", "APPIUM_WEB_RUBY_TEST_PACKAGE", "CALABASH_TEST_PACKAGE", "INSTRUMENTATION_TEST_PACKAGE", "UIAUTOMATION_TEST_PACKAGE", "UIAUTOMATOR_TEST_PACKAGE", "XCTEST_TEST_PACKAGE", "XCTEST_UI_TEST_PACKAGE", "APPIUM_JAVA_JUNIT_TEST_SPEC", "APPIUM_JAVA_TESTNG_TEST_SPEC", "APPIUM_PYTHON_TEST_SPEC", "APPIUM_NODE_TEST_SPEC", "APPIUM_RUBY_TEST_SPEC", "APPIUM_WEB_JAVA_JUNIT_TEST_SPEC", "APPIUM_WEB_JAVA_TESTNG_TEST_SPEC", "APPIUM_WEB_PYTHON_TEST_SPEC", "APPIUM_WEB_NODE_TEST_SPEC", "APPIUM_WEB_RUBY_TEST_SPEC", "INSTRUMENTATION_TEST_SPEC", "XCTEST_UI_TEST_SPEC"
resp.upload.status #=> String, one of "INITIALIZED", "PROCESSING", "SUCCEEDED", "FAILED"
resp.upload.url #=> String
resp.upload.metadata #=> String
resp.upload.content_type #=> String
resp.upload.message #=> String
resp.upload.category #=> String, one of "CURATED", "PRIVATE"
Options Hash (options):
-
:arn
(required, String)
—
The Amazon Resource Name (ARN) of the uploaded test spec.
-
:name
(String)
—
The upload\'s test spec file name. The name must not contain any forward slashes (/). The test spec file name must end with the
.yaml
or.yml
file extension. -
:content_type
(String)
—
The upload\'s content type (for example,
application/x-yaml
). -
:edit_content
(Boolean)
—
Set to true if the YAML file has changed and must be updated. Otherwise, set to false.
Returns:
-
(Types::UpdateUploadResult)
—
Returns a response object which responds to the following methods:
See Also:
#update_vpce_configuration(options = {}) ⇒ Types::UpdateVPCEConfigurationResult
Updates information about an Amazon Virtual Private Cloud (VPC) endpoint configuration.
Examples:
Request syntax with placeholder values
resp = client.update_vpce_configuration({
arn: "AmazonResourceName", # required
vpce_configuration_name: "VPCEConfigurationName",
vpce_service_name: "VPCEServiceName",
service_dns_name: "ServiceDnsName",
vpce_configuration_description: "VPCEConfigurationDescription",
})
Response structure
resp.vpce_configuration.arn #=> String
resp.vpce_configuration.vpce_configuration_name #=> String
resp.vpce_configuration.vpce_service_name #=> String
resp.vpce_configuration.service_dns_name #=> String
resp.vpce_configuration.vpce_configuration_description #=> String
Options Hash (options):
-
:arn
(required, String)
—
The Amazon Resource Name (ARN) of the VPC endpoint configuration you want to update.
-
:vpce_configuration_name
(String)
—
The friendly name you give to your VPC endpoint configuration to manage your configurations more easily.
-
:vpce_service_name
(String)
—
The name of the VPC endpoint service running in your AWS account that you want Device Farm to test.
-
:service_dns_name
(String)
—
The DNS (domain) name used to connect to your private service in your VPC. The DNS name must not already be in use on the internet.
-
:vpce_configuration_description
(String)
—
An optional description that provides details about your VPC endpoint configuration.
Returns:
-
(Types::UpdateVPCEConfigurationResult)
—
Returns a response object which responds to the following methods:
See Also:
#wait_until(waiter_name, params = {}) {|waiter| ... } ⇒ Boolean
Waiters polls an API operation until a resource enters a desired state.
Basic Usage
Waiters will poll until they are succesful, they fail by entering a terminal state, or until a maximum number of attempts are made.
# polls in a loop, sleeping between attempts client.waiter_until(waiter_name, params)
Configuration
You can configure the maximum number of polling attempts, and the delay (in seconds) between each polling attempt. You configure waiters by passing a block to #wait_until:
# poll for ~25 seconds
client.wait_until(...) do |w|
w.max_attempts = 5
w.delay = 5
end
Callbacks
You can be notified before each polling attempt and before each
delay. If you throw :success
or :failure
from these callbacks,
it will terminate the waiter.
started_at = Time.now
client.wait_until(...) do |w|
# disable max attempts
w.max_attempts = nil
# poll for 1 hour, instead of a number of attempts
w.before_wait do |attempts, response|
throw :failure if Time.now - started_at > 3600
end
end
Handling Errors
When a waiter is successful, it returns true
. When a waiter
fails, it raises an error. All errors raised extend from
Waiters::Errors::WaiterFailed.
begin
client.wait_until(...)
rescue Aws::Waiters::Errors::WaiterFailed
# resource did not enter the desired state in time
end
Parameters:
-
waiter_name
(Symbol)
—
The name of the waiter. See #waiter_names for a full list of supported waiters.
-
params
(Hash)
(defaults to: {})
—
Additional request parameters. See the #waiter_names for a list of supported waiters and what request they call. The called request determines the list of accepted parameters.
Yield Parameters:
-
waiter
(Waiters::Waiter)
—
Yields a Waiter object that can be configured prior to waiting.
Returns:
-
(Boolean)
—
Returns
true
if the waiter was successful.
Raises:
-
(Errors::FailureStateError)
—
Raised when the waiter terminates because the waiter has entered a state that it will not transition out of, preventing success.
-
(Errors::TooManyAttemptsError)
—
Raised when the configured maximum number of attempts have been made, and the waiter is not yet successful.
-
(Errors::UnexpectedError)
—
Raised when an error is encounted while polling for a resource that is not expected.
-
(Errors::NoSuchWaiterError)
—
Raised when you request to wait for an unknown state.
#waiter_names ⇒ Array<Symbol>
Returns the list of supported waiters. The following table lists the supported waiters and the client method they call:
Waiter Name | Client Method | Default Delay: | Default Max Attempts: |
---|
Returns:
-
(Array<Symbol>)
—
the list of supported waiters.