aws-sdk-devicefarm 1.14.0 → 1.15.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -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"))
@@ -97,6 +97,8 @@ module Aws::DeviceFarm
97
97
  #
98
98
  # * MESSAGE\_LOG: The message log type.
99
99
  #
100
+ # * VIDEO\_LOG: The video log type.
101
+ #
100
102
  # * RESULT\_LOG: The result log type.
101
103
  #
102
104
  # * SERVICE\_LOG: The service log type.
@@ -136,6 +138,14 @@ module Aws::DeviceFarm
136
138
  # type.
137
139
  #
138
140
  # * XCTEST\_LOG: The XCode test output type.
141
+ #
142
+ # * VIDEO: The Video output type.
143
+ #
144
+ # * CUSTOMER\_ARTIFACT:The Customer Artifact output type.
145
+ #
146
+ # * CUSTOMER\_ARTIFACT\_LOG: The Customer Artifact Log output type.
147
+ #
148
+ # * TESTSPEC\_OUTPUT: The Test Spec Output type.
139
149
  # @return [String]
140
150
  #
141
151
  # @!attribute [rw] extension
@@ -664,7 +674,7 @@ module Aws::DeviceFarm
664
674
  # {
665
675
  # project_arn: "AmazonResourceName", # required
666
676
  # name: "Name", # required
667
- # type: "ANDROID_APP", # required, accepts ANDROID_APP, IOS_APP, WEB_APP, EXTERNAL_DATA, APPIUM_JAVA_JUNIT_TEST_PACKAGE, APPIUM_JAVA_TESTNG_TEST_PACKAGE, APPIUM_PYTHON_TEST_PACKAGE, APPIUM_WEB_JAVA_JUNIT_TEST_PACKAGE, APPIUM_WEB_JAVA_TESTNG_TEST_PACKAGE, APPIUM_WEB_PYTHON_TEST_PACKAGE, CALABASH_TEST_PACKAGE, INSTRUMENTATION_TEST_PACKAGE, UIAUTOMATION_TEST_PACKAGE, UIAUTOMATOR_TEST_PACKAGE, XCTEST_TEST_PACKAGE, XCTEST_UI_TEST_PACKAGE, APPIUM_JAVA_JUNIT_TEST_SPEC, APPIUM_JAVA_TESTNG_TEST_SPEC, APPIUM_PYTHON_TEST_SPEC, APPIUM_WEB_JAVA_JUNIT_TEST_SPEC, APPIUM_WEB_JAVA_TESTNG_TEST_SPEC, APPIUM_WEB_PYTHON_TEST_SPEC, INSTRUMENTATION_TEST_SPEC, XCTEST_UI_TEST_SPEC
677
+ # type: "ANDROID_APP", # required, accepts ANDROID_APP, IOS_APP, WEB_APP, EXTERNAL_DATA, APPIUM_JAVA_JUNIT_TEST_PACKAGE, APPIUM_JAVA_TESTNG_TEST_PACKAGE, APPIUM_PYTHON_TEST_PACKAGE, APPIUM_NODE_TEST_PACKAGE, APPIUM_RUBY_TEST_PACKAGE, APPIUM_WEB_JAVA_JUNIT_TEST_PACKAGE, APPIUM_WEB_JAVA_TESTNG_TEST_PACKAGE, APPIUM_WEB_PYTHON_TEST_PACKAGE, APPIUM_WEB_NODE_TEST_PACKAGE, APPIUM_WEB_RUBY_TEST_PACKAGE, CALABASH_TEST_PACKAGE, INSTRUMENTATION_TEST_PACKAGE, UIAUTOMATION_TEST_PACKAGE, UIAUTOMATOR_TEST_PACKAGE, XCTEST_TEST_PACKAGE, XCTEST_UI_TEST_PACKAGE, APPIUM_JAVA_JUNIT_TEST_SPEC, APPIUM_JAVA_TESTNG_TEST_SPEC, APPIUM_PYTHON_TEST_SPEC, APPIUM_NODE_TEST_SPEC, APPIUM_RUBY_TEST_SPEC, APPIUM_WEB_JAVA_JUNIT_TEST_SPEC, APPIUM_WEB_JAVA_TESTNG_TEST_SPEC, APPIUM_WEB_PYTHON_TEST_SPEC, APPIUM_WEB_NODE_TEST_SPEC, APPIUM_WEB_RUBY_TEST_SPEC, INSTRUMENTATION_TEST_SPEC, XCTEST_UI_TEST_SPEC
668
678
  # content_type: "ContentType",
669
679
  # }
670
680
  #
@@ -702,14 +712,25 @@ module Aws::DeviceFarm
702
712
  # * APPIUM\_PYTHON\_TEST\_PACKAGE: An Appium Python test package
703
713
  # upload.
704
714
  #
715
+ # * APPIUM\_NODE\_TEST\_PACKAGE: An Appium Node.js test package
716
+ # upload.
717
+ #
718
+ # * APPIUM\_RUBY\_TEST\_PACKAGE: An Appium Ruby test package upload.
719
+ #
705
720
  # * APPIUM\_WEB\_JAVA\_JUNIT\_TEST\_PACKAGE: An Appium Java JUnit test
706
- # package upload.
721
+ # package upload for a web app.
707
722
  #
708
723
  # * APPIUM\_WEB\_JAVA\_TESTNG\_TEST\_PACKAGE: An Appium Java TestNG
709
- # test package upload.
724
+ # test package upload for a web app.
710
725
  #
711
726
  # * APPIUM\_WEB\_PYTHON\_TEST\_PACKAGE: An Appium Python test package
712
- # upload.
727
+ # upload for a web app.
728
+ #
729
+ # * APPIUM\_WEB\_NODE\_TEST\_PACKAGE: An Appium Node.js test package
730
+ # upload for a web app.
731
+ #
732
+ # * APPIUM\_WEB\_RUBY\_TEST\_PACKAGE: An Appium Ruby test package
733
+ # upload for a web app.
713
734
  #
714
735
  # * CALABASH\_TEST\_PACKAGE: A Calabash test package upload.
715
736
  #
@@ -731,14 +752,24 @@ module Aws::DeviceFarm
731
752
  #
732
753
  # * APPIUM\_PYTHON\_TEST\_SPEC: An Appium Python test spec upload.
733
754
  #
755
+ # * APPIUM\_NODE\_TEST\_SPEC: An Appium Node.js test spec upload.
756
+ #
757
+ # * APPIUM\_RUBY\_TEST\_SPEC: An Appium Ruby test spec upload.
758
+ #
734
759
  # * APPIUM\_WEB\_JAVA\_JUNIT\_TEST\_SPEC: An Appium Java JUnit test
735
- # spec upload.
760
+ # spec upload for a web app.
736
761
  #
737
762
  # * APPIUM\_WEB\_JAVA\_TESTNG\_TEST\_SPEC: An Appium Java TestNG test
738
- # spec upload.
763
+ # spec upload for a web app.
739
764
  #
