@btc-embedded/cdk-extensions 0.19.0 → 0.20.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 (46) hide show
  1. package/.jsii +477 -16
  2. package/API.md +544 -8
  3. package/CHANGELOG.md +11 -0
  4. package/lib/constructs/EventPipe.js +1 -1
  5. package/lib/constructs/S3Bucket.js +1 -1
  6. package/lib/constructs/SecureRestApi.js +1 -1
  7. package/lib/constructs/SecureRestApiV2.js +1 -1
  8. package/lib/extensions/ApiGatewayExtension.js +1 -1
  9. package/lib/extensions/ApplicationLoadBalancerExtension.js +1 -1
  10. package/lib/extensions/ApplicationLoadBalancerExtensionV2.js +1 -1
  11. package/lib/extensions/CloudMapExtension.js +1 -1
  12. package/lib/extensions/DeactivatableServiceExtension.js +1 -1
  13. package/lib/extensions/DocumentDbAccessExtension.js +1 -1
  14. package/lib/extensions/DomainEventMessagingExtension.js +1 -1
  15. package/lib/extensions/EfsMountExtension.js +1 -1
  16. package/lib/extensions/ExtraContainerExtension.js +1 -1
  17. package/lib/extensions/HTTPApiExtension.js +1 -1
  18. package/lib/extensions/LogExtension.js +1 -1
  19. package/lib/extensions/ModifyContainerDefinitionExtension.js +1 -1
  20. package/lib/extensions/ModifyTaskDefinitionExtension.js +1 -1
  21. package/lib/extensions/OpenIdExtension.js +1 -1
  22. package/lib/extensions/OpenTelemetryExtension.js +1 -1
  23. package/lib/extensions/PostgresDbAccessExtension.js +1 -1
  24. package/lib/extensions/SharedVolumeExtension.js +1 -1
  25. package/lib/extensions/TcpKeepAliveExtension.js +1 -1
  26. package/lib/platform/ApiGateway.js +1 -1
  27. package/lib/platform/ApiGatewayVpcLink.js +2 -2
  28. package/lib/platform/ApplicationLoadBalancer.js +1 -1
  29. package/lib/platform/ApplicationLoadBalancerV2.js +2 -2
  30. package/lib/platform/BTCLogGroup.js +1 -1
  31. package/lib/platform/CognitoUserPool.js +2 -2
  32. package/lib/platform/DefaultUserPoolClients.js +1 -1
  33. package/lib/platform/DocumentDB.js +2 -2
  34. package/lib/platform/EcsCluster.d.ts +37 -0
  35. package/lib/platform/EcsCluster.js +87 -0
  36. package/lib/platform/EfsFileSystem.js +1 -1
  37. package/lib/platform/PrivateDnsNamespace.js +1 -1
  38. package/lib/platform/ResourceServer.js +1 -1
  39. package/lib/platform/Vpc.d.ts +4 -1
  40. package/lib/platform/Vpc.js +5 -2
  41. package/lib/platform/VpcV2.d.ts +34 -0
  42. package/lib/platform/VpcV2.js +59 -0
  43. package/lib/platform/index.d.ts +2 -0
  44. package/lib/platform/index.js +3 -1
  45. package/lib/utils/StackParameter.js +1 -1
  46. package/package.json +1 -1
package/API.md CHANGED
@@ -2409,6 +2409,169 @@ public readonly securityGroup: ISecurityGroup;
2409
2409
  ---
2410
2410
 
2411
2411
 
