aws-sdk-core 3.178.0 → 3.233.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 (196) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +709 -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 -9
  10. data/lib/aws-sdk-core/binary/encode_handler.rb +1 -1
  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 +5 -1
  20. data/lib/aws-sdk-core/credential_provider_chain.rb +38 -11
  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 +79 -11
  24. data/lib/aws-sdk-core/endpoints/endpoint.rb +3 -1
  25. data/lib/aws-sdk-core/endpoints/matchers.rb +21 -19
  26. data/lib/aws-sdk-core/endpoints.rb +101 -21
  27. data/lib/aws-sdk-core/error_handler.rb +46 -0
  28. data/lib/aws-sdk-core/errors.rb +14 -5
  29. data/lib/aws-sdk-core/event_emitter.rb +1 -17
  30. data/lib/aws-sdk-core/ini_parser.rb +8 -1
  31. data/lib/aws-sdk-core/instance_profile_credentials.rb +168 -155
  32. data/lib/aws-sdk-core/json/builder.rb +8 -1
  33. data/lib/aws-sdk-core/json/error_handler.rb +29 -13
  34. data/lib/aws-sdk-core/json/handler.rb +13 -6
  35. data/lib/aws-sdk-core/json/json_engine.rb +3 -1
  36. data/lib/aws-sdk-core/json/oj_engine.rb +7 -1
  37. data/lib/aws-sdk-core/json/parser.rb +33 -3
  38. data/lib/aws-sdk-core/json.rb +43 -14
  39. data/lib/aws-sdk-core/log/param_filter.rb +2 -2
  40. data/lib/aws-sdk-core/log/param_formatter.rb +7 -3
  41. data/lib/aws-sdk-core/log.rb +10 -0
  42. data/lib/aws-sdk-core/lru_cache.rb +75 -0
  43. data/lib/aws-sdk-core/pageable_response.rb +1 -1
  44. data/lib/aws-sdk-core/param_validator.rb +9 -4
  45. data/lib/aws-sdk-core/plugins/bearer_authorization.rb +2 -0
  46. data/lib/aws-sdk-core/plugins/checksum_algorithm.rb +332 -167
  47. data/lib/aws-sdk-core/plugins/client_metrics_plugin.rb +1 -1
  48. data/lib/aws-sdk-core/plugins/client_metrics_send_plugin.rb +14 -2
  49. data/lib/aws-sdk-core/plugins/credentials_configuration.rb +78 -56
  50. data/lib/aws-sdk-core/plugins/endpoint_pattern.rb +40 -32
  51. data/lib/aws-sdk-core/plugins/global_configuration.rb +8 -9
  52. data/lib/aws-sdk-core/plugins/http_checksum.rb +3 -8
  53. data/lib/aws-sdk-core/plugins/invocation_id.rb +1 -11
  54. data/lib/aws-sdk-core/plugins/logging.rb +2 -0
  55. data/lib/aws-sdk-core/plugins/protocols/api_gateway.rb +3 -1
  56. data/lib/aws-sdk-core/plugins/protocols/ec2.rb +2 -24
  57. data/lib/aws-sdk-core/plugins/protocols/json_rpc.rb +6 -8
  58. data/lib/aws-sdk-core/plugins/protocols/query.rb +4 -2
  59. data/lib/aws-sdk-core/plugins/protocols/rest_json.rb +3 -15
  60. data/lib/aws-sdk-core/plugins/protocols/rest_xml.rb +3 -0
  61. data/lib/aws-sdk-core/plugins/protocols/rpc_v2.rb +17 -0
  62. data/lib/aws-sdk-core/plugins/regional_endpoint.rb +74 -25
  63. data/lib/aws-sdk-core/plugins/request_compression.rb +11 -2
  64. data/lib/aws-sdk-core/plugins/retry_errors.rb +12 -3
  65. data/lib/aws-sdk-core/plugins/sign.rb +55 -34
  66. data/lib/aws-sdk-core/plugins/signature_v2.rb +2 -1
  67. data/lib/aws-sdk-core/plugins/signature_v4.rb +2 -1
  68. data/lib/aws-sdk-core/plugins/stub_responses.rb +59 -9
  69. data/lib/aws-sdk-core/plugins/telemetry.rb +75 -0
  70. data/lib/aws-sdk-core/plugins/transfer_encoding.rb +16 -9
  71. data/lib/aws-sdk-core/plugins/user_agent.rb +101 -26
  72. data/lib/aws-sdk-core/plugins.rb +39 -0
  73. data/lib/aws-sdk-core/process_credentials.rb +48 -29
  74. data/lib/aws-sdk-core/query/ec2_handler.rb +27 -0
  75. data/lib/aws-sdk-core/query/ec2_param_builder.rb +5 -7
  76. data/lib/aws-sdk-core/query/handler.rb +4 -4
  77. data/lib/aws-sdk-core/query/param_builder.rb +2 -2
  78. data/lib/aws-sdk-core/query.rb +2 -1
  79. data/lib/aws-sdk-core/refreshing_credentials.rb +12 -6
  80. data/lib/aws-sdk-core/resources.rb +8 -0
  81. data/lib/aws-sdk-core/rest/content_type_handler.rb +60 -0
  82. data/lib/aws-sdk-core/rest/handler.rb +3 -4
  83. data/lib/aws-sdk-core/rest/request/body.rb +32 -5
  84. data/lib/aws-sdk-core/rest/request/endpoint.rb +24 -4
  85. data/lib/aws-sdk-core/rest/request/headers.rb +15 -7
  86. data/lib/aws-sdk-core/rest/request/querystring_builder.rb +62 -36
  87. data/lib/aws-sdk-core/rest/response/body.rb +15 -1
  88. data/lib/aws-sdk-core/rest/response/header_list_parser.rb +79 -0
  89. data/lib/aws-sdk-core/rest/response/headers.rb +8 -3
  90. data/lib/aws-sdk-core/rest.rb +1 -0
  91. data/lib/aws-sdk-core/rpc_v2/builder.rb +62 -0
  92. data/lib/aws-sdk-core/rpc_v2/cbor_engine.rb +18 -0
  93. data/lib/aws-sdk-core/rpc_v2/content_type_handler.rb +47 -0
  94. data/lib/aws-sdk-core/rpc_v2/error_handler.rb +95 -0
  95. data/lib/aws-sdk-core/rpc_v2/handler.rb +79 -0
  96. data/lib/aws-sdk-core/rpc_v2/parser.rb +98 -0
  97. data/lib/aws-sdk-core/rpc_v2.rb +69 -0
  98. data/lib/aws-sdk-core/shared_config.rb +113 -41
  99. data/lib/aws-sdk-core/shared_credentials.rb +1 -7
  100. data/lib/aws-sdk-core/sso_credentials.rb +4 -1
  101. data/lib/aws-sdk-core/static_token_provider.rb +1 -2
  102. data/lib/aws-sdk-core/stubbing/protocols/ec2.rb +12 -11
  103. data/lib/aws-sdk-core/stubbing/protocols/json.rb +11 -10
  104. data/lib/aws-sdk-core/stubbing/protocols/query.rb +7 -6
  105. data/lib/aws-sdk-core/stubbing/protocols/rest.rb +2 -1
  106. data/lib/aws-sdk-core/stubbing/protocols/rest_json.rb +9 -8
  107. data/lib/aws-sdk-core/stubbing/protocols/rest_xml.rb +6 -5
  108. data/lib/aws-sdk-core/stubbing/protocols/rpc_v2.rb +39 -0
  109. data/lib/aws-sdk-core/stubbing/stub_data.rb +11 -0
  110. data/lib/aws-sdk-core/stubbing.rb +22 -0
  111. data/lib/aws-sdk-core/telemetry/base.rb +177 -0
  112. data/lib/aws-sdk-core/telemetry/no_op.rb +70 -0
  113. data/lib/aws-sdk-core/telemetry/otel.rb +235 -0
  114. data/lib/aws-sdk-core/telemetry/span_kind.rb +22 -0
  115. data/lib/aws-sdk-core/telemetry/span_status.rb +59 -0
  116. data/lib/aws-sdk-core/telemetry.rb +78 -0
  117. data/lib/aws-sdk-core/token.rb +3 -3
  118. data/lib/aws-sdk-core/token_provider.rb +4 -0
  119. data/lib/aws-sdk-core/token_provider_chain.rb +2 -6
  120. data/lib/aws-sdk-core/util.rb +41 -1
  121. data/lib/aws-sdk-core/waiters/poller.rb +10 -5
  122. data/lib/aws-sdk-core/xml/builder.rb +17 -9
  123. data/lib/aws-sdk-core/xml/error_handler.rb +35 -43
  124. data/lib/aws-sdk-core/xml/parser/frame.rb +4 -20
  125. data/lib/aws-sdk-core/xml/parser/stack.rb +2 -0
  126. data/lib/aws-sdk-core/xml/parser.rb +2 -6
  127. data/lib/aws-sdk-core.rb +82 -107
  128. data/lib/aws-sdk-sso/client.rb +189 -96
  129. data/lib/aws-sdk-sso/client_api.rb +7 -0
  130. data/lib/aws-sdk-sso/endpoint_parameters.rb +9 -6
  131. data/lib/aws-sdk-sso/endpoint_provider.rb +30 -28
  132. data/lib/aws-sdk-sso/endpoints.rb +2 -54
  133. data/lib/aws-sdk-sso/plugins/endpoints.rb +23 -22
  134. data/lib/aws-sdk-sso/types.rb +1 -0
  135. data/lib/aws-sdk-sso.rb +15 -11
  136. data/lib/aws-sdk-ssooidc/client.rb +609 -129
  137. data/lib/aws-sdk-ssooidc/client_api.rb +94 -1
  138. data/lib/aws-sdk-ssooidc/endpoint_parameters.rb +9 -6
  139. data/lib/aws-sdk-ssooidc/endpoint_provider.rb +30 -28
  140. data/lib/aws-sdk-ssooidc/endpoints.rb +2 -40
  141. data/lib/aws-sdk-ssooidc/errors.rb +62 -0
  142. data/lib/aws-sdk-ssooidc/plugins/endpoints.rb +23 -20
  143. data/lib/aws-sdk-ssooidc/types.rb +419 -53
  144. data/lib/aws-sdk-ssooidc.rb +15 -11
  145. data/lib/aws-sdk-sts/client.rb +414 -147
  146. data/lib/aws-sdk-sts/client_api.rb +48 -9
  147. data/lib/aws-sdk-sts/customizations.rb +5 -2
  148. data/lib/aws-sdk-sts/endpoint_parameters.rb +10 -9
  149. data/lib/aws-sdk-sts/endpoint_provider.rb +52 -57
  150. data/lib/aws-sdk-sts/endpoints.rb +2 -118
  151. data/lib/aws-sdk-sts/errors.rb +15 -0
  152. data/lib/aws-sdk-sts/plugins/endpoints.rb +23 -30
  153. data/lib/aws-sdk-sts/presigner.rb +3 -7
  154. data/lib/aws-sdk-sts/types.rb +209 -27
  155. data/lib/aws-sdk-sts.rb +15 -11
  156. data/lib/seahorse/client/async_base.rb +4 -5
  157. data/lib/seahorse/client/async_response.rb +19 -0
  158. data/lib/seahorse/client/base.rb +18 -21
  159. data/lib/seahorse/client/h2/connection.rb +18 -28
  160. data/lib/seahorse/client/h2/handler.rb +14 -3
  161. data/lib/seahorse/client/handler.rb +1 -1
  162. data/lib/seahorse/client/http/response.rb +1 -1
  163. data/lib/seahorse/client/net_http/connection_pool.rb +15 -12
  164. data/lib/seahorse/client/net_http/handler.rb +21 -9
  165. data/lib/seahorse/client/net_http/patches.rb +1 -4
  166. data/lib/seahorse/client/networking_error.rb +1 -1
  167. data/lib/seahorse/client/plugin.rb +9 -0
  168. data/lib/seahorse/client/plugins/endpoint.rb +0 -1
  169. data/lib/seahorse/client/plugins/h2.rb +4 -4
  170. data/lib/seahorse/client/plugins/net_http.rb +57 -16
  171. data/lib/seahorse/client/plugins/request_callback.rb +31 -0
  172. data/lib/seahorse/client/request_context.rb +9 -2
  173. data/lib/seahorse/client/response.rb +8 -0
  174. data/lib/seahorse/model/shapes.rb +2 -2
  175. data/lib/seahorse/util.rb +2 -1
  176. data/sig/aws-sdk-core/async_client_stubs.rbs +21 -0
  177. data/sig/aws-sdk-core/client_stubs.rbs +10 -0
  178. data/sig/aws-sdk-core/errors.rbs +22 -0
  179. data/sig/aws-sdk-core/resources/collection.rbs +21 -0
  180. data/sig/aws-sdk-core/structure.rbs +4 -0
  181. data/sig/aws-sdk-core/telemetry/base.rbs +46 -0
  182. data/sig/aws-sdk-core/telemetry/otel.rbs +22 -0
  183. data/sig/aws-sdk-core/telemetry/span_kind.rbs +15 -0
  184. data/sig/aws-sdk-core/telemetry/span_status.rbs +24 -0
  185. data/sig/aws-sdk-core/waiters/errors.rbs +20 -0
  186. data/sig/aws-sdk-core.rbs +7 -0
  187. data/sig/seahorse/client/async_base.rbs +18 -0
  188. data/sig/seahorse/client/base.rbs +25 -0
  189. data/sig/seahorse/client/handler_builder.rbs +16 -0
  190. data/sig/seahorse/client/response.rbs +61 -0
  191. metadata +105 -23
  192. /data/lib/aws-sdk-core/xml/parser/{engines/libxml.rb → libxml_engine.rb} +0 -0
  193. /data/lib/aws-sdk-core/xml/parser/{engines/nokogiri.rb → nokogiri_engine.rb} +0 -0
  194. /data/lib/aws-sdk-core/xml/parser/{engines/oga.rb → oga_engine.rb} +0 -0
  195. /data/lib/aws-sdk-core/xml/parser/{engines/ox.rb → ox_engine.rb} +0 -0
  196. /data/lib/aws-sdk-core/xml/parser/{engines/rexml.rb → rexml_engine.rb} +0 -0