740
- # * APPIUM\_WEB\_PYTHON\_TEST\_SPEC: An Appium Python test spec
741
- # upload.
765
+ # * APPIUM\_WEB\_PYTHON\_TEST\_SPEC: An Appium Python test spec upload
766
+ # for a web app.
767
+ #
768
+ # * APPIUM\_WEB\_NODE\_TEST\_SPEC: An Appium Node.js test spec upload
769
+ # for a web app.
770
+ #
771
+ # * APPIUM\_WEB\_RUBY\_TEST\_SPEC: An Appium Ruby test spec upload for
772
+ # a web app.
742
773
  #
743
774
  # * INSTRUMENTATION\_TEST\_SPEC: An instrumentation test spec upload.
744
775
  #
@@ -1172,6 +1203,11 @@ module Aws::DeviceFarm
1172
1203
  # The instances belonging to this device.
1173
1204
  # @return [Array<Types::DeviceInstance>]
1174
1205
  #
1206
+ # @!attribute [rw] availability
1207
+ # Reflects how likely a device will be available for a test run. It is
1208
+ # currently available in the ListDevices and GetDevice API methods.
1209
+ # @return [String]
1210
+ #
1175
1211
  # @see http://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/Device AWS API Documentation
1176
1212
  #
1177
1213
  class Device < Struct.new(
@@ -1194,7 +1230,114 @@ module Aws::DeviceFarm
1194
1230
  :remote_debug_enabled,
1195
1231
  :fleet_type,
1196
1232
  :fleet_name,
1197
- :instances)
1233
+ :instances,
1234
+ :availability)
1235
+ include Aws::Structure
1236
+ end
1237
+
1238
+ # Represents a device filter used to select a set of devices to be
1239
+ # included in a test run. This data structure is passed in as the
1240
+ # `deviceSelectionConfiguration` parameter to ScheduleRun. For an
1241
+ # example of the JSON request syntax, see ScheduleRun.
1242
+ #
1243
+ # It is also passed in as the `filters` parameter to ListDevices. For an
1244
+ # example of the JSON request syntax, see ListDevices.
1245
+ #
1246
+ # @note When making an API call, you may pass DeviceFilter
1247
+ # data as a hash:
1248
+ #
1249
+ # {
1250
+ # attribute: "ARN", # accepts ARN, PLATFORM, OS_VERSION, MODEL, AVAILABILITY, FORM_FACTOR, MANUFACTURER, REMOTE_ACCESS_ENABLED, REMOTE_DEBUG_ENABLED, INSTANCE_ARN, INSTANCE_LABELS, FLEET_TYPE
1251
+ # operator: "EQUALS", # accepts EQUALS, LESS_THAN, LESS_THAN_OR_EQUALS, GREATER_THAN, GREATER_THAN_OR_EQUALS, IN, NOT_IN, CONTAINS
1252
+ # values: ["String"],
1253
+ # }
1254
+ #
1255
+ # @!attribute [rw] attribute
1256
+ # The aspect of a device such as platform or model used as the
1257
+ # selection criteria in a device filter.
1258
+ #
1259
+ # Allowed values include:
1260
+ #
1261
+ # * ARN: The Amazon Resource Name (ARN) of the device. For example,
1262
+ # "arn:aws:devicefarm:us-west-2::device:12345Example".
1263
+ #
1264
+ # * PLATFORM: The device platform. Valid values are "ANDROID" or
1265
+ # "IOS".
1266
+ #
1267
+ # * OS\_VERSION: The operating system version. For example,
1268
+ # "10.3.2".
1269
+ #
1270
+ # * MODEL: The device model. For example, "iPad 5th Gen".
1271
+ #
1272
+ # * AVAILABILITY: The current availability of the device. Valid values
1273
+ # are "AVAILABLE", "HIGHLY\_AVAILABLE", "BUSY", or
1274
+ # "TEMPORARY\_NOT\_AVAILABLE".
1275
+ #
1276
+ # * FORM\_FACTOR: The device form factor. Valid values are "PHONE"
1277
+ # or "TABLET".
1278
+ #
1279
+ # * MANUFACTURER: The device manufacturer. For example, "Apple".
1280
+ #
1281
+ # * REMOTE\_ACCESS\_ENABLED: Whether the device is enabled for remote
1282
+ # access. Valid values are "TRUE" or "FALSE".
1283
+ #
1284
+ # * REMOTE\_DEBUG\_ENABLED: Whether the device is enabled for remote
1285
+ # debugging. Valid values are "TRUE" or "FALSE".
1286
+ #
1287
+ # * INSTANCE\_ARN: The Amazon Resource Name (ARN) of the device
1288
+ # instance.
1289
+ #
1290
+ # * INSTANCE\_LABELS: The label of the device instance.
1291
+ #
1292
+ # * FLEET\_TYPE: The fleet type. Valid values are "PUBLIC" or
1293
+ # "PRIVATE".
1294
+ # @return [String]
1295
+ #
1296
+ # @!attribute [rw] operator
1297
+ # The filter operator.
1298
+ #
1299
+ # * The EQUALS operator is available for every attribute except
1300
+ # INSTANCE\_LABELS.
1301
+ #
1302
+ # * The CONTAINS operator is available for the INSTANCE\_LABELS and
1303
+ # MODEL attributes.
1304
+ #
1305
+ # * The IN and NOT\_IN operators are available for the ARN,
1306
+ # OS\_VERSION, MODEL, MANUFACTURER, and INSTANCE\_ARN attributes.
1307
+ #
1308
+ # * The LESS\_THAN, GREATER\_THAN, LESS\_THAN\_OR\_EQUALS, and
1309
+ # GREATER\_THAN\_OR\_EQUALS operators are also available for the
1310
+ # OS\_VERSION attribute.
1311
+ # @return [String]
1312
+ #
1313
+ # @!attribute [rw] values
1314
+ # An array of one or more filter values used in a device filter.
1315
+ #
1316
+ # **Operator Values**
1317
+ #
1318
+ # * The IN and NOT\_IN operators can take a values array that has more
1319
+ # than one element.
1320
+ #
1321
+ # * The other operators require an array with a single element.
1322
+ #
1323
+ # **Attribute Values**
1324
+ #
1325
+ # * The PLATFORM attribute can be set to "ANDROID" or "IOS".
1326
+ #
1327
+ # * The AVAILABILITY attribute can be set to "AVAILABLE",
1328
+ # "HIGHLY\_AVAILABLE", "BUSY", or "TEMPORARY\_NOT\_AVAILABLE".
1329
+ #
1330
+ # * The FORM\_FACTOR attribute can be set to "PHONE" or "TABLET".
1331
+ #
1332
+ # * The FLEET\_TYPE attribute can be set to "PUBLIC" or "PRIVATE".
1333
+ # @return [Array<String>]
1334
+ #
1335
+ # @see http://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/DeviceFilter AWS API Documentation
1336
+ #
1337
+ class DeviceFilter < Struct.new(
1338
+ :attribute,
1339
+ :operator,
1340
+ :values)
1198
1341
  include Aws::Structure
1199
1342
  end
1200
1343
 
@@ -1329,6 +1472,152 @@ module Aws::DeviceFarm
1329
1472
  include Aws::Structure
1330
1473
  end
1331
1474
 
