@btc-embedded/cdk-extensions 0.20.3 → 0.20.4

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 +207 -2
  2. package/API.md +344 -0
  3. package/CHANGELOG.md +2 -0
  4. package/lib/constructs/EventPipe.js +1 -1
  5. package/lib/constructs/ExportedService.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.js +1 -1
  11. package/lib/extensions/ApplicationLoadBalancerExtensionV2.js +1 -1
  12. package/lib/extensions/CloudMapExtension.js +1 -1
  13. package/lib/extensions/DeactivatableServiceExtension.js +1 -1
  14. package/lib/extensions/DeploymentConfigExtension.d.ts +65 -0
  15. package/lib/extensions/DeploymentConfigExtension.js +69 -0
  16. package/lib/extensions/DocumentDbAccessExtension.js +1 -1
  17. package/lib/extensions/DomainEventMessagingExtension.js +1 -1
  18. package/lib/extensions/EfsMountExtension.js +1 -1
  19. package/lib/extensions/ExtraContainerExtension.js +1 -1
  20. package/lib/extensions/HTTPApiExtension.js +1 -1
  21. package/lib/extensions/LogExtension.js +1 -1
  22. package/lib/extensions/ModifyContainerDefinitionExtension.js +1 -1
  23. package/lib/extensions/ModifyTaskDefinitionExtension.js +1 -1
  24. package/lib/extensions/OpenIdExtension.js +1 -1
  25. package/lib/extensions/OpenTelemetryExtension.js +1 -1
  26. package/lib/extensions/PostgresDbAccessExtension.js +1 -1
  27. package/lib/extensions/SharedVolumeExtension.js +1 -1
  28. package/lib/extensions/TcpKeepAliveExtension.js +1 -1
  29. package/lib/extensions/index.d.ts +2 -1
  30. package/lib/extensions/index.js +3 -2
  31. package/lib/platform/ApiGateway.js +1 -1
  32. package/lib/platform/ApiGatewayVpcLink.js +2 -2
  33. package/lib/platform/ApplicationLoadBalancer.js +1 -1
  34. package/lib/platform/ApplicationLoadBalancerV2.js +2 -2
  35. package/lib/platform/BTCLogGroup.js +1 -1
  36. package/lib/platform/CognitoUserPool.js +2 -2
  37. package/lib/platform/DefaultUserPoolClients.js +1 -1
  38. package/lib/platform/DocumentDB.js +2 -2
  39. package/lib/platform/EcsCluster.js +1 -1
  40. package/lib/platform/EfsFileSystem.js +1 -1
  41. package/lib/platform/PrivateDnsNamespace.js +1 -1
  42. package/lib/platform/ResourceServer.js +1 -1
  43. package/lib/platform/Vpc.js +1 -1
  44. package/lib/platform/VpcV2.js +1 -1
  45. package/lib/utils/StackParameter.js +1 -1
  46. package/package.json +1 -1
package/.jsii CHANGED
@@ -7199,6 +7199,211 @@
7199
7199
  ],
7200
7200
  "symbolId": "src/platform/DefaultUserPoolClients:DefaultUserPoolClientsProps"
7201
7201
  },
7202
+ "@btc-embedded/cdk-extensions.DeploymentConfigExtension": {
7203
+ "assembly": "@btc-embedded/cdk-extensions",
7204
+ "base": "@aws-cdk-containers/ecs-service-extensions.ServiceExtension",
7205
+ "docs": {
7206
+ "remarks": "This extension allows you to:\n1. Configure deployment parameters for faster or safer deployments\n2. Enable the use of cluster's FARGATE_SPOT capacity provider strategy",
7207
+ "stability": "experimental",
7208
+ "summary": "Extension that configures ECS service deployment options and capacity provider strategy."
7209
+ },
7210
+ "fqn": "@btc-embedded/cdk-extensions.DeploymentConfigExtension",
7211
+ "initializer": {
7212
+ "docs": {
7213
+ "stability": "experimental"
7214
+ },
7215
+ "locationInModule": {
7216
+ "filename": "src/extensions/DeploymentConfigExtension.ts",
7217
+ "line": 73
7218
+ },
7219
+ "parameters": [
7220
+ {
7221
+ "name": "props",
7222
+ "optional": true,
7223
+ "type": {
7224
+ "fqn": "@btc-embedded/cdk-extensions.DeploymentConfigExtensionProps"
7225
+ }
7226
+ }
7227
+ ]
7228
+ },
7229
+ "kind": "class",
7230
+ "locationInModule": {
7231
+ "filename": "src/extensions/DeploymentConfigExtension.ts",
7232
+ "line": 70
7233
+ },
7234
+ "methods": [
7235
+ {
7236
+ "docs": {
7237
+ "stability": "experimental",
7238
+ "summary": "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."
7239
+ },
7240
+ "locationInModule": {
7241
+ "filename": "src/extensions/DeploymentConfigExtension.ts",
7242
+ "line": 78
7243
+ },
7244
+ "name": "modifyServiceProps",
7245
+ "overrides": "@aws-cdk-containers/ecs-service-extensions.ServiceExtension",
7246
+ "parameters": [
7247
+ {
7248
+ "name": "props",
7249
+ "type": {
7250
+ "fqn": "@aws-cdk-containers/ecs-service-extensions.ServiceBuild"
7251
+ }
7252
+ }
7253
+ ],
7254
+ "returns": {
7255
+ "type": {
7256
+ "fqn": "@aws-cdk-containers/ecs-service-extensions.ServiceBuild"
7257
+ }
7258
+ }
7259
+ },
7260
+ {
7261
+ "docs": {
7262
+ "remarks": "It is generally used to\ncreate any final resources which might depend on the service itself.",
7263
+ "stability": "experimental",
7264
+ "summary": "When this hook is implemented by extension, it allows the extension to use the service which has been created."
7265
+ },
7266
+ "locationInModule": {
7267
+ "filename": "src/extensions/DeploymentConfigExtension.ts",
7268
+ "line": 91
7269
+ },
7270
+ "name": "useService",
7271
+ "overrides": "@aws-cdk-containers/ecs-service-extensions.ServiceExtension",
7272
+ "parameters": [
7273
+ {
7274
+ "name": "service",
7275
+ "type": {
7276
+ "union": {
7277
+ "types": [
7278
+ {
7279
+ "fqn": "aws-cdk-lib.aws_ecs.Ec2Service"
7280
+ },
7281
+ {
7282
+ "fqn": "aws-cdk-lib.aws_ecs.FargateService"
7283
+ }
7284
+ ]
7285
+ }
7286
+ }
7287
+ }
7288
+ ]
7289
+ }
7290
+ ],
7291
+ "name": "DeploymentConfigExtension",
7292
+ "symbolId": "src/extensions/DeploymentConfigExtension:DeploymentConfigExtension"
7293
+ },
7294
+ "@btc-embedded/cdk-extensions.DeploymentConfigExtensionProps": {
7295
+ "assembly": "@btc-embedded/cdk-extensions",
7296
+ "datatype": true,
7297
+ "docs": {
7298
+ "stability": "experimental",
7299
+ "summary": "Properties for configuring service deployment and capacity provider strategy."
7300
+ },
7301
+ "fqn": "@btc-embedded/cdk-extensions.DeploymentConfigExtensionProps",
7302
+ "kind": "interface",
7303
+ "locationInModule": {
7304
+ "filename": "src/extensions/DeploymentConfigExtension.ts",
7305
+ "line": 11
7306
+ },
7307
+ "name": "DeploymentConfigExtensionProps",
7308
+ "properties": [
7309
+ {
7310
+ "abstract": true,
7311
+ "docs": {
7312
+ "default": "0",
7313
+ "remarks": "This is the minimum number of tasks that should use Fargate Spot.\nOnly used when useCapacityProvider is true.",
7314
+ "stability": "experimental",
7315
+ "summary": "The base value for the FARGATE_SPOT capacity provider."
7316
+ },
7317
+ "immutable": true,
7318
+ "locationInModule": {
7319
+ "filename": "src/extensions/DeploymentConfigExtension.ts",
7320
+ "line": 33
7321
+ },
7322
+ "name": "capacityProviderBase",
7323
+ "optional": true,
7324
+ "type": {
7325
+ "primitive": "number"
7326
+ }
7327
+ },
7328
+ {
7329
+ "abstract": true,
7330
+ "docs": {
7331
+ "default": "1",
7332
+ "remarks": "Higher values mean more tasks will use Fargate Spot.\nOnly used when useCapacityProvider is true.",
7333
+ "stability": "experimental",
7334
+ "summary": "The weight value for the FARGATE_SPOT capacity provider."
7335
+ },
7336
+ "immutable": true,
7337
+ "locationInModule": {
7338
+ "filename": "src/extensions/DeploymentConfigExtension.ts",
7339
+ "line": 42
7340
+ },
7341
+ "name": "capacityProviderWeight",
7342
+ "optional": true,
7343
+ "type": {
7344
+ "primitive": "number"
7345
+ }
7346
+ },
7347
+ {
7348
+ "abstract": true,
7349
+ "docs": {
7350
+ "default": "200",
7351
+ "remarks": "Controls how many additional tasks can be started during deployment.",
7352
+ "stability": "experimental",
7353
+ "summary": "The maximum healthy percent for the service deployment."
7354
+ },
7355
+ "immutable": true,
7356
+ "locationInModule": {
7357
+ "filename": "src/extensions/DeploymentConfigExtension.ts",
7358
+ "line": 59
7359
+ },
7360
+ "name": "maxHealthyPercent",
7361
+ "optional": true,
7362
+ "type": {
7363
+ "primitive": "number"
7364
+ }
7365
+ },
7366
+ {
7367
+ "abstract": true,
7368
+ "docs": {
7369
+ "default": "100",
7370
+ "remarks": "Set to 0 to allow all tasks to be replaced at once for faster deployments\nwhere service interruption is acceptable.",
7371
+ "stability": "experimental",
7372
+ "summary": "The minimum healthy percent for the service deployment."
7373
+ },
7374
+ "immutable": true,
7375
+ "locationInModule": {
7376
+ "filename": "src/extensions/DeploymentConfigExtension.ts",
7377
+ "line": 51
7378
+ },
7379
+ "name": "minHealthyPercent",
7380
+ "optional": true,
7381
+ "type": {
7382
+ "primitive": "number"
7383
+ }
7384
+ },
7385
+ {
7386
+ "abstract": true,
7387
+ "docs": {
7388
+ "default": "false",
7389
+ "remarks": "When enabled, the service will use the capacity provider strategy\nconfigured at the cluster level (e.g., FARGATE_SPOT).\n\n**Requirements:**\n- The ECS cluster must have capacity providers enabled\n (set `enableFargateSpotCapacityProvider: true` in EcsCluster)",
7390
+ "stability": "experimental",
7391
+ "summary": "Whether to use the cluster's FARGATE_SPOT capacity provider strategy."
7392
+ },
7393
+ "immutable": true,
7394
+ "locationInModule": {
7395
+ "filename": "src/extensions/DeploymentConfigExtension.ts",
7396
+ "line": 24
7397
+ },
7398
+ "name": "useFargateSpotInstances",
7399
+ "optional": true,
7400
+ "type": {
7401
+ "primitive": "boolean"
7402
+ }
7403
+ }
7404
+ ],
7405
+ "symbolId": "src/extensions/DeploymentConfigExtension:DeploymentConfigExtensionProps"
7406
+ },
7202
7407
  "@btc-embedded/cdk-extensions.DocumentDB": {
7203
7408
  "assembly": "@btc-embedded/cdk-extensions",
7204
7409
  "base": "constructs.Construct",
@@ -13460,6 +13665,6 @@
13460
13665
  "symbolId": "src/platform/VpcV2:VpcV2Props"
13461
13666
  }