@@ -7,6 +7,7 @@
7
7
  #
8
8
  # WARNING ABOUT GENERATED CODE
9
9
 
10
+
10
11
  module Aws::SSOOIDC
11
12
  # @api private
12
13
  module ClientApi
@@ -14,31 +15,46 @@ module Aws::SSOOIDC
14
15
  include Seahorse::Model
15
16
 
16
17
  AccessDeniedException = Shapes::StructureShape.new(name: 'AccessDeniedException')
18
+ AccessDeniedExceptionReason = Shapes::StringShape.new(name: 'AccessDeniedExceptionReason')
17
19
  AccessToken = Shapes::StringShape.new(name: 'AccessToken')
20
+ ArnType = Shapes::StringShape.new(name: 'ArnType')
21
+ Assertion = Shapes::StringShape.new(name: 'Assertion')
18
22
  AuthCode = Shapes::StringShape.new(name: 'AuthCode')
19
23
  AuthorizationPendingException = Shapes::StructureShape.new(name: 'AuthorizationPendingException')
24
+ AwsAdditionalDetails = Shapes::StructureShape.new(name: 'AwsAdditionalDetails')
20
25
  ClientId = Shapes::StringShape.new(name: 'ClientId')
21
26
  ClientName = Shapes::StringShape.new(name: 'ClientName')
