aws-sdk-core 3.197.2 → 3.225.1

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.
Files changed (150) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +355 -0
  3. data/VERSION +1 -1
  4. data/lib/aws-defaults/default_configuration.rb +1 -2
  5. data/lib/aws-defaults.rb +4 -1
  6. data/lib/aws-sdk-core/arn.rb +1 -3
  7. data/lib/aws-sdk-core/assume_role_credentials.rb +13 -5
  8. data/lib/aws-sdk-core/assume_role_web_identity_credentials.rb +14 -7
  9. data/lib/aws-sdk-core/binary/decode_handler.rb +3 -4
  10. data/lib/aws-sdk-core/binary/encode_handler.rb +1 -1
  11. data/lib/aws-sdk-core/binary/event_stream_decoder.rb +1 -0
  12. data/lib/aws-sdk-core/binary/event_stream_encoder.rb +4 -3
  13. data/lib/aws-sdk-core/cbor/decoder.rb +308 -0
  14. data/lib/aws-sdk-core/cbor/encoder.rb +243 -0
  15. data/lib/aws-sdk-core/cbor.rb +53 -0
  16. data/lib/aws-sdk-core/client_side_monitoring.rb +9 -0
  17. data/lib/aws-sdk-core/client_stubs.rb +30 -55
  18. data/lib/aws-sdk-core/credential_provider.rb +4 -0
  19. data/lib/aws-sdk-core/credential_provider_chain.rb +37 -10
  20. data/lib/aws-sdk-core/credentials.rb +19 -6
  21. data/lib/aws-sdk-core/ecs_credentials.rb +1 -0
  22. data/lib/aws-sdk-core/endpoints/endpoint.rb +3 -1
  23. data/lib/aws-sdk-core/endpoints/matchers.rb +1 -8
  24. data/lib/aws-sdk-core/endpoints.rb +74 -18
  25. data/lib/aws-sdk-core/error_handler.rb +41 -0
  26. data/lib/aws-sdk-core/errors.rb +11 -2
  27. data/lib/aws-sdk-core/instance_profile_credentials.rb +1 -0
  28. data/lib/aws-sdk-core/json/error_handler.rb +8 -9
  29. data/lib/aws-sdk-core/json/handler.rb +6 -6
  30. data/lib/aws-sdk-core/json/json_engine.rb +3 -1
  31. data/lib/aws-sdk-core/json/oj_engine.rb +7 -1
  32. data/lib/aws-sdk-core/json/parser.rb +2 -0
  33. data/lib/aws-sdk-core/json.rb +43 -14
  34. data/lib/aws-sdk-core/log/param_filter.rb +2 -2
  35. data/lib/aws-sdk-core/log/param_formatter.rb +7 -3
  36. data/lib/aws-sdk-core/log.rb +10 -0
  37. data/lib/aws-sdk-core/param_validator.rb +1 -1
  38. data/lib/aws-sdk-core/plugins/bearer_authorization.rb +2 -0
  39. data/lib/aws-sdk-core/plugins/checksum_algorithm.rb +332 -169
  40. data/lib/aws-sdk-core/plugins/client_metrics_plugin.rb +0 -1
  41. data/lib/aws-sdk-core/plugins/credentials_configuration.rb +7 -3
  42. data/lib/aws-sdk-core/plugins/endpoint_pattern.rb +40 -32
  43. data/lib/aws-sdk-core/plugins/global_configuration.rb +8 -9
  44. data/lib/aws-sdk-core/plugins/http_checksum.rb +2 -8
  45. data/lib/aws-sdk-core/plugins/protocols/api_gateway.rb +3 -1
  46. data/lib/aws-sdk-core/plugins/protocols/ec2.rb +2 -24
  47. data/lib/aws-sdk-core/plugins/protocols/json_rpc.rb +6 -8
  48. data/lib/aws-sdk-core/plugins/protocols/query.rb +4 -2
  49. data/lib/aws-sdk-core/plugins/protocols/rest_json.rb +4 -3
  50. data/lib/aws-sdk-core/plugins/protocols/rest_xml.rb +5 -1
  51. data/lib/aws-sdk-core/plugins/protocols/rpc_v2.rb +17 -0
  52. data/lib/aws-sdk-core/plugins/regional_endpoint.rb +74 -25
  53. data/lib/aws-sdk-core/plugins/retry_errors.rb +0 -1
  54. data/lib/aws-sdk-core/plugins/sign.rb +28 -12
  55. data/lib/aws-sdk-core/plugins/signature_v2.rb +2 -1
  56. data/lib/aws-sdk-core/plugins/signature_v4.rb +2 -1
  57. data/lib/aws-sdk-core/plugins/stub_responses.rb +52 -9
  58. data/lib/aws-sdk-core/plugins/telemetry.rb +75 -0
  59. data/lib/aws-sdk-core/plugins/transfer_encoding.rb +16 -9
  60. data/lib/aws-sdk-core/plugins/user_agent.rb +48 -9
  61. data/lib/aws-sdk-core/plugins.rb +39 -0
  62. data/lib/aws-sdk-core/process_credentials.rb +3 -2
  63. data/lib/aws-sdk-core/query/ec2_handler.rb +27 -0
  64. data/lib/aws-sdk-core/query/handler.rb +4 -4
  65. data/lib/aws-sdk-core/query.rb +2 -1
  66. data/lib/aws-sdk-core/resources.rb +8 -0
  67. data/lib/aws-sdk-core/rest/{request/content_type.rb → content_type_handler.rb} +1 -1
  68. data/lib/aws-sdk-core/rest/handler.rb +3 -4
  69. data/lib/aws-sdk-core/rest/request/headers.rb +3 -3
  70. data/lib/aws-sdk-core/rest.rb +1 -1
  71. data/lib/aws-sdk-core/rpc_v2/builder.rb +62 -0
  72. data/lib/aws-sdk-core/rpc_v2/cbor_engine.rb +18 -0
  73. data/lib/aws-sdk-core/rpc_v2/content_type_handler.rb +47 -0
  74. data/lib/aws-sdk-core/rpc_v2/error_handler.rb +85 -0
  75. data/lib/aws-sdk-core/rpc_v2/handler.rb +79 -0
  76. data/lib/aws-sdk-core/rpc_v2/parser.rb +98 -0
  77. data/lib/aws-sdk-core/rpc_v2.rb +69 -0
  78. data/lib/aws-sdk-core/shared_config.rb +78 -22
  79. data/lib/aws-sdk-core/shared_credentials.rb +1 -7
  80. data/lib/aws-sdk-core/sso_credentials.rb +4 -1
  81. data/lib/aws-sdk-core/stubbing/protocols/ec2.rb +12 -11
  82. data/lib/aws-sdk-core/stubbing/protocols/json.rb +11 -10
  83. data/lib/aws-sdk-core/stubbing/protocols/query.rb +7 -6
  84. data/lib/aws-sdk-core/stubbing/protocols/rest.rb +2 -1
  85. data/lib/aws-sdk-core/stubbing/protocols/rest_json.rb +9 -8
  86. data/lib/aws-sdk-core/stubbing/protocols/rest_xml.rb +6 -5
  87. data/lib/aws-sdk-core/stubbing/protocols/rpc_v2.rb +39 -0
  88. data/lib/aws-sdk-core/stubbing.rb +22 -0
  89. data/lib/aws-sdk-core/telemetry/base.rb +177 -0
  90. data/lib/aws-sdk-core/telemetry/no_op.rb +70 -0
  91. data/lib/aws-sdk-core/telemetry/otel.rb +235 -0
  92. data/lib/aws-sdk-core/telemetry/span_kind.rb +22 -0
  93. data/lib/aws-sdk-core/telemetry/span_status.rb +59 -0
  94. data/lib/aws-sdk-core/telemetry.rb +78 -0
  95. data/lib/aws-sdk-core/waiters/poller.rb +9 -4
  96. data/lib/aws-sdk-core/xml/error_handler.rb +11 -37
  97. data/lib/aws-sdk-core/xml/parser.rb +2 -6
  98. data/lib/aws-sdk-core.rb +82 -108
  99. data/lib/aws-sdk-sso/client.rb +100 -39
  100. data/lib/aws-sdk-sso/client_api.rb +7 -0
  101. data/lib/aws-sdk-sso/endpoint_parameters.rb +9 -6
  102. data/lib/aws-sdk-sso/endpoint_provider.rb +14 -18
  103. data/lib/aws-sdk-sso/endpoints.rb +2 -54
  104. data/lib/aws-sdk-sso/plugins/endpoints.rb +19 -20
  105. data/lib/aws-sdk-sso/types.rb +1 -0
  106. data/lib/aws-sdk-sso.rb +15 -11
  107. data/lib/aws-sdk-ssooidc/client.rb +137 -59
  108. data/lib/aws-sdk-ssooidc/client_api.rb +11 -0
  109. data/lib/aws-sdk-ssooidc/endpoint_parameters.rb +9 -6
  110. data/lib/aws-sdk-ssooidc/endpoint_provider.rb +14 -18
  111. data/lib/aws-sdk-ssooidc/endpoints.rb +2 -54
  112. data/lib/aws-sdk-ssooidc/plugins/endpoints.rb +19 -20
  113. data/lib/aws-sdk-ssooidc/types.rb +49 -16
  114. data/lib/aws-sdk-ssooidc.rb +15 -11
  115. data/lib/aws-sdk-sts/client.rb +308 -91
  116. data/lib/aws-sdk-sts/client_api.rb +36 -10
  117. data/lib/aws-sdk-sts/customizations.rb +5 -1
  118. data/lib/aws-sdk-sts/endpoint_parameters.rb +10 -9
  119. data/lib/aws-sdk-sts/endpoint_provider.rb +50 -55
  120. data/lib/aws-sdk-sts/endpoints.rb +2 -118
  121. data/lib/aws-sdk-sts/errors.rb +16 -0
  122. data/lib/aws-sdk-sts/plugins/endpoints.rb +19 -28
  123. data/lib/aws-sdk-sts/types.rb +171 -28
  124. data/lib/aws-sdk-sts.rb +15 -11
  125. data/lib/seahorse/client/async_base.rb +4 -5
  126. data/lib/seahorse/client/base.rb +17 -21
  127. data/lib/seahorse/client/h2/connection.rb +18 -28
  128. data/lib/seahorse/client/h2/handler.rb +13 -3
  129. data/lib/seahorse/client/handler.rb +1 -1
  130. data/lib/seahorse/client/http/response.rb +1 -1
  131. data/lib/seahorse/client/net_http/connection_pool.rb +10 -2
  132. data/lib/seahorse/client/net_http/handler.rb +21 -9
  133. data/lib/seahorse/client/networking_error.rb +1 -1
  134. data/lib/seahorse/client/plugins/endpoint.rb +0 -1
  135. data/lib/seahorse/client/plugins/h2.rb +4 -4
  136. data/lib/seahorse/client/plugins/net_http.rb +9 -0
  137. data/lib/seahorse/client/request_context.rb +8 -1
  138. data/lib/seahorse/client/response.rb +2 -0
  139. data/sig/aws-sdk-core/async_client_stubs.rbs +21 -0
  140. data/sig/aws-sdk-core/telemetry/base.rbs +46 -0
  141. data/sig/aws-sdk-core/telemetry/otel.rbs +22 -0
  142. data/sig/aws-sdk-core/telemetry/span_kind.rbs +15 -0
  143. data/sig/aws-sdk-core/telemetry/span_status.rbs +24 -0
  144. data/sig/seahorse/client/async_base.rbs +18 -0
  145. metadata +80 -24
  146. /data/lib/aws-sdk-core/xml/parser/{engines/libxml.rb → libxml_engine.rb} +0 -0
  147. /data/lib/aws-sdk-core/xml/parser/{engines/nokogiri.rb → nokogiri_engine.rb} +0 -0
  148. /data/lib/aws-sdk-core/xml/parser/{engines/oga.rb → oga_engine.rb} +0 -0
  149. /data/lib/aws-sdk-core/xml/parser/{engines/ox.rb → ox_engine.rb} +0 -0
  150. /data/lib/aws-sdk-core/xml/parser/{engines/rexml.rb → rexml_engine.rb} +0 -0