2412
+ ### EcsCluster <a name="EcsCluster" id="@btc-embedded/cdk-extensions.EcsCluster"></a>
2413
+
2414
+ - *Implements:* <a href="#@btc-embedded/cdk-extensions.IEcsCluster">IEcsCluster</a>
2415
+
2416
+ A CDK construct that creates and configures an Amazon ECS cluster with optional features.
2417
+
2418
+ This construct provides a standardized way to create ECS clusters with support for:
2419
+ - KMS encryption for ECS Exec command sessions
2420
+ - Fargate Spot capacity providers
2421
+ - Configurable capacity provider strategies with base and weight values
2422
+
2423
+ The cluster exports its name and VPC ID as stack parameters, allowing other stacks
2424
+ to import and reference the cluster using the `fromBasePlatform` static method.
2425
+
2426
+ #### Initializers <a name="Initializers" id="@btc-embedded/cdk-extensions.EcsCluster.Initializer"></a>
2427
+
2428
+ ```typescript
2429
+ import { EcsCluster } from '@btc-embedded/cdk-extensions'
2430
+
2431
+ new EcsCluster(scope: Construct, id: string, props: EcsClusterProps)
2432
+ ```
2433
+
2434
+ | **Name** | **Type** | **Description** |
2435
+ | --- | --- | --- |
2436
+ | <code><a href="#@btc-embedded/cdk-extensions.EcsCluster.Initializer.parameter.scope">scope</a></code> | <code>constructs.Construct</code> | *No description.* |
2437
+ | <code><a href="#@btc-embedded/cdk-extensions.EcsCluster.Initializer.parameter.id">id</a></code> | <code>string</code> | *No description.* |
2438
+ | <code><a href="#@btc-embedded/cdk-extensions.EcsCluster.Initializer.parameter.props">props</a></code> | <code><a href="#@btc-embedded/cdk-extensions.EcsClusterProps">EcsClusterProps</a></code> | *No description.* |
2439
+
2440
+ ---
2441
+
2442
+ ##### `scope`<sup>Required</sup> <a name="scope" id="@btc-embedded/cdk-extensions.EcsCluster.Initializer.parameter.scope"></a>
2443
+
2444
+ - *Type:* constructs.Construct
2445
+
2446
+ ---
2447
+
2448
+ ##### `id`<sup>Required</sup> <a name="id" id="@btc-embedded/cdk-extensions.EcsCluster.Initializer.parameter.id"></a>
2449
+
2450
+ - *Type:* string
2451
+
2452
+ ---
2453
+
2454
+ ##### `props`<sup>Required</sup> <a name="props" id="@btc-embedded/cdk-extensions.EcsCluster.Initializer.parameter.props"></a>
2455
+
2456
+ - *Type:* <a href="#@btc-embedded/cdk-extensions.EcsClusterProps">EcsClusterProps</a>
2457
+
2458
+ ---
2459
+
2460
+ #### Methods <a name="Methods" id="Methods"></a>
2461
+
2462
+ | **Name** | **Description** |
2463
+ | --- | --- |
2464
+ | <code><a href="#@btc-embedded/cdk-extensions.EcsCluster.toString">toString</a></code> | Returns a string representation of this construct. |
2465
+
2466
+ ---
2467
+
2468
+ ##### `toString` <a name="toString" id="@btc-embedded/cdk-extensions.EcsCluster.toString"></a>
2469
+
2470
+ ```typescript
2471
+ public toString(): string
2472
+ ```
2473
+
2474
+ Returns a string representation of this construct.
2475
+
2476
+ #### Static Functions <a name="Static Functions" id="Static Functions"></a>
2477
+
2478
+ | **Name** | **Description** |
2479
+ | --- | --- |
2480
+ | <code><a href="#@btc-embedded/cdk-extensions.EcsCluster.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |
2481
+ | <code><a href="#@btc-embedded/cdk-extensions.EcsCluster.fromBasePlatform">fromBasePlatform</a></code> | *No description.* |
2482
+
2483
+ ---
2484
+
2485
+ ##### `isConstruct` <a name="isConstruct" id="@btc-embedded/cdk-extensions.EcsCluster.isConstruct"></a>
2486
+
2487
+ ```typescript
2488
+ import { EcsCluster } from '@btc-embedded/cdk-extensions'
2489
+
2490
+ EcsCluster.isConstruct(x: any)
2491
+ ```
2492
+
2493
+ Checks if `x` is a construct.
2494
+
2495
+ Use this method instead of `instanceof` to properly detect `Construct`
2496
+ instances, even when the construct library is symlinked.
2497
+
2498
+ Explanation: in JavaScript, multiple copies of the `constructs` library on
2499
+ disk are seen as independent, completely different libraries. As a
2500
+ consequence, the class `Construct` in each copy of the `constructs` library
2501
+ is seen as a different class, and an instance of one class will not test as
2502
+ `instanceof` the other class. `npm install` will not create installations
2503
+ like this, but users may manually symlink construct libraries together or
2504
+ use a monorepo tool: in those cases, multiple copies of the `constructs`
2505
+ library can be accidentally installed, and `instanceof` will behave
2506
+ unpredictably. It is safest to avoid using `instanceof`, and using
2507
+ this type-testing method instead.
2508
+
2509
+ ###### `x`<sup>Required</sup> <a name="x" id="@btc-embedded/cdk-extensions.EcsCluster.isConstruct.parameter.x"></a>
2510
+
2511
+ - *Type:* any
2512
+
2513
+ Any object.
2514
+
2515
+ ---
2516
+
2517
+ ##### `fromBasePlatform` <a name="fromBasePlatform" id="@btc-embedded/cdk-extensions.EcsCluster.fromBasePlatform"></a>
2518
+
2519
+ ```typescript
2520
+ import { EcsCluster } from '@btc-embedded/cdk-extensions'
2521
+
2522
+ EcsCluster.fromBasePlatform(scope: Construct, id: string, stackName: string)
2523
+ ```
2524
+
2525
+ ###### `scope`<sup>Required</sup> <a name="scope" id="@btc-embedded/cdk-extensions.EcsCluster.fromBasePlatform.parameter.scope"></a>
2526
+
2527
+ - *Type:* constructs.Construct
2528
+
2529
+ ---
2530
+
2531
+ ###### `id`<sup>Required</sup> <a name="id" id="@btc-embedded/cdk-extensions.EcsCluster.fromBasePlatform.parameter.id"></a>
2532
+
2533
+ - *Type:* string
2534
+
2535
+ ---
2536
+
2537
+ ###### `stackName`<sup>Required</sup> <a name="stackName" id="@btc-embedded/cdk-extensions.EcsCluster.fromBasePlatform.parameter.stackName"></a>
2538
+
2539
+ - *Type:* string
2540
+
2541
+ ---
2542
+
2543
+ #### Properties <a name="Properties" id="Properties"></a>
2544
+
2545
+ | **Name** | **Type** | **Description** |
2546
+ | --- | --- | --- |
2547
+ | <code><a href="#@btc-embedded/cdk-extensions.EcsCluster.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
2548
+ | <code><a href="#@btc-embedded/cdk-extensions.EcsCluster.property.cluster">cluster</a></code> | <code>aws-cdk-lib.aws_ecs.ICluster</code> | *No description.* |
2549
+
2550
+ ---
2551
+
2552
+ ##### `node`<sup>Required</sup> <a name="node" id="@btc-embedded/cdk-extensions.EcsCluster.property.node"></a>
2553
+
2554
+ ```typescript
2555
+ public readonly node: Node;
2556
+ ```
2557
+
2558
+ - *Type:* constructs.Node
2559
+
2560
+ The tree node.
2561
+
2562
+ ---
2563
+
2564
+ ##### `cluster`<sup>Required</sup> <a name="cluster" id="@btc-embedded/cdk-extensions.EcsCluster.property.cluster"></a>
2565
+
2566
+ ```typescript
2567
+ public readonly cluster: ICluster;
2568
+ ```
2569
+
2570
+ - *Type:* aws-cdk-lib.aws_ecs.ICluster
2571
+
2572
+ ---
2573
+
2574
+
2412
2575
  ### EfsFileSystem <a name="EfsFileSystem" id="@btc-embedded/cdk-extensions.EfsFileSystem"></a>
