@gradientedge/cdk-utils 8.44.0 → 8.46.0

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.
@@ -6,12 +6,12 @@ case `uname` in
6
6
  esac
7
7
 
8
8
  if [ -z "$NODE_PATH" ]; then
9
- export NODE_PATH="/home/runner/work/cdk-utils/cdk-utils/node_modules/.pnpm/mkdirp@2.1.6/node_modules/mkdirp/dist/cjs/src/node_modules:/home/runner/work/cdk-utils/cdk-utils/node_modules/.pnpm/mkdirp@2.1.6/node_modules/mkdirp/dist/cjs/node_modules:/home/runner/work/cdk-utils/cdk-utils/node_modules/.pnpm/mkdirp@2.1.6/node_modules/mkdirp/dist/node_modules:/home/runner/work/cdk-utils/cdk-utils/node_modules/.pnpm/mkdirp@2.1.6/node_modules/mkdirp/node_modules:/home/runner/work/cdk-utils/cdk-utils/node_modules/.pnpm/mkdirp@2.1.6/node_modules:/home/runner/work/cdk-utils/cdk-utils/node_modules/.pnpm/node_modules"
9
+ export NODE_PATH="/home/runner/work/cdk-utils/cdk-utils/node_modules/.pnpm/mkdirp@3.0.0/node_modules/mkdirp/dist/cjs/src/node_modules:/home/runner/work/cdk-utils/cdk-utils/node_modules/.pnpm/mkdirp@3.0.0/node_modules/mkdirp/dist/cjs/node_modules:/home/runner/work/cdk-utils/cdk-utils/node_modules/.pnpm/mkdirp@3.0.0/node_modules/mkdirp/dist/node_modules:/home/runner/work/cdk-utils/cdk-utils/node_modules/.pnpm/mkdirp@3.0.0/node_modules/mkdirp/node_modules:/home/runner/work/cdk-utils/cdk-utils/node_modules/.pnpm/mkdirp@3.0.0/node_modules:/home/runner/work/cdk-utils/cdk-utils/node_modules/.pnpm/node_modules"
10
10
  else
11
- export NODE_PATH="/home/runner/work/cdk-utils/cdk-utils/node_modules/.pnpm/mkdirp@2.1.6/node_modules/mkdirp/dist/cjs/src/node_modules:/home/runner/work/cdk-utils/cdk-utils/node_modules/.pnpm/mkdirp@2.1.6/node_modules/mkdirp/dist/cjs/node_modules:/home/runner/work/cdk-utils/cdk-utils/node_modules/.pnpm/mkdirp@2.1.6/node_modules/mkdirp/dist/node_modules:/home/runner/work/cdk-utils/cdk-utils/node_modules/.pnpm/mkdirp@2.1.6/node_modules/mkdirp/node_modules:/home/runner/work/cdk-utils/cdk-utils/node_modules/.pnpm/mkdirp@2.1.6/node_modules:/home/runner/work/cdk-utils/cdk-utils/node_modules/.pnpm/node_modules:$NODE_PATH"
11
+ export NODE_PATH="/home/runner/work/cdk-utils/cdk-utils/node_modules/.pnpm/mkdirp@3.0.0/node_modules/mkdirp/dist/cjs/src/node_modules:/home/runner/work/cdk-utils/cdk-utils/node_modules/.pnpm/mkdirp@3.0.0/node_modules/mkdirp/dist/cjs/node_modules:/home/runner/work/cdk-utils/cdk-utils/node_modules/.pnpm/mkdirp@3.0.0/node_modules/mkdirp/dist/node_modules:/home/runner/work/cdk-utils/cdk-utils/node_modules/.pnpm/mkdirp@3.0.0/node_modules/mkdirp/node_modules:/home/runner/work/cdk-utils/cdk-utils/node_modules/.pnpm/mkdirp@3.0.0/node_modules:/home/runner/work/cdk-utils/cdk-utils/node_modules/.pnpm/node_modules:$NODE_PATH"
12
12
  fi
13
13
  if [ -x "$basedir/node" ]; then
14
- exec "$basedir/node" "$basedir/../../../../node_modules/.pnpm/mkdirp@2.1.6/node_modules/mkdirp/dist/cjs/src/bin.js" "$@"
14
+ exec "$basedir/node" "$basedir/../../../../node_modules/.pnpm/mkdirp@3.0.0/node_modules/mkdirp/dist/cjs/src/bin.js" "$@"
15
15
  else
16
- exec node "$basedir/../../../../node_modules/.pnpm/mkdirp@2.1.6/node_modules/mkdirp/dist/cjs/src/bin.js" "$@"
16
+ exec node "$basedir/../../../../node_modules/.pnpm/mkdirp@3.0.0/node_modules/mkdirp/dist/cjs/src/bin.js" "$@"
17
17
  fi
@@ -6,12 +6,12 @@ case `uname` in
6
6
  esac
7
7
 
8
8
  if [ -z "$NODE_PATH" ]; then