13462
13667
  },
13463
- "version": "0.20.3",
13464
- "fingerprint": "F4F0u0OX/Q1q/3BJqdarjmFjjr85dX/SwRywHaoKlSg="
13668
+ "version": "0.20.4",
13669
+ "fingerprint": "35E6DRZ1Gjkx6CgoqfnHHbSqxzixD00+mbBYcmo+2Yk="
13465
13670
  }
package/API.md CHANGED
@@ -7686,6 +7686,113 @@ Specify valid logout URLs which should be added to the frontend user pool client
7686
7686
 
7687
7687
  ---
7688
7688
 
7689
+ ### DeploymentConfigExtensionProps <a name="DeploymentConfigExtensionProps" id="@btc-embedded/cdk-extensions.DeploymentConfigExtensionProps"></a>
7690
+
7691
+ Properties for configuring service deployment and capacity provider strategy.
7692
+
7693
+ #### Initializer <a name="Initializer" id="@btc-embedded/cdk-extensions.DeploymentConfigExtensionProps.Initializer"></a>
7694
+
7695
+ ```typescript
7696
+ import { DeploymentConfigExtensionProps } from '@btc-embedded/cdk-extensions'
7697
+
7698
+ const deploymentConfigExtensionProps: DeploymentConfigExtensionProps = { ... }
7699
+ ```
7700
+
7701
+ #### Properties <a name="Properties" id="Properties"></a>
7702
+
7703
+ | **Name** | **Type** | **Description** |
7704
+ | --- | --- | --- |
7705
+ | <code><a href="#@btc-embedded/cdk-extensions.DeploymentConfigExtensionProps.property.capacityProviderBase">capacityProviderBase</a></code> | <code>number</code> | The base value for the FARGATE_SPOT capacity provider. |
7706
+ | <code><a href="#@btc-embedded/cdk-extensions.DeploymentConfigExtensionProps.property.capacityProviderWeight">capacityProviderWeight</a></code> | <code>number</code> | The weight value for the FARGATE_SPOT capacity provider. |
7707
+ | <code><a href="#@btc-embedded/cdk-extensions.DeploymentConfigExtensionProps.property.maxHealthyPercent">maxHealthyPercent</a></code> | <code>number</code> | The maximum healthy percent for the service deployment. |
7708
+ | <code><a href="#@btc-embedded/cdk-extensions.DeploymentConfigExtensionProps.property.minHealthyPercent">minHealthyPercent</a></code> | <code>number</code> | The minimum healthy percent for the service deployment. |
7709
+ | <code><a href="#@btc-embedded/cdk-extensions.DeploymentConfigExtensionProps.property.useFargateSpotInstances">useFargateSpotInstances</a></code> | <code>boolean</code> | Whether to use the cluster's FARGATE_SPOT capacity provider strategy. |
7710
+
7711
+ ---
7712
+
7713
+ ##### `capacityProviderBase`<sup>Optional</sup> <a name="capacityProviderBase" id="@btc-embedded/cdk-extensions.DeploymentConfigExtensionProps.property.capacityProviderBase"></a>
7714
+
7715
+ ```typescript
7716
+ public readonly capacityProviderBase: number;
7717
+ ```
7718
+
7719
+ - *Type:* number
7720
+ - *Default:* 0
7721
+
7722
+ The base value for the FARGATE_SPOT capacity provider.
7723
+
7724
+ This is the minimum number of tasks that should use Fargate Spot.
7725
+ Only used when useCapacityProvider is true.
7726
+
7727
+ ---
7728
+
7729
+ ##### `capacityProviderWeight`<sup>Optional</sup> <a name="capacityProviderWeight" id="@btc-embedded/cdk-extensions.DeploymentConfigExtensionProps.property.capacityProviderWeight"></a>
7730
+
7731
+ ```typescript
7732
+ public readonly capacityProviderWeight: number;
7733
+ ```
7734
+
7735
+ - *Type:* number
7736
+ - *Default:* 1
7737
+
7738
+ The weight value for the FARGATE_SPOT capacity provider.
7739
+
7740
+ Higher values mean more tasks will use Fargate Spot.
7741
+ Only used when useCapacityProvider is true.
7742
+
7743
+ ---
7744
+
7745
+ ##### `maxHealthyPercent`<sup>Optional</sup> <a name="maxHealthyPercent" id="@btc-embedded/cdk-extensions.DeploymentConfigExtensionProps.property.maxHealthyPercent"></a>
7746
+
7747
+ ```typescript
7748
+ public readonly maxHealthyPercent: number;
7749
+ ```
7750
+
7751
+ - *Type:* number
7752
+ - *Default:* 200
7753
+
7754
+ The maximum healthy percent for the service deployment.
7755
+
7756
+ Controls how many additional tasks can be started during deployment.
7757
+
7758
+ ---
7759
+
7760
+ ##### `minHealthyPercent`<sup>Optional</sup> <a name="minHealthyPercent" id="@btc-embedded/cdk-extensions.DeploymentConfigExtensionProps.property.minHealthyPercent"></a>
7761
+
7762
+ ```typescript
7763
+ public readonly minHealthyPercent: number;
7764
+ ```
7765
+
7766
+ - *Type:* number
7767
+ - *Default:* 100
7768
+
7769
+ The minimum healthy percent for the service deployment.
7770
+
7771
+ Set to 0 to allow all tasks to be replaced at once for faster deployments
7772
+ where service interruption is acceptable.
7773
+
7774
+ ---
7775
+
7776
+ ##### `useFargateSpotInstances`<sup>Optional</sup> <a name="useFargateSpotInstances" id="@btc-embedded/cdk-extensions.DeploymentConfigExtensionProps.property.useFargateSpotInstances"></a>
7777
+
7778
+ ```typescript
7779
+ public readonly useFargateSpotInstances: boolean;
7780
+ ```
7781
+
7782
+ - *Type:* boolean
7783
+ - *Default:* false
7784
+
7785
+ Whether to use the cluster's FARGATE_SPOT capacity provider strategy.
7786
+
7787
+ When enabled, the service will use the capacity provider strategy
7788
+ configured at the cluster level (e.g., FARGATE_SPOT).
7789
+
7790
+ **Requirements:**
7791
+ - The ECS cluster must have capacity providers enabled
7792
+ (set `enableFargateSpotCapacityProvider: true` in EcsCluster)
7793
+
7794
+ ---
7795
+
7689
7796
  ### DocumentDbAccessExtensionProps <a name="DocumentDbAccessExtensionProps" id="@btc-embedded/cdk-extensions.DocumentDbAccessExtensionProps"></a>
7690
7797
 
7691
7798
  #### Initializer <a name="Initializer" id="@btc-embedded/cdk-extensions.DocumentDbAccessExtensionProps.Initializer"></a>
@@ -10927,6 +11034,243 @@ connected to the service.
10927
11034
  ---
10928
11035
 
10929
11036
 
