konokenj.cdk-api-mcp-server 0.46.0__py3-none-any.whl → 0.47.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-elasticache-alpha/README.md +421 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudfront-origins/README.md +14 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudfront-origins/integ.http-origin.ts +5 -2
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-docdb/README.md +24 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-docdb/integ.cluster-serverless.ts +34 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/pipelines/README.md +4 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/pipelines/integ.newpipeline-reduce-stagerole-scope.ts +4 -1
- {konokenj_cdk_api_mcp_server-0.46.0.dist-info → konokenj_cdk_api_mcp_server-0.47.0.dist-info}/METADATA +2 -2
- {konokenj_cdk_api_mcp_server-0.46.0.dist-info → konokenj_cdk_api_mcp_server-0.47.0.dist-info}/RECORD +13 -11
- {konokenj_cdk_api_mcp_server-0.46.0.dist-info → konokenj_cdk_api_mcp_server-0.47.0.dist-info}/WHEEL +0 -0
- {konokenj_cdk_api_mcp_server-0.46.0.dist-info → konokenj_cdk_api_mcp_server-0.47.0.dist-info}/entry_points.txt +0 -0
- {konokenj_cdk_api_mcp_server-0.46.0.dist-info → konokenj_cdk_api_mcp_server-0.47.0.dist-info}/licenses/LICENSE.txt +0 -0
cdk_api_mcp_server/__about__.py
CHANGED
|
@@ -0,0 +1,421 @@
|
|
|
1
|
+
# ElastiCache CDK Construct Library
|
|
2
|
+
<!--BEGIN STABILITY BANNER-->
|
|
3
|
+
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+

