p6-cdk-namer 0.9.0 → 0.9.1

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 (160) hide show
  1. package/.jsii +2 -2
  2. package/bin/visualize.ts +17 -0
  3. package/lib/p6namer.js +1 -1
  4. package/package.json +2 -2
  5. package/src/index.ts +1 -0
  6. package/src/p6namer.p6namer.ts +40 -0
  7. package/src/p6namer.ts +41 -0
  8. package/test/p6-namer.test.ts +23 -0
  9. package/tsconfig.json +35 -0
  10. package/.github/pull_request_template.md +0 -1
  11. package/.github/workflows/auto-approve.yml +0 -21
  12. package/.github/workflows/build.yml +0 -205
  13. package/.github/workflows/pull-request-lint.yml +0 -28
  14. package/.github/workflows/release.yml +0 -313
  15. package/.github/workflows/upgrade-main.yml +0 -91
  16. package/assets/bundle.css +0 -4
  17. package/assets/bundle.css.map +0 -1
  18. package/assets/cy-elements.json +0 -1
  19. package/assets/cy-styles.json +0 -1
  20. package/assets/diagram.dot +0 -100
  21. package/assets/diagram.png +0 -0
  22. package/assets/icons/aws/Resource/Res_Compute/Res_48_Dark/Res_Amazon-EC2_A1-Instance_48_Dark.png +0 -0
  23. package/assets/icons/aws/Resource/Res_Compute/Res_48_Dark/Res_Amazon-EC2_C4-Instance_48_Dark.png +0 -0
  24. package/assets/icons/aws/Resource/Res_Compute/Res_48_Dark/Res_Amazon-EC2_C5-Instance_48_Dark.png +0 -0
  25. package/assets/icons/aws/Resource/Res_Compute/Res_48_Dark/Res_Amazon-EC2_C5n-Instance_48_Dark.png +0 -0
  26. package/assets/icons/aws/Resource/Res_Compute/Res_48_Dark/Res_Amazon-EC2_C6g-Instance_48_Dark.png +0 -0
  27. package/assets/icons/aws/Resource/Res_Compute/Res_48_Dark/Res_Amazon-EC2_D2-Instance_48_Dark.png +0 -0
  28. package/assets/icons/aws/Resource/Res_Compute/Res_48_Dark/Res_Amazon-EC2_D3-Instance_48_Dark.png +0 -0
  29. package/assets/icons/aws/Resource/Res_Compute/Res_48_Dark/Res_Amazon-EC2_D3en-Instance_48_Dark.png +0 -0
  30. package/assets/icons/aws/Resource/Res_Compute/Res_48_Dark/Res_Amazon-EC2_DB-Instance_48_Dark.png +0 -0
  31. package/assets/icons/aws/Resource/Res_Compute/Res_48_Dark/Res_Amazon-EC2_F1-Instance_48_Dark.png +0 -0
  32. package/assets/icons/aws/Resource/Res_Compute/Res_48_Dark/Res_Amazon-EC2_G3-Instance_48_Dark.png +0 -0
  33. package/assets/icons/aws/Resource/Res_Compute/Res_48_Dark/Res_Amazon-EC2_G4ad-Instance_48_Dark.png +0 -0
  34. package/assets/icons/aws/Resource/Res_Compute/Res_48_Dark/Res_Amazon-EC2_H1-Instance_48_Dark.png +0 -0
  35. package/assets/icons/aws/Resource/Res_Compute/Res_48_Dark/Res_Amazon-EC2_I3-Instance_48_Dark.png +0 -0
  36. package/assets/icons/aws/Resource/Res_Compute/Res_48_Dark/Res_Amazon-EC2_Instance_48_Dark.png +0 -0
  37. package/assets/icons/aws/Resource/Res_Compute/Res_48_Dark/Res_Amazon-EC2_Instance_48_Dark_gen.png +0 -0
  38. package/assets/icons/aws/Resource/Res_Compute/Res_48_Dark/Res_Amazon-EC2_M4-Instance_48_Dark.png +0 -0
  39. package/assets/icons/aws/Resource/Res_Compute/Res_48_Dark/Res_Amazon-EC2_M5-Instance_48_Dark.png +0 -0
  40. package/assets/icons/aws/Resource/Res_Compute/Res_48_Dark/Res_Amazon-EC2_M5a-Instance_48_Dark.png +0 -0
  41. package/assets/icons/aws/Resource/Res_Compute/Res_48_Dark/Res_Amazon-EC2_M5n-Instance_48_Dark.png +0 -0
  42. package/assets/icons/aws/Resource/Res_Compute/Res_48_Dark/Res_Amazon-EC2_M6g-Instance_48_Dark.png +0 -0
  43. package/assets/icons/aws/Resource/Res_Compute/Res_48_Dark/Res_Amazon-EC2_Mac-Instance_48_Dark.png +0 -0
  44. package/assets/icons/aws/Resource/Res_Compute/Res_48_Dark/Res_Amazon-EC2_P2-Instance_48_Dark.png +0 -0
  45. package/assets/icons/aws/Resource/Res_Compute/Res_48_Dark/Res_Amazon-EC2_P3-Instance_48_Dark.png +0 -0
  46. package/assets/icons/aws/Resource/Res_Compute/Res_48_Dark/Res_Amazon-EC2_P3dn-Instance_48_Dark.png +0 -0
  47. package/assets/icons/aws/Resource/Res_Compute/Res_48_Dark/Res_Amazon-EC2_P4-Instance_48_Dark.png +0 -0
  48. package/assets/icons/aws/Resource/Res_Compute/Res_48_Dark/Res_Amazon-EC2_P4d-Instance_48_Dark.png +0 -0
  49. package/assets/icons/aws/Resource/Res_Compute/Res_48_Dark/Res_Amazon-EC2_R4-Instance_48_Dark.png +0 -0
  50. package/assets/icons/aws/Resource/Res_Compute/Res_48_Dark/Res_Amazon-EC2_R5-Instance_48_Dark.png +0 -0
  51. package/assets/icons/aws/Resource/Res_Compute/Res_48_Dark/Res_Amazon-EC2_R5a-Instance_48_Dark.png +0 -0
  52. package/assets/icons/aws/Resource/Res_Compute/Res_48_Dark/Res_Amazon-EC2_R5n-Instance_48_Dark.png +0 -0
  53. package/assets/icons/aws/Resource/Res_Compute/Res_48_Dark/Res_Amazon-EC2_R6g-Instance_48_Dark.png +0 -0
  54. package/assets/icons/aws/Resource/Res_Compute/Res_48_Dark/Res_Amazon-EC2_T2-Instance_48_Dark.png +0 -0
  55. package/assets/icons/aws/Resource/Res_Compute/Res_48_Dark/Res_Amazon-EC2_T3-Instance_48_Dark.png +0 -0
  56. package/assets/icons/aws/Resource/Res_Compute/Res_48_Dark/Res_Amazon-EC2_T3a-Instance_48_Dark.png +0 -0
  57. package/assets/icons/aws/Resource/Res_Compute/Res_48_Dark/Res_Amazon-EC2_T4g-Instance_48_Dark.png +0 -0
  58. package/assets/icons/aws/Resource/Res_Compute/Res_48_Dark/Res_Amazon-EC2_Trainium-Instance_48_Dark.png +0 -0
  59. package/assets/icons/aws/Resource/Res_Compute/Res_48_Dark/Res_Amazon-EC2_X1-Instance_48_Dark.png +0 -0
  60. package/assets/icons/aws/Resource/Res_Compute/Res_48_Dark/Res_Amazon-EC2_X1e-Instance_48_Dark.png +0 -0
  61. package/assets/icons/aws/Resource/Res_Containers/Res_48_Dark/Res_Amazon-Elastic-Container-Service_Container-1_48_Dark_gen.png +0 -0
  62. package/assets/icons/aws/Resource/Res_Containers/Res_48_Dark/Res_Amazon-Elastic-Container-Service_Service_48_Dark_gen.png +0 -0
  63. package/assets/icons/aws/Resource/Res_Containers/Res_48_Dark/Res_Amazon-Elastic-Container-Service_Task_48_Dark_gen.png +0 -0
  64. package/assets/icons/aws/Resource/Res_Machine-Learning/Res_48_Dark/Res_Amazon-Sagemaker_Model_48_Dark_gen.png +0 -0
  65. package/assets/icons/aws/Resource/Res_Management-Governance/Res_48_Dark/Res_AWS-System-Manager_Maintenance-Windows_48_Dark_gen.png +0 -0
  66. package/assets/icons/aws/Resource/Res_Management-Governance/Res_48_Dark/Res_AWS-Systems-Manager_Parameter-Store_48_Dark.png +0 -0
  67. package/assets/icons/aws/Resource/Res_Management-Governance/Res_48_Dark/Res_Amazon-Cloudwatch_Logs_48_Dark_gen.png +0 -0
  68. package/assets/icons/aws/Resource/Res_Networking-and-Content-Delivery/Res_48_Dark/Res_Amazon-Route-53-Hosted-Zone_48_Dark_gen.png +0 -0
  69. package/assets/icons/aws/Resource/Res_Networking-and-Content-Delivery/Res_48_Dark/Res_Amazon-Route-53_Route-Table_48_Dark_gen.png +0 -0
  70. package/assets/icons/aws/Resource/Res_Networking-and-Content-Delivery/Res_48_Dark/Res_Amazon-VPC_Customer-Gateway_48_Dark_gen.png +0 -0
  71. package/assets/icons/aws/Resource/Res_Networking-and-Content-Delivery/Res_48_Dark/Res_Amazon-VPC_Endpoints_48_Dark_gen.png +0 -0
  72. package/assets/icons/aws/Resource/Res_Networking-and-Content-Delivery/Res_48_Dark/Res_Amazon-VPC_Flow-Logs_48_Dark_gen.png +0 -0
  73. package/assets/icons/aws/Resource/Res_Networking-and-Content-Delivery/Res_48_Dark/Res_Amazon-VPC_Network-Access-Control-List_48_Dark_gen.png +0 -0
  74. package/assets/icons/aws/Resource/Res_Networking-and-Content-Delivery/Res_48_Dark/Res_Amazon-VPC_VPN-Connection_48_Dark_gen.png +0 -0
  75. package/assets/icons/aws/Resource/Res_Networking-and-Content-Delivery/Res_48_Dark/Res_Elastic-Load-Balancing_Application-Load-Balancer_48_Dark_gen.png +0 -0
  76. package/assets/icons/aws/Resource/Res_Security-Identity-and-Compliance/Res_48_Dark/Res_AWS-Identity-Access-Management_Permissions_48_Dark_gen.png +0 -0
  77. package/assets/icons/aws/Resource/Res_Storage/Res_48_Dark/Res_Amazon-Elastic-Block-Store_Volume_48_Dark_gen.png +0 -0
  78. package/assets/icons/aws/Service/Arch_Analytics/Arch_64/Arch_AWS-Glue_64@5x.png +0 -0
  79. package/assets/icons/aws/Service/Arch_Analytics/Arch_64/Arch_Amazon-Elasticsearch-Service_64@5x.png +0 -0
  80. package/assets/icons/aws/Service/Arch_Analytics/Arch_64/Arch_Amazon-Kinesis_64@5x.png +0 -0
  81. package/assets/icons/aws/Service/Arch_App-Integration/Arch_64/Arch_AWS-Simple-Notification-Service_64@5x.png +0 -0
  82. package/assets/icons/aws/Service/Arch_App-Integration/Arch_64/Arch_AWS-Simple-Queue-Service_64@5x.png +0 -0
  83. package/assets/icons/aws/Service/Arch_App-Integration/Arch_64/Arch_AWS-Step-Functions_64@5x.png +0 -0
  84. package/assets/icons/aws/Service/Arch_App-Integration/Arch_64/Arch_Amazon-EventBridge_64@5x.png +0 -0
  85. package/assets/icons/aws/Service/Arch_Business-Applications/64/Arch_Amazon-Connect_64@5x.png +0 -0
  86. package/assets/icons/aws/Service/Arch_Compute/64/Arch_AWS-Elastic-Beanstalk_64@5x.png +0 -0
  87. package/assets/icons/aws/Service/Arch_Compute/64/Arch_AWS-Lambda_64@5x.png +0 -0
  88. package/assets/icons/aws/Service/Arch_Compute/64/Arch_Amazon-EC2-Auto-Scaling_64@5x.png +0 -0
  89. package/assets/icons/aws/Service/Arch_Compute/64/Arch_Amazon-Elastic-Container-Kubernetes_64@5x.png +0 -0
  90. package/assets/icons/aws/Service/Arch_Compute/64/Arch_Amazon-Elastic-Container-Registry_64@5x.png +0 -0
  91. package/assets/icons/aws/Service/Arch_Compute/64/Arch_Amazon-Elastic-Container-Service_64@5x.png +0 -0
  92. package/assets/icons/aws/Service/Arch_Cost-Management/64/Arch_AWS-Budgets_64@5x.png +0 -0
  93. package/assets/icons/aws/Service/Arch_Customer-Enagagement/64/Arch_AWS-Simple-Email-Service_64@5x.png +0 -0
  94. package/assets/icons/aws/Service/Arch_Database/64/Arch_Amazon-DynamoDB_64@5x.png +0 -0
  95. package/assets/icons/aws/Service/Arch_Database/64/Arch_Amazon-Neptune_64@5x.png +0 -0
  96. package/assets/icons/aws/Service/Arch_Database/64/Arch_Amazon-RDS_64@5x.png +0 -0
  97. package/assets/icons/aws/Service/Arch_Database/64/Arch_Amazon-Redshift_64@5x.png +0 -0
  98. package/assets/icons/aws/Service/Arch_Developer- Tools/64/Arch_AWS-CodeCommit_64@5x.png +0 -0
  99. package/assets/icons/aws/Service/Arch_Developer- Tools/64/Arch_AWS-CodeDeploy_64@5x.png +0 -0
  100. package/assets/icons/aws/Service/Arch_Developer- Tools/64/Arch_AWS-CodePipeline_64@5x.png +0 -0
  101. package/assets/icons/aws/Service/Arch_Developer- Tools/64/Arch_Amazon-CodeBuild_64@5x.png +0 -0
  102. package/assets/icons/aws/Service/Arch_Game-Tech/64/Arch_Amazon-GameLift_64@5x.png +0 -0
  103. package/assets/icons/aws/Service/Arch_Internet-of-Things/64/Arch_AWS-IoT-Greengrass-Core_64@5x.png +0 -0
  104. package/assets/icons/aws/Service/Arch_Machine-Learning/64/Arch_Amazon-Lex_64@5x.png +0 -0
  105. package/assets/icons/aws/Service/Arch_Management-Governance/64/Arch_AWS-CloudFormation_64@5x.png +0 -0
  106. package/assets/icons/aws/Service/Arch_Management-Governance/64/Arch_AWS-Config_64@5x.png +0 -0
  107. package/assets/icons/aws/Service/Arch_Management-Governance/64/Arch_AWS-OpsWorks_64@5x.png +0 -0
  108. package/assets/icons/aws/Service/Arch_Management-Governance/64/Arch_AWS-Service-Catalog_64@5x.png +0 -0
  109. package/assets/icons/aws/Service/Arch_Management-Governance/64/Arch_Amazon-CloudWatch_64@5x.png +0 -0
  110. package/assets/icons/aws/Service/Arch_Mobile/64/Arch_AWS-Amplify-Console_64@5x.png +0 -0
  111. package/assets/icons/aws/Service/Arch_Mobile/64/Arch_Amazon-Pinpoint_64@5x.png +0 -0
  112. package/assets/icons/aws/Service/Arch_Networking-Content/64/Arch_AWS-Global-Accelerator_64@5x.png +0 -0
  113. package/assets/icons/aws/Service/Arch_Networking-Content/64/Arch_AWS-Transit-Gateway_64@5x.png +0 -0
  114. package/assets/icons/aws/Service/Arch_Networking-Content/64/Arch_AWS-VPN_64@5x.png +0 -0
  115. package/assets/icons/aws/Service/Arch_Networking-Content/64/Arch_Amazon-API-Gateway_64@5x.png +0 -0
  116. package/assets/icons/aws/Service/Arch_Networking-Content/64/Arch_Amazon-CloudFront_64@5x.png +0 -0
  117. package/assets/icons/aws/Service/Arch_Networking-Content/64/Arch_Amazon-Virtual-Private-Cloud_64@5x.png +0 -0
  118. package/assets/icons/aws/Service/Arch_Networking-Content/64/Arch_Elastic-Load-Balancing_64@5x.png +0 -0
  119. package/assets/icons/aws/Service/Arch_Security-Identity-Compliance/64/Arch_AWS-Artifact_64@5x.png +0 -0
  120. package/assets/icons/aws/Service/Arch_Security-Identity-Compliance/64/Arch_AWS-Certificate-Manager_64@5x.png +0 -0
  121. package/assets/icons/aws/Service/Arch_Security-Identity-Compliance/64/Arch_AWS-Identity-and-Access-Management_64@5x.png +0 -0
  122. package/assets/icons/aws/Service/Arch_Security-Identity-Compliance/64/Arch_AWS-Key-Management-Services_64@5x.png +0 -0
  123. package/assets/icons/aws/Service/Arch_Security-Identity-Compliance/64/Arch_AWS-Secrets-Manager_64@5x.png +0 -0
  124. package/assets/icons/aws/Service/Arch_Security-Identity-Compliance/64/Arch_AWS-WAF_64@5x.png +0 -0
  125. package/assets/icons/aws/Service/Arch_Security-Identity-Compliance/64/Arch_Amazon-Cognito_64.png +0 -0
  126. package/assets/icons/aws/Service/Arch_Security-Identity-Compliance/64/Arch_Amazon-Inspector_64@5x.png +0 -0
  127. package/assets/icons/aws/Service/Arch_Security-Identity-Compliance/64/Arch_Amazon-Macie_64@5x.png +0 -0
  128. package/assets/icons/aws/Service/Arch_Storage/64/Arch_AWS-Backup_64@5x.png +0 -0
  129. package/assets/icons/aws/Service/Arch_Storage/64/Arch_AWS-Storage-Gateway_64@5x.png +0 -0
  130. package/assets/icons/aws/Service/Arch_Storage/64/Arch_Amazon-Elastic-File-System_64@5x.png +0 -0
  131. package/assets/icons/aws/Service/Arch_Storage/64/Arch_Amazon-S3-Standard_64@5x.png +0 -0
  132. package/assets/icons/aws/cloudwatch_metric_filter.png +0 -0
  133. package/assets/icons/aws/security_group.png +0 -0
  134. package/assets/index.html +0 -1
  135. package/assets/js/app.8e9fe77f.js +0 -39504
  136. package/assets/js/app.8e9fe77f.js.map +0 -1
  137. package/cdk.out/VisualizeStack.assets.json +0 -45
  138. package/cdk.out/VisualizeStack.template.json +0 -682
  139. package/cdk.out/asset.4583febb4fc03a1ff3d1375f3436b530bd38a188e3e2e8e8b3f3138176237c90/index.js +0 -1
  140. package/cdk.out/asset.4dc48ffba382f93077a1e6824599bbd4ceb6f91eb3d9442eca3b85bdb1a20b1e/cfn-response.js +0 -1
  141. package/cdk.out/asset.4dc48ffba382f93077a1e6824599bbd4ceb6f91eb3d9442eca3b85bdb1a20b1e/consts.js +0 -1
  142. package/cdk.out/asset.4dc48ffba382f93077a1e6824599bbd4ceb6f91eb3d9442eca3b85bdb1a20b1e/framework.js +0 -3
  143. package/cdk.out/asset.4dc48ffba382f93077a1e6824599bbd4ceb6f91eb3d9442eca3b85bdb1a20b1e/outbound.js +0 -1
  144. package/cdk.out/asset.4dc48ffba382f93077a1e6824599bbd4ceb6f91eb3d9442eca3b85bdb1a20b1e/util.js +0 -1
  145. package/cdk.out/cdk.out +0 -1
  146. package/cdk.out/manifest.json +0 -157
  147. package/cdk.out/tree.json +0 -490
  148. package/coverage/clover.xml +0 -25
  149. package/coverage/coverage-final.json +0 -3
  150. package/coverage/lcov-report/base.css +0 -224
  151. package/coverage/lcov-report/block-navigation.js +0 -87
  152. package/coverage/lcov-report/favicon.png +0 -0
  153. package/coverage/lcov-report/index.html +0 -131
  154. package/coverage/lcov-report/index.ts.html +0 -88
  155. package/coverage/lcov-report/p6namer.ts.html +0 -208
  156. package/coverage/lcov-report/prettify.css +0 -1
  157. package/coverage/lcov-report/prettify.js +0 -2
  158. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  159. package/coverage/lcov-report/sorter.js +0 -196
  160. package/coverage/lcov.info +0 -33
