@aws-sdk/client-sso-oidc 3.451.0 → 3.454.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 (46) hide show
  1. package/README.md +20 -13
  2. package/dist-cjs/SSOOIDC.js +2 -0
  3. package/dist-cjs/SSOOIDCClient.js +6 -4
  4. package/dist-cjs/commands/CreateTokenCommand.js +3 -2
  5. package/dist-cjs/commands/CreateTokenWithIAMCommand.js +54 -0
  6. package/dist-cjs/commands/RegisterClientCommand.js +2 -1
  7. package/dist-cjs/commands/StartDeviceAuthorizationCommand.js +2 -1
  8. package/dist-cjs/commands/index.js +1 -0
  9. package/dist-cjs/endpoint/EndpointParameters.js +1 -1
  10. package/dist-cjs/models/models_0.js +56 -1
  11. package/dist-cjs/protocols/Aws_restJson1.js +124 -1
  12. package/dist-cjs/runtimeConfig.browser.js +1 -0
  13. package/dist-cjs/runtimeConfig.js +3 -0
  14. package/dist-es/SSOOIDC.js +2 -0
  15. package/dist-es/SSOOIDCClient.js +6 -4
  16. package/dist-es/commands/CreateTokenCommand.js +3 -2
  17. package/dist-es/commands/CreateTokenWithIAMCommand.js +50 -0
  18. package/dist-es/commands/RegisterClientCommand.js +2 -1
  19. package/dist-es/commands/StartDeviceAuthorizationCommand.js +2 -1
  20. package/dist-es/commands/index.js +1 -0
  21. package/dist-es/endpoint/EndpointParameters.js +1 -1
  22. package/dist-es/models/models_0.js +48 -0
  23. package/dist-es/protocols/Aws_restJson1.js +122 -1
  24. package/dist-es/runtimeConfig.browser.js +1 -0
  25. package/dist-es/runtimeConfig.js +3 -0
  26. package/dist-types/SSOOIDC.d.ts +19 -13
  27. package/dist-types/SSOOIDCClient.d.ts +24 -17
  28. package/dist-types/commands/CreateTokenCommand.d.ts +3 -3
  29. package/dist-types/commands/CreateTokenWithIAMCommand.d.ts +140 -0
  30. package/dist-types/commands/index.d.ts +1 -0
  31. package/dist-types/index.d.ts +12 -13
  32. package/dist-types/models/models_0.d.ts +364 -36
  33. package/dist-types/protocols/Aws_restJson1.d.ts +9 -0
  34. package/dist-types/runtimeConfig.browser.d.ts +7 -0
  35. package/dist-types/runtimeConfig.d.ts +7 -0
  36. package/dist-types/runtimeConfig.native.d.ts +7 -0
  37. package/dist-types/ts3.4/SSOOIDC.d.ts +17 -0
  38. package/dist-types/ts3.4/SSOOIDCClient.d.ts +14 -0
  39. package/dist-types/ts3.4/commands/CreateTokenWithIAMCommand.d.ts +39 -0
  40. package/dist-types/ts3.4/commands/index.d.ts +1 -0
  41. package/dist-types/ts3.4/models/models_0.d.ts +50 -0
  42. package/dist-types/ts3.4/protocols/Aws_restJson1.d.ts +12 -0
  43. package/dist-types/ts3.4/runtimeConfig.browser.d.ts +24 -0
  44. package/dist-types/ts3.4/runtimeConfig.d.ts +24 -0
  45. package/dist-types/ts3.4/runtimeConfig.native.d.ts +24 -0
  46. package/package.json +4 -1
package/README.md CHANGED
@@ -6,14 +6,12 @@
6
6
 
7
7
  AWS SDK for JavaScript SSOOIDC Client for Node.js, Browser and React Native.
8
8
 
