aws-sdk-states 1.48.0 → 1.50.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: 5c928569511640f102fe9d703c486023e464a5f7b94390a40529a15a58cf4cfe
4
- data.tar.gz: 17558bb419e53c21aca88dbe53ea68c6567ecdd911c74272cc86b11efac5133a
3
+ metadata.gz: f8a4391c3c1388779afc11712f7082efc08dee8d3c0ce3a3f7d971f849c56e6b
4
+ data.tar.gz: 41c13bf8db8a02f7d66b69e2095ea73588ddc0c920232f72eb62cd30673e38d7
5
5
  SHA512:
6
- metadata.gz: 556166d97d5598f20a42fedfd9408c3317c42d29e634b0c828fc1edc7b3ada1dae0db2498ac335e63640100bc57051c0c193f208b0353f705631bec148cd65c8
7
- data.tar.gz: 76a4575e8fb35f68422279805b5896342ca3e90b55fdb04175d9a594f27f10398e3b87659fb714c3763a66f26982c2faab12fdc75811be8fa1af00ee0b467588
6
+ metadata.gz: 2884d9201413a2723096e9fc42899297dac3dd623b10913bc38b90ca63ae1cc7b11049015a60e39902c98b5a6d59c8d9e8356d6f64cfce3cf4a789adcd4cd98c
7
+ data.tar.gz: e16841af64a6a0fe88b7fd6265ecf6e6015a3df6da8bdbfc769f9b7bb28c66880c4e0e4f6bd4a10ef279a41549e0a9c615e7c928899e28db095c9bbeace6bc99
data/CHANGELOG.md CHANGED
@@ -1,6 +1,16 @@
1
1
  Unreleased Changes
2
2
  ------------------
3
3
 
4
+ 1.50.0 (2022-11-18)
5
+ ------------------
6
+
7
+ * Feature - This release adds support for using Step Functions service integrations to invoke any cross-account AWS resource, even if that service doesn't support resource-based policies or cross-account calls. See https://docs.aws.amazon.com/step-functions/latest/dg/concepts-access-cross-acct-resources.html
8
+
9
+ 1.49.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.48.0 (2022-02-24)
5
15
  ------------------
6
16
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.48.0
1
+ 1.50.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/json_rpc.rb'
35
35
 
36
36
  Aws::Plugins::GlobalConfiguration.add_identifier(:states)
@@ -79,8 +79,9 @@ module Aws::States
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::JsonRpc)
84
+ add_plugin(Aws::States::Plugins::Endpoints)
84
85
 
85
86
  # @overload initialize(options)
86
87
  # @param [Hash] options
@@ -297,6 +298,19 @@ module Aws::States
297
298
  # ** Please note ** When response stubbing is enabled, no HTTP
298
299
  # requests are made, and retries are disabled.
299
300
  #
301
+ # @option options [Aws::TokenProvider] :token_provider
302
+ # A Bearer Token Provider. This can be an instance of any one of the
303
+ # following classes:
304
+ #
305
+ # * `Aws::StaticTokenProvider` - Used for configuring static, non-refreshing
306
+ # tokens.
307
+ #
308
+ # * `Aws::SSOTokenProvider` - Used for loading tokens from AWS SSO using an
309
+ # access token generated from `aws login`.
310
+ #
311
+ # When `:token_provider` is not configured directly, the `Aws::TokenProviderChain`
312
+ # will be used to search for tokens configured for your profile in shared configuration files.
313
+ #
300
314
  # @option options [Boolean] :use_dualstack_endpoint
301
315
  # When set to `true`, dualstack enabled endpoints (with `.aws` TLD)
302
316
  # will be used if available.
@@ -310,6 +324,9 @@ module Aws::States
310
324
  # When `true`, request parameters are validated before
311
325
  # sending the request.
312
326
  #
327
+ # @option options [Aws::States::EndpointProvider] :endpoint_provider
328
+ # The endpoint provider used to resolve endpoints. Any object that responds to `#resolve_endpoint(parameters)` where `parameters` is a Struct similar to `Aws::States::EndpointParameters`
329
+ #
313
330
  # @option options [URI::HTTP,String] :http_proxy A proxy to send
314
331
  # requests through. Formatted like 'http://proxy.com:123'.
315
332
  #
@@ -362,8 +379,8 @@ module Aws::States
362
379
  # @!group API Operations
363
380
 
364
381
  # Creates an activity. An activity is a task that you write in any
