aws-sdk-devicefarm 1.12.0 → 1.13.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 01d636c3fb4c644b0d005b3c81f662057e3b180e
4
- data.tar.gz: 2de71d302c4bf779b6d04e56efb7b0071bfa08b1
3
+ metadata.gz: f796ffd0d40fb530f10e53fd92d54a92d039ab67
4
+ data.tar.gz: 55c20e9183f0928a1d11ea502e434d72561bf087
5
5
  SHA512:
6
- metadata.gz: c8733b5252e639c7fc037f28ba96ce0a9a280635796df3aa618756138a92b0940491e65c13d28bb4d9c97c9eeb8340152c39fbc5df00e423dede386b60cace33
7
- data.tar.gz: a4c93066e80c65ae8a8ab26d92fbd65a9a60fb055e67de8e9cf4ea9ea88e13c9cb559d2f731e62673a16ff3ba237b507ec1d342db82e726ef4125f83e00d647c
6
+ metadata.gz: b12ff7bd9aa08b2409548b92332c114c8193223a3c7ec33406b17d76714f5dc767afd2ea1481b2638b59410cfd6f69743b1fdb0f85f3365c06d56e22dab54736
7
+ data.tar.gz: c8259425006913aee284f6c22681aea09b59bb81a76c206b5f9f9c2d1a1be17cc3db10f9c3d3ccb1af623bb6b27e7d27ef6b9291b896b09cd2c7e8f9c10b6b01
@@ -42,6 +42,6 @@ require_relative 'aws-sdk-devicefarm/customizations'
42
42
  # @service
43
43
  module Aws::DeviceFarm
44
44
 
45
- GEM_VERSION = '1.12.0'
45
+ GEM_VERSION = '1.13.0'
46
46
 
47
47
  end
@@ -15,6 +15,7 @@ require 'aws-sdk-core/plugins/helpful_socket_errors.rb'
15
15
  require 'aws-sdk-core/plugins/retry_errors.rb'
16
16
  require 'aws-sdk-core/plugins/global_configuration.rb'
17
17
  require 'aws-sdk-core/plugins/regional_endpoint.rb'
18
+ require 'aws-sdk-core/plugins/endpoint_discovery.rb'
18
19
  require 'aws-sdk-core/plugins/response_paging.rb'
19
20
  require 'aws-sdk-core/plugins/stub_responses.rb'
20
21
  require 'aws-sdk-core/plugins/idempotency_token.rb'
@@ -45,6 +46,7 @@ module Aws::DeviceFarm
45
46
  add_plugin(Aws::Plugins::RetryErrors)
46
47
  add_plugin(Aws::Plugins::GlobalConfiguration)
47
48
  add_plugin(Aws::Plugins::RegionalEndpoint)
49
+ add_plugin(Aws::Plugins::EndpointDiscovery)
48
50
  add_plugin(Aws::Plugins::ResponsePaging)
49
51
  add_plugin(Aws::Plugins::StubResponses)
50
52
  add_plugin(Aws::Plugins::IdempotencyToken)
@@ -98,6 +100,10 @@ module Aws::DeviceFarm
98
100
  #
99
101
  # @option options [String] :access_key_id
100
102
  #
103
+ # @option options [Boolean] :active_endpoint_cache (false)
104
+ # When set to `true`, a thread polling for endpoints will be running in
105
+ # the background every 60 secs (default). Defaults to `false`.
106
+ #
101
107
  # @option options [Boolean] :client_side_monitoring (false)
102
108
  # When `true`, client-side metrics will be collected for all API requests from
103
109
  # this client.
@@ -123,6 +129,21 @@ module Aws::DeviceFarm
123
129
  # option. You should only configure an `:endpoint` when connecting
124
130
  # to test endpoints. This should be avalid HTTP(S) URI.
125
131
  #
132
+ # @option options [Integer] :endpoint_cache_max_entries (1000)
133
+ # Used for the maximum size limit of the LRU cache storing endpoints data
134
+ # for endpoint discovery enabled operations. Defaults to 1000.
135
+ #
136
+ # @option options [Integer] :endpoint_cache_max_threads (10)
137
+ # Used for the maximum threads in use for polling endpoints to be cached, defaults to 10.
138
+ #
139
+ # @option options [Integer] :endpoint_cache_poll_interval (60)
140
+ # When :endpoint_discovery and :active_endpoint_cache is enabled,
141
+ # Use this option to config the time interval in seconds for making
142
+ # requests fetching endpoints information. Defaults to 60 sec.
143
+ #
144
+ # @option options [Boolean] :endpoint_discovery (false)
145
+ # When set to `true`, endpoint discovery will be enabled for operations when available. Defaults to `false`.
146
+ #
126
147
  # @option options [Aws::Log::Formatter] :log_formatter (Aws::Log::Formatter.default)
127
148
  # The log formatter.
128
149
  #
@@ -625,6 +646,7 @@ module Aws::DeviceFarm
625
646
  # resp.remote_access_session.device.instances[0].instance_profile.reboot_after_use #=> Boolean
626
647
  # resp.remote_access_session.device.instances[0].instance_profile.name #=> String
627
648
  # resp.remote_access_session.device.instances[0].instance_profile.description #=> String
649
+ # resp.remote_access_session.device.availability #=> String, one of "TEMPORARY_NOT_AVAILABLE", "BUSY", "AVAILABLE", "HIGHLY_AVAILABLE"
628
650
  # resp.remote_access_session.instance_arn #=> String
629
651
  # resp.remote_access_session.remote_debug_enabled #=> Boolean
630
652
  # resp.remote_access_session.remote_record_enabled #=> Boolean
@@ -703,6 +725,26 @@ module Aws::DeviceFarm
703
725
  #
704
726
  # * XCTEST\_UI\_TEST\_PACKAGE: An XCode UI test package upload.
705
727
  #
728
+ # * APPIUM\_JAVA\_JUNIT\_TEST\_SPEC: An Appium Java JUnit test spec
729
+ # upload.
730
+ #
731
+ # * APPIUM\_JAVA\_TESTNG\_TEST\_SPEC: An Appium Java TestNG test spec
732
+ # upload.
733
+ #
734
+ # * APPIUM\_PYTHON\_TEST\_SPEC: An Appium Python test spec upload.
735
+ #
736
+ # * APPIUM\_WEB\_JAVA\_JUNIT\_TEST\_SPEC: An Appium Java JUnit test spec
737
+ # upload.
738
+ #
739
+ # * APPIUM\_WEB\_JAVA\_TESTNG\_TEST\_SPEC: An Appium Java TestNG test
740
+ # spec upload.
741
+ #
742
+ # * APPIUM\_WEB\_PYTHON\_TEST\_SPEC: An Appium Python test spec upload.
743
+ #
744
+ # * INSTRUMENTATION\_TEST\_SPEC: An instrumentation test spec upload.
745
+ #
746
+ # * XCTEST\_UI\_TEST\_SPEC: An XCode UI test spec upload.
747
+ #
706
748
  # **Note** If you call `CreateUpload` with `WEB_APP` specified, AWS
707
749
  # Device Farm throws an `ArgumentException` error.
708
750
  #
@@ -1209,6 +1251,7 @@ module Aws::DeviceFarm
1209
1251
  # resp.device.instances[0].instance_profile.reboot_after_use #=> Boolean
1210
1252
  # resp.device.instances[0].instance_profile.name #=> String
1211
1253
  # resp.device.instances[0].instance_profile.description #=> String
1254
+ # resp.device.availability #=> String, one of "TEMPORARY_NOT_AVAILABLE", "BUSY", "AVAILABLE", "HIGHLY_AVAILABLE"
1212
1255
  #
1213
1256
  # @see http://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/GetDevice AWS API Documentation
1214
1257
  #
@@ -1463,6 +1506,7 @@ module Aws::DeviceFarm
1463
1506
  # resp.compatible_devices[0].device.instances[0].instance_profile.reboot_after_use #=> Boolean
1464
1507
  # resp.compatible_devices[0].device.instances[0].instance_profile.name #=> String
1465
1508
  # resp.compatible_devices[0].device.instances[0].instance_profile.description #=> String
1509
+ # resp.compatible_devices[0].device.availability #=> String, one of "TEMPORARY_NOT_AVAILABLE", "BUSY", "AVAILABLE", "HIGHLY_AVAILABLE"
1466
1510
  # resp.compatible_devices[0].compatible #=> Boolean
1467
1511
  # resp.compatible_devices[0].incompatibility_messages #=> Array
