@ashishpandeyone/cdk-lambda-web-function 0.1.11 → 0.1.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -50,7 +50,7 @@ const web_function_1 = require("./web-function");
50
50
  * bundle, and `NODE_OPTIONS=--enable-source-maps` when source maps are on.
51
51
  */
52
52
  class NodejsWebFunction extends web_function_1.WebFunction {
53
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@ashishpandeyone/cdk-lambda-web-function.NodejsWebFunction", version: "0.1.11" };
53
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@ashishpandeyone/cdk-lambda-web-function.NodejsWebFunction", version: "0.1.12" };
54
54
  /**
55
55
  * Identifies this class to property injectors (`PropertyInjectors.of(scope).add(...)`). A `NodejsWebFunction` gets
56
56
  * its own injector first, then `WebFunction`'s, as aws-cdk-lib's `NodejsFunction` does with `Function`'s.
@@ -8,6 +8,8 @@ export interface WebFunctionLogGroupProps {
8
8
  readonly logGroupName: string;
9
9
  readonly retention: logs.RetentionDays;
10
10
  readonly removalPolicy: RemovalPolicy;
11
+ /** A KMS key in `region`, by ARN. */
12
+ readonly kmsKeyArn?: string;
11
13
  }
12
14
  /** One Web Function log group in one (possibly remote) region, owned through the provider. */