11037
+ ### DeploymentConfigExtension <a name="DeploymentConfigExtension" id="@btc-embedded/cdk-extensions.DeploymentConfigExtension"></a>
11038
+
11039
+ Extension that configures ECS service deployment options and capacity provider strategy.
11040
+
11041
+ This extension allows you to:
11042
+ 1. Configure deployment parameters for faster or safer deployments
11043
+ 2. Enable the use of cluster's FARGATE_SPOT capacity provider strategy
11044
+
11045
+ #### Initializers <a name="Initializers" id="@btc-embedded/cdk-extensions.DeploymentConfigExtension.Initializer"></a>
11046
+
11047
+ ```typescript
11048
+ import { DeploymentConfigExtension } from '@btc-embedded/cdk-extensions'
11049
+
11050
+ new DeploymentConfigExtension(props?: DeploymentConfigExtensionProps)
11051
+ ```
11052
+
11053
+ | **Name** | **Type** | **Description** |
11054
+ | --- | --- | --- |
11055
+ | <code><a href="#@btc-embedded/cdk-extensions.DeploymentConfigExtension.Initializer.parameter.props">props</a></code> | <code><a href="#@btc-embedded/cdk-extensions.DeploymentConfigExtensionProps">DeploymentConfigExtensionProps</a></code> | *No description.* |
11056
+
11057
+ ---
11058
+
11059
+ ##### `props`<sup>Optional</sup> <a name="props" id="@btc-embedded/cdk-extensions.DeploymentConfigExtension.Initializer.parameter.props"></a>
11060
+
11061
+ - *Type:* <a href="#@btc-embedded/cdk-extensions.DeploymentConfigExtensionProps">DeploymentConfigExtensionProps</a>
11062
+
11063
+ ---
11064
+
11065
+ #### Methods <a name="Methods" id="Methods"></a>
11066
+
11067
+ | **Name** | **Description** |
11068
+ | --- | --- |
11069
+ | <code><a href="#@btc-embedded/cdk-extensions.DeploymentConfigExtension.addContainerMutatingHook">addContainerMutatingHook</a></code> | This hook allows another service extension to register a mutating hook for changing the primary container of this extension. |
11070
+ | <code><a href="#@btc-embedded/cdk-extensions.DeploymentConfigExtension.addHooks">addHooks</a></code> | A hook that allows the extension to add hooks to other extensions that are registered. |
11071
+ | <code><a href="#@btc-embedded/cdk-extensions.DeploymentConfigExtension.connectToService">connectToService</a></code> | This hook allows the extension to establish a connection to extensions from another service. |
11072
+ | <code><a href="#@btc-embedded/cdk-extensions.DeploymentConfigExtension.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. |
11073
+ | <code><a href="#@btc-embedded/cdk-extensions.DeploymentConfigExtension.modifyTaskDefinitionProps">modifyTaskDefinitionProps</a></code> | This is a hook which allows extensions to modify the settings of the task definition prior to it being created. |
11074
+ | <code><a href="#@btc-embedded/cdk-extensions.DeploymentConfigExtension.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. |
11075
+ | <code><a href="#@btc-embedded/cdk-extensions.DeploymentConfigExtension.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. |
11076
+ | <code><a href="#@btc-embedded/cdk-extensions.DeploymentConfigExtension.useService">useService</a></code> | When this hook is implemented by extension, it allows the extension to use the service which has been created. |
11077
+ | <code><a href="#@btc-embedded/cdk-extensions.DeploymentConfigExtension.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. |
11078
+
11079
+ ---
11080
+
11081
+ ##### `addContainerMutatingHook` <a name="addContainerMutatingHook" id="@btc-embedded/cdk-extensions.DeploymentConfigExtension.addContainerMutatingHook"></a>
11082
+
11083
+ ```typescript
11084
+ public addContainerMutatingHook(hook: ContainerMutatingHook): void
11085
+ ```
11086
+
11087
+ This hook allows another service extension to register a mutating hook for changing the primary container of this extension.
11088
+
11089
+ This is primarily used
11090
+ for the application extension. For example, the Firelens extension wants to
11091
+ be able to modify the settings of the application container to
11092
+ route logs through Firelens.
11093
+
11094
+ ###### `hook`<sup>Required</sup> <a name="hook" id="@btc-embedded/cdk-extensions.DeploymentConfigExtension.addContainerMutatingHook.parameter.hook"></a>
11095
+
11096
+ - *Type:* @aws-cdk-containers/ecs-service-extensions.ContainerMutatingHook
11097
+
11098
+ ---
11099
+
11100
+ ##### `addHooks` <a name="addHooks" id="@btc-embedded/cdk-extensions.DeploymentConfigExtension.addHooks"></a>
11101
+
11102
+ ```typescript
11103
+ public addHooks(): void
11104
+ ```
11105
+
11106
+ A hook that allows the extension to add hooks to other extensions that are registered.
11107
+
11108
+ ##### `connectToService` <a name="connectToService" id="@btc-embedded/cdk-extensions.DeploymentConfigExtension.connectToService"></a>
11109
+
11110
+ ```typescript
11111
+ public connectToService(service: Service, connectToProps?: ConnectToProps): void
11112
+ ```
11113
+
11114
+ This hook allows the extension to establish a connection to extensions from another service.
11115
+
11116
+ Usually used for things like
11117
+ allowing one service to talk to the load balancer or service mesh
11118
+ proxy for another service.
11119
+
11120
+ ###### `service`<sup>Required</sup> <a name="service" id="@btc-embedded/cdk-extensions.DeploymentConfigExtension.connectToService.parameter.service"></a>
11121
+
11122
+ - *Type:* @aws-cdk-containers/ecs-service-extensions.Service
11123
+
11124
+ The other service to connect to.
11125
+
11126
+ ---
11127
+
11128
+ ###### `connectToProps`<sup>Optional</sup> <a name="connectToProps" id="@btc-embedded/cdk-extensions.DeploymentConfigExtension.connectToService.parameter.connectToProps"></a>
11129
+
11130
+ - *Type:* @aws-cdk-containers/ecs-service-extensions.ConnectToProps
11131
+
11132
+ ---
11133
+
11134
+ ##### `modifyServiceProps` <a name="modifyServiceProps" id="@btc-embedded/cdk-extensions.DeploymentConfigExtension.modifyServiceProps"></a>
11135
+
11136
+ ```typescript
11137
+ public modifyServiceProps(props: ServiceBuild): ServiceBuild
11138
+ ```
11139
+
11140
+ 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.
11141
+
11142
+ ###### `props`<sup>Required</sup> <a name="props" id="@btc-embedded/cdk-extensions.DeploymentConfigExtension.modifyServiceProps.parameter.props"></a>
11143
+
11144
+ - *Type:* @aws-cdk-containers/ecs-service-extensions.ServiceBuild
11145
+
11146
+ ---
11147
+
11148
+ ##### `modifyTaskDefinitionProps` <a name="modifyTaskDefinitionProps" id="@btc-embedded/cdk-extensions.DeploymentConfigExtension.modifyTaskDefinitionProps"></a>
11149
+
11150
+ ```typescript
11151
+ public modifyTaskDefinitionProps(props: TaskDefinitionProps): TaskDefinitionProps
11152
+ ```
11153
+
11154
+ This is a hook which allows extensions to modify the settings of the task definition prior to it being created.
11155
+
11156
+ For example, the App Mesh
11157
+ extension needs to configure an Envoy proxy in the task definition,
11158
+ or the Application extension wants to set the overall resource for
11159
+ the task.
11160
+
11161
+ ###### `props`<sup>Required</sup> <a name="props" id="@btc-embedded/cdk-extensions.DeploymentConfigExtension.modifyTaskDefinitionProps.parameter.props"></a>
11162
+
11163
+ - *Type:* aws-cdk-lib.aws_ecs.TaskDefinitionProps
11164
+
11165
+ Properties of the task definition to be created.
11166
+
11167
+ ---
11168
+
11169
+ ##### `prehook` <a name="prehook" id="@btc-embedded/cdk-extensions.DeploymentConfigExtension.prehook"></a>
11170
+
11171
+ ```typescript
11172
+ public prehook(parent: Service, scope: Construct): void
11173
+ ```
11174
+
11175
+ A hook that is called for each extension ahead of time to allow for any initial setup, such as creating resources in advance.
11176
+
11177
+ ###### `parent`<sup>Required</sup> <a name="parent" id="@btc-embedded/cdk-extensions.DeploymentConfigExtension.prehook.parameter.parent"></a>
11178
+
11179
+ - *Type:* @aws-cdk-containers/ecs-service-extensions.Service
11180
+
11181
+ The parent service which this extension has been added to.
11182
+
11183
+ ---
11184
+
11185
+ ###### `scope`<sup>Required</sup> <a name="scope" id="@btc-embedded/cdk-extensions.DeploymentConfigExtension.prehook.parameter.scope"></a>
11186
+
11187
+ - *Type:* constructs.Construct
11188
+
11189
+ The scope that this extension should create resources in.
11190
+
11191
+ ---
11192
+
11193
+ ##### `resolveContainerDependencies` <a name="resolveContainerDependencies" id="@btc-embedded/cdk-extensions.DeploymentConfigExtension.resolveContainerDependencies"></a>
11194
+
11195
+ ```typescript
11196
+ public resolveContainerDependencies(): void
11197
+ ```
11198
+
11199
+ 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.
11200
+
11201
+ ##### `useService` <a name="useService" id="@btc-embedded/cdk-extensions.DeploymentConfigExtension.useService"></a>
11202
+
11203
+ ```typescript
11204
+ public useService(service: Ec2Service | FargateService): void
11205
+ ```
11206
+
11207
+ When this hook is implemented by extension, it allows the extension to use the service which has been created.
11208
+
11209
+ It is generally used to
11210
+ create any final resources which might depend on the service itself.
11211
+
11212
+ ###### `service`<sup>Required</sup> <a name="service" id="@btc-embedded/cdk-extensions.DeploymentConfigExtension.useService.parameter.service"></a>
11213
+
11214
+ - *Type:* aws-cdk-lib.aws_ecs.Ec2Service | aws-cdk-lib.aws_ecs.FargateService
11215
+
11216
+ ---
11217
+
11218
+ ##### `useTaskDefinition` <a name="useTaskDefinition" id="@btc-embedded/cdk-extensions.DeploymentConfigExtension.useTaskDefinition"></a>
11219
+
11220
+ ```typescript
11221
+ public useTaskDefinition(taskDefinition: TaskDefinition): void
11222
+ ```
11223
+
11224
+ 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.
11225
+
11226
+ ###### `taskDefinition`<sup>Required</sup> <a name="taskDefinition" id="@btc-embedded/cdk-extensions.DeploymentConfigExtension.useTaskDefinition.parameter.taskDefinition"></a>
11227
+
11228
+ - *Type:* aws-cdk-lib.aws_ecs.TaskDefinition
11229
+
11230
+ The created task definition to add containers to.
11231
+
11232
+ ---
11233
+
11234
+
11235
+ #### Properties <a name="Properties" id="Properties"></a>
11236
+
11237
+ | **Name** | **Type** | **Description** |
11238
+ | --- | --- | --- |
11239
+ | <code><a href="#@btc-embedded/cdk-extensions.DeploymentConfigExtension.property.name">name</a></code> | <code>string</code> | The name of the extension. |
11240
+ | <code><a href="#@btc-embedded/cdk-extensions.DeploymentConfigExtension.property.container">container</a></code> | <code>aws-cdk-lib.aws_ecs.ContainerDefinition</code> | The container for this extension. |
11241
+
11242
+ ---
11243
+
11244
+ ##### `name`<sup>Required</sup> <a name="name" id="@btc-embedded/cdk-extensions.DeploymentConfigExtension.property.name"></a>
11245
+
11246
+ ```typescript
11247
+ public readonly name: string;
11248
+ ```
11249
+
11250
+ - *Type:* string
11251
+
11252
+ The name of the extension.
11253
+
11254
+ ---
11255
+
11256
+ ##### `container`<sup>Optional</sup> <a name="container" id="@btc-embedded/cdk-extensions.DeploymentConfigExtension.property.container"></a>
11257
+
11258
+ ```typescript
11259
+ public readonly container: ContainerDefinition;
11260
+ ```
11261
+
11262
+ - *Type:* aws-cdk-lib.aws_ecs.ContainerDefinition
11263
+
11264
+ The container for this extension.
11265
+
11266
+ Most extensions have a container, but not
11267
+ every extension is required to have a container. Some extensions may just
11268
+ modify the properties of the service, or create external resources
11269
+ connected to the service.
11270
+
11271
+ ---
11272
+
11273
+
10930
11274
  ### DocumentDbAccessExtension <a name="DocumentDbAccessExtension" id="@btc-embedded/cdk-extensions.DocumentDbAccessExtension"></a>
10931
11275
 
10932
11276
  #### Initializers <a name="Initializers" id="@btc-embedded/cdk-extensions.DocumentDbAccessExtension.Initializer"></a>
package/CHANGELOG.md CHANGED
@@ -1,4 +1,6 @@
1
1
 
2
+ ## [0.20.3](https://github.com/btc-embedded/cdk-extensions/compare/v0.20.2...v0.20.3) (2026-01-16)
3
+
2
4
  ## [0.20.2](https://github.com/btc-embedded/cdk-extensions/compare/v0.20.1...v0.20.2) (2026-01-16)