1468
1512
  # resp.compatible_devices[0].incompatibility_messages[0].message #=> String
@@ -1504,6 +1548,7 @@ module Aws::DeviceFarm
1504
1548
  # resp.incompatible_devices[0].device.instances[0].instance_profile.reboot_after_use #=> Boolean
1505
1549
  # resp.incompatible_devices[0].device.instances[0].instance_profile.name #=> String
1506
1550
  # resp.incompatible_devices[0].device.instances[0].instance_profile.description #=> String
1551
+ # resp.incompatible_devices[0].device.availability #=> String, one of "TEMPORARY_NOT_AVAILABLE", "BUSY", "AVAILABLE", "HIGHLY_AVAILABLE"
1507
1552
  # resp.incompatible_devices[0].compatible #=> Boolean
1508
1553
  # resp.incompatible_devices[0].incompatibility_messages #=> Array
1509
1554
  # resp.incompatible_devices[0].incompatibility_messages[0].message #=> String
@@ -1636,6 +1681,7 @@ module Aws::DeviceFarm
1636
1681
  # resp.job.device.instances[0].instance_profile.reboot_after_use #=> Boolean
1637
1682
  # resp.job.device.instances[0].instance_profile.name #=> String
1638
1683
  # resp.job.device.instances[0].instance_profile.description #=> String
1684
+ # resp.job.device.availability #=> String, one of "TEMPORARY_NOT_AVAILABLE", "BUSY", "AVAILABLE", "HIGHLY_AVAILABLE"
1639
1685
  # resp.job.instance_arn #=> String
1640
1686
  # resp.job.device_minutes.total #=> Float
1641
1687
  # resp.job.device_minutes.metered #=> Float
@@ -1916,6 +1962,7 @@ module Aws::DeviceFarm
1916
1962
  # resp.remote_access_session.device.instances[0].instance_profile.reboot_after_use #=> Boolean
1917
1963
  # resp.remote_access_session.device.instances[0].instance_profile.name #=> String
1918
1964
  # resp.remote_access_session.device.instances[0].instance_profile.description #=> String
1965
+ # resp.remote_access_session.device.availability #=> String, one of "TEMPORARY_NOT_AVAILABLE", "BUSY", "AVAILABLE", "HIGHLY_AVAILABLE"
1919
1966
  # resp.remote_access_session.instance_arn #=> String
1920
1967
  # resp.remote_access_session.remote_debug_enabled #=> Boolean
1921
1968
  # resp.remote_access_session.remote_record_enabled #=> Boolean
@@ -2054,6 +2101,13 @@ module Aws::DeviceFarm
2054
2101
  # resp.run.web_url #=> String
2055
2102
  # resp.run.skip_app_resign #=> Boolean
2056
2103
  # resp.run.test_spec_arn #=> String
2104
+ # resp.run.device_selection_result.filters #=> Array
2105
+ # 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"
2106
+ # 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"
2107
+ # resp.run.device_selection_result.filters[0].values #=> Array
2108
+ # resp.run.device_selection_result.filters[0].values[0] #=> String
2109
+ # resp.run.device_selection_result.matched_devices_count #=> Integer
2110
+ # resp.run.device_selection_result.max_devices #=> Integer
2057
2111
  #
2058
2112
  # @see http://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/GetRun AWS API Documentation
2059
2113
  #
@@ -2553,6 +2607,75 @@ module Aws::DeviceFarm
2553
2607
  # operation, which can be used to return the next set of items in the
2554
2608
  # list.
2555
2609
  #
2610
+ # @option params [Array<Types::DeviceFilter>] :filters
2611
+ # Used to select a set of devices. A filter is made up of an attribute,
2612
+ # an operator, and one or more values.
2613
+ #
2614
+ # * Attribute: The aspect of a device such as platform or model used as
2615
+ # the selction criteria in a device filter.
2616
+ #
2617
+ # Allowed values include:
2618
+ #
2619
+ # * ARN: The Amazon Resource Name (ARN) of the device. For example,
2620
+ # "arn:aws:devicefarm:us-west-2::device:12345Example".
2621
+ #
2622
+ # * PLATFORM: The device platform. Valid values are "ANDROID" or
2623
+ # "IOS".
2624
+ #
2625
+ # * OS\_VERSION: The operating system version. For example,
2626
+ # "10.3.2".
2627
+ #
2628
+ # * MODEL: The device model. For example, "iPad 5th Gen".
2629
+ #
2630
+ # * AVAILABILITY: The current availability of the device. Valid values
2631
+ # are "AVAILABLE", "HIGHLY\_AVAILABLE", "BUSY", or
2632
+ # "TEMPORARY\_NOT\_AVAILABLE".
2633
+ #
2634
+ # * FORM\_FACTOR: The device form factor. Valid values are "PHONE"
2635
+ # or "TABLET".
2636
+ #
2637
+ # * MANUFACTURER: The device manufacturer. For example, "Apple".
2638
+ #
2639
+ # * REMOTE\_ACCESS\_ENABLED: Whether the device is enabled for remote
2640
+ # access.
2641
+ #
2642
+ # * REMOTE\_DEBUG\_ENABLED: Whether the device is enabled for remote
2643
+ # debugging.
2644
+ #
2645
+ # * INSTANCE\_ARN: The Amazon Resource Name (ARN) of the device
2646
+ # instance.
2647
+ #
2648
+ # * INSTANCE\_LABELS: The label of the device instance.
2649
+ #
2650
+ # * FLEET\_TYPE: The fleet type. Valid values are "PUBLIC" or
2651
+ # "PRIVATE".
2652
+ #
2653
+ # * Operator: The filter operator.
2654
+ #
2655
+ # * The EQUALS operator is available for every attribute except
2656
+ # INSTANCE\_LABELS.
2657
+ #
2658
+ # * The CONTAINS operator is available for the INSTANCE\_LABELS and
2659
+ # MODEL attributes.
2660
+ #
2661
+ # * The IN and NOT\_IN operators are available for the ARN,
2662
+ # OS\_VERSION, MODEL, MANUFACTURER, and INSTANCE\_ARN attributes.
2663
+ #
2664
+ # * The LESS\_THAN, GREATER\_THAN, LESS\_THAN\_OR\_EQUALS, and
2665
+ # GREATER\_THAN\_OR\_EQUALS operators are also available for the
2666
+ # OS\_VERSION attribute.
2667
+ #
2668
+ # * Values: An array of one or more filter values.
2669
+ #
2670
+ # * The IN and NOT operators can take a values array that has more
2671
+ # than one element.
2672
+ #
2673
+ # * The other operators require an array with a single element.
2674
+ #
2675
+ # * In a request, the AVAILABILITY attribute takes "AVAILABLE",
2676
+ # "HIGHLY\_AVAILABLE", "BUSY", or "TEMPORARY\_NOT\_AVAILABLE"
2677
+ # as values.
2678
+ #
2556
2679
  # @return [Types::ListDevicesResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2557
2680
  #
2558
2681
  # * {Types::ListDevicesResult#devices #devices} => Array&lt;Types::Device&gt;
@@ -2576,6 +2699,13 @@ module Aws::DeviceFarm
2576
2699
  # resp = client.list_devices({
2577
2700
  # arn: "AmazonResourceName",
2578
2701
  # next_token: "PaginationToken",
2702
+ # filters: [
2703
+ # {
2704
+ # attribute: "ARN", # accepts ARN, PLATFORM, OS_VERSION, MODEL, AVAILABILITY, FORM_FACTOR, MANUFACTURER, REMOTE_ACCESS_ENABLED, REMOTE_DEBUG_ENABLED, INSTANCE_ARN, INSTANCE_LABELS, FLEET_TYPE
2705
+ # operator: "EQUALS", # accepts EQUALS, LESS_THAN, LESS_THAN_OR_EQUALS, GREATER_THAN, GREATER_THAN_OR_EQUALS, IN, NOT_IN, CONTAINS
2706
+ # values: ["String"],
2707
+ # },
2708
+ # ],
2579
2709
  # })
2580
2710
  #
2581
2711
  # @example Response structure
@@ -2617,6 +2747,7 @@ module Aws::DeviceFarm
2617
2747
  # resp.devices[0].instances[0].instance_profile.reboot_after_use #=> Boolean
2618
2748
  # resp.devices[0].instances[0].instance_profile.name #=> String
2619
2749
  # resp.devices[0].instances[0].instance_profile.description #=> String
2750
+ # resp.devices[0].availability #=> String, one of "TEMPORARY_NOT_AVAILABLE", "BUSY", "AVAILABLE", "HIGHLY_AVAILABLE"
2620
2751
  # resp.next_token #=> String