1475
+ # Represents the device filters used in a test run as well as the
1476
+ # maximum number of devices to be included in the run. It is passed in
1477
+ # as the `deviceSelectionConfiguration` request parameter in
1478
+ # ScheduleRun.
1479
+ #
1480
+ # @note When making an API call, you may pass DeviceSelectionConfiguration
1481
+ # data as a hash:
1482
+ #
1483
+ # {
1484
+ # filters: [ # required
1485
+ # {
1486
+ # attribute: "ARN", # accepts ARN, PLATFORM, OS_VERSION, MODEL, AVAILABILITY, FORM_FACTOR, MANUFACTURER, REMOTE_ACCESS_ENABLED, REMOTE_DEBUG_ENABLED, INSTANCE_ARN, INSTANCE_LABELS, FLEET_TYPE
1487
+ # operator: "EQUALS", # accepts EQUALS, LESS_THAN, LESS_THAN_OR_EQUALS, GREATER_THAN, GREATER_THAN_OR_EQUALS, IN, NOT_IN, CONTAINS
1488
+ # values: ["String"],
1489
+ # },
1490
+ # ],
1491
+ # max_devices: 1, # required
1492
+ # }
1493
+ #
1494
+ # @!attribute [rw] filters
1495
+ # Used to dynamically select a set of devices for a test run. A filter
1496
+ # is made up of an attribute, an operator, and one or more values.
1497
+ #
1498
+ # * **Attribute**
1499
+ #
1500
+ # The aspect of a device such as platform or model used as the
1501
+ # selection criteria in a device filter.
1502
+ #
1503
+ # Allowed values include:
1504
+ #
1505
+ # * ARN: The Amazon Resource Name (ARN) of the device. For example,
1506
+ # "arn:aws:devicefarm:us-west-2::device:12345Example".
1507
+ #
1508
+ # * PLATFORM: The device platform. Valid values are "ANDROID" or
1509
+ # "IOS".
1510
+ #
1511
+ # * OS\_VERSION: The operating system version. For example,
1512
+ # "10.3.2".
1513
+ #
1514
+ # * MODEL: The device model. For example, "iPad 5th Gen".
1515
+ #
1516
+ # * AVAILABILITY: The current availability of the device. Valid
1517
+ # values are "AVAILABLE", "HIGHLY\_AVAILABLE", "BUSY", or
1518
+ # "TEMPORARY\_NOT\_AVAILABLE".
1519
+ #
1520
+ # * FORM\_FACTOR: The device form factor. Valid values are "PHONE"
1521
+ # or "TABLET".
1522
+ #
1523
+ # * MANUFACTURER: The device manufacturer. For example, "Apple".
1524
+ #
1525
+ # * REMOTE\_ACCESS\_ENABLED: Whether the device is enabled for
1526
+ # remote access. Valid values are "TRUE" or "FALSE".
1527
+ #
1528
+ # * REMOTE\_DEBUG\_ENABLED: Whether the device is enabled for remote
1529
+ # debugging. Valid values are "TRUE" or "FALSE".
1530
+ #
1531
+ # * INSTANCE\_ARN: The Amazon Resource Name (ARN) of the device
1532
+ # instance.
1533
+ #
1534
+ # * INSTANCE\_LABELS: The label of the device instance.
1535
+ #
1536
+ # * FLEET\_TYPE: The fleet type. Valid values are "PUBLIC" or
1537
+ # "PRIVATE".
1538
+ #
1539
+ # * **Operator**
1540
+ #
1541
+ # The filter operator.
1542
+ #
1543
+ # * The EQUALS operator is available for every attribute except
1544
+ # INSTANCE\_LABELS.
1545
+ #
1546
+ # * The CONTAINS operator is available for the INSTANCE\_LABELS and
1547
+ # MODEL attributes.
1548
+ #
1549
+ # * The IN and NOT\_IN operators are available for the ARN,
1550
+ # OS\_VERSION, MODEL, MANUFACTURER, and INSTANCE\_ARN attributes.
1551
+ #
1552
+ # * The LESS\_THAN, GREATER\_THAN, LESS\_THAN\_OR\_EQUALS, and
1553
+ # GREATER\_THAN\_OR\_EQUALS operators are also available for the
1554
+ # OS\_VERSION attribute.
1555
+ #
1556
+ # * **Values**
1557
+ #
1558
+ # An array of one or more filter values.
1559
+ #
1560
+ # **Operator Values**
1561
+ #
1562
+ # * The IN and NOT\_IN operators can take a values array that has
1563
+ # more than one element.
1564
+ #
1565
+ # * The other operators require an array with a single element.
1566
+ #
1567
+ # **Attribute Values**
1568
+ #
1569
+ # * The PLATFORM attribute can be set to "ANDROID" or "IOS".
1570
+ #
1571
+ # * The AVAILABILITY attribute can be set to "AVAILABLE",
1572
+ # "HIGHLY\_AVAILABLE", "BUSY", or
1573
+ # "TEMPORARY\_NOT\_AVAILABLE".
1574
+ #
1575
+ # * The FORM\_FACTOR attribute can be set to "PHONE" or
1576
+ # "TABLET".
1577
+ #
1578
+ # * The FLEET\_TYPE attribute can be set to "PUBLIC" or
1579
+ # "PRIVATE".
1580
+ # @return [Array<Types::DeviceFilter>]
1581
+ #
1582
+ # @!attribute [rw] max_devices
1583
+ # The maximum number of devices to be included in a test run.
1584
+ # @return [Integer]
1585
+ #
1586
+ # @see http://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/DeviceSelectionConfiguration AWS API Documentation
1587
+ #
1588
+ class DeviceSelectionConfiguration < Struct.new(
1589
+ :filters,
1590
+ :max_devices)
1591
+ include Aws::Structure
1592
+ end
1593
+
1594
+ # Contains the run results requested by the device selection
1595
+ # configuration as well as how many devices were returned. For an
1596
+ # example of the JSON response syntax, see ScheduleRun.
1597
+ #
1598
+ # @!attribute [rw] filters
1599
+ # The filters in a device selection result.
1600
+ # @return [Array<Types::DeviceFilter>]
1601
+ #
1602
+ # @!attribute [rw] matched_devices_count
1603
+ # The number of devices that matched the device filter selection
1604
+ # criteria.
1605
+ # @return [Integer]
1606
+ #
1607
+ # @!attribute [rw] max_devices
1608
+ # The maximum number of devices to be selected by a device filter and
1609
+ # included in a test run.
1610
+ # @return [Integer]
1611
+ #
1612
+ # @see http://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/DeviceSelectionResult AWS API Documentation
1613
+ #
1614
+ class DeviceSelectionResult < Struct.new(
1615
+ :filters,
1616
+ :matched_devices_count,
1617
+ :max_devices)
1618
+ include Aws::Structure
1619
+ end
1620
+
1332
1621
  # Represents configuration information about a test run, such as the
1333
1622
  # execution timeout (in minutes).
1334
1623
  #
@@ -1446,9 +1735,9 @@ module Aws::DeviceFarm
1446
1735
  # {
1447
1736
  # device_pool_arn: "AmazonResourceName", # required
1448
1737
  # app_arn: "AmazonResourceName",
