@sylvesterllc/aws-constructs 1.1.37 → 1.1.39

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.
Files changed (186) hide show
  1. package/.github/workflows/publish.yml +56 -56
  2. package/__tests__/app-config.test.ts +32 -32
  3. package/__tests__/data/testConfig.ts +146 -146
  4. package/__tests__/mocks/ResourceMock.ts +9 -9
  5. package/__tests__/router.test.ts +194 -194
  6. package/dist/config/AppConfig.js +1 -1
  7. package/dist/config/Constants.js +1 -1
  8. package/dist/config/Environments.js +1 -1
  9. package/dist/config/MicroserviceAppConfig.js +1 -1
  10. package/dist/config/ServiceBundleConfig.js +1 -1
  11. package/dist/config/bishopConfig.js +1 -1
  12. package/dist/config/customConfigs/ApiAppConfig.js +1 -1
  13. package/dist/config/customConfigs/GlobalAppConfig.js +1 -1
  14. package/dist/config/customConfigs/IAppConfig.js +1 -1
  15. package/dist/config/customConfigs/ResourceAppConfig.js +1 -1
  16. package/dist/config/microServiceConfig.js +1 -1
  17. package/dist/config/types/LogDuration.js +1 -1
  18. package/dist/config/types/TsgAuthorizerProp.js +1 -1
  19. package/dist/config/types/TsgAuthorizerType.js +1 -1
  20. package/dist/config/types/TsgCdkConfigType.js +1 -1
  21. package/dist/config/types/TsgCognitoConfig.js +1 -1
  22. package/dist/config/types/TsgDnsConfig.js +1 -1
  23. package/dist/config/types/TsgDynamoDbProp.js +1 -1
  24. package/dist/config/types/TsgDynamoIndex.js +1 -1
  25. package/dist/config/types/TsgDynamoProp.js +1 -1
  26. package/dist/config/types/TsgDynamoTable.js +1 -1
  27. package/dist/config/types/TsgDynamoTableRef.js +1 -1
  28. package/dist/config/types/TsgEc2Prop.js +1 -1
  29. package/dist/config/types/TsgKeyPair.js +1 -1
  30. package/dist/config/types/TsgLambda.js +1 -1
  31. package/dist/config/types/TsgLambdaLayerProp.js +1 -1
  32. package/dist/config/types/TsgLambdaMap.js +1 -1
  33. package/dist/config/types/TsgLambdaName.js +1 -1
  34. package/dist/config/types/TsgLambdaNode.js +1 -1
  35. package/dist/config/types/TsgLambdaProp.js +1 -1
  36. package/dist/config/types/TsgLambdaProps.js +1 -1
  37. package/dist/config/types/TsgLambdaRoutable.js +1 -1
  38. package/dist/config/types/index.js +1 -1
  39. package/dist/constants/aws-service-principal-constants.js +1 -1
  40. package/dist/constructs/BasicLambda.js +1 -1
  41. package/dist/constructs/DynamoDbSingleTable.js +4 -2
  42. package/dist/constructs/MicroService.js +1 -1
  43. package/dist/constructs/basic-queue.d.ts +9 -0
  44. package/dist/constructs/basic-queue.js +16 -0
  45. package/dist/constructs/index.d.ts +1 -0
  46. package/dist/constructs/index.js +16 -1
  47. package/dist/constructs/timer-job.js +1 -1
  48. package/dist/helpers/logger.js +1 -1
  49. package/dist/helpers/util-helper.js +1 -1
  50. package/dist/index.js +1 -1
  51. package/dist/interfaces/ApiLambdaResult.js +1 -1
  52. package/dist/interfaces/BaseResourceProps.js +1 -1
  53. package/dist/interfaces/CreateLambdaFunctionInput.js +1 -1
  54. package/dist/interfaces/MicroserviceProps.js +1 -1
  55. package/dist/interfaces/lambda/index.js +1 -1
  56. package/dist/interfaces/lambda/lambda-props.js +1 -1
  57. package/dist/interfaces/timer-job/timer-job-props.js +1 -1
  58. package/dist/resources/base/baseResource.js +1 -1
  59. package/dist/resources/base/tsgBaseResource.js +1 -1
  60. package/dist/resources/certificate/createCertificate.js +1 -1
  61. package/dist/resources/cognito/createCognito.js +1 -1
  62. package/dist/resources/cognito/createCognitoProps.js +1 -1
  63. package/dist/resources/customResource/createSeedDatabaseCustomResource.js +1 -1
  64. package/dist/resources/dynamodb/CreateDynamo.js +1 -1
  65. package/dist/resources/dynamodb/CreateDynamoSingleTableDesign.d.ts +2 -1
  66. package/dist/resources/dynamodb/CreateDynamoSingleTableDesign.js +29 -28
  67. package/dist/resources/ec2/create-ec2-instance.js +3 -3
  68. package/dist/resources/ecr/CreateEcr.js +2 -2
  69. package/dist/resources/gateway/CreateApiAndAttachLambdas.js +1 -1
  70. package/dist/resources/gateway/createApi.js +1 -1
  71. package/dist/resources/gateway/createApiKey.js +1 -1
  72. package/dist/resources/helpers/createCommonLayer.js +1 -1
  73. package/dist/resources/helpers/createRoutes.js +1 -1
  74. package/dist/resources/index.js +1 -1
  75. package/dist/resources/lambda/create-basic-lambda-helper.js +11 -24
  76. package/dist/resources/lambda/create-basic-lambda.js +8 -21
  77. package/dist/resources/lambda/createLambda.js +1 -1
  78. package/dist/resources/lambda/lambdaHelper.js +1 -1
  79. package/dist/resources/lambda-authorizer/TsgJwtTokenAuthorizer.js +1 -1
  80. package/dist/resources/lambda-authorizer/TsgRequestAuthorizer.js +1 -1
  81. package/dist/resources/lambda-authorizer/createAuthorizerHelpers.js +1 -1
  82. package/dist/resources/lambda-layer/createLambdaLayer.js +1 -1
  83. package/dist/resources/layers/common/src/nodejs/api-response/responses.js +1 -1
  84. package/dist/resources/layers/common/src/nodejs/index.js +1 -1
  85. package/dist/resources/layers/common/src/nodejs/logger/IContext.js +1 -1
  86. package/dist/resources/layers/common/src/nodejs/logger/index.js +1 -1
  87. package/dist/resources/layers/common/src/nodejs/logger/logger.js +1 -1
  88. package/dist/resources/resources/iam/policyDocuments/cognitoPolicy.js +1 -1
  89. package/dist/resources/resources/iam/roles/createRole.js +1 -1
  90. package/dist/resources/route53/CreateZone.js +1 -1
  91. package/dist/resources/route53/create-zones.js +1 -1
  92. package/dist/resources/securityManager/index.js +1 -1
  93. package/dist/resources/sqs/create-sqs-resource.d.ts +3 -0
  94. package/dist/resources/sqs/create-sqs-resource.js +21 -0
  95. package/jest.config.js +8 -8
  96. package/jest.config.ts.old +20 -20
  97. package/package.json +57 -55
  98. package/readme.md +147 -147
  99. package/src/config/AppConfig.ts +106 -106
  100. package/src/config/Constants.ts +26 -26
  101. package/src/config/Environments.ts +1 -1
  102. package/src/config/MicroserviceAppConfig.ts +8 -8
  103. package/src/config/ServiceBundleConfig.ts +17 -17
  104. package/src/config/bishopConfig.ts +82 -82
  105. package/src/config/customConfigs/ApiAppConfig.ts +5 -5
  106. package/src/config/customConfigs/GlobalAppConfig.ts +10 -10
  107. package/src/config/customConfigs/IAppConfig.ts +12 -12
  108. package/src/config/customConfigs/ResourceAppConfig.ts +15 -15
  109. package/src/config/microServiceConfig.ts +83 -83
  110. package/src/config/types/LogDuration.ts +7 -7
  111. package/src/config/types/TsgAuthorizerProp.ts +8 -8
  112. package/src/config/types/TsgAuthorizerType.ts +4 -4
  113. package/src/config/types/TsgCdkConfigType.ts +2 -2
  114. package/src/config/types/TsgCognitoConfig.ts +5 -5
  115. package/src/config/types/TsgDnsConfig.ts +10 -10
  116. package/src/config/types/TsgDynamoDbProp.ts +9 -9
  117. package/src/config/types/TsgDynamoIndex.ts +15 -15
  118. package/src/config/types/TsgDynamoProp.ts +16 -16
  119. package/src/config/types/TsgDynamoTable.ts +4 -4
  120. package/src/config/types/TsgDynamoTableRef.ts +3 -3
  121. package/src/config/types/TsgEc2Prop.ts +8 -8
  122. package/src/config/types/TsgKeyPair.ts +5 -5
  123. package/src/config/types/TsgLambda.ts +5 -5
  124. package/src/config/types/TsgLambdaLayerProp.ts +4 -4
  125. package/src/config/types/TsgLambdaMap.ts +3 -3
  126. package/src/config/types/TsgLambdaName.ts +3 -3
  127. package/src/config/types/TsgLambdaNode.ts +3 -3
  128. package/src/config/types/TsgLambdaProp.ts +19 -19
  129. package/src/config/types/TsgLambdaProps.ts +17 -17
  130. package/src/config/types/TsgLambdaRoutable.ts +8 -8
  131. package/src/config/types/index.ts +11 -11
  132. package/src/constants/aws-service-principal-constants.ts +2 -2
  133. package/src/constructs/BasicLambda.ts +19 -19
  134. package/src/constructs/DynamoDbSingleTable.ts +13 -12
  135. package/src/constructs/MicroService.ts +131 -131
  136. package/src/constructs/basic-queue.ts +19 -0
  137. package/src/constructs/index.ts +6 -5
  138. package/src/constructs/timer-job.ts +19 -19
  139. package/src/helpers/logger.ts +12 -12
  140. package/src/helpers/util-helper.ts +19 -19
  141. package/src/index.ts +8 -8
  142. package/src/interfaces/ApiLambdaResult.ts +6 -6
  143. package/src/interfaces/BaseResourceProps.ts +6 -6
  144. package/src/interfaces/CreateLambdaFunctionInput.ts +10 -10
  145. package/src/interfaces/MicroserviceProps.ts +10 -10
  146. package/src/interfaces/lambda/index.ts +1 -1
  147. package/src/interfaces/lambda/lambda-props.ts +15 -15
  148. package/src/interfaces/timer-job/timer-job-props.ts +6 -6
  149. package/src/resources/base/baseResource.ts +14 -14
  150. package/src/resources/base/tsgBaseResource.ts +21 -21
  151. package/src/resources/certificate/createCertificate.ts +57 -57
  152. package/src/resources/cognito/createCognito.ts +47 -47
  153. package/src/resources/cognito/createCognitoProps.ts +46 -46
  154. package/src/resources/customResource/createSeedDatabaseCustomResource.ts +36 -36
  155. package/src/resources/dynamodb/CreateDynamo.ts +110 -110
  156. package/src/resources/dynamodb/CreateDynamoSingleTableDesign.ts +112 -118
  157. package/src/resources/ec2/create-ec2-instance.ts +52 -52
  158. package/src/resources/ecr/CreateEcr.ts +57 -57
  159. package/src/resources/gateway/CreateApiAndAttachLambdas.ts +161 -161
  160. package/src/resources/gateway/createApi.ts +173 -173
  161. package/src/resources/gateway/createApiKey.ts +88 -88
  162. package/src/resources/helpers/createCommonLayer.ts +18 -18
  163. package/src/resources/helpers/createRoutes.ts +74 -74
  164. package/src/resources/index.ts +1 -1
  165. package/src/resources/lambda/create-basic-lambda-helper.ts +124 -146
  166. package/src/resources/lambda/create-basic-lambda.ts +159 -173
  167. package/src/resources/lambda/createLambda.ts +203 -203
  168. package/src/resources/lambda/lambdaHelper.ts +133 -133
  169. package/src/resources/lambda-authorizer/TsgJwtTokenAuthorizer.ts +107 -107
  170. package/src/resources/lambda-authorizer/TsgRequestAuthorizer.ts +44 -44
  171. package/src/resources/lambda-authorizer/createAuthorizerHelpers.ts +76 -76
  172. package/src/resources/lambda-layer/createLambdaLayer.ts +39 -39
  173. package/src/resources/layers/common/package.json +22 -22
  174. package/src/resources/layers/common/src/nodejs/api-response/responses.ts +41 -41
  175. package/src/resources/layers/common/src/nodejs/index.ts +3 -3
  176. package/src/resources/layers/common/src/nodejs/logger/IContext.ts +6 -6
  177. package/src/resources/layers/common/src/nodejs/logger/index.ts +1 -1
  178. package/src/resources/layers/common/src/nodejs/logger/logger.ts +10 -10
  179. package/src/resources/layers/common/tsconfig.json +7 -7
  180. package/src/resources/resources/iam/policyDocuments/cognitoPolicy.ts +54 -54
  181. package/src/resources/resources/iam/roles/createRole.ts +29 -29
  182. package/src/resources/route53/CreateZone.ts +61 -61
  183. package/src/resources/route53/create-zones.ts +40 -40
  184. package/src/resources/securityManager/index.ts +23 -23
  185. package/src/resources/sqs/create-sqs-resource.ts +22 -0
  186. package/tsconfig.json +44 -44