3
5
 
4
6
 
@@ -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.20.3" };
148
+ EventPipe[_a] = { fqn: "@btc-embedded/cdk-extensions.EventPipe", version: "0.20.4" };
149
149
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXZlbnRQaXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbnN0cnVjdHMvRXZlbnRQaXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsNkNBQTBDO0FBQzFDLGlEQUE2RDtBQUU3RCxxREFBZ0Q7QUFHaEQsd0RBQXFEO0FBQ3JELDBDQUEwQztBQUMxQyx3RUFBdUU7QUFzQ3ZFLElBQVksUUFpQlg7QUFqQkQsV0FBWSxRQUFRO0lBQ2xCOztPQUVHO0lBQ0gsdUJBQVcsQ0FBQTtJQUNYOztPQUVHO0lBQ0gsMkJBQWUsQ0FBQTtJQUNmOztPQUVHO0lBQ0gseUJBQWEsQ0FBQTtJQUNiOztPQUVHO0lBQ0gsMkJBQWUsQ0FBQTtBQUNqQixDQUFDLEVBakJXLFFBQVEsd0JBQVIsUUFBUSxRQWlCbkI7QUFFRDs7R0FFRztBQUNILElBQVksY0FjWDtBQWRELFdBQVksY0FBYztJQUN4Qjs7Ozs7T0FLRztJQUNILDJFQUFnQixDQUFBO0lBQ2hCOzs7O09BSUc7SUFDSCx5RUFBZSxDQUFBO0FBQ2pCLENBQUMsRUFkVyxjQUFjLDhCQUFkLGNBQWMsUUFjekI7QUEyRkQ7O0dBRUc7QUFDSCxNQUFhLFNBQVUsU0FBUSxxQkFBUztJQUd0QyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQXFCO1FBQzdELEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIsSUFBSSxrQkFBa0IsR0FDcEIsY0FBYyxJQUFJLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFDekUsSUFBSSw0QkFBNEIsR0FDOUIsWUFBWSxJQUFJLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFFckUsSUFBSSxXQUFXLEdBQUcsT0FBTyxJ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QUUsQ0FBQztRQUVQLElBQUksbUJBQU8sQ0FBQyxJQUFJLEVBQUUsV0FBVyxFQUFFO1lBQzdCLEdBQUcsaUJBQWlCO1lBQ3BCLE9BQU8sRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU87WUFDMUIsTUFBTSxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsUUFBUTtZQUM3QixNQUFNLEVBQUUsU0FBUztZQUNqQixnQkFBZ0IsRUFBRSxnQkFBZ0I7WUFDbEMsZ0JBQWdCLEVBQUUsZ0JBQWdCO1lBQ2xDLFlBQVksRUFBRSxZQUFZO1NBQzNCLENBQUMsQ0FBQztRQUVILEtBQUssQ0FBQyxNQUFNLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzdDLFdBQVcsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDMUMsa0JBQWtCLEVBQUUsbUJBQW1CLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ25ELFFBQVEsRUFBRSxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFTyxjQUFjLENBQUMsS0FBcUI7UUFDMUMsT0FBTyxLQUFLLENBQUMsUUFBUSxLQUFLLFNBQVMsSUFBSSxLQUFLLENBQUMsUUFBUSxLQUFLLFFBQVEsQ0FBQyxHQUFHLENBQUM7SUFDekUsQ0FBQzs7QUE5R0gsOEJBK0dDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQW5ub3RhdGlvbnMgfSBmcm9tIFwiYXdzLWNkay1saWJcIjtcbmltcG9ydCB7IFJvbGUsIFNlcnZpY2VQcmluY2lwYWwgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWlhbVwiO1xuaW1wb3J0IHsgSUxvZ0dyb3VwIH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1sb2dzXCI7XG5pbXBvcnQgeyBDZm5QaXBlIH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1waXBlc1wiO1xuaW1wb3J0IHsgSVF1ZXVlIH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1zcXNcIjtcbmltcG9ydCB7IElTdGF0ZU1hY2hpbmUgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLXN0ZXBmdW5jdGlvbnNcIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzL2xpYi9jb25zdHJ1Y3RcIjtcbmltcG9ydCB7IEJUQ0xvZ0dyb3VwIH0gZnJvbSBcIi4uL3BsYXRmb3JtXCI7XG5pbXBvcnQgeyBpc0RlYWN0aXZhdGVkQ29uc3RydWN0IH0gZnJvbSBcIi4uL3V0aWxzL2RlYWN0aXZhdGVkQ29uc3RydWN0XCI7XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgcGlwZSBjb25zdHJ1Y3Rpb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRXZlbnRQaXBlUHJvcHMge1xuICAvKipcbiAgICogVGhlIHNvdXJjZSBTUVMgcXVldWUuIE5vIG90aGVyIHNvdXJjZSB0eXBlcyBhcmUgc3VwcG9ydGVkIGF0IHRoZSBtb21lbnQuXG4gICAqL1xuICByZWFkb25seSBzb3VyY2U6IElRdWV1ZTtcblxuICAvKipcbiAgICogVGhlIHRhcmdldCBTUVMgcXVldWUgb3IgdGFyZ2V0IHN0ZXAgZnVuY3Rpb24uXG4gICAqL1xuICByZWFkb25seSB0YXJnZXQ6IFRhcmdldFF1ZXVlIHwgVGFyZ2V0U3RlcEZ1bmN0aW9uO1xuXG4gIC8qKlxuICAgKiBUaGUgcm9sZSB1c2VkIGJ5IHRoZSBldmVudCBwaXBlLiBJZiBvbWl0dGVkLCBhIG5ldyByb2xlIGlzIGNyZWF0ZWQuXG4gICAqL1xuICByZWFkb25seSByb2xlPzogUm9sZTtcblxuICAvKipcbiAgICogQW4gb3B0aW9uYWwgZmlsdGVyIGZvciB0aGUgcGlwZS5cbiAgICovXG4gIHJlYWRvbmx5IGZpbHRlcj86IFBpcGVGaWx0ZXI7XG5cbiAgLyoqXG4gICAqIFNldCB0aGUgbG9nIGxldmVsIGZvciB0aGUgcGlwZS4gQ3JlYXRlcyBhIG5ldyBsb2cgZ3JvdXAsIGlmIGVuYWJsZWQuXG4gICAqIERlZmF1bHQ6IERpc2FibGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgbG9nTGV2ZWw/OiBMb2dMZXZlbDtcblxuICAvKipcbiAgICogVXNlIGFuIGV4aXN0aW5nIGxvZyBncm91cC4gSWYgbm9uZSBpcyBnaXZlbiBhbmQgbG9nZ2luZyBpcyBlbmFibGVkLCBhIG5ldyBsb2cgZ3JvdXAgd2lsbCBiZSBjcmVhdGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgbG9nR3JvdXA/OiBJTG9nR3JvdXA7XG59XG5cbmV4cG9ydCBlbnVtIExvZ0xldmVsIHtcbiAgLyoqXG4gICAqIERlYWN0aXZhdGUgbG9nZ2luZy4gTm8gbG9nIGdyb3VwIHdpbGwgYmUgY3JlYXRlZC5cbiAgICovXG4gIE9GRiA9IFwiT0ZGXCIsXG4gIC8qKlxuICAgKiBPbmx5IGxvZyBlcnJvcnMuXG4gICAqL1xuICBFUlJPUiA9IFwiRVJST1JcIixcbiAgLyoqXG4gICAqIExvZyBlcnJvcnMgYW5kIGluZm9ybWF0aW9uYWwgbWVzc2FnZXMuXG4gICAqL1xuICBJTkZPID0gXCJJTkZPXCIsXG4gIC8qKlxuICAgKiBMb2cgdmVyeSB2ZXJib3NlLlxuICAgKi9cbiAgVFJBQ0UgPSBcIlRSQUNFXCIsXG59XG5cbi8qKlxuICogVGhlIGludm9jYXRpb24gdHlwZSBvZiB0aGUgc3RlcCBmdW5jdGlvbi5cbiAqL1xuZXhwb3J0IGVudW0gSW52b2NhdGlvblR5cGUge1xuICAvKipcbiAgICogKGRlZmF1bHQpIC0gSW52b2tlIHN5bmNocm9ub3VzbHkuIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWVcbiAgICogW1N0YXJ0U3luY0V4ZWN1dGlvbl0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL3N0ZXAtZnVuY3Rpb25zL2xhdGVzdC9hcGlyZWZlcmVuY2UvQVBJX1N0YXJ0U3luY0V4ZWN1dGlvbi5odG1sKVxuICAgKiBpbiB0aGUgKkFXUyBTdGVwIEZ1bmN0aW9ucyBBUEkgUmVmZXJlbmNlKi5cbiAgICogPiBgUkVRVUVTVF9SRVNQT05TRWAgaXMgbm90IHN1cHBvcnRlZCBmb3IgYFNUQU5EQVJEYCBzdGF0ZSBtYWNoaW5lIHdvcmtmbG93cy5cbiAgICovXG4gIFJFUVVFU1RfUkVTUE9OU0UsXG4gIC8qKlxuICAgKiBJbnZva2UgYXN5bmNocm9ub3VzbHkuIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWVcbiAgICogW1N0YXJ0RXhlY3V0aW9uXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vc3RlcC1mdW5jdGlvbnMvbGF0ZXN0L2FwaXJlZmVyZW5jZS9BUElfU3RhcnRFeGVjdXRpb24uaHRtbClcbiAgICogaW4gdGhlICpBV1MgU3RlcCBGdW5jdGlvbnMgQVBJIFJlZmVyZW5jZSouXG4gICAqL1xuICBGSVJFX0FORF9GT1JHRVQsXG59XG5cbi8qKlxuICogVGhlIGlucHV0IHRlbXBsYXRlLlxuICogTm90ZSB0aGF0IHNvbWUgdmFsdWVzIGluIHRoZSByZXN1bHRpbmcgY29kZSBzaG91bGQgbm90IGhhdmUgcXVvdGVzIGFyb3VuZCB0aGUgdmFsdWUsIGUuZy4gaWYgYW4gb2JqZWN0XG4gKiBzaGFsbCBiZSBhZGRlZC4gVG8gcmVmbGVjdCB0aGlzLCBhZGQgY3VybHkgYnJhY2tldHMgYXJvdW5kIHRoZSB2YWx1ZSwgZS5nLiBge3s8JC5ib2R5Pn19YC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJbnB1dFRlbXBsYXRlIHtcbiAgLyoqXG4gICAqIEBqc2lpIGlnbm9yZVxuICAgKi9cbiAgcmVhZG9ubHkgW2tleTogc3RyaW5nXTogc3RyaW5nO1xufVxuXG4vKipcbiAqIFNRUyBxdWV1ZSBhcyBwaXBlIHRhcmdldC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUYXJnZXRRdWV1ZSB7XG4gIHJlYWRvbmx5IHF1ZXVlOiBJUXVldWU7XG59XG5cbi8qKlxuICogU3RlcEZ1bmN0aW9uIGFzIHBpcGUgdGFyZ2V0LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRhcmdldFN0ZXBGdW5jdGlvbiB7XG4gIHJlYWRvbmx5IHN0ZXBGdW5jdGlvbjogSVN0YXRlTWFjaGluZTtcbiAgcmVhZG9ubHkgcGFyYW1ldGVycz86IFRhcmdldFN0ZXBGdW5jdGlvblBhcmFtZXRlcnM7XG59XG5cbi8qKlxuICogUGFyYW1ldGVycyBmb3IgYSBzdGVwIGZ1bmN0aW9uIHRhcmdldC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUYXJnZXRTdGVwRnVuY3Rpb25QYXJhbWV0ZXJzIHtcbiAgcmVhZG9ubHkgaW5wdXRUZW1wbGF0ZT86IElucHV0VGVtcGxhdGU7XG4gIHJlYWRvbmx5IGludm9jYXRpb25UeXBlPzogSW52b2NhdGlvblR5cGU7XG59XG5cbi8qKlxuICogQmFzZSB0eXBlIGZvciBmaWx0ZXIgcnVsZXMuIE5vdCBhbGwgYXZhaWxhYmxlIHJ1bGVzIGFyZSBjdXJyZW50bHkgaW1wbGVtZW50ZWQuXG4gKi9cbmV4cG9ydCB0eXBlIEZpbHRlclJ1bGUgPVxuICB8IFByZWZpeEZpbHRlclJ1bGVcbiAgfCBTdWZmaXhGaWx0ZXJSdWxlXG4gIHwgQW55dGhpbmdCdXRGaWx0ZXJSdWxlXG4gIHwgRmlsdGVyRXF1YWxzSWdub3JlQ2FzZTtcblxuLyoqXG4gKiBSdWxlIHRoYXQgYSBwcm9wZXJ0eSBoYXMgdG8gc3RhcnQgd2l0aCBhIHByZWZpeC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQcmVmaXhGaWx0ZXJSdWxlIHtcbiAgcmVhZG9ubHkgcHJlZml4OiBzdHJpbmcgfCBGaWx0ZXJFcXVhbHNJZ25vcmVDYXNlO1xufVxuXG4vKipcbiAqIFJ1bGUgdGhhdCBhIHByb3BlcnR5IGhhcyB0byBlbmQgd2l0aCBhIHN1ZmZpeC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTdWZmaXhGaWx0ZXJSdWxlIHtcbiAgcmVhZG9ubHkgc3VmZml4OiBzdHJpbmcgfCBGaWx0ZXJFcXVhbHNJZ25vcmVDYXNlO1xufVxuXG4vKipcbiAqIFJ1bGUgdGhhdCBhbGxvd3MgYWxsIHZhbHVlcyBleGNlcHQgdGhlIGdpdmVuIG9uZXMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQW55dGhpbmdCdXRGaWx0ZXJSdWxlIHtcbiAgLyoqXG4gICAqIEBqc2lpIGlnbm9yZVxuICAgKi9cbiAgcmVhZG9ubHkgXCJhbnl0aGluZy1idXRcIjogc3RyaW5nW10gfCBGaWx0ZXJSdWxlO1xufVxuXG4vKipcbiAqIFJ1bGUgdGhhdCBtYXRjaGVzIGEgc3RyaW5nLCBpZ25vcmluZyB0aGUgY2FzZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBGaWx0ZXJFcXVhbHNJZ25vcmVDYXNlIHtcbiAgLyoqXG4gICAqIEBqc2lpIGlnbm9yZVxuICAgKi9cbiAgcmVhZG9ubHkgXCJlcXVhbHMtaWdub3JlLWNhc2VcIjogc3RyaW5nIHwgc3RyaW5nW107XG59XG5cbi8qKlxuICogQSBmaWx0ZXIgZm9yIG1lc3NhZ2VzIGluIHRoZSBwaXBlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFBpcGVGaWx0ZXIge1xuICAvKipcbiAgICogVGhlIHJ1bGVzIGZvciBlYWNoIGF0dHJpYnV0ZSBvZiB0aGUgYm9keS5cbiAgICogQGpzaWkgaWdub3JlXG4gICAqL1xuICByZWFkb25seSBba2V5OiBzdHJpbmddOiBGaWx0ZXJSdWxlW107XG59XG5cbi8qKlxuICogQSB3cmFwcGVyIGZvciB0aGUgTDEgZXZlbnQgcGlwZSB3aXRoIHRoZSBhYmlsaXR5IHRvIGRlYWN0aXZhdGUgaXQgd2l0aGluIHRoZSBzdGFjay5cbiAqL1xuZXhwb3J0IGNsYXNzIEV2ZW50UGlwZSBleHRlbmRzIENvbnN0cnVjdCB7XG4gIHB1YmxpYyByZWFkb25seSByb2xlOiBSb2xlO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBFdmVudFBpcGVQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICBsZXQgdGFyZ2V0U3RlcEZ1bmN0aW9uID1cbiAgICAgIFwic3RlcEZ1bmN0aW9uXCIgaW4gcHJvcHMudGFyZ2V0ID8gcHJvcHMudGFyZ2V0LnN0ZXBGdW5jdGlvbiA6IHVuZGVmaW5lZDtcbiAgICBsZXQgdGFyZ2V0U3RlcEZ1bmN0aW9uUGFyYW1ldGVycyA9XG4gICAgICBcInBhcmFtZXRlcnNcIiBpbiBwcm9wcy50YXJnZXQgPyBwcm9wcy50YXJnZXQucGFyYW1ldGVycyA6IHVuZGVmaW5lZDtcblxuICAgIGxldCB0YXJnZXRRdWV1ZSA9IFwicXVldWVcIiBpbiBwcm9wcy50YXJnZXQgPyBwcm9wcy50YXJnZXQucXVldWUgOiB1bmRlZmluZWQ7XG5cbiAgICBsZXQgc3FzVGFyZ2V0ID0gdGFyZ2V0UXVldWUgIT09IHVuZGVmaW5lZDtcblxuICAgIGxldCB0YXJnZXRBcm4gPSBzcXNUYXJnZXRcbiAgICAgID8gdGFyZ2V0UXVldWUhLnF1ZXVlQXJuXG4gICAgICA6IHRhcmdldFN0ZXBGdW5jdGlvbiEuc3RhdGVNYWNoaW5lQXJuO1xuXG4gICAgbGV0IGRlc2lyZWRTdGF0ZSA9IFwiUlVOTklOR1wiO1xuICAgIGlmIChpc0RlYWN0aXZhdGVkQ29uc3RydWN0KGlkKSkge1xuICAgICAgQW5ub3RhdGlvbnMub2YodGhpcykuYWRkSW5mbyhgJHtpZH0gaXMgc2V0IGRvIGJlIGRlYWN0aXZhdGVkLmApO1xuICAgICAgZGVzaXJlZFN0YXRlID0gXCJTVE9QUEVEXCI7XG4gICAgfVxuXG4gICAgdGhpcy5yb2xlID1cbiAgICAgIHByb3BzLnJvbGUgfHxcbiAgICAgIG5ldyBSb2xlKHRoaXMsIFwiRXZlbnRQaXBlUm9sZVwiLCB7XG4gICAgICAgIGFzc3VtZWRCeTogbmV3IFNlcnZpY2VQcmluY2lwYWwoXCJwaXBlcy5hbWF6b25hd3MuY29tXCIpLFxuICAgICAgfSk7XG5cbiAgICBsZXQgZmlsdGVyQ3JpdGVyaWEgPSBwcm9wcy5maWx0ZXJcbiAgICAgID8ge1xuICAgICAgICAgIGZpbHRlcnM6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgcGF0dGVybjogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgIGJvZHk6IHtcbiAgICAgICAgICAgICAgICAgIC4uLnByb3BzLmZpbHRlcixcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgfVxuICAgICAgOiB1bmRlZmluZWQ7XG5cbiAgICBsZXQgdGFyZ2V0UGFyYW1ldGVyczogQ2ZuUGlwZS5QaXBlVGFyZ2V0UGFyYW1ldGVyc1Byb3BlcnR5ID0ge307XG4gICAgaWYgKHRhcmdldFF1ZXVlKSB7XG4gICAgICB0YXJnZXRQYXJhbWV0ZXJzID0ge1xuICAgICAgICBzcXNRdWV1ZVBhcmFtZXRlcnM6IHtcbiAgICAgICAgICBtZXNzYWdlR3JvdXBJZDogXCJkZWZhdWx0XCIsXG4gICAgICAgIH0sXG4gICAgICB9O1xuICAgIH0gZWxzZSB7XG4gICAgICB0YXJnZXRQYXJhbWV0ZXJzID0ge1xuICAgICAgICBzdGVwRnVuY3Rpb25TdGF0ZU1hY2hpbmVQYXJhbWV0ZXJzOiB7XG4gICAgICAgICAgaW52b2NhdGlvblR5cGU6IHRhcmdldFN0ZXBGdW5jdGlvblBhcmFtZXRlcnM/Lmludm9jYXRpb25UeXBlXG4gICAgICAgICAgICA/IEludm9jYXRpb25UeXBlW3RhcmdldFN0ZXBGdW5jdGlvblBhcmFtZXRlcnMuaW52b2NhdGlvblR5cGVdXG4gICAgICAgICAgICA6IEludm9jYXRpb25UeXBlW0ludm9jYXRpb25UeXBlLlJFUVVFU1RfUkVTUE9OU0VdLFxuICAgICAgICB9LFxuICAgICAgICAuLi4odGFyZ2V0U3RlcEZ1bmN0aW9uUGFyYW1ldGVycz8uaW5wdXRUZW1wbGF0ZSAmJiB7XG4gICAgICAgICAgaW5wdXRUZW1wbGF0ZTogSlNPTi5zdHJpbmdpZnkoXG4gICAgICAgICAgICB0YXJnZXRTdGVwRnVuY3Rpb25QYXJhbWV0ZXJzLmlucHV0VGVtcGxhdGUsXG4gICAgICAgICAgKS5yZXBsYWNlKC9cIlxce1xceyguKz8pXFx9XFx9XCIvLCBcIiQxXCIpLFxuICAgICAgICB9KSxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgbGV0IHNvdXJjZVBhcmFtZXRlcnMgPSB7XG4gICAgICBzcXNRdWV1ZVBhcmFtZXRlcnM6IHtcbiAgICAgICAgYmF0Y2hTaXplOiAxLFxuICAgICAgfSxcbiAgICAgIC4uLihmaWx0ZXJDcml0ZXJpYSAmJiB7IGZpbHRlckNyaXRlcmlhOiBmaWx0ZXJDcml0ZXJpYSB9KSxcbiAgICB9O1xuXG4gICAgY29uc3QgbG9nR3JvdXAgPSB0aGlzLmxvZ2dpbmdFbmFibGVkKHByb3BzKVxuICAgICAgPyAocHJvcHMubG9nR3JvdXAgPz9cbiAgICAgICAgbmV3IEJUQ0xvZ0dyb3VwKHRoaXMsIFwiRXZlbnRQaXBlTG9nR3JvdXBcIiwge1xuICAgICAgICAgIGxvZ1R5cGU6IFwiZXZlbnQtcGlwZVwiLFxuICAgICAgICB9KSlcbiAgICAgIDogdW5kZWZpbmVkO1xuXG4gICAgY29uc3QgcGlwZUNvbmZpZ3VyYXRpb24gPSB0aGlzLmxvZ2dpbmdFbmFibGVkKHByb3BzKVxuICAgICAgPyB7XG4gICAgICAgICAgbG9nQ29uZmlndXJhdGlvbjoge1xuICAgICAgICAgICAgY2xvdWR3YXRjaExvZ3NMb2dEZXN0aW5hdGlvbjoge1xuICAgICAgICAgICAgICBsb2dHcm91cEFybjogbG9nR3JvdXAhLmxvZ0dyb3VwQXJuLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGxldmVsOiBwcm9wcy5sb2dMZXZlbCxcbiAgICAgICAgICB9LFxuICAgICAgICB9XG4gICAgICA6IHt9O1xuXG4gICAgbmV3IENmblBpcGUodGhpcywgXCJFdmVudFBpcGVcIiwge1xuICAgICAgLi4ucGlwZUNvbmZpZ3VyYXRpb24sXG4gICAgICByb2xlQXJuOiB0aGlzLnJvbGUucm9sZUFybixcbiAgICAgIHNvdXJjZTogcHJvcHMuc291cmNlLnF1ZXVlQXJuLFxuICAgICAgdGFyZ2V0OiB0YXJnZXRBcm4sXG4gICAgICBzb3VyY2VQYXJhbWV0ZXJzOiBzb3VyY2VQYXJhbWV0ZXJzLFxuICAgICAgdGFyZ2V0UGFyYW1ldGVyczogdGFyZ2V0UGFyYW1ldGVycyxcbiAgICAgIGRlc2lyZWRTdGF0ZTogZGVzaXJlZFN0YXRlLFxuICAgIH0pO1xuXG4gICAgcHJvcHMuc291cmNlLmdyYW50Q29uc3VtZU1lc3NhZ2VzKHRoaXMucm9sZSk7XG4gICAgdGFyZ2V0UXVldWU/LmdyYW50U2VuZE1lc3NhZ2VzKHRoaXMucm9sZSk7XG4gICAgdGFyZ2V0U3RlcEZ1bmN0aW9uPy5ncmFudFN0YXJ0RXhlY3V0aW9uKHRoaXMucm9sZSk7XG4gICAgbG9nR3JvdXA/LmdyYW50V3JpdGUodGhpcy5yb2xlKTtcbiAgfVxuXG4gIHByaXZhdGUgbG9nZ2luZ0VuYWJsZWQocHJvcHM6IEV2ZW50UGlwZVByb3BzKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHByb3BzLmxvZ0xldmVsICE9PSB1bmRlZmluZWQgJiYgcHJvcHMubG9nTGV2ZWwgIT09IExvZ0xldmVsLk9GRjtcbiAgfVxufVxuIl19
@@ -135,5 +135,5 @@ class ExportedService extends ExportedServiceBase {
135
135
  }
