aws-sdk-devicefarm 1.14.0 → 1.15.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -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
  #