22
27
  ClientSecret = Shapes::StringShape.new(name: 'ClientSecret')
23
28
  ClientType = Shapes::StringShape.new(name: 'ClientType')
29
+ CodeVerifier = Shapes::StringShape.new(name: 'CodeVerifier')
24
30
  CreateTokenRequest = Shapes::StructureShape.new(name: 'CreateTokenRequest')
25
31
  CreateTokenResponse = Shapes::StructureShape.new(name: 'CreateTokenResponse')
32
+ CreateTokenWithIAMRequest = Shapes::StructureShape.new(name: 'CreateTokenWithIAMRequest')
33
+ CreateTokenWithIAMResponse = Shapes::StructureShape.new(name: 'CreateTokenWithIAMResponse')
26
34
  DeviceCode = Shapes::StringShape.new(name: 'DeviceCode')
27
35
  Error = Shapes::StringShape.new(name: 'Error')
28
36
  ErrorDescription = Shapes::StringShape.new(name: 'ErrorDescription')
29
37
  ExpirationInSeconds = Shapes::IntegerShape.new(name: 'ExpirationInSeconds')
30
38
  ExpiredTokenException = Shapes::StructureShape.new(name: 'ExpiredTokenException')
31
39
  GrantType = Shapes::StringShape.new(name: 'GrantType')
40
+ GrantTypes = Shapes::ListShape.new(name: 'GrantTypes')
32
41
  IdToken = Shapes::StringShape.new(name: 'IdToken')
42
+ IdentityContext = Shapes::StringShape.new(name: 'IdentityContext')
33
43
  InternalServerException = Shapes::StructureShape.new(name: 'InternalServerException')
34
44
  IntervalInSeconds = Shapes::IntegerShape.new(name: 'IntervalInSeconds')
35
45
  InvalidClientException = Shapes::StructureShape.new(name: 'InvalidClientException')
36
46
  InvalidClientMetadataException = Shapes::StructureShape.new(name: 'InvalidClientMetadataException')
37
47
  InvalidGrantException = Shapes::StructureShape.new(name: 'InvalidGrantException')
48
+ InvalidRedirectUriException = Shapes::StructureShape.new(name: 'InvalidRedirectUriException')
38
49
  InvalidRequestException = Shapes::StructureShape.new(name: 'InvalidRequestException')
50
+ InvalidRequestExceptionReason = Shapes::StringShape.new(name: 'InvalidRequestExceptionReason')
51
+ InvalidRequestRegionException = Shapes::StructureShape.new(name: 'InvalidRequestRegionException')
39
52
  InvalidScopeException = Shapes::StructureShape.new(name: 'InvalidScopeException')
53
+ Location = Shapes::StringShape.new(name: 'Location')
40
54
  LongTimeStampType = Shapes::IntegerShape.new(name: 'LongTimeStampType')
55
+ RedirectUris = Shapes::ListShape.new(name: 'RedirectUris')
41
56
  RefreshToken = Shapes::StringShape.new(name: 'RefreshToken')
57
+ Region = Shapes::StringShape.new(name: 'Region')
42
58
  RegisterClientRequest = Shapes::StructureShape.new(name: 'RegisterClientRequest')
43
59
  RegisterClientResponse = Shapes::StructureShape.new(name: 'RegisterClientResponse')
44
60
  Scope = Shapes::StringShape.new(name: 'Scope')
