@cdklabs/cdk-ecs-codedeploy 0.0.154 → 0.0.155

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.
package/.jsii CHANGED
@@ -4046,6 +4046,154 @@
4046
4046
  ],
4047
4047
  "symbolId": "src/api-canary/index:ApiTestStep"
4048
4048
  },
4049
+ "@cdklabs/cdk-ecs-codedeploy.AppSpecHooks": {
4050
+ "assembly": "@cdklabs/cdk-ecs-codedeploy",
4051
+ "datatype": true,
4052
+ "docs": {
4053
+ "stability": "experimental",
4054
+ "summary": "Lifecycle hooks configuration."
4055
+ },
4056
+ "fqn": "@cdklabs/cdk-ecs-codedeploy.AppSpecHooks",
4057
+ "kind": "interface",
4058
+ "locationInModule": {
4059
+ "filename": "src/ecs-appspec/index.ts",
4060
+ "line": 189
4061
+ },
4062
+ "name": "AppSpecHooks",
4063
+ "properties": [
4064
+ {
4065
+ "abstract": true,
4066
+ "docs": {
4067
+ "stability": "experimental",
4068
+ "summary": "Lambda or ARN of a lambda to run tasks after the test listener serves traffic to the replacement task set."
4069
+ },
4070
+ "immutable": true,
4071
+ "locationInModule": {
4072
+ "filename": "src/ecs-appspec/index.ts",
4073
+ "line": 201
4074
+ },
4075
+ "name": "afterAllowTestTraffic",
4076
+ "optional": true,
4077
+ "type": {
4078
+ "union": {
4079
+ "types": [
4080
+ {
4081
+ "primitive": "string"
4082
+ },
4083
+ {
4084
+ "fqn": "aws-cdk-lib.aws_lambda.IFunction"
4085
+ }
4086
+ ]
4087
+ }
4088
+ }
4089
+ },
4090
+ {
4091
+ "abstract": true,
4092
+ "docs": {
4093
+ "stability": "experimental",
4094
+ "summary": "Lambda or ARN of a lambda to run tasks after the second target group serves traffic to the replacement task set."
4095
+ },
4096
+ "immutable": true,
4097
+ "locationInModule": {
4098
+ "filename": "src/ecs-appspec/index.ts",
4099
+ "line": 209
4100
+ },
4101
+ "name": "afterAllowTraffic",
4102
+ "optional": true,
4103
+ "type": {
4104
+ "union": {
4105
+ "types": [
4106
+ {
4107
+ "primitive": "string"
4108
+ },
4109
+ {
4110
+ "fqn": "aws-cdk-lib.aws_lambda.IFunction"
4111
+ }
4112
+ ]
4113
+ }
4114
+ }
4115
+ },
4116
+ {
4117
+ "abstract": true,
4118
+ "docs": {
4119
+ "stability": "experimental",
4120
+ "summary": "Lambda or ARN of a lambda to run tasks after the replacement task set is created and one of the target groups is associated with it."
4121
+ },
4122
+ "immutable": true,
4123
+ "locationInModule": {
4124
+ "filename": "src/ecs-appspec/index.ts",
4125
+ "line": 197
4126
+ },
4127
+ "name": "afterInstall",
4128
+ "optional": true,
4129
+ "type": {
4130
+ "union": {
4131
+ "types": [
4132
+ {
4133
+ "primitive": "string"
4134
+ },
4135
+ {
4136
+ "fqn": "aws-cdk-lib.aws_lambda.IFunction"
4137
+ }
4138
+ ]
4139
+ }
4140
+ }
4141
+ },
4142
+ {
4143
+ "abstract": true,
4144
+ "docs": {
4145
+ "stability": "experimental",
4146
+ "summary": "Lambda or ARN of a lambda to run tasks after the second target group is associated with the replacement task set, but before traffic is shifted to the replacement task set."
4147
+ },
4148
+ "immutable": true,
4149
+ "locationInModule": {
4150
+ "filename": "src/ecs-appspec/index.ts",
4151
+ "line": 205
4152
+ },
4153
+ "name": "beforeAllowTraffic",
4154
+ "optional": true,
4155
+ "type": {
4156
+ "union": {
4157
+ "types": [
4158
+ {
4159
+ "primitive": "string"
4160
+ },
4161
+ {
4162
+ "fqn": "aws-cdk-lib.aws_lambda.IFunction"
4163
+ }
4164
+ ]
4165
+ }
4166
+ }
4167
+ },
4168
+ {
4169
+ "abstract": true,
4170
+ "docs": {
4171
+ "stability": "experimental",
4172
+ "summary": "Lambda or ARN of a lambda to run tasks before the replacement task set is created."
4173
+ },
4174
+ "immutable": true,
4175
+ "locationInModule": {
4176
+ "filename": "src/ecs-appspec/index.ts",
4177
+ "line": 193
4178
+ },
4179
+ "name": "beforeInstall",
4180
+ "optional": true,
4181
+ "type": {
4182
+ "union": {
4183
+ "types": [
4184
+ {
4185
+ "primitive": "string"
4186
+ },
4187
+ {
4188
+ "fqn": "aws-cdk-lib.aws_lambda.IFunction"
4189
+ }
4190
+ ]
4191
+ }
4192
+ }
4193
+ }
4194
+ ],
4195
+ "symbolId": "src/ecs-appspec/index:AppSpecHooks"
4196
+ },
4049
4197
  "@cdklabs/cdk-ecs-codedeploy.ApplicationLoadBalancedCodeDeployedFargateService": {
4050
4198
  "assembly": "@cdklabs/cdk-ecs-codedeploy",
4051
4199
  "base": "aws-cdk-lib.aws_ecs_patterns.ApplicationLoadBalancedFargateService",
@@ -4061,7 +4209,7 @@
4061
4209
  },
4062
4210
  "locationInModule": {
4063
4211
  "filename": "src/ecs-patterns/application-load-balanced-codedeployed-fargate-service.ts",
4064
- "line": 157
4212
+ "line": 165
4065
4213
  },
4066
4214
  "parameters": [
4067
4215
  {
@@ -4087,7 +4235,7 @@
4087
4235
  "kind": "class",
4088
4236
  "locationInModule": {
4089
4237
  "filename": "src/ecs-patterns/application-load-balanced-codedeployed-fargate-service.ts",
4090
- "line": 113
4238
+ "line": 121
4091
4239
  },
4092
4240
  "methods": [
4093
4241
  {
@@ -4097,7 +4245,7 @@
4097
4245
  },
4098
4246
  "locationInModule": {
4099
4247
  "filename": "src/ecs-patterns/application-load-balanced-codedeployed-fargate-service.ts",
4100
- "line": 292
4248
+ "line": 301
4101
4249
  },
4102
4250
  "name": "addServiceAsTarget",
4103
4251
  "overrides": "aws-cdk-lib.aws_ecs_patterns.ApplicationLoadBalancedServiceBase",
@@ -4121,7 +4269,7 @@
4121
4269
  },
4122
4270
  "locationInModule": {
4123
4271
  "filename": "src/ecs-patterns/application-load-balanced-codedeployed-fargate-service.ts",
4124
- "line": 137
4272
+ "line": 145
4125
4273
  },
4126
4274
  "name": "accessLogBucket",
4127
4275
  "type": {
@@ -4135,7 +4283,7 @@
4135
4283
  },
4136
4284
  "locationInModule": {
4137
4285
  "filename": "src/ecs-patterns/application-load-balanced-codedeployed-fargate-service.ts",
4138
- "line": 142
4286
+ "line": 150
4139
4287
  },
4140
4288
  "name": "application",
4141
4289
  "type": {
@@ -4149,7 +4297,7 @@
4149
4297
  },
4150
4298
  "locationInModule": {
4151
4299
  "filename": "src/ecs-patterns/application-load-balanced-codedeployed-fargate-service.ts",
4152
- "line": 152
4300
+ "line": 160
4153
4301
  },
4154
4302
  "name": "deployment",
4155
4303
  "type": {
@@ -4163,7 +4311,7 @@
4163
4311
  },
4164
4312
  "locationInModule": {
4165
4313
  "filename": "src/ecs-patterns/application-load-balanced-codedeployed-fargate-service.ts",
4166
- "line": 147
4314
+ "line": 155
4167
4315
  },
4168
4316
  "name": "deploymentGroup",
4169
4317
  "type": {
@@ -4177,7 +4325,7 @@
4177
4325
  },
4178
4326
  "locationInModule": {
4179
4327
  "filename": "src/ecs-patterns/application-load-balanced-codedeployed-fargate-service.ts",
4180
- "line": 132
4328
+ "line": 140
4181
4329
  },
4182
4330
  "name": "greenTargetGroup",
4183
4331
  "type": {
@@ -4191,7 +4339,7 @@
4191
4339
  },
4192
4340
  "locationInModule": {
4193
4341
  "filename": "src/ecs-patterns/application-load-balanced-codedeployed-fargate-service.ts",
4194
- "line": 127
4342
+ "line": 135
4195
4343
  },
4196
4344
  "name": "testListener",
4197
4345
  "type": {
@@ -4205,7 +4353,7 @@
4205
4353
  },
4206
4354
  "locationInModule": {
4207
4355
  "filename": "src/ecs-patterns/application-load-balanced-codedeployed-fargate-service.ts",
4208
- "line": 122
4356
+ "line": 130
4209
4357
  },
4210
4358
  "name": "apiCanary",
4211
4359
  "optional": true,
@@ -4220,7 +4368,7 @@
4220
4368
  },
4221
4369
  "locationInModule": {
4222
4370
  "filename": "src/ecs-patterns/application-load-balanced-codedeployed-fargate-service.ts",
4223
- "line": 117
4371
+ "line": 125
4224
4372
  },
4225
4373
  "name": "healthAlarm",
4226
4374
  "optional": true,
@@ -4245,7 +4393,7 @@
4245
4393
  "kind": "interface",
4246
4394
  "locationInModule": {
4247
4395
  "filename": "src/ecs-patterns/application-load-balanced-codedeployed-fargate-service.ts",
4248
- "line": 16
4396
+ "line": 17
4249
4397
  },
4250
4398
  "name": "ApplicationLoadBalancedCodeDeployedFargateServiceProps",
4251
4399
  "properties": [
@@ -4259,7 +4407,7 @@
4259
4407
  "immutable": true,
4260
4408
  "locationInModule": {
4261
4409
  "filename": "src/ecs-patterns/application-load-balanced-codedeployed-fargate-service.ts",
4262
- "line": 58
4410
+ "line": 59
4263
4411
  },
4264
4412
  "name": "accessLogBucket",
4265
4413
  "optional": true,
@@ -4277,7 +4425,7 @@
4277
4425
  "immutable": true,
4278
4426
  "locationInModule": {
4279
4427
  "filename": "src/ecs-patterns/application-load-balanced-codedeployed-fargate-service.ts",
4280
- "line": 65
4428
+ "line": 66
4281
4429
  },
4282
4430
  "name": "accessLogPrefix",
4283
4431
  "optional": true,
@@ -4295,7 +4443,7 @@
4295
4443
  "immutable": true,
4296
4444
  "locationInModule": {
4297
4445
  "filename": "src/ecs-patterns/application-load-balanced-codedeployed-fargate-service.ts",
4298
- "line": 86
4446
+ "line": 87
4299
4447
  },
4300
4448
  "name": "apiCanarySchedule",
4301
4449
  "optional": true,
@@ -4313,7 +4461,7 @@
4313
4461
  "immutable": true,
4314
4462
  "locationInModule": {
4315
4463
  "filename": "src/ecs-patterns/application-load-balanced-codedeployed-fargate-service.ts",
4316
- "line": 79
4464
+ "line": 80
4317
4465
  },
4318
4466
  "name": "apiCanaryThreadCount",
4319
4467
  "optional": true,
@@ -4331,7 +4479,7 @@
4331
4479
  "immutable": true,
4332
4480
  "locationInModule": {
4333
4481
  "filename": "src/ecs-patterns/application-load-balanced-codedeployed-fargate-service.ts",
4334
- "line": 93
4482
+ "line": 94
4335
4483
  },
4336
4484
  "name": "apiCanaryTimeout",
4337
4485
  "optional": true,
@@ -4349,7 +4497,7 @@
4349
4497
  "immutable": true,
4350
4498
  "locationInModule": {
4351
4499
  "filename": "src/ecs-patterns/application-load-balanced-codedeployed-fargate-service.ts",
4352
- "line": 100
4500
+ "line": 101
4353
4501
  },
4354
4502
  "name": "apiTestSteps",
4355
4503
  "optional": true,
@@ -4372,7 +4520,7 @@
4372
4520
  "immutable": true,
4373
4521
  "locationInModule": {
4374
4522
  "filename": "src/ecs-patterns/application-load-balanced-codedeployed-fargate-service.ts",
4375
- "line": 36
4523
+ "line": 37
4376
4524
  },
4377
4525
  "name": "deploymentConfig",
4378
4526
  "optional": true,
@@ -4390,7 +4538,7 @@
4390
4538
  "immutable": true,
4391
4539
  "locationInModule": {
4392
4540
  "filename": "src/ecs-patterns/application-load-balanced-codedeployed-fargate-service.ts",
4393
- "line": 22
4541
+ "line": 23
4394
4542
  },
4395
4543
  "name": "deploymentTimeout",
4396
4544
  "optional": true,
@@ -4408,7 +4556,7 @@
4408
4556
  "immutable": true,
4409
4557
  "locationInModule": {
4410
4558
  "filename": "src/ecs-patterns/application-load-balanced-codedeployed-fargate-service.ts",
4411
- "line": 44
4559
+ "line": 45
4412
4560
  },
4413
4561
  "name": "deregistrationDelay",
4414
4562
  "optional": true,
@@ -4426,7 +4574,7 @@
4426
4574
  "immutable": true,
4427
4575
  "locationInModule": {
4428
4576
  "filename": "src/ecs-patterns/application-load-balanced-codedeployed-fargate-service.ts",
4429
- "line": 51
4577
+ "line": 52
4430
4578
  },
4431
4579
  "name": "healthCheck",
4432
4580
  "optional": true,
@@ -4434,6 +4582,24 @@
4434
4582
  "fqn": "aws-cdk-lib.aws_elasticloadbalancingv2.HealthCheck"
4435
4583
  }
4436
4584
  },
