aws-sdk-iotdeviceadvisor 1.18.0 → 1.20.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 7a0b1ec128f1ee43b52f390bdd44492037334e907018926a7610f572e9aeb2fc
4
- data.tar.gz: 24aec75de05c99967c28b617482c857b98e594ecbf0d7f128c609b9185cc5624
3
+ metadata.gz: 5ecfb4c1dc2e5247c8a0cdb08a1dd380b3361219adae27346959ad2734c3b1cb
4
+ data.tar.gz: 1d387bd92636b10268e0413ba39605da9765990f424900a42466f4e7128675cd
5
5
  SHA512:
6
- metadata.gz: 434afa054fef7ec8de2b85686b5a418835f99e56b3d1e75e13402619ee8c6fca88e6923d9f6aa01b043103074fc2cdccc7e1f47aabb6e2ab1e3463e9e4d8dad0
7
- data.tar.gz: 9c92fc86df28617ca83a4d274310e92a1650230094bdda9d9e6a863d4e074e720f1b1c4dad10ae4c5aa82fe945059a249795715d4eeef6a3ffeeded6da76a86c
6
+ metadata.gz: e3330cb626beee696ede45c073ff2f9648dd4a7393368028cb835cd49bfeeb9012f3b100dcad7097687c17de8b65bd192ebe6b31fe03e5638647df224ee767e1
7
+ data.tar.gz: 394c0299f03d34f262cd74329b5c1dd1caed2f1cbb42a597fc46ed1b132843004f18575c4b317e68ed8f873c69420b232c6e1ad3deb3fac117486cbe0bfa7edd
data/CHANGELOG.md CHANGED
@@ -1,6 +1,16 @@
1
1
  Unreleased Changes
2
2
  ------------------
3
3
 
4
+ 1.20.0 (2023-05-31)
5
+ ------------------
6
+
7
+ * Feature - Code Generated Changes, see `./build_tools` or `aws-sdk-core`'s CHANGELOG.md for details.
8
+
9
+ 1.19.0 (2023-04-27)
10
+ ------------------
11
+
12
+ * Feature - AWS IoT Core Device Advisor now supports MQTT over WebSocket. With this update, customers can run all three test suites of AWS IoT Core Device Advisor - qualification, custom, and long duration tests - using Signature Version 4 for MQTT over WebSocket.
13
+
4
14
  1.18.0 (2023-01-18)
5
15
  ------------------
6
16
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.18.0
1
+ 1.20.0
@@ -275,6 +275,11 @@ module Aws::IoTDeviceAdvisor
275
275
  # in the future.
276
276
  #
277
277
  #
278
+ # @option options [String] :sdk_ua_app_id
279
+ # A unique and opaque application ID that is appended to the
280
+ # User-Agent header as app/<sdk_ua_app_id>. It should have a
281
+ # maximum length of 50.
282
+ #
278
283
  # @option options [String] :secret_access_key
279
284
  #
280
285
  # @option options [String] :session_token
@@ -399,13 +404,14 @@ module Aws::IoTDeviceAdvisor
399
404
  # {
400
405
  # thing_arn: "AmazonResourceName",
401
406
  # certificate_arn: "AmazonResourceName",
407
+ # device_role_arn: "AmazonResourceName",
402
408
  # },
403
409
  # ],
404
410
  # intended_for_qualification: false,
405
411
  # is_long_duration_test: false,
406
412
  # root_group: "RootGroup", # required
407
413
  # device_permission_role_arn: "AmazonResourceName", # required
408
- # protocol: "MqttV3_1_1", # accepts MqttV3_1_1, MqttV5
414
+ # protocol: "MqttV3_1_1", # accepts MqttV3_1_1, MqttV5, MqttV3_1_1_OverWebSocket, MqttV5_OverWebSocket
409
415
  # },
410
416
  # tags: {
411
417
  # "String128" => "String256",
@@ -460,6 +466,12 @@ module Aws::IoTDeviceAdvisor
460
466
  # @option params [String] :certificate_arn
461
467
  # The certificate ARN of the device. This is an optional parameter.
462
468
  #