@@ -46,13 +62,16 @@ module Aws::SSOOIDC
46
62
  SlowDownException = Shapes::StructureShape.new(name: 'SlowDownException')
47
63
  StartDeviceAuthorizationRequest = Shapes::StructureShape.new(name: 'StartDeviceAuthorizationRequest')
48
64
  StartDeviceAuthorizationResponse = Shapes::StructureShape.new(name: 'StartDeviceAuthorizationResponse')
65
+ SubjectToken = Shapes::StringShape.new(name: 'SubjectToken')
49
66
  TokenType = Shapes::StringShape.new(name: 'TokenType')
67
+ TokenTypeURI = Shapes::StringShape.new(name: 'TokenTypeURI')
50
68
  URI = Shapes::StringShape.new(name: 'URI')
51
69
  UnauthorizedClientException = Shapes::StructureShape.new(name: 'UnauthorizedClientException')
52
70
  UnsupportedGrantTypeException = Shapes::StructureShape.new(name: 'UnsupportedGrantTypeException')
53
71
  UserCode = Shapes::StringShape.new(name: 'UserCode')
54
72
 
55
73
  AccessDeniedException.add_member(:error, Shapes::ShapeRef.new(shape: Error, location_name: "error"))
74
+ AccessDeniedException.add_member(:reason, Shapes::ShapeRef.new(shape: AccessDeniedExceptionReason, location_name: "reason"))
56
75
  AccessDeniedException.add_member(:error_description, Shapes::ShapeRef.new(shape: ErrorDescription, location_name: "error_description"))
57
76
  AccessDeniedException.struct_class = Types::AccessDeniedException
58
77
 
@@ -60,6 +79,9 @@ module Aws::SSOOIDC
60
79
  AuthorizationPendingException.add_member(:error_description, Shapes::ShapeRef.new(shape: ErrorDescription, location_name: "error_description"))
61
80
  AuthorizationPendingException.struct_class = Types::AuthorizationPendingException
62
81
 
82
+ AwsAdditionalDetails.add_member(:identity_context, Shapes::ShapeRef.new(shape: IdentityContext, location_name: "identityContext"))
83
+ AwsAdditionalDetails.struct_class = Types::AwsAdditionalDetails
84
+
63
85
  CreateTokenRequest.add_member(:client_id, Shapes::ShapeRef.new(shape: ClientId, required: true, location_name: "clientId"))
64
86
  CreateTokenRequest.add_member(:client_secret, Shapes::ShapeRef.new(shape: ClientSecret, required: true, location_name: "clientSecret"))
65
87
  CreateTokenRequest.add_member(:grant_type, Shapes::ShapeRef.new(shape: GrantType, required: true, location_name: "grantType"))
@@ -68,6 +90,7 @@ module Aws::SSOOIDC
68
90
  CreateTokenRequest.add_member(:refresh_token, Shapes::ShapeRef.new(shape: RefreshToken, location_name: "refreshToken"))
69
91
  CreateTokenRequest.add_member(:scope, Shapes::ShapeRef.new(shape: Scopes, location_name: "scope"))
70
92
  CreateTokenRequest.add_member(:redirect_uri, Shapes::ShapeRef.new(shape: URI, location_name: "redirectUri"))
93
+ CreateTokenRequest.add_member(:code_verifier, Shapes::ShapeRef.new(shape: CodeVerifier, location_name: "codeVerifier"))
71
94
  CreateTokenRequest.struct_class = Types::CreateTokenRequest
72
95
 
73
96
  CreateTokenResponse.add_member(:access_token, Shapes::ShapeRef.new(shape: AccessToken, location_name: "accessToken"))
@@ -77,10 +100,35 @@ module Aws::SSOOIDC
77
100
  CreateTokenResponse.add_member(:id_token, Shapes::ShapeRef.new(shape: IdToken, location_name: "idToken"))
78
101
  CreateTokenResponse.struct_class = Types::CreateTokenResponse
79
102
 
103
+ CreateTokenWithIAMRequest.add_member(:client_id, Shapes::ShapeRef.new(shape: ClientId, required: true, location_name: "clientId"))
104
+ CreateTokenWithIAMRequest.add_member(:grant_type, Shapes::ShapeRef.new(shape: GrantType, required: true, location_name: "grantType"))
105
+ CreateTokenWithIAMRequest.add_member(:code, Shapes::ShapeRef.new(shape: AuthCode, location_name: "code"))
106
+ CreateTokenWithIAMRequest.add_member(:refresh_token, Shapes::ShapeRef.new(shape: RefreshToken, location_name: "refreshToken"))
107
+ CreateTokenWithIAMRequest.add_member(:assertion, Shapes::ShapeRef.new(shape: Assertion, location_name: "assertion"))
108
+ CreateTokenWithIAMRequest.add_member(:scope, Shapes::ShapeRef.new(shape: Scopes, location_name: "scope"))
109
+ CreateTokenWithIAMRequest.add_member(:redirect_uri, Shapes::ShapeRef.new(shape: URI, location_name: "redirectUri"))
110
+ CreateTokenWithIAMRequest.add_member(:subject_token, Shapes::ShapeRef.new(shape: SubjectToken, location_name: "subjectToken"))
111
+ CreateTokenWithIAMRequest.add_member(:subject_token_type, Shapes::ShapeRef.new(shape: TokenTypeURI, location_name: "subjectTokenType"))
112
+ CreateTokenWithIAMRequest.add_member(:requested_token_type, Shapes::ShapeRef.new(shape: TokenTypeURI, location_name: "requestedTokenType"))
113
+ CreateTokenWithIAMRequest.add_member(:code_verifier, Shapes::ShapeRef.new(shape: CodeVerifier, location_name: "codeVerifier"))
114
+ CreateTokenWithIAMRequest.struct_class = Types::CreateTokenWithIAMRequest
115
+
116
+ CreateTokenWithIAMResponse.add_member(:access_token, Shapes::ShapeRef.new(shape: AccessToken, location_name: "accessToken"))
117
+ CreateTokenWithIAMResponse.add_member(:token_type, Shapes::ShapeRef.new(shape: TokenType, location_name: "tokenType"))
118
+ CreateTokenWithIAMResponse.add_member(:expires_in, Shapes::ShapeRef.new(shape: ExpirationInSeconds, location_name: "expiresIn"))
119
+ CreateTokenWithIAMResponse.add_member(:refresh_token, Shapes::ShapeRef.new(shape: RefreshToken, location_name: "refreshToken"))
120
+ CreateTokenWithIAMResponse.add_member(:id_token, Shapes::ShapeRef.new(shape: IdToken, location_name: "idToken"))
121
+ CreateTokenWithIAMResponse.add_member(:issued_token_type, Shapes::ShapeRef.new(shape: TokenTypeURI, location_name: "issuedTokenType"))
122
+ CreateTokenWithIAMResponse.add_member(:scope, Shapes::ShapeRef.new(shape: Scopes, location_name: "scope"))
123
+ CreateTokenWithIAMResponse.add_member(:aws_additional_details, Shapes::ShapeRef.new(shape: AwsAdditionalDetails, location_name: "awsAdditionalDetails"))
124
+ CreateTokenWithIAMResponse.struct_class = Types::CreateTokenWithIAMResponse
125
+
80
126
  ExpiredTokenException.add_member(:error, Shapes::ShapeRef.new(shape: Error, location_name: "error"))
