konokenj.cdk-api-mcp-server 0.28.0__py3-none-any.whl → 0.30.0__py3-none-any.whl

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.

Potentially problematic release.


This version of konokenj.cdk-api-mcp-server might be problematic. Click here for more details.

Files changed (45) hide show
  1. cdk_api_mcp_server/__about__.py +1 -1
  2. cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/aws-amplify-alpha/README.md +71 -0
  3. cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/integ-tests-alpha/README.md +1 -1
  4. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigatewayv2/integ.api-dualstack.ts +4 -3
  5. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigatewayv2/integ.api.ts +4 -2
  6. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigatewayv2/integ.stage.ts +20 -7
  7. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigatewayv2-authorizers/integ.iam.ts +38 -34
  8. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigatewayv2-integrations/integ.sqs.ts +71 -58
  9. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-backup/README.md +2 -0
  10. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-backup/integ.backup.ts +12 -1
  11. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudfront/README.md +18 -1
  12. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudwatch/README.md +32 -0
  13. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudwatch/integ.alarm-and-dashboard.ts +1 -0
  14. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudwatch/integ.math-alarm-and-dashboard.ts +4 -0
  15. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-codedeploy/integ.deployment-config.ts +4 -15
  16. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-codedeploy/integ.deployment-group.ts +218 -40
  17. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-codepipeline-actions/integ.pipeline-elastic-beanstalk-deploy.ts +1 -1
  18. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ec2/README.md +13 -0
  19. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ec2/integ.client-vpn-endpoint-client-route-enforcement.ts +68 -0
  20. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-eks/README.md +83 -83
  21. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-eks/integ.eks-al2023-nodegroup.ts +1 -2
  22. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-eks/integ.fargate-cluster.ts +1 -3
  23. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-eks/integ.helm-chart-logging.ts +55 -0
  24. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-kms/README.md +4 -3
  25. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-kms/integ.alias-from-alias-name.ts +26 -0
  26. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda/README.md +15 -0
  27. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda/integ.log-retention.ts +8 -2
  28. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda-event-sources/README.md +68 -0
  29. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda-event-sources/integ.kafka-schema-registry.ts +186 -0
  30. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-rds/README.md +23 -13
  31. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-rds/integ.cluster-snapshot.ts +3 -71
  32. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-rds/integ.instance-engine-lifecycle-support.ts +53 -0
  33. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3/README.md +16 -0
  34. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3-notifications/integ.bucket-notifications.ts +42 -80
  35. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions-tasks/integ.call-aws-service-cross-region-lambda.ts +97 -0
  36. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions-tasks/integ.start-job-run.ts +51 -106
  37. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/cx-api/FEATURE_FLAGS.md +21 -0
  38. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/cx-api/README.md +14 -0
  39. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/pipelines/README.md +7 -1
  40. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/pipelines/integ.newpipeline-single-publisher.ts +53 -0
  41. {konokenj_cdk_api_mcp_server-0.28.0.dist-info → konokenj_cdk_api_mcp_server-0.30.0.dist-info}/METADATA +2 -2
  42. {konokenj_cdk_api_mcp_server-0.28.0.dist-info → konokenj_cdk_api_mcp_server-0.30.0.dist-info}/RECORD +45 -38
  43. {konokenj_cdk_api_mcp_server-0.28.0.dist-info → konokenj_cdk_api_mcp_server-0.30.0.dist-info}/WHEEL +0 -0
  44. {konokenj_cdk_api_mcp_server-0.28.0.dist-info → konokenj_cdk_api_mcp_server-0.30.0.dist-info}/entry_points.txt +0 -0
  45. {konokenj_cdk_api_mcp_server-0.28.0.dist-info → konokenj_cdk_api_mcp_server-0.30.0.dist-info}/licenses/LICENSE.txt +0 -0
