aws-sdk-core 3.152.0 → 3.234.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.
Files changed (213) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +942 -1
  3. data/VERSION +1 -1
  4. data/lib/aws-defaults/default_configuration.rb +5 -6
  5. data/lib/aws-defaults.rb +4 -1
  6. data/lib/aws-sdk-core/arn.rb +14 -3
  7. data/lib/aws-sdk-core/assume_role_credentials.rb +21 -13
  8. data/lib/aws-sdk-core/assume_role_web_identity_credentials.rb +16 -9
  9. data/lib/aws-sdk-core/binary/decode_handler.rb +3 -9
  10. data/lib/aws-sdk-core/binary/encode_handler.rb +13 -2
  11. data/lib/aws-sdk-core/binary/event_builder.rb +34 -37
  12. data/lib/aws-sdk-core/binary/event_stream_decoder.rb +1 -0
  13. data/lib/aws-sdk-core/binary/event_stream_encoder.rb +4 -3
  14. data/lib/aws-sdk-core/cbor/decoder.rb +308 -0
  15. data/lib/aws-sdk-core/cbor/encoder.rb +243 -0
  16. data/lib/aws-sdk-core/cbor.rb +53 -0
  17. data/lib/aws-sdk-core/client_side_monitoring.rb +9 -0
  18. data/lib/aws-sdk-core/client_stubs.rb +33 -55
  19. data/lib/aws-sdk-core/credential_provider.rb +8 -1
  20. data/lib/aws-sdk-core/credential_provider_chain.rb +81 -29
  21. data/lib/aws-sdk-core/credentials.rb +19 -6
  22. data/lib/aws-sdk-core/ec2_metadata.rb +1 -1
  23. data/lib/aws-sdk-core/ecs_credentials.rb +186 -60
  24. data/lib/aws-sdk-core/endpoints/condition.rb +41 -0
  25. data/lib/aws-sdk-core/endpoints/endpoint.rb +19 -0
  26. data/lib/aws-sdk-core/endpoints/endpoint_rule.rb +75 -0
  27. data/lib/aws-sdk-core/endpoints/error_rule.rb +42 -0
  28. data/lib/aws-sdk-core/endpoints/function.rb +80 -0
  29. data/lib/aws-sdk-core/endpoints/matchers.rb +129 -0
  30. data/lib/aws-sdk-core/endpoints/reference.rb +31 -0
  31. data/lib/aws-sdk-core/endpoints/rule.rb +25 -0
  32. data/lib/aws-sdk-core/endpoints/rule_set.rb +52 -0
  33. data/lib/aws-sdk-core/endpoints/rules_provider.rb +37 -0
  34. data/lib/aws-sdk-core/endpoints/templater.rb +58 -0
  35. data/lib/aws-sdk-core/endpoints/tree_rule.rb +45 -0
  36. data/lib/aws-sdk-core/endpoints/url.rb +60 -0
  37. data/lib/aws-sdk-core/endpoints.rb +158 -0
  38. data/lib/aws-sdk-core/error_handler.rb +46 -0
  39. data/lib/aws-sdk-core/errors.rb +14 -5
  40. data/lib/aws-sdk-core/event_emitter.rb +1 -17
  41. data/lib/aws-sdk-core/ini_parser.rb +7 -0
  42. data/lib/aws-sdk-core/instance_profile_credentials.rb +168 -155
  43. data/lib/aws-sdk-core/json/builder.rb +8 -1
  44. data/lib/aws-sdk-core/json/error_handler.rb +46 -11
  45. data/lib/aws-sdk-core/json/handler.rb +13 -6
  46. data/lib/aws-sdk-core/json/json_engine.rb +3 -1
  47. data/lib/aws-sdk-core/json/oj_engine.rb +7 -1
  48. data/lib/aws-sdk-core/json/parser.rb +33 -3
  49. data/lib/aws-sdk-core/json.rb +43 -14
  50. data/lib/aws-sdk-core/log/formatter.rb +6 -0
  51. data/lib/aws-sdk-core/log/param_filter.rb +2 -2
  52. data/lib/aws-sdk-core/log/param_formatter.rb +7 -3
  53. data/lib/aws-sdk-core/log.rb +10 -0
  54. data/lib/aws-sdk-core/lru_cache.rb +75 -0
  55. data/lib/aws-sdk-core/pageable_response.rb +3 -1
  56. data/lib/aws-sdk-core/param_validator.rb +9 -4
  57. data/lib/aws-sdk-core/plugins/bearer_authorization.rb +2 -0
  58. data/lib/aws-sdk-core/plugins/checksum_algorithm.rb +348 -169
  59. data/lib/aws-sdk-core/plugins/client_metrics_plugin.rb +1 -1
  60. data/lib/aws-sdk-core/plugins/client_metrics_send_plugin.rb +14 -2
  61. data/lib/aws-sdk-core/plugins/credentials_configuration.rb +84 -38
  62. data/lib/aws-sdk-core/plugins/endpoint_discovery.rb +6 -2
  63. data/lib/aws-sdk-core/plugins/endpoint_pattern.rb +40 -32
  64. data/lib/aws-sdk-core/plugins/global_configuration.rb +8 -9
  65. data/lib/aws-sdk-core/plugins/http_checksum.rb +3 -8
  66. data/lib/aws-sdk-core/plugins/invocation_id.rb +1 -11
  67. data/lib/aws-sdk-core/plugins/logging.rb +2 -0
  68. data/lib/aws-sdk-core/plugins/protocols/api_gateway.rb +3 -1
  69. data/lib/aws-sdk-core/plugins/protocols/ec2.rb +2 -24
  70. data/lib/aws-sdk-core/plugins/protocols/json_rpc.rb +6 -8
  71. data/lib/aws-sdk-core/plugins/protocols/query.rb +4 -2
  72. data/lib/aws-sdk-core/plugins/protocols/rest_json.rb +3 -15
  73. data/lib/aws-sdk-core/plugins/protocols/rest_xml.rb +3 -0
  74. data/lib/aws-sdk-core/plugins/protocols/rpc_v2.rb +17 -0
  75. data/lib/aws-sdk-core/plugins/regional_endpoint.rb +164 -34
  76. data/lib/aws-sdk-core/plugins/request_compression.rb +226 -0
  77. data/lib/aws-sdk-core/plugins/retries/error_inspector.rb +2 -1
  78. data/lib/aws-sdk-core/plugins/retry_errors.rb +12 -3
  79. data/lib/aws-sdk-core/plugins/sign.rb +222 -0
  80. data/lib/aws-sdk-core/plugins/signature_v2.rb +2 -0
  81. data/lib/aws-sdk-core/plugins/signature_v4.rb +2 -0
  82. data/lib/aws-sdk-core/plugins/stub_responses.rb +59 -9
  83. data/lib/aws-sdk-core/plugins/telemetry.rb +75 -0
  84. data/lib/aws-sdk-core/plugins/transfer_encoding.rb +16 -9
  85. data/lib/aws-sdk-core/plugins/user_agent.rb +192 -14
  86. data/lib/aws-sdk-core/plugins.rb +39 -0
  87. data/lib/aws-sdk-core/process_credentials.rb +48 -29
  88. data/lib/aws-sdk-core/query/ec2_handler.rb +27 -0
  89. data/lib/aws-sdk-core/query/ec2_param_builder.rb +5 -7
  90. data/lib/aws-sdk-core/query/handler.rb +4 -4
  91. data/lib/aws-sdk-core/query/param_builder.rb +2 -2
  92. data/lib/aws-sdk-core/query.rb +2 -1
  93. data/lib/aws-sdk-core/refreshing_credentials.rb +20 -23
  94. data/lib/aws-sdk-core/resources.rb +8 -0
  95. data/lib/aws-sdk-core/rest/content_type_handler.rb +60 -0
  96. data/lib/aws-sdk-core/rest/handler.rb +3 -4
  97. data/lib/aws-sdk-core/rest/request/body.rb +32 -5
  98. data/lib/aws-sdk-core/rest/request/endpoint.rb +24 -4
  99. data/lib/aws-sdk-core/rest/request/headers.rb +14 -10
  100. data/lib/aws-sdk-core/rest/request/querystring_builder.rb +62 -36
  101. data/lib/aws-sdk-core/rest/response/body.rb +15 -1
  102. data/lib/aws-sdk-core/rest/response/header_list_parser.rb +79 -0
  103. data/lib/aws-sdk-core/rest/response/headers.rb +8 -3
  104. data/lib/aws-sdk-core/rest.rb +1 -0
  105. data/lib/aws-sdk-core/rpc_v2/builder.rb +62 -0
  106. data/lib/aws-sdk-core/rpc_v2/cbor_engine.rb +18 -0
  107. data/lib/aws-sdk-core/rpc_v2/content_type_handler.rb +47 -0
  108. data/lib/aws-sdk-core/rpc_v2/error_handler.rb +95 -0
  109. data/lib/aws-sdk-core/rpc_v2/handler.rb +79 -0
  110. data/lib/aws-sdk-core/rpc_v2/parser.rb +98 -0
  111. data/lib/aws-sdk-core/rpc_v2.rb +69 -0
  112. data/lib/aws-sdk-core/shared_config.rb +160 -36
  113. data/lib/aws-sdk-core/shared_credentials.rb +1 -7
  114. data/lib/aws-sdk-core/sso_credentials.rb +84 -46
  115. data/lib/aws-sdk-core/sso_token_provider.rb +3 -2
  116. data/lib/aws-sdk-core/static_token_provider.rb +1 -2
  117. data/lib/aws-sdk-core/stubbing/protocols/ec2.rb +12 -11
  118. data/lib/aws-sdk-core/stubbing/protocols/json.rb +11 -10
  119. data/lib/aws-sdk-core/stubbing/protocols/query.rb +7 -6
  120. data/lib/aws-sdk-core/stubbing/protocols/rest.rb +2 -1
  121. data/lib/aws-sdk-core/stubbing/protocols/rest_json.rb +9 -8
  122. data/lib/aws-sdk-core/stubbing/protocols/rest_xml.rb +6 -5
  123. data/lib/aws-sdk-core/stubbing/protocols/rpc_v2.rb +39 -0
  124. data/lib/aws-sdk-core/stubbing/stub_data.rb +11 -0
  125. data/lib/aws-sdk-core/stubbing.rb +22 -0
  126. data/lib/aws-sdk-core/telemetry/base.rb +177 -0
  127. data/lib/aws-sdk-core/telemetry/no_op.rb +70 -0
  128. data/lib/aws-sdk-core/telemetry/otel.rb +235 -0
  129. data/lib/aws-sdk-core/telemetry/span_kind.rb +22 -0
  130. data/lib/aws-sdk-core/telemetry/span_status.rb +59 -0
  131. data/lib/aws-sdk-core/telemetry.rb +78 -0
  132. data/lib/aws-sdk-core/token.rb +3 -3
  133. data/lib/aws-sdk-core/token_provider.rb +4 -0
  134. data/lib/aws-sdk-core/token_provider_chain.rb +2 -6
  135. data/lib/aws-sdk-core/util.rb +41 -1
  136. data/lib/aws-sdk-core/waiters/poller.rb +12 -5
  137. data/lib/aws-sdk-core/xml/builder.rb +17 -9
  138. data/lib/aws-sdk-core/xml/error_handler.rb +35 -43
  139. data/lib/aws-sdk-core/xml/parser/frame.rb +4 -20
  140. data/lib/aws-sdk-core/xml/parser/{engines/oga.rb → oga_engine.rb} +2 -0
  141. data/lib/aws-sdk-core/xml/parser/stack.rb +2 -0
  142. data/lib/aws-sdk-core/xml/parser.rb +2 -6
  143. data/lib/aws-sdk-core.rb +82 -103
  144. data/lib/aws-sdk-sso/client.rb +219 -89
  145. data/lib/aws-sdk-sso/client_api.rb +7 -0
  146. data/lib/aws-sdk-sso/endpoint_parameters.rb +69 -0
  147. data/lib/aws-sdk-sso/endpoint_provider.rb +53 -0
  148. data/lib/aws-sdk-sso/endpoints.rb +20 -0
  149. data/lib/aws-sdk-sso/plugins/endpoints.rb +77 -0
  150. data/lib/aws-sdk-sso/types.rb +1 -35
  151. data/lib/aws-sdk-sso.rb +15 -7
  152. data/lib/aws-sdk-ssooidc/client.rb +650 -118
  153. data/lib/aws-sdk-ssooidc/client_api.rb +94 -1
  154. data/lib/aws-sdk-ssooidc/endpoint_parameters.rb +69 -0
  155. data/lib/aws-sdk-ssooidc/endpoint_provider.rb +53 -0
  156. data/lib/aws-sdk-ssooidc/endpoints.rb +20 -0
  157. data/lib/aws-sdk-ssooidc/errors.rb +62 -0
  158. data/lib/aws-sdk-ssooidc/plugins/endpoints.rb +77 -0
  159. data/lib/aws-sdk-ssooidc/types.rb +437 -67
  160. data/lib/aws-sdk-ssooidc.rb +15 -7
  161. data/lib/aws-sdk-sts/client.rb +670 -368
  162. data/lib/aws-sdk-sts/client_api.rb +48 -9
  163. data/lib/aws-sdk-sts/customizations.rb +5 -2
  164. data/lib/aws-sdk-sts/endpoint_parameters.rb +79 -0
  165. data/lib/aws-sdk-sts/endpoint_provider.rb +107 -0
  166. data/lib/aws-sdk-sts/endpoints.rb +20 -0
  167. data/lib/aws-sdk-sts/errors.rb +15 -0
  168. data/lib/aws-sdk-sts/plugins/endpoints.rb +77 -0
  169. data/lib/aws-sdk-sts/presigner.rb +12 -18
  170. data/lib/aws-sdk-sts/types.rb +296 -222
  171. data/lib/aws-sdk-sts.rb +15 -7
  172. data/lib/seahorse/client/async_base.rb +4 -6
  173. data/lib/seahorse/client/async_response.rb +19 -0
  174. data/lib/seahorse/client/base.rb +18 -21
  175. data/lib/seahorse/client/configuration.rb +1 -5
  176. data/lib/seahorse/client/h2/connection.rb +27 -36
  177. data/lib/seahorse/client/h2/handler.rb +14 -3
  178. data/lib/seahorse/client/handler.rb +1 -1
  179. data/lib/seahorse/client/http/response.rb +1 -1
  180. data/lib/seahorse/client/net_http/connection_pool.rb +15 -12
  181. data/lib/seahorse/client/net_http/handler.rb +21 -9
  182. data/lib/seahorse/client/net_http/patches.rb +1 -4
  183. data/lib/seahorse/client/networking_error.rb +1 -1
  184. data/lib/seahorse/client/plugin.rb +9 -0
  185. data/lib/seahorse/client/plugins/endpoint.rb +0 -1
  186. data/lib/seahorse/client/plugins/h2.rb +4 -4
  187. data/lib/seahorse/client/plugins/net_http.rb +57 -16
  188. data/lib/seahorse/client/plugins/request_callback.rb +40 -9
  189. data/lib/seahorse/client/request_context.rb +9 -2
  190. data/lib/seahorse/client/response.rb +8 -0
  191. data/lib/seahorse/model/operation.rb +3 -0
  192. data/lib/seahorse/model/shapes.rb +2 -2
  193. data/lib/seahorse/util.rb +6 -1
  194. data/sig/aws-sdk-core/async_client_stubs.rbs +21 -0
  195. data/sig/aws-sdk-core/client_stubs.rbs +10 -0
  196. data/sig/aws-sdk-core/errors.rbs +22 -0
  197. data/sig/aws-sdk-core/resources/collection.rbs +21 -0
  198. data/sig/aws-sdk-core/structure.rbs +4 -0
  199. data/sig/aws-sdk-core/telemetry/base.rbs +46 -0
  200. data/sig/aws-sdk-core/telemetry/otel.rbs +22 -0
  201. data/sig/aws-sdk-core/telemetry/span_kind.rbs +15 -0
  202. data/sig/aws-sdk-core/telemetry/span_status.rbs +24 -0
  203. data/sig/aws-sdk-core/waiters/errors.rbs +20 -0
  204. data/sig/aws-sdk-core.rbs +7 -0
  205. data/sig/seahorse/client/async_base.rbs +18 -0
  206. data/sig/seahorse/client/base.rbs +25 -0
  207. data/sig/seahorse/client/handler_builder.rbs +16 -0
  208. data/sig/seahorse/client/response.rbs +61 -0
  209. metadata +133 -23
  210. /data/lib/aws-sdk-core/xml/parser/{engines/libxml.rb → libxml_engine.rb} +0 -0
  211. /data/lib/aws-sdk-core/xml/parser/{engines/nokogiri.rb → nokogiri_engine.rb} +0 -0
  212. /data/lib/aws-sdk-core/xml/parser/{engines/ox.rb → ox_engine.rb} +0 -0
  213. /data/lib/aws-sdk-core/xml/parser/{engines/rexml.rb → rexml_engine.rb} +0 -0
