clients/client-observabilityadmin/src/protocols/Aws_restJson1.ts (383 lines of code) (raw):

// smithy-typescript generated code import { loadRestJsonErrorCode, parseJsonBody as parseBody, parseJsonErrorBody as parseErrorBody } from "@aws-sdk/core"; import { requestBuilder as rb } from "@smithy/core"; import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@smithy/protocol-http"; import { _json, collectBody, decorateServiceException as __decorateServiceException, expectNonNull as __expectNonNull, expectObject as __expectObject, expectString as __expectString, map, take, withBaseException, } from "@smithy/smithy-client"; import { Endpoint as __Endpoint, ResponseMetadata as __ResponseMetadata, SerdeContext as __SerdeContext, } from "@smithy/types"; import { GetTelemetryEvaluationStatusCommandInput, GetTelemetryEvaluationStatusCommandOutput, } from "../commands/GetTelemetryEvaluationStatusCommand"; import { GetTelemetryEvaluationStatusForOrganizationCommandInput, GetTelemetryEvaluationStatusForOrganizationCommandOutput, } from "../commands/GetTelemetryEvaluationStatusForOrganizationCommand"; import { ListResourceTelemetryCommandInput, ListResourceTelemetryCommandOutput, } from "../commands/ListResourceTelemetryCommand"; import { ListResourceTelemetryForOrganizationCommandInput, ListResourceTelemetryForOrganizationCommandOutput, } from "../commands/ListResourceTelemetryForOrganizationCommand"; import { StartTelemetryEvaluationCommandInput, StartTelemetryEvaluationCommandOutput, } from "../commands/StartTelemetryEvaluationCommand"; import { StartTelemetryEvaluationForOrganizationCommandInput, StartTelemetryEvaluationForOrganizationCommandOutput, } from "../commands/StartTelemetryEvaluationForOrganizationCommand"; import { StopTelemetryEvaluationCommandInput, StopTelemetryEvaluationCommandOutput, } from "../commands/StopTelemetryEvaluationCommand"; import { StopTelemetryEvaluationForOrganizationCommandInput, StopTelemetryEvaluationForOrganizationCommandOutput, } from "../commands/StopTelemetryEvaluationForOrganizationCommand"; import { AccessDeniedException, InternalServerException, ResourceType, TelemetryState, TelemetryType, ValidationException, } from "../models/models_0"; import { ObservabilityAdminServiceException as __BaseException } from "../models/ObservabilityAdminServiceException"; /** * serializeAws_restJson1GetTelemetryEvaluationStatusCommand */ export const se_GetTelemetryEvaluationStatusCommand = async ( input: GetTelemetryEvaluationStatusCommandInput, context: __SerdeContext ): Promise<__HttpRequest> => { const b = rb(input, context); const headers: any = {}; b.bp("/GetTelemetryEvaluationStatus"); let body: any; b.m("POST").h(headers).b(body); return b.build(); }; /** * serializeAws_restJson1GetTelemetryEvaluationStatusForOrganizationCommand */ export const se_GetTelemetryEvaluationStatusForOrganizationCommand = async ( input: GetTelemetryEvaluationStatusForOrganizationCommandInput, context: __SerdeContext ): Promise<__HttpRequest> => { const b = rb(input, context); const headers: any = {}; b.bp("/GetTelemetryEvaluationStatusForOrganization"); let body: any; b.m("POST").h(headers).b(body); return b.build(); }; /** * serializeAws_restJson1ListResourceTelemetryCommand */ export const se_ListResourceTelemetryCommand = async ( input: ListResourceTelemetryCommandInput, context: __SerdeContext ): Promise<__HttpRequest> => { const b = rb(input, context); const headers: any = { "content-type": "application/json", }; b.bp("/ListResourceTelemetry"); let body: any; body = JSON.stringify( take(input, { MaxResults: [], NextToken: [], ResourceIdentifierPrefix: [], ResourceTags: (_) => _json(_), ResourceTypes: (_) => _json(_), TelemetryConfigurationState: (_) => _json(_), }) ); b.m("POST").h(headers).b(body); return b.build(); }; /** * serializeAws_restJson1ListResourceTelemetryForOrganizationCommand */ export const se_ListResourceTelemetryForOrganizationCommand = async ( input: ListResourceTelemetryForOrganizationCommandInput, context: __SerdeContext ): Promise<__HttpRequest> => { const b = rb(input, context); const headers: any = { "content-type": "application/json", }; b.bp("/ListResourceTelemetryForOrganization"); let body: any; body = JSON.stringify( take(input, { AccountIdentifiers: (_) => _json(_), MaxResults: [], NextToken: [], ResourceIdentifierPrefix: [], ResourceTags: (_) => _json(_), ResourceTypes: (_) => _json(_), TelemetryConfigurationState: (_) => _json(_), }) ); b.m("POST").h(headers).b(body); return b.build(); }; /** * serializeAws_restJson1StartTelemetryEvaluationCommand */ export const se_StartTelemetryEvaluationCommand = async ( input: StartTelemetryEvaluationCommandInput, context: __SerdeContext ): Promise<__HttpRequest> => { const b = rb(input, context); const headers: any = {}; b.bp("/StartTelemetryEvaluation"); let body: any; b.m("POST").h(headers).b(body); return b.build(); }; /** * serializeAws_restJson1StartTelemetryEvaluationForOrganizationCommand */ export const se_StartTelemetryEvaluationForOrganizationCommand = async ( input: StartTelemetryEvaluationForOrganizationCommandInput, context: __SerdeContext ): Promise<__HttpRequest> => { const b = rb(input, context); const headers: any = {}; b.bp("/StartTelemetryEvaluationForOrganization"); let body: any; b.m("POST").h(headers).b(body); return b.build(); }; /** * serializeAws_restJson1StopTelemetryEvaluationCommand */ export const se_StopTelemetryEvaluationCommand = async ( input: StopTelemetryEvaluationCommandInput, context: __SerdeContext ): Promise<__HttpRequest> => { const b = rb(input, context); const headers: any = {}; b.bp("/StopTelemetryEvaluation"); let body: any; b.m("POST").h(headers).b(body); return b.build(); }; /** * serializeAws_restJson1StopTelemetryEvaluationForOrganizationCommand */ export const se_StopTelemetryEvaluationForOrganizationCommand = async ( input: StopTelemetryEvaluationForOrganizationCommandInput, context: __SerdeContext ): Promise<__HttpRequest> => { const b = rb(input, context); const headers: any = {}; b.bp("/StopTelemetryEvaluationForOrganization"); let body: any; b.m("POST").h(headers).b(body); return b.build(); }; /** * deserializeAws_restJson1GetTelemetryEvaluationStatusCommand */ export const de_GetTelemetryEvaluationStatusCommand = async ( output: __HttpResponse, context: __SerdeContext ): Promise<GetTelemetryEvaluationStatusCommandOutput> => { if (output.statusCode !== 200 && output.statusCode >= 300) { return de_CommandError(output, context); } const contents: any = map({ $metadata: deserializeMetadata(output), }); const data: Record<string, any> = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body"); const doc = take(data, { FailureReason: __expectString, Status: __expectString, }); Object.assign(contents, doc); return contents; }; /** * deserializeAws_restJson1GetTelemetryEvaluationStatusForOrganizationCommand */ export const de_GetTelemetryEvaluationStatusForOrganizationCommand = async ( output: __HttpResponse, context: __SerdeContext ): Promise<GetTelemetryEvaluationStatusForOrganizationCommandOutput> => { if (output.statusCode !== 200 && output.statusCode >= 300) { return de_CommandError(output, context); } const contents: any = map({ $metadata: deserializeMetadata(output), }); const data: Record<string, any> = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body"); const doc = take(data, { FailureReason: __expectString, Status: __expectString, }); Object.assign(contents, doc); return contents; }; /** * deserializeAws_restJson1ListResourceTelemetryCommand */ export const de_ListResourceTelemetryCommand = async ( output: __HttpResponse, context: __SerdeContext ): Promise<ListResourceTelemetryCommandOutput> => { if (output.statusCode !== 200 && output.statusCode >= 300) { return de_CommandError(output, context); } const contents: any = map({ $metadata: deserializeMetadata(output), }); const data: Record<string, any> = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body"); const doc = take(data, { NextToken: __expectString, TelemetryConfigurations: _json, }); Object.assign(contents, doc); return contents; }; /** * deserializeAws_restJson1ListResourceTelemetryForOrganizationCommand */ export const de_ListResourceTelemetryForOrganizationCommand = async ( output: __HttpResponse, context: __SerdeContext ): Promise<ListResourceTelemetryForOrganizationCommandOutput> => { if (output.statusCode !== 200 && output.statusCode >= 300) { return de_CommandError(output, context); } const contents: any = map({ $metadata: deserializeMetadata(output), }); const data: Record<string, any> = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body"); const doc = take(data, { NextToken: __expectString, TelemetryConfigurations: _json, }); Object.assign(contents, doc); return contents; }; /** * deserializeAws_restJson1StartTelemetryEvaluationCommand */ export const de_StartTelemetryEvaluationCommand = async ( output: __HttpResponse, context: __SerdeContext ): Promise<StartTelemetryEvaluationCommandOutput> => { if (output.statusCode !== 200 && output.statusCode >= 300) { return de_CommandError(output, context); } const contents: any = map({ $metadata: deserializeMetadata(output), }); await collectBody(output.body, context); return contents; }; /** * deserializeAws_restJson1StartTelemetryEvaluationForOrganizationCommand */ export const de_StartTelemetryEvaluationForOrganizationCommand = async ( output: __HttpResponse, context: __SerdeContext ): Promise<StartTelemetryEvaluationForOrganizationCommandOutput> => { if (output.statusCode !== 200 && output.statusCode >= 300) { return de_CommandError(output, context); } const contents: any = map({ $metadata: deserializeMetadata(output), }); await collectBody(output.body, context); return contents; }; /** * deserializeAws_restJson1StopTelemetryEvaluationCommand */ export const de_StopTelemetryEvaluationCommand = async ( output: __HttpResponse, context: __SerdeContext ): Promise<StopTelemetryEvaluationCommandOutput> => { if (output.statusCode !== 200 && output.statusCode >= 300) { return de_CommandError(output, context); } const contents: any = map({ $metadata: deserializeMetadata(output), }); await collectBody(output.body, context); return contents; }; /** * deserializeAws_restJson1StopTelemetryEvaluationForOrganizationCommand */ export const de_StopTelemetryEvaluationForOrganizationCommand = async ( output: __HttpResponse, context: __SerdeContext ): Promise<StopTelemetryEvaluationForOrganizationCommandOutput> => { if (output.statusCode !== 200 && output.statusCode >= 300) { return de_CommandError(output, context); } const contents: any = map({ $metadata: deserializeMetadata(output), }); await collectBody(output.body, context); return contents; }; /** * deserialize_Aws_restJson1CommandError */ const de_CommandError = async (output: __HttpResponse, context: __SerdeContext): Promise<never> => { const parsedOutput: any = { ...output, body: await parseErrorBody(output.body, context), }; const errorCode = loadRestJsonErrorCode(output, parsedOutput.body); switch (errorCode) { case "AccessDeniedException": case "com.amazonaws.observabilityadmin#AccessDeniedException": throw await de_AccessDeniedExceptionRes(parsedOutput, context); case "InternalServerException": case "com.amazonaws.observabilityadmin#InternalServerException": throw await de_InternalServerExceptionRes(parsedOutput, context); case "ValidationException": case "com.amazonaws.observabilityadmin#ValidationException": throw await de_ValidationExceptionRes(parsedOutput, context); default: const parsedBody = parsedOutput.body; return throwDefaultError({ output, parsedBody, errorCode, }) as never; } }; const throwDefaultError = withBaseException(__BaseException); /** * deserializeAws_restJson1AccessDeniedExceptionRes */ const de_AccessDeniedExceptionRes = async ( parsedOutput: any, context: __SerdeContext ): Promise<AccessDeniedException> => { const contents: any = map({ [_aET]: [, parsedOutput.headers[_xae]], }); const data: any = parsedOutput.body; const doc = take(data, { Message: __expectString, }); Object.assign(contents, doc); const exception = new AccessDeniedException({ $metadata: deserializeMetadata(parsedOutput), ...contents, }); return __decorateServiceException(exception, parsedOutput.body); }; /** * deserializeAws_restJson1InternalServerExceptionRes */ const de_InternalServerExceptionRes = async ( parsedOutput: any, context: __SerdeContext ): Promise<InternalServerException> => { const contents: any = map({ [_aET]: [, parsedOutput.headers[_xae]], }); const data: any = parsedOutput.body; const doc = take(data, { Message: __expectString, }); Object.assign(contents, doc); const exception = new InternalServerException({ $metadata: deserializeMetadata(parsedOutput), ...contents, }); return __decorateServiceException(exception, parsedOutput.body); }; /** * deserializeAws_restJson1ValidationExceptionRes */ const de_ValidationExceptionRes = async (parsedOutput: any, context: __SerdeContext): Promise<ValidationException> => { const contents: any = map({}); const data: any = parsedOutput.body; const doc = take(data, { Message: __expectString, }); Object.assign(contents, doc); const exception = new ValidationException({ $metadata: deserializeMetadata(parsedOutput), ...contents, }); return __decorateServiceException(exception, parsedOutput.body); }; // se_AccountIdentifiers omitted. // se_ResourceTypes omitted. // se_TagMapInput omitted. // se_TelemetryConfigurationState omitted. // de_TagMapOutput omitted. // de_TelemetryConfiguration omitted. // de_TelemetryConfigurations omitted. // de_TelemetryConfigurationState omitted. const deserializeMetadata = (output: __HttpResponse): __ResponseMetadata => ({ 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"], }); // Encode Uint8Array data into string with utf-8. const collectBodyString = (streamBody: any, context: __SerdeContext): Promise<string> => collectBody(streamBody, context).then((body) => context.utf8Encoder(body)); const _aET = "amznErrorType"; const _xae = "x-amzn-errortype";