@@ -0,0 +1,97 @@
1
+ import * as cdk from 'aws-cdk-lib';
2
+ import * as lambda from 'aws-cdk-lib/aws-lambda';
3
+ import * as tasks from 'aws-cdk-lib/aws-stepfunctions-tasks';
4
+ import { ExpectedResult, IntegTest, Match } from '@aws-cdk/integ-tests-alpha';
5
+ import * as sfn from 'aws-cdk-lib/aws-stepfunctions';
6
+
7
+ class TestStack extends cdk.Stack {
8
+ public readonly stateMachine: sfn.StateMachine;
9
+ constructor(scope: cdk.App, id: string, props: cdk.StackProps = {}) {
10
+ super(scope, id, props);
11
+ // Create a target Lambda function that returns JSON response
12
+ const targetLambda = new lambda.Function(this, 'TargetLambda', {
13
+ runtime: lambda.Runtime.NODEJS_18_X,
14
+ handler: 'index.handler',
15
+ code: lambda.Code.fromInline(`
16
+ exports.handler = async (event) => {
17
+ console.log('Target Lambda received event:', JSON.stringify(event, null, 2));
18
+
19
+ // Return a JSON response that should be properly serialized
20
+ return {
21
+ statusCode: 200,
22
+ body: {
23
+ status: 'success',
24
+ message: 'Hello from target Lambda',
25
+ receivedData: event
26
+ }
27
+ };
28
+ };
29
+ `),
30
+ description: 'Target Lambda function for CallAwsServiceCrossRegion testing',
31
+ });
32
+
33
+ // Create a cross-region Lambda invoke task using CallAwsServiceCrossRegion
34
+ const crossRegionInvokeTask = tasks.CallAwsServiceCrossRegion.jsonata(this, 'CrossRegionLambdaInvoke', {
35
+ service: 'lambda',
36
+ action: 'invoke',
37
+ region: 'us-east-1',
38
+ parameters: {
39
+ FunctionName: targetLambda.functionArn,
40
+ Payload: JSON.stringify({
41
+ hello: 'world',
42
+ testData: 'reproduction',
43
+ }),
44
+ },
45
+ iamResources: [targetLambda.functionArn],
46
+ iamAction: 'lambda:InvokeFunction',
47
+ });
48
+
49
+ // Create a Step Functions state machine to execute the cross-region task
50
+ this.stateMachine = new sfn.StateMachine(this, 'TestStateMachine', {
51
+ definitionBody: sfn.DefinitionBody.fromChainable(crossRegionInvokeTask),
52
+ timeout: cdk.Duration.minutes(5),
53
+ comment: 'State machine to reproduce issue 34768 - CallAwsServiceCrossRegion byte array bug',
54
+ });
55
+ }
56
+ }
57
+
58
+ const app = new cdk.App({
59
+ postCliContext: {
60
+ '@aws-cdk/aws-lambda:useCdkManagedLogGroup': false,
61
+ '@aws-cdk/aws-lambda:createNewPoliciesWithAddToRolePolicy': false,
62
+ },
63
+ });
64
+
65
+ const stack = new TestStack(app, 'aws-stepfunctions-call-aws-service-cross-region-lambda-integ');
66
+
67
+ const integ = new IntegTest(app, 'IntegTest', {
68
+ testCases: [stack],
69
+ });
70
+
71
+ // Start the Step Functions execution
72
+ const res = integ.assertions.awsApiCall('StepFunctions', 'startExecution', {
73
+ stateMachineArn: stack.stateMachine.stateMachineArn,
74
+ });
75
+
76
+ const executionArn = res.getAttString('executionArn');
77
+
78
+ // Describe the execution to see the output
79
+ const describe = integ.assertions
80
+ .awsApiCall('StepFunctions', 'describeExecution', {
81
+ executionArn,
82
+ })
83
+ .expect(ExpectedResult.objectLike({
84
+ status: 'SUCCEEDED',
85
+ }))
86
+ .waitForAssertions({
87
+ totalTimeout: cdk.Duration.minutes(5),
88
+ interval: cdk.Duration.seconds(10),
89
+ });
90
+
91
+ // Verify that the output contains the expected Lambda response structure as JSON
92
+ // This ensures the response is properly serialized as JSON, not as byte array
93
+ describe.expect(ExpectedResult.objectLike({
94
+ output: Match.stringLikeRegexp('.*"statusCode":200.*"status":"success".*"message":"Hello from target Lambda".*'),
95
+ }));
96
+
97
+ app.synth();
@@ -1,124 +1,69 @@
1
- import * as databrew from 'aws-cdk-lib/aws-databrew';
1
+ import * as path from 'path';
2
+ import * as glue from 'aws-cdk-lib/aws-glue';
2
3
  import * as iam from 'aws-cdk-lib/aws-iam';