@@ -7,33 +7,34 @@
7
7
  #
8
8
  # WARNING ABOUT GENERATED CODE
9
9
 
10
- require 'seahorse/client/plugins/content_length.rb'
11
- require 'aws-sdk-core/plugins/credentials_configuration.rb'
12
- require 'aws-sdk-core/plugins/logging.rb'
13
- require 'aws-sdk-core/plugins/param_converter.rb'
14
- require 'aws-sdk-core/plugins/param_validator.rb'
15
- require 'aws-sdk-core/plugins/user_agent.rb'
16
- require 'aws-sdk-core/plugins/helpful_socket_errors.rb'
17
- require 'aws-sdk-core/plugins/retry_errors.rb'
18
- require 'aws-sdk-core/plugins/global_configuration.rb'
19
- require 'aws-sdk-core/plugins/regional_endpoint.rb'
20
- require 'aws-sdk-core/plugins/endpoint_discovery.rb'
21
- require 'aws-sdk-core/plugins/endpoint_pattern.rb'
22
- require 'aws-sdk-core/plugins/response_paging.rb'
23
- require 'aws-sdk-core/plugins/stub_responses.rb'
24
- require 'aws-sdk-core/plugins/idempotency_token.rb'
25
- require 'aws-sdk-core/plugins/jsonvalue_converter.rb'
26
- require 'aws-sdk-core/plugins/client_metrics_plugin.rb'
27
- require 'aws-sdk-core/plugins/client_metrics_send_plugin.rb'
28
- require 'aws-sdk-core/plugins/transfer_encoding.rb'
29
- require 'aws-sdk-core/plugins/http_checksum.rb'
30
- require 'aws-sdk-core/plugins/checksum_algorithm.rb'
31
- require 'aws-sdk-core/plugins/defaults_mode.rb'
32
- require 'aws-sdk-core/plugins/recursion_detection.rb'
33
- require 'aws-sdk-core/plugins/signature_v4.rb'
34
- require 'aws-sdk-core/plugins/protocols/rest_json.rb'
35
-
36
- Aws::Plugins::GlobalConfiguration.add_identifier(:ssooidc)
10
+ require 'seahorse/client/plugins/content_length'
11
+ require 'aws-sdk-core/plugins/credentials_configuration'
12
+ require 'aws-sdk-core/plugins/logging'
13
+ require 'aws-sdk-core/plugins/param_converter'
14
+ require 'aws-sdk-core/plugins/param_validator'
15
+ require 'aws-sdk-core/plugins/user_agent'
16
+ require 'aws-sdk-core/plugins/helpful_socket_errors'
17
+ require 'aws-sdk-core/plugins/retry_errors'
18
+ require 'aws-sdk-core/plugins/global_configuration'
19
+ require 'aws-sdk-core/plugins/regional_endpoint'
20
+ require 'aws-sdk-core/plugins/endpoint_discovery'
21
+ require 'aws-sdk-core/plugins/endpoint_pattern'
22
+ require 'aws-sdk-core/plugins/response_paging'
23
+ require 'aws-sdk-core/plugins/stub_responses'
24
+ require 'aws-sdk-core/plugins/idempotency_token'
25
+ require 'aws-sdk-core/plugins/invocation_id'
26
+ require 'aws-sdk-core/plugins/jsonvalue_converter'
27
+ require 'aws-sdk-core/plugins/client_metrics_plugin'
28
+ require 'aws-sdk-core/plugins/client_metrics_send_plugin'
29
+ require 'aws-sdk-core/plugins/transfer_encoding'
30
+ require 'aws-sdk-core/plugins/http_checksum'
31
+ require 'aws-sdk-core/plugins/checksum_algorithm'
32
+ require 'aws-sdk-core/plugins/request_compression'
33
+ require 'aws-sdk-core/plugins/defaults_mode'
34
+ require 'aws-sdk-core/plugins/recursion_detection'
35
+ require 'aws-sdk-core/plugins/telemetry'
36
+ require 'aws-sdk-core/plugins/sign'
37
+ require 'aws-sdk-core/plugins/protocols/rest_json'
37
38
 