365
- # programming language and host on any machine that has access to AWS
366
- # Step Functions. Activities must poll Step Functions using the
382
+ # programming language and host on any machine that has access to Step
383
+ # Functions. Activities must poll Step Functions using the
367
384
  # `GetActivityTask` API action and respond using `SendTask*` API
368
385
  # actions. This function lets Step Functions know the existence of your
369
386
  # activity and returns an identifier for use in a state machine and when
@@ -386,9 +403,9 @@ module Aws::States
386
403
  #
387
404
  # @option params [required, String] :name
388
405
  # The name of the activity to create. This name must be unique for your
389
- # AWS account and region for 90 days. For more information, see [ Limits
390
- # Related to State Machine Executions][1] in the *AWS Step Functions
391
- # Developer Guide*.
406
+ # Amazon Web Services account and region for 90 days. For more
407
+ # information, see [ Limits Related to State Machine Executions][1] in
408
+ # the *Step Functions Developer Guide*.
392
409
  #
393
410
  # A name must *not* contain:
394
411
  #
@@ -413,8 +430,8 @@ module Aws::States
413
430
  # The list of tags to add to a resource.
414
431
  #
415
432
  # An array of key-value pairs. For more information, see [Using Cost
416
- # Allocation Tags][1] in the *AWS Billing and Cost Management User
417
- # Guide*, and [Controlling Access Using IAM Tags][2].
433
+ # Allocation Tags][1] in the *Amazon Web Services Billing and Cost
434
+ # Management User Guide*, and [Controlling Access Using IAM Tags][2].
418
435
  #
419
436
  # Tags may only contain Unicode letters, digits, white space, or these
420
437
  # symbols: `_ . : / = + - @`.
@@ -460,7 +477,7 @@ module Aws::States
460
477
  # transition next (`Choice` states), stop an execution with an error
461
478
  # (`Fail` states), and so on. State machines are specified using a
462
479
  # JSON-based, structured language. For more information, see [Amazon
463
- # States Language][1] in the AWS Step Functions User Guide.
480
+ # States Language][1] in the Step Functions User Guide.
464
481
  #
465
482
  # <note markdown="1"> This operation is eventually consistent. The results are best effort
466
483
  # and may not reflect very recent updates and changes.
@@ -522,7 +539,7 @@ module Aws::States
522
539
  # logged.
523
540
  #
524
541
  # <note markdown="1"> By default, the `level` is set to `OFF`. For more information see [Log
525
- # Levels][1] in the AWS Step Functions User Guide.
542
+ # Levels][1] in the Step Functions User Guide.
526
543
  #
527
544
  # </note>
528
545
  #
@@ -534,8 +551,8 @@ module Aws::States
534
551
  # Tags to be added when creating a state machine.
535
552
  #
536
553
  # An array of key-value pairs. For more information, see [Using Cost
537
- # Allocation Tags][1] in the *AWS Billing and Cost Management User
538
- # Guide*, and [Controlling Access Using IAM Tags][2].
554
+ # Allocation Tags][1] in the *Amazon Web Services Billing and Cost
555
+ # Management User Guide*, and [Controlling Access Using IAM Tags][2].
539
556
  #
540
557
  # Tags may only contain Unicode letters, digits, white space, or these
541
558
  # symbols: `_ . : / = + - @`.
@@ -546,7 +563,7 @@ module Aws::States
546
563
  # [2]: https://docs.aws.amazon.com/IAM/latest/UserGuide/access_iam-tags.html
547
564
  #
548
565
  # @option params [Types::TracingConfiguration] :tracing_configuration
549
- # Selects whether AWS X-Ray tracing is enabled.
566
+ # Selects whether X-Ray tracing is enabled.
550
567
  #
551
568
  # @return [Types::CreateStateMachineOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
552
569
  #
@@ -622,7 +639,7 @@ module Aws::States
622
639
  # the state machine's status to `DELETING` and begins the deletion
623
640
  # process.
624
641
  #
625
- # <note markdown="1"> For `EXPRESS`state machines, the deletion will happen eventually
642
+ # <note markdown="1"> For `EXPRESS` state machines, the deletion will happen eventually
626
643
  # (usually less than a minute). Running executions may emit logs after
627
644
  # `DeleteStateMachine` API is called.
628
645
  #
@@ -852,6 +869,10 @@ module Aws::States
852
869
  # task is available within 60 seconds, the poll returns a `taskToken`