81
127
  ExpiredTokenException.add_member(:error_description, Shapes::ShapeRef.new(shape: ErrorDescription, location_name: "error_description"))
82
128
  ExpiredTokenException.struct_class = Types::ExpiredTokenException
83
129
 
130
+ GrantTypes.member = Shapes::ShapeRef.new(shape: GrantType)
131
+
84
132
  InternalServerException.add_member(:error, Shapes::ShapeRef.new(shape: Error, location_name: "error"))
85
133
  InternalServerException.add_member(:error_description, Shapes::ShapeRef.new(shape: ErrorDescription, location_name: "error_description"))
86
134
  InternalServerException.struct_class = Types::InternalServerException
@@ -97,17 +145,34 @@ module Aws::SSOOIDC
97
145
  InvalidGrantException.add_member(:error_description, Shapes::ShapeRef.new(shape: ErrorDescription, location_name: "error_description"))
98
146
  InvalidGrantException.struct_class = Types::InvalidGrantException
99
147
 
148
+ InvalidRedirectUriException.add_member(:error, Shapes::ShapeRef.new(shape: Error, location_name: "error"))
149
+ InvalidRedirectUriException.add_member(:error_description, Shapes::ShapeRef.new(shape: ErrorDescription, location_name: "error_description"))
150
+ InvalidRedirectUriException.struct_class = Types::InvalidRedirectUriException
151
+
100
152
  InvalidRequestException.add_member(:error, Shapes::ShapeRef.new(shape: Error, location_name: "error"))
153
+ InvalidRequestException.add_member(:reason, Shapes::ShapeRef.new(shape: InvalidRequestExceptionReason, location_name: "reason"))
101
154
  InvalidRequestException.add_member(:error_description, Shapes::ShapeRef.new(shape: ErrorDescription, location_name: "error_description"))
102
155
  InvalidRequestException.struct_class = Types::InvalidRequestException
103
156
 
157
+ InvalidRequestRegionException.add_member(:error, Shapes::ShapeRef.new(shape: Error, location_name: "error"))
158
+ InvalidRequestRegionException.add_member(:error_description, Shapes::ShapeRef.new(shape: ErrorDescription, location_name: "error_description"))
159
+ InvalidRequestRegionException.add_member(:endpoint, Shapes::ShapeRef.new(shape: Location, location_name: "endpoint"))
160
+ InvalidRequestRegionException.add_member(:region, Shapes::ShapeRef.new(shape: Region, location_name: "region"))
161
+ InvalidRequestRegionException.struct_class = Types::InvalidRequestRegionException
162
+
104
163
  InvalidScopeException.add_member(:error, Shapes::ShapeRef.new(shape: Error, location_name: "error"))
105
164
  InvalidScopeException.add_member(:error_description, Shapes::ShapeRef.new(shape: ErrorDescription, location_name: "error_description"))
106
165
  InvalidScopeException.struct_class = Types::InvalidScopeException
107
166
 
167
+ RedirectUris.member = Shapes::ShapeRef.new(shape: URI)
168
+
108
169
  RegisterClientRequest.add_member(:client_name, Shapes::ShapeRef.new(shape: ClientName, required: true, location_name: "clientName"))
109
170
  RegisterClientRequest.add_member(:client_type, Shapes::ShapeRef.new(shape: ClientType, required: true, location_name: "clientType"))
110
171
  RegisterClientRequest.add_member(:scopes, Shapes::ShapeRef.new(shape: Scopes, location_name: "scopes"))
172
+ RegisterClientRequest.add_member(:redirect_uris, Shapes::ShapeRef.new(shape: RedirectUris, location_name: "redirectUris"))
173
+ RegisterClientRequest.add_member(:grant_types, Shapes::ShapeRef.new(shape: GrantTypes, location_name: "grantTypes"))
174
+ RegisterClientRequest.add_member(:issuer_url, Shapes::ShapeRef.new(shape: URI, location_name: "issuerUrl"))
175
+ RegisterClientRequest.add_member(:entitled_application_arn, Shapes::ShapeRef.new(shape: ArnType, location_name: "entitledApplicationArn"))
111
176
  RegisterClientRequest.struct_class = Types::RegisterClientRequest
112
177
 
113
178
  RegisterClientResponse.add_member(:client_id, Shapes::ShapeRef.new(shape: ClientId, location_name: "clientId"))
@@ -153,14 +218,16 @@ module Aws::SSOOIDC
153
218
 
154
219
  api.metadata = {
155
220
  "apiVersion" => "2019-06-10",
221
+ "auth" => ["aws.auth#sigv4"],
156
222
  "endpointPrefix" => "oidc",
157
223
  "jsonVersion" => "1.1",
158
224
  "protocol" => "rest-json",
225
+ "protocols" => ["rest-json"],
159
226
  "serviceAbbreviation" => "SSO OIDC",
160
227
  "serviceFullName" => "AWS SSO OIDC",
161
228
  "serviceId" => "SSO OIDC",
162
229
  "signatureVersion" => "v4",
163
- "signingName" => "awsssooidc",
230
+ "signingName" => "sso-oauth",
164
231
  "uid" => "sso-oidc-2019-06-10",
165
232
  }
166
233
 
@@ -169,6 +236,7 @@ module Aws::SSOOIDC
169
236
  o.http_method = "POST"
