aws-sdk-cloudformation 1.70.0 → 1.72.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: 4cc20892317dc3a305234fb88c976d4dfb5a5001483b1d663229d77c17f56b04
4
- data.tar.gz: 8ae7f8414a3c31e0d35aa7fa332635f0836ffeed8dd63737393732bc224de5e1
3
+ metadata.gz: 46a507b6b348e97c8fecb70958267c29ad15fe519652e40d6041edcc70c3526c
4
+ data.tar.gz: f8bf054f14da9660c53527348764373a27157a91e5e4633469fde0d9b0237e71
5
5
  SHA512:
6
- metadata.gz: 5729c3c85480ff0f73a4c031545eb1f69c78a7ee45c83fe513f16b4dceacf2d327f8e181cee899d5aaae9aedc4b8882b6b8f10f5922182bd91fbf54984496077
7
- data.tar.gz: f19f260d37be5048c81543cf87aa91b261ae557401101ff290b1ee18277fa4e43b668cca930c16ad439e2900469bb41fbaf72f97bc78474d3d010f6c21791bb4
6
+ metadata.gz: 6a489660e970c726e059c62c1240c90434706ecacdeb694da7401ac2dcb431cfa11825dd36bb70937fff548b355760114c163ff175dd3a4f59e08519f2a1f617
7
+ data.tar.gz: ad12e7e4b134035fd44600c519f2f94dfc899023ca6a1c7eb5342a8f4b29f2cdfe5942b11470d8cd58abe53222fbb8c50e594b1325a2927ce265bb89d660a57b
data/CHANGELOG.md CHANGED
@@ -1,6 +1,16 @@
1
1
  Unreleased Changes
2
2
  ------------------
3
3
 
4
+ 1.72.0 (2022-10-28)
5
+ ------------------
6
+
7
+ * Feature - This release adds more fields to improves visibility of AWS CloudFormation StackSets information in following APIs: ListStackInstances, DescribeStackInstance, ListStackSetOperationResults, ListStackSetOperations, DescribeStackSetOperation.
8
+
9
+ 1.71.0 (2022-10-25)
10
+ ------------------
11
+
12
+ * Feature - Code Generated Changes, see `./build_tools` or `aws-sdk-core`'s CHANGELOG.md for details.
13
+
4
14
  1.70.0 (2022-07-06)
5
15
  ------------------
6
16
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.70.0
1
+ 1.72.0
@@ -30,7 +30,7 @@ require 'aws-sdk-core/plugins/http_checksum.rb'
30
30
  require 'aws-sdk-core/plugins/checksum_algorithm.rb'
31
31
  require 'aws-sdk-core/plugins/defaults_mode.rb'
32
32
  require 'aws-sdk-core/plugins/recursion_detection.rb'
33
- require 'aws-sdk-core/plugins/signature_v4.rb'
33
+ require 'aws-sdk-core/plugins/sign.rb'
34
34
  require 'aws-sdk-core/plugins/protocols/query.rb'
35
35
 
36
36
  Aws::Plugins::GlobalConfiguration.add_identifier(:cloudformation)
@@ -79,8 +79,9 @@ module Aws::CloudFormation
79
79
  add_plugin(Aws::Plugins::ChecksumAlgorithm)
80
80
  add_plugin(Aws::Plugins::DefaultsMode)
81
81
  add_plugin(Aws::Plugins::RecursionDetection)
82
- add_plugin(Aws::Plugins::SignatureV4)
82
+ add_plugin(Aws::Plugins::Sign)
83
83
  add_plugin(Aws::Plugins::Protocols::Query)
84
+ add_plugin(Aws::CloudFormation::Plugins::Endpoints)
84
85
 
85
86
  # @overload initialize(options)
86
87
  # @param [Hash] options
@@ -287,6 +288,19 @@ module Aws::CloudFormation
287
288
  # ** Please note ** When response stubbing is enabled, no HTTP
288
289
  # requests are made, and retries are disabled.
289
290
  #
291
+ # @option options [Aws::TokenProvider] :token_provider
292
+ # A Bearer Token Provider. This can be an instance of any one of the
293
+ # following classes:
294
+ #
295
+ # * `Aws::StaticTokenProvider` - Used for configuring static, non-refreshing
296
+ # tokens.
297
+ #
298
+ # * `Aws::SSOTokenProvider` - Used for loading tokens from AWS SSO using an
299
+ # access token generated from `aws login`.
300
+ #
301
+ # When `:token_provider` is not configured directly, the `Aws::TokenProviderChain`
302
+ # will be used to search for tokens configured for your profile in shared configuration files.
303
+ #
290
304
  # @option options [Boolean] :use_dualstack_endpoint