1449
- # test_type: "BUILTIN_FUZZ", # 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
1738
+ # test_type: "BUILTIN_FUZZ", # accepts BUILTIN_FUZZ, BUILTIN_EXPLORER, WEB_PERFORMANCE_PROFILE, APPIUM_JAVA_JUNIT, APPIUM_JAVA_TESTNG, APPIUM_PYTHON, APPIUM_NODE, APPIUM_RUBY, APPIUM_WEB_JAVA_JUNIT, APPIUM_WEB_JAVA_TESTNG, APPIUM_WEB_PYTHON, APPIUM_WEB_NODE, APPIUM_WEB_RUBY, CALABASH, INSTRUMENTATION, UIAUTOMATION, UIAUTOMATOR, XCTEST, XCTEST_UI, REMOTE_ACCESS_RECORD, REMOTE_ACCESS_REPLAY
1450
1739
  # test: {
1451
- # 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
1740
+ # type: "BUILTIN_FUZZ", # required, accepts BUILTIN_FUZZ, BUILTIN_EXPLORER, WEB_PERFORMANCE_PROFILE, APPIUM_JAVA_JUNIT, APPIUM_JAVA_TESTNG, APPIUM_PYTHON, APPIUM_NODE, APPIUM_RUBY, APPIUM_WEB_JAVA_JUNIT, APPIUM_WEB_JAVA_TESTNG, APPIUM_WEB_PYTHON, APPIUM_WEB_NODE, APPIUM_WEB_RUBY, CALABASH, INSTRUMENTATION, UIAUTOMATION, UIAUTOMATOR, XCTEST, XCTEST_UI, REMOTE_ACCESS_RECORD, REMOTE_ACCESS_REPLAY
1452
1741
  # test_package_arn: "AmazonResourceName",
1453
1742
  # test_spec_arn: "AmazonResourceName",
1454
1743
  # filter: "Filter",
@@ -1507,12 +1796,20 @@ module Aws::DeviceFarm
1507
1796
  #
1508
1797
  # * APPIUM\_PYTHON: The Appium Python type.
1509
1798
  #
1510
- # * APPIUM\_WEB\_JAVA\_JUNIT: The Appium Java JUnit type for Web apps.
1799
+ # * APPIUM\_NODE: The Appium Node.js type.
1800
+ #
1801
+ # * APPIUM\_RUBY: The Appium Ruby type.
1511
1802
  #
1512
- # * APPIUM\_WEB\_JAVA\_TESTNG: The Appium Java TestNG type for Web
1803
+ # * APPIUM\_WEB\_JAVA\_JUNIT: The Appium Java JUnit type for web apps.
1804
+ #
1805
+ # * APPIUM\_WEB\_JAVA\_TESTNG: The Appium Java TestNG type for web
1513
1806
  # apps.
1514
1807
  #
1515
- # * APPIUM\_WEB\_PYTHON: The Appium Python type for Web apps.
1808
+ # * APPIUM\_WEB\_PYTHON: The Appium Python type for web apps.
1809
+ #
1810
+ # * APPIUM\_WEB\_NODE: The Appium Node.js type for web apps.
1811
+ #
1812
+ # * APPIUM\_WEB\_RUBY: The Appium Ruby type for web apps.
1516
1813
  #
1517
1814
  # * CALABASH: The Calabash type.
1518
1815
  #
@@ -2153,12 +2450,20 @@ module Aws::DeviceFarm
2153
2450
  #
2154
2451
  # * APPIUM\_PYTHON: The Appium Python type.
2155
2452
  #
2156
- # * APPIUM\_WEB\_JAVA\_JUNIT: The Appium Java JUnit type for Web apps.
2453
+ # * APPIUM\_NODE: The Appium Node.js type.
2454
+ #
2455
+ # * APPIUM\_RUBY: The Appium Ruby type.
2456
+ #
2457
+ # * APPIUM\_WEB\_JAVA\_JUNIT: The Appium Java JUnit type for web apps.
2157
2458
  #
2158
- # * APPIUM\_WEB\_JAVA\_TESTNG: The Appium Java TestNG type for Web
2459
+ # * APPIUM\_WEB\_JAVA\_TESTNG: The Appium Java TestNG type for web
2159
2460
  # apps.
2160
2461
  #
2161
- # * APPIUM\_WEB\_PYTHON: The Appium Python type for Web apps.
2462
+ # * APPIUM\_WEB\_PYTHON: The Appium Python type for web apps.
2463
+ #
2464
+ # * APPIUM\_WEB\_NODE: The Appium Node.js type for web apps.
2465
+ #
2466
+ # * APPIUM\_WEB\_RUBY: The Appium Ruby test type for web apps.
2162
2467
  #
2163
2468
  # * CALABASH: The Calabash type.
2164
2469
  #
@@ -2457,6 +2762,13 @@ module Aws::DeviceFarm
2457
2762
  # {
2458
2763
  # arn: "AmazonResourceName",
2459
2764
  # next_token: "PaginationToken",
2765
+ # filters: [
2766
+ # {
2767
+ # attribute: "ARN", # accepts ARN, PLATFORM, OS_VERSION, MODEL, AVAILABILITY, FORM_FACTOR, MANUFACTURER, REMOTE_ACCESS_ENABLED, REMOTE_DEBUG_ENABLED, INSTANCE_ARN, INSTANCE_LABELS, FLEET_TYPE
2768
+ # operator: "EQUALS", # accepts EQUALS, LESS_THAN, LESS_THAN_OR_EQUALS, GREATER_THAN, GREATER_THAN_OR_EQUALS, IN, NOT_IN, CONTAINS
2769
+ # values: ["String"],
2770
+ # },
2771
+ # ],
2460
2772
  # }
2461
2773
  #
2462
2774
  # @!attribute [rw] arn
@@ -2469,11 +2781,82 @@ module Aws::DeviceFarm
2469
2781
  # list.
2470
2782
  # @return [String]
2471
2783
  #