|
|
7
|
+
|
|
8
|
+
> The APIs of higher level constructs in this module are experimental and under active development.
|
|
9
|
+
> They are subject to non-backward compatible changes or removal in any future version. These are
|
|
10
|
+
> not subject to the [Semantic Versioning](https://semver.org/) model and breaking changes will be
|
|
11
|
+
> announced in the release notes. This means that while you may use them, you may need to update
|
|
12
|
+
> your source code when upgrading to a newer version of this package.
|
|
13
|
+
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
<!--END STABILITY BANNER-->
|
|
17
|
+
|
|
18
|
+
This module has constructs for [Amazon ElastiCache](https://docs.aws.amazon.com/AmazonElastiCache/latest/dg/WhatIs.html).
|
|
19
|
+
|
|
20
|
+
* The `ServerlessCache` construct facilitates the creation and management of serverless cache.
|
|
21
|
+
* The `User` and `UserGroup` constructs facilitate the creation and management of users for the cache.
|
|
22
|
+
|
|
23
|
+
## Serverless Cache
|
|
24
|
+
|
|
25
|
+
Amazon ElastiCache Serverless is a serverless option that automatically scales cache capacity based on application traffic patterns. You can create a serverless cache using the `ServerlessCache` construct:
|
|
26
|
+
|
|
27
|
+
```ts
|
|
28
|
+
const vpc = new ec2.Vpc(this, 'VPC');
|
|
29
|
+
|
|
30
|
+
const cache = new elasticache.ServerlessCache(this, 'ServerlessCache', {
|
|
31
|
+
vpc,
|
|
32
|
+
});
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
### Connecting to serverless cache
|
|
36
|
+
|
|
37
|
+
To control who can access the serverless cache by the security groups, use the `.connections` attribute.
|
|
38
|
+
|
|
39
|
+
The serverless cache has a default port `6379`.
|
|
40
|
+
|
|
41
|
+
This example allows an EC2 instance to connect to the serverless cache:
|
|
42
|
+
|
|
43
|
+
```ts
|
|
44
|
+
declare const serverlessCache: elasticache.ServerlessCache;
|
|
45
|
+
declare const instance: ec2.Instance;
|
|
46
|
+
|
|
47
|
+
// allow the EC2 instance to connect to serverless cache on default port 6379
|
|
48
|
+
serverlessCache.connections.allowDefaultPortFrom(instance);
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
### Cache usage limits
|
|
52
|
+
|
|
53
|
+
You can configure usage limits on both cache data storage and ECPU/second for your cache to control costs and ensure predictable performance.
|
|
54
|
+
|
|
55
|
+
**Configuration options:**
|
|
56
|
+
|
|
57
|
+
* **Maximum limits**: Ensure your cache usage never exceeds the configured maximum
|
|
58
|
+
* **Minimum limits**: Reserve a baseline level of resources for consistent performance
|
|
59
|
+
* **Both**: Define a range where your cache usage will operate
|
|
60
|
+
|
|
61
|
+
For more infomation, see [Setting scaling limits to manage costs](https://docs.aws.amazon.com/AmazonElastiCache/latest/dg/Scaling.html#Pre-Scaling).
|
|
62
|
+
|
|
63
|
+
```ts
|
|
64
|
+
declare const vpc: ec2.Vpc;
|
|
65
|
+
|
|
66
|
+
const serverlessCache = new elasticache.ServerlessCache(this, 'ServerlessCache', {
|
|
67
|
+
engine: elasticache.CacheEngine.VALKEY_LATEST,
|
|
68
|
+
vpc,
|
|
69
|
+
cacheUsageLimits: {
|
|
70
|
+
// cache data storage limits (GB)
|
|
71
|
+
dataStorageMinimumSize: Size.gibibytes(2), // minimum: 1GB
|
|
72
|
+
dataStorageMaximumSize: Size.gibibytes(3), // maximum: 5000GB
|
|
73
|
+
// rate limits (ECPU/second)
|
|
74
|
+
requestRateLimitMinimum: 1000, // minimum: 1000
|
|
75
|
+
requestRateLimitMaximum: 10000, // maximum: 15000000
|
|
76
|
+
},
|
|
77
|
+
});
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
### Backups and restore
|
|
81
|
+
|
|
82
|
+
You can enable automatic backups for serverless cache.
|
|
83
|
+
When automatic backups are enabled, ElastiCache creates a backup of the cache on a daily basis.
|
|
84
|
+
|
|
85
|
+
Also you can set the backup window for any time when it's most convenient.
|
|
86
|
+
If you don't specify a backup window, ElastiCache assigns one automatically.
|
|
87
|
+
|
|
88
|
+
For more information, see [Scheduling automatic backups](https://docs.aws.amazon.com/AmazonElastiCache/latest/dg/backups-automatic.html).
|
|
89
|
+
|
|
90
|
+
To enable automatic backups, set the `backupRetentionLimit` property. You can also specify the snapshot creation time by setting `backupTime` property:
|
|
91
|
+
|
|
92
|
+
```ts
|
|
93
|
+
declare const vpc: ec2.Vpc;
|
|
94
|
+
|
|
95
|
+
const serverlessCache = new elasticache.ServerlessCache(this, 'ServerlessCache', {
|
|
96
|
+
backup: {
|
|
97
|
+
// enable automatic backups and set the retention period to 6 days
|
|
98
|
+
backupRetentionLimit: 6,
|
|
99
|
+
// set the backup window to 9:00 AM UTC
|
|
100
|
+
backupTime: events.Schedule.cron({
|
|
101
|
+
hour: '9',
|
|
102
|
+
minute: '0',
|
|
103
|
+
}),
|
|
104
|
+
},
|
|
105
|
+
vpc,
|
|
106
|
+
});
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
You can create a final backup by setting `backupNameBeforeDeletion` property.
|
|
110
|
+
|
|
111
|
+
```ts
|
|
112
|
+
declare const vpc: ec2.Vpc;
|
|
113
|
+
|
|
114
|
+
const serverlessCache = new elasticache.ServerlessCache(this, 'ServerlessCache', {
|
|
115
|
+
engine: elasticache.CacheEngine.VALKEY_LATEST,
|
|
116
|
+
backup: {
|
|
117
|
+
// set a backup name before deleting a cache
|
|
118
|
+
backupNameBeforeDeletion: "my-final-backup-name",
|
|
119
|
+
},
|
|
120
|
+
vpc,
|
|
121
|
+
});
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
You can restore from backups by setting snapshot ARNs to `backupArnsToRestore` property:
|
|
125
|
+
|
|
126
|
+
```ts
|
|
127
|
+
declare const vpc: ec2.Vpc;
|
|
128
|
+
|
|
129
|
+
const serverlessCache = new elasticache.ServerlessCache(this, 'ServerlessCache', {
|
|
130
|
+
engine: elasticache.CacheEngine.VALKEY_LATEST,
|
|
131
|
+
backup: {
|
|
132
|
+
// set the backup(s) to restore
|
|
133
|
+
backupArnsToRestore: ['arn:aws:elasticache:us-east-1:123456789012:serverlesscachesnapshot:my-final-backup-name'],
|
|
134
|
+
},
|
|
135
|
+
vpc,
|
|
136
|
+
});
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
### Encryption at rest
|
|
140
|
+
|
|
141
|
+
At-rest encryption is always enabled for Serverless Cache. There are two encryption options:
|
|
142
|
+
|
|
143
|
+
* **Default**: When no `kmsKey` is specified (left as `undefined`), AWS owned KMS keys are used automatically
|
|
144
|
+
* **Customer Managed Key**: Create a KMS key first, then pass it to the cache via the `kmsKey` property
|
|
145
|
+
|
|
146
|
+
### Customer Managed Key for encryption at rest
|
|
147
|
+
|
|
148
|
+
ElastiCache supports symmetric Customer Managed key (CMK) for encryption at rest.
|
|
149
|
+
|
|
150
|
+
For more information, see [Using customer managed keys from AWS KMS](https://docs.aws.amazon.com/AmazonElastiCache/latest/dg/at-rest-encryption.html#using-customer-managed-keys-for-elasticache-security).
|
|
151
|
+
|
|
152
|
+
To use CMK, set your CMK to the `kmsKey` property:
|
|
153
|
+
|
|
154
|
+
```ts
|
|
155
|
+
import { Key } from 'aws-cdk-lib/aws-kms';
|
|
156
|
+
|
|
157
|
+
declare const kmsKey: Key;
|
|
158
|
+
declare const vpc: ec2.Vpc;
|
|
159
|
+
|
|
160
|
+
const serverlessCache = new elasticache.ServerlessCache(this, 'ServerlessCache', {
|
|
161
|
+
engine: elasticache.CacheEngine.VALKEY_LATEST,
|
|
162
|
+
serverlessCacheName: 'my-serverless-cache',
|
|
163
|
+
vpc,
|
|
164
|
+
// set Customer Managed Key
|
|
165
|
+
kmsKey,
|
|
166
|
+
});
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
### Metrics and monitoring
|
|
170
|
+
|
|
171
|
+
You can monitor your serverless cache using CloudWatch Metrics via the `metric` method.
|
|
172
|
+
|
|
173
|
+
For more information about serverless cache metrics, see [Serverless metrics and events for Valkey and Redis OSS](https://docs.aws.amazon.com/AmazonElastiCache/latest/dg/serverless-metrics-events-redis.html) and [Serverless metrics and events for Memcached](https://docs.aws.amazon.com/AmazonElastiCache/latest/dg/serverless-metrics-events.memcached.html).
|
|
174
|
+
|
|
175
|
+
```ts
|
|
176
|
+
declare const serverlessCache: elasticache.ServerlessCache;
|
|
177
|
+
|
|
178
|
+
// The 5 minutes average of the total number of successful read-only key lookups in the cache.
|
|
179
|
+
const cacheHits = serverlessCache.metricCacheHitCount();
|
|
180
|
+
|
|
181
|
+
// The 5 minutes average of the total number of bytes used by the data stored in the cache.
|
|
182
|
+
const bytesUsedForCache = serverlessCache.metricDataStored();
|
|
183
|
+
|
|
184
|
+
// The 5 minutes average of the total number of ElastiCacheProcessingUnits (ECPUs) consumed by the requests executed on the cache.
|
|
185
|
+
const elastiCacheProcessingUnits = serverlessCache.metricProcessingUnitsConsumed();
|
|
186
|
+
|
|
187
|
+
// Create an alarm for ECPUs.
|
|
188
|
+
elastiCacheProcessingUnits.createAlarm(this, 'ElastiCacheProcessingUnitsAlarm', {
|
|
189
|
+
threshold: 50,
|
|
190
|
+
evaluationPeriods: 1,
|
|
191
|
+
});
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
### Import an existing serverless cache
|
|
195
|
+
|
|
196
|
+
To import an existing ServerlessCache, use the `ServerlessCache.fromServerlessCacheAttributes` method:
|
|
197
|
+
|
|
198
|
+
```ts
|
|
199
|
+
declare const securityGroup: ec2.SecurityGroup;
|
|
200
|
+
|
|
201
|
+
const importedServerlessCache = elasticache.ServerlessCache.fromServerlessCacheAttributes(this, 'ImportedServerlessCache', {
|
|
202
|
+
serverlessCacheName: 'my-serverless-cache',
|
|
203
|
+
securityGroups: [securityGroup],
|
|
204
|
+
});
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
## User and User Group
|
|
208
|
+
|
|
209
|
+
Setup required properties and create:
|
|
210
|
+
|
|
211
|
+
```ts
|
|
212
|
+
const newDefaultUser = new elasticache.NoPasswordUser(this, 'NoPasswordUser', {
|
|
213
|
+
userId: 'default',
|
|
214
|
+
accessControl: elasticache.AccessControl.fromAccessString("on ~* +@all"),
|
|
215
|
+
})
|
|
216
|
+
|
|
217
|
+
const userGroup = new elasticache.UserGroup(this, 'UserGroup', {
|
|
218
|
+
users: [newDefaultUser],
|
|
219
|
+
});
|
|
220
|
+
```
|
|
221
|
+
|
|
222
|
+
### RBAC
|
|
223
|
+
|
|
224
|
+
In Valkey 7.2 and onward and Redis OSS 6.0 onward you can use a feature called Role-Based Access Control (RBAC). RBAC is also the only way to control access to serverless caches.
|
|
225
|
+
|
|
226
|
+
RBAC enables you to control cache access through user groups. These user groups are designed as a way to organize access to caches.
|
|
227
|
+
|
|
228
|
+
For more information, see [Role-Based Access Control (RBAC)](https://docs.aws.amazon.com/AmazonElastiCache/latest/dg/Clusters.RBAC.html).
|
|
229
|
+
|
|
230
|
+
To enable RBAC for ElastiCache with Valkey or Redis OSS, you take the following steps:
|
|
231
|
+
|
|
232
|
+
* Create users.
|
|
233
|
+
* Create a user group and add users to the user group.
|
|
234
|
+
* Assign the user group to a cache.
|
|
235
|
+
|
|
236
|
+
### Create users
|
|
237
|
+
|
|
238
|
+
First, you need to create users by using `IamUser`, `PasswordUser` or `NoPasswordUser` construct.
|
|
239
|
+
|
|
240
|
+
With RBAC, you create users and assign them specific permissions by using `accessString` property.
|
|
241
|
+
|
|
242
|
+
For more information, see [Specifying Permissions Using an Access String](https://docs.aws.amazon.com/AmazonElastiCache/latest/dg/Clusters.RBAC.html#Access-string).
|
|
243
|
+
|
|
244
|
+
You can create an IAM-enabled user by using `IamUser` construct:
|
|
245
|
+
|
|
246
|
+
```ts
|
|
247
|
+
const user = new elasticache.IamUser(this, 'User', {
|
|
248
|
+
// set user engine
|
|
249
|
+
engine: elasticache.UserEngine.REDIS,
|
|
250
|
+
|
|
251
|
+
// set user id
|
|
252
|
+
userId: 'my-user',
|
|
253
|
+
|
|
254
|
+
// set username
|
|
255
|
+
userName: 'my-user',
|
|
256
|
+
|
|
257
|
+
// set access string
|
|
258
|
+
accessControl: elasticache.AccessControl.fromAccessString("on ~* +@all"),
|
|
259
|
+
});
|
|
260
|
+
```
|
|
261
|
+
|
|
262
|
+
> NOTE: IAM-enabled users must have matching user id and username. For more information, see [Limitations](https://docs.aws.amazon.com/AmazonElastiCache/latest/dg/auth-iam.html). The construct can set automatically the username to be the same as the user id.
|
|
263
|
+
|
|
264
|
+
If you want to create a password authenticated user, use `PasswordUser` construct:
|
|
265
|
+
|
|
266
|
+
```ts
|
|
267
|
+
const user = new elasticache.PasswordUser(this, 'User', {
|
|
268
|
+
// set user engine
|
|
269
|
+
engine: elasticache.UserEngine.VALKEY,
|
|
270
|
+
|
|
271
|
+
// set user id
|
|
272
|
+
userId: 'my-user-id',
|
|
273
|
+
|
|
274
|
+
// set access string
|
|
275
|
+
accessControl: elasticache.AccessControl.fromAccessString("on ~* +@all"),
|
|
276
|
+
|
|
277
|
+
// set username
|
|
278
|
+
userName: 'my-user-name',
|
|
279
|
+
|
|
280
|
+
// set up to two passwords
|
|
281
|
+
passwords: [
|
|
282
|
+
// "SecretIdForPassword" is the secret id for the password
|
|
283
|
+
SecretValue.secretsManager('SecretIdForPassword'),
|
|
284
|
+
// "AnotherSecretIdForPassword" is the secret id for the password
|
|
285
|
+
SecretValue.secretsManager('AnotherSecretIdForPassword'),
|
|
286
|
+
],
|
|
287
|
+
});
|
|
288
|
+
```
|
|
289
|
+
|
|
290
|
+
You can also create a no password required user by using `NoPasswordUser` construct:
|
|
291
|
+
|
|
292
|
+
```ts
|
|
293
|
+
const user = new elasticache.NoPasswordUser(this, 'User', {
|
|
294
|
+
// set user engine
|
|
295
|
+
engine: elasticache.UserEngine.REDIS,
|
|
296
|
+
|
|
297
|
+
// set user id
|
|
298
|
+
userId: 'my-user-id',
|
|
299
|
+
|
|
300
|
+
// set access string
|
|
301
|
+
accessControl: elasticache.AccessControl.fromAccessString("on ~* +@all"),
|
|
302
|
+
|
|
303
|
+
// set username
|
|
304
|
+
userName: 'my-user-name',
|
|
305
|
+
});
|
|
306
|
+
```
|
|
307
|
+
|
|
308
|
+
### Default user
|
|
309
|
+
|
|
310
|
+
ElastiCache automatically creates a default user with both a user ID and username set to `default`. This default user cannot be modified or deleted. The user is created as a no password authentication user.
|
|
311
|
+
|
|
312
|
+
This user is intended for compatibility with the default behavior of previous Redis OSS versions and has an access string that permits it to call all commands and access all keys.
|
|
313
|
+
|
|
314
|
+
To use this automatically created default user in CDK, you can import it using `NoPasswordUser.fromUserAttributes` method. For more information on import methods, see the [Import an existing user and user group](#import-an-existing-user-and-user-group) section.
|
|
315
|
+
|
|
316
|
+
To add proper access control to a cache, replace the default user with a new one that is either disabled by setting the `accessString` to `off -@all` or secured with a strong password.
|
|
317
|
+
|
|
318
|
+
To change the default user, create a new default user with the username set to `default`. You can then swap it with the original default user.
|
|
319
|
+
|
|
320
|
+
For more information, see [Applying RBAC to a Cache for ElastiCache with Valkey or Redis OSS](https://docs.aws.amazon.com/AmazonElastiCache/latest/dg/Clusters.RBAC.html#rbac-using).
|
|
321
|
+
|
|
322
|
+
If you want to create a new default user, `userName` must be `default` and `userId` must not be `default` by using `NoPasswordUser` or `PasswordUser`:
|
|
323
|
+
|
|
324
|
+
```ts
|
|
325
|
+
// use the original `default` user by using import method
|
|
326
|
+
const defaultUser = elasticache.NoPasswordUser.fromUserAttributes(this, 'DefaultUser', {
|
|
327
|
+
// userId and userName must be 'default'
|
|
328
|
+
userId: 'default',
|
|
329
|
+
});
|
|
330
|
+
|
|
331
|
+
// create a new default user
|
|
332
|
+
const newDefaultUser = new elasticache.NoPasswordUser(this, 'NewDefaultUser', {
|
|
333
|
+
// new default user id must not be 'default'
|
|
334
|
+
userId: 'new-default',
|
|
335
|
+
// new default username must be 'default'
|
|
336
|
+
userName: 'default',
|
|
337
|
+
// set access string
|
|
338
|
+
accessControl: elasticache.AccessControl.fromAccessString("on ~* +@all"),
|
|
339
|
+
});
|
|
340
|
+
```
|
|
341
|
+
|
|
342
|
+
> NOTE: You can't create a new default user using `IamUser` because an IAM-enabled user's username and user ID cannot be different.
|
|
343
|
+
|
|
344
|
+
### Add users to the user group
|
|
345
|
+
|
|
346
|
+
Next, use the `UserGroup` construct to create a user group and add users to it.
|
|
347
|
+
Ensure that you include either the original default user or a new default user:
|
|
348
|
+
|
|
349
|
+
```ts
|
|
350
|
+
declare const newDefaultUser: elasticache.IUser;
|
|
351
|
+
declare const user: elasticache.IUser;
|
|
352
|
+
declare const anotherUser: elasticache.IUser;
|
|
353
|
+
|
|
354
|
+
const userGroup = new elasticache.UserGroup(this, 'UserGroup', {
|
|
355
|
+
// add users including default user
|
|
356
|
+
users: [newDefaultUser, user],
|
|
357
|
+
});
|
|
358
|
+
|
|
359
|
+
// you can also add a user by using addUser method
|
|
360
|
+
userGroup.addUser(anotherUser);
|
|
361
|
+
```
|
|
362
|
+
|
|
363
|
+
### Assign user group
|
|
364
|
+
|
|
365
|
+
Finally, assign a user group to cache:
|
|
366
|
+
|
|
367
|
+
```ts
|
|
368
|
+
declare const vpc: ec2.Vpc;
|
|
369
|
+
declare const userGroup: elasticache.UserGroup;
|
|
370
|
+
|
|
371
|
+
const serverlessCache = new elasticache.ServerlessCache(this, 'ServerlessCache', {
|
|
372
|
+
engine: elasticache.CacheEngine.VALKEY_LATEST,
|
|
373
|
+
serverlessCacheName: 'my-serverless-cache',
|
|
374
|
+
vpc,
|
|
375
|
+
// assign User Group
|
|
376
|
+
userGroup,
|
|
377
|
+
});
|
|
378
|
+
|
|
379
|
+
```
|
|
380
|
+
|
|
381
|
+
### Grant permissions to IAM-enabled users
|
|
382
|
+
|
|
383
|
+
If you create IAM-enabled users, `"elasticache:Connect"` action must be allowed for the users and cache.
|
|
384
|
+
|
|
385
|
+
> NOTE: You don't need grant permissions to no password required users or password authentication users.
|
|
386
|
+
|
|
387
|
+
For more information, see [Authenticating with IAM](https://docs.aws.amazon.com/AmazonElastiCache/latest/dg/auth-iam.html).
|
|
388
|
+
|
|
389
|
+
To grant permissions, you can use the `grantConnect` method in `IamUser` and `ServerlessCache` constructs:
|
|
390
|
+
|
|
391
|
+
```ts
|
|
392
|
+
declare const user: elasticache.IamUser;
|
|
393
|
+
declare const serverlessCache: elasticache.ServerlessCache;
|
|
394
|
+
declare const role: iam.Role;
|
|
395
|
+
|
|
396
|
+
// grant "elasticache:Connect" action permissions to role
|
|
397
|
+
user.grantConnect(role);
|
|
398
|
+
serverlessCache.grantConnect(role);
|
|
399
|
+
```
|
|
400
|
+
|
|
401
|
+
### Import an existing user and user group
|
|
402
|
+
|
|
403
|
+
You can import an existing user and user group by using import methods:
|
|
404
|
+
|
|
405
|
+
```ts
|
|
406
|
+
const stack = new Stack();
|
|
407
|
+
|
|
408
|
+
const importedIamUser = elasticache.IamUser.fromUserId(this, 'ImportedIamUser', 'my-iam-user-id');
|
|
409
|
+
|
|
410
|
+
const importedPasswordUser = elasticache.PasswordUser.fromUserAttributes(stack, 'ImportedPasswordUser', {
|
|
411
|
+
userId: 'my-password-user-id',
|
|
412
|
+
});
|
|
413
|
+
|
|
414
|
+
const importedNoPasswordUser = elasticache.NoPasswordUser.fromUserAttributes(stack, 'ImportedNoPasswordUser', {
|
|
415
|
+
userId: 'my-no-password-user-id',
|
|
416
|
+
});
|
|
417
|
+
|
|
418
|
+
const importedUserGroup = elasticache.UserGroup.fromUserGroupAttributes(this, 'ImportedUserGroup', {
|
|
419
|
+
userGroupName: 'my-user-group-name'
|
|
420
|
+
});
|
|
421
|
+
```
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudfront-origins/README.md
CHANGED
|
@@ -597,6 +597,20 @@ new cloudfront.Distribution(this, 'myDist', {
|
|
|
597
597
|
});
|
|
598
598
|
```
|
|
599
599
|
|
|
600
|
+
You can specify the IP address type for connecting to the origin:
|
|
601
|
+
|
|
602
|
+
```ts
|
|
603
|
+
const origin = new origins.HttpOrigin('www.example.com', {
|
|
604
|
+
ipAddressType: cloudfront.OriginIpAddressType.IPV6, // IPv4, IPv6, or DUALSTACK
|
|
605
|
+
});
|
|
606
|
+
|
|
607
|
+
new cloudfront.Distribution(this, 'Distribution', {
|
|
608
|
+
defaultBehavior: { origin },
|
|
609
|
+
});
|
|
610
|
+
```
|
|
611
|
+
|
|
612
|
+
The `ipAddressType` property allows you to specify whether CloudFront should use IPv4, IPv6, or both (dual-stack) when connecting to your origin.
|
|
613
|
+
|
|
600
614
|
The origin can be customized with timeout settings to handle different response scenarios:
|
|
601
615
|
|
|
602
616
|
```ts
|
|
@@ -1,13 +1,16 @@
|
|
|
1
1
|
import * as cloudfront from 'aws-cdk-lib/aws-cloudfront';
|
|
2
2
|
import * as cdk from 'aws-cdk-lib';
|
|
3
3
|
import * as origins from 'aws-cdk-lib/aws-cloudfront-origins';
|
|
4
|
+
import { IntegTest } from '@aws-cdk/integ-tests-alpha';
|
|
4
5
|
|
|
5
6
|
const app = new cdk.App();
|
|
6
7
|
|
|
7
8
|
const stack = new cdk.Stack(app, 'cloudfront-http-origin');
|
|
8
9
|
|
|
9
10
|
new cloudfront.Distribution(stack, 'Distribution', {
|
|
10
|
-
defaultBehavior: { origin: new origins.HttpOrigin('www.example.com') },
|
|
11
|
+
defaultBehavior: { origin: new origins.HttpOrigin('www.example.com', { ipAddressType: cloudfront.OriginIpAddressType.DUALSTACK }) },
|
|
11
12
|
});
|
|
12
13
|
|
|
13
|
-
app
|
|
14
|
+
new IntegTest(app, 'http-origin-test-integ', {
|
|
15
|
+
testCases: [stack],
|
|
16
|
+
});
|
|
@@ -28,6 +28,28 @@ By default, the master password will be generated and stored in AWS Secrets Mana
|
|
|
28
28
|
|
|
29
29
|
Your cluster will be empty by default.
|
|
30
30
|
|
|
31
|
+
## Serverless Clusters
|
|
32
|
+
|
|
33
|
+
DocumentDB supports serverless clusters that automatically scale capacity based on your application's needs.
|
|
34
|
+
To create a serverless cluster, specify the `serverlessV2ScalingConfiguration` instead of `instanceType`:
|
|
35
|
+
|
|
36
|
+
```ts
|
|
37
|
+
declare const vpc: ec2.Vpc;
|
|
38
|
+
const cluster = new docdb.DatabaseCluster(this, 'Database', {
|
|
39
|
+
masterUser: {
|
|
40
|
+
username: 'myuser',
|
|
41
|
+
},
|
|
42
|
+
vpc,
|
|
43
|
+
serverlessV2ScalingConfiguration: {
|
|
44
|
+
minCapacity: 0.5,
|
|
45
|
+
maxCapacity: 2,
|
|
46
|
+
},
|
|
47
|
+
engineVersion: '5.0.0', // Serverless requires engine version 5.0.0 or higher
|
|
48
|
+
});
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
**Note**: DocumentDB serverless requires engine version 5.0.0 or higher and is not compatible with all features. See the [AWS documentation](https://docs.aws.amazon.com/documentdb/latest/developerguide/docdb-serverless-limitations.html) for limitations.
|
|
52
|
+
|
|
31
53
|
## Connecting
|
|
32
54
|
|
|
33
55
|
To control who can access the cluster, use the `.connections` attribute. DocumentDB databases have a default port, so
|
|
@@ -278,3 +300,5 @@ const cluster = new docdb.DatabaseCluster(this, 'Database', {
|
|
|
278
300
|
```
|
|
279
301
|
|
|
280
302
|
**Note**: `StorageType.IOPT1` is supported starting with engine version 5.0.0.
|
|
303
|
+
|
|
304
|
+
**Note**: For serverless clusters, storage type is managed automatically and cannot be specified.
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-docdb/integ.cluster-serverless.ts
ADDED
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import * as ec2 from 'aws-cdk-lib/aws-ec2';
|
|
2
|
+
import * as cdk from 'aws-cdk-lib';
|
|
3
|
+
import * as constructs from 'constructs';
|
|
4
|
+
import { DatabaseCluster } from 'aws-cdk-lib/aws-docdb';
|
|
5
|
+
import { IntegTest } from '@aws-cdk/integ-tests-alpha';
|
|
6
|
+
|
|
7
|
+
class TestStack extends cdk.Stack {
|
|
8
|
+
constructor(scope: constructs.Construct, id: string, props?: cdk.StackProps) {
|
|
9
|
+
super(scope, id, props);
|
|
10
|
+
|
|
11
|
+
const vpc = new ec2.Vpc(this, 'VPC', { maxAzs: 2, restrictDefaultSecurityGroup: false });
|
|
12
|
+
|
|
13
|
+
new DatabaseCluster(this, 'Database', {
|
|
14
|
+
masterUser: {
|
|
15
|
+
username: 'docdb',
|
|
16
|
+
},
|
|
17
|
+
vpc,
|
|
18
|
+
serverlessV2ScalingConfiguration: {
|
|
19
|
+
minCapacity: 0.5,
|
|
20
|
+
maxCapacity: 2,
|
|
21
|
+
},
|
|
22
|
+
engineVersion: '5.0.0',
|
|
23
|
+
removalPolicy: cdk.RemovalPolicy.DESTROY,
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
const app = new cdk.App();
|
|
29
|
+
|
|
30
|
+
const stack = new TestStack(app, 'aws-cdk-docdb-cluster-serverless');
|
|
31
|
+
|
|
32
|
+
new IntegTest(app, 'aws-cdk-docdb-cluster-serverless-integ', {
|
|
33
|
+
testCases: [stack],
|
|
34
|
+
});
|
|
@@ -739,6 +739,10 @@ new pipelines.CodeBuildStep('Synth', {
|
|
|
739
739
|
buildEnvironment: {
|
|
740
740
|
computeType: codebuild.ComputeType.LARGE,
|
|
741
741
|
privileged: true,
|
|
742
|
+
dockerServer: {
|
|
743
|
+
computeType: codebuild.DockerServerComputeType.SMALL,
|
|
744
|
+
securityGroups: [mySecurityGroup],
|
|
745
|
+
},
|
|
742
746
|
},
|
|
743
747
|
timeout: Duration.minutes(90),
|
|
744
748
|
fileSystemLocations: [
|
|
@@ -53,8 +53,11 @@ class PipelineStack extends Stack {
|
|
|
53
53
|
dockerEnabledForSynth: true,
|
|
54
54
|
codeBuildDefaults: {
|
|
55
55
|
buildEnvironment: {
|
|
56
|
-
buildImage: codebuild.
|
|
56
|
+
buildImage: codebuild.LinuxBuildImage.AMAZON_LINUX_2023_5,
|
|
57
57
|
computeType: codebuild.ComputeType.SMALL,
|
|
58
|
+
dockerServer: {
|
|
59
|
+
computeType: codebuild.DockerServerComputeType.SMALL,
|
|
60
|
+
},
|
|
58
61
|
},
|
|
59
62
|
cache: codebuild.Cache.local(codebuild.LocalCacheMode.DOCKER_LAYER),
|
|
60
63
|
},
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: konokenj.cdk-api-mcp-server
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.47.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.46.0.dist-info → konokenj_cdk_api_mcp_server-0.47.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=8L-6OWVPIF0futVdaVrf07B6gKzkYZILssN41hDhlOE,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
|
|
@@ -16,6 +16,7 @@ cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/aws-custom-resource-sdk
|
|
|
16
16
|
cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/aws-ec2-alpha/README.md,sha256=ZySzpPJ4eUj3ZJ_jWF6YFOX4J9a7F-GU3o6QT_zJggQ,36094
|
|
17
17
|
cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/aws-eks-v2-alpha/MANUAL_TEST.md,sha256=uObwqDllAUYBGkoNEAQGioL6JuKqh5ScVbq9KC3x89Q,1862
|
|
18
18
|
cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/aws-eks-v2-alpha/README.md,sha256=PZR9EHmUdly15E0ZRfLjUZR_NyvlvV_3Jip6FSqyBR8,41992
|
|
19
|
+
cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/aws-elasticache-alpha/README.md,sha256=5rwHuZ0rekBgrFzF1ig9rAxqufypWy8XN8-7y3De0dA,15152
|
|
19
20
|
cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/aws-gamelift-alpha/README.md,sha256=pZqlGXpIekT05CmRYo99QPI-7S1iGtKoNESGryLQFxQ,28324
|
|
20
21
|
cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/aws-glue-alpha/README.md,sha256=BCr7YEJ6Ht3oYR21NMCH3t1N738QjQ9Sh_dL_DUhECQ,32235
|
|
21
22
|
cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/aws-iot-actions-alpha/README.md,sha256=R6vkGxu-JjfB1IfGVquiD6Gcn4RQQpgbGo36njBdJe4,11947
|
|
@@ -270,12 +271,12 @@ cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudfront/integ
|
|
|
270
271
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudfront/integ.key-value-store-frominline.ts,sha256=H2nulQGsjNN2e9WFL4s0s_f7WwWhglrhifbbOCoSQ2o,646
|
|
271
272
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudfront/integ.key-value-store.ts,sha256=d_364YWDm0IXXVZhSOgpqDJdIH85GpykvsQ-pqQI6zM,561
|
|
272
273
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudfront/integ.realtime-log-config.ts,sha256=ZhR1zUbouvf7RmYiYUCk-79AuTGwzDE6d8EcPWVzAPo,896
|
|
273
|
-
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudfront-origins/README.md,sha256=
|
|
274
|
+
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudfront-origins/README.md,sha256=yLcxLT8CAH_vWnYjQY65d_wGUeXTKiKsu6QLKmM9ol8,35377
|
|
274
275
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudfront-origins/integ.function-url-origin-oac-alias.ts,sha256=3-edAxGbTMdiXKl2eLO92R1CkKVyHV8aJDHTIooU2I4,3331
|
|
275
276
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudfront-origins/integ.function-url-origin-oac-custom.ts,sha256=Iv3QloWAIGk3tnCoeVVac7SgOVeXe_TI2YxAoY3Ixck,3618
|
|
276
277
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudfront-origins/integ.function-url-origin-oac.ts,sha256=adecJ-YpyzA2uW3bt9OPL8uhXoY2GmhLg5W_q2UxyQU,3104
|
|
277
278
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudfront-origins/integ.function-url-origin.ts,sha256=V6G-mt2FWdS_FssMxoTPCtFeBewUV9scyvRaddxSg-g,923
|
|
278
|
-
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudfront-origins/integ.http-origin.ts,sha256=
|
|
279
|
+
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudfront-origins/integ.http-origin.ts,sha256=JR5-JoCwGub7EzwPxE4HVl785gk5Q4ImrKmtH6pFwKM,569
|
|
279
280
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudfront-origins/integ.load-balancer-origin.ts,sha256=F2TP5zO5FqEL-1Uw-qZTzfpqJzyPyUfsysZ4i6kHWrw,706
|
|
280
281
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudfront-origins/integ.origin-group-selection-criteria.ts,sha256=V1kKE5ulDzBQ31liqUI0kr7nZ6lAEu4s6n5SSchx04g,1154
|
|
281
282
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudfront-origins/integ.origin-group.ts,sha256=rEZTwiMBsk6dzizh6d2AwqwIhCuidmBJvTqxHVeIVAA,738
|
|
@@ -461,11 +462,12 @@ cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-config/integ.cus
|
|
|
461
462
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-config/integ.rule-evaluation-mode.ts,sha256=EMkgQ6799C9j6DLTbsNV2e6XI6YnJ9BS5f-YBkA6Itg,1888
|
|
462
463
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-config/integ.rule.ts,sha256=1pv5tnR-mA3CAspXEr5_EtoinfPy0e17YzOjCdKFQL8,2003
|
|
463
464
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-config/integ.scoped-rule.ts,sha256=tezmTuoD9VJ8mHS2I7NKdaPgu1Ve9SuEpVQArLGECBE,911
|
|
464
|
-
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-docdb/README.md,sha256=
|
|
465
|
+
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-docdb/README.md,sha256=bOXAzpc_UFlrzAhU2ih-fiphNWW2DkpGmABay48ATnE,9912
|
|
465
466
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-docdb/integ.cluster-copy-tags-to-snapshot.ts,sha256=jk6FB_5y0x3E7q6h9-3OT6htE7y0_L2W9o8fCo2rmzg,1007
|
|
466
467
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-docdb/integ.cluster-instance-ca-certificate.ts,sha256=lf0OILYv2Ez8-p0d-CQGT3dUH8lPcxDY2WVvZgf42Hg,1013
|
|
467
468
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-docdb/integ.cluster-removal-policy-snapshot.ts,sha256=EiA7liJZmGqA8wKU0hrrgSsw71MxztUTh9LwoK1rZ1Y,1868
|
|
468
469
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-docdb/integ.cluster-rotation.lit.ts,sha256=i4vSXs0eQ7-1sLtL0GEXIW0FYdVyKpVX8Nvz_N85I9M,1022
|
|
470
|
+
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-docdb/integ.cluster-serverless.ts,sha256=fVUwucggIFd_bkV6cMKFoO6UE8l_yImtyGyMupGc_Qw,971
|
|
469
471
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-docdb/integ.cluster-storage-type.ts,sha256=lY6eDVhKPOLF06uUT_jl-ao-mwllhXiJalS1GRqGEHY,888
|
|
470
472
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-docdb/integ.cluster.ts,sha256=9CI-3GXkVKVedg642mBMv5fBrqeSXRLfsvoftA1OM7s,1683
|
|
471
473
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-dynamodb/README.md,sha256=RegSheolCw5G878J1icibTPPfrDig67gXrYAZbGNouY,39383
|
|
@@ -1390,9 +1392,9 @@ cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/lambda-layer-kubectl
|
|
|
1390
1392
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/lambda-layer-node-proxy-agent/README.md,sha256=eWYOUl_BRExsSMY1mzF5V1oGsCuxVR-6MSIuapbOS4Y,632
|
|
1391
1393
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/lambda-layer-node-proxy-agent/integ.node-proxy-agent.ts,sha256=YSEuo5dS-TMKovqWBuW9uWeJj0NOJd1UgOTt-2wZVMc,1545
|
|
1392
1394
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/pipelines/ORIGINAL_API.md,sha256=JUo88_SWhqnKC3ObhkMwGTNOma-BniqBMhoBnxpifE4,26756
|
|
1393
|
-
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/pipelines/README.md,sha256=
|
|
1395
|
+
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/pipelines/README.md,sha256=UEyWH7ey2xFDUNla-gNh7-zm081fRRJhkTw9pnK6Ozc,71588
|
|
1394
1396
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/pipelines/integ.cross-account-pipeline-action.ts,sha256=A18UXJLsi5tyYfCp4Dw6SxI1Vk5JikNX1F0NbfEnICw,4804
|
|
1395
|
-
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/pipelines/integ.newpipeline-reduce-stagerole-scope.ts,sha256=
|
|
1397
|
+
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/pipelines/integ.newpipeline-reduce-stagerole-scope.ts,sha256=YTTB_Vo8WqHM9Q12ARHyeLQfIyrvE8qGJ-c8Ac8Rx2c,2637
|
|
1396
1398
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/pipelines/integ.newpipeline-single-publisher.ts,sha256=QzRNUoZ2n7_vq4HLxkvDHt7y5ce71KjQHVFVIEDxiC4,1705
|
|
1397
1399
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/pipelines/integ.newpipeline-with-codebuild-logging.ts,sha256=7SuokmiayilFwdHU68_X5ZinfDt_Kj75quML_yHcdYQ,2557
|
|
1398
1400
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/pipelines/integ.newpipeline-with-codestar-connection.ts,sha256=x9DCirWauwW9hD7iCzMEoKcsVnKP1XJxJoq2Gfvxvvc,1772
|
|
@@ -1412,8 +1414,8 @@ cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/pipelines/integ.pipe
|
|
|
1412
1414
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/region-info/README.md,sha256=vewWkV3ds9o9iyyYaJBNTkaKJ2XA6K2yF17tAxUnujg,2718
|
|
1413
1415
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/triggers/README.md,sha256=hYIx7DbG_7p4LYLUfxDwgIQjw9UNdz1GLrqDe8_Dbko,4132
|
|
1414
1416
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/triggers/integ.triggers.ts,sha256=4OHplMoBOgHGkktAzoU-TuNmJQS5wGAUvBfj5bGSe_Y,2807
|
|
1415
|
-
konokenj_cdk_api_mcp_server-0.
|
|
1416
|
-
konokenj_cdk_api_mcp_server-0.
|
|
1417
|
-
konokenj_cdk_api_mcp_server-0.
|
|
1418
|
-
konokenj_cdk_api_mcp_server-0.
|
|
1419
|
-
konokenj_cdk_api_mcp_server-0.
|
|
1417
|
+
konokenj_cdk_api_mcp_server-0.47.0.dist-info/METADATA,sha256=XOyf695Rswja2-w_gzNMI_s7OkNACCDiH7uzU4TFmo8,2646
|
|
1418
|
+
konokenj_cdk_api_mcp_server-0.47.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
|
1419
|
+
konokenj_cdk_api_mcp_server-0.47.0.dist-info/entry_points.txt,sha256=bVDhMdyCC1WNMPOMbmB82jvWII2CIrwTZDygdCf0cYQ,79
|
|
1420
|
+
konokenj_cdk_api_mcp_server-0.47.0.dist-info/licenses/LICENSE.txt,sha256=5OIAASeg1HM22mVZ1enz9bgZ7TlsGfWXnj02P9OgFyk,1098
|
|
1421
|
+
konokenj_cdk_api_mcp_server-0.47.0.dist-info/RECORD,,
|
{konokenj_cdk_api_mcp_server-0.46.0.dist-info → konokenj_cdk_api_mcp_server-0.47.0.dist-info}/WHEEL
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|