469
+ # @option params [String] :device_role_arn
470
+ # The device role ARN of the device. This is an optional parameter.
471
+ #
472
+ # @option params [String] :authentication_method
473
+ # The authentication method used during the device connection.
474
+ #
463
475
  # @return [Types::GetEndpointResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
464
476
  #
465
477
  # * {Types::GetEndpointResponse#endpoint #endpoint} => String
@@ -469,6 +481,8 @@ module Aws::IoTDeviceAdvisor
469
481
  # resp = client.get_endpoint({
470
482
  # thing_arn: "AmazonResourceName",
471
483
  # certificate_arn: "AmazonResourceName",
484
+ # device_role_arn: "AmazonResourceName",
485
+ # authentication_method: "X509ClientCertificate", # accepts X509ClientCertificate, SignatureVersion4
472
486
  # })
473
487
  #
474
488
  # @example Response structure
@@ -524,11 +538,12 @@ module Aws::IoTDeviceAdvisor
524
538
  # resp.suite_definition_configuration.devices #=> Array
525
539
  # resp.suite_definition_configuration.devices[0].thing_arn #=> String
526
540
  # resp.suite_definition_configuration.devices[0].certificate_arn #=> String
541
+ # resp.suite_definition_configuration.devices[0].device_role_arn #=> String
527
542
  # resp.suite_definition_configuration.intended_for_qualification #=> Boolean
528
543
  # resp.suite_definition_configuration.is_long_duration_test #=> Boolean
529
544
  # resp.suite_definition_configuration.root_group #=> String
530
545
  # resp.suite_definition_configuration.device_permission_role_arn #=> String
531
- # resp.suite_definition_configuration.protocol #=> String, one of "MqttV3_1_1", "MqttV5"
546
+ # resp.suite_definition_configuration.protocol #=> String, one of "MqttV3_1_1", "MqttV5", "MqttV3_1_1_OverWebSocket", "MqttV5_OverWebSocket"
532
547
  # resp.created_at #=> Time
533
548
  # resp.last_modified_at #=> Time
534
549
  # resp.tags #=> Hash
@@ -584,6 +599,7 @@ module Aws::IoTDeviceAdvisor
584
599
  # resp.suite_run_arn #=> String
585
600
  # resp.suite_run_configuration.primary_device.thing_arn #=> String
586
601
  # resp.suite_run_configuration.primary_device.certificate_arn #=> String
602
+ # resp.suite_run_configuration.primary_device.device_role_arn #=> String
587
603
  # resp.suite_run_configuration.selected_test_list #=> Array
588
604
  # resp.suite_run_configuration.selected_test_list[0] #=> String
589
605
  # resp.suite_run_configuration.parallel_run #=> Boolean
@@ -693,9 +709,10 @@ module Aws::IoTDeviceAdvisor
693
709
  # resp.suite_definition_information_list[0].default_devices #=> Array
694
710
  # resp.suite_definition_information_list[0].default_devices[0].thing_arn #=> String
695
711
  # resp.suite_definition_information_list[0].default_devices[0].certificate_arn #=> String
712
+ # resp.suite_definition_information_list[0].default_devices[0].device_role_arn #=> String
696
713
  # resp.suite_definition_information_list[0].intended_for_qualification #=> Boolean
697
714
  # resp.suite_definition_information_list[0].is_long_duration_test #=> Boolean
698
- # resp.suite_definition_information_list[0].protocol #=> String, one of "MqttV3_1_1", "MqttV5"
715
+ # resp.suite_definition_information_list[0].protocol #=> String, one of "MqttV3_1_1", "MqttV5", "MqttV3_1_1_OverWebSocket", "MqttV5_OverWebSocket"
699
716
  # resp.suite_definition_information_list[0].created_at #=> Time
700
717
  # resp.next_token #=> String
701
718
  #
@@ -838,6 +855,7 @@ module Aws::IoTDeviceAdvisor
838
855
  # primary_device: { # required
839
856
  # thing_arn: "AmazonResourceName",
840
857
  # certificate_arn: "AmazonResourceName",
858
+ # device_role_arn: "AmazonResourceName",
841
859
  # },
842
860
  # selected_test_list: ["UUID"],
