UNPKG

cdk-amazon-chime-resources

Version:

![Experimental](https://img.shields.io/badge/experimental-important.svg?style=for-the-badge)

407 lines (406 loc) 16.9 kB
import { HttpRequest as __HttpRequest } from "@aws-sdk/protocol-http"; import { decorateServiceException as __decorateServiceException, expectLong as __expectLong, expectNonNull as __expectNonNull, expectObject as __expectObject, expectString as __expectString, map as __map, throwDefaultError, } from "@aws-sdk/smithy-client"; import { InvalidRequestException, ResourceNotFoundException, TooManyRequestsException, UnauthorizedException, } from "../models/models_0"; import { SSOServiceException as __BaseException } from "../models/SSOServiceException"; export const serializeAws_restJson1GetRoleCredentialsCommand = async (input, context) => { const { hostname, protocol = "https", port, path: basePath } = await context.endpoint(); const headers = map({}, isSerializableHeaderValue, { "x-amz-sso_bearer_token": input.accessToken, }); const resolvedPath = `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + "/federation/credentials"; const query = map({ role_name: [, __expectNonNull(input.roleName, `roleName`)], account_id: [, __expectNonNull(input.accountId, `accountId`)], }); let body; return new __HttpRequest({ protocol, hostname, port, method: "GET", headers, path: resolvedPath, query, body, }); }; export const serializeAws_restJson1ListAccountRolesCommand = async (input, context) => { const { hostname, protocol = "https", port, path: basePath } = await context.endpoint(); const headers = map({}, isSerializableHeaderValue, { "x-amz-sso_bearer_token": input.accessToken, }); const resolvedPath = `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + "/assignment/roles"; const query = map({ next_token: [, input.nextToken], max_result: [() => input.maxResults !== void 0, () => input.maxResults.toString()], account_id: [, __expectNonNull(input.accountId, `accountId`)], }); let body; return new __HttpRequest({ protocol, hostname, port, method: "GET", headers, path: resolvedPath, query, body, }); }; export const serializeAws_restJson1ListAccountsCommand = async (input, context) => { const { hostname, protocol = "https", port, path: basePath } = await context.endpoint(); const headers = map({}, isSerializableHeaderValue, { "x-amz-sso_bearer_token": input.accessToken, }); const resolvedPath = `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + "/assignment/accounts"; const query = map({ next_token: [, input.nextToken], max_result: [() => input.maxResults !== void 0, () => input.maxResults.toString()], }); let body; return new __HttpRequest({ protocol, hostname, port, method: "GET", headers, path: resolvedPath, query, body, }); }; export const serializeAws_restJson1LogoutCommand = async (input, context) => { const { hostname, protocol = "https", port, path: basePath } = await context.endpoint(); const headers = map({}, isSerializableHeaderValue, { "x-amz-sso_bearer_token": input.accessToken, }); const resolvedPath = `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + "/logout"; let body; return new __HttpRequest({ protocol, hostname, port, method: "POST", headers, path: resolvedPath, body, }); }; export const deserializeAws_restJson1GetRoleCredentialsCommand = async (output, context) => { if (output.statusCode !== 200 && output.statusCode >= 300) { return deserializeAws_restJson1GetRoleCredentialsCommandError(output, context); } const contents = map({ $metadata: deserializeMetadata(output), }); const data = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body"); if (data.roleCredentials != null) { contents.roleCredentials = deserializeAws_restJson1RoleCredentials(data.roleCredentials, context); } return contents; }; const deserializeAws_restJson1GetRoleCredentialsCommandError = 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 deserializeAws_restJson1InvalidRequestExceptionResponse(parsedOutput, context); case "ResourceNotFoundException": case "com.amazonaws.sso#ResourceNotFoundException": throw await deserializeAws_restJson1ResourceNotFoundExceptionResponse(parsedOutput, context); case "TooManyRequestsException": case "com.amazonaws.sso#TooManyRequestsException": throw await deserializeAws_restJson1TooManyRequestsExceptionResponse(parsedOutput, context); case "UnauthorizedException": case "com.amazonaws.sso#UnauthorizedException": throw await deserializeAws_restJson1UnauthorizedExceptionResponse(parsedOutput, context); default: const parsedBody = parsedOutput.body; throwDefaultError({ output, parsedBody, exceptionCtor: __BaseException, errorCode, }); } }; export const deserializeAws_restJson1ListAccountRolesCommand = async (output, context) => { if (output.statusCode !== 200 && output.statusCode >= 300) { return deserializeAws_restJson1ListAccountRolesCommandError(output, context); } const contents = map({ $metadata: deserializeMetadata(output), }); const data = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body"); if (data.nextToken != null) { contents.nextToken = __expectString(data.nextToken); } if (data.roleList != null) { contents.roleList = deserializeAws_restJson1RoleListType(data.roleList, context); } return contents; }; const deserializeAws_restJson1ListAccountRolesCommandError = 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 deserializeAws_restJson1InvalidRequestExceptionResponse(parsedOutput, context); case "ResourceNotFoundException": case "com.amazonaws.sso#ResourceNotFoundException": throw await deserializeAws_restJson1ResourceNotFoundExceptionResponse(parsedOutput, context); case "TooManyRequestsException": case "com.amazonaws.sso#TooManyRequestsException": throw await deserializeAws_restJson1TooManyRequestsExceptionResponse(parsedOutput, context); case "UnauthorizedException": case "com.amazonaws.sso#UnauthorizedException": throw await deserializeAws_restJson1UnauthorizedExceptionResponse(parsedOutput, context); default: const parsedBody = parsedOutput.body; throwDefaultError({ output, parsedBody, exceptionCtor: __BaseException, errorCode, }); } }; export const deserializeAws_restJson1ListAccountsCommand = async (output, context) => { if (output.statusCode !== 200 && output.statusCode >= 300) { return deserializeAws_restJson1ListAccountsCommandError(output, context); } const contents = map({ $metadata: deserializeMetadata(output), }); const data = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body"); if (data.accountList != null) { contents.accountList = deserializeAws_restJson1AccountListType(data.accountList, context); } if (data.nextToken != null) { contents.nextToken = __expectString(data.nextToken); } return contents; }; const deserializeAws_restJson1ListAccountsCommandError = 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 deserializeAws_restJson1InvalidRequestExceptionResponse(parsedOutput, context); case "ResourceNotFoundException": case "com.amazonaws.sso#ResourceNotFoundException": throw await deserializeAws_restJson1ResourceNotFoundExceptionResponse(parsedOutput, context); case "TooManyRequestsException": case "com.amazonaws.sso#TooManyRequestsException": throw await deserializeAws_restJson1TooManyRequestsExceptionResponse(parsedOutput, context); case "UnauthorizedException": case "com.amazonaws.sso#UnauthorizedException": throw await deserializeAws_restJson1UnauthorizedExceptionResponse(parsedOutput, context); default: const parsedBody = parsedOutput.body; throwDefaultError({ output, parsedBody, exceptionCtor: __BaseException, errorCode, }); } }; export const deserializeAws_restJson1LogoutCommand = async (output, context) => { if (output.statusCode !== 200 && output.statusCode >= 300) { return deserializeAws_restJson1LogoutCommandError(output, context); } const contents = map({ $metadata: deserializeMetadata(output), }); await collectBody(output.body, context); return contents; }; const deserializeAws_restJson1LogoutCommandError = 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 deserializeAws_restJson1InvalidRequestExceptionResponse(parsedOutput, context); case "TooManyRequestsException": case "com.amazonaws.sso#TooManyRequestsException": throw await deserializeAws_restJson1TooManyRequestsExceptionResponse(parsedOutput, context); case "UnauthorizedException": case "com.amazonaws.sso#UnauthorizedException": throw await deserializeAws_restJson1UnauthorizedExceptionResponse(parsedOutput, context); default: const parsedBody = parsedOutput.body; throwDefaultError({ output, parsedBody, exceptionCtor: __BaseException, errorCode, }); } }; const map = __map; const deserializeAws_restJson1InvalidRequestExceptionResponse = async (parsedOutput, context) => { const contents = map({}); const data = parsedOutput.body; if (data.message != null) { contents.message = __expectString(data.message); } const exception = new InvalidRequestException({ $metadata: deserializeMetadata(parsedOutput), ...contents, }); return __decorateServiceException(exception, parsedOutput.body); }; const deserializeAws_restJson1ResourceNotFoundExceptionResponse = async (parsedOutput, context) => { const contents = map({}); const data = parsedOutput.body; if (data.message != null) { contents.message = __expectString(data.message); } const exception = new ResourceNotFoundException({ $metadata: deserializeMetadata(parsedOutput), ...contents, }); return __decorateServiceException(exception, parsedOutput.body); }; const deserializeAws_restJson1TooManyRequestsExceptionResponse = async (parsedOutput, context) => { const contents = map({}); const data = parsedOutput.body; if (data.message != null) { contents.message = __expectString(data.message); } const exception = new TooManyRequestsException({ $metadata: deserializeMetadata(parsedOutput), ...contents, }); return __decorateServiceException(exception, parsedOutput.body); }; const deserializeAws_restJson1UnauthorizedExceptionResponse = async (parsedOutput, context) => { const contents = map({}); const data = parsedOutput.body; if (data.message != null) { contents.message = __expectString(data.message); } const exception = new UnauthorizedException({ $metadata: deserializeMetadata(parsedOutput), ...contents, }); return __decorateServiceException(exception, parsedOutput.body); }; const deserializeAws_restJson1AccountInfo = (output, context) => { return { accountId: __expectString(output.accountId), accountName: __expectString(output.accountName), emailAddress: __expectString(output.emailAddress), }; }; const deserializeAws_restJson1AccountListType = (output, context) => { const retVal = (output || []) .filter((e) => e != null) .map((entry) => { if (entry === null) { return null; } return deserializeAws_restJson1AccountInfo(entry, context); }); return retVal; }; const deserializeAws_restJson1RoleCredentials = (output, context) => { return { accessKeyId: __expectString(output.accessKeyId), expiration: __expectLong(output.expiration), secretAccessKey: __expectString(output.secretAccessKey), sessionToken: __expectString(output.sessionToken), }; }; const deserializeAws_restJson1RoleInfo = (output, context) => { return { accountId: __expectString(output.accountId), roleName: __expectString(output.roleName), }; }; const deserializeAws_restJson1RoleListType = (output, context) => { const retVal = (output || []) .filter((e) => e != null) .map((entry) => { if (entry === null) { return null; } return deserializeAws_restJson1RoleInfo(entry, context); }); return retVal; }; 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 collectBody = (streamBody = new Uint8Array(), context) => { if (streamBody instanceof Uint8Array) { return Promise.resolve(streamBody); } return context.streamCollector(streamBody) || Promise.resolve(new Uint8Array()); }; 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 parseBody = (streamBody, context) => collectBodyString(streamBody, context).then((encoded) => { if (encoded.length) { return JSON.parse(encoded); } return {}; }); const parseErrorBody = async (errorBody, context) => { const value = await parseBody(errorBody, context); value.message = value.message ?? value.Message; return value; }; const loadRestJsonErrorCode = (output, data) => { const findKey = (object, key) => Object.keys(object).find((k) => k.toLowerCase() === key.toLowerCase()); const sanitizeErrorCode = (rawValue) => { let cleanValue = rawValue; if (typeof cleanValue === "number") { cleanValue = cleanValue.toString(); } if (cleanValue.indexOf(",") >= 0) { cleanValue = cleanValue.split(",")[0]; } if (cleanValue.indexOf(":") >= 0) { cleanValue = cleanValue.split(":")[0]; } if (cleanValue.indexOf("#") >= 0) { cleanValue = cleanValue.split("#")[1]; } return cleanValue; }; const headerKey = findKey(output.headers, "x-amzn-errortype"); if (headerKey !== undefined) { return sanitizeErrorCode(output.headers[headerKey]); } if (data.code !== undefined) { return sanitizeErrorCode(data.code); } if (data["__type"] !== undefined) { return sanitizeErrorCode(data["__type"]); } };