@@ -1,10 +1,16 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require 'oj'
4
+
3
5
  module Aws
4
6
  module Json
5
7
  module OjEngine
6
8
  # @api private
7
- LOAD_OPTIONS = { mode: :compat, symbol_keys: false, empty_string: false }.freeze
9
+ LOAD_OPTIONS = {
10
+ mode: :compat,
11
+ symbol_keys: false,
12
+ empty_string: false
13
+ }.freeze
8
14
 
9
15
  # @api private
10
16
  DUMP_OPTIONS = { mode: :compat }.freeze
@@ -17,6 +17,8 @@ module Aws
17
17
 
18
18
  # @param [String<JSON>] json
19
19
  def parse(json, target = nil)
20
+ json = '{}' if json.empty?
21
+
20
22
  parse_ref(@rules, Json.load(json), target)
21
23
  end
22
24
 
@@ -1,12 +1,9 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'json'
4
3
  require_relative 'json/builder'
5
4
  require_relative 'json/error_handler'
6
5
  require_relative 'json/handler'
7
6
  require_relative 'json/parser'
8
- require_relative 'json/json_engine'
9
- require_relative 'json/oj_engine'
10
7
 
11
8
  module Aws
12
9
  # @api private
@@ -21,29 +18,61 @@ module Aws
21
18
  end