291
305
  # When set to `true`, dualstack enabled endpoints (with `.aws` TLD)
292
306
  # will be used if available.
@@ -300,6 +314,9 @@ module Aws::CloudFormation
300
314
  # When `true`, request parameters are validated before
301
315
  # sending the request.
302
316
  #
317
+ # @option options [Aws::CloudFormation::EndpointProvider] :endpoint_provider
318
+ # The endpoint provider used to resolve endpoints. Any object that responds to `#resolve_endpoint(parameters)` where `parameters` is a Struct similar to `Aws::CloudFormation::EndpointParameters`
319
+ #
303
320
  # @option options [URI::HTTP,String] :http_proxy A proxy to send
304
321
  # requests through. Formatted like 'http://proxy.com:123'.
305
322
  #
@@ -2615,6 +2632,7 @@ module Aws::CloudFormation
2615
2632
  # resp.stack_instance.organizational_unit_id #=> String
2616
2633
  # resp.stack_instance.drift_status #=> String, one of "DRIFTED", "IN_SYNC", "UNKNOWN", "NOT_CHECKED"
2617
2634
  # resp.stack_instance.last_drift_check_timestamp #=> Time
2635
+ # resp.stack_instance.last_operation_id #=> String
2618
2636
  #
2619
2637
  # @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeStackInstance AWS API Documentation
2620
2638
  #
@@ -3038,6 +3056,7 @@ module Aws::CloudFormation
3038
3056
  # resp.stack_set_operation.stack_set_drift_detection_details.in_progress_stack_instances_count #=> Integer
3039
3057
  # resp.stack_set_operation.stack_set_drift_detection_details.failed_stack_instances_count #=> Integer
3040
3058
  # resp.stack_set_operation.status_reason #=> String
3059
+ # resp.stack_set_operation.status_details.failed_stack_instances_count #=> Integer
3041
3060
  #
3042
3061
  # @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeStackSetOperation AWS API Documentation
3043
3062
  #
@@ -4189,7 +4208,7 @@ module Aws::CloudFormation
4189
4208
  # request parameter to get the next set of results.
4190
4209
  #
4191
4210
  # @option params [Array<Types::StackInstanceFilter>] :filters
4192
- # The status that stack instances are filtered by.
4211
+ # The filter to apply to stack instances
4193
4212
  #
4194
4213
  # @option params [String] :stack_instance_account
4195
4214
  # The name of the Amazon Web Services account that you want to list
@@ -4235,7 +4254,7 @@ module Aws::CloudFormation
4235
4254
  # max_results: 1,
4236
4255
  # filters: [
4237
4256
  # {
4238
- # name: "DETAILED_STATUS", # accepts DETAILED_STATUS
4257
+ # name: "DETAILED_STATUS", # accepts DETAILED_STATUS, LAST_OPERATION_ID
4239
4258
  # values: "StackInstanceFilterValues",
4240
4259
  # },
4241
4260
  # ],
@@ -4257,6 +4276,7 @@ module Aws::CloudFormation
4257
4276
  # resp.summaries[0].organizational_unit_id #=> String
4258
4277
  # resp.summaries[0].drift_status #=> String, one of "DRIFTED", "IN_SYNC", "UNKNOWN", "NOT_CHECKED"
4259
4278
  # resp.summaries[0].last_drift_check_timestamp #=> Time
4279
+ # resp.summaries[0].last_operation_id #=> String
4260
4280
  # resp.next_token #=> String
4261
4281
  #
4262
4282
  # @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListStackInstances AWS API Documentation
@@ -4372,6 +4392,9 @@ module Aws::CloudFormation
4372
4392
  #
4373
4393
  # [1]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-delegated-admin.html
4374
4394
  #
4395
+ # @option params [Array<Types::OperationResultFilter>] :filters
4396
+ # The filter to apply to operation results.
4397
+ #
4375
4398
  # @return [Types::ListStackSetOperationResultsOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
4376
4399
  #
4377
4400
  # * {Types::ListStackSetOperationResultsOutput#summaries #summaries} => Array&lt;Types::StackSetOperationResultSummary&gt;
@@ -4387,6 +4410,12 @@ module Aws::CloudFormation
4387
4410
  # next_token: "NextToken",
4388
4411
  # max_results: 1,
4389
4412
  # call_as: "SELF", # accepts SELF, DELEGATED_ADMIN
4413
+ # filters: [
4414
+ # {
4415
+ # name: "OPERATION_RESULT_STATUS", # accepts OPERATION_RESULT_STATUS
4416
+ # values: "OperationResultFilterValues",
4417
+ # },
4418
+ # ],
4390
4419
  # })
