@aws-solutions-constructs/core
Version:
Core CDK Construct for patterns library
51 lines • 6.86 kB
JavaScript
/**
* 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.buildLogGroup = buildLogGroup;
/*
* 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 cloudwatch_log_group_defaults_1 = require("./cloudwatch-log-group-defaults");
const logs = require("aws-cdk-lib/aws-logs");
const utils_1 = require("./utils");
/**
* @internal This is an internal core function and should not be called directly by Solutions Constructs clients.
*/
function buildLogGroup(scope, logGroupId, logGroupProps) {
const consolidatedLogGroupProps = (0, utils_1.consolidateProps)((0, cloudwatch_log_group_defaults_1.DefaultLogGroupProps)(), logGroupProps);
// Set the LogGroup Id
const adjustedLogGroupId = logGroupId ? logGroupId : 'CloudWatchLogGroup';
// Create the CW Log Group
const logGroup = new logs.LogGroup(scope, adjustedLogGroupId, consolidatedLogGroupProps);
// If required, suppress the Cfn Nag WARNINGS
if (consolidatedLogGroupProps.retention === logs.RetentionDays.INFINITE) {
(0, utils_1.addCfnSuppressRules)(logGroup, [
{
id: 'W86',
reason: 'Retention period for CloudWatchLogs LogGroups are set to \'Never Expire\' to preserve customer data indefinitely'
}
]);
}
if (!consolidatedLogGroupProps.encryptionKey) {
(0, utils_1.addCfnSuppressRules)(logGroup, [
{
id: 'W84',
reason: 'By default CloudWatchLogs LogGroups data is encrypted using the CloudWatch server-side encryption keys (AWS Managed Keys)'
}
]);
}
return logGroup;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xvdWR3YXRjaC1sb2ctZ3JvdXAtaGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiY2xvdWR3YXRjaC1sb2ctZ3JvdXAtaGVscGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7Ozs7Ozs7R0FXRzs7QUFnQkgsc0NBNkJDO0FBM0NEOzs7R0FHRztBQUVILG1GQUF1RTtBQUN2RSw2Q0FBNkM7QUFDN0MsbUNBQWdFO0FBSWhFOztHQUVHO0FBQ0gsU0FBZ0IsYUFBYSxDQUFDLEtBQWdCLEVBQUUsVUFBbUIsRUFBRSxhQUFrQztJQUNyRyxNQUFNLHlCQUF5QixHQUF1QixJQUFBLHdCQUFnQixFQUFDLElBQUEsb0RBQW9CLEdBQUUsRUFBRSxhQUFhLENBQUMsQ0FBQztJQUU5RyxzQkFBc0I7SUFDdEIsTUFBTSxrQkFBa0IsR0FBRyxVQUFVLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsb0JBQW9CLENBQUM7SUFFMUUsMEJBQTBCO0lBQzFCLE1BQU0sUUFBUSxHQUFHLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsa0JBQWtCLEVBQUUseUJBQXlCLENBQUMsQ0FBQztJQUV6Riw2Q0FBNkM7SUFDN0MsSUFBSSx5QkFBeUIsQ0FBQyxTQUFTLEtBQUssSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUN4RSxJQUFBLDJCQUFtQixFQUFFLFFBQVEsRUFBRTtZQUM3QjtnQkFDRSxFQUFFLEVBQUUsS0FBSztnQkFDVCxNQUFNLEVBQUUsa0hBQWtIO2FBQzNIO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUM3QyxJQUFBLDJCQUFtQixFQUFFLFFBQVEsRUFBRTtZQUM3QjtnQkFDRSxFQUFFLEVBQUUsS0FBSztnQkFDVCxNQUFNLEVBQUUsMkhBQTJIO2FBQ3BJO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELE9BQU8sUUFBUSxDQUFDO0FBQ2xCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqICBDb3B5cmlnaHQgQW1hem9uLmNvbSwgSW5jLiBvciBpdHMgYWZmaWxpYXRlcy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKS4gWW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZVxuICogIHdpdGggdGhlIExpY2Vuc2UuIEEgY29weSBvZiB0aGUgTGljZW5zZSBpcyBsb2NhdGVkIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiAgb3IgaW4gdGhlICdsaWNlbnNlJyBmaWxlIGFjY29tcGFueWluZyB0aGlzIGZpbGUuIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAnQVMgSVMnIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVNcbiAqICBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBleHByZXNzIG9yIGltcGxpZWQuIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9uc1xuICogIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG4vKlxuICogIFRoZSBmdW5jdGlvbnMgZm91bmQgaGVyZSBpbiB0aGUgY29yZSBsaWJyYXJ5IGFyZSBmb3IgaW50ZXJuYWwgdXNlIGFuZCBjYW4gYmUgY2hhbmdlZFxuICogIG9yIHJlbW92ZWQgb3V0c2lkZSBvZiBhIG1ham9yIHJlbGVhc2UuIFdlIHJlY29tbWVuZCBhZ2FpbnN0IGNhbGxpbmcgdGhlbSBkaXJlY3RseSBmcm9tIGNsaWVudCBjb2RlLlxuICovXG5cbmltcG9ydCB7IERlZmF1bHRMb2dHcm91cFByb3BzIH0gZnJvbSAnLi9jbG91ZHdhdGNoLWxvZy1ncm91cC1kZWZhdWx0cyc7XG5pbXBvcnQgKiBhcyBsb2dzIGZyb20gJ2F3cy1jZGstbGliL2F3cy1sb2dzJztcbmltcG9ydCB7IGFkZENmblN1cHByZXNzUnVsZXMsIGNvbnNvbGlkYXRlUHJvcHMgfSBmcm9tICcuL3V0aWxzJztcbi8vIE5vdGU6IFRvIGVuc3VyZSBDREt2MiBjb21wYXRpYmlsaXR5LCBrZWVwIHRoZSBpbXBvcnQgc3RhdGVtZW50IGZvciBDb25zdHJ1Y3Qgc2VwYXJhdGVcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuXG4vKipcbiAqIEBpbnRlcm5hbCBUaGlzIGlzIGFuIGludGVybmFsIGNvcmUgZnVuY3Rpb24gYW5kIHNob3VsZCBub3QgYmUgY2FsbGVkIGRpcmVjdGx5IGJ5IFNvbHV0aW9ucyBDb25zdHJ1Y3RzIGNsaWVudHMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBidWlsZExvZ0dyb3VwKHNjb3BlOiBDb25zdHJ1Y3QsIGxvZ0dyb3VwSWQ/OiBzdHJpbmcsIGxvZ0dyb3VwUHJvcHM/OiBsb2dzLkxvZ0dyb3VwUHJvcHMpOiBsb2dzLkxvZ0dyb3VwIHtcbiAgY29uc3QgY29uc29saWRhdGVkTG9nR3JvdXBQcm9wczogbG9ncy5Mb2dHcm91cFByb3BzID0gY29uc29saWRhdGVQcm9wcyhEZWZhdWx0TG9nR3JvdXBQcm9wcygpLCBsb2dHcm91cFByb3BzKTtcblxuICAvLyBTZXQgdGhlIExvZ0dyb3VwIElkXG4gIGNvbnN0IGFkanVzdGVkTG9nR3JvdXBJZCA9IGxvZ0dyb3VwSWQgPyBsb2dHcm91cElkIDogJ0Nsb3VkV2F0Y2hMb2dHcm91cCc7XG5cbiAgLy8gQ3JlYXRlIHRoZSBDVyBMb2cgR3JvdXBcbiAgY29uc3QgbG9nR3JvdXAgPSBuZXcgbG9ncy5Mb2dHcm91cChzY29wZSwgYWRqdXN0ZWRMb2dHcm91cElkLCBjb25zb2xpZGF0ZWRMb2dHcm91cFByb3BzKTtcblxuICAvLyBJZiByZXF1aXJlZCwgc3VwcHJlc3MgdGhlIENmbiBOYWcgV0FSTklOR1NcbiAgaWYgKGNvbnNvbGlkYXRlZExvZ0dyb3VwUHJvcHMucmV0ZW50aW9uID09PSBsb2dzLlJldGVudGlvbkRheXMuSU5GSU5JVEUpIHtcbiAgICBhZGRDZm5TdXBwcmVzc1J1bGVzKCBsb2dHcm91cCwgW1xuICAgICAge1xuICAgICAgICBpZDogJ1c4NicsXG4gICAgICAgIHJlYXNvbjogJ1JldGVudGlvbiBwZXJpb2QgZm9yIENsb3VkV2F0Y2hMb2dzIExvZ0dyb3VwcyBhcmUgc2V0IHRvIFxcJ05ldmVyIEV4cGlyZVxcJyB0byBwcmVzZXJ2ZSBjdXN0b21lciBkYXRhIGluZGVmaW5pdGVseSdcbiAgICAgIH1cbiAgICBdKTtcbiAgfVxuXG4gIGlmICghY29uc29saWRhdGVkTG9nR3JvdXBQcm9wcy5lbmNyeXB0aW9uS2V5KSB7XG4gICAgYWRkQ2ZuU3VwcHJlc3NSdWxlcyggbG9nR3JvdXAsIFtcbiAgICAgIHtcbiAgICAgICAgaWQ6ICdXODQnLFxuICAgICAgICByZWFzb246ICdCeSBkZWZhdWx0IENsb3VkV2F0Y2hMb2dzIExvZ0dyb3VwcyBkYXRhIGlzIGVuY3J5cHRlZCB1c2luZyB0aGUgQ2xvdWRXYXRjaCBzZXJ2ZXItc2lkZSBlbmNyeXB0aW9uIGtleXMgKEFXUyBNYW5hZ2VkIEtleXMpJ1xuICAgICAgfVxuICAgIF0pO1xuICB9XG5cbiAgcmV0dXJuIGxvZ0dyb3VwO1xufSJdfQ==
;