@btc-embedded/cdk-extensions 0.14.11 → 0.14.13

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 (55) hide show
  1. package/.jsii +317 -39
  2. package/API.md +406 -10
  3. package/CHANGELOG.md +19 -0
  4. package/README.md +32 -1
  5. package/lib/constructs/EventPipe.js +1 -1
  6. package/lib/constructs/S3Bucket.js +1 -1
  7. package/lib/constructs/SecureRestApi.js +1 -1
  8. package/lib/constructs/SecureRestApiV2.js +1 -1
  9. package/lib/extensions/ApiGatewayExtension.js +1 -1
  10. package/lib/extensions/ApplicationLoadBalancerExtension.d.ts +3 -1
  11. package/lib/extensions/ApplicationLoadBalancerExtension.js +15 -11
  12. package/lib/extensions/ApplicationLoadBalancerExtensionV2.d.ts +1 -1
  13. package/lib/extensions/ApplicationLoadBalancerExtensionV2.js +6 -7
  14. package/lib/extensions/CloudMapExtension.js +1 -1
  15. package/lib/extensions/DeactivatableServiceExtension.js +1 -1
  16. package/lib/extensions/DocumentDbAccessExtension.d.ts +1 -1
  17. package/lib/extensions/DocumentDbAccessExtension.js +4 -5
  18. package/lib/extensions/DomainEventMessagingExtension.js +4 -4
  19. package/lib/extensions/EfsMountExtension.d.ts +52 -0
  20. package/lib/extensions/EfsMountExtension.js +83 -0
  21. package/lib/extensions/ExtraContainerExtension.js +1 -1
  22. package/lib/extensions/HTTPApiExtension.js +1 -1
  23. package/lib/extensions/LogExtension.d.ts +1 -1
  24. package/lib/extensions/LogExtension.js +4 -5
  25. package/lib/extensions/ModifyContainerDefinitionExtension.js +1 -1
  26. package/lib/extensions/ModifyTaskDefinitionExtension.js +1 -1
  27. package/lib/extensions/OpenTelemetryExtension.js +1 -1
  28. package/lib/extensions/PostgresDbAccessExtension.d.ts +1 -1
  29. package/lib/extensions/PostgresDbAccessExtension.js +7 -8
  30. package/lib/extensions/SharedVolumeExtension.js +1 -1
  31. package/lib/extensions/TcpKeepAliveExtension.js +1 -1
  32. package/lib/extensions/index.d.ts +2 -1
  33. package/lib/extensions/index.js +3 -2
  34. package/lib/platform/ApiGateway.js +1 -1
  35. package/lib/platform/ApiGatewayV2.js +2 -2
  36. package/lib/platform/ApplicationLoadBalancer.d.ts +2 -1
  37. package/lib/platform/ApplicationLoadBalancer.js +4 -4
  38. package/lib/platform/ApplicationLoadBalancerV2.js +2 -2
  39. package/lib/platform/BTCLogGroup.js +1 -1
  40. package/lib/platform/CognitoUserPool.js +2 -2
  41. package/lib/platform/DefaultUserPoolClients.js +1 -1
  42. package/lib/platform/DocumentDB.js +2 -2
  43. package/lib/platform/PrivateDnsNamespace.js +1 -1
  44. package/lib/platform/ResourceServer.js +1 -1
  45. package/lib/platform/Vpc.js +1 -1
  46. package/lib/utils/StackParameter.js +1 -1
  47. package/package.json +2 -2
  48. package/.backstage/catalog-info.yaml +0 -19
  49. package/.gitlab-ci.yml +0 -65
  50. package/docs/RFC001-api-gateway.md +0 -77
  51. package/docs/RFC002-developer-stacks.md +0 -268
  52. package/docs/RFC003-referencing-platform-components.md +0 -125
  53. package/docs/adrs/0001-use-adrs.md +0 -36
  54. package/docs/index.md +0 -20
  55. package/mkdocs.yml +0 -8
package/API.md CHANGED
@@ -587,6 +587,7 @@ Any object.
587
587
  | **Name** | **Type** | **Description** |
588
588
  | --- | --- | --- |
589
589
  | <code><a href="#@btc-embedded/cdk-extensions.ApplicationLoadBalancer.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
590
+ | <code><a href="#@btc-embedded/cdk-extensions.ApplicationLoadBalancer.property.listener">listener</a></code> | <code>aws-cdk-lib.aws_elasticloadbalancingv2.IApplicationListener</code> | *No description.* |
590
591
  | <code><a href="#@btc-embedded/cdk-extensions.ApplicationLoadBalancer.property.loadbalancer">loadbalancer</a></code> | <code>aws-cdk-lib.aws_elasticloadbalancingv2.ApplicationLoadBalancer</code> | *No description.* |
591
592
  | <code><a href="#@btc-embedded/cdk-extensions.ApplicationLoadBalancer.property.loadBalancer">loadBalancer</a></code> | <code>aws-cdk-lib.aws_elasticloadbalancingv2.IApplicationLoadBalancer</code> | *No description.* |
592
593
 
@@ -606,6 +607,18 @@ The tree node.
606
607
 
607
608
  ---
608
609
 
610
+ ##### ~~`listener`~~<sup>Required</sup> <a name="listener" id="@btc-embedded/cdk-extensions.ApplicationLoadBalancer.property.listener"></a>
611
+
612
+ - *Deprecated:* Use {@link ApplicationLoadBalancerV2 } instead
613
+
614
+ ```typescript
615
+ public readonly listener: IApplicationListener;
616
+ ```
617
+
618
+ - *Type:* aws-cdk-lib.aws_elasticloadbalancingv2.IApplicationListener
619
+
620
+ ---
621
+
609
622
  ##### ~~`loadbalancer`~~<sup>Required</sup> <a name="loadbalancer" id="@btc-embedded/cdk-extensions.ApplicationLoadBalancer.property.loadbalancer"></a>
610
623
 
611
624
  - *Deprecated:* Use {@link ApplicationLoadBalancerV2 } instead
@@ -4626,6 +4639,7 @@ const applicationLoadBalancerExtensionProps: ApplicationLoadBalancerExtensionPro
4626
4639
  | <code><a href="#@btc-embedded/cdk-extensions.ApplicationLoadBalancerExtensionProps.property.securityGroupId">securityGroupId</a></code> | <code>string</code> | *No description.* |
4627
4640
  | <code><a href="#@btc-embedded/cdk-extensions.ApplicationLoadBalancerExtensionProps.property.userPoolClientSecret">userPoolClientSecret</a></code> | <code>string</code> | *No description.* |
4628
4641
  | <code><a href="#@btc-embedded/cdk-extensions.ApplicationLoadBalancerExtensionProps.property.healtCheckPath">healtCheckPath</a></code> | <code>string</code> | *No description.* |
4642
+ | <code><a href="#@btc-embedded/cdk-extensions.ApplicationLoadBalancerExtensionProps.property.listener">listener</a></code> | <code>aws-cdk-lib.aws_elasticloadbalancingv2.IApplicationListener</code> | *No description.* |
4629
4643
  | <code><a href="#@btc-embedded/cdk-extensions.ApplicationLoadBalancerExtensionProps.property.path">path</a></code> | <code>string</code> | *No description.* |
4630
4644
 
4631
4645
  ---
@@ -4680,6 +4694,16 @@ public readonly healtCheckPath: string;
4680
4694
 
4681
4695
  ---
4682
4696
 
4697
+ ##### `listener`<sup>Optional</sup> <a name="listener" id="@btc-embedded/cdk-extensions.ApplicationLoadBalancerExtensionProps.property.listener"></a>
4698
+
4699
+ ```typescript
4700
+ public readonly listener: IApplicationListener;
4701
+ ```
4702
+
4703
+ - *Type:* aws-cdk-lib.aws_elasticloadbalancingv2.IApplicationListener
4704
+
4705
+ ---
4706
+
4683
4707
  ##### `path`<sup>Optional</sup> <a name="path" id="@btc-embedded/cdk-extensions.ApplicationLoadBalancerExtensionProps.property.path"></a>
4684
4708
 