9
- <p>AWS IAM Identity Center (successor to AWS Single Sign-On) OpenID Connect (OIDC) is a web service that enables a client (such as AWS CLI
9
+ <p>IAM Identity Center OpenID Connect (OIDC) is a web service that enables a client (such as CLI
10
10
  or a native application) to register with IAM Identity Center. The service also enables the client to
11
11
  fetch the user’s access token upon successful authentication and authorization with
12
12
  IAM Identity Center.</p>
13
13
  <note>
14
- <p>Although AWS Single Sign-On was renamed, the <code>sso</code> and
15
- <code>identitystore</code> API namespaces will continue to retain their original name for
16
- backward compatibility purposes. For more information, see <a href="https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html#renamed">IAM Identity Center rename</a>.</p>
14
+ <p>IAM Identity Center uses the <code>sso</code> and <code>identitystore</code> API namespaces.</p>
17
15
  </note>
18
16
  <p>
19
17
  <b>Considerations for Using This Guide</b>
@@ -22,23 +20,24 @@ backward compatibility purposes. For more information, see <a href="https://docs
22
20
  important information about how the IAM Identity Center OIDC service works.</p>
23
21
  <ul>
24
22
  <li>
25
- <p>The IAM Identity Center OIDC service currently implements only the portions of the OAuth 2.0
26
- Device Authorization Grant standard (<a href="https://tools.ietf.org/html/rfc8628">https://tools.ietf.org/html/rfc8628</a>) that are necessary to enable single
27
- sign-on authentication with the AWS CLI. Support for other OIDC flows frequently needed
28
- for native applications, such as Authorization Code Flow (+ PKCE), will be addressed in
29
- future releases.</p>
23
+ <p>The IAM Identity Center OIDC service currently implements only the portions of the OAuth 2.0 Device
24
+ Authorization Grant standard (<a href="https://tools.ietf.org/html/rfc8628">https://tools.ietf.org/html/rfc8628</a>) that are necessary to enable single
25
+ sign-on authentication with the CLI. </p>
30
26
  </li>
31
27
  <li>
32
- <p>The service emits only OIDC access tokens, such that obtaining a new token (For
33
- example, token refresh) requires explicit user re-authentication.</p>
28
+ <p>With older versions of the CLI, the service only emits OIDC access tokens, so to
29
+ obtain a new token, users must explicitly re-authenticate. To access the OIDC flow that
30
+ supports token refresh and doesn’t require re-authentication, update to the latest CLI
31
+ version (1.27.10 for CLI V1 and 2.9.0 for CLI V2) with support for OIDC token refresh and
32
+ configurable IAM Identity Center session durations. For more information, see <a href="https://docs.aws.amazon.com/singlesignon/latest/userguide/configure-user-session.html">Configure Amazon Web Services access portal session duration </a>. </p>
34
33
  </li>
35
34
  <li>
36
- <p>The access tokens provided by this service grant access to all AWS account
35
+ <p>The access tokens provided by this service grant access to all Amazon Web Services account
37
36
  entitlements assigned to an IAM Identity Center user, not just a particular application.</p>
38
37
  </li>
39
38
  <li>
40
39
  <p>The documentation in this guide does not describe the mechanism to convert the access
41
- token into AWS Auth (“sigv4”) credentials for use with IAM-protected AWS service
40
+ token into Amazon Web Services Auth (“sigv4”) credentials for use with IAM-protected Amazon Web Services service
42
41
  endpoints. For more information, see <a href="https://docs.aws.amazon.com/singlesignon/latest/PortalAPIReference/API_GetRoleCredentials.html">GetRoleCredentials</a> in the <i>IAM Identity Center Portal API Reference
43
42
  Guide</i>.</p>
44
43
  </li>
@@ -248,6 +247,14 @@ CreateToken
248
247
 
249
248
  [Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-sso-oidc/classes/createtokencommand.html) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-sso-oidc/interfaces/createtokencommandinput.html) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-sso-oidc/interfaces/createtokencommandoutput.html)
250
249
 
250
+ </details>
251
+ <details>
252
+ <summary>
253
+ CreateTokenWithIAM
254
+ </summary>
255
+
256
+ [Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-sso-oidc/classes/createtokenwithiamcommand.html) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-sso-oidc/interfaces/createtokenwithiamcommandinput.html) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-sso-oidc/interfaces/createtokenwithiamcommandoutput.html)
257
+
251
258
  </details>
252
259
  <details>
253
260
  <summary>
@@ -3,11 +3,13 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.SSOOIDC = void 0;
4
4
  const smithy_client_1 = require("@smithy/smithy-client");
5
5
  const CreateTokenCommand_1 = require("./commands/CreateTokenCommand");
6
+ const CreateTokenWithIAMCommand_1 = require("./commands/CreateTokenWithIAMCommand");
6
7
  const RegisterClientCommand_1 = require("./commands/RegisterClientCommand");
7
8
  const StartDeviceAuthorizationCommand_1 = require("./commands/StartDeviceAuthorizationCommand");
8
9
  const SSOOIDCClient_1 = require("./SSOOIDCClient");
9
10
  const commands = {
10
11
  CreateTokenCommand: CreateTokenCommand_1.CreateTokenCommand,
12
+ CreateTokenWithIAMCommand: CreateTokenWithIAMCommand_1.CreateTokenWithIAMCommand,
11
13
  RegisterClientCommand: RegisterClientCommand_1.RegisterClientCommand,
12
14
  StartDeviceAuthorizationCommand: StartDeviceAuthorizationCommand_1.StartDeviceAuthorizationCommand,
13
15
  };
@@ -4,6 +4,7 @@ exports.SSOOIDCClient = exports.__Client = void 0;
4
4
  const middleware_host_header_1 = require("@aws-sdk/middleware-host-header");
5
5
  const middleware_logger_1 = require("@aws-sdk/middleware-logger");
6
6
  const middleware_recursion_detection_1 = require("@aws-sdk/middleware-recursion-detection");
7
+ const middleware_signing_1 = require("@aws-sdk/middleware-signing");
7
8
  const middleware_user_agent_1 = require("@aws-sdk/middleware-user-agent");
8
9
  const config_resolver_1 = require("@smithy/config-resolver");
9
10
  const middleware_content_length_1 = require("@smithy/middleware-content-length");