2784
+ # @!attribute [rw] filters
2785
+ # Used to select a set of devices. A filter is made up of an
2786
+ # attribute, an operator, and one or more values.
2787
+ #
2788
+ # * Attribute: The aspect of a device such as platform or model used
2789
+ # as the selction criteria in a device filter.
2790
+ #
2791
+ # Allowed values include:
2792
+ #
2793
+ # * ARN: The Amazon Resource Name (ARN) of the device. For example,
2794
+ # "arn:aws:devicefarm:us-west-2::device:12345Example".
2795
+ #
2796
+ # * PLATFORM: The device platform. Valid values are "ANDROID" or
2797
+ # "IOS".
2798
+ #
2799
+ # * OS\_VERSION: The operating system version. For example,
2800
+ # "10.3.2".
2801
+ #
2802
+ # * MODEL: The device model. For example, "iPad 5th Gen".
2803
+ #
2804
+ # * AVAILABILITY: The current availability of the device. Valid
2805
+ # values are "AVAILABLE", "HIGHLY\_AVAILABLE", "BUSY", or
2806
+ # "TEMPORARY\_NOT\_AVAILABLE".
2807
+ #
2808
+ # * FORM\_FACTOR: The device form factor. Valid values are "PHONE"
2809
+ # or "TABLET".
2810
+ #
2811
+ # * MANUFACTURER: The device manufacturer. For example, "Apple".
2812
+ #
2813
+ # * REMOTE\_ACCESS\_ENABLED: Whether the device is enabled for
2814
+ # remote access. Valid values are "TRUE" or "FALSE".
2815
+ #
2816
+ # * REMOTE\_DEBUG\_ENABLED: Whether the device is enabled for remote
2817
+ # debugging. Valid values are "TRUE" or "FALSE".
2818
+ #
2819
+ # * INSTANCE\_ARN: The Amazon Resource Name (ARN) of the device
2820
+ # instance.
2821
+ #
2822
+ # * INSTANCE\_LABELS: The label of the device instance.
2823
+ #
2824
+ # * FLEET\_TYPE: The fleet type. Valid values are "PUBLIC" or
2825
+ # "PRIVATE".
2826
+ #
2827
+ # * Operator: The filter operator.
2828
+ #
2829
+ # * The EQUALS operator is available for every attribute except
2830
+ # INSTANCE\_LABELS.
2831
+ #
2832
+ # * The CONTAINS operator is available for the INSTANCE\_LABELS and
2833
+ # MODEL attributes.
2834
+ #
2835
+ # * The IN and NOT\_IN operators are available for the ARN,
2836
+ # OS\_VERSION, MODEL, MANUFACTURER, and INSTANCE\_ARN attributes.
2837
+ #
2838
+ # * The LESS\_THAN, GREATER\_THAN, LESS\_THAN\_OR\_EQUALS, and
2839
+ # GREATER\_THAN\_OR\_EQUALS operators are also available for the
2840
+ # OS\_VERSION attribute.
2841
+ #
2842
+ # * Values: An array of one or more filter values.
2843
+ #
2844
+ # * The IN and NOT\_IN operators take a values array that has one or
2845
+ # more elements.
2846
+ #
2847
+ # * The other operators require an array with a single element.
2848
+ #
2849
+ # * In a request, the AVAILABILITY attribute takes "AVAILABLE",
2850
+ # "HIGHLY\_AVAILABLE", "BUSY", or
2851
+ # "TEMPORARY\_NOT\_AVAILABLE" as values.
2852
+ # @return [Array<Types::DeviceFilter>]
2853
+ #
2472
2854
  # @see http://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/ListDevicesRequest AWS API Documentation
2473
2855
  #
2474
2856
  class ListDevicesRequest < Struct.new(
2475
2857
  :arn,
2476
- :next_token)
2858
+ :next_token,
2859
+ :filters)
2477
2860
  include Aws::Structure
2478
2861
  end
2479
2862
 
@@ -3137,7 +3520,7 @@ module Aws::DeviceFarm
3137
3520
  #
3138
3521
  # {
3139
3522
  # arn: "AmazonResourceName", # required
3140
- # type: "ANDROID_APP", # accepts ANDROID_APP, IOS_APP, WEB_APP, EXTERNAL_DATA, APPIUM_JAVA_JUNIT_TEST_PACKAGE, APPIUM_JAVA_TESTNG_TEST_PACKAGE, APPIUM_PYTHON_TEST_PACKAGE, APPIUM_WEB_JAVA_JUNIT_TEST_PACKAGE, APPIUM_WEB_JAVA_TESTNG_TEST_PACKAGE, APPIUM_WEB_PYTHON_TEST_PACKAGE, CALABASH_TEST_PACKAGE, INSTRUMENTATION_TEST_PACKAGE, UIAUTOMATION_TEST_PACKAGE, UIAUTOMATOR_TEST_PACKAGE, XCTEST_TEST_PACKAGE, XCTEST_UI_TEST_PACKAGE, APPIUM_JAVA_JUNIT_TEST_SPEC, APPIUM_JAVA_TESTNG_TEST_SPEC, APPIUM_PYTHON_TEST_SPEC, APPIUM_WEB_JAVA_JUNIT_TEST_SPEC, APPIUM_WEB_JAVA_TESTNG_TEST_SPEC, APPIUM_WEB_PYTHON_TEST_SPEC, INSTRUMENTATION_TEST_SPEC, XCTEST_UI_TEST_SPEC
3523
+ # type: "ANDROID_APP", # accepts ANDROID_APP, IOS_APP, WEB_APP, EXTERNAL_DATA, APPIUM_JAVA_JUNIT_TEST_PACKAGE, APPIUM_JAVA_TESTNG_TEST_PACKAGE, APPIUM_PYTHON_TEST_PACKAGE, APPIUM_NODE_TEST_PACKAGE, APPIUM_RUBY_TEST_PACKAGE, APPIUM_WEB_JAVA_JUNIT_TEST_PACKAGE, APPIUM_WEB_JAVA_TESTNG_TEST_PACKAGE, APPIUM_WEB_PYTHON_TEST_PACKAGE, APPIUM_WEB_NODE_TEST_PACKAGE, APPIUM_WEB_RUBY_TEST_PACKAGE, CALABASH_TEST_PACKAGE, INSTRUMENTATION_TEST_PACKAGE, UIAUTOMATION_TEST_PACKAGE, UIAUTOMATOR_TEST_PACKAGE, XCTEST_TEST_PACKAGE, XCTEST_UI_TEST_PACKAGE, APPIUM_JAVA_JUNIT_TEST_SPEC, APPIUM_JAVA_TESTNG_TEST_SPEC, APPIUM_PYTHON_TEST_SPEC, APPIUM_NODE_TEST_SPEC, APPIUM_RUBY_TEST_SPEC, APPIUM_WEB_JAVA_JUNIT_TEST_SPEC, APPIUM_WEB_JAVA_TESTNG_TEST_SPEC, APPIUM_WEB_PYTHON_TEST_SPEC, APPIUM_WEB_NODE_TEST_SPEC, APPIUM_WEB_RUBY_TEST_SPEC, INSTRUMENTATION_TEST_SPEC, XCTEST_UI_TEST_SPEC
3141
3524
  # next_token: "PaginationToken",
3142
3525
  # }
3143
3526
  #
@@ -3168,14 +3551,25 @@ module Aws::DeviceFarm
3168
3551
  # * APPIUM\_PYTHON\_TEST\_PACKAGE: An Appium Python test package
3169
3552
  # upload.
3170
3553
  #
3554
+ # * APPIUM\_NODE\_TEST\_PACKAGE: An Appium Node.js test package
3555
+ # upload.
3556
+ #
3557
+ # * APPIUM\_RUBY\_TEST\_PACKAGE: An Appium Ruby test package upload.
3558
+ #
3171
3559
  # * APPIUM\_WEB\_JAVA\_JUNIT\_TEST\_PACKAGE: An Appium Java JUnit test
3172
- # package upload.
3560
+ # package upload for a web app.
3173
3561
  #
3174
3562
  # * APPIUM\_WEB\_JAVA\_TESTNG\_TEST\_PACKAGE: An Appium Java TestNG
3175
- # test package upload.
3563
+ # test package upload for a web app.
3176
3564
  #
3177
3565
  # * APPIUM\_WEB\_PYTHON\_TEST\_PACKAGE: An Appium Python test package