package/.jsii CHANGED
@@ -3978,6 +3978,6 @@
3978
3978
  "symbolId": "src/p6namer:P6Namer"
3979
3979
  }
3980
3980
  },
3981
- "version": "0.9.0",
3982
- "fingerprint": "dXpbY/B84QIDoNASYWmy9t8yoNdX7avcGo0wnSGWDJs="
3981
+ "version": "0.9.1",
3982
+ "fingerprint": "HrZ97l4NJ7xy0DkOQSmBNocqx6IjOU1X/zpCOW1/Jas="
3983
3983
  }
@@ -0,0 +1,17 @@
1
+ import type { Construct } from 'constructs'
2
+ import * as cdk from 'aws-cdk-lib'
3
+ import { P6Namer } from '../src/index'
4
+
5
+ class VisualizeStack extends cdk.Stack {
6
+ constructor(scope: Construct, id: string) {
7
+ super(scope, id)
8
+
9
+ new P6Namer(this, 'MyP6Namer', {
10
+ accountAlias: 'theAlias',
11
+ })
12
+ }
13
+ }
14
+
15
+ const app = new cdk.App()
16
+ new VisualizeStack(app, 'VisualizeStack')
17
+ app.synth()
package/lib/p6namer.js CHANGED
@@ -31,7 +31,7 @@ const lambdajs = __importStar(require("aws-cdk-lib/aws-lambda-nodejs"));
31
31
  const cr = __importStar(require("aws-cdk-lib/custom-resources"));