2413
2576
 
2414
2577
  - *Implements:* <a href="#@btc-embedded/cdk-extensions.IEfsFileSystem">IEfsFileSystem</a>
@@ -4522,7 +4685,7 @@ dedicated VPC, with max 2 AZS and NO Key for Exec
4522
4685
 
4523
4686
  ---
4524
4687
 
4525
- ##### `toString` <a name="toString" id="@btc-embedded/cdk-extensions.Vpc.toString"></a>
4688
+ ##### ~~`toString`~~ <a name="toString" id="@btc-embedded/cdk-extensions.Vpc.toString"></a>
4526
4689
 
4527
4690
  ```typescript
4528
4691
  public toString(): string
@@ -4539,7 +4702,7 @@ Returns a string representation of this construct.
4539
4702
 
4540
4703
  ---
4541
4704
 
4542
- ##### `isConstruct` <a name="isConstruct" id="@btc-embedded/cdk-extensions.Vpc.isConstruct"></a>
4705
+ ##### ~~`isConstruct`~~ <a name="isConstruct" id="@btc-embedded/cdk-extensions.Vpc.isConstruct"></a>
4543
4706
 
4544
4707
  ```typescript
4545
4708
  import { Vpc } from '@btc-embedded/cdk-extensions'
@@ -4571,7 +4734,7 @@ Any object.
4571
4734
 
4572
4735
  ---
4573
4736
 
4574
- ##### `fromBasePlatform` <a name="fromBasePlatform" id="@btc-embedded/cdk-extensions.Vpc.fromBasePlatform"></a>
4737
+ ##### ~~`fromBasePlatform`~~ <a name="fromBasePlatform" id="@btc-embedded/cdk-extensions.Vpc.fromBasePlatform"></a>
4575
4738
 
4576
4739
  ```typescript
4577
4740
  import { Vpc } from '@btc-embedded/cdk-extensions'
@@ -4609,7 +4772,9 @@ Vpc.fromBasePlatform(scope: Construct, id: string, stackName: string)
4609
4772
 
4610
4773
  ---
4611
4774
 
4612
- ##### `node`<sup>Required</sup> <a name="node" id="@btc-embedded/cdk-extensions.Vpc.property.node"></a>
4775
+ ##### ~~`node`~~<sup>Required</sup> <a name="node" id="@btc-embedded/cdk-extensions.Vpc.property.node"></a>
4776
+
4777
+ - *Deprecated:* This class is deprecated. Use {@link VpcV2 } and {@link EcsCluster } classes instead.
4613
4778
 
4614
4779
  ```typescript
4615
4780
  public readonly node: Node;
@@ -4621,7 +4786,9 @@ The tree node.
4621
4786
 
4622
4787
  ---
4623
4788
 
