@btc-embedded/cdk-extensions 0.3.0 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (35) hide show
  1. package/.jsii +811 -237
  2. package/API.md +964 -128
  3. package/lib/extensions/ApiGatewayExtension.js +3 -7
  4. package/lib/extensions/ApplicationLoadBalancerExtension.js +4 -4
  5. package/lib/extensions/CloudMapExtension.d.ts +1 -0
  6. package/lib/extensions/CloudMapExtension.js +6 -8
  7. package/lib/extensions/DocumentDbAccessExtension.js +5 -6
  8. package/lib/extensions/DomainEventMessagingExtension.js +1 -1
  9. package/lib/extensions/ExtraContainerExtension.js +1 -1
  10. package/lib/extensions/LogExtension.js +4 -6
  11. package/lib/extensions/PostgresDbAccessExtension.d.ts +22 -0
  12. package/lib/extensions/PostgresDbAccessExtension.js +52 -0
  13. package/lib/extensions/SharedVolumeExtension.d.ts +30 -0
  14. package/lib/extensions/SharedVolumeExtension.js +36 -0
  15. package/lib/extensions/TcpKeepAliveExtension.js +5 -7
  16. package/lib/extensions/index.d.ts +3 -1
  17. package/lib/extensions/index.js +4 -2
  18. package/lib/platform/ApiGateway.d.ts +1 -1
  19. package/lib/platform/ApiGateway.js +2 -2
  20. package/lib/platform/ApplicationLoadBalancer.d.ts +2 -0
  21. package/lib/platform/ApplicationLoadBalancer.js +11 -9
  22. package/lib/platform/DefaultUserPoolClients.d.ts +1 -0
  23. package/lib/platform/DefaultUserPoolClients.js +11 -4
  24. package/lib/platform/DocumentDB.js +1 -1
  25. package/lib/platform/PrivateDnsNamespace.d.ts +17 -0
  26. package/lib/platform/PrivateDnsNamespace.js +50 -0
  27. package/lib/platform/Vpc.d.ts +13 -0
  28. package/lib/platform/Vpc.js +44 -0
  29. package/lib/platform/index.d.ts +2 -1
  30. package/lib/platform/index.js +3 -2
  31. package/lib/utils/functions.d.ts +9 -0
  32. package/lib/utils/functions.js +14 -0
  33. package/lib/utils/index.d.ts +1 -0
  34. package/lib/utils/index.js +2 -1
  35. package/package.json +1 -1
package/API.md CHANGED
@@ -233,39 +233,41 @@ public readonly loadBalancer: IApplicationLoadBalancer;
233
233
  ---
234
234
 
235
235
 
236
- ### CloudMap <a name="CloudMap" id="@btc-embedded/cdk-extensions.CloudMap"></a>
236
+ ### DefaultUserPoolClients <a name="DefaultUserPoolClients" id="@btc-embedded/cdk-extensions.DefaultUserPoolClients"></a>
237
+
238
+ Create default user pool clients for the frontend and API access.
237
239
 
238
- #### Initializers <a name="Initializers" id="@btc-embedded/cdk-extensions.CloudMap.Initializer"></a>
240
+ #### Initializers <a name="Initializers" id="@btc-embedded/cdk-extensions.DefaultUserPoolClients.Initializer"></a>
239
241
 
240
242
  ```typescript
241
- import { CloudMap } from '@btc-embedded/cdk-extensions'
243
+ import { DefaultUserPoolClients } from '@btc-embedded/cdk-extensions'
242
244
 
243
- new CloudMap(scope: Construct, id: string, props: CloudMapProps)
245
+ new DefaultUserPoolClients(scope: Construct, id: string, props: DefaultUserPoolClientsProps)
244
246
  ```
245
247
 
246
248
  | **Name** | **Type** | **Description** |
247
249
  | --- | --- | --- |
248
- | <code><a href="#@btc-embedded/cdk-extensions.CloudMap.Initializer.parameter.scope">scope</a></code> | <code>constructs.Construct</code> | *No description.* |
249
- | <code><a href="#@btc-embedded/cdk-extensions.CloudMap.Initializer.parameter.id">id</a></code> | <code>string</code> | *No description.* |
250
- | <code><a href="#@btc-embedded/cdk-extensions.CloudMap.Initializer.parameter.props">props</a></code> | <code><a href="#@btc-embedded/cdk-extensions.CloudMapProps">CloudMapProps</a></code> | *No description.* |
250
+ | <code><a href="#@btc-embedded/cdk-extensions.DefaultUserPoolClients.Initializer.parameter.scope">scope</a></code> | <code>constructs.Construct</code> | *No description.* |
251
+ | <code><a href="#@btc-embedded/cdk-extensions.DefaultUserPoolClients.Initializer.parameter.id">id</a></code> | <code>string</code> | *No description.* |
252
+ | <code><a href="#@btc-embedded/cdk-extensions.DefaultUserPoolClients.Initializer.parameter.props">props</a></code> | <code><a href="#@btc-embedded/cdk-extensions.DefaultUserPoolClientsProps">DefaultUserPoolClientsProps</a></code> | *No description.* |
251
253
 
252
254
  ---
253
255
 
254
- ##### `scope`<sup>Required</sup> <a name="scope" id="@btc-embedded/cdk-extensions.CloudMap.Initializer.parameter.scope"></a>
256
+ ##### `scope`<sup>Required</sup> <a name="scope" id="@btc-embedded/cdk-extensions.DefaultUserPoolClients.Initializer.parameter.scope"></a>
255
257
 
256
258
  - *Type:* constructs.Construct
257
259
 
258
260
  ---
259
261
 
260
- ##### `id`<sup>Required</sup> <a name="id" id="@btc-embedded/cdk-extensions.CloudMap.Initializer.parameter.id"></a>
262
+ ##### `id`<sup>Required</sup> <a name="id" id="@btc-embedded/cdk-extensions.DefaultUserPoolClients.Initializer.parameter.id"></a>
261
263
 
262
264
  - *Type:* string
263
265
 
264
266
  ---
265
267
 
266
- ##### `props`<sup>Required</sup> <a name="props" id="@btc-embedded/cdk-extensions.CloudMap.Initializer.parameter.props"></a>
268
+ ##### `props`<sup>Required</sup> <a name="props" id="@btc-embedded/cdk-extensions.DefaultUserPoolClients.Initializer.parameter.props"></a>
267
269
 
268
- - *Type:* <a href="#@btc-embedded/cdk-extensions.CloudMapProps">CloudMapProps</a>
270
+ - *Type:* <a href="#@btc-embedded/cdk-extensions.DefaultUserPoolClientsProps">DefaultUserPoolClientsProps</a>
269
271
 
270
272
  ---
271
273
 
@@ -273,11 +275,11 @@ new CloudMap(scope: Construct, id: string, props: CloudMapProps)
273
275
 
274
276
  | **Name** | **Description** |
275
277
  | --- | --- |
276
- | <code><a href="#@btc-embedded/cdk-extensions.CloudMap.toString">toString</a></code> | Returns a string representation of this construct. |
278
+ | <code><a href="#@btc-embedded/cdk-extensions.DefaultUserPoolClients.toString">toString</a></code> | Returns a string representation of this construct. |
277
279
 
278
280
  ---
279
281
 
280
- ##### `toString` <a name="toString" id="@btc-embedded/cdk-extensions.CloudMap.toString"></a>
282
+ ##### `toString` <a name="toString" id="@btc-embedded/cdk-extensions.DefaultUserPoolClients.toString"></a>
281
283
 
282
284
  ```typescript
283
285
  public toString(): string
@@ -289,21 +291,21 @@ Returns a string representation of this construct.
289
291
 
290
292
  | **Name** | **Description** |
291
293
  | --- | --- |
292
- | <code><a href="#@btc-embedded/cdk-extensions.CloudMap.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |
294
+ | <code><a href="#@btc-embedded/cdk-extensions.DefaultUserPoolClients.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |
293
295
 
294
296
  ---
295
297
 
296
- ##### ~~`isConstruct`~~ <a name="isConstruct" id="@btc-embedded/cdk-extensions.CloudMap.isConstruct"></a>
298
+ ##### ~~`isConstruct`~~ <a name="isConstruct" id="@btc-embedded/cdk-extensions.DefaultUserPoolClients.isConstruct"></a>
297
299
 
298
300
  ```typescript
299
- import { CloudMap } from '@btc-embedded/cdk-extensions'
301
+ import { DefaultUserPoolClients } from '@btc-embedded/cdk-extensions'
300
302
 
301
- CloudMap.isConstruct(x: any)
303
+ DefaultUserPoolClients.isConstruct(x: any)
302
304
  ```
303
305
 
304
306
  Checks if `x` is a construct.
305
307
 
306
- ###### `x`<sup>Required</sup> <a name="x" id="@btc-embedded/cdk-extensions.CloudMap.isConstruct.parameter.x"></a>
308
+ ###### `x`<sup>Required</sup> <a name="x" id="@btc-embedded/cdk-extensions.DefaultUserPoolClients.isConstruct.parameter.x"></a>
307
309
 
308
310
  - *Type:* any
309
311
 
@@ -315,12 +317,13 @@ Any object.
315
317
 
316
318
  | **Name** | **Type** | **Description** |
317
319
  | --- | --- | --- |
318
- | <code><a href="#@btc-embedded/cdk-extensions.CloudMap.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
319
- | <code><a href="#@btc-embedded/cdk-extensions.CloudMap.property.namespace">namespace</a></code> | <code>aws-cdk-lib.aws_servicediscovery.PrivateDnsNamespace</code> | *No description.* |
320
+ | <code><a href="#@btc-embedded/cdk-extensions.DefaultUserPoolClients.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
321
+ | <code><a href="#@btc-embedded/cdk-extensions.DefaultUserPoolClients.property.apiClient">apiClient</a></code> | <code>aws-cdk-lib.aws_cognito.IUserPoolClient</code> | *No description.* |
322
+ | <code><a href="#@btc-embedded/cdk-extensions.DefaultUserPoolClients.property.frontendClient">frontendClient</a></code> | <code>aws-cdk-lib.aws_cognito.IUserPoolClient</code> | *No description.* |
320
323
 
321
324
  ---
322
325
 
323
- ##### `node`<sup>Required</sup> <a name="node" id="@btc-embedded/cdk-extensions.CloudMap.property.node"></a>
326
+ ##### `node`<sup>Required</sup> <a name="node" id="@btc-embedded/cdk-extensions.DefaultUserPoolClients.property.node"></a>
324
327
 
325
328
  ```typescript
326
329
  public readonly node: Node;
@@ -332,52 +335,60 @@ The tree node.
332
335
 
333
336
  ---
334
337
 
335
- ##### `namespace`<sup>Required</sup> <a name="namespace" id="@btc-embedded/cdk-extensions.CloudMap.property.namespace"></a>
338
+ ##### `apiClient`<sup>Required</sup> <a name="apiClient" id="@btc-embedded/cdk-extensions.DefaultUserPoolClients.property.apiClient"></a>
336
339
 
337
340
  ```typescript
338
- public readonly namespace: PrivateDnsNamespace;
341
+ public readonly apiClient: IUserPoolClient;
339
342
  ```
340
343
 
341
- - *Type:* aws-cdk-lib.aws_servicediscovery.PrivateDnsNamespace
344
+ - *Type:* aws-cdk-lib.aws_cognito.IUserPoolClient
342
345
 