38
39
  module Aws::SSOOIDC
39
40
  # An API client for SSOOIDC. To construct a client, you need to configure a `:region` and `:credentials`.
@@ -71,22 +72,31 @@ module Aws::SSOOIDC
71
72
  add_plugin(Aws::Plugins::ResponsePaging)
72
73
  add_plugin(Aws::Plugins::StubResponses)
73
74
  add_plugin(Aws::Plugins::IdempotencyToken)
75
+ add_plugin(Aws::Plugins::InvocationId)
74
76
  add_plugin(Aws::Plugins::JsonvalueConverter)
75
77
  add_plugin(Aws::Plugins::ClientMetricsPlugin)
76
78
  add_plugin(Aws::Plugins::ClientMetricsSendPlugin)
77
79
  add_plugin(Aws::Plugins::TransferEncoding)
78
80
  add_plugin(Aws::Plugins::HttpChecksum)
79
81
  add_plugin(Aws::Plugins::ChecksumAlgorithm)
82
+ add_plugin(Aws::Plugins::RequestCompression)
80
83
  add_plugin(Aws::Plugins::DefaultsMode)
81
84
  add_plugin(Aws::Plugins::RecursionDetection)
82
- add_plugin(Aws::Plugins::SignatureV4)
85
+ add_plugin(Aws::Plugins::Telemetry)
86
+ add_plugin(Aws::Plugins::Sign)
83
87
  add_plugin(Aws::Plugins::Protocols::RestJson)
88
+ add_plugin(Aws::SSOOIDC::Plugins::Endpoints)
84
89
 
85
90
  # @overload initialize(options)
86
91
  # @param [Hash] options
92
+ #
93
+ # @option options [Array<Seahorse::Client::Plugin>] :plugins ([]])
94
+ # A list of plugins to apply to the client. Each plugin is either a
95
+ # class name or an instance of a plugin class.
96
+ #
87
97
  # @option options [required, Aws::CredentialProvider] :credentials
88
- # Your AWS credentials. This can be an instance of any one of the
89
- # following classes:
98
+ # Your AWS credentials used for authentication. This can be any class that includes and implements
99
+ # `Aws::CredentialProvider`, or instance of any one of the following classes:
90
100
  #
91
101
  # * `Aws::Credentials` - Used for configuring static, non-refreshing
92
102
  # credentials.
@@ -114,20 +124,24 @@ module Aws::SSOOIDC
114
124
  # * `Aws::CognitoIdentityCredentials` - Used for loading credentials
115
125
  # from the Cognito Identity service.
116
126
  #
117
- # When `:credentials` are not configured directly, the following
118
- # locations will be searched for credentials:
127
+ # When `:credentials` are not configured directly, the following locations will be searched for credentials:
119
128
  #
120
129
  # * `Aws.config[:credentials]`
121
- # * The `:access_key_id`, `:secret_access_key`, and `:session_token` options.
122
- # * ENV['AWS_ACCESS_KEY_ID'], ENV['AWS_SECRET_ACCESS_KEY']
130
+ #
131
+ # * The `:access_key_id`, `:secret_access_key`, `:session_token`, and
132
+ # `:account_id` options.
133
+ #
134
+ # * `ENV['AWS_ACCESS_KEY_ID']`, `ENV['AWS_SECRET_ACCESS_KEY']`,
135
+ # `ENV['AWS_SESSION_TOKEN']`, and `ENV['AWS_ACCOUNT_ID']`.
136
+ #
123
137
  # * `~/.aws/credentials`
138
+ #
124
139
  # * `~/.aws/config`
125
- # * EC2/ECS IMDS instance profile - When used by default, the timeouts
126
- # are very aggressive. Construct and pass an instance of
127
- # `Aws::InstanceProfileCredentails` or `Aws::ECSCredentials` to
128
- # enable retries and extended timeouts. Instance profile credential
129
- # fetching can be disabled by setting ENV['AWS_EC2_METADATA_DISABLED']
130
- # to true.
140
+ #
141
+ # * EC2/ECS IMDS instance profile - When used by default, the timeouts are very aggressive.
142
+ # Construct and pass an instance of `Aws::InstanceProfileCredentials` or `Aws::ECSCredentials` to
143
+ # enable retries and extended timeouts. Instance profile credential fetching can be disabled by
144
+ # setting `ENV['AWS_EC2_METADATA_DISABLED']` to `true`.
131
145
  #
132
146
  # @option options [required, String] :region
133
147
  # The AWS region to connect to. The configured `:region` is
@@ -143,6 +157,8 @@ module Aws::SSOOIDC
143
157
  #
144
158
  # @option options [String] :access_key_id
145
159
  #
160
+ # @option options [String] :account_id
161
+ #
146
162
  # @option options [Boolean] :active_endpoint_cache (false)
147
163
  # When set to `true`, a thread polling for endpoints will be running in
148
164
  # the background every 60 secs (default). Defaults to `false`.
@@ -153,6 +169,11 @@ module Aws::SSOOIDC
153
169
  # When false, the request will raise a `RetryCapacityNotAvailableError` and will
154
170
  # not retry instead of sleeping.
155
171
  #
172
+ # @option options [Array<String>] :auth_scheme_preference
173
+ # A list of preferred authentication schemes to use when making a request. Supported values are:
174
+ # `sigv4`, `sigv4a`, `httpBearerAuth`, and `noAuth`. When set using `ENV['AWS_AUTH_SCHEME_PREFERENCE']` or in
175
+ # shared config as `auth_scheme_preference`, the value should be a comma-separated list.
176
+ #
156
177
  # @option options [Boolean] :client_side_monitoring (false)
157
178
  # When `true`, client-side metrics will be collected for all API requests from
158
179
  # this client.
@@ -186,13 +207,22 @@ module Aws::SSOOIDC
186
207
  # accepted modes and the configuration defaults that are included.
187
208
  #
188
209
  # @option options [Boolean] :disable_host_prefix_injection (false)
189
- # Set to true to disable SDK automatically adding host prefix
190
- # to default service endpoint when available.
210
+ # When `true`, the SDK will not prepend the modeled host prefix to the endpoint.
211
+ #
212
+ # @option options [Boolean] :disable_request_compression (false)
213
+ # When set to 'true' the request body will not be compressed
214
+ # for supported operations.
215
+ #
216
+ # @option options [String, URI::HTTPS, URI::HTTP] :endpoint
217
+ # Normally you should not configure the `:endpoint` option
218
+ # directly. This is normally constructed from the `:region`
219
+ # option. Configuring `:endpoint` is normally reserved for
220
+ # connecting to test or custom endpoints. The endpoint should
221
+ # be a URI formatted like:
191
222
  #
192
- # @option options [String] :endpoint
193
- # The client endpoint is normally constructed from the `:region`
194
- # option. You should only configure an `:endpoint` when connecting
195
- # to test or custom endpoints. This should be a valid HTTP(S) URI.
223
+ # 'http://example.com'
224
+ # 'https://example.com'
225
+ # 'http://example.com:123'
196
226
  #
197
227
  # @option options [Integer] :endpoint_cache_max_entries (1000)
198
228
  # Used for the maximum size limit of the LRU cache storing endpoints data
@@ -209,6 +239,10 @@ module Aws::SSOOIDC
209
239
  # @option options [Boolean] :endpoint_discovery (false)
210
240
  # When set to `true`, endpoint discovery will be enabled for operations when available.
211
241
  #
242
+ # @option options [Boolean] :ignore_configured_endpoint_urls
243
+ # Setting to true disables use of endpoint URLs provided via environment
244
+ # variables and the shared configuration file.
245
+ #
212
246
  # @option options [Aws::Log::Formatter] :log_formatter (Aws::Log::Formatter.default)
213
247
  # The log formatter.
214
248
  #
@@ -226,8 +260,36 @@ module Aws::SSOOIDC
226
260
  # 4 times. Used in `standard` and `adaptive` retry modes.
227
261
  #
228
262
  # @option options [String] :profile ("default")
229
- # Used when loading credentials from the shared credentials file
230
- # at HOME/.aws/credentials. When not specified, 'default' is used.
263
+ # Used when loading credentials from the shared credentials file at `HOME/.aws/credentials`.
264
+ # When not specified, 'default' is used.
265
+ #
266
+ # @option options [String] :request_checksum_calculation ("when_supported")
267
+ # Determines when a checksum will be calculated for request payloads. Values are:
268
+ #
269
+ # * `when_supported` - (default) When set, a checksum will be
270
+ # calculated for all request payloads of operations modeled with the
271
+ # `httpChecksum` trait where `requestChecksumRequired` is `true` and/or a
272
+ # `requestAlgorithmMember` is modeled.
273
+ # * `when_required` - When set, a checksum will only be calculated for
274
+ # request payloads of operations modeled with the `httpChecksum` trait where
275
+ # `requestChecksumRequired` is `true` or where a `requestAlgorithmMember`
276
+ # is modeled and supplied.
277
+ #
278
+ # @option options [Integer] :request_min_compression_size_bytes (10240)
279
+ # The minimum size in bytes that triggers compression for request
280
+ # bodies. The value must be non-negative integer value between 0
281
+ # and 10485780 bytes inclusive.
282
+ #
283
+ # @option options [String] :response_checksum_validation ("when_supported")
284
+ # Determines when checksum validation will be performed on response payloads. Values are:
285
+ #
286
+ # * `when_supported` - (default) When set, checksum validation is performed on all
287
+ # response payloads of operations modeled with the `httpChecksum` trait where
288
+ # `responseAlgorithms` is modeled, except when no modeled checksum algorithms
289
+ # are supported.
290
+ # * `when_required` - When set, checksum validation is not performed on
291
+ # response payloads of operations unless the checksum algorithm is supported and
292
+ # the `requestValidationModeMember` member is set to `ENABLED`.
231
293
  #
232
294
  # @option options [Proc] :retry_backoff
233
295
  # A proc or lambda used for backoff. Defaults to 2**retries * retry_base_delay.
@@ -273,11 +335,25 @@ module Aws::SSOOIDC
273
335
  # throttling. This is a provisional mode that may change behavior