4391
4420
  #
4392
4421
  # @example Response structure
@@ -4478,6 +4507,14 @@ module Aws::CloudFormation
4478
4507
  # resp.summaries[0].creation_timestamp #=> Time
4479
4508
  # resp.summaries[0].end_timestamp #=> Time
4480
4509
  # resp.summaries[0].status_reason #=> String
4510
+ # resp.summaries[0].status_details.failed_stack_instances_count #=> Integer
4511
+ # resp.summaries[0].operation_preferences.region_concurrency_type #=> String, one of "SEQUENTIAL", "PARALLEL"
4512
+ # resp.summaries[0].operation_preferences.region_order #=> Array
4513
+ # resp.summaries[0].operation_preferences.region_order[0] #=> String
4514
+ # resp.summaries[0].operation_preferences.failure_tolerance_count #=> Integer
4515
+ # resp.summaries[0].operation_preferences.failure_tolerance_percentage #=> Integer
4516
+ # resp.summaries[0].operation_preferences.max_concurrent_count #=> Integer
4517
+ # resp.summaries[0].operation_preferences.max_concurrent_percentage #=> Integer
4481
4518
  # resp.next_token #=> String
4482
4519
  #
4483
4520
  # @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListStackSetOperations AWS API Documentation
@@ -5668,8 +5705,9 @@ module Aws::CloudFormation
5668
5705
  # [RegisterType](AWSCloudFormation/latest/APIReference/API_RegisterType.html).
5669
5706
  #
5670
5707
  # Once you've initiated testing on an extension using `TestType`, you
5671
- # can use [DescribeType][2] to monitor the current test status and test
5672
- # status description for the extension.
5708
+ # can pass the returned `TypeVersionArn` into [DescribeType][2] to
5709
+ # monitor the current test status and test status description for the
5710
+ # extension.
5673
5711
  #
5674
5712
  # An extension must have a test status of `PASSED` before it can be
5675
5713
  # published. For more information, see [Publishing extensions to make
@@ -6785,7 +6823,7 @@ module Aws::CloudFormation
6785
6823
  params: params,
6786
6824
  config: config)
6787
6825
  context[:gem_name] = 'aws-sdk-cloudformation'
6788
- context[:gem_version] = '1.70.0'
6826
+ context[:gem_version] = '1.72.0'
6789
6827
  Seahorse::Client::Request.new(handlers, context)
6790
6828
  end
6791
6829
 
@@ -237,6 +237,10 @@ module Aws::CloudFormation
237
237
  OperationIdAlreadyExistsException = Shapes::StructureShape.new(name: 'OperationIdAlreadyExistsException')
238
238
  OperationInProgressException = Shapes::StructureShape.new(name: 'OperationInProgressException')
239
239
  OperationNotFoundException = Shapes::StructureShape.new(name: 'OperationNotFoundException')
240
+ OperationResultFilter = Shapes::StructureShape.new(name: 'OperationResultFilter')
241
+ OperationResultFilterName = Shapes::StringShape.new(name: 'OperationResultFilterName')
242
+ OperationResultFilterValues = Shapes::StringShape.new(name: 'OperationResultFilterValues')
243
+ OperationResultFilters = Shapes::ListShape.new(name: 'OperationResultFilters')
240
244
  OperationStatus = Shapes::StringShape.new(name: 'OperationStatus')
241
245
  OperationStatusCheckFailedException = Shapes::StructureShape.new(name: 'OperationStatusCheckFailedException')
242
246
  OptionalSecureUrl = Shapes::StringShape.new(name: 'OptionalSecureUrl')
@@ -393,6 +397,7 @@ module Aws::CloudFormation
393
397
  StackSetOperationResultSummaries = Shapes::ListShape.new(name: 'StackSetOperationResultSummaries')
394
398
  StackSetOperationResultSummary = Shapes::StructureShape.new(name: 'StackSetOperationResultSummary')
395
399
  StackSetOperationStatus = Shapes::StringShape.new(name: 'StackSetOperationStatus')
400
+ StackSetOperationStatusDetails = Shapes::StructureShape.new(name: 'StackSetOperationStatusDetails')
396
401
  StackSetOperationStatusReason = Shapes::StringShape.new(name: 'StackSetOperationStatusReason')
397
402
  StackSetOperationSummaries = Shapes::ListShape.new(name: 'StackSetOperationSummaries')
398
403
  StackSetOperationSummary = Shapes::StructureShape.new(name: 'StackSetOperationSummary')