843
861
  # parallel_run: false,
@@ -989,13 +1007,14 @@ module Aws::IoTDeviceAdvisor
989
1007
  # {
990
1008
  # thing_arn: "AmazonResourceName",
991
1009
  # certificate_arn: "AmazonResourceName",
1010
+ # device_role_arn: "AmazonResourceName",
992
1011
  # },
993
1012
  # ],
994
1013
  # intended_for_qualification: false,
995
1014
  # is_long_duration_test: false,
996
1015
  # root_group: "RootGroup", # required
997
1016
  # device_permission_role_arn: "AmazonResourceName", # required
998
- # protocol: "MqttV3_1_1", # accepts MqttV3_1_1, MqttV5
1017
+ # protocol: "MqttV3_1_1", # accepts MqttV3_1_1, MqttV5, MqttV3_1_1_OverWebSocket, MqttV5_OverWebSocket
999
1018
  # },
1000
1019
  # })
1001
1020
  #
@@ -1028,7 +1047,7 @@ module Aws::IoTDeviceAdvisor
1028
1047
  params: params,
1029
1048
  config: config)
1030
1049
  context[:gem_name] = 'aws-sdk-iotdeviceadvisor'
1031
- context[:gem_version] = '1.18.0'
1050
+ context[:gem_version] = '1.20.0'
1032
1051
  Seahorse::Client::Request.new(handlers, context)
1033
1052
  end
1034
1053
 
@@ -14,6 +14,7 @@ module Aws::IoTDeviceAdvisor
14
14
  include Seahorse::Model
15
15
 
16
16
  AmazonResourceName = Shapes::StringShape.new(name: 'AmazonResourceName')
17
+ AuthenticationMethod = Shapes::StringShape.new(name: 'AuthenticationMethod')
17
18
  ConflictException = Shapes::StructureShape.new(name: 'ConflictException')
18
19
  CreateSuiteDefinitionRequest = Shapes::StructureShape.new(name: 'CreateSuiteDefinitionRequest')
19
20
  CreateSuiteDefinitionResponse = Shapes::StructureShape.new(name: 'CreateSuiteDefinitionResponse')
@@ -114,12 +115,15 @@ module Aws::IoTDeviceAdvisor
114
115
 
115
116
  DeviceUnderTest.add_member(:thing_arn, Shapes::ShapeRef.new(shape: AmazonResourceName, location_name: "thingArn"))
116
117
  DeviceUnderTest.add_member(:certificate_arn, Shapes::ShapeRef.new(shape: AmazonResourceName, location_name: "certificateArn"))
118
+ DeviceUnderTest.add_member(:device_role_arn, Shapes::ShapeRef.new(shape: AmazonResourceName, location_name: "deviceRoleArn"))
117
119
  DeviceUnderTest.struct_class = Types::DeviceUnderTest
118
120
 
119
121
  DeviceUnderTestList.member = Shapes::ShapeRef.new(shape: DeviceUnderTest)
120
122
 
121
123
  GetEndpointRequest.add_member(:thing_arn, Shapes::ShapeRef.new(shape: AmazonResourceName, location: "querystring", location_name: "thingArn"))
122
124
  GetEndpointRequest.add_member(:certificate_arn, Shapes::ShapeRef.new(shape: AmazonResourceName, location: "querystring", location_name: "certificateArn"))
125
+ GetEndpointRequest.add_member(:device_role_arn, Shapes::ShapeRef.new(shape: AmazonResourceName, location: "querystring", location_name: "deviceRoleArn"))
126
+ GetEndpointRequest.add_member(:authentication_method, Shapes::ShapeRef.new(shape: AuthenticationMethod, location: "querystring", location_name: "authenticationMethod"))
123
127
  GetEndpointRequest.struct_class = Types::GetEndpointRequest
124
128
 
125
129
  GetEndpointResponse.add_member(:endpoint, Shapes::ShapeRef.new(shape: Endpoint, location_name: "endpoint"))
@@ -50,9 +50,6 @@ module Aws::IoTDeviceAdvisor
50
50
 
51
51
  def initialize(options = {})
52
52
  self[:region] = options[:region]