274
336
  # in the future.
275
337
  #
338
+ # @option options [String] :sdk_ua_app_id
339
+ # A unique and opaque application ID that is appended to the
340
+ # User-Agent header as app/sdk_ua_app_id. It should have a
341
+ # maximum length of 50. This variable is sourced from environment
342
+ # variable AWS_SDK_UA_APP_ID or the shared config profile attribute sdk_ua_app_id.
276
343
  #
277
344
  # @option options [String] :secret_access_key
278
345
  #
279
346
  # @option options [String] :session_token
280
347
  #
348
+ # @option options [Array] :sigv4a_signing_region_set
349
+ # A list of regions that should be signed with SigV4a signing. When
350
+ # not passed, a default `:sigv4a_signing_region_set` is searched for
351
+ # in the following locations:
352
+ #
353
+ # * `Aws.config[:sigv4a_signing_region_set]`
354
+ # * `ENV['AWS_SIGV4A_SIGNING_REGION_SET']`
355
+ # * `~/.aws/config`
356
+ #
281
357
  # @option options [Boolean] :stub_responses (false)
282
358
  # Causes the client to return stubbed responses. By default
283
359
  # fake responses are generated and returned. You can specify
@@ -287,6 +363,29 @@ module Aws::SSOOIDC
287
363
  # ** Please note ** When response stubbing is enabled, no HTTP
288
364
  # requests are made, and retries are disabled.
289
365
  #
366
+ # @option options [Aws::Telemetry::TelemetryProviderBase] :telemetry_provider (Aws::Telemetry::NoOpTelemetryProvider)
367
+ # Allows you to provide a telemetry provider, which is used to
368
+ # emit telemetry data. By default, uses `NoOpTelemetryProvider` which
369
+ # will not record or emit any telemetry data. The SDK supports the
370
+ # following telemetry providers:
371
+ #
372
+ # * OpenTelemetry (OTel) - To use the OTel provider, install and require the
373
+ # `opentelemetry-sdk` gem and then, pass in an instance of a
374
+ # `Aws::Telemetry::OTelProvider` for telemetry provider.
375
+ #
376
+ # @option options [Aws::TokenProvider] :token_provider
377
+ # Your Bearer token used for authentication. This can be any class that includes and implements
378
+ # `Aws::TokenProvider`, or instance of any one of the following classes:
379
+ #
380
+ # * `Aws::StaticTokenProvider` - Used for configuring static, non-refreshing
381
+ # tokens.
382
+ #
383
+ # * `Aws::SSOTokenProvider` - Used for loading tokens from AWS SSO using an
384
+ # access token generated from `aws login`.
385
+ #
386
+ # When `:token_provider` is not configured directly, the `Aws::TokenProviderChain`
387
+ # will be used to search for tokens configured for your profile in shared configuration files.
388
+ #
290
389
  # @option options [Boolean] :use_dualstack_endpoint
291
390
  # When set to `true`, dualstack enabled endpoints (with `.aws` TLD)
292
391
  # will be used if available.
@@ -300,50 +399,76 @@ module Aws::SSOOIDC
300
399
  # When `true`, request parameters are validated before
301
400
  # sending the request.
302
401
  #
303
- # @option options [URI::HTTP,String] :http_proxy A proxy to send
304
- # requests through. Formatted like 'http://proxy.com:123'.
305
- #
306
- # @option options [Float] :http_open_timeout (15) The number of
307
- # seconds to wait when opening a HTTP session before raising a
308
- # `Timeout::Error`.
309
- #
310
- # @option options [Float] :http_read_timeout (60) The default
311
- # number of seconds to wait for response data. This value can
312
- # safely be set per-request on the session.
313
- #
314
- # @option options [Float] :http_idle_timeout (5) The number of
315
- # seconds a connection is allowed to sit idle before it is
316
- # considered stale. Stale connections are closed and removed
317
- # from the pool before making a request.
318
- #
319
- # @option options [Float] :http_continue_timeout (1) The number of
320
- # seconds to wait for a 100-continue response before sending the
321
- # request body. This option has no effect unless the request has
322
- # "Expect" header set to "100-continue". Defaults to `nil` which
323
- # disables this behaviour. This value can safely be set per
324
- # request on the session.
402
+ # @option options [Aws::SSOOIDC::EndpointProvider] :endpoint_provider
403
+ # The endpoint provider used to resolve endpoints. Any object that responds to
404
+ # `#resolve_endpoint(parameters)` where `parameters` is a Struct similar to
405
+ # `Aws::SSOOIDC::EndpointParameters`.
406
+ #
407
+ # @option options [Float] :http_continue_timeout (1)
408
+ # The number of seconds to wait for a 100-continue response before sending the
409
+ # request body. This option has no effect unless the request has "Expect"
410
+ # header set to "100-continue". Defaults to `nil` which disables this
411
+ # behaviour. This value can safely be set per request on the session.
412
+ #
413
+ # @option options [Float] :http_idle_timeout (5)
414
+ # The number of seconds a connection is allowed to sit idle before it
415
+ # is considered stale. Stale connections are closed and removed from the
416
+ # pool before making a request.
417
+ #
418
+ # @option options [Float] :http_open_timeout (15)
419
+ # The default number of seconds to wait for response data.
420
+ # This value can safely be set per-request on the session.
421
+ #
422
+ # @option options [URI::HTTP,String] :http_proxy
423
+ # A proxy to send requests through. Formatted like 'http://proxy.com:123'.
424
+ #
425
+ # @option options [Float] :http_read_timeout (60)
426
+ # The default number of seconds to wait for response data.
427
+ # This value can safely be set per-request on the session.
428
+ #
429
+ # @option options [Boolean] :http_wire_trace (false)
430
+ # When `true`, HTTP debug output will be sent to the `:logger`.
431
+ #
432
+ # @option options [Proc] :on_chunk_received
433
+ # When a Proc object is provided, it will be used as callback when each chunk
434
+ # of the response body is received. It provides three arguments: the chunk,
435
+ # the number of bytes received, and the total number of
436
+ # bytes in the response (or nil if the server did not send a `content-length`).
437
+ #
438
+ # @option options [Proc] :on_chunk_sent
439
+ # When a Proc object is provided, it will be used as callback when each chunk
440
+ # of the request body is sent. It provides three arguments: the chunk,
441
+ # the number of bytes read from the body, and the total number of
442
+ # bytes in the body.
443
+ #
444
+ # @option options [Boolean] :raise_response_errors (true)
445
+ # When `true`, response errors are raised.
446
+ #
447
+ # @option options [String] :ssl_ca_bundle
448
+ # Full path to the SSL certificate authority bundle file that should be used when
449
+ # verifying peer certificates. If you do not pass `:ssl_ca_bundle` or
450
+ # `:ssl_ca_directory` the the system default will be used if available.
451
+ #
452
+ # @option options [String] :ssl_ca_directory
453
+ # Full path of the directory that contains the unbundled SSL certificate
454
+ # authority files for verifying peer certificates. If you do
455
+ # not pass `:ssl_ca_bundle` or `:ssl_ca_directory` the the system
456
+ # default will be used if available.
325
457
  #
326
- # @option options [Float] :ssl_timeout (nil) Sets the SSL timeout
327
- # in seconds.
458
+ # @option options [String] :ssl_ca_store
459
+ # Sets the X509::Store to verify peer certificate.
328
460
  #
329
- # @option options [Boolean] :http_wire_trace (false) When `true`,
330
- # HTTP debug output will be sent to the `:logger`.
461
+ # @option options [OpenSSL::X509::Certificate] :ssl_cert
462
+ # Sets a client certificate when creating http connections.
331
463
  #
332
- # @option options [Boolean] :ssl_verify_peer (true) When `true`,
333
- # SSL peer certificates are verified when establishing a
334
- # connection.
464
+ # @option options [OpenSSL::PKey] :ssl_key
465
+ # Sets a client key when creating http connections.
335
466
  #
336
- # @option options [String] :ssl_ca_bundle Full path to the SSL
337
- # certificate authority bundle file that should be used when
338
- # verifying peer certificates. If you do not pass
339
- # `:ssl_ca_bundle` or `:ssl_ca_directory` the the system default
340
- # will be used if available.
467
+ # @option options [Float] :ssl_timeout
468
+ # Sets the SSL timeout in seconds
341
469
  #
342
- # @option options [String] :ssl_ca_directory Full path of the
343
- # directory that contains the unbundled SSL certificate
344
- # authority files for verifying peer certificates. If you do
345
- # not pass `:ssl_ca_bundle` or `:ssl_ca_directory` the the
346
- # system default will be used if available.
470
+ # @option options [Boolean] :ssl_verify_peer (true)
471
+ # When `true`, SSL peer certificates are verified when establishing a connection.
347
472
  #
348
473
  def initialize(*args)
349
474
  super
@@ -351,46 +476,66 @@ module Aws::SSOOIDC
351
476
 
352
477
  # @!group API Operations
353
478
 
354
- # Creates and returns an access token for the authorized client. The
355
- # access token issued will be used to fetch short-term credentials for
356
- # the assigned roles in the AWS account.
479
+ # Creates and returns access and refresh tokens for clients that are
480
+ # authenticated using client secrets. The access token can be used to
481
+ # fetch short-lived credentials for the assigned AWS accounts or to
482
+ # access application APIs using `bearer` authentication.
357
483
  #
358
484
  # @option params [required, String] :client_id
359
- # The unique identifier string for each client. This value should come
360
- # from the persisted result of the RegisterClient API.
485
+ # The unique identifier string for the client or application. This value
486
+ # comes from the result of the RegisterClient API.
361
487
  #
362
488
  # @option params [required, String] :client_secret
363
489
  # A secret string generated for the client. This value should come from
364
490
  # the persisted result of the RegisterClient API.
365
491
  #
366
492
  # @option params [required, String] :grant_type
367
- # Supports grant types for authorization code, refresh token, and device
368
- # code request.
493
+ # Supports the following OAuth grant types: Authorization Code, Device
494
+ # Code, and Refresh Token. Specify one of the following values,
495
+ # depending on the grant type that you want:
496
+ #
497
+ # * Authorization Code - `authorization_code`
498
+ #
499
+ # * Device Code - `urn:ietf:params:oauth:grant-type:device_code`
500
+ #
501
+ # * Refresh Token - `refresh_token`
369
502
  #
370
503
  # @option params [String] :device_code