4685
4709
  ```typescript
@@ -6853,6 +6877,64 @@ public readonly vpc: IVpc;
6853
6877
 
6854
6878
  ---
6855
6879
 
6880
+ ### EfsMountExtensionProperties <a name="EfsMountExtensionProperties" id="@btc-embedded/cdk-extensions.EfsMountExtensionProperties"></a>
6881
+
6882
+ EFS extension properties.
6883
+
6884
+ #### Initializer <a name="Initializer" id="@btc-embedded/cdk-extensions.EfsMountExtensionProperties.Initializer"></a>
6885
+
6886
+ ```typescript
6887
+ import { EfsMountExtensionProperties } from '@btc-embedded/cdk-extensions'
6888
+
6889
+ const efsMountExtensionProperties: EfsMountExtensionProperties = { ... }
6890
+ ```
6891
+
6892
+ #### Properties <a name="Properties" id="Properties"></a>
6893
+
6894
+ | **Name** | **Type** | **Description** |
6895
+ | --- | --- | --- |
6896
+ | <code><a href="#@btc-embedded/cdk-extensions.EfsMountExtensionProperties.property.accessMode">accessMode</a></code> | <code><a href="#@btc-embedded/cdk-extensions.EfsAccessMode">EfsAccessMode</a></code> | The access mode for the filesystem for this service. |
6897
+ | <code><a href="#@btc-embedded/cdk-extensions.EfsMountExtensionProperties.property.filesystem">filesystem</a></code> | <code>aws-cdk-lib.aws_efs.IFileSystem</code> | The filesystem to be mounted. |
6898
+ | <code><a href="#@btc-embedded/cdk-extensions.EfsMountExtensionProperties.property.path">path</a></code> | <code>string</code> | The path to mount the EFS to. |
6899
+
6900
+ ---
6901
+
6902
+ ##### `accessMode`<sup>Required</sup> <a name="accessMode" id="@btc-embedded/cdk-extensions.EfsMountExtensionProperties.property.accessMode"></a>
6903
+
6904
+ ```typescript
6905
+ public readonly accessMode: EfsAccessMode;
6906
+ ```
6907
+
6908
+ - *Type:* <a href="#@btc-embedded/cdk-extensions.EfsAccessMode">EfsAccessMode</a>
6909
+
6910
+ The access mode for the filesystem for this service.
6911
+
6912
+ ---
6913
+
6914
+ ##### `filesystem`<sup>Required</sup> <a name="filesystem" id="@btc-embedded/cdk-extensions.EfsMountExtensionProperties.property.filesystem"></a>
6915
+
6916
+ ```typescript
6917
+ public readonly filesystem: IFileSystem;
6918
+ ```
6919
+
6920
+ - *Type:* aws-cdk-lib.aws_efs.IFileSystem
6921
+
6922
+ The filesystem to be mounted.
6923
+
6924
+ ---
6925
+
6926
+ ##### `path`<sup>Required</sup> <a name="path" id="@btc-embedded/cdk-extensions.EfsMountExtensionProperties.property.path"></a>
6927
+
6928
+ ```typescript
6929
+ public readonly path: string;
6930
+ ```
6931
+
6932
+ - *Type:* string
6933
+
6934
+ The path to mount the EFS to.
6935
+
6936
+ ---
6937
+
6856
6938
  ### EnvironmentVariableNames <a name="EnvironmentVariableNames" id="@btc-embedded/cdk-extensions.EnvironmentVariableNames"></a>
6857
6939
 
6858
6940
  #### Initializer <a name="Initializer" id="@btc-embedded/cdk-extensions.EnvironmentVariableNames.Initializer"></a>
@@ -8635,7 +8717,7 @@ Properties of the task definition to be created.
8635
8717
  ##### ~~`prehook`~~ <a name="prehook" id="@btc-embedded/cdk-extensions.ApplicationLoadBalancerExtension.prehook"></a>
8636
8718
 
8637
8719
  ```typescript
8638
- public prehook(service: Service, scope: Construct): void
8720
+ public prehook(service: Service, _scope: Construct): void
8639
8721
  ```
8640
8722
 
8641
8723
  A hook that is called for each extension ahead of time to allow for any initial setup, such as creating resources in advance.
@@ -8646,7 +8728,7 @@ A hook that is called for each extension ahead of time to allow for any initial
8646
8728
 
8647
8729
  ---
8648
8730
 
8649
- ###### `scope`<sup>Required</sup> <a name="scope" id="@btc-embedded/cdk-extensions.ApplicationLoadBalancerExtension.prehook.parameter.scope"></a>
8731
+ ###### `_scope`<sup>Required</sup> <a name="_scope" id="@btc-embedded/cdk-extensions.ApplicationLoadBalancerExtension.prehook.parameter._scope"></a>
8650
8732
 
8651
8733
  - *Type:* constructs.Construct
8652
8734
 
@@ -8918,7 +9000,7 @@ Properties of the task definition to be created.
8918
9000
  ##### `prehook` <a name="prehook" id="@btc-embedded/cdk-extensions.ApplicationLoadBalancerExtensionV2.prehook"></a>
8919
9001
 
8920
9002
  ```typescript
8921
- public prehook(service: Service, scope: Construct): void
9003
+ public prehook(service: Service, _scope: Construct): void
8922
9004
  ```
8923
9005
 
8924
9006
  A hook that is called for each extension ahead of time to allow for any initial setup, such as creating resources in advance.
@@ -8929,7 +9011,7 @@ A hook that is called for each extension ahead of time to allow for any initial
8929
9011
 
8930
9012
  ---
8931
9013
 
8932
- ###### `scope`<sup>Required</sup> <a name="scope" id="@btc-embedded/cdk-extensions.ApplicationLoadBalancerExtensionV2.prehook.parameter.scope"></a>
9014
+ ###### `_scope`<sup>Required</sup> <a name="_scope" id="@btc-embedded/cdk-extensions.ApplicationLoadBalancerExtensionV2.prehook.parameter._scope"></a>
8933
9015
 
8934
9016
  - *Type:* constructs.Construct
8935
9017
 
@@ -9658,7 +9740,7 @@ Properties of the task definition to be created.
9658
9740
  ##### `prehook` <a name="prehook" id="@btc-embedded/cdk-extensions.DocumentDbAccessExtension.prehook"></a>
9659
9741
 
9660
9742
  ```typescript
