aws-sdk-devicefarm 1.12.0 → 1.13.0

Sign up to get free protection for your applications and to get access to all the features.
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