9
- export NODE_PATH="/home/runner/work/cdk-utils/cdk-utils/node_modules/.pnpm/rimraf@4.4.1/node_modules/rimraf/dist/cjs/src/node_modules:/home/runner/work/cdk-utils/cdk-utils/node_modules/.pnpm/rimraf@4.4.1/node_modules/rimraf/dist/cjs/node_modules:/home/runner/work/cdk-utils/cdk-utils/node_modules/.pnpm/rimraf@4.4.1/node_modules/rimraf/dist/node_modules:/home/runner/work/cdk-utils/cdk-utils/node_modules/.pnpm/rimraf@4.4.1/node_modules/rimraf/node_modules:/home/runner/work/cdk-utils/cdk-utils/node_modules/.pnpm/rimraf@4.4.1/node_modules:/home/runner/work/cdk-utils/cdk-utils/node_modules/.pnpm/node_modules"
9
+ export NODE_PATH="/home/runner/work/cdk-utils/cdk-utils/node_modules/.pnpm/rimraf@5.0.0/node_modules/rimraf/dist/cjs/src/node_modules:/home/runner/work/cdk-utils/cdk-utils/node_modules/.pnpm/rimraf@5.0.0/node_modules/rimraf/dist/cjs/node_modules:/home/runner/work/cdk-utils/cdk-utils/node_modules/.pnpm/rimraf@5.0.0/node_modules/rimraf/dist/node_modules:/home/runner/work/cdk-utils/cdk-utils/node_modules/.pnpm/rimraf@5.0.0/node_modules/rimraf/node_modules:/home/runner/work/cdk-utils/cdk-utils/node_modules/.pnpm/rimraf@5.0.0/node_modules:/home/runner/work/cdk-utils/cdk-utils/node_modules/.pnpm/node_modules"
10
10
  else
11
- export NODE_PATH="/home/runner/work/cdk-utils/cdk-utils/node_modules/.pnpm/rimraf@4.4.1/node_modules/rimraf/dist/cjs/src/node_modules:/home/runner/work/cdk-utils/cdk-utils/node_modules/.pnpm/rimraf@4.4.1/node_modules/rimraf/dist/cjs/node_modules:/home/runner/work/cdk-utils/cdk-utils/node_modules/.pnpm/rimraf@4.4.1/node_modules/rimraf/dist/node_modules:/home/runner/work/cdk-utils/cdk-utils/node_modules/.pnpm/rimraf@4.4.1/node_modules/rimraf/node_modules:/home/runner/work/cdk-utils/cdk-utils/node_modules/.pnpm/rimraf@4.4.1/node_modules:/home/runner/work/cdk-utils/cdk-utils/node_modules/.pnpm/node_modules:$NODE_PATH"
11
+ export NODE_PATH="/home/runner/work/cdk-utils/cdk-utils/node_modules/.pnpm/rimraf@5.0.0/node_modules/rimraf/dist/cjs/src/node_modules:/home/runner/work/cdk-utils/cdk-utils/node_modules/.pnpm/rimraf@5.0.0/node_modules/rimraf/dist/cjs/node_modules:/home/runner/work/cdk-utils/cdk-utils/node_modules/.pnpm/rimraf@5.0.0/node_modules/rimraf/dist/node_modules:/home/runner/work/cdk-utils/cdk-utils/node_modules/.pnpm/rimraf@5.0.0/node_modules/rimraf/node_modules:/home/runner/work/cdk-utils/cdk-utils/node_modules/.pnpm/rimraf@5.0.0/node_modules:/home/runner/work/cdk-utils/cdk-utils/node_modules/.pnpm/node_modules:$NODE_PATH"
12
12
  fi
13
13
  if [ -x "$basedir/node" ]; then
14
- exec "$basedir/node" "$basedir/../../../../node_modules/.pnpm/rimraf@4.4.1/node_modules/rimraf/dist/cjs/src/bin.js" "$@"
14
+ exec "$basedir/node" "$basedir/../../../../node_modules/.pnpm/rimraf@5.0.0/node_modules/rimraf/dist/cjs/src/bin.js" "$@"
15
15
  else
16
- exec node "$basedir/../../../../node_modules/.pnpm/rimraf@4.4.1/node_modules/rimraf/dist/cjs/src/bin.js" "$@"
16
+ exec node "$basedir/../../../../node_modules/.pnpm/rimraf@5.0.0/node_modules/rimraf/dist/cjs/src/bin.js" "$@"
17
17
  fi
@@ -20,7 +20,7 @@
20
20
  "uuid": "^9.0.0"
21
21
  },
22
22
  "devDependencies": {
23
- "mkdirp": "^2.1.6",
24
- "rimraf": "^4.4.1"
23
+ "mkdirp": "^3.0.0",
24
+ "rimraf": "^5.0.0"
25
25
  }
26
26
  }
@@ -2,6 +2,7 @@ import * as apig from 'aws-cdk-lib/aws-apigateway';
2
2
  import * as acm from 'aws-cdk-lib/aws-certificatemanager';
3
3
  import * as lambda from 'aws-cdk-lib/aws-lambda';
4
4
  import * as common from '../../common';
5
+ import * as types from '../../types';
5
6
  /**
6
7
  * @stability stable
7
8
  * @category cdk-utils.api-manager
@@ -31,7 +32,7 @@ export declare class ApiManager {
31
32
  * @param {AcmProps} props lambda rest restApi props
32
33
  * @param lambdaFunction
33
34
  */