9661
- public prehook(parent: Service, scope: Construct): void
9743
+ public prehook(parent: Service, _scope: Construct): void
9662
9744
  ```
9663
9745
 
9664
9746
  A hook that is called for each extension ahead of time to allow for any initial setup, such as creating resources in advance.
@@ -9669,7 +9751,7 @@ A hook that is called for each extension ahead of time to allow for any initial
9669
9751
 
9670
9752
  ---
9671
9753
 
9672
- ###### `scope`<sup>Required</sup> <a name="scope" id="@btc-embedded/cdk-extensions.DocumentDbAccessExtension.prehook.parameter.scope"></a>
9754
+ ###### `_scope`<sup>Required</sup> <a name="_scope" id="@btc-embedded/cdk-extensions.DocumentDbAccessExtension.prehook.parameter._scope"></a>
9673
9755
 
9674
9756
  - *Type:* constructs.Construct
9675
9757
 
@@ -10097,6 +10179,285 @@ public readonly queueExtension: QueueExtension;
10097
10179
  ---
10098
10180
 
10099
10181
 
10182
+ ### EfsMountExtension <a name="EfsMountExtension" id="@btc-embedded/cdk-extensions.EfsMountExtension"></a>
10183
+
10184
+ Extension that allows to mount an EFS to a given mount point.
10185
+
10186
+ Multiple extensions instances can be used, when different mount points are specified.
10187
+
10188
+ #### Initializers <a name="Initializers" id="@btc-embedded/cdk-extensions.EfsMountExtension.Initializer"></a>
10189
+
10190
+ ```typescript
10191
+ import { EfsMountExtension } from '@btc-embedded/cdk-extensions'
10192
+
10193
+ new EfsMountExtension(props: EfsMountExtensionProperties)
10194
+ ```
10195
+
10196
+ | **Name** | **Type** | **Description** |
10197
+ | --- | --- | --- |
10198
+ | <code><a href="#@btc-embedded/cdk-extensions.EfsMountExtension.Initializer.parameter.props">props</a></code> | <code><a href="#@btc-embedded/cdk-extensions.EfsMountExtensionProperties">EfsMountExtensionProperties</a></code> | *No description.* |
10199
+
10200
+ ---
10201
+
10202
+ ##### `props`<sup>Required</sup> <a name="props" id="@btc-embedded/cdk-extensions.EfsMountExtension.Initializer.parameter.props"></a>
10203
+
10204
+ - *Type:* <a href="#@btc-embedded/cdk-extensions.EfsMountExtensionProperties">EfsMountExtensionProperties</a>
10205
+
10206
+ ---
10207
+
10208
+ #### Methods <a name="Methods" id="Methods"></a>
10209
+
10210
+ | **Name** | **Description** |
10211
+ | --- | --- |
10212
+ | <code><a href="#@btc-embedded/cdk-extensions.EfsMountExtension.addContainerMutatingHook">addContainerMutatingHook</a></code> | This hook allows another service extension to register a mutating hook for changing the primary container of this extension. |
10213
+ | <code><a href="#@btc-embedded/cdk-extensions.EfsMountExtension.addHooks">addHooks</a></code> | A hook that allows the extension to add hooks to other extensions that are registered. |
10214
+ | <code><a href="#@btc-embedded/cdk-extensions.EfsMountExtension.connectToService">connectToService</a></code> | This hook allows the extension to establish a connection to extensions from another service. |
10215
+ | <code><a href="#@btc-embedded/cdk-extensions.EfsMountExtension.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. |
10216
+ | <code><a href="#@btc-embedded/cdk-extensions.EfsMountExtension.modifyTaskDefinitionProps">modifyTaskDefinitionProps</a></code> | This is a hook which allows extensions to modify the settings of the task definition prior to it being created. |
10217
+ | <code><a href="#@btc-embedded/cdk-extensions.EfsMountExtension.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. |
10218
+ | <code><a href="#@btc-embedded/cdk-extensions.EfsMountExtension.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. |
10219
+ | <code><a href="#@btc-embedded/cdk-extensions.EfsMountExtension.useService">useService</a></code> | When this hook is implemented by extension, it allows the extension to use the service which has been created. |
10220
+ | <code><a href="#@btc-embedded/cdk-extensions.EfsMountExtension.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. |
10221
+
10222
+ ---
10223
+
10224
+ ##### `addContainerMutatingHook` <a name="addContainerMutatingHook" id="@btc-embedded/cdk-extensions.EfsMountExtension.addContainerMutatingHook"></a>
10225
+
10226
+ ```typescript
10227
+ public addContainerMutatingHook(hook: ContainerMutatingHook): void
10228
+ ```
10229
+
10230
+ This hook allows another service extension to register a mutating hook for changing the primary container of this extension.
10231
+
10232
+ This is primarily used
10233
+ for the application extension. For example, the Firelens extension wants to
10234
+ be able to modify the settings of the application container to
10235
+ route logs through Firelens.
10236
+
10237
+ ###### `hook`<sup>Required</sup> <a name="hook" id="@btc-embedded/cdk-extensions.EfsMountExtension.addContainerMutatingHook.parameter.hook"></a>
10238
+
10239
+ - *Type:* @aws-cdk-containers/ecs-service-extensions.ContainerMutatingHook
10240
+
10241
+ ---
10242
+
10243
+ ##### `addHooks` <a name="addHooks" id="@btc-embedded/cdk-extensions.EfsMountExtension.addHooks"></a>
10244
+
10245
+ ```typescript
10246
+ public addHooks(): void
10247
+ ```
10248
+
10249
+ A hook that allows the extension to add hooks to other extensions that are registered.
10250
+
10251
+ ##### `connectToService` <a name="connectToService" id="@btc-embedded/cdk-extensions.EfsMountExtension.connectToService"></a>
10252
+
10253
+ ```typescript
10254
+ public connectToService(service: Service, connectToProps?: ConnectToProps): void
10255
+ ```
10256
+
10257
+ This hook allows the extension to establish a connection to extensions from another service.
10258
+
10259
+ Usually used for things like
10260
+ allowing one service to talk to the load balancer or service mesh
10261
+ proxy for another service.
10262
+
10263
+ ###### `service`<sup>Required</sup> <a name="service" id="@btc-embedded/cdk-extensions.EfsMountExtension.connectToService.parameter.service"></a>
10264
+
10265
+ - *Type:* @aws-cdk-containers/ecs-service-extensions.Service
10266
+
10267
+ The other service to connect to.
10268
+
10269
+ ---
10270
+
10271
+ ###### `connectToProps`<sup>Optional</sup> <a name="connectToProps" id="@btc-embedded/cdk-extensions.EfsMountExtension.connectToService.parameter.connectToProps"></a>
10272
+
10273
+ - *Type:* @aws-cdk-containers/ecs-service-extensions.ConnectToProps
10274
+
10275
+ ---
10276
+
10277
+ ##### `modifyServiceProps` <a name="modifyServiceProps" id="@btc-embedded/cdk-extensions.EfsMountExtension.modifyServiceProps"></a>
10278
+
10279
+ ```typescript
10280
+ public modifyServiceProps(props: ServiceBuild): ServiceBuild
10281
+ ```
10282
+
10283
+ 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.
10284
+
10285
+ ###### `props`<sup>Required</sup> <a name="props" id="@btc-embedded/cdk-extensions.EfsMountExtension.modifyServiceProps.parameter.props"></a>
10286
+
10287
+ - *Type:* @aws-cdk-containers/ecs-service-extensions.ServiceBuild
10288
+
10289
+ The service properties to mutate.
10290
+
10291
+ ---
10292
+
10293
+ ##### `modifyTaskDefinitionProps` <a name="modifyTaskDefinitionProps" id="@btc-embedded/cdk-extensions.EfsMountExtension.modifyTaskDefinitionProps"></a>
10294
+
10295
+ ```typescript
10296
+ public modifyTaskDefinitionProps(props: TaskDefinitionProps): TaskDefinitionProps
10297
+ ```
10298
+
10299
+ This is a hook which allows extensions to modify the settings of the task definition prior to it being created.
10300
+
10301
+ For example, the App Mesh
10302
+ extension needs to configure an Envoy proxy in the task definition,
10303
+ or the Application extension wants to set the overall resource for
10304
+ the task.
10305
+
10306
+ ###### `props`<sup>Required</sup> <a name="props" id="@btc-embedded/cdk-extensions.EfsMountExtension.modifyTaskDefinitionProps.parameter.props"></a>
10307
+
10308
+ - *Type:* aws-cdk-lib.aws_ecs.TaskDefinitionProps
10309
+
10310
+ Properties of the task definition to be created.
10311
+
10312
+ ---
10313
+
10314
+ ##### `prehook` <a name="prehook" id="@btc-embedded/cdk-extensions.EfsMountExtension.prehook"></a>
10315
+
10316
+ ```typescript
10317
+ public prehook(parent: Service, scope: Construct): void
10318
+ ```
10319
+
10320
+ A hook that is called for each extension ahead of time to allow for any initial setup, such as creating resources in advance.
10321
+
10322
+ ###### `parent`<sup>Required</sup> <a name="parent" id="@btc-embedded/cdk-extensions.EfsMountExtension.prehook.parameter.parent"></a>
10323
+
10324
+ - *Type:* @aws-cdk-containers/ecs-service-extensions.Service
10325
+
10326
+ The parent service which this extension has been added to.
10327
+
10328
+ ---
10329
+
10330
+ ###### `scope`<sup>Required</sup> <a name="scope" id="@btc-embedded/cdk-extensions.EfsMountExtension.prehook.parameter.scope"></a>
10331
+
10332
+ - *Type:* constructs.Construct
10333
+
10334
+ The scope that this extension should create resources in.
10335
+
10336
+ ---
10337
+
10338
+ ##### `resolveContainerDependencies` <a name="resolveContainerDependencies" id="@btc-embedded/cdk-extensions.EfsMountExtension.resolveContainerDependencies"></a>
10339
+
10340
+ ```typescript
10341
+ public resolveContainerDependencies(): void
10342
+ ```
10343
+
10344
+ 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.
10345
+
10346
+ ##### `useService` <a name="useService" id="@btc-embedded/cdk-extensions.EfsMountExtension.useService"></a>
10347
+
10348
+ ```typescript
10349
+ public useService(service: Ec2Service | FargateService): void
10350
+ ```
10351
+
10352
+ When this hook is implemented by extension, it allows the extension to use the service which has been created.
10353
+
10354
+ It is generally used to
10355
+ create any final resources which might depend on the service itself.
10356
+
10357
+ ###### `service`<sup>Required</sup> <a name="service" id="@btc-embedded/cdk-extensions.EfsMountExtension.useService.parameter.service"></a>
10358
+
10359
+ - *Type:* aws-cdk-lib.aws_ecs.Ec2Service | aws-cdk-lib.aws_ecs.FargateService
10360
+
10361
+ ---
10362
+
10363
+ ##### `useTaskDefinition` <a name="useTaskDefinition" id="@btc-embedded/cdk-extensions.EfsMountExtension.useTaskDefinition"></a>
10364
+
10365
+ ```typescript
10366
+ public useTaskDefinition(taskDefinition: TaskDefinition): void
10367
+ ```
10368
+
10369
+ 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.
10370
+
10371
+ ###### `taskDefinition`<sup>Required</sup> <a name="taskDefinition" id="@btc-embedded/cdk-extensions.EfsMountExtension.useTaskDefinition.parameter.taskDefinition"></a>
10372
+
10373
+ - *Type:* aws-cdk-lib.aws_ecs.TaskDefinition
10374
+
10375
+ ---
10376
+
10377
+
10378
+ #### Properties <a name="Properties" id="Properties"></a>
10379
+
10380
+ | **Name** | **Type** | **Description** |
10381
+ | --- | --- | --- |
10382
+ | <code><a href="#@btc-embedded/cdk-extensions.EfsMountExtension.property.name">name</a></code> | <code>string</code> | The name of the extension. |
10383
+ | <code><a href="#@btc-embedded/cdk-extensions.EfsMountExtension.property.container">container</a></code> | <code>aws-cdk-lib.aws_ecs.ContainerDefinition</code> | The container for this extension. |
10384
+ | <code><a href="#@btc-embedded/cdk-extensions.EfsMountExtension.property.accessMode">accessMode</a></code> | <code><a href="#@btc-embedded/cdk-extensions.EfsAccessMode">EfsAccessMode</a></code> | *No description.* |
10385
+ | <code><a href="#@btc-embedded/cdk-extensions.EfsMountExtension.property.filesystem">filesystem</a></code> | <code>aws-cdk-lib.aws_efs.IFileSystem</code> | *No description.* |
10386
+ | <code><a href="#@btc-embedded/cdk-extensions.EfsMountExtension.property.path">path</a></code> | <code>string</code> | *No description.* |
10387
+ | <code><a href="#@btc-embedded/cdk-extensions.EfsMountExtension.property.volumeName">volumeName</a></code> | <code>string</code> | *No description.* |
10388
+
10389
+ ---
10390
+
10391
+ ##### `name`<sup>Required</sup> <a name="name" id="@btc-embedded/cdk-extensions.EfsMountExtension.property.name"></a>
10392
+
10393
+ ```typescript
10394
+ public readonly name: string;
10395
+ ```
10396
+
10397
+ - *Type:* string
10398
+
10399
+ The name of the extension.
10400
+
10401
+ ---
10402
+
10403
+ ##### `container`<sup>Optional</sup> <a name="container" id="@btc-embedded/cdk-extensions.EfsMountExtension.property.container"></a>
10404
+
10405
+ ```typescript
10406
+ public readonly container: ContainerDefinition;
10407
+ ```
10408
+
10409
+ - *Type:* aws-cdk-lib.aws_ecs.ContainerDefinition
10410
+
10411
+ The container for this extension.
10412
+
10413
+ Most extensions have a container, but not
10414
+ every extension is required to have a container. Some extensions may just
10415
+ modify the properties of the service, or create external resources
10416
+ connected to the service.
10417
+
10418
+ ---
10419
+
10420
+ ##### `accessMode`<sup>Required</sup> <a name="accessMode" id="@btc-embedded/cdk-extensions.EfsMountExtension.property.accessMode"></a>
10421
+
10422
+ ```typescript
10423
+ public readonly accessMode: EfsAccessMode;
10424
+ ```
10425
+
10426
+ - *Type:* <a href="#@btc-embedded/cdk-extensions.EfsAccessMode">EfsAccessMode</a>
10427
+
10428
+ ---
10429
+
10430
+ ##### `filesystem`<sup>Required</sup> <a name="filesystem" id="@btc-embedded/cdk-extensions.EfsMountExtension.property.filesystem"></a>
10431
+
10432
+ ```typescript
10433
+ public readonly filesystem: IFileSystem;
10434
+ ```
10435
+
10436
+ - *Type:* aws-cdk-lib.aws_efs.IFileSystem
10437
+
10438
+ ---
10439
+
10440
+ ##### `path`<sup>Required</sup> <a name="path" id="@btc-embedded/cdk-extensions.EfsMountExtension.property.path"></a>
10441
+
10442
+ ```typescript
10443
+ public readonly path: string;
10444
+ ```
10445
+
10446
+ - *Type:* string
10447
+
10448
+ ---
10449
+
10450
+ ##### `volumeName`<sup>Required</sup> <a name="volumeName" id="@btc-embedded/cdk-extensions.EfsMountExtension.property.volumeName"></a>
10451
+
10452
+ ```typescript
10453
+ public readonly volumeName: string;
10454
+ ```
10455
+
10456
+ - *Type:* string
10457
+
10458
+ ---
10459
+
10460
+
10100
10461
  ### ExtraContainerExtension <a name="ExtraContainerExtension" id="@btc-embedded/cdk-extensions.ExtraContainerExtension"></a>
10101
10462
 
10102
10463
  #### Initializers <a name="Initializers" id="@btc-embedded/cdk-extensions.ExtraContainerExtension.Initializer"></a>
@@ -10758,7 +11119,7 @@ Properties of the task definition to be created.
10758
11119
  ##### `prehook` <a name="prehook" id="@btc-embedded/cdk-extensions.LogExtension.prehook"></a>
10759
11120
 
10760
11121
  ```typescript