136
136
  exports.ExportedService = ExportedService;
137
137
  _a = JSII_RTTI_SYMBOL_1;
138
- ExportedService[_a] = { fqn: "@btc-embedded/cdk-extensions.ExportedService", version: "0.20.3" };
138
+ ExportedService[_a] = { fqn: "@btc-embedded/cdk-extensions.ExportedService", version: "0.20.4" };
139
139
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXhwb3J0ZWRTZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbnN0cnVjdHMvRXhwb3J0ZWRTZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQ0EsaURBSzZCO0FBQzdCLDJDQUF1QztBQUN2QyxvQ0FBMEM7QUFDMUMsNENBQTRDO0FBOEQ1Qzs7Ozs7R0FLRztBQUNILE1BQWUsbUJBQ2IsU0FBUSxzQkFBUztJQVFqQixZQUNFLEtBQWdCLEVBQ2hCLEVBQVUsRUFDVixXQUFtQixFQUNuQixhQUFxQixFQUNyQixJQUFZLEVBQ1osYUFBNkI7UUFFN0IsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNqQixJQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQztRQUMvQixJQUFJLENBQUMsYUFBYSxHQUFHLGFBQWEsQ0FBQztRQUNuQyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNqQixJQUFJLENBQUMsYUFBYSxHQUFHLGFBQWEsQ0FBQztJQUNyQyxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksTUFBTTtRQUNYLE9BQU8sVUFBVSxJQUFJLENBQUMsV0FBVyxJQUFJLElBQUksQ0FBQyxhQUFhLElBQUksSUFBSSxDQUFDLElBQUksR0FBRyxDQUFDO0lBQzFFLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILElBQUksV0FBVztRQUNiLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUM7SUFDeEMsQ0FBQztJQUVEOzs7Ozs7OztPQVFHO0lBQ0ksU0FBUyxDQUNkLE9BQWdCLEVBQ2hCLGNBQXNCLG1DQUFtQztRQUV6RCxJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQ3RDLE9BQU8sQ0FBQyxVQUFVLEVBQ2xCLGNBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUNuQixXQUFXLENBQ1osQ0FBQztJQUNKLENBQUM7Q0FDRjtBQUVEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTZCRztBQUNILE1BQWEsZUFBZ0IsU0FBUSxtQkFBbUI7SUFDdEQ7Ozs7Ozs7Ozs7O09BV0c7SUFDSSxNQUFNLENBQUMsY0FBYyxDQUMxQixLQUFnQixFQUNoQixFQUFVLEVBQ1YsS0FBbUM7UUFFbkMsTUFBTSxxQkFBcUIsR0FBRyxJQUFBLGtCQUFTLEVBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQzNELE1BQU0sZUFBZSxHQUFHLGVBQWUsQ0FBQyxxQkFBcUIsQ0FDM0QscUJBQXFCLENBQ3RCLENBQUM7UUFFRixNQUFNLGVBQWUsR0FBRyxlQUFlLENBQUMsc0JBQXNCLENBQUMsTUFBTSxDQUNuRSxLQUFLLENBQUMsU0FBUyxDQUNoQixDQUFDO1FBQ0YsTUFBTSxhQUFhLEdBQUcsZUFBZSxDQUFDLGtCQUFrQixDQUFDLE1BQU0sQ0FDN0QsS0FBSyxDQUFDLFNBQVMsQ0FDaEIsQ0FBQztRQUVGLE1BQU0sYUFBYSxHQUFHLHVCQUFhLENBQUMsbUJBQW1CLENBQ3JELEtBQUssRUFDTCx1QkFBdUIsRUFDdkIsZUFBZSxFQUNmLEVBQUUsZ0JBQWdCLEVBQUUsSUFBSSxFQUFFLENBQzNCLENBQUM7UUFFRixNQUFNLE1BQU8sU0FBUSxtQkFBbUI7WUFDdEM7Z0JBQ0UsS0FBSyxDQUNILEtBQUssRUFDTCxFQUFFLEVBQ0YscUJBQXFCLEVBQ3JCLGFBQWEsRUFDYixLQUFLLENBQUMsSUFBSSxFQUNWLGFBQWEsQ0FDZCxDQUFDO1lBQ0osQ0FBQztTQUNGO1FBRUQsT0FBTyxJQUFJLE1BQU0sRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFDTyxNQUFNLENBQUMscUJBQXFCLENBQUMsV0FBbUI7UUFDdEQsT0FBTztZQUNMLHNCQUFzQixFQUFFLElBQUksc0JBQWMsQ0FBQztnQkFDekMsTUFBTSxFQUFFLENBQUMsa0JBQWtCLEVBQUUsV0FBVyxDQUFDO2dCQUN6QyxHQUFHLEVBQUUsbUJBQW1CO2dCQUN4QixXQUFXLEVBQUUsK0NBQStDO2FBQzdELENBQUM7WUFDRixrQkFBa0IsRUFBRSxJQUFJLHNCQUFjLENBQUM7Z0JBQ3JDLE1BQU0sRUFBRSxDQUFDLGtCQUFrQixFQUFFLFdBQVcsQ0FBQztnQkFDekMsR0FBRyxFQUFFLFdBQVc7Z0JBQ2hCLFdBQVcsRUFBRSxnREFBZ0Q7YUFDOUQsQ0FBQztTQUNILENBQUM7SUFDSixDQUFDO0lBTUQsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUEyQjtRQUNuRSxNQUFNLHFCQUFxQixHQUFHLElBQUEsa0JBQVMsRUFBQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDM0QsS0FBSyxDQUNILEtBQUssRUFDTCxFQUFFLEVBQ0YscUJBQXFCLEVBQ3JCLEtBQUssQ0FBQyxhQUFhLEVBQ25CLENBQUMsRUFBRSwyREFBMkQ7UUFDOUQsS0FBSyxDQUFDLGFBQWEsQ0FDcEIsQ0FBQztRQUVGLElBQUksQ0FBQyxlQUFlLEdBQUcsZUFBZSxDQUFDLHFCQUFxQixDQUMxRCxxQkFBcUIsQ0FDdEIsQ0FBQztRQUVGLHNEQUFzRDtRQUN0RCxJQUFJLENBQUMsZUFBZSxDQUFDLHNCQUFzQixDQUFDLE1BQU0sQ0FDaEQsSUFBSSxFQUNKLEtBQUssQ0FBQyxhQUFhLENBQUMsZUFBZSxDQUNwQyxDQUFDO1FBQ0YsSUFBSSxDQUFDLGVBQWUsQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUM1RSxDQUFDOztBQTVGSCwwQ0E2RkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTZXJ2aWNlIH0gZnJvbSBcIkBhd3MtY2RrLWNvbnRhaW5lcnMvZWNzLXNlcnZpY2UtZXh0ZW5zaW9uc1wiO1xuaW1wb3J0IHtcbiAgSUNvbm5lY3RhYmxlLFxuICBJU2VjdXJpdHlHcm91cCxcbiAgUG9ydCxcbiAgU2VjdXJpdHlHcm91cCxcbn0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1lYzJcIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgeyBTdGFja1BhcmFtZXRlciB9IGZyb20gXCIuLi91dGlsc1wiO1xuaW1wb3J0IHsga2ViYWJDYXNlIH0gZnJvbSBcIi4uL3V0aWxzL2NvbW1vblwiO1xuXG4vKipcbiAqIE9wdGlvbnMgZm9yIGltcG9ydGluZyBhbiBFeHBvcnRlZFNlcnZpY2UgZnJvbSBhbm90aGVyIHN0YWNrLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEV4cG9ydGVkU2VydmljZUxvb2t1cE9wdGlvbnMge1xuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIHN0YWNrIHdoZXJlIHRoZSBzZXJ2aWNlIHdhcyBleHBvcnRlZC5cbiAgICovXG4gIHJlYWRvbmx5IHN0YWNrTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgZXhwb3J0ZWQgRUNTIHNlcnZpY2UuXG4gICAqL1xuICByZWFkb25seSBzZXJ2aWNlTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgcG9ydCBvbiB3aGljaCB0aGUgc2VydmljZSBpcyBsaXN0ZW5pbmcuXG4gICAqL1xuICByZWFkb25seSBwb3J0OiBudW1iZXI7XG59XG5cbi8qKlxuICogUHVibGljIGludGVyZmFjZSBmb3IgYW4gRXhwb3J0ZWRTZXJ2aWNlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIElFeHBvcnRlZFNlcnZpY2UgZXh0ZW5kcyBJQ29ubmVjdGFibGUge1xuICAvKipcbiAgICogVGhlIHNlY3VyaXR5IGdyb3VwIG9mIHRoZSBleHBvcnRlZCBFQ1Mgc2VydmljZS5cbiAgICovXG4gIHJlYWRvbmx5IHNlY3VyaXR5R3JvdXA6IElTZWN1cml0eUdyb3VwO1xuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGludGVybmFsIEFQSSBVUkwgb2YgdGhlIHNlcnZpY2UuXG4gICAqL1xuICBhcGlVcmwoKTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBbGxvdyBhbiBFQ1Mgc2VydmljZSB0byBjb25uZWN0IHRvIHRoaXMgZXhwb3J0ZWQgc2VydmljZS5cbiAgICovXG4gIGFsbG93RnJvbShzZXJ2aWNlOiBTZXJ2aWNlLCBkZXNjcmlwdGlvbj86IHN0cmluZyk6IHZvaWQ7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgY3JlYXRpbmcgYSBuZXcgRXhwb3J0ZWRTZXJ2aWNlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEV4cG9ydGVkU2VydmljZVByb3BzIHtcbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBFQ1Mgc2VydmljZSBiZWluZyBleHBvcnRlZC5cbiAgICovXG4gIHJlYWRvbmx5IHNlcnZpY2VOYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBzZWN1cml0eSBncm91cCBvZiB0aGUgRUNTIHNlcnZpY2UuXG4gICAqL1xuICByZWFkb25seSBzZWN1cml0eUdyb3VwOiBJU2VjdXJpdHlHcm91cDtcblxuICAvKipcbiAgICogVGhlIG5hbWVzcGFjZSBuYW1lIHdoZXJlIHRoZSBzZXJ2aWNlIGlzIHJlZ2lzdGVyZWQgKENsb3VkTWFwIG5hbWVzcGFjZSkuXG4gICAqL1xuICByZWFkb25seSBuYW1lc3BhY2VOYW1lOiBzdHJpbmc7XG59XG5cbi8qKlxuICogQmFzZSBjbGFzcyBmb3IgYW4gRUNTIHNlcnZpY2UgdGhhdCBjYW4gYmUgdXNlZCBhY3Jvc3Mgc3RhY2sgYm91bmRhcmllcy5cbiAqXG4gKiBUaGlzIGFic3RyYWN0IGNsYXNzIHByb3ZpZGVzIGNvbW1vbiBmdW5jdGlvbmFsaXR5IGZvciB3b3JraW5nIHdpdGggZXhwb3J0ZWRcbiAqIEVDUyBzZXJ2aWNlcywgaW5jbHVkaW5nIEFQSSBVUkwgZ2VuZXJhdGlvbiBhbmQgY29ubmVjdGlvbiBtYW5hZ2VtZW50LlxuICovXG5hYnN0cmFjdCBjbGFzcyBFeHBvcnRlZFNlcnZpY2VCYXNlXG4gIGV4dGVuZHMgQ29uc3RydWN0XG4gIGltcGxlbWVudHMgSUV4cG9ydGVkU2VydmljZVxue1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgc2VydmljZU5hbWU6IHN0cmluZztcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IG5hbWVzcGFjZU5hbWU6IHN0cmluZztcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHBvcnQ6IG51bWJlcjtcbiAgcHVibGljIHJlYWRvbmx5IHNlY3VyaXR5R3JvdXA6IElTZWN1cml0eUdyb3VwO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHNjb3BlOiBDb25zdHJ1Y3QsXG4gICAgaWQ6IHN0cmluZyxcbiAgICBzZXJ2aWNlTmFtZTogc3RyaW5nLFxuICAgIG5hbWVzcGFjZU5hbWU6IHN0cmluZyxcbiAgICBwb3J0OiBudW1iZXIsXG4gICAgc2VjdXJpdHlHcm91cDogSVNlY3VyaXR5R3JvdXAsXG4gICkge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG4gICAgdGhpcy5zZXJ2aWNlTmFtZSA9IHNlcnZpY2VOYW1lO1xuICAgIHRoaXMubmFtZXNwYWNlTmFtZSA9IG5hbWVzcGFjZU5hbWU7XG4gICAgdGhpcy5wb3J0ID0gcG9ydDtcbiAgICB0aGlzLnNlY3VyaXR5R3JvdXAgPSBzZWN1cml0eUdyb3VwO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgaW50ZXJuYWwgQVBJIFVSTCBvZiB0aGUgc2VydmljZS5cbiAgICpcbiAgICogVGhlIFVSTCBmb3JtYXQgaXM6IGh0dHA6Ly88c2VydmljZS1uYW1lPi48bmFtZXNwYWNlPjo8cG9ydD4vXG4gICAqXG4gICAqIEByZXR1cm5zIFRoZSBpbnRlcm5hbCBBUEkgVVJMXG4gICAqL1xuICBwdWJsaWMgYXBpVXJsKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGBodHRwOi8vJHt0aGlzLnNlcnZpY2VOYW1lfS4ke3RoaXMubmFtZXNwYWNlTmFtZX06JHt0aGlzLnBvcnR9L2A7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBjb25uZWN0aW9ucyBvYmplY3QgZm9yIHRoaXMgc2VydmljZS5cbiAgICpcbiAgICogVGhpcyBhbGxvd3MgdGhlIEV4cG9ydGVkU2VydmljZSB0byBiZSB1c2VkIHdpdGggdGhlIHN0YW5kYXJkIENESyBJQ29ubmVjdGFibGVcbiAgICogcGF0dGVybiBmb3Igc2VjdXJpdHkgZ3JvdXAgbWFuYWdlbWVudC5cbiAgICovXG4gIGdldCBjb25uZWN0aW9ucygpIHtcbiAgICByZXR1cm4gdGhpcy5zZWN1cml0eUdyb3VwLmNvbm5lY3Rpb25zO1xuICB9XG5cbiAgLyoqXG4gICAqIEFsbG93IGFuIEVDUyBzZXJ2aWNlIHRvIGNvbm5lY3QgdG8gdGhpcyBleHBvcnRlZCBzZXJ2aWNlLlxuICAgKlxuICAgKiBUaGlzIG1ldGhvZCBhZGRzIGEgc2VjdXJpdHkgZ3JvdXAgaW5ncmVzcyBydWxlIGFsbG93aW5nIHRyYWZmaWMgZnJvbSB0aGVcbiAgICogZ2l2ZW4gc2VydmljZSB0byB0aGlzIGV4cG9ydGVkIHNlcnZpY2Ugb24gaXRzIGNvbmZpZ3VyZWQgcG9ydC5cbiAgICpcbiAgICogQHBhcmFtIHNlcnZpY2UgLSBUaGUgRUNTIHNlcnZpY2UgdG8gYWxsb3cgY29ubmVjdGlvbnMgZnJvbVxuICAgKiBAcGFyYW0gZGVzY3JpcHRpb24gLSBPcHRpb25hbCBkZXNjcmlwdGlvbiBmb3IgdGhlIHNlY3VyaXR5IGdyb3VwIHJ1bGVcbiAgICovXG4gIHB1YmxpYyBhbGxvd0Zyb20oXG4gICAgc2VydmljZTogU2VydmljZSxcbiAgICBkZXNjcmlwdGlvbjogc3RyaW5nID0gXCJBbGxvdyBjb25uZWN0aW9uIGZyb20gRUNTIHNlcnZpY2VcIixcbiAgKTogdm9pZCB7XG4gICAgdGhpcy5zZWN1cml0eUdyb3VwLmNvbm5lY3Rpb25zLmFsbG93RnJvbShcbiAgICAgIHNlcnZpY2UuZWNzU2VydmljZSxcbiAgICAgIFBvcnQudGNwKHRoaXMucG9ydCksXG4gICAgICBkZXNjcmlwdGlvbixcbiAgICApO1xuICB9XG59XG5cbi8qKlxuICogUmVwcmVzZW50cyBhbiBFQ1Mgc2VydmljZSBleHBvcnRlZCBmcm9tIGFub3RoZXIgQ0RLIHN0YWNrLlxuICpcbiAqIFRoaXMgY29uc3RydWN0IGVuYWJsZXMgY3Jvc3Mtc3RhY2sgc2VydmljZSBjb25uZWN0aXZpdHkgYnkgdHJhbnNwb3J0aW5nIHNlcnZpY2VcbiAqIG1ldGFkYXRhIChzZWN1cml0eSBncm91cCBJRCBhbmQgbmFtZXNwYWNlKSBhY3Jvc3Mgc3RhY2sgYm91bmRhcmllcyB1c2luZyBTdGFja1BhcmFtZXRlci5cbiAqIFRoZSBwb3J0IG11c3QgYmUgc3BlY2lmaWVkIHdoZW4gaW1wb3J0aW5nIHRoZSBzZXJ2aWNlLlxuICpcbiAqIE9uIHRoZSBwcm92aWRlciBzaWRlICh3aGVyZSB0aGUgc2VydmljZSBpcyBkZWZpbmVkKSwgdXNlIEV4cG9ydGVkU2VydmljZVxuICogd2l0aGluIHRoZSBDbG91ZE1hcEV4dGVuc2lvbiB0byBleHBvc2UgdGhlIHNlcnZpY2UuIE9uIHRoZSBjb25zdW1lciBzaWRlLFxuICogdXNlIEV4cG9ydGVkU2VydmljZS5mcm9tQXR0cmlidXRlcygpIHRvIGltcG9ydCB0aGUgc2VydmljZSB3aXRoIHRoZSBwb3J0LlxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBQcm92aWRlciBzaWRlXG4gKiBjb25zdCBleHBvcnRlZFNlcnZpY2UgPSBuZXcgRXhwb3J0ZWRTZXJ2aWNlKHRoaXMsIFwiRXhwb3J0ZWRTZXJ2aWNlXCIsIHtcbiAqICAgc2VydmljZU5hbWU6ICdteS1zZXJ2aWNlJyxcbiAqICAgc2VjdXJpdHlHcm91cDogc2VydmljZS5jb25uZWN0aW9ucy5zZWN1cml0eUdyb3Vwc1swXSxcbiAqICAgbmFtZXNwYWNlTmFtZTogJ215LW5hbWVzcGFjZScsXG4gKiB9KTtcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gQ29uc3VtZXIgc2lkZVxuICogY29uc3QgZXhwb3J0ZWRTZXJ2aWNlID0gRXhwb3J0ZWRTZXJ2aWNlLmZyb21BdHRyaWJ1dGVzKHNjb3BlLCBpZCwge1xuICogICBzdGFja05hbWU6ICdteS1zZXJ2aWNlLXN0YWNrJyxcbiAqICAgc2VydmljZU5hbWU6ICdteS1zZXJ2aWNlJyxcbiAqICAgcG9ydDogODA4MCxcbiAqIH0pO1xuICpcbiAqIGV4cG9ydGVkU2VydmljZS5hbGxvd0Zyb20obXlTZXJ2aWNlKTtcbiAqIGNvbnN0IHVybCA9IGV4cG9ydGVkU2VydmljZS5hcGlVcmwoKTtcbiAqL1xuZXhwb3J0IGNsYXNzIEV4cG9ydGVkU2VydmljZSBleHRlbmRzIEV4cG9ydGVkU2VydmljZUJhc2Uge1xuICAvKipcbiAgICogSW1wb3J0IGFuIEV4cG9ydGVkU2VydmljZSBmcm9tIGFub3RoZXIgc3RhY2suXG4gICAqXG4gICAqIFRoaXMgbWV0aG9kIGltcG9ydHMgdGhlIHNlcnZpY2UgbWV0YWRhdGEgKHNlY3VyaXR5IGdyb3VwIGFuZCBuYW1lc3BhY2UpXG4gICAqIHRoYXQgd2FzIGV4cG9ydGVkIGJ5IHRoZSBwcm92aWRlciBzdGFjayBhbmQgY29uc3RydWN0cyBhbiBJRXhwb3J0ZWRTZXJ2aWNlXG4gICAqIGluc3RhbmNlIHRoYXQgY2FuIGJlIHVzZWQgZm9yIGVzdGFibGlzaGluZyBjb25uZWN0aW9ucy5cbiAgICpcbiAgICogQHBhcmFtIHNjb3BlIC0gVGhlIHNjb3BlIGluIHdoaWNoIHRvIGRlZmluZSB0aGUgY29uc3RydWN0XG4gICAqIEBwYXJhbSBpZCAtIFRoZSBjb25zdHJ1Y3QgSURcbiAgICogQHBhcmFtIGF0dHJzIC0gVGhlIGV4cG9ydGVkIHNlcnZpY2UgbG9va3VwIG9wdGlvbnMgKHN0YWNrTmFtZSwgc2VydmljZU5hbWUsIGFuZCBwb3J0KVxuICAgKiBAcmV0dXJucyBBbiBJRXhwb3J0ZWRTZXJ2aWNlIGluc3RhbmNlXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21BdHRyaWJ1dGVzKFxuICAgIHNjb3BlOiBDb25zdHJ1Y3QsXG4gICAgaWQ6IHN0cmluZyxcbiAgICBhdHRyczogRXhwb3J0ZWRTZXJ2aWNlTG9va3VwT3B0aW9ucyxcbiAgKTogSUV4cG9ydGVkU2VydmljZSB7XG4gICAgY29uc3Qgbm9ybWFsaXplZFNlcnZpY2VOYW1lID0ga2ViYWJDYXNlKGF0dHJzLnNlcnZpY2VOYW1lKTtcbiAgICBjb25zdCBzdGFja1BhcmFtZXRlcnMgPSBFeHBvcnRlZFNlcnZpY2UuY3JlYXRlU3RhY2tQYXJhbWV0ZXJzKFxuICAgICAgbm9ybWFsaXplZFNlcnZpY2VOYW1lLFxuICAgICk7XG5cbiAgICBjb25zdCBzZWN1cml0eUdyb3VwSWQgPSBzdGFja1BhcmFtZXRlcnMuc2VjdXJpdHlHcm91cFBhcmFtZXRlci5pbXBvcnQoXG4gICAgICBhdHRycy5zdGFja05hbWUsXG4gICAgKTtcbiAgICBjb25zdCBuYW1lc3BhY2VOYW1lID0gc3RhY2tQYXJhbWV0ZXJzLm5hbWVzcGFjZVBhcmFtZXRlci5pbXBvcnQoXG4gICAgICBhdHRycy5zdGFja05hbWUsXG4gICAgKTtcblxuICAgIGNvbnN0IHNlY3VyaXR5R3JvdXAgPSBTZWN1cml0eUdyb3VwLmZyb21TZWN1cml0eUdyb3VwSWQoXG4gICAgICBzY29wZSxcbiAgICAgIFwiSW1wb3J0ZWRTZWN1cml0eUdyb3VwXCIsXG4gICAgICBzZWN1cml0eUdyb3VwSWQsXG4gICAgICB7IGFsbG93QWxsT3V0Ym91bmQ6IHRydWUgfSxcbiAgICApO1xuXG4gICAgY2xhc3MgSW1wb3J0IGV4dGVuZHMgRXhwb3J0ZWRTZXJ2aWNlQmFzZSB7XG4gICAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoXG4gICAgICAgICAgc2NvcGUsXG4gICAgICAgICAgaWQsXG4gICAgICAgICAgbm9ybWFsaXplZFNlcnZpY2VOYW1lLFxuICAgICAgICAgIG5hbWVzcGFjZU5hbWUsXG4gICAgICAgICAgYXR0cnMucG9ydCxcbiAgICAgICAgICBzZWN1cml0eUdyb3VwLFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBuZXcgSW1wb3J0KCk7XG4gIH1cbiAgcHJpdmF0ZSBzdGF0aWMgY3JlYXRlU3RhY2tQYXJhbWV0ZXJzKHNlcnZpY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4ge1xuICAgICAgc2VjdXJpdHlHcm91cFBhcmFtZXRlcjogbmV3IFN0YWNrUGFyYW1ldGVyKHtcbiAgICAgICAgcHJlZml4OiBbXCJleHBvcnRlZC1zZXJ2aWNlXCIsIHNlcnZpY2VOYW1lXSxcbiAgICAgICAga2V5OiBcInNlY3VyaXR5LWdyb3VwLWlkXCIsXG4gICAgICAgIGRlc2NyaXB0aW9uOiBcIlNlY3VyaXR5IEdyb3VwIElEIG9mIHRoZSBleHBvcnRlZCBFQ1Mgc2VydmljZVwiLFxuICAgICAgfSksXG4gICAgICBuYW1lc3BhY2VQYXJhbWV0ZXI6IG5ldyBTdGFja1BhcmFtZXRlcih7XG4gICAgICAgIHByZWZpeDogW1wiZXhwb3J0ZWQtc2VydmljZVwiLCBzZXJ2aWNlTmFtZV0sXG4gICAgICAgIGtleTogXCJuYW1lc3BhY2VcIixcbiAgICAgICAgZGVzY3JpcHRpb246IFwiQ2xvdWRNYXAgbmFtZXNwYWNlIG9mIHRoZSBleHBvcnRlZCBFQ1Mgc2VydmljZVwiLFxuICAgICAgfSksXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgcmVhZG9ubHkgc3RhY2tQYXJhbWV0ZXJzOiBSZXR1cm5UeXBlPFxuICAgIHR5cGVvZiBFeHBvcnRlZFNlcnZpY2UuY3JlYXRlU3RhY2tQYXJhbWV0ZXJzXG4gID47XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IEV4cG9ydGVkU2VydmljZVByb3BzKSB7XG4gICAgY29uc3Qgbm9ybWFsaXplZFNlcnZpY2VOYW1lID0ga2ViYWJDYXNlKHByb3BzLnNlcnZpY2VOYW1lKTtcbiAgICBzdXBlcihcbiAgICAgIHNjb3BlLFxuICAgICAgaWQsXG4gICAgICBub3JtYWxpemVkU2VydmljZU5hbWUsXG4gICAgICBwcm9wcy5uYW1lc3BhY2VOYW1lLFxuICAgICAgMCwgLy8gRGVmYXVsdCBwb3J0IC0gYWN0dWFsIHBvcnQgaXMgc3BlY2lmaWVkIG9uIGNvbnN1bWVyIHNpZGVcbiAgICAgIHByb3BzLnNlY3VyaXR5R3JvdXAsXG4gICAgKTtcblxuICAgIHRoaXMuc3RhY2tQYXJhbWV0ZXJzID0gRXhwb3J0ZWRTZXJ2aWNlLmNyZWF0ZVN0YWNrUGFyYW1ldGVycyhcbiAgICAgIG5vcm1hbGl6ZWRTZXJ2aWNlTmFtZSxcbiAgICApO1xuXG4gICAgLy8gRXhwb3J0IHNlcnZpY2UgbWV0YWRhdGEgZm9yIGNyb3NzLXN0YWNrIGNvbnN1bXB0aW9uXG4gICAgdGhpcy5zdGFja1BhcmFtZXRlcnMuc2VjdXJpdHlHcm91cFBhcmFtZXRlci5leHBvcnQoXG4gICAgICB0aGlzLFxuICAgICAgcHJvcHMuc2VjdXJpdHlHcm91cC5zZWN1cml0eUdyb3VwSWQsXG4gICAgKTtcbiAgICB0aGlzLnN0YWNrUGFyYW1ldGVycy5uYW1lc3BhY2VQYXJhbWV0ZXIuZXhwb3J0KHRoaXMsIHByb3BzLm5hbWVzcGFjZU5hbWUpO1xuICB9XG59XG4iXX0=