32
32
  const floyd = __importStar(require("cdk-iam-floyd"));
33
33
  class P6Namer extends cdk.Resource {
34
- static [JSII_RTTI_SYMBOL_1] = { fqn: "p6-cdk-namer.P6Namer", version: "0.9.0" };
34
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "p6-cdk-namer.P6Namer", version: "0.9.1" };
35
35
  constructor(scope, id, props) {
36
36
  super(scope, id);
37
37
  const policy = new floyd.Statement.Iam().allow().toCreateAccountAlias();
package/package.json CHANGED
@@ -80,7 +80,7 @@
80
80
  "main": "lib/index.js",
81
81
  "types": "src/index.d.ts",
82
82
  "license": "Apache-2.0",
83
- "version": "0.9.0",
83
+ "version": "0.9.1",
84
84
  "packageManager": "pnpm@9.12.2+sha512.22721b3a11f81661ae1ec68ce1a7b879425a1ca5b991c975b074ac220b187ce56c708fe5db69f4c962c989452eee76c82877f4ee80f474cebd61ee13461b6228",
85
85
  "jsii": {
86
86
  "outdir": "dist",
@@ -109,4 +109,4 @@
109
109
  }
110
110
  }
111
111
  }
112
- }
112
+ }
package/src/index.ts ADDED
@@ -0,0 +1 @@
1
+ export * from './p6namer'
@@ -0,0 +1,40 @@
1
+ import type { Callback, Context, Handler } from 'aws-lambda'
2
+ import * as AWS from 'aws-sdk'
3
+
4
+ const iam: AWS.IAM = new AWS.IAM()
5
+
6
+ /**
7
+ *
8
+ */
9
+ function p6_namer_iam_account_alias(alias: string): void {
10
+ const params: AWS.IAM.CreateAccountAliasRequest = {
11
+ AccountAlias: alias,
12
+ }
13
+
14
+ iam.createAccountAlias(params, (err: any, data: any) => {
15
+ if (err) {
16
+ console.log(err, err.stack)
17
+ }
18
+ else {
19
+ console.log(data)
20
+ }
21
+ })
22
+ }
23
+
24
+ /**
25
+ *
26
+ * @param event
27
+ * @param _context
28
+ * @param _callback
29
+ */
30
+ const handler: Handler = (
31
+ event: AWS.IAM.CreateAccountAliasRequest,
32
+ _context: Context,
33
+ _callback: Callback,
34
+ ) => {
35
+ console.log({ event })
36
+
37
+ p6_namer_iam_account_alias(event.AccountAlias)
38
+ }
39
+
40
+ export { handler }
package/src/p6namer.ts ADDED
@@ -0,0 +1,41 @@
1
+ import type { Construct } from 'constructs'
2
+ import * as cdk from 'aws-cdk-lib'
3
+ import * as lambda from 'aws-cdk-lib/aws-lambda'
4
+ import * as lambdajs from 'aws-cdk-lib/aws-lambda-nodejs'
5
+ import * as cr from 'aws-cdk-lib/custom-resources'
6
+ import * as floyd from 'cdk-iam-floyd'
7
+
8
+ export interface IP6NamerProps {
9
+ accountAlias: string
10
+ }
11
+
12
+ export class P6Namer extends cdk.Resource {
13
+ constructor(scope: Construct, id: string, props: IP6NamerProps) {
14
+ super(scope, id)
15
+
16
+ const policy = new floyd.Statement.Iam().allow().toCreateAccountAlias()
17
+
18
+ const onEvent = new lambdajs.NodejsFunction(this, 'p6namer', {
19
+ runtime: lambda.Runtime.NODEJS_20_X,
20
+ timeout: cdk.Duration.seconds(2),
21
+ tracing: lambda.Tracing.ACTIVE,
22
+ bundling: {
23
+ minify: true,
24
+ externalModules: ['aws-sdk'],
25
+ },
26
+ })
27
+
28
+ onEvent.addToRolePolicy(policy)
29
+
30
+ const provider = new cr.Provider(this, 'P6Namer/Provider', {
31
+ onEventHandler: onEvent,
32
+ })
33
+
34
+ new cdk.CustomResource(this, 'P6Namer/CR', {
35
+ serviceToken: provider.serviceToken,
36
+ properties: {
37
+ AccountAlias: props.accountAlias,
38
+ },
39
+ })
40
+ }
41
+ }
@@ -0,0 +1,23 @@
1
+ import * as cdk from 'aws-cdk-lib'
2
+ import { Template } from 'aws-cdk-lib/assertions'
3
+
4
+ import { P6Namer } from '../src'
5
+
6
+ it('p6Namer components', () => {
7
+ // GIVEN
8
+ const app = new cdk.App()
9
+ const stack = new cdk.Stack(app, 'MyStack')
10
+
11
+ // WHEN
12
+ new P6Namer(stack, 'p6-cdk-namer', {
13
+ accountAlias: 'theAlias',
14
+ })
15
+
16
+ // THEN
17
+ const template = Template.fromStack(stack)
18
+ template.hasResourceProperties('AWS::Lambda::Function', {
19
+ Handler: 'index.handler',
20
+ Runtime: 'nodejs20.x',
21
+ })
22
+ template.resourceCountIs('AWS::Lambda::Function', 2) // Custom Resource Handler counts too
23
+ })
package/tsconfig.json ADDED
@@ -0,0 +1,35 @@
1
+ {
2
+ "compilerOptions": {
3
+ "rootDir": "src",
4
+ "outDir": "lib",
5
+ "alwaysStrict": true,
6
+ "declaration": true,
7
+ "esModuleInterop": true,
8
+ "experimentalDecorators": true,
9
+ "inlineSourceMap": true,
10
+ "inlineSources": true,
11
+ "lib": [
12
+ "es2019"
13
+ ],
14
+ "module": "CommonJS",
15
+ "noEmitOnError": false,
16
+ "noFallthroughCasesInSwitch": true,
17
+ "noImplicitAny": true,
18
+ "noImplicitReturns": true,
19
+ "noImplicitThis": true,
20
+ "noUnusedLocals": true,
21
+ "noUnusedParameters": true,
22
+ "resolveJsonModule": true,
23
+ "strict": true,
24
+ "strictNullChecks": true,
25
+ "strictPropertyInitialization": true,
26
+ "stripInternal": true,
27
+ "target": "ES2019"
28
+ },
29
+ "include": [
30
+ "src/**/*.ts"
31
+ ],
32
+ "exclude": [
33
+ "cdk.out"
34
+ ]
35
+ }
@@ -1 +0,0 @@
1
- Fixes #
@@ -1,21 +0,0 @@
1
- # ~~ Generated by projen. To modify, edit .projenrc.js and run "npx projen".
2
-
3
- name: auto-approve
4
- on:
5
- pull_request_target:
6
- types:
7
- - labeled
8
- - opened
9
- - synchronize
10
- - reopened
11
- - ready_for_review
12
- jobs:
13
- approve:
14
- runs-on: ubuntu-latest
15
- permissions:
16
- pull-requests: write
17
- if: contains(github.event.pull_request.labels.*.name, 'auto-approve') && (github.event.pull_request.user.login == 'p6m7g8-automation')
18
- steps:
19
- - uses: hmarr/auto-approve-action@v2.1.0
20
- with:
21
- github-token: ${{ secrets.GITHUB_TOKEN }}
@@ -1,205 +0,0 @@
1
- # ~~ Generated by projen. To modify, edit .projenrc.js and run "npx projen".
2
-
3
- name: build
4
- on:
5
- pull_request: {}
6
- workflow_dispatch: {}
7
- jobs:
8
- build:
9
- runs-on: ubuntu-latest
10
- permissions:
11
- contents: write
12
- outputs:
13
- self_mutation_happened: ${{ steps.self_mutation.outputs.self_mutation_happened }}
14
- env:
15
- CI: "true"
16
- steps:
17
- - name: Checkout
18
- uses: actions/checkout@v2
19
- with:
20
- ref: ${{ github.event.pull_request.head.ref }}
21
- repository: ${{ github.event.pull_request.head.repo.full_name }}
22
- - name: Install dependencies
23
- run: yarn install --check-files
24
- - name: build
25
- run: npx projen build
26
- - name: Upload coverage to Codecov
27
- uses: codecov/codecov-action@v1
28
- with:
29
- directory: coverage
30
- - id: self_mutation
31
- name: Find mutations
32
- run: |-
33
- git add .
34
- git diff --staged --patch --exit-code > .repo.patch || echo "::set-output name=self_mutation_happened::true"
35
- - if: steps.self_mutation.outputs.self_mutation_happened
36
- name: Upload patch
37
- uses: actions/upload-artifact@v2
38
- with:
39
- name: .repo.patch
40
- path: .repo.patch
41
- - name: Fail build on mutation
42
- if: steps.self_mutation.outputs.self_mutation_happened
43
- run: |-
44
- echo "::error::Files were changed during build (see build log). If this was triggered from a fork, you will need to update your branch."
45
- cat .repo.patch
46
- exit 1
47
- - name: Upload artifact
48
- uses: actions/upload-artifact@v2.1.1
49
- with:
50
- name: build-artifact
51
- path: dist
52
- container:
53
- image: jsii/superchain:1-buster-slim-node14
54
- self-mutation:
55
- needs: build
56
- runs-on: ubuntu-latest
57
- permissions:
58
- contents: write
59
- if: always() && needs.build.outputs.self_mutation_happened && !(github.event.pull_request.head.repo.full_name != github.repository)
60
- steps:
61
- - name: Checkout
62
- uses: actions/checkout@v2
63
- with:
64
- token: ${{ secrets.PROJEN_GITHUB_TOKEN }}
65
- ref: ${{ github.event.pull_request.head.ref }}
66
- repository: ${{ github.event.pull_request.head.repo.full_name }}
67
- - name: Download patch
68
- uses: actions/download-artifact@v2
69
- with:
70
- name: .repo.patch
71
- path: ${{ runner.temp }}
72
- - name: Apply patch
73
- run: '[ -s ${{ runner.temp }}/.repo.patch ] && git apply ${{ runner.temp }}/.repo.patch || echo "Empty patch. Skipping."'
74
- - name: Set git identity
75
- run: |-
76
- git config user.name "github-actions"
77
- git config user.email "github-actions@github.com"
78
- - name: Push changes
79
- run: |2-
80
- git add .
81
- git commit -s -m "chore: self mutation"
82
- git push origin HEAD:${{ github.event.pull_request.head.ref }}
83
- package-js:
84
- needs: build
85
- runs-on: ubuntu-latest
86
- permissions: {}
87
- if: "! needs.build.outputs.self_mutation_happened"
88
- steps:
89
- - uses: actions/setup-node@v2
90
- with:
91
- node-version: 14.x
92
- - name: Download build artifacts
93
- uses: actions/download-artifact@v2
94
- with:
95
- name: build-artifact
96
- path: dist
97
- - name: Prepare Repository
98
- run: mv dist .repo
99
- - name: Install Dependencies
100
- run: cd .repo && yarn install --check-files --frozen-lockfile
101
- - name: Create js artifact
102
- run: cd .repo && npx projen package:js
103
- - name: Collect js Artifact
104
- run: mv .repo/dist dist
105
- package-java:
106
- needs: build
107
- runs-on: ubuntu-latest
108
- permissions: {}
109
- if: "! needs.build.outputs.self_mutation_happened"
110
- steps:
111
- - uses: actions/setup-java@v2
112
- with:
113
- distribution: temurin
114
- java-version: 11.x
115
- - uses: actions/setup-node@v2
116
- with:
117
- node-version: 14.x
118
- - name: Download build artifacts
119
- uses: actions/download-artifact@v2
120
- with:
121
- name: build-artifact
122
- path: dist
123
- - name: Prepare Repository
124
- run: mv dist .repo
125
- - name: Install Dependencies
126
- run: cd .repo && yarn install --check-files --frozen-lockfile
127
- - name: Create java artifact
128
- run: cd .repo && npx projen package:java
129
- - name: Collect java Artifact
130
- run: mv .repo/dist dist
131
- package-python:
132
- needs: build
133
- runs-on: ubuntu-latest
134
- permissions: {}
135
- if: "! needs.build.outputs.self_mutation_happened"
136
- steps:
137
- - uses: actions/setup-node@v2
138
- with:
139
- node-version: 14.x
140
- - uses: actions/setup-python@v2
141
- with:
142
- python-version: 3.x
143
- - name: Download build artifacts
144
- uses: actions/download-artifact@v2
145
- with:
146
- name: build-artifact
147
- path: dist
148
- - name: Prepare Repository
149
- run: mv dist .repo
150
- - name: Install Dependencies
151
- run: cd .repo && yarn install --check-files --frozen-lockfile
152
- - name: Create python artifact
153
- run: cd .repo && npx projen package:python
154
- - name: Collect python Artifact
155
- run: mv .repo/dist dist
156
- package-dotnet:
157
- needs: build
158
- runs-on: ubuntu-latest
159
- permissions: {}
160
- if: "! needs.build.outputs.self_mutation_happened"
161
- steps:
162
- - uses: actions/setup-node@v2
163
- with:
164
- node-version: 14.x
165
- - uses: actions/setup-dotnet@v1
166
- with:
167
- dotnet-version: 3.x
168
- - name: Download build artifacts
169
- uses: actions/download-artifact@v2
170
- with:
171
- name: build-artifact
172
- path: dist
173
- - name: Prepare Repository
174
- run: mv dist .repo
175
- - name: Install Dependencies
176
- run: cd .repo && yarn install --check-files --frozen-lockfile
177
- - name: Create dotnet artifact
178
- run: cd .repo && npx projen package:dotnet
179
- - name: Collect dotnet Artifact
180
- run: mv .repo/dist dist
181
- package-go:
182
- needs: build
183
- runs-on: ubuntu-latest
184
- permissions: {}
185
- if: "! needs.build.outputs.self_mutation_happened"
186
- steps:
187
- - uses: actions/setup-node@v2
188
- with:
189
- node-version: 14.x
190
- - uses: actions/setup-go@v2
191
- with:
192
- go-version: ^1.16.0
193
- - name: Download build artifacts
194
- uses: actions/download-artifact@v2
195
- with:
196
- name: build-artifact
197
- path: dist
198
- - name: Prepare Repository
199
- run: mv dist .repo
200
- - name: Install Dependencies
201
- run: cd .repo && yarn install --check-files --frozen-lockfile
202
- - name: Create go artifact
203
- run: cd .repo && npx projen package:go
204
- - name: Collect go Artifact
205
- run: mv .repo/dist dist
@@ -1,28 +0,0 @@
1
- # ~~ Generated by projen. To modify, edit .projenrc.js and run "npx projen".
2
-
3
- name: pull-request-lint
4
- on:
5
- pull_request_target:
6
- types:
7
- - labeled
8
- - opened
9
- - synchronize
10
- - reopened
11
- - ready_for_review
12
- - edited
13
- jobs:
14
- validate:
15
- name: Validate PR title
16
- runs-on: ubuntu-latest
17
- permissions:
18
- pull-requests: write
19
- steps:
20
- - uses: amannn/action-semantic-pull-request@v3.4.6
21
- env:
22
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
23
- with:
24
- types: |-
25
- feat
26
- fix
27
- chore
28
- requireScope: false