konokenj.cdk-api-mcp-server 0.68.0__py3-none-any.whl → 0.70.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-iot-actions-alpha/README.md +20 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/mixins-preview/README.md +4 -3
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigatewayv2-integrations/README.md +52 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigatewayv2-integrations/integ.eventbridge.ts +48 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecr-assets/README.md +23 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs/README.md +111 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs/integ.canary-deployment-strategy.ts +117 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs/integ.linear-deployment-strategy.ts +117 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs/integ.none-log-driver.ts +23 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-events/README.md +6 -1
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-iam/README.md +1 -1
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-logs/README.md +13 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-logs/integ.loggroup-deletionprotection.ts +14 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-opensearchservice/README.md +33 -1
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-rds/README.md +65 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-rds/integ.cluster-volume-iops-metric.ts +47 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-rds/integ.instance-iops-metric.ts +36 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-rds/integ.proxy-default-auth-scheme.ts +37 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions/README.md +13 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions/integ.map-jsonata-maxconcurrency.ts +34 -0
- {konokenj_cdk_api_mcp_server-0.68.0.dist-info → konokenj_cdk_api_mcp_server-0.70.0.dist-info}/METADATA +2 -2
- {konokenj_cdk_api_mcp_server-0.68.0.dist-info → konokenj_cdk_api_mcp_server-0.70.0.dist-info}/RECORD +26 -17
- {konokenj_cdk_api_mcp_server-0.68.0.dist-info → konokenj_cdk_api_mcp_server-0.70.0.dist-info}/WHEEL +0 -0
- {konokenj_cdk_api_mcp_server-0.68.0.dist-info → konokenj_cdk_api_mcp_server-0.70.0.dist-info}/entry_points.txt +0 -0
- {konokenj_cdk_api_mcp_server-0.68.0.dist-info → konokenj_cdk_api_mcp_server-0.70.0.dist-info}/licenses/LICENSE.txt +0 -0
cdk_api_mcp_server/__about__.py
CHANGED
|
@@ -371,6 +371,26 @@ topicRule.addAction(
|
|
|
371
371
|
);
|
|
372
372
|
```
|
|
373
373
|
|
|
374
|
+
You can enable batching to reduce costs and improve efficiency:
|
|
375
|
+
|
|
376
|
+
```ts
|
|
377
|
+
import { Size } from 'aws-cdk-lib';
|
|
378
|
+
|
|
379
|
+
declare const topicRule: iot.TopicRule;
|
|
380
|
+
|
|
381
|
+
topicRule.addAction(
|
|
382
|
+
new actions.HttpsAction('https://example.com/endpoint', {
|
|
383
|
+
batchConfig: {
|
|
384
|
+
maxBatchOpenDuration: Duration.millis(100),
|
|
385
|
+
maxBatchSize: 5,
|
|
386
|
+
maxBatchSizeBytes: Size.kibibytes(1),
|
|
387
|
+
},
|
|
388
|
+
}),
|
|
389
|
+
);
|
|
390
|
+
```
|
|
391
|
+
|
|
392
|
+
For more information about the batching configuration, see the [AWS IoT Core documentation](https://docs.aws.amazon.com/iot/latest/developerguide/http_batching.html).
|
|
393
|
+
|
|
374
394
|
## Write Data to Open Search Service
|
|
375
395
|
|
|
376
396
|
The code snippet below creates an AWS IoT Rule that writes data
|
|
@@ -236,7 +236,7 @@ declare const fn: lambda.Function;
|
|
|
236
236
|
|
|
237
237
|
new events.Rule(scope, 'Rule', {
|
|
238
238
|
eventPattern: bucketEvents.objectCreatedPattern({
|
|
239
|
-
object: { key:
|
|
239
|
+
object: { key: events.Match.wildcard('uploads/*') },
|
|
240
240
|
}),
|
|
241
241
|
targets: [new targets.LambdaFunction(fn)]
|
|
242
242
|
});
|
|
@@ -248,7 +248,7 @@ const cfnBucketEvents = BucketEvents.fromBucket(cfnBucket);
|
|
|
248
248
|
new events.CfnRule(scope, 'CfnRule', {
|
|
249
249
|
state: 'ENABLED',
|
|
250
250
|
eventPattern: cfnBucketEvents.objectCreatedPattern({
|
|
251
|
-
object: { key:
|
|
251
|
+
object: { key: events.Match.wildcard('uploads/*') },
|
|
252
252
|
}),
|
|
253
253
|
targets: [{ arn: fn.functionArn, id: 'L1' }]
|
|
254
254
|
});
|
|
@@ -273,13 +273,14 @@ const pattern = bucketEvents.objectCreatedPattern();
|
|
|
273
273
|
|
|
274
274
|
```typescript
|
|
275
275
|
import { BucketEvents } from '@aws-cdk/mixins-preview/aws-s3/events';
|
|
276
|
+
import * as events from 'aws-cdk-lib/aws-events';
|
|
276
277
|
|
|
277
278
|
declare const bucket: s3.Bucket;
|
|
278
279
|
const bucketEvents = BucketEvents.fromBucket(bucket);
|
|
279
280
|
|
|
280
281
|
const pattern = bucketEvents.objectCreatedPattern({
|
|
281
282
|
eventMetadata: {
|
|
282
|
-
region:
|
|
283
|
+
region: events.Match.prefix('us-'),
|
|
283
284
|
version: ['0']
|
|
284
285
|
}
|
|
285
286
|
});
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigatewayv2-integrations/README.md
CHANGED
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
- [HTTP Proxy Integration](#http-proxy)
|
|
8
8
|
- [StepFunctions Integration](#stepfunctions-integration)
|
|
9
9
|
- [SQS Integration](#sqs-integration)
|
|
10
|
+
- [EventBridge Integration](#eventbridge-integration)
|
|
10
11
|
- [Private Integration](#private-integration)
|
|
11
12
|
- [Request Parameters](#request-parameters)
|
|
12
13
|
- [WebSocket APIs](#websocket-apis)
|
|
@@ -249,6 +250,57 @@ new apigwv2.ParameterMapping()
|
|
|
249
250
|
.custom('QueueUrl', queue.queueUrl);
|
|
250
251
|
```
|
|
251
252
|
|
|
253
|
+
### EventBridge Integration
|
|
254
|
+
|
|
255
|
+
EventBridge integrations enable integrating an HTTP API route with Amazon EventBridge using the PutEvents API.
|
|
256
|
+
This allows the HTTP API to forward requests as events to an EventBridge event bus.
|
|
257
|
+
|
|
258
|
+
The following code configures EventBridge integrations:
|
|
259
|
+
|
|
260
|
+
```ts
|
|
261
|
+
import * as events from 'aws-cdk-lib/aws-events';
|
|
262
|
+
import { HttpEventBridgeIntegration } from 'aws-cdk-lib/aws-apigatewayv2-integrations';
|
|
263
|
+
|
|
264
|
+
declare const bus: events.IEventBus;
|
|
265
|
+
declare const httpApi: apigwv2.HttpApi;
|
|
266
|
+
|
|
267
|
+
// default integration (PutEvents)
|
|
268
|
+
httpApi.addRoutes({
|
|
269
|
+
path: '/default',
|
|
270
|
+
methods: [apigwv2.HttpMethod.POST],
|
|
271
|
+
integration: new HttpEventBridgeIntegration('DefaultEventBridgeIntegration', {
|
|
272
|
+
eventBusRef: bus.eventBusRef,
|
|
273
|
+
}),
|
|
274
|
+
});
|
|
275
|
+
|
|
276
|
+
// explicit subtype
|
|
277
|
+
httpApi.addRoutes({
|
|
278
|
+
path: '/put-events',
|
|
279
|
+
methods: [apigwv2.HttpMethod.POST],
|
|
280
|
+
integration: new HttpEventBridgeIntegration('ExplicitSubtypeIntegration', {
|
|
281
|
+
eventBusRef: bus.eventBusRef,
|
|
282
|
+
subtype: apigwv2.HttpIntegrationSubtype.EVENTBRIDGE_PUT_EVENTS,
|
|
283
|
+
}),
|
|
284
|
+
});
|
|
285
|
+
```
|
|
286
|
+
|
|
287
|
+
#### EventBridge integration parameter mappings
|
|
288
|
+
|
|
289
|
+
You can configure the custom parameter mappings of the EventBridge integration using the `parameterMapping` property of the `HttpEventBridgeIntegration` object.
|
|
290
|
+
|
|
291
|
+
By default, the integration expects the request body to contain `Detail`, `DetailType`, and `Source` fields.
|
|
292
|
+
|
|
293
|
+
```ts
|
|
294
|
+
import * as events from 'aws-cdk-lib/aws-events';
|
|
295
|
+
declare const bus: events.IEventBus;
|
|
296
|
+
|
|
297
|
+
new apigwv2.ParameterMapping()
|
|
298
|
+
// The following fields are required for the EventBridge PutEvents integration
|
|
299
|
+
.custom('Detail', '$request.body.Detail')
|
|
300
|
+
.custom('DetailType', '$request.body.DetailType')
|
|
301
|
+
.custom('Source', '$request.body.Source');
|
|
302
|
+
```
|
|
303
|
+
|
|
252
304
|
### Private Integration
|
|
253
305
|
|
|
254
306
|
Private integrations enable integrating an HTTP API route with private resources in a VPC, such as Application Load Balancers or
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import * as apigwv2 from 'aws-cdk-lib/aws-apigatewayv2';
|
|
2
|
+
import * as events from 'aws-cdk-lib/aws-events';
|
|
3
|
+
import { App, Stack } from 'aws-cdk-lib';
|
|
4
|
+
import { HttpEventBridgeIntegration } from 'aws-cdk-lib/aws-apigatewayv2-integrations';
|
|
5
|
+
import * as integ from '@aws-cdk/integ-tests-alpha';
|
|
6
|
+
|
|
7
|
+
const app = new App();
|
|
8
|
+
const stack = new Stack(app, 'eventbridge-integration');
|
|
9
|
+
|
|
10
|
+
const bus = new events.EventBus(stack, 'Bus');
|
|
11
|
+
|
|
12
|
+
const httpApi = new apigwv2.HttpApi(stack, 'Api');
|
|
13
|
+
httpApi.addRoutes({
|
|
14
|
+
path: '/default',
|
|
15
|
+
methods: [apigwv2.HttpMethod.POST],
|
|
16
|
+
integration: new HttpEventBridgeIntegration('defaultIntegration', {
|
|
17
|
+
eventBusRef: bus.eventBusRef,
|
|
18
|
+
}),
|
|
19
|
+
});
|
|
20
|
+
|
|
21
|
+
httpApi.addRoutes({
|
|
22
|
+
path: '/put-events',
|
|
23
|
+
methods: [apigwv2.HttpMethod.POST],
|
|
24
|
+
integration: new HttpEventBridgeIntegration('putEventsIntegration', {
|
|
25
|
+
eventBusRef: bus.eventBusRef,
|
|
26
|
+
subtype: apigwv2.HttpIntegrationSubtype.EVENTBRIDGE_PUT_EVENTS,
|
|
27
|
+
}),
|
|
28
|
+
});
|
|
29
|
+
|
|
30
|
+
const integTest = new integ.IntegTest(app, 'EventBridgeIntegrationIntegTest', {
|
|
31
|
+
testCases: [stack],
|
|
32
|
+
});
|
|
33
|
+
|
|
34
|
+
const defaultAssertion = integTest.assertions.httpApiCall(
|
|
35
|
+
`${httpApi.apiEndpoint}/default`, {
|
|
36
|
+
body: JSON.stringify({ Detail: JSON.stringify({ message: 'Hello World!' }), DetailType: 'MyDetailType', Source: 'my.source' }),
|
|
37
|
+
method: 'POST',
|
|
38
|
+
},
|
|
39
|
+
);
|
|
40
|
+
defaultAssertion.expect(integ.ExpectedResult.objectLike({ status: 200, statusText: 'OK' }));
|
|
41
|
+
|
|
42
|
+
const putEventsAssertion = integTest.assertions.httpApiCall(
|
|
43
|
+
`${httpApi.apiEndpoint}/put-events`, {
|
|
44
|
+
body: JSON.stringify({ Detail: JSON.stringify({ message: 'Hello Again!' }), DetailType: 'MyDetailType', Source: 'my.source' }),
|
|
45
|
+
method: 'POST',
|
|
46
|
+
},
|
|
47
|
+
);
|
|
48
|
+
putEventsAssertion.expect(integ.ExpectedResult.objectLike({ status: 200, statusText: 'OK' }));
|
|
@@ -59,6 +59,29 @@ variable in order to provide a custom Docker executable command or path. This ma
|
|
|
59
59
|
be needed when building in environments where the standard docker cannot be executed
|
|
60
60
|
(see https://github.com/aws/aws-cdk/issues/8460 for details).
|
|
61
61
|
|
|
62
|
+
### Docker Alternatives
|
|
63
|
+
|
|
64
|
+
The CDK supports several Docker alternatives through the `CDK_DOCKER` environment variable:
|
|
65
|
+
|
|
66
|
+
#### Finch (AWS-supported)
|
|
67
|
+
|
|
68
|
+
```bash
|
|
69
|
+
export CDK_DOCKER=finch
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
**Note**: For Finch, you may also need to set the `DOCKER_HOST` environment variable. The socket path is OS-specific (e.g., on macOS: `unix:///Applications/Finch/lima/data/finch/sock/finch.sock`).
|
|
73
|
+
|
|
74
|
+
#### Podman (Community-tested)
|
|
75
|
+
|
|
76
|
+
```bash
|
|
77
|
+
export CDK_DOCKER=podman
|
|
78
|
+
export DOCKER_HOST=$(podman machine inspect --format 'unix://{{.ConnectionInfo.PodmanSocket.Path}}')
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
**Note**: While Finch receives official AWS support, Podman is community-tested and may work for many use cases. The CDK doesn't check which Docker replacement you are using to determine if it's supported. If the tool has equivalent Docker commands and behaves similarly, it should work.
|
|
82
|
+
|
|
83
|
+
For some container runtimes, you may need to set the `DOCKER_HOST` environment variable to specify the correct socket path for the CDK to communicate with the container daemon.
|
|
84
|
+
|
|
62
85
|
SSH agent sockets or keys may be passed to docker build via `buildSsh`.
|
|
63
86
|
|
|
64
87
|
```ts
|
|
@@ -1291,6 +1291,7 @@ Currently Supported Log Drivers:
|
|
|
1291
1291
|
- syslog
|
|
1292
1292
|
- awsfirelens
|
|
1293
1293
|
- Generic
|
|
1294
|
+
- none
|
|
1294
1295
|
|
|
1295
1296
|
### awslogs Log Driver
|
|
1296
1297
|
|
|
@@ -1469,6 +1470,20 @@ taskDefinition.addContainer('TheContainer', {
|
|
|
1469
1470
|
});
|
|
1470
1471
|
```
|
|
1471
1472
|
|
|
1473
|
+
### none Log Driver
|
|
1474
|
+
|
|
1475
|
+
The none log driver disables logging for the container (Docker `none` driver).
|
|
1476
|
+
|
|
1477
|
+
```ts
|
|
1478
|
+
// Create a Task Definition for the container to start
|
|
1479
|
+
const taskDefinition = new ecs.Ec2TaskDefinition(this, 'TaskDef');
|
|
1480
|
+
taskDefinition.addContainer('TheContainer', {
|
|
1481
|
+
image: ecs.ContainerImage.fromRegistry('example-image'),
|
|
1482
|
+
memoryLimitMiB: 256,
|
|
1483
|
+
logging: ecs.LogDrivers.none(),
|
|
1484
|
+
});
|
|
1485
|
+
```
|
|
1486
|
+
|
|
1472
1487
|
## CloudMap Service Discovery
|
|
1473
1488
|
|
|
1474
1489
|
To register your ECS service with a CloudMap Service Registry, you may add the
|
|
@@ -1674,8 +1689,14 @@ declare const vpc: ec2.Vpc;
|
|
|
1674
1689
|
|
|
1675
1690
|
const cluster = new ecs.Cluster(this, 'Cluster', { vpc });
|
|
1676
1691
|
|
|
1692
|
+
const securityGroup = new ec2.SecurityGroup(this, 'SecurityGroup', {
|
|
1693
|
+
vpc,
|
|
1694
|
+
description: 'Security group for managed instances',
|
|
1695
|
+
});
|
|
1696
|
+
|
|
1677
1697
|
const miCapacityProvider = new ecs.ManagedInstancesCapacityProvider(this, 'MICapacityProvider', {
|
|
1678
1698
|
subnets: vpc.privateSubnets,
|
|
1699
|
+
securityGroups: [securityGroup],
|
|
1679
1700
|
instanceRequirements: {
|
|
1680
1701
|
vCpuCountMin: 1,
|
|
1681
1702
|
memoryMin: Size.gibibytes(2),
|
|
@@ -1748,10 +1769,16 @@ customInfrastructureRole.addToPolicy(new iam.PolicyStatement({
|
|
|
1748
1769
|
},
|
|
1749
1770
|
}));
|
|
1750
1771
|
|
|
1772
|
+
const securityGroup = new ec2.SecurityGroup(this, 'SecurityGroup', {
|
|
1773
|
+
vpc,
|
|
1774
|
+
description: 'Security group for managed instances',
|
|
1775
|
+
});
|
|
1776
|
+
|
|
1751
1777
|
const miCapacityProviderCustom = new ecs.ManagedInstancesCapacityProvider(this, 'MICapacityProviderCustomRoles', {
|
|
1752
1778
|
infrastructureRole: customInfrastructureRole,
|
|
1753
1779
|
ec2InstanceProfile: customInstanceProfile,
|
|
1754
1780
|
subnets: vpc.privateSubnets,
|
|
1781
|
+
securityGroups: [securityGroup],
|
|
1755
1782
|
});
|
|
1756
1783
|
|
|
1757
1784
|
// Add the capacity provider to the cluster
|
|
@@ -1789,8 +1816,14 @@ You can specify detailed instance requirements to control which types of instanc
|
|
|
1789
1816
|
```ts
|
|
1790
1817
|
declare const vpc: ec2.Vpc;
|
|
1791
1818
|
|
|
1819
|
+
const securityGroup = new ec2.SecurityGroup(this, 'SecurityGroup', {
|
|
1820
|
+
vpc,
|
|
1821
|
+
description: 'Security group for managed instances',
|
|
1822
|
+
});
|
|
1823
|
+
|
|
1792
1824
|
const miCapacityProvider = new ecs.ManagedInstancesCapacityProvider(this, 'MICapacityProvider', {
|
|
1793
1825
|
subnets: vpc.privateSubnets,
|
|
1826
|
+
securityGroups: [securityGroup],
|
|
1794
1827
|
instanceRequirements: {
|
|
1795
1828
|
// Required: CPU and memory constraints
|
|
1796
1829
|
vCpuCountMin: 2,
|
|
@@ -2320,6 +2353,84 @@ const target = service.loadBalancerTarget({
|
|
|
2320
2353
|
target.attachToApplicationTargetGroup(blueTargetGroup);
|
|
2321
2354
|
```
|
|
2322
2355
|
|
|
2356
|
+
## Buil-in Linear and Canary Deployments
|
|
2357
|
+
|
|
2358
|
+
Amazon ECS supports progressive deployment strategies that allow you to validate new service revisions before shifting all production traffic. Both strategies require an Application Load Balancer (ALB) with target groups for traffic routing.
|
|
2359
|
+
|
|
2360
|
+
### Linear Deployment
|
|
2361
|
+
|
|
2362
|
+
Linear deployment strategy shifts production traffic in equal percentage increments with configurable wait times between each step:
|
|
2363
|
+
|
|
2364
|
+
```ts
|
|
2365
|
+
declare const cluster: ecs.Cluster;
|
|
2366
|
+
declare const taskDefinition: ecs.TaskDefinition;
|
|
2367
|
+
declare const blueTargetGroup: elbv2.ApplicationTargetGroup;
|
|
2368
|
+
declare const greenTargetGroup: elbv2.ApplicationTargetGroup;
|
|
2369
|
+
declare const prodListenerRule: elbv2.ApplicationListenerRule;
|
|
2370
|
+
|
|
2371
|
+
const service = new ecs.FargateService(this, 'Service', {
|
|
2372
|
+
cluster,
|
|
2373
|
+
taskDefinition,
|
|
2374
|
+
deploymentStrategy: ecs.DeploymentStrategy.LINEAR,
|
|
2375
|
+
linearConfiguration: {
|
|
2376
|
+
stepPercent: 10.0,
|
|
2377
|
+
stepBakeTime: Duration.minutes(5),
|
|
2378
|
+
},
|
|
2379
|
+
});
|
|
2380
|
+
|
|
2381
|
+
const target = service.loadBalancerTarget({
|
|
2382
|
+
containerName: 'web',
|
|
2383
|
+
containerPort: 80,
|
|
2384
|
+
alternateTarget: new ecs.AlternateTarget('AlternateTarget', {
|
|
2385
|
+
alternateTargetGroup: greenTargetGroup,
|
|
2386
|
+
productionListener: ecs.ListenerRuleConfiguration.applicationListenerRule(prodListenerRule),
|
|
2387
|
+
}),
|
|
2388
|
+
});
|
|
2389
|
+
|
|
2390
|
+
target.attachToApplicationTargetGroup(blueTargetGroup);
|
|
2391
|
+
```
|
|
2392
|
+
|
|
2393
|
+
Valid values:
|
|
2394
|
+
- `stepPercent`: 3.0 to 100.0 (multiples of 0.1). Default: 10.0
|
|
2395
|
+
- `stepBakeTime`: 0 to 1440 minutes (24 hours). Default: 6 minutes
|
|
2396
|
+
|
|
2397
|
+
### Canary Deployment
|
|
2398
|
+
|
|
2399
|
+
Canary deployment strategy shifts a fixed percentage of traffic to the new service revision for testing, then shifts the remaining traffic after a bake period:
|
|
2400
|
+
|
|
2401
|
+
```ts
|
|
2402
|
+
declare const cluster: ecs.Cluster;
|
|
2403
|
+
declare const taskDefinition: ecs.TaskDefinition;
|
|
2404
|
+
declare const blueTargetGroup: elbv2.ApplicationTargetGroup;
|
|
2405
|
+
declare const greenTargetGroup: elbv2.ApplicationTargetGroup;
|
|
2406
|
+
declare const prodListenerRule: elbv2.ApplicationListenerRule;
|
|
2407
|
+
|
|
2408
|
+
const service = new ecs.FargateService(this, 'Service', {
|
|
2409
|
+
cluster,
|
|
2410
|
+
taskDefinition,
|
|
2411
|
+
deploymentStrategy: ecs.DeploymentStrategy.CANARY,
|
|
2412
|
+
canaryConfiguration: {
|
|
2413
|
+
stepPercent: 5.0,
|
|
2414
|
+
stepBakeTime: Duration.minutes(10),
|
|
2415
|
+
},
|
|
2416
|
+
});
|
|
2417
|
+
|
|
2418
|
+
const target = service.loadBalancerTarget({
|
|
2419
|
+
containerName: 'web',
|
|
2420
|
+
containerPort: 80,
|
|
2421
|
+
alternateTarget: new ecs.AlternateTarget('AlternateTarget', {
|
|
2422
|
+
alternateTargetGroup: greenTargetGroup,
|
|
2423
|
+
productionListener: ecs.ListenerRuleConfiguration.applicationListenerRule(prodListenerRule),
|
|
2424
|
+
}),
|
|
2425
|
+
});
|
|
2426
|
+
|
|
2427
|
+
target.attachToApplicationTargetGroup(blueTargetGroup);
|
|
2428
|
+
```
|
|
2429
|
+
|
|
2430
|
+
Valid values:
|
|
2431
|
+
- `stepPercent`: 0.1 to 100.0 (multiples of 0.1). Default: 5.0
|
|
2432
|
+
- `stepBakeTime`: 0 to 1440 minutes (24 hours). Default: 10 minutes
|
|
2433
|
+
|
|
2323
2434
|
## Daemon Scheduling Strategy
|
|
2324
2435
|
You can specify whether service use Daemon scheduling strategy by specifying `daemon` option in Service constructs. See [differences between Daemon and Replica scheduling strategy](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs_services.html)
|
|
2325
2436
|
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
import * as ec2 from 'aws-cdk-lib/aws-ec2';
|
|
2
|
+
import * as elbv2 from 'aws-cdk-lib/aws-elasticloadbalancingv2';
|
|
3
|
+
import * as cdk from 'aws-cdk-lib';
|
|
4
|
+
import * as ecs from 'aws-cdk-lib/aws-ecs';
|
|
5
|
+
import * as integ from '@aws-cdk/integ-tests-alpha';
|
|
6
|
+
|
|
7
|
+
const app = new cdk.App();
|
|
8
|
+
const stack = new cdk.Stack(app, 'aws-ecs-canary-deployment');
|
|
9
|
+
|
|
10
|
+
const vpc = new ec2.Vpc(stack, 'Vpc', { maxAzs: 2, restrictDefaultSecurityGroup: false });
|
|
11
|
+
const cluster = new ecs.Cluster(stack, 'FargateCluster', { vpc });
|
|
12
|
+
|
|
13
|
+
const blueTargetGroup = new elbv2.ApplicationTargetGroup(stack, 'BlueTG', {
|
|
14
|
+
vpc: cluster.vpc,
|
|
15
|
+
port: 80,
|
|
16
|
+
protocol: elbv2.ApplicationProtocol.HTTP,
|
|
17
|
+
targetType: elbv2.TargetType.IP,
|
|
18
|
+
healthCheck: {
|
|
19
|
+
path: '/',
|
|
20
|
+
healthyHttpCodes: '200',
|
|
21
|
+
},
|
|
22
|
+
});
|
|
23
|
+
|
|
24
|
+
const greenTargetGroup = new elbv2.ApplicationTargetGroup(stack, 'GreenTG', {
|
|
25
|
+
vpc: cluster.vpc,
|
|
26
|
+
port: 80,
|
|
27
|
+
protocol: elbv2.ApplicationProtocol.HTTP,
|
|
28
|
+
targetType: elbv2.TargetType.IP,
|
|
29
|
+
healthCheck: {
|
|
30
|
+
path: '/',
|
|
31
|
+
healthyHttpCodes: '200',
|
|
32
|
+
},
|
|
33
|
+
});
|
|
34
|
+
|
|
35
|
+
const lbSecurityGroup = new ec2.SecurityGroup(stack, 'LBSecurityGroup', {
|
|
36
|
+
vpc: cluster.vpc,
|
|
37
|
+
allowAllOutbound: true,
|
|
38
|
+
});
|
|
39
|
+
|
|
40
|
+
const ecsSecurityGroup = new ec2.SecurityGroup(stack, 'ECSSecurityGroup', {
|
|
41
|
+
vpc: cluster.vpc,
|
|
42
|
+
allowAllOutbound: true,
|
|
43
|
+
});
|
|
44
|
+
ecsSecurityGroup.addIngressRule(lbSecurityGroup, ec2.Port.tcp(80));
|
|
45
|
+
|
|
46
|
+
const alb = new elbv2.ApplicationLoadBalancer(stack, 'ALB', {
|
|
47
|
+
vpc: cluster.vpc,
|
|
48
|
+
internetFacing: true,
|
|
49
|
+
securityGroup: lbSecurityGroup,
|
|
50
|
+
idleTimeout: cdk.Duration.seconds(60),
|
|
51
|
+
});
|
|
52
|
+
|
|
53
|
+
const listener = alb.addListener('ALBListener', {
|
|
54
|
+
port: 80,
|
|
55
|
+
defaultAction: elbv2.ListenerAction.fixedResponse(404),
|
|
56
|
+
open: false,
|
|
57
|
+
});
|
|
58
|
+
|
|
59
|
+
const prodListenerRule = new elbv2.ApplicationListenerRule(stack, 'ALBProductionListenerRule', {
|
|
60
|
+
listener: listener,
|
|
61
|
+
priority: 1,
|
|
62
|
+
conditions: [
|
|
63
|
+
elbv2.ListenerCondition.pathPatterns(['/*']),
|
|
64
|
+
],
|
|
65
|
+
action: elbv2.ListenerAction.weightedForward([
|
|
66
|
+
{
|
|
67
|
+
targetGroup: blueTargetGroup,
|
|
68
|
+
weight: 100,
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
targetGroup: greenTargetGroup,
|
|
72
|
+
weight: 0,
|
|
73
|
+
},
|
|
74
|
+
]),
|
|
75
|
+
});
|
|
76
|
+
|
|
77
|
+
const taskDefinition = new ecs.FargateTaskDefinition(stack, 'TaskDef', {
|
|
78
|
+
memoryLimitMiB: 512,
|
|
79
|
+
cpu: 256,
|
|
80
|
+
});
|
|
81
|
+
|
|
82
|
+
taskDefinition.addContainer('container', {
|
|
83
|
+
containerName: 'nginx',
|
|
84
|
+
image: ecs.ContainerImage.fromRegistry('public.ecr.aws/nginx/nginx:latest'),
|
|
85
|
+
portMappings: [{
|
|
86
|
+
name: 'api',
|
|
87
|
+
containerPort: 80,
|
|
88
|
+
appProtocol: ecs.AppProtocol.http,
|
|
89
|
+
}],
|
|
90
|
+
});
|
|
91
|
+
|
|
92
|
+
const service = new ecs.FargateService(stack, 'Service', {
|
|
93
|
+
cluster,
|
|
94
|
+
taskDefinition,
|
|
95
|
+
securityGroups: [ecsSecurityGroup],
|
|
96
|
+
deploymentStrategy: ecs.DeploymentStrategy.CANARY,
|
|
97
|
+
canaryConfiguration: {
|
|
98
|
+
stepPercent: 5.0,
|
|
99
|
+
stepBakeTime: cdk.Duration.minutes(10),
|
|
100
|
+
},
|
|
101
|
+
});
|
|
102
|
+
|
|
103
|
+
const target = service.loadBalancerTarget({
|
|
104
|
+
containerName: 'nginx',
|
|
105
|
+
containerPort: 80,
|
|
106
|
+
protocol: ecs.Protocol.TCP,
|
|
107
|
+
alternateTarget: new ecs.AlternateTarget('LBAlternateOptions', {
|
|
108
|
+
alternateTargetGroup: greenTargetGroup,
|
|
109
|
+
productionListener: ecs.ListenerRuleConfiguration.applicationListenerRule(prodListenerRule),
|
|
110
|
+
}),
|
|
111
|
+
});
|
|
112
|
+
|
|
113
|
+
target.attachToApplicationTargetGroup(blueTargetGroup);
|
|
114
|
+
|
|
115
|
+
new integ.IntegTest(app, 'aws-ecs-canary', {
|
|
116
|
+
testCases: [stack],
|
|
117
|
+
});
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
import * as ec2 from 'aws-cdk-lib/aws-ec2';
|
|
2
|
+
import * as elbv2 from 'aws-cdk-lib/aws-elasticloadbalancingv2';
|
|
3
|
+
import * as cdk from 'aws-cdk-lib';
|
|
4
|
+
import * as ecs from 'aws-cdk-lib/aws-ecs';
|
|
5
|
+
import * as integ from '@aws-cdk/integ-tests-alpha';
|
|
6
|
+
|
|
7
|
+
const app = new cdk.App();
|
|
8
|
+
const stack = new cdk.Stack(app, 'aws-ecs-linear-deployment');
|
|
9
|
+
|
|
10
|
+
const vpc = new ec2.Vpc(stack, 'Vpc', { maxAzs: 2, restrictDefaultSecurityGroup: false });
|
|
11
|
+
const cluster = new ecs.Cluster(stack, 'FargateCluster', { vpc });
|
|
12
|
+
|
|
13
|
+
const blueTargetGroup = new elbv2.ApplicationTargetGroup(stack, 'BlueTG', {
|
|
14
|
+
vpc: cluster.vpc,
|
|
15
|
+
port: 80,
|
|
16
|
+
protocol: elbv2.ApplicationProtocol.HTTP,
|
|
17
|
+
targetType: elbv2.TargetType.IP,
|
|
18
|
+
healthCheck: {
|
|
19
|
+
path: '/',
|
|
20
|
+
healthyHttpCodes: '200',
|
|
21
|
+
},
|
|
22
|
+
});
|
|
23
|
+
|
|
24
|
+
const greenTargetGroup = new elbv2.ApplicationTargetGroup(stack, 'GreenTG', {
|
|
25
|
+
vpc: cluster.vpc,
|
|
26
|
+
port: 80,
|
|
27
|
+
protocol: elbv2.ApplicationProtocol.HTTP,
|
|
28
|
+
targetType: elbv2.TargetType.IP,
|
|
29
|
+
healthCheck: {
|
|
30
|
+
path: '/',
|
|
31
|
+
healthyHttpCodes: '200',
|
|
32
|
+
},
|
|
33
|
+
});
|
|
34
|
+
|
|
35
|
+
const lbSecurityGroup = new ec2.SecurityGroup(stack, 'LBSecurityGroup', {
|
|
36
|
+
vpc: cluster.vpc,
|
|
37
|
+
allowAllOutbound: true,
|
|
38
|
+
});
|
|
39
|
+
|
|
40
|
+
const ecsSecurityGroup = new ec2.SecurityGroup(stack, 'ECSSecurityGroup', {
|
|
41
|
+
vpc: cluster.vpc,
|
|
42
|
+
allowAllOutbound: true,
|
|
43
|
+
});
|
|
44
|
+
ecsSecurityGroup.addIngressRule(lbSecurityGroup, ec2.Port.tcp(80));
|
|
45
|
+
|
|
46
|
+
const alb = new elbv2.ApplicationLoadBalancer(stack, 'ALB', {
|
|
47
|
+
vpc: cluster.vpc,
|
|
48
|
+
internetFacing: true,
|
|
49
|
+
securityGroup: lbSecurityGroup,
|
|
50
|
+
idleTimeout: cdk.Duration.seconds(60),
|
|
51
|
+
});
|
|
52
|
+
|
|
53
|
+
const listener = alb.addListener('ALBListener', {
|
|
54
|
+
port: 80,
|
|
55
|
+
defaultAction: elbv2.ListenerAction.fixedResponse(404),
|
|
56
|
+
open: false,
|
|
57
|
+
});
|
|
58
|
+
|
|
59
|
+
const prodListenerRule = new elbv2.ApplicationListenerRule(stack, 'ALBProductionListenerRule', {
|
|
60
|
+
listener: listener,
|
|
61
|
+
priority: 1,
|
|
62
|
+
conditions: [
|
|
63
|
+
elbv2.ListenerCondition.pathPatterns(['/*']),
|
|
64
|
+
],
|
|
65
|
+
action: elbv2.ListenerAction.weightedForward([
|
|
66
|
+
{
|
|
67
|
+
targetGroup: blueTargetGroup,
|
|
68
|
+
weight: 100,
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
targetGroup: greenTargetGroup,
|
|
72
|
+
weight: 0,
|
|
73
|
+
},
|
|
74
|
+
]),
|
|
75
|
+
});
|
|
76
|
+
|
|
77
|
+
const taskDefinition = new ecs.FargateTaskDefinition(stack, 'TaskDef', {
|
|
78
|
+
memoryLimitMiB: 512,
|
|
79
|
+
cpu: 256,
|
|
80
|
+
});
|
|
81
|
+
|
|
82
|
+
taskDefinition.addContainer('container', {
|
|
83
|
+
containerName: 'nginx',
|
|
84
|
+
image: ecs.ContainerImage.fromRegistry('public.ecr.aws/nginx/nginx:latest'),
|
|
85
|
+
portMappings: [{
|
|
86
|
+
name: 'api',
|
|
87
|
+
containerPort: 80,
|
|
88
|
+
appProtocol: ecs.AppProtocol.http,
|
|
89
|
+
}],
|
|
90
|
+
});
|
|
91
|
+
|
|
92
|
+
const service = new ecs.FargateService(stack, 'Service', {
|
|
93
|
+
cluster,
|
|
94
|
+
taskDefinition,
|
|
95
|
+
securityGroups: [ecsSecurityGroup],
|
|
96
|
+
deploymentStrategy: ecs.DeploymentStrategy.LINEAR,
|
|
97
|
+
linearConfiguration: {
|
|
98
|
+
stepPercent: 10.0,
|
|
99
|
+
stepBakeTime: cdk.Duration.minutes(5),
|
|
100
|
+
},
|
|
101
|
+
});
|
|
102
|
+
|
|
103
|
+
const target = service.loadBalancerTarget({
|
|
104
|
+
containerName: 'nginx',
|
|
105
|
+
containerPort: 80,
|
|
106
|
+
protocol: ecs.Protocol.TCP,
|
|
107
|
+
alternateTarget: new ecs.AlternateTarget('LBAlternateOptions', {
|
|
108
|
+
alternateTargetGroup: greenTargetGroup,
|
|
109
|
+
productionListener: ecs.ListenerRuleConfiguration.applicationListenerRule(prodListenerRule),
|
|
110
|
+
}),
|
|
111
|
+
});
|
|
112
|
+
|
|
113
|
+
target.attachToApplicationTargetGroup(blueTargetGroup);
|
|
114
|
+
|
|
115
|
+
new integ.IntegTest(app, 'aws-ecs-linear', {
|
|
116
|
+
testCases: [stack],
|
|
117
|
+
});
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { App, Stack } from 'aws-cdk-lib';
|
|
2
|
+
import * as ecs from 'aws-cdk-lib/aws-ecs';
|
|
3
|
+
import * as integ from '@aws-cdk/integ-tests-alpha';
|
|
4
|
+
|
|
5
|
+
const app = new App({
|
|
6
|
+
postCliContext: {
|
|
7
|
+
'@aws-cdk/aws-lambda:useCdkManagedLogGroup': false,
|
|
8
|
+
},
|
|
9
|
+
});
|
|
10
|
+
const stack = new Stack(app, 'cdk-ecs-none-log-driver');
|
|
11
|
+
|
|
12
|
+
const taskDefinition = new ecs.Ec2TaskDefinition(stack, 'TaskDef', {});
|
|
13
|
+
|
|
14
|
+
taskDefinition.addContainer('web', {
|
|
15
|
+
image: ecs.ContainerImage.fromRegistry('amazon/amazon-ecs-sample'),
|
|
16
|
+
memoryLimitMiB: 256,
|
|
17
|
+
logging: new ecs.NoneLogDriver(),
|
|
18
|
+
});
|
|
19
|
+
|
|
20
|
+
new integ.IntegTest(app, 'cdk-ecs-none-log-driver-test', {
|
|
21
|
+
testCases: [stack],
|
|
22
|
+
});
|
|
23
|
+
|
|
@@ -54,7 +54,12 @@ declare const project: codebuild.Project;
|
|
|
54
54
|
|
|
55
55
|
const onCommitRule = repo.onCommit('OnCommit', {
|
|
56
56
|
target: new targets.CodeBuildProject(project),
|
|
57
|
-
|
|
57
|
+
eventPattern: {
|
|
58
|
+
detail: {
|
|
59
|
+
referenceType: ['branch'],
|
|
60
|
+
}
|
|
61
|
+
},
|
|
62
|
+
branches: events.Match.prefix('main')
|
|
58
63
|
});
|
|
59
64
|
```
|
|
60
65
|
|
|
@@ -703,7 +703,7 @@ The following examples defines an OpenID Connect provider. Two client IDs
|
|
|
703
703
|
(audiences) are will be able to send authentication requests to
|
|
704
704
|
<https://openid/connect>.
|
|
705
705
|
|
|
706
|
-
|
|
706
|
+
The older `OpenIdConnectProvider` is still supported, but for new stacks, it is recommended to use the new `OidcProviderNative` which uses the native CloudFormation resource `AWS::IAM::OIDCProvider` over the old `OpenIdConnectProvider` which uses a custom resource. While `OidcProviderNative` does not provide new features compared to `OpenIdConnectProvider`, it offers a simpler implementation using native CloudFormation resources instead of custom resources.
|
|
707
707
|
|
|
708
708
|
```ts
|
|
709
709
|
const nativeProvider = new iam.OidcProviderNative(this, 'MyProvider', {
|
|
@@ -462,6 +462,19 @@ new logs.LogGroup(this, 'LogGroupLambda', {
|
|
|
462
462
|
});
|
|
463
463
|
```
|
|
464
464
|
|
|
465
|
+
## Configure Deletion Protection
|
|
466
|
+
|
|
467
|
+
Indicates whether deletion protection is enabled for this log group. When enabled, deletion protection blocks all deletion operations until it is explicitly disabled.
|
|
468
|
+
|
|
469
|
+
For more information, see [Protecting log groups from deletion](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/protecting-log-groups-from-deletion.html).
|
|
470
|
+
|
|
471
|
+
```ts
|
|
472
|
+
new logs.LogGroup(this, 'LogGroup', {
|
|
473
|
+
deletionProtectionEnabled: true,
|
|
474
|
+
});
|
|
475
|
+
```
|
|
476
|
+
|
|
477
|
+
|
|
465
478
|
## Field Index Policies
|
|
466
479
|
|
|
467
480
|
Creates or updates a field index policy for the specified log group. You can use field index policies to create field indexes on fields found in log events in the log group. Creating field indexes lowers the costs for CloudWatch Logs Insights queries that reference those field indexes, because these queries attempt to skip the processing of log events that are known to not match the indexed field. Good fields to index are fields that you often need to query for and fields that have high cardinality of values.
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { App, Stack } from 'aws-cdk-lib';
|
|
2
|
+
import { IntegTest } from '@aws-cdk/integ-tests-alpha';
|
|
3
|
+
import { LogGroup } from 'aws-cdk-lib/aws-logs';
|
|
4
|
+
|
|
5
|
+
const app = new App();
|
|
6
|
+
const stack = new Stack(app, 'aws-cdk-loggroup-grantreads-integ');
|
|
7
|
+
|
|
8
|
+
new LogGroup(stack, 'LogGroup', {
|
|
9
|
+
deletionProtectionEnabled: true,
|
|
10
|
+
});
|
|
11
|
+
|
|
12
|
+
new IntegTest(app, 'loggroup-grantreads', {
|
|
13
|
+
testCases: [stack],
|
|
14
|
+
});
|
|
@@ -149,7 +149,39 @@ const domain = new Domain(this, 'Domain', {
|
|
|
149
149
|
|
|
150
150
|
This sets up the domain with node to node encryption and encryption at
|
|
151
151
|
rest. You can also choose to supply your own KMS key to use for encryption at
|
|
152
|
-
rest
|
|
152
|
+
rest:
|
|
153
|
+
|
|
154
|
+
```ts
|
|
155
|
+
import * as kms from 'aws-cdk-lib/aws-kms';
|
|
156
|
+
|
|
157
|
+
const encryptionKey = new kms.Key(this, 'EncryptionKey');
|
|
158
|
+
|
|
159
|
+
const domain = new Domain(this, 'Domain', {
|
|
160
|
+
version: EngineVersion.OPENSEARCH_1_0,
|
|
161
|
+
encryptionAtRest: {
|
|
162
|
+
kmsKey: encryptionKey,
|
|
163
|
+
},
|
|
164
|
+
});
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
The construct also supports using cross-account KMS keys for encryption at rest:
|
|
168
|
+
|
|
169
|
+
```ts
|
|
170
|
+
import * as kms from 'aws-cdk-lib/aws-kms';
|
|
171
|
+
|
|
172
|
+
const crossAccountKey = kms.Key.fromKeyArn(
|
|
173
|
+
this,
|
|
174
|
+
'CrossAccountKey',
|
|
175
|
+
'arn:aws:kms:us-east-1:111111111111:key/12345678-1234-1234-1234-123456789012',
|
|
176
|
+
);
|
|
177
|
+
|
|
178
|
+
const domain = new Domain(this, 'Domain', {
|
|
179
|
+
version: EngineVersion.OPENSEARCH_1_0,
|
|
180
|
+
encryptionAtRest: {
|
|
181
|
+
kmsKey: crossAccountKey,
|
|
182
|
+
},
|
|
183
|
+
});
|
|
184
|
+
```
|
|
153
185
|
|
|
154
186
|
## VPC Support
|
|
155
187
|
|
|
@@ -203,6 +203,10 @@ v2](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-serverle
|
|
|
203
203
|
capacity of all the instances in the cluster.
|
|
204
204
|
- `ACUUtilization`: Value of the `ServerlessDatabaseCapacity`/ max ACU of the
|
|
205
205
|
cluster.
|
|
206
|
+
- `VolumeReadIOPs`: Cluster-level metric that represents the average number of disk read I/O operations per second.
|
|
207
|
+
- `VolumeWriteIOPs`: Cluster-level metric that represents the average number of disk write I/O operations per second.
|
|
208
|
+
- `ReadIOPS`: Instance-level metric that represents the average read I/O operations per second. This metric is supported by DatabaseCluster and DatabaseClusterFromSnapshot both.
|
|
209
|
+
- `WriteIOPS`: Instance-level metric that represents the average write I/O operations per second. This metric is supported by DatabaseCluster and DatabaseClusterFromSnapshot both.
|
|
206
210
|
|
|
207
211
|
```ts
|
|
208
212
|
declare const vpc: ec2.Vpc;
|
|
@@ -221,12 +225,46 @@ cluster.metricServerlessDatabaseCapacity({
|
|
|
221
225
|
threshold: 1.5,
|
|
222
226
|
evaluationPeriods: 3,
|
|
223
227
|
});
|
|
228
|
+
|
|
224
229
|
cluster.metricACUUtilization({
|
|
225
230
|
period: Duration.minutes(10),
|
|
226
231
|
}).createAlarm(this, 'alarm', {
|
|
227
232
|
evaluationPeriods: 3,
|
|
228
233
|
threshold: 90,
|
|
229
234
|
});
|
|
235
|
+
|
|
236
|
+
cluster.metricVolumeReadIOPs({
|
|
237
|
+
period: Duration.minutes(10),
|
|
238
|
+
}).createAlarm(this, 'VolumeReadIOPsAlarm', {
|
|
239
|
+
threshold: 1000,
|
|
240
|
+
evaluationPeriods: 3,
|
|
241
|
+
});
|
|
242
|
+
|
|
243
|
+
cluster.metricVolumeWriteIOPs({
|
|
244
|
+
period: Duration.minutes(10),
|
|
245
|
+
}).createAlarm(this, 'VolumeWriteIOPsAlarm', {
|
|
246
|
+
threshold: 1000,
|
|
247
|
+
evaluationPeriods: 3,
|
|
248
|
+
});
|
|
249
|
+
|
|
250
|
+
const instance = new rds.DatabaseInstance(this, 'Instance', {
|
|
251
|
+
engine: rds.DatabaseInstanceEngine.postgres({ version: rds.PostgresEngineVersion.VER_17_6 }),
|
|
252
|
+
vpc
|
|
253
|
+
});
|
|
254
|
+
|
|
255
|
+
instance.metricReadIOPS({
|
|
256
|
+
period: Duration.minutes(10),
|
|
257
|
+
}).createAlarm(this, 'ReadIOPSAlarm', {
|
|
258
|
+
threshold: 1000,
|
|
259
|
+
evaluationPeriods: 3,
|
|
260
|
+
});
|
|
261
|
+
|
|
262
|
+
instance.metricWriteIOPS({
|
|
263
|
+
period: Duration.minutes(10),
|
|
264
|
+
}).createAlarm(this, 'WriteIOPSAlarm', {
|
|
265
|
+
threshold: 1000,
|
|
266
|
+
evaluationPeriods: 3,
|
|
267
|
+
});
|
|
230
268
|
```
|
|
231
269
|
|
|
232
270
|
#### Capacity & Scaling
|
|
@@ -1009,6 +1047,33 @@ const proxy = new rds.DatabaseProxy(this, 'Proxy', {
|
|
|
1009
1047
|
});
|
|
1010
1048
|
```
|
|
1011
1049
|
|
|
1050
|
+
### Default Authentication Scheme
|
|
1051
|
+
|
|
1052
|
+
RDS Proxy supports different authentication schemes to connect to your database. You can configure the default authentication scheme using the `defaultAuthScheme` property.
|
|
1053
|
+
|
|
1054
|
+
When using `DefaultAuthScheme.IAM_AUTH`, the proxy uses end-to-end IAM authentication to connect to the database, eliminating the need for secrets stored in AWS Secrets Manager:
|
|
1055
|
+
|
|
1056
|
+
```ts
|
|
1057
|
+
declare const vpc: ec2.Vpc;
|
|
1058
|
+
const instance = new rds.DatabaseInstance(this, 'Database', {
|
|
1059
|
+
engine: rds.DatabaseInstanceEngine.postgres({
|
|
1060
|
+
version: rds.PostgresEngineVersion.VER_17_7,
|
|
1061
|
+
}),
|
|
1062
|
+
vpc,
|
|
1063
|
+
iamAuthentication: true,
|
|
1064
|
+
});
|
|
1065
|
+
|
|
1066
|
+
const proxy = new rds.DatabaseProxy(this, 'Proxy', {
|
|
1067
|
+
proxyTarget: rds.ProxyTarget.fromInstance(instance),
|
|
1068
|
+
vpc,
|
|
1069
|
+
defaultAuthScheme: rds.DefaultAuthScheme.IAM_AUTH, // No secrets required
|
|
1070
|
+
});
|
|
1071
|
+
|
|
1072
|
+
// Grant IAM permissions for database connection
|
|
1073
|
+
const role = new iam.Role(this, 'DBRole', { assumedBy: new iam.AccountPrincipal(this.account) });
|
|
1074
|
+
proxy.grantConnect(role, 'database-user'); // Database user must be specified when using IAM auth
|
|
1075
|
+
```
|
|
1076
|
+
|
|
1012
1077
|
### Cluster
|
|
1013
1078
|
|
|
1014
1079
|
The following example shows granting connection access for an IAM role to an Aurora Cluster.
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import * as ec2 from 'aws-cdk-lib/aws-ec2';
|
|
2
|
+
import * as cdk from 'aws-cdk-lib';
|
|
3
|
+
import { AuroraMysqlEngineVersion, ClusterInstance, Credentials, DatabaseCluster, DatabaseClusterEngine } from 'aws-cdk-lib/aws-rds';
|
|
4
|
+
import { IntegTest } from '@aws-cdk/integ-tests-alpha';
|
|
5
|
+
|
|
6
|
+
const app = new cdk.App();
|
|
7
|
+
const stack = new cdk.Stack(app, 'aws-cdk-rds-cluster-volume-iops-metric');
|
|
8
|
+
|
|
9
|
+
const vpc = new ec2.Vpc(stack, 'VPC', { maxAzs: 2, restrictDefaultSecurityGroup: false });
|
|
10
|
+
|
|
11
|
+
const cluster = new DatabaseCluster(stack, 'Database', {
|
|
12
|
+
engine: DatabaseClusterEngine.auroraMysql({
|
|
13
|
+
version: AuroraMysqlEngineVersion.VER_3_10_0,
|
|
14
|
+
}),
|
|
15
|
+
credentials: Credentials.fromUsername('admin', { password: cdk.SecretValue.unsafePlainText('7959866cacc02c2d243ecfe177464fe6') }),
|
|
16
|
+
vpcSubnets: { subnetType: ec2.SubnetType.PUBLIC },
|
|
17
|
+
vpc,
|
|
18
|
+
writer: ClusterInstance.provisioned('Instance1', {
|
|
19
|
+
instanceType: ec2.InstanceType.of(ec2.InstanceClass.BURSTABLE3, ec2.InstanceSize.MEDIUM),
|
|
20
|
+
}),
|
|
21
|
+
readers: [
|
|
22
|
+
ClusterInstance.provisioned('Instance2', {
|
|
23
|
+
instanceType: ec2.InstanceType.of(ec2.InstanceClass.BURSTABLE3, ec2.InstanceSize.MEDIUM),
|
|
24
|
+
}),
|
|
25
|
+
],
|
|
26
|
+
removalPolicy: cdk.RemovalPolicy.DESTROY,
|
|
27
|
+
});
|
|
28
|
+
|
|
29
|
+
// Test that metricVolumeReadIOPs can be used to create an alarm
|
|
30
|
+
cluster.metricVolumeReadIOPs({
|
|
31
|
+
period: cdk.Duration.minutes(10),
|
|
32
|
+
}).createAlarm(stack, 'VolumeReadIOPsAlarm', {
|
|
33
|
+
threshold: 1000,
|
|
34
|
+
evaluationPeriods: 3,
|
|
35
|
+
});
|
|
36
|
+
|
|
37
|
+
// Test that metricVolumeWriteIOPs can be used to create an alarm
|
|
38
|
+
cluster.metricVolumeWriteIOPs({
|
|
39
|
+
period: cdk.Duration.minutes(10),
|
|
40
|
+
}).createAlarm(stack, 'VolumeWriteIOPsAlarm', {
|
|
41
|
+
threshold: 1000,
|
|
42
|
+
evaluationPeriods: 3,
|
|
43
|
+
});
|
|
44
|
+
|
|
45
|
+
new IntegTest(app, 'rds-cluster-volume-iops-metric-integ-test', {
|
|
46
|
+
testCases: [stack],
|
|
47
|
+
});
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-rds/integ.instance-iops-metric.ts
ADDED
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import * as ec2 from 'aws-cdk-lib/aws-ec2';
|
|
2
|
+
import * as cdk from 'aws-cdk-lib';
|
|
3
|
+
import * as rds from 'aws-cdk-lib/aws-rds';
|
|
4
|
+
import { IntegTest } from '@aws-cdk/integ-tests-alpha';
|
|
5
|
+
|
|
6
|
+
const app = new cdk.App();
|
|
7
|
+
const stack = new cdk.Stack(app, 'aws-cdk-rds-instance-iops-metric');
|
|
8
|
+
|
|
9
|
+
const vpc = new ec2.Vpc(stack, 'VPC', { maxAzs: 2, restrictDefaultSecurityGroup: false });
|
|
10
|
+
|
|
11
|
+
const instance = new rds.DatabaseInstance(stack, 'Instance', {
|
|
12
|
+
engine: rds.DatabaseInstanceEngine.postgres({ version: rds.PostgresEngineVersion.VER_17_6 }),
|
|
13
|
+
vpc,
|
|
14
|
+
multiAz: false,
|
|
15
|
+
removalPolicy: cdk.RemovalPolicy.DESTROY,
|
|
16
|
+
});
|
|
17
|
+
|
|
18
|
+
// Test that metricReadIOPS can be used to create an alarm
|
|
19
|
+
instance.metricReadIOPS({
|
|
20
|
+
period: cdk.Duration.minutes(10),
|
|
21
|
+
}).createAlarm(stack, 'ReadIOPSAlarm', {
|
|
22
|
+
threshold: 1000,
|
|
23
|
+
evaluationPeriods: 3,
|
|
24
|
+
});
|
|
25
|
+
|
|
26
|
+
// Test that metricWriteIOPS can be used to create an alarm
|
|
27
|
+
instance.metricWriteIOPS({
|
|
28
|
+
period: cdk.Duration.minutes(10),
|
|
29
|
+
}).createAlarm(stack, 'WriteIOPSAlarm', {
|
|
30
|
+
threshold: 1000,
|
|
31
|
+
evaluationPeriods: 3,
|
|
32
|
+
});
|
|
33
|
+
|
|
34
|
+
new IntegTest(app, 'rds-instance-iops-metric-integ-test', {
|
|
35
|
+
testCases: [stack],
|
|
36
|
+
});
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import * as ec2 from 'aws-cdk-lib/aws-ec2';
|
|
2
|
+
import * as iam from 'aws-cdk-lib/aws-iam';
|
|
3
|
+
import * as cdk from 'aws-cdk-lib';
|
|
4
|
+
import { RemovalPolicy } from 'aws-cdk-lib';
|
|
5
|
+
import * as integ from '@aws-cdk/integ-tests-alpha';
|
|
6
|
+
import * as rds from 'aws-cdk-lib/aws-rds';
|
|
7
|
+
|
|
8
|
+
const app = new cdk.App();
|
|
9
|
+
const stack = new cdk.Stack(app, 'aws-cdk-rds-proxy');
|
|
10
|
+
|
|
11
|
+
const vpc = new ec2.Vpc(stack, 'vpc', { maxAzs: 2, restrictDefaultSecurityGroup: false });
|
|
12
|
+
|
|
13
|
+
const dbInstance = new rds.DatabaseInstance(stack, 'dbInstance', {
|
|
14
|
+
engine: rds.DatabaseInstanceEngine.postgres({
|
|
15
|
+
version: rds.PostgresEngineVersion.VER_17_7,
|
|
16
|
+
}),
|
|
17
|
+
instanceType: ec2.InstanceType.of(ec2.InstanceClass.BURSTABLE3, ec2.InstanceSize.MEDIUM),
|
|
18
|
+
vpc,
|
|
19
|
+
removalPolicy: RemovalPolicy.DESTROY,
|
|
20
|
+
iamAuthentication: true,
|
|
21
|
+
});
|
|
22
|
+
|
|
23
|
+
const proxy = new rds.DatabaseProxy(stack, 'dbProxy', {
|
|
24
|
+
borrowTimeout: cdk.Duration.seconds(30),
|
|
25
|
+
maxConnectionsPercent: 50,
|
|
26
|
+
proxyTarget: rds.ProxyTarget.fromInstance(dbInstance),
|
|
27
|
+
vpc,
|
|
28
|
+
defaultAuthScheme: rds.DefaultAuthScheme.IAM_AUTH,
|
|
29
|
+
});
|
|
30
|
+
|
|
31
|
+
// Grant IAM permissions for database connection
|
|
32
|
+
const role = new iam.Role(stack, 'DBRole', { assumedBy: new iam.AccountPrincipal(stack.account) });
|
|
33
|
+
proxy.grantConnect(role, 'database-user');
|
|
34
|
+
|
|
35
|
+
new integ.IntegTest(app, 'database-proxy-default-auth-scheme-integ-test', {
|
|
36
|
+
testCases: [stack],
|
|
37
|
+
});
|
|
@@ -861,6 +861,19 @@ const map = new sfn.Map(this, 'Map State', {
|
|
|
861
861
|
});
|
|
862
862
|
```
|
|
863
863
|
|
|
864
|
+
When using `JSONata`, you can also specify the `maxConcurrency` dynamically using a JSONata expression with the `jsonataMaxConcurrency` property. This allows you to determine the concurrency limit based on state input or other runtime values:
|
|
865
|
+
|
|
866
|
+
```ts
|
|
867
|
+
const map = new sfn.Map(this, 'Map State', {
|
|
868
|
+
jsonataMaxConcurrency: '{% $states.input.maxConcurrency %}',
|
|
869
|
+
itemSelector: {
|
|
870
|
+
item: '{% $states.context.Map.Item.Value %}',
|
|
871
|
+
}
|
|
872
|
+
});
|
|
873
|
+
```
|
|
874
|
+
|
|
875
|
+
Note that `jsonataMaxConcurrency` is mutually exclusive with `maxConcurrency` and `maxConcurrencyPath`.
|
|
876
|
+
|
|
864
877
|
To define a distributed `Map` state set `itemProcessors` mode to `ProcessorMode.DISTRIBUTED`.
|
|
865
878
|
An `executionType` must be specified for the distributed `Map` workflow.
|
|
866
879
|
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { IntegTest, ExpectedResult } from '@aws-cdk/integ-tests-alpha';
|
|
2
|
+
import * as cdk from 'aws-cdk-lib';
|
|
3
|
+
import * as sfn from 'aws-cdk-lib/aws-stepfunctions';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Stack verification steps:
|
|
7
|
+
*
|
|
8
|
+
* -- aws stepfunctions describe-state-machine --state-machine-arn <stack-output> has a status of `ACTIVE`
|
|
9
|
+
*/
|
|
10
|
+
const app = new cdk.App();
|
|
11
|
+
const stack = new cdk.Stack(app, 'cdk-stepfunctions-map-jsonata-maxconcurrency-stack');
|
|
12
|
+
|
|
13
|
+
const map = new sfn.Map(stack, 'Map', {
|
|
14
|
+
queryLanguage: sfn.QueryLanguage.JSONATA,
|
|
15
|
+
stateName: 'My-Map-State',
|
|
16
|
+
jsonataMaxConcurrency: '{% $states.input.maxConcurrency %}',
|
|
17
|
+
items: sfn.ProvideItems.jsonata('{% $states.input.items %}'),
|
|
18
|
+
});
|
|
19
|
+
map.itemProcessor(new sfn.Pass(stack, 'Pass State'));
|
|
20
|
+
|
|
21
|
+
const sm = new sfn.StateMachine(stack, 'StateMachine', {
|
|
22
|
+
definition: map,
|
|
23
|
+
timeout: cdk.Duration.seconds(30),
|
|
24
|
+
});
|
|
25
|
+
|
|
26
|
+
const testCase = new IntegTest(app, 'cdk-stepfunctions-map-jsonata-maxconcurrency-integ', {
|
|
27
|
+
testCases: [stack],
|
|
28
|
+
});
|
|
29
|
+
|
|
30
|
+
testCase.assertions.awsApiCall('StepFunctions', 'describeStateMachine', {
|
|
31
|
+
stateMachineArn: sm.stateMachineArn,
|
|
32
|
+
}).expect(ExpectedResult.objectLike({
|
|
33
|
+
status: 'ACTIVE',
|
|
34
|
+
}));
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: konokenj.cdk-api-mcp-server
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.70.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.68.0.dist-info → konokenj_cdk_api_mcp_server-0.70.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=H-AYNZf-Fm2vnGGoJRTt2qlGssreZUzu_DT_V-7TayI,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
|
|
@@ -21,7 +21,7 @@ cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/aws-elasticache-alpha/R
|
|
|
21
21
|
cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/aws-gamelift-alpha/README.md,sha256=pZqlGXpIekT05CmRYo99QPI-7S1iGtKoNESGryLQFxQ,28324
|
|
22
22
|
cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/aws-glue-alpha/README.md,sha256=0DUUl5AU9qy-x3P4cCIStFMcav2hSQMwZuI3aTq9Q2Q,32235
|
|
23
23
|
cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/aws-imagebuilder-alpha/README.md,sha256=9Kc8-eJ5wjZBMZuXAvKbTn6gEHjEwT4AKJvknmxWtJU,56869
|
|
24
|
-
cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/aws-iot-actions-alpha/README.md,sha256=
|
|
24
|
+
cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/aws-iot-actions-alpha/README.md,sha256=eS4UGpk6_8TJDLeFBTHvXyTxnE89CizoGn8xoFUyH3Y,12502
|
|
25
25
|
cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/aws-iot-alpha/README.md,sha256=18MkQScFBUO_qZnfYj9wfsdY_vRvvEyar2OT_QbO_N4,6909
|
|
26
26
|
cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/aws-iotevents-actions-alpha/README.md,sha256=0Al2K5gHcEce_cH07YM1GuFFrJ0mrr85ZWGVrj2cs9s,4477
|
|
27
27
|
cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/aws-iotevents-alpha/README.md,sha256=VV3S1skroh5LRVWWPeRo_MhYb6f29ee6ScmmuLVd8v4,3835
|
|
@@ -46,7 +46,7 @@ cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/cfnspec/README.md,sha25
|
|
|
46
46
|
cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/custom-resource-handlers/README.md,sha256=QctOoyGt6AqVWeFhRwpkCSxHZ1XFWj_nCKlkJHDFock,965
|
|
47
47
|
cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/example-construct-library/README.md,sha256=vnVXyvtN9ICph68sw2y6gkdD_gmas0PiUa9TkwNckWQ,4501
|
|
48
48
|
cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/integ-tests-alpha/README.md,sha256=VifKLrR404_yLVT0E3ai8f3R5K0h22VNwQplpSUSZqc,17489
|
|
49
|
-
cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/mixins-preview/README.md,sha256=
|
|
49
|
+
cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/mixins-preview/README.md,sha256=8mVA_3LB6T8h3abhZQNhbWteqk_ZcjWXvX2C5X_eOTg,9712
|
|
50
50
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/README.md/README.md,sha256=fDaQqPonfLmfQpukU4aAJcjQI5xHI40D3Li0I056Q7s,76468
|
|
51
51
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/assertions/MIGRATING.md,sha256=SYGX8QNB1Pm_rVYDBp4QRWkqwnxOb3CHzeFglUy_53k,3347
|
|
52
52
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/assertions/README.md,sha256=3yo3D05n5explTIgnuF-vkk01MTYeAYe7_3rcsD2baE,18299
|
|
@@ -108,10 +108,11 @@ cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigatewayv2-aut
|
|
|
108
108
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigatewayv2-authorizers/integ.iam.ts,sha256=lvRtxBcfeAd_hWzp4y2XjUrBaXvrTvTlbenZPrTVjm4,1879
|
|
109
109
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigatewayv2-authorizers/integ.lambda.ts,sha256=fn7xHE9FRWiezUfUcXj6h2WEsBwoVlovgAJebdmoJ7o,2553
|
|
110
110
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigatewayv2-authorizers/integ.user-pool.ts,sha256=lNnicrKmHinBkb5LHF8TNGbSh0m7Fq_9kqi7wWIF11c,2243
|
|
111
|
-
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigatewayv2-integrations/README.md,sha256=
|
|
111
|
+
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigatewayv2-integrations/README.md,sha256=OzDeGBd34EtDh2dUAQEFH-0ef940--I-aXq42iZRDEI,19965
|
|
112
112
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigatewayv2-integrations/integ.add-subroute-integration.ts,sha256=QQN3KurT-XG7uFqvFPfraDkaGvN9RAudo1kW3wKc4eg,4545
|
|
113
113
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigatewayv2-integrations/integ.alb.ts,sha256=M37eb1eaG_p-me9AwxJ5Ug1nsBdOtqMloYNW0bELDak,1816
|
|
114
114
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigatewayv2-integrations/integ.aws.ts,sha256=z-Kjet7OZOc3pR9ReqDEvVFjqdYTgS3ZJprEgt2y9l8,2444
|
|
115
|
+
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigatewayv2-integrations/integ.eventbridge.ts,sha256=bUA6go9j5cZgpK7QGrTJIvF9-I9KkCz2SyQmKBmGN2Y,1745
|
|
115
116
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigatewayv2-integrations/integ.http-proxy.ts,sha256=RbFxD1auiyVyYM9DscPm9xzhDsYPMQPeQTKcgmxAZ0o,1326
|
|
116
117
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigatewayv2-integrations/integ.lambda-connect-disconnect-trigger.ts,sha256=oC__vtPWhU0EgRbtoixIondliCWhybviK35eQ4HIwZA,2533
|
|
117
118
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigatewayv2-integrations/integ.lambda-permission-consolidation.ts,sha256=ZDRoNQzKQaIU5TZc2CkTKbBdZoDoBqDbNMRqO9pstN8,1669
|
|
@@ -596,12 +597,12 @@ cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecr/integ.images
|
|
|
596
597
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecr/integ.repository-auto-delete-images.ts,sha256=3GYqoRSUUJ53ZpAvfypp0IOd7Z-uWTGGQ3aJgqsfKyg,577
|
|
597
598
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecr/integ.repository-lookup.ts,sha256=UQZz00DFMZaFnvbT2FWqk5uBeZGl9MY3IUIKyUFukkY,1424
|
|
598
599
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecr/integ.tag-mutability-exclusion.ts,sha256=F_-zt6vvVTQN19nQAHQrX6lqSRaifg5MgSTYAjwDp4U,1060
|
|
599
|
-
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecr-assets/README.md,sha256=
|
|
600
|
+
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecr-assets/README.md,sha256=R_S6BWtb-L-In7oPQfphdJBFfk-YSSI5CHVenOcrPTw,10165
|
|
600
601
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecr-assets/integ.assets-docker.ts,sha256=EF_hWgLhIKucTjMe6G7VyxixpQgm82ElvunshuWoEhA,2570
|
|
601
602
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecr-assets/integ.assets-tarball.ts,sha256=pSbNMWSorKT7lUTXxnzkxpcRumKPYWUmcbqRSwwWOgI,937
|
|
602
603
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecr-assets/integ.nested-stacks-docker.ts,sha256=4hDobse34oIG2r0mjbYXzsEXXLEqv077jUh3pjoYmcc,981
|
|
603
604
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs/CONTRIBUTING.md,sha256=TlNwpeYemLdYq4jdo24v7nwDIj3RmZ7u2j_LCQiQR74,2634
|
|
604
|
-
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs/README.md,sha256=
|
|
605
|
+
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs/README.md,sha256=RQVRi-ONxIf185i1ijECm2hQ16WI40EtF56uhE-_LII,87240
|
|
605
606
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs/integ.add-docker-label.ts,sha256=avHktilCBVPuVelquVaY2ylRkSLraWn7vUIIIFPsbyI,1375
|
|
606
607
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs/integ.add-environment-variable.ts,sha256=sIdwJl7LYh5wlv_EDLPSGCavC2OF6W8IBwZ_hMOnCfw,1143
|
|
607
608
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs/integ.app-mesh-proxy-config.ts,sha256=qhtztZPppP98wdEneOEDI3p0P608q0DtS_Nv-6grLHM,1596
|
|
@@ -609,6 +610,7 @@ cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs/integ.availa
|
|
|
609
610
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs/integ.awslogs-driver.ts,sha256=js3ZnGoPKDVQl5NhZqF-acS5BTNeRkKWBjHUYVJkV0Q,1322
|
|
610
611
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs/integ.blue-green-deployment-strategy.ts,sha256=Rh8t4oub7rWxHATyTpwIbSjQwRAR8R8bpUXgAckK_mE,4222
|
|
611
612
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs/integ.bottlerocket.ts,sha256=pio8vLSNlFeokyocKepVUq1ZJXhhrC7iH2ZVJiJxatg,728
|
|
613
|
+
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs/integ.canary-deployment-strategy.ts,sha256=M05Nst_ZXx4KQQMcoI3lo5DIAMTd3LU87v4taHxJplI,3175
|
|
612
614
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs/integ.capacity-provider-managed-draining.ts,sha256=K_eRJ9thQNqqo1TrA_dOzgieYkuJnhGEbZQcR0hyBzo,1907
|
|
613
615
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs/integ.capacity-provider.ts,sha256=i4ybZBXakmn9EOHwGKidhqPDOZlkWQcRxVOt4QoOA_k,1514
|
|
614
616
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs/integ.capacity-providers.ts,sha256=1JfeuquUWRLNw-FThuQac5sePyc_j4Gjx5iNjV9cbZM,892
|
|
@@ -643,10 +645,12 @@ cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs/integ.gravit
|
|
|
643
645
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs/integ.graviton.ts,sha256=-L0L2_uXEpuszWK0FNPNErOVzYj6jLz_GN__t3-IUJo,719
|
|
644
646
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs/integ.lb-awsvpc-nw.ts,sha256=VGnwETVmq2owapn3crFeJ187sqNYjb1afkBcNZaRNzs,1813
|
|
645
647
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs/integ.lb-bridge-nw.ts,sha256=0nlq9ShB7EeFK-6OE6-id-5PCfhGaDf5snnzYNUnHCQ,1822
|
|
648
|
+
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs/integ.linear-deployment-strategy.ts,sha256=CjogKM6GaQu-5pqM-D2jTAd4FCJ_xS6MRTpqX24ma28,3175
|
|
646
649
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs/integ.managedinstances-capacity-provider-default-roles.ts,sha256=CuvR4P7pA9IYH_7SPDMMwXOeMyWlCkaaL4JBuuRLf0Y,2824
|
|
647
650
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs/integ.managedinstances-capacity-provider.ts,sha256=v15lSJEI71zG-MPupT3UeWM0bgvI-TWjwaX7dDvLNO0,3631
|
|
648
651
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs/integ.managedinstances-no-default-capacity-provider.ts,sha256=2Fc943-G8gfENka_oSUmasxiA-qrTuget9URJhnSFa8,3330
|
|
649
652
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs/integ.nlb-awsvpc-nw.ts,sha256=vXdMwV8Ythm3Qa4cHX_mg0WjRESCMYe0GgA3tX_uqTk,1474
|
|
653
|
+
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs/integ.none-log-driver.ts,sha256=R_rAbncMvE7_vP397EaDSb0-e9C7_SXtGktw1l8i0lM,635
|
|
650
654
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs/integ.placement-constraint-default-empty.ts,sha256=ANXNlnTGzAmBQsw41D6uDk4ZKPriV_al4MtXQ7I_1Hg,1369
|
|
651
655
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs/integ.placement-strategies.ts,sha256=pADTKzHjHiYoEbZ6JK5oE4-ufRc41zmQ6mmmno34xKo,2175
|
|
652
656
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs/integ.pseudo-terminal.ts,sha256=ElbIYMh9SD5nUkl6v3fx02egE6wfhZHMCuU3urmnZVg,1137
|
|
@@ -801,7 +805,7 @@ cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-elasticsearch/in
|
|
|
801
805
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-elasticsearch/integ.elasticsearch.ts,sha256=gG2zi0UswICJm09yzQDjydOojZ70akV5dClYcTcoPkQ,1680
|
|
802
806
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-elasticsearch/integ.elasticsearch.ultrawarm.ts,sha256=y6MU1pvPFpYQpJe0foV4WdFvOSGSinABAGQa1gK_yKk,597
|
|
803
807
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-elasticsearch/integ.elasticsearch.unsignedbasicauth.ts,sha256=qTmKzrWQSlUUSRmV2qOQ_PpZskV4YHgQH9lI0Dltnkk,826
|
|
804
|
-
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-events/README.md,sha256=
|
|
808
|
+
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-events/README.md,sha256=x3ZcCnS7R1TNqGuRC6CMJPy8cWx7DabArJF3j97opQM,13494
|
|
805
809
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-events/integ.api-destination.ts,sha256=BG-rRLNMUyb0OurfMENJKVcUgU2Pz_x8-Jim7ygz8bg,1551
|
|
806
810
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-events/integ.archive-customer-managed-key.ts,sha256=bPlvGpGjSXGO5afmFwQqWJI1L5Eb7iF-dlh-7zRw9BA,661
|
|
807
811
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-events/integ.archive.ts,sha256=reNAFunkaCHQ8-fhFfmKtrDaUYUQq8XeXuCfslnxkSY,570
|
|
@@ -851,7 +855,7 @@ cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-globalaccelerato
|
|
|
851
855
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-globalaccelerator/integ.globalaccelerator-unique-name.ts,sha256=LO9qlrFoOyrqUbi1H_eufzIccMZntbEKPI_p3ODrK1Y,383
|
|
852
856
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-globalaccelerator-endpoints/README.md,sha256=ldPU_ydEQx_MPMu_3hTa9hc7JHLtjbnTIWGTvVOpUZA,407
|
|
853
857
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-globalaccelerator-endpoints/integ.globalaccelerator.ts,sha256=uk9vhUCdpJUJjWHwURRrPD7PexkbQJ8vBiVgK8PZBEw,2416
|
|
854
|
-
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-iam/README.md,sha256=
|
|
858
|
+
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-iam/README.md,sha256=mJ_z-HxZ9x2BOM3vgwKXHebIAz99Ov9flrO5-GdWwpU,33158
|
|
855
859
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-iam/integ.access-key.ts,sha256=22q0DLYwDlurvFK4sErOqJgVliGyz28Xa0TKqGXHrmI,508
|
|
856
860
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-iam/integ.composite-principal.ts,sha256=geaeoyLvnbbSc6qtwGbVur9frN_Ff4fgHNZG7Yah0Rk,624
|
|
857
861
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-iam/integ.condition-with-ref.ts,sha256=yqu0BUZ2WDmMnwO2XKaFhsji4Cp_sqCDolDnDCfcHWw,925
|
|
@@ -989,13 +993,14 @@ cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda-nodejs/in
|
|
|
989
993
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda-nodejs/integ.modules.ts,sha256=etsjdg80JJb_gag1tC0I2DgOcARVOCrRZsQYr46sQv0,2323
|
|
990
994
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda-nodejs/integ.nodejs.build.images.ts,sha256=6gF-Mb9LgF8E5PpGwkBmaWqepqEqzbTuSpnnqKZ1_sU,1721
|
|
991
995
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda-nodejs/integ.specifycode.ts,sha256=JdlBTKpPf5xlQlfTYlXUMbMVwGD0a-heEYPx0ZNFO9U,1938
|
|
992
|
-
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-logs/README.md,sha256=
|
|
996
|
+
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-logs/README.md,sha256=bj8HqK318cRTrSlYpLqQxWEnQxGlzuj-nbs-0AvK9Sg,25043
|
|
993
997
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-logs/integ.expose-metric.ts,sha256=nHHNSRyq2eGVZkZe1_UWwdr7vWnBDqdMWoiArzJleHI,1256
|
|
994
998
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-logs/integ.log-group-metrics.ts,sha256=3t37idu5s4B6dxhZWD_7pNeue7eJCume6MdEgtc1TTs,707
|
|
995
999
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-logs/integ.log-group.ts,sha256=ffml_7GAfXAFSr_qqzrBZ08eG_ZhLS1T-8d-hdsxNf4,1312
|
|
996
1000
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-logs/integ.log-resource-policy-any-principal.ts,sha256=koq7lWWdsPm9OJjkE6EWIiKZaEEuUhvQckp-7yIaqEo,829
|
|
997
1001
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-logs/integ.log-retention-retries.ts,sha256=b3uLWuEZZeOOkwno6y3yBFVT6AbcX9z1VITcyupKnfQ,1336
|
|
998
1002
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-logs/integ.log-retention.ts,sha256=KPWCfAezyRQ9KZR88gbnsIb9TUrjjUYLDMDjFc54XvU,900
|
|
1003
|
+
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-logs/integ.loggroup-deletionprotection.ts,sha256=Dm6vqjQDHA6P6cCWFsxpv3Dm8ML58FGrX34BdnFWrfI,383
|
|
999
1004
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-logs/integ.loggroup-grantread.ts,sha256=3Gjcq80bm6qeqjTmq_rbVVYvbWDTLkGWFclh3_XLY2Q,491
|
|
1000
1005
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-logs/integ.loggroup-transformer.ts,sha256=2DmUNPzqW5FOnYRckyW74XKJwbubhc2gdIT2YhUoi9E,1271
|
|
1001
1006
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-logs/integ.loggroupclass.ts,sha256=ZiJznICcvepDPf97FzReAD5l9FTnWtL6RsNw1cQABgg,2001
|
|
@@ -1011,7 +1016,7 @@ cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-logs-destination
|
|
|
1011
1016
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-logs-destinations/integ.firehose.ts,sha256=Gdtm0GoW-RozF_9eEbScyjk_4CLi01Rrr6tLy_V8tcs,1576
|
|
1012
1017
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-logs-destinations/integ.kinesis.ts,sha256=o3rBgalluFInomW7D0U6Q-mBKSFR5oEnQXTlRm8ZxOE,1306
|
|
1013
1018
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-logs-destinations/integ.lambda.ts,sha256=kViTEqJT9jF3p0Pwra-Sn8j7tQl9YAe88Lp2wl0dz4M,2914
|
|
1014
|
-
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-opensearchservice/README.md,sha256=-
|
|
1019
|
+
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-opensearchservice/README.md,sha256=-op7Z9N5kTk8sbQG_3DM4LrC-89PX746n1irOQiARyU,17847
|
|
1015
1020
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-opensearchservice/integ.opensearch.advancedsecurity-with-saml.ts,sha256=ErD33dAvKKCYg_PFoQCNijmVPbXTDHr-6QMimrxoSLI,1213
|
|
1016
1021
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-opensearchservice/integ.opensearch.advancedsecurity.ts,sha256=eV_BTdrO2DY4PiCDAbkvznyzGTLp3hKB8WgYo1tK0rI,915
|
|
1017
1022
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-opensearchservice/integ.opensearch.cognitodashboardsauth.ts,sha256=DWc0X9LRaepUoYuWI5IlC8EecTD6hLd2-Z4pw7_VrhA,1867
|
|
@@ -1030,7 +1035,7 @@ cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-opensearchservic
|
|
|
1030
1035
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-opensearchservice/integ.opensearch.unsignedbasicauth.ts,sha256=B13diAjHunM-L1w1FHgpDRup-j4Xnnb-rpn171bbjpw,925
|
|
1031
1036
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-opensearchservice/integ.opensearch.vpc.ts,sha256=92FvTQd0U190KN53A8UU4eV3ggwm1GeVn4f3nRE56T0,1400
|
|
1032
1037
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-opensearchservice/integ.opensearch.without-logs-resource-policy.ts,sha256=CTj7BjTXc_Q4J_NnK8C62vXGl3ZIWMbmcuPHjvW01vU,1971
|
|
1033
|
-
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-rds/README.md,sha256=
|
|
1038
|
+
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-rds/README.md,sha256=ZPpoabDUm39t-iDXwRne8pJ-TPJJCsoo6J3YDhhJ5UA,70542
|
|
1034
1039
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-rds/aurora-serverless-v2.md,sha256=D4_EKB6d62nNN0LwL3XGX0YFjwdSBXE8namaBUqU9qw,10484
|
|
1035
1040
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-rds/integ.cluster-applyimmediately.ts,sha256=UB7bdVX6UD63SYroZRXs5V493f1lUX_3lD5W7EeU5AQ,1135
|
|
1036
1041
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-rds/integ.cluster-availability-zone.ts,sha256=59DvW_-fFQ2NPddJdbayEu7V-NVBAPvm3A05IvbBOAA,1765
|
|
@@ -1061,6 +1066,7 @@ cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-rds/integ.cluste
|
|
|
1061
1066
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-rds/integ.cluster-serverless-v2-autopause.ts,sha256=ia2s75dUp2LzDJCSeev-_WgvkmIgztp4x88YSyD_0rc,1063
|
|
1062
1067
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-rds/integ.cluster-serverless-v2.ts,sha256=kwzVT7GTWqaYSTtOmOANIqqUKPBvr2C8Y37NZptzF78,2196
|
|
1063
1068
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-rds/integ.cluster-snapshot.ts,sha256=DOxpSqy5xaZ_kVa8q02TSC8i9_Cv2UDlAFnQY0j2dYM,2338
|
|
1069
|
+
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-rds/integ.cluster-volume-iops-metric.ts,sha256=3TlMk5rj75XBwhmSKsuQtcZM1heq7dXBrJvZ2hrSp5c,1739
|
|
1064
1070
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-rds/integ.cluster.ts,sha256=GOHrohYqQ4oEQxTXwlueW69vxIZxwmD6f5eN4ONsiIs,3509
|
|
1065
1071
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-rds/integ.instance-applyimmediately.ts,sha256=l5SXf5yZ1gMOA-kFdY9f2TKRyGufmVJuWG2rEpuo1Ps,931
|
|
1066
1072
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-rds/integ.instance-ca-certificate.ts,sha256=t0IwouXqbtdmyu6-hwMyai_uex_aenGKXAvg4-q8x9k,864
|
|
@@ -1072,6 +1078,7 @@ cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-rds/integ.instan
|
|
|
1072
1078
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-rds/integ.instance-from-generated-password.ts,sha256=wIXaK_wbr7BtZKQgp7JWeW9iSMo0EH4DKWkqel01Hxs,964
|
|
1073
1079
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-rds/integ.instance-gp3.ts,sha256=AzOuWCeScqhjKztXdqJ7W3rZp-USn2A6deLMT9hAb3g,1063
|
|
1074
1080
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-rds/integ.instance-io2.ts,sha256=NFgyH2HJeFl8gynGcbbOWA7D_0nXY3CN4Ft6RBfwXYA,922
|
|
1081
|
+
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-rds/integ.instance-iops-metric.ts,sha256=I-vGryxk9SUS60X02yPpjo0WcogpvjMeD3O6_UMsfOA,1113
|
|
1075
1082
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-rds/integ.instance-kerberos-without-domainRole.ts,sha256=2ujctrOCd8wIhmMqQC7uI0Ol_lBu7L3f9xr_eJP4A5E,1008
|
|
1076
1083
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-rds/integ.instance-kerberos.ts,sha256=OY5j56NvTStqKp5etrQbzg4Gu4KxvfMX-nX2pV4R-Go,1413
|
|
1077
1084
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-rds/integ.instance-lookup.ts,sha256=VbY1FQl8mZXx46mdusPdj71rXeYAVun2qR44zwddsPM,2799
|
|
@@ -1081,6 +1088,7 @@ cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-rds/integ.instan
|
|
|
1081
1088
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-rds/integ.instance-with-parameter-group.ts,sha256=BELAKjpQc5Rlu2kjpJk8PUhQk2UySlkPhuHdVRiwUpQ,1158
|
|
1082
1089
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-rds/integ.instance.lit.ts,sha256=n8XH1sJD_y2vAMXy2JlOEY4Pg58qA-IpurwwA6NQMpU,4182
|
|
1083
1090
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-rds/integ.option-group.ts,sha256=N1qNGMO7u7rgtQ_N_MZKwOgXXNeAF4Emk18QgvDIUws,1121
|
|
1091
|
+
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-rds/integ.proxy-default-auth-scheme.ts,sha256=4PYXnEgWu0SiorQJ9yznfeRRhvatZNsKYbMuedbrqfY,1328
|
|
1084
1092
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-rds/integ.proxy-endpoint.ts,sha256=DBXydbhQkqKYcwS7EHoBu0AG-FSJ5NdD6RP3r6cxlo4,1186
|
|
1085
1093
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-rds/integ.proxy-mariadb.ts,sha256=h9qrowwmonRVBW53bJVz3wneeErmrHjPdqAoV31WFfY,1391
|
|
1086
1094
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-rds/integ.proxy-sql-server.ts,sha256=8168nOsK3O0H9OCyZe3vdqj3ZwB9LUo8c_yOiGM7IZg,1607
|
|
@@ -1280,7 +1288,7 @@ cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ssm/integ.parame
|
|
|
1280
1288
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ssm/integ.parameter-store-string.ts,sha256=gS0ghSz-LqGHK62JAGXl1lpX2ZVRfKVL1xeJsUrIJWU,3228
|
|
1281
1289
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ssm/integ.parameter.ts,sha256=doRH6bL5H69NjudWjxLfIRPZ7KL3UrGGJFsRrFiQXXE,917
|
|
1282
1290
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ssm/integ.value-from-lookup-with-default.ts,sha256=NuuHvXnav4chWSJEm6gV_mQ-Md6DHfMY82NcoeukGVU,1561
|
|
1283
|
-
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions/README.md,sha256=
|
|
1291
|
+
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions/README.md,sha256=2lnXJDVPw6BrYdKY3oNm0tN4umcCutUXjJHQJMnTE1g,71759
|
|
1284
1292
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions/integ.custom-state.ts,sha256=fUJ2LNZcT-TNw4enUmLAu8TCzrvEZ9CxJDK4ZvKXuOI,1752
|
|
1285
1293
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions/integ.distributed-map-csv-delimiter-with-result-writer-v2.ts,sha256=9sUCYE3Rn9OJsCc8GLWS3qTUYPDv1vH6iRHuMmG386Y,2670
|
|
1286
1294
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions/integ.distributed-map-csv-delimiter.ts,sha256=f_ZUPr3pI1Cymj5NEBNiqJTeQPF7SJeI0wRTdB5L78Y,2476
|
|
@@ -1299,6 +1307,7 @@ cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions/in
|
|
|
1299
1307
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions/integ.map-inline.ts,sha256=vzCMkfobIPqMd94tOD2uxCi7CxEhxG9Po07LnrfV_q0,971
|
|
1300
1308
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions/integ.map-itemselector.ts,sha256=n_Ovy855kjSCK-GFrNzhaz7T0cVHUXUeSt8QNngYz98,1115
|
|
1301
1309
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions/integ.map-jsonata-itemselector.ts,sha256=_azQApIjXjJUDTTDrJHMqui_E3wOx2RR5_dkYn8AFPE,1113
|
|
1310
|
+
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions/integ.map-jsonata-maxconcurrency.ts,sha256=LebG25DadsofbVpnRzKOg5wf219_t0ulvt5QOJ1lGiA,1138
|
|
1302
1311
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions/integ.map-with-catch.ts,sha256=qs8xSUob6jZzeLTgKZmGGU5gY7Z7m-ZUcstI3AhNHNc,2824
|
|
1303
1312
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions/integ.parallel-parameters.ts,sha256=xseArfY0EBjgh4X96w7yi7Xq4sWGzzzLwB2JAw9JXsk,1739
|
|
1304
1313
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions/integ.s3-json-item-reader.ts,sha256=69K8O1x1sUkzGFfcf-KEmzzo19yvrdl0Po59k2grxXI,5773
|
|
@@ -1480,8 +1489,8 @@ cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/pipelines/integ.pipe
|
|
|
1480
1489
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/region-info/README.md,sha256=vewWkV3ds9o9iyyYaJBNTkaKJ2XA6K2yF17tAxUnujg,2718
|
|
1481
1490
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/triggers/README.md,sha256=hYIx7DbG_7p4LYLUfxDwgIQjw9UNdz1GLrqDe8_Dbko,4132
|
|
1482
1491
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/triggers/integ.triggers.ts,sha256=LfeVru_CggiFXKPVa8vwt6Uv43SV3oAioDGmd8PyMHc,2859
|
|
1483
|
-
konokenj_cdk_api_mcp_server-0.
|
|
1484
|
-
konokenj_cdk_api_mcp_server-0.
|
|
1485
|
-
konokenj_cdk_api_mcp_server-0.
|
|
1486
|
-
konokenj_cdk_api_mcp_server-0.
|
|
1487
|
-
konokenj_cdk_api_mcp_server-0.
|
|
1492
|
+
konokenj_cdk_api_mcp_server-0.70.0.dist-info/METADATA,sha256=jH-lWPiCse-acxprkStAlMhgor_2hEmFzIlF64tKsrA,2646
|
|
1493
|
+
konokenj_cdk_api_mcp_server-0.70.0.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
|
|
1494
|
+
konokenj_cdk_api_mcp_server-0.70.0.dist-info/entry_points.txt,sha256=bVDhMdyCC1WNMPOMbmB82jvWII2CIrwTZDygdCf0cYQ,79
|
|
1495
|
+
konokenj_cdk_api_mcp_server-0.70.0.dist-info/licenses/LICENSE.txt,sha256=5OIAASeg1HM22mVZ1enz9bgZ7TlsGfWXnj02P9OgFyk,1098
|
|
1496
|
+
konokenj_cdk_api_mcp_server-0.70.0.dist-info/RECORD,,
|
{konokenj_cdk_api_mcp_server-0.68.0.dist-info → konokenj_cdk_api_mcp_server-0.70.0.dist-info}/WHEEL
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|