371
- # Used only when calling this API for the device code grant type. This
372
- # short-term code is used to identify this authentication attempt. This
373
- # should come from an in-memory reference to the result of the
374
- # StartDeviceAuthorization API.
504
+ # Used only when calling this API for the Device Code grant type. This
505
+ # short-lived code is used to identify this authorization request. This
506
+ # comes from the result of the StartDeviceAuthorization API.
375
507
  #
376
508
  # @option params [String] :code
377
- # The authorization code received from the authorization service. This
378
- # parameter is required to perform an authorization grant request to get
379
- # access to a token.
509
+ # Used only when calling this API for the Authorization Code grant type.
510
+ # The short-lived code is used to identify this authorization request.
380
511
  #
381
512
  # @option params [String] :refresh_token
382
- # The token used to obtain an access token in the event that the access
383
- # token is invalid or expired. This token is not issued by the service.
513
+ # Used only when calling this API for the Refresh Token grant type. This
514
+ # token is used to refresh short-lived tokens, such as the access token,
515
+ # that might expire.
516
+ #
517
+ # For more information about the features and limitations of the current
518
+ # IAM Identity Center OIDC implementation, see *Considerations for Using
519
+ # this Guide* in the [IAM Identity Center OIDC API Reference][1].
520
+ #
521
+ #
522
+ #
523
+ # [1]: https://docs.aws.amazon.com/singlesignon/latest/OIDCAPIReference/Welcome.html
384
524
  #
385
525
  # @option params [Array<String>] :scope
386
- # The list of scopes that is defined by the client. Upon authorization,
387
- # this list is used to restrict permissions when granting an access
388
- # token.
526
+ # The list of scopes for which authorization is requested. This
527
+ # parameter has no effect; the access token will always include all
528
+ # scopes configured during client registration.
389
529
  #
390
530
  # @option params [String] :redirect_uri
391
- # The location of the application that will receive the authorization
392
- # code. Users authorize the service to send the request to this
393
- # location.
531
+ # Used only when calling this API for the Authorization Code grant type.
532
+ # This value specifies the location of the client or application that
533
+ # has registered to receive the authorization code.
534
+ #
535
+ # @option params [String] :code_verifier
536
+ # Used only when calling this API for the Authorization Code grant type.
537
+ # This value is generated by the client and presented to validate the
538
+ # original code challenge value the client passed at authorization time.
394
539
  #
395
540
  # @return [Types::CreateTokenResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
396
541
  #
@@ -400,6 +545,44 @@ module Aws::SSOOIDC
400
545
  # * {Types::CreateTokenResponse#refresh_token #refresh_token} => String
401
546
  # * {Types::CreateTokenResponse#id_token #id_token} => String
402
547
  #
548
+ #
549
+ # @example Example: Call OAuth/OIDC /token endpoint for Device Code grant with Secret authentication
550
+ #
551
+ # resp = client.create_token({
552
+ # client_id: "_yzkThXVzLWVhc3QtMQEXAMPLECLIENTID",
553
+ # client_secret: "VERYLONGSECRETeyJraWQiOiJrZXktMTU2NDAyODA5OSIsImFsZyI6IkhTMzg0In0",
554
+ # device_code: "yJraWQiOiJrZXktMTU2Njk2ODA4OCIsImFsZyI6IkhTMzIn0EXAMPLEDEVICECODE",
555
+ # grant_type: "urn:ietf:params:oauth:grant-type:device-code",
556
+ # })
557
+ #
558
+ # resp.to_h outputs the following:
559
+ # {
560
+ # access_token: "aoal-YigITUDiNX1xZwOMXM5MxOWDL0E0jg9P6_C_jKQPxS_SKCP6f0kh1Up4g7TtvQqkMnD-GJiU_S1gvug6SrggAkc0:MGYCMQD3IatVjV7jAJU91kK3PkS/SfA2wtgWzOgZWDOR7sDGN9t0phCZz5It/aes/3C1Zj0CMQCKWOgRaiz6AIhza3DSXQNMLjRKXC8F8ceCsHlgYLMZ7hZidEXAMPLEACCESSTOKEN",
561
+ # expires_in: 1579729529,
562
+ # refresh_token: "aorvJYubGpU6i91YnH7Mfo-AT2fIVa1zCfA_Rvq9yjVKIP3onFmmykuQ7E93y2I-9Nyj-A_sVvMufaLNL0bqnDRtgAkc0:MGUCMFrRsktMRVlWaOR70XGMFGLL0SlcCw4DiYveIiOVx1uK9BbD0gvAddsW3UTLozXKMgIxAJ3qxUvjpnlLIOaaKOoa/FuNgqJVvr9GMwDtnAtlh9iZzAkEXAMPLEREFRESHTOKEN",
563
+ # token_type: "Bearer",
564
+ # }
565
+ #
566
+ # @example Example: Call OAuth/OIDC /token endpoint for Refresh Token grant with Secret authentication
567
+ #
568
+ # resp = client.create_token({
569
+ # client_id: "_yzkThXVzLWVhc3QtMQEXAMPLECLIENTID",
570
+ # client_secret: "VERYLONGSECRETeyJraWQiOiJrZXktMTU2NDAyODA5OSIsImFsZyI6IkhTMzg0In0",
571
+ # grant_type: "refresh_token",
572
+ # refresh_token: "aorvJYubGpU6i91YnH7Mfo-AT2fIVa1zCfA_Rvq9yjVKIP3onFmmykuQ7E93y2I-9Nyj-A_sVvMufaLNL0bqnDRtgAkc0:MGUCMFrRsktMRVlWaOR70XGMFGLL0SlcCw4DiYveIiOVx1uK9BbD0gvAddsW3UTLozXKMgIxAJ3qxUvjpnlLIOaaKOoa/FuNgqJVvr9GMwDtnAtlh9iZzAkEXAMPLEREFRESHTOKEN",
573
+ # scope: [
574
+ # "codewhisperer:completions",
575
+ # ],
576
+ # })
577
+ #
578
+ # resp.to_h outputs the following:
579
+ # {
580
+ # access_token: "aoal-YigITUDiNX1xZwOMXM5MxOWDL0E0jg9P6_C_jKQPxS_SKCP6f0kh1Up4g7TtvQqkMnD-GJiU_S1gvug6SrggAkc0:MGYCMQD3IatVjV7jAJU91kK3PkS/SfA2wtgWzOgZWDOR7sDGN9t0phCZz5It/aes/3C1Zj0CMQCKWOgRaiz6AIhza3DSXQNMLjRKXC8F8ceCsHlgYLMZ7hZidEXAMPLEACCESSTOKEN",
581
+ # expires_in: 1579729529,
582
+ # refresh_token: "aorvJYubGpU6i91YnH7Mfo-AT2fIVa1zCfA_Rvq9yjVKIP3onFmmykuQ7E93y2I-9Nyj-A_sVvMufaLNL0bqnDRtgAkc0:MGUCMFrRsktMRVlWaOR70XGMFGLL0SlcCw4DiYveIiOVx1uK9BbD0gvAddsW3UTLozXKMgIxAJ3qxUvjpnlLIOaaKOoa/FuNgqJVvr9GMwDtnAtlh9iZzAkEXAMPLEREFRESHTOKEN",
583
+ # token_type: "Bearer",
584
+ # }
585
+ #
403
586
  # @example Request syntax with placeholder values
404
587
  #
405
588
  # resp = client.create_token({
@@ -411,6 +594,7 @@ module Aws::SSOOIDC
411
594
  # refresh_token: "RefreshToken",
412
595
  # scope: ["Scope"],
413
596
  # redirect_uri: "URI",
597
+ # code_verifier: "CodeVerifier",
414
598
  # })
415
599
  #
416
600
  # @example Response structure
@@ -430,9 +614,270 @@ module Aws::SSOOIDC
430
614
  req.send_request(options)
431
615
  end
432
616
 