853
870
  # with a null string.
854
871
  #
872
+ # <note markdown="1"> This API action isn't logged in CloudTrail.
873
+ #
874
+ # </note>
875
+ #
855
876
  # Workers should set their client side socket timeout to at least 65
856
877
  # seconds (5 seconds higher than the maximum time the service may hold
857
878
  # the poll request).
@@ -987,6 +1008,7 @@ module Aws::States
987
1008
  # resp.events[0].task_scheduled_event_details.parameters #=> String
988
1009
  # resp.events[0].task_scheduled_event_details.timeout_in_seconds #=> Integer
989
1010
  # resp.events[0].task_scheduled_event_details.heartbeat_in_seconds #=> Integer
1011
+ # resp.events[0].task_scheduled_event_details.task_credentials.role_arn #=> String
990
1012
  # resp.events[0].task_start_failed_event_details.resource_type #=> String
991
1013
  # resp.events[0].task_start_failed_event_details.resource #=> String
992
1014
  # resp.events[0].task_start_failed_event_details.error #=> String
@@ -1037,6 +1059,7 @@ module Aws::States
1037
1059
  # resp.events[0].lambda_function_scheduled_event_details.input #=> String
1038
1060
  # resp.events[0].lambda_function_scheduled_event_details.input_details.truncated #=> Boolean
1039
1061
  # resp.events[0].lambda_function_scheduled_event_details.timeout_in_seconds #=> Integer
1062
+ # resp.events[0].lambda_function_scheduled_event_details.task_credentials.role_arn #=> String
1040
1063
  # resp.events[0].lambda_function_start_failed_event_details.error #=> String
1041
1064
  # resp.events[0].lambda_function_start_failed_event_details.cause #=> String
1042
1065
  # resp.events[0].lambda_function_succeeded_event_details.output #=> String
@@ -1429,11 +1452,14 @@ module Aws::States
1429
1452
 
1430
1453
  # Starts a state machine execution.
1431
1454
  #
1432
- # <note markdown="1"> `StartExecution` is idempotent. If `StartExecution` is called with the
1433
- # same name and input as a running execution, the call will succeed and
1434
- # return the same response as the original request. If the execution is
1435
- # closed or if the input is different, it will return a 400
1436
- # `ExecutionAlreadyExists` error. Names can be reused after 90 days.
1455
+ # <note markdown="1"> `StartExecution` is idempotent for `STANDARD` workflows. For a
1456
+ # `STANDARD` workflow, if `StartExecution` is called with the same name
1457
+ # and input as a running execution, the call will succeed and return the
1458
+ # same response as the original request. If the execution is closed or
1459
+ # if the input is different, it will return a `400
1460
+ # ExecutionAlreadyExists` error. Names can be reused after 90 days.
1461
+ #
1462
+ # `StartExecution` is not idempotent for `EXPRESS` workflows.
1437
1463
  #
1438
1464
  # </note>
1439
1465
  #
@@ -1441,10 +1467,10 @@ module Aws::States
1441
1467
  # The Amazon Resource Name (ARN) of the state machine to execute.
1442
1468
  #
1443
1469
  # @option params [String] :name
1444
- # The name of the execution. This name must be unique for your AWS
1445
- # account, region, and state machine for 90 days. For more information,
1446
- # see [ Limits Related to State Machine Executions][1] in the *AWS Step
1447
- # Functions Developer Guide*.
1470
+ # The name of the execution. This name must be unique for your Amazon
1471
+ # Web Services account, region, and state machine for 90 days. For more
1472
+ # information, see [ Limits Related to State Machine Executions][1] in
1473
+ # the *Step Functions Developer Guide*.
1448
1474
  #
1449
1475
  # A name must *not* contain:
1450
1476
  #
@@ -1480,8 +1506,8 @@ module Aws::States
1480
1506
  # bytes in UTF-8 encoding.
1481
1507
  #
1482
1508
  # @option params [String] :trace_header
1483
- # Passes the AWS X-Ray trace header. The trace header can also be passed
1484
- # in the request payload.
1509
+ # Passes the X-Ray trace header. The trace header can also be passed in
1510
+ # the request payload.
1485
1511
  #
1486
1512
  # @return [Types::StartExecutionOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1487
1513
  #
@@ -1512,6 +1538,19 @@ module Aws::States
1512
1538
  end
1513
1539
 