@@ -1049,6 +1054,7 @@ module Aws::CloudFormation
1049
1054
  ListStackSetOperationResultsInput.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "NextToken"))
1050
1055
  ListStackSetOperationResultsInput.add_member(:max_results, Shapes::ShapeRef.new(shape: MaxResults, location_name: "MaxResults"))
1051
1056
  ListStackSetOperationResultsInput.add_member(:call_as, Shapes::ShapeRef.new(shape: CallAs, location_name: "CallAs"))
1057
+ ListStackSetOperationResultsInput.add_member(:filters, Shapes::ShapeRef.new(shape: OperationResultFilters, location_name: "Filters"))
1052
1058
  ListStackSetOperationResultsInput.struct_class = Types::ListStackSetOperationResultsInput
1053
1059
 
1054
1060
  ListStackSetOperationResultsOutput.add_member(:summaries, Shapes::ShapeRef.new(shape: StackSetOperationResultSummaries, location_name: "Summaries"))
@@ -1144,6 +1150,12 @@ module Aws::CloudFormation
1144
1150
 
1145
1151
  OperationNotFoundException.struct_class = Types::OperationNotFoundException
1146
1152
 
1153
+ OperationResultFilter.add_member(:name, Shapes::ShapeRef.new(shape: OperationResultFilterName, location_name: "Name"))
1154
+ OperationResultFilter.add_member(:values, Shapes::ShapeRef.new(shape: OperationResultFilterValues, location_name: "Values"))
1155
+ OperationResultFilter.struct_class = Types::OperationResultFilter
1156
+
1157
+ OperationResultFilters.member = Shapes::ShapeRef.new(shape: OperationResultFilter)
1158
+
1147
1159
  OperationStatusCheckFailedException.struct_class = Types::OperationStatusCheckFailedException
1148
1160
 
1149
1161
  OrganizationalUnitIdList.member = Shapes::ShapeRef.new(shape: OrganizationalUnitId)
@@ -1404,6 +1416,7 @@ module Aws::CloudFormation
1404
1416
  StackInstance.add_member(:organizational_unit_id, Shapes::ShapeRef.new(shape: OrganizationalUnitId, location_name: "OrganizationalUnitId"))
1405
1417
  StackInstance.add_member(:drift_status, Shapes::ShapeRef.new(shape: StackDriftStatus, location_name: "DriftStatus"))
1406
1418
  StackInstance.add_member(:last_drift_check_timestamp, Shapes::ShapeRef.new(shape: Timestamp, location_name: "LastDriftCheckTimestamp"))
1419
+ StackInstance.add_member(:last_operation_id, Shapes::ShapeRef.new(shape: ClientRequestToken, location_name: "LastOperationId"))
1407
1420
  StackInstance.struct_class = Types::StackInstance
1408
1421
 
1409
1422
  StackInstanceComprehensiveStatus.add_member(:detailed_status, Shapes::ShapeRef.new(shape: StackInstanceDetailedStatus, location_name: "DetailedStatus"))
@@ -1429,6 +1442,7 @@ module Aws::CloudFormation
1429
1442
  StackInstanceSummary.add_member(:organizational_unit_id, Shapes::ShapeRef.new(shape: OrganizationalUnitId, location_name: "OrganizationalUnitId"))
1430
1443
  StackInstanceSummary.add_member(:drift_status, Shapes::ShapeRef.new(shape: StackDriftStatus, location_name: "DriftStatus"))
1431
1444
  StackInstanceSummary.add_member(:last_drift_check_timestamp, Shapes::ShapeRef.new(shape: Timestamp, location_name: "LastDriftCheckTimestamp"))
1445
+ StackInstanceSummary.add_member(:last_operation_id, Shapes::ShapeRef.new(shape: ClientRequestToken, location_name: "LastOperationId"))
1432
1446
  StackInstanceSummary.struct_class = Types::StackInstanceSummary
1433
1447
 
1434
1448
  StackNotFoundException.struct_class = Types::StackNotFoundException
@@ -1544,6 +1558,7 @@ module Aws::CloudFormation
1544
1558
  StackSetOperation.add_member(:deployment_targets, Shapes::ShapeRef.new(shape: DeploymentTargets, location_name: "DeploymentTargets"))
1545
1559
  StackSetOperation.add_member(:stack_set_drift_detection_details, Shapes::ShapeRef.new(shape: StackSetDriftDetectionDetails, location_name: "StackSetDriftDetectionDetails"))
1546
1560
  StackSetOperation.add_member(:status_reason, Shapes::ShapeRef.new(shape: StackSetOperationStatusReason, location_name: "StatusReason"))