53
- if self[:region].nil?
54
- raise ArgumentError, "Missing required EndpointParameter: :region"
55
- end
56
53
  self[:use_dual_stack] = options[:use_dual_stack]
57
54
  self[:use_dual_stack] = false if self[:use_dual_stack].nil?
58
55
  if self[:use_dual_stack].nil?
@@ -14,36 +14,39 @@ module Aws::IoTDeviceAdvisor
14
14
  use_dual_stack = parameters.use_dual_stack
15
15
  use_fips = parameters.use_fips
16
16
  endpoint = parameters.endpoint
17
- if (partition_result = Aws::Endpoints::Matchers.aws_partition(region))
18
- if Aws::Endpoints::Matchers.set?(endpoint)
19
- if Aws::Endpoints::Matchers.boolean_equals?(use_fips, true)
20
- raise ArgumentError, "Invalid Configuration: FIPS and custom endpoint are not supported"
21
- end
22
- if Aws::Endpoints::Matchers.boolean_equals?(use_dual_stack, true)
23
- raise ArgumentError, "Invalid Configuration: Dualstack and custom endpoint are not supported"
24
- end
25
- return Aws::Endpoints::Endpoint.new(url: endpoint, headers: {}, properties: {})
26
- end
27
- if Aws::Endpoints::Matchers.boolean_equals?(use_fips, true) && Aws::Endpoints::Matchers.boolean_equals?(use_dual_stack, true)
28
- if Aws::Endpoints::Matchers.boolean_equals?(true, Aws::Endpoints::Matchers.attr(partition_result, "supportsFIPS")) && Aws::Endpoints::Matchers.boolean_equals?(true, Aws::Endpoints::Matchers.attr(partition_result, "supportsDualStack"))
29
- return Aws::Endpoints::Endpoint.new(url: "https://api.iotdeviceadvisor-fips.#{region}.#{partition_result['dualStackDnsSuffix']}", headers: {}, properties: {})
30
- end
31
- raise ArgumentError, "FIPS and DualStack are enabled, but this partition does not support one or both"
32
- end
17
+ if Aws::Endpoints::Matchers.set?(endpoint)
33
18
  if Aws::Endpoints::Matchers.boolean_equals?(use_fips, true)
34
- if Aws::Endpoints::Matchers.boolean_equals?(true, Aws::Endpoints::Matchers.attr(partition_result, "supportsFIPS"))
35
- return Aws::Endpoints::Endpoint.new(url: "https://api.iotdeviceadvisor-fips.#{region}.#{partition_result['dnsSuffix']}", headers: {}, properties: {})
36
- end
37
- raise ArgumentError, "FIPS is enabled but this partition does not support FIPS"
19
+ raise ArgumentError, "Invalid Configuration: FIPS and custom endpoint are not supported"
38
20
  end
39
21
  if Aws::Endpoints::Matchers.boolean_equals?(use_dual_stack, true)