2621
2752
  #
2622
2753
  # @see http://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/ListDevices AWS API Documentation
@@ -2758,6 +2889,7 @@ module Aws::DeviceFarm
2758
2889
  # resp.jobs[0].device.instances[0].instance_profile.reboot_after_use #=> Boolean
2759
2890
  # resp.jobs[0].device.instances[0].instance_profile.name #=> String
2760
2891
  # resp.jobs[0].device.instances[0].instance_profile.description #=> String
2892
+ # resp.jobs[0].device.availability #=> String, one of "TEMPORARY_NOT_AVAILABLE", "BUSY", "AVAILABLE", "HIGHLY_AVAILABLE"
2761
2893
  # resp.jobs[0].instance_arn #=> String
2762
2894
  # resp.jobs[0].device_minutes.total #=> Float
2763
2895
  # resp.jobs[0].device_minutes.metered #=> Float
@@ -3288,6 +3420,7 @@ module Aws::DeviceFarm
3288
3420
  # resp.remote_access_sessions[0].device.instances[0].instance_profile.reboot_after_use #=> Boolean
3289
3421
  # resp.remote_access_sessions[0].device.instances[0].instance_profile.name #=> String
3290
3422
  # resp.remote_access_sessions[0].device.instances[0].instance_profile.description #=> String
3423
+ # resp.remote_access_sessions[0].device.availability #=> String, one of "TEMPORARY_NOT_AVAILABLE", "BUSY", "AVAILABLE", "HIGHLY_AVAILABLE"
3291
3424
  # resp.remote_access_sessions[0].instance_arn #=> String
3292
3425
  # resp.remote_access_sessions[0].remote_debug_enabled #=> Boolean
3293
3426
  # resp.remote_access_sessions[0].remote_record_enabled #=> Boolean
@@ -3439,6 +3572,13 @@ module Aws::DeviceFarm
3439
3572
  # resp.runs[0].web_url #=> String
3440
3573
  # resp.runs[0].skip_app_resign #=> Boolean
3441
3574
  # resp.runs[0].test_spec_arn #=> String
3575
+ # resp.runs[0].device_selection_result.filters #=> Array
3576
+ # 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"
3577
+ # 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"
3578
+ # resp.runs[0].device_selection_result.filters[0].values #=> Array
3579
+ # resp.runs[0].device_selection_result.filters[0].values[0] #=> String
3580
+ # resp.runs[0].device_selection_result.matched_devices_count #=> Integer
3581
+ # resp.runs[0].device_selection_result.max_devices #=> Integer
3442
3582
  # resp.next_token #=> String
3443
3583
  #
3444
3584
  # @see http://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/ListRuns AWS API Documentation
@@ -3450,11 +3590,10 @@ module Aws::DeviceFarm
3450
3590
  req.send_request(options)
3451
3591
  end
3452
3592
 
3453
- # Gets information about samples, given an AWS Device Farm project ARN
3593
+ # Gets information about samples, given an AWS Device Farm job ARN.
3454
3594
  #
3455
3595
  # @option params [required, String] :arn
3456
- # The Amazon Resource Name (ARN) of the project for which you want to
3457
- # list samples.
3596
+ # The Amazon Resource Name (ARN) of the job used to list samples.
3458
3597
  #
3459
3598
  # @option params [String] :next_token
3460
3599
  # An identifier that was returned from the previous call to this
@@ -3736,6 +3875,7 @@ module Aws::DeviceFarm
3736
3875
  # resp.unique_problems["ExecutionResult"][0].problems[0].device.instances[0].instance_profile.reboot_after_use #=> Boolean
3737
3876
  # resp.unique_problems["ExecutionResult"][0].problems[0].device.instances[0].instance_profile.name #=> String
3738
3877
  # resp.unique_problems["ExecutionResult"][0].problems[0].device.instances[0].instance_profile.description #=> String
3878
+ # resp.unique_problems["ExecutionResult"][0].problems[0].device.availability #=> String, one of "TEMPORARY_NOT_AVAILABLE", "BUSY", "AVAILABLE", "HIGHLY_AVAILABLE"
3739
3879
  # resp.unique_problems["ExecutionResult"][0].problems[0].result #=> String, one of "PENDING", "PASSED", "WARNED", "FAILED", "SKIPPED", "ERRORED", "STOPPED"
3740
3880
  # resp.unique_problems["ExecutionResult"][0].problems[0].message #=> String
3741
3881
  # resp.next_token #=> String
@@ -4101,9 +4241,22 @@ module Aws::DeviceFarm
4101
4241
  # @option params [String] :app_arn
4102
4242
  # The ARN of the app to schedule a run.
4103
4243
  #
4104
- # @option params [required, String] :device_pool_arn
4244
+ # @option params [String] :device_pool_arn
4105
4245
  # The ARN of the device pool for the run to be scheduled.
4106
4246
  #
4247
+ # Either <b> <code>devicePoolArn</code> </b> or <b>
4248
+ # <code>deviceSelectionConfiguration</code> </b> are required in a
4249
+ # request.
4250
+ #
4251
+ # @option params [Types::DeviceSelectionConfiguration] :device_selection_configuration
4252
+ # The filter criteria used to dynamically select a set of devices for a
4253
+ # test run, as well as the maximum number of devices to be included in
4254
+ # the run.
4255
+ #
4256
+ # Either <b> <code>devicePoolArn</code> </b> or <b>
4257
+ # <code>deviceSelectionConfiguration</code> </b> are required in a
4258
+ # request.
4259
+ #
4107
4260
  # @option params [String] :name
4108
4261
  # The name for the run to be scheduled.
4109
4262
  #
@@ -4147,7 +4300,17 @@ module Aws::DeviceFarm
4147
4300
  # resp = client.schedule_run({
4148
4301
  # project_arn: "AmazonResourceName", # required
4149
4302
  # app_arn: "AmazonResourceName",
4150
- # device_pool_arn: "AmazonResourceName", # required
4303
+ # device_pool_arn: "AmazonResourceName",
4304
+ # device_selection_configuration: {
4305
+ # filters: [ # required
4306
+ # {
4307
+ # attribute: "ARN", # accepts ARN, PLATFORM, OS_VERSION, MODEL, AVAILABILITY, FORM_FACTOR, MANUFACTURER, REMOTE_ACCESS_ENABLED, REMOTE_DEBUG_ENABLED, INSTANCE_ARN, INSTANCE_LABELS, FLEET_TYPE
4308
+ # operator: "EQUALS", # accepts EQUALS, LESS_THAN, LESS_THAN_OR_EQUALS, GREATER_THAN, GREATER_THAN_OR_EQUALS, IN, NOT_IN, CONTAINS
4309
+ # values: ["String"],
4310
+ # },
4311
+ # ],
4312
+ # max_devices: 1, # required
4313
+ # },
4151
4314
  # name: "Name",
4152
4315
  # test: { # required
4153
4316
  # type: "BUILTIN_FUZZ", # required, accepts BUILTIN_FUZZ, BUILTIN_EXPLORER, WEB_PERFORMANCE_PROFILE, APPIUM_JAVA_JUNIT, APPIUM_JAVA_TESTNG, APPIUM_PYTHON, APPIUM_WEB_JAVA_JUNIT, APPIUM_WEB_JAVA_TESTNG, APPIUM_WEB_PYTHON, CALABASH, INSTRUMENTATION, UIAUTOMATION, UIAUTOMATOR, XCTEST, XCTEST_UI, REMOTE_ACCESS_RECORD, REMOTE_ACCESS_REPLAY
@@ -4250,6 +4413,13 @@ module Aws::DeviceFarm
4250
4413
  # resp.run.web_url #=> String
4251
4414
  # resp.run.skip_app_resign #=> Boolean
4252
4415
  # resp.run.test_spec_arn #=> String
4416
+ # resp.run.device_selection_result.filters #=> Array
4417
+ # 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"
4418
+ # 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"
4419
+ # resp.run.device_selection_result.filters[0].values #=> Array
4420
+ # resp.run.device_selection_result.filters[0].values[0] #=> String
4421
+ # resp.run.device_selection_result.matched_devices_count #=> Integer
4422
+ # resp.run.device_selection_result.max_devices #=> Integer
4253
4423
  #
4254
4424
  # @see http://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/ScheduleRun AWS API Documentation
4255
4425
  #
@@ -4336,6 +4506,7 @@ module Aws::DeviceFarm
4336
4506
  # resp.job.device.instances[0].instance_profile.reboot_after_use #=> Boolean