@@ -1,118 +1,112 @@
1
- import { CfnOutput, RemovalPolicy } from "aws-cdk-lib";
2
- import {
3
- AttributeType,
4
- BillingMode,
5
- GlobalSecondaryIndexProps,
6
- ProjectionType,
7
- Table,
8
- TableProps,
9
- } from "aws-cdk-lib/aws-dynamodb";
10
- import { Construct } from "constructs";
11
- import { TsgBaseResource } from "../base/tsgBaseResource";
12
-
13
- export class CreateDynamoSingleTableDesign extends TsgBaseResource<
14
- Table,
15
- string
16
- > {
17
- static ReadWriteActions: string[] = [
18
- "dynamodb:BatchGetItem",
19
- "dynamodb:BatchWriteItem",
20
- "dynamodb:ConditionCheckItem",
21
- "dynamodb:DeleteItem",
22
- "dynamodb:DescribeTable",
23
- "dynamodb:GetItem",
24
- "dynamodb:GetRecords",
25
- "dynamodb:GetShardIterator",
26
- "dynamodb:PutItem",
27
- "dynamodb:Query",
28
- "dynamodb:Scan",
29
- "dynamodb:UpdateItem",
30
- ];
31
-
32
- get CreatedTable() {
33
- return this.createdResource;
34
- }
35
-
36
- get tableName(): string {
37
- return this.config;
38
- }
39
-
40
- constructor(scope: Construct, tableName: string) {
41
- super(scope, tableName);
42
- }
43
-
44
- protected createResource(scope: Construct): Table {
45
- const dbTable = new Table(scope, `db-table-${this.tableName}`, {
46
- tableName: this.tableName,
47
- removalPolicy: RemovalPolicy.DESTROY,
48
-
49
- partitionKey: {
50
- name: "pk",
51
- type: AttributeType.STRING,
52
- },
53
- sortKey: {
54
- name: "sk",
55
- type: AttributeType.STRING,
56
- },
57
- billingMode: BillingMode.PAY_PER_REQUEST,
58
- });
59
-
60
- const gsiIndexes = [
61
- {
62
- indexName: "gsi1Index",
63
- partitionKey: {
64
- name: "gsi1pk",
65
- type: AttributeType.STRING,
66
- },
67
- sortKey: {
68
- name: "gsi1sk",
69
- type: AttributeType.STRING,
70
- },
71
- projectionType: ProjectionType.ALL,
72
- },
73
- {
74
- indexName: "gsi2Index",
75
- partitionKey: {
76
- name: "gsi2pk",
77
- type: AttributeType.STRING,
78
- },
79
- sortKey: {
80
- name: "gsi2sk",
81
- type: AttributeType.STRING,
82
- },
83
- projectionType: ProjectionType.ALL,
84
- },
85
- {
86
- indexName: "gsi3Index",
87
- partitionKey: {
88
- name: "gsi3pk",
89
- type: AttributeType.STRING,
90
- },
91
- sortKey: {
92
- name: "gsi3sk",
93
- type: AttributeType.STRING,
94
- },
95
- projectionType: ProjectionType.ALL,
96
- },
97
- ];
98
-
99
- gsiIndexes.map((gsi) => {
100
- const gsiProps: GlobalSecondaryIndexProps = {
101
- indexName: gsi.indexName,
102
- partitionKey: gsi.partitionKey,
103
- sortKey: gsi.sortKey,
104
- projectionType: gsi.projectionType,
105
- };
106
-
107
- dbTable.addGlobalSecondaryIndex(gsiProps);
108
- });
109
-
110
- return dbTable;
111
- }
112
-
113
- protected createOutput<T>(scope: Construct): void {
114
- new CfnOutput(scope, `dynamoTable-${this.tableName}`, {
115
- value: `Table Name: ${this.tableName}`,
116
- });
117
- }
118
- }
1
+ import { CfnOutput, RemovalPolicy } from "aws-cdk-lib";
2
+ import { AttributeType, BillingMode, GlobalSecondaryIndexProps, ProjectionType, Table, TableProps } from "aws-cdk-lib/aws-dynamodb";
3
+ import { Construct } from "constructs";
4
+ import { TsgBaseResource } from "../base/tsgBaseResource";
5
+
6
+
7
+ export class CreateDynamoSingleTableDesign extends TsgBaseResource<Table, string> {
8
+
9
+ static ReadWriteActions: string[] = [
10
+ "dynamodb:BatchGetItem",
11
+ "dynamodb:BatchWriteItem",
12
+ "dynamodb:ConditionCheckItem",
13
+ "dynamodb:DeleteItem",
14
+ "dynamodb:DescribeTable",
15
+ "dynamodb:GetItem",
16
+ "dynamodb:GetRecords",
17
+ "dynamodb:GetShardIterator",
18
+ "dynamodb:PutItem",
19
+ "dynamodb:Query",
20
+ "dynamodb:Scan",
21
+ "dynamodb:UpdateItem",
22
+ ];
23
+
24
+ get CreatedTable() {
25
+ return this.createdResource;
26
+ }
27
+
28
+ constructor(protected scope: Construct, protected tableName: string) {
29
+ super(scope, tableName);
30
+ }
31
+
32
+ protected createResource(scope: Construct): Table {
33
+
34
+ const dbTable = new Table(scope, `${this.tableName}`, {
35
+ tableName: this.tableName,
36
+ removalPolicy: RemovalPolicy.DESTROY,
37
+
38
+ partitionKey: {
39
+ name: 'pk',
40
+ type: AttributeType.STRING,
41
+ },
42
+ sortKey: {
43
+ name: 'sk',
44
+ type: AttributeType.STRING,
45
+ },
46
+ billingMode: BillingMode.PAY_PER_REQUEST,
47
+ });
48
+
49
+ const gsiIndexes = [
50
+ {
51
+ indexName: 'gsi1Index',
52
+ partitionKey: {
53
+ name: 'gsi1pk',
54
+ type: AttributeType.STRING
55
+ },
56
+ sortKey: {
57
+ name: 'gsi1sk',
58
+ type: AttributeType.STRING
59
+ },
60
+ projectionType: ProjectionType.ALL
61
+ },
62
+ {
63
+ indexName: 'gsi2Index',
64
+ partitionKey: {
65
+ name: 'gsi2pk',
66
+ type: AttributeType.STRING
67
+ },
68
+ sortKey: {
69
+ name: 'gsi2sk',
70
+ type: AttributeType.STRING
71
+ },
72
+ projectionType: ProjectionType.ALL
73
+ },
74
+ {
75
+ indexName: 'gsi3Index',
76
+ partitionKey: {
77
+ name: 'gsi3pk',
78
+ type: AttributeType.STRING
79
+ },
80
+ sortKey: {
81
+ name: 'gsi3sk',
82
+ type: AttributeType.STRING
83
+ },
84
+ projectionType: ProjectionType.ALL
85
+ },
86
+ ];
87
+
88
+ gsiIndexes.map((gsi) => {
89
+
90
+ const gsiProps: GlobalSecondaryIndexProps = {
91
+ indexName: gsi.indexName,
92
+ partitionKey: gsi.partitionKey,
93
+ sortKey: gsi.sortKey,
94
+ projectionType: gsi.projectionType
95
+
96
+ };
97
+
98
+ dbTable.addGlobalSecondaryIndex(gsiProps);
99
+ });
100
+
101
+ return dbTable;
102
+ }
103
+
104
+
105
+ protected createOutput<T>(scope: Construct): void {
106
+
107
+ new CfnOutput(scope, `dynamoTable-${this.CreatedTable?.tableName}`, {
108
+ value: `Table Name: ${this.createdResource?.tableName}\t Table Arn: ${this.createdResource?.tableArn}`
109
+ });
110
+
111
+ }
112
+ }
@@ -1,53 +1,53 @@
1
- import { Instance, InstanceType, InstanceClass, InstanceSize, MachineImage, Vpc, CfnKeyPair } from "aws-cdk-lib/aws-ec2";
2
- import { BaseResource } from "../base/baseResource";
3
- import { Construct } from "constructs";
4
- import { AppConfig } from "../../config/AppConfig";
5
- import { CfnOutput } from "aws-cdk-lib";
6
-
7
- export class Ec2Instance extends BaseResource<Instance> {
8
-
9
- constructor(scope: Construct, config: AppConfig) {
10
- super(scope, config);
11
-
12
- const createdAssets = this.createResource(scope);
13
-
14
- this.createOutput<Instance>(scope, createdAssets!);
15
- }
16
-
17
- protected createResource(scope: Construct): Instance[] | null {
18
-
19
- const keyPair = new CfnKeyPair(scope, 'my-key-pair', {
20
- keyName: 'davis-dsylv-amazon-com',
21
- publicKeyMaterial: process.env.KEY_PAIR
22
- });
23
-
24
- const server = new Instance(scope, `my-ec2`, {
25
- vpc: Vpc.fromLookup(scope, 'VPC', {
26
- vpcId: process.env.VPC_PRIMARY_ID,
27
- isDefault: true
28
- }),
29
- instanceType: InstanceType.of(InstanceClass.T3, InstanceSize.SMALL),
30
- machineImage: MachineImage.genericLinux({
31
- 'us-east-1': 'ami-010e83f579f15bba0'
32
- }),
33
- keyName: keyPair.keyName
34
-
35
- });
36
-
37
- return [server];
38
- }
39
- protected createOutput<T>(scope: Construct, createdAssets: T[]): void {
40
-
41
- createdAssets.forEach((asset, index) => {
42
- new CfnOutput(scope, `my-ec2-instance-${index}`, {
43
- value: `Server Name: ${(asset as Instance).instancePrivateDnsName} \n
44
- Private: ${(asset as Instance).instancePrivateIp} \n
45
- Public: ${(asset as Instance).instancePublicIp}`
46
- });
47
- });
48
-
49
-
50
- }
51
-
52
-
1
+ import { Instance, InstanceType, InstanceClass, InstanceSize, MachineImage, Vpc, CfnKeyPair } from "aws-cdk-lib/aws-ec2";
2
+ import { BaseResource } from "../base/baseResource";
3
+ import { Construct } from "constructs";
4
+ import { AppConfig } from "../../config/AppConfig";
5
+ import { CfnOutput } from "aws-cdk-lib";
6
+
7
+ export class Ec2Instance extends BaseResource<Instance> {
8
+
9
+ constructor(scope: Construct, config: AppConfig) {
10
+ super(scope, config);
11
+
12
+ const createdAssets = this.createResource(scope);
13
+
14
+ this.createOutput<Instance>(scope, createdAssets!);
15
+ }
16
+
17
+ protected createResource(scope: Construct): Instance[] | null {
18
+
19
+ const keyPair = new CfnKeyPair(scope, 'my-key-pair', {
20
+ keyName: 'davis-dsylv-amazon-com',
21
+ publicKeyMaterial: process.env.KEY_PAIR
22
+ });
23
+
24
+ const server = new Instance(scope, `my-ec2`, {
25
+ vpc: Vpc.fromLookup(scope, 'VPC', {
26
+ vpcId: process.env.VPC_PRIMARY_ID,
27
+ isDefault: true
28
+ }),
29
+ instanceType: InstanceType.of(InstanceClass.T3, InstanceSize.SMALL),
30
+ machineImage: MachineImage.genericLinux({
31
+ 'us-east-1': 'ami-010e83f579f15bba0'
32
+ }),
33
+ keyName: keyPair.keyName
34
+
35
+ });
36
+
37
+ return [server];
38
+ }
39
+ protected createOutput<T>(scope: Construct, createdAssets: T[]): void {
40
+
41
+ createdAssets.forEach((asset, index) => {
42
+ new CfnOutput(scope, `my-ec2-instance-${index}`, {
43
+ value: `Server Name: ${(asset as Instance).instancePrivateDnsName} \n
44
+ Private: ${(asset as Instance).instancePrivateIp} \n
45
+ Public: ${(asset as Instance).instancePublicIp}`
46
+ });
47
+ });
48
+
49
+
50
+ }
51
+
52
+
53
53
  }
@@ -1,58 +1,58 @@
1
- import * as ecr from "aws-cdk-lib/aws-ecr";
2
- import { BaseResource } from "../base/baseResource";
3
- import { Construct } from "constructs";
4
- import { CfnOutput, RemovalPolicy } from "aws-cdk-lib";
5
- import { BaseResourceProps } from "../../interfaces/BaseResourceProps";
6
-
7
- export class TsgECR extends BaseResource<ecr.Repository> {
8
-
9
- constructor(props: BaseResourceProps) {
10
-
11
- super(props.scope, props.config);
12
-
13
- const repos = this.createResource(props.scope);
14
-
15
- this.createdResources = [...repos as []];
16
-
17
- this.createOutput(props.scope, this.createdResources);
18
- }
19
-
20
- protected createResource(scope: Construct): ecr.Repository[] | null {
21
-
22
- const ecrRepo = new ecr.Repository(scope,
23
- `${this.config.AppName}-repository`,
24
- {
25
- repositoryName: `${this.config.AppName}-repository`,
26
- removalPolicy: RemovalPolicy.DESTROY,
27
- autoDeleteImages: true,
28
- });
29
-
30
- const rule: ecr.LifecycleRule = {
31
- description: 'Image Rentention',
32
- maxImageCount: 20
33
- };
34
-
35
- ecrRepo.addLifecycleRule(rule);
36
-
37
- if (ecrRepo instanceof ecr.Repository) {
38
- return [ecrRepo];
39
- }
40
-
41
- return null;
42
- }
43
-
44
- protected createOutput<Repository>(scope: Construct, createdAssets: Repository[]): void {
45
-
46
- createdAssets.forEach((x, idx) => {
47
-
48
- new CfnOutput(scope, `respository-${idx}`, {
49
- value: `Name: ${(x as ecr.Repository).repositoryName}\n
50
- Url: ${(x as ecr.Repository).repositoryUri}`
51
- });
52
- });
53
- }
54
-
55
-
56
-
57
-
1
+ import * as ecr from "aws-cdk-lib/aws-ecr";
2
+ import { BaseResource } from "../base/baseResource";
3
+ import { Construct } from "constructs";
4
+ import { CfnOutput, RemovalPolicy } from "aws-cdk-lib";
5
+ import { BaseResourceProps } from "../../interfaces/BaseResourceProps";
6
+
7
+ export class TsgECR extends BaseResource<ecr.Repository> {
8
+
9
+ constructor(props: BaseResourceProps) {
10
+
11
+ super(props.scope, props.config);
12
+
13
+ const repos = this.createResource(props.scope);
14
+
15
+ this.createdResources = [...repos as []];
16
+
17
+ this.createOutput(props.scope, this.createdResources);
18
+ }
19
+
20
+ protected createResource(scope: Construct): ecr.Repository[] | null {
21
+
22
+ const ecrRepo = new ecr.Repository(scope,
23
+ `${this.config.AppName}-repository`,
24
+ {
25
+ repositoryName: `${this.config.AppName}-repository`,
26
+ removalPolicy: RemovalPolicy.DESTROY,
27
+ autoDeleteImages: true,
28
+ });
29
+
30
+ const rule: ecr.LifecycleRule = {
31
+ description: 'Image Rentention',
32
+ maxImageCount: 20
33
+ };
34
+
35
+ ecrRepo.addLifecycleRule(rule);
36
+
37
+ if (ecrRepo instanceof ecr.Repository) {
38
+ return [ecrRepo];
39
+ }
40
+
41
+ return null;
42
+ }
43
+
44
+ protected createOutput<Repository>(scope: Construct, createdAssets: Repository[]): void {
45
+
46
+ createdAssets.forEach((x, idx) => {
47
+
48
+ new CfnOutput(scope, `respository-${idx}`, {
49
+ value: `Name: ${(x as ecr.Repository).repositoryName}\n
50
+ Url: ${(x as ecr.Repository).repositoryUri}`
51
+ });
52
+ });
53
+ }
54
+
55
+
56
+
57
+
58
58
  }