UNPKG

@aws-solutions-constructs/core

Version:
56 lines 7.45 kB
"use strict"; /** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance * with the License. A copy of the License is located at * * http://www.apache.org/licenses/LICENSE-2.0 * * or in the 'license' file accompanying this file. This file is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES * OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions * and limitations under the License. */ Object.defineProperty(exports, "__esModule", { value: true }); exports.GetDefaultTableProps = GetDefaultTableProps; exports.GetDefaultTableWithStreamProps = GetDefaultTableWithStreamProps; /* * The functions found here in the core library are for internal use and can be changed * or removed outside of a major release. We recommend against calling them directly from client code. */ const dynamodb = require("aws-cdk-lib/aws-dynamodb"); const utils_1 = require("./utils"); function GetDefaultTableProps(clientTableProps) { return AddAppropriatePointInTimeRecovery(clientTableProps, { billingMode: dynamodb.BillingMode.PAY_PER_REQUEST, encryption: dynamodb.TableEncryption.AWS_MANAGED, partitionKey: { name: 'id', type: dynamodb.AttributeType.STRING } }); } function GetDefaultTableWithStreamProps(clientTableProps) { return AddAppropriatePointInTimeRecovery(clientTableProps, { billingMode: dynamodb.BillingMode.PAY_PER_REQUEST, encryption: dynamodb.TableEncryption.AWS_MANAGED, partitionKey: { name: 'id', type: dynamodb.AttributeType.STRING }, stream: dynamodb.StreamViewType.NEW_AND_OLD_IMAGES }); } function AddAppropriatePointInTimeRecovery(clientTableProps, defaultProps) { // We should never set pointInTimeRecovery as it is deprecated. But if a client has set it, the value passed by the client // should be used. If the client ahs sent a pointInTimeRecovery, we should not set a pointInTimeRecoverySpecification because // the two values will at best be redundant, and at worst conflict. // Under the covers, CDK will convert pointInTimeRecovery to PointInTimeRecoverySpecification in the actual template if (clientTableProps?.pointInTimeRecovery !== undefined) { return clientTableProps; } else { return (0, utils_1.overrideProps)(defaultProps, { pointInTimeRecoverySpecification: { pointInTimeRecoveryEnabled: true } }); } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1vZGItdGFibGUtZGVmYXVsdHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJkeW5hbW9kYi10YWJsZS1kZWZhdWx0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7Ozs7O0dBV0c7O0FBVUgsb0RBU0M7QUFFRCx3RUFVQztBQTdCRDs7O0dBR0c7QUFFSCxxREFBcUQ7QUFDckQsbUNBQXdDO0FBRXhDLFNBQWdCLG9CQUFvQixDQUFDLGdCQUFzQztJQUN6RSxPQUFPLGlDQUFpQyxDQUFDLGdCQUFnQixFQUFDO1FBQ3hELFdBQVcsRUFBRSxRQUFRLENBQUMsV0FBVyxDQUFDLGVBQWU7UUFDakQsVUFBVSxFQUFFLFFBQVEsQ0FBQyxlQUFlLENBQUMsV0FBVztRQUNoRCxZQUFZLEVBQUU7WUFDWixJQUFJLEVBQUUsSUFBSTtZQUNWLElBQUksRUFBRSxRQUFRLENBQUMsYUFBYSxDQUFDLE1BQU07U0FDcEM7S0FDRixDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQsU0FBZ0IsOEJBQThCLENBQUMsZ0JBQXNDO0lBQ25GLE9BQU8saUNBQWlDLENBQUMsZ0JBQWdCLEVBQUU7UUFDekQsV0FBVyxFQUFFLFFBQVEsQ0FBQyxXQUFXLENBQUMsZUFBZTtRQUNqRCxVQUFVLEVBQUUsUUFBUSxDQUFDLGVBQWUsQ0FBQyxXQUFXO1FBQ2hELFlBQVksRUFBRTtZQUNaLElBQUksRUFBRSxJQUFJO1lBQ1YsSUFBSSxFQUFFLFFBQVEsQ0FBQyxhQUFhLENBQUMsTUFBTTtTQUNwQztRQUNELE1BQU0sRUFBRSxRQUFRLENBQUMsY0FBYyxDQUFDLGtCQUFrQjtLQUNuRCxDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQsU0FBUyxpQ0FBaUMsQ0FBQyxnQkFBaUQsRUFBRSxZQUFpQztJQUM3SCwwSEFBMEg7SUFDMUgsNkhBQTZIO0lBQzdILG1FQUFtRTtJQUVuRSxvSEFBb0g7SUFDcEgsSUFBSSxnQkFBZ0IsRUFBRSxtQkFBbUIsS0FBSyxTQUFTLEVBQUUsQ0FBQztRQUN4RCxPQUFPLGdCQUFnQixDQUFDO0lBQzFCLENBQUM7U0FBTSxDQUFDO1FBQ04sT0FBTyxJQUFBLHFCQUFhLEVBQUMsWUFBWSxFQUFFLEVBQUUsZ0NBQWdDLEVBQUUsRUFBRSwwQkFBMEIsRUFBRSxJQUFJLEVBQUUsRUFBQyxDQUFDLENBQUM7SUFDaEgsQ0FBQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqICBDb3B5cmlnaHQgQW1hem9uLmNvbSwgSW5jLiBvciBpdHMgYWZmaWxpYXRlcy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKS4gWW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZVxuICogIHdpdGggdGhlIExpY2Vuc2UuIEEgY29weSBvZiB0aGUgTGljZW5zZSBpcyBsb2NhdGVkIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiAgb3IgaW4gdGhlICdsaWNlbnNlJyBmaWxlIGFjY29tcGFueWluZyB0aGlzIGZpbGUuIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAnQVMgSVMnIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVNcbiAqICBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBleHByZXNzIG9yIGltcGxpZWQuIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9uc1xuICogIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG4vKlxuICogIFRoZSBmdW5jdGlvbnMgZm91bmQgaGVyZSBpbiB0aGUgY29yZSBsaWJyYXJ5IGFyZSBmb3IgaW50ZXJuYWwgdXNlIGFuZCBjYW4gYmUgY2hhbmdlZFxuICogIG9yIHJlbW92ZWQgb3V0c2lkZSBvZiBhIG1ham9yIHJlbGVhc2UuIFdlIHJlY29tbWVuZCBhZ2FpbnN0IGNhbGxpbmcgdGhlbSBkaXJlY3RseSBmcm9tIGNsaWVudCBjb2RlLlxuICovXG5cbmltcG9ydCAqIGFzIGR5bmFtb2RiIGZyb20gJ2F3cy1jZGstbGliL2F3cy1keW5hbW9kYic7XG5pbXBvcnQgeyBvdmVycmlkZVByb3BzIH0gZnJvbSAnLi91dGlscyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBHZXREZWZhdWx0VGFibGVQcm9wcyhjbGllbnRUYWJsZVByb3BzPzogZHluYW1vZGIuVGFibGVQcm9wcykge1xuICByZXR1cm4gQWRkQXBwcm9wcmlhdGVQb2ludEluVGltZVJlY292ZXJ5KGNsaWVudFRhYmxlUHJvcHMse1xuICAgIGJpbGxpbmdNb2RlOiBkeW5hbW9kYi5CaWxsaW5nTW9kZS5QQVlfUEVSX1JFUVVFU1QsXG4gICAgZW5jcnlwdGlvbjogZHluYW1vZGIuVGFibGVFbmNyeXB0aW9uLkFXU19NQU5BR0VELFxuICAgIHBhcnRpdGlvbktleToge1xuICAgICAgbmFtZTogJ2lkJyxcbiAgICAgIHR5cGU6IGR5bmFtb2RiLkF0dHJpYnV0ZVR5cGUuU1RSSU5HXG4gICAgfVxuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIEdldERlZmF1bHRUYWJsZVdpdGhTdHJlYW1Qcm9wcyhjbGllbnRUYWJsZVByb3BzPzogZHluYW1vZGIuVGFibGVQcm9wcykge1xuICByZXR1cm4gQWRkQXBwcm9wcmlhdGVQb2ludEluVGltZVJlY292ZXJ5KGNsaWVudFRhYmxlUHJvcHMsIHtcbiAgICBiaWxsaW5nTW9kZTogZHluYW1vZGIuQmlsbGluZ01vZGUuUEFZX1BFUl9SRVFVRVNULFxuICAgIGVuY3J5cHRpb246IGR5bmFtb2RiLlRhYmxlRW5jcnlwdGlvbi5BV1NfTUFOQUdFRCxcbiAgICBwYXJ0aXRpb25LZXk6IHtcbiAgICAgIG5hbWU6ICdpZCcsXG4gICAgICB0eXBlOiBkeW5hbW9kYi5BdHRyaWJ1dGVUeXBlLlNUUklOR1xuICAgIH0sXG4gICAgc3RyZWFtOiBkeW5hbW9kYi5TdHJlYW1WaWV3VHlwZS5ORVdfQU5EX09MRF9JTUFHRVNcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIEFkZEFwcHJvcHJpYXRlUG9pbnRJblRpbWVSZWNvdmVyeShjbGllbnRUYWJsZVByb3BzOiBkeW5hbW9kYi5UYWJsZVByb3BzIHwgdW5kZWZpbmVkLCBkZWZhdWx0UHJvcHM6IGR5bmFtb2RiLlRhYmxlUHJvcHMpIHtcbiAgLy8gV2Ugc2hvdWxkIG5ldmVyIHNldCBwb2ludEluVGltZVJlY292ZXJ5IGFzIGl0IGlzIGRlcHJlY2F0ZWQuIEJ1dCBpZiBhIGNsaWVudCBoYXMgc2V0IGl0LCB0aGUgdmFsdWUgcGFzc2VkIGJ5IHRoZSBjbGllbnRcbiAgLy8gc2hvdWxkIGJlIHVzZWQuIElmIHRoZSBjbGllbnQgYWhzIHNlbnQgYSBwb2ludEluVGltZVJlY292ZXJ5LCB3ZSBzaG91bGQgbm90IHNldCBhIHBvaW50SW5UaW1lUmVjb3ZlcnlTcGVjaWZpY2F0aW9uIGJlY2F1c2VcbiAgLy8gdGhlIHR3byB2YWx1ZXMgd2lsbCBhdCBiZXN0IGJlIHJlZHVuZGFudCwgYW5kIGF0IHdvcnN0IGNvbmZsaWN0LlxuXG4gIC8vIFVuZGVyIHRoZSBjb3ZlcnMsIENESyB3aWxsIGNvbnZlcnQgcG9pbnRJblRpbWVSZWNvdmVyeSB0byBQb2ludEluVGltZVJlY292ZXJ5U3BlY2lmaWNhdGlvbiBpbiB0aGUgYWN0dWFsIHRlbXBsYXRlXG4gIGlmIChjbGllbnRUYWJsZVByb3BzPy5wb2ludEluVGltZVJlY292ZXJ5ICE9PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gY2xpZW50VGFibGVQcm9wcztcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gb3ZlcnJpZGVQcm9wcyhkZWZhdWx0UHJvcHMsIHsgcG9pbnRJblRpbWVSZWNvdmVyeVNwZWNpZmljYXRpb246IHsgcG9pbnRJblRpbWVSZWNvdmVyeUVuYWJsZWQ6IHRydWUgfX0pO1xuICB9XG59Il19