3178
- # upload.
3566
+ # upload for a web app.
3567
+ #
3568
+ # * APPIUM\_WEB\_NODE\_TEST\_PACKAGE: An Appium Node.js test package
3569
+ # upload for a web app.
3570
+ #
3571
+ # * APPIUM\_WEB\_RUBY\_TEST\_PACKAGE: An Appium Ruby test package
3572
+ # upload for a web app.
3179
3573
  #
3180
3574
  # * CALABASH\_TEST\_PACKAGE: A Calabash test package upload.
3181
3575
  #
@@ -3197,14 +3591,24 @@ module Aws::DeviceFarm
3197
3591
  #
3198
3592
  # * APPIUM\_PYTHON\_TEST\_SPEC: An Appium Python test spec upload.
3199
3593
  #
3594
+ # * APPIUM\_NODE\_TEST\_SPEC: An Appium Node.js test spec upload.
3595
+ #
3596
+ # * APPIUM\_RUBY\_TEST\_SPEC: An Appium Ruby test spec upload.
3597
+ #
3200
3598
  # * APPIUM\_WEB\_JAVA\_JUNIT\_TEST\_SPEC: An Appium Java JUnit test
3201
- # spec upload.
3599
+ # spec upload for a web app.
3202
3600
  #
3203
3601
  # * APPIUM\_WEB\_JAVA\_TESTNG\_TEST\_SPEC: An Appium Java TestNG test
3204
- # spec upload.
3602
+ # spec upload for a web app.
3205
3603
  #
3206
- # * APPIUM\_WEB\_PYTHON\_TEST\_SPEC: An Appium Python test spec
3207
- # upload.
3604
+ # * APPIUM\_WEB\_PYTHON\_TEST\_SPEC: An Appium Python test spec upload
3605
+ # for a web app.
3606
+ #
3607
+ # * APPIUM\_WEB\_NODE\_TEST\_SPEC: An Appium Node.js test spec upload
3608
+ # for a web app.
3609
+ #
3610
+ # * APPIUM\_WEB\_RUBY\_TEST\_SPEC: An Appium Ruby test spec upload for
3611
+ # a web app.
3208
3612
  #
3209
3613
  # * INSTRUMENTATION\_TEST\_SPEC: An instrumentation test spec upload.
3210
3614
  #
@@ -3987,7 +4391,8 @@ module Aws::DeviceFarm
3987
4391
  include Aws::Structure
3988
4392
  end
3989
4393
 
3990
- # Represents a condition for a device pool.
4394
+ # Represents a condition for a device pool. It is passed in as the
4395
+ # `rules` parameter to CreateDevicePool and UpdateDevicePool.
3991
4396
  #
3992
4397
  # @note When making an API call, you may pass Rule
3993
4398
  # data as a hash:
@@ -3999,21 +4404,28 @@ module Aws::DeviceFarm
3999
4404
  # }
4000
4405
  #
4001
4406
  # @!attribute [rw] attribute
4002
- # The rule's stringified attribute. For example, specify the value as
4003
- # `""abc""`.
4407
+ # The rule's attribute. It is the aspect of a device such as platform
4408
+ # or model used as selection criteria to create or update a device
4409
+ # pool.
4004
4410
  #
4005
4411
  # Allowed values include:
4006
4412
  #
4007
- # * ARN: The ARN.
4413
+ # * ARN: The Amazon Resource Name (ARN) of a device. For example,
4414
+ # "arn:aws:devicefarm:us-west-2::device:12345Example".
4008
4415
  #
4009
- # * FORM\_FACTOR: The form factor (for example, phone or tablet).
4416
+ # * PLATFORM: The device platform. Valid values are "ANDROID" or
4417
+ # "IOS".
4010
4418
  #
4011
- # * MANUFACTURER: The manufacturer.
4419
+ # * FORM\_FACTOR: The device form factor. Valid values are "PHONE"
4420
+ # or "TABLET".
4012
4421
  #
4013
- # * PLATFORM: The platform (for example, Android or iOS).
4422
+ # * MANUFACTURER: The device manufacturer. For example, "Apple".
4014
4423
  #
4015
4424
  # * REMOTE\_ACCESS\_ENABLED: Whether the device is enabled for remote
4016
- # access.
4425
+ # access. Valid values are "TRUE" or "FALSE".
4426
+ #
4427
+ # * REMOTE\_DEBUG\_ENABLED: Whether the device is enabled for remote
4428
+ # debugging. Valid values are "TRUE" or "FALSE".
4017
4429
  #
4018
4430
  # * APPIUM\_VERSION: The Appium version for the test.
4019
4431
  #
@@ -4021,6 +4433,9 @@ module Aws::DeviceFarm
4021
4433
  # instance.
4022
4434
  #
4023
4435
  # * INSTANCE\_LABELS: The label of the device instance.
4436
+ #
4437
+ # * FLEET\_TYPE: The fleet type. Valid values are "PUBLIC" or
4438
+ # "PRIVATE".
4024
4439
  # @return [String]
4025
4440
  #
4026
4441
  # @!attribute [rw] operator
@@ -4041,6 +4456,12 @@ module Aws::DeviceFarm
4041
4456
  #
4042
4457
  # @!attribute [rw] value
4043
4458
  # The rule's value.
4459
+ #
4460
+ # The value must be passed in as a string using escaped quotes.
4461
+ #
4462
+ # For example:
4463
+ #
4464
+ # "value": "\\"ANDROID\\""
4044
4465
  # @return [String]
4045
4466
  #
4046
4467
  # @see http://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/Rule AWS API Documentation
@@ -4080,12 +4501,20 @@ module Aws::DeviceFarm
4080
4501
  #
4081
4502
  # * APPIUM\_PYTHON: The Appium Python type.
4082
4503
  #
4083
- # * APPIUM\_WEB\_JAVA\_JUNIT: The Appium Java JUnit type for Web apps.
4504
+ # * APPIUM\_NODE: The Appium Node.js type.
4084
4505
  #
4085
- # * APPIUM\_WEB\_JAVA\_TESTNG: The Appium Java TestNG type for Web
4506
+ # * APPIUM\_RUBY: The Appium Ruby type.
4507
+ #
4508
+ # * APPIUM\_WEB\_JAVA\_JUNIT: The Appium Java JUnit type for web apps.
4509
+ #
4510
+ # * APPIUM\_WEB\_JAVA\_TESTNG: The Appium Java TestNG type for web
4086
4511
  # apps.
4087
4512
  #
4088
- # * APPIUM\_WEB\_PYTHON: The Appium Python type for Web apps.
4513
+ # * APPIUM\_WEB\_PYTHON: The Appium Python type for web apps.
4514
+ #
4515
+ # * APPIUM\_WEB\_NODE: The Appium Node.js type for web apps.
4516
+ #
4517
+ # * APPIUM\_WEB\_RUBY: The Appium Ruby type for web apps.
4089
4518
  #
4090
4519
  # * CALABASH: The Calabash type.
4091
4520
  #
@@ -4270,6 +4699,11 @@ module Aws::DeviceFarm
4270
4699
  # The ARN of the YAML-formatted test specification for the run.
4271
4700
  # @return [String]
4272
4701
  #