3
- import * as s3 from 'aws-cdk-lib/aws-s3';
4
+ import * as assets from 'aws-cdk-lib/aws-s3-assets';
4
5
  import * as sfn from 'aws-cdk-lib/aws-stepfunctions';
5
6
  import * as cdk from 'aws-cdk-lib';
6
- import { GlueDataBrewStartJobRun } from 'aws-cdk-lib/aws-stepfunctions-tasks';
7
+ import { GlueStartJobRun } from 'aws-cdk-lib/aws-stepfunctions-tasks';
8
+ import { IntegTest } from '@aws-cdk/integ-tests-alpha';
7
9
 
8
10
  /*
9
11
  * Stack verification steps:
10
- * * aws stepfunctions start-execution --state-machine-arn <deployed state machine arn> : should return execution arn
11
- * * aws stepfunctions describe-execution --execution-arn <exection-arn generated before> : should return status as SUCCEEDED
12
+ * * aws stepfunctions start-execution --state-machine-arn <deployed state machine arn>
13
+ * * aws stepfunctions describe-execution --execution-arn <execution arn created above>
14
+ * The "describe-execution" call should eventually return status "SUCCEEDED".
15
+ * NOTE: It will take up to 15 minutes for the step function to complete due to the cold start time
16
+ * for AWS Glue, which as of 02/2020, is around 10-15 minutes.
12
17
  */
13
18
 