4585
+ {
4586
+ "abstract": true,
4587
+ "docs": {
4588
+ "default": "- no lifecycle hooks",
4589
+ "stability": "experimental",
4590
+ "summary": "Optional lifecycle hooks."
4591
+ },
4592
+ "immutable": true,
4593
+ "locationInModule": {
4594
+ "filename": "src/ecs-patterns/application-load-balanced-codedeployed-fargate-service.ts",
4595
+ "line": 115
4596
+ },
4597
+ "name": "hooks",
4598
+ "optional": true,
4599
+ "type": {
4600
+ "fqn": "@cdklabs/cdk-ecs-codedeploy.AppSpecHooks"
4601
+ }
4602
+ },
4437
4603
  {
4438
4604
  "abstract": true,
4439
4605
  "docs": {
@@ -4444,7 +4610,7 @@
4444
4610
  "immutable": true,
4445
4611
  "locationInModule": {
4446
4612
  "filename": "src/ecs-patterns/application-load-balanced-codedeployed-fargate-service.ts",
4447
- "line": 72
4613
+ "line": 73
4448
4614
  },
4449
4615
  "name": "responseTimeAlarmThreshold",
4450
4616
  "optional": true,
@@ -4462,7 +4628,7 @@
4462
4628
  "immutable": true,
4463
4629
  "locationInModule": {
4464
4630
  "filename": "src/ecs-patterns/application-load-balanced-codedeployed-fargate-service.ts",
4465
- "line": 29
4631
+ "line": 30
4466
4632
  },
4467
4633
  "name": "terminationWaitTime",
4468
4634
  "optional": true,
@@ -4480,7 +4646,7 @@
4480
4646
  "immutable": true,
4481
4647
  "locationInModule": {
4482
4648
  "filename": "src/ecs-patterns/application-load-balanced-codedeployed-fargate-service.ts",
4483
- "line": 107
4649
+ "line": 108
4484
4650
  },
4485
4651
  "name": "testPort",
4486
4652
  "optional": true,
@@ -4502,7 +4668,7 @@
4502
4668
  "kind": "interface",
4503
4669
  "locationInModule": {
4504
4670
  "filename": "src/ecs-appspec/index.ts",
4505
- "line": 112
4671
+ "line": 164
4506
4672
  },
4507
4673
  "name": "AwsvpcConfiguration",
4508
4674
  "properties": [
@@ -4515,7 +4681,7 @@
4515
4681
  "immutable": true,
4516
4682
  "locationInModule": {
4517
4683
  "filename": "src/ecs-appspec/index.ts",
4518
- "line": 131
4684
+ "line": 183
4519
4685
  },
4520
4686
  "name": "assignPublicIp",
4521
4687
  "type": {
@@ -4531,7 +4697,7 @@
4531
4697
  "immutable": true,
4532
4698
  "locationInModule": {
4533
4699
  "filename": "src/ecs-appspec/index.ts",
4534
- "line": 126
4700
+ "line": 178
4535
4701
  },
4536
4702
  "name": "securityGroups",
4537
4703
  "type": {
@@ -4552,7 +4718,7 @@
4552
4718
  "immutable": true,
4553
4719
  "locationInModule": {
4554
4720
  "filename": "src/ecs-appspec/index.ts",
4555
- "line": 116
4721
+ "line": 168
4556
4722
  },
4557
4723
  "name": "vpc",
4558
4724
  "type": {
@@ -4568,7 +4734,7 @@
4568
4734
  "immutable": true,
4569
4735
  "locationInModule": {
4570
4736
  "filename": "src/ecs-appspec/index.ts",
4571
- "line": 121
4737
+ "line": 173
4572
4738
  },
4573
4739
  "name": "vpcSubnets",
4574
4740
  "type": {
@@ -4592,7 +4758,7 @@
4592
4758
  },
4593
4759
  "locationInModule": {
4594
4760
  "filename": "src/ecs-appspec/index.ts",
4595
- "line": 15
4761
+ "line": 20
4596
4762
  },
4597
4763
  "parameters": [
4598
4764
  {
@@ -4600,13 +4766,20 @@
4600
4766
  "type": {
4601
4767
  "fqn": "@cdklabs/cdk-ecs-codedeploy.TargetService"
4602
4768
  }
4769
+ },
4770
+ {
4771
+ "name": "hooks",
4772
+ "optional": true,
4773
+ "type": {
4774
+ "fqn": "@cdklabs/cdk-ecs-codedeploy.AppSpecHooks"
4775
+ }
4603
4776
  }
4604
4777
  ]
4605
4778
  },
4606
4779
  "kind": "class",
4607
4780
  "locationInModule": {
4608
4781
  "filename": "src/ecs-appspec/index.ts",
4609
- "line": 9
4782
+ "line": 10
4610
4783
  },
4611
4784
  "methods": [
4612
4785
  {
@@ -4617,7 +4790,7 @@
4617
4790
  },
4618
4791
  "locationInModule": {
4619
4792
  "filename": "src/ecs-appspec/index.ts",
4620
- "line": 24
4793
+ "line": 30
4621
4794
  },
4622
4795
  "name": "toString",
4623
4796
  "returns": {
@@ -4645,7 +4818,7 @@
4645
4818
  },
4646
4819
  "locationInModule": {
4647
4820
  "filename": "src/ecs-deployment/index.ts",
4648
- "line": 59
4821
+ "line": 66
4649
4822
  },
4650
4823
  "parameters": [
4651
4824
  {
@@ -4659,7 +4832,7 @@
4659
4832
  "kind": "class",
4660
4833
  "locationInModule": {
4661
4834
  "filename": "src/ecs-deployment/index.ts",
4662
- "line": 53
4835
+ "line": 60
4663
4836
  },
4664
4837
  "name": "EcsDeployment",
4665
4838
  "properties": [
@@ -4670,7 +4843,7 @@
4670
4843
  },
4671
4844
  "locationInModule": {
4672
4845
  "filename": "src/ecs-deployment/index.ts",
4673
- "line": 57
4846
+ "line": 64
4674
4847
  },
4675
4848
  "name": "deploymentId",
4676
4849
  "type": {
@@ -4764,6 +4937,24 @@
4764
4937
  "primitive": "string"
4765
4938
  }
4766
4939
  },
4940
+ {
4941
+ "abstract": true,
4942
+ "docs": {
4943
+ "default": "- no lifecycle hooks",
4944
+ "stability": "experimental",
4945
+ "summary": "Optional lifecycle hooks."
4946
+ },
4947
+ "immutable": true,
4948
+ "locationInModule": {
4949
+ "filename": "src/ecs-deployment/index.ts",
4950
+ "line": 49
4951
+ },
4952
+ "name": "hooks",
4953
+ "optional": true,
4954
+ "type": {
4955
+ "fqn": "@cdklabs/cdk-ecs-codedeploy.AppSpecHooks"
4956
+ }
4957
+ },
4767
4958
  {
4768
4959
  "abstract": true,
4769
4960
  "docs": {
@@ -4797,7 +4988,7 @@
4797
4988
  "kind": "interface",
4798
4989
  "locationInModule": {
4799
4990
  "filename": "src/ecs-appspec/index.ts",
4800
- "line": 69
4991
+ "line": 121
4801
4992
  },
4802
4993
  "name": "TargetService",
4803
4994
  "properties": [
@@ -4811,7 +5002,7 @@
4811
5002
  "immutable": true,
4812
5003
  "locationInModule": {
4813
5004
  "filename": "src/ecs-appspec/index.ts",
4814
- "line": 78
5005
+ "line": 130
4815
5006
  },
4816
5007
  "name": "containerName",
4817
5008
  "type": {
@@ -4827,7 +5018,7 @@
4827
5018
  "immutable": true,
4828
5019
  "locationInModule": {
4829
5020
  "filename": "src/ecs-appspec/index.ts",
4830
- "line": 83
5021
+ "line": 135
4831
5022
  },
4832
5023
  "name": "containerPort",
4833
5024
  "type": {
@@ -4843,7 +5034,7 @@
4843
5034
  "immutable": true,
4844
5035
  "locationInModule": {
4845
5036
  "filename": "src/ecs-appspec/index.ts",
4846
- "line": 73
5037
+ "line": 125
4847
5038
  },
4848
5039
  "name": "taskDefinition",
4849
5040
  "type": {
@@ -4860,7 +5051,7 @@
4860
5051
  "immutable": true,
4861
5052
  "locationInModule": {
4862
5053
  "filename": "src/ecs-appspec/index.ts",
4863
- "line": 98
5054
+ "line": 150
4864
5055
  },
4865
5056
  "name": "awsvpcConfiguration",
4866
5057
  "optional": true,
@@ -4878,7 +5069,7 @@
4878
5069
  "immutable": true,
4879
5070
  "locationInModule": {
4880
5071
  "filename": "src/ecs-appspec/index.ts",
4881
- "line": 105
5072
+ "line": 157
4882
5073
  },
4883
5074
  "name": "capacityProviderStrategy",
4884
5075
  "optional": true,
@@ -4902,7 +5093,7 @@
4902
5093
  "immutable": true,
4903
5094
  "locationInModule": {
4904
5095
  "filename": "src/ecs-appspec/index.ts",
4905
- "line": 91
5096
+ "line": 143
4906
5097
  },
4907
5098
  "name": "platformVersion",
4908
5099
  "optional": true,
@@ -4914,6 +5105,6 @@
4914
5105
  "symbolId": "src/ecs-appspec/index:TargetService"
4915
5106
  }
4916
5107
  },
4917
- "version": "0.0.154",
4918
- "fingerprint": "Vqa92sYRPqmEin+0sN0mBVI+Pxp4XuwVxmu9h2eYP48="
5108
+ "version": "0.0.155",
5109
+ "fingerprint": "4rS2SLjSpCmvidSOI//UkNgKeORU/Y/YuxCnog6771E="
4919
5110
  }
package/API.md CHANGED
@@ -1404,6 +1404,7 @@ const applicationLoadBalancedCodeDeployedFargateServiceProps: ApplicationLoadBal
1404
1404
  | <code><a href="#@cdklabs/cdk-ecs-codedeploy.ApplicationLoadBalancedCodeDeployedFargateServiceProps.property.deploymentTimeout">deploymentTimeout</a></code> | <code>aws-cdk-lib.Duration</code> | The timeout for a CodeDeploy deployment. |
1405
1405
  | <code><a href="#@cdklabs/cdk-ecs-codedeploy.ApplicationLoadBalancedCodeDeployedFargateServiceProps.property.deregistrationDelay">deregistrationDelay</a></code> | <code>aws-cdk-lib.Duration</code> | The amount of time for ELB to wait before changing the state of a deregistering target from 'draining' to 'unused'. |
1406
1406
  | <code><a href="#@cdklabs/cdk-ecs-codedeploy.ApplicationLoadBalancedCodeDeployedFargateServiceProps.property.healthCheck">healthCheck</a></code> | <code>aws-cdk-lib.aws_elasticloadbalancingv2.HealthCheck</code> | The healthcheck to configure on the Application Load Balancer target groups. |
1407
+ | <code><a href="#@cdklabs/cdk-ecs-codedeploy.ApplicationLoadBalancedCodeDeployedFargateServiceProps.property.hooks">hooks</a></code> | <code><a href="#@cdklabs/cdk-ecs-codedeploy.AppSpecHooks">AppSpecHooks</a></code> | Optional lifecycle hooks. |
1407
1408
  | <code><a href="#@cdklabs/cdk-ecs-codedeploy.ApplicationLoadBalancedCodeDeployedFargateServiceProps.property.responseTimeAlarmThreshold">responseTimeAlarmThreshold</a></code> | <code>aws-cdk-lib.Duration</code> | The threshold for response time alarm. |
1408
1409
  | <code><a href="#@cdklabs/cdk-ecs-codedeploy.ApplicationLoadBalancedCodeDeployedFargateServiceProps.property.terminationWaitTime">terminationWaitTime</a></code> | <code>aws-cdk-lib.Duration</code> | The time to wait before terminating the original (blue) task set. |
1409
1410
  | <code><a href="#@cdklabs/cdk-ecs-codedeploy.ApplicationLoadBalancedCodeDeployedFargateServiceProps.property.testPort">testPort</a></code> | <code>number</code> | The port to use for test traffic on the listener. |
@@ -2116,6 +2117,19 @@ The healthcheck to configure on the Application Load Balancer target groups.
2116
2117
 
2117
2118
  ---
2118
2119
 
2120
+ ##### `hooks`<sup>Optional</sup> <a name="hooks" id="@cdklabs/cdk-ecs-codedeploy.ApplicationLoadBalancedCodeDeployedFargateServiceProps.property.hooks"></a>
2121
+
2122
+ ```typescript
2123
+ public readonly hooks: AppSpecHooks;
2124
+ ```
2125
+
2126
+ - *Type:* <a href="#@cdklabs/cdk-ecs-codedeploy.AppSpecHooks">AppSpecHooks</a>
2127
+ - *Default:* no lifecycle hooks
2128
+
2129
+ Optional lifecycle hooks.
2130
+
2131
+ ---
2132
+
2119
2133
  ##### `responseTimeAlarmThreshold`<sup>Optional</sup> <a name="responseTimeAlarmThreshold" id="@cdklabs/cdk-ecs-codedeploy.ApplicationLoadBalancedCodeDeployedFargateServiceProps.property.responseTimeAlarmThreshold"></a>
2120
2134
 
2121
2135
  ```typescript
@@ -2155,6 +2169,90 @@ The port to use for test traffic on the listener.
2155
2169
 
2156
2170
  ---
2157
2171
 
2172
+ ### AppSpecHooks <a name="AppSpecHooks" id="@cdklabs/cdk-ecs-codedeploy.AppSpecHooks"></a>
2173
+
2174
+ Lifecycle hooks configuration.
2175
+
2176
+ #### Initializer <a name="Initializer" id="@cdklabs/cdk-ecs-codedeploy.AppSpecHooks.Initializer"></a>
2177
+
2178
+ ```typescript
2179
+ import { AppSpecHooks } from '@cdklabs/cdk-ecs-codedeploy'
2180
+
2181
+ const appSpecHooks: AppSpecHooks = { ... }
2182
+ ```
2183
+
2184
+ #### Properties <a name="Properties" id="Properties"></a>
2185
+
2186
+ | **Name** | **Type** | **Description** |
2187
+ | --- | --- | --- |
2188
+ | <code><a href="#@cdklabs/cdk-ecs-codedeploy.AppSpecHooks.property.afterAllowTestTraffic">afterAllowTestTraffic</a></code> | <code>string \| aws-cdk-lib.aws_lambda.IFunction</code> | Lambda or ARN of a lambda to run tasks after the test listener serves traffic to the replacement task set. |
2189
+ | <code><a href="#@cdklabs/cdk-ecs-codedeploy.AppSpecHooks.property.afterAllowTraffic">afterAllowTraffic</a></code> | <code>string \| aws-cdk-lib.aws_lambda.IFunction</code> | Lambda or ARN of a lambda to run tasks after the second target group serves traffic to the replacement task set. |
2190
+ | <code><a href="#@cdklabs/cdk-ecs-codedeploy.AppSpecHooks.property.afterInstall">afterInstall</a></code> | <code>string \| aws-cdk-lib.aws_lambda.IFunction</code> | Lambda or ARN of a lambda to run tasks after the replacement task set is created and one of the target groups is associated with it. |
2191
+ | <code><a href="#@cdklabs/cdk-ecs-codedeploy.AppSpecHooks.property.beforeAllowTraffic">beforeAllowTraffic</a></code> | <code>string \| aws-cdk-lib.aws_lambda.IFunction</code> | Lambda or ARN of a lambda to run tasks after the second target group is associated with the replacement task set, but before traffic is shifted to the replacement task set. |
2192
+ | <code><a href="#@cdklabs/cdk-ecs-codedeploy.AppSpecHooks.property.beforeInstall">beforeInstall</a></code> | <code>string \| aws-cdk-lib.aws_lambda.IFunction</code> | Lambda or ARN of a lambda to run tasks before the replacement task set is created. |
2193
+
2194
+ ---
2195
+
2196
+ ##### `afterAllowTestTraffic`<sup>Optional</sup> <a name="afterAllowTestTraffic" id="@cdklabs/cdk-ecs-codedeploy.AppSpecHooks.property.afterAllowTestTraffic"></a>
2197
+
2198
+ ```typescript
2199
+ public readonly afterAllowTestTraffic: string | IFunction;
2200
+ ```
2201
+
2202
+ - *Type:* string | aws-cdk-lib.aws_lambda.IFunction
2203
+
2204
+ Lambda or ARN of a lambda to run tasks after the test listener serves traffic to the replacement task set.
2205
+
2206
+ ---
2207
+
2208
+ ##### `afterAllowTraffic`<sup>Optional</sup> <a name="afterAllowTraffic" id="@cdklabs/cdk-ecs-codedeploy.AppSpecHooks.property.afterAllowTraffic"></a>
2209
+
2210
+ ```typescript
2211
+ public readonly afterAllowTraffic: string | IFunction;
2212
+ ```
2213
+
2214
+ - *Type:* string | aws-cdk-lib.aws_lambda.IFunction
2215
+
2216
+ Lambda or ARN of a lambda to run tasks after the second target group serves traffic to the replacement task set.
2217
+
2218
+ ---
2219
+
2220
+ ##### `afterInstall`<sup>Optional</sup> <a name="afterInstall" id="@cdklabs/cdk-ecs-codedeploy.AppSpecHooks.property.afterInstall"></a>
2221
+
2222
+ ```typescript
2223
+ public readonly afterInstall: string | IFunction;
2224
+ ```
2225
+
2226
+ - *Type:* string | aws-cdk-lib.aws_lambda.IFunction
2227
+
2228
+ Lambda or ARN of a lambda to run tasks after the replacement task set is created and one of the target groups is associated with it.
2229
+
2230
+ ---
2231
+
2232
+ ##### `beforeAllowTraffic`<sup>Optional</sup> <a name="beforeAllowTraffic" id="@cdklabs/cdk-ecs-codedeploy.AppSpecHooks.property.beforeAllowTraffic"></a>
2233
+
2234
+ ```typescript
2235
+ public readonly beforeAllowTraffic: string | IFunction;
2236
+ ```
2237
+
2238
+ - *Type:* string | aws-cdk-lib.aws_lambda.IFunction
2239
+
2240
+ Lambda or ARN of a lambda to run tasks after the second target group is associated with the replacement task set, but before traffic is shifted to the replacement task set.
2241
+
2242
+ ---
2243
+
2244
+ ##### `beforeInstall`<sup>Optional</sup> <a name="beforeInstall" id="@cdklabs/cdk-ecs-codedeploy.AppSpecHooks.property.beforeInstall"></a>
2245
+
2246
+ ```typescript
2247
+ public readonly beforeInstall: string | IFunction;
2248
+ ```
2249
+
2250
+ - *Type:* string | aws-cdk-lib.aws_lambda.IFunction
2251
+
2252
+ Lambda or ARN of a lambda to run tasks before the replacement task set is created.
2253
+
2254
+ ---
2255
+
2158
2256
  ### AwsvpcConfiguration <a name="AwsvpcConfiguration" id="@cdklabs/cdk-ecs-codedeploy.AwsvpcConfiguration"></a>
2159
2257
 
2160
2258
  Network configuration for ECS services that have a network type of `awsvpc`.
@@ -2246,6 +2344,7 @@ const ecsDeploymentProps: EcsDeploymentProps = { ... }
2246
2344
  | <code><a href="#@cdklabs/cdk-ecs-codedeploy.EcsDeploymentProps.property.targetService">targetService</a></code> | <code><a href="#@cdklabs/cdk-ecs-codedeploy.TargetService">TargetService</a></code> | The ECS service to target for the deployment. |
2247
2345
  | <code><a href="#@cdklabs/cdk-ecs-codedeploy.EcsDeploymentProps.property.autoRollback">autoRollback</a></code> | <code>aws-cdk-lib.aws_codedeploy.AutoRollbackConfig</code> | The configuration for rollback in the event that a deployment fails. |
2248
2346
  | <code><a href="#@cdklabs/cdk-ecs-codedeploy.EcsDeploymentProps.property.description">description</a></code> | <code>string</code> | The description for the deployment. |
2347
+ | <code><a href="#@cdklabs/cdk-ecs-codedeploy.EcsDeploymentProps.property.hooks">hooks</a></code> | <code><a href="#@cdklabs/cdk-ecs-codedeploy.AppSpecHooks">AppSpecHooks</a></code> | Optional lifecycle hooks. |
2249
2348
  | <code><a href="#@cdklabs/cdk-ecs-codedeploy.EcsDeploymentProps.property.timeout">timeout</a></code> | <code>aws-cdk-lib.Duration</code> | The timeout for the deployment. |
2250
2349
 
2251
2350
  ---
@@ -2302,6 +2401,19 @@ The description for the deployment.
2302
2401
 
2303
2402
  ---
2304
2403
 
2404
+ ##### `hooks`<sup>Optional</sup> <a name="hooks" id="@cdklabs/cdk-ecs-codedeploy.EcsDeploymentProps.property.hooks"></a>
2405
+
2406
+ ```typescript
2407
+ public readonly hooks: AppSpecHooks;
2408
+ ```
2409
+
2410
+ - *Type:* <a href="#@cdklabs/cdk-ecs-codedeploy.AppSpecHooks">AppSpecHooks</a>
2411
+ - *Default:* no lifecycle hooks
2412
+
2413
+ Optional lifecycle hooks.
2414
+
2415
+ ---
2416
+
2305
2417
  ##### `timeout`<sup>Optional</sup> <a name="timeout" id="@cdklabs/cdk-ecs-codedeploy.EcsDeploymentProps.property.timeout"></a>
2306
2418
 
2307
2419
  ```typescript
@@ -2434,12 +2546,13 @@ see: https://docs.aws.amazon.com/codedeploy/latest/userguide/reference-appspec-f
2434
2546
  ```typescript
2435
2547
  import { EcsAppSpec } from '@cdklabs/cdk-ecs-codedeploy'
2436
2548
 
2437
- new EcsAppSpec(targetService: TargetService)
2549
+ new EcsAppSpec(targetService: TargetService, hooks?: AppSpecHooks)
2438
2550
  ```
2439
2551
 
2440
2552
  | **Name** | **Type** | **Description** |
2441
2553
  | --- | --- | --- |
2442
2554
  | <code><a href="#@cdklabs/cdk-ecs-codedeploy.EcsAppSpec.Initializer.parameter.targetService">targetService</a></code> | <code><a href="#@cdklabs/cdk-ecs-codedeploy.TargetService">TargetService</a></code> | *No description.* |
2555
+ | <code><a href="#@cdklabs/cdk-ecs-codedeploy.EcsAppSpec.Initializer.parameter.hooks">hooks</a></code> | <code><a href="#@cdklabs/cdk-ecs-codedeploy.AppSpecHooks">AppSpecHooks</a></code> | *No description.* |
2443
2556
 
2444
2557
  ---
2445
2558
 
@@ -2449,6 +2562,12 @@ new EcsAppSpec(targetService: TargetService)
2449
2562
 
2450
2563
  ---
2451
2564
 
2565
+ ##### `hooks`<sup>Optional</sup> <a name="hooks" id="@cdklabs/cdk-ecs-codedeploy.EcsAppSpec.Initializer.parameter.hooks"></a>
2566
+
2567
+ - *Type:* <a href="#@cdklabs/cdk-ecs-codedeploy.AppSpecHooks">AppSpecHooks</a>
2568
+
2569
+ ---
2570
+
2452
2571
  #### Methods <a name="Methods" id="Methods"></a>
2453
2572
 
2454
2573
  | **Name** | **Description** |
@@ -76,5 +76,5 @@ class ApiCanary extends aws_synthetics_alpha_1.Canary {
76
76
  }
77
77
  exports.ApiCanary = ApiCanary;
78
78
  _a = JSII_RTTI_SYMBOL_1;
79
- ApiCanary[_a] = { fqn: "@cdklabs/cdk-ecs-codedeploy.ApiCanary", version: "0.0.154" };
79
+ ApiCanary[_a] = { fqn: "@cdklabs/cdk-ecs-codedeploy.ApiCanary", version: "0.0.155" };
80
80
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYXBpLWNhbmFyeS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDZCQUE2QjtBQUM3Qix3RUFBK0c7QUFDL0csNkNBQTBEO0FBQzFELCtEQUF1RTtBQUd2RSwrQ0FBaUY7QUFDakYsNkRBQWtEO0FBRWxELG1EQUFvRDtBQTZLcEQ7O0dBRUc7QUFDSCxNQUFhLFNBQVUsU0FBUSw2QkFBTTtJQWdCbkMsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUFxQjtRQUM3RCxNQUFNLE9BQU8sR0FBRyxJQUFJLGlDQUFpQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsWUFBWSxDQUFDLENBQUMsQ0FBQztRQUN0RixNQUFNLFdBQVcsR0FBRyxJQUFJLHFCQUFLLENBQUMsS0FBSyxFQUFFLEdBQUcsRUFBRSxnQkFBZ0IsRUFBRTtZQUMxRCxJQUFJLEVBQUUsT0FBTyxDQUFDLFFBQVE7WUFDdEIsUUFBUSxFQUFFO2dCQUNSLEtBQUssRUFBRSx5QkFBVyxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUM7Z0JBQzFDLEtBQUssRUFBRSxPQUFPO2FBQ2Y7U0FDRixDQUFDLENBQUM7UUFDSCxJQUFJLGVBQWUsR0FBRyxLQUFLLENBQUMsdUJBQXVCLEVBQUUsTUFBTSxDQUFDO1FBQzVELElBQUksQ0FBQyxlQUFlLEVBQUU7WUFDcEIsZUFBZSxHQUFHLElBQUksZUFBTSxDQUFDLEtBQUssRUFBRSxHQUFHLEVBQUUsaUJBQWlCLEVBQUU7Z0JBQzFELFVBQVUsRUFBRSx5QkFBZ0IsQ0FBQyxVQUFVO2dCQUN2QyxpQkFBaUIsRUFBRSwwQkFBaUIsQ0FBQyxTQUFTO2dCQUM5QyxVQUFVLEVBQUUsSUFBSTthQUNqQixDQUFDLENBQUM7U0FDSjtRQUVELEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFO1lBQ2YsR0FBRyxLQUFLO1lBQ1IsSUFBSSxFQUFFLDJCQUFJLENBQUMsTUFBTSxDQUFDO2dCQUNoQixJQUFJLEVBQUUsMkJBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRSxXQUFXLENBQUMsV0FBVyxDQUFDO2dCQUNsRSxPQUFPLEVBQUUsZUFBZTthQUN6QixDQUFDO1lBQ0YsT0FBTyxFQUFFLDhCQUFPLENBQUMsK0JBQStCO1lBQ2hELG9CQUFvQixFQUFFO2dCQUNwQixPQUFPLEVBQUUsS0FBSyxDQUFDLE9BQU87Z0JBQ3RCLFdBQVcsRUFBRSxDQUFDLEtBQUssQ0FBQyxXQUFXLElBQUksRUFBRSxDQUFDLENBQUMsUUFBUSxFQUFFO2dCQUNqRCxTQUFTLEVBQUUsa0JBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQzthQUN2RTtZQUNELHVCQUF1QixFQUFFO2dCQUN2QixNQUFNLEVBQUUsZUFBZTtnQkFDdkIsTUFBTSxFQUFFLEtBQUssQ0FBQyx1QkFBdUIsRUFBRSxNQUFNO2FBQzlDO1NBQ0YsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQztRQUVoQyxNQUFNLE1BQU0sR0FBRyxzQkFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUVuQyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksc0JBQUssQ0FBQyxJQUFJLEVBQUUsY0FBYyxFQUFFO1lBQ2xELE1BQU0sRUFBRSxJQUFJLENBQUMsb0JBQW9CLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQztZQUM3QyxpQkFBaUIsRUFBRSxDQUFDO1lBQ3BCLFNBQVMsRUFBRSxHQUFHO1lBQ2Qsa0JBQWtCLEVBQUUsbUNBQWtCLENBQUMsbUJBQW1CO1NBQzNELENBQUMsQ0FBQztRQUVILElBQUksS0FBSyxDQUFDLHNCQUFzQixFQUFFO1lBQ2hDLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxzQkFBSyxDQUFDLElBQUksRUFBRSxlQUFlLEVBQUU7Z0JBQ3BELE1BQU0sRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUM7Z0JBQ3ZDLGlCQUFpQixFQUFFLENBQUM7Z0JBQ3BCLFNBQVMsRUFBRSxLQUFLLENBQUMsc0JBQXNCLENBQUMsY0FBYyxFQUFFO2dCQUN4RCxrQkFBa0IsRUFBRSxtQ0FBa0IsQ0FBQyxzQkFBc0I7YUFDOUQsQ0FBQyxDQUFDO1NBQ0o7SUFDSCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILFdBQVcsQ0FBQyxJQUFpQjtRQUMzQixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN6QixDQUFDOztBQS9FSCw4QkFnRkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IHsgQ2FuYXJ5LCBBcnRpZmFjdHNCdWNrZXRMb2NhdGlvbiwgU2NoZWR1bGUsIFRlc3QsIENvZGUsIFJ1bnRpbWUgfSBmcm9tICdAYXdzLWNkay9hd3Mtc3ludGhldGljcy1hbHBoYSc7XG5pbXBvcnQgeyBEdXJhdGlvbiwgRG9ja2VySW1hZ2UsIExhenkgfSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgeyBBbGFybSwgQ29tcGFyaXNvbk9wZXJhdG9yIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWNsb3Vkd2F0Y2gnO1xuaW1wb3J0IHsgSVZwYywgU3VibmV0U2VsZWN0aW9uLCBJU2VjdXJpdHlHcm91cCB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1lYzInO1xuaW1wb3J0IHsgSVJvbGUgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtaWFtJztcbmltcG9ydCB7IEJsb2NrUHVibGljQWNjZXNzLCBCdWNrZXQsIEJ1Y2tldEVuY3J5cHRpb24gfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtczMnO1xuaW1wb3J0IHsgQXNzZXQgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtczMtYXNzZXRzJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHsgQ2FuYXJ5Q29kZUJ1bmRsZXIgfSBmcm9tICcuL2NvZGUtYnVuZGxpbmcnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEFwaVRlc3RTdGVwIHtcbiAgLyoqXG4gICAqIE5hbWUgb2YgdGVzdC5cbiAgICovXG4gIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogUGF0aCBvZiBIVFRQIHJlcXVlc3QsIHJlbGF0aXZlIHRvIGJhc2VVcmwuXG4gICAqL1xuICByZWFkb25seSBwYXRoOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsIG1ldGhvZCB0byBmb3IgSFRUUCByZXF1ZXN0LlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIEdFVFxuICAgKi9cbiAgcmVhZG9ubHkgbWV0aG9kPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBPcHRpb25hbCBoZWFkZXJzIHRvIGluY2x1ZGUgaW4gSFRUUCByZXF1ZXN0LlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIGhlYWRlcnMgaW5jbHVkZWQuXG4gICAqL1xuICByZWFkb25seSBoZWFkZXJzPzogeyBbIG5hbWU6IHN0cmluZyBdOiBzdHJpbmcgfTtcblxuICAvKipcbiAgICogT3B0aW9uYWwgYm9keSB0byBpbmNsdWRlIGluIEhUVFAgcmVxdWVzdC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBib2R5IGluY2x1ZGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgYm9keT86IHN0cmluZztcblxuICAvKipcbiAgICogSk1FU1BhdGggdG8gYXBwbHkgYWdhaW5zdCB0aGUgcmVzcG9uc2UgZnJvbSB0aGUgSFRUUCByZXF1ZXN0IGFuZCBjb21wYXJlIGFnYWluc3QgZXhwZWN0ZWQgdmFsdWUuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gSk1FU1BhdGggYXNzZXJ0aW9uIHdpbGwgYmUgcGVyZm9ybWVkLlxuICAgKi9cbiAgcmVhZG9ubHkgam1lc1BhdGg/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEV4cGVjdGVkIHZhbHVlIHRvIGNvbXBhcmUgYWdhaW5zdCB0aGUgam1lc1BhdGguXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gdW5kZWZpbmVkXG4gICAqL1xuICByZWFkb25seSBleHBlY3RlZFZhbHVlPzogYW55O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFwaUNhbmFyeVByb3BzIGV4dGVuZHMgQmFzZUNhbmFyeVByb3BzIHtcbiAgLyoqXG4gICAqIFRoZSBiYXNlIFVSTCB0byB1c2UgZm9yIHRlc3RzLlxuICAgKi9cbiAgcmVhZG9ubHkgYmFzZVVybDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgdGhyZXNob2xkIGZvciB0cmlnZ2VyaW5nIGFuIGFsYXJtIG9uIHRoZSB0ZXN0IGR1cmF0aW9uLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIGFsYXJtIGlzIGNyZWF0ZWQgZm9yIGR1cmF0aW9uXG4gICAqL1xuICByZWFkb25seSBkdXJhdGlvbkFsYXJtVGhyZXNob2xkPzogRHVyYXRpb247XG5cbiAgLyoqXG4gICAqIFRoZSBudW1iZXIgb2YgdGhyZWFkcyB0byBydW4gY29uY3VycmVudGx5IGZvciB0aGUgc3ludGhldGljIHRlc3QuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gMjBcbiAgICovXG4gIHJlYWRvbmx5IHRocmVhZENvdW50PzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBUaGUgc3RlcHMgdG8gcGVyZm9ybSBpbiB0aGUgc3ludGhldGljIHRlc3QuXG4gICAqL1xuICByZWFkb25seSBzdGVwcz86IEFwaVRlc3RTdGVwW107XG59XG5cbmludGVyZmFjZSBCYXNlQ2FuYXJ5UHJvcHMge1xuICAvKipcbiAgICogVGhlIHMzIGxvY2F0aW9uIHRoYXQgc3RvcmVzIHRoZSBkYXRhIG9mIHRoZSBjYW5hcnkgcnVucy5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBBIG5ldyBzMyBidWNrZXQgd2lsbCBiZSBjcmVhdGVkIHdpdGhvdXQgYSBwcmVmaXguXG4gICAqL1xuICByZWFkb25seSBhcnRpZmFjdHNCdWNrZXRMb2NhdGlvbj86IEFydGlmYWN0c0J1Y2tldExvY2F0aW9uO1xuXG4gIC8qKlxuICAgKiBDYW5hcnkgZXhlY3V0aW9uIHJvbGUuXG4gICAqXG4gICAqIFRoaXMgaXMgdGhlIHJvbGUgdGhhdCB3aWxsIGJlIGFzc3VtZWQgYnkgdGhlIGNhbmFyeSB1cG9uIGV4ZWN1dGlvbi5cbiAgICogSXQgY29udHJvbHMgdGhlIHBlcm1pc3Npb25zIHRoYXQgdGhlIGNhbmFyeSB3aWxsIGhhdmUuIFRoZSByb2xlIG11c3RcbiAgICogYmUgYXNzdW1hYmxlIGJ5IHRoZSBBV1MgTGFtYmRhIHNlcnZpY2UgcHJpbmNpcGFsLlxuICAgKlxuICAgKiBJZiBub3Qgc3VwcGxpZWQsIGEgcm9sZSB3aWxsIGJlIGNyZWF0ZWQgd2l0aCBhbGwgdGhlIHJlcXVpcmVkIHBlcm1pc3Npb25zLlxuICAgKiBJZiB5b3UgcHJvdmlkZSBhIFJvbGUsIHlvdSBtdXN0IGFkZCB0aGUgcmVxdWlyZWQgcGVybWlzc2lvbnMuXG4gICAqXG4gICAqIEBzZWUgcmVxdWlyZWQgcGVybWlzc2lvbnM6IGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1yZXNvdXJjZS1zeW50aGV0aWNzLWNhbmFyeS5odG1sI2Nmbi1zeW50aGV0aWNzLWNhbmFyeS1leGVjdXRpb25yb2xlYXJuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gQSB1bmlxdWUgcm9sZSB3aWxsIGJlIGdlbmVyYXRlZCBmb3IgdGhpcyBjYW5hcnkuXG4gICAqIFlvdSBjYW4gYWRkIHBlcm1pc3Npb25zIHRvIHJvbGVzIGJ5IGNhbGxpbmcgJ2FkZFRvUm9sZVBvbGljeScuXG4gICAqL1xuICByZWFkb25seSByb2xlPzogSVJvbGU7XG5cbiAgLyoqXG4gICAqIEhvdyBsb25nIHRoZSBjYW5hcnkgd2lsbCBiZSBpbiBhICdSVU5OSU5HJyBzdGF0ZS4gRm9yIGV4YW1wbGUsIGlmIHlvdSBzZXQgYHRpbWVUb0xpdmVgIHRvIGJlIDEgaG91ciBhbmQgYHNjaGVkdWxlYCB0byBiZSBgcmF0ZSgxMCBtaW51dGVzKWAsXG4gICAqIHlvdXIgY2FuYXJ5IHdpbGwgcnVuIGF0IDEwIG1pbnV0ZSBpbnRlcnZhbHMgZm9yIGFuIGhvdXIsIGZvciBhIHRvdGFsIG9mIDYgdGltZXMuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gbGltaXRcbiAgICovXG4gIHJlYWRvbmx5IHRpbWVUb0xpdmU/OiBEdXJhdGlvbjtcblxuICAvKipcbiAgICogU3BlY2lmeSB0aGUgc2NoZWR1bGUgZm9yIGhvdyBvZnRlbiB0aGUgY2FuYXJ5IHJ1bnMuIEZvciBleGFtcGxlLCBpZiB5b3Ugc2V0IGBzY2hlZHVsZWAgdG8gYHJhdGUoMTAgbWludXRlcylgLCB0aGVuIHRoZSBjYW5hcnkgd2lsbCBydW4gZXZlcnkgMTAgbWludXRlcy5cbiAgICogWW91IGNhbiBzZXQgdGhlIHNjaGVkdWxlIHdpdGggYFNjaGVkdWxlLnJhdGUoRHVyYXRpb24pYCAocmVjb21tZW5kZWQpIG9yIHlvdSBjYW4gc3BlY2lmeSBhbiBleHByZXNzaW9uIHVzaW5nIGBTY2hlZHVsZS5leHByZXNzaW9uKClgLlxuICAgKiBAZGVmYXVsdCAncmF0ZSg1IG1pbnV0ZXMpJ1xuICAgKi9cbiAgcmVhZG9ubHkgc2NoZWR1bGU/OiBTY2hlZHVsZTtcblxuICAvKipcbiAgICogV2hldGhlciBvciBub3QgdGhlIGNhbmFyeSBzaG91bGQgc3RhcnQgYWZ0ZXIgY3JlYXRpb24uXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IHN0YXJ0QWZ0ZXJDcmVhdGlvbj86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEhvdyBtYW55IGRheXMgc2hvdWxkIHN1Y2Nlc3NmdWwgcnVucyBiZSByZXRhaW5lZC5cbiAgICpcbiAgICogQGRlZmF1bHQgRHVyYXRpb24uZGF5cygzMSlcbiAgICovXG4gIHJlYWRvbmx5IHN1Y2Nlc3NSZXRlbnRpb25QZXJpb2Q/OiBEdXJhdGlvbjtcblxuICAvKipcbiAgICogSG93IG1hbnkgZGF5cyBzaG91bGQgZmFpbGVkIHJ1bnMgYmUgcmV0YWluZWQuXG4gICAqXG4gICAqIEBkZWZhdWx0IER1cmF0aW9uLmRheXMoMzEpXG4gICAqL1xuICByZWFkb25seSBmYWlsdXJlUmV0ZW50aW9uUGVyaW9kPzogRHVyYXRpb247XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBjYW5hcnkuIEJlIHN1cmUgdG8gZ2l2ZSBpdCBhIGRlc2NyaXB0aXZlIG5hbWUgdGhhdCBkaXN0aW5ndWlzaGVzIGl0IGZyb21cbiAgICogb3RoZXIgY2FuYXJpZXMgaW4geW91ciBhY2NvdW50LlxuICAgKlxuICAgKiBEbyBub3QgaW5jbHVkZSBzZWNyZXRzIG9yIHByb3ByaWV0YXJ5IGluZm9ybWF0aW9uIGluIHlvdXIgY2FuYXJ5IG5hbWUuIFRoZSBjYW5hcnkgbmFtZVxuICAgKiBtYWtlcyB1cCBwYXJ0IG9mIHRoZSBjYW5hcnkgQVJOLCB3aGljaCBpcyBpbmNsdWRlZCBpbiBvdXRib3VuZCBjYWxscyBvdmVyIHRoZSBpbnRlcm5ldC5cbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uQ2xvdWRXYXRjaC9sYXRlc3QvbW9uaXRvcmluZy9zZXJ2aWNlbGVuc19jYW5hcmllc19zZWN1cml0eS5odG1sXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gQSB1bmlxdWUgbmFtZSB3aWxsIGJlIGdlbmVyYXRlZCBmcm9tIHRoZSBjb25zdHJ1Y3QgSURcbiAgICovXG4gIHJlYWRvbmx5IGNhbmFyeU5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBWUEMgd2hlcmUgdGhpcyBjYW5hcnkgaXMgcnVuLlxuICAgKlxuICAgKiBTcGVjaWZ5IHRoaXMgaWYgdGhlIGNhbmFyeSBuZWVkcyB0byBhY2Nlc3MgcmVzb3VyY2VzIGluIGEgVlBDLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIE5vdCBpbiBWUENcbiAgICovXG4gIHJlYWRvbmx5IHZwYz86IElWcGM7XG5cbiAgLyoqXG4gICAqIFdoZXJlIHRvIHBsYWNlIHRoZSBuZXR3b3JrIGludGVyZmFjZXMgd2l0aGluIHRoZSBWUEMuIFlvdSBtdXN0IHByb3ZpZGUgYHZwY2Agd2hlbiB1c2luZyB0aGlzIHByb3AuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gdGhlIFZwYyBkZWZhdWx0IHN0cmF0ZWd5IGlmIG5vdCBzcGVjaWZpZWRcbiAgICovXG4gIHJlYWRvbmx5IHZwY1N1Ym5ldHM/OiBTdWJuZXRTZWxlY3Rpb247XG5cbiAgLyoqXG4gICAqIFRoZSBsaXN0IG9mIHNlY3VyaXR5IGdyb3VwcyB0byBhc3NvY2lhdGUgd2l0aCB0aGUgY2FuYXJ5J3MgbmV0d29yayBpbnRlcmZhY2VzLiBZb3UgbXVzdCBwcm92aWRlIGB2cGNgIHdoZW4gdXNpbmcgdGhpcyBwcm9wLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIElmIHRoZSBjYW5hcnkgaXMgcGxhY2VkIHdpdGhpbiBhIFZQQyBhbmQgYSBzZWN1cml0eSBncm91cCBpc1xuICAgKiBub3Qgc3BlY2lmaWVkIGEgZGVkaWNhdGVkIHNlY3VyaXR5IGdyb3VwIHdpbGwgYmUgY3JlYXRlZCBmb3IgdGhpcyBjYW5hcnkuXG4gICAqL1xuICByZWFkb25seSBzZWN1cml0eUdyb3Vwcz86IElTZWN1cml0eUdyb3VwW107XG59XG5cbi8qKlxuICogQSBDbG91ZFdhdGNoIFN5bnRoZXRpYyBDYW5hcnkgZm9yIG1vbml0b3JpbmcgQVBJcy5cbiAqL1xuZXhwb3J0IGNsYXNzIEFwaUNhbmFyeSBleHRlbmRzIENhbmFyeSB7XG4gIC8qKlxuICAgKiBBIENsb3VkV2F0Y2ggQWxhcm0gdGhhdCB0cmlnZ2VycyB3aGVuIHRoZSBzdWNjZXNzIHJhdGUgZmFsbHMgYmVsb3cgMTAwJSBvdmVyIHRoZSBwYXN0IDIgcGVyaW9kcy5cbiAgICovXG4gIHN1Y2Nlc3NBbGFybTogQWxhcm07XG5cbiAgLyoqXG4gICAqIEEgQ2xvdWRXYXRjaCBBbGFybSB0aGF0IHRyaWdnZXJzIHdoZW4gdGhlIGR1cmF0aW9uIG9mIHRoZSB0ZXN0cyBleGNlZWRzIHRoZSBnaXZlbiB0aHJlc2hvbGQgb3ZlciB0aGUgcGFzdCAyIHBlcmlvZHMuXG4gICAqL1xuICBkdXJhdGlvbkFsYXJtPzogQWxhcm07XG5cbiAgLyoqXG4gICAqIEBpbnRlcm5hbCBmaWVsZCB0byB0cmFjayBzdGVwcyBmb3IgdGhpcyBjYW5hcnkuXG4gICAqL1xuICBfc3RlcHM6IEFwaVRlc3RTdGVwW107XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IEFwaUNhbmFyeVByb3BzKSB7XG4gICAgY29uc3QgYnVuZGxlciA9IG5ldyBDYW5hcnlDb2RlQnVuZGxlcihwYXRoLmpvaW4oX19kaXJuYW1lLCAnLi4nLCAnLi4nLCAnY2FuYXJ5LXNyYycpKTtcbiAgICBjb25zdCBjYW5hcnlBc3NldCA9IG5ldyBBc3NldChzY29wZSwgYCR7aWR9QXBpQ2FuYXJ5QXNzZXRgLCB7XG4gICAgICBwYXRoOiBidW5kbGVyLmNvZGVQYXRoLFxuICAgICAgYnVuZGxpbmc6IHtcbiAgICAgICAgaW1hZ2U6IERvY2tlckltYWdlLmZyb21SZWdpc3RyeSgnbm9kZToxNCcpLFxuICAgICAgICBsb2NhbDogYnVuZGxlcixcbiAgICAgIH0sXG4gICAgfSk7XG4gICAgbGV0IGFydGlmYWN0c0J1Y2tldCA9IHByb3BzLmFydGlmYWN0c0J1Y2tldExvY2F0aW9uPy5idWNrZXQ7XG4gICAgaWYgKCFhcnRpZmFjdHNCdWNrZXQpIHtcbiAgICAgIGFydGlmYWN0c0J1Y2tldCA9IG5ldyBCdWNrZXQoc2NvcGUsIGAke2lkfUFydGlmYWN0c0J1Y2tldGAsIHtcbiAgICAgICAgZW5jcnlwdGlvbjogQnVja2V0RW5jcnlwdGlvbi5TM19NQU5BR0VELFxuICAgICAgICBibG9ja1B1YmxpY0FjY2VzczogQmxvY2tQdWJsaWNBY2Nlc3MuQkxPQ0tfQUxMLFxuICAgICAgICBlbmZvcmNlU1NMOiB0cnVlLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgc3VwZXIoc2NvcGUsIGlkLCB7XG4gICAgICAuLi5wcm9wcyxcbiAgICAgIHRlc3Q6IFRlc3QuY3VzdG9tKHtcbiAgICAgICAgY29kZTogQ29kZS5mcm9tQnVja2V0KGNhbmFyeUFzc2V0LmJ1Y2tldCwgY2FuYXJ5QXNzZXQuczNPYmplY3RLZXkpLFxuICAgICAgICBoYW5kbGVyOiAnaW5kZXguaGFuZGxlcicsXG4gICAgICB9KSxcbiAgICAgIHJ1bnRpbWU6IFJ1bnRpbWUuU1lOVEhFVElDU19OT0RFSlNfUFVQUEVURUVSXzNfOCxcbiAgICAgIGVudmlyb25tZW50VmFyaWFibGVzOiB7XG4gICAgICAgIGJhc2VVcmw6IHByb3BzLmJhc2VVcmwsXG4gICAgICAgIHRocmVhZENvdW50OiAocHJvcHMudGhyZWFkQ291bnQgPz8gMjApLnRvU3RyaW5nKCksXG4gICAgICAgIHRlc3RTdGVwczogTGF6eS5zdHJpbmcoeyBwcm9kdWNlOiAoKSA9PiBKU09OLnN0cmluZ2lmeSh0aGlzLl9zdGVwcykgfSksXG4gICAgICB9LFxuICAgICAgYXJ0aWZhY3RzQnVja2V0TG9jYXRpb246IHtcbiAgICAgICAgYnVja2V0OiBhcnRpZmFjdHNCdWNrZXQsXG4gICAgICAgIHByZWZpeDogcHJvcHMuYXJ0aWZhY3RzQnVja2V0TG9jYXRpb24/LnByZWZpeCxcbiAgICAgIH0sXG4gICAgfSk7XG4gICAgdGhpcy5fc3RlcHMgPSBwcm9wcy5zdGVwcyA/PyBbXTtcblxuICAgIGNvbnN0IHBlcmlvZCA9IER1cmF0aW9uLm1pbnV0ZXMoNSk7XG5cbiAgICB0aGlzLnN1Y2Nlc3NBbGFybSA9IG5ldyBBbGFybSh0aGlzLCAnU3VjY2Vzc0FsYXJtJywge1xuICAgICAgbWV0cmljOiB0aGlzLm1ldHJpY1N1Y2Nlc3NQZXJjZW50KHsgcGVyaW9kIH0pLFxuICAgICAgZXZhbHVhdGlvblBlcmlvZHM6IDIsXG4gICAgICB0aHJlc2hvbGQ6IDEwMCxcbiAgICAgIGNvbXBhcmlzb25PcGVyYXRvcjogQ29tcGFyaXNvbk9wZXJhdG9yLkxFU1NfVEhBTl9USFJFU0hPTEQsXG4gICAgfSk7XG5cbiAgICBpZiAocHJvcHMuZHVyYXRpb25BbGFybVRocmVzaG9sZCkge1xuICAgICAgdGhpcy5kdXJhdGlvbkFsYXJtID0gbmV3IEFsYXJtKHRoaXMsICdEdXJhdGlvbkFsYXJtJywge1xuICAgICAgICBtZXRyaWM6IHRoaXMubWV0cmljRHVyYXRpb24oeyBwZXJpb2QgfSksXG4gICAgICAgIGV2YWx1YXRpb25QZXJpb2RzOiAyLFxuICAgICAgICB0aHJlc2hvbGQ6IHByb3BzLmR1cmF0aW9uQWxhcm1UaHJlc2hvbGQudG9NaWxsaXNlY29uZHMoKSxcbiAgICAgICAgY29tcGFyaXNvbk9wZXJhdG9yOiBDb21wYXJpc29uT3BlcmF0b3IuR1JFQVRFUl9USEFOX1RIUkVTSE9MRCxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgYSBuZXcgdGVzdCBzdGVwIHRvIHRoaXMgY2FuYXJ5LlxuICAgKlxuICAgKiBAcGFyYW0gc3RlcCAtIEFwaVRlc3RTdGVwIHRvIGFkZC5cbiAgICovXG4gIGFkZFRlc3RTdGVwKHN0ZXA6IEFwaVRlc3RTdGVwKSB7XG4gICAgdGhpcy5fc3RlcHMucHVzaChzdGVwKTtcbiAgfVxufSJdfQ==
@@ -1,5 +1,6 @@
1
1
  import * as ec2 from 'aws-cdk-lib/aws-ec2';
2
2
  import * as ecs from 'aws-cdk-lib/aws-ecs';
3
+ import * as lambda from 'aws-cdk-lib/aws-lambda';
3
4
  /**
4
5
  * Represents an AppSpec to be used for ECS services.
5
6
  *
@@ -10,13 +11,18 @@ export declare class EcsAppSpec {
10
11
  * Service to target for the deployment
11
12
  */
12
13
  private readonly targetService;
13
- constructor(targetService: TargetService);
14
+ /**
15
+ * Optional lifecycle hooks
16
+ */
17
+ private readonly hooks?;
18
+ constructor(targetService: TargetService, hooks?: AppSpecHooks);
14
19
  /**
15
20
  * Render JSON string for this AppSpec to be used
16
21
  *
17
22
  * @returns string representation of this AppSpec
18
23
  */
19
24
  toString(): string;
25
+ private hooksSection;
20
26
  private configureAwsVpcNetworkingWithSecurityGroups;
21
27
  }
22
28
  /**
@@ -76,3 +82,28 @@ export interface AwsvpcConfiguration {
76
82
  */
77
83
  readonly assignPublicIp: boolean;
78
84
  }
85
+ /**
86
+ * Lifecycle hooks configuration
87
+ */
88
+ export interface AppSpecHooks {
89
+ /**
90
+ * Lambda or ARN of a lambda to run tasks before the replacement task set is created.
91
+ */
92
+ readonly beforeInstall?: string | lambda.IFunction;
93
+ /**
94
+ * Lambda or ARN of a lambda to run tasks after the replacement task set is created and one of the target groups is associated with it.
95
+ */
96
+ readonly afterInstall?: string | lambda.IFunction;
97
+ /**
98
+ * Lambda or ARN of a lambda to run tasks after the test listener serves traffic to the replacement task set.
99
+ */
100
+ readonly afterAllowTestTraffic?: string | lambda.IFunction;
101
+ /**
102
+ * Lambda or ARN of a lambda to run tasks after the second target group is associated with the replacement task set, but before traffic is shifted to the replacement task set.
103
+ */
104
+ readonly beforeAllowTraffic?: string | lambda.IFunction;
105
+ /**
106
+ * Lambda or ARN of a lambda to run tasks after the second target group serves traffic to the replacement task set.
107
+ */
108
+ readonly afterAllowTraffic?: string | lambda.IFunction;
109
+ }
@@ -9,8 +9,9 @@ const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
9
9
  * see: https://docs.aws.amazon.com/codedeploy/latest/userguide/reference-appspec-file-structure-resources.html#reference-appspec-file-structure-resources-ecs
10
10
  */
11
11
  class EcsAppSpec {
12
- constructor(targetService) {
12
+ constructor(targetService, hooks) {
13
13
  this.targetService = targetService;
14
+ this.hooks = hooks;
14
15
  }
15
16
  /**
16
17
  * Render JSON string for this AppSpec to be used
@@ -41,9 +42,51 @@ class EcsAppSpec {
41
42
  },
42
43
  },
43
44
  }],
45
+ ...this.hooksSection(),
44
46
  };
45
47
  return JSON.stringify(appSpec);
46
48
  }
49
+ hooksSection() {
50
+ if (this.hooks == undefined) {
51
+ return {};
52
+ }
53
+ const hooks = this.hooks;
54
+ if (this.hooks.beforeInstall == undefined &&
55
+ this.hooks.afterInstall == undefined &&
56
+ this.hooks.afterAllowTestTraffic == undefined &&
57
+ this.hooks.beforeAllowTraffic == undefined &&
58
+ this.hooks.afterAllowTraffic == undefined) {
59
+ return {};
60
+ }
61
+ const capitalize = (s) => s && s[0].toUpperCase() + s.slice(1);
62
+ const hook = (name) => {
63
+ const hookValue = hooks[name];
64
+ if (hookValue == undefined) {
65
+ return [];
66
+ }
67
+ else {
68
+ return [{
69
+ [capitalize(name)]: typeof hookValue === 'string'
70
+ ? hookValue
71
+ : hookValue.functionArn,
72
+ }];
73
+ }
74
+ };
75
+ const beforeInstall = hook('beforeInstall');
76
+ const afterInstall = hook('afterInstall');
77
+ const afterAllowTestTraffic = hook('afterAllowTestTraffic');
78
+ const beforeAllowTraffic = hook('beforeAllowTraffic');
79
+ const afterAllowTraffic = hook('afterAllowTraffic');
80
+ return {
81
+ Hooks: [
82
+ ...beforeInstall,
83
+ ...afterInstall,
84
+ ...afterAllowTestTraffic,
85
+ ...beforeAllowTraffic,
86
+ ...afterAllowTraffic,
87
+ ],
88
+ };
89
+ }
47
90
  configureAwsVpcNetworkingWithSecurityGroups(awsvpcConfiguration) {
48
91
  if (!awsvpcConfiguration) {
49
92
  return undefined;
@@ -59,5 +102,5 @@ class EcsAppSpec {
59
102
  }
60
103
  exports.EcsAppSpec = EcsAppSpec;
61
104
  _a = JSII_RTTI_SYMBOL_1;
62
- EcsAppSpec[_a] = { fqn: "@cdklabs/cdk-ecs-codedeploy.EcsAppSpec", version: "0.0.154" };
63
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZWNzLWFwcHNwZWMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFHQTs7OztHQUlHO0FBQ0gsTUFBYSxVQUFVO0lBTXJCLFlBQVksYUFBNEI7UUFDdEMsSUFBSSxDQUFDLGFBQWEsR0FBRyxhQUFhLENBQUM7SUFDckMsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxRQUFRO1FBQ04sTUFBTSxPQUFPLEdBQUc7WUFDZCxPQUFPLEVBQUUsS0FBSztZQUNkLFNBQVMsRUFBRSxDQUFDO29CQUNWLGFBQWEsRUFBRTt3QkFDYixJQUFJLEVBQUUsbUJBQW1CO3dCQUN6QixVQUFVLEVBQUU7NEJBQ1YsY0FBYyxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLGlCQUFpQjs0QkFDbkUsZ0JBQWdCLEVBQUU7Z0NBQ2hCLGFBQWEsRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLGFBQWE7Z0NBQy9DLGFBQWEsRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLGFBQWE7NkJBQ2hEOzRCQUNELGVBQWUsRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLGVBQWU7NEJBQ25ELG9CQUFvQixFQUFFLElBQUksQ0FBQywyQ0FBMkMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLG1CQUFtQixDQUFDOzRCQUM5Ryx3QkFBd0IsRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLHdCQUF3QixFQUFFLEdBQUcsQ0FBQyx3QkFBd0IsQ0FBQyxFQUFFO2dDQUNwRyxPQUFPO29DQUNMLElBQUksRUFBRSx3QkFBd0IsQ0FBQyxJQUFJO29DQUNuQyxnQkFBZ0IsRUFBRSx3QkFBd0IsQ0FBQyxnQkFBZ0I7b0NBQzNELE1BQU0sRUFBRSx3QkFBd0IsQ0FBQyxNQUFNO2lDQUN4QyxDQUFDOzRCQUNKLENBQUMsQ0FBQzt5QkFDSDtxQkFDRjtpQkFDRixDQUFDO1NBQ0gsQ0FBQztRQUNGLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRU8sMkNBQTJDLENBQUMsbUJBQXlDO1FBQzNGLElBQUksQ0FBQyxtQkFBbUIsRUFBRTtZQUN4QixPQUFPLFNBQVMsQ0FBQztTQUNsQjtRQUNELE9BQU87WUFDTCxtQkFBbUIsRUFBRTtnQkFDbkIsY0FBYyxFQUFFLG1CQUFtQixDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxVQUFVO2dCQUMzRSxPQUFPLEVBQUUsbUJBQW1CLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxtQkFBbUIsQ0FBQyxVQUFVLENBQUMsQ0FBQyxTQUFTO2dCQUN4RixjQUFjLEVBQUUsbUJBQW1CLENBQUMsY0FBYyxFQUFFLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLGVBQWUsQ0FBQzthQUNwRjtTQUNGLENBQUM7SUFDSixDQUFDOztBQXRESCxnQ0F1REMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBlYzIgZnJvbSAnYXdzLWNkay1saWIvYXdzLWVjMic7XG5pbXBvcnQgKiBhcyBlY3MgZnJvbSAnYXdzLWNkay1saWIvYXdzLWVjcyc7XG5cbi8qKlxuICogUmVwcmVzZW50cyBhbiBBcHBTcGVjIHRvIGJlIHVzZWQgZm9yIEVDUyBzZXJ2aWNlcy5cbiAqXG4gKiBzZWU6IGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9jb2RlZGVwbG95L2xhdGVzdC91c2VyZ3VpZGUvcmVmZXJlbmNlLWFwcHNwZWMtZmlsZS1zdHJ1Y3R1cmUtcmVzb3VyY2VzLmh0bWwjcmVmZXJlbmNlLWFwcHNwZWMtZmlsZS1zdHJ1Y3R1cmUtcmVzb3VyY2VzLWVjc1xuICovXG5leHBvcnQgY2xhc3MgRWNzQXBwU3BlYyB7XG4gIC8qKlxuICAgKiBTZXJ2aWNlIHRvIHRhcmdldCBmb3IgdGhlIGRlcGxveW1lbnRcbiAgICovXG4gIHByaXZhdGUgcmVhZG9ubHkgdGFyZ2V0U2VydmljZTogVGFyZ2V0U2VydmljZTtcblxuICBjb25zdHJ1Y3Rvcih0YXJnZXRTZXJ2aWNlOiBUYXJnZXRTZXJ2aWNlKSB7XG4gICAgdGhpcy50YXJnZXRTZXJ2aWNlID0gdGFyZ2V0U2VydmljZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZW5kZXIgSlNPTiBzdHJpbmcgZm9yIHRoaXMgQXBwU3BlYyB0byBiZSB1c2VkXG4gICAqXG4gICAqIEByZXR1cm5zIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGlzIEFwcFNwZWNcbiAgICovXG4gIHRvU3RyaW5nKCk6IHN0cmluZyB7XG4gICAgY29uc3QgYXBwU3BlYyA9IHtcbiAgICAgIHZlcnNpb246ICcwLjAnLFxuICAgICAgUmVzb3VyY2VzOiBbe1xuICAgICAgICBUYXJnZXRTZXJ2aWNlOiB7XG4gICAgICAgICAgVHlwZTogJ0FXUzo6RUNTOjpTZXJ2aWNlJyxcbiAgICAgICAgICBQcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgICBUYXNrRGVmaW5pdGlvbjogdGhpcy50YXJnZXRTZXJ2aWNlLnRhc2tEZWZpbml0aW9uLnRhc2tEZWZpbml0aW9uQXJuLFxuICAgICAgICAgICAgTG9hZEJhbGFuY2VySW5mbzoge1xuICAgICAgICAgICAgICBDb250YWluZXJOYW1lOiB0aGlzLnRhcmdldFNlcnZpY2UuY29udGFpbmVyTmFtZSxcbiAgICAgICAgICAgICAgQ29udGFpbmVyUG9ydDogdGhpcy50YXJnZXRTZXJ2aWNlLmNvbnRhaW5lclBvcnQsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgUGxhdGZvcm1WZXJzaW9uOiB0aGlzLnRhcmdldFNlcnZpY2UucGxhdGZvcm1WZXJzaW9uLFxuICAgICAgICAgICAgTmV0d29ya0NvbmZpZ3VyYXRpb246IHRoaXMuY29uZmlndXJlQXdzVnBjTmV0d29ya2luZ1dpdGhTZWN1cml0eUdyb3Vwcyh0aGlzLnRhcmdldFNlcnZpY2UuYXdzdnBjQ29uZmlndXJhdGlvbiksXG4gICAgICAgICAgICBDYXBhY2l0eVByb3ZpZGVyU3RyYXRlZ3k6IHRoaXMudGFyZ2V0U2VydmljZS5jYXBhY2l0eVByb3ZpZGVyU3RyYXRlZ3k/Lm1hcChjYXBhY2l0eVByb3ZpZGVyU3RyYXRlZ3kgPT4ge1xuICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIEJhc2U6IGNhcGFjaXR5UHJvdmlkZXJTdHJhdGVneS5iYXNlLFxuICAgICAgICAgICAgICAgIENhcGFjaXR5UHJvdmlkZXI6IGNhcGFjaXR5UHJvdmlkZXJTdHJhdGVneS5jYXBhY2l0eVByb3ZpZGVyLFxuICAgICAgICAgICAgICAgIFdlaWdodDogY2FwYWNpdHlQcm92aWRlclN0cmF0ZWd5LndlaWdodCxcbiAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9XSxcbiAgICB9O1xuICAgIHJldHVybiBKU09OLnN0cmluZ2lmeShhcHBTcGVjKTtcbiAgfVxuXG4gIHByaXZhdGUgY29uZmlndXJlQXdzVnBjTmV0d29ya2luZ1dpdGhTZWN1cml0eUdyb3Vwcyhhd3N2cGNDb25maWd1cmF0aW9uPzogQXdzdnBjQ29uZmlndXJhdGlvbikge1xuICAgIGlmICghYXdzdnBjQ29uZmlndXJhdGlvbikge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgIGF3c3ZwY0NvbmZpZ3VyYXRpb246IHtcbiAgICAgICAgYXNzaWduUHVibGljSXA6IGF3c3ZwY0NvbmZpZ3VyYXRpb24uYXNzaWduUHVibGljSXAgPyAnRU5BQkxFRCcgOiAnRElTQUJMRUQnLFxuICAgICAgICBzdWJuZXRzOiBhd3N2cGNDb25maWd1cmF0aW9uLnZwYy5zZWxlY3RTdWJuZXRzKGF3c3ZwY0NvbmZpZ3VyYXRpb24udnBjU3VibmV0cykuc3VibmV0SWRzLFxuICAgICAgICBzZWN1cml0eUdyb3VwczogYXdzdnBjQ29uZmlndXJhdGlvbi5zZWN1cml0eUdyb3Vwcz8ubWFwKChzZykgPT4gc2cuc2VjdXJpdHlHcm91cElkKSxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxufVxuXG4vKipcbiAqIERlc2NyaWJlIHRoZSB0YXJnZXQgZm9yIENvZGVEZXBsb3kgdG8gdXNlIHdoZW4gY3JlYXRpbmcgYSBkZXBsb3ltZW50IGZvciBhbiBlY3MuRWNzRGVwbG95bWVudEdyb3VwLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRhcmdldFNlcnZpY2Uge1xuICAvKipcbiAgICogVGhlIFRhc2tEZWZpbnRpb24gdG8gZGVwbG95IHRvIHRoZSB0YXJnZXQgc2VydmljZXMuXG4gICAqL1xuICByZWFkb25seSB0YXNrRGVmaW5pdGlvbjogZWNzLklUYXNrRGVmaW5pdGlvbjtcblxuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIEFtYXpvbiBFQ1MgY29udGFpbmVyIHRoYXQgY29udGFpbnMgeW91ciBBbWF6b24gRUNTIGFwcGxpY2F0aW9uLiBJdCBtdXN0IGJlIGEgY29udGFpbmVyIHNwZWNpZmllZCBpbiB5b3VyIEFtYXpvbiBFQ1MgdGFzayBkZWZpbml0aW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgY29udGFpbmVyTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgcG9ydCBvbiB0aGUgY29udGFpbmVyIHdoZXJlIHRyYWZmaWMgd2lsbCBiZSByb3V0ZWQgdG8uXG4gICAqL1xuICByZWFkb25seSBjb250YWluZXJQb3J0OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFRoZSBwbGF0Zm9ybSB2ZXJzaW9uIG9mIHRoZSBGYXJnYXRlIHRhc2tzIGluIHRoZSBkZXBsb3llZCBBbWF6b24gRUNTIHNlcnZpY2UuXG4gICAqIHNlZTogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvbkVDUy9sYXRlc3QvZGV2ZWxvcGVyZ3VpZGUvcGxhdGZvcm1fdmVyc2lvbnMuaHRtbFxuICAgKlxuICAgKiBAZGVmYXVsdCBMQVRFU1RcbiAgICovXG4gIHJlYWRvbmx5IHBsYXRmb3JtVmVyc2lvbj86IGVjcy5GYXJnYXRlUGxhdGZvcm1WZXJzaW9uO1xuXG4gIC8qKlxuICAgKiBOZXR3b3JrIGNvbmZpZ3VyYXRpb24gZm9yIEVDUyBzZXJ2aWNlcyB0aGF0IGhhdmUgYSBuZXR3b3JrIHR5cGUgb2YgYGF3c3ZwY2AuXG4gICAqXG4gICAqIEBkZWZhdWx0IHJldXNlIGN1cnJlbnQgbmV0d29yayBzZXR0aW5ncyBmb3IgRUNTIHNlcnZpY2UuXG4gICAqL1xuICByZWFkb25seSBhd3N2cGNDb25maWd1cmF0aW9uPzogQXdzdnBjQ29uZmlndXJhdGlvbjtcblxuICAvKipcbiAgICogQSBsaXN0IG9mIEFtYXpvbiBFQ1MgY2FwYWNpdHkgcHJvdmlkZXJzIHRvIHVzZSBmb3IgdGhlIGRlcGxveW1lbnQuXG4gICAqXG4gICAqIEBkZWZhdWx0IHJldXNlIGN1cnJlbnQgY2FwY2l0eSBwcm92aWRlciBzdHJhdGVneSBmb3IgRUNTIHNlcnZpY2UuXG4gICAqL1xuICByZWFkb25seSBjYXBhY2l0eVByb3ZpZGVyU3RyYXRlZ3k/OiBlY3MuQ2FwYWNpdHlQcm92aWRlclN0cmF0ZWd5W107XG5cbn1cblxuLyoqXG4gKiBOZXR3b3JrIGNvbmZpZ3VyYXRpb24gZm9yIEVDUyBzZXJ2aWNlcyB0aGF0IGhhdmUgYSBuZXR3b3JrIHR5cGUgb2YgYGF3c3ZwY2AuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQXdzdnBjQ29uZmlndXJhdGlvbiB7XG4gIC8qKlxuICAgKiBUaGUgVlBDIHRvIHVzZSBmb3IgdGhlIHRhc2suXG4gICAqL1xuICByZWFkb25seSB2cGM6IGVjMi5JVnBjO1xuXG4gIC8qKlxuICAgKiBUaGUgU3VibmV0cyB0byB1c2UgZm9yIHRoZSB0YXNrLlxuICAgKi9cbiAgcmVhZG9ubHkgdnBjU3VibmV0czogZWMyLlN1Ym5ldFNlbGVjdGlvbjtcblxuICAvKipcbiAgICogVGhlIFNlY3VyaXR5IEdyb3VwcyB0byB1c2UgZm9yIHRoZSB0YXNrLlxuICAgKi9cbiAgcmVhZG9ubHkgc2VjdXJpdHlHcm91cHM6IGVjMi5JU2VjdXJpdHlHcm91cFtdO1xuXG4gIC8qKlxuICAgKiBBc3NpZ24gYSBwdWJsaWMgSVAgYWRkcmVzcyB0byB0aGUgdGFzay5cbiAgICovXG4gIHJlYWRvbmx5IGFzc2lnblB1YmxpY0lwOiBib29sZWFuO1xufSJdfQ==
105
+ EcsAppSpec[_a] = { fqn: "@cdklabs/cdk-ecs-codedeploy.EcsAppSpec", version: "0.0.155" };
106
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZWNzLWFwcHNwZWMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFJQTs7OztHQUlHO0FBQ0gsTUFBYSxVQUFVO0lBVXJCLFlBQVksYUFBNEIsRUFBRSxLQUFvQjtRQUM1RCxJQUFJLENBQUMsYUFBYSxHQUFHLGFBQWEsQ0FBQztRQUNuQyxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztJQUNyQixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILFFBQVE7UUFDTixNQUFNLE9BQU8sR0FBRztZQUNkLE9BQU8sRUFBRSxLQUFLO1lBQ2QsU0FBUyxFQUFFLENBQUM7b0JBQ1YsYUFBYSxFQUFFO3dCQUNiLElBQUksRUFBRSxtQkFBbUI7d0JBQ3pCLFVBQVUsRUFBRTs0QkFDVixjQUFjLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsaUJBQWlCOzRCQUNuRSxnQkFBZ0IsRUFBRTtnQ0FDaEIsYUFBYSxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsYUFBYTtnQ0FDL0MsYUFBYSxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsYUFBYTs2QkFDaEQ7NEJBQ0QsZUFBZSxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsZUFBZTs0QkFDbkQsb0JBQW9CLEVBQUUsSUFBSSxDQUFDLDJDQUEyQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsbUJBQW1CLENBQUM7NEJBQzlHLHdCQUF3QixFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsd0JBQXdCLEVBQUUsR0FBRyxDQUFDLHdCQUF3QixDQUFDLEVBQUU7Z0NBQ3BHLE9BQU87b0NBQ0wsSUFBSSxFQUFFLHdCQUF3QixDQUFDLElBQUk7b0NBQ25DLGdCQUFnQixFQUFFLHdCQUF3QixDQUFDLGdCQUFnQjtvQ0FDM0QsTUFBTSxFQUFFLHdCQUF3QixDQUFDLE1BQU07aUNBQ3hDLENBQUM7NEJBQ0osQ0FBQyxDQUFDO3lCQUNIO3FCQUNGO2lCQUNGLENBQUM7WUFDRixHQUFHLElBQUksQ0FBQyxZQUFZLEVBQUU7U0FDdkIsQ0FBQztRQUNGLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRU8sWUFBWTtRQUNsQixJQUFJLElBQUksQ0FBQyxLQUFLLElBQUksU0FBUyxFQUFFO1lBQzNCLE9BQU8sRUFBRSxDQUFDO1NBQ1g7UUFDRCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQ3pCLElBQ0UsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLElBQUksU0FBUztZQUNyQyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksSUFBSSxTQUFTO1lBQ3BDLElBQUksQ0FBQyxLQUFLLENBQUMscUJBQXFCLElBQUksU0FBUztZQUM3QyxJQUFJLENBQUMsS0FBSyxDQUFDLGtCQUFrQixJQUFJLFNBQVM7WUFDMUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsSUFBSSxTQUFTLEVBQ3pDO1lBQ0EsT0FBTyxFQUFFLENBQUM7U0FDWDtRQUNELE1BQU0sVUFBVSxHQUFHLENBQUMsQ0FBUyxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdkUsTUFBTSxJQUFJLEdBQUcsQ0FBQyxJQUF3QixFQUFFLEVBQUU7WUFDeEMsTUFBTSxTQUFTLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzlCLElBQUksU0FBUyxJQUFJLFNBQVMsRUFBRTtnQkFDMUIsT0FBTyxFQUFFLENBQUM7YUFDWDtpQkFBTTtnQkFDTCxPQUFPLENBQUM7d0JBQ04sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsRUFDaEIsT0FBTyxTQUFTLEtBQUssUUFBUTs0QkFDM0IsQ0FBQyxDQUFDLFNBQVM7NEJBQ1gsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxXQUFXO3FCQUM1QixDQUFDLENBQUM7YUFDSjtRQUNILENBQUMsQ0FBQztRQUNGLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUM1QyxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDMUMsTUFBTSxxQkFBcUIsR0FBRyxJQUFJLENBQUMsdUJBQXVCLENBQUMsQ0FBQztRQUM1RCxNQUFNLGtCQUFrQixHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBQ3RELE1BQU0saUJBQWlCLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLENBQUM7UUFFcEQsT0FBTztZQUNMLEtBQUssRUFBRTtnQkFDTCxHQUFHLGFBQWE7Z0JBQ2hCLEdBQUcsWUFBWTtnQkFDZixHQUFHLHFCQUFxQjtnQkFDeEIsR0FBRyxrQkFBa0I7Z0JBQ3JCLEdBQUcsaUJBQWlCO2FBQ3JCO1NBQ0YsQ0FBQztJQUNKLENBQUM7SUFFTywyQ0FBMkMsQ0FBQyxtQkFBeUM7UUFDM0YsSUFBSSxDQUFDLG1CQUFtQixFQUFFO1lBQ3hCLE9BQU8sU0FBUyxDQUFDO1NBQ2xCO1FBQ0QsT0FBTztZQUNMLG1CQUFtQixFQUFFO2dCQUNuQixjQUFjLEVBQUUsbUJBQW1CLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFVBQVU7Z0JBQzNFLE9BQU8sRUFBRSxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLG1CQUFtQixDQUFDLFVBQVUsQ0FBQyxDQUFDLFNBQVM7Z0JBQ3hGLGNBQWMsRUFBRSxtQkFBbUIsQ0FBQyxjQUFjLEVBQUUsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsZUFBZSxDQUFDO2FBQ3BGO1NBQ0YsQ0FBQztJQUNKLENBQUM7O0FBekdILGdDQTBHQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGVjMiBmcm9tICdhd3MtY2RrLWxpYi9hd3MtZWMyJztcbmltcG9ydCAqIGFzIGVjcyBmcm9tICdhd3MtY2RrLWxpYi9hd3MtZWNzJztcbmltcG9ydCAqIGFzIGxhbWJkYSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtbGFtYmRhJztcblxuLyoqXG4gKiBSZXByZXNlbnRzIGFuIEFwcFNwZWMgdG8gYmUgdXNlZCBmb3IgRUNTIHNlcnZpY2VzLlxuICpcbiAqIHNlZTogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2NvZGVkZXBsb3kvbGF0ZXN0L3VzZXJndWlkZS9yZWZlcmVuY2UtYXBwc3BlYy1maWxlLXN0cnVjdHVyZS1yZXNvdXJjZXMuaHRtbCNyZWZlcmVuY2UtYXBwc3BlYy1maWxlLXN0cnVjdHVyZS1yZXNvdXJjZXMtZWNzXG4gKi9cbmV4cG9ydCBjbGFzcyBFY3NBcHBTcGVjIHtcbiAgLyoqXG4gICAqIFNlcnZpY2UgdG8gdGFyZ2V0IGZvciB0aGUgZGVwbG95bWVudFxuICAgKi9cbiAgcHJpdmF0ZSByZWFkb25seSB0YXJnZXRTZXJ2aWNlOiBUYXJnZXRTZXJ2aWNlO1xuICAvKipcbiAgICogT3B0aW9uYWwgbGlmZWN5Y2xlIGhvb2tzXG4gICAqL1xuICBwcml2YXRlIHJlYWRvbmx5IGhvb2tzPzogQXBwU3BlY0hvb2tzO1xuXG4gIGNvbnN0cnVjdG9yKHRhcmdldFNlcnZpY2U6IFRhcmdldFNlcnZpY2UsIGhvb2tzPzogQXBwU3BlY0hvb2tzKSB7XG4gICAgdGhpcy50YXJnZXRTZXJ2aWNlID0gdGFyZ2V0U2VydmljZTtcbiAgICB0aGlzLmhvb2tzID0gaG9va3M7XG4gIH1cblxuICAvKipcbiAgICogUmVuZGVyIEpTT04gc3RyaW5nIGZvciB0aGlzIEFwcFNwZWMgdG8gYmUgdXNlZFxuICAgKlxuICAgKiBAcmV0dXJucyBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhpcyBBcHBTcGVjXG4gICAqL1xuICB0b1N0cmluZygpOiBzdHJpbmcge1xuICAgIGNvbnN0IGFwcFNwZWMgPSB7XG4gICAgICB2ZXJzaW9uOiAnMC4wJyxcbiAgICAgIFJlc291cmNlczogW3tcbiAgICAgICAgVGFyZ2V0U2VydmljZToge1xuICAgICAgICAgIFR5cGU6ICdBV1M6OkVDUzo6U2VydmljZScsXG4gICAgICAgICAgUHJvcGVydGllczoge1xuICAgICAgICAgICAgVGFza0RlZmluaXRpb246IHRoaXMudGFyZ2V0U2VydmljZS50YXNrRGVmaW5pdGlvbi50YXNrRGVmaW5pdGlvbkFybixcbiAgICAgICAgICAgIExvYWRCYWxhbmNlckluZm86IHtcbiAgICAgICAgICAgICAgQ29udGFpbmVyTmFtZTogdGhpcy50YXJnZXRTZXJ2aWNlLmNvbnRhaW5lck5hbWUsXG4gICAgICAgICAgICAgIENvbnRhaW5lclBvcnQ6IHRoaXMudGFyZ2V0U2VydmljZS5jb250YWluZXJQb3J0LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFBsYXRmb3JtVmVyc2lvbjogdGhpcy50YXJnZXRTZXJ2aWNlLnBsYXRmb3JtVmVyc2lvbixcbiAgICAgICAgICAgIE5ldHdvcmtDb25maWd1cmF0aW9uOiB0aGlzLmNvbmZpZ3VyZUF3c1ZwY05ldHdvcmtpbmdXaXRoU2VjdXJpdHlHcm91cHModGhpcy50YXJnZXRTZXJ2aWNlLmF3c3ZwY0NvbmZpZ3VyYXRpb24pLFxuICAgICAgICAgICAgQ2FwYWNpdHlQcm92aWRlclN0cmF0ZWd5OiB0aGlzLnRhcmdldFNlcnZpY2UuY2FwYWNpdHlQcm92aWRlclN0cmF0ZWd5Py5tYXAoY2FwYWNpdHlQcm92aWRlclN0cmF0ZWd5ID0+IHtcbiAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBCYXNlOiBjYXBhY2l0eVByb3ZpZGVyU3RyYXRlZ3kuYmFzZSxcbiAgICAgICAgICAgICAgICBDYXBhY2l0eVByb3ZpZGVyOiBjYXBhY2l0eVByb3ZpZGVyU3RyYXRlZ3kuY2FwYWNpdHlQcm92aWRlcixcbiAgICAgICAgICAgICAgICBXZWlnaHQ6IGNhcGFjaXR5UHJvdmlkZXJTdHJhdGVneS53ZWlnaHQsXG4gICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfV0sXG4gICAgICAuLi50aGlzLmhvb2tzU2VjdGlvbigpLFxuICAgIH07XG4gICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KGFwcFNwZWMpO1xuICB9XG5cbiAgcHJpdmF0ZSBob29rc1NlY3Rpb24oKSB7XG4gICAgaWYgKHRoaXMuaG9va3MgPT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4ge307XG4gICAgfVxuICAgIGNvbnN0IGhvb2tzID0gdGhpcy5ob29rcztcbiAgICBpZiAoXG4gICAgICB0aGlzLmhvb2tzLmJlZm9yZUluc3RhbGwgPT0gdW5kZWZpbmVkICYmXG4gICAgICB0aGlzLmhvb2tzLmFmdGVySW5zdGFsbCA9PSB1bmRlZmluZWQgJiZcbiAgICAgIHRoaXMuaG9va3MuYWZ0ZXJBbGxvd1Rlc3RUcmFmZmljID09IHVuZGVmaW5lZCAmJlxuICAgICAgdGhpcy5ob29rcy5iZWZvcmVBbGxvd1RyYWZmaWMgPT0gdW5kZWZpbmVkICYmXG4gICAgICB0aGlzLmhvb2tzLmFmdGVyQWxsb3dUcmFmZmljID09IHVuZGVmaW5lZFxuICAgICkge1xuICAgICAgcmV0dXJuIHt9O1xuICAgIH1cbiAgICBjb25zdCBjYXBpdGFsaXplID0gKHM6IHN0cmluZykgPT4gcyAmJiBzWzBdLnRvVXBwZXJDYXNlKCkgKyBzLnNsaWNlKDEpO1xuICAgIGNvbnN0IGhvb2sgPSAobmFtZToga2V5b2YgQXBwU3BlY0hvb2tzKSA9PiB7XG4gICAgICBjb25zdCBob29rVmFsdWUgPSBob29rc1tuYW1lXTtcbiAgICAgIGlmIChob29rVmFsdWUgPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHJldHVybiBbXTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBbe1xuICAgICAgICAgIFtjYXBpdGFsaXplKG5hbWUpXTpcbiAgICAgICAgICAgIHR5cGVvZiBob29rVmFsdWUgPT09ICdzdHJpbmcnXG4gICAgICAgICAgICAgID8gaG9va1ZhbHVlXG4gICAgICAgICAgICAgIDogaG9va1ZhbHVlLmZ1bmN0aW9uQXJuLFxuICAgICAgICB9XTtcbiAgICAgIH1cbiAgICB9O1xuICAgIGNvbnN0IGJlZm9yZUluc3RhbGwgPSBob29rKCdiZWZvcmVJbnN0YWxsJyk7XG4gICAgY29uc3QgYWZ0ZXJJbnN0YWxsID0gaG9vaygnYWZ0ZXJJbnN0YWxsJyk7XG4gICAgY29uc3QgYWZ0ZXJBbGxvd1Rlc3RUcmFmZmljID0gaG9vaygnYWZ0ZXJBbGxvd1Rlc3RUcmFmZmljJyk7XG4gICAgY29uc3QgYmVmb3JlQWxsb3dUcmFmZmljID0gaG9vaygnYmVmb3JlQWxsb3dUcmFmZmljJyk7XG4gICAgY29uc3QgYWZ0ZXJBbGxvd1RyYWZmaWMgPSBob29rKCdhZnRlckFsbG93VHJhZmZpYycpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIEhvb2tzOiBbXG4gICAgICAgIC4uLmJlZm9yZUluc3RhbGwsXG4gICAgICAgIC4uLmFmdGVySW5zdGFsbCxcbiAgICAgICAgLi4uYWZ0ZXJBbGxvd1Rlc3RUcmFmZmljLFxuICAgICAgICAuLi5iZWZvcmVBbGxvd1RyYWZmaWMsXG4gICAgICAgIC4uLmFmdGVyQWxsb3dUcmFmZmljLFxuICAgICAgXSxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBjb25maWd1cmVBd3NWcGNOZXR3b3JraW5nV2l0aFNlY3VyaXR5R3JvdXBzKGF3c3ZwY0NvbmZpZ3VyYXRpb24/OiBBd3N2cGNDb25maWd1cmF0aW9uKSB7XG4gICAgaWYgKCFhd3N2cGNDb25maWd1cmF0aW9uKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgYXdzdnBjQ29uZmlndXJhdGlvbjoge1xuICAgICAgICBhc3NpZ25QdWJsaWNJcDogYXdzdnBjQ29uZmlndXJhdGlvbi5hc3NpZ25QdWJsaWNJcCA/ICdFTkFCTEVEJyA6ICdESVNBQkxFRCcsXG4gICAgICAgIHN1Ym5ldHM6IGF3c3ZwY0NvbmZpZ3VyYXRpb24udnBjLnNlbGVjdFN1Ym5ldHMoYXdzdnBjQ29uZmlndXJhdGlvbi52cGNTdWJuZXRzKS5zdWJuZXRJZHMsXG4gICAgICAgIHNlY3VyaXR5R3JvdXBzOiBhd3N2cGNDb25maWd1cmF0aW9uLnNlY3VyaXR5R3JvdXBzPy5tYXAoKHNnKSA9PiBzZy5zZWN1cml0eUdyb3VwSWQpLFxuICAgICAgfSxcbiAgICB9O1xuICB9XG59XG5cbi8qKlxuICogRGVzY3JpYmUgdGhlIHRhcmdldCBmb3IgQ29kZURlcGxveSB0byB1c2Ugd2hlbiBjcmVhdGluZyBhIGRlcGxveW1lbnQgZm9yIGFuIGVjcy5FY3NEZXBsb3ltZW50R3JvdXAuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVGFyZ2V0U2VydmljZSB7XG4gIC8qKlxuICAgKiBUaGUgVGFza0RlZmludGlvbiB0byBkZXBsb3kgdG8gdGhlIHRhcmdldCBzZXJ2aWNlcy5cbiAgICovXG4gIHJlYWRvbmx5IHRhc2tEZWZpbml0aW9uOiBlY3MuSVRhc2tEZWZpbml0aW9uO1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgQW1hem9uIEVDUyBjb250YWluZXIgdGhhdCBjb250YWlucyB5b3VyIEFtYXpvbiBFQ1MgYXBwbGljYXRpb24uIEl0IG11c3QgYmUgYSBjb250YWluZXIgc3BlY2lmaWVkIGluIHlvdXIgQW1hem9uIEVDUyB0YXNrIGRlZmluaXRpb24uXG4gICAqL1xuICByZWFkb25seSBjb250YWluZXJOYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBwb3J0IG9uIHRoZSBjb250YWluZXIgd2hlcmUgdHJhZmZpYyB3aWxsIGJlIHJvdXRlZCB0by5cbiAgICovXG4gIHJlYWRvbmx5IGNvbnRhaW5lclBvcnQ6IG51bWJlcjtcblxuICAvKipcbiAgICogVGhlIHBsYXRmb3JtIHZlcnNpb24gb2YgdGhlIEZhcmdhdGUgdGFza3MgaW4gdGhlIGRlcGxveWVkIEFtYXpvbiBFQ1Mgc2VydmljZS5cbiAgICogc2VlOiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uRUNTL2xhdGVzdC9kZXZlbG9wZXJndWlkZS9wbGF0Zm9ybV92ZXJzaW9ucy5odG1sXG4gICAqXG4gICAqIEBkZWZhdWx0IExBVEVTVFxuICAgKi9cbiAgcmVhZG9ubHkgcGxhdGZvcm1WZXJzaW9uPzogZWNzLkZhcmdhdGVQbGF0Zm9ybVZlcnNpb247XG5cbiAgLyoqXG4gICAqIE5ldHdvcmsgY29uZmlndXJhdGlvbiBmb3IgRUNTIHNlcnZpY2VzIHRoYXQgaGF2ZSBhIG5ldHdvcmsgdHlwZSBvZiBgYXdzdnBjYC5cbiAgICpcbiAgICogQGRlZmF1bHQgcmV1c2UgY3VycmVudCBuZXR3b3JrIHNldHRpbmdzIGZvciBFQ1Mgc2VydmljZS5cbiAgICovXG4gIHJlYWRvbmx5IGF3c3ZwY0NvbmZpZ3VyYXRpb24/OiBBd3N2cGNDb25maWd1cmF0aW9uO1xuXG4gIC8qKlxuICAgKiBBIGxpc3Qgb2YgQW1hem9uIEVDUyBjYXBhY2l0eSBwcm92aWRlcnMgdG8gdXNlIGZvciB0aGUgZGVwbG95bWVudC5cbiAgICpcbiAgICogQGRlZmF1bHQgcmV1c2UgY3VycmVudCBjYXBjaXR5IHByb3ZpZGVyIHN0cmF0ZWd5IGZvciBFQ1Mgc2VydmljZS5cbiAgICovXG4gIHJlYWRvbmx5IGNhcGFjaXR5UHJvdmlkZXJTdHJhdGVneT86IGVjcy5DYXBhY2l0eVByb3ZpZGVyU3RyYXRlZ3lbXTtcblxufVxuXG4vKipcbiAqIE5ldHdvcmsgY29uZmlndXJhdGlvbiBmb3IgRUNTIHNlcnZpY2VzIHRoYXQgaGF2ZSBhIG5ldHdvcmsgdHlwZSBvZiBgYXdzdnBjYC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBd3N2cGNDb25maWd1cmF0aW9uIHtcbiAgLyoqXG4gICAqIFRoZSBWUEMgdG8gdXNlIGZvciB0aGUgdGFzay5cbiAgICovXG4gIHJlYWRvbmx5IHZwYzogZWMyLklWcGM7XG5cbiAgLyoqXG4gICAqIFRoZSBTdWJuZXRzIHRvIHVzZSBmb3IgdGhlIHRhc2suXG4gICAqL1xuICByZWFkb25seSB2cGNTdWJuZXRzOiBlYzIuU3VibmV0U2VsZWN0aW9uO1xuXG4gIC8qKlxuICAgKiBUaGUgU2VjdXJpdHkgR3JvdXBzIHRvIHVzZSBmb3IgdGhlIHRhc2suXG4gICAqL1xuICByZWFkb25seSBzZWN1cml0eUdyb3VwczogZWMyLklTZWN1cml0eUdyb3VwW107XG5cbiAgLyoqXG4gICAqIEFzc2lnbiBhIHB1YmxpYyBJUCBhZGRyZXNzIHRvIHRoZSB0YXNrLlxuICAgKi9cbiAgcmVhZG9ubHkgYXNzaWduUHVibGljSXA6IGJvb2xlYW47XG59XG5cbi8qKlxuICogTGlmZWN5Y2xlIGhvb2tzIGNvbmZpZ3VyYXRpb25cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBcHBTcGVjSG9va3Mge1xuICAvKipcbiAgICogTGFtYmRhIG9yIEFSTiBvZiBhIGxhbWJkYSB0byBydW4gdGFza3MgYmVmb3JlIHRoZSByZXBsYWNlbWVudCB0YXNrIHNldCBpcyBjcmVhdGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgYmVmb3JlSW5zdGFsbD86IHN0cmluZyB8IGxhbWJkYS5JRnVuY3Rpb247XG4gIC8qKlxuICAgKiBMYW1iZGEgb3IgQVJOIG9mIGEgbGFtYmRhIHRvIHJ1biB0YXNrcyBhZnRlciB0aGUgcmVwbGFjZW1lbnQgdGFzayBzZXQgaXMgY3JlYXRlZCBhbmQgb25lIG9mIHRoZSB0YXJnZXQgZ3JvdXBzIGlzIGFzc29jaWF0ZWQgd2l0aCBpdC5cbiAgICovXG4gIHJlYWRvbmx5IGFmdGVySW5zdGFsbD86IHN0cmluZyB8IGxhbWJkYS5JRnVuY3Rpb247XG4gIC8qKlxuICAgKiBMYW1iZGEgb3IgQVJOIG9mIGEgbGFtYmRhIHRvIHJ1biB0YXNrcyBhZnRlciB0aGUgdGVzdCBsaXN0ZW5lciBzZXJ2ZXMgdHJhZmZpYyB0byB0aGUgcmVwbGFjZW1lbnQgdGFzayBzZXQuXG4gICAqL1xuICByZWFkb25seSBhZnRlckFsbG93VGVzdFRyYWZmaWM/OiBzdHJpbmcgfCBsYW1iZGEuSUZ1bmN0aW9uO1xuICAvKipcbiAgICogTGFtYmRhIG9yIEFSTiBvZiBhIGxhbWJkYSB0byBydW4gdGFza3MgYWZ0ZXIgdGhlIHNlY29uZCB0YXJnZXQgZ3JvdXAgaXMgYXNzb2NpYXRlZCB3aXRoIHRoZSByZXBsYWNlbWVudCB0YXNrIHNldCwgYnV0IGJlZm9yZSB0cmFmZmljIGlzIHNoaWZ0ZWQgdG8gdGhlIHJlcGxhY2VtZW50IHRhc2sgc2V0LlxuICAgKi9cbiAgcmVhZG9ubHkgYmVmb3JlQWxsb3dUcmFmZmljPzogc3RyaW5nIHwgbGFtYmRhLklGdW5jdGlvbjtcbiAgLyoqXG4gICAqIExhbWJkYSBvciBBUk4gb2YgYSBsYW1iZGEgdG8gcnVuIHRhc2tzIGFmdGVyIHRoZSBzZWNvbmQgdGFyZ2V0IGdyb3VwIHNlcnZlcyB0cmFmZmljIHRvIHRoZSByZXBsYWNlbWVudCB0YXNrIHNldC5cbiAgICovXG4gIHJlYWRvbmx5IGFmdGVyQWxsb3dUcmFmZmljPzogc3RyaW5nIHwgbGFtYmRhLklGdW5jdGlvbjtcbn1cbiJdfQ==
@@ -1,7 +1,7 @@
1
1
  import * as cdk from 'aws-cdk-lib';
2
2
  import * as codedeploy from 'aws-cdk-lib/aws-codedeploy';
3
3
  import { Construct } from 'constructs';
4
- import { TargetService } from '../ecs-appspec';
4
+ import { AppSpecHooks, TargetService } from '../ecs-appspec';
5
5
  /**
6
6
  * Construction properties of EcsDeployment.
7
7
  */
@@ -34,6 +34,12 @@ export interface EcsDeploymentProps {
34
34
  * @default 30 minutes
35
35
  */
36
36
  readonly timeout?: cdk.Duration;
37
+ /**
38
+ * Optional lifecycle hooks
39
+ *
40
+ * @default - no lifecycle hooks
41
+ */
42
+ readonly hooks?: AppSpecHooks;
37
43
  }
38
44
  /**
39
45
  * A CodeDeploy Deployment for a Amazon ECS service DeploymentGroup. An EcsDeploymentGroup
@@ -42,7 +42,7 @@ class EcsDeployment extends constructs_1.Construct {
42
42
  autoRollbackConfigurationEnabled = 'false';
43
43
  }
44
44
  }
45
- const appspec = new ecs_appspec_1.EcsAppSpec(props.targetService);
45
+ const appspec = new ecs_appspec_1.EcsAppSpec(props.targetService, props.hooks);
46
46
  const deployment = new cdk.CustomResource(this, 'Resource', {
47
47
  serviceToken: ecsDeploymentProvider.serviceToken,
48
48
  resourceType: 'Custom::EcsDeployment',
@@ -61,5 +61,5 @@ class EcsDeployment extends constructs_1.Construct {
61
61
  }
62
62
  exports.EcsDeployment = EcsDeployment;
63
63
  _a = JSII_RTTI_SYMBOL_1;
64
- EcsDeployment[_a] = { fqn: "@cdklabs/cdk-ecs-codedeploy.EcsDeployment", version: "0.0.154" };
65
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZWNzLWRlcGxveW1lbnQvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxtQ0FBbUM7QUFFbkMsMkNBQXVDO0FBQ3ZDLGdEQUEyRDtBQUMzRCx3RUFBbUU7QUF5Q25FOzs7Ozs7R0FNRztBQUNILE1BQWEsYUFBYyxTQUFRLHNCQUFTO0lBTTFDLFlBQW1CLEtBQXlCO1FBQzFDLEtBQUssQ0FBQyxLQUFLLENBQUMsZUFBZSxFQUFFLFlBQVksQ0FBQyxDQUFDO1FBRTNDLE1BQU0scUJBQXFCLEdBQUcsSUFBSSwrQ0FBcUIsQ0FBQyxJQUFJLEVBQUUsb0JBQW9CLEVBQUU7WUFDbEYsZUFBZSxFQUFFLEtBQUssQ0FBQyxlQUFlO1lBQ3RDLE9BQU8sRUFBRSxLQUFLLENBQUMsT0FBTyxJQUFJLEdBQUcsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztTQUNuRCxDQUFDLENBQUM7UUFFSCxJQUFJLCtCQUErQixHQUF3QixTQUFTLENBQUM7UUFDckUsSUFBSSxnQ0FBZ0MsR0FBd0IsU0FBUyxDQUFDO1FBQ3RFLElBQUksS0FBSyxDQUFDLFlBQVksRUFBRTtZQUN0QixJQUFJLE1BQU0sR0FBYyxFQUFFLENBQUM7WUFDM0IsSUFBSSxLQUFLLENBQUMsWUFBWSxDQUFDLGlCQUFpQixFQUFFO2dCQUN4QyxNQUFNLENBQUMsSUFBSSxDQUFDLDBCQUEwQixDQUFDLENBQUM7YUFDekM7WUFDRCxJQUFJLEtBQUssQ0FBQyxZQUFZLENBQUMsZ0JBQWdCLEVBQUU7Z0JBQ3ZDLE1BQU0sQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsQ0FBQzthQUNuQztZQUNELElBQUksS0FBSyxDQUFDLFlBQVksQ0FBQyxpQkFBaUIsRUFBRTtnQkFDeEMsTUFBTSxDQUFDLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDO2FBQzNDO1lBQ0QsSUFBSSxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtnQkFDckIsZ0NBQWdDLEdBQUcsTUFBTSxDQUFDO2dCQUMxQywrQkFBK0IsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2FBQ3BEO2lCQUFNO2dCQUNMLGdDQUFnQyxHQUFHLE9BQU8sQ0FBQzthQUM1QztTQUNGO1FBRUQsTUFBTSxPQUFPLEdBQUcsSUFBSSx3QkFBVSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUNwRCxNQUFNLFVBQVUsR0FBRyxJQUFJLEdBQUcsQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRTtZQUMxRCxZQUFZLEVBQUUscUJBQXFCLENBQUMsWUFBWTtZQUNoRCxZQUFZLEVBQUUsdUJBQXVCO1lBQ3JDLFVBQVUsRUFBRTtnQkFDVixlQUFlLEVBQUUsS0FBSyxDQUFDLGVBQWUsQ0FBQyxXQUFXLENBQUMsZUFBZTtnQkFDbEUsb0JBQW9CLEVBQUUsS0FBSyxDQUFDLGVBQWUsQ0FBQyxnQkFBZ0IsQ0FBQyxvQkFBb0I7Z0JBQ2pGLG1CQUFtQixFQUFFLEtBQUssQ0FBQyxlQUFlLENBQUMsbUJBQW1CO2dCQUM5RCxnQ0FBZ0M7Z0JBQ2hDLCtCQUErQjtnQkFDL0IsV0FBVyxFQUFFLEtBQUssQ0FBQyxXQUFXO2dCQUM5QixzQkFBc0IsRUFBRSxPQUFPLENBQUMsUUFBUSxFQUFFO2FBQzNDO1NBQ0YsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLFlBQVksR0FBRyxVQUFVLENBQUMsWUFBWSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQzlELENBQUM7O0FBbERILHNDQW9EQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGNkayBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgKiBhcyBjb2RlZGVwbG95IGZyb20gJ2F3cy1jZGstbGliL2F3cy1jb2RlZGVwbG95JztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHsgRWNzQXBwU3BlYywgVGFyZ2V0U2VydmljZSB9IGZyb20gJy4uL2Vjcy1hcHBzcGVjJztcbmltcG9ydCB7IEVjc0RlcGxveW1lbnRQcm92aWRlciB9IGZyb20gJy4uL2Vjcy1kZXBsb3ltZW50LXByb3ZpZGVyJztcblxuLyoqXG4gKiBDb25zdHJ1Y3Rpb24gcHJvcGVydGllcyBvZiBFY3NEZXBsb3ltZW50LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEVjc0RlcGxveW1lbnRQcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgZGVwbG95bWVudCBncm91cCB0byB0YXJnZXQgZm9yIHRoaXMgZGVwbG95bWVudC5cbiAgICovXG4gIHJlYWRvbmx5IGRlcGxveW1lbnRHcm91cDogY29kZWRlcGxveS5JRWNzRGVwbG95bWVudEdyb3VwO1xuXG4gIC8qKlxuICAgKiBUaGUgRUNTIHNlcnZpY2UgdG8gdGFyZ2V0IGZvciB0aGUgZGVwbG95bWVudC5cbiAgICpcbiAgICogc2VlOiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vY29kZWRlcGxveS9sYXRlc3QvdXNlcmd1aWRlL3JlZmVyZW5jZS1hcHBzcGVjLWZpbGUtc3RydWN0dXJlLXJlc291cmNlcy5odG1sI3JlZmVyZW5jZS1hcHBzcGVjLWZpbGUtc3RydWN0dXJlLXJlc291cmNlcy1lY3NcbiAgICovXG4gIHJlYWRvbmx5IHRhcmdldFNlcnZpY2U6IFRhcmdldFNlcnZpY2U7XG5cbiAgLyoqXG4gICAqIFRoZSBjb25maWd1cmF0aW9uIGZvciByb2xsYmFjayBpbiB0aGUgZXZlbnQgdGhhdCBhIGRlcGxveW1lbnQgZmFpbHMuXG4gICAqXG4gICAqIEBkZWZhdWx0OiBubyBhdXRvbWF0aWMgcm9sbGJhY2sgdHJpZ2dlcmVkXG4gICAqL1xuICByZWFkb25seSBhdXRvUm9sbGJhY2s/OiBjb2RlZGVwbG95LkF1dG9Sb2xsYmFja0NvbmZpZztcblxuICAvKipcbiAgICogVGhlIGRlc2NyaXB0aW9uIGZvciB0aGUgZGVwbG95bWVudC5cbiAgICpcbiAgICogQGRlZmF1bHQgbm8gZGVzY3JpcHRpb25cbiAgICovXG4gIHJlYWRvbmx5IGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgdGltZW91dCBmb3IgdGhlIGRlcGxveW1lbnQuIElmIHRoZSB0aW1lb3V0IGlzIHJlYWNoZWQsIGl0IHdpbGwgdHJpZ2dlciBhIHJvbGxiYWNrIG9mIHRoZSBzdGFjay5cbiAgICpcbiAgICogQGRlZmF1bHQgMzAgbWludXRlc1xuICAgKi9cbiAgcmVhZG9ubHkgdGltZW91dD86IGNkay5EdXJhdGlvbjtcblxufVxuXG4vKipcbiAqIEEgQ29kZURlcGxveSBEZXBsb3ltZW50IGZvciBhIEFtYXpvbiBFQ1Mgc2VydmljZSBEZXBsb3ltZW50R3JvdXAuIEFuIEVjc0RlcGxveW1lbnRHcm91cFxuICogbXVzdCBvbmx5IGhhdmUgMSBFY3NEZXBsb3ltZW50LiBUaGlzIGxpbWl0IGlzIGVuZm9yY2VkIGJ5IHJlbW92aW5nIHRoZSBzY29wZSBhbmQgaWRcbiAqIGZyb20gdGhlIGNvbnN0cnVjdG9yLiBUaGUgc2NvcGUgd2lsbCBhbHdheXMgYmUgc2V0IHRvIHRoZSBFY3NEZXBsb3ltZW50R3JvdXBcbiAqIGFuZCB0aGUgaWQgd2lsbCBhbHdheXMgYmUgc2V0IHRvIHRoZSBzdHJpbmcgJ0RlcGxveW1lbnQnIHRvIGZvcmNlIGFuIGVycm9yIGlmIG11bGl0aXBsZVxuICogRWNzRGVwbG95bWVudCBjb25zdHJ1Y3RzIGFyZSBjcmVhdGVkIGZvciBhIHNpbmdsZSBFY3NEZXBsb3ltZW50R3JvdXAuXG4gKi9cbmV4cG9ydCBjbGFzcyBFY3NEZXBsb3ltZW50IGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgLyoqXG4gICAqIFRoZSBpZCBvZiB0aGUgZGVwbG95bWVudCB0aGF0IHdhcyBjcmVhdGVkLlxuICAgKi9cbiAgZGVwbG95bWVudElkOiBzdHJpbmc7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKHByb3BzOiBFY3NEZXBsb3ltZW50UHJvcHMpIHtcbiAgICBzdXBlcihwcm9wcy5kZXBsb3ltZW50R3JvdXAsICdEZXBsb3ltZW50Jyk7XG5cbiAgICBjb25zdCBlY3NEZXBsb3ltZW50UHJvdmlkZXIgPSBuZXcgRWNzRGVwbG95bWVudFByb3ZpZGVyKHRoaXMsICdEZXBsb3ltZW50UHJvdmlkZXInLCB7XG4gICAgICBkZXBsb3ltZW50R3JvdXA6IHByb3BzLmRlcGxveW1lbnRHcm91cCxcbiAgICAgIHRpbWVvdXQ6IHByb3BzLnRpbWVvdXQgfHwgY2RrLkR1cmF0aW9uLm1pbnV0ZXMoMzApLFxuICAgIH0pO1xuXG4gICAgbGV0IGF1dG9Sb2xsYmFja0NvbmZpZ3VyYXRpb25FdmVudHMgOiBzdHJpbmcgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG4gICAgbGV0IGF1dG9Sb2xsYmFja0NvbmZpZ3VyYXRpb25FbmFibGVkIDogc3RyaW5nIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuICAgIGlmIChwcm9wcy5hdXRvUm9sbGJhY2spIHtcbiAgICAgIGxldCBldmVudHMgOiBzdHJpbmdbXSA9IFtdO1xuICAgICAgaWYgKHByb3BzLmF1dG9Sb2xsYmFjay5kZXBsb3ltZW50SW5BbGFybSkge1xuICAgICAgICBldmVudHMucHVzaCgnREVQTE9ZTUVOVF9TVE9QX09OX0FMQVJNJyk7XG4gICAgICB9XG4gICAgICBpZiAocHJvcHMuYXV0b1JvbGxiYWNrLmZhaWxlZERlcGxveW1lbnQpIHtcbiAgICAgICAgZXZlbnRzLnB1c2goJ0RFUExPWU1FTlRfRkFJTFVSRScpO1xuICAgICAgfVxuICAgICAgaWYgKHByb3BzLmF1dG9Sb2xsYmFjay5zdG9wcGVkRGVwbG95bWVudCkge1xuICAgICAgICBldmVudHMucHVzaCgnREVQTE9ZTUVOVF9TVE9QX09OX1JFUVVFU1QnKTtcbiAgICAgIH1cbiAgICAgIGlmIChldmVudHMubGVuZ3RoID4gMCkge1xuICAgICAgICBhdXRvUm9sbGJhY2tDb25maWd1cmF0aW9uRW5hYmxlZCA9ICd0cnVlJztcbiAgICAgICAgYXV0b1JvbGxiYWNrQ29uZmlndXJhdGlvbkV2ZW50cyA9IGV2ZW50cy5qb2luKCcsJyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBhdXRvUm9sbGJhY2tDb25maWd1cmF0aW9uRW5hYmxlZCA9ICdmYWxzZSc7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgYXBwc3BlYyA9IG5ldyBFY3NBcHBTcGVjKHByb3BzLnRhcmdldFNlcnZpY2UpO1xuICAgIGNvbnN0IGRlcGxveW1lbnQgPSBuZXcgY2RrLkN1c3RvbVJlc291cmNlKHRoaXMsICdSZXNvdXJjZScsIHtcbiAgICAgIHNlcnZpY2VUb2tlbjogZWNzRGVwbG95bWVudFByb3ZpZGVyLnNlcnZpY2VUb2tlbixcbiAgICAgIHJlc291cmNlVHlwZTogJ0N1c3RvbTo6RWNzRGVwbG95bWVudCcsXG4gICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgIGFwcGxpY2F0aW9uTmFtZTogcHJvcHMuZGVwbG95bWVudEdyb3VwLmFwcGxpY2F0aW9uLmFwcGxpY2F0aW9uTmFtZSxcbiAgICAgICAgZGVwbG95bWVudENvbmZpZ05hbWU6IHByb3BzLmRlcGxveW1lbnRHcm91cC5kZXBsb3ltZW50Q29uZmlnLmRlcGxveW1lbnRDb25maWdOYW1lLFxuICAgICAgICBkZXBsb3ltZW50R3JvdXBOYW1lOiBwcm9wcy5kZXBsb3ltZW50R3JvdXAuZGVwbG95bWVudEdyb3VwTmFtZSxcbiAgICAgICAgYXV0b1JvbGxiYWNrQ29uZmlndXJhdGlvbkVuYWJsZWQsXG4gICAgICAgIGF1dG9Sb2xsYmFja0NvbmZpZ3VyYXRpb25FdmVudHMsXG4gICAgICAgIGRlc2NyaXB0aW9uOiBwcm9wcy5kZXNjcmlwdGlvbixcbiAgICAgICAgcmV2aXNpb25BcHBTcGVjQ29udGVudDogYXBwc3BlYy50b1N0cmluZygpLFxuICAgICAgfSxcbiAgICB9KTtcbiAgICB0aGlzLmRlcGxveW1lbnRJZCA9IGRlcGxveW1lbnQuZ2V0QXR0U3RyaW5nKCdkZXBsb3ltZW50SWQnKTtcbiAgfVxuXG59XG4iXX0=
64
+ EcsDeployment[_a] = { fqn: "@cdklabs/cdk-ecs-codedeploy.EcsDeployment", version: "0.0.155" };
65
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZWNzLWRlcGxveW1lbnQvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxtQ0FBbUM7QUFFbkMsMkNBQXVDO0FBQ3ZDLGdEQUF5RTtBQUN6RSx3RUFBbUU7QUFnRG5FOzs7Ozs7R0FNRztBQUNILE1BQWEsYUFBYyxTQUFRLHNCQUFTO0lBTTFDLFlBQW1CLEtBQXlCO1FBQzFDLEtBQUssQ0FBQyxLQUFLLENBQUMsZUFBZSxFQUFFLFlBQVksQ0FBQyxDQUFDO1FBRTNDLE1BQU0scUJBQXFCLEdBQUcsSUFBSSwrQ0FBcUIsQ0FBQyxJQUFJLEVBQUUsb0JBQW9CLEVBQUU7WUFDbEYsZUFBZSxFQUFFLEtBQUssQ0FBQyxlQUFlO1lBQ3RDLE9BQU8sRUFBRSxLQUFLLENBQUMsT0FBTyxJQUFJLEdBQUcsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztTQUNuRCxDQUFDLENBQUM7UUFFSCxJQUFJLCtCQUErQixHQUF3QixTQUFTLENBQUM7UUFDckUsSUFBSSxnQ0FBZ0MsR0FBd0IsU0FBUyxDQUFDO1FBQ3RFLElBQUksS0FBSyxDQUFDLFlBQVksRUFBRTtZQUN0QixJQUFJLE1BQU0sR0FBYyxFQUFFLENBQUM7WUFDM0IsSUFBSSxLQUFLLENBQUMsWUFBWSxDQUFDLGlCQUFpQixFQUFFO2dCQUN4QyxNQUFNLENBQUMsSUFBSSxDQUFDLDBCQUEwQixDQUFDLENBQUM7YUFDekM7WUFDRCxJQUFJLEtBQUssQ0FBQyxZQUFZLENBQUMsZ0JBQWdCLEVBQUU7Z0JBQ3ZDLE1BQU0sQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsQ0FBQzthQUNuQztZQUNELElBQUksS0FBSyxDQUFDLFlBQVksQ0FBQyxpQkFBaUIsRUFBRTtnQkFDeEMsTUFBTSxDQUFDLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDO2FBQzNDO1lBQ0QsSUFBSSxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtnQkFDckIsZ0NBQWdDLEdBQUcsTUFBTSxDQUFDO2dCQUMxQywrQkFBK0IsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2FBQ3BEO2lCQUFNO2dCQUNMLGdDQUFnQyxHQUFHLE9BQU8sQ0FBQzthQUM1QztTQUNGO1FBRUQsTUFBTSxPQUFPLEdBQUcsSUFBSSx3QkFBVSxDQUFDLEtBQUssQ0FBQyxhQUFhLEVBQUUsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2pFLE1BQU0sVUFBVSxHQUFHLElBQUksR0FBRyxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsVUFBVSxFQUFFO1lBQzFELFlBQVksRUFBRSxxQkFBcUIsQ0FBQyxZQUFZO1lBQ2hELFlBQVksRUFBRSx1QkFBdUI7WUFDckMsVUFBVSxFQUFFO2dCQUNWLGVBQWUsRUFBRSxLQUFLLENBQUMsZUFBZSxDQUFDLFdBQVcsQ0FBQyxlQUFlO2dCQUNsRSxvQkFBb0IsRUFBRSxLQUFLLENBQUMsZUFBZSxDQUFDLGdCQUFnQixDQUFDLG9CQUFvQjtnQkFDakYsbUJBQW1CLEVBQUUsS0FBSyxDQUFDLGVBQWUsQ0FBQyxtQkFBbUI7Z0JBQzlELGdDQUFnQztnQkFDaEMsK0JBQStCO2dCQUMvQixXQUFXLEVBQUUsS0FBSyxDQUFDLFdBQVc7Z0JBQzlCLHNCQUFzQixFQUFFLE9BQU8sQ0FBQyxRQUFRLEVBQUU7YUFDM0M7U0FDRixDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsWUFBWSxHQUFHLFVBQVUsQ0FBQyxZQUFZLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDOUQsQ0FBQzs7QUFsREgsc0NBb0RDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgY2RrIGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCAqIGFzIGNvZGVkZXBsb3kgZnJvbSAnYXdzLWNkay1saWIvYXdzLWNvZGVkZXBsb3knO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgeyBBcHBTcGVjSG9va3MsIEVjc0FwcFNwZWMsIFRhcmdldFNlcnZpY2UgfSBmcm9tICcuLi9lY3MtYXBwc3BlYyc7XG5pbXBvcnQgeyBFY3NEZXBsb3ltZW50UHJvdmlkZXIgfSBmcm9tICcuLi9lY3MtZGVwbG95bWVudC1wcm92aWRlcic7XG5cbi8qKlxuICogQ29uc3RydWN0aW9uIHByb3BlcnRpZXMgb2YgRWNzRGVwbG95bWVudC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFY3NEZXBsb3ltZW50UHJvcHMge1xuICAvKipcbiAgICogVGhlIGRlcGxveW1lbnQgZ3JvdXAgdG8gdGFyZ2V0IGZvciB0aGlzIGRlcGxveW1lbnQuXG4gICAqL1xuICByZWFkb25seSBkZXBsb3ltZW50R3JvdXA6IGNvZGVkZXBsb3kuSUVjc0RlcGxveW1lbnRHcm91cDtcblxuICAvKipcbiAgICogVGhlIEVDUyBzZXJ2aWNlIHRvIHRhcmdldCBmb3IgdGhlIGRlcGxveW1lbnQuXG4gICAqXG4gICAqIHNlZTogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2NvZGVkZXBsb3kvbGF0ZXN0L3VzZXJndWlkZS9yZWZlcmVuY2UtYXBwc3BlYy1maWxlLXN0cnVjdHVyZS1yZXNvdXJjZXMuaHRtbCNyZWZlcmVuY2UtYXBwc3BlYy1maWxlLXN0cnVjdHVyZS1yZXNvdXJjZXMtZWNzXG4gICAqL1xuICByZWFkb25seSB0YXJnZXRTZXJ2aWNlOiBUYXJnZXRTZXJ2aWNlO1xuXG4gIC8qKlxuICAgKiBUaGUgY29uZmlndXJhdGlvbiBmb3Igcm9sbGJhY2sgaW4gdGhlIGV2ZW50IHRoYXQgYSBkZXBsb3ltZW50IGZhaWxzLlxuICAgKlxuICAgKiBAZGVmYXVsdDogbm8gYXV0b21hdGljIHJvbGxiYWNrIHRyaWdnZXJlZFxuICAgKi9cbiAgcmVhZG9ubHkgYXV0b1JvbGxiYWNrPzogY29kZWRlcGxveS5BdXRvUm9sbGJhY2tDb25maWc7XG5cbiAgLyoqXG4gICAqIFRoZSBkZXNjcmlwdGlvbiBmb3IgdGhlIGRlcGxveW1lbnQuXG4gICAqXG4gICAqIEBkZWZhdWx0IG5vIGRlc2NyaXB0aW9uXG4gICAqL1xuICByZWFkb25seSBkZXNjcmlwdGlvbj86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHRpbWVvdXQgZm9yIHRoZSBkZXBsb3ltZW50LiBJZiB0aGUgdGltZW91dCBpcyByZWFjaGVkLCBpdCB3aWxsIHRyaWdnZXIgYSByb2xsYmFjayBvZiB0aGUgc3RhY2suXG4gICAqXG4gICAqIEBkZWZhdWx0IDMwIG1pbnV0ZXNcbiAgICovXG4gIHJlYWRvbmx5IHRpbWVvdXQ/OiBjZGsuRHVyYXRpb247XG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsIGxpZmVjeWNsZSBob29rc1xuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIGxpZmVjeWNsZSBob29rc1xuICAgKi9cbiAgcmVhZG9ubHkgaG9va3M/OiBBcHBTcGVjSG9va3M7XG5cbn1cblxuLyoqXG4gKiBBIENvZGVEZXBsb3kgRGVwbG95bWVudCBmb3IgYSBBbWF6b24gRUNTIHNlcnZpY2UgRGVwbG95bWVudEdyb3VwLiBBbiBFY3NEZXBsb3ltZW50R3JvdXBcbiAqIG11c3Qgb25seSBoYXZlIDEgRWNzRGVwbG95bWVudC4gVGhpcyBsaW1pdCBpcyBlbmZvcmNlZCBieSByZW1vdmluZyB0aGUgc2NvcGUgYW5kIGlkXG4gKiBmcm9tIHRoZSBjb25zdHJ1Y3Rvci4gVGhlIHNjb3BlIHdpbGwgYWx3YXlzIGJlIHNldCB0byB0aGUgRWNzRGVwbG95bWVudEdyb3VwXG4gKiBhbmQgdGhlIGlkIHdpbGwgYWx3YXlzIGJlIHNldCB0byB0aGUgc3RyaW5nICdEZXBsb3ltZW50JyB0byBmb3JjZSBhbiBlcnJvciBpZiBtdWxpdGlwbGVcbiAqIEVjc0RlcGxveW1lbnQgY29uc3RydWN0cyBhcmUgY3JlYXRlZCBmb3IgYSBzaW5nbGUgRWNzRGVwbG95bWVudEdyb3VwLlxuICovXG5leHBvcnQgY2xhc3MgRWNzRGVwbG95bWVudCBleHRlbmRzIENvbnN0cnVjdCB7XG4gIC8qKlxuICAgKiBUaGUgaWQgb2YgdGhlIGRlcGxveW1lbnQgdGhhdCB3YXMgY3JlYXRlZC5cbiAgICovXG4gIGRlcGxveW1lbnRJZDogc3RyaW5nO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3Rvcihwcm9wczogRWNzRGVwbG95bWVudFByb3BzKSB7XG4gICAgc3VwZXIocHJvcHMuZGVwbG95bWVudEdyb3VwLCAnRGVwbG95bWVudCcpO1xuXG4gICAgY29uc3QgZWNzRGVwbG95bWVudFByb3ZpZGVyID0gbmV3IEVjc0RlcGxveW1lbnRQcm92aWRlcih0aGlzLCAnRGVwbG95bWVudFByb3ZpZGVyJywge1xuICAgICAgZGVwbG95bWVudEdyb3VwOiBwcm9wcy5kZXBsb3ltZW50R3JvdXAsXG4gICAgICB0aW1lb3V0OiBwcm9wcy50aW1lb3V0IHx8IGNkay5EdXJhdGlvbi5taW51dGVzKDMwKSxcbiAgICB9KTtcblxuICAgIGxldCBhdXRvUm9sbGJhY2tDb25maWd1cmF0aW9uRXZlbnRzIDogc3RyaW5nIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuICAgIGxldCBhdXRvUm9sbGJhY2tDb25maWd1cmF0aW9uRW5hYmxlZCA6IHN0cmluZyB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcbiAgICBpZiAocHJvcHMuYXV0b1JvbGxiYWNrKSB7XG4gICAgICBsZXQgZXZlbnRzIDogc3RyaW5nW10gPSBbXTtcbiAgICAgIGlmIChwcm9wcy5hdXRvUm9sbGJhY2suZGVwbG95bWVudEluQWxhcm0pIHtcbiAgICAgICAgZXZlbnRzLnB1c2goJ0RFUExPWU1FTlRfU1RPUF9PTl9BTEFSTScpO1xuICAgICAgfVxuICAgICAgaWYgKHByb3BzLmF1dG9Sb2xsYmFjay5mYWlsZWREZXBsb3ltZW50KSB7XG4gICAgICAgIGV2ZW50cy5wdXNoKCdERVBMT1lNRU5UX0ZBSUxVUkUnKTtcbiAgICAgIH1cbiAgICAgIGlmIChwcm9wcy5hdXRvUm9sbGJhY2suc3RvcHBlZERlcGxveW1lbnQpIHtcbiAgICAgICAgZXZlbnRzLnB1c2goJ0RFUExPWU1FTlRfU1RPUF9PTl9SRVFVRVNUJyk7XG4gICAgICB9XG4gICAgICBpZiAoZXZlbnRzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgYXV0b1JvbGxiYWNrQ29uZmlndXJhdGlvbkVuYWJsZWQgPSAndHJ1ZSc7XG4gICAgICAgIGF1dG9Sb2xsYmFja0NvbmZpZ3VyYXRpb25FdmVudHMgPSBldmVudHMuam9pbignLCcpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgYXV0b1JvbGxiYWNrQ29uZmlndXJhdGlvbkVuYWJsZWQgPSAnZmFsc2UnO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IGFwcHNwZWMgPSBuZXcgRWNzQXBwU3BlYyhwcm9wcy50YXJnZXRTZXJ2aWNlLCBwcm9wcy5ob29rcyk7XG4gICAgY29uc3QgZGVwbG95bWVudCA9IG5ldyBjZGsuQ3VzdG9tUmVzb3VyY2UodGhpcywgJ1Jlc291cmNlJywge1xuICAgICAgc2VydmljZVRva2VuOiBlY3NEZXBsb3ltZW50UHJvdmlkZXIuc2VydmljZVRva2VuLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQ3VzdG9tOjpFY3NEZXBsb3ltZW50JyxcbiAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgYXBwbGljYXRpb25OYW1lOiBwcm9wcy5kZXBsb3ltZW50R3JvdXAuYXBwbGljYXRpb24uYXBwbGljYXRpb25OYW1lLFxuICAgICAgICBkZXBsb3ltZW50Q29uZmlnTmFtZTogcHJvcHMuZGVwbG95bWVudEdyb3VwLmRlcGxveW1lbnRDb25maWcuZGVwbG95bWVudENvbmZpZ05hbWUsXG4gICAgICAgIGRlcGxveW1lbnRHcm91cE5hbWU6IHByb3BzLmRlcGxveW1lbnRHcm91cC5kZXBsb3ltZW50R3JvdXBOYW1lLFxuICAgICAgICBhdXRvUm9sbGJhY2tDb25maWd1cmF0aW9uRW5hYmxlZCxcbiAgICAgICAgYXV0b1JvbGxiYWNrQ29uZmlndXJhdGlvbkV2ZW50cyxcbiAgICAgICAgZGVzY3JpcHRpb246IHByb3BzLmRlc2NyaXB0aW9uLFxuICAgICAgICByZXZpc2lvbkFwcFNwZWNDb250ZW50OiBhcHBzcGVjLnRvU3RyaW5nKCksXG4gICAgICB9LFxuICAgIH0pO1xuICAgIHRoaXMuZGVwbG95bWVudElkID0gZGVwbG95bWVudC5nZXRBdHRTdHJpbmcoJ2RlcGxveW1lbnRJZCcpO1xuICB9XG5cbn1cbiJdfQ==
@@ -7,6 +7,7 @@ import { ApplicationListener, ApplicationTargetGroup, HealthCheck } from 'aws-cd
7
7
  import { IBucket } from 'aws-cdk-lib/aws-s3';
8
8
  import { Construct } from 'constructs';
9
9
  import { ApiTestStep, ApiCanary } from '../api-canary';
10
+ import { AppSpecHooks } from '../ecs-appspec';
10
11
  import { EcsDeployment } from '../ecs-deployment';
11
12
  /**
12
13
  * The properties for the ApplicationLoadBalancedCodeDeployedFargateService service.
@@ -91,6 +92,12 @@ export interface ApplicationLoadBalancedCodeDeployedFargateServiceProps extends
91
92
  * @default - listenerPort + 1
92
93
  */
93
94
  readonly testPort?: number;
95
+ /**
96
+ * Optional lifecycle hooks
97
+ *
98
+ * @default - no lifecycle hooks
99
+ */
100
+ readonly hooks?: AppSpecHooks;
94
101
  }
95
102
  /**
96
103
  * A Fargate service running on an ECS cluster fronted by an application load balancer and deployed by CodeDeploy.
@@ -142,6 +142,7 @@ class ApplicationLoadBalancedCodeDeployedFargateService extends aws_ecs_patterns
142
142
  containerName: this.taskDefinition.defaultContainer.containerName,
143
143
  containerPort: this.taskDefinition.defaultContainer.containerPort,
144
144
  },
145
+ hooks: props.hooks,
145
146
  });
146
147
  }
147
148
  addServiceAsTarget(service) {
@@ -150,5 +151,5 @@ class ApplicationLoadBalancedCodeDeployedFargateService extends aws_ecs_patterns
150
151
  }
151
152
  exports.ApplicationLoadBalancedCodeDeployedFargateService = ApplicationLoadBalancedCodeDeployedFargateService;
152
153
  _a = JSII_RTTI_SYMBOL_1;
153
- ApplicationLoadBalancedCodeDeployedFargateService[_a] = { fqn: "@cdklabs/cdk-ecs-codedeploy.ApplicationLoadBalancedCodeDeployedFargateService", version: "0.0.154" };
154
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbGljYXRpb24tbG9hZC1iYWxhbmNlZC1jb2RlZGVwbG95ZWQtZmFyZ2F0ZS1zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2Vjcy1wYXR0ZXJucy9hcHBsaWNhdGlvbi1sb2FkLWJhbGFuY2VkLWNvZGVkZXBsb3llZC1mYXJnYXRlLXNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSx3RUFBeUQ7QUFDekQsNkNBQXVDO0FBQ3ZDLCtEQUEwRztBQUMxRywrREFBMkg7QUFDM0gsaURBQTRFO0FBQzVFLG1FQUFpSTtBQUNqSSx1RkFBbUo7QUFDbkosK0NBQTBGO0FBRTFGLDhDQUF1RDtBQUN2RCxzREFBa0Q7QUFtR2xEOztHQUVHO0FBQ0gsTUFBYSxpREFBa0QsU0FBUSx3REFBcUM7SUF5QzFHOztPQUVHO0lBQ0gsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUE2RDtRQUNyRyxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRTtZQUNmLEdBQUcsS0FBSztZQUNSLG9CQUFvQixFQUFFO2dCQUNwQixJQUFJLEVBQUUsa0NBQXdCLENBQUMsV0FBVzthQUMzQztTQUNGLENBQUMsQ0FBQztRQUVILElBQUksS0FBSyxDQUFDLG1CQUFtQixFQUFFO1lBQzdCLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLHNDQUFzQyxFQUFFLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1NBQ3pIO1FBQ0QsSUFBSSxLQUFLLENBQUMsV0FBVyxFQUFFO1lBQ3JCLElBQUksQ0FBQyxXQUFXLENBQUMsb0JBQW9CLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1NBQzFEO1FBQ0QsSUFBSSxDQUFDLGVBQWUsR0FBRyxLQUFLLENBQUMsZUFBZTtZQUMxQyxJQUFJLGVBQU0sQ0FBQyxJQUFJLEVBQUUsaUJBQWlCLEVBQUU7Z0JBQ2xDLFVBQVUs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LEVBQUUsS0FBSyxDQUFDLGlCQUFpQixJQUFJLHNCQUFRLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUN4RCxhQUFhLEVBQUU7Z0JBQ2IsY0FBYyxFQUFFLElBQUksQ0FBQyxjQUFjO2dCQUNuQyxhQUFhLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxnQkFBaUIsQ0FBQyxhQUFhO2dCQUNsRSxhQUFhLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxnQkFBaUIsQ0FBQyxhQUFhO2FBQ25FO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVTLGtCQUFrQixDQUFDLE9BQW9CO1FBQy9DLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNwQyxDQUFDOztBQXJMSCw4R0FzTEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTY2hlZHVsZSB9IGZyb20gJ0Bhd3MtY2RrL2F3cy1zeW50aGV0aWNzLWFscGhhJztcbmltcG9ydCB7IER1cmF0aW9uIH0gZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0IHsgQWxhcm0sIEFsYXJtUnVsZSwgQ29tcGFyaXNvbk9wZXJhdG9yLCBDb21wb3NpdGVBbGFybSwgSUFsYXJtIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWNsb3Vkd2F0Y2gnO1xuaW1wb3J0IHsgRWNzQXBwbGljYXRpb24sIEVjc0RlcGxveW1lbnRDb25maWcsIEVjc0RlcGxveW1lbnRHcm91cCwgSUVjc0RlcGxveW1lbnRDb25maWcgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtY29kZWRlcGxveSc7XG5pbXBvcnQgeyBCYXNlU2VydmljZSwgRGVwbG95bWVudENvbnRyb2xsZXJUeXBlIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWVjcyc7XG5pbXBvcnQgeyBBcHBsaWNhdGlvbkxvYWRCYWxhbmNlZEZhcmdhdGVTZXJ2aWNlLCBBcHBsaWNhdGlvbkxvYWRCYWxhbmNlZEZhcmdhdGVTZXJ2aWNlUHJvcHMgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtZWNzLXBhdHRlcm5zJztcbmltcG9ydCB7IEFwcGxpY2F0aW9uTGlzdGVuZXIsIEFwcGxpY2F0aW9uUHJvdG9jb2wsIEFwcGxpY2F0aW9uVGFyZ2V0R3JvdXAsIEhlYWx0aENoZWNrLCBUYXJnZXRUeXBlIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWVsYXN0aWNsb2FkYmFsYW5jaW5ndjInO1xuaW1wb3J0IHsgQmxvY2tQdWJsaWNBY2Nlc3MsIEJ1Y2tldCwgQnVja2V0RW5jcnlwdGlvbiwgSUJ1Y2tldCB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1zMyc7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB7IEFwaVRlc3RTdGVwLCBBcGlDYW5hcnkgfSBmcm9tICcuLi9hcGktY2FuYXJ5JztcbmltcG9ydCB7IEVjc0RlcGxveW1lbnQgfSBmcm9tICcuLi9lY3MtZGVwbG95bWVudCc7XG5cbi8qKlxuICogVGhlIHByb3BlcnRpZXMgZm9yIHRoZSBBcHBsaWNhdGlvbkxvYWRCYWxhbmNlZENvZGVEZXBsb3llZEZhcmdhdGVTZXJ2aWNlIHNlcnZpY2UuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQXBwbGljYXRpb25Mb2FkQmFsYW5jZWRDb2RlRGVwbG95ZWRGYXJnYXRlU2VydmljZVByb3BzIGV4dGVuZHMgQXBwbGljYXRpb25Mb2FkQmFsYW5jZWRGYXJnYXRlU2VydmljZVByb3BzIHtcbiAgLyoqXG4gICAqIFRoZSB0aW1lb3V0IGZvciBhIENvZGVEZXBsb3kgZGVwbG95bWVudC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSA2MCBtaW51dGVzXG4gICAqL1xuICByZWFkb25seSBkZXBsb3ltZW50VGltZW91dD86IER1cmF0aW9uO1xuXG4gIC8qKlxuICAgKiBUaGUgdGltZSB0byB3YWl0IGJlZm9yZSB0ZXJtaW5hdGluZyB0aGUgb3JpZ2luYWwgKGJsdWUpIHRhc2sgc2V0LlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIDEwIG1pbnV0ZXNcbiAgICovXG4gIHJlYWRvbmx5IHRlcm1pbmF0aW9uV2FpdFRpbWU/OiBEdXJhdGlvbjtcblxuICAvKipcbiAgICogVGhlIGRlcGxveW1lbnQgY29uZmlndXJhdGlvbiB0byB1c2UgZm9yIHRoZSBkZXBsb3ltZW50IGdyb3VwLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIEVjc0RlcGxveW1lbnRDb25maWcuQUxMX0FUX09OQ0VcbiAgICovXG4gIHJlYWRvbmx5IGRlcGxveW1lbnRDb25maWc/OiBJRWNzRGVwbG95bWVudENvbmZpZztcblxuICAvKipcbiAgICogVGhlIGFtb3VudCBvZiB0aW1lIGZvciBFTEIgdG8gd2FpdCBiZWZvcmUgY2hhbmdpbmcgdGhlIHN0YXRlIG9mIGEgZGVyZWdpc3RlcmluZyB0YXJnZXRcbiAgICogZnJvbSAnZHJhaW5pbmcnIHRvICd1bnVzZWQnLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIDMwMCBzZWNvbmRzXG4gICAqL1xuICByZWFkb25seSBkZXJlZ2lzdHJhdGlvbkRlbGF5PzogRHVyYXRpb247XG5cbiAgLyoqXG4gICAqIFRoZSBoZWFsdGhjaGVjayB0byBjb25maWd1cmUgb24gdGhlIEFwcGxpY2F0aW9uIExvYWQgQmFsYW5jZXIgdGFyZ2V0IGdyb3Vwcy5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBoZWFsdGggY2hlY2sgaXMgY29uZmlndXJlZFxuICAgKi9cbiAgcmVhZG9ubHkgaGVhbHRoQ2hlY2s/OiBIZWFsdGhDaGVjaztcblxuICAvKipcbiAgICogVGhlIGJ1Y2tldCB0byB1c2UgZm9yIGFjY2VzcyBsb2dzIGZyb20gdGhlIEFwcGxpY2F0aW9uIExvYWQgQmFsYW5jZXIuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gYSBuZXcgUzMgYnVja2V0IHdpbGwgYmUgY3JlYXRlZFxuICAgKi9cbiAgcmVhZG9ubHkgYWNjZXNzTG9nQnVja2V0PzogSUJ1Y2tldDtcblxuICAvKipcbiAgICogVGhlIHByZWZpeCB0byB1c2UgZm9yIGFjY2VzcyBsb2dzIGZyb20gdGhlIEFwcGxpY2F0aW9uIExvYWQgQmFsYW5jZXIuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm9uZVxuICAgKi9cbiAgcmVhZG9ubHkgYWNjZXNzTG9nUHJlZml4Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgdGhyZXNob2xkIGZvciByZXNwb25zZSB0aW1lIGFsYXJtLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIGFsYXJtIHdpbGwgYmUgY3JlYXRlZFxuICAgKi9cbiAgcmVhZG9ubHkgcmVzcG9uc2VUaW1lQWxhcm1UaHJlc2hvbGQ/OiBEdXJhdGlvbjtcblxuICAvKipcbiAgICogVGhlIG51bWJlciBvZiB0aHJlYWRzIHRvIHJ1biBjb25jdXJyZW50bHkgZm9yIHRoZSBzeW50aGV0aWMgdGVzdC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSAyMFxuICAgKi9cbiAgcmVhZG9ubHkgYXBpQ2FuYXJ5VGhyZWFkQ291bnQ/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFRoZSBmcmVxdWVuY3kgZm9yIHJ1bm5pbmcgdGhlIGFwaSBjYW5hcmllcy5cbiAgICpcbiAgICogQGRlZmF1bHQgLSA1IG1pbnV0ZXNcbiAgICovXG4gIHJlYWRvbmx5IGFwaUNhbmFyeVNjaGVkdWxlPzogRHVyYXRpb247XG5cbiAgLyoqXG4gICAqIFRoZSB0aHJlc2hvbGQgZm9yIGhvdyBsb25nIGEgYXBpIGNhbmFyeSBjYW4gdGFrZSB0byBydW4uXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gYWxhcm0gaXMgY3JlYXRlZCBmb3IgdGVzdCBkdXJhdGlvblxuICAgKi9cbiAgcmVhZG9ubHkgYXBpQ2FuYXJ5VGltZW91dD86IER1cmF0aW9uO1xuXG4gIC8qKlxuICAgKiBUaGUgc3RlcHMgdG8gcnVuIGluIHRoZSBjYW5hcnkuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gc3ludGhldGljIHRlc3Qgd2lsbCBiZSBjcmVhdGVkXG4gICAqL1xuICByZWFkb25seSBhcGlUZXN0U3RlcHM/OiBBcGlUZXN0U3RlcFtdO1xuXG4gIC8qKlxuICAgKiBUaGUgcG9ydCB0byB1c2UgZm9yIHRlc3QgdHJhZmZpYyBvbiB0aGUgbGlzdGVuZXJcbiAgICpcbiAgICogQGRlZmF1bHQgLSBsaXN0ZW5lclBvcnQgKyAxXG4gICAqL1xuICByZWFkb25seSB0ZXN0UG9ydD86IG51bWJlcjtcbn1cblxuLyoqXG4gKiBBIEZhcmdhdGUgc2VydmljZSBydW5uaW5nIG9uIGFuIEVDUyBjbHVzdGVyIGZyb250ZWQgYnkgYW4gYXBwbGljYXRpb24gbG9hZCBiYWxhbmNlciBhbmQgZGVwbG95ZWQgYnkgQ29kZURlcGxveS5cbiAqL1xuZXhwb3J0IGNsYXNzIEFwcGxpY2F0aW9uTG9hZEJhbGFuY2VkQ29kZURlcGxveWVkRmFyZ2F0ZVNlcnZpY2UgZXh0ZW5kcyBBcHBsaWNhdGlvbkxvYWRCYWxhbmNlZEZhcmdhdGVTZXJ2aWNlIHtcbiAgLyoqXG4gICAqIENvbXBvc2l0ZSBhbGFybSBmb3IgbW9uaXRvcmluZyBoZWFsdGggb2Ygc2VydmljZS5cbiAgICovXG4gIGhlYWx0aEFsYXJtPzogSUFsYXJtO1xuXG4gIC8qKlxuICAgKiBBUEkgQ2FuYXJ5IGZvciB0aGUgc2VydmljZS5cbiAgICovXG4gIGFwaUNhbmFyeT86IEFwaUNhbmFyeTtcblxuICAvKipcbiAgICogVGVzdCBsaXN0ZW5lciB0byB1c2UgZm9yIENvZGVEZXBsb3kgZGVwbG95bWVudHMuXG4gICAqL1xuICB0ZXN0TGlzdGVuZXI6IEFwcGxpY2F0aW9uTGlzdGVuZXI7XG5cbiAgLyoqXG4gICAqIFRlc3QgdGFyZ2V0IGdyb3VwIHRvIHVzZSBmb3IgQ29kZURlcGxveSBkZXBsb3ltZW50cy5cbiAgICovXG4gIGdyZWVuVGFyZ2V0R3JvdXA6IEFwcGxpY2F0aW9uVGFyZ2V0R3JvdXA7XG5cbiAgLyoqXG4gICAqIFMzIEJ1Y2tldCB1c2VkIGZvciBhY2Nlc3MgbG9ncy5cbiAgICovXG4gIGFjY2Vzc0xvZ0J1Y2tldDogSUJ1Y2tldDtcblxuICAvKipcbiAgICogQ29kZURlcGxveSBhcHBsaWNhdGlvbiBmb3IgdGhpcyBzZXJ2aWNlLlxuICAgKi9cbiAgYXBwbGljYXRpb246IEVjc0FwcGxpY2F0aW9uO1xuXG4gIC8qKlxuICAgKiBDb2RlRGVwbG95IGRlcGxveW1lbnQgZ3JvdXAgZm9yIHRoaXMgc2VydmljZS5cbiAgICovXG4gIGRlcGxveW1lbnRHcm91cDogRWNzRGVwbG95bWVudEdyb3VwO1xuXG4gIC8qKlxuICAgKiBDb2RlRGVwbG95IGRlcGxveW1lbnQgZm9yIHRoaXMgc2VydmljZS5cbiAgICovXG4gIGRlcGxveW1lbnQ6IEVjc0RlcGxveW1lbnQ7XG5cbiAgLyoqXG4gICAqIENvbnN0cnVjdHMgYSBuZXcgaW5zdGFuY2Ugb2YgdGhlIEFwcGxpY2F0aW9uTG9hZEJhbGFuY2VkQ29kZURlcGxveWVkRmFyZ2F0ZVNlcnZpY2UgY2xhc3MuXG4gICAqL1xuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogQXBwbGljYXRpb25Mb2FkQmFsYW5jZWRDb2RlRGVwbG95ZWRGYXJnYXRlU2VydmljZVByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCB7XG4gICAgICAuLi5wcm9wcyxcbiAgICAgIGRlcGxveW1lbnRDb250cm9sbGVyOiB7XG4gICAgICAgIHR5cGU6IERlcGxveW1lbnRDb250cm9sbGVyVHlwZS5DT0RFX0RFUExPWSxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICBpZiAocHJvcHMuZGVyZWdpc3RyYXRpb25EZWxheSkge1xuICAgICAgdGhpcy50YXJnZXRHcm91cC5zZXRBdHRyaWJ1dGUoJ2RlcmVnaXN0cmF0aW9uX2RlbGF5LnRpbWVvdXRfc2Vjb25kcycsIHByb3BzLmRlcmVnaXN0cmF0aW9uRGVsYXkudG9TZWNvbmRzKCkudG9TdHJpbmcoKSk7XG4gICAgfVxuICAgIGlmIChwcm9wcy5oZWFsdGhDaGVjaykge1xuICAgICAgdGhpcy50YXJnZXRHcm91cC5jb25maWd1cmVIZWFsdGhDaGVjayhwcm9wcy5oZWFsdGhDaGVjayk7XG4gICAgfVxuICAgIHRoaXMuYWNjZXNzTG9nQnVja2V0ID0gcHJvcHMuYWNjZXNzTG9nQnVja2V0ID8/XG4gICAgICBuZXcgQnVja2V0KHRoaXMsICdBY2Nlc3NMb2dCdWNrZXQnLCB7XG4gICAgICAgIGVuY3J5cHRpb246IEJ1Y2tldEVuY3J5cHRpb24uUzNfTUFOQUdFRCxcbiAgICAgICAgYmxvY2tQdWJsaWNBY2Nlc3M6IEJsb2NrUHVibGljQWNjZXNzLkJMT0NLX0FMTCxcbiAgICAgICAgZW5mb3JjZVNTTDogdHJ1ZSxcbiAgICAgIH0pO1xuXG4gICAgdGhpcy5sb2FkQmFsYW5jZXIubG9nQWNjZXNzTG9ncyh0aGlzLmFjY2Vzc0xvZ0J1Y2tldCwgcHJvcHMuYWNjZXNzTG9nUHJlZml4KTtcblxuICAgIGNvbnN0IGFsYXJtczogSUFsYXJtW10gPSBbXTtcbiAgICBpZiAocHJvcHMucmVzcG9uc2VUaW1lQWxhcm1UaHJlc2hvbGQpIHtcbiAgICAgIGNvbnN0IHJlc3BvbnNlVGltZUFsYXJtID0gbmV3IEFsYXJtKHRoaXMsICdSZXNwb25zZVRpbWVBbGFybScsIHtcbiAgICAgICAgbWV0cmljOiB0aGlzLmxvYWRCYWxhbmNlci5tZXRyaWNzLnRhcmdldFJlc3BvbnNlVGltZSh7XG4gICAgICAgICAgcGVyaW9kOiBEdXJhdGlvbi5taW51dGVzKDEpLFxuICAgICAgICAgIHN0YXRpc3RpYzogJ3A5NScsXG4gICAgICAgIH0pLFxuICAgICAgICBldmFsdWF0aW9uUGVyaW9kczogMixcbiAgICAgICAgdGhyZXNob2xkOiBwcm9wcy5yZXNwb25zZVRpbWVBbGFybVRocmVzaG9sZC50b1NlY29uZHMoKSxcbiAgICAgICAgY29tcGFyaXNvbk9wZXJhdG9yOiBDb21wYXJpc29uT3BlcmF0b3IuR1JFQVRFUl9USEFOX1RIUkVTSE9MRCxcbiAgICAgIH0pO1xuICAgICAgYWxhcm1zLnB1c2gocmVzcG9uc2VUaW1lQWxhcm0pO1xuICAgIH1cblxuICAgIGNvbnN0IHByb3RvY29sID0gcHJvcHMucHJvdG9jb2wgPz8gKHByb3BzLmNlcnRpZmljYXRlID8gQXBwbGljYXRpb25Qcm90b2NvbC5IVFRQUyA6IEFwcGxpY2F0aW9uUHJvdG9jb2wuSFRUUCk7XG5cbiAgICBjb25zdCB0ZXN0SG9zdE5hbWUgPSBwcm9wcy5kb21haW5OYW1lID8gcHJvcHMuZG9tYWluTmFtZSA6IHRoaXMubG9hZEJhbGFuY2VyLmxvYWRCYWxhbmNlckRuc05hbWU7XG5cbiAgICBpZiAocHJvcHMuYXBpVGVzdFN0ZXBzPy5sZW5ndGgpIHtcbiAgICAgIHRoaXMuYXBpQ2FuYXJ5ID0gbmV3IEFwaUNhbmFyeSh0aGlzLCAnQ2FuYXJ5Jywge1xuICAgICAgICBiYXNlVXJsOiBgJHtwcm90b2NvbC50b0xvd2VyQ2FzZSgpfTovLyR7dGVzdEhvc3ROYW1lfWAsXG4gICAgICAgIGR1cmF0aW9uQWxhcm1UaHJlc2hvbGQ6IHByb3BzLmFwaUNhbmFyeVRpbWVvdXQsXG4gICAgICAgIHNjaGVkdWxlOiBTY2hlZHVsZS5yYXRlKHByb3BzLmFwaUNhbmFyeVNjaGVkdWxlID8/IER1cmF0aW9uLm1pbnV0ZXMoNSkpLFxuICAgICAgICB0aHJlYWRDb3VudDogcHJvcHMuYXBpQ2FuYXJ5VGhyZWFkQ291bnQsXG4gICAgICAgIHN0ZXBzOiBwcm9wcy5hcGlUZXN0U3RlcHMsXG4gICAgICB9KTtcblxuICAgICAgdGhpcy5hcGlDYW5hcnkubm9kZS5hZGREZXBlbmRlbmN5KHRoaXMuc2VydmljZSk7XG5cbiAgICAgIGFsYXJtcy5wdXNoKHRoaXMuYXBpQ2FuYXJ5LnN1Y2Nlc3NBbGFybSk7XG4gICAgICBpZiAodGhpcy5hcGlDYW5hcnkuZHVyYXRpb25BbGFybSkge1xuICAgICAgICBhbGFybXMucHVzaCh0aGlzLmFwaUNhbmFyeS5kdXJhdGlvbkFsYXJtKTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKGFsYXJtcy5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLmhlYWx0aEFsYXJtID0gbmV3IENvbXBvc2l0ZUFsYXJtKHRoaXMsICdIZWFsdGhBbGFybScsIHtcbiAgICAgICAgYWxhcm1SdWxlOiBBbGFybVJ1bGUuYW55T2YoLi4uYWxhcm1zKSxcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmhlYWx0aEFsYXJtID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIGxldCB0ZXN0UG9ydDogbnVtYmVyO1xuICAgIGlmIChwcm9wcy50ZXN0UG9ydCkge1xuICAgICAgdGVzdFBvcnQgPSBwcm9wcy50ZXN0UG9ydDtcbiAgICB9IGVsc2UgaWYgKHByb3BzLmxpc3RlbmVyUG9ydCkge1xuICAgICAgdGVzdFBvcnQgPSBwcm9wcy5saXN0ZW5lclBvcnQgKyAxO1xuICAgIH0gZWxzZSBpZiAocHJvdG9jb2wgPT09IEFwcGxpY2F0aW9uUHJvdG9jb2wuSFRUUCkge1xuICAgICAgdGVzdFBvcnQgPSA4MDgwO1xuICAgIH0gZWxzZSBpZiAocHJvdG9jb2wgPT09IEFwcGxpY2F0aW9uUHJvdG9jb2wuSFRUUFMpIHtcbiAgICAgIHRlc3RQb3J0ID0gODQ0MztcbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdVbmFibGUgdG8gZGV0ZXJtaW5lIHBvcnQgZm9yIHRlc3QgbGlzdGVuZXInKTtcbiAgICB9XG5cbiAgICBsZXQgY2VydGlmaWNhdGVzO1xuICAgIGlmIChwcm9wcy5jZXJ0aWZpY2F0ZSkge1xuICAgICAgY2VydGlmaWNhdGVzID0gW3Byb3BzLmNlcnRpZmljYXRlXTtcbiAgICB9XG5cbiAgICB0aGlzLnRlc3RMaXN0ZW5lciA9IHRoaXMubG9hZEJhbGFuY2VyLmFkZExpc3RlbmVyKCdUZXN0TGlzdGVuZXInLCB7XG4gICAgICBwcm90b2NvbCxcbiAgICAgIHBvcnQ6IHRlc3RQb3J0LFxuICAgICAgb3BlbjogcHJvcHMub3Blbkxpc3RlbmVyID8/IHRydWUsXG4gICAgICBzc2xQb2xpY3k6IHByb3BzLnNzbFBvbGljeSxcbiAgICAgIGNlcnRpZmljYXRlczogY2VydGlmaWNhdGVzLFxuICAgIH0pO1xuXG4gICAgdGhpcy5ncmVlblRhcmdldEdyb3VwID0gbmV3IEFwcGxpY2F0aW9uVGFyZ2V0R3JvdXAodGhpcywgJ0dyZWVuVGFyZ2V0R3JvdXAnLCB7XG4gICAgICB2cGM6IHRoaXMuY2x1c3Rlci52cGMsXG4gICAgICBwb3J0OiB0ZXN0UG9ydCxcbiAgICAgIHByb3RvY29sOiBwcm9wcy50YXJnZXRQcm90b2NvbCA/PyBBcHBsaWNhdGlvblByb3RvY29sLkhUVFAsXG4gICAgICBwcm90b2NvbFZlcnNpb246IHByb3BzLnByb3RvY29sVmVyc2lvbixcbiAgICAgIGRlcmVnaXN0cmF0aW9uRGVsYXk6IHByb3BzLmRlcmVnaXN0cmF0aW9uRGVsYXksXG4gICAgICBoZWFsdGhDaGVjazogcHJvcHMuaGVhbHRoQ2hlY2ssXG4gICAgICB0YXJnZXRUeXBlOiBUYXJnZXRUeXBlLklQLFxuICAgIH0pO1xuXG4gICAgdGhpcy5saXN0ZW5lci5ub2RlLmFkZERlcGVuZGVuY3kodGhpcy5ncmVlblRhcmdldEdyb3VwKTtcblxuICAgIHRoaXMudGVzdExpc3RlbmVyLmFkZFRhcmdldEdyb3VwcygnRUNTJywge1xuICAgICAgdGFyZ2V0R3JvdXBzOiBbdGhpcy5ncmVlblRhcmdldEdyb3VwXSxcbiAgICB9KTtcblxuICAgIHRoaXMuYXBwbGljYXRpb24gPSBuZXcgRWNzQXBwbGljYXRpb24odGhpcywgJ0FwcGxpY2F0aW9uJyk7XG4gICAgdGhpcy5kZXBsb3ltZW50R3JvdXAgPSBuZXcgRWNzRGVwbG95bWVudEdyb3VwKHRoaXMsICdEZXBsb3ltZW50R3JvdXAnLCB7XG4gICAgICBhcHBsaWNhdGlvbjogdGhpcy5hcHBsaWNhdGlvbixcbiAgICAgIGFsYXJtczogdGhpcy5oZWFsdGhBbGFybT9bdGhpcy5oZWFsdGhBbGFybV06dW5kZWZpbmVkLFxuICAgICAgc2VydmljZTogdGhpcy5zZXJ2aWNlLFxuICAgICAgYmx1ZUdyZWVuRGVwbG95bWVudENvbmZpZzoge1xuICAgICAgICBibHVlVGFyZ2V0R3JvdXA6IHRoaXMudGFyZ2V0R3JvdXAsXG4gICAgICAgIGdyZWVuVGFyZ2V0R3JvdXA6IHRoaXMuZ3JlZW5UYXJnZXRHcm91cCxcbiAgICAgICAgbGlzdGVuZXI6IHRoaXMubGlzdGVuZXIsXG4gICAgICAgIHRlc3RMaXN0ZW5lcjogdGhpcy50ZXN0TGlzdGVuZXIsXG4gICAgICAgIHRlcm1pbmF0aW9uV2FpdFRpbWU6IHByb3BzLnRlcm1pbmF0aW9uV2FpdFRpbWUgPz8gRHVyYXRpb24ubWludXRlcygxMCksXG4gICAgICB9LFxuICAgICAgZGVwbG95bWVudENvbmZpZzogcHJvcHMuZGVwbG95bWVudENvbmZpZyA/PyBFY3NEZXBsb3ltZW50Q29uZmlnLkFMTF9BVF9PTkNFLFxuICAgICAgYXV0b1JvbGxiYWNrOiB7XG4gICAgICAgIHN0b3BwZWREZXBsb3ltZW50OiB0cnVlLFxuICAgICAgfSxcbiAgICB9KTtcbiAgICB0aGlzLmRlcGxveW1lbnQgPSBuZXcgRWNzRGVwbG95bWVudCh7XG4gICAgICBkZXBsb3ltZW50R3JvdXA6IHRoaXMuZGVwbG95bWVudEdyb3VwLFxuICAgICAgdGltZW91dDogcHJvcHMuZGVwbG95bWVudFRpbWVvdXQgPz8gRHVyYXRpb24ubWludXRlcyg2MCksXG4gICAgICB0YXJnZXRTZXJ2aWNlOiB7XG4gICAgICAgIHRhc2tEZWZpbml0aW9uOiB0aGlzLnRhc2tEZWZpbml0aW9uLFxuICAgICAgICBjb250YWluZXJOYW1lOiB0aGlzLnRhc2tEZWZpbml0aW9uLmRlZmF1bHRDb250YWluZXIhLmNvbnRhaW5lck5hbWUsXG4gICAgICAgIGNvbnRhaW5lclBvcnQ6IHRoaXMudGFza0RlZmluaXRpb24uZGVmYXVsdENvbnRhaW5lciEuY29udGFpbmVyUG9ydCxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgYWRkU2VydmljZUFzVGFyZ2V0KHNlcnZpY2U6IEJhc2VTZXJ2aWNlKSB7XG4gICAgc3VwZXIuYWRkU2VydmljZUFzVGFyZ2V0KHNlcnZpY2UpO1xuICB9XG59XG4iXX0=
154
+ ApplicationLoadBalancedCodeDeployedFargateService[_a] = { fqn: "@cdklabs/cdk-ecs-codedeploy.ApplicationLoadBalancedCodeDeployedFargateService", version: "0.0.155" };
155
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbGljYXRpb24tbG9hZC1iYWxhbmNlZC1jb2RlZGVwbG95ZWQtZmFyZ2F0ZS1zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2Vjcy1wYXR0ZXJucy9hcHBsaWNhdGlvbi1sb2FkLWJhbGFuY2VkLWNvZGVkZXBsb3llZC1mYXJnYXRlLXNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSx3RUFBeUQ7QUFDekQsNkNBQXVDO0FBQ3ZDLCtEQUEwRztBQUMxRywrREFBMkg7QUFDM0gsaURBQTRFO0FBQzVFLG1FQUFpSTtBQUNqSSx1RkFBbUo7QUFDbkosK0NBQTBGO0FBRTFGLDhDQUF1RDtBQUV2RCxzREFBa0Q7QUEwR2xEOztHQUVHO0FBQ0gsTUFBYSxpREFBa0QsU0FBUSx3REFBcUM7SUF5QzFHOztPQUVHO0lBQ0gsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUE2RDtRQUNyRyxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRTtZQUNmLEdBQUcsS0FBSztZQUNSLG9CQUFvQixFQUFFO2dCQUNwQixJQUFJLEVBQUUsa0NBQXdCLENBQUMsV0FBVzthQUMzQztTQUNGLENBQUMsQ0FBQztRQUVILElBQUksS0FBSyxDQUFDLG1CQUFtQixFQUFFO1lBQzdCLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLHNDQUFzQyxFQUFFLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1NBQ3pIO1FBQ0QsSUFBSSxLQUFLLENBQUMsV0FBVyxFQUFFO1lBQ3JCLElBQUksQ0FBQyxXQUFXLENBQUMsb0JBQW9CLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1NBQzFEO1FBQ0QsSUFBSSxDQUFDLGVBQWUsR0FBRyxLQUFLLENBQUMsZUFBZTtZQUMxQyxJQUFJLGVBQU0sQ0FBQyxJQUFJLEVBQUUsaUJBQWlCLEVBQUU7Z0JBQ2xDLFVBQVUs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LEVBQUUsS0FBSyxDQUFDLGlCQUFpQixJQUFJLHNCQUFRLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUN4RCxhQUFhLEVBQUU7Z0JBQ2IsY0FBYyxFQUFFLElBQUksQ0FBQyxjQUFjO2dCQUNuQyxhQUFhLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxnQkFBaUIsQ0FBQyxhQUFhO2dCQUNsRSxhQUFhLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxnQkFBaUIsQ0FBQyxhQUFhO2FBQ25FO1lBQ0QsS0FBSyxFQUFFLEtBQUssQ0FBQyxLQUFLO1NBQ25CLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFUyxrQkFBa0IsQ0FBQyxPQUFvQjtRQUMvQyxLQUFLLENBQUMsa0JBQWtCLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDcEMsQ0FBQzs7QUF0TEgsOEdBdUxDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2NoZWR1bGUgfSBmcm9tICdAYXdzLWNkay9hd3Mtc3ludGhldGljcy1hbHBoYSc7XG5pbXBvcnQgeyBEdXJhdGlvbiB9IGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB7IEFsYXJtLCBBbGFybVJ1bGUsIENvbXBhcmlzb25PcGVyYXRvciwgQ29tcG9zaXRlQWxhcm0sIElBbGFybSB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1jbG91ZHdhdGNoJztcbmltcG9ydCB7IEVjc0FwcGxpY2F0aW9uLCBFY3NEZXBsb3ltZW50Q29uZmlnLCBFY3NEZXBsb3ltZW50R3JvdXAsIElFY3NEZXBsb3ltZW50Q29uZmlnIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWNvZGVkZXBsb3knO1xuaW1wb3J0IHsgQmFzZVNlcnZpY2UsIERlcGxveW1lbnRDb250cm9sbGVyVHlwZSB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1lY3MnO1xuaW1wb3J0IHsgQXBwbGljYXRpb25Mb2FkQmFsYW5jZWRGYXJnYXRlU2VydmljZSwgQXBwbGljYXRpb25Mb2FkQmFsYW5jZWRGYXJnYXRlU2VydmljZVByb3BzIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWVjcy1wYXR0ZXJucyc7XG5pbXBvcnQgeyBBcHBsaWNhdGlvbkxpc3RlbmVyLCBBcHBsaWNhdGlvblByb3RvY29sLCBBcHBsaWNhdGlvblRhcmdldEdyb3VwLCBIZWFsdGhDaGVjaywgVGFyZ2V0VHlwZSB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1lbGFzdGljbG9hZGJhbGFuY2luZ3YyJztcbmltcG9ydCB7IEJsb2NrUHVibGljQWNjZXNzLCBCdWNrZXQsIEJ1Y2tldEVuY3J5cHRpb24sIElCdWNrZXQgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtczMnO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgeyBBcGlUZXN0U3RlcCwgQXBpQ2FuYXJ5IH0gZnJvbSAnLi4vYXBpLWNhbmFyeSc7XG5pbXBvcnQgeyBBcHBTcGVjSG9va3MgfSBmcm9tICcuLi9lY3MtYXBwc3BlYyc7XG5pbXBvcnQgeyBFY3NEZXBsb3ltZW50IH0gZnJvbSAnLi4vZWNzLWRlcGxveW1lbnQnO1xuXG4vKipcbiAqIFRoZSBwcm9wZXJ0aWVzIGZvciB0aGUgQXBwbGljYXRpb25Mb2FkQmFsYW5jZWRDb2RlRGVwbG95ZWRGYXJnYXRlU2VydmljZSBzZXJ2aWNlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFwcGxpY2F0aW9uTG9hZEJhbGFuY2VkQ29kZURlcGxveWVkRmFyZ2F0ZVNlcnZpY2VQcm9wcyBleHRlbmRzIEFwcGxpY2F0aW9uTG9hZEJhbGFuY2VkRmFyZ2F0ZVNlcnZpY2VQcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgdGltZW91dCBmb3IgYSBDb2RlRGVwbG95IGRlcGxveW1lbnQuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gNjAgbWludXRlc1xuICAgKi9cbiAgcmVhZG9ubHkgZGVwbG95bWVudFRpbWVvdXQ/OiBEdXJhdGlvbjtcblxuICAvKipcbiAgICogVGhlIHRpbWUgdG8gd2FpdCBiZWZvcmUgdGVybWluYXRpbmcgdGhlIG9yaWdpbmFsIChibHVlKSB0YXNrIHNldC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSAxMCBtaW51dGVzXG4gICAqL1xuICByZWFkb25seSB0ZXJtaW5hdGlvbldhaXRUaW1lPzogRHVyYXRpb247XG5cbiAgLyoqXG4gICAqIFRoZSBkZXBsb3ltZW50IGNvbmZpZ3VyYXRpb24gdG8gdXNlIGZvciB0aGUgZGVwbG95bWVudCBncm91cC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBFY3NEZXBsb3ltZW50Q29uZmlnLkFMTF9BVF9PTkNFXG4gICAqL1xuICByZWFkb25seSBkZXBsb3ltZW50Q29uZmlnPzogSUVjc0RlcGxveW1lbnRDb25maWc7XG5cbiAgLyoqXG4gICAqIFRoZSBhbW91bnQgb2YgdGltZSBmb3IgRUxCIHRvIHdhaXQgYmVmb3JlIGNoYW5naW5nIHRoZSBzdGF0ZSBvZiBhIGRlcmVnaXN0ZXJpbmcgdGFyZ2V0XG4gICAqIGZyb20gJ2RyYWluaW5nJyB0byAndW51c2VkJy5cbiAgICpcbiAgICogQGRlZmF1bHQgLSAzMDAgc2Vjb25kc1xuICAgKi9cbiAgcmVhZG9ubHkgZGVyZWdpc3RyYXRpb25EZWxheT86IER1cmF0aW9uO1xuXG4gIC8qKlxuICAgKiBUaGUgaGVhbHRoY2hlY2sgdG8gY29uZmlndXJlIG9uIHRoZSBBcHBsaWNhdGlvbiBMb2FkIEJhbGFuY2VyIHRhcmdldCBncm91cHMuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gaGVhbHRoIGNoZWNrIGlzIGNvbmZpZ3VyZWRcbiAgICovXG4gIHJlYWRvbmx5IGhlYWx0aENoZWNrPzogSGVhbHRoQ2hlY2s7XG5cbiAgLyoqXG4gICAqIFRoZSBidWNrZXQgdG8gdXNlIGZvciBhY2Nlc3MgbG9ncyBmcm9tIHRoZSBBcHBsaWNhdGlvbiBMb2FkIEJhbGFuY2VyLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGEgbmV3IFMzIGJ1Y2tldCB3aWxsIGJlIGNyZWF0ZWRcbiAgICovXG4gIHJlYWRvbmx5IGFjY2Vzc0xvZ0J1Y2tldD86IElCdWNrZXQ7XG5cbiAgLyoqXG4gICAqIFRoZSBwcmVmaXggdG8gdXNlIGZvciBhY2Nlc3MgbG9ncyBmcm9tIHRoZSBBcHBsaWNhdGlvbiBMb2FkIEJhbGFuY2VyLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vbmVcbiAgICovXG4gIHJlYWRvbmx5IGFjY2Vzc0xvZ1ByZWZpeD86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHRocmVzaG9sZCBmb3IgcmVzcG9uc2UgdGltZSBhbGFybS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBhbGFybSB3aWxsIGJlIGNyZWF0ZWRcbiAgICovXG4gIHJlYWRvbmx5IHJlc3BvbnNlVGltZUFsYXJtVGhyZXNob2xkPzogRHVyYXRpb247XG5cbiAgLyoqXG4gICAqIFRoZSBudW1iZXIgb2YgdGhyZWFkcyB0byBydW4gY29uY3VycmVudGx5IGZvciB0aGUgc3ludGhldGljIHRlc3QuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gMjBcbiAgICovXG4gIHJlYWRvbmx5IGFwaUNhbmFyeVRocmVhZENvdW50PzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBUaGUgZnJlcXVlbmN5IGZvciBydW5uaW5nIHRoZSBhcGkgY2FuYXJpZXMuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gNSBtaW51dGVzXG4gICAqL1xuICByZWFkb25seSBhcGlDYW5hcnlTY2hlZHVsZT86IER1cmF0aW9uO1xuXG4gIC8qKlxuICAgKiBUaGUgdGhyZXNob2xkIGZvciBob3cgbG9uZyBhIGFwaSBjYW5hcnkgY2FuIHRha2UgdG8gcnVuLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIGFsYXJtIGlzIGNyZWF0ZWQgZm9yIHRlc3QgZHVyYXRpb25cbiAgICovXG4gIHJlYWRvbmx5IGFwaUNhbmFyeVRpbWVvdXQ/OiBEdXJhdGlvbjtcblxuICAvKipcbiAgICogVGhlIHN0ZXBzIHRvIHJ1biBpbiB0aGUgY2FuYXJ5LlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIHN5bnRoZXRpYyB0ZXN0IHdpbGwgYmUgY3JlYXRlZFxuICAgKi9cbiAgcmVhZG9ubHkgYXBpVGVzdFN0ZXBzPzogQXBpVGVzdFN0ZXBbXTtcblxuICAvKipcbiAgICogVGhlIHBvcnQgdG8gdXNlIGZvciB0ZXN0IHRyYWZmaWMgb24gdGhlIGxpc3RlbmVyXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbGlzdGVuZXJQb3J0ICsgMVxuICAgKi9cbiAgcmVhZG9ubHkgdGVzdFBvcnQ/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsIGxpZmVjeWNsZSBob29rc1xuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIGxpZmVjeWNsZSBob29rc1xuICAgKi9cbiAgcmVhZG9ubHkgaG9va3M/OiBBcHBTcGVjSG9va3M7XG59XG5cbi8qKlxuICogQSBGYXJnYXRlIHNlcnZpY2UgcnVubmluZyBvbiBhbiBFQ1MgY2x1c3RlciBmcm9udGVkIGJ5IGFuIGFwcGxpY2F0aW9uIGxvYWQgYmFsYW5jZXIgYW5kIGRlcGxveWVkIGJ5IENvZGVEZXBsb3kuXG4gKi9cbmV4cG9ydCBjbGFzcyBBcHBsaWNhdGlvbkxvYWRCYWxhbmNlZENvZGVEZXBsb3llZEZhcmdhdGVTZXJ2aWNlIGV4dGVuZHMgQXBwbGljYXRpb25Mb2FkQmFsYW5jZWRGYXJnYXRlU2VydmljZSB7XG4gIC8qKlxuICAgKiBDb21wb3NpdGUgYWxhcm0gZm9yIG1vbml0b3JpbmcgaGVhbHRoIG9mIHNlcnZpY2UuXG4gICAqL1xuICBoZWFsdGhBbGFybT86IElBbGFybTtcblxuICAvKipcbiAgICogQVBJIENhbmFyeSBmb3IgdGhlIHNlcnZpY2UuXG4gICAqL1xuICBhcGlDYW5hcnk/OiBBcGlDYW5hcnk7XG5cbiAgLyoqXG4gICAqIFRlc3QgbGlzdGVuZXIgdG8gdXNlIGZvciBDb2RlRGVwbG95IGRlcGxveW1lbnRzLlxuICAgKi9cbiAgdGVzdExpc3RlbmVyOiBBcHBsaWNhdGlvbkxpc3RlbmVyO1xuXG4gIC8qKlxuICAgKiBUZXN0IHRhcmdldCBncm91cCB0byB1c2UgZm9yIENvZGVEZXBsb3kgZGVwbG95bWVudHMuXG4gICAqL1xuICBncmVlblRhcmdldEdyb3VwOiBBcHBsaWNhdGlvblRhcmdldEdyb3VwO1xuXG4gIC8qKlxuICAgKiBTMyBCdWNrZXQgdXNlZCBmb3IgYWNjZXNzIGxvZ3MuXG4gICAqL1xuICBhY2Nlc3NMb2dCdWNrZXQ6IElCdWNrZXQ7XG5cbiAgLyoqXG4gICAqIENvZGVEZXBsb3kgYXBwbGljYXRpb24gZm9yIHRoaXMgc2VydmljZS5cbiAgICovXG4gIGFwcGxpY2F0aW9uOiBFY3NBcHBsaWNhdGlvbjtcblxuICAvKipcbiAgICogQ29kZURlcGxveSBkZXBsb3ltZW50IGdyb3VwIGZvciB0aGlzIHNlcnZpY2UuXG4gICAqL1xuICBkZXBsb3ltZW50R3JvdXA6IEVjc0RlcGxveW1lbnRHcm91cDtcblxuICAvKipcbiAgICogQ29kZURlcGxveSBkZXBsb3ltZW50IGZvciB0aGlzIHNlcnZpY2UuXG4gICAqL1xuICBkZXBsb3ltZW50OiBFY3NEZXBsb3ltZW50O1xuXG4gIC8qKlxuICAgKiBDb25zdHJ1Y3RzIGEgbmV3IGluc3RhbmNlIG9mIHRoZSBBcHBsaWNhdGlvbkxvYWRCYWxhbmNlZENvZGVEZXBsb3llZEZhcmdhdGVTZXJ2aWNlIGNsYXNzLlxuICAgKi9cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IEFwcGxpY2F0aW9uTG9hZEJhbGFuY2VkQ29kZURlcGxveWVkRmFyZ2F0ZVNlcnZpY2VQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwge1xuICAgICAgLi4ucHJvcHMsXG4gICAgICBkZXBsb3ltZW50Q29udHJvbGxlcjoge1xuICAgICAgICB0eXBlOiBEZXBsb3ltZW50Q29udHJvbGxlclR5cGUuQ09ERV9ERVBMT1ksXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgaWYgKHByb3BzLmRlcmVnaXN0cmF0aW9uRGVsYXkpIHtcbiAgICAgIHRoaXMudGFyZ2V0R3JvdXAuc2V0QXR0cmlidXRlKCdkZXJlZ2lzdHJhdGlvbl9kZWxheS50aW1lb3V0X3NlY29uZHMnLCBwcm9wcy5kZXJlZ2lzdHJhdGlvbkRlbGF5LnRvU2Vjb25kcygpLnRvU3RyaW5nKCkpO1xuICAgIH1cbiAgICBpZiAocHJvcHMuaGVhbHRoQ2hlY2spIHtcbiAgICAgIHRoaXMudGFyZ2V0R3JvdXAuY29uZmlndXJlSGVhbHRoQ2hlY2socHJvcHMuaGVhbHRoQ2hlY2spO1xuICAgIH1cbiAgICB0aGlzLmFjY2Vzc0xvZ0J1Y2tldCA9IHByb3BzLmFjY2Vzc0xvZ0J1Y2tldCA/P1xuICAgICAgbmV3IEJ1Y2tldCh0aGlzLCAnQWNjZXNzTG9nQnVja2V0Jywge1xuICAgICAgICBlbmNyeXB0aW9uOiBCdWNrZXRFbmNyeXB0aW9uLlMzX01BTkFHRUQsXG4gICAgICAgIGJsb2NrUHVibGljQWNjZXNzOiBCbG9ja1B1YmxpY0FjY2Vzcy5CTE9DS19BTEwsXG4gICAgICAgIGVuZm9yY2VTU0w6IHRydWUsXG4gICAgICB9KTtcblxuICAgIHRoaXMubG9hZEJhbGFuY2VyLmxvZ0FjY2Vzc0xvZ3ModGhpcy5hY2Nlc3NMb2dCdWNrZXQsIHByb3BzLmFjY2Vzc0xvZ1ByZWZpeCk7XG5cbiAgICBjb25zdCBhbGFybXM6IElBbGFybVtdID0gW107XG4gICAgaWYgKHByb3BzLnJlc3BvbnNlVGltZUFsYXJtVGhyZXNob2xkKSB7XG4gICAgICBjb25zdCByZXNwb25zZVRpbWVBbGFybSA9IG5ldyBBbGFybSh0aGlzLCAnUmVzcG9uc2VUaW1lQWxhcm0nLCB7XG4gICAgICAgIG1ldHJpYzogdGhpcy5sb2FkQmFsYW5jZXIubWV0cmljcy50YXJnZXRSZXNwb25zZVRpbWUoe1xuICAgICAgICAgIHBlcmlvZDogRHVyYXRpb24ubWludXRlcygxKSxcbiAgICAgICAgICBzdGF0aXN0aWM6ICdwOTUnLFxuICAgICAgICB9KSxcbiAgICAgICAgZXZhbHVhdGlvblBlcmlvZHM6IDIsXG4gICAgICAgIHRocmVzaG9sZDogcHJvcHMucmVzcG9uc2VUaW1lQWxhcm1UaHJlc2hvbGQudG9TZWNvbmRzKCksXG4gICAgICAgIGNvbXBhcmlzb25PcGVyYXRvcjogQ29tcGFyaXNvbk9wZXJhdG9yLkdSRUFURVJfVEhBTl9USFJFU0hPTEQsXG4gICAgICB9KTtcbiAgICAgIGFsYXJtcy5wdXNoKHJlc3BvbnNlVGltZUFsYXJtKTtcbiAgICB9XG5cbiAgICBjb25zdCBwcm90b2NvbCA9IHByb3BzLnByb3RvY29sID8/IChwcm9wcy5jZXJ0aWZpY2F0ZSA/IEFwcGxpY2F0aW9uUHJvdG9jb2wuSFRUUFMgOiBBcHBsaWNhdGlvblByb3RvY29sLkhUVFApO1xuXG4gICAgY29uc3QgdGVzdEhvc3ROYW1lID0gcHJvcHMuZG9tYWluTmFtZSA/IHByb3BzLmRvbWFpbk5hbWUgOiB0aGlzLmxvYWRCYWxhbmNlci5sb2FkQmFsYW5jZXJEbnNOYW1lO1xuXG4gICAgaWYgKHByb3BzLmFwaVRlc3RTdGVwcz8ubGVuZ3RoKSB7XG4gICAgICB0aGlzLmFwaUNhbmFyeSA9IG5ldyBBcGlDYW5hcnkodGhpcywgJ0NhbmFyeScsIHtcbiAgICAgICAgYmFzZVVybDogYCR7cHJvdG9jb2wudG9Mb3dlckNhc2UoKX06Ly8ke3Rlc3RIb3N0TmFtZX1gLFxuICAgICAgICBkdXJhdGlvbkFsYXJtVGhyZXNob2xkOiBwcm9wcy5hcGlDYW5hcnlUaW1lb3V0LFxuICAgICAgICBzY2hlZHVsZTogU2NoZWR1bGUucmF0ZShwcm9wcy5hcGlDYW5hcnlTY2hlZHVsZSA/PyBEdXJhdGlvbi5taW51dGVzKDUpKSxcbiAgICAgICAgdGhyZWFkQ291bnQ6IHByb3BzLmFwaUNhbmFyeVRocmVhZENvdW50LFxuICAgICAgICBzdGVwczogcHJvcHMuYXBpVGVzdFN0ZXBzLFxuICAgICAgfSk7XG5cbiAgICAgIHRoaXMuYXBpQ2FuYXJ5Lm5vZGUuYWRkRGVwZW5kZW5jeSh0aGlzLnNlcnZpY2UpO1xuXG4gICAgICBhbGFybXMucHVzaCh0aGlzLmFwaUNhbmFyeS5zdWNjZXNzQWxhcm0pO1xuICAgICAgaWYgKHRoaXMuYXBpQ2FuYXJ5LmR1cmF0aW9uQWxhcm0pIHtcbiAgICAgICAgYWxhcm1zLnB1c2godGhpcy5hcGlDYW5hcnkuZHVyYXRpb25BbGFybSk7XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChhbGFybXMubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5oZWFsdGhBbGFybSA9IG5ldyBDb21wb3NpdGVBbGFybSh0aGlzLCAnSGVhbHRoQWxhcm0nLCB7XG4gICAgICAgIGFsYXJtUnVsZTogQWxhcm1SdWxlLmFueU9mKC4uLmFsYXJtcyksXG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5oZWFsdGhBbGFybSA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBsZXQgdGVzdFBvcnQ6IG51bWJlcjtcbiAgICBpZiAocHJvcHMudGVzdFBvcnQpIHtcbiAgICAgIHRlc3RQb3J0ID0gcHJvcHMudGVzdFBvcnQ7XG4gICAgfSBlbHNlIGlmIChwcm9wcy5saXN0ZW5lclBvcnQpIHtcbiAgICAgIHRlc3RQb3J0ID0gcHJvcHMubGlzdGVuZXJQb3J0ICsgMTtcbiAgICB9IGVsc2UgaWYgKHByb3RvY29sID09PSBBcHBsaWNhdGlvblByb3RvY29sLkhUVFApIHtcbiAgICAgIHRlc3RQb3J0ID0gODA4MDtcbiAgICB9IGVsc2UgaWYgKHByb3RvY29sID09PSBBcHBsaWNhdGlvblByb3RvY29sLkhUVFBTKSB7XG4gICAgICB0ZXN0UG9ydCA9IDg0NDM7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignVW5hYmxlIHRvIGRldGVybWluZSBwb3J0IGZvciB0ZXN0IGxpc3RlbmVyJyk7XG4gICAgfVxuXG4gICAgbGV0IGNlcnRpZmljYXRlcztcbiAgICBpZiAocHJvcHMuY2VydGlmaWNhdGUpIHtcbiAgICAgIGNlcnRpZmljYXRlcyA9IFtwcm9wcy5jZXJ0aWZpY2F0ZV07XG4gICAgfVxuXG4gICAgdGhpcy50ZXN0TGlzdGVuZXIgPSB0aGlzLmxvYWRCYWxhbmNlci5hZGRMaXN0ZW5lcignVGVzdExpc3RlbmVyJywge1xuICAgICAgcHJvdG9jb2wsXG4gICAgICBwb3J0OiB0ZXN0UG9ydCxcbiAgICAgIG9wZW46IHByb3BzLm9wZW5MaXN0ZW5lciA/PyB0cnVlLFxuICAgICAgc3NsUG9saWN5OiBwcm9wcy5zc2xQb2xpY3ksXG4gICAgICBjZXJ0aWZpY2F0ZXM6IGNlcnRpZmljYXRlcyxcbiAgICB9KTtcblxuICAgIHRoaXMuZ3JlZW5UYXJnZXRHcm91cCA9IG5ldyBBcHBsaWNhdGlvblRhcmdldEdyb3VwKHRoaXMsICdHcmVlblRhcmdldEdyb3VwJywge1xuICAgICAgdnBjOiB0aGlzLmNsdXN0ZXIudnBjLFxuICAgICAgcG9ydDogdGVzdFBvcnQsXG4gICAgICBwcm90b2NvbDogcHJvcHMudGFyZ2V0UHJvdG9jb2wgPz8gQXBwbGljYXRpb25Qcm90b2NvbC5IVFRQLFxuICAgICAgcHJvdG9jb2xWZXJzaW9uOiBwcm9wcy5wcm90b2NvbFZlcnNpb24sXG4gICAgICBkZXJlZ2lzdHJhdGlvbkRlbGF5OiBwcm9wcy5kZXJlZ2lzdHJhdGlvbkRlbGF5LFxuICAgICAgaGVhbHRoQ2hlY2s6IHByb3BzLmhlYWx0aENoZWNrLFxuICAgICAgdGFyZ2V0VHlwZTogVGFyZ2V0VHlwZS5JUCxcbiAgICB9KTtcblxuICAgIHRoaXMubGlzdGVuZXIubm9kZS5hZGREZXBlbmRlbmN5KHRoaXMuZ3JlZW5UYXJnZXRHcm91cCk7XG5cbiAgICB0aGlzLnRlc3RMaXN0ZW5lci5hZGRUYXJnZXRHcm91cHMoJ0VDUycsIHtcbiAgICAgIHRhcmdldEdyb3VwczogW3RoaXMuZ3JlZW5UYXJnZXRHcm91cF0sXG4gICAgfSk7XG5cbiAgICB0aGlzLmFwcGxpY2F0aW9uID0gbmV3IEVjc0FwcGxpY2F0aW9uKHRoaXMsICdBcHBsaWNhdGlvbicpO1xuICAgIHRoaXMuZGVwbG95bWVudEdyb3VwID0gbmV3IEVjc0RlcGxveW1lbnRHcm91cCh0aGlzLCAnRGVwbG95bWVudEdyb3VwJywge1xuICAgICAgYXBwbGljYXRpb246IHRoaXMuYXBwbGljYXRpb24sXG4gICAgICBhbGFybXM6IHRoaXMuaGVhbHRoQWxhcm0/W3RoaXMuaGVhbHRoQWxhcm1dOnVuZGVmaW5lZCxcbiAgICAgIHNlcnZpY2U6IHRoaXMuc2VydmljZSxcbiAgICAgIGJsdWVHcmVlbkRlcGxveW1lbnRDb25maWc6IHtcbiAgICAgICAgYmx1ZVRhcmdldEdyb3VwOiB0aGlzLnRhcmdldEdyb3VwLFxuICAgICAgICBncmVlblRhcmdldEdyb3VwOiB0aGlzLmdyZWVuVGFyZ2V0R3JvdXAsXG4gICAgICAgIGxpc3RlbmVyOiB0aGlzLmxpc3RlbmVyLFxuICAgICAgICB0ZXN0TGlzdGVuZXI6IHRoaXMudGVzdExpc3RlbmVyLFxuICAgICAgICB0ZXJtaW5hdGlvbldhaXRUaW1lOiBwcm9wcy50ZXJtaW5hdGlvbldhaXRUaW1lID8/IER1cmF0aW9uLm1pbnV0ZXMoMTApLFxuICAgICAgfSxcbiAgICAgIGRlcGxveW1lbnRDb25maWc6IHByb3BzLmRlcGxveW1lbnRDb25maWcgPz8gRWNzRGVwbG95bWVudENvbmZpZy5BTExfQVRfT05DRSxcbiAgICAgIGF1dG9Sb2xsYmFjazoge1xuICAgICAgICBzdG9wcGVkRGVwbG95bWVudDogdHJ1ZSxcbiAgICAgIH0sXG4gICAgfSk7XG4gICAgdGhpcy5kZXBsb3ltZW50ID0gbmV3IEVjc0RlcGxveW1lbnQoe1xuICAgICAgZGVwbG95bWVudEdyb3VwOiB0aGlzLmRlcGxveW1lbnRHcm91cCxcbiAgICAgIHRpbWVvdXQ6IHByb3BzLmRlcGxveW1lbnRUaW1lb3V0ID8/IER1cmF0aW9uLm1pbnV0ZXMoNjApLFxuICAgICAgdGFyZ2V0U2VydmljZToge1xuICAgICAgICB0YXNrRGVmaW5pdGlvbjogdGhpcy50YXNrRGVmaW5pdGlvbixcbiAgICAgICAgY29udGFpbmVyTmFtZTogdGhpcy50YXNrRGVmaW5pdGlvbi5kZWZhdWx0Q29udGFpbmVyIS5jb250YWluZXJOYW1lLFxuICAgICAgICBjb250YWluZXJQb3J0OiB0aGlzLnRhc2tEZWZpbml0aW9uLmRlZmF1bHRDb250YWluZXIhLmNvbnRhaW5lclBvcnQsXG4gICAgICB9LFxuICAgICAgaG9va3M6IHByb3BzLmhvb2tzLFxuICAgIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFkZFNlcnZpY2VBc1RhcmdldChzZXJ2aWNlOiBCYXNlU2VydmljZSkge1xuICAgIHN1cGVyLmFkZFNlcnZpY2VBc1RhcmdldChzZXJ2aWNlKTtcbiAgfVxufVxuIl19
package/package.json CHANGED
@@ -30,6 +30,11 @@
30
30
  "integ:application-load-balanced-codedeployed-fargate-service:destroy": "npx projen integ:application-load-balanced-codedeployed-fargate-service:destroy",
31
31
  "integ:application-load-balanced-codedeployed-fargate-service:snapshot": "npx projen integ:application-load-balanced-codedeployed-fargate-service:snapshot",
32
32
  "integ:application-load-balanced-codedeployed-fargate-service:watch": "npx projen integ:application-load-balanced-codedeployed-fargate-service:watch",
33
+ "integ:ecs-deployment-hooks:assert": "npx projen integ:ecs-deployment-hooks:assert",
34
+ "integ:ecs-deployment-hooks:deploy": "npx projen integ:ecs-deployment-hooks:deploy",
35
+ "integ:ecs-deployment-hooks:destroy": "npx projen integ:ecs-deployment-hooks:destroy",
36
+ "integ:ecs-deployment-hooks:snapshot": "npx projen integ:ecs-deployment-hooks:snapshot",
37
+ "integ:ecs-deployment-hooks:watch": "npx projen integ:ecs-deployment-hooks:watch",
33
38
  "integ:ecs-deployment:assert": "npx projen integ:ecs-deployment:assert",
34
39
  "integ:ecs-deployment:deploy": "npx projen integ:ecs-deployment:deploy",
35
40
  "integ:ecs-deployment:destroy": "npx projen integ:ecs-deployment:destroy",
@@ -122,7 +127,7 @@
122
127
  "publishConfig": {
123
128
  "access": "public"
124
129
  },
125
- "version": "0.0.154",
130
+ "version": "0.0.155",
126
131
  "jest": {
127
132
  "testMatch": [
128
133
  "<rootDir>/src/**/__tests__/**/*.ts?(x)",