170
237
  o.http_request_uri = "/token"
171
238
  o['authtype'] = "none"
239
+ o['auth'] = ["smithy.api#noAuth"]
172
240
  o.input = Shapes::ShapeRef.new(shape: CreateTokenRequest)
173
241
  o.output = Shapes::ShapeRef.new(shape: CreateTokenResponse)
174
242
  o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
@@ -184,17 +252,41 @@ module Aws::SSOOIDC
184
252
  o.errors << Shapes::ShapeRef.new(shape: InternalServerException)
185
253
  end)
186
254
 
255
+ api.add_operation(:create_token_with_iam, Seahorse::Model::Operation.new.tap do |o|
256
+ o.name = "CreateTokenWithIAM"
257
+ o.http_method = "POST"
258
+ o.http_request_uri = "/token?aws_iam=t"
259
+ o.input = Shapes::ShapeRef.new(shape: CreateTokenWithIAMRequest)
260
+ o.output = Shapes::ShapeRef.new(shape: CreateTokenWithIAMResponse)
261
+ o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
262
+ o.errors << Shapes::ShapeRef.new(shape: InvalidClientException)
263
+ o.errors << Shapes::ShapeRef.new(shape: InvalidGrantException)
264
+ o.errors << Shapes::ShapeRef.new(shape: UnauthorizedClientException)
265
+ o.errors << Shapes::ShapeRef.new(shape: UnsupportedGrantTypeException)
266
+ o.errors << Shapes::ShapeRef.new(shape: InvalidScopeException)
267
+ o.errors << Shapes::ShapeRef.new(shape: AuthorizationPendingException)
268
+ o.errors << Shapes::ShapeRef.new(shape: SlowDownException)
269
+ o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException)
270
+ o.errors << Shapes::ShapeRef.new(shape: ExpiredTokenException)
271
+ o.errors << Shapes::ShapeRef.new(shape: InternalServerException)
272
+ o.errors << Shapes::ShapeRef.new(shape: InvalidRequestRegionException)
273
+ end)
274
+
187
275
  api.add_operation(:register_client, Seahorse::Model::Operation.new.tap do |o|
188
276
  o.name = "RegisterClient"
189
277
  o.http_method = "POST"
190
278
  o.http_request_uri = "/client/register"
191
279
  o['authtype'] = "none"
280
+ o['auth'] = ["smithy.api#noAuth"]
192
281
  o.input = Shapes::ShapeRef.new(shape: RegisterClientRequest)
193
282
  o.output = Shapes::ShapeRef.new(shape: RegisterClientResponse)
194
283
  o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
195
284
  o.errors << Shapes::ShapeRef.new(shape: InvalidScopeException)
196
285
  o.errors << Shapes::ShapeRef.new(shape: InvalidClientMetadataException)
197
286
  o.errors << Shapes::ShapeRef.new(shape: InternalServerException)
287
+ o.errors << Shapes::ShapeRef.new(shape: InvalidRedirectUriException)
288
+ o.errors << Shapes::ShapeRef.new(shape: UnsupportedGrantTypeException)
289
+ o.errors << Shapes::ShapeRef.new(shape: SlowDownException)
198
290
  end)
199
291
 