34
- createLambdaRestApi(id: string, scope: common.CommonConstruct, props: apig.LambdaRestApiProps, lambdaFunction: lambda.IFunction): apig.LambdaRestApi;
35
+ createLambdaRestApi(id: string, scope: common.CommonConstruct, props: types.LambdaRestApiProps, lambdaFunction: lambda.IFunction): apig.LambdaRestApi;
35
36
  /**
36
37
  * @summary Method to create custom restApi domain
37
38
  * @param {string} id scoped id of the resource
@@ -26,6 +26,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
26
26
  exports.ApiManager = void 0;
27
27
  const apig = __importStar(require("aws-cdk-lib/aws-apigateway"));
28
28
  const utils = __importStar(require("../../utils"));
29
+ const cdk = __importStar(require("aws-cdk-lib"));
29
30
  /**
30
31
  * @stability stable
31
32
  * @category cdk-utils.api-manager
@@ -95,6 +96,11 @@ class ApiManager {
95
96
  defaultCorsPreflightOptions: props.defaultCorsPreflightOptions,
96
97
  proxy: props.proxy ?? true,
97
98
  });
99
+ if (props.tags && props.tags.length > 0) {
100
+ props.tags.forEach(tag => {
101
+ cdk.Tags.of(api).add(tag.key, tag.value);
102
+ });
103
+ }
98
104
  utils.createCfnOutput(`${id}-restApiId`, scope, api.restApiId);
99
105
  utils.createCfnOutput(`${id}-restApiName`, scope, api.restApiName);
100
106
  return api;
@@ -113,6 +113,11 @@ class CloudFrontManager {
113
113
  }),
114
114
  webACLId: props.webACLId,
115
115
  });
116
+ if (props.tags && props.tags.length > 0) {
117
+ props.tags.forEach(tag => {
118
+ cdk.Tags.of(distribution).add(tag.key, tag.value);
119
+ });
120
+ }
116
121
  utils.createCfnOutput(`${id}-distributionId`, scope, distribution.distributionId);
117
122
  utils.createCfnOutput(`${id}-distributionDomainName`, scope, distribution.distributionDomainName);
118
123
  return distribution;
@@ -158,6 +163,11 @@ class CloudFrontManager {
158
163
  priceClass: props.priceClass ?? cloudfront.PriceClass.PRICE_CLASS_ALL,
159
164
  webAclId: props.webAclId,
160
165
  });
166
+ if (props.tags && props.tags.length > 0) {
167
+ props.tags.forEach(tag => {
168
+ cdk.Tags.of(distribution).add(tag.key, tag.value);
169
+ });
170
+ }
161
171
  utils.createCfnOutput(`${id}-distributionId`, scope, distribution.distributionId);
162
172
  utils.createCfnOutput(`${id}-distributionDomainName`, scope, distribution.distributionDomainName);
163
173
  return distribution;
@@ -203,6 +213,11 @@ class CloudFrontManager {
203
213
  priceClass: props.priceClass ?? cloudfront.PriceClass.PRICE_CLASS_ALL,
204
214
  webAclId: props.webAclId,
205
215
  });
216
+ if (props.tags && props.tags.length > 0) {
217
+ props.tags.forEach(tag => {
218
+ cdk.Tags.of(distribution).add(tag.key, tag.value);
219
+ });
220
+ }
206
221
  utils.createCfnOutput(`${id}-distributionId`, scope, distribution.distributionId);
207
222
  utils.createCfnOutput(`${id}-distributionDomainName`, scope, distribution.distributionDomainName);
208
223
  return distribution;
@@ -245,6 +260,11 @@ class CloudFrontManager {
245
260
  timeout: props.timeoutInSecs ? cdk.Duration.seconds(props.timeoutInSecs) : cdk.Duration.minutes(1),
246
261
  vpc: vpc,
247
262
  });
263
+ if (props.tags && props.tags.length > 0) {
264
+ props.tags.forEach(tag => {
265
+ cdk.Tags.of(edgeFunction).add(tag.key, tag.value);
266
+ });
267
+ }
248
268
  utils.createCfnOutput(`${id}-edgeArn`, scope, edgeFunction.edgeArn);
249
269
  utils.createCfnOutput(`${id}-edgeFunctionArn`, scope, edgeFunction.functionArn);
250
270
  utils.createCfnOutput(`${id}-edgeFunctionName`, scope, edgeFunction.functionName);
@@ -26,6 +26,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
26
26
  exports.DynamodbManager = void 0;
27
27
  const dynamodb = __importStar(require("aws-cdk-lib/aws-dynamodb"));
28
28
  const utils = __importStar(require("../../utils"));
29
+ const cdk = __importStar(require("aws-cdk-lib"));
29
30
  /**
30
31
  * @stability stable
31
32
  * @category cdk-utils.dynamodb-manager
@@ -75,6 +76,11 @@ class DynamodbManager {
75
76
  waitForReplicationToFinish: props.waitForReplicationToFinish,
76
77
  contributorInsightsEnabled: props.contributorInsightsEnabled,
77
78
  });
79
+ if (props.tags && props.tags.length > 0) {
80
+ props.tags.forEach(tag => {
81
+ cdk.Tags.of(table).add(tag.key, tag.value);
82
+ });
83
+ }
78
84
  utils.createCfnOutput(`${id}-tableName`, scope, table.tableName);
79
85
  utils.createCfnOutput(`${id}-tableArn`, scope, table.tableArn);
80
86
  return table;
@@ -68,6 +68,11 @@ class EcsManager {
68
68
  containerInsights: props.containerInsights,
69
69
  executeCommandConfiguration: props.executeCommandConfiguration,
70
70
  });
71
+ if (props.tags && props.tags.length > 0) {
72
+ props.tags.forEach(tag => {
73
+ cdk.Tags.of(ecsCluster).add(tag.key, tag.value);
74
+ });
75
+ }
71
76
  utils.createCfnOutput(`${id}-clusterArn`, scope, ecsCluster.clusterArn);
72
77
  utils.createCfnOutput(`${id}-clusterName`, scope, ecsCluster.clusterName);
73
78
  return ecsCluster;
@@ -124,6 +129,11 @@ class EcsManager {
124
129
  secrets: secrets,
125
130
  command: command,
126
131
  });
132
+ if (props.tags && props.tags.length > 0) {
133
+ props.tags.forEach(tag => {
134
+ cdk.Tags.of(ecsTask).add(tag.key, tag.value);
135
+ });
136
+ }
127
137
  utils.createCfnOutput(`${id}-taskArn`, scope, ecsTask.taskDefinitionArn);
128
138
  return ecsTask;
129
139
  }
@@ -26,6 +26,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
26
26
  exports.ElastiCacheManager = void 0;
27
27
  const elasticache = __importStar(require("aws-cdk-lib/aws-elasticache"));
28
28
  const utils = __importStar(require("../../utils"));
29
+ const cdk = __importStar(require("aws-cdk-lib"));
29
30
  /**
30
31
  * @stability stable
31
32
  * @category cdk-utils.elasticache-manager
@@ -95,6 +96,11 @@ class ElastiCacheManager {
95
96
  logDeliveryConfigurations: logDeliveryConfigurations,
96
97
  });
97
98
  elasticacheCluster.addDependency(subnetGroup);
99
+ if (props.tags && props.tags.length > 0) {
100
+ props.tags.forEach(tag => {
101
+ cdk.Tags.of(elasticacheCluster).add(tag.key, tag.value);
102
+ });
103
+ }
98
104
  utils.createCfnOutput(`${id}-clusterName`, scope, elasticacheCluster.clusterName);
99
105
  utils.createCfnOutput(`${id}-redisEndpointPort`, scope, elasticacheCluster.attrRedisEndpointPort);
100
106
  utils.createCfnOutput(`${id}-redisEndpointAddress`, scope, elasticacheCluster.attrRedisEndpointAddress);
@@ -28,6 +28,7 @@ const events = __importStar(require("aws-cdk-lib/aws-events"));
28
28
  const iam = __importStar(require("aws-cdk-lib/aws-iam"));
29
29
  const lambda = __importStar(require("aws-cdk-lib/aws-lambda"));
30
30
  const utils = __importStar(require("../../utils"));
31
+ const cdk = __importStar(require("aws-cdk-lib"));
31
32
  /**
32
33
  * @stability stable
33
34
  * @category cdk-utils.event-manager
@@ -89,6 +90,11 @@ class EventManager {
89
90
  rule.addTarget(target);
90
91
  });
91
92
  }
93
+ if (props.tags && props.tags.length > 0) {
94
+ props.tags.forEach(tag => {
95
+ cdk.Tags.of(rule).add(tag.key, tag.value);
96
+ });
97
+ }
92
98
  utils.createCfnOutput(`${id}-ruleArn`, scope, rule.ruleArn);
93
99
  utils.createCfnOutput(`${id}-ruleName`, scope, rule.ruleName);
94
100
  return rule;
@@ -126,6 +126,11 @@ class LambdaManager {
126
126
  insightsVersion: props.insightsVersion,
127
127
  },
128
128
  });
129
+ if (props.tags && props.tags.length > 0) {
130
+ props.tags.forEach(tag => {
131
+ cdk.Tags.of(lambdaFunction).add(tag.key, tag.value);
132
+ });
133
+ }
129
134
  utils.createCfnOutput(`${id}-lambdaArn`, scope, lambdaFunction.functionArn);
130
135
  utils.createCfnOutput(`${id}-lambdaName`, scope, lambdaFunction.functionName);
131
136
  return lambdaFunction;
@@ -88,6 +88,11 @@ class LogManager {
88
88
  logGroupName: `${props.logGroupName}-${scope.props.stage}`,
89
89
  retentionInDays: props.retention,
90
90
  });
91
+ if (props.tags && props.tags.length > 0) {
92
+ props.tags.forEach(tag => {
93
+ cdk.Tags.of(logGroup).add(tag.key, tag.value);
94
+ });
95
+ }
91
96
  utils.createCfnOutput(`${id}-logGroupArn`, scope, logGroup.attrArn);
92
97
  return logGroup;
93
98
  }
@@ -105,6 +110,11 @@ class LogManager {
105
110
  retention: props.retention,
106
111
  removalPolicy: props.removalPolicy ?? cdk.RemovalPolicy.DESTROY,
107
112
  });
113
+ if (props.tags && props.tags.length > 0) {
114
+ props.tags.forEach(tag => {
115
+ cdk.Tags.of(logGroup).add(tag.key, tag.value);
116
+ });
117
+ }
108
118
  utils.createCfnOutput(`${id}-logGroupArn`, scope, logGroup.logGroupArn);
109
119
  return logGroup;
110
120
  }
@@ -156,6 +156,11 @@ class S3Manager {
156
156
  },
157
157
  };
158
158
  }
159
+ if (props.tags && props.tags.length > 0) {
160
+ props.tags.forEach(tag => {
161
+ cdk.Tags.of(bucket).add(tag.key, tag.value);
162
+ });
163
+ }
159
164
  utils.createCfnOutput(`${id}-bucketName`, scope, bucket.bucketName);
160
165
  utils.createCfnOutput(`${id}-bucketArn`, scope, bucket.bucketArn);
161
166
  return bucket;
@@ -84,6 +84,11 @@ class SqsManager {
84
84
  removalPolicy: props.removalPolicy ?? cdk.RemovalPolicy.DESTROY,
85
85
  retentionPeriod: props.retentionInDays ? cdk.Duration.days(props.retentionInDays) : cdk.Duration.days(7),
86
86
  });
87
+ if (props.tags && props.tags.length > 0) {
88
+ props.tags.forEach(tag => {
89
+ cdk.Tags.of(queue).add(tag.key, tag.value);
90
+ });
91
+ }
87
92
  utils.createCfnOutput(`${id}-queueArn`, scope, queue.queueArn);
88
93
  utils.createCfnOutput(`${id}-queueName`, scope, queue.queueName);
89
94
  utils.createCfnOutput(`${id}-queueUrl`, scope, queue.queueUrl);
@@ -479,6 +479,7 @@ export interface SSMParameterReaderProps {
479
479
  * @subcategory Properties
480
480
  */