4337
4507
  # resp.job.device.instances[0].instance_profile.name #=> String
4338
4508
  # resp.job.device.instances[0].instance_profile.description #=> String
4509
+ # resp.job.device.availability #=> String, one of "TEMPORARY_NOT_AVAILABLE", "BUSY", "AVAILABLE", "HIGHLY_AVAILABLE"
4339
4510
  # resp.job.instance_arn #=> String
4340
4511
  # resp.job.device_minutes.total #=> Float
4341
4512
  # resp.job.device_minutes.metered #=> Float
@@ -4414,6 +4585,7 @@ module Aws::DeviceFarm
4414
4585
  # resp.remote_access_session.device.instances[0].instance_profile.reboot_after_use #=> Boolean
4415
4586
  # resp.remote_access_session.device.instances[0].instance_profile.name #=> String
4416
4587
  # resp.remote_access_session.device.instances[0].instance_profile.description #=> String
4588
+ # resp.remote_access_session.device.availability #=> String, one of "TEMPORARY_NOT_AVAILABLE", "BUSY", "AVAILABLE", "HIGHLY_AVAILABLE"
4417
4589
  # resp.remote_access_session.instance_arn #=> String
4418
4590
  # resp.remote_access_session.remote_debug_enabled #=> Boolean
4419
4591
  # resp.remote_access_session.remote_record_enabled #=> Boolean
@@ -4535,6 +4707,13 @@ module Aws::DeviceFarm
4535
4707
  # resp.run.web_url #=> String
4536
4708
  # resp.run.skip_app_resign #=> Boolean
4537
4709
  # resp.run.test_spec_arn #=> String
4710
+ # resp.run.device_selection_result.filters #=> Array
4711
+ # 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"
4712
+ # 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"
4713
+ # resp.run.device_selection_result.filters[0].values #=> Array
4714
+ # resp.run.device_selection_result.filters[0].values[0] #=> String
4715
+ # resp.run.device_selection_result.matched_devices_count #=> Integer
4716
+ # resp.run.device_selection_result.max_devices #=> Integer
4538
4717
  #
4539
4718
  # @see http://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/StopRun AWS API Documentation
4540
4719
  #
@@ -5014,7 +5193,7 @@ module Aws::DeviceFarm
5014
5193
  params: params,
5015
5194
  config: config)
5016
5195
  context[:gem_name] = 'aws-sdk-devicefarm'
5017
- context[:gem_version] = '1.12.0'
5196
+ context[:gem_version] = '1.13.0'
5018
5197
  Seahorse::Client::Request.new(handlers, context)
5019
5198
  end
5020
5199
 
@@ -65,6 +65,12 @@ module Aws::DeviceFarm
65
65
  DeleteVPCEConfigurationResult = Shapes::StructureShape.new(name: 'DeleteVPCEConfigurationResult')
66
66
  Device = Shapes::StructureShape.new(name: 'Device')
67
67
  DeviceAttribute = Shapes::StringShape.new(name: 'DeviceAttribute')
68
+ DeviceAvailability = Shapes::StringShape.new(name: 'DeviceAvailability')
69
+ DeviceFilter = Shapes::StructureShape.new(name: 'DeviceFilter')
70
+ DeviceFilterAttribute = Shapes::StringShape.new(name: 'DeviceFilterAttribute')
71
+ DeviceFilterOperator = Shapes::StringShape.new(name: 'DeviceFilterOperator')
72
+ DeviceFilterValues = Shapes::ListShape.new(name: 'DeviceFilterValues')
73
+ DeviceFilters = Shapes::ListShape.new(name: 'DeviceFilters')
68
74
  DeviceFormFactor = Shapes::StringShape.new(name: 'DeviceFormFactor')
69
75
  DeviceHostPaths = Shapes::ListShape.new(name: 'DeviceHostPaths')
70
76
  DeviceInstance = Shapes::StructureShape.new(name: 'DeviceInstance')
@@ -76,6 +82,8 @@ module Aws::DeviceFarm
76
82
  DevicePoolCompatibilityResults = Shapes::ListShape.new(name: 'DevicePoolCompatibilityResults')
77
83
  DevicePoolType = Shapes::StringShape.new(name: 'DevicePoolType')
78
84
  DevicePools = Shapes::ListShape.new(name: 'DevicePools')
85
+ DeviceSelectionConfiguration = Shapes::StructureShape.new(name: 'DeviceSelectionConfiguration')
86
+ DeviceSelectionResult = Shapes::StructureShape.new(name: 'DeviceSelectionResult')
79
87
  Devices = Shapes::ListShape.new(name: 'Devices')
80
88
  Double = Shapes::FloatShape.new(name: 'Double')
81
89
  ExecutionConfiguration = Shapes::StructureShape.new(name: 'ExecutionConfiguration')
@@ -460,8 +468,18 @@ module Aws::DeviceFarm
460
468
  Device.add_member(:fleet_type, Shapes::ShapeRef.new(shape: String, location_name: "fleetType"))
461
469
  Device.add_member(:fleet_name, Shapes::ShapeRef.new(shape: String, location_name: "fleetName"))
462
470
  Device.add_member(:instances, Shapes::ShapeRef.new(shape: DeviceInstances, location_name: "instances"))
471
+ Device.add_member(:availability, Shapes::ShapeRef.new(shape: DeviceAvailability, location_name: "availability"))
463
472
  Device.struct_class = Types::Device
464
473
 
474
+ DeviceFilter.add_member(:attribute, Shapes::ShapeRef.new(shape: DeviceFilterAttribute, location_name: "attribute"))
475
+ DeviceFilter.add_member(:operator, Shapes::ShapeRef.new(shape: DeviceFilterOperator, location_name: "operator"))
476
+ DeviceFilter.add_member(:values, Shapes::ShapeRef.new(shape: DeviceFilterValues, location_name: "values"))
477
+ DeviceFilter.struct_class = Types::DeviceFilter
478
+
479
+ DeviceFilterValues.member = Shapes::ShapeRef.new(shape: String)
480
+
481
+ DeviceFilters.member = Shapes::ShapeRef.new(shape: DeviceFilter)
482
+
465
483
  DeviceHostPaths.member = Shapes::ShapeRef.new(shape: String)
466
484
 
467
485
  DeviceInstance.add_member(:arn, Shapes::ShapeRef.new(shape: AmazonResourceName, location_name: "arn"))
@@ -495,6 +513,15 @@ module Aws::DeviceFarm
495
513
 
496
514
  DevicePools.member = Shapes::ShapeRef.new(shape: DevicePool)
497
515
 
516
+ DeviceSelectionConfiguration.add_member(:filters, Shapes::ShapeRef.new(shape: DeviceFilters, required: true, location_name: "filters"))
517
+ DeviceSelectionConfiguration.add_member(:max_devices, Shapes::ShapeRef.new(shape: Integer, required: true, location_name: "maxDevices"))
518
+ DeviceSelectionConfiguration.struct_class = Types::DeviceSelectionConfiguration
519
+
520
+ DeviceSelectionResult.add_member(:filters, Shapes::ShapeRef.new(shape: DeviceFilters, location_name: "filters"))
521
+ DeviceSelectionResult.add_member(:matched_devices_count, Shapes::ShapeRef.new(shape: Integer, location_name: "matchedDevicesCount"))
522
+ DeviceSelectionResult.add_member(:max_devices, Shapes::ShapeRef.new(shape: Integer, location_name: "maxDevices"))
523
+ DeviceSelectionResult.struct_class = Types::DeviceSelectionResult
524
+
498
525
  Devices.member = Shapes::ShapeRef.new(shape: Device)
499
526
 
500
527
  ExecutionConfiguration.add_member(:job_timeout_minutes, Shapes::ShapeRef.new(shape: JobTimeoutMinutes, location_name: "jobTimeoutMinutes"))
@@ -680,6 +707,7 @@ module Aws::DeviceFarm
680
707
 
681
708
  ListDevicesRequest.add_member(:arn, Shapes::ShapeRef.new(shape: AmazonResourceName, location_name: "arn"))
682
709
  ListDevicesRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: PaginationToken, location_name: "nextToken"))
710
+ ListDevicesRequest.add_member(:filters, Shapes::ShapeRef.new(shape: DeviceFilters, location_name: "filters"))
683
711
  ListDevicesRequest.struct_class = Types::ListDevicesRequest
684
712
 
685
713
  ListDevicesResult.add_member(:devices, Shapes::ShapeRef.new(shape: Devices, location_name: "devices"))