4624
- ##### `clusterName`<sup>Required</sup> <a name="clusterName" id="@btc-embedded/cdk-extensions.Vpc.property.clusterName"></a>
4789
+ ##### ~~`clusterName`~~<sup>Required</sup> <a name="clusterName" id="@btc-embedded/cdk-extensions.Vpc.property.clusterName"></a>
4790
+
4791
+ - *Deprecated:* This class is deprecated. Use {@link VpcV2 } and {@link EcsCluster } classes instead.
4625
4792
 
4626
4793
  ```typescript
4627
4794
  public readonly clusterName: string;
@@ -4631,7 +4798,9 @@ public readonly clusterName: string;
4631
4798
 
4632
4799
  ---
4633
4800
 
4634
- ##### `fqdn`<sup>Required</sup> <a name="fqdn" id="@btc-embedded/cdk-extensions.Vpc.property.fqdn"></a>
4801
+ ##### ~~`fqdn`~~<sup>Required</sup> <a name="fqdn" id="@btc-embedded/cdk-extensions.Vpc.property.fqdn"></a>
4802
+
4803
+ - *Deprecated:* This class is deprecated. Use {@link VpcV2 } and {@link EcsCluster } classes instead.
4635
4804
 
4636
4805
  ```typescript
4637
4806
  public readonly fqdn: string;
@@ -4641,7 +4810,9 @@ public readonly fqdn: string;
4641
4810
 
4642
4811
  ---
4643
4812
 
4644
- ##### `cluster`<sup>Required</sup> <a name="cluster" id="@btc-embedded/cdk-extensions.Vpc.property.cluster"></a>
4813
+ ##### ~~`cluster`~~<sup>Required</sup> <a name="cluster" id="@btc-embedded/cdk-extensions.Vpc.property.cluster"></a>
4814
+
4815
+ - *Deprecated:* This class is deprecated. Use {@link VpcV2 } and {@link EcsCluster } classes instead.
4645
4816
 