10761
- public prehook(parent: Service, scope: Construct): void
11122
+ public prehook(parent: Service, _scope: Construct): void
10762
11123
  ```
10763
11124
 
10764
11125
  A hook that is called for each extension ahead of time to allow for any initial setup, such as creating resources in advance.
@@ -10769,7 +11130,7 @@ A hook that is called for each extension ahead of time to allow for any initial
10769
11130
 
10770
11131
  ---
10771
11132
 
10772
- ###### `scope`<sup>Required</sup> <a name="scope" id="@btc-embedded/cdk-extensions.LogExtension.prehook.parameter.scope"></a>
11133
+ ###### `_scope`<sup>Required</sup> <a name="_scope" id="@btc-embedded/cdk-extensions.LogExtension.prehook.parameter._scope"></a>
10773
11134
 
10774
11135
  - *Type:* constructs.Construct
10775
11136
 
@@ -11733,7 +12094,7 @@ Properties of the task definition to be created.
11733
12094
  ##### `prehook` <a name="prehook" id="@btc-embedded/cdk-extensions.PostgresDbAccessExtension.prehook"></a>
11734
12095
 
11735
12096
  ```typescript
11736
- public prehook(parent: Service, scope: Construct): void
12097
+ public prehook(parent: Service, _scope: Construct): void
11737
12098
  ```
11738
12099
 
11739
12100
  A hook that is called for each extension ahead of time to allow for any initial setup, such as creating resources in advance.
@@ -11744,7 +12105,7 @@ A hook that is called for each extension ahead of time to allow for any initial
11744
12105
 
11745
12106
  ---
11746
12107
 
11747
- ###### `scope`<sup>Required</sup> <a name="scope" id="@btc-embedded/cdk-extensions.PostgresDbAccessExtension.prehook.parameter.scope"></a>
12108
+ ###### `_scope`<sup>Required</sup> <a name="_scope" id="@btc-embedded/cdk-extensions.PostgresDbAccessExtension.prehook.parameter._scope"></a>
11748
12109
 
11749
12110
  - *Type:* constructs.Construct
11750
12111
 
@@ -12741,6 +13102,41 @@ public readonly fqdn: string;
12741
13102
 
12742
13103
  ## Enums <a name="Enums" id="Enums"></a>
12743
13104
 
13105
+ ### EfsAccessMode <a name="EfsAccessMode" id="@btc-embedded/cdk-extensions.EfsAccessMode"></a>
13106
+
13107
+ Access modes for the Efs.
13108
+
13109
+ #### Members <a name="Members" id="Members"></a>
13110
+
13111
+ | **Name** | **Description** |
13112
+ | --- | --- |
13113
+ | <code><a href="#@btc-embedded/cdk-extensions.EfsAccessMode.READ_ONLY">READ_ONLY</a></code> | Access is read-only. |
13114
+ | <code><a href="#@btc-embedded/cdk-extensions.EfsAccessMode.READ_WRITE">READ_WRITE</a></code> | Read-write access. |
13115
+ | <code><a href="#@btc-embedded/cdk-extensions.EfsAccessMode.ROOT_ACCESS">ROOT_ACCESS</a></code> | Root access is granted (includes read-write access). |
13116
+
13117
+ ---
13118
+
13119
+ ##### `READ_ONLY` <a name="READ_ONLY" id="@btc-embedded/cdk-extensions.EfsAccessMode.READ_ONLY"></a>
13120
+
13121
+ Access is read-only.
13122
+
13123
+ ---
13124
+
13125
+
13126
+ ##### `READ_WRITE` <a name="READ_WRITE" id="@btc-embedded/cdk-extensions.EfsAccessMode.READ_WRITE"></a>
13127
+
13128
+ Read-write access.
13129
+
13130
+ ---
13131
+
13132
+
13133
+ ##### `ROOT_ACCESS` <a name="ROOT_ACCESS" id="@btc-embedded/cdk-extensions.EfsAccessMode.ROOT_ACCESS"></a>
13134
+
13135
+ Root access is granted (includes read-write access).
13136
+
13137
+ ---
13138
+
13139
+
12744
13140
  ### InvocationType <a name="InvocationType" id="@btc-embedded/cdk-extensions.InvocationType"></a>
12745
13141
 
12746
13142
  The invocation type of the step function.
package/CHANGELOG.md CHANGED
@@ -1,4 +1,23 @@
1
1
 
2
+ ## [0.14.12](https://github.com/btc-embedded/cdk-extensions/compare/v0.14.11...v0.14.12) (2025-12-01)
3
+
4
+
5
+ ### Features
6
+
7
+ * Added EFS extension ([d5ffc7a](https://github.com/btc-embedded/cdk-extensions/commit/d5ffc7a1aacee1b7ddf355b414d1ef406630e4b9))
8
+
9
+
10
+ ### Bug Fixes
11
+
12
+ * adjusted build to match gitlab ([bd74f6c](https://github.com/btc-embedded/cdk-extensions/commit/bd74f6cb59b3bd1ced577b132e70e29697f252b0))
13
+ * fixed review issues ([e8aeae1](https://github.com/btc-embedded/cdk-extensions/commit/e8aeae15a99b155234a10f8a326296a7beb4542d))
14
+ * Increase compability of extensions ([0c8546c](https://github.com/btc-embedded/cdk-extensions/commit/0c8546c8ffad3623a2b40728e275d70aea07dd81))
15
+ * removed debug output ([1236ded](https://github.com/btc-embedded/cdk-extensions/commit/1236ded877c99b173c2eda859fbb0106443c0cf9))
16
+ * removed unneccesary security group ([87d1cb4](https://github.com/btc-embedded/cdk-extensions/commit/87d1cb4222c1095d23efa9a4dc1e9da16b6b162a))
17
+ * set correct scopes for extensions ([8f0c905](https://github.com/btc-embedded/cdk-extensions/commit/8f0c9059cf0313eb1e200b4d1a311d08d39fb361))
18
+
19
+ ## [0.14.11](https://github.com/btc-embedded/cdk-extensions/compare/v0.14.10...v0.14.11) (2025-11-20)
20
+
2
21
  ## [0.14.10](https://github.com/btc-embedded/cdk-extensions/compare/v0.14.9...v0.14.10) (2025-11-20)
3
22
 
4
23
 
package/README.md CHANGED
@@ -1 +1,32 @@
1
- # replace this
1
+ # @btc-embedded/cdk-extensions
2
+
3
+ A collection of reusable AWS CDK (Cloud Development Kit) extensions and constructs for building cloud infrastructure with TypeScript.
4
+
5
+ ## Features
6
+
7
+ - **CDK Constructs**: Includes ready-to-use constructs for API Gateway, Application Load Balancer, Cognito, VPC, DocumentDB, and more.
8
+ - **ECS Service Extensions**: Provides ECS service extensions for advanced container orchestration.
9
+ - **Utilities**: Common utilities and helpers for stack parameters, value imports, and configuration parsing.
10
+ - **Modular Extensions**: Easily extend AWS resources with features like logging, OpenTelemetry, EFS, Cloud Map, and custom containers.
11
+
12
+ ## Installation
13
+
14
+ ```sh
15
+ yarn install @btc-embedded/cdk-extensions
16
+ ```
17
+
18
+ ## Usage Example
19
+
20
+ ```typescript
21
+ import { ApiGateway } from "@btc-embedded/cdk-extensions";
22
+
23
+ // Use constructs and extensions in your CDK app
24
+ ```
25
+
26
+ ## Documentation
27
+
28
+ - [API Reference](./API.md)
29
+
30
+ ## License
31
+
32
+ Apache-2.0 © BTC Embedded Systems AG
@@ -145,5 +145,5 @@ class EventPipe extends construct_1.Construct {
145
145
  }
146
146
  exports.EventPipe = EventPipe;
147
147
  _a = JSII_RTTI_SYMBOL_1;
148
- EventPipe[_a] = { fqn: "@btc-embedded/cdk-extensions.EventPipe", version: "0.14.11" };
148
+ EventPipe[_a] = { fqn: "@btc-embedded/cdk-extensions.EventPipe", version: "0.14.13" };
149
149
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXZlbnRQaXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbnN0cnVjdHMvRXZlbnRQaXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsNkNBQTBDO0FBQzFDLGlEQUE2RDtBQUU3RCxxREFBZ0Q7QUFHaEQsd0RBQXFEO0FBQ3JELDBDQUEwQztBQUMxQyx3RUFBdUU7QUFzQ3ZFLElBQVksUUFpQlg7QUFqQkQsV0FBWSxRQUFRO0lBQ2xCOztPQUVHO0lBQ0gsdUJBQVcsQ0FBQTtJQUNYOztPQUVHO0lBQ0gsMkJBQWUsQ0FBQTtJQUNmOztPQUVHO0lBQ0gseUJBQWEsQ0FBQTtJQUNiOztPQUVHO0lBQ0gsMkJBQWUsQ0FBQTtBQUNqQixDQUFDLEVBakJXLFFBQVEsd0JBQVIsUUFBUSxRQWlCbkI7QUFFRDs7R0FFRztBQUNILElBQVksY0FjWDtBQWRELFdBQVksY0FBYztJQUN4Qjs7Ozs7T0FLRztJQUNILDJFQUFnQixDQUFBO0lBQ2hCOzs7O09BSUc7SUFDSCx5RUFBZSxDQUFBO0FBQ2pCLENBQUMsRUFkVyxjQUFjLDhCQUFkLGNBQWMsUUFjekI7QUEyRkQ7O0dBRUc7QUFDSCxNQUFhLFNBQVUsU0FBUSxxQkFBUztJQUd0QyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQXFCO1FBQzdELEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIsSUFBSSxrQkFBa0IsR0FDcEIsY0FBYyxJQUFJLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFDekUsSUFBSSw0QkFBNEIsR0FDOUIsWUFBWSxJQUFJLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFFckUsSUFBSSxXQUFXLEdBQUcsT0FBTyxJ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QUUsQ0FBQztRQUVQLElBQUksbUJBQU8sQ0FBQyxJQUFJLEVBQUUsV0FBVyxFQUFFO1lBQzdCLEdBQUcsaUJBQWlCO1lBQ3BCLE9BQU8sRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU87WUFDMUIsTUFBTSxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsUUFBUTtZQUM3QixNQUFNLEVBQUUsU0FBUztZQUNqQixnQkFBZ0IsRUFBRSxnQkFBZ0I7WUFDbEMsZ0JBQWdCLEVBQUUsZ0JBQWdCO1lBQ2xDLFlBQVksRUFBRSxZQUFZO1NBQzNCLENBQUMsQ0FBQztRQUVILEtBQUssQ0FBQyxNQUFNLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzdDLFdBQVcsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDMUMsa0JBQWtCLEVBQUUsbUJBQW1CLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ25ELFFBQVEsRUFBRSxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFTyxjQUFjLENBQUMsS0FBcUI7UUFDMUMsT0FBTyxLQUFLLENBQUMsUUFBUSxLQUFLLFNBQVMsSUFBSSxLQUFLLENBQUMsUUFBUSxLQUFLLFFBQVEsQ0FBQyxHQUFHLENBQUM7SUFDekUsQ0FBQzs7QUE5R0gsOEJBK0dDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQW5ub3RhdGlvbnMgfSBmcm9tIFwiYXdzLWNkay1saWJcIjtcbmltcG9ydCB7IFJvbGUsIFNlcnZpY2VQcmluY2lwYWwgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWlhbVwiO1xuaW1wb3J0IHsgSUxvZ0dyb3VwIH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1sb2dzXCI7XG5pbXBvcnQgeyBDZm5QaXBlIH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1waXBlc1wiO1xuaW1wb3J0IHsgSVF1ZXVlIH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1zcXNcIjtcbmltcG9ydCB7IElTdGF0ZU1hY2hpbmUgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLXN0ZXBmdW5jdGlvbnNcIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzL2xpYi9jb25zdHJ1Y3RcIjtcbmltcG9ydCB7IEJUQ0xvZ0dyb3VwIH0gZnJvbSBcIi4uL3BsYXRmb3JtXCI7XG5pbXBvcnQgeyBpc0RlYWN0aXZhdGVkQ29uc3RydWN0IH0gZnJvbSBcIi4uL3V0aWxzL2RlYWN0aXZhdGVkQ29uc3RydWN0XCI7XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgcGlwZSBjb25zdHJ1Y3Rpb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRXZlbnRQaXBlUHJvcHMge1xuICAvKipcbiAgICogVGhlIHNvdXJjZSBTUVMgcXVldWUuIE5vIG90aGVyIHNvdXJjZSB0eXBlcyBhcmUgc3VwcG9ydGVkIGF0IHRoZSBtb21lbnQuXG4gICAqL1xuICByZWFkb25seSBzb3VyY2U6IElRdWV1ZTtcblxuICAvKipcbiAgICogVGhlIHRhcmdldCBTUVMgcXVldWUgb3IgdGFyZ2V0IHN0ZXAgZnVuY3Rpb24uXG4gICAqL1xuICByZWFkb25seSB0YXJnZXQ6IFRhcmdldFF1ZXVlIHwgVGFyZ2V0U3RlcEZ1bmN0aW9uO1xuXG4gIC8qKlxuICAgKiBUaGUgcm9sZSB1c2VkIGJ5IHRoZSBldmVudCBwaXBlLiBJZiBvbWl0dGVkLCBhIG5ldyByb2xlIGlzIGNyZWF0ZWQuXG4gICAqL1xuICByZWFkb25seSByb2xlPzogUm9sZTtcblxuICAvKipcbiAgICogQW4gb3B0aW9uYWwgZmlsdGVyIGZvciB0aGUgcGlwZS5cbiAgICovXG4gIHJlYWRvbmx5IGZpbHRlcj86IFBpcGVGaWx0ZXI7XG5cbiAgLyoqXG4gICAqIFNldCB0aGUgbG9nIGxldmVsIGZvciB0aGUgcGlwZS4gQ3JlYXRlcyBhIG5ldyBsb2cgZ3JvdXAsIGlmIGVuYWJsZWQuXG4gICAqIERlZmF1bHQ6IERpc2FibGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgbG9nTGV2ZWw/OiBMb2dMZXZlbDtcblxuICAvKipcbiAgICogVXNlIGFuIGV4aXN0aW5nIGxvZyBncm91cC4gSWYgbm9uZSBpcyBnaXZlbiBhbmQgbG9nZ2luZyBpcyBlbmFibGVkLCBhIG5ldyBsb2cgZ3JvdXAgd2lsbCBiZSBjcmVhdGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgbG9nR3JvdXA/OiBJTG9nR3JvdXA7XG59XG5cbmV4cG9ydCBlbnVtIExvZ0xldmVsIHtcbiAgLyoqXG4gICAqIERlYWN0aXZhdGUgbG9nZ2luZy4gTm8gbG9nIGdyb3VwIHdpbGwgYmUgY3JlYXRlZC5cbiAgICovXG4gIE9GRiA9IFwiT0ZGXCIsXG4gIC8qKlxuICAgKiBPbmx5IGxvZyBlcnJvcnMuXG4gICAqL1xuICBFUlJPUiA9IFwiRVJST1JcIixcbiAgLyoqXG4gICAqIExvZyBlcnJvcnMgYW5kIGluZm9ybWF0aW9uYWwgbWVzc2FnZXMuXG4gICAqL1xuICBJTkZPID0gXCJJTkZPXCIsXG4gIC8qKlxuICAgKiBMb2cgdmVyeSB2ZXJib3NlLlxuICAgKi9cbiAgVFJBQ0UgPSBcIlRSQUNFXCIsXG59XG5cbi8qKlxuICogVGhlIGludm9jYXRpb24gdHlwZSBvZiB0aGUgc3RlcCBmdW5jdGlvbi5cbiAqL1xuZXhwb3J0IGVudW0gSW52b2NhdGlvblR5cGUge1xuICAvKipcbiAgICogKGRlZmF1bHQpIC0gSW52b2tlIHN5bmNocm9ub3VzbHkuIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWVcbiAgICogW1N0YXJ0U3luY0V4ZWN1dGlvbl0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL3N0ZXAtZnVuY3Rpb25zL2xhdGVzdC9hcGlyZWZlcmVuY2UvQVBJX1N0YXJ0U3luY0V4ZWN1dGlvbi5odG1sKVxuICAgKiBpbiB0aGUgKkFXUyBTdGVwIEZ1bmN0aW9ucyBBUEkgUmVmZXJlbmNlKi5cbiAgICogPiBgUkVRVUVTVF9SRVNQT05TRWAgaXMgbm90IHN1cHBvcnRlZCBmb3IgYFNUQU5EQVJEYCBzdGF0ZSBtYWNoaW5lIHdvcmtmbG93cy5cbiAgICovXG4gIFJFUVVFU1RfUkVTUE9OU0UsXG4gIC8qKlxuICAgKiBJbnZva2UgYXN5bmNocm9ub3VzbHkuIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWVcbiAgICogW1N0YXJ0RXhlY3V0aW9uXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vc3RlcC1mdW5jdGlvbnMvbGF0ZXN0L2FwaXJlZmVyZW5jZS9BUElfU3RhcnRFeGVjdXRpb24uaHRtbClcbiAgICogaW4gdGhlICpBV1MgU3RlcCBGdW5jdGlvbnMgQVBJIFJlZmVyZW5jZSouXG4gICAqL1xuICBGSVJFX0FORF9GT1JHRVQsXG59XG5cbi8qKlxuICogVGhlIGlucHV0IHRlbXBsYXRlLlxuICogTm90ZSB0aGF0IHNvbWUgdmFsdWVzIGluIHRoZSByZXN1bHRpbmcgY29kZSBzaG91bGQgbm90IGhhdmUgcXVvdGVzIGFyb3VuZCB0aGUgdmFsdWUsIGUuZy4gaWYgYW4gb2JqZWN0XG4gKiBzaGFsbCBiZSBhZGRlZC4gVG8gcmVmbGVjdCB0aGlzLCBhZGQgY3VybHkgYnJhY2tldHMgYXJvdW5kIHRoZSB2YWx1ZSwgZS5nLiBge3s8JC5ib2R5Pn19YC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJbnB1dFRlbXBsYXRlIHtcbiAgLyoqXG4gICAqIEBqc2lpIGlnbm9yZVxuICAgKi9cbiAgcmVhZG9ubHkgW2tleTogc3RyaW5nXTogc3RyaW5nO1xufVxuXG4vKipcbiAqIFNRUyBxdWV1ZSBhcyBwaXBlIHRhcmdldC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUYXJnZXRRdWV1ZSB7XG4gIHJlYWRvbmx5IHF1ZXVlOiBJUXVldWU7XG59XG5cbi8qKlxuICogU3RlcEZ1bmN0aW9uIGFzIHBpcGUgdGFyZ2V0LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRhcmdldFN0ZXBGdW5jdGlvbiB7XG4gIHJlYWRvbmx5IHN0ZXBGdW5jdGlvbjogSVN0YXRlTWFjaGluZTtcbiAgcmVhZG9ubHkgcGFyYW1ldGVycz86IFRhcmdldFN0ZXBGdW5jdGlvblBhcmFtZXRlcnM7XG59XG5cbi8qKlxuICogUGFyYW1ldGVycyBmb3IgYSBzdGVwIGZ1bmN0aW9uIHRhcmdldC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUYXJnZXRTdGVwRnVuY3Rpb25QYXJhbWV0ZXJzIHtcbiAgcmVhZG9ubHkgaW5wdXRUZW1wbGF0ZT86IElucHV0VGVtcGxhdGU7XG4gIHJlYWRvbmx5IGludm9jYXRpb25UeXBlPzogSW52b2NhdGlvblR5cGU7XG59XG5cbi8qKlxuICogQmFzZSB0eXBlIGZvciBmaWx0ZXIgcnVsZXMuIE5vdCBhbGwgYXZhaWxhYmxlIHJ1bGVzIGFyZSBjdXJyZW50bHkgaW1wbGVtZW50ZWQuXG4gKi9cbmV4cG9ydCB0eXBlIEZpbHRlclJ1bGUgPVxuICB8IFByZWZpeEZpbHRlclJ1bGVcbiAgfCBTdWZmaXhGaWx0ZXJSdWxlXG4gIHwgQW55dGhpbmdCdXRGaWx0ZXJSdWxlXG4gIHwgRmlsdGVyRXF1YWxzSWdub3JlQ2FzZTtcblxuLyoqXG4gKiBSdWxlIHRoYXQgYSBwcm9wZXJ0eSBoYXMgdG8gc3RhcnQgd2l0aCBhIHByZWZpeC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQcmVmaXhGaWx0ZXJSdWxlIHtcbiAgcmVhZG9ubHkgcHJlZml4OiBzdHJpbmcgfCBGaWx0ZXJFcXVhbHNJZ25vcmVDYXNlO1xufVxuXG4vKipcbiAqIFJ1bGUgdGhhdCBhIHByb3BlcnR5IGhhcyB0byBlbmQgd2l0aCBhIHN1ZmZpeC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTdWZmaXhGaWx0ZXJSdWxlIHtcbiAgcmVhZG9ubHkgc3VmZml4OiBzdHJpbmcgfCBGaWx0ZXJFcXVhbHNJZ25vcmVDYXNlO1xufVxuXG4vKipcbiAqIFJ1bGUgdGhhdCBhbGxvd3MgYWxsIHZhbHVlcyBleGNlcHQgdGhlIGdpdmVuIG9uZXMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQW55dGhpbmdCdXRGaWx0ZXJSdWxlIHtcbiAgLyoqXG4gICAqIEBqc2lpIGlnbm9yZVxuICAgKi9cbiAgcmVhZG9ubHkgXCJhbnl0aGluZy1idXRcIjogc3RyaW5nW10gfCBGaWx0ZXJSdWxlO1xufVxuXG4vKipcbiAqIFJ1bGUgdGhhdCBtYXRjaGVzIGEgc3RyaW5nLCBpZ25vcmluZyB0aGUgY2FzZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBGaWx0ZXJFcXVhbHNJZ25vcmVDYXNlIHtcbiAgLyoqXG4gICAqIEBqc2lpIGlnbm9yZVxuICAgKi9cbiAgcmVhZG9ubHkgXCJlcXVhbHMtaWdub3JlLWNhc2VcIjogc3RyaW5nIHwgc3RyaW5nW107XG59XG5cbi8qKlxuICogQSBmaWx0ZXIgZm9yIG1lc3NhZ2VzIGluIHRoZSBwaXBlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFBpcGVGaWx0ZXIge1xuICAvKipcbiAgICogVGhlIHJ1bGVzIGZvciBlYWNoIGF0dHJpYnV0ZSBvZiB0aGUgYm9keS5cbiAgICogQGpzaWkgaWdub3JlXG4gICAqL1xuICByZWFkb25seSBba2V5OiBzdHJpbmddOiBGaWx0ZXJSdWxlW107XG59XG5cbi8qKlxuICogQSB3cmFwcGVyIGZvciB0aGUgTDEgZXZlbnQgcGlwZSB3aXRoIHRoZSBhYmlsaXR5IHRvIGRlYWN0aXZhdGUgaXQgd2l0aGluIHRoZSBzdGFjay5cbiAqL1xuZXhwb3J0IGNsYXNzIEV2ZW50UGlwZSBleHRlbmRzIENvbnN0cnVjdCB7XG4gIHB1YmxpYyByZWFkb25seSByb2xlOiBSb2xlO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBFdmVudFBpcGVQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICBsZXQgdGFyZ2V0U3RlcEZ1bmN0aW9uID1cbiAgICAgIFwic3RlcEZ1bmN0aW9uXCIgaW4gcHJvcHMudGFyZ2V0ID8gcHJvcHMudGFyZ2V0LnN0ZXBGdW5jdGlvbiA6IHVuZGVmaW5lZDtcbiAgICBsZXQgdGFyZ2V0U3RlcEZ1bmN0aW9uUGFyYW1ldGVycyA9XG4gICAgICBcInBhcmFtZXRlcnNcIiBpbiBwcm9wcy50YXJnZXQgPyBwcm9wcy50YXJnZXQucGFyYW1ldGVycyA6IHVuZGVmaW5lZDtcblxuICAgIGxldCB0YXJnZXRRdWV1ZSA9IFwicXVldWVcIiBpbiBwcm9wcy50YXJnZXQgPyBwcm9wcy50YXJnZXQucXVldWUgOiB1bmRlZmluZWQ7XG5cbiAgICBsZXQgc3FzVGFyZ2V0ID0gdGFyZ2V0UXVldWUgIT09IHVuZGVmaW5lZDtcblxuICAgIGxldCB0YXJnZXRBcm4gPSBzcXNUYXJnZXRcbiAgICAgID8gdGFyZ2V0UXVldWUhLnF1ZXVlQXJuXG4gICAgICA6IHRhcmdldFN0ZXBGdW5jdGlvbiEuc3RhdGVNYWNoaW5lQXJuO1xuXG4gICAgbGV0IGRlc2lyZWRTdGF0ZSA9IFwiUlVOTklOR1wiO1xuICAgIGlmIChpc0RlYWN0aXZhdGVkQ29uc3RydWN0KGlkKSkge1xuICAgICAgQW5ub3RhdGlvbnMub2YodGhpcykuYWRkSW5mbyhgJHtpZH0gaXMgc2V0IGRvIGJlIGRlYWN0aXZhdGVkLmApO1xuICAgICAgZGVzaXJlZFN0YXRlID0gXCJTVE9QUEVEXCI7XG4gICAgfVxuXG4gICAgdGhpcy5yb2xlID1cbiAgICAgIHByb3BzLnJvbGUgfHxcbiAgICAgIG5ldyBSb2xlKHRoaXMsIFwiRXZlbnRQaXBlUm9sZVwiLCB7XG4gICAgICAgIGFzc3VtZWRCeTogbmV3IFNlcnZpY2VQcmluY2lwYWwoXCJwaXBlcy5hbWF6b25hd3MuY29tXCIpLFxuICAgICAgfSk7XG5cbiAgICBsZXQgZmlsdGVyQ3JpdGVyaWEgPSBwcm9wcy5maWx0ZXJcbiAgICAgID8ge1xuICAgICAgICAgIGZpbHRlcnM6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgcGF0dGVybjogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgIGJvZHk6IHtcbiAgICAgICAgICAgICAgICAgIC4uLnByb3BzLmZpbHRlcixcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgfVxuICAgICAgOiB1bmRlZmluZWQ7XG5cbiAgICBsZXQgdGFyZ2V0UGFyYW1ldGVyczogQ2ZuUGlwZS5QaXBlVGFyZ2V0UGFyYW1ldGVyc1Byb3BlcnR5ID0ge307XG4gICAgaWYgKHRhcmdldFF1ZXVlKSB7XG4gICAgICB0YXJnZXRQYXJhbWV0ZXJzID0ge1xuICAgICAgICBzcXNRdWV1ZVBhcmFtZXRlcnM6IHtcbiAgICAgICAgICBtZXNzYWdlR3JvdXBJZDogXCJkZWZhdWx0XCIsXG4gICAgICAgIH0sXG4gICAgICB9O1xuICAgIH0gZWxzZSB7XG4gICAgICB0YXJnZXRQYXJhbWV0ZXJzID0ge1xuICAgICAgICBzdGVwRnVuY3Rpb25TdGF0ZU1hY2hpbmVQYXJhbWV0ZXJzOiB7XG4gICAgICAgICAgaW52b2NhdGlvblR5cGU6IHRhcmdldFN0ZXBGdW5jdGlvblBhcmFtZXRlcnM/Lmludm9jYXRpb25UeXBlXG4gICAgICAgICAgICA/IEludm9jYXRpb25UeXBlW3RhcmdldFN0ZXBGdW5jdGlvblBhcmFtZXRlcnMuaW52b2NhdGlvblR5cGVdXG4gICAgICAgICAgICA6IEludm9jYXRpb25UeXBlW0ludm9jYXRpb25UeXBlLlJFUVVFU1RfUkVTUE9OU0VdLFxuICAgICAgICB9LFxuICAgICAgICAuLi4odGFyZ2V0U3RlcEZ1bmN0aW9uUGFyYW1ldGVycz8uaW5wdXRUZW1wbGF0ZSAmJiB7XG4gICAgICAgICAgaW5wdXRUZW1wbGF0ZTogSlNPTi5zdHJpbmdpZnkoXG4gICAgICAgICAgICB0YXJnZXRTdGVwRnVuY3Rpb25QYXJhbWV0ZXJzLmlucHV0VGVtcGxhdGUsXG4gICAgICAgICAgKS5yZXBsYWNlKC9cIlxce1xceyguKz8pXFx9XFx9XCIvLCBcIiQxXCIpLFxuICAgICAgICB9KSxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgbGV0IHNvdXJjZVBhcmFtZXRlcnMgPSB7XG4gICAgICBzcXNRdWV1ZVBhcmFtZXRlcnM6IHtcbiAgICAgICAgYmF0Y2hTaXplOiAxLFxuICAgICAgfSxcbiAgICAgIC4uLihmaWx0ZXJDcml0ZXJpYSAmJiB7IGZpbHRlckNyaXRlcmlhOiBmaWx0ZXJDcml0ZXJpYSB9KSxcbiAgICB9O1xuXG4gICAgY29uc3QgbG9nR3JvdXAgPSB0aGlzLmxvZ2dpbmdFbmFibGVkKHByb3BzKVxuICAgICAgPyAocHJvcHMubG9nR3JvdXAgPz9cbiAgICAgICAgbmV3IEJUQ0xvZ0dyb3VwKHRoaXMsIFwiRXZlbnRQaXBlTG9nR3JvdXBcIiwge1xuICAgICAgICAgIGxvZ1R5cGU6IFwiZXZlbnQtcGlwZVwiLFxuICAgICAgICB9KSlcbiAgICAgIDogdW5kZWZpbmVkO1xuXG4gICAgY29uc3QgcGlwZUNvbmZpZ3VyYXRpb24gPSB0aGlzLmxvZ2dpbmdFbmFibGVkKHByb3BzKVxuICAgICAgPyB7XG4gICAgICAgICAgbG9nQ29uZmlndXJhdGlvbjoge1xuICAgICAgICAgICAgY2xvdWR3YXRjaExvZ3NMb2dEZXN0aW5hdGlvbjoge1xuICAgICAgICAgICAgICBsb2dHcm91cEFybjogbG9nR3JvdXAhLmxvZ0dyb3VwQXJuLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGxldmVsOiBwcm9wcy5sb2dMZXZlbCxcbiAgICAgICAgICB9LFxuICAgICAgICB9XG4gICAgICA6IHt9O1xuXG4gICAgbmV3IENmblBpcGUodGhpcywgXCJFdmVudFBpcGVcIiwge1xuICAgICAgLi4ucGlwZUNvbmZpZ3VyYXRpb24sXG4gICAgICByb2xlQXJuOiB0aGlzLnJvbGUucm9sZUFybixcbiAgICAgIHNvdXJjZTogcHJvcHMuc291cmNlLnF1ZXVlQXJuLFxuICAgICAgdGFyZ2V0OiB0YXJnZXRBcm4sXG4gICAgICBzb3VyY2VQYXJhbWV0ZXJzOiBzb3VyY2VQYXJhbWV0ZXJzLFxuICAgICAgdGFyZ2V0UGFyYW1ldGVyczogdGFyZ2V0UGFyYW1ldGVycyxcbiAgICAgIGRlc2lyZWRTdGF0ZTogZGVzaXJlZFN0YXRlLFxuICAgIH0pO1xuXG4gICAgcHJvcHMuc291cmNlLmdyYW50Q29uc3VtZU1lc3NhZ2VzKHRoaXMucm9sZSk7XG4gICAgdGFyZ2V0UXVldWU/LmdyYW50U2VuZE1lc3NhZ2VzKHRoaXMucm9sZSk7XG4gICAgdGFyZ2V0U3RlcEZ1bmN0aW9uPy5ncmFudFN0YXJ0RXhlY3V0aW9uKHRoaXMucm9sZSk7XG4gICAgbG9nR3JvdXA/LmdyYW50V3JpdGUodGhpcy5yb2xlKTtcbiAgfVxuXG4gIHByaXZhdGUgbG9nZ2luZ0VuYWJsZWQocHJvcHM6IEV2ZW50UGlwZVByb3BzKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHByb3BzLmxvZ0xldmVsICE9PSB1bmRlZmluZWQgJiYgcHJvcHMubG9nTGV2ZWwgIT09IExvZ0xldmVsLk9GRjtcbiAgfVxufVxuIl19
@@ -35,5 +35,5 @@ class S3Bucket extends aws_s3_1.Bucket {
35
35
  }
36
36
  exports.S3Bucket = S3Bucket;
37
37
  _a = JSII_RTTI_SYMBOL_1;
38
- S3Bucket[_a] = { fqn: "@btc-embedded/cdk-extensions.S3Bucket", version: "0.14.11" };
38
+ S3Bucket[_a] = { fqn: "@btc-embedded/cdk-extensions.S3Bucket", version: "0.14.13" };
39
39
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUzNCdWNrZXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29uc3RydWN0cy9TM0J1Y2tldC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDZDQUFtRTtBQUNuRSwrQ0FBeUQ7QUFFekQsb0NBQTRDO0FBRTVDLFNBQVMsV0FBVyxDQUNsQixLQUFnQixFQUNoQixFQUFVLEVBQ1YsS0FBbUI7SUFFbkIsSUFBSSxJQUFBLHdCQUFnQixHQUFFLEVBQUUsQ0FBQztRQUN2Qix5QkFBVyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxPQUFPLENBQzNCLEdBQUcsRUFBRSx5RUFBeUUsQ0FDL0UsQ0FBQztRQUNGLE9BQU87WUFDTCxHQUFHLEtBQUs7WUFDUixhQUFhLEVBQUUsMkJBQWEsQ0FBQyxPQUFPO1lBQ3BDLGlCQUFpQixFQUFFLElBQUk7WUFDdkIsY0FBYyxFQUFFO2dCQUNkO29CQUNFLFVBQVUsRUFBRSxzQkFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7b0JBQzVCLG1DQUFtQyxFQUFFLHNCQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztpQkFDdEQ7YUFDRjtTQUNGLENBQUM7SUFDSixDQUFDO0lBQ0QsT0FBTyxFQUFFLEdBQUcsS0FBSyxFQUFFLENBQUM7QUFDdEIsQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxNQUFhLFFBQVMsU0FBUSxlQUFNO0lBQ2xDLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBbUI7UUFDM0QsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsV0FBVyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNsRCxDQUFDOztBQUhILDRCQUlDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQW5ub3RhdGlvbnMsIER1cmF0aW9uLCBSZW1vdmFsUG9saWN5IH0gZnJvbSBcImF3cy1jZGstbGliXCI7XG5pbXBvcnQgeyBCdWNrZXQsIEJ1Y2tldFByb3BzIH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1zM1wiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7IGlzRGV2ZWxvcGVyU3RhY2sgfSBmcm9tIFwiLi4vdXRpbHNcIjtcblxuZnVuY3Rpb24gYWRqdXN0UHJvcHMoXG4gIHNjb3BlOiBDb25zdHJ1Y3QsXG4gIGlkOiBzdHJpbmcsXG4gIHByb3BzPzogQnVja2V0UHJvcHMsXG4pOiBCdWNrZXRQcm9wcyB7XG4gIGlmIChpc0RldmVsb3BlclN0YWNrKCkpIHtcbiAgICBBbm5vdGF0aW9ucy5vZihzY29wZSkuYWRkSW5mbyhcbiAgICAgIGAke2lkfSBpcyBkZXBsb3llZCBpbiBhIGRldmVsb3BlciB2YXJpYW50LiBGaWxlcyB3aWxsIGJlIHJldGFpbmVkIGZvciAzIGRheXMuYCxcbiAgICApO1xuICAgIHJldHVybiB7XG4gICAgICAuLi5wcm9wcyxcbiAgICAgIHJlbW92YWxQb2xpY3k6IFJlbW92YWxQb2xpY3kuREVTVFJPWSxcbiAgICAgIGF1dG9EZWxldGVPYmplY3RzOiB0cnVlLFxuICAgICAgbGlmZWN5Y2xlUnVsZXM6IFtcbiAgICAgICAge1xuICAgICAgICAgIGV4cGlyYXRpb246IER1cmF0aW9uLmRheXMoMyksXG4gICAgICAgICAgYWJvcnRJbmNvbXBsZXRlTXVsdGlwYXJ0VXBsb2FkQWZ0ZXI6IER1cmF0aW9uLmRheXMoMSksXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH07XG4gIH1cbiAgcmV0dXJuIHsgLi4ucHJvcHMgfTtcbn1cblxuLyoqXG4gKiBXcmFwcGVyIGZvciB0aGUge0BsaW5rIEJ1Y2tldH0gY29uc3RydWN0cyB0aGF0IGFkZHMgYWRkaXRpb25hbCBwcm9wZXJ0aWVzLCBpZiBhIGRldmVsb3BlclxuICogc3RhY2sgaXMgZGV0ZWN0ZWQuIFdpbGwgY2F1c2UgZmlsZXMgdG8gZXhwaXJlIGFmdGVyIHRyZWUgZGF5cyBhbmQgYWxsb3dzIHRvIGRlbGV0ZSB0aGVcbiAqIGJ1Y2tldCBhbmQgYWxsIGl0cyBjb250ZW50cywgaWYgdGhlIHN0YWNrIGlzIGRlbGV0ZWQuXG4gKi9cbmV4cG9ydCBjbGFzcyBTM0J1Y2tldCBleHRlbmRzIEJ1Y2tldCB7XG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzPzogQnVja2V0UHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIGFkanVzdFByb3BzKHNjb3BlLCBpZCwgcHJvcHMpKTtcbiAgfVxufVxuIl19