@@ -986,6 +1014,7 @@ module Aws::DeviceFarm
986
1014
  Run.add_member(:web_url, Shapes::ShapeRef.new(shape: String, location_name: "webUrl"))
987
1015
  Run.add_member(:skip_app_resign, Shapes::ShapeRef.new(shape: SkipAppResign, location_name: "skipAppResign"))
988
1016
  Run.add_member(:test_spec_arn, Shapes::ShapeRef.new(shape: AmazonResourceName, location_name: "testSpecArn"))
1017
+ Run.add_member(:device_selection_result, Shapes::ShapeRef.new(shape: DeviceSelectionResult, location_name: "deviceSelectionResult"))
989
1018
  Run.struct_class = Types::Run
990
1019
 
991
1020
  Runs.member = Shapes::ShapeRef.new(shape: Run)
@@ -1010,7 +1039,8 @@ module Aws::DeviceFarm
1010
1039
 
1011
1040
  ScheduleRunRequest.add_member(:project_arn, Shapes::ShapeRef.new(shape: AmazonResourceName, required: true, location_name: "projectArn"))
1012
1041
  ScheduleRunRequest.add_member(:app_arn, Shapes::ShapeRef.new(shape: AmazonResourceName, location_name: "appArn"))
1013
- ScheduleRunRequest.add_member(:device_pool_arn, Shapes::ShapeRef.new(shape: AmazonResourceName, required: true, location_name: "devicePoolArn"))
1042
+ ScheduleRunRequest.add_member(:device_pool_arn, Shapes::ShapeRef.new(shape: AmazonResourceName, location_name: "devicePoolArn"))
1043
+ ScheduleRunRequest.add_member(:device_selection_configuration, Shapes::ShapeRef.new(shape: DeviceSelectionConfiguration, location_name: "deviceSelectionConfiguration"))
1014
1044
  ScheduleRunRequest.add_member(:name, Shapes::ShapeRef.new(shape: Name, location_name: "name"))
1015
1045
  ScheduleRunRequest.add_member(:test, Shapes::ShapeRef.new(shape: ScheduleRunTest, required: true, location_name: "test"))
1016
1046
  ScheduleRunRequest.add_member(:configuration, Shapes::ShapeRef.new(shape: ScheduleRunConfiguration, location_name: "configuration"))
@@ -723,6 +723,27 @@ module Aws::DeviceFarm
723
723
  #
724
724
  # * XCTEST\_UI\_TEST\_PACKAGE: An XCode UI test package upload.
725
725
  #
726
+ # * APPIUM\_JAVA\_JUNIT\_TEST\_SPEC: An Appium Java JUnit test spec
727
+ # upload.
728
+ #
729
+ # * APPIUM\_JAVA\_TESTNG\_TEST\_SPEC: An Appium Java TestNG test spec
730
+ # upload.
731
+ #
732
+ # * APPIUM\_PYTHON\_TEST\_SPEC: An Appium Python test spec upload.
733
+ #
734
+ # * APPIUM\_WEB\_JAVA\_JUNIT\_TEST\_SPEC: An Appium Java JUnit test
735
+ # spec upload.
736
+ #
737
+ # * APPIUM\_WEB\_JAVA\_TESTNG\_TEST\_SPEC: An Appium Java TestNG test
738
+ # spec upload.
739
+ #
740
+ # * APPIUM\_WEB\_PYTHON\_TEST\_SPEC: An Appium Python test spec
741
+ # upload.
742
+ #
743
+ # * INSTRUMENTATION\_TEST\_SPEC: An instrumentation test spec upload.
744
+ #
745
+ # * XCTEST\_UI\_TEST\_SPEC: An XCode UI test spec upload.
746
+ #
726
747
  # **Note** If you call `CreateUpload` with `WEB_APP` specified, AWS
727
748
  # Device Farm throws an `ArgumentException` error.
728
749
  # @return [String]
@@ -1151,6 +1172,10 @@ module Aws::DeviceFarm
1151
1172
  # The instances belonging to this device.
1152
1173
  # @return [Array<Types::DeviceInstance>]
1153
1174
  #
1175
+ # @!attribute [rw] availability
1176
+ # Reflects how likely a device will be available for a test run.
1177
+ # @return [String]
1178
+ #
1154
1179
  # @see http://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/Device AWS API Documentation
1155
1180
  #
1156
1181
  class Device < Struct.new(
@@ -1173,7 +1198,114 @@ module Aws::DeviceFarm
1173
1198
  :remote_debug_enabled,
1174
1199
  :fleet_type,
1175
1200
  :fleet_name,
1176
- :instances)
1201
+ :instances,
1202
+ :availability)
1203
+ include Aws::Structure
1204
+ end
1205
+
1206
+ # Represents a device filter used to select a set of devices to be
1207
+ # included in a test run. This data structure is passed in as the
1208
+ # "deviceSelectionConfiguration" parameter to ScheduleRun. For an
1209
+ # example of the JSON request syntax, see ScheduleRun.
1210
+ #
1211
+ # It is also passed in as the "filters" parameter to ListDevices. For
1212
+ # an example of the JSON request syntax, see ListDevices.
1213
+ #
1214
+ # @note When making an API call, you may pass DeviceFilter
1215
+ # data as a hash:
1216
+ #
1217
+ # {
1218
+ # attribute: "ARN", # accepts ARN, PLATFORM, OS_VERSION, MODEL, AVAILABILITY, FORM_FACTOR, MANUFACTURER, REMOTE_ACCESS_ENABLED, REMOTE_DEBUG_ENABLED, INSTANCE_ARN, INSTANCE_LABELS, FLEET_TYPE
1219
+ # operator: "EQUALS", # accepts EQUALS, LESS_THAN, LESS_THAN_OR_EQUALS, GREATER_THAN, GREATER_THAN_OR_EQUALS, IN, NOT_IN, CONTAINS
1220
+ # values: ["String"],
1221
+ # }
1222
+ #
1223
+ # @!attribute [rw] attribute
1224
+ # The aspect of a device such as platform or model used as the
1225
+ # selection criteria in a device filter.
1226
+ #
1227
+ # Allowed values include:
1228
+ #
1229
+ # * ARN: The Amazon Resource Name (ARN) of the device. For example,
1230
+ # "arn:aws:devicefarm:us-west-2::device:12345Example".
1231
+ #
1232
+ # * PLATFORM: The device platform. Valid values are "ANDROID" or
1233
+ # "IOS".
1234
+ #
1235
+ # * OS\_VERSION: The operating system version. For example,
1236
+ # "10.3.2".
1237
+ #
1238
+ # * MODEL: The device model. For example, "iPad 5th Gen".
1239
+ #
1240
+ # * AVAILABILITY: The current availability of the device. Valid values
1241
+ # are "AVAILABLE", "HIGHLY\_AVAILABLE", "BUSY", or
1242
+ # "TEMPORARY\_NOT\_AVAILABLE".
1243
+ #
1244
+ # * FORM\_FACTOR: The device form factor. Valid values are "PHONE"
1245
+ # or "TABLET".
1246
+ #
1247
+ # * MANUFACTURER: The device manufacturer. For example, "Apple".
1248
+ #
1249
+ # * REMOTE\_ACCESS\_ENABLED: Whether the device is enabled for remote
1250
+ # access.
1251
+ #
1252
+ # * REMOTE\_DEBUG\_ENABLED: Whether the device is enabled for remote
1253
+ # debugging.
1254
+ #
1255
+ # * INSTANCE\_ARN: The Amazon Resource Name (ARN) of the device
1256
+ # instance.
1257
+ #
1258
+ # * INSTANCE\_LABELS: The label of the device instance.
1259
+ #
1260
+ # * FLEET\_TYPE: The fleet type. Valid values are "PUBLIC" or
1261
+ # "PRIVATE".
1262
+ # @return [String]
1263
+ #
1264
+ # @!attribute [rw] operator
1265
+ # The filter operator.
1266
+ #
1267
+ # * The EQUALS operator is available for every attribute except
1268
+ # INSTANCE\_LABELS.
1269
+ #
1270
+ # * The CONTAINS operator is available for the INSTANCE\_LABELS and
1271
+ # MODEL attributes.
1272
+ #
1273
+ # * The IN and NOT\_IN operators are available for the ARN,
1274
+ # OS\_VERSION, MODEL, MANUFACTURER, and INSTANCE\_ARN attributes.
1275
+ #
1276
+ # * The LESS\_THAN, GREATER\_THAN, LESS\_THAN\_OR\_EQUALS, and
1277
+ # GREATER\_THAN\_OR\_EQUALS operators are also available for the
1278
+ # OS\_VERSION attribute.
1279
+ # @return [String]
1280
+ #
1281
+ # @!attribute [rw] values
1282
+ # An array of one or more filter values used in a device filter.
1283
+ #
1284
+ # **Operator Values**
1285
+ #
1286
+ # * The IN and NOT operators can take a values array that has more
1287
+ # than one element.
1288
+ #
1289
+ # * The other operators require an array with a single element.
1290
+ #
1291
+ # **Attribute Values**
1292
+ #
1293
+ # * The PLATFORM attribute can be set to "ANDROID" or "IOS".
1294
+ #
1295
+ # * The AVAILABILITY attribute can be set to "AVAILABLE",
1296
+ # "HIGHLY\_AVAILABLE", "BUSY", or "TEMPORARY\_NOT\_AVAILABLE".
1297
+ #
1298
+ # * The FORM\_FACTOR attribute can be set to "PHONE" or "TABLET".
1299
+ #
1300
+ # * The FLEET\_TYPE attribute can be set to "PUBLIC" or "PRIVATE".
1301
+ # @return [Array<String>]
1302
+ #
1303
+ # @see http://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/DeviceFilter AWS API Documentation
1304
+ #
1305
+ class DeviceFilter < Struct.new(
1306
+ :attribute,
1307
+ :operator,
1308
+ :values)
1177
1309
  include Aws::Structure