4646
4817
  ```typescript
4647
4818
  public readonly cluster: Cluster;
@@ -4651,7 +4822,166 @@ public readonly cluster: Cluster;
4651
4822
 
4652
4823
  ---
4653
4824
 
4654
- ##### `vpcInstance`<sup>Required</sup> <a name="vpcInstance" id="@btc-embedded/cdk-extensions.Vpc.property.vpcInstance"></a>
4825
+ ##### ~~`vpcInstance`~~<sup>Required</sup> <a name="vpcInstance" id="@btc-embedded/cdk-extensions.Vpc.property.vpcInstance"></a>
4826
+
4827
+ - *Deprecated:* This class is deprecated. Use {@link VpcV2 } and {@link EcsCluster } classes instead.
4828
+
4829
+ ```typescript
4830
+ public readonly vpcInstance: IVpc;
4831
+ ```
4832
+
4833
+ - *Type:* aws-cdk-lib.aws_ec2.IVpc
4834
+
4835
+ ---
4836
+
4837
+
4838
+ ### VpcV2 <a name="VpcV2" id="@btc-embedded/cdk-extensions.VpcV2"></a>
4839
+
4840
+ - *Implements:* <a href="#@btc-embedded/cdk-extensions.IVpcV2">IVpcV2</a>
4841
+
4842
+ A construct that creates or imports an existing VPC.
4843
+
4844
+ Supports importing by VPC ID, VPC name, or creating a new VPC with a specified CIDR block.
4845
+
4846
+ #### Initializers <a name="Initializers" id="@btc-embedded/cdk-extensions.VpcV2.Initializer"></a>
4847
+
4848
+ ```typescript
4849
+ import { VpcV2 } from '@btc-embedded/cdk-extensions'
4850
+
4851
+ new VpcV2(scope: Construct, id: string, props: VpcV2Props)
4852
+ ```
4853
+
4854
+ | **Name** | **Type** | **Description** |
4855
+ | --- | --- | --- |
4856
+ | <code><a href="#@btc-embedded/cdk-extensions.VpcV2.Initializer.parameter.scope">scope</a></code> | <code>constructs.Construct</code> | *No description.* |
4857
+ | <code><a href="#@btc-embedded/cdk-extensions.VpcV2.Initializer.parameter.id">id</a></code> | <code>string</code> | *No description.* |
4858
+ | <code><a href="#@btc-embedded/cdk-extensions.VpcV2.Initializer.parameter.props">props</a></code> | <code><a href="#@btc-embedded/cdk-extensions.VpcV2Props">VpcV2Props</a></code> | *No description.* |
4859
+
4860
+ ---
4861
+
4862
+ ##### `scope`<sup>Required</sup> <a name="scope" id="@btc-embedded/cdk-extensions.VpcV2.Initializer.parameter.scope"></a>
4863
+
4864
+ - *Type:* constructs.Construct
4865
+
4866
+ ---
4867
+
4868
+ ##### `id`<sup>Required</sup> <a name="id" id="@btc-embedded/cdk-extensions.VpcV2.Initializer.parameter.id"></a>
4869
+
4870
+ - *Type:* string
4871
+
4872
+ ---
4873
+
4874
+ ##### `props`<sup>Required</sup> <a name="props" id="@btc-embedded/cdk-extensions.VpcV2.Initializer.parameter.props"></a>
4875
+
4876
+ - *Type:* <a href="#@btc-embedded/cdk-extensions.VpcV2Props">VpcV2Props</a>
4877
+
4878
+ ---
4879
+
4880
+ #### Methods <a name="Methods" id="Methods"></a>
4881
+
4882
+ | **Name** | **Description** |
4883
+ | --- | --- |
4884
+ | <code><a href="#@btc-embedded/cdk-extensions.VpcV2.toString">toString</a></code> | Returns a string representation of this construct. |
4885
+
4886
+ ---
4887
+
4888
+ ##### `toString` <a name="toString" id="@btc-embedded/cdk-extensions.VpcV2.toString"></a>
4889
+
4890
+ ```typescript
4891
+ public toString(): string
4892
+ ```
4893
+
4894
+ Returns a string representation of this construct.
4895
+
4896
+ #### Static Functions <a name="Static Functions" id="Static Functions"></a>
4897
+
4898
+ | **Name** | **Description** |
4899
+ | --- | --- |
4900
+ | <code><a href="#@btc-embedded/cdk-extensions.VpcV2.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |
4901
+ | <code><a href="#@btc-embedded/cdk-extensions.VpcV2.fromBasePlatform">fromBasePlatform</a></code> | *No description.* |
4902
+
4903
+ ---
4904
+
4905
+ ##### `isConstruct` <a name="isConstruct" id="@btc-embedded/cdk-extensions.VpcV2.isConstruct"></a>
4906
+
4907
+ ```typescript
4908
+ import { VpcV2 } from '@btc-embedded/cdk-extensions'
4909
+
4910
+ VpcV2.isConstruct(x: any)
4911
+ ```
4912
+
4913
+ Checks if `x` is a construct.
4914
+
4915
+ Use this method instead of `instanceof` to properly detect `Construct`
4916
+ instances, even when the construct library is symlinked.
4917
+
4918
+ Explanation: in JavaScript, multiple copies of the `constructs` library on
4919
+ disk are seen as independent, completely different libraries. As a
4920
+ consequence, the class `Construct` in each copy of the `constructs` library
4921
+ is seen as a different class, and an instance of one class will not test as
4922
+ `instanceof` the other class. `npm install` will not create installations
4923
+ like this, but users may manually symlink construct libraries together or
4924
+ use a monorepo tool: in those cases, multiple copies of the `constructs`
4925
+ library can be accidentally installed, and `instanceof` will behave
4926
+ unpredictably. It is safest to avoid using `instanceof`, and using
4927
+ this type-testing method instead.
4928
+
4929
+ ###### `x`<sup>Required</sup> <a name="x" id="@btc-embedded/cdk-extensions.VpcV2.isConstruct.parameter.x"></a>
4930
+
4931
+ - *Type:* any
4932
+
4933
+ Any object.
4934
+
4935
+ ---
4936
+
4937
+ ##### `fromBasePlatform` <a name="fromBasePlatform" id="@btc-embedded/cdk-extensions.VpcV2.fromBasePlatform"></a>
4938
+
4939
+ ```typescript
4940
+ import { VpcV2 } from '@btc-embedded/cdk-extensions'
4941
+
4942
+ VpcV2.fromBasePlatform(scope: Construct, id: string, stackName: string)
4943
+ ```
4944
+
4945
+ ###### `scope`<sup>Required</sup> <a name="scope" id="@btc-embedded/cdk-extensions.VpcV2.fromBasePlatform.parameter.scope"></a>
4946
+
4947
+ - *Type:* constructs.Construct
4948
+
4949
+ ---
4950
+
4951
+ ###### `id`<sup>Required</sup> <a name="id" id="@btc-embedded/cdk-extensions.VpcV2.fromBasePlatform.parameter.id"></a>
4952
+
4953
+ - *Type:* string
4954
+
4955
+ ---
4956
+
4957
+ ###### `stackName`<sup>Required</sup> <a name="stackName" id="@btc-embedded/cdk-extensions.VpcV2.fromBasePlatform.parameter.stackName"></a>
4958
+
4959
+ - *Type:* string
4960
+
4961
+ ---
4962
+
4963
+ #### Properties <a name="Properties" id="Properties"></a>
4964
+
4965
+ | **Name** | **Type** | **Description** |
4966
+ | --- | --- | --- |
4967
+ | <code><a href="#@btc-embedded/cdk-extensions.VpcV2.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
4968
+ | <code><a href="#@btc-embedded/cdk-extensions.VpcV2.property.vpcInstance">vpcInstance</a></code> | <code>aws-cdk-lib.aws_ec2.IVpc</code> | *No description.* |
4969
+
4970
+ ---
4971
+
4972
+ ##### `node`<sup>Required</sup> <a name="node" id="@btc-embedded/cdk-extensions.VpcV2.property.node"></a>
4973
+
4974
+ ```typescript
4975
+ public readonly node: Node;
4976
+ ```
4977
+
4978
+ - *Type:* constructs.Node
4979
+
4980
+ The tree node.
4981
+
4982
+ ---
4983
+
4984
+ ##### `vpcInstance`<sup>Required</sup> <a name="vpcInstance" id="@btc-embedded/cdk-extensions.VpcV2.property.vpcInstance"></a>
4655
4985
 
4656
4986
  ```typescript