40
- if Aws::Endpoints::Matchers.boolean_equals?(true, Aws::Endpoints::Matchers.attr(partition_result, "supportsDualStack"))
41
- return Aws::Endpoints::Endpoint.new(url: "https://api.iotdeviceadvisor.#{region}.#{partition_result['dualStackDnsSuffix']}", headers: {}, properties: {})
22
+ raise ArgumentError, "Invalid Configuration: Dualstack and custom endpoint are not supported"
23
+ end
24
+ return Aws::Endpoints::Endpoint.new(url: endpoint, headers: {}, properties: {})
25
+ end
26
+ if Aws::Endpoints::Matchers.set?(region)
27
+ if (partition_result = Aws::Endpoints::Matchers.aws_partition(region))
28
+ if Aws::Endpoints::Matchers.boolean_equals?(use_fips, true) && Aws::Endpoints::Matchers.boolean_equals?(use_dual_stack, true)
29
+ if Aws::Endpoints::Matchers.boolean_equals?(true, Aws::Endpoints::Matchers.attr(partition_result, "supportsFIPS")) && Aws::Endpoints::Matchers.boolean_equals?(true, Aws::Endpoints::Matchers.attr(partition_result, "supportsDualStack"))
30
+ return Aws::Endpoints::Endpoint.new(url: "https://api.iotdeviceadvisor-fips.#{region}.#{partition_result['dualStackDnsSuffix']}", headers: {}, properties: {})
31
+ end
32
+ raise ArgumentError, "FIPS and DualStack are enabled, but this partition does not support one or both"
33
+ end
34
+ if Aws::Endpoints::Matchers.boolean_equals?(use_fips, true)
35
+ if Aws::Endpoints::Matchers.boolean_equals?(true, Aws::Endpoints::Matchers.attr(partition_result, "supportsFIPS"))
36
+ return Aws::Endpoints::Endpoint.new(url: "https://api.iotdeviceadvisor-fips.#{region}.#{partition_result['dnsSuffix']}", headers: {}, properties: {})
37
+ end
38
+ raise ArgumentError, "FIPS is enabled but this partition does not support FIPS"
39
+ end
40
+ if Aws::Endpoints::Matchers.boolean_equals?(use_dual_stack, true)
41
+ if Aws::Endpoints::Matchers.boolean_equals?(true, Aws::Endpoints::Matchers.attr(partition_result, "supportsDualStack"))
42
+ return Aws::Endpoints::Endpoint.new(url: "https://api.iotdeviceadvisor.#{region}.#{partition_result['dualStackDnsSuffix']}", headers: {}, properties: {})
43
+ end
44
+ raise ArgumentError, "DualStack is enabled but this partition does not support DualStack"
42
45
  end
43
- raise ArgumentError, "DualStack is enabled but this partition does not support DualStack"
46
+ return Aws::Endpoints::Endpoint.new(url: "https://api.iotdeviceadvisor.#{region}.#{partition_result['dnsSuffix']}", headers: {}, properties: {})
44
47
  end
45
- return Aws::Endpoints::Endpoint.new(url: "https://api.iotdeviceadvisor.#{region}.#{partition_result['dnsSuffix']}", headers: {}, properties: {})
46
48
  end
49
+ raise ArgumentError, "Invalid Configuration: Missing Region"
47
50
  raise ArgumentError, 'No endpoint could be resolved'
48
51
 
49
52
  end
@@ -76,20 +76,25 @@ module Aws::IoTDeviceAdvisor
76
76
 
77
77
  class DeleteSuiteDefinitionResponse < Aws::EmptyStructure; end
78
78
 
79
- # Information of a test device. A thing ARN or a certificate ARN is
80
- # required.
79
+ # Information of a test device. A thing ARN, certificate ARN or device
80
+ # role ARN is required.
81
81
  #
82
82
  # @!attribute [rw] thing_arn
83
- # Lists devices thing ARN.
83
+ # Lists device's thing ARN.
84
84
  # @return [String]
85
85
  #
86
86
  # @!attribute [rw] certificate_arn
87
- # Lists devices certificate ARN.
87
+ # Lists device's certificate ARN.
88
+ # @return [String]
89
+ #
90
+ # @!attribute [rw] device_role_arn
91
+ # Lists device's role ARN.
88
92
  # @return [String]
89
93
  #
90
94
  class DeviceUnderTest < Struct.new(
91
95
  :thing_arn,
92
- :certificate_arn)
96
+ :certificate_arn,
97
+ :device_role_arn)
93
98
  SENSITIVE = []
94
99
  include Aws::Structure
95
100
  end
@@ -102,9 +107,19 @@ module Aws::IoTDeviceAdvisor
102
107
  # The certificate ARN of the device. This is an optional parameter.
103
108
  # @return [String]
104
109
  #
110
+ # @!attribute [rw] device_role_arn
111
+ # The device role ARN of the device. This is an optional parameter.
112
+ # @return [String]
113
+ #
114
+ # @!attribute [rw] authentication_method
115
+ # The authentication method used during the device connection.
116
+ # @return [String]
117
+ #
105
118
  class GetEndpointRequest < Struct.new(
106
119
  :thing_arn,
107
- :certificate_arn)
120
+ :certificate_arn,
121
+ :device_role_arn,
122
+ :authentication_method)
108
123
  SENSITIVE = []