14
- class GlueDataBrewJobStack extends cdk.Stack {
15
- constructor(scope: cdk.App, id: string, props: cdk.StackProps = {}) {
16
- super(scope, id, props);
17
-
18
- const region = this.region;
19
-
20
- const outputBucket = new s3.Bucket(this, 'JobOutputBucket', {
21
- removalPolicy: cdk.RemovalPolicy.DESTROY,
22
- });
23
-
24
- const role = new iam.Role(this, 'DataBrew Role', {
25
- managedPolicies: [{
26
- managedPolicyArn: 'arn:aws:iam::aws:policy/service-role/AWSGlueDataBrewServiceRole',
27
- }],
28
- path: '/',
29
- assumedBy: new iam.ServicePrincipal('databrew.amazonaws.com'),
30
- inlinePolicies: {
31
- DataBrewPolicy: iam.PolicyDocument.fromJson({
32
- Statement: [{
33
- Effect: 'Allow',
34
- Action: [
35
- 's3:GetObject',
36
- 's3:PutObject',
37
- 's3:DeleteObject',
38
- 's3:ListBucket',
39
- ],
40
- Resource: [
41
- `arn:aws:s3:::databrew-public-datasets-${region}/*`,
42
- `arn:aws:s3:::databrew-public-datasets-${region}`,
43
- `${outputBucket.bucketArn}/*`,
44
- `${outputBucket.bucketArn}`,
45
- ],
46
- }],
47
- }),
48
- },
49
- });
19
+ const app = new cdk.App();
20
+ const stack = new cdk.Stack(app, 'aws-stepfunctions-integ');
50
21
 
51
- const recipe = new databrew.CfnRecipe(this, 'DataBrew Recipe', {
52
- name: 'recipe-1',
53
- steps: [
54
- {
55
- action: {
56
- operation: 'UPPER_CASE',
57
- parameters: {
58
- sourceColumn: 'description',
59
- },
60
- },
61
- },
62
- {
63
- action: {
64
- operation: 'DELETE',
65
- parameters: {
66
- sourceColumn: 'doc_id',
67
- },
68
- },
69
- },
70
- ],
71
- });
22
+ const codeAsset = new assets.Asset(stack, 'Glue Job Script', {
23
+ path: path.join(__dirname, 'my-glue-script/job.py'),
24
+ });
72
25
 
73
- const dataset = new databrew.CfnDataset(this, 'DataBrew Dataset', {
74
- input: {
75
- s3InputDefinition: {
76
- bucket: `databrew-public-datasets-${region}`,
77
- key: 'votes.csv',
78
- },
79
- },
80
- name: 'dataset-1',
81
- });
26
+ const jobRole = new iam.Role(stack, 'Glue Job Role', {
27
+ assumedBy: new iam.ServicePrincipal('glue'),
28
+ managedPolicies: [
29
+ iam.ManagedPolicy.fromAwsManagedPolicyName('service-role/AWSGlueServiceRole'),
30
+ ],
31
+ });
32
+ codeAsset.grantRead(jobRole);
82
33
 
83
- const project = new databrew.CfnProject(this, 'DataBrew Project', {
84
- name: 'project-1',
85
- roleArn: role.roleArn,
86
- datasetName: dataset.name,
87
- recipeName: recipe.name,
88
- });
89
- project.addDependency(dataset);
90
- project.addDependency(recipe);
34
+ const job = new glue.CfnJob(stack, 'Glue Job', {
35
+ name: 'My Glue Job',
36
+ glueVersion: '1.0',
37
+ command: {
38
+ name: 'glueetl',
39
+ pythonVersion: '3',
40
+ scriptLocation: `s3://${codeAsset.s3BucketName}/${codeAsset.s3ObjectKey}`,
41
+ },
42
+ role: jobRole.roleArn,
43
+ });
91
44
 
92
- const job = new databrew.CfnJob(this, 'DataBrew Job', {
93
- name: 'job-1',
94
- type: 'RECIPE',
95
- projectName: project.name,
96
- roleArn: role.roleArn,
97
- outputs: [{
98
- location: {
99
- bucket: outputBucket.bucketName,
100
- },
101
- }],
102
- });
103
- job.addDependency(project);
45
+ const jobTask = new GlueStartJobRun(stack, 'Glue Job Task', {
46
+ glueJobName: job.name!,
47
+ integrationPattern: sfn.IntegrationPattern.RUN_JOB,
48
+ arguments: sfn.TaskInput.fromObject({
49
+ '--enable-metrics': 'true',
50
+ }),
51
+ });
104
52
 
105
- const startGlueDataBrewJob = new GlueDataBrewStartJobRun(this, 'Start DataBrew Job run', {
106
- name: job.name,
107
- });
53
+ const startTask = new sfn.Pass(stack, 'Start Task');
54
+ const endTask = new sfn.Pass(stack, 'End Task');
108
55
 
109
- const chain = sfn.Chain.start(startGlueDataBrewJob);
56
+ const stateMachine = new sfn.StateMachine(stack, 'State Machine', {
57
+ definition: sfn.Chain.start(startTask).next(jobTask).next(endTask),
58
+ });
110
59
 
111
- const sm = new sfn.StateMachine(this, 'StateMachine', {
112
- definition: chain,
113
- timeout: cdk.Duration.seconds(30),
114
- });
60
+ new cdk.CfnOutput(stack, 'State Machine ARN Output', {
61
+ value: stateMachine.stateMachineArn,
62
+ });
115
63
 
116
- new cdk.CfnOutput(this, 'stateMachineArn', {
117
- value: sm.stateMachineArn,
118
- });
119
- }
120
- }
64
+ new IntegTest(app, 'AwsSfnIntegTest', {
65
+ testCases: [stack],
66
+ diffAssets: true,
67
+ });
121
68
 
122
- const app = new cdk.App();
123
- new GlueDataBrewJobStack(app, 'aws-stepfunctions-tasks-databrew-start-job-run-integ');
124
69
  app.synth();