433
- # Registers a client with AWS SSO. This allows clients to initiate
434
- # device authorization. The output should be persisted for reuse through
435
- # many authentication requests.
617
+ # Creates and returns access and refresh tokens for authorized client
618
+ # applications that are authenticated using any IAM entity, such as a
619
+ # service role or user. These tokens might contain defined scopes that
620
+ # specify permissions such as `read:profile` or `write:data`. Through
621
+ # downscoping, you can use the scopes parameter to request tokens with
622
+ # reduced permissions compared to the original client application's
623
+ # permissions or, if applicable, the refresh token's scopes. The access
624
+ # token can be used to fetch short-lived credentials for the assigned
625
+ # Amazon Web Services accounts or to access application APIs using
626
+ # `bearer` authentication.
627
+ #
628
+ # <note markdown="1"> This API is used with Signature Version 4. For more information, see
629
+ # [Amazon Web Services Signature Version 4 for API Requests][1].
630
+ #
631
+ # </note>
632
+ #
633
+ #
634
+ #
635
+ # [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_sigv.html
636
+ #
637
+ # @option params [required, String] :client_id
638
+ # The unique identifier string for the client or application. This value
639
+ # is an application ARN that has OAuth grants configured.
640
+ #
641
+ # @option params [required, String] :grant_type
642
+ # Supports the following OAuth grant types: Authorization Code, Refresh
643
+ # Token, JWT Bearer, and Token Exchange. Specify one of the following
644
+ # values, depending on the grant type that you want:
645
+ #
646
+ # * Authorization Code - `authorization_code`
647
+ #
648
+ # * Refresh Token - `refresh_token`
649
+ #
650
+ # * JWT Bearer - `urn:ietf:params:oauth:grant-type:jwt-bearer`
651
+ #
652
+ # * Token Exchange - `urn:ietf:params:oauth:grant-type:token-exchange`
653
+ #
654
+ # @option params [String] :code
655
+ # Used only when calling this API for the Authorization Code grant type.
656
+ # This short-lived code is used to identify this authorization request.
657
+ # The code is obtained through a redirect from IAM Identity Center to a
658
+ # redirect URI persisted in the Authorization Code GrantOptions for the
659
+ # application.
660
+ #
661
+ # @option params [String] :refresh_token
662
+ # Used only when calling this API for the Refresh Token grant type. This
663
+ # token is used to refresh short-lived tokens, such as the access token,
664
+ # that might expire.
665
+ #
666
+ # For more information about the features and limitations of the current
667
+ # IAM Identity Center OIDC implementation, see *Considerations for Using
668
+ # this Guide* in the [IAM Identity Center OIDC API Reference][1].
669
+ #
670
+ #
671
+ #
672
+ # [1]: https://docs.aws.amazon.com/singlesignon/latest/OIDCAPIReference/Welcome.html
673
+ #
674
+ # @option params [String] :assertion
675
+ # Used only when calling this API for the JWT Bearer grant type. This
676
+ # value specifies the JSON Web Token (JWT) issued by a trusted token
677
+ # issuer. To authorize a trusted token issuer, configure the JWT Bearer
678
+ # GrantOptions for the application.
679
+ #
680
+ # @option params [Array<String>] :scope
681
+ # The list of scopes for which authorization is requested. The access
682
+ # token that is issued is limited to the scopes that are granted. If the
683
+ # value is not specified, IAM Identity Center authorizes all scopes
684
+ # configured for the application, including the following default
685
+ # scopes: `openid`, `aws`, `sts:identity_context`.
686
+ #
687
+ # @option params [String] :redirect_uri
688
+ # Used only when calling this API for the Authorization Code grant type.
689
+ # This value specifies the location of the client or application that
690
+ # has registered to receive the authorization code.
691
+ #
692
+ # @option params [String] :subject_token
693
+ # Used only when calling this API for the Token Exchange grant type.
694
+ # This value specifies the subject of the exchange. The value of the
695
+ # subject token must be an access token issued by IAM Identity Center to
696
+ # a different client or application. The access token must have
697
+ # authorized scopes that indicate the requested application as a target
698
+ # audience.
699
+ #
700
+ # @option params [String] :subject_token_type
701
+ # Used only when calling this API for the Token Exchange grant type.
702
+ # This value specifies the type of token that is passed as the subject
703
+ # of the exchange. The following value is supported:
704
+ #
705
+ # * Access Token - `urn:ietf:params:oauth:token-type:access_token`
706
+ #
707
+ # @option params [String] :requested_token_type
708
+ # Used only when calling this API for the Token Exchange grant type.
709
+ # This value specifies the type of token that the requester can receive.
710
+ # The following values are supported:
711
+ #
712
+ # * Access Token - `urn:ietf:params:oauth:token-type:access_token`
713
+ #
714
+ # * Refresh Token - `urn:ietf:params:oauth:token-type:refresh_token`
715
+ #
716
+ # @option params [String] :code_verifier
717
+ # Used only when calling this API for the Authorization Code grant type.
718
+ # This value is generated by the client and presented to validate the
719
+ # original code challenge value the client passed at authorization time.
720
+ #
721
+ # @return [Types::CreateTokenWithIAMResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
722
+ #
723
+ # * {Types::CreateTokenWithIAMResponse#access_token #access_token} => String
724
+ # * {Types::CreateTokenWithIAMResponse#token_type #token_type} => String
725
+ # * {Types::CreateTokenWithIAMResponse#expires_in #expires_in} => Integer
726
+ # * {Types::CreateTokenWithIAMResponse#refresh_token #refresh_token} => String
727
+ # * {Types::CreateTokenWithIAMResponse#id_token #id_token} => String
728
+ # * {Types::CreateTokenWithIAMResponse#issued_token_type #issued_token_type} => String
729
+ # * {Types::CreateTokenWithIAMResponse#scope #scope} => Array&lt;String&gt;
730
+ # * {Types::CreateTokenWithIAMResponse#aws_additional_details #aws_additional_details} => Types::AwsAdditionalDetails
731
+ #
732
+ #
733
+ # @example Example: Call OAuth/OIDC /token endpoint for Authorization Code grant with IAM authentication
734
+ #
735
+ # resp = client.create_token_with_iam({
736
+ # client_id: "arn:aws:sso::123456789012:application/ssoins-111111111111/apl-222222222222",
737
+ # code: "yJraWQiOiJrZXktMTU2Njk2ODA4OCIsImFsZyI6IkhTMzg0In0EXAMPLEAUTHCODE",
738
+ # grant_type: "authorization_code",
739
+ # redirect_uri: "https://mywebapp.example/redirect",
740
+ # scope: [
741
+ # "openid",
742
+ # "aws",
743
+ # "sts:identity_context",
744
+ # ],
745
+ # })
746
+ #
747
+ # resp.to_h outputs the following:
748
+ # {
749
+ # access_token: "aoal-YigITUDiNX1xZwOMXM5MxOWDL0E0jg9P6_C_jKQPxS_SKCP6f0kh1Up4g7TtvQqkMnD-GJiU_S1gvug6SrggAkc0:MGYCMQD3IatVjV7jAJU91kK3PkS/SfA2wtgWzOgZWDOR7sDGN9t0phCZz5It/aes/3C1Zj0CMQCKWOgRaiz6AIhza3DSXQNMLjRKXC8F8ceCsHlgYLMZ7hZidEXAMPLEACCESSTOKEN",
750
+ # aws_additional_details: {
751
+ # identity_context: "EXAMPLEIDENTITYCONTEXT",
752
+ # },
753
+ # expires_in: 1579729529,
754
+ # id_token: "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhd3M6aWRlbnRpdHlfc3RvcmVfaWQiOiJkLTMzMzMzMzMzMzMiLCJzdWIiOiI3MzA0NDhmMi1lMGExLTcwYTctYzk1NC0wMDAwMDAwMDAwMDAiLCJhd3M6aW5zdGFuY2VfYWNjb3VudCI6IjExMTExMTExMTExMSIsInN0czppZGVudGl0eV9jb250ZXh0IjoiRVhBTVBMRUlERU5USVRZQ09OVEVYVCIsInN0czphdWRpdF9jb250ZXh0IjoiRVhBTVBMRUFVRElUQ09OVEVYVCIsImlzcyI6Imh0dHBzOi8vaWRlbnRpdHljZW50ZXIuYW1hem9uYXdzLmNvbS9zc29pbnMtMTExMTExMTExMTExIiwiYXdzOmlkZW50aXR5X3N0b3JlX2FybiI6ImFybjphd3M6aWRlbnRpdHlzdG9yZTo6MTExMTExMTExMTExOmlkZW50aXR5c3RvcmUvZC0zMzMzMzMzMzMzIiwiYXVkIjoiYXJuOmF3czpzc286OjEyMzQ1Njc4OTAxMjphcHBsaWNhdGlvbi9zc29pbnMtMTExMTExMTExMTExL2FwbC0yMjIyMjIyMjIyMjIiLCJhd3M6aW5zdGFuY2VfYXJuIjoiYXJuOmF3czpzc286OjppbnN0YW5jZS9zc29pbnMtMTExMTExMTExMTExIiwiYXdzOmNyZWRlbnRpYWxfaWQiOiJfWlIyTjZhVkJqMjdGUEtheWpfcEtwVjc3QVBERl80MXB4ZXRfWWpJdUpONlVJR2RBdkpFWEFNUExFQ1JFRElEIiwiYXV0aF90aW1lIjoiMjAyMC0wMS0yMlQxMjo0NToyOVoiLCJleHAiOjE1Nzk3Mjk1MjksImlhdCI6MTU3OTcyNTkyOX0.Xyah6qbk78qThzJ41iFU2yfGuRqqtKXHrJYwQ8L9Ip0",
755
+ # issued_token_type: "urn:ietf:params:oauth:token-type:refresh_token",
756
+ # refresh_token: "aorvJYubGpU6i91YnH7Mfo-AT2fIVa1zCfA_Rvq9yjVKIP3onFmmykuQ7E93y2I-9Nyj-A_sVvMufaLNL0bqnDRtgAkc0:MGUCMFrRsktMRVlWaOR70XGMFGLL0SlcCw4DiYveIiOVx1uK9BbD0gvAddsW3UTLozXKMgIxAJ3qxUvjpnlLIOaaKOoa/FuNgqJVvr9GMwDtnAtlh9iZzAkEXAMPLEREFRESHTOKEN",
757
+ # scope: [
758
+ # "openid",
759
+ # "aws",
760
+ # "sts:identity_context",
761
+ # ],
762
+ # token_type: "Bearer",
763
+ # }
764
+ #
765
+ # @example Example: Call OAuth/OIDC /token endpoint for Refresh Token grant with IAM authentication
766
+ #
767
+ # resp = client.create_token_with_iam({
768
+ # client_id: "arn:aws:sso::123456789012:application/ssoins-111111111111/apl-222222222222",
769
+ # grant_type: "refresh_token",
770
+ # refresh_token: "aorvJYubGpU6i91YnH7Mfo-AT2fIVa1zCfA_Rvq9yjVKIP3onFmmykuQ7E93y2I-9Nyj-A_sVvMufaLNL0bqnDRtgAkc0:MGUCMFrRsktMRVlWaOR70XGMFGLL0SlcCw4DiYveIiOVx1uK9BbD0gvAddsW3UTLozXKMgIxAJ3qxUvjpnlLIOaaKOoa/FuNgqJVvr9GMwDtnAtlh9iZzAkEXAMPLEREFRESHTOKEN",
771
+ # })
772
+ #
773
+ # resp.to_h outputs the following:
774
+ # {
775
+ # access_token: "aoal-YigITUDiNX1xZwOMXM5MxOWDL0E0jg9P6_C_jKQPxS_SKCP6f0kh1Up4g7TtvQqkMnD-GJiU_S1gvug6SrggAkc0:MGYCMQD3IatVjV7jAJU91kK3PkS/SfA2wtgWzOgZWDOR7sDGN9t0phCZz5It/aes/3C1Zj0CMQCKWOgRaiz6AIhza3DSXQNMLjRKXC8F8ceCsHlgYLMZ7hZidEXAMPLEACCESSTOKEN",
776
+ # expires_in: 1579729529,
777
+ # issued_token_type: "urn:ietf:params:oauth:token-type:refresh_token",
778
+ # refresh_token: "aorvJYubGpU6i91YnH7Mfo-AT2fIVa1zCfA_Rvq9yjVKIP3onFmmykuQ7E93y2I-9Nyj-A_sVvMufaLNL0bqnDRtgAkc0:MGUCMFrRsktMRVlWaOR70XGMFGLL0SlcCw4DiYveIiOVx1uK9BbD0gvAddsW3UTLozXKMgIxAJ3qxUvjpnlLIOaaKOoa/FuNgqJVvr9GMwDtnAtlh9iZzAkEXAMPLEREFRESHTOKEN",
779
+ # scope: [
780
+ # "openid",
781
+ # "aws",
782
+ # "sts:identity_context",
783
+ # ],
784
+ # token_type: "Bearer",
785
+ # }
786
+ #
787
+ # @example Example: Call OAuth/OIDC /token endpoint for JWT Bearer grant with IAM authentication
788
+ #
789
+ # resp = client.create_token_with_iam({
790
+ # assertion: "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImtpZCI6IjFMVE16YWtpaGlSbGFfOHoyQkVKVlhlV01xbyJ9.eyJ2ZXIiOiIyLjAiLCJpc3MiOiJodHRwczovL2xvZ2luLm1pY3Jvc29mdG9ubGluZS5jb20vOTEyMjA0MGQtNmM2Ny00YzViLWIxMTItMzZhMzA0YjY2ZGFkL3YyLjAiLCJzdWIiOiJBQUFBQUFBQUFBQUFBQUFBQUFBQUFJa3pxRlZyU2FTYUZIeTc4MmJidGFRIiwiYXVkIjoiNmNiMDQwMTgtYTNmNS00NmE3LWI5OTUtOTQwYzc4ZjVhZWYzIiwiZXhwIjoxNTM2MzYxNDExLCJpYXQiOjE1MzYyNzQ3MTEsIm5iZiI6MTUzNjI3NDcxMSwibmFtZSI6IkFiZSBMaW5jb2xuIiwicHJlZmVycmVkX3VzZXJuYW1lIjoiQWJlTGlAbWljcm9zb2Z0LmNvbSIsIm9pZCI6IjAwMDAwMDAwLTAwMDAtMDAwMC02NmYzLTMzMzJlY2E3ZWE4MSIsInRpZCI6IjkxMjIwNDBkLTZjNjctNGM1Yi1iMTEyLTM2YTMwNGI2NmRhZCIsIm5vbmNlIjoiMTIzNTIzIiwiYWlvIjoiRGYyVVZYTDFpeCFsTUNXTVNPSkJjRmF0emNHZnZGR2hqS3Y4cTVnMHg3MzJkUjVNQjVCaXN2R1FPN1lXQnlqZDhpUURMcSFlR2JJRGFreXA1bW5PcmNkcUhlWVNubHRlcFFtUnA2QUlaOGpZIn0.1AFWW-Ck5nROwSlltm7GzZvDwUkqvhSQpm55TQsmVo9Y59cLhRXpvB8n-55HCr9Z6G_31_UbeUkoz612I2j_Sm9FFShSDDjoaLQr54CreGIJvjtmS3EkK9a7SJBbcpL1MpUtlfygow39tFjY7EVNW9plWUvRrTgVk7lYLprvfzw-CIqw3gHC-T7IK_m_xkr08INERBtaecwhTeN4chPC4W3jdmw_lIxzC48YoQ0dB1L9-ImX98Egypfrlbm0IBL5spFzL6JDZIRRJOu8vecJvj1mq-IUhGt0MacxX8jdxYLP-KUu2d9MbNKpCKJuZ7p8gwTL5B7NlUdh_dmSviPWrw",
791
+ # client_id: "arn:aws:sso::123456789012:application/ssoins-111111111111/apl-222222222222",
792
+ # grant_type: "urn:ietf:params:oauth:grant-type:jwt-bearer",
793
+ # })
794
+ #
795
+ # resp.to_h outputs the following:
796
+ # {
797
+ # access_token: "aoal-YigITUDiNX1xZwOMXM5MxOWDL0E0jg9P6_C_jKQPxS_SKCP6f0kh1Up4g7TtvQqkMnD-GJiU_S1gvug6SrggAkc0:MGYCMQD3IatVjV7jAJU91kK3PkS/SfA2wtgWzOgZWDOR7sDGN9t0phCZz5It/aes/3C1Zj0CMQCKWOgRaiz6AIhza3DSXQNMLjRKXC8F8ceCsHlgYLMZ7hZidEXAMPLEACCESSTOKEN",
798
+ # aws_additional_details: {
799
+ # identity_context: "EXAMPLEIDENTITYCONTEXT",
800
+ # },
801
+ # expires_in: 1579729529,
802
+ # id_token: "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhd3M6aWRlbnRpdHlfc3RvcmVfaWQiOiJkLTMzMzMzMzMzMzMiLCJzdWIiOiI3MzA0NDhmMi1lMGExLTcwYTctYzk1NC0wMDAwMDAwMDAwMDAiLCJhd3M6aW5zdGFuY2VfYWNjb3VudCI6IjExMTExMTExMTExMSIsInN0czppZGVudGl0eV9jb250ZXh0IjoiRVhBTVBMRUlERU5USVRZQ09OVEVYVCIsInN0czphdWRpdF9jb250ZXh0IjoiRVhBTVBMRUFVRElUQ09OVEVYVCIsImlzcyI6Imh0dHBzOi8vaWRlbnRpdHljZW50ZXIuYW1hem9uYXdzLmNvbS9zc29pbnMtMTExMTExMTExMTExIiwiYXdzOmlkZW50aXR5X3N0b3JlX2FybiI6ImFybjphd3M6aWRlbnRpdHlzdG9yZTo6MTExMTExMTExMTExOmlkZW50aXR5c3RvcmUvZC0zMzMzMzMzMzMzIiwiYXVkIjoiYXJuOmF3czpzc286OjEyMzQ1Njc4OTAxMjphcHBsaWNhdGlvbi9zc29pbnMtMTExMTExMTExMTExL2FwbC0yMjIyMjIyMjIyMjIiLCJhd3M6aW5zdGFuY2VfYXJuIjoiYXJuOmF3czpzc286OjppbnN0YW5jZS9zc29pbnMtMTExMTExMTExMTExIiwiYXdzOmNyZWRlbnRpYWxfaWQiOiJfWlIyTjZhVkJqMjdGUEtheWpfcEtwVjc3QVBERl80MXB4ZXRfWWpJdUpONlVJR2RBdkpFWEFNUExFQ1JFRElEIiwiYXV0aF90aW1lIjoiMjAyMC0wMS0yMlQxMjo0NToyOVoiLCJleHAiOjE1Nzk3Mjk1MjksImlhdCI6MTU3OTcyNTkyOX0.Xyah6qbk78qThzJ41iFU2yfGuRqqtKXHrJYwQ8L9Ip0",
803
+ # issued_token_type: "urn:ietf:params:oauth:token-type:refresh_token",
804
+ # refresh_token: "aorvJYubGpU6i91YnH7Mfo-AT2fIVa1zCfA_Rvq9yjVKIP3onFmmykuQ7E93y2I-9Nyj-A_sVvMufaLNL0bqnDRtgAkc0:MGUCMFrRsktMRVlWaOR70XGMFGLL0SlcCw4DiYveIiOVx1uK9BbD0gvAddsW3UTLozXKMgIxAJ3qxUvjpnlLIOaaKOoa/FuNgqJVvr9GMwDtnAtlh9iZzAkEXAMPLEREFRESHTOKEN",
805
+ # scope: [
806
+ # "openid",
807
+ # "aws",
808
+ # "sts:identity_context",
809
+ # ],
810
+ # token_type: "Bearer",
811
+ # }
812
+ #
813
+ # @example Example: Call OAuth/OIDC /token endpoint for Token Exchange grant with IAM authentication
814
+ #
815
+ # resp = client.create_token_with_iam({
816
+ # client_id: "arn:aws:sso::123456789012:application/ssoins-111111111111/apl-222222222222",
817
+ # grant_type: "urn:ietf:params:oauth:grant-type:token-exchange",
818
+ # requested_token_type: "urn:ietf:params:oauth:token-type:access_token",
819
+ # subject_token: "aoak-Hig8TUDPNX1xZwOMXM5MxOWDL0E0jg9P6_C_jKQPxS_SKCP6f0kh1Up4g7TtvQqkMnD-GJiU_S1gvug6SrggAkc0:MGYCMQD3IatVjV7jAJU91kK3PkS/SfA2wtgWzOgZWDOR7sDGN9t0phCZz5It/aes/3C1Zj0CMQCKWOgRaiz6AIhza3DSXQNMLjRKXC8F8ceCsHlgYLMZ7hZDIFFERENTACCESSTOKEN",
820
+ # subject_token_type: "urn:ietf:params:oauth:token-type:access_token",
821
+ # })
822
+ #
823
+ # resp.to_h outputs the following:
824
+ # {
825
+ # access_token: "aoal-YigITUDiNX1xZwOMXM5MxOWDL0E0jg9P6_C_jKQPxS_SKCP6f0kh1Up4g7TtvQqkMnD-GJiU_S1gvug6SrggAkc0:MGYCMQD3IatVjV7jAJU91kK3PkS/SfA2wtgWzOgZWDOR7sDGN9t0phCZz5It/aes/3C1Zj0CMQCKWOgRaiz6AIhza3DSXQNMLjRKXC8F8ceCsHlgYLMZ7hZidEXAMPLEACCESSTOKEN",
826
+ # aws_additional_details: {
827
+ # identity_context: "EXAMPLEIDENTITYCONTEXT",
828
+ # },
829
+ # expires_in: 1579729529,
830
+ # id_token: "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhd3M6aWRlbnRpdHlfc3RvcmVfaWQiOiJkLTMzMzMzMzMzMzMiLCJzdWIiOiI3MzA0NDhmMi1lMGExLTcwYTctYzk1NC0wMDAwMDAwMDAwMDAiLCJhd3M6aW5zdGFuY2VfYWNjb3VudCI6IjExMTExMTExMTExMSIsInN0czppZGVudGl0eV9jb250ZXh0IjoiRVhBTVBMRUlERU5USVRZQ09OVEVYVCIsImlzcyI6Imh0dHBzOi8vaWRlbnRpdHljZW50ZXIuYW1hem9uYXdzLmNvbS9zc29pbnMtMTExMTExMTExMTExIiwiYXdzOmlkZW50aXR5X3N0b3JlX2FybiI6ImFybjphd3M6aWRlbnRpdHlzdG9yZTo6MTExMTExMTExMTExOmlkZW50aXR5c3RvcmUvZC0zMzMzMzMzMzMzIiwiYXVkIjoiYXJuOmF3czpzc286OjEyMzQ1Njc4OTAxMjphcHBsaWNhdGlvbi9zc29pbnMtMTExMTExMTExMTExL2FwbC0yMjIyMjIyMjIyMjIiLCJhd3M6aW5zdGFuY2VfYXJuIjoiYXJuOmF3czpzc286OjppbnN0YW5jZS9zc29pbnMtMTExMTExMTExMTExIiwiYXdzOmNyZWRlbnRpYWxfaWQiOiJfWlIyTjZhVkJqMjdGUEtheWpfcEtwVjc3QVBERl80MXB4ZXRfWWpJdUpONlVJR2RBdkpFWEFNUExFQ1JFRElEIiwiYXV0aF90aW1lIjoiMjAyMC0wMS0yMlQxMjo0NToyOVoiLCJleHAiOjE1Nzk3Mjk1MjksImlhdCI6MTU3OTcyNTkyOX0.5SYiW1kMsuUr7nna-l5tlakM0GNbMHvIM2_n0QD23jM",
831
+ # issued_token_type: "urn:ietf:params:oauth:token-type:access_token",
832
+ # scope: [
833
+ # "openid",
834
+ # "aws",
835
+ # "sts:identity_context",
836
+ # ],
837
+ # token_type: "Bearer",
838
+ # }
839
+ #
840
+ # @example Request syntax with placeholder values
841
+ #
842
+ # resp = client.create_token_with_iam({
843
+ # client_id: "ClientId", # required
844
+ # grant_type: "GrantType", # required
845
+ # code: "AuthCode",
846
+ # refresh_token: "RefreshToken",
847
+ # assertion: "Assertion",
848
+ # scope: ["Scope"],
849
+ # redirect_uri: "URI",
850
+ # subject_token: "SubjectToken",
851
+ # subject_token_type: "TokenTypeURI",
852
+ # requested_token_type: "TokenTypeURI",
853
+ # code_verifier: "CodeVerifier",
854
+ # })
855
+ #
856
+ # @example Response structure
857
+ #
858
+ # resp.access_token #=> String
859
+ # resp.token_type #=> String
860
+ # resp.expires_in #=> Integer
861
+ # resp.refresh_token #=> String
862
+ # resp.id_token #=> String
863
+ # resp.issued_token_type #=> String
864
+ # resp.scope #=> Array
865
+ # resp.scope[0] #=> String
866
+ # resp.aws_additional_details.identity_context #=> String
867
+ #
868
+ # @see http://docs.aws.amazon.com/goto/WebAPI/sso-oidc-2019-06-10/CreateTokenWithIAM AWS API Documentation
869
+ #
870
+ # @overload create_token_with_iam(params = {})
871
+ # @param [Hash] params ({})
872
+ def create_token_with_iam(params = {}, options = {})
873
+ req = build_request(:create_token_with_iam, params)
874
+ req.send_request(options)
875
+ end
876
+
877
+ # Registers a public client with IAM Identity Center. This allows
878
+ # clients to perform authorization using the authorization
879
+ # code grant with Proof Key for Code Exchange (PKCE) or the device
880
+ # code grant.
436
881
  #