4702
+ # @!attribute [rw] device_selection_result
4703
+ # The results of a device filter used to select the devices for a test
4704
+ # run.
4705
+ # @return [Types::DeviceSelectionResult]
4706
+ #
4273
4707
  # @see http://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/Run AWS API Documentation
4274
4708
  #
4275
4709
  class Run < Struct.new(
@@ -4302,7 +4736,8 @@ module Aws::DeviceFarm
4302
4736
  :customer_artifact_paths,
4303
4737
  :web_url,
4304
4738
  :skip_app_resign,
4305
- :test_spec_arn)
4739
+ :test_spec_arn,
4740
+ :device_selection_result)
4306
4741
  include Aws::Structure
4307
4742
  end
4308
4743
 
@@ -4467,10 +4902,20 @@ module Aws::DeviceFarm
4467
4902
  # {
4468
4903
  # project_arn: "AmazonResourceName", # required
4469
4904
  # app_arn: "AmazonResourceName",
4470
- # device_pool_arn: "AmazonResourceName", # required
4905
+ # device_pool_arn: "AmazonResourceName",
4906
+ # device_selection_configuration: {
4907
+ # filters: [ # required
4908
+ # {
4909
+ # attribute: "ARN", # accepts ARN, PLATFORM, OS_VERSION, MODEL, AVAILABILITY, FORM_FACTOR, MANUFACTURER, REMOTE_ACCESS_ENABLED, REMOTE_DEBUG_ENABLED, INSTANCE_ARN, INSTANCE_LABELS, FLEET_TYPE
4910
+ # operator: "EQUALS", # accepts EQUALS, LESS_THAN, LESS_THAN_OR_EQUALS, GREATER_THAN, GREATER_THAN_OR_EQUALS, IN, NOT_IN, CONTAINS
4911
+ # values: ["String"],
4912
+ # },
4913
+ # ],
4914
+ # max_devices: 1, # required
4915
+ # },
4471
4916
  # name: "Name",
4472
4917
  # test: { # required
4473
- # 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
4918
+ # type: "BUILTIN_FUZZ", # required, accepts BUILTIN_FUZZ, BUILTIN_EXPLORER, WEB_PERFORMANCE_PROFILE, APPIUM_JAVA_JUNIT, APPIUM_JAVA_TESTNG, APPIUM_PYTHON, APPIUM_NODE, APPIUM_RUBY, APPIUM_WEB_JAVA_JUNIT, APPIUM_WEB_JAVA_TESTNG, APPIUM_WEB_PYTHON, APPIUM_WEB_NODE, APPIUM_WEB_RUBY, CALABASH, INSTRUMENTATION, UIAUTOMATION, UIAUTOMATOR, XCTEST, XCTEST_UI, REMOTE_ACCESS_RECORD, REMOTE_ACCESS_REPLAY
4474
4919
  # test_package_arn: "AmazonResourceName",
4475
4920
  # test_spec_arn: "AmazonResourceName",
4476
4921
  # filter: "Filter",
@@ -4520,8 +4965,22 @@ module Aws::DeviceFarm
4520
4965
  #
4521
4966
  # @!attribute [rw] device_pool_arn
4522
4967
  # The ARN of the device pool for the run to be scheduled.
4968
+ #
4969
+ # Either <b> <code>devicePoolArn</code> </b> or <b>
4970
+ # <code>deviceSelectionConfiguration</code> </b> is required in a
4971
+ # request.
4523
4972
  # @return [String]
4524
4973
  #
4974
+ # @!attribute [rw] device_selection_configuration
4975
+ # The filter criteria used to dynamically select a set of devices for
4976
+ # a test run, as well as the maximum number of devices to be included
4977
+ # in the run.
4978
+ #
4979
+ # Either <b> <code>devicePoolArn</code> </b> or <b>
4980
+ # <code>deviceSelectionConfiguration</code> </b> is required in a
4981
+ # request.
4982
+ # @return [Types::DeviceSelectionConfiguration]
4983
+ #
4525
4984
  # @!attribute [rw] name
4526
4985
  # The name for the run to be scheduled.
4527
4986
  # @return [String]
@@ -4545,6 +5004,7 @@ module Aws::DeviceFarm
4545
5004
  :project_arn,
4546
5005
  :app_arn,
4547
5006
  :device_pool_arn,
5007
+ :device_selection_configuration,
4548
5008
  :name,
4549
5009
  :test,
4550
5010
  :configuration,
@@ -4566,14 +5026,14 @@ module Aws::DeviceFarm
4566
5026
  end
4567
5027
 
4568
5028
  # Represents test settings. This data structure is passed in as the
4569
- # "test" parameter to ScheduleRun. For an example of the JSON request
5029
+ # `test` parameter to ScheduleRun. For an example of the JSON request
4570
5030
  # syntax, see ScheduleRun.
4571
5031
  #
4572
5032
  # @note When making an API call, you may pass ScheduleRunTest
4573
5033
  # data as a hash:
4574
5034
  #
4575
5035
  # {
4576
- # 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
5036
+ # type: "BUILTIN_FUZZ", # required, accepts BUILTIN_FUZZ, BUILTIN_EXPLORER, WEB_PERFORMANCE_PROFILE, APPIUM_JAVA_JUNIT, APPIUM_JAVA_TESTNG, APPIUM_PYTHON, APPIUM_NODE, APPIUM_RUBY, APPIUM_WEB_JAVA_JUNIT, APPIUM_WEB_JAVA_TESTNG, APPIUM_WEB_PYTHON, APPIUM_WEB_NODE, APPIUM_WEB_RUBY, CALABASH, INSTRUMENTATION, UIAUTOMATION, UIAUTOMATOR, XCTEST, XCTEST_UI, REMOTE_ACCESS_RECORD, REMOTE_ACCESS_REPLAY
4577
5037
  # test_package_arn: "AmazonResourceName",
4578
5038
  # test_spec_arn: "AmazonResourceName",
4579
5039
  # filter: "Filter",
@@ -4599,12 +5059,20 @@ module Aws::DeviceFarm
4599
5059
  #
4600
5060
  # * APPIUM\_PYTHON: The Appium Python type.
4601
5061
  #
4602
- # * APPIUM\_WEB\_JAVA\_JUNIT: The Appium Java JUnit type for Web apps.
5062
+ # * APPIUM\_NODE: The Appium Node.js type.
4603
5063
  #
4604
- # * APPIUM\_WEB\_JAVA\_TESTNG: The Appium Java TestNG type for Web
5064
+ # * APPIUM\_RUBY: The Appium Ruby type.
5065
+ #
5066
+ # * APPIUM\_WEB\_JAVA\_JUNIT: The Appium Java JUnit type for web apps.
5067
+ #
5068
+ # * APPIUM\_WEB\_JAVA\_TESTNG: The Appium Java TestNG type for web
4605
5069
  # apps.
4606
5070
  #
4607
- # * APPIUM\_WEB\_PYTHON: The Appium Python type for Web apps.
5071
+ # * APPIUM\_WEB\_PYTHON: The Appium Python type for web apps.
5072
+ #
5073
+ # * APPIUM\_WEB\_NODE: The Appium Node.js type for web apps.
5074
+ #
5075
+ # * APPIUM\_WEB\_RUBY: The Appium Ruby type for web apps.
4608
5076
  #