22
19
 
23
20
  class << self
24
- def load(json)
25
- ENGINE.load(json)
21
+ # @param [Symbol,Class] engine
22
+ # Must be one of the following values:
23
+ #
24
+ # * :oj
25
+ # * :json
26
+ #
27
+ def engine=(engine)
28
+ @engine = Class === engine ? engine : load_engine(engine)
29
+ end
30
+
31
+ # @return [Class] Returns the default engine.
32
+ # One of:
33
+ #
34
+ # * {OjEngine}
35
+ # * {JsonEngine}
36
+ #
37
+ def engine
38
+ set_default_engine unless @engine
39
+ @engine
26
40
  end
27
41
 
28
- def load_file(path)
29
- load(File.open(path, 'r', encoding: 'UTF-8', &:read))
42
+ def load(json)
43
+ @engine.load(json)
30
44
  end
31
45
 
32
46
  def dump(value)
33
- ENGINE.dump(value)
47
+ @engine.dump(value)
48
+ end
49
+
50
+ def set_default_engine
51
+ [:oj, :json].each do |name|
52
+ @engine ||= try_load_engine(name)
53
+ end
54
+ unless @engine
55
+ raise 'Unable to find a compatible json library. ' \
56
+ 'Ensure that you have installed or added to your Gemfile one of ' \
57
+ 'oj or json'
58
+ end
34
59
  end