481
481
  export interface CloudFrontProps extends cloudfront.CloudFrontWebDistributionProps {
482
+ tags?: TagProps[];
482
483
  }
483
484
  /**
484
485
  * @category cdk-utils.cloudfront-manager
@@ -493,6 +494,7 @@ export interface CloudfrontFunctionProps extends cloudfront.FunctionProps {
493
494
  * @subcategory Properties
494
495
  */
495
496
  export interface DistributionProps extends cloudfront.DistributionProps {
497
+ tags?: TagProps[];
496
498
  }
497
499
  /**
498
500
  * @category cdk-utils.cloudtrail-manager
@@ -614,6 +616,7 @@ export interface EfsAccessPointOptions extends efs.AccessPointOptions {
614
616
  * @subcategory Properties
615
617
  */
616
618
  export interface EcsClusterProps extends ecs.ClusterProps {
619
+ tags?: TagProps[];
617
620
  }
618
621
  /**
619
622
  * @category cdk-utils.ecs-manager
@@ -621,6 +624,7 @@ export interface EcsClusterProps extends ecs.ClusterProps {
621
624
  */
622
625
  export interface EcsTaskProps extends ecs.TaskDefinitionProps {
623
626
  logging?: ecs.AwsLogDriverProps;
627
+ tags?: TagProps[];
624
628
  }
