@gradientedge/cdk-utils 4.0.13 → 4.1.2
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.
- package/README.md +37 -9
- package/dist/src/lib/common/commonConstruct.d.ts +5 -5
- package/dist/src/lib/common/commonConstruct.js +5 -5
- package/dist/src/lib/common/commonStack.d.ts +2 -1
- package/dist/src/lib/common/commonStack.d.ts.map +1 -1
- package/dist/src/lib/common/commonStack.js +2 -1
- package/dist/src/lib/common/commonStack.js.map +1 -1
- package/dist/src/lib/construct/graphQLApiLambda.d.ts +1 -0
- package/dist/src/lib/construct/graphQLApiLambda.d.ts.map +1 -1
- package/dist/src/lib/construct/graphQLApiLambda.js +1 -0
- package/dist/src/lib/construct/graphQLApiLambda.js.map +1 -1
- package/dist/src/lib/construct/siteWithEcsBackend.d.ts +1 -0
- package/dist/src/lib/construct/siteWithEcsBackend.d.ts.map +1 -1
- package/dist/src/lib/construct/siteWithEcsBackend.js +1 -0
- package/dist/src/lib/construct/siteWithEcsBackend.js.map +1 -1
- package/dist/src/lib/construct/staticSite.d.ts +1 -0
- package/dist/src/lib/construct/staticSite.d.ts.map +1 -1
- package/dist/src/lib/construct/staticSite.js +1 -0
- package/dist/src/lib/construct/staticSite.js.map +1 -1
- package/dist/src/lib/manager/acmManager.d.ts +2 -1
- package/dist/src/lib/manager/acmManager.d.ts.map +1 -1
- package/dist/src/lib/manager/acmManager.js +2 -1
- package/dist/src/lib/manager/acmManager.js.map +1 -1
- package/dist/src/lib/manager/apiManager.d.ts +2 -1
- package/dist/src/lib/manager/apiManager.d.ts.map +1 -1
- package/dist/src/lib/manager/apiManager.js +2 -1
- package/dist/src/lib/manager/apiManager.js.map +1 -1
- package/dist/src/lib/manager/appConfigManager.d.ts +2 -1
- package/dist/src/lib/manager/appConfigManager.d.ts.map +1 -1
- package/dist/src/lib/manager/appConfigManager.js +2 -1
- package/dist/src/lib/manager/appConfigManager.js.map +1 -1
- package/dist/src/lib/manager/cloudFrontManager.d.ts +2 -1
- package/dist/src/lib/manager/cloudFrontManager.d.ts.map +1 -1
- package/dist/src/lib/manager/cloudFrontManager.js +2 -1
- package/dist/src/lib/manager/cloudFrontManager.js.map +1 -1
- package/dist/src/lib/manager/cloudTrailManager.d.ts +2 -1
- package/dist/src/lib/manager/cloudTrailManager.d.ts.map +1 -1
- package/dist/src/lib/manager/cloudTrailManager.js +2 -1
- package/dist/src/lib/manager/cloudTrailManager.js.map +1 -1
- package/dist/src/lib/manager/cloudWatchManager.d.ts +2 -1
- package/dist/src/lib/manager/cloudWatchManager.d.ts.map +1 -1
- package/dist/src/lib/manager/cloudWatchManager.js +2 -1
- package/dist/src/lib/manager/cloudWatchManager.js.map +1 -1
- package/dist/src/lib/manager/codeBuildManager.d.ts +16 -0
- package/dist/src/lib/manager/codeBuildManager.d.ts.map +1 -1
- package/dist/src/lib/manager/codeBuildManager.js +16 -0
- package/dist/src/lib/manager/codeBuildManager.js.map +1 -1
- package/dist/src/lib/manager/ecrManager.d.ts +2 -1
- package/dist/src/lib/manager/ecrManager.d.ts.map +1 -1
- package/dist/src/lib/manager/ecrManager.js +2 -1
- package/dist/src/lib/manager/ecrManager.js.map +1 -1
- package/dist/src/lib/manager/ecsManager.d.ts +2 -1
- package/dist/src/lib/manager/ecsManager.d.ts.map +1 -1
- package/dist/src/lib/manager/ecsManager.js +2 -1
- package/dist/src/lib/manager/ecsManager.js.map +1 -1
- package/dist/src/lib/manager/eksManager.d.ts +2 -1
- package/dist/src/lib/manager/eksManager.d.ts.map +1 -1
- package/dist/src/lib/manager/eksManager.js +2 -1
- package/dist/src/lib/manager/eksManager.js.map +1 -1
- package/dist/src/lib/manager/eventManager.d.ts +2 -1
- package/dist/src/lib/manager/eventManager.d.ts.map +1 -1
- package/dist/src/lib/manager/eventManager.js +2 -1
- package/dist/src/lib/manager/eventManager.js.map +1 -1
- package/dist/src/lib/manager/iamManager.d.ts +2 -1
- package/dist/src/lib/manager/iamManager.d.ts.map +1 -1
- package/dist/src/lib/manager/iamManager.js +2 -1
- package/dist/src/lib/manager/iamManager.js.map +1 -1
- package/dist/src/lib/manager/lambdaManager.d.ts +2 -1
- package/dist/src/lib/manager/lambdaManager.d.ts.map +1 -1
- package/dist/src/lib/manager/lambdaManager.js +2 -1
- package/dist/src/lib/manager/lambdaManager.js.map +1 -1
- package/dist/src/lib/manager/logManager.d.ts +2 -1
- package/dist/src/lib/manager/logManager.d.ts.map +1 -1
- package/dist/src/lib/manager/logManager.js +2 -1
- package/dist/src/lib/manager/logManager.js.map +1 -1
- package/dist/src/lib/manager/route53Manager.d.ts +2 -1
- package/dist/src/lib/manager/route53Manager.d.ts.map +1 -1
- package/dist/src/lib/manager/route53Manager.js +2 -1
- package/dist/src/lib/manager/route53Manager.js.map +1 -1
- package/dist/src/lib/manager/s3Manager.d.ts +23 -2
- package/dist/src/lib/manager/s3Manager.d.ts.map +1 -1
- package/dist/src/lib/manager/s3Manager.js +61 -8
- package/dist/src/lib/manager/s3Manager.js.map +1 -1
- package/dist/src/lib/manager/secretsManager.d.ts +3 -2
- package/dist/src/lib/manager/secretsManager.d.ts.map +1 -1
- package/dist/src/lib/manager/secretsManager.js +3 -2
- package/dist/src/lib/manager/secretsManager.js.map +1 -1
- package/dist/src/lib/manager/snsManager.d.ts +2 -1
- package/dist/src/lib/manager/snsManager.d.ts.map +1 -1
- package/dist/src/lib/manager/snsManager.js +2 -1
- package/dist/src/lib/manager/snsManager.js.map +1 -1
- package/dist/src/lib/manager/ssmManager.d.ts +2 -1
- package/dist/src/lib/manager/ssmManager.d.ts.map +1 -1
- package/dist/src/lib/manager/ssmManager.js +2 -1
- package/dist/src/lib/manager/ssmManager.js.map +1 -1
- package/dist/src/lib/manager/vpcManager.d.ts +2 -1
- package/dist/src/lib/manager/vpcManager.d.ts.map +1 -1
- package/dist/src/lib/manager/vpcManager.js +2 -1
- package/dist/src/lib/manager/vpcManager.js.map +1 -1
- package/dist/src/lib/manager/wafManager.d.ts +2 -1
- package/dist/src/lib/manager/wafManager.d.ts.map +1 -1
- package/dist/src/lib/manager/wafManager.js +2 -1
- package/dist/src/lib/manager/wafManager.js.map +1 -1
- package/dist/src/lib/types.d.ts +6 -0
- package/dist/src/lib/types.d.ts.map +1 -1
- package/package.json +21 -22
- package/src/lib/common/commonConstruct.ts +5 -5
- package/src/lib/common/commonStack.ts +2 -1
- package/src/lib/construct/graphQLApiLambda.ts +1 -0
- package/src/lib/construct/siteWithEcsBackend.ts +1 -0
- package/src/lib/construct/staticSite.ts +1 -0
- package/src/lib/manager/acmManager.ts +2 -1
- package/src/lib/manager/apiManager.ts +2 -1
- package/src/lib/manager/appConfigManager.ts +2 -1
- package/src/lib/manager/cloudFrontManager.ts +2 -1
- package/src/lib/manager/cloudTrailManager.ts +2 -1
- package/src/lib/manager/cloudWatchManager.ts +2 -1
- package/src/lib/manager/codeBuildManager.ts +16 -0
- package/src/lib/manager/ecrManager.ts +2 -1
- package/src/lib/manager/ecsManager.ts +2 -1
- package/src/lib/manager/eksManager.ts +2 -1
- package/src/lib/manager/eventManager.ts +2 -1
- package/src/lib/manager/iamManager.ts +2 -1
- package/src/lib/manager/lambdaManager.ts +2 -1
- package/src/lib/manager/logManager.ts +2 -1
- package/src/lib/manager/route53Manager.ts +2 -1
- package/src/lib/manager/s3Manager.ts +67 -9
- package/src/lib/manager/secretsManager.ts +3 -2
- package/src/lib/manager/snsManager.ts +2 -1
- package/src/lib/manager/ssmManager.ts +2 -1
- package/src/lib/manager/vpcManager.ts +2 -1
- package/src/lib/manager/wafManager.ts +2 -1
- package/src/lib/types.ts +7 -0
|
@@ -19,9 +19,10 @@ import { createCfnOutput } from '../utils'
|
|
|
19
19
|
* super(parent, id, props)
|
|
20
20
|
* this.props = props
|
|
21
21
|
* this.acmManager.createCertificate('MyCertificate', this)
|
|
22
|
+
* }
|
|
22
23
|
* }
|
|
23
24
|
*
|
|
24
|
-
* @see [CDK Certificate Module]{@link https://docs.aws.amazon.com/cdk/api/
|
|
25
|
+
* @see [CDK Certificate Module]{@link https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_certificatemanager-readme.html}
|
|
25
26
|
*/
|
|
26
27
|
export class AcmManager {
|
|
27
28
|
/**
|
|
@@ -19,9 +19,10 @@ import { createCfnOutput } from '../utils'
|
|
|
19
19
|
* this.props = props
|
|
20
20
|
* const lambdaFunction = this.lambdaManager.createLambdaFunction('MyFunction', this, role, layers, code)
|
|
21
21
|
* this.apiManager.createLambdaRestApi('MyCertificate', this, props, lambdaFunction)
|
|
22
|
+
* }
|
|
22
23
|
* }
|
|
23
24
|
*
|
|
24
|
-
* @see [CDK API Gateway Module]{@link https://docs.aws.amazon.com/cdk/api/
|
|
25
|
+
* @see [CDK API Gateway Module]{@link https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_apigateway-readme.html}
|
|
25
26
|
*/
|
|
26
27
|
export class ApiManager {
|
|
27
28
|
/**
|
|
@@ -45,9 +45,10 @@ export const ArnsByRegion: { [key: string]: string } = {
|
|
|
45
45
|
* super(parent, id, props)
|
|
46
46
|
* this.props = props
|
|
47
47
|
* this.appConfigManager.createApplication('MyApplication', this)
|
|
48
|
+
* }
|
|
48
49
|
* }
|
|
49
50
|
*
|
|
50
|
-
* @see [CDK AppConfig Module]{@link https://docs.aws.amazon.com/cdk/api/
|
|
51
|
+
* @see [CDK AppConfig Module]{@link https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_appconfig-readme.html}
|
|
51
52
|
*/
|
|
52
53
|
export class AppConfigManager {
|
|
53
54
|
/**
|
|
@@ -32,9 +32,10 @@ import * as cr from 'aws-cdk-lib/custom-resources'
|
|
|
32
32
|
* originAccessIdentity,
|
|
33
33
|
* certificate
|
|
34
34
|
* )
|
|
35
|
+
* }
|
|
35
36
|
* }
|
|
36
37
|
*
|
|
37
|
-
* @see [CDK CloudFront Module]{@link https://docs.aws.amazon.com/cdk/api/
|
|
38
|
+
* @see [CDK CloudFront Module]{@link https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_cloudfront-readme.html}
|
|
38
39
|
*/
|
|
39
40
|
export class CloudFrontManager {
|
|
40
41
|
public createOriginAccessIdentity(id: string, scope: CommonConstruct, accessBucket?: s3.IBucket) {
|
|
@@ -26,9 +26,10 @@ import { createCfnOutput } from '../utils'
|
|
|
26
26
|
* logBucket,
|
|
27
27
|
* logBucketPolicy
|
|
28
28
|
* )
|
|
29
|
+
* }
|
|
29
30
|
* }
|
|
30
31
|
*
|
|
31
|
-
* @see [CDK CloudTrail Module]{@link https://docs.aws.amazon.com/cdk/api/
|
|
32
|
+
* @see [CDK CloudTrail Module]{@link https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_cloudtrail-readme.html}
|
|
32
33
|
*/
|
|
33
34
|
export class CloudTrailManager {
|
|
34
35
|
/**
|
|
@@ -28,9 +28,10 @@ import { CloudWatchWidgetType, createCfnOutput } from '../utils'
|
|
|
28
28
|
* super(parent, id, props)
|
|
29
29
|
* this.props = props
|
|
30
30
|
* this.cloudWatchManager.createAlarmForMetric('MyAlarm', this, metric)
|
|
31
|
+
* }
|
|
31
32
|
* }
|
|
32
33
|
*
|
|
33
|
-
* @see [CDK CloudWatch Module]{@link https://docs.aws.amazon.com/cdk/api/
|
|
34
|
+
* @see [CDK CloudWatch Module]{@link https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_cloudwatch-readme.html}
|
|
34
35
|
*/
|
|
35
36
|
export class CloudWatchManager {
|
|
36
37
|
/**
|
|
@@ -3,7 +3,23 @@ import * as codebuild from 'aws-cdk-lib/aws-codebuild'
|
|
|
3
3
|
import * as cdk from 'aws-cdk-lib'
|
|
4
4
|
|
|
5
5
|
/**
|
|
6
|
+
* @stability stable
|
|
7
|
+
* @category Developer Tools
|
|
8
|
+
* @summary Provides operations on AWS Code Build.
|
|
9
|
+
* - A new instance of this class is injected into {@link CommonConstruct} constructor.
|
|
10
|
+
* - If a custom construct extends {@link CommonConstruct}, an instance is available within the context.
|
|
11
|
+
* @example
|
|
12
|
+
* import { CommonConstruct } from '@gradientedge/cdk-utils'
|
|
6
13
|
*
|
|
14
|
+
* class CustomConstruct extends CommonConstruct {
|
|
15
|
+
* constructor(parent: cdk.Construct, id: string, props: common.CommonStackProps) {
|
|
16
|
+
* super(parent, id, props)
|
|
17
|
+
* this.props = props
|
|
18
|
+
* this.codeBuildManager.createImageForCloudfrontInvalidation('MyInvalidation', this, './docker ')
|
|
19
|
+
* }
|
|
20
|
+
* }
|
|
21
|
+
*
|
|
22
|
+
* @see [CDK Codebuild Module]{@link https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_codebuild-readme.html}
|
|
7
23
|
*/
|
|
8
24
|
export class CodeBuildManager {
|
|
9
25
|
/**
|
|
@@ -16,9 +16,10 @@ import { createCfnOutput } from '../utils'
|
|
|
16
16
|
* super(parent, id, props)
|
|
17
17
|
* this.props = props
|
|
18
18
|
* this.ecrManager.createDockerImage('MyImage', this, dockerfilePath)
|
|
19
|
+
* }
|
|
19
20
|
* }
|
|
20
21
|
*
|
|
21
|
-
* @see [CDK ECR Module]{@link https://docs.aws.amazon.com/cdk/api/
|
|
22
|
+
* @see [CDK ECR Module]{@link https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_ecr-readme.html}
|
|
22
23
|
*/
|
|
23
24
|
export class EcrManager {
|
|
24
25
|
/**
|
|
@@ -20,9 +20,10 @@ import { createCfnOutput } from '../utils'
|
|
|
20
20
|
* super(parent, id, props)
|
|
21
21
|
* this.props = props
|
|
22
22
|
* this.ecsManager.createEcsCluster('MyCluster', this, vpc)
|
|
23
|
+
* }
|
|
23
24
|
* }
|
|
24
25
|
*
|
|
25
|
-
* @see [CDK ECS Module]{@link https://docs.aws.amazon.com/cdk/api/
|
|
26
|
+
* @see [CDK ECS Module]{@link https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_ecs-readme.html}
|
|
26
27
|
*/
|
|
27
28
|
export class EcsManager {
|
|
28
29
|
/**
|
|
@@ -19,9 +19,10 @@ import { createCfnOutput } from '../utils'
|
|
|
19
19
|
* super(parent, id, props)
|
|
20
20
|
* this.props = props
|
|
21
21
|
* this.eksManager.createEksDeployment('MyEksDeployment', this, image, vpc)
|
|
22
|
+
* }
|
|
22
23
|
* }
|
|
23
24
|
*
|
|
24
|
-
* @see [CDK EKS Module]{@link https://docs.aws.amazon.com/cdk/api/
|
|
25
|
+
* @see [CDK EKS Module]{@link https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_eks-readme.html}
|
|
25
26
|
*/
|
|
26
27
|
export class EksManager {
|
|
27
28
|
/**
|
|
@@ -20,9 +20,10 @@ import { createCfnOutput } from '../utils'
|
|
|
20
20
|
* super(parent, id, props)
|
|
21
21
|
* this.props = props
|
|
22
22
|
* this.eventManager.createLambdaRule('MyLambdaRule', this, lambdaFunction)
|
|
23
|
+
* }
|
|
23
24
|
* }
|
|
24
25
|
*
|
|
25
|
-
* @see [CDK EventBridge Module]{@link https://docs.aws.amazon.com/cdk/api/
|
|
26
|
+
* @see [CDK EventBridge Module]{@link https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_events-readme.html}
|
|
26
27
|
*/
|
|
27
28
|
export class EventManager {
|
|
28
29
|
/**
|
|
@@ -20,9 +20,10 @@ import { createCfnOutput } from '../utils'
|
|
|
20
20
|
* super(parent, id, props)
|
|
21
21
|
* this.props = props
|
|
22
22
|
* this.iamManager.createRoleForEcsEvent('MyEcsRole', this, cluster, task)
|
|
23
|
+
* }
|
|
23
24
|
* }
|
|
24
25
|
*
|
|
25
|
-
* @see [CDK IAM Module]{@link https://docs.aws.amazon.com/cdk/api/
|
|
26
|
+
* @see [CDK IAM Module]{@link https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_iam-readme.html}
|
|
26
27
|
*/
|
|
27
28
|
export class IamManager {
|
|
28
29
|
/**
|
|
@@ -23,9 +23,10 @@ import { CloudFrontManager } from './cloudFrontManager'
|
|
|
23
23
|
* super(parent, id, props)
|
|
24
24
|
* this.props = props
|
|
25
25
|
* this.lambdaManager.createLambdaFunction('MyFunction', this, role, layers, code)
|
|
26
|
+
* }
|
|
26
27
|
* }
|
|
27
28
|
*
|
|
28
|
-
* @see [CDK Lambda Module]{@link https://docs.aws.amazon.com/cdk/api/
|
|
29
|
+
* @see [CDK Lambda Module]{@link https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_lambda-readme.html}
|
|
29
30
|
*/
|
|
30
31
|
export class LambdaManager {
|
|
31
32
|
/**
|
|
@@ -18,9 +18,10 @@ import { createCfnOutput } from '../utils'
|
|
|
18
18
|
* super(parent, id, props)
|
|
19
19
|
* this.props = props
|
|
20
20
|
* this.logsManager.createMetricFilter('MyMetricFilter', this, logGroup)
|
|
21
|
+
* }
|
|
21
22
|
* }
|
|
22
23
|
*
|
|
23
|
-
* @see [CDK CloudWatch Module]{@link https://docs.aws.amazon.com/cdk/api/
|
|
24
|
+
* @see [CDK CloudWatch Module]{@link https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_logs-readme.html}
|
|
24
25
|
*/
|
|
25
26
|
export class LogManager {
|
|
26
27
|
/**
|
|
@@ -20,9 +20,10 @@ import { createCfnOutput } from '../utils'
|
|
|
20
20
|
* super(parent, id, props)
|
|
21
21
|
* this.props = props
|
|
22
22
|
* this.route53Manager.createHostedZone('MyHostedZone', this)
|
|
23
|
+
* }
|
|
23
24
|
* }
|
|
24
25
|
*
|
|
25
|
-
* @see [CDK Route53 Module]{@link https://docs.aws.amazon.com/cdk/api/
|
|
26
|
+
* @see [CDK Route53 Module]{@link https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_route53-readme.html}
|
|
26
27
|
*/
|
|
27
28
|
export class Route53Manager {
|
|
28
29
|
/**
|
|
@@ -4,7 +4,7 @@ import * as iam from 'aws-cdk-lib/aws-iam'
|
|
|
4
4
|
import * as s3 from 'aws-cdk-lib/aws-s3'
|
|
5
5
|
import * as s3deploy from 'aws-cdk-lib/aws-s3-deployment'
|
|
6
6
|
import { CommonConstruct } from '../common/commonConstruct'
|
|
7
|
-
import { S3BucketProps } from '../types'
|
|
7
|
+
import { LifecycleRule, S3BucketProps } from '../types'
|
|
8
8
|
import { createCfnOutput } from '../utils'
|
|
9
9
|
|
|
10
10
|
/**
|
|
@@ -21,11 +21,66 @@ import { createCfnOutput } from '../utils'
|
|
|
21
21
|
* super(parent, id, props)
|
|
22
22
|
* this.props = props
|
|
23
23
|
* this.s3Manager.createS3Bucket('MyBucket', this)
|
|
24
|
+
* }
|
|
24
25
|
* }
|
|
25
26
|
*
|
|
26
|
-
* @see [CDK S3 Module]{@link https://docs.aws.amazon.com/cdk/api/
|
|
27
|
+
* @see [CDK S3 Module]{@link https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_s3-readme.html}
|
|
27
28
|
*/
|
|
28
29
|
export class S3Manager {
|
|
30
|
+
/**
|
|
31
|
+
* @summary Method to determine S3 Bucket lifecycle properties
|
|
32
|
+
* @param {S3BucketProps} props bucket properties
|
|
33
|
+
* @private
|
|
34
|
+
*/
|
|
35
|
+
protected determineBucketLifecycleRules(props: S3BucketProps) {
|
|
36
|
+
if (!props.lifecycleRules) return undefined
|
|
37
|
+
|
|
38
|
+
const bucketLifecycleRules: LifecycleRule[] = []
|
|
39
|
+
props.lifecycleRules.forEach(lifecycleRule => {
|
|
40
|
+
bucketLifecycleRules.push({
|
|
41
|
+
id: lifecycleRule.id,
|
|
42
|
+
enabled: lifecycleRule.enabled,
|
|
43
|
+
abortIncompleteMultipartUploadAfter: lifecycleRule.abortIncompleteMultipartUploadAfter,
|
|
44
|
+
expirationDate: lifecycleRule.expirationDate,
|
|
45
|
+
expiration: lifecycleRule.expirationInDays ? cdk.Duration.days(lifecycleRule.expirationInDays) : undefined,
|
|
46
|
+
noncurrentVersionExpiration: lifecycleRule.noncurrentVersionExpirationInDays
|
|
47
|
+
? cdk.Duration.days(lifecycleRule.noncurrentVersionExpirationInDays)
|
|
48
|
+
: undefined,
|
|
49
|
+
noncurrentVersionTransitions: lifecycleRule.noncurrentVersionTransitions,
|
|
50
|
+
transitions: lifecycleRule.transitions,
|
|
51
|
+
prefix: lifecycleRule.prefix,
|
|
52
|
+
tagFilters: lifecycleRule.tagFilters,
|
|
53
|
+
expiredObjectDeleteMarker: lifecycleRule.expiredObjectDeleteMarker,
|
|
54
|
+
})
|
|
55
|
+
})
|
|
56
|
+
|
|
57
|
+
return bucketLifecycleRules
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
/**
|
|
61
|
+
* @summary Method to determine the bucket name
|
|
62
|
+
* @param {CommonConstruct} scope scope in which this resource is defined
|
|
63
|
+
* @param {S3BucketProps} props bucket properties
|
|
64
|
+
* @private
|
|
65
|
+
*/
|
|
66
|
+
protected static determineBucketName(scope: CommonConstruct, props: S3BucketProps) {
|
|
67
|
+
return scope.isProductionStage()
|
|
68
|
+
? `${props.bucketName}.${scope.fullyQualifiedDomainName}`
|
|
69
|
+
: `${props.bucketName}-${scope.props.stage}.${scope.fullyQualifiedDomainName}`
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
/**
|
|
73
|
+
* @summary Method to determine the log bucket name
|
|
74
|
+
* @param {CommonConstruct} scope scope in which this resource is defined
|
|
75
|
+
* @param {S3BucketProps} props bucket properties
|
|
76
|
+
* @private
|
|
77
|
+
*/
|
|
78
|
+
protected static determineLogBucketName(scope: CommonConstruct, props: S3BucketProps) {
|
|
79
|
+
return scope.isProductionStage()
|
|
80
|
+
? `${props.logBucketName}.${scope.fullyQualifiedDomainName}`
|
|
81
|
+
: `${props.logBucketName}-${scope.props.stage}.${scope.fullyQualifiedDomainName}`
|
|
82
|
+
}
|
|
83
|
+
|
|
29
84
|
/**
|
|
30
85
|
* @summary Method to create a s3 bucket
|
|
31
86
|
* @param {string} id scoped id of the resource
|
|
@@ -37,18 +92,14 @@ export class S3Manager {
|
|
|
37
92
|
|
|
38
93
|
let bucket: s3.IBucket
|
|
39
94
|
|
|
40
|
-
const bucketName =
|
|
41
|
-
? `${props.bucketName}.${scope.fullyQualifiedDomainName}`
|
|
42
|
-
: `${props.bucketName}-${scope.props.stage}.${scope.fullyQualifiedDomainName}`
|
|
95
|
+
const bucketName = S3Manager.determineBucketName(scope, props)
|
|
43
96
|
|
|
44
97
|
if (props.existingBucket && props.bucketName) {
|
|
45
98
|
bucket = s3.Bucket.fromBucketName(scope, `${id}`, bucketName)
|
|
46
99
|
} else {
|
|
47
100
|
let logBucket
|
|
48
101
|
if (props.logBucketName) {
|
|
49
|
-
const logBucketName =
|
|
50
|
-
? `${props.logBucketName}.${scope.fullyQualifiedDomainName}`
|
|
51
|
-
: `${props.logBucketName}-${scope.props.stage}.${scope.fullyQualifiedDomainName}`
|
|
102
|
+
const logBucketName = S3Manager.determineLogBucketName(scope, props)
|
|
52
103
|
logBucket = s3.Bucket.fromBucketName(scope, `${id}-logs`, logBucketName)
|
|
53
104
|
}
|
|
54
105
|
|
|
@@ -60,7 +111,7 @@ export class S3Manager {
|
|
|
60
111
|
cors: props.cors,
|
|
61
112
|
encryption: props.encryption || s3.BucketEncryption.S3_MANAGED,
|
|
62
113
|
encryptionKey: props.encryptionKey,
|
|
63
|
-
lifecycleRules: props
|
|
114
|
+
lifecycleRules: this.determineBucketLifecycleRules(props),
|
|
64
115
|
metrics: props.metrics,
|
|
65
116
|
publicReadAccess: props.publicReadAccess,
|
|
66
117
|
removalPolicy: props.removalPolicy || cdk.RemovalPolicy.RETAIN,
|
|
@@ -71,6 +122,13 @@ export class S3Manager {
|
|
|
71
122
|
websiteRoutingRules: props.websiteRoutingRules,
|
|
72
123
|
versioned: props.versioned,
|
|
73
124
|
})
|
|
125
|
+
|
|
126
|
+
const cfnBucket = bucket.node.defaultChild as s3.CfnBucket
|
|
127
|
+
cfnBucket.notificationConfiguration = {
|
|
128
|
+
eventBridgeConfiguration: {
|
|
129
|
+
eventBridgeEnabled: props.enableEventBridge ?? false,
|
|
130
|
+
},
|
|
131
|
+
}
|
|
74
132
|
}
|
|
75
133
|
|
|
76
134
|
createCfnOutput(`${id}-bucketName`, scope, bucket.bucketName)
|
|
@@ -18,10 +18,11 @@ const fs = require('fs')
|
|
|
18
18
|
* constructor(parent: cdk.Construct, id: string, props: common.CommonStackProps) {
|
|
19
19
|
* super(parent, id, props)
|
|
20
20
|
* this.props = props
|
|
21
|
-
* this.
|
|
21
|
+
* this.secretsManager.loadSecret('MySecretName', 'eu-west-1')
|
|
22
|
+
* }
|
|
22
23
|
* }
|
|
23
24
|
*
|
|
24
|
-
* @see [CDK Secrets Manager Module]{@link https://docs.aws.amazon.com/cdk/api/
|
|
25
|
+
* @see [CDK Secrets Manager Module]{@link https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_secretsmanager-readme.html}
|
|
25
26
|
*/
|
|
26
27
|
export class SecretsManager {
|
|
27
28
|
/**
|
|
@@ -19,9 +19,10 @@ import { createCfnOutput } from '../utils'
|
|
|
19
19
|
* super(parent, id, props)
|
|
20
20
|
* this.props = props
|
|
21
21
|
* this.snsManager.createEmailNotificationService('MySns', 'eu-west-1', ['test@example.com'])
|
|
22
|
+
* }
|
|
22
23
|
* }
|
|
23
24
|
*
|
|
24
|
-
* @see [CDK Simple Notification Service Module]{@link https://docs.aws.amazon.com/cdk/api/
|
|
25
|
+
* @see [CDK Simple Notification Service Module]{@link https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_sns-readme.html}
|
|
25
26
|
*/
|
|
26
27
|
export class SnsManager {
|
|
27
28
|
/**
|
|
@@ -18,9 +18,10 @@ import { SSMParameterReaderProps } from '../types'
|
|
|
18
18
|
* super(parent, id, props)
|
|
19
19
|
* this.props = props
|
|
20
20
|
* this.acmManager.writeStringToParameters('MyParameter', this, ...props)
|
|
21
|
+
* }
|
|
21
22
|
* }
|
|
22
23
|
*
|
|
23
|
-
* @see [CDK Systems Manager Module]{@link https://docs.aws.amazon.com/cdk/api/
|
|
24
|
+
* @see [CDK Systems Manager Module]{@link https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_ssm-readme.html}
|
|
24
25
|
*/
|
|
25
26
|
export class SsmManager {
|
|
26
27
|
/**
|
|
@@ -22,9 +22,10 @@ const CommonVpcIdentifier = 'CommonVpc'
|
|
|
22
22
|
* super(parent, id, props)
|
|
23
23
|
* this.props = props
|
|
24
24
|
* this.vpcManager.createVpc('MyVPC', this)
|
|
25
|
+
* }
|
|
25
26
|
* }
|
|
26
27
|
*
|
|
27
|
-
* @see [CDK VPC Module]{@link https://docs.aws.amazon.com/cdk/api/
|
|
28
|
+
* @see [CDK VPC Module]{@link https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.@aws-cdk_aws-ec2.Vpc.html}
|
|
28
29
|
*/
|
|
29
30
|
export class VpcManager {
|
|
30
31
|
/**
|
|
@@ -17,9 +17,10 @@ import { WafIPSetProps, WafWebACLProps } from '../types'
|
|
|
17
17
|
* super(parent, id, props)
|
|
18
18
|
* this.props = props
|
|
19
19
|
* this.wafManager.createWebAcl('MyWebAcl', this)
|
|
20
|
+
* }
|
|
20
21
|
* }
|
|
21
22
|
*
|
|
22
|
-
* @see [CDK WAF Module]{@link https://docs.aws.amazon.com/cdk/api/
|
|
23
|
+
* @see [CDK WAF Module]{@link https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_waf-readme.html}
|
|
23
24
|
*/
|
|
24
25
|
export class WafManager {
|
|
25
26
|
/**
|
package/src/lib/types.ts
CHANGED
|
@@ -268,10 +268,17 @@ export interface Route53Props extends route53.HostedZoneProps {
|
|
|
268
268
|
useExistingHostedZone?: boolean
|
|
269
269
|
}
|
|
270
270
|
|
|
271
|
+
export interface LifecycleRule extends s3.LifecycleRule {
|
|
272
|
+
expirationInDays?: number
|
|
273
|
+
noncurrentVersionExpirationInDays?: number
|
|
274
|
+
}
|
|
275
|
+
|
|
271
276
|
/**
|
|
272
277
|
* @category Storage
|
|
273
278
|
*/
|
|
274
279
|
export interface S3BucketProps extends s3.BucketProps {
|
|
280
|
+
enableEventBridge?: boolean
|
|
281
|
+
lifecycleRules?: LifecycleRule[]
|
|
275
282
|
bucketName: string
|
|
276
283
|
logBucketName?: string
|
|
277
284
|
existingBucket?: boolean
|