35
60
 
36
61
  private
37
62
 
38
- def select_engine
39
- require 'oj'
40
- OjEngine
63
+ def load_engine(name)
64
+ require "aws-sdk-core/json/#{name}_engine"
65
+ const_name = name[0].upcase + name[1..-1] + 'Engine'
66
+ const_get(const_name)
67
+ end
68
+
69
+ def try_load_engine(name)
70
+ load_engine(name)
41
71
  rescue LoadError
42
- JSONEngine
72
+ false
43
73
  end
44
74
  end
45
75
 
46
- # @api private
47
- ENGINE = select_engine
76
+ set_default_engine
48
77
  end
49
78
  end
@@ -55,14 +55,14 @@ module Aws
55
55
  filtered[key] = if @enabled && filters.include?(key)
56
56
  '[FILTERED]'
57
57
  else
58
- filter(value, type)
58
+ filter(value, value.class)
59
59
  end
60
60
  end
61
61
  filtered
62
62
  end
63
63
 
64
64
  def filter_array(values, type)
65
- values.map { |value| filter(value, type) }
65
+ values.map { |value| filter(value, value.class) }
66
66
  end
67
67
 
68
68
  end
@@ -51,13 +51,17 @@ module Aws
51
51
  when String then summarize_string(value)
52
52
  when Hash then '{' + summarize_hash(value) + '}'
53
53
  when Array then summarize_array(value)
54
- when File then summarize_file(value.path)
55
- when Pathname then summarize_file(value)
54
+ when File then summarize_file(value)
55
+ when Pathname then summarize_filepath(value)
56
56
  else value.inspect
57
57
  end
58
58
  end
59
59
 
60
- def summarize_file(path)
60
+ def summarize_file(file)
61
+ "#<File:#{file.path} (#{file.size} bytes)>"
62
+ end
63
+
64
+ def summarize_filepath(path)
61
65
  "#<File:#{path} (#{File.size(path)} bytes)>"
62
66
  end
63
67
 
@@ -0,0 +1,10 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Aws
4
+ # setup autoloading for Log module
5
+ module Log
6
+ autoload :Formatter, 'aws-sdk-core/log/formatter'
7
+ autoload :ParamFilter, 'aws-sdk-core/log/param_filter'
8
+ autoload :ParamFormatter, 'aws-sdk-core/log/param_formatter'
9
+ end
10
+ end
@@ -71,7 +71,7 @@ module Aws
71
71
  end
72
72
 
73
73
  if @validate_required && shape.union
74
- set_values = @input ? values.length : values.to_h.length
74
+ set_values = values.to_h.length
75
75
  if set_values > 1
76
76
  errors << "multiple values provided to union at #{context} - must contain exactly one of the supported types: #{shape.member_names.join(', ')}"
77
77
  elsif set_values == 0
@@ -4,6 +4,8 @@ module Aws
4
4
  # @api private
5
5
  module Plugins
6
6
  # @api private
7
+ # Deprecated - does not look at new traits like `auth` and `unsignedPayload`
8
+ # Necessary to exist after endpoints 2.0 for old service clients + new core
7
9
  class BearerAuthorization < Seahorse::Client::Plugin
8
10
 
9
11
  option(:token_provider,