4657
4987
  public readonly vpcInstance: IVpc;
@@ -7189,6 +7519,88 @@ public readonly vpc: IVpc;
7189
7519
 
7190
7520
  ---
7191
7521
 
7522
+ ### EcsClusterProps <a name="EcsClusterProps" id="@btc-embedded/cdk-extensions.EcsClusterProps"></a>
7523
+
7524
+ #### Initializer <a name="Initializer" id="@btc-embedded/cdk-extensions.EcsClusterProps.Initializer"></a>
7525
+
7526
+ ```typescript
7527
+ import { EcsClusterProps } from '@btc-embedded/cdk-extensions'
7528
+
7529
+ const ecsClusterProps: EcsClusterProps = { ... }
7530
+ ```
7531
+
7532
+ #### Properties <a name="Properties" id="Properties"></a>
7533
+
7534
+ | **Name** | **Type** | **Description** |
7535
+ | --- | --- | --- |
7536
+ | <code><a href="#@btc-embedded/cdk-extensions.EcsClusterProps.property.vpc">vpc</a></code> | <code>aws-cdk-lib.aws_ec2.IVpc</code> | The VPC in which to create the ECS cluster. |
7537
+ | <code><a href="#@btc-embedded/cdk-extensions.EcsClusterProps.property.capacityProvidersBase">capacityProvidersBase</a></code> | <code>number</code> | The base value for the capacity provider strategy. |
7538
+ | <code><a href="#@btc-embedded/cdk-extensions.EcsClusterProps.property.capacityProvidersWeight">capacityProvidersWeight</a></code> | <code>number</code> | The weight value for the capacity provider strategy. |
7539
+ | <code><a href="#@btc-embedded/cdk-extensions.EcsClusterProps.property.createKmsExecCommandKey">createKmsExecCommandKey</a></code> | <code>boolean</code> | Whether to create a KMS key for execute command encryption. |
7540
+ | <code><a href="#@btc-embedded/cdk-extensions.EcsClusterProps.property.enableFargateSpotCapacityProvider">enableFargateSpotCapacityProvider</a></code> | <code>boolean</code> | Whether to enable Fargate Spot capacity provider. |
7541
+
7542
+ ---
7543
+
7544
+ ##### `vpc`<sup>Required</sup> <a name="vpc" id="@btc-embedded/cdk-extensions.EcsClusterProps.property.vpc"></a>
7545
+
7546
+ ```typescript
7547
+ public readonly vpc: IVpc;
7548
+ ```
7549
+
7550
+ - *Type:* aws-cdk-lib.aws_ec2.IVpc
7551
+
7552
+ The VPC in which to create the ECS cluster.
7553
+
7554
+ ---
7555
+
7556
+ ##### `capacityProvidersBase`<sup>Optional</sup> <a name="capacityProvidersBase" id="@btc-embedded/cdk-extensions.EcsClusterProps.property.capacityProvidersBase"></a>
7557
+
7558
+ ```typescript
7559
+ public readonly capacityProvidersBase: number;
7560
+ ```
7561
+
7562
+ - *Type:* number
7563
+
7564
+ The base value for the capacity provider strategy.
7565
+
7566
+ ---
7567
+
7568
+ ##### `capacityProvidersWeight`<sup>Optional</sup> <a name="capacityProvidersWeight" id="@btc-embedded/cdk-extensions.EcsClusterProps.property.capacityProvidersWeight"></a>
7569
+
7570
+ ```typescript
7571
+ public readonly capacityProvidersWeight: number;
7572
+ ```
7573
+
7574
+ - *Type:* number
7575
+
7576
+ The weight value for the capacity provider strategy.
7577
+
7578
+ ---
7579
+
7580
+ ##### `createKmsExecCommandKey`<sup>Optional</sup> <a name="createKmsExecCommandKey" id="@btc-embedded/cdk-extensions.EcsClusterProps.property.createKmsExecCommandKey"></a>
7581
+
7582
+ ```typescript
7583
+ public readonly createKmsExecCommandKey: boolean;
7584
+ ```
7585
+
7586
+ - *Type:* boolean
7587
+
7588
+ Whether to create a KMS key for execute command encryption.
7589
+
7590
+ ---
7591
+
7592
+ ##### `enableFargateSpotCapacityProvider`<sup>Optional</sup> <a name="enableFargateSpotCapacityProvider" id="@btc-embedded/cdk-extensions.EcsClusterProps.property.enableFargateSpotCapacityProvider"></a>
7593
+
7594
+ ```typescript
7595
+ public readonly enableFargateSpotCapacityProvider: boolean;
7596
+ ```
7597
+
7598
+ - *Type:* boolean
7599
+
7600
+ Whether to enable Fargate Spot capacity provider.
7601
+
7602
+ ---
7603
+
7192
7604
  ### EfsFileSystemLookupOptions <a name="EfsFileSystemLookupOptions" id="@btc-embedded/cdk-extensions.EfsFileSystemLookupOptions"></a>