1514
1540
  # Starts a Synchronous Express state machine execution.
1541
+ # `StartSyncExecution` is not available for `STANDARD` workflows.
1542
+ #
1543
+ # <note markdown="1"> `StartSyncExecution` will return a `200 OK` response, even if your
1544
+ # execution fails, because the status code in the API response doesn't
1545
+ # reflect function errors. Error codes are reserved for errors that
1546
+ # prevent your execution from running, such as permissions errors, limit
1547
+ # errors, or issues with your state machine code and configuration.
1548
+ #
1549
+ # </note>
1550
+ #
1551
+ # <note markdown="1"> This API action isn't logged in CloudTrail.
1552
+ #
1553
+ # </note>
1515
1554
  #
1516
1555
  # @option params [required, String] :state_machine_arn
1517
1556
  # The Amazon Resource Name (ARN) of the state machine to execute.
@@ -1534,8 +1573,8 @@ module Aws::States
1534
1573
  # bytes in UTF-8 encoding.
1535
1574
  #
1536
1575
  # @option params [String] :trace_header
1537
- # Passes the AWS X-Ray trace header. The trace header can also be passed
1538
- # in the request payload.
1576
+ # Passes the X-Ray trace header. The trace header can also be passed in
1577
+ # the request payload.
1539
1578
  #
1540
1579
  # @return [Types::StartSyncExecutionOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1541
1580
  #
@@ -1631,8 +1670,8 @@ module Aws::States
1631
1670
  # Add a tag to a Step Functions resource.
1632
1671
  #
1633
1672
  # An array of key-value pairs. For more information, see [Using Cost
1634
- # Allocation Tags][1] in the *AWS Billing and Cost Management User
1635
- # Guide*, and [Controlling Access Using IAM Tags][2].
1673
+ # Allocation Tags][1] in the *Amazon Web Services Billing and Cost
1674
+ # Management User Guide*, and [Controlling Access Using IAM Tags][2].
1636
1675
  #
1637
1676
  # Tags may only contain Unicode letters, digits, white space, or these
1638
1677
  # symbols: `_ . : / = + - @`.
@@ -1734,7 +1773,7 @@ module Aws::States
1734
1773
  # options.
1735
1774
  #
1736
1775
  # @option params [Types::TracingConfiguration] :tracing_configuration
1737
- # Selects whether AWS X-Ray tracing is enabled.
1776
+ # Selects whether X-Ray tracing is enabled.
1738
1777
  #
1739
1778
  # @return [Types::UpdateStateMachineOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1740
1779
  #
@@ -1788,7 +1827,7 @@ module Aws::States
1788
1827
  params: params,
1789
1828
  config: config)
1790
1829
  context[:gem_name] = 'aws-sdk-states'
1791
- context[:gem_version] = '1.48.0'
1830
+ context[:gem_version] = '1.50.0'
1792
1831
  Seahorse::Client::Request.new(handlers, context)
1793
1832
  end
1794
1833
 
@@ -100,6 +100,7 @@ module Aws::States
100
100
  LogDestinationList = Shapes::ListShape.new(name: 'LogDestinationList')
101
101
  LogLevel = Shapes::StringShape.new(name: 'LogLevel')
102
102
  LoggingConfiguration = Shapes::StructureShape.new(name: 'LoggingConfiguration')
103
+ LongArn = Shapes::StringShape.new(name: 'LongArn')
103
104
  MapIterationEventDetails = Shapes::StructureShape.new(name: 'MapIterationEventDetails')
104
105
  MapStateStartedEventDetails = Shapes::StructureShape.new(name: 'MapStateStartedEventDetails')
105
106
  MissingRequiredParameter = Shapes::StructureShape.new(name: 'MissingRequiredParameter')
@@ -143,6 +144,7 @@ module Aws::States
143
144
  TagResourceInput = Shapes::StructureShape.new(name: 'TagResourceInput')
144
145
  TagResourceOutput = Shapes::StructureShape.new(name: 'TagResourceOutput')
145
146
  TagValue = Shapes::StringShape.new(name: 'TagValue')
147
+ TaskCredentials = Shapes::StructureShape.new(name: 'TaskCredentials')
146
148
  TaskDoesNotExist = Shapes::StructureShape.new(name: 'TaskDoesNotExist')
147
149
  TaskFailedEventDetails = Shapes::StructureShape.new(name: 'TaskFailedEventDetails')