437
882
  # @option params [required, String] :client_name
438
883
  # The friendly name of the client.
@@ -446,6 +891,35 @@ module Aws::SSOOIDC
446
891
  # this list is used to restrict permissions when granting an access
447
892
  # token.
448
893
  #
894
+ # @option params [Array<String>] :redirect_uris
895
+ # The list of redirect URI that are defined by the client. At completion
896
+ # of authorization, this list is used to restrict what locations the
897
+ # user agent can be redirected back to.
898
+ #
899
+ # @option params [Array<String>] :grant_types
900
+ # The list of OAuth 2.0 grant types that are defined by the client. This
901
+ # list is used to restrict the token granting flows available to the
902
+ # client. Supports the following OAuth 2.0 grant types: Authorization
903
+ # Code, Device Code, and Refresh Token.
904
+ #
905
+ # * Authorization Code - `authorization_code`
906
+ #
907
+ # * Device Code - `urn:ietf:params:oauth:grant-type:device_code`
908
+ #
909
+ # * Refresh Token - `refresh_token`
910
+ #
911
+ # @option params [String] :issuer_url
912
+ # The IAM Identity Center Issuer URL associated with an instance of IAM
913
+ # Identity Center. This value is needed for user access to resources
914
+ # through the client.
915
+ #
916
+ # @option params [String] :entitled_application_arn
917
+ # This IAM Identity Center application ARN is used to define
918
+ # administrator-managed configuration for public client access to
919
+ # resources. At authorization, the scopes, grants, and redirect URI
920
+ # available to this client will be restricted by this application
921
+ # resource.
922
+ #
449
923
  # @return [Types::RegisterClientResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
