import { loadRestJsonErrorCode, parseJsonBody as parseBody, parseJsonErrorBody as parseErrorBody } from "@aws-sdk/core"; import { requestBuilder as rb } from "@smithy/core"; import { _json, collectBody, decorateServiceException as __decorateServiceException, expectNonNull as __expectNonNull, expectObject as __expectObject, expectString as __expectString, map, take, withBaseException, } from "@smithy/smithy-client"; import { InvalidRequestException, ResourceNotFoundException, TooManyRequestsException, UnauthorizedException, } from "../models/models_0"; import { SSOServiceException as __BaseException } from "../models/SSOServiceException"; export const se_GetRoleCredentialsCommand = async (input, context) => { const b = rb(input, context); const headers = map({}, isSerializableHeaderValue, { [_xasbt]: input[_aT], }); b.bp("/federation/credentials"); const query = map({ [_rn]: [, __expectNonNull(input[_rN], `roleName`)], [_ai]: [, __expectNonNull(input[_aI], `accountId`)], }); let body; b.m("GET").h(headers).q(query).b(body); return b.build(); }; export const se_ListAccountRolesCommand = async (input, context) => { const b = rb(input, context); const headers = map({}, isSerializableHeaderValue, { [_xasbt]: input[_aT], }); b.bp("/assignment/roles"); const query = map({ [_nt]: [, input[_nT]], [_mr]: [() => input.maxResults !== void 0, () => input[_mR].toString()], [_ai]: [, __expectNonNull(input[_aI], `accountId`)], }); let body; b.m("GET").h(headers).q(query).b(body); return b.build(); }; export const se_ListAccountsCommand = async (input, context) => { const b = rb(input, context); const headers = map({}, isSerializableHeaderValue, { [_xasbt]: input[_aT], }); b.bp("/assignment/accounts"); const query = map({ [_nt]: [, input[_nT]], [_mr]: [() => input.maxResults !== void 0, () => input[_mR].toString()], }); let body; b.m("GET").h(headers).q(query).b(body); return b.build(); }; export const se_LogoutCommand = async (input, context) => { const b = rb(input, context); const headers = map({}, isSerializableHeaderValue, { [_xasbt]: input[_aT], }); b.bp("/logout"); let body; b.m("POST").h(headers).b(body); return b.build(); }; export const de_GetRoleCredentialsCommand = async (output, context) => { if (output.statusCode !== 200 && output.statusCode >= 300) { return de_CommandError(output, context); } const contents = map({ $metadata: deserializeMetadata(output), }); const data = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body"); const doc = take(data, { roleCredentials: _json, }); Object.assign(contents, doc); return contents; }; export const de_ListAccountRolesCommand = async (output, context) => { if (output.statusCode !== 200 && output.statusCode >= 300) { return de_CommandError(output, context); } const contents = map({ $metadata: deserializeMetadata(output), }); const data = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body"); const doc = take(data, { nextToken: __expectString, roleList: _json, }); Object.assign(contents, doc); return contents; }; export const de_ListAccountsCommand = async (output, context) => { if (output.statusCode !== 200 && output.statusCode >= 300) { return de_CommandError(output, context); } const contents = map({ $metadata: deserializeMetadata(output), }); const data = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body"); const doc = take(data, { accountList: _json, nextToken: __expectString, }); Object.assign(contents, doc); return contents; }; export const de_LogoutCommand = async (output, context) => { if (output.statusCode !== 200 && output.statusCode >= 300) { return de_CommandError(output, context); } const contents = map({ $metadata: deserializeMetadata(output), }); await collectBody(output.body, context); return contents; }; const de_CommandError = async (output, context) => { const parsedOutput = { ...output, body: await parseErrorBody(output.body, context), }; const errorCode = loadRestJsonErrorCode(output, parsedOutput.body); switch (errorCode) { case "InvalidRequestException": case "com.amazonaws.sso#InvalidRequestException": throw await de_InvalidRequestExceptionRes(parsedOutput, context); case "ResourceNotFoundException": case "com.amazonaws.sso#ResourceNotFoundException": throw await de_ResourceNotFoundExceptionRes(parsedOutput, context); case "TooManyRequestsException": case "com.amazonaws.sso#TooManyRequestsException": throw await de_TooManyRequestsExceptionRes(parsedOutput, context); case "UnauthorizedException": case "com.amazonaws.sso#UnauthorizedException": throw await de_UnauthorizedExceptionRes(parsedOutput, context); default: const parsedBody = parsedOutput.body; return throwDefaultError({ output, parsedBody, errorCode, }); } }; const throwDefaultError = withBaseException(__BaseException); const de_InvalidRequestExceptionRes = async (parsedOutput, context) => { const contents = map({}); const data = parsedOutput.body; const doc = take(data, { message: __expectString, }); Object.assign(contents, doc); const exception = new InvalidRequestException({ $metadata: deserializeMetadata(parsedOutput), ...contents, }); return __decorateServiceException(exception, parsedOutput.body); }; const de_ResourceNotFoundExceptionRes = async (parsedOutput, context) => { const contents = map({}); const data = parsedOutput.body; const doc = take(data, { message: __expectString, }); Object.assign(contents, doc); const exception = new ResourceNotFoundException({ $metadata: deserializeMetadata(parsedOutput), ...contents, }); return __decorateServiceException(exception, parsedOutput.body); }; const de_TooManyRequestsExceptionRes = async (parsedOutput, context) => { const contents = map({}); const data = parsedOutput.body; const doc = take(data, { message: __expectString, }); Object.assign(contents, doc); const exception = new TooManyRequestsException({ $metadata: deserializeMetadata(parsedOutput), ...contents, }); return __decorateServiceException(exception, parsedOutput.body); }; const de_UnauthorizedExceptionRes = async (parsedOutput, context) => { const contents = map({}); const data = parsedOutput.body; const doc = take(data, { message: __expectString, }); Object.assign(contents, doc); const exception = new UnauthorizedException({ $metadata: deserializeMetadata(parsedOutput), ...contents, }); return __decorateServiceException(exception, parsedOutput.body); }; const deserializeMetadata = (output) => ({ httpStatusCode: output.statusCode, requestId: output.headers["x-amzn-requestid"] ?? output.headers["x-amzn-request-id"] ?? output.headers["x-amz-request-id"], extendedRequestId: output.headers["x-amz-id-2"], cfId: output.headers["x-amz-cf-id"], }); const collectBodyString = (streamBody, context) => collectBody(streamBody, context).then((body) => context.utf8Encoder(body)); const isSerializableHeaderValue = (value) => value !== undefined && value !== null && value !== "" && (!Object.getOwnPropertyNames(value).includes("length") || value.length != 0) && (!Object.getOwnPropertyNames(value).includes("size") || value.size != 0); const _aI = "accountId"; const _aT = "accessToken"; const _ai = "account_id"; const _mR = "maxResults"; const _mr = "max_result"; const _nT = "nextToken"; const _nt = "next_token"; const _rN = "roleName"; const _rn = "role_name"; const _xasbt = "x-amz-sso_bearer_token";