148
150
  TaskScheduledEventDetails = Shapes::StructureShape.new(name: 'TaskScheduledEventDetails')
@@ -438,6 +440,7 @@ module Aws::States
438
440
  LambdaFunctionScheduledEventDetails.add_member(:input, Shapes::ShapeRef.new(shape: SensitiveData, location_name: "input"))
439
441
  LambdaFunctionScheduledEventDetails.add_member(:input_details, Shapes::ShapeRef.new(shape: HistoryEventExecutionDataDetails, location_name: "inputDetails"))
440
442
  LambdaFunctionScheduledEventDetails.add_member(:timeout_in_seconds, Shapes::ShapeRef.new(shape: TimeoutInSeconds, location_name: "timeoutInSeconds", metadata: {"box"=>true}))
443
+ LambdaFunctionScheduledEventDetails.add_member(:task_credentials, Shapes::ShapeRef.new(shape: TaskCredentials, location_name: "taskCredentials"))
441
444
  LambdaFunctionScheduledEventDetails.struct_class = Types::LambdaFunctionScheduledEventDetails
442
445
 
443
446
  LambdaFunctionStartFailedEventDetails.add_member(:error, Shapes::ShapeRef.new(shape: SensitiveError, location_name: "error"))
@@ -613,6 +616,9 @@ module Aws::States
613
616
 
614
617
  TagResourceOutput.struct_class = Types::TagResourceOutput
615
618
 
619
+ TaskCredentials.add_member(:role_arn, Shapes::ShapeRef.new(shape: LongArn, location_name: "roleArn"))
620
+ TaskCredentials.struct_class = Types::TaskCredentials
621
+
616
622
  TaskDoesNotExist.add_member(:message, Shapes::ShapeRef.new(shape: ErrorMessage, location_name: "message"))
617
623
  TaskDoesNotExist.struct_class = Types::TaskDoesNotExist
618
624
 
@@ -628,6 +634,7 @@ module Aws::States
628
634
  TaskScheduledEventDetails.add_member(:parameters, Shapes::ShapeRef.new(shape: ConnectorParameters, required: true, location_name: "parameters"))
629
635
  TaskScheduledEventDetails.add_member(:timeout_in_seconds, Shapes::ShapeRef.new(shape: TimeoutInSeconds, location_name: "timeoutInSeconds", metadata: {"box"=>true}))
630
636
  TaskScheduledEventDetails.add_member(:heartbeat_in_seconds, Shapes::ShapeRef.new(shape: TimeoutInSeconds, location_name: "heartbeatInSeconds", metadata: {"box"=>true}))
637
+ TaskScheduledEventDetails.add_member(:task_credentials, Shapes::ShapeRef.new(shape: TaskCredentials, location_name: "taskCredentials"))
631
638
  TaskScheduledEventDetails.struct_class = Types::TaskScheduledEventDetails
632
639
 
633
640
  TaskStartFailedEventDetails.add_member(:resource_type, Shapes::ShapeRef.new(shape: Name, required: true, location_name: "resourceType"))
