UNPKG

@aws-amplify/graphql-api-construct

Version:

AppSync GraphQL Api Construct using Amplify GraphQL Transformer.

1,350 lines 51.4 kB
import { awsExpectUnion as __expectUnion, loadRestJsonErrorCode, parseJsonBody as parseBody, parseJsonErrorBody as parseErrorBody, } from "@aws-sdk/core"; import { requestBuilder as rb } from "@smithy/core"; import { _json, collectBody, decorateServiceException as __decorateServiceException, expectBoolean as __expectBoolean, expectInt32 as __expectInt32, expectNonNull as __expectNonNull, expectObject as __expectObject, expectString as __expectString, isSerializableHeaderValue, limitedParseDouble as __limitedParseDouble, map, parseRfc3339DateTimeWithOffset as __parseRfc3339DateTimeWithOffset, serializeDateTime as __serializeDateTime, serializeFloat as __serializeFloat, take, withBaseException, } from "@smithy/smithy-client"; import { v4 as generateIdempotencyToken } from "uuid"; import { BedrockRuntimeServiceException as __BaseException } from "../models/BedrockRuntimeServiceException"; import { AccessDeniedException, ConflictException, ContentBlock, DocumentSource, GuardrailContentBlock, GuardrailConverseContentBlock, GuardrailConverseImageSource, GuardrailImageSource, ImageSource, InternalServerException, InvokeModelWithBidirectionalStreamInput, ModelErrorException, ModelNotReadyException, ModelStreamErrorException, ModelTimeoutException, ReasoningContentBlock, ResourceNotFoundException, ServiceQuotaExceededException, ServiceUnavailableException, SystemContentBlock, ThrottlingException, Tool, ToolInputSchema, ToolResultContentBlock, ValidationException, VideoSource, } from "../models/models_0"; export const se_ApplyGuardrailCommand = async (input, context) => { const b = rb(input, context); const headers = { "content-type": "application/json", }; b.bp("/guardrail/{guardrailIdentifier}/version/{guardrailVersion}/apply"); b.p("guardrailIdentifier", () => input.guardrailIdentifier, "{guardrailIdentifier}", false); b.p("guardrailVersion", () => input.guardrailVersion, "{guardrailVersion}", false); let body; body = JSON.stringify(take(input, { content: (_) => se_GuardrailContentBlockList(_, context), outputScope: [], source: [], })); b.m("POST").h(headers).b(body); return b.build(); }; export const se_ConverseCommand = async (input, context) => { const b = rb(input, context); const headers = { "content-type": "application/json", }; b.bp("/model/{modelId}/converse"); b.p("modelId", () => input.modelId, "{modelId}", false); let body; body = JSON.stringify(take(input, { additionalModelRequestFields: (_) => se_Document(_, context), additionalModelResponseFieldPaths: (_) => _json(_), guardrailConfig: (_) => _json(_), inferenceConfig: (_) => se_InferenceConfiguration(_, context), messages: (_) => se_Messages(_, context), performanceConfig: (_) => _json(_), promptVariables: (_) => _json(_), requestMetadata: (_) => _json(_), system: (_) => se_SystemContentBlocks(_, context), toolConfig: (_) => se_ToolConfiguration(_, context), })); b.m("POST").h(headers).b(body); return b.build(); }; export const se_ConverseStreamCommand = async (input, context) => { const b = rb(input, context); const headers = { "content-type": "application/json", }; b.bp("/model/{modelId}/converse-stream"); b.p("modelId", () => input.modelId, "{modelId}", false); let body; body = JSON.stringify(take(input, { additionalModelRequestFields: (_) => se_Document(_, context), additionalModelResponseFieldPaths: (_) => _json(_), guardrailConfig: (_) => _json(_), inferenceConfig: (_) => se_InferenceConfiguration(_, context), messages: (_) => se_Messages(_, context), performanceConfig: (_) => _json(_), promptVariables: (_) => _json(_), requestMetadata: (_) => _json(_), system: (_) => se_SystemContentBlocks(_, context), toolConfig: (_) => se_ToolConfiguration(_, context), })); b.m("POST").h(headers).b(body); return b.build(); }; export const se_GetAsyncInvokeCommand = async (input, context) => { const b = rb(input, context); const headers = {}; b.bp("/async-invoke/{invocationArn}"); b.p("invocationArn", () => input.invocationArn, "{invocationArn}", false); let body; b.m("GET").h(headers).b(body); return b.build(); }; export const se_InvokeModelCommand = async (input, context) => { const b = rb(input, context); const headers = map({}, isSerializableHeaderValue, { [_ct]: input[_cT] || "application/octet-stream", [_a]: input[_a], [_xabt]: input[_t], [_xabg]: input[_gI], [_xabg_]: input[_gV], [_xabpl]: input[_pCL], }); b.bp("/model/{modelId}/invoke"); b.p("modelId", () => input.modelId, "{modelId}", false); let body; if (input.body !== undefined) { body = input.body; } b.m("POST").h(headers).b(body); return b.build(); }; export const se_InvokeModelWithBidirectionalStreamCommand = async (input, context) => { const b = rb(input, context); const headers = { "content-type": "application/json", }; b.bp("/model/{modelId}/invoke-with-bidirectional-stream"); b.p("modelId", () => input.modelId, "{modelId}", false); let body; if (input.body !== undefined) { body = se_InvokeModelWithBidirectionalStreamInput(input.body, context); } b.m("POST").h(headers).b(body); return b.build(); }; export const se_InvokeModelWithResponseStreamCommand = async (input, context) => { const b = rb(input, context); const headers = map({}, isSerializableHeaderValue, { [_ct]: input[_cT] || "application/octet-stream", [_xaba]: input[_a], [_xabt]: input[_t], [_xabg]: input[_gI], [_xabg_]: input[_gV], [_xabpl]: input[_pCL], }); b.bp("/model/{modelId}/invoke-with-response-stream"); b.p("modelId", () => input.modelId, "{modelId}", false); let body; if (input.body !== undefined) { body = input.body; } b.m("POST").h(headers).b(body); return b.build(); }; export const se_ListAsyncInvokesCommand = async (input, context) => { const b = rb(input, context); const headers = {}; b.bp("/async-invoke"); const query = map({ [_sTA]: [() => input.submitTimeAfter !== void 0, () => __serializeDateTime(input[_sTA]).toString()], [_sTB]: [() => input.submitTimeBefore !== void 0, () => __serializeDateTime(input[_sTB]).toString()], [_sE]: [, input[_sE]], [_mR]: [() => input.maxResults !== void 0, () => input[_mR].toString()], [_nT]: [, input[_nT]], [_sB]: [, input[_sB]], [_sO]: [, input[_sO]], }); let body; b.m("GET").h(headers).q(query).b(body); return b.build(); }; export const se_StartAsyncInvokeCommand = async (input, context) => { const b = rb(input, context); const headers = { "content-type": "application/json", }; b.bp("/async-invoke"); let body; body = JSON.stringify(take(input, { clientRequestToken: [true, (_) => _ ?? generateIdempotencyToken()], modelId: [], modelInput: (_) => se_ModelInputPayload(_, context), outputDataConfig: (_) => _json(_), tags: (_) => _json(_), })); b.m("POST").h(headers).b(body); return b.build(); }; export const de_ApplyGuardrailCommand = 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, { action: __expectString, actionReason: __expectString, assessments: (_) => de_GuardrailAssessmentList(_, context), guardrailCoverage: _json, outputs: _json, usage: _json, }); Object.assign(contents, doc); return contents; }; export const de_ConverseCommand = 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, { additionalModelResponseFields: (_) => de_Document(_, context), metrics: _json, output: (_) => de_ConverseOutput(__expectUnion(_), context), performanceConfig: _json, stopReason: __expectString, trace: (_) => de_ConverseTrace(_, context), usage: _json, }); Object.assign(contents, doc); return contents; }; export const de_ConverseStreamCommand = async (output, context) => { if (output.statusCode !== 200 && output.statusCode >= 300) { return de_CommandError(output, context); } const contents = map({ $metadata: deserializeMetadata(output), }); const data = output.body; contents.stream = de_ConverseStreamOutput(data, context); return contents; }; export const de_GetAsyncInvokeCommand = 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, { clientRequestToken: __expectString, endTime: (_) => __expectNonNull(__parseRfc3339DateTimeWithOffset(_)), failureMessage: __expectString, invocationArn: __expectString, lastModifiedTime: (_) => __expectNonNull(__parseRfc3339DateTimeWithOffset(_)), modelArn: __expectString, outputDataConfig: (_) => _json(__expectUnion(_)), status: __expectString, submitTime: (_) => __expectNonNull(__parseRfc3339DateTimeWithOffset(_)), }); Object.assign(contents, doc); return contents; }; export const de_InvokeModelCommand = async (output, context) => { if (output.statusCode !== 200 && output.statusCode >= 300) { return de_CommandError(output, context); } const contents = map({ $metadata: deserializeMetadata(output), [_cT]: [, output.headers[_ct]], [_pCL]: [, output.headers[_xabpl]], }); const data = await collectBody(output.body, context); contents.body = data; return contents; }; export const de_InvokeModelWithBidirectionalStreamCommand = async (output, context) => { if (output.statusCode !== 200 && output.statusCode >= 300) { return de_CommandError(output, context); } const contents = map({ $metadata: deserializeMetadata(output), }); const data = output.body; contents.body = de_InvokeModelWithBidirectionalStreamOutput(data, context); return contents; }; export const de_InvokeModelWithResponseStreamCommand = async (output, context) => { if (output.statusCode !== 200 && output.statusCode >= 300) { return de_CommandError(output, context); } const contents = map({ $metadata: deserializeMetadata(output), [_cT]: [, output.headers[_xabct]], [_pCL]: [, output.headers[_xabpl]], }); const data = output.body; contents.body = de_ResponseStream(data, context); return contents; }; export const de_ListAsyncInvokesCommand = 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, { asyncInvokeSummaries: (_) => de_AsyncInvokeSummaries(_, context), nextToken: __expectString, }); Object.assign(contents, doc); return contents; }; export const de_StartAsyncInvokeCommand = 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, { invocationArn: __expectString, }); Object.assign(contents, doc); 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 "AccessDeniedException": case "com.amazonaws.bedrockruntime#AccessDeniedException": throw await de_AccessDeniedExceptionRes(parsedOutput, context); case "InternalServerException": case "com.amazonaws.bedrockruntime#InternalServerException": throw await de_InternalServerExceptionRes(parsedOutput, context); case "ResourceNotFoundException": case "com.amazonaws.bedrockruntime#ResourceNotFoundException": throw await de_ResourceNotFoundExceptionRes(parsedOutput, context); case "ServiceQuotaExceededException": case "com.amazonaws.bedrockruntime#ServiceQuotaExceededException": throw await de_ServiceQuotaExceededExceptionRes(parsedOutput, context); case "ThrottlingException": case "com.amazonaws.bedrockruntime#ThrottlingException": throw await de_ThrottlingExceptionRes(parsedOutput, context); case "ValidationException": case "com.amazonaws.bedrockruntime#ValidationException": throw await de_ValidationExceptionRes(parsedOutput, context); case "ModelErrorException": case "com.amazonaws.bedrockruntime#ModelErrorException": throw await de_ModelErrorExceptionRes(parsedOutput, context); case "ModelNotReadyException": case "com.amazonaws.bedrockruntime#ModelNotReadyException": throw await de_ModelNotReadyExceptionRes(parsedOutput, context); case "ModelTimeoutException": case "com.amazonaws.bedrockruntime#ModelTimeoutException": throw await de_ModelTimeoutExceptionRes(parsedOutput, context); case "ServiceUnavailableException": case "com.amazonaws.bedrockruntime#ServiceUnavailableException": throw await de_ServiceUnavailableExceptionRes(parsedOutput, context); case "ModelStreamErrorException": case "com.amazonaws.bedrockruntime#ModelStreamErrorException": throw await de_ModelStreamErrorExceptionRes(parsedOutput, context); case "ConflictException": case "com.amazonaws.bedrockruntime#ConflictException": throw await de_ConflictExceptionRes(parsedOutput, context); default: const parsedBody = parsedOutput.body; return throwDefaultError({ output, parsedBody, errorCode, }); } }; const throwDefaultError = withBaseException(__BaseException); const de_AccessDeniedExceptionRes = async (parsedOutput, context) => { const contents = map({}); const data = 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); }; const de_ConflictExceptionRes = async (parsedOutput, context) => { const contents = map({}); const data = parsedOutput.body; const doc = take(data, { message: __expectString, }); Object.assign(contents, doc); const exception = new ConflictException({ $metadata: deserializeMetadata(parsedOutput), ...contents, }); return __decorateServiceException(exception, parsedOutput.body); }; const de_InternalServerExceptionRes = async (parsedOutput, context) => { const contents = map({}); const data = 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); }; const de_ModelErrorExceptionRes = async (parsedOutput, context) => { const contents = map({}); const data = parsedOutput.body; const doc = take(data, { message: __expectString, originalStatusCode: __expectInt32, resourceName: __expectString, }); Object.assign(contents, doc); const exception = new ModelErrorException({ $metadata: deserializeMetadata(parsedOutput), ...contents, }); return __decorateServiceException(exception, parsedOutput.body); }; const de_ModelNotReadyExceptionRes = async (parsedOutput, context) => { const contents = map({}); const data = parsedOutput.body; const doc = take(data, { message: __expectString, }); Object.assign(contents, doc); const exception = new ModelNotReadyException({ $metadata: deserializeMetadata(parsedOutput), ...contents, }); return __decorateServiceException(exception, parsedOutput.body); }; const de_ModelStreamErrorExceptionRes = async (parsedOutput, context) => { const contents = map({}); const data = parsedOutput.body; const doc = take(data, { message: __expectString, originalMessage: __expectString, originalStatusCode: __expectInt32, }); Object.assign(contents, doc); const exception = new ModelStreamErrorException({ $metadata: deserializeMetadata(parsedOutput), ...contents, }); return __decorateServiceException(exception, parsedOutput.body); }; const de_ModelTimeoutExceptionRes = async (parsedOutput, context) => { const contents = map({}); const data = parsedOutput.body; const doc = take(data, { message: __expectString, }); Object.assign(contents, doc); const exception = new ModelTimeoutException({ $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_ServiceQuotaExceededExceptionRes = async (parsedOutput, context) => { const contents = map({}); const data = parsedOutput.body; const doc = take(data, { message: __expectString, }); Object.assign(contents, doc); const exception = new ServiceQuotaExceededException({ $metadata: deserializeMetadata(parsedOutput), ...contents, }); return __decorateServiceException(exception, parsedOutput.body); }; const de_ServiceUnavailableExceptionRes = async (parsedOutput, context) => { const contents = map({}); const data = parsedOutput.body; const doc = take(data, { message: __expectString, }); Object.assign(contents, doc); const exception = new ServiceUnavailableException({ $metadata: deserializeMetadata(parsedOutput), ...contents, }); return __decorateServiceException(exception, parsedOutput.body); }; const de_ThrottlingExceptionRes = async (parsedOutput, context) => { const contents = map({}); const data = parsedOutput.body; const doc = take(data, { message: __expectString, }); Object.assign(contents, doc); const exception = new ThrottlingException({ $metadata: deserializeMetadata(parsedOutput), ...contents, }); return __decorateServiceException(exception, parsedOutput.body); }; const de_ValidationExceptionRes = async (parsedOutput, context) => { const contents = map({}); const data = 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); }; const se_InvokeModelWithBidirectionalStreamInput = (input, context) => { const eventMarshallingVisitor = (event) => InvokeModelWithBidirectionalStreamInput.visit(event, { chunk: (value) => se_BidirectionalInputPayloadPart_event(value, context), _: (value) => value, }); return context.eventStreamMarshaller.serialize(input, eventMarshallingVisitor); }; const se_BidirectionalInputPayloadPart_event = (input, context) => { const headers = { ":event-type": { type: "string", value: "chunk" }, ":message-type": { type: "string", value: "event" }, ":content-type": { type: "string", value: "application/json" }, }; let body = new Uint8Array(); body = se_BidirectionalInputPayloadPart(input, context); body = context.utf8Decoder(JSON.stringify(body)); return { headers, body }; }; const de_ConverseStreamOutput = (output, context) => { return context.eventStreamMarshaller.deserialize(output, async (event) => { if (event["messageStart"] != null) { return { messageStart: await de_MessageStartEvent_event(event["messageStart"], context), }; } if (event["contentBlockStart"] != null) { return { contentBlockStart: await de_ContentBlockStartEvent_event(event["contentBlockStart"], context), }; } if (event["contentBlockDelta"] != null) { return { contentBlockDelta: await de_ContentBlockDeltaEvent_event(event["contentBlockDelta"], context), }; } if (event["contentBlockStop"] != null) { return { contentBlockStop: await de_ContentBlockStopEvent_event(event["contentBlockStop"], context), }; } if (event["messageStop"] != null) { return { messageStop: await de_MessageStopEvent_event(event["messageStop"], context), }; } if (event["metadata"] != null) { return { metadata: await de_ConverseStreamMetadataEvent_event(event["metadata"], context), }; } if (event["internalServerException"] != null) { return { internalServerException: await de_InternalServerException_event(event["internalServerException"], context), }; } if (event["modelStreamErrorException"] != null) { return { modelStreamErrorException: await de_ModelStreamErrorException_event(event["modelStreamErrorException"], context), }; } if (event["validationException"] != null) { return { validationException: await de_ValidationException_event(event["validationException"], context), }; } if (event["throttlingException"] != null) { return { throttlingException: await de_ThrottlingException_event(event["throttlingException"], context), }; } if (event["serviceUnavailableException"] != null) { return { serviceUnavailableException: await de_ServiceUnavailableException_event(event["serviceUnavailableException"], context), }; } return { $unknown: output }; }); }; const de_InvokeModelWithBidirectionalStreamOutput = (output, context) => { return context.eventStreamMarshaller.deserialize(output, async (event) => { if (event["chunk"] != null) { return { chunk: await de_BidirectionalOutputPayloadPart_event(event["chunk"], context), }; } if (event["internalServerException"] != null) { return { internalServerException: await de_InternalServerException_event(event["internalServerException"], context), }; } if (event["modelStreamErrorException"] != null) { return { modelStreamErrorException: await de_ModelStreamErrorException_event(event["modelStreamErrorException"], context), }; } if (event["validationException"] != null) { return { validationException: await de_ValidationException_event(event["validationException"], context), }; } if (event["throttlingException"] != null) { return { throttlingException: await de_ThrottlingException_event(event["throttlingException"], context), }; } if (event["modelTimeoutException"] != null) { return { modelTimeoutException: await de_ModelTimeoutException_event(event["modelTimeoutException"], context), }; } if (event["serviceUnavailableException"] != null) { return { serviceUnavailableException: await de_ServiceUnavailableException_event(event["serviceUnavailableException"], context), }; } return { $unknown: output }; }); }; const de_ResponseStream = (output, context) => { return context.eventStreamMarshaller.deserialize(output, async (event) => { if (event["chunk"] != null) { return { chunk: await de_PayloadPart_event(event["chunk"], context), }; } if (event["internalServerException"] != null) { return { internalServerException: await de_InternalServerException_event(event["internalServerException"], context), }; } if (event["modelStreamErrorException"] != null) { return { modelStreamErrorException: await de_ModelStreamErrorException_event(event["modelStreamErrorException"], context), }; } if (event["validationException"] != null) { return { validationException: await de_ValidationException_event(event["validationException"], context), }; } if (event["throttlingException"] != null) { return { throttlingException: await de_ThrottlingException_event(event["throttlingException"], context), }; } if (event["modelTimeoutException"] != null) { return { modelTimeoutException: await de_ModelTimeoutException_event(event["modelTimeoutException"], context), }; } if (event["serviceUnavailableException"] != null) { return { serviceUnavailableException: await de_ServiceUnavailableException_event(event["serviceUnavailableException"], context), }; } return { $unknown: output }; }); }; const de_BidirectionalOutputPayloadPart_event = async (output, context) => { const contents = {}; const data = await parseBody(output.body, context); Object.assign(contents, de_BidirectionalOutputPayloadPart(data, context)); return contents; }; const de_ContentBlockDeltaEvent_event = async (output, context) => { const contents = {}; const data = await parseBody(output.body, context); Object.assign(contents, de_ContentBlockDeltaEvent(data, context)); return contents; }; const de_ContentBlockStartEvent_event = async (output, context) => { const contents = {}; const data = await parseBody(output.body, context); Object.assign(contents, _json(data)); return contents; }; const de_ContentBlockStopEvent_event = async (output, context) => { const contents = {}; const data = await parseBody(output.body, context); Object.assign(contents, _json(data)); return contents; }; const de_ConverseStreamMetadataEvent_event = async (output, context) => { const contents = {}; const data = await parseBody(output.body, context); Object.assign(contents, de_ConverseStreamMetadataEvent(data, context)); return contents; }; const de_InternalServerException_event = async (output, context) => { const parsedOutput = { ...output, body: await parseBody(output.body, context), }; return de_InternalServerExceptionRes(parsedOutput, context); }; const de_MessageStartEvent_event = async (output, context) => { const contents = {}; const data = await parseBody(output.body, context); Object.assign(contents, _json(data)); return contents; }; const de_MessageStopEvent_event = async (output, context) => { const contents = {}; const data = await parseBody(output.body, context); Object.assign(contents, de_MessageStopEvent(data, context)); return contents; }; const de_ModelStreamErrorException_event = async (output, context) => { const parsedOutput = { ...output, body: await parseBody(output.body, context), }; return de_ModelStreamErrorExceptionRes(parsedOutput, context); }; const de_ModelTimeoutException_event = async (output, context) => { const parsedOutput = { ...output, body: await parseBody(output.body, context), }; return de_ModelTimeoutExceptionRes(parsedOutput, context); }; const de_PayloadPart_event = async (output, context) => { const contents = {}; const data = await parseBody(output.body, context); Object.assign(contents, de_PayloadPart(data, context)); return contents; }; const de_ServiceUnavailableException_event = async (output, context) => { const parsedOutput = { ...output, body: await parseBody(output.body, context), }; return de_ServiceUnavailableExceptionRes(parsedOutput, context); }; const de_ThrottlingException_event = async (output, context) => { const parsedOutput = { ...output, body: await parseBody(output.body, context), }; return de_ThrottlingExceptionRes(parsedOutput, context); }; const de_ValidationException_event = async (output, context) => { const parsedOutput = { ...output, body: await parseBody(output.body, context), }; return de_ValidationExceptionRes(parsedOutput, context); }; const se_BidirectionalInputPayloadPart = (input, context) => { return take(input, { bytes: context.base64Encoder, }); }; const se_ContentBlock = (input, context) => { return ContentBlock.visit(input, { cachePoint: (value) => ({ cachePoint: _json(value) }), document: (value) => ({ document: se_DocumentBlock(value, context) }), guardContent: (value) => ({ guardContent: se_GuardrailConverseContentBlock(value, context) }), image: (value) => ({ image: se_ImageBlock(value, context) }), reasoningContent: (value) => ({ reasoningContent: se_ReasoningContentBlock(value, context) }), text: (value) => ({ text: value }), toolResult: (value) => ({ toolResult: se_ToolResultBlock(value, context) }), toolUse: (value) => ({ toolUse: se_ToolUseBlock(value, context) }), video: (value) => ({ video: se_VideoBlock(value, context) }), _: (name, value) => ({ [name]: value }), }); }; const se_ContentBlocks = (input, context) => { return input .filter((e) => e != null) .map((entry) => { return se_ContentBlock(entry, context); }); }; const se_DocumentBlock = (input, context) => { return take(input, { format: [], name: [], source: (_) => se_DocumentSource(_, context), }); }; const se_DocumentSource = (input, context) => { return DocumentSource.visit(input, { bytes: (value) => ({ bytes: context.base64Encoder(value) }), s3Location: (value) => ({ s3Location: _json(value) }), _: (name, value) => ({ [name]: value }), }); }; const se_GuardrailContentBlock = (input, context) => { return GuardrailContentBlock.visit(input, { image: (value) => ({ image: se_GuardrailImageBlock(value, context) }), text: (value) => ({ text: _json(value) }), _: (name, value) => ({ [name]: value }), }); }; const se_GuardrailContentBlockList = (input, context) => { return input .filter((e) => e != null) .map((entry) => { return se_GuardrailContentBlock(entry, context); }); }; const se_GuardrailConverseContentBlock = (input, context) => { return GuardrailConverseContentBlock.visit(input, { image: (value) => ({ image: se_GuardrailConverseImageBlock(value, context) }), text: (value) => ({ text: _json(value) }), _: (name, value) => ({ [name]: value }), }); }; const se_GuardrailConverseImageBlock = (input, context) => { return take(input, { format: [], source: (_) => se_GuardrailConverseImageSource(_, context), }); }; const se_GuardrailConverseImageSource = (input, context) => { return GuardrailConverseImageSource.visit(input, { bytes: (value) => ({ bytes: context.base64Encoder(value) }), _: (name, value) => ({ [name]: value }), }); }; const se_GuardrailImageBlock = (input, context) => { return take(input, { format: [], source: (_) => se_GuardrailImageSource(_, context), }); }; const se_GuardrailImageSource = (input, context) => { return GuardrailImageSource.visit(input, { bytes: (value) => ({ bytes: context.base64Encoder(value) }), _: (name, value) => ({ [name]: value }), }); }; const se_ImageBlock = (input, context) => { return take(input, { format: [], source: (_) => se_ImageSource(_, context), }); }; const se_ImageSource = (input, context) => { return ImageSource.visit(input, { bytes: (value) => ({ bytes: context.base64Encoder(value) }), s3Location: (value) => ({ s3Location: _json(value) }), _: (name, value) => ({ [name]: value }), }); }; const se_InferenceConfiguration = (input, context) => { return take(input, { maxTokens: [], stopSequences: _json, temperature: __serializeFloat, topP: __serializeFloat, }); }; const se_Message = (input, context) => { return take(input, { content: (_) => se_ContentBlocks(_, context), role: [], }); }; const se_Messages = (input, context) => { return input .filter((e) => e != null) .map((entry) => { return se_Message(entry, context); }); }; const se_ModelInputPayload = (input, context) => { return input; }; const se_ReasoningContentBlock = (input, context) => { return ReasoningContentBlock.visit(input, { reasoningText: (value) => ({ reasoningText: _json(value) }), redactedContent: (value) => ({ redactedContent: context.base64Encoder(value) }), _: (name, value) => ({ [name]: value }), }); }; const se_SystemContentBlock = (input, context) => { return SystemContentBlock.visit(input, { cachePoint: (value) => ({ cachePoint: _json(value) }), guardContent: (value) => ({ guardContent: se_GuardrailConverseContentBlock(value, context) }), text: (value) => ({ text: value }), _: (name, value) => ({ [name]: value }), }); }; const se_SystemContentBlocks = (input, context) => { return input .filter((e) => e != null) .map((entry) => { return se_SystemContentBlock(entry, context); }); }; const se_Tool = (input, context) => { return Tool.visit(input, { cachePoint: (value) => ({ cachePoint: _json(value) }), toolSpec: (value) => ({ toolSpec: se_ToolSpecification(value, context) }), _: (name, value) => ({ [name]: value }), }); }; const se_ToolConfiguration = (input, context) => { return take(input, { toolChoice: _json, tools: (_) => se_Tools(_, context), }); }; const se_ToolInputSchema = (input, context) => { return ToolInputSchema.visit(input, { json: (value) => ({ json: se_Document(value, context) }), _: (name, value) => ({ [name]: value }), }); }; const se_ToolResultBlock = (input, context) => { return take(input, { content: (_) => se_ToolResultContentBlocks(_, context), status: [], toolUseId: [], }); }; const se_ToolResultContentBlock = (input, context) => { return ToolResultContentBlock.visit(input, { document: (value) => ({ document: se_DocumentBlock(value, context) }), image: (value) => ({ image: se_ImageBlock(value, context) }), json: (value) => ({ json: se_Document(value, context) }), text: (value) => ({ text: value }), video: (value) => ({ video: se_VideoBlock(value, context) }), _: (name, value) => ({ [name]: value }), }); }; const se_ToolResultContentBlocks = (input, context) => { return input .filter((e) => e != null) .map((entry) => { return se_ToolResultContentBlock(entry, context); }); }; const se_Tools = (input, context) => { return input .filter((e) => e != null) .map((entry) => { return se_Tool(entry, context); }); }; const se_ToolSpecification = (input, context) => { return take(input, { description: [], inputSchema: (_) => se_ToolInputSchema(_, context), name: [], }); }; const se_ToolUseBlock = (input, context) => { return take(input, { input: (_) => se_Document(_, context), name: [], toolUseId: [], }); }; const se_VideoBlock = (input, context) => { return take(input, { format: [], source: (_) => se_VideoSource(_, context), }); }; const se_VideoSource = (input, context) => { return VideoSource.visit(input, { bytes: (value) => ({ bytes: context.base64Encoder(value) }), s3Location: (value) => ({ s3Location: _json(value) }), _: (name, value) => ({ [name]: value }), }); }; const se_Document = (input, context) => { return input; }; const de_AsyncInvokeSummaries = (output, context) => { const retVal = (output || []) .filter((e) => e != null) .map((entry) => { return de_AsyncInvokeSummary(entry, context); }); return retVal; }; const de_AsyncInvokeSummary = (output, context) => { return take(output, { clientRequestToken: __expectString, endTime: (_) => __expectNonNull(__parseRfc3339DateTimeWithOffset(_)), failureMessage: __expectString, invocationArn: __expectString, lastModifiedTime: (_) => __expectNonNull(__parseRfc3339DateTimeWithOffset(_)), modelArn: __expectString, outputDataConfig: (_) => _json(__expectUnion(_)), status: __expectString, submitTime: (_) => __expectNonNull(__parseRfc3339DateTimeWithOffset(_)), }); }; const de_BidirectionalOutputPayloadPart = (output, context) => { return take(output, { bytes: context.base64Decoder, }); }; const de_ContentBlock = (output, context) => { if (output.cachePoint != null) { return { cachePoint: _json(output.cachePoint), }; } if (output.document != null) { return { document: de_DocumentBlock(output.document, context), }; } if (output.guardContent != null) { return { guardContent: de_GuardrailConverseContentBlock(__expectUnion(output.guardContent), context), }; } if (output.image != null) { return { image: de_ImageBlock(output.image, context), }; } if (output.reasoningContent != null) { return { reasoningContent: de_ReasoningContentBlock(__expectUnion(output.reasoningContent), context), }; } if (__expectString(output.text) !== undefined) { return { text: __expectString(output.text) }; } if (output.toolResult != null) { return { toolResult: de_ToolResultBlock(output.toolResult, context), }; } if (output.toolUse != null) { return { toolUse: de_ToolUseBlock(output.toolUse, context), }; } if (output.video != null) { return { video: de_VideoBlock(output.video, context), }; } return { $unknown: Object.entries(output)[0] }; }; const de_ContentBlockDelta = (output, context) => { if (output.reasoningContent != null) { return { reasoningContent: de_ReasoningContentBlockDelta(__expectUnion(output.reasoningContent), context), }; } if (__expectString(output.text) !== undefined) { return { text: __expectString(output.text) }; } if (output.toolUse != null) { return { toolUse: _json(output.toolUse), }; } return { $unknown: Object.entries(output)[0] }; }; const de_ContentBlockDeltaEvent = (output, context) => { return take(output, { contentBlockIndex: __expectInt32, delta: (_) => de_ContentBlockDelta(__expectUnion(_), context), }); }; const de_ContentBlocks = (output, context) => { const retVal = (output || []) .filter((e) => e != null) .map((entry) => { return de_ContentBlock(__expectUnion(entry), context); }); return retVal; }; const de_ConverseOutput = (output, context) => { if (output.message != null) { return { message: de_Message(output.message, context), }; } return { $unknown: Object.entries(output)[0] }; }; const de_ConverseStreamMetadataEvent = (output, context) => { return take(output, { metrics: _json, performanceConfig: _json, trace: (_) => de_ConverseStreamTrace(_, context), usage: _json, }); }; const de_ConverseStreamTrace = (output, context) => { return take(output, { guardrail: (_) => de_GuardrailTraceAssessment(_, context), promptRouter: _json, }); }; const de_ConverseTrace = (output, context) => { return take(output, { guardrail: (_) => de_GuardrailTraceAssessment(_, context), promptRouter: _json, }); }; const de_DocumentBlock = (output, context) => { return take(output, { format: __expectString, name: __expectString, source: (_) => de_DocumentSource(__expectUnion(_), context), }); }; const de_DocumentSource = (output, context) => { if (output.bytes != null) { return { bytes: context.base64Decoder(output.bytes), }; } if (output.s3Location != null) { return { s3Location: _json(output.s3Location), }; } return { $unknown: Object.entries(output)[0] }; }; const de_GuardrailAssessment = (output, context) => { return take(output, { contentPolicy: _json, contextualGroundingPolicy: (_) => de_GuardrailContextualGroundingPolicyAssessment(_, context), invocationMetrics: _json, sensitiveInformationPolicy: _json, topicPolicy: _json, wordPolicy: _json, }); }; const de_GuardrailAssessmentList = (output, context) => { const retVal = (output || []) .filter((e) => e != null) .map((entry) => { return de_GuardrailAssessment(entry, context); }); return retVal; }; const de_GuardrailAssessmentListMap = (output, context) => { return Object.entries(output).reduce((acc, [key, value]) => { if (value === null) { return acc; } acc[key] = de_GuardrailAssessmentList(value, context); return acc; }, {}); }; const de_GuardrailAssessmentMap = (output, context) => { return Object.entries(output).reduce((acc, [key, value]) => { if (value === null) { return acc; } acc[key] = de_GuardrailAssessment(value, context); return acc; }, {}); }; const de_GuardrailContextualGroundingFilter = (output, context) => { return take(output, { action: __expectString, detected: __expectBoolean, score: __limitedParseDouble, threshold: __limitedParseDouble, type: __expectString, }); }; const de_GuardrailContextualGroundingFilters = (output, context) => { const retVal = (output || []) .filter((e) => e != null) .map((entry) => { return de_GuardrailContextualGroundingFilter(entry, context); }); return retVal; }; const de_GuardrailContextualGroundingPolicyAssessment = (output, context) => { return take(output, { filters: (_) => de_GuardrailContextualGroundingFilters(_, context), }); }; const de_GuardrailConverseContentBlock = (output, context) => { if (output.image != null) { return { image: de_GuardrailConverseImageBlock(output.image, context), }; } if (output.text != null) { return { text: _json(output.text), }; } return { $unknown: Object.entries(output)[0] }; }; const de_GuardrailConverseImageBlock = (output, context) => { return take(output, { format: __expectString, source: (_) => de_GuardrailConverseImageSource(__expectUnion(_), context), }); }; const de_GuardrailConverseImageSource = (output, context) => { if (output.bytes != null) { return { bytes: context.base64Decoder(output.bytes), }; } return { $unknown: Object.entries(output)[0] }; }; const de_GuardrailTraceAssessment = (output, context) => { return take(output, { actionReason: __expectString, inputAssessment: (_) => de_GuardrailAssessmentMap(_, context), modelOutput: _json, outputAssessments: (_) => de_GuardrailAssessmentListMap(_, context), }); }; const de_ImageBlock = (output, context) => { return take(output, { format: __expectString, source: (_) => de_ImageSource(__expectUnion(_), context), }); }; const de_ImageSource = (output, context) => { if (output.bytes != null) { return { bytes: context.base64Decoder(output.bytes), }; } if (output.s3Location != null) { return { s3Location: _json(output.s3Location), }; } return { $unknown: Object.entries(output)[0] }; }; const de_Message = (output, context) => { return take(output, { content: (_) => de_ContentBlocks(_, context), role: __expectString, }); }; const de_MessageStopEvent = (output, context) => { return take(output, { additionalModelResponseFields: (_) => de_Document(_, context), stopReason: __expectString, }); }; const de_PayloadPart = (output, context) => { return take(output, { bytes: context.base64Decoder, }); }; const de_ReasoningContentBlock = (output, context) => { if (output.reasoningText != null) { return { reasoningText: _json(output.reasoningText), }; } if (output.redactedContent != null) { return { redactedContent: context.base64Decoder(output.redactedContent), }; } return { $unknown: Object.entries(output)[0] }; }; const de_ReasoningContentBlockDelta = (output, context) => { if (output.redactedContent != null) { return { redactedContent: context.base64Decoder(output.redactedContent), }; } if (__expectString(output.signature) !== undefined) { return { signature: __expectString(output.signature) }; } if (__expectString(output.text) !== undefined) { return { text: __expectString(output.text) }; } return { $unknown: Object.entries(output)[0] }; }; const de_ToolResultBlock = (output, context) => { return take(output, { content: (_) => de_ToolResultContentBlocks(_, context), status: __expectString, toolUseId: __expectString, }); }; const de_ToolResultContentBlock = (output, context) => { if (output.document != null) { return { document: de_DocumentBlock(output.document, context), }; } if (output.image != null) { return { image: de_ImageBlock(output.image, context), }; } if (output.json != null) { return { json: de_Document(output.json, context), }; } if (__expectString(output.text) !== undefined) { return { text: __expectString(output.text) }; } if (output.video != null) { return { video: de_VideoBlock(output.video, context), }; } return { $unknown: Object.entries(output)[0] }; }; const de_ToolResultContentBlocks = (output, context) => { const retVal = (output || []) .filter((e) => e != null) .map((entry) => { return de_ToolResultContentBlock(__expectUnion(entry), context); }); return retVal; }; const de_ToolUseBlock = (output, context) => { return take(output, { input: (_) => de_Document(_, context), name: __expectString, toolUseId: __expectString, }); }; const de_VideoBlock = (output, context) => { return take(output, { format: __expectString, source: (_) => de_VideoSource(__expectUnion(_), context), }); }; const de_VideoSource = (output, context) => { if (output.bytes != null) { return {