1178
1310
  end
1179
1311
 
@@ -1308,6 +1440,133 @@ module Aws::DeviceFarm
1308
1440
  include Aws::Structure
1309
1441
  end
1310
1442
 
1443
+ # Represents the device filters used in a test run as well as the
1444
+ # maximum number of devices to be included in the run. It is passed in
1445
+ # as the deviceSelectionConfiguration request parameter in ScheduleRun.
1446
+ #
1447
+ # @note When making an API call, you may pass DeviceSelectionConfiguration
1448
+ # data as a hash:
1449
+ #
1450
+ # {
1451
+ # filters: [ # required
1452
+ # {
1453
+ # attribute: "ARN", # accepts ARN, PLATFORM, OS_VERSION, MODEL, AVAILABILITY, FORM_FACTOR, MANUFACTURER, REMOTE_ACCESS_ENABLED, REMOTE_DEBUG_ENABLED, INSTANCE_ARN, INSTANCE_LABELS, FLEET_TYPE
1454
+ # operator: "EQUALS", # accepts EQUALS, LESS_THAN, LESS_THAN_OR_EQUALS, GREATER_THAN, GREATER_THAN_OR_EQUALS, IN, NOT_IN, CONTAINS
1455
+ # values: ["String"],
1456
+ # },
1457
+ # ],
1458
+ # max_devices: 1, # required
1459
+ # }
1460
+ #
1461
+ # @!attribute [rw] filters
1462
+ # Used to dynamically select a set of devices for a test run. A filter
1463
+ # is made up of an attribute, an operator, and one or more values.
1464
+ #
1465
+ # * Attribute: The aspect of a device such as platform or model used
1466
+ # as the selection criteria in a device filter.
1467
+ #
1468
+ # Allowed values include:
1469
+ #
1470
+ # * ARN: The Amazon Resource Name (ARN) of the device. For example,
1471
+ # "arn:aws:devicefarm:us-west-2::device:12345Example".
1472
+ #
1473
+ # * PLATFORM: The device platform. Valid values are "ANDROID" or
1474
+ # "IOS".
1475
+ #
1476
+ # * OS\_VERSION: The operating system version. For example,
1477
+ # "10.3.2".
1478
+ #
1479
+ # * MODEL: The device model. For example, "iPad 5th Gen".
1480
+ #
1481
+ # * AVAILABILITY: The current availability of the device. Valid
1482
+ # values are "AVAILABLE", "HIGHLY\_AVAILABLE", "BUSY", or
1483
+ # "TEMPORARY\_NOT\_AVAILABLE".
1484
+ #
1485
+ # * FORM\_FACTOR: The device form factor. Valid values are "PHONE"
1486
+ # or "TABLET".
1487
+ #
1488
+ # * MANUFACTURER: The device manufacturer. For example, "Apple".
1489
+ #
1490
+ # * REMOTE\_ACCESS\_ENABLED: Whether the device is enabled for
1491
+ # remote access.
1492
+ #
1493
+ # * REMOTE\_DEBUG\_ENABLED: Whether the device is enabled for remote
1494
+ # debugging.
1495
+ #
1496
+ # * INSTANCE\_ARN: The Amazon Resource Name (ARN) of the device
1497
+ # instance.
1498
+ #
1499
+ # * INSTANCE\_LABELS: The label of the device instance.
1500
+ #
1501
+ # * FLEET\_TYPE: The fleet type. Valid values are "PUBLIC" or
1502
+ # "PRIVATE".
1503
+ #
1504
+ # * Operator: The filter operator.
1505
+ #
1506
+ # * The EQUALS operator is available for every attribute except
1507
+ # INSTANCE\_LABELS.
1508
+ #
1509
+ # * The CONTAINS operator is available for the INSTANCE\_LABELS and
1510
+ # MODEL attributes.
1511
+ #
1512
+ # * The IN and NOT\_IN operators are available for the ARN,
1513
+ # OS\_VERSION, MODEL, MANUFACTURER, and INSTANCE\_ARN attributes.
1514
+ #
1515
+ # * The LESS\_THAN, GREATER\_THAN, LESS\_THAN\_OR\_EQUALS, and
1516
+ # GREATER\_THAN\_OR\_EQUALS operators are also available for the
1517
+ # OS\_VERSION attribute.
1518
+ #
1519
+ # * Values: An array of one or more filter values.
1520
+ #
1521
+ # * The IN and NOT operators can take a values array that has more
1522
+ # than one element.
1523
+ #
1524
+ # * The other operators require an array with a single element.
1525
+ #
1526
+ # * In a request, the AVAILABILITY attribute takes "AVAILABLE",
1527
+ # "HIGHLY\_AVAILABLE", "BUSY", or
1528
+ # "TEMPORARY\_NOT\_AVAILABLE" as values.
1529
+ # @return [Array<Types::DeviceFilter>]
1530
+ #
1531
+ # @!attribute [rw] max_devices
1532
+ # The maximum number of devices to be included in a test run.
1533
+ # @return [Integer]
1534
+ #
1535
+ # @see http://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/DeviceSelectionConfiguration AWS API Documentation
1536
+ #
1537
+ class DeviceSelectionConfiguration < Struct.new(
1538
+ :filters,
1539
+ :max_devices)
1540
+ include Aws::Structure
1541
+ end
1542
+
1543
+ # Contains the run results requested by the device selection
1544
+ # configuration as well as how many devices were returned. For an
1545
+ # example of the JSON response syntax, see ScheduleRun.
1546
+ #
1547
+ # @!attribute [rw] filters
1548
+ # The filters in a device selection result.
1549
+ # @return [Array<Types::DeviceFilter>]
1550
+ #
1551
+ # @!attribute [rw] matched_devices_count
1552
+ # The number of devices that matched the device filter selection
1553
+ # criteria.
1554
+ # @return [Integer]
1555
+ #
1556
+ # @!attribute [rw] max_devices
1557
+ # The maximum number of devices to be selected by a device filter and
1558
+ # included in a test run.
1559
+ # @return [Integer]
1560
+ #
1561
+ # @see http://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/DeviceSelectionResult AWS API Documentation
1562
+ #
1563
+ class DeviceSelectionResult < Struct.new(
1564
+ :filters,
1565
+ :matched_devices_count,
1566
+ :max_devices)
1567
+ include Aws::Structure
1568
+ end
1569
+
1311
1570
  # Represents configuration information about a test run, such as the
1312
1571
  # execution timeout (in minutes).
1313
1572
  #
@@ -2436,6 +2695,13 @@ module Aws::DeviceFarm
2436
2695
  # {
2437
2696
  # arn: "AmazonResourceName",
2438
2697
  # next_token: "PaginationToken",
2698
+ # filters: [
2699
+ # {
2700
+ # attribute: "ARN", # accepts ARN, PLATFORM, OS_VERSION, MODEL, AVAILABILITY, FORM_FACTOR, MANUFACTURER, REMOTE_ACCESS_ENABLED, REMOTE_DEBUG_ENABLED, INSTANCE_ARN, INSTANCE_LABELS, FLEET_TYPE
2701
+ # operator: "EQUALS", # accepts EQUALS, LESS_THAN, LESS_THAN_OR_EQUALS, GREATER_THAN, GREATER_THAN_OR_EQUALS, IN, NOT_IN, CONTAINS
2702
+ # values: ["String"],
2703
+ # },
2704
+ # ],
2439
2705
  # }