625
629
  export interface EcsScalingProps {
626
630
  minCapacity?: number;
@@ -660,6 +664,7 @@ export interface RuleProps extends events.CfnRuleProps {
660
664
  * @subcategory Properties
661
665
  */
662
666
  export interface EventRuleProps extends events.RuleProps {
667
+ tags?: TagProps[];
663
668
  }
664
669
  /**
665
670
  * @category cdk-utils.event-manager
@@ -667,6 +672,14 @@ export interface EventRuleProps extends events.RuleProps {
667
672
  */
668
673
  export interface EventBusProps extends events.EventBusProps {
669
674
  }
675
+ /**
676
+ * @category cdk-utils.common-stack
677
+ * @subcategory Properties
678
+ */
679
+ export interface TagProps {
680
+ key: string;
681
+ value: string;
682
+ }
670
683
  /**
671
684
  * @category cdk-utils.lambda-manager
672
685
  * @subcategory Properties
@@ -676,6 +689,7 @@ export interface LambdaProps extends lambda.FunctionProps {
676
689
  redriveq?: QueueProps;
677
690
  timeoutInSecs?: number;
678
691
  excludeLastModifiedTimestamp?: boolean;
692
+ tags?: TagProps[];
679
693
  }
680
694
  /**
681
695
  * @category cdk-utils.lambda-manager
@@ -689,12 +703,21 @@ export interface LambdaAliasProps extends lambda.AliasProps {
689
703
  */
690
704
  export interface LambdaEdgeProps extends cloudfront.experimental.EdgeFunctionProps {
691
705
  timeoutInSecs?: number;
706
+ tags?: TagProps[];
707
+ }
708
+ /**
709
+ * @category cdk-utils.api-manager
710
+ * @subcategory Properties
711
+ */
712
+ export interface LambdaRestApiProps extends apig.LambdaRestApiProps {
713
+ tags?: TagProps[];
692
714
  }
693
715
  /**
694
716
  * @category cdk-utils.cloudwatch-manager
695
717
  * @subcategory Properties
696
718
  */
697
719
  export interface LogProps extends logs.LogGroupProps {
720
+ tags?: TagProps[];
698
721
  }
699
722
  /**
700
723
  * @category cdk-utils.cloudwatch-manager
@@ -724,6 +747,7 @@ export interface LifecycleRule extends s3.LifecycleRule {
724
747
  * @subcategory Properties
725
748
  */
726
749
  export interface TableProps extends dynamodb.TableProps {
750
+ tags?: TagProps[];
727
751
  }
728
752
  /**
729
753
  * @category cdk-utils.s3-manager
@@ -735,6 +759,7 @@ export interface S3BucketProps extends s3.BucketProps {
735
759
  bucketName: string;
736
760
  logBucketName?: string;
737
761
  existingBucket?: boolean;
762
+ tags?: TagProps[];
738
763
  }
739
764
  /**
740
765
  * @category cdk-utils.sns-manager
@@ -777,5 +802,6 @@ export interface QueueProps extends sqs.QueueProps {
777
802
  dataKeyReuseInSecs?: number;
778
803
  deliveryDelayInSecs?: number;
779
804
  retentionInDays?: number;
805
+ tags?: TagProps[];
780
806
  }
781
807
  export {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gradientedge/cdk-utils",
3
- "version": "8.44.0",
3
+ "version": "8.46.0",
4
4
  "description": "Utilities for AWS CDK provisioning",
5
5
  "main": "dist/index.js",
6
6
  "engines": {
@@ -48,9 +48,9 @@
48
48
  "@types/lodash": "^4.14.192",
49
49
  "@types/node": "^18.15.11",
50
50
  "app-root-path": "^3.1.0",
51
- "aws-cdk-lib": "^2.72.1",
52
- "@aws-sdk/client-secrets-manager": "^3.303.0",
53
- "constructs": "^10.1.300",
51
+ "aws-cdk-lib": "^2.73.0",
52
+ "@aws-sdk/client-secrets-manager": "^3.312.0",
53
+ "constructs": "^10.1.309",
54
54
  "lodash": "^4.17.21",
55
55
  "moment": "^2.29.4",
56
56
  "nconf": "^0.12.0",
@@ -62,14 +62,14 @@
62
62
  "@babel/eslint-parser": "^7.21.3",
63
63
  "@babel/plugin-proposal-class-properties": "^7.18.6",
64
64
  "@types/jest": "^29.5.0",
65
- "@typescript-eslint/eslint-plugin": "^5.57.0",
66
- "@typescript-eslint/parser": "^5.57.0",
67
- "aws-cdk": "^2.72.1",
65
+ "@typescript-eslint/eslint-plugin": "^5.58.0",
66
+ "@typescript-eslint/parser": "^5.58.0",
67
+ "aws-cdk": "^2.73.0",
68
68
  "better-docs": "^2.7.2",
69
69
  "codecov": "^3.8.3",
70
70
  "commitizen": "^4.3.0",
71
71
  "dotenv": "^16.0.3",
72
- "eslint": "^8.37.0",
72
+ "eslint": "^8.38.0",
73
73
  "eslint-config-prettier": "^8.8.0",
74
74
  "eslint-plugin-import": "^2.27.5",
75
75
  "husky": "^8.0.3",
@@ -81,12 +81,12 @@
81
81
  "jsdoc-mermaid": "^1.0.0",
82
82
  "prettier": "^2.8.7",
83
83
  "prettier-plugin-organize-imports": "^3.2.2",
84
- "rimraf": "^4.4.1",
84
+ "rimraf": "^5.0.0",
85
85
  "semantic-release": "^21.0.1",
86
86
  "taffydb": "^2.7.3",
87
87
  "ts-jest": "^29.1.0",
88
88
  "ts-node": "^10.9.1",
89
- "typescript": "5.0.3"
89
+ "typescript": "5.0.4"
90
90
  },
91
91
  "optionalDependencies": {
92
92
  "prop-types": "^15.8.1",
@@ -3,6 +3,8 @@ import * as acm from 'aws-cdk-lib/aws-certificatemanager'
3
3
  import * as lambda from 'aws-cdk-lib/aws-lambda'
4
4
  import * as common from '../../common'
5
5
  import * as utils from '../../utils'
6
+ import * as cdk from 'aws-cdk-lib'
7
+ import * as types from '../../types'
6
8
 
7
9
  /**
8
10
  * @stability stable
@@ -36,7 +38,7 @@ export class ApiManager {
36
38
  public createLambdaRestApi(
37
39
  id: string,
38
40
  scope: common.CommonConstruct,
39
- props: apig.LambdaRestApiProps,
41
+ props: types.LambdaRestApiProps,
40
42
  lambdaFunction: lambda.IFunction
41
43
  ) {
42
44
  if (!props) throw `Api props undefined for ${id}`
@@ -78,6 +80,12 @@ export class ApiManager {
78
80
  proxy: props.proxy ?? true,
79
81
  })
80
82
 
83
+ if (props.tags && props.tags.length > 0) {
84
+ props.tags.forEach(tag => {
85
+ cdk.Tags.of(api).add(tag.key, tag.value)
86
+ })
87
+ }
88
+
81
89
  utils.createCfnOutput(`${id}-restApiId`, scope, api.restApiId)
82
90
  utils.createCfnOutput(`${id}-restApiName`, scope, api.restApiName)
83
91
 
@@ -105,6 +105,12 @@ export class CloudFrontManager {
105
105
  webACLId: props.webACLId,
106
106
  })
107
107
 
108
+ if (props.tags && props.tags.length > 0) {
109
+ props.tags.forEach(tag => {
110
+ cdk.Tags.of(distribution).add(tag.key, tag.value)
111
+ })
112
+ }
113
+
108
114
  utils.createCfnOutput(`${id}-distributionId`, scope, distribution.distributionId)
109
115
  utils.createCfnOutput(`${id}-distributionDomainName`, scope, distribution.distributionDomainName)
110
116
 
@@ -164,6 +170,12 @@ export class CloudFrontManager {
164
170
  webAclId: props.webAclId,
165
171
  })
166
172
 
173
+ if (props.tags && props.tags.length > 0) {
174
+ props.tags.forEach(tag => {
175
+ cdk.Tags.of(distribution).add(tag.key, tag.value)
176
+ })
177
+ }
178
+
167
179
  utils.createCfnOutput(`${id}-distributionId`, scope, distribution.distributionId)
168
180
  utils.createCfnOutput(`${id}-distributionDomainName`, scope, distribution.distributionDomainName)
169
181
 
@@ -222,6 +234,12 @@ export class CloudFrontManager {
222
234
  webAclId: props.webAclId,
223
235
  })
224
236
 
237
+ if (props.tags && props.tags.length > 0) {
238
+ props.tags.forEach(tag => {
239
+ cdk.Tags.of(distribution).add(tag.key, tag.value)
240
+ })
241
+ }
242
+
225
243
  utils.createCfnOutput(`${id}-distributionId`, scope, distribution.distributionId)
226
244
  utils.createCfnOutput(`${id}-distributionDomainName`, scope, distribution.distributionDomainName)
227
245
 
@@ -279,6 +297,12 @@ export class CloudFrontManager {
279
297
  vpc: vpc,
280
298
  })
281
299
 
300
+ if (props.tags && props.tags.length > 0) {
301
+ props.tags.forEach(tag => {
302
+ cdk.Tags.of(edgeFunction).add(tag.key, tag.value)
303
+ })
304
+ }
305
+
282
306
  utils.createCfnOutput(`${id}-edgeArn`, scope, edgeFunction.edgeArn)
283
307
  utils.createCfnOutput(`${id}-edgeFunctionArn`, scope, edgeFunction.functionArn)
284
308
  utils.createCfnOutput(`${id}-edgeFunctionName`, scope, edgeFunction.functionName)
@@ -2,6 +2,7 @@ import * as dynamodb from 'aws-cdk-lib/aws-dynamodb'
2
2
  import * as common from '../../common'
3
3
  import * as types from '../../types'
4
4
  import * as utils from '../../utils'
5
+ import * as cdk from 'aws-cdk-lib'
5
6
 
6
7
  /**
7
8
  * @stability stable
@@ -53,6 +54,12 @@ export class DynamodbManager {
53
54
  contributorInsightsEnabled: props.contributorInsightsEnabled,
54
55
  })
55
56
 
57
+ if (props.tags && props.tags.length > 0) {
58
+ props.tags.forEach(tag => {
59
+ cdk.Tags.of(table).add(tag.key, tag.value)
60
+ })
61
+ }
62
+
56
63
  utils.createCfnOutput(`${id}-tableName`, scope, table.tableName)
57
64
  utils.createCfnOutput(`${id}-tableArn`, scope, table.tableArn)
58
65
 
@@ -49,6 +49,12 @@ export class EcsManager {
49
49
  executeCommandConfiguration: props.executeCommandConfiguration,
50
50
  })
51
51
 
52
+ if (props.tags && props.tags.length > 0) {
53
+ props.tags.forEach(tag => {
54
+ cdk.Tags.of(ecsCluster).add(tag.key, tag.value)
55
+ })
56
+ }
57
+
52
58
  utils.createCfnOutput(`${id}-clusterArn`, scope, ecsCluster.clusterArn)
53
59
  utils.createCfnOutput(`${id}-clusterName`, scope, ecsCluster.clusterName)
54
60
 
@@ -120,6 +126,12 @@ export class EcsManager {
120
126
  command: command,
121
127
  })
122
128
 
129
+ if (props.tags && props.tags.length > 0) {
130
+ props.tags.forEach(tag => {
131
+ cdk.Tags.of(ecsTask).add(tag.key, tag.value)
132
+ })
133
+ }
134
+
123
135
  utils.createCfnOutput(`${id}-taskArn`, scope, ecsTask.taskDefinitionArn)
124
136
 
125
137
  return ecsTask
@@ -2,6 +2,7 @@ import * as elasticache from 'aws-cdk-lib/aws-elasticache'
2
2
  import * as common from '../../common'
3
3
  import * as types from '../../types'
4
4
  import * as utils from '../../utils'
5
+ import * as cdk from 'aws-cdk-lib'
5
6
 
6
7
  /**
7
8
  * @stability stable
@@ -83,6 +84,12 @@ export class ElastiCacheManager {
83
84
 
84
85
  elasticacheCluster.addDependency(subnetGroup)
85
86
 
87
+ if (props.tags && props.tags.length > 0) {
88
+ props.tags.forEach(tag => {
89
+ cdk.Tags.of(elasticacheCluster).add(tag.key, tag.value)
90
+ })
91
+ }
92
+
86
93
  utils.createCfnOutput(`${id}-clusterName`, scope, elasticacheCluster.clusterName)
87
94
  utils.createCfnOutput(`${id}-redisEndpointPort`, scope, elasticacheCluster.attrRedisEndpointPort)
88
95
  utils.createCfnOutput(`${id}-redisEndpointAddress`, scope, elasticacheCluster.attrRedisEndpointAddress)
@@ -5,6 +5,7 @@ import * as lambda from 'aws-cdk-lib/aws-lambda'
5
5
  import * as common from '../../common'
6
6
  import * as types from '../../types'
7
7
  import * as utils from '../../utils'
8
+ import * as cdk from 'aws-cdk-lib'
8
9
 
9
10
  /**
10
11
  * @stability stable
@@ -78,6 +79,12 @@ export class EventManager {
78
79
  })
79
80
  }
80
81
 
82
+ if (props.tags && props.tags.length > 0) {
83
+ props.tags.forEach(tag => {
84
+ cdk.Tags.of(rule).add(tag.key, tag.value)
85
+ })
86
+ }
87
+
81
88
  utils.createCfnOutput(`${id}-ruleArn`, scope, rule.ruleArn)
82
89
  utils.createCfnOutput(`${id}-ruleName`, scope, rule.ruleName)
83
90
 
@@ -129,6 +129,12 @@ export class LambdaManager {
129
129
  },
130
130
  })
131
131
 
132
+ if (props.tags && props.tags.length > 0) {
133
+ props.tags.forEach(tag => {
134
+ cdk.Tags.of(lambdaFunction).add(tag.key, tag.value)
135
+ })
136
+ }
137
+
132
138
  utils.createCfnOutput(`${id}-lambdaArn`, scope, lambdaFunction.functionArn)
133
139
  utils.createCfnOutput(`${id}-lambdaName`, scope, lambdaFunction.functionName)
134
140
 
@@ -74,6 +74,12 @@ export class LogManager {
74
74
  retentionInDays: props.retention,
75
75
  })
76
76
 
77
+ if (props.tags && props.tags.length > 0) {
78
+ props.tags.forEach(tag => {
79
+ cdk.Tags.of(logGroup).add(tag.key, tag.value)
80
+ })
81
+ }
82
+
77
83
  utils.createCfnOutput(`${id}-logGroupArn`, scope, logGroup.attrArn)
78
84
 
79
85
  return logGroup
@@ -94,6 +100,12 @@ export class LogManager {
94
100
  removalPolicy: props.removalPolicy ?? cdk.RemovalPolicy.DESTROY,
95
101
  })
96
102
 
103
+ if (props.tags && props.tags.length > 0) {
104
+ props.tags.forEach(tag => {
105
+ cdk.Tags.of(logGroup).add(tag.key, tag.value)
106
+ })
107
+ }
108
+
97
109
  utils.createCfnOutput(`${id}-logGroupArn`, scope, logGroup.logGroupArn)
98
110
 
99
111
  return logGroup
@@ -143,6 +143,12 @@ export class S3Manager {
143
143
  }
144
144
  }
145
145
 
146
+ if (props.tags && props.tags.length > 0) {
147
+ props.tags.forEach(tag => {
148
+ cdk.Tags.of(bucket).add(tag.key, tag.value)
149
+ })
150
+ }
151
+
146
152
  utils.createCfnOutput(`${id}-bucketName`, scope, bucket.bucketName)
147
153
  utils.createCfnOutput(`${id}-bucketArn`, scope, bucket.bucketArn)
148
154
 
@@ -62,6 +62,12 @@ export class SqsManager {
62
62
  retentionPeriod: props.retentionInDays ? cdk.Duration.days(props.retentionInDays) : cdk.Duration.days(7),
63
63
  })
64
64
 
65
+ if (props.tags && props.tags.length > 0) {
66
+ props.tags.forEach(tag => {
67
+ cdk.Tags.of(queue).add(tag.key, tag.value)
68
+ })
69
+ }
70
+
65
71
  utils.createCfnOutput(`${id}-queueArn`, scope, queue.queueArn)
66
72
  utils.createCfnOutput(`${id}-queueName`, scope, queue.queueName)
67
73
  utils.createCfnOutput(`${id}-queueUrl`, scope, queue.queueUrl)
@@ -505,7 +505,9 @@ export interface SSMParameterReaderProps {
505
505
  * @category cdk-utils.cloudfront-manager
506
506
  * @subcategory Properties
507
507
  */
508
- export interface CloudFrontProps extends cloudfront.CloudFrontWebDistributionProps {}
508
+ export interface CloudFrontProps extends cloudfront.CloudFrontWebDistributionProps {
509
+ tags?: TagProps[]
510
+ }
509
511
 
510
512
  /**
511
513
  * @category cdk-utils.cloudfront-manager
@@ -520,7 +522,9 @@ export interface CloudfrontFunctionProps extends cloudfront.FunctionProps {
520
522
  * @category cdk-utils.cloudfront-manager
521
523
  * @subcategory Properties
522
524
  */
523
- export interface DistributionProps extends cloudfront.DistributionProps {}
525
+ export interface DistributionProps extends cloudfront.DistributionProps {
526
+ tags?: TagProps[]
527
+ }
524
528
 
525
529
  /**
526
530
  * @category cdk-utils.cloudtrail-manager
@@ -650,7 +654,9 @@ export interface EfsAccessPointOptions extends efs.AccessPointOptions {}
650
654
  * @category cdk-utils.ecs-manager
651
655
  * @subcategory Properties
652
656
  */
653
- export interface EcsClusterProps extends ecs.ClusterProps {}
657
+ export interface EcsClusterProps extends ecs.ClusterProps {
658
+ tags?: TagProps[]
659
+ }
654
660
 
655
661
  /**
656
662
  * @category cdk-utils.ecs-manager
@@ -658,6 +664,7 @@ export interface EcsClusterProps extends ecs.ClusterProps {}
658
664
  */
659
665
  export interface EcsTaskProps extends ecs.TaskDefinitionProps {
660
666
  logging?: ecs.AwsLogDriverProps
667
+ tags?: TagProps[]
661
668
  }
662
669
 
663
670
  export interface EcsScalingProps {
@@ -702,7 +709,9 @@ export interface RuleProps extends events.CfnRuleProps {
702
709
  * @category cdk-utils.event-manager
703
710
  * @subcategory Properties
704
711
  */
705
- export interface EventRuleProps extends events.RuleProps {}
712
+ export interface EventRuleProps extends events.RuleProps {
713
+ tags?: TagProps[]
714
+ }
706
715
 
707
716
  /**
708
717
  * @category cdk-utils.event-manager
@@ -710,6 +719,15 @@ export interface EventRuleProps extends events.RuleProps {}
710
719
  */
711
720
  export interface EventBusProps extends events.EventBusProps {}
712
721
 
722
+ /**
723
+ * @category cdk-utils.common-stack
724
+ * @subcategory Properties
725
+ */
726
+ export interface TagProps {
727
+ key: string
728
+ value: string
729
+ }
730
+
713
731
  /**
714
732
  * @category cdk-utils.lambda-manager
715
733
  * @subcategory Properties
@@ -719,6 +737,7 @@ export interface LambdaProps extends lambda.FunctionProps {
719
737
  redriveq?: QueueProps
720
738
  timeoutInSecs?: number
721
739
  excludeLastModifiedTimestamp?: boolean
740
+ tags?: TagProps[]
722
741
  }
723
742
 
724
743
  /**
@@ -733,13 +752,24 @@ export interface LambdaAliasProps extends lambda.AliasProps {}
733
752
  */
734
753
  export interface LambdaEdgeProps extends cloudfront.experimental.EdgeFunctionProps {
735
754
  timeoutInSecs?: number
755
+ tags?: TagProps[]
756
+ }
757
+
758
+ /**
759
+ * @category cdk-utils.api-manager
760
+ * @subcategory Properties
761
+ */
762
+ export interface LambdaRestApiProps extends apig.LambdaRestApiProps {
763
+ tags?: TagProps[]
736
764
  }
737
765
 
738
766
  /**
739
767
  * @category cdk-utils.cloudwatch-manager
740
768
  * @subcategory Properties
741
769
  */
742
- export interface LogProps extends logs.LogGroupProps {}
770
+ export interface LogProps extends logs.LogGroupProps {
771
+ tags?: TagProps[]
772
+ }
743
773
 
744
774
  /**
745
775
  * @category cdk-utils.cloudwatch-manager
@@ -771,7 +801,9 @@ export interface LifecycleRule extends s3.LifecycleRule {
771
801
  * @category cdk-utils.dynamodb-manager
772
802
  * @subcategory Properties
773
803
  */
774
- export interface TableProps extends dynamodb.TableProps {}
804
+ export interface TableProps extends dynamodb.TableProps {
805
+ tags?: TagProps[]
806
+ }
775
807
 
776
808
  /**
777
809
  * @category cdk-utils.s3-manager
@@ -783,6 +815,7 @@ export interface S3BucketProps extends s3.BucketProps {
783
815
  bucketName: string
784
816
  logBucketName?: string
785
817
  existingBucket?: boolean
818
+ tags?: TagProps[]
786
819
  }
787
820
 
788
821
  /**
@@ -826,4 +859,5 @@ export interface QueueProps extends sqs.QueueProps {
826
859
  dataKeyReuseInSecs?: number
827
860
  deliveryDelayInSecs?: number
828
861
  retentionInDays?: number
862
+ tags?: TagProps[]
829
863
  }