343
346
  ---
344
347
 
348
+ ##### `frontendClient`<sup>Required</sup> <a name="frontendClient" id="@btc-embedded/cdk-extensions.DefaultUserPoolClients.property.frontendClient"></a>
345
349
 
346
- ### DefaultUserPoolClients <a name="DefaultUserPoolClients" id="@btc-embedded/cdk-extensions.DefaultUserPoolClients"></a>
350
+ ```typescript
351
+ public readonly frontendClient: IUserPoolClient;
352
+ ```
347
353
 
348
- Create default user pool clients for the frontend and API access.
354
+ - *Type:* aws-cdk-lib.aws_cognito.IUserPoolClient
349
355
 
350
- #### Initializers <a name="Initializers" id="@btc-embedded/cdk-extensions.DefaultUserPoolClients.Initializer"></a>
356
+ ---
357
+
358
+
359
+ ### DocumentDB <a name="DocumentDB" id="@btc-embedded/cdk-extensions.DocumentDB"></a>
360
+
361
+ #### Initializers <a name="Initializers" id="@btc-embedded/cdk-extensions.DocumentDB.Initializer"></a>
351
362
 
352
363
  ```typescript
353
- import { DefaultUserPoolClients } from '@btc-embedded/cdk-extensions'
364
+ import { DocumentDB } from '@btc-embedded/cdk-extensions'
354
365
 
355
- new DefaultUserPoolClients(scope: Construct, id: string, props: DefaultUserPoolClientsProps)
366
+ new DocumentDB(scope: Construct, id: string, props: DocumentDBProps)
356
367
  ```
357
368
 
358
369
  | **Name** | **Type** | **Description** |
359
370
  | --- | --- | --- |
360
- | <code><a href="#@btc-embedded/cdk-extensions.DefaultUserPoolClients.Initializer.parameter.scope">scope</a></code> | <code>constructs.Construct</code> | *No description.* |
361
- | <code><a href="#@btc-embedded/cdk-extensions.DefaultUserPoolClients.Initializer.parameter.id">id</a></code> | <code>string</code> | *No description.* |
362
- | <code><a href="#@btc-embedded/cdk-extensions.DefaultUserPoolClients.Initializer.parameter.props">props</a></code> | <code><a href="#@btc-embedded/cdk-extensions.DefaultUserPoolClientsProps">DefaultUserPoolClientsProps</a></code> | *No description.* |
371
+ | <code><a href="#@btc-embedded/cdk-extensions.DocumentDB.Initializer.parameter.scope">scope</a></code> | <code>constructs.Construct</code> | *No description.* |
372
+ | <code><a href="#@btc-embedded/cdk-extensions.DocumentDB.Initializer.parameter.id">id</a></code> | <code>string</code> | *No description.* |
373
+ | <code><a href="#@btc-embedded/cdk-extensions.DocumentDB.Initializer.parameter.props">props</a></code> | <code><a href="#@btc-embedded/cdk-extensions.DocumentDBProps">DocumentDBProps</a></code> | *No description.* |
363
374
 
364
375
  ---
365
376
 
366
- ##### `scope`<sup>Required</sup> <a name="scope" id="@btc-embedded/cdk-extensions.DefaultUserPoolClients.Initializer.parameter.scope"></a>
377
+ ##### `scope`<sup>Required</sup> <a name="scope" id="@btc-embedded/cdk-extensions.DocumentDB.Initializer.parameter.scope"></a>
367
378
 
368
379
  - *Type:* constructs.Construct
369
380
 
370
381
  ---
371
382
 
372
- ##### `id`<sup>Required</sup> <a name="id" id="@btc-embedded/cdk-extensions.DefaultUserPoolClients.Initializer.parameter.id"></a>
383
+ ##### `id`<sup>Required</sup> <a name="id" id="@btc-embedded/cdk-extensions.DocumentDB.Initializer.parameter.id"></a>
373
384
 
374
385
  - *Type:* string
375
386
 
376
387
  ---
377
388
 
378
- ##### `props`<sup>Required</sup> <a name="props" id="@btc-embedded/cdk-extensions.DefaultUserPoolClients.Initializer.parameter.props"></a>
389
+ ##### `props`<sup>Required</sup> <a name="props" id="@btc-embedded/cdk-extensions.DocumentDB.Initializer.parameter.props"></a>
379
390
 
380
- - *Type:* <a href="#@btc-embedded/cdk-extensions.DefaultUserPoolClientsProps">DefaultUserPoolClientsProps</a>
391
+ - *Type:* <a href="#@btc-embedded/cdk-extensions.DocumentDBProps">DocumentDBProps</a>
381
392
 
382
393
  ---
383
394
 