7193
7605
 
7194
7606
  Lookup options for importing a filesystem from the base stack.
@@ -8797,6 +9209,84 @@ public readonly vpcCidr: IIpAddresses;
8797
9209
 
8798
9210
  ---
8799
9211
 
9212
+ ### VpcV2Props <a name="VpcV2Props" id="@btc-embedded/cdk-extensions.VpcV2Props"></a>
9213
+
9214
+ #### Initializer <a name="Initializer" id="@btc-embedded/cdk-extensions.VpcV2Props.Initializer"></a>
9215
+
9216
+ ```typescript
9217
+ import { VpcV2Props } from '@btc-embedded/cdk-extensions'
9218
+
9219
+ const vpcV2Props: VpcV2Props = { ... }
9220
+ ```
9221
+
9222
+ #### Properties <a name="Properties" id="Properties"></a>
9223
+
9224
+ | **Name** | **Type** | **Description** |
9225
+ | --- | --- | --- |
9226
+ | <code><a href="#@btc-embedded/cdk-extensions.VpcV2Props.property.maxAzs">maxAzs</a></code> | <code>number</code> | The maximum number of Availability Zones to use when creating a new VPC. |
9227
+ | <code><a href="#@btc-embedded/cdk-extensions.VpcV2Props.property.vpcCidr">vpcCidr</a></code> | <code>aws-cdk-lib.aws_ec2.IIpAddresses</code> | The IP address allocation strategy for creating a new VPC. |
9228
+ | <code><a href="#@btc-embedded/cdk-extensions.VpcV2Props.property.vpcId">vpcId</a></code> | <code>string</code> | The ID of an existing VPC to import. |
9229
+ | <code><a href="#@btc-embedded/cdk-extensions.VpcV2Props.property.vpcName">vpcName</a></code> | <code>string</code> | The name of the VPC. |
9230
+
9231
+ ---
9232
+
9233
+ ##### `maxAzs`<sup>Optional</sup> <a name="maxAzs" id="@btc-embedded/cdk-extensions.VpcV2Props.property.maxAzs"></a>
9234
+
9235
+ ```typescript
9236
+ public readonly maxAzs: number;
9237
+ ```
9238
+
9239
+ - *Type:* number
9240
+
9241
+ The maximum number of Availability Zones to use when creating a new VPC.
9242
+
9243
+ Defaults to 2.
9244
+
9245
+ ---
9246
+
9247
+ ##### `vpcCidr`<sup>Optional</sup> <a name="vpcCidr" id="@btc-embedded/cdk-extensions.VpcV2Props.property.vpcCidr"></a>
9248
+
9249
+ ```typescript
9250
+ public readonly vpcCidr: IIpAddresses;
9251
+ ```
9252
+
9253
+ - *Type:* aws-cdk-lib.aws_ec2.IIpAddresses
9254
+
9255
+ The IP address allocation strategy for creating a new VPC.
9256
+
9257
+ Required when creating a new VPC.
9258
+
9259
+ ---
9260
+
9261
+ ##### `vpcId`<sup>Optional</sup> <a name="vpcId" id="@btc-embedded/cdk-extensions.VpcV2Props.property.vpcId"></a>
9262
+
9263
+ ```typescript
9264
+ public readonly vpcId: string;
9265
+ ```
9266
+
9267
+ - *Type:* string
9268
+
9269
+ The ID of an existing VPC to import.
9270
+
9271
+ If provided, the VPC will be looked up by ID.
9272
+
9273
+ ---
9274
+
9275
+ ##### `vpcName`<sup>Optional</sup> <a name="vpcName" id="@btc-embedded/cdk-extensions.VpcV2Props.property.vpcName"></a>
9276
+
9277
+ ```typescript
9278
+ public readonly vpcName: string;
9279
+ ```
9280
+
9281
+ - *Type:* string
9282
+
9283
+ The name of the VPC.
9284
+
9285
+ If importing an existing VPC, it will be looked up by this name.
9286
+ If creating a new VPC, this will be used as the VPC name.
9287
+
9288
+ ---
9289
+
8800
9290
  ## Classes <a name="Classes" id="Classes"></a>
