konokenj.cdk-api-mcp-server 0.50.0__py3-none-any.whl → 0.51.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.
- cdk_api_mcp_server/__about__.py +1 -1
- cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/aws-bedrock-agentcore-alpha/README.md +2 -2
- cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/aws-msk-alpha/README.md +30 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-codepipeline-actions/integ.pipeline-elastic-beanstalk-deploy.ts +4 -1
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-dynamodb/README.md +53 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-dynamodb/integ.dynamodb.add-to-resource-policy.ts +80 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-dynamodb/integ.dynamodb.policy.ts +21 -1
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ec2/integ.vpc-flow-logs.ts +4 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-elasticloadbalancingv2/README.md +34 -4
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-elasticloadbalancingv2/integ.nlb.security-group.ts +70 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-events-targets/README.md +22 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-events-targets/integ.firehose-delivery-stream.ts +51 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/cx-api/FEATURE_FLAGS.md +23 -4
- {konokenj_cdk_api_mcp_server-0.50.0.dist-info → konokenj_cdk_api_mcp_server-0.51.0.dist-info}/METADATA +2 -2
- {konokenj_cdk_api_mcp_server-0.50.0.dist-info → konokenj_cdk_api_mcp_server-0.51.0.dist-info}/RECORD +18 -16
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-events-targets/integ.kinesis-firehose-stream.ts +0 -33
- {konokenj_cdk_api_mcp_server-0.50.0.dist-info → konokenj_cdk_api_mcp_server-0.51.0.dist-info}/WHEEL +0 -0
- {konokenj_cdk_api_mcp_server-0.50.0.dist-info → konokenj_cdk_api_mcp_server-0.51.0.dist-info}/entry_points.txt +0 -0
- {konokenj_cdk_api_mcp_server-0.50.0.dist-info → konokenj_cdk_api_mcp_server-0.51.0.dist-info}/licenses/LICENSE.txt +0 -0
cdk_api_mcp_server/__about__.py
CHANGED
cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/aws-bedrock-agentcore-alpha/README.md
CHANGED
|
@@ -115,9 +115,9 @@ const runtime = new agentcore.Runtime(this, "MyAgentRuntime", {
|
|
|
115
115
|
|
|
116
116
|
To grant the runtime permission to invoke a Bedrock model or inference profile:
|
|
117
117
|
|
|
118
|
-
```
|
|
118
|
+
```typescript fixture=default
|
|
119
119
|
// Note: This example uses @aws-cdk/aws-bedrock-alpha which must be installed separately
|
|
120
|
-
|
|
120
|
+
declare const runtime: agentcore.Runtime;
|
|
121
121
|
|
|
122
122
|
// Create a cross-region inference profile for Claude 3.7 Sonnet
|
|
123
123
|
const inferenceProfile = bedrock.CrossRegionInferenceProfile.fromConfig({
|
|
@@ -232,6 +232,36 @@ const cluster = new msk.Cluster(this, 'cluster', {
|
|
|
232
232
|
});
|
|
233
233
|
```
|
|
234
234
|
|
|
235
|
+
## MSK Express Brokers
|
|
236
|
+
|
|
237
|
+
You can create an MSK cluster with Express Brokers by setting the `brokerType` property to `BrokerType.EXPRESS`. Express Brokers are a low-cost option for development, testing, and workloads that don't require the high availability guarantees of standard MSK cluster.
|
|
238
|
+
For more information, see [Amazon MSK Express Brokers](https://docs.aws.amazon.com/msk/latest/developerguide/msk-broker-types-express.html).
|
|
239
|
+
|
|
240
|
+
**Note:** When using Express Brokers, the following constraints apply:
|
|
241
|
+
|
|
242
|
+
- Apache Kafka version must be 3.6.x or 3.8.x
|
|
243
|
+
- You must specify the `instanceType`
|
|
244
|
+
- The VPC must have at least 3 subnets (across 3 AZs)
|
|
245
|
+
- `ebsStorageInfo` is not supported
|
|
246
|
+
- `storageMode` is not supported
|
|
247
|
+
- `logging` is not supported
|
|
248
|
+
- Supported broker sizes: `m7g.xlarge`, `m7g.2xlarge`, `m7g.4xlarge`, `m7g.8xlarge`, `m7g.12xlarge`, `m7g.16xlarge`
|
|
249
|
+
|
|
250
|
+
```ts
|
|
251
|
+
declare const vpc: ec2.Vpc;
|
|
252
|
+
|
|
253
|
+
const expressCluster = new msk.Cluster(this, 'ExpressCluster', {
|
|
254
|
+
clusterName: 'MyExpressCluster',
|
|
255
|
+
kafkaVersion: msk.KafkaVersion.V3_8_X,
|
|
256
|
+
vpc,
|
|
257
|
+
brokerType: msk.BrokerType.EXPRESS,
|
|
258
|
+
instanceType: ec2.InstanceType.of(
|
|
259
|
+
ec2.InstanceClass.M7G,
|
|
260
|
+
ec2.InstanceSize.XLARGE,
|
|
261
|
+
),
|
|
262
|
+
});
|
|
263
|
+
```
|
|
264
|
+
|
|
235
265
|
## MSK Serverless
|
|
236
266
|
|
|
237
267
|
You can also use MSK Serverless by using `ServerlessCluster` class.
|
|
@@ -5,7 +5,7 @@ import * as iam from 'aws-cdk-lib/aws-iam';
|
|
|
5
5
|
import { IManagedPolicy, ManagedPolicyReference } from 'aws-cdk-lib/aws-iam';
|
|
6
6
|
import * as s3 from 'aws-cdk-lib/aws-s3';
|
|
7
7
|
import * as deploy from 'aws-cdk-lib/aws-s3-deployment';
|
|
8
|
-
import { App, Fn, RemovalPolicy, Stack, UnscopedValidationError } from 'aws-cdk-lib';
|
|
8
|
+
import { App, Fn, RemovalPolicy, ResourceEnvironment, Stack, UnscopedValidationError } from 'aws-cdk-lib';
|
|
9
9
|
import * as integ from '@aws-cdk/integ-tests-alpha';
|
|
10
10
|
import * as cpactions from 'aws-cdk-lib/aws-codepipeline-actions';
|
|
11
11
|
import { Node } from 'constructs';
|
|
@@ -56,6 +56,9 @@ function makePolicy(arn: string): IManagedPolicy {
|
|
|
56
56
|
get node(): Node {
|
|
57
57
|
throw new UnscopedValidationError('The result of fromAwsManagedPolicyName can not be used in this API');
|
|
58
58
|
},
|
|
59
|
+
get env(): ResourceEnvironment {
|
|
60
|
+
throw new UnscopedValidationError('The result of fromAwsManagedPolicyName can not be used in this API');
|
|
61
|
+
},
|
|
59
62
|
};
|
|
60
63
|
}
|
|
61
64
|
|
|
@@ -816,6 +816,59 @@ Using `resourcePolicy` you can add a [resource policy](https://docs.aws.amazon.c
|
|
|
816
816
|
});
|
|
817
817
|
```
|
|
818
818
|
|
|
819
|
+
### Adding Resource Policy Statements Dynamically
|
|
820
|
+
|
|
821
|
+
You can also add resource policy statements to a table after it's created using the `addToResourcePolicy` method. Following the same pattern as KMS, resource policies use wildcard resources to avoid circular dependencies:
|
|
822
|
+
|
|
823
|
+
```ts
|
|
824
|
+
const table = new dynamodb.TableV2(this, 'Table', {
|
|
825
|
+
partitionKey: { name: 'pk', type: dynamodb.AttributeType.STRING },
|
|
826
|
+
});
|
|
827
|
+
|
|
828
|
+
// Standard resource policy (recommended approach)
|
|
829
|
+
table.addToResourcePolicy(new iam.PolicyStatement({
|
|
830
|
+
actions: ['dynamodb:GetItem', 'dynamodb:PutItem', 'dynamodb:Query'],
|
|
831
|
+
principals: [new iam.AccountRootPrincipal()],
|
|
832
|
+
resources: ['*'], // Wildcard avoids circular dependency - same pattern as KMS
|
|
833
|
+
}));
|
|
834
|
+
|
|
835
|
+
// Allow specific service access
|
|
836
|
+
table.addToResourcePolicy(new iam.PolicyStatement({
|
|
837
|
+
actions: ['dynamodb:Query'],
|
|
838
|
+
principals: [new iam.ServicePrincipal('lambda.amazonaws.com')],
|
|
839
|
+
resources: ['*'],
|
|
840
|
+
}));
|
|
841
|
+
```
|
|
842
|
+
|
|
843
|
+
#### Scoped Resource Policies (Advanced)
|
|
844
|
+
|
|
845
|
+
For scoped resource policies that reference specific table ARNs, you must specify an explicit table name:
|
|
846
|
+
|
|
847
|
+
```ts
|
|
848
|
+
import { Fn } from 'aws-cdk-lib';
|
|
849
|
+
|
|
850
|
+
// Table with explicit name enables scoped resource policies
|
|
851
|
+
const table = new dynamodb.TableV2(this, 'Table', {
|
|
852
|
+
tableName: 'my-explicit-table-name', // Required for scoped resources
|
|
853
|
+
partitionKey: { name: 'pk', type: dynamodb.AttributeType.STRING },
|
|
854
|
+
});
|
|
855
|
+
|
|
856
|
+
// Now you can use scoped resources
|
|
857
|
+
table.addToResourcePolicy(new iam.PolicyStatement({
|
|
858
|
+
actions: ['dynamodb:GetItem'],
|
|
859
|
+
principals: [new iam.AccountRootPrincipal()],
|
|
860
|
+
resources: [
|
|
861
|
+
Fn.sub('arn:aws:dynamodb:${AWS::Region}:${AWS::AccountId}:table/my-explicit-table-name'),
|
|
862
|
+
Fn.sub('arn:aws:dynamodb:${AWS::Region}:${AWS::AccountId}:table/my-explicit-table-name/index/*'),
|
|
863
|
+
],
|
|
864
|
+
}));
|
|
865
|
+
```
|
|
866
|
+
|
|
867
|
+
**Important Limitations:**
|
|
868
|
+
- **Auto-generated table names**: Must use `resources: ['*']` to avoid circular dependencies
|
|
869
|
+
- **Explicit table names**: Enable scoped resources but lose CDK's automatic naming benefits
|
|
870
|
+
- **CloudFormation constraint**: Resource policies cannot reference the resource they're attached to during creation
|
|
871
|
+
|
|
819
872
|
TableV2 doesn’t support creating a replica and adding a resource-based policy to that replica in the same stack update in Regions other than the Region where you deploy the stack update.
|
|
820
873
|
To incorporate a resource-based policy into a replica, you'll need to initially deploy the replica without the policy, followed by a subsequent update to include the desired policy.
|
|
821
874
|
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Integration test for DynamoDB Table.addToResourcePolicy() method
|
|
3
|
+
*
|
|
4
|
+
* This test validates the fix for issue #35062: "(aws-dynamodb): `addToResourcePolicy` has no effect"
|
|
5
|
+
*
|
|
6
|
+
* WHAT WE'RE TESTING:
|
|
7
|
+
* - The addToResourcePolicy() method was broken - it had "no effect" when called
|
|
8
|
+
* - Resource policies weren't being added to the CloudFormation template
|
|
9
|
+
* - This created a security gap where developers thought they were securing tables but policies weren't applied
|
|
10
|
+
*
|
|
11
|
+
* TEST VALIDATION:
|
|
12
|
+
* 1. Creates DynamoDB tables with different resource policy configurations
|
|
13
|
+
* 2. Tests both wildcard resources (for auto-generated names) and scoped resources (for explicit names)
|
|
14
|
+
* 3. Verifies policies get added to CloudFormation templates with correct structure
|
|
15
|
+
* 4. Ensures both patterns work without circular dependencies
|
|
16
|
+
*
|
|
17
|
+
* @see https://github.com/aws/aws-cdk/issues/35062
|
|
18
|
+
*/
|
|
19
|
+
|
|
20
|
+
import { App, Fn, RemovalPolicy, Stack, StackProps } from 'aws-cdk-lib';
|
|
21
|
+
import { Construct } from 'constructs';
|
|
22
|
+
import * as dynamodb from 'aws-cdk-lib/aws-dynamodb';
|
|
23
|
+
import * as iam from 'aws-cdk-lib/aws-iam';
|
|
24
|
+
import { IntegTest } from '@aws-cdk/integ-tests-alpha';
|
|
25
|
+
|
|
26
|
+
export class TestStack extends Stack {
|
|
27
|
+
public readonly wildcardTable: dynamodb.Table;
|
|
28
|
+
public readonly scopedTable: dynamodb.Table;
|
|
29
|
+
|
|
30
|
+
constructor(scope: Construct, id: string, props?: StackProps) {
|
|
31
|
+
super(scope, id, props);
|
|
32
|
+
|
|
33
|
+
// TEST 1: Table with wildcard resource policy (auto-generated name)
|
|
34
|
+
// This is the standard pattern to avoid circular dependencies
|
|
35
|
+
this.wildcardTable = new dynamodb.Table(this, 'WildcardTable', {
|
|
36
|
+
partitionKey: {
|
|
37
|
+
name: 'id',
|
|
38
|
+
type: dynamodb.AttributeType.STRING,
|
|
39
|
+
},
|
|
40
|
+
removalPolicy: RemovalPolicy.DESTROY,
|
|
41
|
+
});
|
|
42
|
+
|
|
43
|
+
// Add resource policy with wildcard resources
|
|
44
|
+
this.wildcardTable.addToResourcePolicy(new iam.PolicyStatement({
|
|
45
|
+
actions: ['dynamodb:GetItem', 'dynamodb:PutItem', 'dynamodb:Query'],
|
|
46
|
+
principals: [new iam.AccountRootPrincipal()],
|
|
47
|
+
resources: ['*'], // Use wildcard to avoid circular dependency - standard pattern for resource policies
|
|
48
|
+
}));
|
|
49
|
+
|
|
50
|
+
// TEST 2: Table with scoped resource policy (explicit table name)
|
|
51
|
+
// This demonstrates how to use scoped resources when table name is known at synthesis time
|
|
52
|
+
this.scopedTable = new dynamodb.Table(this, 'ScopedTable', {
|
|
53
|
+
tableName: 'my-explicit-scoped-table', // Explicit name enables scoped ARN construction
|
|
54
|
+
partitionKey: {
|
|
55
|
+
name: 'id',
|
|
56
|
+
type: dynamodb.AttributeType.STRING,
|
|
57
|
+
},
|
|
58
|
+
removalPolicy: RemovalPolicy.DESTROY,
|
|
59
|
+
});
|
|
60
|
+
|
|
61
|
+
// Add resource policy with properly scoped resource using explicit table name
|
|
62
|
+
// This works because table name is known at synthesis time (no circular dependency)
|
|
63
|
+
this.scopedTable.addToResourcePolicy(new iam.PolicyStatement({
|
|
64
|
+
actions: ['dynamodb:GetItem', 'dynamodb:Query'],
|
|
65
|
+
principals: [new iam.AccountRootPrincipal()],
|
|
66
|
+
// Use CloudFormation intrinsic function to construct table ARN with known table name
|
|
67
|
+
resources: [Fn.sub('arn:aws:dynamodb:${AWS::Region}:${AWS::AccountId}:table/my-explicit-scoped-table')],
|
|
68
|
+
}));
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
// Test Setup
|
|
73
|
+
const app = new App();
|
|
74
|
+
const stack = new TestStack(app, 'add-to-resource-policy-test-stack');
|
|
75
|
+
|
|
76
|
+
// Integration Test Configuration
|
|
77
|
+
new IntegTest(app, 'add-to-resource-policy-integ-test', {
|
|
78
|
+
testCases: [stack],
|
|
79
|
+
});
|
|
80
|
+
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-dynamodb/integ.dynamodb.policy.ts
CHANGED
|
@@ -38,7 +38,27 @@ export class TestStack extends Stack {
|
|
|
38
38
|
removalPolicy: RemovalPolicy.DESTROY,
|
|
39
39
|
});
|
|
40
40
|
|
|
41
|
-
|
|
41
|
+
// IMPORTANT: Cross-account grants with auto-generated table names create circular dependencies
|
|
42
|
+
//
|
|
43
|
+
// WHY NOT this.tableTwo.grantReadData(new iam.AccountPrincipal('123456789012'))?
|
|
44
|
+
// - Cross-account principals cannot have policies attached to them
|
|
45
|
+
// - Grant falls back to adding a resource policy to the table
|
|
46
|
+
// - Resource policy tries to reference this.tableArn (the table's own ARN)
|
|
47
|
+
// - This creates a circular dependency: Table → ResourcePolicy → Table ARN → Table
|
|
48
|
+
// - CloudFormation fails with "Circular dependency between resources"
|
|
49
|
+
//
|
|
50
|
+
// SOLUTIONS:
|
|
51
|
+
// 1. Use addToResourcePolicy with wildcard resources (this approach)
|
|
52
|
+
// 2. Use explicit table names: tableName: 'my-table-name' (enables scoped resources)
|
|
53
|
+
// 3. Use same-account principals (grants go to principal policy, not resource policy)
|
|
54
|
+
//
|
|
55
|
+
this.tableTwo.addToResourcePolicy(new iam.PolicyStatement({
|
|
56
|
+
actions: ['dynamodb:*'],
|
|
57
|
+
// we need a valid account for cross-account principal otherwise it won't deploy
|
|
58
|
+
// this account is from fact-table.ts
|
|
59
|
+
principals: [new iam.AccountPrincipal('127311923021')],
|
|
60
|
+
resources: ['*'], // Wildcard avoids circular dependency - same pattern as KMS
|
|
61
|
+
}));
|
|
42
62
|
}
|
|
43
63
|
}
|
|
44
64
|
|
|
@@ -72,6 +72,10 @@ class TestStack extends Stack {
|
|
|
72
72
|
destination: FlowLogDestination.toS3(),
|
|
73
73
|
});
|
|
74
74
|
|
|
75
|
+
vpc.addFlowLog('FlowLogsCloudwatch', {
|
|
76
|
+
destination: FlowLogDestination.toCloudWatchLogs(),
|
|
77
|
+
});
|
|
78
|
+
|
|
75
79
|
const bucket = new s3.Bucket(this, 'Bucket', {
|
|
76
80
|
removalPolicy: RemovalPolicy.DESTROY,
|
|
77
81
|
autoDeleteObjects: true,
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-elasticloadbalancingv2/README.md
CHANGED
|
@@ -338,17 +338,13 @@ Balancers:
|
|
|
338
338
|
```ts
|
|
339
339
|
declare const vpc: ec2.Vpc;
|
|
340
340
|
declare const asg: autoscaling.AutoScalingGroup;
|
|
341
|
-
declare const sg1: ec2.ISecurityGroup;
|
|
342
|
-
declare const sg2: ec2.ISecurityGroup;
|
|
343
341
|
|
|
344
342
|
// Create the load balancer in a VPC. 'internetFacing' is 'false'
|
|
345
343
|
// by default, which creates an internal load balancer.
|
|
346
344
|
const lb = new elbv2.NetworkLoadBalancer(this, 'LB', {
|
|
347
345
|
vpc,
|
|
348
346
|
internetFacing: true,
|
|
349
|
-
securityGroups: [sg1],
|
|
350
347
|
});
|
|
351
|
-
lb.addSecurityGroup(sg2);
|
|
352
348
|
|
|
353
349
|
// Add a listener on a particular port.
|
|
354
350
|
const listener = lb.addListener('Listener', {
|
|
@@ -362,6 +358,40 @@ listener.addTargets('AppFleet', {
|
|
|
362
358
|
});
|
|
363
359
|
```
|
|
364
360
|
|
|
361
|
+
### Security Groups for Network Load Balancer
|
|
362
|
+
|
|
363
|
+
By default, Network Load Balancers (NLB) have a security group associated with them.
|
|
364
|
+
This is controlled by the feature flag `@aws-cdk/aws-elasticloadbalancingv2:networkLoadBalancerWithSecurityGroupByDefault`.
|
|
365
|
+
When this flag is enabled (the default for new projects), a security group will be automatically created and attached to the NLB unless you explicitly provide your own security groups via the `securityGroups` property.
|
|
366
|
+
|
|
367
|
+
If you wish to create an NLB without any security groups, you can set the `disableSecurityGroups` property to `true`. When this property is set, no security group will be associated with the NLB, regardless of the feature flag.
|
|
368
|
+
|
|
369
|
+
```ts
|
|
370
|
+
declare const vpc: ec2.IVpc;
|
|
371
|
+
|
|
372
|
+
const nlb = new elbv2.NetworkLoadBalancer(this, 'LB', {
|
|
373
|
+
vpc,
|
|
374
|
+
// To disable security groups for this NLB
|
|
375
|
+
disableSecurityGroups: true,
|
|
376
|
+
});
|
|
377
|
+
```
|
|
378
|
+
|
|
379
|
+
If you want to use your own security groups, provide them via the `securityGroups` property:
|
|
380
|
+
|
|
381
|
+
```ts
|
|
382
|
+
declare const vpc: ec2.IVpc;
|
|
383
|
+
declare const sg1: ec2.ISecurityGroup;
|
|
384
|
+
declare const sg2: ec2.ISecurityGroup;
|
|
385
|
+
|
|
386
|
+
const nlb = new elbv2.NetworkLoadBalancer(this, 'LB', {
|
|
387
|
+
vpc,
|
|
388
|
+
// Provide your own security groups
|
|
389
|
+
securityGroups: [sg1],
|
|
390
|
+
});
|
|
391
|
+
// Add another security group to the NLB
|
|
392
|
+
nlb.addSecurityGroup(sg2);
|
|
393
|
+
```
|
|
394
|
+
|
|
365
395
|
### Enforce security group inbound rules on PrivateLink traffic for a Network Load Balancer
|
|
366
396
|
|
|
367
397
|
You can indicate whether to evaluate inbound security group rules for traffic
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { ExpectedResult, IntegTest, Match } from '@aws-cdk/integ-tests-alpha';
|
|
2
|
+
import { Stack, aws_ec2 as ec2, aws_elasticloadbalancingv2 as elbv2, App } from 'aws-cdk-lib';
|
|
3
|
+
import { Construct } from 'constructs';
|
|
4
|
+
|
|
5
|
+
class TestStack extends Stack {
|
|
6
|
+
public readonly lbWithSg: elbv2.NetworkLoadBalancer;
|
|
7
|
+
public readonly lbWithSg2: elbv2.NetworkLoadBalancer;
|
|
8
|
+
public readonly lbWithoutSg: elbv2.NetworkLoadBalancer;
|
|
9
|
+
|
|
10
|
+
constructor(scope: Construct, id: string) {
|
|
11
|
+
super(scope, id);
|
|
12
|
+
|
|
13
|
+
const vpc = new ec2.Vpc(this, 'Stack', {
|
|
14
|
+
maxAzs: 1,
|
|
15
|
+
natGateways: 0,
|
|
16
|
+
});
|
|
17
|
+
|
|
18
|
+
this.lbWithSg = new elbv2.NetworkLoadBalancer(this, 'NlbWithSecurityGroup', {
|
|
19
|
+
vpc,
|
|
20
|
+
});
|
|
21
|
+
this.lbWithSg2 = new elbv2.NetworkLoadBalancer(this, 'NlbWithSecurityGroup2', {
|
|
22
|
+
vpc,
|
|
23
|
+
securityGroups: [new ec2.SecurityGroup(this, 'SecurityGroup', {
|
|
24
|
+
vpc,
|
|
25
|
+
allowAllOutbound: true,
|
|
26
|
+
})],
|
|
27
|
+
});
|
|
28
|
+
this.lbWithSg.connections.allowTo(this.lbWithSg2, ec2.Port.tcp(1229));
|
|
29
|
+
this.lbWithoutSg = new elbv2.NetworkLoadBalancer(this, 'NlbWithoutSecurityGroup', {
|
|
30
|
+
vpc,
|
|
31
|
+
disableSecurityGroups: true,
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
const app = new App({
|
|
37
|
+
postCliContext: {
|
|
38
|
+
'@aws-cdk/aws-elasticloadbalancingv2:networkLoadBalancerWithSecurityGroupByDefault': true,
|
|
39
|
+
},
|
|
40
|
+
});
|
|
41
|
+
const stack = new TestStack(app, 'NlbSecurityGroupStack');
|
|
42
|
+
const integ = new IntegTest(app, 'NlbSecurityGroupInteg', {
|
|
43
|
+
testCases: [stack],
|
|
44
|
+
});
|
|
45
|
+
integ.assertions.awsApiCall('elastic-load-balancing-v2', 'describeLoadBalancers', {
|
|
46
|
+
LoadBalancerArns: [
|
|
47
|
+
stack.lbWithSg.loadBalancerArn,
|
|
48
|
+
stack.lbWithSg2.loadBalancerArn,
|
|
49
|
+
stack.lbWithoutSg.loadBalancerArn,
|
|
50
|
+
],
|
|
51
|
+
}).expect(ExpectedResult.objectLike({
|
|
52
|
+
LoadBalancers: [
|
|
53
|
+
Match.objectLike({
|
|
54
|
+
LoadBalancerArn: stack.lbWithSg.loadBalancerArn,
|
|
55
|
+
SecurityGroups: Match.arrayWith([
|
|
56
|
+
Match.stringLikeRegexp('sg-[0-9a-f]{8,17}'),
|
|
57
|
+
]),
|
|
58
|
+
}),
|
|
59
|
+
Match.objectLike({
|
|
60
|
+
LoadBalancerArn: stack.lbWithSg2.loadBalancerArn,
|
|
61
|
+
SecurityGroups: Match.arrayWith([
|
|
62
|
+
Match.stringLikeRegexp('sg-[0-9a-f]{8,17}'),
|
|
63
|
+
]),
|
|
64
|
+
}),
|
|
65
|
+
Match.objectLike({
|
|
66
|
+
LoadBalancerArn: stack.lbWithoutSg.loadBalancerArn,
|
|
67
|
+
SecurityGroups: undefined,
|
|
68
|
+
}),
|
|
69
|
+
],
|
|
70
|
+
}));
|
|
@@ -19,6 +19,7 @@ Currently supported are:
|
|
|
19
19
|
- [Invoke an API Destination](#invoke-an-api-destination)
|
|
20
20
|
- [Invoke an AppSync GraphQL API](#invoke-an-appsync-graphql-api)
|
|
21
21
|
- [Put an event on an EventBridge bus](#put-an-event-on-an-eventbridge-bus)
|
|
22
|
+
- [Put an event on a Firehose delivery stream](#put-an-event-on-a-firehose-delivery-stream)
|
|
22
23
|
- [Run an ECS Task](#run-an-ecs-task)
|
|
23
24
|
- [Tagging Tasks](#tagging-tasks)
|
|
24
25
|
- [Launch type for ECS Task](#launch-type-for-ecs-task)
|
|
@@ -528,6 +529,27 @@ rule.addTarget(new targets.EventBus(
|
|
|
528
529
|
));
|
|
529
530
|
```
|
|
530
531
|
|
|
532
|
+
## Put an event on a Firehose delivery stream
|
|
533
|
+
|
|
534
|
+
Use the `FirehoseDeliveryStream` target to put event to an Amazon Data Firehose delivery stream.
|
|
535
|
+
|
|
536
|
+
The code snippet below creates the scheduled event rule that put events to an Amazon Data Firehose delivery stream.
|
|
537
|
+
|
|
538
|
+
```ts
|
|
539
|
+
import * as firehose from 'aws-cdk-lib/aws-kinesisfirehose';
|
|
540
|
+
import * as s3 from 'aws-cdk-lib/aws-s3';
|
|
541
|
+
|
|
542
|
+
declare const bucket: s3.Bucket;
|
|
543
|
+
const stream = new firehose.DeliveryStream(this, 'DeliveryStream', {
|
|
544
|
+
destination: new firehose.S3Bucket(bucket),
|
|
545
|
+
});
|
|
546
|
+
|
|
547
|
+
const rule = new events.Rule(this, 'Rule', {
|
|
548
|
+
schedule: events.Schedule.expression('rate(1 minute)'),
|
|
549
|
+
});
|
|
550
|
+
rule.addTarget(new targets.FirehoseDeliveryStream(stream));
|
|
551
|
+
```
|
|
552
|
+
|
|
531
553
|
## Run an ECS Task
|
|
532
554
|
|
|
533
555
|
Use the `EcsTask` target to run an ECS Task.
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import * as events from 'aws-cdk-lib/aws-events';
|
|
2
|
+
import * as firehose from 'aws-cdk-lib/aws-kinesisfirehose';
|
|
3
|
+
import * as s3 from 'aws-cdk-lib/aws-s3';
|
|
4
|
+
import * as cdk from 'aws-cdk-lib';
|
|
5
|
+
import * as targets from 'aws-cdk-lib/aws-events-targets';
|
|
6
|
+
import { IntegTest, ExpectedResult, AwsApiCall } from '@aws-cdk/integ-tests-alpha';
|
|
7
|
+
|
|
8
|
+
// ---------------------------------
|
|
9
|
+
// Define a rule that triggers a put to a Firehose delivery stream every 1min.
|
|
10
|
+
|
|
11
|
+
const app = new cdk.App();
|
|
12
|
+
|
|
13
|
+
const stack = new cdk.Stack(app, 'aws-cdk-firehose-event-target');
|
|
14
|
+
|
|
15
|
+
const bucket = new s3.Bucket(stack, 'firehose-bucket', {
|
|
16
|
+
autoDeleteObjects: true,
|
|
17
|
+
removalPolicy: cdk.RemovalPolicy.DESTROY,
|
|
18
|
+
});
|
|
19
|
+
const deliveryStream = new firehose.DeliveryStream(stack, 'MyDeliveryStream', {
|
|
20
|
+
destination: new firehose.S3Bucket(bucket, {
|
|
21
|
+
bufferingInterval: cdk.Duration.seconds(30),
|
|
22
|
+
}),
|
|
23
|
+
});
|
|
24
|
+
|
|
25
|
+
const event = new events.Rule(stack, 'EveryMinute', {
|
|
26
|
+
schedule: events.Schedule.rate(cdk.Duration.minutes(1)),
|
|
27
|
+
});
|
|
28
|
+
|
|
29
|
+
event.addTarget(new targets.FirehoseDeliveryStream(deliveryStream));
|
|
30
|
+
|
|
31
|
+
const testCase = new IntegTest(app, 'firehose-event-target-integ', {
|
|
32
|
+
testCases: [stack],
|
|
33
|
+
});
|
|
34
|
+
|
|
35
|
+
const s3ApiCall = testCase.assertions.awsApiCall('S3', 'listObjectsV2', {
|
|
36
|
+
Bucket: bucket.bucketName,
|
|
37
|
+
MaxKeys: 1,
|
|
38
|
+
}).expect(ExpectedResult.objectLike({
|
|
39
|
+
KeyCount: 1,
|
|
40
|
+
})).waitForAssertions({
|
|
41
|
+
interval: cdk.Duration.seconds(30),
|
|
42
|
+
totalTimeout: cdk.Duration.minutes(10),
|
|
43
|
+
});
|
|
44
|
+
|
|
45
|
+
if (s3ApiCall instanceof AwsApiCall) {
|
|
46
|
+
s3ApiCall.waiterProvider?.addToRolePolicy({
|
|
47
|
+
Effect: 'Allow',
|
|
48
|
+
Action: ['s3:GetObject', 's3:ListBucket'],
|
|
49
|
+
Resource: ['*'],
|
|
50
|
+
});
|
|
51
|
+
}
|
|
@@ -107,8 +107,9 @@ Flags come in three types:
|
|
|
107
107
|
| [@aws-cdk/core:explicitStackTags](#aws-cdkcoreexplicitstacktags) | When enabled, stack tags need to be assigned explicitly on a Stack. | 2.205.0 | new default |
|
|
108
108
|
| [@aws-cdk/aws-signer:signingProfileNamePassedToCfn](#aws-cdkaws-signersigningprofilenamepassedtocfn) | Pass signingProfileName to CfnSigningProfile | 2.212.0 | fix |
|
|
109
109
|
| [@aws-cdk/aws-ecs-patterns:secGroupsDisablesImplicitOpenListener](#aws-cdkaws-ecs-patternssecgroupsdisablesimplicitopenlistener) | Disable implicit openListener when custom security groups are provided | 2.214.0 | new default |
|
|
110
|
-
| [@aws-cdk/aws-ecs-patterns:uniqueTargetGroupId](#aws-cdkaws-ecs-patternsuniquetargetgroupid) | When enabled, ECS patterns will generate unique target group IDs to prevent conflicts during load balancer replacement |
|
|
111
|
-
| [@aws-cdk/aws-stepfunctions-tasks:httpInvokeDynamicJsonPathEndpoint](#aws-cdkaws-stepfunctions-taskshttpinvokedynamicjsonpathendpoint) | When enabled, allows using a dynamic apiEndpoint with JSONPath format in HttpInvoke tasks. |
|
|
110
|
+
| [@aws-cdk/aws-ecs-patterns:uniqueTargetGroupId](#aws-cdkaws-ecs-patternsuniquetargetgroupid) | When enabled, ECS patterns will generate unique target group IDs to prevent conflicts during load balancer replacement | 2.221.0 | fix |
|
|
111
|
+
| [@aws-cdk/aws-stepfunctions-tasks:httpInvokeDynamicJsonPathEndpoint](#aws-cdkaws-stepfunctions-taskshttpinvokedynamicjsonpathendpoint) | When enabled, allows using a dynamic apiEndpoint with JSONPath format in HttpInvoke tasks. | 2.221.0 | fix |
|
|
112
|
+
| [@aws-cdk/aws-elasticloadbalancingv2:networkLoadBalancerWithSecurityGroupByDefault](#aws-cdkaws-elasticloadbalancingv2networkloadbalancerwithsecuritygroupbydefault) | When enabled, Network Load Balancer will be created with a security group by default. | V2NEXT | new default |
|
|
112
113
|
|
|
113
114
|
<!-- END table -->
|
|
114
115
|
|
|
@@ -200,6 +201,7 @@ The following json shows the current recommended set of flags, as `cdk init` wou
|
|
|
200
201
|
"@aws-cdk/aws-ec2:requirePrivateSubnetsForEgressOnlyInternetGateway": true,
|
|
201
202
|
"@aws-cdk/aws-s3:publicAccessBlockedByDefault": true,
|
|
202
203
|
"@aws-cdk/aws-lambda:useCdkManagedLogGroup": true,
|
|
204
|
+
"@aws-cdk/aws-elasticloadbalancingv2:networkLoadBalancerWithSecurityGroupByDefault": true,
|
|
203
205
|
"@aws-cdk/aws-ecs-patterns:uniqueTargetGroupId": true
|
|
204
206
|
}
|
|
205
207
|
}
|
|
@@ -2300,7 +2302,7 @@ This is a breaking change as it will cause target group replacement when the fla
|
|
|
2300
2302
|
| Since | Unset behaves like | Recommended value |
|
|
2301
2303
|
| ----- | ----- | ----- |
|
|
2302
2304
|
| (not in v1) | | |
|
|
2303
|
-
|
|
|
2305
|
+
| 2.221.0 | `false` | `true` |
|
|
2304
2306
|
|
|
2305
2307
|
|
|
2306
2308
|
### @aws-cdk/aws-stepfunctions-tasks:httpInvokeDynamicJsonPathEndpoint
|
|
@@ -2316,7 +2318,24 @@ When disabled, the JSONPath apiEndpoint property will only support a static stri
|
|
|
2316
2318
|
| Since | Unset behaves like | Recommended value |
|
|
2317
2319
|
| ----- | ----- | ----- |
|
|
2318
2320
|
| (not in v1) | | |
|
|
2319
|
-
|
|
|
2321
|
+
| 2.221.0 | `true` | `true` |
|
|
2322
|
+
|
|
2323
|
+
|
|
2324
|
+
### @aws-cdk/aws-elasticloadbalancingv2:networkLoadBalancerWithSecurityGroupByDefault
|
|
2325
|
+
|
|
2326
|
+
*When enabled, Network Load Balancer will be created with a security group by default.*
|
|
2327
|
+
|
|
2328
|
+
Flag type: New default behavior
|
|
2329
|
+
|
|
2330
|
+
When this feature flag is enabled, Network Load Balancer will be created with a security group by default.
|
|
2331
|
+
|
|
2332
|
+
|
|
2333
|
+
| Since | Unset behaves like | Recommended value |
|
|
2334
|
+
| ----- | ----- | ----- |
|
|
2335
|
+
| (not in v1) | | |
|
|
2336
|
+
| V2NEXT | `false` | `true` |
|
|
2337
|
+
|
|
2338
|
+
**Compatibility with old behavior:** Disable the feature flag to create Network Load Balancer without a security group by default.
|
|
2320
2339
|
|
|
2321
2340
|
|
|
2322
2341
|
<!-- END details -->
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: konokenj.cdk-api-mcp-server
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.51.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
|
[](https://pypi.org/project/konokenj.cdk-api-mcp-server)
|
|
27
27
|
|
|
28
28
|
<!-- DEP-VERSIONS-START -->
|
|
29
|
-
[](https://github.com/konokenj/cdk-api-mcp-server/blob/main/current-versions/aws-cdk.txt)
|
|
30
30
|
<!-- DEP-VERSIONS-END -->
|
|
31
31
|
|
|
32
32
|
---
|
{konokenj_cdk_api_mcp_server-0.50.0.dist-info → konokenj_cdk_api_mcp_server-0.51.0.dist-info}/RECORD
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
cdk_api_mcp_server/__about__.py,sha256=
|
|
1
|
+
cdk_api_mcp_server/__about__.py,sha256=wlgAQ3B3wATW8z6aaZQmTw1D4VHqQBjNiASXyYu9Qdg,129
|
|
2
2
|
cdk_api_mcp_server/__init__.py,sha256=yJA6yIEhJviC-qNlB-nC6UR1JblQci_d84i-viHZkc0,187
|
|
3
3
|
cdk_api_mcp_server/models.py,sha256=cMS1Hi29M41YjuBxqqrzNrNvyG3MgnUBb1SqYpMCJ30,692
|
|
4
4
|
cdk_api_mcp_server/resources.py,sha256=R7LVwn29I4BJzU5XAwKbX8j6uy-3ZxcB1b0HzZ_Z2PI,6689
|
|
@@ -9,7 +9,7 @@ cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/app-staging-synthesizer
|
|
|
9
9
|
cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/aws-amplify-alpha/README.md,sha256=OIdszebPa0EqMIaHhqWgH6A64AcwQioIKC-NHDyZKrI,12636
|
|
10
10
|
cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/aws-applicationsignals-alpha/README.md,sha256=6nqc-WbHB1iFE3vXDr6hyQs8tYS6wwnWutXePY4EF4w,10873
|
|
11
11
|
cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/aws-apprunner-alpha/README.md,sha256=Jtm3RbnP4jQy8BYXwHvaRbMKizUjr4SqvimVMYhu6WQ,11982
|
|
12
|
-
cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/aws-bedrock-agentcore-alpha/README.md,sha256=
|
|
12
|
+
cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/aws-bedrock-agentcore-alpha/README.md,sha256=Guco4NsWQmSm05TrYD55t6BnL1dugOUwH_ZHmt6b14o,35627
|
|
13
13
|
cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/aws-bedrock-alpha/README.md,sha256=o4IpchOHFzGdZdeX9WPIfFyHAs98uLKIkfSlBOgygB0,65269
|
|
14
14
|
cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/aws-cloud9-alpha/README.md,sha256=0N8kldvHAKsNQHKtsj8PaQywiDUVrd6rEwVNQV0equY,7718
|
|
15
15
|
cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/aws-codestar-alpha/README.md,sha256=J-c-thqWwZFQT3Exjr_AY95BBgTA14Wb9aJ32gmEizQ,1509
|
|
@@ -29,7 +29,7 @@ cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/aws-kinesisanalytics-fl
|
|
|
29
29
|
cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/aws-lambda-go-alpha/README.md,sha256=4coywZWLJnuLG5dfL7KeDKYnen8lnuBuCVh3i-sPO80,10644
|
|
30
30
|
cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/aws-lambda-python-alpha/README.md,sha256=xG6KK3MhND12qlwfM6N0NIs1h75mlBxpC-Jx0xdyNzI,11776
|
|
31
31
|
cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/aws-location-alpha/README.md,sha256=rqUOPlv75EaHggDbeRCRhIXIo-rN9elMpeUApG_7Oaw,8041
|
|
32
|
-
cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/aws-msk-alpha/README.md,sha256=
|
|
32
|
+
cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/aws-msk-alpha/README.md,sha256=AsSJkhmIOowiqTw3DJRPmw2vd1LlhVDrohaDjHvxx3o,9288
|
|
33
33
|
cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/aws-neptune-alpha/README.md,sha256=nshlXtSi7Q-R5ZF9b2GPuIJk8lSqpglafhKYXdlX3w0,9077
|
|
34
34
|
cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/aws-pipes-alpha/README.md,sha256=xbuQ4lkJLCThuzdgT87RQd-9BMJhPuSejHY90D5thq8,15012
|
|
35
35
|
cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/aws-pipes-enrichments-alpha/README.md,sha256=xAEKkm8n4OdcuEXJ7PwQGZh65hL2zTJxNo46-3WdYOM,3142
|
|
@@ -412,7 +412,7 @@ cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-codepipeline-act
|
|
|
412
412
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-codepipeline-actions/integ.pipeline-ecr-source.ts,sha256=iL19rhSPBw3a74vVKNnbyFZqHSsGPNmbtkl9W7BpiFU,3117
|
|
413
413
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-codepipeline-actions/integ.pipeline-ecs-deploy.ts,sha256=S0sQQE01EtB9eGRdh0CMjKMq9y1iA2_JZMgoAJ9KJpc,3296
|
|
414
414
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-codepipeline-actions/integ.pipeline-ecs-separate-source.lit.ts,sha256=4gzbdTFIVxqlvl4VJPxJ-5mg3tXdvu9jCAiMzMxlzyg,8314
|
|
415
|
-
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-codepipeline-actions/integ.pipeline-elastic-beanstalk-deploy.ts,sha256=
|
|
415
|
+
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-codepipeline-actions/integ.pipeline-elastic-beanstalk-deploy.ts,sha256=AKulRWu2nFdyTrL9olTlI5R_C0Elk3OrBS87mFHnrn8,5646
|
|
416
416
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-codepipeline-actions/integ.pipeline-events.ts,sha256=GlIigr-IQ80xWtanSq06gRxPvNVtRbh7kR0X09b8YBA,2224
|
|
417
417
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-codepipeline-actions/integ.pipeline-invoke-action.ts,sha256=mLIohxRn-3Lx1HUTvQTjsoLnWu63kucyvpqqQwAvgQo,3486
|
|
418
418
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-codepipeline-actions/integ.pipeline-jenkins.ts,sha256=OIG2DO7Nc8mVT9wfFaZqgWjOHKkc_SJAHwfGXohT_bw,1827
|
|
@@ -476,7 +476,7 @@ cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-docdb/integ.clus
|
|
|
476
476
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-docdb/integ.cluster-serverless.ts,sha256=fVUwucggIFd_bkV6cMKFoO6UE8l_yImtyGyMupGc_Qw,971
|
|
477
477
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-docdb/integ.cluster-storage-type.ts,sha256=lY6eDVhKPOLF06uUT_jl-ao-mwllhXiJalS1GRqGEHY,888
|
|
478
478
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-docdb/integ.cluster.ts,sha256=9CI-3GXkVKVedg642mBMv5fBrqeSXRLfsvoftA1OM7s,1683
|
|
479
|
-
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-dynamodb/README.md,sha256=
|
|
479
|
+
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-dynamodb/README.md,sha256=By2EBHauldDFOe-zwjaN59Tml5f4x4Dv4WH3pdJR5cs,41485
|
|
480
480
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-dynamodb/TABLE_V1_API.md,sha256=dmKwhQAS6tPwAeL4_8zeI8T51JfMOKmgjEq8Wa560Eg,11568
|
|
481
481
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-dynamodb/index.md,sha256=8s_S7B1K2Gwh3DlcQ96Sfa1_ttS_OsuIC2F2CR35-kA,2292
|
|
482
482
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-dynamodb/integ.autoscaling.lit.ts,sha256=bWjJR6OD8ieTIU0KJt2okeX_D2DmXzLwl-j2HEf09KE,891
|
|
@@ -487,6 +487,7 @@ cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-dynamodb/integ.d
|
|
|
487
487
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-dynamodb/integ.dynamodb-v2.policy-ff.ts,sha256=-JKTlVKwPcY0tUgTubiDv4c8uhgPU62JaC4QPEoQ0MM,1257
|
|
488
488
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-dynamodb/integ.dynamodb-v2.policy.ts,sha256=5fevoFd7tTTqIGliE_p3Q1BDpQqsGHAWgkSNNsWYaQI,1197
|
|
489
489
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-dynamodb/integ.dynamodb-v2.warm-throughput.ts,sha256=ehV4hj424r-8qGLZDubScpXvR8XVUcm_2Qjicez-mlE,1402
|
|
490
|
+
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-dynamodb/integ.dynamodb.add-to-resource-policy.ts,sha256=-DxXCeqry-ityog_PayNf7E2xx15JTSvqG7i1Cnw_bI,3378
|
|
490
491
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-dynamodb/integ.dynamodb.alarm-metrics.ts,sha256=4hq2piVo7Kl_GdSfhQE7R48uLFXEqfsQN2wNJlODUa8,1321
|
|
491
492
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-dynamodb/integ.dynamodb.cci.ts,sha256=yID9gb2U338VoUPVnJ2Ji7CiXMsgwCVZDWI8IZCZazg,878
|
|
492
493
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-dynamodb/integ.dynamodb.contirubtor-insights-for-gsi.ts,sha256=WE7pU__78GArHQTeJpxCeb2A-bfHvLtLLZspyhCK08o,1313
|
|
@@ -495,7 +496,7 @@ cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-dynamodb/integ.d
|
|
|
495
496
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-dynamodb/integ.dynamodb.mixed-key-gsi.ts,sha256=QawM6PMNVb3x21XAlopgdA-6rF6-0GhCWf6rYzVUXDk,1014
|
|
496
497
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-dynamodb/integ.dynamodb.ondemand.ts,sha256=a3HjfcmFcnCS_AG4WctfRNv-27yrCcLks2_O3pe6eKw,4889
|
|
497
498
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-dynamodb/integ.dynamodb.pitr.ts,sha256=2KMxFcbPQ6nSrTmGZISPvLGtgFTrya9XTJExKMpP-mo,847
|
|
498
|
-
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-dynamodb/integ.dynamodb.policy.ts,sha256=
|
|
499
|
+
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-dynamodb/integ.dynamodb.policy.ts,sha256=p43hUlWISLo5slIxfAfH17n77bKiuxkjbcJYyC-yUqM,2580
|
|
499
500
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-dynamodb/integ.dynamodb.sse.ts,sha256=yhj0Uv2zqqRGo7YoQgAeYb2pdXOOgD9RQ7Li2M4IqqE,5086
|
|
500
501
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-dynamodb/integ.dynamodb.ts,sha256=k0OPrden3gGG4rTT6YmI8l16tiNsilhiMT6zdvx7Sdw,5330
|
|
501
502
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-dynamodb/integ.dynamodb.warm-throughput.ts,sha256=BvuRnpHDCTS5xJEPuN-7Ns18sLsDLyuaT8l1w04W4s4,1129
|
|
@@ -565,7 +566,7 @@ cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ec2/integ.vpc-fl
|
|
|
565
566
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ec2/integ.vpc-flow-logs-from-transit-gateway.ts,sha256=pI_dHdAMrN6RZJkG2xy2Bzmh6pdUNbNPxJRsIyOA2uM,1052
|
|
566
567
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ec2/integ.vpc-flow-logs-interval.ts,sha256=FIKnyNDtCikGWNfTqCCuh4kQ-7SFONaXyc9FM7zrRM8,2511
|
|
567
568
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ec2/integ.vpc-flow-logs-kinesis.ts,sha256=gezuL7HbIoLXslpaCxpKYH0_y4OBcwcLPHyZ0t30me0,1866
|
|
568
|
-
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ec2/integ.vpc-flow-logs.ts,sha256=
|
|
569
|
+
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ec2/integ.vpc-flow-logs.ts,sha256=Jk7NZZWqAnC6tM8duqDFZKY_iaW5ktLxtmK02QgFSPA,4848
|
|
569
570
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ec2/integ.vpc-gateway.ts,sha256=3FWBiViVwfNTQVawlavaJgyCjAkLmSPD8TT3glVjgxc,756
|
|
570
571
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ec2/integ.vpc-global-endpoint.ts,sha256=Agfu0a9f4DTGrDeTn-vxAxSRyScyHj03xBuPpTNoYQg,2004
|
|
571
572
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ec2/integ.vpc-ipam.ts,sha256=qCgXOaoWO-eAEtE-BtZXTDKJGA3SUIpE86MvwRFSw1Q,2183
|
|
@@ -742,7 +743,7 @@ cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-eks/integ.nodegr
|
|
|
742
743
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-elasticloadbalancing/README.md,sha256=TvRV54AcSiSZ3uOENOGmzkiBBRuHSG3DeEqgW_8FkZs,1795
|
|
743
744
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-elasticloadbalancing/integ.elb.ts,sha256=6qAybkYElxtfNefo1IpFo8MgrCubixLs2hTUUPeZoRg,555
|
|
744
745
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-elasticloadbalancing/integ.instanceTarget.elb.ts,sha256=aSGKHAGZrvvVdE_IVZ2M6TZdKer0j5qO6LWbjPdrdc0,1696
|
|
745
|
-
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-elasticloadbalancingv2/README.md,sha256=
|
|
746
|
+
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-elasticloadbalancingv2/README.md,sha256=sU_TyYZlaA_EglNu0N-syg-64d5as25HGHXP2EdeibY,42566
|
|
746
747
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-elasticloadbalancingv2/integ.alb-lambda-multi-value-headers.ts,sha256=4lGGHP1caV-HslGzLijjSQLd46Ha40rbrFnqW_t0ovk,2631
|
|
747
748
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-elasticloadbalancingv2/integ.alb-mtls.ts,sha256=MLqCLJKd4FOCLcHkqZHoJghi2tYMmqpRoDzQHDNvnHQ,5635
|
|
748
749
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-elasticloadbalancingv2/integ.alb-target-group-attributes.ts,sha256=I1YcQmzoqEx_H9mPq1smfyhScse2QSzBXf9XDdCsDhk,1370
|
|
@@ -774,6 +775,7 @@ cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-elasticloadbalan
|
|
|
774
775
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-elasticloadbalancingv2/integ.nlb.dualstack.internet-facing.ts,sha256=Oq0g49WEpoBwqxnEpOspNBulRf2AwTPyaSZWMLQngac,2911
|
|
775
776
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-elasticloadbalancingv2/integ.nlb.enforce-sg-inbound-rules.ts,sha256=lp2AWSShgI7_ygh5Knk2z2pimqAmU83Cjk8xuwsntHY,683
|
|
776
777
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-elasticloadbalancingv2/integ.nlb.minimum-capacity-unit.ts,sha256=IgdpjpSoghFYXj6hLnjJO48YNjMUz-kQPlKjjGgD7xw,1002
|
|
778
|
+
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-elasticloadbalancingv2/integ.nlb.security-group.ts,sha256=tNLpJZucnYJNt59WiQfLDTO8bDHZOqY1XBtGi36xUiE,2215
|
|
777
779
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-elasticloadbalancingv2/integ.nlb.ts,sha256=GQbiAqYnvHwivh8EU24FSWoCw7fBAaty2viAAxe-l1U,2044
|
|
778
780
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-elasticloadbalancingv2/integ.vpc-endpoint-service.ts,sha256=RIjjljBxQ0H92qte2h-_So_STAeKc4Whaditx5vet-s,1884
|
|
779
781
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-elasticloadbalancingv2-actions/README.md,sha256=osC-44TUVnjDBmtQi7L-8ZPZk6Fx2Z_p2hjmIBMa7FA,1975
|
|
@@ -800,7 +802,7 @@ cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-events/integ.eve
|
|
|
800
802
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-events/integ.eventbus-grants.ts,sha256=c3Ffvk_79M7n4ILdM8mODvrXasTxavCa5yaqqkrmdlY,6768
|
|
801
803
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-events/integ.eventbus.ts,sha256=zj7YkMTjU-Ga3jgbxqgYBkDlTFa5fMW4ANO1O69uHWI,1226
|
|
802
804
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-events/integ.rule.ts,sha256=nGg_Pob8FdnvTvrdU2q844-oj80KP0j8NVKRhLS-feU,2503
|
|
803
|
-
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-events-targets/README.md,sha256=
|
|
805
|
+
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-events-targets/README.md,sha256=24lsnZU79VNiJHvwZCDNHCobR2q8FFlGW2bpTnvirBc,22857
|
|
804
806
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-events-targets/integ.api-destination.ts,sha256=Oa05ARryXd4Zpd9mRsylvwWddReX1BrqAcoLhZ3595o,2545
|
|
805
807
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-events-targets/integ.api-gateway.ts,sha256=uMEfzDgrNkLx7MKIlyBzbELD6EHkK9mQhV6A4DltkeE,1976
|
|
806
808
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-events-targets/integ.api-gatewayv2.ts,sha256=FhorcKnCbnN4Si2Vx8AfWINKZ4av_7TS8Icru4CFfUw,919
|
|
@@ -811,9 +813,9 @@ cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-events-targets/i
|
|
|
811
813
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-events-targets/integ.event-ec2-task.ts,sha256=oQNO0_vNLwMDWLNVfVyoAR_nsgkJkEiPJJza2PweTP0,2127
|
|
812
814
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-events-targets/integ.event-fargate-task.ts,sha256=uK-b1S5bSrVqltbGsd8EUwu37LczNYqrZxDcgFkXnbI,2735
|
|
813
815
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-events-targets/integ.events.ts,sha256=s5N9AyCD7mWoxuwpIADVDUj-3mSB8lpyOdvhNwa4SzI,1464
|
|
816
|
+
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-events-targets/integ.firehose-delivery-stream.ts,sha256=8JcDPEHhKqPpWh6bdlhLtok_WLDZ0GHsdJtqeBnHGD8,1610
|
|
814
817
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-events-targets/integ.job-definition-events.d.ts,sha256=jmCbtxwguFjHfw6fkLsTGduEd7E_n5ZfGh4YUkv1CIE,11
|
|
815
818
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-events-targets/integ.job-definition-events.ts,sha256=L5KiOtOHUkWLZt-uBPNvXQg-TDDIhASsXvk6eRAFRFc,1381
|
|
816
|
-
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-events-targets/integ.kinesis-firehose-stream.ts,sha256=6z6UpemJ1vDxqGCvcu64zTvSwSOHeaa1tVQiDskU1os,1099
|
|
817
819
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-events-targets/integ.kinesis-stream-customer-key.ts,sha256=LqPBpY1lV06cF--K3qSXfUR8dtqbNb6ZCcLsGZDpUrg,883
|
|
818
820
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-events-targets/integ.kinesis-stream-dead-letter-queue.ts,sha256=5i_MgLDvb7m405ji-JY2uzjqSJGMRFZNWHr2JQGd4KU,865
|
|
819
821
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-events-targets/integ.kinesis-stream.ts,sha256=8Vmd-jqRrVJhHAxgy0elQunIoKs2UANvSbW1O6nnsas,690
|
|
@@ -1402,7 +1404,7 @@ cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/custom-resources/int
|
|
|
1402
1404
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/custom-resources/integ.provider-with-waiter-state-machine-custom-role.ts,sha256=60mjzf_2NI9zO30B2Guye5sA7kxIl4yrLMXUEWIDO9I,2401
|
|
1403
1405
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/custom-resources/integ.provider-with-waiter-state-machine.ts,sha256=6Ci2_ABcu5azSj1f0EzY1VD4lQUg9KI5l1Q7ieejI-0,2058
|
|
1404
1406
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/custom-resources/integ.provider.ts,sha256=u_YVV0YZk6hyIxo5JOOSwwUORbqS3BVbJU6DIAwxuk0,1814
|
|
1405
|
-
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/cx-api/FEATURE_FLAGS.md,sha256=
|
|
1407
|
+
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/cx-api/FEATURE_FLAGS.md,sha256=dHJMOjPOzD5lNAQjTiy4fTv0vG3XmzSPL9dVyo-MwC0,111533
|
|
1406
1408
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/cx-api/NESTED_ASSEMBLIES.md,sha256=P8PNyr4hIC_i-9aUxa301-5-N4tLcoHYnELBp3C6SQQ,4949
|
|
1407
1409
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/cx-api/README.md,sha256=4Gvb735iDvpcWvocmAezGrwcia_LIhv4j6rS6_nFKeE,27422
|
|
1408
1410
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/lambda-layer-awscli/README.md,sha256=kMrrptXZcAiK_TXRQD4XcaNRa3RXaIoIUQRZYi29b30,681
|
|
@@ -1433,8 +1435,8 @@ cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/pipelines/integ.pipe
|
|
|
1433
1435
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/region-info/README.md,sha256=vewWkV3ds9o9iyyYaJBNTkaKJ2XA6K2yF17tAxUnujg,2718
|
|
1434
1436
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/triggers/README.md,sha256=hYIx7DbG_7p4LYLUfxDwgIQjw9UNdz1GLrqDe8_Dbko,4132
|
|
1435
1437
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/triggers/integ.triggers.ts,sha256=4OHplMoBOgHGkktAzoU-TuNmJQS5wGAUvBfj5bGSe_Y,2807
|
|
1436
|
-
konokenj_cdk_api_mcp_server-0.
|
|
1437
|
-
konokenj_cdk_api_mcp_server-0.
|
|
1438
|
-
konokenj_cdk_api_mcp_server-0.
|
|
1439
|
-
konokenj_cdk_api_mcp_server-0.
|
|
1440
|
-
konokenj_cdk_api_mcp_server-0.
|
|
1438
|
+
konokenj_cdk_api_mcp_server-0.51.0.dist-info/METADATA,sha256=fsIE1V36P5u1agmMVTotX_jp5_Bq19lOxNu7w2URyak,2646
|
|
1439
|
+
konokenj_cdk_api_mcp_server-0.51.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
|
1440
|
+
konokenj_cdk_api_mcp_server-0.51.0.dist-info/entry_points.txt,sha256=bVDhMdyCC1WNMPOMbmB82jvWII2CIrwTZDygdCf0cYQ,79
|
|
1441
|
+
konokenj_cdk_api_mcp_server-0.51.0.dist-info/licenses/LICENSE.txt,sha256=5OIAASeg1HM22mVZ1enz9bgZ7TlsGfWXnj02P9OgFyk,1098
|
|
1442
|
+
konokenj_cdk_api_mcp_server-0.51.0.dist-info/RECORD,,
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
import * as events from 'aws-cdk-lib/aws-events';
|
|
2
|
-
import * as iam from 'aws-cdk-lib/aws-iam';
|
|
3
|
-
import * as firehose from 'aws-cdk-lib/aws-kinesisfirehose';
|
|
4
|
-
import * as s3 from 'aws-cdk-lib/aws-s3';
|
|
5
|
-
import * as cdk from 'aws-cdk-lib';
|
|
6
|
-
import * as targets from 'aws-cdk-lib/aws-events-targets';
|
|
7
|
-
|
|
8
|
-
// ---------------------------------
|
|
9
|
-
// Define a rule that triggers a put to a Kinesis stream every 1min.
|
|
10
|
-
|
|
11
|
-
const app = new cdk.App();
|
|
12
|
-
|
|
13
|
-
const stack = new cdk.Stack(app, 'aws-cdk-firehose-event-target');
|
|
14
|
-
|
|
15
|
-
const bucket = new s3.Bucket(stack, 'firehose-bucket');
|
|
16
|
-
const firehoseRole = new iam.Role(stack, 'firehose-role', {
|
|
17
|
-
assumedBy: new iam.ServicePrincipal('firehose.amazonaws.com'),
|
|
18
|
-
});
|
|
19
|
-
const stream = new firehose.CfnDeliveryStream(stack, 'MyStream', {
|
|
20
|
-
extendedS3DestinationConfiguration: {
|
|
21
|
-
bucketArn: bucket.bucketArn,
|
|
22
|
-
roleArn: firehoseRole.roleArn,
|
|
23
|
-
},
|
|
24
|
-
});
|
|
25
|
-
bucket.grantReadWrite(firehoseRole);
|
|
26
|
-
|
|
27
|
-
const event = new events.Rule(stack, 'EveryMinute', {
|
|
28
|
-
schedule: events.Schedule.rate(cdk.Duration.minutes(1)),
|
|
29
|
-
});
|
|
30
|
-
|
|
31
|
-
event.addTarget(new targets.KinesisFirehoseStream(stream, {}));
|
|
32
|
-
|
|
33
|
-
app.synth();
|
{konokenj_cdk_api_mcp_server-0.50.0.dist-info → konokenj_cdk_api_mcp_server-0.51.0.dist-info}/WHEEL
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|