@@ -103,6 +103,7 @@ Flags come in three types:
103
103
  | [@aws-cdk/s3-notifications:addS3TrustKeyPolicyForSnsSubscriptions](#aws-cdks3-notificationsadds3trustkeypolicyforsnssubscriptions) | Add an S3 trust policy to a KMS key resource policy for SNS subscriptions. | 2.195.0 | fix |
104
104
  | [@aws-cdk/aws-ec2:requirePrivateSubnetsForEgressOnlyInternetGateway](#aws-cdkaws-ec2requireprivatesubnetsforegressonlyinternetgateway) | When enabled, the EgressOnlyGateway resource is only created if private subnets are defined in the dual-stack VPC. | 2.196.0 | fix |
105
105
  | [@aws-cdk/aws-s3:publicAccessBlockedByDefault](#aws-cdkaws-s3publicaccessblockedbydefault) | When enabled, setting any combination of options for BlockPublicAccess will automatically set true for any options not defined. | 2.196.0 | fix |
106
+ | [@aws-cdk/aws-kms:applyImportedAliasPermissionsToPrincipal](#aws-cdkaws-kmsapplyimportedaliaspermissionstoprincipal) | Enable grant methods on Aliases imported by name to use kms:ResourceAliases condition | 2.202.0 | fix |
106
107
 
107
108
  <!-- END table -->
108
109
 
@@ -146,6 +147,7 @@ The following json shows the current recommended set of flags, as `cdk init` wou
146
147
  "@aws-cdk/aws-ec2:restrictDefaultSecurityGroup": true,
147
148
  "@aws-cdk/aws-apigateway:requestValidatorUniqueId": true,
148
149
  "@aws-cdk/aws-kms:aliasNameRef": true,
150
+ "@aws-cdk/aws-kms:applyImportedAliasPermissionsToPrincipal": true,
149
151
  "@aws-cdk/aws-autoscaling:generateLaunchTemplateInsteadOfLaunchConfig": true,
150
152
  "@aws-cdk/core:includePrefixInUniqueNameGeneration": true,
151
153
  "@aws-cdk/aws-efs:denyAnonymousAccess": true,
@@ -2175,4 +2177,23 @@ The new behavior from this feature will allow a user, for example, to set 1 of t
2175
2177
  | 2.196.0 | `false` | `true` |
2176
2178
 
2177
2179
 
2180
+ ### @aws-cdk/aws-kms:applyImportedAliasPermissionsToPrincipal
2181
+
2182
+ *Enable grant methods on Aliases imported by name to use kms:ResourceAliases condition*
2183
+
2184
+ Flag type: Backwards incompatible bugfix
2185
+
2186
+ This flag enables the grant methods (grant, grantDecrypt, grantEncrypt, etc.) on Aliases imported
2187
+ by name to grant permissions based on the 'kms:ResourceAliases' condition rather than no-op grants.
2188
+ When disabled, grant calls on imported aliases will be dropped (no-op) to maintain compatibility.
2189
+
2190
+
2191
+ | Since | Default | Recommended |
2192
+ | ----- | ----- | ----- |
2193
+ | (not in v1) | | |
2194
+ | 2.202.0 | `false` | `true` |
2195
+
2196
+ **Compatibility with old behavior:** Remove calls to the grant* methods on the aliases referenced by name
2197
+
2198
+
2178
2199
  <!-- END details -->
@@ -310,6 +310,20 @@ _cdk.json_
310
310
  }
311
311
  ```
312
312
 
313
+ * `@aws-cdk/aws-kms:applyImportedAliasPermissionsToPrincipal`
314
+
315
+ Enable grant methods on imported KMS Aliases to apply permissions scoped by the alias using the `kms:ResourceAliases` condition key. When this flag is disabled, grant* methods on `Alias.fromAliasName` remain no-ops to preserve existing behavior.
316
+
317
+ _cdk.json_
318
+
319
+ ```json
320
+ {
321
+ "context": {
322
+ "@aws-cdk/aws-kms:applyImportedAliasPermissionsToPrincipal": true
323
+ }
324
+ }
325
+ ```
326
+
313
327
  * `@aws-cdk/aws-eks:nodegroupNameAttribute`
314
328
 
315
329
  When enabled, nodegroupName attribute of the provisioned EKS NodeGroup will not have the cluster name prefix.
@@ -565,6 +565,7 @@ pass in order to promote from the `PreProd` to the `Prod` environment:
565
565
  declare const pipeline: pipelines.CodePipeline;
566
566
  const preprod = new MyApplicationStage(this, 'PreProd');
567
567
  const prod = new MyApplicationStage(this, 'Prod');
568
+ const topic = new sns.Topic(this, 'ChangeApprovalTopic');
568
569
 
569
570
  pipeline.addStage(preprod, {
570
571
  post: [
@@ -574,7 +575,12 @@ pipeline.addStage(preprod, {
574
575
  ],
575
576
  });
576
577
  pipeline.addStage(prod, {
577
- pre: [new pipelines.ManualApprovalStep('PromoteToProd')],
578
+ pre: [new pipelines.ManualApprovalStep('PromoteToProd', {
579
+ //All options below are optional
580
+ comment: 'Please validate changes',
581
+ reviewUrl: 'https://my.webservice.com/',
582
+ notificationTopic: topic,
583
+ })],
578
584
  });
579
585
  ```
580
586
 
@@ -0,0 +1,53 @@
1
+ import * as path from 'path';
2
+ import * as s3 from 'aws-cdk-lib/aws-s3';
3
+ import * as s3_assets from 'aws-cdk-lib/aws-s3-assets';
4
+ import * as sqs from 'aws-cdk-lib/aws-sqs';
5
+ import * as pipelines from 'aws-cdk-lib/pipelines';
6
+ import { App, RemovalPolicy, Stack, StackProps, Stage, StageProps } from 'aws-cdk-lib';
7
+ import { Construct } from 'constructs';
8
+ import { IntegTest } from '@aws-cdk/integ-tests-alpha';
9
+
10
+ class PipelineStack extends Stack {
11
+ constructor(scope: Construct, id: string, props?: StackProps) {
12
+ super(scope, id, props);
13
+
14
+ const bucket = new s3.Bucket(this, 'Source', {
15
+ removalPolicy: RemovalPolicy.DESTROY,
16
+ });
17
+ const pipeline = new pipelines.CodePipeline(this, 'Pipeline', {
18
+ synth: new pipelines.ShellStep('Synth', {
19
+ input: pipelines.CodePipelineSource.s3(bucket, 'source.zip'),
20
+ commands: [
21
+ 'npm ci',
22
+ 'npm run build',
23
+ 'npx cdk synth',
24
+ ],
25
+ }),
26
+ publishAssetsInParallel: false,
27
+ });
28
+
29
+ pipeline.addStage(new AppStage(this, 'Beta'));
30
+ }
31
+ }
32
+
33
+ class AppStage extends Stage {
34
+ constructor(scope: Construct, id: string, props?: StageProps) {
35
+ super(scope, id, props);
36
+
37
+ const stack = new Stack(this, 'Stack1');
38
+ new s3_assets.Asset(stack, 'Asset', {
39
+ path: path.join(__dirname, 'testhelpers/assets/test-file-asset.txt'),
40
+ });
41
+ new s3_assets.Asset(stack, 'Asset2', {
42
+ path: path.join(__dirname, 'testhelpers/assets/test-file-asset-two.txt'),
43
+ });
44
+
45
+ new sqs.Queue(stack, 'OtherQueue');
46
+ }
47
+ }
48
+
49
+ const app = new App();
50
+ const stack = new PipelineStack(app, 'PipelineStackSinglePublisher');
51
+ new IntegTest(app, 'PipelineStackSinglePublisher-integ', {
52
+ testCases: [stack],
53
+ });
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: konokenj.cdk-api-mcp-server
3
- Version: 0.28.0
3
+ Version: 0.30.0
4
4
  Summary: An MCP server provides AWS CDK API Reference
5
5
  Project-URL: Documentation, https://github.com/konokenj/cdk-api-mcp-server#readme
6
6
  Project-URL: Issues, https://github.com/konokenj/cdk-api-mcp-server/issues
@@ -26,7 +26,7 @@ Description-Content-Type: text/markdown
26
26
  [![PyPI - Python Version](https://img.shields.io/pypi/pyversions/konokenj.cdk-api-mcp-server.svg)](https://pypi.org/project/konokenj.cdk-api-mcp-server)
27
27
 
28
28
  <!-- DEP-VERSIONS-START -->
29
- [![aws-cdk](https://img.shields.io/badge/aws%20cdk-v2.200.2-blue.svg)](https://github.com/konokenj/cdk-api-mcp-server/blob/main/current-versions/aws-cdk.txt)
29
+ [![aws-cdk](https://img.shields.io/badge/aws%20cdk-v2.202.0-blue.svg)](https://github.com/konokenj/cdk-api-mcp-server/blob/main/current-versions/aws-cdk.txt)
30
30
  <!-- DEP-VERSIONS-END -->
31
31
 
32
32
  ---