UNPKG

cdk-encrypted-secret

Version:

CDK Construct that creates an AWS Secret Manager Secret and sets the value from an encrypted Ciphertext.

835 lines (834 loc) 31.7 kB
import { loadRestJsonErrorCode, parseJsonBody as parseBody, parseJsonErrorBody as parseErrorBody } from "@aws-sdk/core"; import { HttpRequest as __HttpRequest } from "@smithy/protocol-http"; import { _json, collectBody, decorateServiceException as __decorateServiceException, expectBoolean as __expectBoolean, expectNonNull as __expectNonNull, expectNumber as __expectNumber, expectString as __expectString, parseEpochTimestamp as __parseEpochTimestamp, take, withBaseException, } from "@smithy/smithy-client"; import { v4 as generateIdempotencyToken } from "uuid"; import { DecryptionFailure, EncryptionFailure, InternalServiceError, InvalidNextTokenException, InvalidParameterException, InvalidRequestException, LimitExceededException, MalformedPolicyDocumentException, PreconditionNotMetException, PublicPolicyException, ResourceExistsException, ResourceNotFoundException, } from "../models/models_0"; import { SecretsManagerServiceException as __BaseException } from "../models/SecretsManagerServiceException"; export const se_BatchGetSecretValueCommand = async (input, context) => { const headers = sharedHeaders("BatchGetSecretValue"); let body; body = JSON.stringify(_json(input)); return buildHttpRpcRequest(context, headers, "/", undefined, body); }; export const se_CancelRotateSecretCommand = async (input, context) => { const headers = sharedHeaders("CancelRotateSecret"); let body; body = JSON.stringify(_json(input)); return buildHttpRpcRequest(context, headers, "/", undefined, body); }; export const se_CreateSecretCommand = async (input, context) => { const headers = sharedHeaders("CreateSecret"); let body; body = JSON.stringify(se_CreateSecretRequest(input, context)); return buildHttpRpcRequest(context, headers, "/", undefined, body); }; export const se_DeleteResourcePolicyCommand = async (input, context) => { const headers = sharedHeaders("DeleteResourcePolicy"); let body; body = JSON.stringify(_json(input)); return buildHttpRpcRequest(context, headers, "/", undefined, body); }; export const se_DeleteSecretCommand = async (input, context) => { const headers = sharedHeaders("DeleteSecret"); let body; body = JSON.stringify(_json(input)); return buildHttpRpcRequest(context, headers, "/", undefined, body); }; export const se_DescribeSecretCommand = async (input, context) => { const headers = sharedHeaders("DescribeSecret"); let body; body = JSON.stringify(_json(input)); return buildHttpRpcRequest(context, headers, "/", undefined, body); }; export const se_GetRandomPasswordCommand = async (input, context) => { const headers = sharedHeaders("GetRandomPassword"); let body; body = JSON.stringify(_json(input)); return buildHttpRpcRequest(context, headers, "/", undefined, body); }; export const se_GetResourcePolicyCommand = async (input, context) => { const headers = sharedHeaders("GetResourcePolicy"); let body; body = JSON.stringify(_json(input)); return buildHttpRpcRequest(context, headers, "/", undefined, body); }; export const se_GetSecretValueCommand = async (input, context) => { const headers = sharedHeaders("GetSecretValue"); let body; body = JSON.stringify(_json(input)); return buildHttpRpcRequest(context, headers, "/", undefined, body); }; export const se_ListSecretsCommand = async (input, context) => { const headers = sharedHeaders("ListSecrets"); let body; body = JSON.stringify(_json(input)); return buildHttpRpcRequest(context, headers, "/", undefined, body); }; export const se_ListSecretVersionIdsCommand = async (input, context) => { const headers = sharedHeaders("ListSecretVersionIds"); let body; body = JSON.stringify(_json(input)); return buildHttpRpcRequest(context, headers, "/", undefined, body); }; export const se_PutResourcePolicyCommand = async (input, context) => { const headers = sharedHeaders("PutResourcePolicy"); let body; body = JSON.stringify(_json(input)); return buildHttpRpcRequest(context, headers, "/", undefined, body); }; export const se_PutSecretValueCommand = async (input, context) => { const headers = sharedHeaders("PutSecretValue"); let body; body = JSON.stringify(se_PutSecretValueRequest(input, context)); return buildHttpRpcRequest(context, headers, "/", undefined, body); }; export const se_RemoveRegionsFromReplicationCommand = async (input, context) => { const headers = sharedHeaders("RemoveRegionsFromReplication"); let body; body = JSON.stringify(_json(input)); return buildHttpRpcRequest(context, headers, "/", undefined, body); }; export const se_ReplicateSecretToRegionsCommand = async (input, context) => { const headers = sharedHeaders("ReplicateSecretToRegions"); let body; body = JSON.stringify(_json(input)); return buildHttpRpcRequest(context, headers, "/", undefined, body); }; export const se_RestoreSecretCommand = async (input, context) => { const headers = sharedHeaders("RestoreSecret"); let body; body = JSON.stringify(_json(input)); return buildHttpRpcRequest(context, headers, "/", undefined, body); }; export const se_RotateSecretCommand = async (input, context) => { const headers = sharedHeaders("RotateSecret"); let body; body = JSON.stringify(se_RotateSecretRequest(input, context)); return buildHttpRpcRequest(context, headers, "/", undefined, body); }; export const se_StopReplicationToReplicaCommand = async (input, context) => { const headers = sharedHeaders("StopReplicationToReplica"); let body; body = JSON.stringify(_json(input)); return buildHttpRpcRequest(context, headers, "/", undefined, body); }; export const se_TagResourceCommand = async (input, context) => { const headers = sharedHeaders("TagResource"); let body; body = JSON.stringify(_json(input)); return buildHttpRpcRequest(context, headers, "/", undefined, body); }; export const se_UntagResourceCommand = async (input, context) => { const headers = sharedHeaders("UntagResource"); let body; body = JSON.stringify(_json(input)); return buildHttpRpcRequest(context, headers, "/", undefined, body); }; export const se_UpdateSecretCommand = async (input, context) => { const headers = sharedHeaders("UpdateSecret"); let body; body = JSON.stringify(se_UpdateSecretRequest(input, context)); return buildHttpRpcRequest(context, headers, "/", undefined, body); }; export const se_UpdateSecretVersionStageCommand = async (input, context) => { const headers = sharedHeaders("UpdateSecretVersionStage"); let body; body = JSON.stringify(_json(input)); return buildHttpRpcRequest(context, headers, "/", undefined, body); }; export const se_ValidateResourcePolicyCommand = async (input, context) => { const headers = sharedHeaders("ValidateResourcePolicy"); let body; body = JSON.stringify(_json(input)); return buildHttpRpcRequest(context, headers, "/", undefined, body); }; export const de_BatchGetSecretValueCommand = async (output, context) => { if (output.statusCode >= 300) { return de_CommandError(output, context); } const data = await parseBody(output.body, context); let contents = {}; contents = de_BatchGetSecretValueResponse(data, context); const response = { $metadata: deserializeMetadata(output), ...contents, }; return response; }; export const de_CancelRotateSecretCommand = async (output, context) => { if (output.statusCode >= 300) { return de_CommandError(output, context); } const data = await parseBody(output.body, context); let contents = {}; contents = _json(data); const response = { $metadata: deserializeMetadata(output), ...contents, }; return response; }; export const de_CreateSecretCommand = async (output, context) => { if (output.statusCode >= 300) { return de_CommandError(output, context); } const data = await parseBody(output.body, context); let contents = {}; contents = de_CreateSecretResponse(data, context); const response = { $metadata: deserializeMetadata(output), ...contents, }; return response; }; export const de_DeleteResourcePolicyCommand = async (output, context) => { if (output.statusCode >= 300) { return de_CommandError(output, context); } const data = await parseBody(output.body, context); let contents = {}; contents = _json(data); const response = { $metadata: deserializeMetadata(output), ...contents, }; return response; }; export const de_DeleteSecretCommand = async (output, context) => { if (output.statusCode >= 300) { return de_CommandError(output, context); } const data = await parseBody(output.body, context); let contents = {}; contents = de_DeleteSecretResponse(data, context); const response = { $metadata: deserializeMetadata(output), ...contents, }; return response; }; export const de_DescribeSecretCommand = async (output, context) => { if (output.statusCode >= 300) { return de_CommandError(output, context); } const data = await parseBody(output.body, context); let contents = {}; contents = de_DescribeSecretResponse(data, context); const response = { $metadata: deserializeMetadata(output), ...contents, }; return response; }; export const de_GetRandomPasswordCommand = async (output, context) => { if (output.statusCode >= 300) { return de_CommandError(output, context); } const data = await parseBody(output.body, context); let contents = {}; contents = _json(data); const response = { $metadata: deserializeMetadata(output), ...contents, }; return response; }; export const de_GetResourcePolicyCommand = async (output, context) => { if (output.statusCode >= 300) { return de_CommandError(output, context); } const data = await parseBody(output.body, context); let contents = {}; contents = _json(data); const response = { $metadata: deserializeMetadata(output), ...contents, }; return response; }; export const de_GetSecretValueCommand = async (output, context) => { if (output.statusCode >= 300) { return de_CommandError(output, context); } const data = await parseBody(output.body, context); let contents = {}; contents = de_GetSecretValueResponse(data, context); const response = { $metadata: deserializeMetadata(output), ...contents, }; return response; }; export const de_ListSecretsCommand = async (output, context) => { if (output.statusCode >= 300) { return de_CommandError(output, context); } const data = await parseBody(output.body, context); let contents = {}; contents = de_ListSecretsResponse(data, context); const response = { $metadata: deserializeMetadata(output), ...contents, }; return response; }; export const de_ListSecretVersionIdsCommand = async (output, context) => { if (output.statusCode >= 300) { return de_CommandError(output, context); } const data = await parseBody(output.body, context); let contents = {}; contents = de_ListSecretVersionIdsResponse(data, context); const response = { $metadata: deserializeMetadata(output), ...contents, }; return response; }; export const de_PutResourcePolicyCommand = async (output, context) => { if (output.statusCode >= 300) { return de_CommandError(output, context); } const data = await parseBody(output.body, context); let contents = {}; contents = _json(data); const response = { $metadata: deserializeMetadata(output), ...contents, }; return response; }; export const de_PutSecretValueCommand = async (output, context) => { if (output.statusCode >= 300) { return de_CommandError(output, context); } const data = await parseBody(output.body, context); let contents = {}; contents = _json(data); const response = { $metadata: deserializeMetadata(output), ...contents, }; return response; }; export const de_RemoveRegionsFromReplicationCommand = async (output, context) => { if (output.statusCode >= 300) { return de_CommandError(output, context); } const data = await parseBody(output.body, context); let contents = {}; contents = de_RemoveRegionsFromReplicationResponse(data, context); const response = { $metadata: deserializeMetadata(output), ...contents, }; return response; }; export const de_ReplicateSecretToRegionsCommand = async (output, context) => { if (output.statusCode >= 300) { return de_CommandError(output, context); } const data = await parseBody(output.body, context); let contents = {}; contents = de_ReplicateSecretToRegionsResponse(data, context); const response = { $metadata: deserializeMetadata(output), ...contents, }; return response; }; export const de_RestoreSecretCommand = async (output, context) => { if (output.statusCode >= 300) { return de_CommandError(output, context); } const data = await parseBody(output.body, context); let contents = {}; contents = _json(data); const response = { $metadata: deserializeMetadata(output), ...contents, }; return response; }; export const de_RotateSecretCommand = async (output, context) => { if (output.statusCode >= 300) { return de_CommandError(output, context); } const data = await parseBody(output.body, context); let contents = {}; contents = _json(data); const response = { $metadata: deserializeMetadata(output), ...contents, }; return response; }; export const de_StopReplicationToReplicaCommand = async (output, context) => { if (output.statusCode >= 300) { return de_CommandError(output, context); } const data = await parseBody(output.body, context); let contents = {}; contents = _json(data); const response = { $metadata: deserializeMetadata(output), ...contents, }; return response; }; export const de_TagResourceCommand = async (output, context) => { if (output.statusCode >= 300) { return de_CommandError(output, context); } await collectBody(output.body, context); const response = { $metadata: deserializeMetadata(output), }; return response; }; export const de_UntagResourceCommand = async (output, context) => { if (output.statusCode >= 300) { return de_CommandError(output, context); } await collectBody(output.body, context); const response = { $metadata: deserializeMetadata(output), }; return response; }; export const de_UpdateSecretCommand = async (output, context) => { if (output.statusCode >= 300) { return de_CommandError(output, context); } const data = await parseBody(output.body, context); let contents = {}; contents = _json(data); const response = { $metadata: deserializeMetadata(output), ...contents, }; return response; }; export const de_UpdateSecretVersionStageCommand = async (output, context) => { if (output.statusCode >= 300) { return de_CommandError(output, context); } const data = await parseBody(output.body, context); let contents = {}; contents = _json(data); const response = { $metadata: deserializeMetadata(output), ...contents, }; return response; }; export const de_ValidateResourcePolicyCommand = async (output, context) => { if (output.statusCode >= 300) { return de_CommandError(output, context); } const data = await parseBody(output.body, context); let contents = {}; contents = _json(data); const response = { $metadata: deserializeMetadata(output), ...contents, }; return response; }; const de_CommandError = async (output, context) => { const parsedOutput = { ...output, body: await parseErrorBody(output.body, context), }; const errorCode = loadRestJsonErrorCode(output, parsedOutput.body); switch (errorCode) { case "DecryptionFailure": case "com.amazonaws.secretsmanager#DecryptionFailure": throw await de_DecryptionFailureRes(parsedOutput, context); case "InternalServiceError": case "com.amazonaws.secretsmanager#InternalServiceError": throw await de_InternalServiceErrorRes(parsedOutput, context); case "InvalidNextTokenException": case "com.amazonaws.secretsmanager#InvalidNextTokenException": throw await de_InvalidNextTokenExceptionRes(parsedOutput, context); case "InvalidParameterException": case "com.amazonaws.secretsmanager#InvalidParameterException": throw await de_InvalidParameterExceptionRes(parsedOutput, context); case "InvalidRequestException": case "com.amazonaws.secretsmanager#InvalidRequestException": throw await de_InvalidRequestExceptionRes(parsedOutput, context); case "ResourceNotFoundException": case "com.amazonaws.secretsmanager#ResourceNotFoundException": throw await de_ResourceNotFoundExceptionRes(parsedOutput, context); case "EncryptionFailure": case "com.amazonaws.secretsmanager#EncryptionFailure": throw await de_EncryptionFailureRes(parsedOutput, context); case "LimitExceededException": case "com.amazonaws.secretsmanager#LimitExceededException": throw await de_LimitExceededExceptionRes(parsedOutput, context); case "MalformedPolicyDocumentException": case "com.amazonaws.secretsmanager#MalformedPolicyDocumentException": throw await de_MalformedPolicyDocumentExceptionRes(parsedOutput, context); case "PreconditionNotMetException": case "com.amazonaws.secretsmanager#PreconditionNotMetException": throw await de_PreconditionNotMetExceptionRes(parsedOutput, context); case "ResourceExistsException": case "com.amazonaws.secretsmanager#ResourceExistsException": throw await de_ResourceExistsExceptionRes(parsedOutput, context); case "PublicPolicyException": case "com.amazonaws.secretsmanager#PublicPolicyException": throw await de_PublicPolicyExceptionRes(parsedOutput, context); default: const parsedBody = parsedOutput.body; return throwDefaultError({ output, parsedBody, errorCode, }); } }; const de_DecryptionFailureRes = async (parsedOutput, context) => { const body = parsedOutput.body; const deserialized = _json(body); const exception = new DecryptionFailure({ $metadata: deserializeMetadata(parsedOutput), ...deserialized, }); return __decorateServiceException(exception, body); }; const de_EncryptionFailureRes = async (parsedOutput, context) => { const body = parsedOutput.body; const deserialized = _json(body); const exception = new EncryptionFailure({ $metadata: deserializeMetadata(parsedOutput), ...deserialized, }); return __decorateServiceException(exception, body); }; const de_InternalServiceErrorRes = async (parsedOutput, context) => { const body = parsedOutput.body; const deserialized = _json(body); const exception = new InternalServiceError({ $metadata: deserializeMetadata(parsedOutput), ...deserialized, }); return __decorateServiceException(exception, body); }; const de_InvalidNextTokenExceptionRes = async (parsedOutput, context) => { const body = parsedOutput.body; const deserialized = _json(body); const exception = new InvalidNextTokenException({ $metadata: deserializeMetadata(parsedOutput), ...deserialized, }); return __decorateServiceException(exception, body); }; const de_InvalidParameterExceptionRes = async (parsedOutput, context) => { const body = parsedOutput.body; const deserialized = _json(body); const exception = new InvalidParameterException({ $metadata: deserializeMetadata(parsedOutput), ...deserialized, }); return __decorateServiceException(exception, body); }; const de_InvalidRequestExceptionRes = async (parsedOutput, context) => { const body = parsedOutput.body; const deserialized = _json(body); const exception = new InvalidRequestException({ $metadata: deserializeMetadata(parsedOutput), ...deserialized, }); return __decorateServiceException(exception, body); }; const de_LimitExceededExceptionRes = async (parsedOutput, context) => { const body = parsedOutput.body; const deserialized = _json(body); const exception = new LimitExceededException({ $metadata: deserializeMetadata(parsedOutput), ...deserialized, }); return __decorateServiceException(exception, body); }; const de_MalformedPolicyDocumentExceptionRes = async (parsedOutput, context) => { const body = parsedOutput.body; const deserialized = _json(body); const exception = new MalformedPolicyDocumentException({ $metadata: deserializeMetadata(parsedOutput), ...deserialized, }); return __decorateServiceException(exception, body); }; const de_PreconditionNotMetExceptionRes = async (parsedOutput, context) => { const body = parsedOutput.body; const deserialized = _json(body); const exception = new PreconditionNotMetException({ $metadata: deserializeMetadata(parsedOutput), ...deserialized, }); return __decorateServiceException(exception, body); }; const de_PublicPolicyExceptionRes = async (parsedOutput, context) => { const body = parsedOutput.body; const deserialized = _json(body); const exception = new PublicPolicyException({ $metadata: deserializeMetadata(parsedOutput), ...deserialized, }); return __decorateServiceException(exception, body); }; const de_ResourceExistsExceptionRes = async (parsedOutput, context) => { const body = parsedOutput.body; const deserialized = _json(body); const exception = new ResourceExistsException({ $metadata: deserializeMetadata(parsedOutput), ...deserialized, }); return __decorateServiceException(exception, body); }; const de_ResourceNotFoundExceptionRes = async (parsedOutput, context) => { const body = parsedOutput.body; const deserialized = _json(body); const exception = new ResourceNotFoundException({ $metadata: deserializeMetadata(parsedOutput), ...deserialized, }); return __decorateServiceException(exception, body); }; const se_CreateSecretRequest = (input, context) => { return take(input, { AddReplicaRegions: _json, ClientRequestToken: [true, (_) => _ ?? generateIdempotencyToken()], Description: [], ForceOverwriteReplicaSecret: [], KmsKeyId: [], Name: [], SecretBinary: context.base64Encoder, SecretString: [], Tags: _json, }); }; const se_PutSecretValueRequest = (input, context) => { return take(input, { ClientRequestToken: [true, (_) => _ ?? generateIdempotencyToken()], RotationToken: [], SecretBinary: context.base64Encoder, SecretId: [], SecretString: [], VersionStages: _json, }); }; const se_RotateSecretRequest = (input, context) => { return take(input, { ClientRequestToken: [true, (_) => _ ?? generateIdempotencyToken()], RotateImmediately: [], RotationLambdaARN: [], RotationRules: _json, SecretId: [], }); }; const se_UpdateSecretRequest = (input, context) => { return take(input, { ClientRequestToken: [true, (_) => _ ?? generateIdempotencyToken()], Description: [], KmsKeyId: [], SecretBinary: context.base64Encoder, SecretId: [], SecretString: [], }); }; const de_BatchGetSecretValueResponse = (output, context) => { return take(output, { Errors: _json, NextToken: __expectString, SecretValues: (_) => de_SecretValuesType(_, context), }); }; const de_CreateSecretResponse = (output, context) => { return take(output, { ARN: __expectString, Name: __expectString, ReplicationStatus: (_) => de_ReplicationStatusListType(_, context), VersionId: __expectString, }); }; const de_DeleteSecretResponse = (output, context) => { return take(output, { ARN: __expectString, DeletionDate: (_) => __expectNonNull(__parseEpochTimestamp(__expectNumber(_))), Name: __expectString, }); }; const de_DescribeSecretResponse = (output, context) => { return take(output, { ARN: __expectString, CreatedDate: (_) => __expectNonNull(__parseEpochTimestamp(__expectNumber(_))), DeletedDate: (_) => __expectNonNull(__parseEpochTimestamp(__expectNumber(_))), Description: __expectString, KmsKeyId: __expectString, LastAccessedDate: (_) => __expectNonNull(__parseEpochTimestamp(__expectNumber(_))), LastChangedDate: (_) => __expectNonNull(__parseEpochTimestamp(__expectNumber(_))), LastRotatedDate: (_) => __expectNonNull(__parseEpochTimestamp(__expectNumber(_))), Name: __expectString, NextRotationDate: (_) => __expectNonNull(__parseEpochTimestamp(__expectNumber(_))), OwningService: __expectString, PrimaryRegion: __expectString, ReplicationStatus: (_) => de_ReplicationStatusListType(_, context), RotationEnabled: __expectBoolean, RotationLambdaARN: __expectString, RotationRules: _json, Tags: _json, VersionIdsToStages: _json, }); }; const de_GetSecretValueResponse = (output, context) => { return take(output, { ARN: __expectString, CreatedDate: (_) => __expectNonNull(__parseEpochTimestamp(__expectNumber(_))), Name: __expectString, SecretBinary: context.base64Decoder, SecretString: __expectString, VersionId: __expectString, VersionStages: _json, }); }; const de_ListSecretsResponse = (output, context) => { return take(output, { NextToken: __expectString, SecretList: (_) => de_SecretListType(_, context), }); }; const de_ListSecretVersionIdsResponse = (output, context) => { return take(output, { ARN: __expectString, Name: __expectString, NextToken: __expectString, Versions: (_) => de_SecretVersionsListType(_, context), }); }; const de_RemoveRegionsFromReplicationResponse = (output, context) => { return take(output, { ARN: __expectString, ReplicationStatus: (_) => de_ReplicationStatusListType(_, context), }); }; const de_ReplicateSecretToRegionsResponse = (output, context) => { return take(output, { ARN: __expectString, ReplicationStatus: (_) => de_ReplicationStatusListType(_, context), }); }; const de_ReplicationStatusListType = (output, context) => { const retVal = (output || []) .filter((e) => e != null) .map((entry) => { return de_ReplicationStatusType(entry, context); }); return retVal; }; const de_ReplicationStatusType = (output, context) => { return take(output, { KmsKeyId: __expectString, LastAccessedDate: (_) => __expectNonNull(__parseEpochTimestamp(__expectNumber(_))), Region: __expectString, Status: __expectString, StatusMessage: __expectString, }); }; const de_SecretListEntry = (output, context) => { return take(output, { ARN: __expectString, CreatedDate: (_) => __expectNonNull(__parseEpochTimestamp(__expectNumber(_))), DeletedDate: (_) => __expectNonNull(__parseEpochTimestamp(__expectNumber(_))), Description: __expectString, KmsKeyId: __expectString, LastAccessedDate: (_) => __expectNonNull(__parseEpochTimestamp(__expectNumber(_))), LastChangedDate: (_) => __expectNonNull(__parseEpochTimestamp(__expectNumber(_))), LastRotatedDate: (_) => __expectNonNull(__parseEpochTimestamp(__expectNumber(_))), Name: __expectString, NextRotationDate: (_) => __expectNonNull(__parseEpochTimestamp(__expectNumber(_))), OwningService: __expectString, PrimaryRegion: __expectString, RotationEnabled: __expectBoolean, RotationLambdaARN: __expectString, RotationRules: _json, SecretVersionsToStages: _json, Tags: _json, }); }; const de_SecretListType = (output, context) => { const retVal = (output || []) .filter((e) => e != null) .map((entry) => { return de_SecretListEntry(entry, context); }); return retVal; }; const de_SecretValueEntry = (output, context) => { return take(output, { ARN: __expectString, CreatedDate: (_) => __expectNonNull(__parseEpochTimestamp(__expectNumber(_))), Name: __expectString, SecretBinary: context.base64Decoder, SecretString: __expectString, VersionId: __expectString, VersionStages: _json, }); }; const de_SecretValuesType = (output, context) => { const retVal = (output || []) .filter((e) => e != null) .map((entry) => { return de_SecretValueEntry(entry, context); }); return retVal; }; const de_SecretVersionsListEntry = (output, context) => { return take(output, { CreatedDate: (_) => __expectNonNull(__parseEpochTimestamp(__expectNumber(_))), KmsKeyIds: _json, LastAccessedDate: (_) => __expectNonNull(__parseEpochTimestamp(__expectNumber(_))), VersionId: __expectString, VersionStages: _json, }); }; const de_SecretVersionsListType = (output, context) => { const retVal = (output || []) .filter((e) => e != null) .map((entry) => { return de_SecretVersionsListEntry(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 collectBodyString = (streamBody, context) => collectBody(streamBody, context).then((body) => context.utf8Encoder(body)); const throwDefaultError = withBaseException(__BaseException); const buildHttpRpcRequest = async (context, headers, path, resolvedHostname, body) => { const { hostname, protocol = "https", port, path: basePath } = await context.endpoint(); const contents = { protocol, hostname, port, method: "POST", path: basePath.endsWith("/") ? basePath.slice(0, -1) + path : basePath + path, headers, }; if (resolvedHostname !== undefined) { contents.hostname = resolvedHostname; } if (body !== undefined) { contents.body = body; } return new __HttpRequest(contents); }; function sharedHeaders(operation) { return { "content-type": "application/x-amz-json-1.1", "x-amz-target": `secretsmanager.${operation}`, }; }