@@ -22,10 +23,11 @@ class SSOOIDCClient extends smithy_client_1.Client {
22
23
  const _config_3 = (0, middleware_endpoint_1.resolveEndpointConfig)(_config_2);
23
24
  const _config_4 = (0, middleware_retry_1.resolveRetryConfig)(_config_3);
24
25
  const _config_5 = (0, middleware_host_header_1.resolveHostHeaderConfig)(_config_4);
25
- const _config_6 = (0, middleware_user_agent_1.resolveUserAgentConfig)(_config_5);
26
- const _config_7 = (0, runtimeExtensions_1.resolveRuntimeExtensions)(_config_6, configuration?.extensions || []);
27
- super(_config_7);
28
- this.config = _config_7;
26
+ const _config_6 = (0, middleware_signing_1.resolveAwsAuthConfig)(_config_5);
27
+ const _config_7 = (0, middleware_user_agent_1.resolveUserAgentConfig)(_config_6);
28
+ const _config_8 = (0, runtimeExtensions_1.resolveRuntimeExtensions)(_config_7, configuration?.extensions || []);
29
+ super(_config_8);
30
+ this.config = _config_8;
29
31
  this.middlewareStack.use((0, middleware_retry_1.getRetryPlugin)(this.config));
30
32
  this.middlewareStack.use((0, middleware_content_length_1.getContentLengthPlugin)(this.config));
31
33
  this.middlewareStack.use((0, middleware_host_header_1.getHostHeaderPlugin)(this.config));
@@ -6,6 +6,7 @@ const middleware_serde_1 = require("@smithy/middleware-serde");
6
6
  const smithy_client_1 = require("@smithy/smithy-client");
7
7
  Object.defineProperty(exports, "$Command", { enumerable: true, get: function () { return smithy_client_1.Command; } });
8
8
  const types_1 = require("@smithy/types");
9
+ const models_0_1 = require("../models/models_0");
9
10
  const Aws_restJson1_1 = require("../protocols/Aws_restJson1");
10
11
  class CreateTokenCommand extends smithy_client_1.Command {
11
12
  static getEndpointParameterInstructions() {
@@ -31,8 +32,8 @@ class CreateTokenCommand extends smithy_client_1.Command {
31
32
  logger,
32
33
  clientName,
33
34
  commandName,
34
- inputFilterSensitiveLog: (_) => _,
35
- outputFilterSensitiveLog: (_) => _,
35
+ inputFilterSensitiveLog: models_0_1.CreateTokenRequestFilterSensitiveLog,
36
+ outputFilterSensitiveLog: models_0_1.CreateTokenResponseFilterSensitiveLog,
36
37
  [types_1.SMITHY_CONTEXT_KEY]: {
37
38
  service: "AWSSSOOIDCService",
38
39
  operation: "CreateToken",
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CreateTokenWithIAMCommand = exports.$Command = void 0;
4
+ const middleware_signing_1 = require("@aws-sdk/middleware-signing");
5
+ const middleware_endpoint_1 = require("@smithy/middleware-endpoint");
6
+ const middleware_serde_1 = require("@smithy/middleware-serde");
7
+ const smithy_client_1 = require("@smithy/smithy-client");
8
+ Object.defineProperty(exports, "$Command", { enumerable: true, get: function () { return smithy_client_1.Command; } });
9
+ const types_1 = require("@smithy/types");
10
+ const models_0_1 = require("../models/models_0");
11
+ const Aws_restJson1_1 = require("../protocols/Aws_restJson1");
12
+ class CreateTokenWithIAMCommand extends smithy_client_1.Command {
13
+ static getEndpointParameterInstructions() {
14
+ return {
15
+ UseFIPS: { type: "builtInParams", name: "useFipsEndpoint" },
16
+ Endpoint: { type: "builtInParams", name: "endpoint" },
17
+ Region: { type: "builtInParams", name: "region" },
18
+ UseDualStack: { type: "builtInParams", name: "useDualstackEndpoint" },
19
+ };
20
+ }
21
+ constructor(input) {
22
+ super();
23
+ this.input = input;
24
+ }
25
+ resolveMiddleware(clientStack, configuration, options) {
26
+ this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));
27
+ this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, CreateTokenWithIAMCommand.getEndpointParameterInstructions()));
28
+ this.middlewareStack.use((0, middleware_signing_1.getAwsAuthPlugin)(configuration));
29
+ const stack = clientStack.concat(this.middlewareStack);
30
+ const { logger } = configuration;
31
+ const clientName = "SSOOIDCClient";
32
+ const commandName = "CreateTokenWithIAMCommand";
33
+ const handlerExecutionContext = {
34
+ logger,
35
+ clientName,
36
+ commandName,
37
+ inputFilterSensitiveLog: models_0_1.CreateTokenWithIAMRequestFilterSensitiveLog,
38
+ outputFilterSensitiveLog: models_0_1.CreateTokenWithIAMResponseFilterSensitiveLog,
39
+ [types_1.SMITHY_CONTEXT_KEY]: {
40
+ service: "AWSSSOOIDCService",
41
+ operation: "CreateTokenWithIAM",
42
+ },
43
+ };
44
+ const { requestHandler } = configuration;
45
+ return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);
46
+ }
47
+ serialize(input, context) {
48
+ return (0, Aws_restJson1_1.se_CreateTokenWithIAMCommand)(input, context);
49
+ }
50
+ deserialize(output, context) {
51
+ return (0, Aws_restJson1_1.de_CreateTokenWithIAMCommand)(output, context);
52
+ }
53
+ }
54
+ exports.CreateTokenWithIAMCommand = CreateTokenWithIAMCommand;
@@ -6,6 +6,7 @@ const middleware_serde_1 = require("@smithy/middleware-serde");
6
6
  const smithy_client_1 = require("@smithy/smithy-client");
7
7
  Object.defineProperty(exports, "$Command", { enumerable: true, get: function () { return smithy_client_1.Command; } });
8
8
  const types_1 = require("@smithy/types");
9
+ const models_0_1 = require("../models/models_0");
9
10
  const Aws_restJson1_1 = require("../protocols/Aws_restJson1");
