@softchef/cdk-iot-device-management
Version:
IoT device management is composed of things, thing types, thing groups, jobs, files API services. The constructs can be used independently, that are based on full-managed service to create an API Gateway & Lambda function.
522 lines (521 loc) • 22.3 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.deserializeAws_restJson1LogoutCommand = exports.deserializeAws_restJson1ListAccountsCommand = exports.deserializeAws_restJson1ListAccountRolesCommand = exports.deserializeAws_restJson1GetRoleCredentialsCommand = exports.serializeAws_restJson1LogoutCommand = exports.serializeAws_restJson1ListAccountsCommand = exports.serializeAws_restJson1ListAccountRolesCommand = exports.serializeAws_restJson1GetRoleCredentialsCommand = void 0;
const protocol_http_1 = require("@aws-sdk/protocol-http");
const smithy_client_1 = require("@aws-sdk/smithy-client");
const serializeAws_restJson1GetRoleCredentialsCommand = async (input, context) => {
const { hostname, protocol = "https", port, path: basePath } = await context.endpoint();
const headers = {
...(isSerializableHeaderValue(input.accessToken) && { "x-amz-sso_bearer_token": input.accessToken }),
};
const resolvedPath = `${(basePath === null || basePath === void 0 ? void 0 : basePath.endsWith("/")) ? basePath.slice(0, -1) : basePath || ""}` + "/federation/credentials";
const query = {
...(input.roleName !== undefined && { role_name: input.roleName }),
...(input.accountId !== undefined && { account_id: input.accountId }),
};
let body;
return new protocol_http_1.HttpRequest({
protocol,
hostname,
port,
method: "GET",
headers,
path: resolvedPath,
query,
body,
});
};
exports.serializeAws_restJson1GetRoleCredentialsCommand = serializeAws_restJson1GetRoleCredentialsCommand;
const serializeAws_restJson1ListAccountRolesCommand = async (input, context) => {
const { hostname, protocol = "https", port, path: basePath } = await context.endpoint();
const headers = {
...(isSerializableHeaderValue(input.accessToken) && { "x-amz-sso_bearer_token": input.accessToken }),
};
const resolvedPath = `${(basePath === null || basePath === void 0 ? void 0 : basePath.endsWith("/")) ? basePath.slice(0, -1) : basePath || ""}` + "/assignment/roles";
const query = {
...(input.nextToken !== undefined && { next_token: input.nextToken }),
...(input.maxResults !== undefined && { max_result: input.maxResults.toString() }),
...(input.accountId !== undefined && { account_id: input.accountId }),
};
let body;
return new protocol_http_1.HttpRequest({
protocol,
hostname,
port,
method: "GET",
headers,
path: resolvedPath,
query,
body,
});
};
exports.serializeAws_restJson1ListAccountRolesCommand = serializeAws_restJson1ListAccountRolesCommand;
const serializeAws_restJson1ListAccountsCommand = async (input, context) => {
const { hostname, protocol = "https", port, path: basePath } = await context.endpoint();
const headers = {
...(isSerializableHeaderValue(input.accessToken) && { "x-amz-sso_bearer_token": input.accessToken }),
};
const resolvedPath = `${(basePath === null || basePath === void 0 ? void 0 : basePath.endsWith("/")) ? basePath.slice(0, -1) : basePath || ""}` + "/assignment/accounts";
const query = {
...(input.nextToken !== undefined && { next_token: input.nextToken }),
...(input.maxResults !== undefined && { max_result: input.maxResults.toString() }),
};
let body;
return new protocol_http_1.HttpRequest({
protocol,
hostname,
port,
method: "GET",
headers,
path: resolvedPath,
query,
body,
});
};
exports.serializeAws_restJson1ListAccountsCommand = serializeAws_restJson1ListAccountsCommand;
const serializeAws_restJson1LogoutCommand = async (input, context) => {
const { hostname, protocol = "https", port, path: basePath } = await context.endpoint();
const headers = {
...(isSerializableHeaderValue(input.accessToken) && { "x-amz-sso_bearer_token": input.accessToken }),
};
const resolvedPath = `${(basePath === null || basePath === void 0 ? void 0 : basePath.endsWith("/")) ? basePath.slice(0, -1) : basePath || ""}` + "/logout";
let body;
return new protocol_http_1.HttpRequest({
protocol,
hostname,
port,
method: "POST",
headers,
path: resolvedPath,
body,
});
};
exports.serializeAws_restJson1LogoutCommand = serializeAws_restJson1LogoutCommand;
const deserializeAws_restJson1GetRoleCredentialsCommand = async (output, context) => {
if (output.statusCode !== 200 && output.statusCode >= 300) {
return deserializeAws_restJson1GetRoleCredentialsCommandError(output, context);
}
const contents = {
$metadata: deserializeMetadata(output),
roleCredentials: undefined,
};
const data = smithy_client_1.expectNonNull(smithy_client_1.expectObject(await parseBody(output.body, context)), "body");
if (data.roleCredentials !== undefined && data.roleCredentials !== null) {
contents.roleCredentials = deserializeAws_restJson1RoleCredentials(data.roleCredentials, context);
}
return Promise.resolve(contents);
};
exports.deserializeAws_restJson1GetRoleCredentialsCommand = deserializeAws_restJson1GetRoleCredentialsCommand;
const deserializeAws_restJson1GetRoleCredentialsCommandError = async (output, context) => {
const parsedOutput = {
...output,
body: await parseBody(output.body, context),
};
let response;
let errorCode = "UnknownError";
errorCode = loadRestJsonErrorCode(output, parsedOutput.body);
switch (errorCode) {
case "InvalidRequestException":
case "com.amazonaws.sso#InvalidRequestException":
response = {
...(await deserializeAws_restJson1InvalidRequestExceptionResponse(parsedOutput, context)),
name: errorCode,
$metadata: deserializeMetadata(output),
};
break;
case "ResourceNotFoundException":
case "com.amazonaws.sso#ResourceNotFoundException":
response = {
...(await deserializeAws_restJson1ResourceNotFoundExceptionResponse(parsedOutput, context)),
name: errorCode,
$metadata: deserializeMetadata(output),
};
break;
case "TooManyRequestsException":
case "com.amazonaws.sso#TooManyRequestsException":
response = {
...(await deserializeAws_restJson1TooManyRequestsExceptionResponse(parsedOutput, context)),
name: errorCode,
$metadata: deserializeMetadata(output),
};
break;
case "UnauthorizedException":
case "com.amazonaws.sso#UnauthorizedException":
response = {
...(await deserializeAws_restJson1UnauthorizedExceptionResponse(parsedOutput, context)),
name: errorCode,
$metadata: deserializeMetadata(output),
};
break;
default:
const parsedBody = parsedOutput.body;
errorCode = parsedBody.code || parsedBody.Code || errorCode;
response = {
...parsedBody,
name: `${errorCode}`,
message: parsedBody.message || parsedBody.Message || errorCode,
$fault: "client",
$metadata: deserializeMetadata(output),
};
}
const message = response.message || response.Message || errorCode;
response.message = message;
delete response.Message;
return Promise.reject(Object.assign(new Error(message), response));
};
const deserializeAws_restJson1ListAccountRolesCommand = async (output, context) => {
if (output.statusCode !== 200 && output.statusCode >= 300) {
return deserializeAws_restJson1ListAccountRolesCommandError(output, context);
}
const contents = {
$metadata: deserializeMetadata(output),
nextToken: undefined,
roleList: undefined,
};
const data = smithy_client_1.expectNonNull(smithy_client_1.expectObject(await parseBody(output.body, context)), "body");
if (data.nextToken !== undefined && data.nextToken !== null) {
contents.nextToken = smithy_client_1.expectString(data.nextToken);
}
if (data.roleList !== undefined && data.roleList !== null) {
contents.roleList = deserializeAws_restJson1RoleListType(data.roleList, context);
}
return Promise.resolve(contents);
};
exports.deserializeAws_restJson1ListAccountRolesCommand = deserializeAws_restJson1ListAccountRolesCommand;
const deserializeAws_restJson1ListAccountRolesCommandError = async (output, context) => {
const parsedOutput = {
...output,
body: await parseBody(output.body, context),
};
let response;
let errorCode = "UnknownError";
errorCode = loadRestJsonErrorCode(output, parsedOutput.body);
switch (errorCode) {
case "InvalidRequestException":
case "com.amazonaws.sso#InvalidRequestException":
response = {
...(await deserializeAws_restJson1InvalidRequestExceptionResponse(parsedOutput, context)),
name: errorCode,
$metadata: deserializeMetadata(output),
};
break;
case "ResourceNotFoundException":
case "com.amazonaws.sso#ResourceNotFoundException":
response = {
...(await deserializeAws_restJson1ResourceNotFoundExceptionResponse(parsedOutput, context)),
name: errorCode,
$metadata: deserializeMetadata(output),
};
break;
case "TooManyRequestsException":
case "com.amazonaws.sso#TooManyRequestsException":
response = {
...(await deserializeAws_restJson1TooManyRequestsExceptionResponse(parsedOutput, context)),
name: errorCode,
$metadata: deserializeMetadata(output),
};
break;
case "UnauthorizedException":
case "com.amazonaws.sso#UnauthorizedException":
response = {
...(await deserializeAws_restJson1UnauthorizedExceptionResponse(parsedOutput, context)),
name: errorCode,
$metadata: deserializeMetadata(output),
};
break;
default:
const parsedBody = parsedOutput.body;
errorCode = parsedBody.code || parsedBody.Code || errorCode;
response = {
...parsedBody,
name: `${errorCode}`,
message: parsedBody.message || parsedBody.Message || errorCode,
$fault: "client",
$metadata: deserializeMetadata(output),
};
}
const message = response.message || response.Message || errorCode;
response.message = message;
delete response.Message;
return Promise.reject(Object.assign(new Error(message), response));
};
const deserializeAws_restJson1ListAccountsCommand = async (output, context) => {
if (output.statusCode !== 200 && output.statusCode >= 300) {
return deserializeAws_restJson1ListAccountsCommandError(output, context);
}
const contents = {
$metadata: deserializeMetadata(output),
accountList: undefined,
nextToken: undefined,
};
const data = smithy_client_1.expectNonNull(smithy_client_1.expectObject(await parseBody(output.body, context)), "body");
if (data.accountList !== undefined && data.accountList !== null) {
contents.accountList = deserializeAws_restJson1AccountListType(data.accountList, context);
}
if (data.nextToken !== undefined && data.nextToken !== null) {
contents.nextToken = smithy_client_1.expectString(data.nextToken);
}
return Promise.resolve(contents);
};
exports.deserializeAws_restJson1ListAccountsCommand = deserializeAws_restJson1ListAccountsCommand;
const deserializeAws_restJson1ListAccountsCommandError = async (output, context) => {
const parsedOutput = {
...output,
body: await parseBody(output.body, context),
};
let response;
let errorCode = "UnknownError";
errorCode = loadRestJsonErrorCode(output, parsedOutput.body);
switch (errorCode) {
case "InvalidRequestException":
case "com.amazonaws.sso#InvalidRequestException":
response = {
...(await deserializeAws_restJson1InvalidRequestExceptionResponse(parsedOutput, context)),
name: errorCode,
$metadata: deserializeMetadata(output),
};
break;
case "ResourceNotFoundException":
case "com.amazonaws.sso#ResourceNotFoundException":
response = {
...(await deserializeAws_restJson1ResourceNotFoundExceptionResponse(parsedOutput, context)),
name: errorCode,
$metadata: deserializeMetadata(output),
};
break;
case "TooManyRequestsException":
case "com.amazonaws.sso#TooManyRequestsException":
response = {
...(await deserializeAws_restJson1TooManyRequestsExceptionResponse(parsedOutput, context)),
name: errorCode,
$metadata: deserializeMetadata(output),
};
break;
case "UnauthorizedException":
case "com.amazonaws.sso#UnauthorizedException":
response = {
...(await deserializeAws_restJson1UnauthorizedExceptionResponse(parsedOutput, context)),
name: errorCode,
$metadata: deserializeMetadata(output),
};
break;
default:
const parsedBody = parsedOutput.body;
errorCode = parsedBody.code || parsedBody.Code || errorCode;
response = {
...parsedBody,
name: `${errorCode}`,
message: parsedBody.message || parsedBody.Message || errorCode,
$fault: "client",
$metadata: deserializeMetadata(output),
};
}
const message = response.message || response.Message || errorCode;
response.message = message;
delete response.Message;
return Promise.reject(Object.assign(new Error(message), response));
};
const deserializeAws_restJson1LogoutCommand = async (output, context) => {
if (output.statusCode !== 200 && output.statusCode >= 300) {
return deserializeAws_restJson1LogoutCommandError(output, context);
}
const contents = {
$metadata: deserializeMetadata(output),
};
await collectBody(output.body, context);
return Promise.resolve(contents);
};
exports.deserializeAws_restJson1LogoutCommand = deserializeAws_restJson1LogoutCommand;
const deserializeAws_restJson1LogoutCommandError = async (output, context) => {
const parsedOutput = {
...output,
body: await parseBody(output.body, context),
};
let response;
let errorCode = "UnknownError";
errorCode = loadRestJsonErrorCode(output, parsedOutput.body);
switch (errorCode) {
case "InvalidRequestException":
case "com.amazonaws.sso#InvalidRequestException":
response = {
...(await deserializeAws_restJson1InvalidRequestExceptionResponse(parsedOutput, context)),
name: errorCode,
$metadata: deserializeMetadata(output),
};
break;
case "TooManyRequestsException":
case "com.amazonaws.sso#TooManyRequestsException":
response = {
...(await deserializeAws_restJson1TooManyRequestsExceptionResponse(parsedOutput, context)),
name: errorCode,
$metadata: deserializeMetadata(output),
};
break;
case "UnauthorizedException":
case "com.amazonaws.sso#UnauthorizedException":
response = {
...(await deserializeAws_restJson1UnauthorizedExceptionResponse(parsedOutput, context)),
name: errorCode,
$metadata: deserializeMetadata(output),
};
break;
default:
const parsedBody = parsedOutput.body;
errorCode = parsedBody.code || parsedBody.Code || errorCode;
response = {
...parsedBody,
name: `${errorCode}`,
message: parsedBody.message || parsedBody.Message || errorCode,
$fault: "client",
$metadata: deserializeMetadata(output),
};
}
const message = response.message || response.Message || errorCode;
response.message = message;
delete response.Message;
return Promise.reject(Object.assign(new Error(message), response));
};
const deserializeAws_restJson1InvalidRequestExceptionResponse = async (parsedOutput, context) => {
const contents = {
name: "InvalidRequestException",
$fault: "client",
$metadata: deserializeMetadata(parsedOutput),
message: undefined,
};
const data = parsedOutput.body;
if (data.message !== undefined && data.message !== null) {
contents.message = smithy_client_1.expectString(data.message);
}
return contents;
};
const deserializeAws_restJson1ResourceNotFoundExceptionResponse = async (parsedOutput, context) => {
const contents = {
name: "ResourceNotFoundException",
$fault: "client",
$metadata: deserializeMetadata(parsedOutput),
message: undefined,
};
const data = parsedOutput.body;
if (data.message !== undefined && data.message !== null) {
contents.message = smithy_client_1.expectString(data.message);
}
return contents;
};
const deserializeAws_restJson1TooManyRequestsExceptionResponse = async (parsedOutput, context) => {
const contents = {
name: "TooManyRequestsException",
$fault: "client",
$metadata: deserializeMetadata(parsedOutput),
message: undefined,
};
const data = parsedOutput.body;
if (data.message !== undefined && data.message !== null) {
contents.message = smithy_client_1.expectString(data.message);
}
return contents;
};
const deserializeAws_restJson1UnauthorizedExceptionResponse = async (parsedOutput, context) => {
const contents = {
name: "UnauthorizedException",
$fault: "client",
$metadata: deserializeMetadata(parsedOutput),
message: undefined,
};
const data = parsedOutput.body;
if (data.message !== undefined && data.message !== null) {
contents.message = smithy_client_1.expectString(data.message);
}
return contents;
};
const deserializeAws_restJson1AccountInfo = (output, context) => {
return {
accountId: smithy_client_1.expectString(output.accountId),
accountName: smithy_client_1.expectString(output.accountName),
emailAddress: smithy_client_1.expectString(output.emailAddress),
};
};
const deserializeAws_restJson1AccountListType = (output, context) => {
return (output || [])
.filter((e) => e != null)
.map((entry) => {
if (entry === null) {
return null;
}
return deserializeAws_restJson1AccountInfo(entry, context);
});
};
const deserializeAws_restJson1RoleCredentials = (output, context) => {
return {
accessKeyId: smithy_client_1.expectString(output.accessKeyId),
expiration: smithy_client_1.expectLong(output.expiration),
secretAccessKey: smithy_client_1.expectString(output.secretAccessKey),
sessionToken: smithy_client_1.expectString(output.sessionToken),
};
};
const deserializeAws_restJson1RoleInfo = (output, context) => {
return {
accountId: smithy_client_1.expectString(output.accountId),
roleName: smithy_client_1.expectString(output.roleName),
};
};
const deserializeAws_restJson1RoleListType = (output, context) => {
return (output || [])
.filter((e) => e != null)
.map((entry) => {
if (entry === null) {
return null;
}
return deserializeAws_restJson1RoleInfo(entry, context);
});
};
const deserializeMetadata = (output) => {
var _a;
return ({
httpStatusCode: output.statusCode,
requestId: (_a = output.headers["x-amzn-requestid"]) !== null && _a !== void 0 ? _a : output.headers["x-amzn-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 loadRestJsonErrorCode = (output, data) => {
const findKey = (object, key) => Object.keys(object).find((k) => k.toLowerCase() === key.toLowerCase());
const sanitizeErrorCode = (rawValue) => {
let cleanValue = rawValue;
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"]);
}
return "";
};