@@ -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::States
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,116 @@
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::States
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
+ dCI6eyJ1cmwiOiJodHRwczovL3N0YXRlcy1maXBzLntSZWdpb259LntQYXJ0
77
+ aXRpb25SZXN1bHQjZHVhbFN0YWNrRG5zU3VmZml4fSIsInByb3BlcnRpZXMi
78
+ Ont9LCJoZWFkZXJzIjp7fX0sInR5cGUiOiJlbmRwb2ludCJ9XX0seyJjb25k
79
+ aXRpb25zIjpbXSwiZXJyb3IiOiJGSVBTIGFuZCBEdWFsU3RhY2sgYXJlIGVu
80
+ YWJsZWQsIGJ1dCB0aGlzIHBhcnRpdGlvbiBkb2VzIG5vdCBzdXBwb3J0IG9u
81
+ ZSBvciBib3RoIiwidHlwZSI6ImVycm9yIn1dfSx7ImNvbmRpdGlvbnMiOlt7
82
+ ImZuIjoiYm9vbGVhbkVxdWFscyIsImFyZ3YiOlt7InJlZiI6IlVzZUZJUFMi
83
+ fSx0cnVlXX1dLCJ0eXBlIjoidHJlZSIsInJ1bGVzIjpbeyJjb25kaXRpb25z
84
+ IjpbeyJmbiI6ImJvb2xlYW5FcXVhbHMiLCJhcmd2IjpbdHJ1ZSx7ImZuIjoi
85
+ Z2V0QXR0ciIsImFyZ3YiOlt7InJlZiI6IlBhcnRpdGlvblJlc3VsdCJ9LCJz
86
+ dXBwb3J0c0ZJUFMiXX1dfV0sInR5cGUiOiJ0cmVlIiwicnVsZXMiOlt7ImNv
87
+ bmRpdGlvbnMiOltdLCJ0eXBlIjoidHJlZSIsInJ1bGVzIjpbeyJjb25kaXRp
88
+ b25zIjpbeyJmbiI6InN0cmluZ0VxdWFscyIsImFyZ3YiOlt7InJlZiI6IlJl
89
+ Z2lvbiJ9LCJ1cy1nb3Ytd2VzdC0xIl19XSwiZW5kcG9pbnQiOnsidXJsIjoi
90
+ aHR0cHM6Ly9zdGF0ZXMudXMtZ292LXdlc3QtMS5hbWF6b25hd3MuY29tIiwi
91
+ cHJvcGVydGllcyI6e30sImhlYWRlcnMiOnt9fSwidHlwZSI6ImVuZHBvaW50
92
+ In0seyJjb25kaXRpb25zIjpbXSwiZW5kcG9pbnQiOnsidXJsIjoiaHR0cHM6
93
+ Ly9zdGF0ZXMtZmlwcy57UmVnaW9ufS57UGFydGl0aW9uUmVzdWx0I2Ruc1N1
94
+ ZmZpeH0iLCJwcm9wZXJ0aWVzIjp7fSwiaGVhZGVycyI6e319LCJ0eXBlIjoi
95
+ ZW5kcG9pbnQifV19XX0seyJjb25kaXRpb25zIjpbXSwiZXJyb3IiOiJGSVBT
96
+ IGlzIGVuYWJsZWQgYnV0IHRoaXMgcGFydGl0aW9uIGRvZXMgbm90IHN1cHBv
97
+ cnQgRklQUyIsInR5cGUiOiJlcnJvciJ9XX0seyJjb25kaXRpb25zIjpbeyJm
98
+ biI6ImJvb2xlYW5FcXVhbHMiLCJhcmd2IjpbeyJyZWYiOiJVc2VEdWFsU3Rh
99
+ Y2sifSx0cnVlXX1dLCJ0eXBlIjoidHJlZSIsInJ1bGVzIjpbeyJjb25kaXRp
100
+ b25zIjpbeyJmbiI6ImJvb2xlYW5FcXVhbHMiLCJhcmd2IjpbdHJ1ZSx7ImZu
101
+ IjoiZ2V0QXR0ciIsImFyZ3YiOlt7InJlZiI6IlBhcnRpdGlvblJlc3VsdCJ9
102
+ LCJzdXBwb3J0c0R1YWxTdGFjayJdfV19XSwidHlwZSI6InRyZWUiLCJydWxl
103
+ cyI6W3siY29uZGl0aW9ucyI6W10sImVuZHBvaW50Ijp7InVybCI6Imh0dHBz
104
+ Oi8vc3RhdGVzLntSZWdpb259LntQYXJ0aXRpb25SZXN1bHQjZHVhbFN0YWNr
105
+ RG5zU3VmZml4fSIsInByb3BlcnRpZXMiOnt9LCJoZWFkZXJzIjp7fX0sInR5
106
+ cGUiOiJlbmRwb2ludCJ9XX0seyJjb25kaXRpb25zIjpbXSwiZXJyb3IiOiJE
107
+ dWFsU3RhY2sgaXMgZW5hYmxlZCBidXQgdGhpcyBwYXJ0aXRpb24gZG9lcyBu
108
+ b3Qgc3VwcG9ydCBEdWFsU3RhY2siLCJ0eXBlIjoiZXJyb3IifV19LHsiY29u
109
+ ZGl0aW9ucyI6W10sImVuZHBvaW50Ijp7InVybCI6Imh0dHBzOi8vc3RhdGVz
110
+ LntSZWdpb259LntQYXJ0aXRpb25SZXN1bHQjZG5zU3VmZml4fSIsInByb3Bl
111
+ cnRpZXMiOnt9LCJoZWFkZXJzIjp7fX0sInR5cGUiOiJlbmRwb2ludCJ9XX1d
112
+ fQ==
113
+
114
+ JSON
115
+ end
116
+ end