8801
9291
 
8802
9292
  ### ApiGatewayExtension <a name="ApiGatewayExtension" id="@btc-embedded/cdk-extensions.ApiGatewayExtension"></a>
@@ -13750,6 +14240,29 @@ public readonly securityGroup: ISecurityGroup;
13750
14240
 
13751
14241
  ---
13752
14242
 
14243
+ ### IEcsCluster <a name="IEcsCluster" id="@btc-embedded/cdk-extensions.IEcsCluster"></a>
14244
+
14245
+ - *Implemented By:* <a href="#@btc-embedded/cdk-extensions.EcsCluster">EcsCluster</a>, <a href="#@btc-embedded/cdk-extensions.IEcsCluster">IEcsCluster</a>
14246
+
14247
+
14248
+ #### Properties <a name="Properties" id="Properties"></a>
14249
+
14250
+ | **Name** | **Type** | **Description** |
14251
+ | --- | --- | --- |
14252
+ | <code><a href="#@btc-embedded/cdk-extensions.IEcsCluster.property.cluster">cluster</a></code> | <code>aws-cdk-lib.aws_ecs.ICluster</code> | *No description.* |
14253
+
14254
+ ---
14255
+
14256
+ ##### `cluster`<sup>Required</sup> <a name="cluster" id="@btc-embedded/cdk-extensions.IEcsCluster.property.cluster"></a>
14257
+
14258
+ ```typescript
14259
+ public readonly cluster: ICluster;
14260
+ ```
14261
+
14262
+ - *Type:* aws-cdk-lib.aws_ecs.ICluster
14263
+
14264
+ ---
14265
+
13753
14266
  ### IEfsFileSystem <a name="IEfsFileSystem" id="@btc-embedded/cdk-extensions.IEfsFileSystem"></a>
13754
14267
 
13755
14268
  - *Implemented By:* <a href="#@btc-embedded/cdk-extensions.EfsFileSystem">EfsFileSystem</a>, <a href="#@btc-embedded/cdk-extensions.IEfsFileSystem">IEfsFileSystem</a>
@@ -13881,6 +14394,29 @@ public readonly fqdn: string;
13881
14394
 
13882
14395
  ---
13883
14396
 
14397
+ ### IVpcV2 <a name="IVpcV2" id="@btc-embedded/cdk-extensions.IVpcV2"></a>
14398
+
14399
+ - *Implemented By:* <a href="#@btc-embedded/cdk-extensions.VpcV2">VpcV2</a>, <a href="#@btc-embedded/cdk-extensions.IVpcV2">IVpcV2</a>
14400
+
14401
+
14402
+ #### Properties <a name="Properties" id="Properties"></a>
14403
+
14404
+ | **Name** | **Type** | **Description** |
14405
+ | --- | --- | --- |
14406
+ | <code><a href="#@btc-embedded/cdk-extensions.IVpcV2.property.vpcInstance">vpcInstance</a></code> | <code>aws-cdk-lib.aws_ec2.IVpc</code> | *No description.* |
14407
+
14408
+ ---
14409
+
14410
+ ##### `vpcInstance`<sup>Required</sup> <a name="vpcInstance" id="@btc-embedded/cdk-extensions.IVpcV2.property.vpcInstance"></a>
14411
+
14412
+ ```typescript
14413
+ public readonly vpcInstance: IVpc;
14414
+ ```
14415
+
14416
+ - *Type:* aws-cdk-lib.aws_ec2.IVpc
14417
+
14418
+ ---
14419
+
13884
14420
  ## Enums <a name="Enums" id="Enums"></a>
13885
14421
 
13886
14422
  ### EfsAccessMode <a name="EfsAccessMode" id="@btc-embedded/cdk-extensions.EfsAccessMode"></a>
package/CHANGELOG.md CHANGED
@@ -1,4 +1,15 @@
1
1
 
2
+ ## [0.19.0](https://github.com/btc-embedded/cdk-extensions/compare/v0.18.1...v0.19.0) (2026-01-14)
3
+
4
+
5
+ ### ⚠ BREAKING CHANGES
6
+
7
+ * separate OIDC from ALB extension
8
+
9
+ ### Features
10
+
11
+ * separate OIDC from ALB extension ([c52b73a](https://github.com/btc-embedded/cdk-extensions/commit/c52b73a14637ff1b51afe64ba2147009af3f5c2b))
12
+
2
13
  ## [0.18.1](https://github.com/btc-embedded/cdk-extensions/compare/v0.18.0...v0.18.1) (2026-01-14)
3
14
 
4
15