13
15
  export declare class WebFunctionLogGroup extends Construct {
@@ -60,18 +60,27 @@ class WebFunctionLogGroup extends constructs_1.Construct {
60
60
  // per-region grants break when a region is removed (CloudFormation reverts or updates the role first).
61
61
  const webLogGroups = stack.formatArn({ service: 'logs', region: '*', resource: 'log-group', resourceName: '/aws/lambda/web/*', arnFormat: aws_cdk_lib_1.ArnFormat.COLON_RESOURCE_NAME });
62
62
  (0, provider_1.grantToProvider)(provider, {
63
- Action: ['logs:CreateLogGroup', 'logs:PutRetentionPolicy', 'logs:DeleteRetentionPolicy', 'logs:DeleteLogGroup'],
63
+ // The key actions too when no group has a key: removing one needs DisassociateKmsKey.
64
+ Action: [
65
+ 'logs:CreateLogGroup', 'logs:PutRetentionPolicy', 'logs:DeleteRetentionPolicy', 'logs:DeleteLogGroup',
66
+ 'logs:AssociateKmsKey', 'logs:DisassociateKmsKey',
67
+ ],
64
68
  Resource: webLogGroups,
65
69
  });
66
70
  (0, provider_1.grantToProvider)(provider, {
67
71
  Action: 'logs:DescribeLogGroups',
68
72
  Resource: stack.formatArn({ service: 'logs', region: '*', resource: 'log-group', resourceName: '*', arnFormat: aws_cdk_lib_1.ArnFormat.COLON_RESOURCE_NAME }),
69
73
  });
74
+ if (props.kmsKeyArn) {
75
+ // CreateLogGroup and AssociateKmsKey check that the caller can describe the key.
76
+ (0, provider_1.grantToProvider)(provider, { Action: 'kms:DescribeKey', Resource: props.kmsKeyArn });
77
+ }
70
78
  const properties = {
71
79
  Region: props.region,
72
80
  LogGroupName: props.logGroupName,
73
81
  RetentionInDays: props.retention === logs.RetentionDays.INFINITE ? 'Infinite' : String(props.retention),
74
82
  RemovalPolicy: props.removalPolicy === aws_cdk_lib_1.RemovalPolicy.DESTROY ? 'destroy' : 'retain',
83
+ KmsKeyId: props.kmsKeyArn,
75
84
  FlushWaitSeconds: String(exports.FLUSH_WAIT_SECONDS),
76
85
  RecheckWaitSeconds: String(RECHECK_WAIT_SECONDS),
77
86
  };
@@ -83,4 +92,4 @@ class WebFunctionLogGroup extends constructs_1.Construct {
83
92
  }
84
93
  }
85
94
  exports.WebFunctionLogGroup = WebFunctionLogGroup;
86
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nLWdyb3VwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3ByaXZhdGUvbG9nLWdyb3VwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDZDQUE4RTtBQUM5RSwyREFBNkM7QUFDN0MsMkNBQXVDO0FBQ3ZDLHlDQUFrRTtBQUNsRSwyREFBdUY7QUFFdkYsOEZBQThGO0FBQ2pGLFFBQUEsa0JBQWtCLEdBQUcsRUFBRSxDQUFDO0FBQ3JDLE1BQU0sb0JBQW9CLEdBQUcsRUFBRSxDQUFDO0FBU2hDLDhGQUE4RjtBQUM5RixNQUFhLG1CQUFvQixTQUFRLHNCQUFTO0lBQ2hDLE1BQU0sQ0FBUztJQUNmLFlBQVksQ0FBUztJQUNyQixRQUFRLENBQWlCO0lBRXpDLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBK0I7UUFDdkUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNqQixJQUFJLEtBQUssQ0FBQyxhQUFhLEtBQUssMkJBQWEsQ0FBQyxNQUFNLElBQUksS0FBSyxDQUFDLGFBQWEsS0FBSywyQkFBYSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2xHLE1BQU0sSUFBSSxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUkscURBQXFELEtBQUssQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDO1FBQy9HLENBQUM7UUFDRCxJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUM7UUFDM0IsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUMsWUFBWSxDQUFDO1FBRXZDLE1BQU0sS0FBSyxHQUFHLG1CQUFLLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzdCLE1BQU0sUUFBUSxHQUFHLElBQUEsOEJBQW1CLEVBQUMsSUFBSSxDQUFDLENBQUM7UUFDM0MsMEdBQTBHO1FBQzFHLHVHQUF1RztRQUN2RyxNQUFNLFlBQVksR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLG1CQUFtQixFQUFFLFNBQVMsRUFBRSx1QkFBUyxDQUFDLG1CQUFtQixFQUFFLENBQUMsQ0FBQztRQUMzSyxJQUFBLDBCQUFlLEVBQUMsUUFBUSxFQUFFO1lBQ3hCLE1BQU0sRUFBRSxDQUFDLHFCQUFxQixFQUFFLHlCQUF5QixFQUFFLDRCQUE0QixFQUFFLHFCQUFxQixDQUFDO1lBQy9HLFFBQVEsRUFBRSxZQUFZO1NBQ3ZCLENBQUMsQ0FBQztRQUNILElBQUEsMEJBQWUsRUFBQyxRQUFRLEVBQUU7WUFDeEIsTUFBTSxFQUFFLHdCQUF3QjtZQUNoQyxRQUFRLEVBQUUsS0FBSyxDQUFDLFNBQVMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLHVCQUFTLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztTQUNoSixDQUFDLENBQUM7UUFFSCxNQUFNLFVBQVUsR0FBdUI7WUFDckMsTUFBTSxFQUFFLEtBQUssQ0FBQyxNQUFNO1lBQ3BCLFlBQVksRUFBRSxLQUFLLENBQUMsWUFBWTtZQUNoQyxlQUFlLEVBQUUsS0FBSyxDQUFDLFNBQVMsS0FBSyxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQztZQUN2RyxhQUFhLEVBQUUsS0FBSyxDQUFDLGFBQWEsS0FBSywyQkFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxRQUFRO1lBQ25GLGdCQUFnQixFQUFFLE1BQU0sQ0FBQywwQkFBa0IsQ0FBQztZQUM1QyxrQkFBa0IsRUFBRSxNQUFNLENBQUMsb0JBQW9CLENBQUM7U0FDakQsQ0FBQztRQUNGLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSw0QkFBYyxDQUFDLElBQUksRUFBRSxVQUFVLEVBQUU7WUFDbkQsWUFBWSxFQUFFLFFBQVEsQ0FBQyxZQUFZO1lBQ25DLFlBQVksRUFBRSwyQ0FBdUI7WUFDckMsVUFBVSxFQUFFLEVBQUUsR0FBRyxVQUFVLEVBQUU7U0FDOUIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGO0FBekNELGtEQXlDQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFybkZvcm1hdCwgQ3VzdG9tUmVzb3VyY2UsIFJlbW92YWxQb2xpY3ksIFN0YWNrIH0gZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0ICogYXMgbG9ncyBmcm9tICdhd3MtY2RrLWxpYi9hd3MtbG9ncyc7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB7IGdyYW50VG9Qcm92aWRlciwgd2ViRnVuY3Rpb25Qcm92aWRlciB9IGZyb20gJy4vcHJvdmlkZXInO1xuaW1wb3J0IHsgTE9HX0dST1VQX1JFU09VUkNFX1RZUEUsIHR5cGUgTG9nR3JvdXBQcm9wZXJ0aWVzIH0gZnJvbSAnLi9wcm92aWRlci1wcm90b2NvbCc7XG5cbi8qKiBTZWNvbmRzIHRvIHdhaXQgYmVmb3JlIGRlbGV0aW5nIGEgZ3JvdXA7IHZlcmlmaWVkIGFnYWluc3QgbGF0ZSBmbHVzaGVzIGluIGV2ZXJ5IHJlZ2lvbi4gKi9cbmV4cG9ydCBjb25zdCBGTFVTSF9XQUlUX1NFQ09ORFMgPSA3NTtcbmNvbnN0IFJFQ0hFQ0tfV0FJVF9TRUNPTkRTID0gMzA7XG5cbmV4cG9ydCBpbnRlcmZhY2UgV2ViRnVuY3Rpb25Mb2dHcm91cFByb3BzIHtcbiAgcmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG4gIHJlYWRvbmx5IGxvZ0dyb3VwTmFtZTogc3RyaW5nO1xuICByZWFkb25seSByZXRlbnRpb246IGxvZ3MuUmV0ZW50aW9uRGF5cztcbiAgcmVhZG9ubHkgcmVtb3ZhbFBvbGljeTogUmVtb3ZhbFBvbGljeTtcbn1cblxuLyoqIE9uZSBXZWIgRnVuY3Rpb24gbG9nIGdyb3VwIGluIG9uZSAocG9zc2libHkgcmVtb3RlKSByZWdpb24sIG93bmVkIHRocm91Z2ggdGhlIHByb3ZpZGVyLiAqL1xuZXhwb3J0IGNsYXNzIFdlYkZ1bmN0aW9uTG9nR3JvdXAgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICBwdWJsaWMgcmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG4gIHB1YmxpYyByZWFkb25seSBsb2dHcm91cE5hbWU6IHN0cmluZztcbiAgcHVibGljIHJlYWRvbmx5IHJlc291cmNlOiBDdXN0b21SZXNvdXJjZTtcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogV2ViRnVuY3Rpb25Mb2dHcm91cFByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcbiAgICBpZiAocHJvcHMucmVtb3ZhbFBvbGljeSAhPT0gUmVtb3ZhbFBvbGljeS5SRVRBSU4gJiYgcHJvcHMucmVtb3ZhbFBvbGljeSAhPT0gUmVtb3ZhbFBvbGljeS5ERVNUUk9ZKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYCR7dGhpcy5ub2RlLnBhdGh9OiBsb2dSZW1vdmFsUG9saWN5IG11c3QgYmUgUkVUQUlOIG9yIERFU1RST1ksIGdvdCAke3Byb3BzLnJlbW92YWxQb2xpY3l9YCk7XG4gICAgfVxuICAgIHRoaXMucmVnaW9uID0gcHJvcHMucmVnaW9uO1xuICAgIHRoaXMubG9nR3JvdXBOYW1lID0gcHJvcHMubG9nR3JvdXBOYW1lO1xuXG4gICAgY29uc3Qgc3RhY2sgPSBTdGFjay5vZih0aGlzKTtcbiAgICBjb25zdCBwcm92aWRlciA9IHdlYkZ1bmN0aW9uUHJvdmlkZXIodGhpcyk7XG4gICAgLy8gU3RhYmxlIGdyYW50IChzZWUgZ3JhbnRUb1Byb3ZpZGVyKTogV2ViIEZ1bmN0aW9uIGxvZyBncm91cHMgb2YgdGhpcyBhY2NvdW50LCBpbiBhbnkgcmVnaW9uLiBQZXItbmFtZSBvclxuICAgIC8vIHBlci1yZWdpb24gZ3JhbnRzIGJyZWFrIHdoZW4gYSByZWdpb24gaXMgcmVtb3ZlZCAoQ2xvdWRGb3JtYXRpb24gcmV2ZXJ0cyBvciB1cGRhdGVzIHRoZSByb2xlIGZpcnN0KS5cbiAgICBjb25zdCB3ZWJMb2dHcm91cHMgPSBzdGFjay5mb3JtYXRBcm4oeyBzZXJ2aWNlOiAnbG9ncycsIHJlZ2lvbjogJyonLCByZXNvdXJjZTogJ2xvZy1ncm91cCcsIHJlc291cmNlTmFtZTogJy9hd3MvbGFtYmRhL3dlYi8qJywgYXJuRm9ybWF0OiBBcm5Gb3JtYXQuQ09MT05fUkVTT1VSQ0VfTkFNRSB9KTtcbiAgICBncmFudFRvUHJvdmlkZXIocHJvdmlkZXIsIHtcbiAgICAgIEFjdGlvbjogWydsb2dzOkNyZWF0ZUxvZ0dyb3VwJywgJ2xvZ3M6UHV0UmV0ZW50aW9uUG9saWN5JywgJ2xvZ3M6RGVsZXRlUmV0ZW50aW9uUG9saWN5JywgJ2xvZ3M6RGVsZXRlTG9nR3JvdXAnXSxcbiAgICAgIFJlc291cmNlOiB3ZWJMb2dHcm91cHMsXG4gICAgfSk7XG4gICAgZ3JhbnRUb1Byb3ZpZGVyKHByb3ZpZGVyLCB7XG4gICAgICBBY3Rpb246ICdsb2dzOkRlc2NyaWJlTG9nR3JvdXBzJyxcbiAgICAgIFJlc291cmNlOiBzdGFjay5mb3JtYXRBcm4oeyBzZXJ2aWNlOiAnbG9ncycsIHJlZ2lvbjogJyonLCByZXNvdXJjZTogJ2xvZy1ncm91cCcsIHJlc291cmNlTmFtZTogJyonLCBhcm5Gb3JtYXQ6IEFybkZvcm1hdC5DT0xPTl9SRVNPVVJDRV9OQU1FIH0pLFxuICAgIH0pO1xuXG4gICAgY29uc3QgcHJvcGVydGllczogTG9nR3JvdXBQcm9wZXJ0aWVzID0ge1xuICAgICAgUmVnaW9uOiBwcm9wcy5yZWdpb24sXG4gICAgICBMb2dHcm91cE5hbWU6IHByb3BzLmxvZ0dyb3VwTmFtZSxcbiAgICAgIFJldGVudGlvbkluRGF5czogcHJvcHMucmV0ZW50aW9uID09PSBsb2dzLlJldGVudGlvbkRheXMuSU5GSU5JVEUgPyAnSW5maW5pdGUnIDogU3RyaW5nKHByb3BzLnJldGVudGlvbiksXG4gICAgICBSZW1vdmFsUG9saWN5OiBwcm9wcy5yZW1vdmFsUG9saWN5ID09PSBSZW1vdmFsUG9saWN5LkRFU1RST1kgPyAnZGVzdHJveScgOiAncmV0YWluJyxcbiAgICAgIEZsdXNoV2FpdFNlY29uZHM6IFN0cmluZyhGTFVTSF9XQUlUX1NFQ09ORFMpLFxuICAgICAgUmVjaGVja1dhaXRTZWNvbmRzOiBTdHJpbmcoUkVDSEVDS19XQUlUX1NFQ09ORFMpLFxuICAgIH07XG4gICAgdGhpcy5yZXNvdXJjZSA9IG5ldyBDdXN0b21SZXNvdXJjZSh0aGlzLCAnUmVzb3VyY2UnLCB7XG4gICAgICBzZXJ2aWNlVG9rZW46IHByb3ZpZGVyLnNlcnZpY2VUb2tlbixcbiAgICAgIHJlc291cmNlVHlwZTogTE9HX0dST1VQX1JFU09VUkNFX1RZUEUsXG4gICAgICBwcm9wZXJ0aWVzOiB7IC4uLnByb3BlcnRpZXMgfSxcbiAgICB9KTtcbiAgfVxufVxuIl19
95
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nLWdyb3VwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3ByaXZhdGUvbG9nLWdyb3VwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDZDQUE4RTtBQUM5RSwyREFBNkM7QUFDN0MsMkNBQXVDO0FBQ3ZDLHlDQUFrRTtBQUNsRSwyREFBdUY7QUFFdkYsOEZBQThGO0FBQ2pGLFFBQUEsa0JBQWtCLEdBQUcsRUFBRSxDQUFDO0FBQ3JDLE1BQU0sb0JBQW9CLEdBQUcsRUFBRSxDQUFDO0FBV2hDLDhGQUE4RjtBQUM5RixNQUFhLG1CQUFvQixTQUFRLHNCQUFTO0lBQ2hDLE1BQU0sQ0FBUztJQUNmLFlBQVksQ0FBUztJQUNyQixRQUFRLENBQWlCO0lBRXpDLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBK0I7UUFDdkUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNqQixJQUFJLEtBQUssQ0FBQyxhQUFhLEtBQUssMkJBQWEsQ0FBQyxNQUFNLElBQUksS0FBSyxDQUFDLGFBQWEsS0FBSywyQkFBYSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2xHLE1BQU0sSUFBSSxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUkscURBQXFELEtBQUssQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDO1FBQy9HLENBQUM7UUFDRCxJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUM7UUFDM0IsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUMsWUFBWSxDQUFDO1FBRXZDLE1BQU0sS0FBSyxHQUFHLG1CQUFLLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzdCLE1BQU0sUUFBUSxHQUFHLElBQUEsOEJBQW1CLEVBQUMsSUFBSSxDQUFDLENBQUM7UUFDM0MsMEdBQTBHO1FBQzFHLHVHQUF1RztRQUN2RyxNQUFNLFlBQVksR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLG1CQUFtQixFQUFFLFNBQVMsRUFBRSx1QkFBUyxDQUFDLG1CQUFtQixFQUFFLENBQUMsQ0FBQztRQUMzSyxJQUFBLDBCQUFlLEVBQUMsUUFBUSxFQUFFO1lBQ3hCLHNGQUFzRjtZQUN0RixNQUFNLEVBQUU7Z0JBQ04scUJBQXFCLEVBQUUseUJBQXlCLEVBQUUsNEJBQTRCLEVBQUUscUJBQXFCO2dCQUNyRyxzQkFBc0IsRUFBRSx5QkFBeUI7YUFDbEQ7WUFDRCxRQUFRLEVBQUUsWUFBWTtTQUN2QixDQUFDLENBQUM7UUFDSCxJQUFBLDBCQUFlLEVBQUMsUUFBUSxFQUFFO1lBQ3hCLE1BQU0sRUFBRSx3QkFBd0I7WUFDaEMsUUFBUSxFQUFFLEtBQUssQ0FBQyxTQUFTLENBQUMsRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSx1QkFBUyxDQUFDLG1CQUFtQixFQUFFLENBQUM7U0FDaEosQ0FBQyxDQUFDO1FBRUgsSUFBSSxLQUFLLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDcEIsaUZBQWlGO1lBQ2pGLElBQUEsMEJBQWUsRUFBQyxRQUFRLEVBQUUsRUFBRSxNQUFNLEVBQUUsaUJBQWlCLEVBQUUsUUFBUSxFQUFFLEtBQUssQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDO1FBQ3RGLENBQUM7UUFFRCxNQUFNLFVBQVUsR0FBdUI7WUFDckMsTUFBTSxFQUFFLEtBQUssQ0FBQyxNQUFNO1lBQ3BCLFlBQVksRUFBRSxLQUFLLENBQUMsWUFBWTtZQUNoQyxlQUFlLEVBQUUsS0FBSyxDQUFDLFNBQVMsS0FBSyxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQztZQUN2RyxhQUFhLEVBQUUsS0FBSyxDQUFDLGFBQWEsS0FBSywyQkFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxRQUFRO1lBQ25GLFFBQVEsRUFBRSxLQUFLLENBQUMsU0FBUztZQUN6QixnQkFBZ0IsRUFBRSxNQUFNLENBQUMsMEJBQWtCLENBQUM7WUFDNUMsa0JBQWtCLEVBQUUsTUFBTSxDQUFDLG9CQUFvQixDQUFDO1NBQ2pELENBQUM7UUFDRixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksNEJBQWMsQ0FBQyxJQUFJLEVBQUUsVUFBVSxFQUFFO1lBQ25ELFlBQVksRUFBRSxRQUFRLENBQUMsWUFBWTtZQUNuQyxZQUFZLEVBQUUsMkNBQXVCO1lBQ3JDLFVBQVUsRUFBRSxFQUFFLEdBQUcsVUFBVSxFQUFFO1NBQzlCLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRjtBQW5ERCxrREFtREMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBcm5Gb3JtYXQsIEN1c3RvbVJlc291cmNlLCBSZW1vdmFsUG9saWN5LCBTdGFjayB9IGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCAqIGFzIGxvZ3MgZnJvbSAnYXdzLWNkay1saWIvYXdzLWxvZ3MnO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgeyBncmFudFRvUHJvdmlkZXIsIHdlYkZ1bmN0aW9uUHJvdmlkZXIgfSBmcm9tICcuL3Byb3ZpZGVyJztcbmltcG9ydCB7IExPR19HUk9VUF9SRVNPVVJDRV9UWVBFLCB0eXBlIExvZ0dyb3VwUHJvcGVydGllcyB9IGZyb20gJy4vcHJvdmlkZXItcHJvdG9jb2wnO1xuXG4vKiogU2Vjb25kcyB0byB3YWl0IGJlZm9yZSBkZWxldGluZyBhIGdyb3VwOyB2ZXJpZmllZCBhZ2FpbnN0IGxhdGUgZmx1c2hlcyBpbiBldmVyeSByZWdpb24uICovXG5leHBvcnQgY29uc3QgRkxVU0hfV0FJVF9TRUNPTkRTID0gNzU7XG5jb25zdCBSRUNIRUNLX1dBSVRfU0VDT05EUyA9IDMwO1xuXG5leHBvcnQgaW50ZXJmYWNlIFdlYkZ1bmN0aW9uTG9nR3JvdXBQcm9wcyB7XG4gIHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuICByZWFkb25seSBsb2dHcm91cE5hbWU6IHN0cmluZztcbiAgcmVhZG9ubHkgcmV0ZW50aW9uOiBsb2dzLlJldGVudGlvbkRheXM7XG4gIHJlYWRvbmx5IHJlbW92YWxQb2xpY3k6IFJlbW92YWxQb2xpY3k7XG4gIC8qKiBBIEtNUyBrZXkgaW4gYHJlZ2lvbmAsIGJ5IEFSTi4gKi9cbiAgcmVhZG9ubHkga21zS2V5QXJuPzogc3RyaW5nO1xufVxuXG4vKiogT25lIFdlYiBGdW5jdGlvbiBsb2cgZ3JvdXAgaW4gb25lIChwb3NzaWJseSByZW1vdGUpIHJlZ2lvbiwgb3duZWQgdGhyb3VnaCB0aGUgcHJvdmlkZXIuICovXG5leHBvcnQgY2xhc3MgV2ViRnVuY3Rpb25Mb2dHcm91cCBleHRlbmRzIENvbnN0cnVjdCB7XG4gIHB1YmxpYyByZWFkb25seSByZWdpb246IHN0cmluZztcbiAgcHVibGljIHJlYWRvbmx5IGxvZ0dyb3VwTmFtZTogc3RyaW5nO1xuICBwdWJsaWMgcmVhZG9ubHkgcmVzb3VyY2U6IEN1c3RvbVJlc291cmNlO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBXZWJGdW5jdGlvbkxvZ0dyb3VwUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuICAgIGlmIChwcm9wcy5yZW1vdmFsUG9saWN5ICE9PSBSZW1vdmFsUG9saWN5LlJFVEFJTiAmJiBwcm9wcy5yZW1vdmFsUG9saWN5ICE9PSBSZW1vdmFsUG9saWN5LkRFU1RST1kpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgJHt0aGlzLm5vZGUucGF0aH06IGxvZ1JlbW92YWxQb2xpY3kgbXVzdCBiZSBSRVRBSU4gb3IgREVTVFJPWSwgZ290ICR7cHJvcHMucmVtb3ZhbFBvbGljeX1gKTtcbiAgICB9XG4gICAgdGhpcy5yZWdpb24gPSBwcm9wcy5yZWdpb247XG4gICAgdGhpcy5sb2dHcm91cE5hbWUgPSBwcm9wcy5sb2dHcm91cE5hbWU7XG5cbiAgICBjb25zdCBzdGFjayA9IFN0YWNrLm9mKHRoaXMpO1xuICAgIGNvbnN0IHByb3ZpZGVyID0gd2ViRnVuY3Rpb25Qcm92aWRlcih0aGlzKTtcbiAgICAvLyBTdGFibGUgZ3JhbnQgKHNlZSBncmFudFRvUHJvdmlkZXIpOiBXZWIgRnVuY3Rpb24gbG9nIGdyb3VwcyBvZiB0aGlzIGFjY291bnQsIGluIGFueSByZWdpb24uIFBlci1uYW1lIG9yXG4gICAgLy8gcGVyLXJlZ2lvbiBncmFudHMgYnJlYWsgd2hlbiBhIHJlZ2lvbiBpcyByZW1vdmVkIChDbG91ZEZvcm1hdGlvbiByZXZlcnRzIG9yIHVwZGF0ZXMgdGhlIHJvbGUgZmlyc3QpLlxuICAgIGNvbnN0IHdlYkxvZ0dyb3VwcyA9IHN0YWNrLmZvcm1hdEFybih7IHNlcnZpY2U6ICdsb2dzJywgcmVnaW9uOiAnKicsIHJlc291cmNlOiAnbG9nLWdyb3VwJywgcmVzb3VyY2VOYW1lOiAnL2F3cy9sYW1iZGEvd2ViLyonLCBhcm5Gb3JtYXQ6IEFybkZvcm1hdC5DT0xPTl9SRVNPVVJDRV9OQU1FIH0pO1xuICAgIGdyYW50VG9Qcm92aWRlcihwcm92aWRlciwge1xuICAgICAgLy8gVGhlIGtleSBhY3Rpb25zIHRvbyB3aGVuIG5vIGdyb3VwIGhhcyBhIGtleTogcmVtb3Zpbmcgb25lIG5lZWRzIERpc2Fzc29jaWF0ZUttc0tleS5cbiAgICAgIEFjdGlvbjogW1xuICAgICAgICAnbG9nczpDcmVhdGVMb2dHcm91cCcsICdsb2dzOlB1dFJldGVudGlvblBvbGljeScsICdsb2dzOkRlbGV0ZVJldGVudGlvblBvbGljeScsICdsb2dzOkRlbGV0ZUxvZ0dyb3VwJyxcbiAgICAgICAgJ2xvZ3M6QXNzb2NpYXRlS21zS2V5JywgJ2xvZ3M6RGlzYXNzb2NpYXRlS21zS2V5JyxcbiAgICAgIF0sXG4gICAgICBSZXNvdXJjZTogd2ViTG9nR3JvdXBzLFxuICAgIH0pO1xuICAgIGdyYW50VG9Qcm92aWRlcihwcm92aWRlciwge1xuICAgICAgQWN0aW9uOiAnbG9nczpEZXNjcmliZUxvZ0dyb3VwcycsXG4gICAgICBSZXNvdXJjZTogc3RhY2suZm9ybWF0QXJuKHsgc2VydmljZTogJ2xvZ3MnLCByZWdpb246ICcqJywgcmVzb3VyY2U6ICdsb2ctZ3JvdXAnLCByZXNvdXJjZU5hbWU6ICcqJywgYXJuRm9ybWF0OiBBcm5Gb3JtYXQuQ09MT05fUkVTT1VSQ0VfTkFNRSB9KSxcbiAgICB9KTtcblxuICAgIGlmIChwcm9wcy5rbXNLZXlBcm4pIHtcbiAgICAgIC8vIENyZWF0ZUxvZ0dyb3VwIGFuZCBBc3NvY2lhdGVLbXNLZXkgY2hlY2sgdGhhdCB0aGUgY2FsbGVyIGNhbiBkZXNjcmliZSB0aGUga2V5LlxuICAgICAgZ3JhbnRUb1Byb3ZpZGVyKHByb3ZpZGVyLCB7IEFjdGlvbjogJ2ttczpEZXNjcmliZUtleScsIFJlc291cmNlOiBwcm9wcy5rbXNLZXlBcm4gfSk7XG4gICAgfVxuXG4gICAgY29uc3QgcHJvcGVydGllczogTG9nR3JvdXBQcm9wZXJ0aWVzID0ge1xuICAgICAgUmVnaW9uOiBwcm9wcy5yZWdpb24sXG4gICAgICBMb2dHcm91cE5hbWU6IHByb3BzLmxvZ0dyb3VwTmFtZSxcbiAgICAgIFJldGVudGlvbkluRGF5czogcHJvcHMucmV0ZW50aW9uID09PSBsb2dzLlJldGVudGlvbkRheXMuSU5GSU5JVEUgPyAnSW5maW5pdGUnIDogU3RyaW5nKHByb3BzLnJldGVudGlvbiksXG4gICAgICBSZW1vdmFsUG9saWN5OiBwcm9wcy5yZW1vdmFsUG9saWN5ID09PSBSZW1vdmFsUG9saWN5LkRFU1RST1kgPyAnZGVzdHJveScgOiAncmV0YWluJyxcbiAgICAgIEttc0tleUlkOiBwcm9wcy5rbXNLZXlBcm4sXG4gICAgICBGbHVzaFdhaXRTZWNvbmRzOiBTdHJpbmcoRkxVU0hfV0FJVF9TRUNPTkRTKSxcbiAgICAgIFJlY2hlY2tXYWl0U2Vjb25kczogU3RyaW5nKFJFQ0hFQ0tfV0FJVF9TRUNPTkRTKSxcbiAgICB9O1xuICAgIHRoaXMucmVzb3VyY2UgPSBuZXcgQ3VzdG9tUmVzb3VyY2UodGhpcywgJ1Jlc291cmNlJywge1xuICAgICAgc2VydmljZVRva2VuOiBwcm92aWRlci5zZXJ2aWNlVG9rZW4sXG4gICAgICByZXNvdXJjZVR5cGU6IExPR19HUk9VUF9SRVNPVVJDRV9UWVBFLFxuICAgICAgcHJvcGVydGllczogeyAuLi5wcm9wZXJ0aWVzIH0sXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
@@ -25,6 +25,8 @@ export interface LogGroupProperties {
25
25
  /** Days, or 'Infinite' for no retention. */
26
26
  readonly RetentionInDays: string;
27
27
  readonly RemovalPolicy: 'retain' | 'destroy';
28
+ /** The ARN of a KMS key in the group's region to encrypt it with; none means the service's own encryption. */
29
+ readonly KmsKeyId?: string;
28
30
  /** Seconds to wait before deleting, so environments still shutting down can flush their last lines. */
29
31
  readonly FlushWaitSeconds: string;
30
32
  /** Seconds to wait before checking once more that the service hasn't re-created the group. */
@@ -42,4 +42,4 @@ exports.EMPTY_ON_DELETE_TAG = { key: 'cdk-lambda-web:empty-on-delete', value: 't
42
42
  * (Web Functions have no AddPermission: the policy is a single document, so writers merge into it).
43
43
  */
44
44
  exports.RESOURCE_POLICY_STATEMENTS_RESOURCE_TYPE = 'Custom::LambdaWebResourcePolicyStatements';
45
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZXItcHJvdG9jb2wuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcHJpdmF0ZS9wcm92aWRlci1wcm90b2NvbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7OztHQU1HOzs7QUEyQ0gsMERBRUM7QUEzQ0QsdUZBQXVGO0FBQzFFLFFBQUEsa0JBQWtCLEdBQUcsdUJBQXVCLENBQUM7QUFjMUQsdUdBQXVHO0FBQzFGLFFBQUEsdUJBQXVCLEdBQUcsMkJBQTJCLENBQUM7QUFjbkUsZ0hBQWdIO0FBQ25HLFFBQUEsNkJBQTZCLEdBQUcsaUNBQWlDLENBQUM7QUFTL0UsZ0ZBQWdGO0FBQ2hGLFNBQWdCLHVCQUF1QixDQUFDLE1BQWM7SUFDcEQsT0FBTyxVQUFVLE1BQU0sRUFBRSxDQUFDO0FBQzVCLENBQUM7QUFFRCxtSEFBbUg7QUFDdEcsUUFBQSw4QkFBOEIsR0FBRyxrQ0FBa0MsQ0FBQztBQWFqRjs7O0dBR0c7QUFDVSxRQUFBLDJCQUEyQixHQUFHLCtCQUErQixDQUFDO0FBMkIzRSxrSEFBa0g7QUFDbEgsaUhBQWlIO0FBQ3BHLFFBQUEsaUJBQWlCLEdBQUcsWUFBWSxDQUFDO0FBQ2pDLFFBQUEsNEJBQTRCLEdBQUcsd0JBQXdCLENBQUM7QUFnQnJFLDBHQUEwRztBQUM3RixRQUFBLGlDQUFpQyxHQUFHLG9DQUFvQyxDQUFDO0FBRXRGOzs7R0FHRztBQUNVLFFBQUEsbUJBQW1CLEdBQUcsRUFBRSxHQUFHLEVBQUUsZ0NBQWdDLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxDQUFDO0FBTTVGOzs7R0FHRztBQUNVLFFBQUEsd0NBQXdDLEdBQUcsMkNBQTJDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvbnRyYWN0IGJldHdlZW4gdGhlIGNvbnN0cnVjdHMgYW5kIHRoZSBjdXN0b20gcmVzb3VyY2UgaGFuZGxlciBpblxuICogYGhhbmRsZXJzL3dlYi1mdW5jdGlvbi1wcm92aWRlcmAuIEJvdGggc2lkZXMgaW1wb3J0IHRoaXMgZmlsZSwgc28gcmVzb3VyY2VcbiAqIHR5cGVzIGFuZCBwcm9wZXJ0eSBuYW1lcyBjYW4ndCBkcmlmdCBhcGFydC5cbiAqXG4gKiBDbG91ZEZvcm1hdGlvbiBwYXNzZXMgZXZlcnkgc2NhbGFyIHByb3BlcnR5IHRvIHRoZSBoYW5kbGVyIGFzIGEgc3RyaW5nLlxuICovXG5cbi8qKiBDb3BpZXMgYSBjb2RlIHppcCBpbnRvIHRoZSBzdGFjaydzIGNvZGUgYnVja2V0IGFuZCByZXR1cm5zIHRoZSBvYmplY3QncyB2ZXJzaW9uLiAqL1xuZXhwb3J0IGNvbnN0IENPREVfUkVTT1VSQ0VfVFlQRSA9ICdDdXN0b206OkxhbWJkYVdlYkNvZGUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIENvZGVQcm9wZXJ0aWVzIHtcbiAgcmVhZG9ubHkgU291cmNlQnVja2V0OiBzdHJpbmc7XG4gIHJlYWRvbmx5IFNvdXJjZUtleTogc3RyaW5nO1xuICByZWFkb25seSBTb3VyY2VWZXJzaW9uPzogc3RyaW5nO1xuICByZWFkb25seSBEZXN0aW5hdGlvbkJ1Y2tldDogc3RyaW5nO1xuICByZWFkb25seSBEZXN0aW5hdGlvbktleTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvZGVBdHRyaWJ1dGVzIHtcbiAgcmVhZG9ubHkgVmVyc2lvbklkOiBzdHJpbmc7XG59XG5cbi8qKiBFbnN1cmVzIG9uZSBsb2cgZ3JvdXAgKGluIGFueSByZWdpb24pIGV4aXN0cyB3aXRoIHRoZSBnaXZlbiByZXRlbnRpb24sIGFuZCByZW1vdmVzIGl0IG9uIGRlbGV0ZS4gKi9cbmV4cG9ydCBjb25zdCBMT0dfR1JPVVBfUkVTT1VSQ0VfVFlQRSA9ICdDdXN0b206OkxhbWJkYVdlYkxvZ0dyb3VwJztcblxuZXhwb3J0IGludGVyZmFjZSBMb2dHcm91cFByb3BlcnRpZXMge1xuICByZWFkb25seSBSZWdpb246IHN0cmluZztcbiAgcmVhZG9ubHkgTG9nR3JvdXBOYW1lOiBzdHJpbmc7XG4gIC8qKiBEYXlzLCBvciAnSW5maW5pdGUnIGZvciBubyByZXRlbnRpb24uICovXG4gIHJlYWRvbmx5IFJldGVudGlvbkluRGF5czogc3RyaW5nO1xuICByZWFkb25seSBSZW1vdmFsUG9saWN5OiAncmV0YWluJyB8ICdkZXN0cm95JztcbiAgLyoqIFNlY29uZHMgdG8gd2FpdCBiZWZvcmUgZGVsZXRpbmcsIHNvIGVudmlyb25tZW50cyBzdGlsbCBzaHV0dGluZyBkb3duIGNhbiBmbHVzaCB0aGVpciBsYXN0IGxpbmVzLiAqL1xuICByZWFkb25seSBGbHVzaFdhaXRTZWNvbmRzOiBzdHJpbmc7XG4gIC8qKiBTZWNvbmRzIHRvIHdhaXQgYmVmb3JlIGNoZWNraW5nIG9uY2UgbW9yZSB0aGF0IHRoZSBzZXJ2aWNlIGhhc24ndCByZS1jcmVhdGVkIHRoZSBncm91cC4gKi9cbiAgcmVhZG9ubHkgUmVjaGVja1dhaXRTZWNvbmRzOiBzdHJpbmc7XG59XG5cbi8qKiBSZWFkcyBhbiBlbmRwb2ludCdzIHBlci1yZWdpb24gZG9tYWluIG5hbWVzLCB3aGljaCBDbG91ZEZvcm1hdGlvbiBjYW4ndCBpbmRleCBvdXQgb2YgYFJlZ2lvbmFsRW5kcG9pbnRzYC4gKi9cbmV4cG9ydCBjb25zdCBFTkRQT0lOVF9MT09LVVBfUkVTT1VSQ0VfVFlQRSA9ICdDdXN0b206OkxhbWJkYVdlYkVuZHBvaW50TG9va3VwJztcblxuZXhwb3J0IGludGVyZmFjZSBFbmRwb2ludExvb2t1cFByb3BlcnRpZXMge1xuICByZWFkb25seSBGdW5jdGlvbkFybjogc3RyaW5nO1xuICByZWFkb25seSBFbmRwb2ludE5hbWU6IHN0cmluZztcbiAgLyoqIENoYW5nZXMgd2hlbmV2ZXIgdGhlIGVuZHBvaW50IGlzIHJlcGxhY2VkLCBzbyB0aGUgbG9va3VwIHJ1bnMgYWdhaW4uICovXG4gIHJlYWRvbmx5IEVuZHBvaW50QXJuOiBzdHJpbmc7XG59XG5cbi8qKiBBdHRyaWJ1dGUgbmFtZSBob2xkaW5nIHRoZSBkb21haW4gb2Ygb25lIHJlZ2lvbiwgZS5nLiBgRG9tYWluLnVzLWVhc3QtMWAuICovXG5leHBvcnQgZnVuY3Rpb24gcmVnaW9uYWxEb21haW5BdHRyaWJ1dGUocmVnaW9uOiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gYERvbWFpbi4ke3JlZ2lvbn1gO1xufVxuXG4vKiogRGVsZXRlcyBhIGZ1bmN0aW9uJ3Mgb2xkZXN0IHJldmlzaW9ucyBiZXlvbmQgYSBjb3VudCwgZXhjZXB0IHRob3NlIHRoYXQgYXJlIGluIHVzZSBvciBtYXkgYmUgcm9sbGVkIGJhY2sgdG8uICovXG5leHBvcnQgY29uc3QgUkVWSVNJT05fQ0xFQU5VUF9SRVNPVVJDRV9UWVBFID0gJ0N1c3RvbTo6TGFtYmRhV2ViUmV2aXNpb25DbGVhbnVwJztcblxuZXhwb3J0IGludGVyZmFjZSBSZXZpc2lvbkNsZWFudXBQcm9wZXJ0aWVzIHtcbiAgcmVhZG9ubHkgRnVuY3Rpb25Bcm46IHN0cmluZztcbiAgLyoqIEhvdyBtYW55IG9mIHRoZSBuZXdlc3QgcmV2aXNpb25zIHRvIGtlZXAuICovXG4gIHJlYWRvbmx5IEtlZXA6IHN0cmluZztcbiAgLyoqXG4gICAqIFJldmlzaW9ucyB0aGUgdGVtcGxhdGUgdXNlcyAodGhlIGN1cnJlbnQgb25lIGFuZCBhbnkgYW4gZW5kcG9pbnQgcm91dGVzIHRvKS4gQWx3YXlzIGtlcHQsIGFuZCBvbiBhbiB1cGRhdGVcbiAgICogdGhlIHByZXZpb3VzIHRlbXBsYXRlJ3MgYXJlIGtlcHQgdG9vOiB0aGV5J3JlIHdoYXQgYSByb2xsYmFjayByb3V0ZXMgYmFjayB0by5cbiAgICovXG4gIHJlYWRvbmx5IFJldmlzaW9uSWRzOiBzdHJpbmdbXTtcbn1cblxuLyoqXG4gKiBNb3ZlcyBhbiBlbmRwb2ludCdzIHRyYWZmaWMgdG8gYSByZXZpc2lvbiBpbiBzdGVwcywgd2F0Y2hpbmcgYWxhcm1zIChjYW5hcnkgYW5kIGxpbmVhciBkZXBsb3ltZW50cykuXG4gKiBTZXJ2ZWQgYnkgdGhlIGRlcGxveW1lbnQgcHJvdmlkZXIgKGBoYW5kbGVycy93ZWItZnVuY3Rpb24tZGVwbG95bWVudGApLCBub3QgdGhlIHNoYXJlZCBwcm92aWRlcjogaXQgY2FuIHJ1biBmb3IgdXAgdG8gYW4gaG91ci5cbiAqL1xuZXhwb3J0IGNvbnN0IFRSQUZGSUNfU0hJRlRfUkVTT1VSQ0VfVFlQRSA9ICdDdXN0b206OkxhbWJkYVdlYlRyYWZmaWNTaGlmdCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHJhZmZpY1NoaWZ0UHJvcGVydGllcyB7XG4gIHJlYWRvbmx5IEZ1bmN0aW9uQXJuOiBzdHJpbmc7XG4gIHJlYWRvbmx5IEVuZHBvaW50TmFtZTogc3RyaW5nO1xuICAvKiogVGhlIHJldmlzaW9uIHRoYXQgZW5kcyB1cCB3aXRoIGFsbCBvZiB0aGUgZW5kcG9pbnQncyB0cmFmZmljLiAqL1xuICByZWFkb25seSBSZXZpc2lvbklkOiBzdHJpbmc7XG4gIC8qKiBUaGUgcmV2aXNpb24ncyBzaGFyZSBvZiB0cmFmZmljIGF0IGVhY2ggc3RlcCwgaW4gcGVyY2VudCwgY29tbWEtc2VwYXJhdGVkOyB0aGUgbGFzdCBpcyAxMDAuICovXG4gIHJlYWRvbmx5IFN0ZXBzOiBzdHJpbmc7XG4gIC8qKiBTZWNvbmRzIGVhY2ggc3RlcCBzZXJ2ZXMgKGNvdW50ZWQgZnJvbSB3aGVuIGl0cyB1cGRhdGUgc3RhcnRlZCkgYmVmb3JlIHRoZSBuZXh0LiAqL1xuICByZWFkb25seSBXYWl0U2Vjb25kczogc3RyaW5nO1xuICAvKiogQWxhcm1zIChpbiBhbnkgcmVnaW9uKSB0aGF0IHN0b3AgdGhlIGRlcGxveW1lbnQgYW5kIHJlc3RvcmUgdGhlIHByZXZpb3VzIHdlaWdodHMuICovXG4gIHJlYWRvbmx5IEFsYXJtQXJucz86IHN0cmluZ1tdO1xuICAvKiogSGFzaCBvZiB0aGUgZW5kcG9pbnQncyBvdGhlciBzZXR0aW5nczogYW55IGVuZHBvaW50IGNoYW5nZSByZS1jaGVja3MgaXRzIHRyYWZmaWMgYmVmb3JlIENsb3VkRm9ybWF0aW9uIHdyaXRlcyBpdC4gKi9cbiAgcmVhZG9ubHkgRW5kcG9pbnRDb25maWc6IHN0cmluZztcbn1cblxuLyoqIFdoYXQgYG9uRXZlbnRgIGhhbmRzIHRvIGBpc0NvbXBsZXRlYCAodGhlIFByb3ZpZGVyIGZyYW1ld29yayBwYXNzZXMgaXQgYXMgYERhdGFgKS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVHJhZmZpY1NoaWZ0U3RhdGUge1xuICAvKiogYG5vbmVgOiBub3RoaW5nIHRvIGRvOyBgc2hpZnRgOiBtb3ZpbmcgaW4gc3RlcHM7IGBzd2l0Y2hgOiBhbGwgYXQgb25jZSwgd2l0aG91dCBhbGFybXMgKHN0YWNrIHJvbGxiYWNrKS4gKi9cbiAgcmVhZG9ubHkgQWN0aW9uOiAnbm9uZScgfCAnc2hpZnQnIHwgJ3N3aXRjaCc7XG4gIC8qKiBgc2hpZnRgOiB0aGUgZW5kcG9pbnQncyB3ZWlnaHRzIGJlZm9yZSB0aGUgZGVwbG95bWVudCAoSlNPTiBgW3tyZXZpc2lvbklkLCB3ZWlnaHR9XWApLCByZXN0b3JlZCB3aGVuIGFuIGFsYXJtIGZpcmVzLiAqL1xuICByZWFkb25seSBQcmV2aW91c1dlaWdodHM/OiBzdHJpbmc7XG4gIC8qKiBgc3dpdGNoYDogdGhlIHdlaWdodHMgYmVpbmcgd3JpdHRlbiAoSlNPTiBgW3tyZXZpc2lvbklkLCB3ZWlnaHR9XWApLiAqL1xuICByZWFkb25seSBUYXJnZXRXZWlnaHRzPzogc3RyaW5nO1xufVxuXG4vKiogQ3JlYXRlcyBhIENsb3VkV2F0Y2ggbWV0cmljIGFsYXJtIGluIGFueSByZWdpb24gKENsb3VkRm9ybWF0aW9uIG9ubHkgY3JlYXRlcyBhbGFybXMgaW4gdGhlIHN0YWNrJ3MgcmVnaW9uKS4gKi9cbi8qKiBQcmVmaXggb2YgZXZlcnkgYWxhcm0gdGhpcyBsaWJyYXJ5IGNyZWF0ZXMgb3V0c2lkZSB0aGUgc3RhY2sncyByZWdpb247IHRoZSBwcm92aWRlcidzIElBTSBpcyBzY29wZWQgdG8gaXQuICovXG5leHBvcnQgY29uc3QgQUxBUk1fTkFNRV9QUkVGSVggPSAnTGFtYmRhV2ViLSc7XG5leHBvcnQgY29uc3QgUkVHSU9OQUxfQUxBUk1fUkVTT1VSQ0VfVFlQRSA9ICdDdXN0b206OkxhbWJkYVdlYkFsYXJtJztcblxuZXhwb3J0IGludGVyZmFjZSBSZWdpb25hbEFsYXJtUHJvcGVydGllcyB7XG4gIHJlYWRvbmx5IFJlZ2lvbjogc3RyaW5nO1xuICByZWFkb25seSBBbGFybU5hbWU6IHN0cmluZztcbiAgcmVhZG9ubHkgQWxhcm1EZXNjcmlwdGlvbjogc3RyaW5nO1xuICAvKiogUHV0TWV0cmljQWxhcm0ncyBgTWV0cmljc2AsIGFzIEpTT04uICovXG4gIHJlYWRvbmx5IE1ldHJpY3M6IHN0cmluZztcbiAgcmVhZG9ubHkgVGhyZXNob2xkOiBzdHJpbmc7XG4gIHJlYWRvbmx5IEV2YWx1YXRpb25QZXJpb2RzOiBzdHJpbmc7XG4gIC8qKiBQdXRNZXRyaWNBbGFybSdzIGBDb21wYXJpc29uT3BlcmF0b3JgLiAqL1xuICByZWFkb25seSBDb21wYXJpc29uT3BlcmF0b3I6IHN0cmluZztcbiAgLyoqIFB1dE1ldHJpY0FsYXJtJ3MgYFRyZWF0TWlzc2luZ0RhdGFgLiAqL1xuICByZWFkb25seSBUcmVhdE1pc3NpbmdEYXRhOiBzdHJpbmc7XG59XG5cbi8qKiBFbXB0aWVzIHRoZSBzdGFjaydzIGNvZGUgYnVja2V0IChldmVyeSBvYmplY3QgdmVyc2lvbiBhbmQgZGVsZXRlIG1hcmtlcikgd2hlbiB0aGUgc3RhY2sgZGVsZXRlcyBpdC4gKi9cbmV4cG9ydCBjb25zdCBDT0RFX0JVQ0tFVF9DTEVBTlVQX1JFU09VUkNFX1RZUEUgPSAnQ3VzdG9tOjpMYW1iZGFXZWJDb2RlQnVja2V0Q2xlYW51cCc7XG5cbi8qKlxuICogVGFnIG9uIHRoZSBjb2RlIGJ1Y2tldCB0aGF0IGxldHMgdGhlIGNsZWFudXAgZW1wdHkgaXQuIEEgcm9sbGJhY2sgcmV2ZXJ0cyB0aGUgYnVja2V0J3MgdGFncyBiZWZvcmUgaXQgZGVsZXRlc1xuICogcmVzb3VyY2VzIHRoZSBmYWlsZWQgdXBkYXRlIGNyZWF0ZWQsIHNvIGEgY2xlYW51cCByZXNvdXJjZSBhZGRlZCB0byBhbiBleGlzdGluZyBidWNrZXQgbmV2ZXIgZW1wdGllcyBpdCBvbiByb2xsYmFjay5cbiAqL1xuZXhwb3J0IGNvbnN0IEVNUFRZX09OX0RFTEVURV9UQUcgPSB7IGtleTogJ2Nkay1sYW1iZGEtd2ViOmVtcHR5LW9uLWRlbGV0ZScsIHZhbHVlOiAndHJ1ZScgfTtcblxuZXhwb3J0IGludGVyZmFjZSBDb2RlQnVja2V0Q2xlYW51cFByb3BlcnRpZXMge1xuICByZWFkb25seSBCdWNrZXROYW1lOiBzdHJpbmc7XG59XG5cbi8qKlxuICogV3JpdGVzIG9uZSBzdGFjaydzIHN0YXRlbWVudHMgaW50byBhIFdlYiBGdW5jdGlvbidzIHJlc291cmNlIHBvbGljeSwga2VlcGluZyBldmVyeSBvdGhlciB3cml0ZXIncyBzdGF0ZW1lbnRzXG4gKiAoV2ViIEZ1bmN0aW9ucyBoYXZlIG5vIEFkZFBlcm1pc3Npb246IHRoZSBwb2xpY3kgaXMgYSBzaW5nbGUgZG9jdW1lbnQsIHNvIHdyaXRlcnMgbWVyZ2UgaW50byBpdCkuXG4gKi9cbmV4cG9ydCBjb25zdCBSRVNPVVJDRV9QT0xJQ1lfU1RBVEVNRU5UU19SRVNPVVJDRV9UWVBFID0gJ0N1c3RvbTo6TGFtYmRhV2ViUmVzb3VyY2VQb2xpY3lTdGF0ZW1lbnRzJztcblxuZXhwb3J0IGludGVyZmFjZSBSZXNvdXJjZVBvbGljeVN0YXRlbWVudHNQcm9wZXJ0aWVzIHtcbiAgcmVhZG9ubHkgRnVuY3Rpb25Bcm46IHN0cmluZztcbiAgLyoqIFRoZSBzdGF0ZW1lbnRzIHRoaXMgcmVzb3VyY2Ugb3ducywgZWFjaCB3aXRoIGEgU2lkIHVuaXF1ZSBpbiB0aGUgZnVuY3Rpb24ncyBwb2xpY3kuICovXG4gIHJlYWRvbmx5IFBvbGljeTogeyByZWFkb25seSBTdGF0ZW1lbnQ6IFJlYWRvbmx5QXJyYXk8eyByZWFkb25seSBTaWQ6IHN0cmluZzsgcmVhZG9ubHkgW2tleTogc3RyaW5nXTogdW5rbm93biB9PiB9O1xufVxuIl19
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZXItcHJvdG9jb2wuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcHJpdmF0ZS9wcm92aWRlci1wcm90b2NvbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7OztHQU1HOzs7QUE2Q0gsMERBRUM7QUE3Q0QsdUZBQXVGO0FBQzFFLFFBQUEsa0JBQWtCLEdBQUcsdUJBQXVCLENBQUM7QUFjMUQsdUdBQXVHO0FBQzFGLFFBQUEsdUJBQXVCLEdBQUcsMkJBQTJCLENBQUM7QUFnQm5FLGdIQUFnSDtBQUNuRyxRQUFBLDZCQUE2QixHQUFHLGlDQUFpQyxDQUFDO0FBUy9FLGdGQUFnRjtBQUNoRixTQUFnQix1QkFBdUIsQ0FBQyxNQUFjO0lBQ3BELE9BQU8sVUFBVSxNQUFNLEVBQUUsQ0FBQztBQUM1QixDQUFDO0FBRUQsbUhBQW1IO0FBQ3RHLFFBQUEsOEJBQThCLEdBQUcsa0NBQWtDLENBQUM7QUFhakY7OztHQUdHO0FBQ1UsUUFBQSwyQkFBMkIsR0FBRywrQkFBK0IsQ0FBQztBQTJCM0Usa0hBQWtIO0FBQ2xILGlIQUFpSDtBQUNwRyxRQUFBLGlCQUFpQixHQUFHLFlBQVksQ0FBQztBQUNqQyxRQUFBLDRCQUE0QixHQUFHLHdCQUF3QixDQUFDO0FBZ0JyRSwwR0FBMEc7QUFDN0YsUUFBQSxpQ0FBaUMsR0FBRyxvQ0FBb0MsQ0FBQztBQUV0Rjs7O0dBR0c7QUFDVSxRQUFBLG1CQUFtQixHQUFHLEVBQUUsR0FBRyxFQUFFLGdDQUFnQyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsQ0FBQztBQU01Rjs7O0dBR0c7QUFDVSxRQUFBLHdDQUF3QyxHQUFHLDJDQUEyQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb250cmFjdCBiZXR3ZWVuIHRoZSBjb25zdHJ1Y3RzIGFuZCB0aGUgY3VzdG9tIHJlc291cmNlIGhhbmRsZXIgaW5cbiAqIGBoYW5kbGVycy93ZWItZnVuY3Rpb24tcHJvdmlkZXJgLiBCb3RoIHNpZGVzIGltcG9ydCB0aGlzIGZpbGUsIHNvIHJlc291cmNlXG4gKiB0eXBlcyBhbmQgcHJvcGVydHkgbmFtZXMgY2FuJ3QgZHJpZnQgYXBhcnQuXG4gKlxuICogQ2xvdWRGb3JtYXRpb24gcGFzc2VzIGV2ZXJ5IHNjYWxhciBwcm9wZXJ0eSB0byB0aGUgaGFuZGxlciBhcyBhIHN0cmluZy5cbiAqL1xuXG4vKiogQ29waWVzIGEgY29kZSB6aXAgaW50byB0aGUgc3RhY2sncyBjb2RlIGJ1Y2tldCBhbmQgcmV0dXJucyB0aGUgb2JqZWN0J3MgdmVyc2lvbi4gKi9cbmV4cG9ydCBjb25zdCBDT0RFX1JFU09VUkNFX1RZUEUgPSAnQ3VzdG9tOjpMYW1iZGFXZWJDb2RlJztcblxuZXhwb3J0IGludGVyZmFjZSBDb2RlUHJvcGVydGllcyB7XG4gIHJlYWRvbmx5IFNvdXJjZUJ1Y2tldDogc3RyaW5nO1xuICByZWFkb25seSBTb3VyY2VLZXk6IHN0cmluZztcbiAgcmVhZG9ubHkgU291cmNlVmVyc2lvbj86IHN0cmluZztcbiAgcmVhZG9ubHkgRGVzdGluYXRpb25CdWNrZXQ6IHN0cmluZztcbiAgcmVhZG9ubHkgRGVzdGluYXRpb25LZXk6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb2RlQXR0cmlidXRlcyB7XG4gIHJlYWRvbmx5IFZlcnNpb25JZDogc3RyaW5nO1xufVxuXG4vKiogRW5zdXJlcyBvbmUgbG9nIGdyb3VwIChpbiBhbnkgcmVnaW9uKSBleGlzdHMgd2l0aCB0aGUgZ2l2ZW4gcmV0ZW50aW9uLCBhbmQgcmVtb3ZlcyBpdCBvbiBkZWxldGUuICovXG5leHBvcnQgY29uc3QgTE9HX0dST1VQX1JFU09VUkNFX1RZUEUgPSAnQ3VzdG9tOjpMYW1iZGFXZWJMb2dHcm91cCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTG9nR3JvdXBQcm9wZXJ0aWVzIHtcbiAgcmVhZG9ubHkgUmVnaW9uOiBzdHJpbmc7XG4gIHJlYWRvbmx5IExvZ0dyb3VwTmFtZTogc3RyaW5nO1xuICAvKiogRGF5cywgb3IgJ0luZmluaXRlJyBmb3Igbm8gcmV0ZW50aW9uLiAqL1xuICByZWFkb25seSBSZXRlbnRpb25JbkRheXM6IHN0cmluZztcbiAgcmVhZG9ubHkgUmVtb3ZhbFBvbGljeTogJ3JldGFpbicgfCAnZGVzdHJveSc7XG4gIC8qKiBUaGUgQVJOIG9mIGEgS01TIGtleSBpbiB0aGUgZ3JvdXAncyByZWdpb24gdG8gZW5jcnlwdCBpdCB3aXRoOyBub25lIG1lYW5zIHRoZSBzZXJ2aWNlJ3Mgb3duIGVuY3J5cHRpb24uICovXG4gIHJlYWRvbmx5IEttc0tleUlkPzogc3RyaW5nO1xuICAvKiogU2Vjb25kcyB0byB3YWl0IGJlZm9yZSBkZWxldGluZywgc28gZW52aXJvbm1lbnRzIHN0aWxsIHNodXR0aW5nIGRvd24gY2FuIGZsdXNoIHRoZWlyIGxhc3QgbGluZXMuICovXG4gIHJlYWRvbmx5IEZsdXNoV2FpdFNlY29uZHM6IHN0cmluZztcbiAgLyoqIFNlY29uZHMgdG8gd2FpdCBiZWZvcmUgY2hlY2tpbmcgb25jZSBtb3JlIHRoYXQgdGhlIHNlcnZpY2UgaGFzbid0IHJlLWNyZWF0ZWQgdGhlIGdyb3VwLiAqL1xuICByZWFkb25seSBSZWNoZWNrV2FpdFNlY29uZHM6IHN0cmluZztcbn1cblxuLyoqIFJlYWRzIGFuIGVuZHBvaW50J3MgcGVyLXJlZ2lvbiBkb21haW4gbmFtZXMsIHdoaWNoIENsb3VkRm9ybWF0aW9uIGNhbid0IGluZGV4IG91dCBvZiBgUmVnaW9uYWxFbmRwb2ludHNgLiAqL1xuZXhwb3J0IGNvbnN0IEVORFBPSU5UX0xPT0tVUF9SRVNPVVJDRV9UWVBFID0gJ0N1c3RvbTo6TGFtYmRhV2ViRW5kcG9pbnRMb29rdXAnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEVuZHBvaW50TG9va3VwUHJvcGVydGllcyB7XG4gIHJlYWRvbmx5IEZ1bmN0aW9uQXJuOiBzdHJpbmc7XG4gIHJlYWRvbmx5IEVuZHBvaW50TmFtZTogc3RyaW5nO1xuICAvKiogQ2hhbmdlcyB3aGVuZXZlciB0aGUgZW5kcG9pbnQgaXMgcmVwbGFjZWQsIHNvIHRoZSBsb29rdXAgcnVucyBhZ2Fpbi4gKi9cbiAgcmVhZG9ubHkgRW5kcG9pbnRBcm46IHN0cmluZztcbn1cblxuLyoqIEF0dHJpYnV0ZSBuYW1lIGhvbGRpbmcgdGhlIGRvbWFpbiBvZiBvbmUgcmVnaW9uLCBlLmcuIGBEb21haW4udXMtZWFzdC0xYC4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZWdpb25hbERvbWFpbkF0dHJpYnV0ZShyZWdpb246IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBgRG9tYWluLiR7cmVnaW9ufWA7XG59XG5cbi8qKiBEZWxldGVzIGEgZnVuY3Rpb24ncyBvbGRlc3QgcmV2aXNpb25zIGJleW9uZCBhIGNvdW50LCBleGNlcHQgdGhvc2UgdGhhdCBhcmUgaW4gdXNlIG9yIG1heSBiZSByb2xsZWQgYmFjayB0by4gKi9cbmV4cG9ydCBjb25zdCBSRVZJU0lPTl9DTEVBTlVQX1JFU09VUkNFX1RZUEUgPSAnQ3VzdG9tOjpMYW1iZGFXZWJSZXZpc2lvbkNsZWFudXAnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFJldmlzaW9uQ2xlYW51cFByb3BlcnRpZXMge1xuICByZWFkb25seSBGdW5jdGlvbkFybjogc3RyaW5nO1xuICAvKiogSG93IG1hbnkgb2YgdGhlIG5ld2VzdCByZXZpc2lvbnMgdG8ga2VlcC4gKi9cbiAgcmVhZG9ubHkgS2VlcDogc3RyaW5nO1xuICAvKipcbiAgICogUmV2aXNpb25zIHRoZSB0ZW1wbGF0ZSB1c2VzICh0aGUgY3VycmVudCBvbmUgYW5kIGFueSBhbiBlbmRwb2ludCByb3V0ZXMgdG8pLiBBbHdheXMga2VwdCwgYW5kIG9uIGFuIHVwZGF0ZVxuICAgKiB0aGUgcHJldmlvdXMgdGVtcGxhdGUncyBhcmUga2VwdCB0b286IHRoZXkncmUgd2hhdCBhIHJvbGxiYWNrIHJvdXRlcyBiYWNrIHRvLlxuICAgKi9cbiAgcmVhZG9ubHkgUmV2aXNpb25JZHM6IHN0cmluZ1tdO1xufVxuXG4vKipcbiAqIE1vdmVzIGFuIGVuZHBvaW50J3MgdHJhZmZpYyB0byBhIHJldmlzaW9uIGluIHN0ZXBzLCB3YXRjaGluZyBhbGFybXMgKGNhbmFyeSBhbmQgbGluZWFyIGRlcGxveW1lbnRzKS5cbiAqIFNlcnZlZCBieSB0aGUgZGVwbG95bWVudCBwcm92aWRlciAoYGhhbmRsZXJzL3dlYi1mdW5jdGlvbi1kZXBsb3ltZW50YCksIG5vdCB0aGUgc2hhcmVkIHByb3ZpZGVyOiBpdCBjYW4gcnVuIGZvciB1cCB0byBhbiBob3VyLlxuICovXG5leHBvcnQgY29uc3QgVFJBRkZJQ19TSElGVF9SRVNPVVJDRV9UWVBFID0gJ0N1c3RvbTo6TGFtYmRhV2ViVHJhZmZpY1NoaWZ0JztcblxuZXhwb3J0IGludGVyZmFjZSBUcmFmZmljU2hpZnRQcm9wZXJ0aWVzIHtcbiAgcmVhZG9ubHkgRnVuY3Rpb25Bcm46IHN0cmluZztcbiAgcmVhZG9ubHkgRW5kcG9pbnROYW1lOiBzdHJpbmc7XG4gIC8qKiBUaGUgcmV2aXNpb24gdGhhdCBlbmRzIHVwIHdpdGggYWxsIG9mIHRoZSBlbmRwb2ludCdzIHRyYWZmaWMuICovXG4gIHJlYWRvbmx5IFJldmlzaW9uSWQ6IHN0cmluZztcbiAgLyoqIFRoZSByZXZpc2lvbidzIHNoYXJlIG9mIHRyYWZmaWMgYXQgZWFjaCBzdGVwLCBpbiBwZXJjZW50LCBjb21tYS1zZXBhcmF0ZWQ7IHRoZSBsYXN0IGlzIDEwMC4gKi9cbiAgcmVhZG9ubHkgU3RlcHM6IHN0cmluZztcbiAgLyoqIFNlY29uZHMgZWFjaCBzdGVwIHNlcnZlcyAoY291bnRlZCBmcm9tIHdoZW4gaXRzIHVwZGF0ZSBzdGFydGVkKSBiZWZvcmUgdGhlIG5leHQuICovXG4gIHJlYWRvbmx5IFdhaXRTZWNvbmRzOiBzdHJpbmc7XG4gIC8qKiBBbGFybXMgKGluIGFueSByZWdpb24pIHRoYXQgc3RvcCB0aGUgZGVwbG95bWVudCBhbmQgcmVzdG9yZSB0aGUgcHJldmlvdXMgd2VpZ2h0cy4gKi9cbiAgcmVhZG9ubHkgQWxhcm1Bcm5zPzogc3RyaW5nW107XG4gIC8qKiBIYXNoIG9mIHRoZSBlbmRwb2ludCdzIG90aGVyIHNldHRpbmdzOiBhbnkgZW5kcG9pbnQgY2hhbmdlIHJlLWNoZWNrcyBpdHMgdHJhZmZpYyBiZWZvcmUgQ2xvdWRGb3JtYXRpb24gd3JpdGVzIGl0LiAqL1xuICByZWFkb25seSBFbmRwb2ludENvbmZpZzogc3RyaW5nO1xufVxuXG4vKiogV2hhdCBgb25FdmVudGAgaGFuZHMgdG8gYGlzQ29tcGxldGVgICh0aGUgUHJvdmlkZXIgZnJhbWV3b3JrIHBhc3NlcyBpdCBhcyBgRGF0YWApLiAqL1xuZXhwb3J0IGludGVyZmFjZSBUcmFmZmljU2hpZnRTdGF0ZSB7XG4gIC8qKiBgbm9uZWA6IG5vdGhpbmcgdG8gZG87IGBzaGlmdGA6IG1vdmluZyBpbiBzdGVwczsgYHN3aXRjaGA6IGFsbCBhdCBvbmNlLCB3aXRob3V0IGFsYXJtcyAoc3RhY2sgcm9sbGJhY2spLiAqL1xuICByZWFkb25seSBBY3Rpb246ICdub25lJyB8ICdzaGlmdCcgfCAnc3dpdGNoJztcbiAgLyoqIGBzaGlmdGA6IHRoZSBlbmRwb2ludCdzIHdlaWdodHMgYmVmb3JlIHRoZSBkZXBsb3ltZW50IChKU09OIGBbe3JldmlzaW9uSWQsIHdlaWdodH1dYCksIHJlc3RvcmVkIHdoZW4gYW4gYWxhcm0gZmlyZXMuICovXG4gIHJlYWRvbmx5IFByZXZpb3VzV2VpZ2h0cz86IHN0cmluZztcbiAgLyoqIGBzd2l0Y2hgOiB0aGUgd2VpZ2h0cyBiZWluZyB3cml0dGVuIChKU09OIGBbe3JldmlzaW9uSWQsIHdlaWdodH1dYCkuICovXG4gIHJlYWRvbmx5IFRhcmdldFdlaWdodHM/OiBzdHJpbmc7XG59XG5cbi8qKiBDcmVhdGVzIGEgQ2xvdWRXYXRjaCBtZXRyaWMgYWxhcm0gaW4gYW55IHJlZ2lvbiAoQ2xvdWRGb3JtYXRpb24gb25seSBjcmVhdGVzIGFsYXJtcyBpbiB0aGUgc3RhY2sncyByZWdpb24pLiAqL1xuLyoqIFByZWZpeCBvZiBldmVyeSBhbGFybSB0aGlzIGxpYnJhcnkgY3JlYXRlcyBvdXRzaWRlIHRoZSBzdGFjaydzIHJlZ2lvbjsgdGhlIHByb3ZpZGVyJ3MgSUFNIGlzIHNjb3BlZCB0byBpdC4gKi9cbmV4cG9ydCBjb25zdCBBTEFSTV9OQU1FX1BSRUZJWCA9ICdMYW1iZGFXZWItJztcbmV4cG9ydCBjb25zdCBSRUdJT05BTF9BTEFSTV9SRVNPVVJDRV9UWVBFID0gJ0N1c3RvbTo6TGFtYmRhV2ViQWxhcm0nO1xuXG5leHBvcnQgaW50ZXJmYWNlIFJlZ2lvbmFsQWxhcm1Qcm9wZXJ0aWVzIHtcbiAgcmVhZG9ubHkgUmVnaW9uOiBzdHJpbmc7XG4gIHJlYWRvbmx5IEFsYXJtTmFtZTogc3RyaW5nO1xuICByZWFkb25seSBBbGFybURlc2NyaXB0aW9uOiBzdHJpbmc7XG4gIC8qKiBQdXRNZXRyaWNBbGFybSdzIGBNZXRyaWNzYCwgYXMgSlNPTi4gKi9cbiAgcmVhZG9ubHkgTWV0cmljczogc3RyaW5nO1xuICByZWFkb25seSBUaHJlc2hvbGQ6IHN0cmluZztcbiAgcmVhZG9ubHkgRXZhbHVhdGlvblBlcmlvZHM6IHN0cmluZztcbiAgLyoqIFB1dE1ldHJpY0FsYXJtJ3MgYENvbXBhcmlzb25PcGVyYXRvcmAuICovXG4gIHJlYWRvbmx5IENvbXBhcmlzb25PcGVyYXRvcjogc3RyaW5nO1xuICAvKiogUHV0TWV0cmljQWxhcm0ncyBgVHJlYXRNaXNzaW5nRGF0YWAuICovXG4gIHJlYWRvbmx5IFRyZWF0TWlzc2luZ0RhdGE6IHN0cmluZztcbn1cblxuLyoqIEVtcHRpZXMgdGhlIHN0YWNrJ3MgY29kZSBidWNrZXQgKGV2ZXJ5IG9iamVjdCB2ZXJzaW9uIGFuZCBkZWxldGUgbWFya2VyKSB3aGVuIHRoZSBzdGFjayBkZWxldGVzIGl0LiAqL1xuZXhwb3J0IGNvbnN0IENPREVfQlVDS0VUX0NMRUFOVVBfUkVTT1VSQ0VfVFlQRSA9ICdDdXN0b206OkxhbWJkYVdlYkNvZGVCdWNrZXRDbGVhbnVwJztcblxuLyoqXG4gKiBUYWcgb24gdGhlIGNvZGUgYnVja2V0IHRoYXQgbGV0cyB0aGUgY2xlYW51cCBlbXB0eSBpdC4gQSByb2xsYmFjayByZXZlcnRzIHRoZSBidWNrZXQncyB0YWdzIGJlZm9yZSBpdCBkZWxldGVzXG4gKiByZXNvdXJjZXMgdGhlIGZhaWxlZCB1cGRhdGUgY3JlYXRlZCwgc28gYSBjbGVhbnVwIHJlc291cmNlIGFkZGVkIHRvIGFuIGV4aXN0aW5nIGJ1Y2tldCBuZXZlciBlbXB0aWVzIGl0IG9uIHJvbGxiYWNrLlxuICovXG5leHBvcnQgY29uc3QgRU1QVFlfT05fREVMRVRFX1RBRyA9IHsga2V5OiAnY2RrLWxhbWJkYS13ZWI6ZW1wdHktb24tZGVsZXRlJywgdmFsdWU6ICd0cnVlJyB9O1xuXG5leHBvcnQgaW50ZXJmYWNlIENvZGVCdWNrZXRDbGVhbnVwUHJvcGVydGllcyB7XG4gIHJlYWRvbmx5IEJ1Y2tldE5hbWU6IHN0cmluZztcbn1cblxuLyoqXG4gKiBXcml0ZXMgb25lIHN0YWNrJ3Mgc3RhdGVtZW50cyBpbnRvIGEgV2ViIEZ1bmN0aW9uJ3MgcmVzb3VyY2UgcG9saWN5LCBrZWVwaW5nIGV2ZXJ5IG90aGVyIHdyaXRlcidzIHN0YXRlbWVudHNcbiAqIChXZWIgRnVuY3Rpb25zIGhhdmUgbm8gQWRkUGVybWlzc2lvbjogdGhlIHBvbGljeSBpcyBhIHNpbmdsZSBkb2N1bWVudCwgc28gd3JpdGVycyBtZXJnZSBpbnRvIGl0KS5cbiAqL1xuZXhwb3J0IGNvbnN0IFJFU09VUkNFX1BPTElDWV9TVEFURU1FTlRTX1JFU09VUkNFX1RZUEUgPSAnQ3VzdG9tOjpMYW1iZGFXZWJSZXNvdXJjZVBvbGljeVN0YXRlbWVudHMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFJlc291cmNlUG9saWN5U3RhdGVtZW50c1Byb3BlcnRpZXMge1xuICByZWFkb25seSBGdW5jdGlvbkFybjogc3RyaW5nO1xuICAvKiogVGhlIHN0YXRlbWVudHMgdGhpcyByZXNvdXJjZSBvd25zLCBlYWNoIHdpdGggYSBTaWQgdW5pcXVlIGluIHRoZSBmdW5jdGlvbidzIHBvbGljeS4gKi9cbiAgcmVhZG9ubHkgUG9saWN5OiB7IHJlYWRvbmx5IFN0YXRlbWVudDogUmVhZG9ubHlBcnJheTx7IHJlYWRvbmx5IFNpZDogc3RyaW5nOyByZWFkb25seSBba2V5OiBzdHJpbmddOiB1bmtub3duIH0+IH07XG59XG4iXX0=
@@ -11,7 +11,7 @@ const MAX_STEPS = 20;
11
11
  * How an endpoint moves its traffic to a new revision.
12
12
  */
13
13
  class WebFunctionDeployment {
14
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@ashishpandeyone/cdk-lambda-web-function.WebFunctionDeployment", version: "0.1.11" };
14
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@ashishpandeyone/cdk-lambda-web-function.WebFunctionDeployment", version: "0.1.12" };
15
15
  /**
16
16
  * All traffic moves to the new revision at once, as soon as it's ready (the default).
17
17
  */
@@ -53,7 +53,7 @@ const web_function_grants_1 = require("./web-function-grants");
53
53
  * Endpoints are created only through `WebFunction`, which owns their log groups in every region, so the constructor is private.
54
54
  */
55
55
  class WebFunctionEndpoint extends constructs_1.Construct {
56
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@ashishpandeyone/cdk-lambda-web-function.WebFunctionEndpoint", version: "0.1.11" };
56
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@ashishpandeyone/cdk-lambda-web-function.WebFunctionEndpoint", version: "0.1.12" };
57
57
  /**
58
58
  * Creates an endpoint of a Web Function. Used by `WebFunction`.
59
59
  *
@@ -42,7 +42,7 @@ const iam = __importStar(require("aws-cdk-lib/aws-iam"));
42
42
  class WebFunctionGrants {
43
43
  endpointArns;
44
44
  webFunction;
45
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@ashishpandeyone/cdk-lambda-web-function.WebFunctionGrants", version: "0.1.11" };
45
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@ashishpandeyone/cdk-lambda-web-function.WebFunctionGrants", version: "0.1.12" };
46
46
  /**
47
47
  * @internal
48
48
  */
@@ -54,7 +54,7 @@ const OPT_IN_REGIONS = [
54
54
  * and only your distribution may call the endpoint. `new WebFunctionOrigin(endpoint)` is for a public (`NONE`) endpoint.
55
55
  */
56
56
  class WebFunctionOrigin extends cloudfront.OriginBase {
57
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@ashishpandeyone/cdk-lambda-web-function.WebFunctionOrigin", version: "0.1.11" };
57
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@ashishpandeyone/cdk-lambda-web-function.WebFunctionOrigin", version: "0.1.12" };
58
58
  /**
59
59
  * An origin for an `AWS_IAM` endpoint, with origin access control: CloudFront signs every request to the endpoint
60
60
  * (`always-amz-auth`, which keeps the viewer's `Authorization` header for your application), and the function's
@@ -11,7 +11,7 @@ const constructs_1 = require("constructs");
11
11
  * only revisions within `revisionRetention`, or that an endpoint routes to, are kept.
12
12
  */
13
13
  class WebFunctionRevision extends constructs_1.Construct {
14
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@ashishpandeyone/cdk-lambda-web-function.WebFunctionRevision", version: "0.1.11" };
14
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@ashishpandeyone/cdk-lambda-web-function.WebFunctionRevision", version: "0.1.12" };
15
15
  /**
16
16
  * References an existing revision of `webFunction`, e.g. to pin an endpoint to it or split traffic with it.
17
17
  */
@@ -105,6 +105,19 @@ export interface WebFunctionOptions {
105
105
  * @default RemovalPolicy.RETAIN
106
106
  */
107
107
  readonly logRemovalPolicy?: RemovalPolicy;
108
+ /**
109
+ * A customer managed KMS key for the function's log groups, in every region it serves from.
110
+ *
111
+ * CloudWatch Logs needs a key in each group's region: for regions other than the key's own, the construct uses the
112
+ * replica of a **multi-Region key** there (the same key ID). Each key's policy must allow CloudWatch Logs in its
113
+ * region (see `logEncryptionKeyPolicyStatement()`). A key defined in this app gets that statement for its own region.
114
+ *
115
+ * Removing the key decrypts nothing: the groups keep their existing events encrypted with it.
116
+ * [disable-awslint:prefer-ref-interface]
117
+ *
118
+ * @default - CloudWatch Logs' own encryption
119
+ */
120
+ readonly logEncryptionKey?: kms.IKey;
108
121
  /**
109
122
  * The minimum level of application logs to keep.
110
123
  *
@@ -342,6 +355,8 @@ export declare class WebFunction extends WebFunctionBase implements iam.IGrantab
342
355
  readonly role: iam.IRole;
343
356
  /** The customer managed key of the function's revisions, if any. */
344
357
  readonly encryptionKey?: kms.IKey;
358
+ /** The customer managed key of the function's log groups, if any. */
359
+ readonly logEncryptionKey?: kms.IKey;
345
360
  /** The principal to grant permissions to (the execution role). */
346
361
  readonly grantPrincipal: iam.IPrincipal;
347
362
  /**
@@ -393,8 +408,22 @@ export declare class WebFunction extends WebFunctionBase implements iam.IGrantab
393
408
  * yourself: replicas don't share their primary's policy.
394
409
  */
395
410
  encryptionKeyPolicyStatement(): iam.PolicyStatement;
411
+ /**
412
+ * The key-policy statement CloudWatch Logs needs in `region` to encrypt this function's log groups there with
413
+ * `logEncryptionKey`, limited to those groups (`kms:EncryptionContext:aws:logs:arn`).
414
+ *
415
+ * It's added to `logEncryptionKey` for the key's own region when the key is defined in this app. Add it to the
416
+ * replica in every other region the function serves from yourself: replicas don't share their primary's policy.
417
+ *
418
+ * @param region the region of the key or replica
419
+ */
420
+ logEncryptionKeyPolicyStatement(region: string): iam.PolicyStatement;
396
421
  /** Regional and multi-region endpoints need a multi-Region key: otherwise their other regions fail to activate. */
397
422
  private validateEncryptionKey;
423
+ /** Log groups outside the key's region need the replica of a multi-Region key there. */
424
+ private validateLogEncryptionKey;
425
+ /** The key for a log group in `region`: the key itself in its own region, otherwise its replica there (same key ID). */
426
+ private logKeyArnIn;
398
427
  private createEndpoint;
399
428
  /**
400
429
  * The default execution role: write to the function's own log groups only (the home region's and every region's