200
292
  api.add_operation(:start_device_authorization, Seahorse::Model::Operation.new.tap do |o|
@@ -202,6 +294,7 @@ module Aws::SSOOIDC
202
294
  o.http_method = "POST"
203
295
  o.http_request_uri = "/device_authorization"
204
296
  o['authtype'] = "none"
297
+ o['auth'] = ["smithy.api#noAuth"]
205
298
  o.input = Shapes::ShapeRef.new(shape: StartDeviceAuthorizationRequest)
206
299
  o.output = Shapes::ShapeRef.new(shape: StartDeviceAuthorizationResponse)
207
300
  o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
@@ -52,15 +52,18 @@ module Aws::SSOOIDC
52
52
  self[:region] = options[:region]
53
53
  self[:use_dual_stack] = options[:use_dual_stack]
54
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
55
  self[:use_fips] = options[:use_fips]
59
56
  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
57
  self[:endpoint] = options[:endpoint]
64
58
  end
59
+
60
+ def self.create(config, options={})
61
+ new({
62
+ region: config.region,
63
+ use_dual_stack: config.use_dualstack_endpoint,
64
+ use_fips: config.use_fips_endpoint,
65
+ endpoint: (config.endpoint.to_s unless config.regional_endpoint),
66
+ }.merge(options))
67
+ end
65
68
  end
66
69
  end
@@ -10,40 +10,42 @@
10
10
  module Aws::SSOOIDC
11
11
  class EndpointProvider
12
12
  def resolve_endpoint(parameters)
13
- region = parameters.region
14
- use_dual_stack = parameters.use_dual_stack
15
- use_fips = parameters.use_fips
16
- endpoint = parameters.endpoint
17
- if (partition_result = Aws::Endpoints::Matchers.aws_partition(region))
18
- if Aws::Endpoints::Matchers.set?(endpoint) && (url = Aws::Endpoints::Matchers.parse_url(endpoint))
19
- if Aws::Endpoints::Matchers.boolean_equals?(use_fips, true)
20
- raise ArgumentError, "Invalid Configuration: FIPS and custom endpoint are not supported"
21
- end
22
- if Aws::Endpoints::Matchers.boolean_equals?(use_dual_stack, true)
23
- raise ArgumentError, "Invalid Configuration: Dualstack and custom endpoint are not supported"
24
- end
25
- return Aws::Endpoints::Endpoint.new(url: endpoint, headers: {}, properties: {})
13
+ if Aws::Endpoints::Matchers.set?(parameters.endpoint)
14
+ if Aws::Endpoints::Matchers.boolean_equals?(parameters.use_fips, true)
15
+ raise ArgumentError, "Invalid Configuration: FIPS and custom endpoint are not supported"
26
16
  end
27
- if Aws::Endpoints::Matchers.boolean_equals?(use_fips, true) && Aws::Endpoints::Matchers.boolean_equals?(use_dual_stack, true)
28
- if Aws::Endpoints::Matchers.boolean_equals?(true, Aws::Endpoints::Matchers.attr(partition_result, "supportsFIPS")) && Aws::Endpoints::Matchers.boolean_equals?(true, Aws::Endpoints::Matchers.attr(partition_result, "supportsDualStack"))
29
- return Aws::Endpoints::Endpoint.new(url: "https://oidc-fips.#{region}.#{partition_result['dualStackDnsSuffix']}", headers: {}, properties: {})
30
- end
31
- raise ArgumentError, "FIPS and DualStack are enabled, but this partition does not support one or both"
17
+ if Aws::Endpoints::Matchers.boolean_equals?(parameters.use_dual_stack, true)
18
+ raise ArgumentError, "Invalid Configuration: Dualstack and custom endpoint are not supported"
32
19
  end
33
- if Aws::Endpoints::Matchers.boolean_equals?(use_fips, true)
34
- if Aws::Endpoints::Matchers.boolean_equals?(true, Aws::Endpoints::Matchers.attr(partition_result, "supportsFIPS"))
35
- return Aws::Endpoints::Endpoint.new(url: "https://oidc-fips.#{region}.#{partition_result['dnsSuffix']}", headers: {}, properties: {})
20
+ return Aws::Endpoints::Endpoint.new(url: parameters.endpoint, headers: {}, properties: {})
21
+ end
22
+ if Aws::Endpoints::Matchers.set?(parameters.region)
23
+ if (partition_result = Aws::Endpoints::Matchers.aws_partition(parameters.region))
24
+ if Aws::Endpoints::Matchers.boolean_equals?(parameters.use_fips, true) && Aws::Endpoints::Matchers.boolean_equals?(parameters.use_dual_stack, true)
25
+ if Aws::Endpoints::Matchers.boolean_equals?(true, Aws::Endpoints::Matchers.attr(partition_result, "supportsFIPS")) && Aws::Endpoints::Matchers.boolean_equals?(true, Aws::Endpoints::Matchers.attr(partition_result, "supportsDualStack"))
26
+ return Aws::Endpoints::Endpoint.new(url: "https://oidc-fips.#{parameters.region}.#{partition_result['dualStackDnsSuffix']}", headers: {}, properties: {})
27
+ end
28
+ raise ArgumentError, "FIPS and DualStack are enabled, but this partition does not support one or both"
36
29
  end
37
- raise ArgumentError, "FIPS is enabled but this partition does not support FIPS"
38
- end
39
- if Aws::Endpoints::Matchers.boolean_equals?(use_dual_stack, true)
40
- if Aws::Endpoints::Matchers.boolean_equals?(true, Aws::Endpoints::Matchers.attr(partition_result, "supportsDualStack"))
41
- return Aws::Endpoints::Endpoint.new(url: "https://oidc.#{region}.#{partition_result['dualStackDnsSuffix']}", headers: {}, properties: {})
30
+ if Aws::Endpoints::Matchers.boolean_equals?(parameters.use_fips, true)
31
+ if Aws::Endpoints::Matchers.boolean_equals?(Aws::Endpoints::Matchers.attr(partition_result, "supportsFIPS"), true)
32
+ if Aws::Endpoints::Matchers.string_equals?(Aws::Endpoints::Matchers.attr(partition_result, "name"), "aws-us-gov")
33
+ return Aws::Endpoints::Endpoint.new(url: "https://oidc.#{parameters.region}.amazonaws.com", headers: {}, properties: {})
34
+ end
35
+ return Aws::Endpoints::Endpoint.new(url: "https://oidc-fips.#{parameters.region}.#{partition_result['dnsSuffix']}", headers: {}, properties: {})
36
+ end
37
+ raise ArgumentError, "FIPS is enabled but this partition does not support FIPS"
38
+ end
39
+ if Aws::Endpoints::Matchers.boolean_equals?(parameters.use_dual_stack, true)
40
+ if Aws::Endpoints::Matchers.boolean_equals?(true, Aws::Endpoints::Matchers.attr(partition_result, "supportsDualStack"))
41
+ return Aws::Endpoints::Endpoint.new(url: "https://oidc.#{parameters.region}.#{partition_result['dualStackDnsSuffix']}", headers: {}, properties: {})
42
+ end
43
+ raise ArgumentError, "DualStack is enabled but this partition does not support DualStack"
42
44
  end
43
- raise ArgumentError, "DualStack is enabled but this partition does not support DualStack"
45
+ return Aws::Endpoints::Endpoint.new(url: "https://oidc.#{parameters.region}.#{partition_result['dnsSuffix']}", headers: {}, properties: {})
44
46
  end
45
- return Aws::Endpoints::Endpoint.new(url: "https://oidc.#{region}.#{partition_result['dnsSuffix']}", headers: {}, properties: {})
46
47
  end
48
+ raise ArgumentError, "Invalid Configuration: Missing Region"
47
49
  raise ArgumentError, 'No endpoint could be resolved'
48
50
 
49
51
  end
@@ -12,47 +12,9 @@ module Aws::SSOOIDC
12
12
  # @api private
13
13
  module Endpoints
14
14
 
15
- class CreateToken
16
- def self.build(context)
17
- unless context.config.regional_endpoint
18
- endpoint = context.config.endpoint.to_s
19
- end
20
- Aws::SSOOIDC::EndpointParameters.new(
21
- region: context.config.region,
22
- use_dual_stack: context.config.use_dualstack_endpoint,
23
- use_fips: context.config.use_fips_endpoint,
24
- endpoint: endpoint,
25
- )
26
- end
27
- end
28
-
29
- class RegisterClient
30
- def self.build(context)
31
- unless context.config.regional_endpoint
32
- endpoint = context.config.endpoint.to_s
33
- end
34
- Aws::SSOOIDC::EndpointParameters.new(
35
- region: context.config.region,
36
- use_dual_stack: context.config.use_dualstack_endpoint,
37
- use_fips: context.config.use_fips_endpoint,
38
- endpoint: endpoint,
39
- )
40
- end
41
- end
42
15
 
43
- class StartDeviceAuthorization
44
- def self.build(context)
45
- unless context.config.regional_endpoint
46
- endpoint = context.config.endpoint.to_s
47
- end
48
- Aws::SSOOIDC::EndpointParameters.new(
49
- region: context.config.region,
50
- use_dual_stack: context.config.use_dualstack_endpoint,
51
- use_fips: context.config.use_fips_endpoint,
52
- endpoint: endpoint,
53
- )
54
- end
16
+ def self.parameters_for_operation(context)
17
+ Aws::SSOOIDC::EndpointParameters.create(context.config)
55
18
  end
56
-
57
19
  end
58
20
  end
@@ -34,7 +34,9 @@ module Aws::SSOOIDC
34
34
  # * {InvalidClientException}
35
35
  # * {InvalidClientMetadataException}
36
36
  # * {InvalidGrantException}
37
+ # * {InvalidRedirectUriException}
37
38
  # * {InvalidRequestException}
39
+ # * {InvalidRequestRegionException}
38
40
  # * {InvalidScopeException}
39
41
  # * {SlowDownException}
40
42
  # * {UnauthorizedClientException}
@@ -60,6 +62,11 @@ module Aws::SSOOIDC
60
62
  @data[:error]
61
63
  end
62
64
 
65
+ # @return [String]
66
+ def reason
67
+ @data[:reason]
68
+ end
69
+
63
70
  # @return [String]
64
71
  def error_description
65
72
  @data[:error_description]
@@ -186,6 +193,26 @@ module Aws::SSOOIDC
186
193
  end
187
194
  end
188
195
 
196
+ class InvalidRedirectUriException < ServiceError
197
+
198
+ # @param [Seahorse::Client::RequestContext] context
199
+ # @param [String] message
200
+ # @param [Aws::SSOOIDC::Types::InvalidRedirectUriException] data
201
+ def initialize(context, message, data = Aws::EmptyStructure.new)
202
+ super(context, message, data)
203
+ end
204
+
205
+ # @return [String]
206
+ def error
207
+ @data[:error]
208
+ end
209
+
210
+ # @return [String]
211
+ def error_description
212
+ @data[:error_description]
213
+ end
214
+ end
215
+
189
216
  class InvalidRequestException < ServiceError
190
217
 
191
218
  # @param [Seahorse::Client::RequestContext] context
@@ -200,10 +227,45 @@ module Aws::SSOOIDC
200
227
  @data[:error]
201
228
  end
202
229
 
230
+ # @return [String]
231
+ def reason
232
+ @data[:reason]
233
+ end
234
+
235
+ # @return [String]
236
+ def error_description
237
+ @data[:error_description]
238
+ end
239
+ end
240
+
241
+ class InvalidRequestRegionException < ServiceError
242
+
243
+ # @param [Seahorse::Client::RequestContext] context
244
+ # @param [String] message
245
+ # @param [Aws::SSOOIDC::Types::InvalidRequestRegionException] data
246
+ def initialize(context, message, data = Aws::EmptyStructure.new)
247
+ super(context, message, data)
248
+ end
249
+
250
+ # @return [String]
251
+ def error
252
+ @data[:error]
253
+ end
254
+
203
255
  # @return [String]
204
256
  def error_description
205
257
  @data[:error_description]
206
258
  end
259
+
260
+ # @return [String]
261
+ def endpoint
262
+ @data[:endpoint]
263
+ end
264
+
265
+ # @return [String]
266
+ def region
267
+ @data[:region]
268
+ end
207
269
  end
208
270
 
209
271
  class InvalidScopeException < ServiceError
@@ -14,35 +14,49 @@ module Aws::SSOOIDC
14
14
  option(
15
15
  :endpoint_provider,
16
16
  doc_type: 'Aws::SSOOIDC::EndpointProvider',
17
- docstring: 'The endpoint provider used to resolve endpoints. Any '\
18
- 'object that responds to `#resolve_endpoint(parameters)` '\
19
- 'where `parameters` is a Struct similar to '\
20
- '`Aws::SSOOIDC::EndpointParameters`'
21
- ) do |cfg|
17
+ rbs_type: 'untyped',
18
+ docstring: <<~DOCS) do |_cfg|
19
+ The endpoint provider used to resolve endpoints. Any object that responds to
20
+ `#resolve_endpoint(parameters)` where `parameters` is a Struct similar to
21
+ `Aws::SSOOIDC::EndpointParameters`.
22
+ DOCS
22
23
  Aws::SSOOIDC::EndpointProvider.new