2440
2706
  #
2441
2707
  # @!attribute [rw] arn
@@ -2448,11 +2714,82 @@ module Aws::DeviceFarm
2448
2714
  # list.
2449
2715
  # @return [String]
2450
2716
  #
2717
+ # @!attribute [rw] filters
2718
+ # Used to select a set of devices. A filter is made up of an
2719
+ # attribute, an operator, and one or more values.
2720
+ #
2721
+ # * Attribute: The aspect of a device such as platform or model used
2722
+ # as the selction criteria in a device filter.
2723
+ #
2724
+ # Allowed values include:
2725
+ #
2726
+ # * ARN: The Amazon Resource Name (ARN) of the device. For example,
2727
+ # "arn:aws:devicefarm:us-west-2::device:12345Example".
2728
+ #
2729
+ # * PLATFORM: The device platform. Valid values are "ANDROID" or
2730
+ # "IOS".
2731
+ #
2732
+ # * OS\_VERSION: The operating system version. For example,
2733
+ # "10.3.2".
2734
+ #
2735
+ # * MODEL: The device model. For example, "iPad 5th Gen".
2736
+ #
2737
+ # * AVAILABILITY: The current availability of the device. Valid
2738
+ # values are "AVAILABLE", "HIGHLY\_AVAILABLE", "BUSY", or
2739
+ # "TEMPORARY\_NOT\_AVAILABLE".
2740
+ #
2741
+ # * FORM\_FACTOR: The device form factor. Valid values are "PHONE"
2742
+ # or "TABLET".
2743
+ #
2744
+ # * MANUFACTURER: The device manufacturer. For example, "Apple".
2745
+ #
2746
+ # * REMOTE\_ACCESS\_ENABLED: Whether the device is enabled for
2747
+ # remote access.
2748
+ #
2749
+ # * REMOTE\_DEBUG\_ENABLED: Whether the device is enabled for remote
2750
+ # debugging.
2751
+ #
2752
+ # * INSTANCE\_ARN: The Amazon Resource Name (ARN) of the device
2753
+ # instance.
2754
+ #
2755
+ # * INSTANCE\_LABELS: The label of the device instance.
2756
+ #
2757
+ # * FLEET\_TYPE: The fleet type. Valid values are "PUBLIC" or
2758
+ # "PRIVATE".
2759
+ #
2760
+ # * Operator: The filter operator.
2761
+ #
2762
+ # * The EQUALS operator is available for every attribute except
2763
+ # INSTANCE\_LABELS.
2764
+ #
2765
+ # * The CONTAINS operator is available for the INSTANCE\_LABELS and
2766
+ # MODEL attributes.
2767
+ #
2768
+ # * The IN and NOT\_IN operators are available for the ARN,
2769
+ # OS\_VERSION, MODEL, MANUFACTURER, and INSTANCE\_ARN attributes.
2770
+ #
2771
+ # * The LESS\_THAN, GREATER\_THAN, LESS\_THAN\_OR\_EQUALS, and
2772
+ # GREATER\_THAN\_OR\_EQUALS operators are also available for the
2773
+ # OS\_VERSION attribute.
2774
+ #
2775
+ # * Values: An array of one or more filter values.
2776
+ #
2777
+ # * The IN and NOT operators can take a values array that has more
2778
+ # than one element.
2779
+ #
2780
+ # * The other operators require an array with a single element.
2781
+ #
2782
+ # * In a request, the AVAILABILITY attribute takes "AVAILABLE",
2783
+ # "HIGHLY\_AVAILABLE", "BUSY", or
2784
+ # "TEMPORARY\_NOT\_AVAILABLE" as values.
2785
+ # @return [Array<Types::DeviceFilter>]
2786
+ #
2451
2787
  # @see http://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/ListDevicesRequest AWS API Documentation
2452
2788
  #
2453
2789
  class ListDevicesRequest < Struct.new(
2454
2790
  :arn,
2455
- :next_token)
2791
+ :next_token,
2792
+ :filters)
2456
2793
  include Aws::Structure
2457
2794
  end
2458
2795
 
@@ -2908,8 +3245,7 @@ module Aws::DeviceFarm
2908
3245
  # }
2909
3246
  #
2910
3247
  # @!attribute [rw] arn
2911
- # The Amazon Resource Name (ARN) of the project for which you want to
2912
- # list samples.
3248
+ # The Amazon Resource Name (ARN) of the job used to list samples.
2913
3249
  # @return [String]
2914
3250
  #
2915
3251
  # @!attribute [rw] next_token
@@ -3967,7 +4303,8 @@ module Aws::DeviceFarm
3967
4303
  include Aws::Structure
3968
4304
  end
3969
4305
 
3970
- # Represents a condition for a device pool.
4306
+ # Represents a condition for a device pool. It is passed in as the
4307
+ # `rules` parameter to CreateDevicePool and UpdateDevicePool.
3971
4308
  #
3972
4309
  # @note When making an API call, you may pass Rule
3973
4310
  # data as a hash:
@@ -3979,28 +4316,38 @@ module Aws::DeviceFarm
3979
4316
  # }
3980
4317
  #
3981
4318
  # @!attribute [rw] attribute
3982
- # The rule's stringified attribute. For example, specify the value as
3983
- # `""abc""`.
4319
+ # The rule's attribute. It is the aspect of a device such as platform
4320
+ # or model used as selection criteria to create or update a device
4321
+ # pool.
3984
4322
  #
3985
4323
  # Allowed values include:
3986
4324
  #
3987
- # * ARN: The ARN.
4325
+ # * ARN: The Amazon Resource Name (ARN) of a device. For example,
4326
+ # "arn:aws:devicefarm:us-west-2::device:12345Example".
3988
4327
  #
3989
- # * FORM\_FACTOR: The form factor (for example, phone or tablet).
4328
+ # * PLATFORM: The device platform. Valid values are "ANDROID" or
4329
+ # "IOS".
3990
4330
  #
3991
- # * MANUFACTURER: The manufacturer.
4331
+ # * FORM\_FACTOR: The device form factor. Valid values are "PHONE"
4332
+ # or "TABLET".
3992
4333
  #
3993
- # * PLATFORM: The platform (for example, Android or iOS).
4334
+ # * MANUFACTURER: The device manufacturer. For example, "Apple".
3994
4335
  #
3995
4336
  # * REMOTE\_ACCESS\_ENABLED: Whether the device is enabled for remote
3996
4337
  # access.
3997
4338
  #
4339
+ # * REMOTE\_DEBUG\_ENABLED: Whether the device is enabled for remote
4340
+ # debugging.
4341
+ #
3998
4342
  # * APPIUM\_VERSION: The Appium version for the test.
3999
4343
  #
4000
4344
  # * INSTANCE\_ARN: The Amazon Resource Name (ARN) of the device
4001
4345
  # instance.
4002
4346
  #
4003
4347
  # * INSTANCE\_LABELS: The label of the device instance.
4348
+ #
4349
+ # * FLEET\_TYPE: The fleet type. Valid values are "PUBLIC" or
4350
+ # "PRIVATE".
4004
4351
  # @return [String]
4005
4352
  #
4006
4353
  # @!attribute [rw] operator
@@ -4021,6 +4368,12 @@ module Aws::DeviceFarm
4021
4368
  #
4022
4369
  # @!attribute [rw] value
4023
4370
  # The rule's value.
4371
+ #
4372
+ # The value must be passed in as a string using escaped quotes.
4373
+ #
4374
+ # For example:
4375
+ #
4376
+ # "value": "\\"ANDROID\\""
4024
4377
  # @return [String]
4025
4378
  #
4026
4379
  # @see http://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/Rule AWS API Documentation
@@ -4250,6 +4603,11 @@ module Aws::DeviceFarm
4250
4603
  # The ARN of the YAML-formatted test specification for the run.
4251
4604
  # @return [String]
4252
4605
  #
4606
+ # @!attribute [rw] device_selection_result
4607
+ # The results of a device filter used to select the devices for a test
4608
+ # run.
4609
+ # @return [Types::DeviceSelectionResult]
4610
+ #
4253
4611
  # @see http://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/Run AWS API Documentation
4254
4612
  #