1561
+ StackSetOperation.add_member(:status_details, Shapes::ShapeRef.new(shape: StackSetOperationStatusDetails, location_name: "StatusDetails"))
1547
1562
  StackSetOperation.struct_class = Types::StackSetOperation
1548
1563
 
1549
1564
  StackSetOperationPreferences.add_member(:region_concurrency_type, Shapes::ShapeRef.new(shape: RegionConcurrencyType, location_name: "RegionConcurrencyType"))
@@ -1564,6 +1579,9 @@ module Aws::CloudFormation
1564
1579
  StackSetOperationResultSummary.add_member(:organizational_unit_id, Shapes::ShapeRef.new(shape: OrganizationalUnitId, location_name: "OrganizationalUnitId"))
1565
1580
  StackSetOperationResultSummary.struct_class = Types::StackSetOperationResultSummary
1566
1581
 
1582
+ StackSetOperationStatusDetails.add_member(:failed_stack_instances_count, Shapes::ShapeRef.new(shape: FailedStackInstancesCount, location_name: "FailedStackInstancesCount"))
1583
+ StackSetOperationStatusDetails.struct_class = Types::StackSetOperationStatusDetails
1584
+
1567
1585
  StackSetOperationSummaries.member = Shapes::ShapeRef.new(shape: StackSetOperationSummary)
1568
1586
 
1569
1587
  StackSetOperationSummary.add_member(:operation_id, Shapes::ShapeRef.new(shape: ClientRequestToken, location_name: "OperationId"))
@@ -1572,6 +1590,8 @@ module Aws::CloudFormation
1572
1590
  StackSetOperationSummary.add_member(:creation_timestamp, Shapes::ShapeRef.new(shape: Timestamp, location_name: "CreationTimestamp"))
1573
1591
  StackSetOperationSummary.add_member(:end_timestamp, Shapes::ShapeRef.new(shape: Timestamp, location_name: "EndTimestamp"))
1574
1592
  StackSetOperationSummary.add_member(:status_reason, Shapes::ShapeRef.new(shape: StackSetOperationStatusReason, location_name: "StatusReason"))
1593
+ StackSetOperationSummary.add_member(:status_details, Shapes::ShapeRef.new(shape: StackSetOperationStatusDetails, location_name: "StatusDetails"))
1594
+ StackSetOperationSummary.add_member(:operation_preferences, Shapes::ShapeRef.new(shape: StackSetOperationPreferences, location_name: "OperationPreferences"))
1575
1595
  StackSetOperationSummary.struct_class = Types::StackSetOperationSummary
1576
1596
 
1577
1597
  StackSetSummaries.member = Shapes::ShapeRef.new(shape: StackSetSummary)