10
11
  class RegisterClientCommand extends smithy_client_1.Command {
11
12
  static getEndpointParameterInstructions() {
@@ -32,7 +33,7 @@ class RegisterClientCommand extends smithy_client_1.Command {
32
33
  clientName,
33
34
  commandName,
34
35
  inputFilterSensitiveLog: (_) => _,
35
- outputFilterSensitiveLog: (_) => _,
36
+ outputFilterSensitiveLog: models_0_1.RegisterClientResponseFilterSensitiveLog,
36
37
  [types_1.SMITHY_CONTEXT_KEY]: {
37
38
  service: "AWSSSOOIDCService",
38
39
  operation: "RegisterClient",
@@ -6,6 +6,7 @@ const middleware_serde_1 = require("@smithy/middleware-serde");
6
6
  const smithy_client_1 = require("@smithy/smithy-client");
7
7
  Object.defineProperty(exports, "$Command", { enumerable: true, get: function () { return smithy_client_1.Command; } });
8
8
  const types_1 = require("@smithy/types");
9
+ const models_0_1 = require("../models/models_0");
9
10
  const Aws_restJson1_1 = require("../protocols/Aws_restJson1");
10
11
  class StartDeviceAuthorizationCommand extends smithy_client_1.Command {
11
12
  static getEndpointParameterInstructions() {
@@ -31,7 +32,7 @@ class StartDeviceAuthorizationCommand extends smithy_client_1.Command {
31
32
  logger,
32
33
  clientName,
33
34
  commandName,
34
- inputFilterSensitiveLog: (_) => _,
35
+ inputFilterSensitiveLog: models_0_1.StartDeviceAuthorizationRequestFilterSensitiveLog,
35
36
  outputFilterSensitiveLog: (_) => _,
36
37
  [types_1.SMITHY_CONTEXT_KEY]: {
37
38
  service: "AWSSSOOIDCService",
@@ -2,5 +2,6 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const tslib_1 = require("tslib");
4
4
  tslib_1.__exportStar(require("./CreateTokenCommand"), exports);
5
+ tslib_1.__exportStar(require("./CreateTokenWithIAMCommand"), exports);
5
6
  tslib_1.__exportStar(require("./RegisterClientCommand"), exports);
6
7
  tslib_1.__exportStar(require("./StartDeviceAuthorizationCommand"), exports);
@@ -6,7 +6,7 @@ const resolveClientEndpointParameters = (options) => {
6
6
  ...options,
7
7
  useDualstackEndpoint: options.useDualstackEndpoint ?? false,
8
8
  useFipsEndpoint: options.useFipsEndpoint ?? false,
9
- defaultSigningName: "awsssooidc",
9
+ defaultSigningName: "sso-oauth",
10
10
  };
11
11
  };
12
12
  exports.resolveClientEndpointParameters = resolveClientEndpointParameters;
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.InvalidClientMetadataException = exports.UnsupportedGrantTypeException = exports.UnauthorizedClientException = exports.SlowDownException = exports.InvalidScopeException = exports.InvalidRequestException = exports.InvalidGrantException = exports.InvalidClientException = exports.InternalServerException = exports.ExpiredTokenException = exports.AuthorizationPendingException = exports.AccessDeniedException = void 0;
3
+ exports.StartDeviceAuthorizationRequestFilterSensitiveLog = exports.RegisterClientResponseFilterSensitiveLog = exports.CreateTokenWithIAMResponseFilterSensitiveLog = exports.CreateTokenWithIAMRequestFilterSensitiveLog = exports.CreateTokenResponseFilterSensitiveLog = exports.CreateTokenRequestFilterSensitiveLog = exports.InvalidClientMetadataException = exports.InvalidRequestRegionException = exports.UnsupportedGrantTypeException = exports.UnauthorizedClientException = exports.SlowDownException = exports.InvalidScopeException = exports.InvalidRequestException = exports.InvalidGrantException = exports.InvalidClientException = exports.InternalServerException = exports.ExpiredTokenException = exports.AuthorizationPendingException = exports.AccessDeniedException = void 0;
4
+ const smithy_client_1 = require("@smithy/smithy-client");
4
5
  const SSOOIDCServiceException_1 = require("./SSOOIDCServiceException");
5
6
  class AccessDeniedException extends SSOOIDCServiceException_1.SSOOIDCServiceException {
6
7
  constructor(opts) {
@@ -167,6 +168,23 @@ class UnsupportedGrantTypeException extends SSOOIDCServiceException_1.SSOOIDCSer
167
168
  }
168
169
  }
169
170
  exports.UnsupportedGrantTypeException = UnsupportedGrantTypeException;
171
+ class InvalidRequestRegionException extends SSOOIDCServiceException_1.SSOOIDCServiceException {
172
+ constructor(opts) {
173
+ super({
174
+ name: "InvalidRequestRegionException",
175
+ $fault: "client",
176
+ ...opts,
177
+ });
178
+ this.name = "InvalidRequestRegionException";
179
+ this.$fault = "client";
180
+ Object.setPrototypeOf(this, InvalidRequestRegionException.prototype);
181
+ this.error = opts.error;
182
+ this.error_description = opts.error_description;
183
+ this.endpoint = opts.endpoint;
184
+ this.region = opts.region;
185
+ }
186
+ }
187
+ exports.InvalidRequestRegionException = InvalidRequestRegionException;
170
188
  class InvalidClientMetadataException extends SSOOIDCServiceException_1.SSOOIDCServiceException {
171
189
  constructor(opts) {
172
190
  super({
@@ -182,3 +200,40 @@ class InvalidClientMetadataException extends SSOOIDCServiceException_1.SSOOIDCSe
182
200
  }
183
201
  }
184
202
  exports.InvalidClientMetadataException = InvalidClientMetadataException;
203
+ const CreateTokenRequestFilterSensitiveLog = (obj) => ({
204
+ ...obj,
205
+ ...(obj.clientSecret && { clientSecret: smithy_client_1.SENSITIVE_STRING }),
206
+ ...(obj.refreshToken && { refreshToken: smithy_client_1.SENSITIVE_STRING }),
207
+ });
208
+ exports.CreateTokenRequestFilterSensitiveLog = CreateTokenRequestFilterSensitiveLog;
209
+ const CreateTokenResponseFilterSensitiveLog = (obj) => ({
210
+ ...obj,
211
+ ...(obj.accessToken && { accessToken: smithy_client_1.SENSITIVE_STRING }),
212
+ ...(obj.refreshToken && { refreshToken: smithy_client_1.SENSITIVE_STRING }),
213
+ ...(obj.idToken && { idToken: smithy_client_1.SENSITIVE_STRING }),
214
+ });
215
+ exports.CreateTokenResponseFilterSensitiveLog = CreateTokenResponseFilterSensitiveLog;
216
+ const CreateTokenWithIAMRequestFilterSensitiveLog = (obj) => ({
217
+ ...obj,
218
+ ...(obj.refreshToken && { refreshToken: smithy_client_1.SENSITIVE_STRING }),
219
+ ...(obj.assertion && { assertion: smithy_client_1.SENSITIVE_STRING }),
220
+ ...(obj.subjectToken && { subjectToken: smithy_client_1.SENSITIVE_STRING }),
221
+ });
222
+ exports.CreateTokenWithIAMRequestFilterSensitiveLog = CreateTokenWithIAMRequestFilterSensitiveLog;
223
+ const CreateTokenWithIAMResponseFilterSensitiveLog = (obj) => ({
224
+ ...obj,
225
+ ...(obj.accessToken && { accessToken: smithy_client_1.SENSITIVE_STRING }),
226
+ ...(obj.refreshToken && { refreshToken: smithy_client_1.SENSITIVE_STRING }),
227
+ ...(obj.idToken && { idToken: smithy_client_1.SENSITIVE_STRING }),
228
+ });
229
+ exports.CreateTokenWithIAMResponseFilterSensitiveLog = CreateTokenWithIAMResponseFilterSensitiveLog;
230
+ const RegisterClientResponseFilterSensitiveLog = (obj) => ({
231
+ ...obj,
232
+ ...(obj.clientSecret && { clientSecret: smithy_client_1.SENSITIVE_STRING }),
233
+ });
234
+ exports.RegisterClientResponseFilterSensitiveLog = RegisterClientResponseFilterSensitiveLog;
235
+ const StartDeviceAuthorizationRequestFilterSensitiveLog = (obj) => ({
236
+ ...obj,
237
+ ...(obj.clientSecret && { clientSecret: smithy_client_1.SENSITIVE_STRING }),
238
+ });
239
+ exports.StartDeviceAuthorizationRequestFilterSensitiveLog = StartDeviceAuthorizationRequestFilterSensitiveLog;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.de_StartDeviceAuthorizationCommand = exports.de_RegisterClientCommand = exports.de_CreateTokenCommand = exports.se_StartDeviceAuthorizationCommand = exports.se_RegisterClientCommand = exports.se_CreateTokenCommand = void 0;
3
+ exports.de_StartDeviceAuthorizationCommand = exports.de_RegisterClientCommand = exports.de_CreateTokenWithIAMCommand = exports.de_CreateTokenCommand = exports.se_StartDeviceAuthorizationCommand = exports.se_RegisterClientCommand = exports.se_CreateTokenWithIAMCommand = exports.se_CreateTokenCommand = void 0;
4
4
  const protocol_http_1 = require("@smithy/protocol-http");
5
5
  const smithy_client_1 = require("@smithy/smithy-client");
6
6
  const models_0_1 = require("../models/models_0");
@@ -33,6 +33,40 @@ const se_CreateTokenCommand = async (input, context) => {
33
33
  });
34
34
  };
35
35
  exports.se_CreateTokenCommand = se_CreateTokenCommand;
36
+ const se_CreateTokenWithIAMCommand = async (input, context) => {
37
+ const { hostname, protocol = "https", port, path: basePath } = await context.endpoint();
38
+ const headers = {
39
+ "content-type": "application/json",
40
+ };
41
+ const resolvedPath = `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + "/token";
42
+ const query = (0, smithy_client_1.map)({
43
+ aws_iam: [, "t"],
44
+ });
45
+ let body;
46
+ body = JSON.stringify((0, smithy_client_1.take)(input, {
47
+ assertion: [],
48
+ clientId: [],
49
+ code: [],
50
+ grantType: [],
51
+ redirectUri: [],
52
+ refreshToken: [],
53
+ requestedTokenType: [],
54
+ scope: (_) => (0, smithy_client_1._json)(_),
55
+ subjectToken: [],
56
+ subjectTokenType: [],
57
+ }));
58
+ return new protocol_http_1.HttpRequest({
59
+ protocol,
60
+ hostname,
61
+ port,
62
+ method: "POST",
63
+ headers,
64
+ path: resolvedPath,
65
+ query,
66
+ body,
67
+ });
68
+ };
69
+ exports.se_CreateTokenWithIAMCommand = se_CreateTokenWithIAMCommand;
36
70
  const se_RegisterClientCommand = async (input, context) => {
37
71
  const { hostname, protocol = "https", port, path: basePath } = await context.endpoint();
38
72
  const headers = {
@@ -147,6 +181,79 @@ const de_CreateTokenCommandError = async (output, context) => {
147
181
  });
148
182
  }
149
183
  };
184
+ const de_CreateTokenWithIAMCommand = async (output, context) => {
185
+ if (output.statusCode !== 200 && output.statusCode >= 300) {
186
+ return de_CreateTokenWithIAMCommandError(output, context);
187
+ }
188
+ const contents = (0, smithy_client_1.map)({
189
+ $metadata: deserializeMetadata(output),
190
+ });
191
+ const data = (0, smithy_client_1.expectNonNull)((0, smithy_client_1.expectObject)(await parseBody(output.body, context)), "body");
192
+ const doc = (0, smithy_client_1.take)(data, {
193
+ accessToken: smithy_client_1.expectString,
194
+ expiresIn: smithy_client_1.expectInt32,
195
+ idToken: smithy_client_1.expectString,
196
+ issuedTokenType: smithy_client_1.expectString,
197
+ refreshToken: smithy_client_1.expectString,
198
+ scope: smithy_client_1._json,
199
+ tokenType: smithy_client_1.expectString,
200
+ });
201
+ Object.assign(contents, doc);
202
+ return contents;
203
+ };
204
+ exports.de_CreateTokenWithIAMCommand = de_CreateTokenWithIAMCommand;
205
+ const de_CreateTokenWithIAMCommandError = async (output, context) => {
206
+ const parsedOutput = {
207
+ ...output,
208
+ body: await parseErrorBody(output.body, context),
209
+ };
210
+ const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);
211
+ switch (errorCode) {
212
+ case "AccessDeniedException":
213
+ case "com.amazonaws.ssooidc#AccessDeniedException":
214
+ throw await de_AccessDeniedExceptionRes(parsedOutput, context);
215
+ case "AuthorizationPendingException":
216
+ case "com.amazonaws.ssooidc#AuthorizationPendingException":
217
+ throw await de_AuthorizationPendingExceptionRes(parsedOutput, context);
218
+ case "ExpiredTokenException":
219
+ case "com.amazonaws.ssooidc#ExpiredTokenException":
220
+ throw await de_ExpiredTokenExceptionRes(parsedOutput, context);
221
+ case "InternalServerException":
222
+ case "com.amazonaws.ssooidc#InternalServerException":
223
+ throw await de_InternalServerExceptionRes(parsedOutput, context);
224
+ case "InvalidClientException":
225
+ case "com.amazonaws.ssooidc#InvalidClientException":
226
+ throw await de_InvalidClientExceptionRes(parsedOutput, context);
227
+ case "InvalidGrantException":
228
+ case "com.amazonaws.ssooidc#InvalidGrantException":
229
+ throw await de_InvalidGrantExceptionRes(parsedOutput, context);
230
+ case "InvalidRequestException":
231
+ case "com.amazonaws.ssooidc#InvalidRequestException":
232
+ throw await de_InvalidRequestExceptionRes(parsedOutput, context);
233
+ case "InvalidRequestRegionException":
234
+ case "com.amazonaws.ssooidc#InvalidRequestRegionException":
235
+ throw await de_InvalidRequestRegionExceptionRes(parsedOutput, context);
236
+ case "InvalidScopeException":
237
+ case "com.amazonaws.ssooidc#InvalidScopeException":
238
+ throw await de_InvalidScopeExceptionRes(parsedOutput, context);
239
+ case "SlowDownException":
240
+ case "com.amazonaws.ssooidc#SlowDownException":
241
+ throw await de_SlowDownExceptionRes(parsedOutput, context);
242
+ case "UnauthorizedClientException":
243
+ case "com.amazonaws.ssooidc#UnauthorizedClientException":
244
+ throw await de_UnauthorizedClientExceptionRes(parsedOutput, context);
245
+ case "UnsupportedGrantTypeException":
246
+ case "com.amazonaws.ssooidc#UnsupportedGrantTypeException":
247
+ throw await de_UnsupportedGrantTypeExceptionRes(parsedOutput, context);
248
+ default:
249
+ const parsedBody = parsedOutput.body;
250
+ return throwDefaultError({
251
+ output,
252
+ parsedBody,
253
+ errorCode,
254
+ });
255
+ }
256
+ };
150
257
  const de_RegisterClientCommand = async (output, context) => {
151
258
  if (output.statusCode !== 200 && output.statusCode >= 300) {
152
259
  return de_RegisterClientCommandError(output, context);
@@ -359,6 +466,22 @@ const de_InvalidRequestExceptionRes = async (parsedOutput, context) => {
359
466
  });
360
467
  return (0, smithy_client_1.decorateServiceException)(exception, parsedOutput.body);
361
468
  };
469
+ const de_InvalidRequestRegionExceptionRes = async (parsedOutput, context) => {
470
+ const contents = (0, smithy_client_1.map)({});
471
+ const data = parsedOutput.body;
472
+ const doc = (0, smithy_client_1.take)(data, {
473
+ endpoint: smithy_client_1.expectString,
474
+ error: smithy_client_1.expectString,
475
+ error_description: smithy_client_1.expectString,
476
+ region: smithy_client_1.expectString,
477
+ });
478
+ Object.assign(contents, doc);
479
+ const exception = new models_0_1.InvalidRequestRegionException({
480
+ $metadata: deserializeMetadata(parsedOutput),
481
+ ...contents,
482
+ });
483
+ return (0, smithy_client_1.decorateServiceException)(exception, parsedOutput.body);
484
+ };
362
485
  const de_InvalidScopeExceptionRes = async (parsedOutput, context) => {
363
486
  const contents = (0, smithy_client_1.map)({});
364
487
  const data = parsedOutput.body;
@@ -23,6 +23,7 @@ const getRuntimeConfig = (config) => {
23
23
  runtime: "browser",
24
24
  defaultsMode,
25
25
  bodyLengthChecker: config?.bodyLengthChecker ?? util_body_length_browser_1.calculateBodyLength,
26
+ credentialDefaultProvider: config?.credentialDefaultProvider ?? ((_) => () => Promise.reject(new Error("Credential is missing"))),
26
27
  defaultUserAgentProvider: config?.defaultUserAgentProvider ??
27
28
  (0, util_user_agent_browser_1.defaultUserAgent)({ serviceId: clientSharedValues.serviceId, clientVersion: package_json_1.default.version }),
28
29
  maxAttempts: config?.maxAttempts ?? util_retry_1.DEFAULT_MAX_ATTEMPTS,
@@ -3,7 +3,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getRuntimeConfig = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const package_json_1 = tslib_1.__importDefault(require("../package.json"));
6
+ const client_sts_1 = require("@aws-sdk/client-sts");
6
7
  const core_1 = require("@aws-sdk/core");
8
+ const credential_provider_node_1 = require("@aws-sdk/credential-provider-node");
7
9
  const util_user_agent_node_1 = require("@aws-sdk/util-user-agent-node");
8
10
  const config_resolver_1 = require("@smithy/config-resolver");
9
11
  const hash_node_1 = require("@smithy/hash-node");
@@ -28,6 +30,7 @@ const getRuntimeConfig = (config) => {
28
30
  runtime: "node",
29
31
  defaultsMode,
30
32
  bodyLengthChecker: config?.bodyLengthChecker ?? util_body_length_node_1.calculateBodyLength,
33
+ credentialDefaultProvider: config?.credentialDefaultProvider ?? (0, client_sts_1.decorateDefaultCredentialProvider)(credential_provider_node_1.defaultProvider),
31
34
  defaultUserAgentProvider: config?.defaultUserAgentProvider ??
32
35
  (0, util_user_agent_node_1.defaultUserAgent)({ serviceId: clientSharedValues.serviceId, clientVersion: package_json_1.default.version }),
33
36
  maxAttempts: config?.maxAttempts ?? (0, node_config_provider_1.loadConfig)(middleware_retry_1.NODE_MAX_ATTEMPT_CONFIG_OPTIONS),
@@ -1,10 +1,12 @@
1
1
  import { createAggregatedClient } from "@smithy/smithy-client";
2
2
  import { CreateTokenCommand } from "./commands/CreateTokenCommand";
3
+ import { CreateTokenWithIAMCommand, } from "./commands/CreateTokenWithIAMCommand";
3
4
  import { RegisterClientCommand, } from "./commands/RegisterClientCommand";
4
5
  import { StartDeviceAuthorizationCommand, } from "./commands/StartDeviceAuthorizationCommand";
5
6
  import { SSOOIDCClient } from "./SSOOIDCClient";
6
7
  const commands = {
7
8
  CreateTokenCommand,
9
+ CreateTokenWithIAMCommand,
8
10
  RegisterClientCommand,
9
11
  StartDeviceAuthorizationCommand,
10
12
  };
@@ -1,6 +1,7 @@
1
1
  import { getHostHeaderPlugin, resolveHostHeaderConfig, } from "@aws-sdk/middleware-host-header";
2
2
  import { getLoggerPlugin } from "@aws-sdk/middleware-logger";
3
3
  import { getRecursionDetectionPlugin } from "@aws-sdk/middleware-recursion-detection";
4
+ import { resolveAwsAuthConfig } from "@aws-sdk/middleware-signing";
4
5
  import { getUserAgentPlugin, resolveUserAgentConfig, } from "@aws-sdk/middleware-user-agent";
5
6
  import { resolveRegionConfig } from "@smithy/config-resolver";
6
7
  import { getContentLengthPlugin } from "@smithy/middleware-content-length";
@@ -19,10 +20,11 @@ export class SSOOIDCClient extends __Client {
19
20
  const _config_3 = resolveEndpointConfig(_config_2);
20
21
  const _config_4 = resolveRetryConfig(_config_3);
21
22
  const _config_5 = resolveHostHeaderConfig(_config_4);
22
- const _config_6 = resolveUserAgentConfig(_config_5);
23
- const _config_7 = resolveRuntimeExtensions(_config_6, configuration?.extensions || []);
24
- super(_config_7);
25
- this.config = _config_7;
23
+ const _config_6 = resolveAwsAuthConfig(_config_5);
24
+ const _config_7 = resolveUserAgentConfig(_config_6);
25
+ const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []);
26
+ super(_config_8);
27
+ this.config = _config_8;
26
28
  this.middlewareStack.use(getRetryPlugin(this.config));
27
29
  this.middlewareStack.use(getContentLengthPlugin(this.config));
28
30
  this.middlewareStack.use(getHostHeaderPlugin(this.config));
@@ -2,6 +2,7 @@ import { getEndpointPlugin } from "@smithy/middleware-endpoint";
2
2
  import { getSerdePlugin } from "@smithy/middleware-serde";
3
3
  import { Command as $Command } from "@smithy/smithy-client";
4
4
  import { SMITHY_CONTEXT_KEY, } from "@smithy/types";
5
+ import { CreateTokenRequestFilterSensitiveLog, CreateTokenResponseFilterSensitiveLog, } from "../models/models_0";
5
6
  import { de_CreateTokenCommand, se_CreateTokenCommand } from "../protocols/Aws_restJson1";
6
7
  export { $Command };
7
8
  export class CreateTokenCommand extends $Command {
@@ -28,8 +29,8 @@ export class CreateTokenCommand extends $Command {
28
29
  logger,
29
30
  clientName,
30
31
  commandName,
31
- inputFilterSensitiveLog: (_) => _,
32
- outputFilterSensitiveLog: (_) => _,
32
+ inputFilterSensitiveLog: CreateTokenRequestFilterSensitiveLog,
33
+ outputFilterSensitiveLog: CreateTokenResponseFilterSensitiveLog,
33
34
  [SMITHY_CONTEXT_KEY]: {
34
35
  service: "AWSSSOOIDCService",
35
36
  operation: "CreateToken",
@@ -0,0 +1,50 @@
1
+ import { getAwsAuthPlugin } from "@aws-sdk/middleware-signing";
2
+ import { getEndpointPlugin } from "@smithy/middleware-endpoint";
3
+ import { getSerdePlugin } from "@smithy/middleware-serde";
4
+ import { Command as $Command } from "@smithy/smithy-client";
5
+ import { SMITHY_CONTEXT_KEY, } from "@smithy/types";
6
+ import { CreateTokenWithIAMRequestFilterSensitiveLog, CreateTokenWithIAMResponseFilterSensitiveLog, } from "../models/models_0";
7
+ import { de_CreateTokenWithIAMCommand, se_CreateTokenWithIAMCommand } from "../protocols/Aws_restJson1";
8
+ export { $Command };
9
+ export class CreateTokenWithIAMCommand extends $Command {
10
+ static getEndpointParameterInstructions() {
11
+ return {
12
+ UseFIPS: { type: "builtInParams", name: "useFipsEndpoint" },
13
+ Endpoint: { type: "builtInParams", name: "endpoint" },
14
+ Region: { type: "builtInParams", name: "region" },
15
+ UseDualStack: { type: "builtInParams", name: "useDualstackEndpoint" },
16
+ };
17
+ }
18
+ constructor(input) {
19
+ super();
20
+ this.input = input;
21
+ }
22
+ resolveMiddleware(clientStack, configuration, options) {
23
+ this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));
24
+ this.middlewareStack.use(getEndpointPlugin(configuration, CreateTokenWithIAMCommand.getEndpointParameterInstructions()));
25
+ this.middlewareStack.use(getAwsAuthPlugin(configuration));
26
+ const stack = clientStack.concat(this.middlewareStack);
27
+ const { logger } = configuration;
28
+ const clientName = "SSOOIDCClient";
29
+ const commandName = "CreateTokenWithIAMCommand";
30
+ const handlerExecutionContext = {
31
+ logger,
32
+ clientName,
33
+ commandName,
34
+ inputFilterSensitiveLog: CreateTokenWithIAMRequestFilterSensitiveLog,
35
+ outputFilterSensitiveLog: CreateTokenWithIAMResponseFilterSensitiveLog,
36
+ [SMITHY_CONTEXT_KEY]: {
37
+ service: "AWSSSOOIDCService",
38
+ operation: "CreateTokenWithIAM",
39
+ },
40
+ };
41
+ const { requestHandler } = configuration;
42
+ return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);
43
+ }
44
+ serialize(input, context) {
45
+ return se_CreateTokenWithIAMCommand(input, context);
46
+ }
47
+ deserialize(output, context) {
48
+ return de_CreateTokenWithIAMCommand(output, context);
49
+ }
50
+ }
@@ -2,6 +2,7 @@ import { getEndpointPlugin } from "@smithy/middleware-endpoint";
2
2
  import { getSerdePlugin } from "@smithy/middleware-serde";
3
3
  import { Command as $Command } from "@smithy/smithy-client";
4
4
  import { SMITHY_CONTEXT_KEY, } from "@smithy/types";
5
+ import { RegisterClientResponseFilterSensitiveLog, } from "../models/models_0";
5
6
  import { de_RegisterClientCommand, se_RegisterClientCommand } from "../protocols/Aws_restJson1";
6
7
  export { $Command };
7
8
  export class RegisterClientCommand extends $Command {
@@ -29,7 +30,7 @@ export class RegisterClientCommand extends $Command {
29
30
  clientName,
30
31
  commandName,
31
32
  inputFilterSensitiveLog: (_) => _,
32
- outputFilterSensitiveLog: (_) => _,
33
+ outputFilterSensitiveLog: RegisterClientResponseFilterSensitiveLog,
33
34
  [SMITHY_CONTEXT_KEY]: {
34
35
  service: "AWSSSOOIDCService",
35
36
  operation: "RegisterClient",
@@ -2,6 +2,7 @@ import { getEndpointPlugin } from "@smithy/middleware-endpoint";
2
2
  import { getSerdePlugin } from "@smithy/middleware-serde";
3
3
  import { Command as $Command } from "@smithy/smithy-client";
4
4
  import { SMITHY_CONTEXT_KEY, } from "@smithy/types";
5
+ import { StartDeviceAuthorizationRequestFilterSensitiveLog, } from "../models/models_0";
5
6
  import { de_StartDeviceAuthorizationCommand, se_StartDeviceAuthorizationCommand } from "../protocols/Aws_restJson1";
6
7
  export { $Command };
7
8
  export class StartDeviceAuthorizationCommand extends $Command {
@@ -28,7 +29,7 @@ export class StartDeviceAuthorizationCommand extends $Command {
28
29
  logger,
29
30
  clientName,
30
31
  commandName,
31
- inputFilterSensitiveLog: (_) => _,
32
+ inputFilterSensitiveLog: StartDeviceAuthorizationRequestFilterSensitiveLog,
32
33
  outputFilterSensitiveLog: (_) => _,
33
34
  [SMITHY_CONTEXT_KEY]: {
34
35
  service: "AWSSSOOIDCService",
@@ -1,3 +1,4 @@
1
1
  export * from "./CreateTokenCommand";
2
+ export * from "./CreateTokenWithIAMCommand";
2
3
  export * from "./RegisterClientCommand";
3
4
  export * from "./StartDeviceAuthorizationCommand";