23
24
  end
24
25
 
25
26
  # @api private
26
27
  class Handler < Seahorse::Client::Handler
27
28
  def call(context)
28
- # If endpoint was discovered, do not resolve or apply the endpoint.
29
29
  unless context[:discovered_endpoint]
30
- params = parameters_for_operation(context)
30
+ params = Aws::SSOOIDC::Endpoints.parameters_for_operation(context)
31
31
  endpoint = context.config.endpoint_provider.resolve_endpoint(params)
32
32
 
33
33
  context.http_request.endpoint = endpoint.url
34
34
  apply_endpoint_headers(context, endpoint.headers)
35
+
36
+ context[:endpoint_params] = params
37
+ context[:endpoint_properties] = endpoint.properties
35
38
  end
36
39
 
37
- context[:endpoint_params] = params
38
40
  context[:auth_scheme] =
39
41
  Aws::Endpoints.resolve_auth_scheme(context, endpoint)
40
42
 
41
- @handler.call(context)
43
+ with_metrics(context) { @handler.call(context) }
42
44
  end
43
45
 
44
46
  private
45
47
 
48
+ def with_metrics(context, &block)
49
+ metrics = []
50
+ metrics << 'ENDPOINT_OVERRIDE' unless context.config.regional_endpoint
51
+ if context[:auth_scheme] && context[:auth_scheme]['name'] == 'sigv4a'
52
+ metrics << 'SIGV4A_SIGNING'
53
+ end
54
+ if context.config.credentials&.credentials&.account_id
55
+ metrics << 'RESOLVED_ACCOUNT_ID'
56
+ end
57
+ Aws::Plugins::UserAgent.metric(*metrics, &block)
58
+ end
59
+
46
60
  def apply_endpoint_headers(context, headers)
47
61
  headers.each do |key, values|
48
62
  value = values
@@ -53,17 +67,6 @@ module Aws::SSOOIDC
53
67
  context.http_request.headers[key] = value
54
68
  end
55
69
  end
56
-
57
- def parameters_for_operation(context)
58
- case context.operation_name
59
- when :create_token
60
- Aws::SSOOIDC::Endpoints::CreateToken.build(context)
61
- when :register_client
62
- Aws::SSOOIDC::Endpoints::RegisterClient.build(context)
63
- when :start_device_authorization
64
- Aws::SSOOIDC::Endpoints::StartDeviceAuthorization.build(context)
65
- end
66
- end
67
70
  end
68
71
 
69
72
  def add_handlers(handlers, _config)