4609
5077
  # * CALABASH: The Calabash type.
4610
5078
  #
@@ -4654,10 +5122,10 @@ module Aws::DeviceFarm
4654
5122
  # For Appium tests (all types):
4655
5123
  #
4656
5124
  # * appium\_version: The Appium version. Currently supported values
4657
- # are "1.7.2", "1.7.1", "1.6.5", "latest", and "default".
5125
+ # are "1.6.5" (and higher), "latest", and "default".
4658
5126
  #
4659
5127
  # * “latest” will run the latest Appium version supported by Device
4660
- # Farm (1.7.2).
5128
+ # Farm (1.9.1).
4661
5129
  #
4662
5130
  # * For “default”, Device Farm will choose a compatible version of
4663
5131
  # Appium for the device. The current behavior is to run 1.7.2 on
@@ -4859,12 +5327,20 @@ module Aws::DeviceFarm
4859
5327
  #
4860
5328
  # * APPIUM\_PYTHON: The Appium Python type.
4861
5329
  #
4862
- # * APPIUM\_WEB\_JAVA\_JUNIT: The Appium Java JUnit type for Web apps.
5330
+ # * APPIUM\_NODE: The Appium Node.js type.
5331
+ #
5332
+ # * APPIUM\_RUBY: The Appium Ruby type.
4863
5333
  #
4864
- # * APPIUM\_WEB\_JAVA\_TESTNG: The Appium Java TestNG type for Web
5334
+ # * APPIUM\_WEB\_JAVA\_JUNIT: The Appium Java JUnit type for web apps.
5335
+ #
5336
+ # * APPIUM\_WEB\_JAVA\_TESTNG: The Appium Java TestNG type for web
4865
5337
  # apps.
4866
5338
  #
4867
- # * APPIUM\_WEB\_PYTHON: The Appium Python type for Web apps.
5339
+ # * APPIUM\_WEB\_PYTHON: The Appium Python type for web apps.
5340
+ #
5341
+ # * APPIUM\_WEB\_NODE: The Appium Node.js type for web apps.
5342
+ #
5343
+ # * APPIUM\_WEB\_RUBY: The Appium Ruby type for web apps.
4868
5344
  #
4869
5345
  # * CALABASH: The Calabash type.
4870
5346
  #
@@ -4992,12 +5468,20 @@ module Aws::DeviceFarm
4992
5468
  #
4993
5469
  # * APPIUM\_PYTHON: The Appium Python type.
4994
5470
  #
4995
- # * APPIUM\_WEB\_JAVA\_JUNIT: The Appium Java JUnit type for Web apps.
5471
+ # * APPIUM\_NODE: The Appium Node.js type.
5472
+ #
5473
+ # * APPIUM\_RUBY: The Appium Ruby type.
5474
+ #
5475
+ # * APPIUM\_WEB\_JAVA\_JUNIT: The Appium Java JUnit type for web apps.
4996
5476
  #
4997
- # * APPIUM\_WEB\_JAVA\_TESTNG: The Appium Java TestNG type for Web
5477
+ # * APPIUM\_WEB\_JAVA\_TESTNG: The Appium Java TestNG type for web
4998
5478
  # apps.
4999
5479
  #
5000
- # * APPIUM\_WEB\_PYTHON: The Appium Python type for Web apps.
5480
+ # * APPIUM\_WEB\_PYTHON: The Appium Python type for web apps.
5481
+ #
5482
+ # * APPIUM\_WEB\_NODE: The Appium Node.js type for web apps.
5483
+ #
5484
+ # * APPIUM\_WEB\_RUBY: The Appium Ruby type for web apps.
5001
5485
  #
5002
5486
  # * CALABASH: The Calabash type.
5003
5487
  #
@@ -5607,14 +6091,25 @@ module Aws::DeviceFarm
5607
6091
  # * APPIUM\_PYTHON\_TEST\_PACKAGE: An Appium Python test package
5608
6092
  # upload.
5609
6093
  #
6094
+ # * APPIUM\_NODE\_TEST\_PACKAGE: An Appium Node.js test package
6095
+ # upload.
6096
+ #
6097
+ # * APPIUM\_RUBY\_TEST\_PACKAGE: An Appium Ruby test package upload.
6098
+ #
5610
6099
  # * APPIUM\_WEB\_JAVA\_JUNIT\_TEST\_PACKAGE: An Appium Java JUnit test
5611
- # package upload.
6100
+ # package upload for web apps.
5612
6101
  #
5613
6102
  # * APPIUM\_WEB\_JAVA\_TESTNG\_TEST\_PACKAGE: An Appium Java TestNG
5614
- # test package upload.
6103
+ # test package upload for web apps.
5615
6104
  #
5616
6105
  # * APPIUM\_WEB\_PYTHON\_TEST\_PACKAGE: An Appium Python test package
5617
- # upload.
6106
+ # upload for web apps.
6107
+ #
6108
+ # * APPIUM\_WEB\_NODE\_TEST\_PACKAGE: An Appium Node.js test package
6109
+ # upload for web apps.
6110
+ #
6111
+ # * APPIUM\_WEB\_RUBY\_TEST\_PACKAGE: An Appium Ruby test package
6112
+ # upload for web apps.
5618
6113
  #
5619
6114
  # * CALABASH\_TEST\_PACKAGE: A Calabash test package upload.
5620
6115
  #
@@ -5636,14 +6131,24 @@ module Aws::DeviceFarm
5636
6131
  #
5637
6132
  # * APPIUM\_PYTHON\_TEST\_SPEC: An Appium Python test spec upload.
5638
6133
  #
6134
+ # * APPIUM\_NODE\_TEST\_SPEC: An Appium Node.js test spec upload.
6135
+ #
6136
+ # * APPIUM\_RUBY\_TEST\_SPEC: An Appium Ruby test spec upload.
6137
+ #
5639
6138
  # * APPIUM\_WEB\_JAVA\_JUNIT\_TEST\_SPEC: An Appium Java JUnit test
5640
- # spec upload.
6139
+ # spec upload for a web app.
5641
6140
  #
5642
6141
  # * APPIUM\_WEB\_JAVA\_TESTNG\_TEST\_SPEC: An Appium Java TestNG test
5643
- # spec upload.
6142
+ # spec upload for a web app.
5644
6143
  #
5645
- # * APPIUM\_WEB\_PYTHON\_TEST\_SPEC: An Appium Python test spec
5646
- # upload.
6144
+ # * APPIUM\_WEB\_PYTHON\_TEST\_SPEC: An Appium Python test spec upload
6145
+ # for a web app.
6146
+ #
6147
+ # * APPIUM\_WEB\_NODE\_TEST\_SPEC: An Appium Node.js test spec upload
6148
+ # for a web app.
6149
+ #
6150
+ # * APPIUM\_WEB\_RUBY\_TEST\_SPEC: An Appium Ruby test spec upload for
6151
+ # a web app.
5647
6152
  #
5648
6153
  # * INSTRUMENTATION\_TEST\_SPEC: An instrumentation test spec upload.
5649
6154
  #