109
124
  include Aws::Structure
110
125
  end
@@ -693,23 +708,23 @@ module Aws::IoTDeviceAdvisor
693
708
  # @!attribute [rw] status
694
709
  # Provides the test case run status. Status is one of the following:
695
710
  #
696
- # * `PASS`\: Test passed.
711
+ # * `PASS`: Test passed.
697
712
  #
698
- # * `FAIL`\: Test failed.
713
+ # * `FAIL`: Test failed.
699
714
  #
700
- # * `PENDING`\: Test has not started running but is scheduled.
715
+ # * `PENDING`: Test has not started running but is scheduled.
701
716
  #
702
- # * `RUNNING`\: Test is running.
717
+ # * `RUNNING`: Test is running.
703
718
  #
704
- # * `STOPPING`\: Test is performing cleanup steps. You will see this
719
+ # * `STOPPING`: Test is performing cleanup steps. You will see this
705
720
  # status only if you stop a suite run.
706
721
  #
707
722
  # * `STOPPED` Test is stopped. You will see this status only if you
708
723
  # stop a suite run.
709
724
  #
710
- # * `PASS_WITH_WARNINGS`\: Test passed with warnings.
725
+ # * `PASS_WITH_WARNINGS`: Test passed with warnings.
711
726
  #
712
- # * `ERORR`\: Test faced an error when running due to an internal
727
+ # * `ERORR`: Test faced an error when running due to an internal
713
728
  # issue.
714
729
  # @return [String]
715
730
  #
@@ -770,23 +785,23 @@ module Aws::IoTDeviceAdvisor
770
785
  # Provides the test case scenario status. Status is one of the
771
786
  # following:
772
787
  #
773
- # * `PASS`\: Test passed.
788
+ # * `PASS`: Test passed.
774
789
  #
775
- # * `FAIL`\: Test failed.
790
+ # * `FAIL`: Test failed.
776
791
  #
777
- # * `PENDING`\: Test has not started running but is scheduled.
792
+ # * `PENDING`: Test has not started running but is scheduled.
778
793
  #
779
- # * `RUNNING`\: Test is running.
794
+ # * `RUNNING`: Test is running.
780
795
  #
781
- # * `STOPPING`\: Test is performing cleanup steps. You will see this
796
+ # * `STOPPING`: Test is performing cleanup steps. You will see this
782
797
  # status only if you stop a suite run.
783
798
  #
784
799
  # * `STOPPED` Test is stopped. You will see this status only if you
785
800
  # stop a suite run.
786
801
  #
787
- # * `PASS_WITH_WARNINGS`\: Test passed with warnings.
802
+ # * `PASS_WITH_WARNINGS`: Test passed with warnings.
788
803
  #
789
- # * `ERORR`\: Test faced an error when running due to an internal
804
+ # * `ERORR`: Test faced an error when running due to an internal
790
805
  # issue.
791
806
  # @return [String]
792
807
  #
@@ -52,6 +52,6 @@ require_relative 'aws-sdk-iotdeviceadvisor/customizations'
52
52
  # @!group service
53
53
  module Aws::IoTDeviceAdvisor
54
54
 
55
- GEM_VERSION = '1.18.0'
55
+ GEM_VERSION = '1.20.0'
56
56
 
57
57
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: aws-sdk-iotdeviceadvisor
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.18.0
4
+ version: 1.20.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Amazon Web Services
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-01-18 00:00:00.000000000 Z
11
+ date: 2023-05-31 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: aws-sdk-core
@@ -19,7 +19,7 @@ dependencies:
19
19
  version: '3'
20
20
  - - ">="
21
21
  - !ruby/object:Gem::Version
22
- version: 3.165.0
22
+ version: 3.174.0
23
23
  type: :runtime
24
24
  prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
@@ -29,7 +29,7 @@ dependencies:
29
29
  version: '3'
30
30
  - - ">="
31
31
  - !ruby/object:Gem::Version
32
- version: 3.165.0
32
+ version: 3.174.0
33
33
  - !ruby/object:Gem::Dependency
34
34
  name: aws-sigv4
35
35
  requirement: !ruby/object:Gem::Requirement