@@ -0,0 +1,66 @@
1
+ # frozen_string_literal: true
2
+
3
+ # WARNING ABOUT GENERATED CODE
4
+ #
5
+ # This file is generated. See the contributing guide for more information:
6
+ # https://github.com/aws/aws-sdk-ruby/blob/version-3/CONTRIBUTING.md
7
+ #
8
+ # WARNING ABOUT GENERATED CODE
9
+
10
+ module Aws::CloudFormation
11
+ # Endpoint parameters used to influence endpoints per request.
12
+ #
13
+ # @!attribute region
14
+ # The AWS region used to dispatch the request.
15
+ #
16
+ # @return [String]
17
+ #
18
+ # @!attribute use_dual_stack
19
+ # When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.
20
+ #
21
+ # @return [Boolean]
22
+ #
23
+ # @!attribute use_fips
24
+ # When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.
25
+ #
26
+ # @return [Boolean]
27
+ #
28
+ # @!attribute endpoint
29
+ # Override the endpoint used to send this request
30
+ #
31
+ # @return [String]
32
+ #
33
+ EndpointParameters = Struct.new(
34
+ :region,
35
+ :use_dual_stack,
36
+ :use_fips,
37
+ :endpoint,
38
+ ) do
39
+ include Aws::Structure
40
+
41
+ # @api private
42
+ class << self
43
+ PARAM_MAP = {
44
+ 'Region' => :region,
45
+ 'UseDualStack' => :use_dual_stack,
46
+ 'UseFIPS' => :use_fips,
47
+ 'Endpoint' => :endpoint,
48
+ }.freeze
49
+ end
50
+
51
+ def initialize(options = {})
52
+ self[:region] = options[:region]
53
+ self[:use_dual_stack] = options[:use_dual_stack]
54
+ self[:use_dual_stack] = false if self[:use_dual_stack].nil?
55
+ if self[:use_dual_stack].nil?
56
+ raise ArgumentError, "Missing required EndpointParameter: :use_dual_stack"
57
+ end
58
+ self[:use_fips] = options[:use_fips]
59
+ self[:use_fips] = false if self[:use_fips].nil?
60
+ if self[:use_fips].nil?
61
+ raise ArgumentError, "Missing required EndpointParameter: :use_fips"
62
+ end
63
+ self[:endpoint] = options[:endpoint]
64
+ end
65
+ end
66
+ end
@@ -0,0 +1,112 @@
1
+ # frozen_string_literal: true
2
+
3
+ # WARNING ABOUT GENERATED CODE
4
+ #
5
+ # This file is generated. See the contributing guide for more information:
6
+ # https://github.com/aws/aws-sdk-ruby/blob/version-3/CONTRIBUTING.md
7
+ #
8
+ # WARNING ABOUT GENERATED CODE
9
+
10
+ module Aws::CloudFormation
11
+ class EndpointProvider
12
+ def initialize(rule_set = nil)
13
+ @@rule_set ||= begin
14
+ endpoint_rules = Aws::Json.load(Base64.decode64(RULES))
15
+ Aws::Endpoints::RuleSet.new(
16
+ version: endpoint_rules['version'],
17
+ service_id: endpoint_rules['serviceId'],
18
+ parameters: endpoint_rules['parameters'],
19
+ rules: endpoint_rules['rules']
20
+ )
21
+ end
22
+ @provider = Aws::Endpoints::RulesProvider.new(rule_set || @@rule_set)
23
+ end
24
+
25
+ def resolve_endpoint(parameters)
26
+ @provider.resolve_endpoint(parameters)
27
+ end
28
+
29
+ # @api private
30
+ RULES = <<-JSON
31
+ eyJ2ZXJzaW9uIjoiMS4wIiwicGFyYW1ldGVycyI6eyJSZWdpb24iOnsiYnVp
32
+ bHRJbiI6IkFXUzo6UmVnaW9uIiwicmVxdWlyZWQiOmZhbHNlLCJkb2N1bWVu
33
+ dGF0aW9uIjoiVGhlIEFXUyByZWdpb24gdXNlZCB0byBkaXNwYXRjaCB0aGUg
34
+ cmVxdWVzdC4iLCJ0eXBlIjoiU3RyaW5nIn0sIlVzZUR1YWxTdGFjayI6eyJi
35
+ dWlsdEluIjoiQVdTOjpVc2VEdWFsU3RhY2siLCJyZXF1aXJlZCI6dHJ1ZSwi
36
+ ZGVmYXVsdCI6ZmFsc2UsImRvY3VtZW50YXRpb24iOiJXaGVuIHRydWUsIHVz
37
+ ZSB0aGUgZHVhbC1zdGFjayBlbmRwb2ludC4gSWYgdGhlIGNvbmZpZ3VyZWQg
38
+ ZW5kcG9pbnQgZG9lcyBub3Qgc3VwcG9ydCBkdWFsLXN0YWNrLCBkaXNwYXRj
39
+ aGluZyB0aGUgcmVxdWVzdCBNQVkgcmV0dXJuIGFuIGVycm9yLiIsInR5cGUi
40
+ OiJCb29sZWFuIn0sIlVzZUZJUFMiOnsiYnVpbHRJbiI6IkFXUzo6VXNlRklQ
41
+ UyIsInJlcXVpcmVkIjp0cnVlLCJkZWZhdWx0IjpmYWxzZSwiZG9jdW1lbnRh
42
+ dGlvbiI6IldoZW4gdHJ1ZSwgc2VuZCB0aGlzIHJlcXVlc3QgdG8gdGhlIEZJ
43
+ UFMtY29tcGxpYW50IHJlZ2lvbmFsIGVuZHBvaW50LiBJZiB0aGUgY29uZmln
44
+ dXJlZCBlbmRwb2ludCBkb2VzIG5vdCBoYXZlIGEgRklQUyBjb21wbGlhbnQg
45
+ ZW5kcG9pbnQsIGRpc3BhdGNoaW5nIHRoZSByZXF1ZXN0IHdpbGwgcmV0dXJu
46
+ IGFuIGVycm9yLiIsInR5cGUiOiJCb29sZWFuIn0sIkVuZHBvaW50Ijp7ImJ1
47
+ aWx0SW4iOiJTREs6OkVuZHBvaW50IiwicmVxdWlyZWQiOmZhbHNlLCJkb2N1
48
+ bWVudGF0aW9uIjoiT3ZlcnJpZGUgdGhlIGVuZHBvaW50IHVzZWQgdG8gc2Vu
49
+ ZCB0aGlzIHJlcXVlc3QiLCJ0eXBlIjoiU3RyaW5nIn19LCJydWxlcyI6W3si
50
+ Y29uZGl0aW9ucyI6W3siZm4iOiJhd3MucGFydGl0aW9uIiwiYXJndiI6W3si
51
+ cmVmIjoiUmVnaW9uIn1dLCJhc3NpZ24iOiJQYXJ0aXRpb25SZXN1bHQifV0s
52
+ InR5cGUiOiJ0cmVlIiwicnVsZXMiOlt7ImNvbmRpdGlvbnMiOlt7ImZuIjoi
53
+ aXNTZXQiLCJhcmd2IjpbeyJyZWYiOiJFbmRwb2ludCJ9XX0seyJmbiI6InBh
54
+ cnNlVVJMIiwiYXJndiI6W3sicmVmIjoiRW5kcG9pbnQifV0sImFzc2lnbiI6
55
+ InVybCJ9XSwidHlwZSI6InRyZWUiLCJydWxlcyI6W3siY29uZGl0aW9ucyI6
56
+ W3siZm4iOiJib29sZWFuRXF1YWxzIiwiYXJndiI6W3sicmVmIjoiVXNlRklQ
57
+ UyJ9LHRydWVdfV0sImVycm9yIjoiSW52YWxpZCBDb25maWd1cmF0aW9uOiBG
58
+ SVBTIGFuZCBjdXN0b20gZW5kcG9pbnQgYXJlIG5vdCBzdXBwb3J0ZWQiLCJ0
59
+ eXBlIjoiZXJyb3IifSx7ImNvbmRpdGlvbnMiOltdLCJ0eXBlIjoidHJlZSIs
60
+ InJ1bGVzIjpbeyJjb25kaXRpb25zIjpbeyJmbiI6ImJvb2xlYW5FcXVhbHMi
61
+ LCJhcmd2IjpbeyJyZWYiOiJVc2VEdWFsU3RhY2sifSx0cnVlXX1dLCJlcnJv
62
+ ciI6IkludmFsaWQgQ29uZmlndXJhdGlvbjogRHVhbHN0YWNrIGFuZCBjdXN0
63
+ b20gZW5kcG9pbnQgYXJlIG5vdCBzdXBwb3J0ZWQiLCJ0eXBlIjoiZXJyb3Ii
64
+ fSx7ImNvbmRpdGlvbnMiOltdLCJlbmRwb2ludCI6eyJ1cmwiOnsicmVmIjoi
65
+ RW5kcG9pbnQifSwicHJvcGVydGllcyI6e30sImhlYWRlcnMiOnt9fSwidHlw
66
+ ZSI6ImVuZHBvaW50In1dfV19LHsiY29uZGl0aW9ucyI6W3siZm4iOiJib29s
67
+ ZWFuRXF1YWxzIiwiYXJndiI6W3sicmVmIjoiVXNlRklQUyJ9LHRydWVdfSx7
68
+ ImZuIjoiYm9vbGVhbkVxdWFscyIsImFyZ3YiOlt7InJlZiI6IlVzZUR1YWxT
69
+ dGFjayJ9LHRydWVdfV0sInR5cGUiOiJ0cmVlIiwicnVsZXMiOlt7ImNvbmRp
70
+ dGlvbnMiOlt7ImZuIjoiYm9vbGVhbkVxdWFscyIsImFyZ3YiOlt0cnVlLHsi
71
+ Zm4iOiJnZXRBdHRyIiwiYXJndiI6W3sicmVmIjoiUGFydGl0aW9uUmVzdWx0
72
+ In0sInN1cHBvcnRzRklQUyJdfV19LHsiZm4iOiJib29sZWFuRXF1YWxzIiwi
73
+ YXJndiI6W3RydWUseyJmbiI6ImdldEF0dHIiLCJhcmd2IjpbeyJyZWYiOiJQ
74
+ YXJ0aXRpb25SZXN1bHQifSwic3VwcG9ydHNEdWFsU3RhY2siXX1dfV0sInR5
75
+ cGUiOiJ0cmVlIiwicnVsZXMiOlt7ImNvbmRpdGlvbnMiOltdLCJlbmRwb2lu
76
+ dCI6eyJ1cmwiOiJodHRwczovL2Nsb3VkZm9ybWF0aW9uLWZpcHMue1JlZ2lv
77
+ bn0ue1BhcnRpdGlvblJlc3VsdCNkdWFsU3RhY2tEbnNTdWZmaXh9IiwicHJv
78
+ cGVydGllcyI6e30sImhlYWRlcnMiOnt9fSwidHlwZSI6ImVuZHBvaW50In1d
79
+ fSx7ImNvbmRpdGlvbnMiOltdLCJlcnJvciI6IkZJUFMgYW5kIER1YWxTdGFj
80
+ ayBhcmUgZW5hYmxlZCwgYnV0IHRoaXMgcGFydGl0aW9uIGRvZXMgbm90IHN1
81
+ cHBvcnQgb25lIG9yIGJvdGgiLCJ0eXBlIjoiZXJyb3IifV19LHsiY29uZGl0
82
+ aW9ucyI6W3siZm4iOiJib29sZWFuRXF1YWxzIiwiYXJndiI6W3sicmVmIjoi
83
+ VXNlRklQUyJ9LHRydWVdfV0sInR5cGUiOiJ0cmVlIiwicnVsZXMiOlt7ImNv
84
+ bmRpdGlvbnMiOlt7ImZuIjoiYm9vbGVhbkVxdWFscyIsImFyZ3YiOlt0cnVl
85
+ LHsiZm4iOiJnZXRBdHRyIiwiYXJndiI6W3sicmVmIjoiUGFydGl0aW9uUmVz
86
+ dWx0In0sInN1cHBvcnRzRklQUyJdfV19XSwidHlwZSI6InRyZWUiLCJydWxl
87
+ cyI6W3siY29uZGl0aW9ucyI6W10sInR5cGUiOiJ0cmVlIiwicnVsZXMiOlt7
88
+ ImNvbmRpdGlvbnMiOltdLCJlbmRwb2ludCI6eyJ1cmwiOiJodHRwczovL2Ns
89
+ b3VkZm9ybWF0aW9uLWZpcHMue1JlZ2lvbn0ue1BhcnRpdGlvblJlc3VsdCNk
90
+ bnNTdWZmaXh9IiwicHJvcGVydGllcyI6e30sImhlYWRlcnMiOnt9fSwidHlw
91
+ ZSI6ImVuZHBvaW50In1dfV19LHsiY29uZGl0aW9ucyI6W10sImVycm9yIjoi
92
+ RklQUyBpcyBlbmFibGVkIGJ1dCB0aGlzIHBhcnRpdGlvbiBkb2VzIG5vdCBz
93
+ dXBwb3J0IEZJUFMiLCJ0eXBlIjoiZXJyb3IifV19LHsiY29uZGl0aW9ucyI6
94
+ W3siZm4iOiJib29sZWFuRXF1YWxzIiwiYXJndiI6W3sicmVmIjoiVXNlRHVh
95
+ bFN0YWNrIn0sdHJ1ZV19XSwidHlwZSI6InRyZWUiLCJydWxlcyI6W3siY29u
96
+ ZGl0aW9ucyI6W3siZm4iOiJib29sZWFuRXF1YWxzIiwiYXJndiI6W3RydWUs
97
+ eyJmbiI6ImdldEF0dHIiLCJhcmd2IjpbeyJyZWYiOiJQYXJ0aXRpb25SZXN1
98
+ bHQifSwic3VwcG9ydHNEdWFsU3RhY2siXX1dfV0sInR5cGUiOiJ0cmVlIiwi
99
+ cnVsZXMiOlt7ImNvbmRpdGlvbnMiOltdLCJlbmRwb2ludCI6eyJ1cmwiOiJo
100
+ dHRwczovL2Nsb3VkZm9ybWF0aW9uLntSZWdpb259LntQYXJ0aXRpb25SZXN1
101
+ bHQjZHVhbFN0YWNrRG5zU3VmZml4fSIsInByb3BlcnRpZXMiOnt9LCJoZWFk
102
+ ZXJzIjp7fX0sInR5cGUiOiJlbmRwb2ludCJ9XX0seyJjb25kaXRpb25zIjpb
103
+ XSwiZXJyb3IiOiJEdWFsU3RhY2sgaXMgZW5hYmxlZCBidXQgdGhpcyBwYXJ0
104
+ aXRpb24gZG9lcyBub3Qgc3VwcG9ydCBEdWFsU3RhY2siLCJ0eXBlIjoiZXJy
105
+ b3IifV19LHsiY29uZGl0aW9ucyI6W10sImVuZHBvaW50Ijp7InVybCI6Imh0
106
+ dHBzOi8vY2xvdWRmb3JtYXRpb24ue1JlZ2lvbn0ue1BhcnRpdGlvblJlc3Vs
107
+ dCNkbnNTdWZmaXh9IiwicHJvcGVydGllcyI6e30sImhlYWRlcnMiOnt9fSwi
108
+ dHlwZSI6ImVuZHBvaW50In1dfV19
109
+
110
+ JSON
111
+ end
112
+ end