450
924
  #
451
925
  # * {Types::RegisterClientResponse#client_id #client_id} => String
@@ -455,12 +929,45 @@ module Aws::SSOOIDC
455
929
  # * {Types::RegisterClientResponse#authorization_endpoint #authorization_endpoint} => String
456
930
  # * {Types::RegisterClientResponse#token_endpoint #token_endpoint} => String
457
931
  #
932
+ #
933
+ # @example Example: Call OAuth/OIDC /register-client endpoint
934
+ #
935
+ # resp = client.register_client({
936
+ # client_name: "My IDE Plugin",
937
+ # client_type: "public",
938
+ # entitled_application_arn: "arn:aws:sso::ACCOUNTID:application/ssoins-1111111111111111/apl-1111111111111111",
939
+ # grant_types: [
940
+ # "authorization_code",
941
+ # "refresh_token",
942
+ # ],
943
+ # issuer_url: "https://identitycenter.amazonaws.com/ssoins-1111111111111111",
944
+ # redirect_uris: [
945
+ # "127.0.0.1:PORT/oauth/callback",
946
+ # ],
947
+ # scopes: [
948
+ # "sso:account:access",
949
+ # "codewhisperer:completions",
950
+ # ],
951
+ # })
952
+ #
953
+ # resp.to_h outputs the following:
954
+ # {
955
+ # client_id: "_yzkThXVzLWVhc3QtMQEXAMPLECLIENTID",
956
+ # client_id_issued_at: 1579725929,
957
+ # client_secret: "VERYLONGSECRETeyJraWQiOiJrZXktMTU2NDAyODA5OSIsImFsZyI6IkhTMzg0In0",
958
+ # client_secret_expires_at: 1587584729,
959
+ # }
960
+ #
458
961
  # @example Request syntax with placeholder values
459
962
  #
460
963
  # resp = client.register_client({
461
964
  # client_name: "ClientName", # required
462
965
  # client_type: "ClientType", # required
463
966
  # scopes: ["Scope"],
967
+ # redirect_uris: ["URI"],
968
+ # grant_types: ["GrantType"],
969
+ # issuer_url: "URI",
970
+ # entitled_application_arn: "ArnType",
464
971
  # })
465
972
  #
466
973
  # @example Response structure
@@ -486,16 +993,17 @@ module Aws::SSOOIDC
486
993
  #
487
994
  # @option params [required, String] :client_id
488
995
  # The unique identifier string for the client that is registered with
489
- # AWS SSO. This value should come from the persisted result of the
490
- # RegisterClient API operation.
996
+ # IAM Identity Center. This value should come from the persisted result
997
+ # of the RegisterClient API operation.
491
998
  #
492
999
  # @option params [required, String] :client_secret
493
1000
  # A secret string that is generated for the client. This value should
494
1001
  # come from the persisted result of the RegisterClient API operation.
495
1002
  #
496
1003
  # @option params [required, String] :start_url
497
- # The URL for the AWS SSO user portal. For more information, see [Using
498
- # the User Portal][1] in the *AWS Single Sign-On User Guide*.
1004
+ # The URL for the Amazon Web Services access portal. For more
1005
+ # information, see [Using the Amazon Web Services access portal][1] in
1006
+ # the *IAM Identity Center User Guide*.
499
1007
  #
500
1008
  #
501
1009
  #
@@ -510,6 +1018,25 @@ module Aws::SSOOIDC
510
1018
  # * {Types::StartDeviceAuthorizationResponse#expires_in #expires_in} => Integer
511
1019
  # * {Types::StartDeviceAuthorizationResponse#interval #interval} => Integer
512
1020
  #
1021
+ #
1022
+ # @example Example: Call OAuth/OIDC /start-device-authorization endpoint
1023
+ #
1024
+ # resp = client.start_device_authorization({
1025
+ # client_id: "_yzkThXVzLWVhc3QtMQEXAMPLECLIENTID",
1026
+ # client_secret: "VERYLONGSECRETeyJraWQiOiJrZXktMTU2NDAyODA5OSIsImFsZyI6IkhTMzg0In0",
1027
+ # start_url: "https://identitycenter.amazonaws.com/ssoins-111111111111",
1028
+ # })
1029
+ #
1030
+ # resp.to_h outputs the following:
1031
+ # {
1032
+ # device_code: "yJraWQiOiJrZXktMTU2Njk2ODA4OCIsImFsZyI6IkhTMzIn0EXAMPLEDEVICECODE",
1033
+ # expires_in: 1579729529,
1034
+ # interval: 1,
1035
+ # user_code: "makdfsk83yJraWQiOiJrZXktMTU2Njk2sImFsZyI6IkhTMzIn0EXAMPLEUSERCODE",
1036
+ # verification_uri: "https://directory-alias-example.awsapps.com/start/#/device",
1037
+ # verification_uri_complete: "https://directory-alias-example.awsapps.com/start/#/device?user_code=makdfsk83yJraWQiOiJrZXktMTU2Njk2sImFsZyI6IkhTMzIn0EXAMPLEUSERCODE",
1038
+ # }
1039
+ #
513
1040
  # @example Request syntax with placeholder values
514
1041
  #
515
1042
  # resp = client.start_device_authorization({
@@ -542,14 +1069,19 @@ module Aws::SSOOIDC
542
1069
  # @api private
543
1070
  def build_request(operation_name, params = {})
544
1071
  handlers = @handlers.for(operation_name)
1072
+ tracer = config.telemetry_provider.tracer_provider.tracer(
1073
+ Aws::Telemetry.module_to_tracer_name('Aws::SSOOIDC')
1074
+ )
545
1075
  context = Seahorse::Client::RequestContext.new(
546
1076
  operation_name: operation_name,
547
1077
  operation: config.api.operation(operation_name),
548
1078
  client: self,
549
1079
  params: params,
550
- config: config)
1080
+ config: config,
1081
+ tracer: tracer
1082
+ )
551
1083
  context[:gem_name] = 'aws-sdk-core'
552
- context[:gem_version] = '3.151.0'
1084
+ context[:gem_version] = '3.234.0'
553
1085
  Seahorse::Client::Request.new(handlers, context)
554
1086
  end
555
1087