4255
4613
  class Run < Struct.new(
@@ -4282,7 +4640,8 @@ module Aws::DeviceFarm
4282
4640
  :customer_artifact_paths,
4283
4641
  :web_url,
4284
4642
  :skip_app_resign,
4285
- :test_spec_arn)
4643
+ :test_spec_arn,
4644
+ :device_selection_result)
4286
4645
  include Aws::Structure
4287
4646
  end
4288
4647
 
@@ -4447,7 +4806,17 @@ module Aws::DeviceFarm
4447
4806
  # {
4448
4807
  # project_arn: "AmazonResourceName", # required
4449
4808
  # app_arn: "AmazonResourceName",
4450
- # device_pool_arn: "AmazonResourceName", # required
4809
+ # device_pool_arn: "AmazonResourceName",
4810
+ # device_selection_configuration: {
4811
+ # filters: [ # required
4812
+ # {
4813
+ # attribute: "ARN", # accepts ARN, PLATFORM, OS_VERSION, MODEL, AVAILABILITY, FORM_FACTOR, MANUFACTURER, REMOTE_ACCESS_ENABLED, REMOTE_DEBUG_ENABLED, INSTANCE_ARN, INSTANCE_LABELS, FLEET_TYPE
4814
+ # operator: "EQUALS", # accepts EQUALS, LESS_THAN, LESS_THAN_OR_EQUALS, GREATER_THAN, GREATER_THAN_OR_EQUALS, IN, NOT_IN, CONTAINS
4815
+ # values: ["String"],
4816
+ # },
4817
+ # ],
4818
+ # max_devices: 1, # required
4819
+ # },
4451
4820
  # name: "Name",
4452
4821
  # test: { # required
4453
4822
  # type: "BUILTIN_FUZZ", # required, accepts BUILTIN_FUZZ, BUILTIN_EXPLORER, WEB_PERFORMANCE_PROFILE, APPIUM_JAVA_JUNIT, APPIUM_JAVA_TESTNG, APPIUM_PYTHON, APPIUM_WEB_JAVA_JUNIT, APPIUM_WEB_JAVA_TESTNG, APPIUM_WEB_PYTHON, CALABASH, INSTRUMENTATION, UIAUTOMATION, UIAUTOMATOR, XCTEST, XCTEST_UI, REMOTE_ACCESS_RECORD, REMOTE_ACCESS_REPLAY
@@ -4500,8 +4869,22 @@ module Aws::DeviceFarm
4500
4869
  #
4501
4870
  # @!attribute [rw] device_pool_arn
4502
4871
  # The ARN of the device pool for the run to be scheduled.
4872
+ #
4873
+ # Either <b> <code>devicePoolArn</code> </b> or <b>
4874
+ # <code>deviceSelectionConfiguration</code> </b> are required in a
4875
+ # request.
4503
4876
  # @return [String]
4504
4877
  #
4878
+ # @!attribute [rw] device_selection_configuration
4879
+ # The filter criteria used to dynamically select a set of devices for
4880
+ # a test run, as well as the maximum number of devices to be included
4881
+ # in the run.
4882
+ #
4883
+ # Either <b> <code>devicePoolArn</code> </b> or <b>
4884
+ # <code>deviceSelectionConfiguration</code> </b> are required in a
4885
+ # request.
4886
+ # @return [Types::DeviceSelectionConfiguration]
4887
+ #
4505
4888
  # @!attribute [rw] name
4506
4889
  # The name for the run to be scheduled.
4507
4890
  # @return [String]
@@ -4525,6 +4908,7 @@ module Aws::DeviceFarm
4525
4908
  :project_arn,
4526
4909
  :app_arn,
4527
4910
  :device_pool_arn,
4911
+ :device_selection_configuration,
4528
4912
  :name,
4529
4913
  :test,
4530
4914
  :configuration,
@@ -4545,7 +4929,9 @@ module Aws::DeviceFarm
4545
4929
  include Aws::Structure
4546
4930
  end
4547
4931
 
4548
- # Represents additional test settings.
4932
+ # Represents test settings. This data structure is passed in as the
4933
+ # "test" parameter to ScheduleRun. For an example of the JSON request
4934
+ # syntax, see ScheduleRun.
4549
4935
  #
4550
4936
  # @note When making an API call, you may pass ScheduleRunTest
4551
4937
  # data as a hash:
@@ -4610,8 +4996,16 @@ module Aws::DeviceFarm
4610
4996
  # @return [String]
4611
4997
  #
4612
4998
  # @!attribute [rw] parameters
4613
- # The test's parameters, such as the following test framework
4614
- # parameters and fixture settings:
4999
+ # The test's parameters, such as test framework parameters and
5000
+ # fixture settings. Parameters are represented by name-value pairs of
5001
+ # strings.
5002
+ #
5003
+ # For all tests:
5004
+ #
5005
+ # * app\_performance\_monitoring: Performance monitoring is enabled by
5006
+ # default. Set this parameter to "false" to disable it.
5007
+ #
5008
+ # ^
4615
5009
  #
4616
5010
  # For Calabash tests:
4617
5011
  #
@@ -4624,14 +5018,14 @@ module Aws::DeviceFarm
4624
5018
  # For Appium tests (all types):
4625
5019
  #
4626
5020
  # * appium\_version: The Appium version. Currently supported values
4627
- # are "1.4.16", "1.6.3", "latest", and "default".
5021
+ # are "1.7.2", "1.7.1", "1.6.5", "latest", and "default".
4628
5022
  #
4629
5023
  # * “latest” will run the latest Appium version supported by Device
4630
- # Farm (1.6.3).
5024
+ # Farm (1.7.2).
4631
5025
  #
4632
5026
  # * For “default”, Device Farm will choose a compatible version of
4633
- # Appium for the device. The current behavior is to run 1.4.16 on
4634
- # Android devices and iOS 9 and earlier, 1.6.3 for iOS 10 and
5027
+ # Appium for the device. The current behavior is to run 1.7.2 on
5028
+ # Android devices and iOS 9 and earlier, 1.7.2 for iOS 10 and
4635
5029
  # later.
4636
5030
  #
4637
5031
  # * This behavior is subject to change.
@@ -5597,6 +5991,27 @@ module Aws::DeviceFarm
5597
5991
  # * XCTEST\_TEST\_PACKAGE: An XCode test package upload.
5598
5992
  #
5599
5993
  # * XCTEST\_UI\_TEST\_PACKAGE: An XCode UI test package upload.
5994
+ #
5995
+ # * APPIUM\_JAVA\_JUNIT\_TEST\_SPEC: An Appium Java JUnit test spec
5996
+ # upload.
5997
+ #
5998
+ # * APPIUM\_JAVA\_TESTNG\_TEST\_SPEC: An Appium Java TestNG test spec
5999
+ # upload.
6000
+ #
6001
+ # * APPIUM\_PYTHON\_TEST\_SPEC: An Appium Python test spec upload.
6002
+ #
6003
+ # * APPIUM\_WEB\_JAVA\_JUNIT\_TEST\_SPEC: An Appium Java JUnit test
6004
+ # spec upload.
6005
+ #
6006
+ # * APPIUM\_WEB\_JAVA\_TESTNG\_TEST\_SPEC: An Appium Java TestNG test
6007
+ # spec upload.
6008
+ #
6009
+ # * APPIUM\_WEB\_PYTHON\_TEST\_SPEC: An Appium Python test spec
6010
+ # upload.
6011
+ #
6012
+ # * INSTRUMENTATION\_TEST\_SPEC: An instrumentation test spec upload.
6013
+ #
6014
+ # * XCTEST\_UI\_TEST\_SPEC: An XCode UI test spec upload.
5600
6015
  # @return [String]
5601
6016
  #
5602
6017
  # @!attribute [rw] status
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: aws-sdk-devicefarm
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.12.0
4
+ version: 1.13.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Amazon Web Services
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-10-24 00:00:00.000000000 Z
11
+ date: 2018-11-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: aws-sdk-core
@@ -19,7 +19,7 @@ dependencies:
19
19
  version: '3'
20
20
  - - ">="
21
21
  - !ruby/object:Gem::Version
22
- version: 3.26.0
22
+ version: 3.37.0
23
23
  type: :runtime
24
24
  prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
@@ -29,7 +29,7 @@ dependencies:
29
29
  version: '3'
30
30
  - - ">="
31
31
  - !ruby/object:Gem::Version
32
- version: 3.26.0
32
+ version: 3.37.0
33
33
  - !ruby/object:Gem::Dependency
34
34
  name: aws-sigv4
35
35
  requirement: !ruby/object:Gem::Requirement