@@ -385,11 +396,11 @@ new DefaultUserPoolClients(scope: Construct, id: string, props: DefaultUserPoolC
385
396
 
386
397
  | **Name** | **Description** |
387
398
  | --- | --- |
388
- | <code><a href="#@btc-embedded/cdk-extensions.DefaultUserPoolClients.toString">toString</a></code> | Returns a string representation of this construct. |
399
+ | <code><a href="#@btc-embedded/cdk-extensions.DocumentDB.toString">toString</a></code> | Returns a string representation of this construct. |
389
400
 
390
401
  ---
391
402
 
392
- ##### `toString` <a name="toString" id="@btc-embedded/cdk-extensions.DefaultUserPoolClients.toString"></a>
403
+ ##### `toString` <a name="toString" id="@btc-embedded/cdk-extensions.DocumentDB.toString"></a>
393
404
 
394
405
  ```typescript
395
406
  public toString(): string
@@ -401,21 +412,21 @@ Returns a string representation of this construct.
401
412
 
402
413
  | **Name** | **Description** |
403
414
  | --- | --- |
404
- | <code><a href="#@btc-embedded/cdk-extensions.DefaultUserPoolClients.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |
415
+ | <code><a href="#@btc-embedded/cdk-extensions.DocumentDB.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |
405
416
 
406
417
  ---
407
418
 
408
- ##### ~~`isConstruct`~~ <a name="isConstruct" id="@btc-embedded/cdk-extensions.DefaultUserPoolClients.isConstruct"></a>
419
+ ##### ~~`isConstruct`~~ <a name="isConstruct" id="@btc-embedded/cdk-extensions.DocumentDB.isConstruct"></a>
409
420
 
410
421
  ```typescript
411
- import { DefaultUserPoolClients } from '@btc-embedded/cdk-extensions'
422
+ import { DocumentDB } from '@btc-embedded/cdk-extensions'
412
423
 
413
- DefaultUserPoolClients.isConstruct(x: any)
424
+ DocumentDB.isConstruct(x: any)
414
425
  ```
415
426
 
416
427
  Checks if `x` is a construct.
417
428
 
418
- ###### `x`<sup>Required</sup> <a name="x" id="@btc-embedded/cdk-extensions.DefaultUserPoolClients.isConstruct.parameter.x"></a>
429
+ ###### `x`<sup>Required</sup> <a name="x" id="@btc-embedded/cdk-extensions.DocumentDB.isConstruct.parameter.x"></a>
419
430
 
420
431
  - *Type:* any
421
432
 
@@ -427,13 +438,11 @@ Any object.
427
438
 
428
439
  | **Name** | **Type** | **Description** |
429
440
  | --- | --- | --- |
430
- | <code><a href="#@btc-embedded/cdk-extensions.DefaultUserPoolClients.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
431
- | <code><a href="#@btc-embedded/cdk-extensions.DefaultUserPoolClients.property.apiClient">apiClient</a></code> | <code>aws-cdk-lib.aws_cognito.IUserPoolClient</code> | *No description.* |
432
- | <code><a href="#@btc-embedded/cdk-extensions.DefaultUserPoolClients.property.frontendClient">frontendClient</a></code> | <code>aws-cdk-lib.aws_cognito.IUserPoolClient</code> | *No description.* |
441
+ | <code><a href="#@btc-embedded/cdk-extensions.DocumentDB.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
433
442
 
434
443
  ---
435
444
 
436
- ##### `node`<sup>Required</sup> <a name="node" id="@btc-embedded/cdk-extensions.DefaultUserPoolClients.property.node"></a>
445
+ ##### `node`<sup>Required</sup> <a name="node" id="@btc-embedded/cdk-extensions.DocumentDB.property.node"></a>
437
446
 
438
447
  ```typescript
439
448
  public readonly node: Node;
@@ -445,60 +454,150 @@ The tree node.
445
454
 
446
455
  ---
447
456
 
448
- ##### `apiClient`<sup>Required</sup> <a name="apiClient" id="@btc-embedded/cdk-extensions.DefaultUserPoolClients.property.apiClient"></a>
457
+
458
+ ### PrivateDnsNamespace <a name="PrivateDnsNamespace" id="@btc-embedded/cdk-extensions.PrivateDnsNamespace"></a>
459
+
460
+ #### Initializers <a name="Initializers" id="@btc-embedded/cdk-extensions.PrivateDnsNamespace.Initializer"></a>
449
461
 
450
462
  ```typescript
451
- public readonly apiClient: IUserPoolClient;
463
+ import { PrivateDnsNamespace } from '@btc-embedded/cdk-extensions'
464
+
465
+ new PrivateDnsNamespace(scope: Construct, id: string, props: PrivateDnsNamespaceProps)
452
466
  ```
453
467
 
454
- - *Type:* aws-cdk-lib.aws_cognito.IUserPoolClient
468
+ | **Name** | **Type** | **Description** |
469
+ | --- | --- | --- |
470
+ | <code><a href="#@btc-embedded/cdk-extensions.PrivateDnsNamespace.Initializer.parameter.scope">scope</a></code> | <code>constructs.Construct</code> | *No description.* |
471
+ | <code><a href="#@btc-embedded/cdk-extensions.PrivateDnsNamespace.Initializer.parameter.id">id</a></code> | <code>string</code> | *No description.* |
472
+ | <code><a href="#@btc-embedded/cdk-extensions.PrivateDnsNamespace.Initializer.parameter.props">props</a></code> | <code><a href="#@btc-embedded/cdk-extensions.PrivateDnsNamespaceProps">PrivateDnsNamespaceProps</a></code> | *No description.* |
455
473
 
456
474
  ---
457
475
 
458
- ##### `frontendClient`<sup>Required</sup> <a name="frontendClient" id="@btc-embedded/cdk-extensions.DefaultUserPoolClients.property.frontendClient"></a>
476
+ ##### `scope`<sup>Required</sup> <a name="scope" id="@btc-embedded/cdk-extensions.PrivateDnsNamespace.Initializer.parameter.scope"></a>
477
+
478
+ - *Type:* constructs.Construct
479
+
480
+ ---
481
+
482
+ ##### `id`<sup>Required</sup> <a name="id" id="@btc-embedded/cdk-extensions.PrivateDnsNamespace.Initializer.parameter.id"></a>
483
+
484
+ - *Type:* string
485
+
486
+ ---
487
+
488
+ ##### `props`<sup>Required</sup> <a name="props" id="@btc-embedded/cdk-extensions.PrivateDnsNamespace.Initializer.parameter.props"></a>
489
+
490
+ - *Type:* <a href="#@btc-embedded/cdk-extensions.PrivateDnsNamespaceProps">PrivateDnsNamespaceProps</a>
491
+
492
+ ---
493
+
494
+ #### Methods <a name="Methods" id="Methods"></a>
495
+
496
+ | **Name** | **Description** |
497
+ | --- | --- |
498
+ | <code><a href="#@btc-embedded/cdk-extensions.PrivateDnsNamespace.toString">toString</a></code> | Returns a string representation of this construct. |
499
+
500
+ ---
501
+
502
+ ##### `toString` <a name="toString" id="@btc-embedded/cdk-extensions.PrivateDnsNamespace.toString"></a>
459
503
 
460
504
  ```typescript
461
- public readonly frontendClient: IUserPoolClient;
505
+ public toString(): string
462
506
  ```
463
507
 
464
- - *Type:* aws-cdk-lib.aws_cognito.IUserPoolClient
508
+ Returns a string representation of this construct.
509
+
510
+ #### Static Functions <a name="Static Functions" id="Static Functions"></a>
511
+
512
+ | **Name** | **Description** |
513
+ | --- | --- |
514
+ | <code><a href="#@btc-embedded/cdk-extensions.PrivateDnsNamespace.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |
465
515
 
466
516
  ---
467
517
 
518
+ ##### ~~`isConstruct`~~ <a name="isConstruct" id="@btc-embedded/cdk-extensions.PrivateDnsNamespace.isConstruct"></a>
468
519
 
469
- ### DocumentDB <a name="DocumentDB" id="@btc-embedded/cdk-extensions.DocumentDB"></a>
520
+ ```typescript
521
+ import { PrivateDnsNamespace } from '@btc-embedded/cdk-extensions'
470
522
 
471
- #### Initializers <a name="Initializers" id="@btc-embedded/cdk-extensions.DocumentDB.Initializer"></a>
523
+ PrivateDnsNamespace.isConstruct(x: any)
524
+ ```
525
+
526
+ Checks if `x` is a construct.
527
+
528
+ ###### `x`<sup>Required</sup> <a name="x" id="@btc-embedded/cdk-extensions.PrivateDnsNamespace.isConstruct.parameter.x"></a>
529
+
530
+ - *Type:* any
531
+
532
+ Any object.
533
+
534
+ ---
535
+
536
+ #### Properties <a name="Properties" id="Properties"></a>
537
+
538
+ | **Name** | **Type** | **Description** |
539
+ | --- | --- | --- |
540
+ | <code><a href="#@btc-embedded/cdk-extensions.PrivateDnsNamespace.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
541
+ | <code><a href="#@btc-embedded/cdk-extensions.PrivateDnsNamespace.property.namespace">namespace</a></code> | <code>aws-cdk-lib.aws_servicediscovery.IPrivateDnsNamespace</code> | *No description.* |
542
+
543
+ ---
544
+
545
+ ##### `node`<sup>Required</sup> <a name="node" id="@btc-embedded/cdk-extensions.PrivateDnsNamespace.property.node"></a>
472
546
 
473
547
  ```typescript
474
- import { DocumentDB } from '@btc-embedded/cdk-extensions'
548
+ public readonly node: Node;
549
+ ```
475
550
 
476
- new DocumentDB(scope: Construct, id: string, props: DocumentDBProps)
551
+ - *Type:* constructs.Node
552
+
553
+ The tree node.
554
+
555
+ ---
556
+
557
+ ##### `namespace`<sup>Required</sup> <a name="namespace" id="@btc-embedded/cdk-extensions.PrivateDnsNamespace.property.namespace"></a>
558
+
559
+ ```typescript
560
+ public readonly namespace: IPrivateDnsNamespace;
561
+ ```
562
+
563
+ - *Type:* aws-cdk-lib.aws_servicediscovery.IPrivateDnsNamespace
564
+
565
+ ---
566
+
567
+
568
+ ### Vpc <a name="Vpc" id="@btc-embedded/cdk-extensions.Vpc"></a>
569
+
570
+ #### Initializers <a name="Initializers" id="@btc-embedded/cdk-extensions.Vpc.Initializer"></a>
571
+
572
+ ```typescript
573
+ import { Vpc } from '@btc-embedded/cdk-extensions'
574
+
575
+ new Vpc(scope: Construct, id: string, props: VpcProps)
477
576
  ```
478
577
 
479
578
  | **Name** | **Type** | **Description** |
480
579
  | --- | --- | --- |
481
- | <code><a href="#@btc-embedded/cdk-extensions.DocumentDB.Initializer.parameter.scope">scope</a></code> | <code>constructs.Construct</code> | *No description.* |
482
- | <code><a href="#@btc-embedded/cdk-extensions.DocumentDB.Initializer.parameter.id">id</a></code> | <code>string</code> | *No description.* |
483
- | <code><a href="#@btc-embedded/cdk-extensions.DocumentDB.Initializer.parameter.props">props</a></code> | <code><a href="#@btc-embedded/cdk-extensions.DocumentDBProps">DocumentDBProps</a></code> | *No description.* |
580
+ | <code><a href="#@btc-embedded/cdk-extensions.Vpc.Initializer.parameter.scope">scope</a></code> | <code>constructs.Construct</code> | *No description.* |
581
+ | <code><a href="#@btc-embedded/cdk-extensions.Vpc.Initializer.parameter.id">id</a></code> | <code>string</code> | *No description.* |
582
+ | <code><a href="#@btc-embedded/cdk-extensions.Vpc.Initializer.parameter.props">props</a></code> | <code><a href="#@btc-embedded/cdk-extensions.VpcProps">VpcProps</a></code> | *No description.* |
484
583
 
485
584
  ---
486
585
 
487
- ##### `scope`<sup>Required</sup> <a name="scope" id="@btc-embedded/cdk-extensions.DocumentDB.Initializer.parameter.scope"></a>
586
+ ##### `scope`<sup>Required</sup> <a name="scope" id="@btc-embedded/cdk-extensions.Vpc.Initializer.parameter.scope"></a>
488
587
 
489
588
  - *Type:* constructs.Construct
490
589
 
491
590
  ---
492
591
 
493
- ##### `id`<sup>Required</sup> <a name="id" id="@btc-embedded/cdk-extensions.DocumentDB.Initializer.parameter.id"></a>
592
+ ##### `id`<sup>Required</sup> <a name="id" id="@btc-embedded/cdk-extensions.Vpc.Initializer.parameter.id"></a>
494
593
 
495
594
  - *Type:* string
496
595
 
497
596
  ---
498
597
 
499
- ##### `props`<sup>Required</sup> <a name="props" id="@btc-embedded/cdk-extensions.DocumentDB.Initializer.parameter.props"></a>
598
+ ##### `props`<sup>Required</sup> <a name="props" id="@btc-embedded/cdk-extensions.Vpc.Initializer.parameter.props"></a>
500
599
 
501
- - *Type:* <a href="#@btc-embedded/cdk-extensions.DocumentDBProps">DocumentDBProps</a>
600
+ - *Type:* <a href="#@btc-embedded/cdk-extensions.VpcProps">VpcProps</a>
502
601
 
503
602
  ---
504
603
 
@@ -506,11 +605,11 @@ new DocumentDB(scope: Construct, id: string, props: DocumentDBProps)
506
605
 
507
606
  | **Name** | **Description** |
508
607
  | --- | --- |
509
- | <code><a href="#@btc-embedded/cdk-extensions.DocumentDB.toString">toString</a></code> | Returns a string representation of this construct. |
608
+ | <code><a href="#@btc-embedded/cdk-extensions.Vpc.toString">toString</a></code> | Returns a string representation of this construct. |
510
609
 
511
610
  ---
512
611
 
513
- ##### `toString` <a name="toString" id="@btc-embedded/cdk-extensions.DocumentDB.toString"></a>
612
+ ##### `toString` <a name="toString" id="@btc-embedded/cdk-extensions.Vpc.toString"></a>
514
613
 
515
614
  ```typescript
516
615
  public toString(): string
@@ -522,21 +621,21 @@ Returns a string representation of this construct.
522
621
 
523
622
  | **Name** | **Description** |
524
623
  | --- | --- |
525
- | <code><a href="#@btc-embedded/cdk-extensions.DocumentDB.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |
624
+ | <code><a href="#@btc-embedded/cdk-extensions.Vpc.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |
526
625
 
527
626
  ---
528
627
 
529
- ##### ~~`isConstruct`~~ <a name="isConstruct" id="@btc-embedded/cdk-extensions.DocumentDB.isConstruct"></a>
628
+ ##### ~~`isConstruct`~~ <a name="isConstruct" id="@btc-embedded/cdk-extensions.Vpc.isConstruct"></a>
530
629
 
531
630
  ```typescript
532
- import { DocumentDB } from '@btc-embedded/cdk-extensions'
631
+ import { Vpc } from '@btc-embedded/cdk-extensions'
533
632
 
534
- DocumentDB.isConstruct(x: any)
633
+ Vpc.isConstruct(x: any)
535
634
  ```
536
635
 
537
636
  Checks if `x` is a construct.
538
637
 
539
- ###### `x`<sup>Required</sup> <a name="x" id="@btc-embedded/cdk-extensions.DocumentDB.isConstruct.parameter.x"></a>
638
+ ###### `x`<sup>Required</sup> <a name="x" id="@btc-embedded/cdk-extensions.Vpc.isConstruct.parameter.x"></a>
540
639
 
541
640
  - *Type:* any
542
641
 
@@ -548,11 +647,13 @@ Any object.
548
647
 
549
648
  | **Name** | **Type** | **Description** |
550
649
  | --- | --- | --- |
551
- | <code><a href="#@btc-embedded/cdk-extensions.DocumentDB.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
650
+ | <code><a href="#@btc-embedded/cdk-extensions.Vpc.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
651
+ | <code><a href="#@btc-embedded/cdk-extensions.Vpc.property.cluster">cluster</a></code> | <code>aws-cdk-lib.aws_ecs.ICluster</code> | *No description.* |
652
+ | <code><a href="#@btc-embedded/cdk-extensions.Vpc.property.vpcInstance">vpcInstance</a></code> | <code>aws-cdk-lib.aws_ec2.IVpc</code> | *No description.* |
552
653
 
553
654
  ---
554
655
 
555
- ##### `node`<sup>Required</sup> <a name="node" id="@btc-embedded/cdk-extensions.DocumentDB.property.node"></a>
656
+ ##### `node`<sup>Required</sup> <a name="node" id="@btc-embedded/cdk-extensions.Vpc.property.node"></a>
556
657
 
557
658
  ```typescript
558
659
  public readonly node: Node;
@@ -564,6 +665,26 @@ The tree node.
564
665
 
565
666
  ---
566
667
 
668
+ ##### `cluster`<sup>Required</sup> <a name="cluster" id="@btc-embedded/cdk-extensions.Vpc.property.cluster"></a>
669
+
670
+ ```typescript
671
+ public readonly cluster: ICluster;
672
+ ```
673
+
674
+ - *Type:* aws-cdk-lib.aws_ecs.ICluster
675
+
676
+ ---
677
+
678
+ ##### `vpcInstance`<sup>Required</sup> <a name="vpcInstance" id="@btc-embedded/cdk-extensions.Vpc.property.vpcInstance"></a>
679
+
680
+ ```typescript
681
+ public readonly vpcInstance: IVpc;
682
+ ```
683
+
684
+ - *Type:* aws-cdk-lib.aws_ec2.IVpc
685
+
686
+ ---
687
+
567
688
 
568
689
  ## Structs <a name="Structs" id="Structs"></a>
569
690
 
@@ -638,7 +759,7 @@ const apiGatewayProps: ApiGatewayProps = { ... }
638
759
  | **Name** | **Type** | **Description** |
639
760
  | --- | --- | --- |
640
761
  | <code><a href="#@btc-embedded/cdk-extensions.ApiGatewayProps.property.domainPrefix">domainPrefix</a></code> | <code>string</code> | Domain prefix for the API Gateway endpoint. |
641
- | <code><a href="#@btc-embedded/cdk-extensions.ApiGatewayProps.property.hostedZone">hostedZone</a></code> | <code>aws-cdk-lib.aws_route53.IHostedZone</code> | Hosted Zone where the A record for the domain will be created. |
762
+ | <code><a href="#@btc-embedded/cdk-extensions.ApiGatewayProps.property.hostedZone">hostedZone</a></code> | <code>aws-cdk-lib.aws_route53.IHostedZone</code> | Hosted Zone to create the gateway domain A record. |
642
763
  | <code><a href="#@btc-embedded/cdk-extensions.ApiGatewayProps.property.stackName">stackName</a></code> | <code>string</code> | The name of the stack, used for prefixing the output parameter names. |
643
764
  | <code><a href="#@btc-embedded/cdk-extensions.ApiGatewayProps.property.userPool">userPool</a></code> | <code>aws-cdk-lib.aws_cognito.IUserPool</code> | Specify the Cognito User Pool to be used for authorizing requests on the API Gateway. |
644
765
  | <code><a href="#@btc-embedded/cdk-extensions.ApiGatewayProps.property.userPoolClients">userPoolClients</a></code> | <code>aws-cdk-lib.aws_cognito.IUserPoolClient[]</code> | List of User Pool Clients that are allowed to access the API Gateway. |
@@ -667,7 +788,7 @@ public readonly hostedZone: IHostedZone;
667
788
 
668
789
  - *Type:* aws-cdk-lib.aws_route53.IHostedZone
669
790
 
670
- Hosted Zone where the A record for the domain will be created.
791
+ Hosted Zone to create the gateway domain A record.
671
792
 
672
793
  ---
673
794
 
@@ -831,6 +952,7 @@ const applicationLoadBalancerProps: ApplicationLoadBalancerProps = { ... }
831
952
  | **Name** | **Type** | **Description** |
832
953
  | --- | --- | --- |
833
954
  | <code><a href="#@btc-embedded/cdk-extensions.ApplicationLoadBalancerProps.property.fqdn">fqdn</a></code> | <code>string</code> | *No description.* |
955
+ | <code><a href="#@btc-embedded/cdk-extensions.ApplicationLoadBalancerProps.property.hostedZone">hostedZone</a></code> | <code>aws-cdk-lib.aws_route53.IHostedZone</code> | *No description.* |
834
956
  | <code><a href="#@btc-embedded/cdk-extensions.ApplicationLoadBalancerProps.property.userPool">userPool</a></code> | <code>aws-cdk-lib.aws_cognito.IUserPool</code> | *No description.* |
835
957
  | <code><a href="#@btc-embedded/cdk-extensions.ApplicationLoadBalancerProps.property.userPoolClient">userPoolClient</a></code> | <code>aws-cdk-lib.aws_cognito.IUserPoolClient</code> | *No description.* |
836
958
  | <code><a href="#@btc-embedded/cdk-extensions.ApplicationLoadBalancerProps.property.userPoolDomain">userPoolDomain</a></code> | <code>aws-cdk-lib.aws_cognito.IUserPoolDomain</code> | *No description.* |
@@ -848,6 +970,16 @@ public readonly fqdn: string;
848
970
 
849
971
  ---
850
972
 
973
+ ##### `hostedZone`<sup>Required</sup> <a name="hostedZone" id="@btc-embedded/cdk-extensions.ApplicationLoadBalancerProps.property.hostedZone"></a>
974
+
975
+ ```typescript
976
+ public readonly hostedZone: IHostedZone;
977
+ ```
978
+
979
+ - *Type:* aws-cdk-lib.aws_route53.IHostedZone
980
+
981
+ ---
982
+
851
983
  ##### `userPool`<sup>Required</sup> <a name="userPool" id="@btc-embedded/cdk-extensions.ApplicationLoadBalancerProps.property.userPool"></a>
852
984
 
853
985
  ```typescript
@@ -916,45 +1048,6 @@ public readonly platformStackName: string;
916
1048
 
917
1049
  ---
918
1050
 
919
- ### CloudMapProps <a name="CloudMapProps" id="@btc-embedded/cdk-extensions.CloudMapProps"></a>
920
-
921
- #### Initializer <a name="Initializer" id="@btc-embedded/cdk-extensions.CloudMapProps.Initializer"></a>
922
-
923
- ```typescript
924
- import { CloudMapProps } from '@btc-embedded/cdk-extensions'
925
-
926
- const cloudMapProps: CloudMapProps = { ... }
927
- ```
928
-
929
- #### Properties <a name="Properties" id="Properties"></a>
930
-
931
- | **Name** | **Type** | **Description** |
932
- | --- | --- | --- |
933
- | <code><a href="#@btc-embedded/cdk-extensions.CloudMapProps.property.vpc">vpc</a></code> | <code>aws-cdk-lib.aws_ec2.IVpc</code> | *No description.* |
934
- | <code><a href="#@btc-embedded/cdk-extensions.CloudMapProps.property.privateDnsNamespace">privateDnsNamespace</a></code> | <code><a href="#@btc-embedded/cdk-extensions.PrivateDnsNamespaceProps">PrivateDnsNamespaceProps</a></code> | *No description.* |
935
-
936
- ---
937
-
938
- ##### `vpc`<sup>Required</sup> <a name="vpc" id="@btc-embedded/cdk-extensions.CloudMapProps.property.vpc"></a>
939
-
940
- ```typescript
941
- public readonly vpc: IVpc;
942
- ```
943
-
944
- - *Type:* aws-cdk-lib.aws_ec2.IVpc
945
-
946
- ---
947
-
948
- ##### `privateDnsNamespace`<sup>Optional</sup> <a name="privateDnsNamespace" id="@btc-embedded/cdk-extensions.CloudMapProps.property.privateDnsNamespace"></a>
949
-
950
- ```typescript
951
- public readonly privateDnsNamespace: PrivateDnsNamespaceProps;
952
- ```
953
-
954
- - *Type:* <a href="#@btc-embedded/cdk-extensions.PrivateDnsNamespaceProps">PrivateDnsNamespaceProps</a>
955
-
956
- ---
957
-
958
1051
  ### ContainerProps <a name="ContainerProps" id="@btc-embedded/cdk-extensions.ContainerProps"></a>
959
1052
 
960
1053
  #### Initializer <a name="Initializer" id="@btc-embedded/cdk-extensions.ContainerProps.Initializer"></a>
@@ -1604,6 +1697,7 @@ const defaultUserPoolClientsProps: DefaultUserPoolClientsProps = { ... }
1604
1697
  | <code><a href="#@btc-embedded/cdk-extensions.DefaultUserPoolClientsProps.property.fqdn">fqdn</a></code> | <code>string</code> | *No description.* |
1605
1698
  | <code><a href="#@btc-embedded/cdk-extensions.DefaultUserPoolClientsProps.property.logoutUrls">logoutUrls</a></code> | <code>string[]</code> | *No description.* |
1606
1699
  | <code><a href="#@btc-embedded/cdk-extensions.DefaultUserPoolClientsProps.property.userPool">userPool</a></code> | <code>aws-cdk-lib.aws_cognito.IUserPool</code> | *No description.* |
1700
+ | <code><a href="#@btc-embedded/cdk-extensions.DefaultUserPoolClientsProps.property.additonalUserPoolIdentityProviders">additonalUserPoolIdentityProviders</a></code> | <code>string[]</code> | *No description.* |
1607
1701
 
1608
1702
  ---
1609
1703
 
@@ -1647,6 +1741,16 @@ public readonly userPool: IUserPool;
1647
1741
 
1648
1742
  ---
1649
1743
 
1744
+ ##### `additonalUserPoolIdentityProviders`<sup>Optional</sup> <a name="additonalUserPoolIdentityProviders" id="@btc-embedded/cdk-extensions.DefaultUserPoolClientsProps.property.additonalUserPoolIdentityProviders"></a>
1745
+
1746
+ ```typescript
1747
+ public readonly additonalUserPoolIdentityProviders: string[];
1748
+ ```
1749
+
1750
+ - *Type:* string[]
1751
+
1752
+ ---
1753
+
1650
1754
  ### DocumentDbAccessExtensionProps <a name="DocumentDbAccessExtensionProps" id="@btc-embedded/cdk-extensions.DocumentDbAccessExtensionProps"></a>
1651
1755
 
1652
1756
  #### Initializer <a name="Initializer" id="@btc-embedded/cdk-extensions.DocumentDbAccessExtensionProps.Initializer"></a>
@@ -1829,53 +1933,211 @@ Defaults to ContainerDependencyCondition.HEALTHY.
1829
1933
 
1830
1934
  ---
1831
1935
 
1832
- ### PrivateDnsNamespaceProps <a name="PrivateDnsNamespaceProps" id="@btc-embedded/cdk-extensions.PrivateDnsNamespaceProps"></a>
1936
+ ### PostgresDbAccessExtensionProps <a name="PostgresDbAccessExtensionProps" id="@btc-embedded/cdk-extensions.PostgresDbAccessExtensionProps"></a>
1833
1937
 
1834
- #### Initializer <a name="Initializer" id="@btc-embedded/cdk-extensions.PrivateDnsNamespaceProps.Initializer"></a>
1938
+ #### Initializer <a name="Initializer" id="@btc-embedded/cdk-extensions.PostgresDbAccessExtensionProps.Initializer"></a>
1835
1939
 
1836
1940
  ```typescript
1837
- import { PrivateDnsNamespaceProps } from '@btc-embedded/cdk-extensions'
1941
+ import { PostgresDbAccessExtensionProps } from '@btc-embedded/cdk-extensions'
1838
1942
 
1839
- const privateDnsNamespaceProps: PrivateDnsNamespaceProps = { ... }
1943
+ const postgresDbAccessExtensionProps: PostgresDbAccessExtensionProps = { ... }
1840
1944
  ```
1841
1945
 
1842
1946
  #### Properties <a name="Properties" id="Properties"></a>
1843
1947
 
1844
1948
  | **Name** | **Type** | **Description** |
1845
1949
  | --- | --- | --- |
1846
- | <code><a href="#@btc-embedded/cdk-extensions.PrivateDnsNamespaceProps.property.arn">arn</a></code> | <code>string</code> | *No description.* |
1847
- | <code><a href="#@btc-embedded/cdk-extensions.PrivateDnsNamespaceProps.property.id">id</a></code> | <code>string</code> | *No description.* |
1848
- | <code><a href="#@btc-embedded/cdk-extensions.PrivateDnsNamespaceProps.property.namespace">namespace</a></code> | <code>string</code> | *No description.* |
1950
+ | <code><a href="#@btc-embedded/cdk-extensions.PostgresDbAccessExtensionProps.property.basePlatformStackName">basePlatformStackName</a></code> | <code>string</code> | The name of the base platform stack. |
1951
+ | <code><a href="#@btc-embedded/cdk-extensions.PostgresDbAccessExtensionProps.property.securityGroupId">securityGroupId</a></code> | <code>string</code> | Security group ID of the Postgres DB cluster. |
1849
1952
 
1850
1953
  ---
1851
1954
 
1852
- ##### `arn`<sup>Required</sup> <a name="arn" id="@btc-embedded/cdk-extensions.PrivateDnsNamespaceProps.property.arn"></a>
1955
+ ##### `basePlatformStackName`<sup>Required</sup> <a name="basePlatformStackName" id="@btc-embedded/cdk-extensions.PostgresDbAccessExtensionProps.property.basePlatformStackName"></a>
1853
1956
 
1854
1957
  ```typescript
1855
- public readonly arn: string;
1958
+ public readonly basePlatformStackName: string;
1856
1959
  ```
1857
1960
 
1858
1961
  - *Type:* string
1859
1962
 
1963
+ The name of the base platform stack.
1964
+
1965
+ This name is used to look up output
1966
+ parameters.
1967
+
1860
1968
  ---
1861
1969
 
1862
- ##### `id`<sup>Required</sup> <a name="id" id="@btc-embedded/cdk-extensions.PrivateDnsNamespaceProps.property.id"></a>
1970
+ ##### `securityGroupId`<sup>Required</sup> <a name="securityGroupId" id="@btc-embedded/cdk-extensions.PostgresDbAccessExtensionProps.property.securityGroupId"></a>
1863
1971
 
1864
1972
  ```typescript
1865
- public readonly id: string;
1973
+ public readonly securityGroupId: string;
1866
1974
  ```
1867
1975
 
1868
1976
  - *Type:* string
1869
1977
 
1978
+ Security group ID of the Postgres DB cluster.
1979
+
1870
1980
  ---
1871
1981
 
1872
- ##### `namespace`<sup>Required</sup> <a name="namespace" id="@btc-embedded/cdk-extensions.PrivateDnsNamespaceProps.property.namespace"></a>
1982
+ ### PredefinedPrivateDnsNamespaceProps <a name="PredefinedPrivateDnsNamespaceProps" id="@btc-embedded/cdk-extensions.PredefinedPrivateDnsNamespaceProps"></a>
1983
+
1984
+ #### Initializer <a name="Initializer" id="@btc-embedded/cdk-extensions.PredefinedPrivateDnsNamespaceProps.Initializer"></a>
1873
1985
 
1874
1986
  ```typescript
1875
- public readonly namespace: string;
1987
+ import { PredefinedPrivateDnsNamespaceProps } from '@btc-embedded/cdk-extensions'
1988
+
1989
+ const predefinedPrivateDnsNamespaceProps: PredefinedPrivateDnsNamespaceProps = { ... }
1876
1990
  ```
1877
1991
 
1878
- - *Type:* string
1992
+ #### Properties <a name="Properties" id="Properties"></a>
1993
+
1994
+ | **Name** | **Type** | **Description** |
1995
+ | --- | --- | --- |
1996
+ | <code><a href="#@btc-embedded/cdk-extensions.PredefinedPrivateDnsNamespaceProps.property.arn">arn</a></code> | <code>string</code> | *No description.* |
1997
+ | <code><a href="#@btc-embedded/cdk-extensions.PredefinedPrivateDnsNamespaceProps.property.id">id</a></code> | <code>string</code> | *No description.* |
1998
+ | <code><a href="#@btc-embedded/cdk-extensions.PredefinedPrivateDnsNamespaceProps.property.namespace">namespace</a></code> | <code>string</code> | *No description.* |
1999
+
2000
+ ---
2001
+
2002
+ ##### `arn`<sup>Required</sup> <a name="arn" id="@btc-embedded/cdk-extensions.PredefinedPrivateDnsNamespaceProps.property.arn"></a>
2003
+
2004
+ ```typescript
2005
+ public readonly arn: string;
2006
+ ```
2007
+
2008
+ - *Type:* string
2009
+
2010
+ ---
2011
+
2012
+ ##### `id`<sup>Required</sup> <a name="id" id="@btc-embedded/cdk-extensions.PredefinedPrivateDnsNamespaceProps.property.id"></a>
2013
+
2014
+ ```typescript
2015
+ public readonly id: string;
2016
+ ```
2017
+
2018
+ - *Type:* string
2019
+
2020
+ ---
2021
+
2022
+ ##### `namespace`<sup>Required</sup> <a name="namespace" id="@btc-embedded/cdk-extensions.PredefinedPrivateDnsNamespaceProps.property.namespace"></a>
2023
+
2024
+ ```typescript
2025
+ public readonly namespace: string;
2026
+ ```
2027
+
2028
+ - *Type:* string
2029
+
2030
+ ---
2031
+
2032
+ ### PrivateDnsNamespaceProps <a name="PrivateDnsNamespaceProps" id="@btc-embedded/cdk-extensions.PrivateDnsNamespaceProps"></a>
2033
+
2034
+ #### Initializer <a name="Initializer" id="@btc-embedded/cdk-extensions.PrivateDnsNamespaceProps.Initializer"></a>
2035
+
2036
+ ```typescript
2037
+ import { PrivateDnsNamespaceProps } from '@btc-embedded/cdk-extensions'
2038
+
2039
+ const privateDnsNamespaceProps: PrivateDnsNamespaceProps = { ... }
2040
+ ```
2041
+
2042
+ #### Properties <a name="Properties" id="Properties"></a>
2043
+
2044
+ | **Name** | **Type** | **Description** |
2045
+ | --- | --- | --- |
2046
+ | <code><a href="#@btc-embedded/cdk-extensions.PrivateDnsNamespaceProps.property.vpc">vpc</a></code> | <code>aws-cdk-lib.aws_ec2.IVpc</code> | *No description.* |
2047
+ | <code><a href="#@btc-embedded/cdk-extensions.PrivateDnsNamespaceProps.property.definedPrivateDnsNamespace">definedPrivateDnsNamespace</a></code> | <code><a href="#@btc-embedded/cdk-extensions.PredefinedPrivateDnsNamespaceProps">PredefinedPrivateDnsNamespaceProps</a></code> | *No description.* |
2048
+ | <code><a href="#@btc-embedded/cdk-extensions.PrivateDnsNamespaceProps.property.namespaceName">namespaceName</a></code> | <code>string</code> | *No description.* |
2049
+
2050
+ ---
2051
+
2052
+ ##### `vpc`<sup>Required</sup> <a name="vpc" id="@btc-embedded/cdk-extensions.PrivateDnsNamespaceProps.property.vpc"></a>
2053
+
2054
+ ```typescript
2055
+ public readonly vpc: IVpc;
2056
+ ```
2057
+
2058
+ - *Type:* aws-cdk-lib.aws_ec2.IVpc
2059
+
2060
+ ---
2061
+
2062
+ ##### `definedPrivateDnsNamespace`<sup>Optional</sup> <a name="definedPrivateDnsNamespace" id="@btc-embedded/cdk-extensions.PrivateDnsNamespaceProps.property.definedPrivateDnsNamespace"></a>
2063
+
2064
+ ```typescript
2065
+ public readonly definedPrivateDnsNamespace: PredefinedPrivateDnsNamespaceProps;
2066
+ ```
2067
+
2068
+ - *Type:* <a href="#@btc-embedded/cdk-extensions.PredefinedPrivateDnsNamespaceProps">PredefinedPrivateDnsNamespaceProps</a>
2069
+
2070
+ ---
2071
+
2072
+ ##### `namespaceName`<sup>Optional</sup> <a name="namespaceName" id="@btc-embedded/cdk-extensions.PrivateDnsNamespaceProps.property.namespaceName"></a>
2073
+
2074
+ ```typescript
2075
+ public readonly namespaceName: string;
2076
+ ```
2077
+
2078
+ - *Type:* string
2079
+
2080
+ ---
2081
+
2082
+ ### SharedVolumeExtensionProps <a name="SharedVolumeExtensionProps" id="@btc-embedded/cdk-extensions.SharedVolumeExtensionProps"></a>
2083
+
2084
+ Properties for defining an ephermal shared volume.
2085
+
2086
+ #### Initializer <a name="Initializer" id="@btc-embedded/cdk-extensions.SharedVolumeExtensionProps.Initializer"></a>
2087
+
2088
+ ```typescript
2089
+ import { SharedVolumeExtensionProps } from '@btc-embedded/cdk-extensions'
2090
+
2091
+ const sharedVolumeExtensionProps: SharedVolumeExtensionProps = { ... }
2092
+ ```
2093
+
2094
+ #### Properties <a name="Properties" id="Properties"></a>
2095
+
2096
+ | **Name** | **Type** | **Description** |
2097
+ | --- | --- | --- |
2098
+ | <code><a href="#@btc-embedded/cdk-extensions.SharedVolumeExtensionProps.property.path">path</a></code> | <code>string</code> | The path inside the container to mount the volume. |
2099
+ | <code><a href="#@btc-embedded/cdk-extensions.SharedVolumeExtensionProps.property.readonly">readonly</a></code> | <code>boolean</code> | Whether the volume should be read-only. |
2100
+ | <code><a href="#@btc-embedded/cdk-extensions.SharedVolumeExtensionProps.property.scope">scope</a></code> | <code>aws-cdk-lib.aws_ecs.Scope</code> | Scope of the volume. |
2101
+
2102
+ ---
2103
+
2104
+ ##### `path`<sup>Required</sup> <a name="path" id="@btc-embedded/cdk-extensions.SharedVolumeExtensionProps.property.path"></a>
2105
+
2106
+ ```typescript
2107
+ public readonly path: string;
2108
+ ```
2109
+
2110
+ - *Type:* string
2111
+
2112
+ The path inside the container to mount the volume.
2113
+
2114
+ ---
2115
+
2116
+ ##### `readonly`<sup>Optional</sup> <a name="readonly" id="@btc-embedded/cdk-extensions.SharedVolumeExtensionProps.property.readonly"></a>
2117
+
2118
+ ```typescript
2119
+ public readonly readonly: boolean;
2120
+ ```
2121
+
2122
+ - *Type:* boolean
2123
+
2124
+ Whether the volume should be read-only.
2125
+
2126
+ Default: false.
2127
+
2128
+ ---
2129
+
2130
+ ##### `scope`<sup>Optional</sup> <a name="scope" id="@btc-embedded/cdk-extensions.SharedVolumeExtensionProps.property.scope"></a>
2131
+
2132
+ ```typescript
2133
+ public readonly scope: Scope;
2134
+ ```
2135
+
2136
+ - *Type:* aws-cdk-lib.aws_ecs.Scope
2137
+
2138
+ Scope of the volume.
2139
+
2140
+ Default: SHARED.
1879
2141
 
1880
2142
  ---
1881
2143
 
@@ -1929,6 +2191,56 @@ public readonly time: number;
1929
2191
 
1930
2192
  ---
1931
2193
 
2194
+ ### VpcProps <a name="VpcProps" id="@btc-embedded/cdk-extensions.VpcProps"></a>
2195
+
2196
+ #### Initializer <a name="Initializer" id="@btc-embedded/cdk-extensions.VpcProps.Initializer"></a>
2197
+
2198
+ ```typescript
2199
+ import { VpcProps } from '@btc-embedded/cdk-extensions'
2200
+
2201
+ const vpcProps: VpcProps = { ... }
2202
+ ```
2203
+
2204
+ #### Properties <a name="Properties" id="Properties"></a>
2205
+
2206
+ | **Name** | **Type** | **Description** |
2207
+ | --- | --- | --- |
2208
+ | <code><a href="#@btc-embedded/cdk-extensions.VpcProps.property.definedVpcName">definedVpcName</a></code> | <code>string</code> | *No description.* |
2209
+ | <code><a href="#@btc-embedded/cdk-extensions.VpcProps.property.maxAzs">maxAzs</a></code> | <code>number</code> | *No description.* |
2210
+ | <code><a href="#@btc-embedded/cdk-extensions.VpcProps.property.vpcCidr">vpcCidr</a></code> | <code>aws-cdk-lib.aws_ec2.IIpAddresses</code> | *No description.* |
2211
+
2212
+ ---
2213
+
2214
+ ##### `definedVpcName`<sup>Optional</sup> <a name="definedVpcName" id="@btc-embedded/cdk-extensions.VpcProps.property.definedVpcName"></a>
2215
+
2216
+ ```typescript
2217
+ public readonly definedVpcName: string;
2218
+ ```
2219
+
2220
+ - *Type:* string
2221
+
2222
+ ---
2223
+
2224
+ ##### `maxAzs`<sup>Optional</sup> <a name="maxAzs" id="@btc-embedded/cdk-extensions.VpcProps.property.maxAzs"></a>
2225
+
2226
+ ```typescript
2227
+ public readonly maxAzs: number;
2228
+ ```
2229
+
2230
+ - *Type:* number
2231
+
2232
+ ---
2233
+
2234
+ ##### `vpcCidr`<sup>Optional</sup> <a name="vpcCidr" id="@btc-embedded/cdk-extensions.VpcProps.property.vpcCidr"></a>
2235
+
2236
+ ```typescript
2237
+ public readonly vpcCidr: IIpAddresses;
2238
+ ```
2239
+
2240
+ - *Type:* aws-cdk-lib.aws_ec2.IIpAddresses
2241
+
2242
+ ---
2243
+
1932
2244
  ## Classes <a name="Classes" id="Classes"></a>
1933
2245
 
1934
2246
  ### ApiGatewayExtension <a name="ApiGatewayExtension" id="@btc-embedded/cdk-extensions.ApiGatewayExtension"></a>
@@ -2641,6 +2953,7 @@ The created task definition to add containers to.
2641
2953
  | <code><a href="#@btc-embedded/cdk-extensions.CloudMapExtension.property.name">name</a></code> | <code>string</code> | The name of the extension. |
2642
2954
  | <code><a href="#@btc-embedded/cdk-extensions.CloudMapExtension.property.container">container</a></code> | <code>aws-cdk-lib.aws_ecs.ContainerDefinition</code> | The container for this extension. |
2643
2955
  | <code><a href="#@btc-embedded/cdk-extensions.CloudMapExtension.property.props">props</a></code> | <code><a href="#@btc-embedded/cdk-extensions.CloudMapExtensionProps">CloudMapExtensionProps</a></code> | *No description.* |
2956
+ | <code><a href="#@btc-embedded/cdk-extensions.CloudMapExtension.property.serviceName">serviceName</a></code> | <code>string</code> | *No description.* |
2644
2957
 
2645
2958
  ---
2646
2959
 
@@ -2683,6 +2996,16 @@ public readonly props: CloudMapExtensionProps;
2683
2996
 
2684
2997
  ---
2685
2998
 
2999
+ ##### `serviceName`<sup>Required</sup> <a name="serviceName" id="@btc-embedded/cdk-extensions.CloudMapExtension.property.serviceName"></a>
3000
+
3001
+ ```typescript
3002
+ public readonly serviceName: string;
3003
+ ```
3004
+
3005
+ - *Type:* string
3006
+
3007
+ ---
3008
+
2686
3009
 
2687
3010
  ### DocumentDbAccessExtension <a name="DocumentDbAccessExtension" id="@btc-embedded/cdk-extensions.DocumentDbAccessExtension"></a>
2688
3011
 
@@ -3766,6 +4089,519 @@ connected to the service.
3766
4089
  ---
3767
4090
 
3768
4091
 
4092
+ ### PostgresDbAccessExtension <a name="PostgresDbAccessExtension" id="@btc-embedded/cdk-extensions.PostgresDbAccessExtension"></a>
4093
+
4094
+ #### Initializers <a name="Initializers" id="@btc-embedded/cdk-extensions.PostgresDbAccessExtension.Initializer"></a>
4095
+
4096
+ ```typescript
4097
+ import { PostgresDbAccessExtension } from '@btc-embedded/cdk-extensions'
4098
+
4099
+ new PostgresDbAccessExtension(props: PostgresDbAccessExtensionProps)
4100
+ ```
4101
+
4102
+ | **Name** | **Type** | **Description** |
4103
+ | --- | --- | --- |
4104
+ | <code><a href="#@btc-embedded/cdk-extensions.PostgresDbAccessExtension.Initializer.parameter.props">props</a></code> | <code><a href="#@btc-embedded/cdk-extensions.PostgresDbAccessExtensionProps">PostgresDbAccessExtensionProps</a></code> | *No description.* |
4105
+
4106
+ ---
4107
+
4108
+ ##### `props`<sup>Required</sup> <a name="props" id="@btc-embedded/cdk-extensions.PostgresDbAccessExtension.Initializer.parameter.props"></a>
4109
+
4110
+ - *Type:* <a href="#@btc-embedded/cdk-extensions.PostgresDbAccessExtensionProps">PostgresDbAccessExtensionProps</a>
4111
+
4112
+ ---
4113
+
4114
+ #### Methods <a name="Methods" id="Methods"></a>
4115
+
4116
+ | **Name** | **Description** |
4117
+ | --- | --- |
4118
+ | <code><a href="#@btc-embedded/cdk-extensions.PostgresDbAccessExtension.addContainerMutatingHook">addContainerMutatingHook</a></code> | This hook allows another service extension to register a mutating hook for changing the primary container of this extension. |
4119
+ | <code><a href="#@btc-embedded/cdk-extensions.PostgresDbAccessExtension.addHooks">addHooks</a></code> | A hook that allows the extension to add hooks to other extensions that are registered. |
4120
+ | <code><a href="#@btc-embedded/cdk-extensions.PostgresDbAccessExtension.connectToService">connectToService</a></code> | This hook allows the extension to establish a connection to extensions from another service. |
4121
+ | <code><a href="#@btc-embedded/cdk-extensions.PostgresDbAccessExtension.modifyServiceProps">modifyServiceProps</a></code> | Prior to launching the task definition as a service, this hook is called on each extension to give it a chance to mutate the properties of the service to be created. |
4122
+ | <code><a href="#@btc-embedded/cdk-extensions.PostgresDbAccessExtension.modifyTaskDefinitionProps">modifyTaskDefinitionProps</a></code> | This is a hook which allows extensions to modify the settings of the task definition prior to it being created. |
4123
+ | <code><a href="#@btc-embedded/cdk-extensions.PostgresDbAccessExtension.prehook">prehook</a></code> | A hook that is called for each extension ahead of time to allow for any initial setup, such as creating resources in advance. |
4124
+ | <code><a href="#@btc-embedded/cdk-extensions.PostgresDbAccessExtension.resolveContainerDependencies">resolveContainerDependencies</a></code> | Once all containers are added to the task definition, this hook is called for each extension to give it a chance to resolve its dependency graph so that its container starts in the right order based on the other extensions that were enabled. |
4125
+ | <code><a href="#@btc-embedded/cdk-extensions.PostgresDbAccessExtension.useService">useService</a></code> | When this hook is implemented by extension, it allows the extension to use the service which has been created. |
4126
+ | <code><a href="#@btc-embedded/cdk-extensions.PostgresDbAccessExtension.useTaskDefinition">useTaskDefinition</a></code> | Once the task definition is created, this hook is called for each extension to give it a chance to add containers to the task definition, change the task definition's role to add permissions, etc. |
4127
+
4128
+ ---
4129
+
4130
+ ##### `addContainerMutatingHook` <a name="addContainerMutatingHook" id="@btc-embedded/cdk-extensions.PostgresDbAccessExtension.addContainerMutatingHook"></a>
4131
+
4132
+ ```typescript
4133
+ public addContainerMutatingHook(hook: ContainerMutatingHook): void
4134
+ ```
4135
+
4136
+ This hook allows another service extension to register a mutating hook for changing the primary container of this extension.
4137
+
4138
+ This is primarily used
4139
+ for the application extension. For example, the Firelens extension wants to
4140
+ be able to modify the settings of the application container to
4141
+ route logs through Firelens.
4142
+
4143
+ ###### `hook`<sup>Required</sup> <a name="hook" id="@btc-embedded/cdk-extensions.PostgresDbAccessExtension.addContainerMutatingHook.parameter.hook"></a>
4144
+
4145
+ - *Type:* @aws-cdk-containers/ecs-service-extensions.ContainerMutatingHook
4146
+
4147
+ ---
4148
+
4149
+ ##### `addHooks` <a name="addHooks" id="@btc-embedded/cdk-extensions.PostgresDbAccessExtension.addHooks"></a>
4150
+
4151
+ ```typescript
4152
+ public addHooks(): void
4153
+ ```
4154
+
4155
+ A hook that allows the extension to add hooks to other extensions that are registered.
4156
+
4157
+ ##### `connectToService` <a name="connectToService" id="@btc-embedded/cdk-extensions.PostgresDbAccessExtension.connectToService"></a>
4158
+
4159
+ ```typescript
4160
+ public connectToService(service: Service, connectToProps?: ConnectToProps): void
4161
+ ```
4162
+
4163
+ This hook allows the extension to establish a connection to extensions from another service.
4164
+
4165
+ Usually used for things like
4166
+ allowing one service to talk to the load balancer or service mesh
4167
+ proxy for another service.
4168
+
4169
+ ###### `service`<sup>Required</sup> <a name="service" id="@btc-embedded/cdk-extensions.PostgresDbAccessExtension.connectToService.parameter.service"></a>
4170
+
4171
+ - *Type:* @aws-cdk-containers/ecs-service-extensions.Service
4172
+
4173
+ The other service to connect to.
4174
+
4175
+ ---
4176
+
4177
+ ###### `connectToProps`<sup>Optional</sup> <a name="connectToProps" id="@btc-embedded/cdk-extensions.PostgresDbAccessExtension.connectToService.parameter.connectToProps"></a>
4178
+
4179
+ - *Type:* @aws-cdk-containers/ecs-service-extensions.ConnectToProps
4180
+
4181
+ ---
4182
+
4183
+ ##### `modifyServiceProps` <a name="modifyServiceProps" id="@btc-embedded/cdk-extensions.PostgresDbAccessExtension.modifyServiceProps"></a>
4184
+
4185
+ ```typescript
4186
+ public modifyServiceProps(props: ServiceBuild): ServiceBuild
4187
+ ```
4188
+
4189
+ Prior to launching the task definition as a service, this hook is called on each extension to give it a chance to mutate the properties of the service to be created.
4190
+
4191
+ ###### `props`<sup>Required</sup> <a name="props" id="@btc-embedded/cdk-extensions.PostgresDbAccessExtension.modifyServiceProps.parameter.props"></a>
4192
+
4193
+ - *Type:* @aws-cdk-containers/ecs-service-extensions.ServiceBuild
4194
+
4195
+ The service properties to mutate.
4196
+
4197
+ ---
4198
+
4199
+ ##### `modifyTaskDefinitionProps` <a name="modifyTaskDefinitionProps" id="@btc-embedded/cdk-extensions.PostgresDbAccessExtension.modifyTaskDefinitionProps"></a>
4200
+
4201
+ ```typescript
4202
+ public modifyTaskDefinitionProps(props: TaskDefinitionProps): TaskDefinitionProps
4203
+ ```
4204
+
4205
+ This is a hook which allows extensions to modify the settings of the task definition prior to it being created.
4206
+
4207
+ For example, the App Mesh
4208
+ extension needs to configure an Envoy proxy in the task definition,
4209
+ or the Application extension wants to set the overall resource for
4210
+ the task.
4211
+
4212
+ ###### `props`<sup>Required</sup> <a name="props" id="@btc-embedded/cdk-extensions.PostgresDbAccessExtension.modifyTaskDefinitionProps.parameter.props"></a>
4213
+
4214
+ - *Type:* aws-cdk-lib.aws_ecs.TaskDefinitionProps
4215
+
4216
+ Properties of the task definition to be created.
4217
+
4218
+ ---
4219
+
4220
+ ##### `prehook` <a name="prehook" id="@btc-embedded/cdk-extensions.PostgresDbAccessExtension.prehook"></a>
4221
+
4222
+ ```typescript
4223
+ public prehook(parent: Service, scope: Construct): void
4224
+ ```
4225
+
4226
+ A hook that is called for each extension ahead of time to allow for any initial setup, such as creating resources in advance.
4227
+
4228
+ ###### `parent`<sup>Required</sup> <a name="parent" id="@btc-embedded/cdk-extensions.PostgresDbAccessExtension.prehook.parameter.parent"></a>
4229
+
4230
+ - *Type:* @aws-cdk-containers/ecs-service-extensions.Service
4231
+
4232
+ ---
4233
+
4234
+ ###### `scope`<sup>Required</sup> <a name="scope" id="@btc-embedded/cdk-extensions.PostgresDbAccessExtension.prehook.parameter.scope"></a>
4235
+
4236
+ - *Type:* constructs.Construct
4237
+
4238
+ ---
4239
+
4240
+ ##### `resolveContainerDependencies` <a name="resolveContainerDependencies" id="@btc-embedded/cdk-extensions.PostgresDbAccessExtension.resolveContainerDependencies"></a>
4241
+
4242
+ ```typescript
4243
+ public resolveContainerDependencies(): void
4244
+ ```
4245
+
4246
+ Once all containers are added to the task definition, this hook is called for each extension to give it a chance to resolve its dependency graph so that its container starts in the right order based on the other extensions that were enabled.
4247
+
4248
+ ##### `useService` <a name="useService" id="@btc-embedded/cdk-extensions.PostgresDbAccessExtension.useService"></a>
4249
+
4250
+ ```typescript
4251
+ public useService(service: Ec2Service | FargateService): void
4252
+ ```
4253
+
4254
+ When this hook is implemented by extension, it allows the extension to use the service which has been created.
4255
+
4256
+ It is generally used to
4257
+ create any final resources which might depend on the service itself.
4258
+
4259
+ ###### `service`<sup>Required</sup> <a name="service" id="@btc-embedded/cdk-extensions.PostgresDbAccessExtension.useService.parameter.service"></a>
4260
+
4261
+ - *Type:* aws-cdk-lib.aws_ecs.Ec2Service | aws-cdk-lib.aws_ecs.FargateService
4262
+
4263
+ ---
4264
+
4265
+ ##### `useTaskDefinition` <a name="useTaskDefinition" id="@btc-embedded/cdk-extensions.PostgresDbAccessExtension.useTaskDefinition"></a>
4266
+
4267
+ ```typescript
4268
+ public useTaskDefinition(taskDefinition: TaskDefinition): void
4269
+ ```
4270
+
4271
+ Once the task definition is created, this hook is called for each extension to give it a chance to add containers to the task definition, change the task definition's role to add permissions, etc.
4272
+
4273
+ ###### `taskDefinition`<sup>Required</sup> <a name="taskDefinition" id="@btc-embedded/cdk-extensions.PostgresDbAccessExtension.useTaskDefinition.parameter.taskDefinition"></a>
4274
+
4275
+ - *Type:* aws-cdk-lib.aws_ecs.TaskDefinition
4276
+
4277
+ The created task definition to add containers to.
4278
+
4279
+ ---
4280
+
4281
+
4282
+ #### Properties <a name="Properties" id="Properties"></a>
4283
+
4284
+ | **Name** | **Type** | **Description** |
4285
+ | --- | --- | --- |
4286
+ | <code><a href="#@btc-embedded/cdk-extensions.PostgresDbAccessExtension.property.name">name</a></code> | <code>string</code> | The name of the extension. |
4287
+ | <code><a href="#@btc-embedded/cdk-extensions.PostgresDbAccessExtension.property.container">container</a></code> | <code>aws-cdk-lib.aws_ecs.ContainerDefinition</code> | The container for this extension. |
4288
+ | <code><a href="#@btc-embedded/cdk-extensions.PostgresDbAccessExtension.property.props">props</a></code> | <code><a href="#@btc-embedded/cdk-extensions.PostgresDbAccessExtensionProps">PostgresDbAccessExtensionProps</a></code> | *No description.* |
4289
+ | <code><a href="#@btc-embedded/cdk-extensions.PostgresDbAccessExtension.property.secretArn">secretArn</a></code> | <code>string</code> | *No description.* |
4290
+
4291
+ ---
4292
+
4293
+ ##### `name`<sup>Required</sup> <a name="name" id="@btc-embedded/cdk-extensions.PostgresDbAccessExtension.property.name"></a>
4294
+
4295
+ ```typescript
4296
+ public readonly name: string;
4297
+ ```
4298
+
4299
+ - *Type:* string
4300
+
4301
+ The name of the extension.
4302
+
4303
+ ---
4304
+
4305
+ ##### `container`<sup>Optional</sup> <a name="container" id="@btc-embedded/cdk-extensions.PostgresDbAccessExtension.property.container"></a>
4306
+
4307
+ ```typescript
4308
+ public readonly container: ContainerDefinition;
4309
+ ```
4310
+
4311
+ - *Type:* aws-cdk-lib.aws_ecs.ContainerDefinition
4312
+
4313
+ The container for this extension.
4314
+
4315
+ Most extensions have a container, but not
4316
+ every extension is required to have a container. Some extensions may just
4317
+ modify the properties of the service, or create external resources
4318
+ connected to the service.
4319
+
4320
+ ---
4321
+
4322
+ ##### `props`<sup>Required</sup> <a name="props" id="@btc-embedded/cdk-extensions.PostgresDbAccessExtension.property.props"></a>
4323
+
4324
+ ```typescript
4325
+ public readonly props: PostgresDbAccessExtensionProps;
4326
+ ```
4327
+
4328
+ - *Type:* <a href="#@btc-embedded/cdk-extensions.PostgresDbAccessExtensionProps">PostgresDbAccessExtensionProps</a>
4329
+
4330
+ ---
4331
+
4332
+ ##### `secretArn`<sup>Required</sup> <a name="secretArn" id="@btc-embedded/cdk-extensions.PostgresDbAccessExtension.property.secretArn"></a>
4333
+
4334
+ ```typescript
4335
+ public readonly secretArn: string;
4336
+ ```
4337
+
4338
+ - *Type:* string
4339
+
4340
+ ---
4341
+
4342
+
4343
+ ### SharedVolumeExtension <a name="SharedVolumeExtension" id="@btc-embedded/cdk-extensions.SharedVolumeExtension"></a>
4344
+
4345
+ Create a shared volume and attach it to all containers in this task definition.
4346
+
4347
+ #### Initializers <a name="Initializers" id="@btc-embedded/cdk-extensions.SharedVolumeExtension.Initializer"></a>
4348
+
4349
+ ```typescript
4350
+ import { SharedVolumeExtension } from '@btc-embedded/cdk-extensions'
4351
+
4352
+ new SharedVolumeExtension(volumeName: string, props: SharedVolumeExtensionProps)
4353
+ ```
4354
+
4355
+ | **Name** | **Type** | **Description** |
4356
+ | --- | --- | --- |
4357
+ | <code><a href="#@btc-embedded/cdk-extensions.SharedVolumeExtension.Initializer.parameter.volumeName">volumeName</a></code> | <code>string</code> | *No description.* |
4358
+ | <code><a href="#@btc-embedded/cdk-extensions.SharedVolumeExtension.Initializer.parameter.props">props</a></code> | <code><a href="#@btc-embedded/cdk-extensions.SharedVolumeExtensionProps">SharedVolumeExtensionProps</a></code> | *No description.* |
4359
+
4360
+ ---
4361
+
4362
+ ##### `volumeName`<sup>Required</sup> <a name="volumeName" id="@btc-embedded/cdk-extensions.SharedVolumeExtension.Initializer.parameter.volumeName"></a>
4363
+
4364
+ - *Type:* string
4365
+
4366
+ ---
4367
+
4368
+ ##### `props`<sup>Required</sup> <a name="props" id="@btc-embedded/cdk-extensions.SharedVolumeExtension.Initializer.parameter.props"></a>
4369
+
4370
+ - *Type:* <a href="#@btc-embedded/cdk-extensions.SharedVolumeExtensionProps">SharedVolumeExtensionProps</a>
4371
+
4372
+ ---
4373
+
4374
+ #### Methods <a name="Methods" id="Methods"></a>
4375
+
4376
+ | **Name** | **Description** |
4377
+ | --- | --- |
4378
+ | <code><a href="#@btc-embedded/cdk-extensions.SharedVolumeExtension.addContainerMutatingHook">addContainerMutatingHook</a></code> | This hook allows another service extension to register a mutating hook for changing the primary container of this extension. |
4379
+ | <code><a href="#@btc-embedded/cdk-extensions.SharedVolumeExtension.addHooks">addHooks</a></code> | A hook that allows the extension to add hooks to other extensions that are registered. |
4380
+ | <code><a href="#@btc-embedded/cdk-extensions.SharedVolumeExtension.connectToService">connectToService</a></code> | This hook allows the extension to establish a connection to extensions from another service. |
4381
+ | <code><a href="#@btc-embedded/cdk-extensions.SharedVolumeExtension.modifyServiceProps">modifyServiceProps</a></code> | Prior to launching the task definition as a service, this hook is called on each extension to give it a chance to mutate the properties of the service to be created. |
4382
+ | <code><a href="#@btc-embedded/cdk-extensions.SharedVolumeExtension.modifyTaskDefinitionProps">modifyTaskDefinitionProps</a></code> | This is a hook which allows extensions to modify the settings of the task definition prior to it being created. |
4383
+ | <code><a href="#@btc-embedded/cdk-extensions.SharedVolumeExtension.prehook">prehook</a></code> | A hook that is called for each extension ahead of time to allow for any initial setup, such as creating resources in advance. |
4384
+ | <code><a href="#@btc-embedded/cdk-extensions.SharedVolumeExtension.resolveContainerDependencies">resolveContainerDependencies</a></code> | Once all containers are added to the task definition, this hook is called for each extension to give it a chance to resolve its dependency graph so that its container starts in the right order based on the other extensions that were enabled. |
4385
+ | <code><a href="#@btc-embedded/cdk-extensions.SharedVolumeExtension.useService">useService</a></code> | When this hook is implemented by extension, it allows the extension to use the service which has been created. |
4386
+ | <code><a href="#@btc-embedded/cdk-extensions.SharedVolumeExtension.useTaskDefinition">useTaskDefinition</a></code> | Once the task definition is created, this hook is called for each extension to give it a chance to add containers to the task definition, change the task definition's role to add permissions, etc. |
4387
+
4388
+ ---
4389
+
4390
+ ##### `addContainerMutatingHook` <a name="addContainerMutatingHook" id="@btc-embedded/cdk-extensions.SharedVolumeExtension.addContainerMutatingHook"></a>
4391
+
4392
+ ```typescript
4393
+ public addContainerMutatingHook(hook: ContainerMutatingHook): void
4394
+ ```
4395
+
4396
+ This hook allows another service extension to register a mutating hook for changing the primary container of this extension.
4397
+
4398
+ This is primarily used
4399
+ for the application extension. For example, the Firelens extension wants to
4400
+ be able to modify the settings of the application container to
4401
+ route logs through Firelens.
4402
+
4403
+ ###### `hook`<sup>Required</sup> <a name="hook" id="@btc-embedded/cdk-extensions.SharedVolumeExtension.addContainerMutatingHook.parameter.hook"></a>
4404
+
4405
+ - *Type:* @aws-cdk-containers/ecs-service-extensions.ContainerMutatingHook
4406
+
4407
+ ---
4408
+
4409
+ ##### `addHooks` <a name="addHooks" id="@btc-embedded/cdk-extensions.SharedVolumeExtension.addHooks"></a>
4410
+
4411
+ ```typescript
4412
+ public addHooks(): void
4413
+ ```
4414
+
4415
+ A hook that allows the extension to add hooks to other extensions that are registered.
4416
+
4417
+ ##### `connectToService` <a name="connectToService" id="@btc-embedded/cdk-extensions.SharedVolumeExtension.connectToService"></a>
4418
+
4419
+ ```typescript
4420
+ public connectToService(service: Service, connectToProps?: ConnectToProps): void
4421
+ ```
4422
+
4423
+ This hook allows the extension to establish a connection to extensions from another service.
4424
+
4425
+ Usually used for things like
4426
+ allowing one service to talk to the load balancer or service mesh
4427
+ proxy for another service.
4428
+
4429
+ ###### `service`<sup>Required</sup> <a name="service" id="@btc-embedded/cdk-extensions.SharedVolumeExtension.connectToService.parameter.service"></a>
4430
+
4431
+ - *Type:* @aws-cdk-containers/ecs-service-extensions.Service
4432
+
4433
+ The other service to connect to.
4434
+
4435
+ ---
4436
+
4437
+ ###### `connectToProps`<sup>Optional</sup> <a name="connectToProps" id="@btc-embedded/cdk-extensions.SharedVolumeExtension.connectToService.parameter.connectToProps"></a>
4438
+
4439
+ - *Type:* @aws-cdk-containers/ecs-service-extensions.ConnectToProps
4440
+
4441
+ ---
4442
+
4443
+ ##### `modifyServiceProps` <a name="modifyServiceProps" id="@btc-embedded/cdk-extensions.SharedVolumeExtension.modifyServiceProps"></a>
4444
+
4445
+ ```typescript
4446
+ public modifyServiceProps(props: ServiceBuild): ServiceBuild
4447
+ ```
4448
+
4449
+ Prior to launching the task definition as a service, this hook is called on each extension to give it a chance to mutate the properties of the service to be created.
4450
+
4451
+ ###### `props`<sup>Required</sup> <a name="props" id="@btc-embedded/cdk-extensions.SharedVolumeExtension.modifyServiceProps.parameter.props"></a>
4452
+
4453
+ - *Type:* @aws-cdk-containers/ecs-service-extensions.ServiceBuild
4454
+
4455
+ The service properties to mutate.
4456
+
4457
+ ---
4458
+
4459
+ ##### `modifyTaskDefinitionProps` <a name="modifyTaskDefinitionProps" id="@btc-embedded/cdk-extensions.SharedVolumeExtension.modifyTaskDefinitionProps"></a>
4460
+
4461
+ ```typescript
4462
+ public modifyTaskDefinitionProps(props: TaskDefinitionProps): TaskDefinitionProps
4463
+ ```
4464
+
4465
+ This is a hook which allows extensions to modify the settings of the task definition prior to it being created.
4466
+
4467
+ For example, the App Mesh
4468
+ extension needs to configure an Envoy proxy in the task definition,
4469
+ or the Application extension wants to set the overall resource for
4470
+ the task.
4471
+
4472
+ ###### `props`<sup>Required</sup> <a name="props" id="@btc-embedded/cdk-extensions.SharedVolumeExtension.modifyTaskDefinitionProps.parameter.props"></a>
4473
+
4474
+ - *Type:* aws-cdk-lib.aws_ecs.TaskDefinitionProps
4475
+
4476
+ Properties of the task definition to be created.
4477
+
4478
+ ---
4479
+
4480
+ ##### `prehook` <a name="prehook" id="@btc-embedded/cdk-extensions.SharedVolumeExtension.prehook"></a>
4481
+
4482
+ ```typescript
4483
+ public prehook(parent: Service, scope: Construct): void
4484
+ ```
4485
+
4486
+ A hook that is called for each extension ahead of time to allow for any initial setup, such as creating resources in advance.
4487
+
4488
+ ###### `parent`<sup>Required</sup> <a name="parent" id="@btc-embedded/cdk-extensions.SharedVolumeExtension.prehook.parameter.parent"></a>
4489
+
4490
+ - *Type:* @aws-cdk-containers/ecs-service-extensions.Service
4491
+
4492
+ The parent service which this extension has been added to.
4493
+
4494
+ ---
4495
+
4496
+ ###### `scope`<sup>Required</sup> <a name="scope" id="@btc-embedded/cdk-extensions.SharedVolumeExtension.prehook.parameter.scope"></a>
4497
+
4498
+ - *Type:* constructs.Construct
4499
+
4500
+ The scope that this extension should create resources in.
4501
+
4502
+ ---
4503
+
4504
+ ##### `resolveContainerDependencies` <a name="resolveContainerDependencies" id="@btc-embedded/cdk-extensions.SharedVolumeExtension.resolveContainerDependencies"></a>
4505
+
4506
+ ```typescript
4507
+ public resolveContainerDependencies(): void
4508
+ ```
4509
+
4510
+ Once all containers are added to the task definition, this hook is called for each extension to give it a chance to resolve its dependency graph so that its container starts in the right order based on the other extensions that were enabled.
4511
+
4512
+ ##### `useService` <a name="useService" id="@btc-embedded/cdk-extensions.SharedVolumeExtension.useService"></a>
4513
+
4514
+ ```typescript
4515
+ public useService(_service: Ec2Service | FargateService): void
4516
+ ```
4517
+
4518
+ When this hook is implemented by extension, it allows the extension to use the service which has been created.
4519
+
4520
+ It is generally used to
4521
+ create any final resources which might depend on the service itself.
4522
+
4523
+ ###### `_service`<sup>Required</sup> <a name="_service" id="@btc-embedded/cdk-extensions.SharedVolumeExtension.useService.parameter._service"></a>
4524
+
4525
+ - *Type:* aws-cdk-lib.aws_ecs.Ec2Service | aws-cdk-lib.aws_ecs.FargateService
4526
+
4527
+ ---
4528
+
4529
+ ##### `useTaskDefinition` <a name="useTaskDefinition" id="@btc-embedded/cdk-extensions.SharedVolumeExtension.useTaskDefinition"></a>
4530
+
4531
+ ```typescript
4532
+ public useTaskDefinition(taskDefinition: TaskDefinition): void
4533
+ ```
4534
+
4535
+ Once the task definition is created, this hook is called for each extension to give it a chance to add containers to the task definition, change the task definition's role to add permissions, etc.
4536
+
4537
+ ###### `taskDefinition`<sup>Required</sup> <a name="taskDefinition" id="@btc-embedded/cdk-extensions.SharedVolumeExtension.useTaskDefinition.parameter.taskDefinition"></a>
4538
+
4539
+ - *Type:* aws-cdk-lib.aws_ecs.TaskDefinition
4540
+
4541
+ ---
4542
+
4543
+
4544
+ #### Properties <a name="Properties" id="Properties"></a>
4545
+
4546
+ | **Name** | **Type** | **Description** |
4547
+ | --- | --- | --- |
4548
+ | <code><a href="#@btc-embedded/cdk-extensions.SharedVolumeExtension.property.name">name</a></code> | <code>string</code> | The name of the extension. |
4549
+ | <code><a href="#@btc-embedded/cdk-extensions.SharedVolumeExtension.property.container">container</a></code> | <code>aws-cdk-lib.aws_ecs.ContainerDefinition</code> | The container for this extension. |
4550
+ | <code><a href="#@btc-embedded/cdk-extensions.SharedVolumeExtension.property.props">props</a></code> | <code><a href="#@btc-embedded/cdk-extensions.SharedVolumeExtensionProps">SharedVolumeExtensionProps</a></code> | *No description.* |
4551
+ | <code><a href="#@btc-embedded/cdk-extensions.SharedVolumeExtension.property.volumeName">volumeName</a></code> | <code>string</code> | *No description.* |
4552
+
4553
+ ---
4554
+
4555
+ ##### `name`<sup>Required</sup> <a name="name" id="@btc-embedded/cdk-extensions.SharedVolumeExtension.property.name"></a>
4556
+
4557
+ ```typescript
4558
+ public readonly name: string;
4559
+ ```
4560
+
4561
+ - *Type:* string
4562
+
4563
+ The name of the extension.
4564
+
4565
+ ---
4566
+
4567
+ ##### `container`<sup>Optional</sup> <a name="container" id="@btc-embedded/cdk-extensions.SharedVolumeExtension.property.container"></a>
4568
+
4569
+ ```typescript
4570
+ public readonly container: ContainerDefinition;
4571
+ ```
4572
+
4573
+ - *Type:* aws-cdk-lib.aws_ecs.ContainerDefinition
4574
+
4575
+ The container for this extension.
4576
+
4577
+ Most extensions have a container, but not
4578
+ every extension is required to have a container. Some extensions may just
4579
+ modify the properties of the service, or create external resources
4580
+ connected to the service.
4581
+
4582
+ ---
4583
+
4584
+ ##### `props`<sup>Required</sup> <a name="props" id="@btc-embedded/cdk-extensions.SharedVolumeExtension.property.props"></a>
4585
+
4586
+ ```typescript
4587
+ public readonly props: SharedVolumeExtensionProps;
4588
+ ```
4589
+
4590
+ - *Type:* <a href="#@btc-embedded/cdk-extensions.SharedVolumeExtensionProps">SharedVolumeExtensionProps</a>
4591
+
4592
+ ---
4593
+
4594
+ ##### `volumeName`<sup>Required</sup> <a name="volumeName" id="@btc-embedded/cdk-extensions.SharedVolumeExtension.property.volumeName"></a>
4595
+
4596
+ ```typescript
4597
+ public readonly volumeName: string;
4598
+ ```
4599
+
4600
+ - *Type:* string
4601
+
4602
+ ---
4603
+
4604
+
3769
4605
  ### TcpKeepAliveExtension <a name="TcpKeepAliveExtension" id="@btc-embedded/cdk-extensions.TcpKeepAliveExtension"></a>
3770
4606
 
3771
4607
  #### Initializers <a name="Initializers" id="@btc-embedded/cdk-extensions.TcpKeepAliveExtension.Initializer"></a>