@cdklabs/cdk-ecs-codedeploy 0.0.109 → 0.0.111

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (77) hide show
  1. package/.jsii +17 -16
  2. package/API.md +13 -13
  3. package/lib/api-canary/index.js +1 -1
  4. package/lib/ecs-appspec/index.js +1 -1
  5. package/lib/ecs-deployment/index.js +1 -1
  6. package/lib/ecs-patterns/application-load-balanced-codedeployed-fargate-service.d.ts +1 -1
  7. package/lib/ecs-patterns/application-load-balanced-codedeployed-fargate-service.js +11 -6
  8. package/node_modules/@aws-sdk/client-codedeploy/dist-types/commands/AddTagsToOnPremisesInstancesCommand.d.ts +4 -4
  9. package/node_modules/@aws-sdk/client-codedeploy/dist-types/commands/BatchGetApplicationRevisionsCommand.d.ts +7 -7
  10. package/node_modules/@aws-sdk/client-codedeploy/dist-types/commands/BatchGetApplicationsCommand.d.ts +2 -2
  11. package/node_modules/@aws-sdk/client-codedeploy/dist-types/commands/BatchGetDeploymentGroupsCommand.d.ts +2 -2
  12. package/node_modules/@aws-sdk/client-codedeploy/dist-types/commands/BatchGetDeploymentInstancesCommand.d.ts +2 -2
  13. package/node_modules/@aws-sdk/client-codedeploy/dist-types/commands/BatchGetDeploymentTargetsCommand.d.ts +2 -2
  14. package/node_modules/@aws-sdk/client-codedeploy/dist-types/commands/BatchGetDeploymentsCommand.d.ts +2 -2
  15. package/node_modules/@aws-sdk/client-codedeploy/dist-types/commands/BatchGetOnPremisesInstancesCommand.d.ts +2 -2
  16. package/node_modules/@aws-sdk/client-codedeploy/dist-types/commands/ContinueDeploymentCommand.d.ts +1 -1
  17. package/node_modules/@aws-sdk/client-codedeploy/dist-types/commands/CreateApplicationCommand.d.ts +3 -3
  18. package/node_modules/@aws-sdk/client-codedeploy/dist-types/commands/CreateDeploymentCommand.d.ts +17 -17
  19. package/node_modules/@aws-sdk/client-codedeploy/dist-types/commands/CreateDeploymentConfigCommand.d.ts +5 -5
  20. package/node_modules/@aws-sdk/client-codedeploy/dist-types/commands/CreateDeploymentGroupCommand.d.ts +36 -36
  21. package/node_modules/@aws-sdk/client-codedeploy/dist-types/commands/DeleteApplicationCommand.d.ts +1 -1
  22. package/node_modules/@aws-sdk/client-codedeploy/dist-types/commands/DeleteDeploymentConfigCommand.d.ts +1 -1
  23. package/node_modules/@aws-sdk/client-codedeploy/dist-types/commands/DeleteDeploymentGroupCommand.d.ts +1 -1
  24. package/node_modules/@aws-sdk/client-codedeploy/dist-types/commands/DeleteGitHubAccountTokenCommand.d.ts +1 -1
  25. package/node_modules/@aws-sdk/client-codedeploy/dist-types/commands/DeleteResourcesByExternalIdCommand.d.ts +1 -1
  26. package/node_modules/@aws-sdk/client-codedeploy/dist-types/commands/DeregisterOnPremisesInstanceCommand.d.ts +1 -1
  27. package/node_modules/@aws-sdk/client-codedeploy/dist-types/commands/GetApplicationCommand.d.ts +1 -1
  28. package/node_modules/@aws-sdk/client-codedeploy/dist-types/commands/GetApplicationRevisionCommand.d.ts +6 -6
  29. package/node_modules/@aws-sdk/client-codedeploy/dist-types/commands/GetDeploymentCommand.d.ts +1 -1
  30. package/node_modules/@aws-sdk/client-codedeploy/dist-types/commands/GetDeploymentConfigCommand.d.ts +1 -1
  31. package/node_modules/@aws-sdk/client-codedeploy/dist-types/commands/GetDeploymentGroupCommand.d.ts +1 -1
  32. package/node_modules/@aws-sdk/client-codedeploy/dist-types/commands/GetDeploymentInstanceCommand.d.ts +1 -1
  33. package/node_modules/@aws-sdk/client-codedeploy/dist-types/commands/GetDeploymentTargetCommand.d.ts +1 -1
  34. package/node_modules/@aws-sdk/client-codedeploy/dist-types/commands/GetOnPremisesInstanceCommand.d.ts +1 -1
  35. package/node_modules/@aws-sdk/client-codedeploy/dist-types/commands/ListApplicationRevisionsCommand.d.ts +1 -1
  36. package/node_modules/@aws-sdk/client-codedeploy/dist-types/commands/ListApplicationsCommand.d.ts +1 -1
  37. package/node_modules/@aws-sdk/client-codedeploy/dist-types/commands/ListDeploymentConfigsCommand.d.ts +1 -1
  38. package/node_modules/@aws-sdk/client-codedeploy/dist-types/commands/ListDeploymentGroupsCommand.d.ts +1 -1
  39. package/node_modules/@aws-sdk/client-codedeploy/dist-types/commands/ListDeploymentInstancesCommand.d.ts +3 -3
  40. package/node_modules/@aws-sdk/client-codedeploy/dist-types/commands/ListDeploymentTargetsCommand.d.ts +3 -3
  41. package/node_modules/@aws-sdk/client-codedeploy/dist-types/commands/ListDeploymentsCommand.d.ts +3 -3
  42. package/node_modules/@aws-sdk/client-codedeploy/dist-types/commands/ListGitHubAccountTokenNamesCommand.d.ts +1 -1
  43. package/node_modules/@aws-sdk/client-codedeploy/dist-types/commands/ListOnPremisesInstancesCommand.d.ts +3 -3
  44. package/node_modules/@aws-sdk/client-codedeploy/dist-types/commands/ListTagsForResourceCommand.d.ts +1 -1
  45. package/node_modules/@aws-sdk/client-codedeploy/dist-types/commands/PutLifecycleEventHookExecutionStatusCommand.d.ts +1 -1
  46. package/node_modules/@aws-sdk/client-codedeploy/dist-types/commands/RegisterApplicationRevisionCommand.d.ts +6 -6
  47. package/node_modules/@aws-sdk/client-codedeploy/dist-types/commands/RegisterOnPremisesInstanceCommand.d.ts +1 -1
  48. package/node_modules/@aws-sdk/client-codedeploy/dist-types/commands/RemoveTagsFromOnPremisesInstancesCommand.d.ts +4 -4
  49. package/node_modules/@aws-sdk/client-codedeploy/dist-types/commands/SkipWaitTimeForInstanceTerminationCommand.d.ts +1 -1
  50. package/node_modules/@aws-sdk/client-codedeploy/dist-types/commands/StopDeploymentCommand.d.ts +1 -1
  51. package/node_modules/@aws-sdk/client-codedeploy/dist-types/commands/TagResourceCommand.d.ts +3 -3
  52. package/node_modules/@aws-sdk/client-codedeploy/dist-types/commands/UntagResourceCommand.d.ts +2 -2
  53. package/node_modules/@aws-sdk/client-codedeploy/dist-types/commands/UpdateApplicationCommand.d.ts +1 -1
  54. package/node_modules/@aws-sdk/client-codedeploy/dist-types/commands/UpdateDeploymentGroupCommand.d.ts +34 -34
  55. package/node_modules/@aws-sdk/client-codedeploy/package.json +3 -3
  56. package/node_modules/@aws-sdk/client-sso/dist-types/commands/GetRoleCredentialsCommand.d.ts +1 -1
  57. package/node_modules/@aws-sdk/client-sso/dist-types/commands/ListAccountRolesCommand.d.ts +1 -1
  58. package/node_modules/@aws-sdk/client-sso/dist-types/commands/ListAccountsCommand.d.ts +1 -1
  59. package/node_modules/@aws-sdk/client-sso/dist-types/commands/LogoutCommand.d.ts +1 -1
  60. package/node_modules/@aws-sdk/client-sso/package.json +1 -1
  61. package/node_modules/@aws-sdk/client-sso-oidc/dist-types/commands/CreateTokenCommand.d.ts +2 -2
  62. package/node_modules/@aws-sdk/client-sso-oidc/dist-types/commands/RegisterClientCommand.d.ts +2 -2
  63. package/node_modules/@aws-sdk/client-sso-oidc/dist-types/commands/StartDeviceAuthorizationCommand.d.ts +1 -1
  64. package/node_modules/@aws-sdk/client-sso-oidc/package.json +1 -1
  65. package/node_modules/@aws-sdk/client-sts/dist-types/commands/AssumeRoleCommand.d.ts +6 -6
  66. package/node_modules/@aws-sdk/client-sts/dist-types/commands/AssumeRoleWithSAMLCommand.d.ts +3 -3
  67. package/node_modules/@aws-sdk/client-sts/dist-types/commands/AssumeRoleWithWebIdentityCommand.d.ts +3 -3
  68. package/node_modules/@aws-sdk/client-sts/dist-types/commands/DecodeAuthorizationMessageCommand.d.ts +1 -1
  69. package/node_modules/@aws-sdk/client-sts/dist-types/commands/GetAccessKeyInfoCommand.d.ts +1 -1
  70. package/node_modules/@aws-sdk/client-sts/dist-types/commands/GetFederationTokenCommand.d.ts +5 -5
  71. package/node_modules/@aws-sdk/client-sts/dist-types/commands/GetSessionTokenCommand.d.ts +1 -1
  72. package/node_modules/@aws-sdk/client-sts/package.json +2 -2
  73. package/node_modules/@aws-sdk/credential-provider-ini/package.json +2 -2
  74. package/node_modules/@aws-sdk/credential-provider-node/package.json +3 -3
  75. package/node_modules/@aws-sdk/credential-provider-sso/package.json +3 -3
  76. package/node_modules/@aws-sdk/token-providers/package.json +2 -2
  77. package/package.json +5 -5
package/.jsii CHANGED
@@ -8,7 +8,7 @@
8
8
  "url": "https://aws.amazon.com"
9
9
  },
10
10
  "bundled": {
11
- "@aws-sdk/client-codedeploy": "^3.300.0",
11
+ "@aws-sdk/client-codedeploy": "^3.301.0",
12
12
  "jmespath": "^0.16.0"
13
13
  },
14
14
  "dependencies": {
@@ -4097,7 +4097,7 @@
4097
4097
  },
4098
4098
  "locationInModule": {
4099
4099
  "filename": "src/ecs-patterns/application-load-balanced-codedeployed-fargate-service.ts",
4100
- "line": 279
4100
+ "line": 283
4101
4101
  },
4102
4102
  "name": "addServiceAsTarget",
4103
4103
  "overrides": "aws-cdk-lib.aws_ecs_patterns.ApplicationLoadBalancedServiceBase",
@@ -4187,44 +4187,45 @@
4187
4187
  {
4188
4188
  "docs": {
4189
4189
  "stability": "experimental",
4190
- "summary": "Composite alarm for monitoring health of service."
4190
+ "summary": "Test listener to use for CodeDeploy deployments."
4191
4191
  },
4192
4192
  "locationInModule": {
4193
4193
  "filename": "src/ecs-patterns/application-load-balanced-codedeployed-fargate-service.ts",
4194
- "line": 110
4194
+ "line": 120
4195
4195
  },
4196
- "name": "healthAlarm",
4196
+ "name": "testListener",
4197
4197
  "type": {
4198
- "fqn": "aws-cdk-lib.aws_cloudwatch.IAlarm"
4198
+ "fqn": "aws-cdk-lib.aws_elasticloadbalancingv2.ApplicationListener"
4199
4199
  }
4200
4200
  },
4201
4201
  {
4202
4202
  "docs": {
4203
4203
  "stability": "experimental",
4204
- "summary": "Test listener to use for CodeDeploy deployments."
4204
+ "summary": "API Canary for the service."
4205
4205
  },
4206
4206
  "locationInModule": {
4207
4207
  "filename": "src/ecs-patterns/application-load-balanced-codedeployed-fargate-service.ts",
4208
- "line": 120
4208
+ "line": 115
4209
4209
  },
4210
- "name": "testListener",
4210
+ "name": "apiCanary",
4211
+ "optional": true,
4211
4212
  "type": {
4212
- "fqn": "aws-cdk-lib.aws_elasticloadbalancingv2.ApplicationListener"
4213
+ "fqn": "@cdklabs/cdk-ecs-codedeploy.ApiCanary"
4213
4214
  }
4214
4215
  },
4215
4216
  {
4216
4217
  "docs": {
4217
4218
  "stability": "experimental",
4218
- "summary": "API Canary for the service."
4219
+ "summary": "Composite alarm for monitoring health of service."
4219
4220
  },
4220
4221
  "locationInModule": {
4221
4222
  "filename": "src/ecs-patterns/application-load-balanced-codedeployed-fargate-service.ts",
4222
- "line": 115
4223
+ "line": 110
4223
4224
  },
4224
- "name": "apiCanary",
4225
+ "name": "healthAlarm",
4225
4226
  "optional": true,
4226
4227
  "type": {
4227
- "fqn": "@cdklabs/cdk-ecs-codedeploy.ApiCanary"
4228
+ "fqn": "aws-cdk-lib.aws_cloudwatch.IAlarm"
4228
4229
  }
4229
4230
  }
4230
4231
  ],
@@ -4895,6 +4896,6 @@
4895
4896
  "symbolId": "src/ecs-appspec/index:TargetService"
4896
4897
  }
4897
4898
  },
4898
- "version": "0.0.109",
4899
- "fingerprint": "KgpYrLs1EtcATzd4NsRPpWFsbwDOVg2sbaTrFspXeYU="
4899
+ "version": "0.0.111",
4900
+ "fingerprint": "x7aek64sS+We+ZLGb1aBa30fYkjV6lb6XeVXzVuYs9k="
4900
4901
  }
package/API.md CHANGED
@@ -471,9 +471,9 @@ Any object.
471
471
  | <code><a href="#@cdklabs/cdk-ecs-codedeploy.ApplicationLoadBalancedCodeDeployedFargateService.property.deployment">deployment</a></code> | <code><a href="#@cdklabs/cdk-ecs-codedeploy.EcsDeployment">EcsDeployment</a></code> | CodeDeploy deployment for this service. |
472
472
  | <code><a href="#@cdklabs/cdk-ecs-codedeploy.ApplicationLoadBalancedCodeDeployedFargateService.property.deploymentGroup">deploymentGroup</a></code> | <code>aws-cdk-lib.aws_codedeploy.EcsDeploymentGroup</code> | CodeDeploy deployment group for this service. |
473
473
  | <code><a href="#@cdklabs/cdk-ecs-codedeploy.ApplicationLoadBalancedCodeDeployedFargateService.property.greenTargetGroup">greenTargetGroup</a></code> | <code>aws-cdk-lib.aws_elasticloadbalancingv2.ApplicationTargetGroup</code> | Test target group to use for CodeDeploy deployments. |
474
- | <code><a href="#@cdklabs/cdk-ecs-codedeploy.ApplicationLoadBalancedCodeDeployedFargateService.property.healthAlarm">healthAlarm</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarm</code> | Composite alarm for monitoring health of service. |
475
474
  | <code><a href="#@cdklabs/cdk-ecs-codedeploy.ApplicationLoadBalancedCodeDeployedFargateService.property.testListener">testListener</a></code> | <code>aws-cdk-lib.aws_elasticloadbalancingv2.ApplicationListener</code> | Test listener to use for CodeDeploy deployments. |
476
475
  | <code><a href="#@cdklabs/cdk-ecs-codedeploy.ApplicationLoadBalancedCodeDeployedFargateService.property.apiCanary">apiCanary</a></code> | <code><a href="#@cdklabs/cdk-ecs-codedeploy.ApiCanary">ApiCanary</a></code> | API Canary for the service. |
476
+ | <code><a href="#@cdklabs/cdk-ecs-codedeploy.ApplicationLoadBalancedCodeDeployedFargateService.property.healthAlarm">healthAlarm</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarm</code> | Composite alarm for monitoring health of service. |
477
477
 
478
478
  ---
479
479
 
@@ -672,18 +672,6 @@ Test target group to use for CodeDeploy deployments.
672
672
 
673
673
  ---
674
674
 
675
- ##### `healthAlarm`<sup>Required</sup> <a name="healthAlarm" id="@cdklabs/cdk-ecs-codedeploy.ApplicationLoadBalancedCodeDeployedFargateService.property.healthAlarm"></a>
676
-
677
- ```typescript
678
- public readonly healthAlarm: IAlarm;
679
- ```
680
-
681
- - *Type:* aws-cdk-lib.aws_cloudwatch.IAlarm
682
-
683
- Composite alarm for monitoring health of service.
684
-
685
- ---
686
-
687
675
  ##### `testListener`<sup>Required</sup> <a name="testListener" id="@cdklabs/cdk-ecs-codedeploy.ApplicationLoadBalancedCodeDeployedFargateService.property.testListener"></a>
688
676
 
689
677
  ```typescript
@@ -708,6 +696,18 @@ API Canary for the service.
708
696
 
709
697
  ---
710
698
 
699
+ ##### `healthAlarm`<sup>Optional</sup> <a name="healthAlarm" id="@cdklabs/cdk-ecs-codedeploy.ApplicationLoadBalancedCodeDeployedFargateService.property.healthAlarm"></a>
700
+
701
+ ```typescript
702
+ public readonly healthAlarm: IAlarm;
703
+ ```
704
+
705
+ - *Type:* aws-cdk-lib.aws_cloudwatch.IAlarm
706
+
707
+ Composite alarm for monitoring health of service.
708
+
709
+ ---
710
+
711
711
 
712
712
  ### EcsDeployment <a name="EcsDeployment" id="@cdklabs/cdk-ecs-codedeploy.EcsDeployment"></a>
713
713
 
@@ -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.109" };
79
+ ApiCanary[_a] = { fqn: "@cdklabs/cdk-ecs-codedeploy.ApiCanary", version: "0.0.111" };
80
80
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYXBpLWNhbmFyeS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDZCQUE2QjtBQUM3Qix3RUFBK0c7QUFDL0csNkNBQTBEO0FBQzFELCtEQUF1RTtBQUd2RSwrQ0FBaUY7QUFDakYsNkRBQWtEO0FBRWxELG1EQUFvRDtBQTZLcEQ7O0dBRUc7QUFDSCxNQUFhLFNBQVUsU0FBUSw2QkFBTTtJQWdCbkMsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUFxQjtRQUM3RCxNQUFNLE9BQU8sR0FBRyxJQUFJLGlDQUFpQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsWUFBWSxDQUFDLENBQUMsQ0FBQztRQUN0RixNQUFNLFdBQVcsR0FBRyxJQUFJLHFCQUFLLENBQUMsS0FBSyxFQUFFLEdBQUcsRUFBRSxnQkFBZ0IsRUFBRTtZQUMxRCxJQUFJLEVBQUUsT0FBTyxDQUFDLFFBQVE7WUFDdEIsUUFBUSxFQUFFO2dCQUNSLEtBQUssRUFBRSx5QkFBVyxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUM7Z0JBQzFDLEtBQUssRUFBRSxPQUFPO2FBQ2Y7U0FDRixDQUFDLENBQUM7UUFDSCxJQUFJLGVBQWUsR0FBRyxLQUFLLENBQUMsdUJBQXVCLEVBQUUsTUFBTSxDQUFDO1FBQzVELElBQUksQ0FBQyxlQUFlLEVBQUU7WUFDcEIsZUFBZSxHQUFHLElBQUksZUFBTSxDQUFDLEtBQUssRUFBRSxHQUFHLEVBQUUsaUJBQWlCLEVBQUU7Z0JBQzFELFVBQVUsRUFBRSx5QkFBZ0IsQ0FBQyxVQUFVO2dCQUN2QyxpQkFBaUIsRUFBRSwwQkFBaUIsQ0FBQyxTQUFTO2dCQUM5QyxVQUFVLEVBQUUsSUFBSTthQUNqQixDQUFDLENBQUM7U0FDSjtRQUVELEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFO1lBQ2YsR0FBRyxLQUFLO1lBQ1IsSUFBSSxFQUFFLDJCQUFJLENBQUMsTUFBTSxDQUFDO2dCQUNoQixJQUFJLEVBQUUsMkJBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRSxXQUFXLENBQUMsV0FBVyxDQUFDO2dCQUNsRSxPQUFPLEVBQUUsZUFBZTthQUN6QixDQUFDO1lBQ0YsT0FBTyxFQUFFLDhCQUFPLENBQUMsK0JBQStCO1lBQ2hELG9CQUFvQixFQUFFO2dCQUNwQixPQUFPLEVBQUUsS0FBSyxDQUFDLE9BQU87Z0JBQ3RCLFdBQVcsRUFBRSxDQUFDLEtBQUssQ0FBQyxXQUFXLElBQUksRUFBRSxDQUFDLENBQUMsUUFBUSxFQUFFO2dCQUNqRCxTQUFTLEVBQUUsa0JBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQzthQUN2RTtZQUNELHVCQUF1QixFQUFFO2dCQUN2QixNQUFNLEVBQUUsZUFBZTtnQkFDdkIsTUFBTSxFQUFFLEtBQUssQ0FBQyx1QkFBdUIsRUFBRSxNQUFNO2FBQzlDO1NBQ0YsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQztRQUVoQyxNQUFNLE1BQU0sR0FBRyxzQkFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUVuQyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksc0JBQUssQ0FBQyxJQUFJLEVBQUUsY0FBYyxFQUFFO1lBQ2xELE1BQU0sRUFBRSxJQUFJLENBQUMsb0JBQW9CLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQztZQUM3QyxpQkFBaUIsRUFBRSxDQUFDO1lBQ3BCLFNBQVMsRUFBRSxHQUFHO1lBQ2Qsa0JBQWtCLEVBQUUsbUNBQWtCLENBQUMsbUJBQW1CO1NBQzNELENBQUMsQ0FBQztRQUVILElBQUksS0FBSyxDQUFDLHNCQUFzQixFQUFFO1lBQ2hDLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxzQkFBSyxDQUFDLElBQUksRUFBRSxlQUFlLEVBQUU7Z0JBQ3BELE1BQU0sRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUM7Z0JBQ3ZDLGlCQUFpQixFQUFFLENBQUM7Z0JBQ3BCLFNBQVMsRUFBRSxLQUFLLENBQUMsc0JBQXNCLENBQUMsY0FBYyxFQUFFO2dCQUN4RCxrQkFBa0IsRUFBRSxtQ0FBa0IsQ0FBQyxzQkFBc0I7YUFDOUQsQ0FBQyxDQUFDO1NBQ0o7SUFDSCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILFdBQVcsQ0FBQyxJQUFpQjtRQUMzQixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN6QixDQUFDOztBQS9FSCw4QkFnRkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IHsgQ2FuYXJ5LCBBcnRpZmFjdHNCdWNrZXRMb2NhdGlvbiwgU2NoZWR1bGUsIFRlc3QsIENvZGUsIFJ1bnRpbWUgfSBmcm9tICdAYXdzLWNkay9hd3Mtc3ludGhldGljcy1hbHBoYSc7XG5pbXBvcnQgeyBEdXJhdGlvbiwgRG9ja2VySW1hZ2UsIExhenkgfSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgeyBBbGFybSwgQ29tcGFyaXNvbk9wZXJhdG9yIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWNsb3Vkd2F0Y2gnO1xuaW1wb3J0IHsgSVZwYywgU3VibmV0U2VsZWN0aW9uLCBJU2VjdXJpdHlHcm91cCB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1lYzInO1xuaW1wb3J0IHsgSVJvbGUgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtaWFtJztcbmltcG9ydCB7IEJsb2NrUHVibGljQWNjZXNzLCBCdWNrZXQsIEJ1Y2tldEVuY3J5cHRpb24gfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtczMnO1xuaW1wb3J0IHsgQXNzZXQgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtczMtYXNzZXRzJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHsgQ2FuYXJ5Q29kZUJ1bmRsZXIgfSBmcm9tICcuL2NvZGUtYnVuZGxpbmcnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEFwaVRlc3RTdGVwIHtcbiAgLyoqXG4gICAqIE5hbWUgb2YgdGVzdC5cbiAgICovXG4gIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogUGF0aCBvZiBIVFRQIHJlcXVlc3QsIHJlbGF0aXZlIHRvIGJhc2VVcmwuXG4gICAqL1xuICByZWFkb25seSBwYXRoOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsIG1ldGhvZCB0byBmb3IgSFRUUCByZXF1ZXN0LlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIEdFVFxuICAgKi9cbiAgcmVhZG9ubHkgbWV0aG9kPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBPcHRpb25hbCBoZWFkZXJzIHRvIGluY2x1ZGUgaW4gSFRUUCByZXF1ZXN0LlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIGhlYWRlcnMgaW5jbHVkZWQuXG4gICAqL1xuICByZWFkb25seSBoZWFkZXJzPzogeyBbIG5hbWU6IHN0cmluZyBdOiBzdHJpbmcgfTtcblxuICAvKipcbiAgICogT3B0aW9uYWwgYm9keSB0byBpbmNsdWRlIGluIEhUVFAgcmVxdWVzdC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBib2R5IGluY2x1ZGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgYm9keT86IHN0cmluZztcblxuICAvKipcbiAgICogSk1FU1BhdGggdG8gYXBwbHkgYWdhaW5zdCB0aGUgcmVzcG9uc2UgZnJvbSB0aGUgSFRUUCByZXF1ZXN0IGFuZCBjb21wYXJlIGFnYWluc3QgZXhwZWN0ZWQgdmFsdWUuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gSk1FU1BhdGggYXNzZXJ0aW9uIHdpbGwgYmUgcGVyZm9ybWVkLlxuICAgKi9cbiAgcmVhZG9ubHkgam1lc1BhdGg/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEV4cGVjdGVkIHZhbHVlIHRvIGNvbXBhcmUgYWdhaW5zdCB0aGUgam1lc1BhdGguXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gdW5kZWZpbmVkXG4gICAqL1xuICByZWFkb25seSBleHBlY3RlZFZhbHVlPzogYW55O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFwaUNhbmFyeVByb3BzIGV4dGVuZHMgQmFzZUNhbmFyeVByb3BzIHtcbiAgLyoqXG4gICAqIFRoZSBiYXNlIFVSTCB0byB1c2UgZm9yIHRlc3RzLlxuICAgKi9cbiAgcmVhZG9ubHkgYmFzZVVybDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgdGhyZXNob2xkIGZvciB0cmlnZ2VyaW5nIGFuIGFsYXJtIG9uIHRoZSB0ZXN0IGR1cmF0aW9uLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIGFsYXJtIGlzIGNyZWF0ZWQgZm9yIGR1cmF0aW9uXG4gICAqL1xuICByZWFkb25seSBkdXJhdGlvbkFsYXJtVGhyZXNob2xkPzogRHVyYXRpb247XG5cbiAgLyoqXG4gICAqIFRoZSBudW1iZXIgb2YgdGhyZWFkcyB0byBydW4gY29uY3VycmVudGx5IGZvciB0aGUgc3ludGhldGljIHRlc3QuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gMjBcbiAgICovXG4gIHJlYWRvbmx5IHRocmVhZENvdW50PzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBUaGUgc3RlcHMgdG8gcGVyZm9ybSBpbiB0aGUgc3ludGhldGljIHRlc3QuXG4gICAqL1xuICByZWFkb25seSBzdGVwcz86IEFwaVRlc3RTdGVwW107XG59XG5cbmludGVyZmFjZSBCYXNlQ2FuYXJ5UHJvcHMge1xuICAvKipcbiAgICogVGhlIHMzIGxvY2F0aW9uIHRoYXQgc3RvcmVzIHRoZSBkYXRhIG9mIHRoZSBjYW5hcnkgcnVucy5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBBIG5ldyBzMyBidWNrZXQgd2lsbCBiZSBjcmVhdGVkIHdpdGhvdXQgYSBwcmVmaXguXG4gICAqL1xuICByZWFkb25seSBhcnRpZmFjdHNCdWNrZXRMb2NhdGlvbj86IEFydGlmYWN0c0J1Y2tldExvY2F0aW9uO1xuXG4gIC8qKlxuICAgKiBDYW5hcnkgZXhlY3V0aW9uIHJvbGUuXG4gICAqXG4gICAqIFRoaXMgaXMgdGhlIHJvbGUgdGhhdCB3aWxsIGJlIGFzc3VtZWQgYnkgdGhlIGNhbmFyeSB1cG9uIGV4ZWN1dGlvbi5cbiAgICogSXQgY29udHJvbHMgdGhlIHBlcm1pc3Npb25zIHRoYXQgdGhlIGNhbmFyeSB3aWxsIGhhdmUuIFRoZSByb2xlIG11c3RcbiAgICogYmUgYXNzdW1hYmxlIGJ5IHRoZSBBV1MgTGFtYmRhIHNlcnZpY2UgcHJpbmNpcGFsLlxuICAgKlxuICAgKiBJZiBub3Qgc3VwcGxpZWQsIGEgcm9sZSB3aWxsIGJlIGNyZWF0ZWQgd2l0aCBhbGwgdGhlIHJlcXVpcmVkIHBlcm1pc3Npb25zLlxuICAgKiBJZiB5b3UgcHJvdmlkZSBhIFJvbGUsIHlvdSBtdXN0IGFkZCB0aGUgcmVxdWlyZWQgcGVybWlzc2lvbnMuXG4gICAqXG4gICAqIEBzZWUgcmVxdWlyZWQgcGVybWlzc2lvbnM6IGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1yZXNvdXJjZS1zeW50aGV0aWNzLWNhbmFyeS5odG1sI2Nmbi1zeW50aGV0aWNzLWNhbmFyeS1leGVjdXRpb25yb2xlYXJuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gQSB1bmlxdWUgcm9sZSB3aWxsIGJlIGdlbmVyYXRlZCBmb3IgdGhpcyBjYW5hcnkuXG4gICAqIFlvdSBjYW4gYWRkIHBlcm1pc3Npb25zIHRvIHJvbGVzIGJ5IGNhbGxpbmcgJ2FkZFRvUm9sZVBvbGljeScuXG4gICAqL1xuICByZWFkb25seSByb2xlPzogSVJvbGU7XG5cbiAgLyoqXG4gICAqIEhvdyBsb25nIHRoZSBjYW5hcnkgd2lsbCBiZSBpbiBhICdSVU5OSU5HJyBzdGF0ZS4gRm9yIGV4YW1wbGUsIGlmIHlvdSBzZXQgYHRpbWVUb0xpdmVgIHRvIGJlIDEgaG91ciBhbmQgYHNjaGVkdWxlYCB0byBiZSBgcmF0ZSgxMCBtaW51dGVzKWAsXG4gICAqIHlvdXIgY2FuYXJ5IHdpbGwgcnVuIGF0IDEwIG1pbnV0ZSBpbnRlcnZhbHMgZm9yIGFuIGhvdXIsIGZvciBhIHRvdGFsIG9mIDYgdGltZXMuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gbGltaXRcbiAgICovXG4gIHJlYWRvbmx5IHRpbWVUb0xpdmU/OiBEdXJhdGlvbjtcblxuICAvKipcbiAgICogU3BlY2lmeSB0aGUgc2NoZWR1bGUgZm9yIGhvdyBvZnRlbiB0aGUgY2FuYXJ5IHJ1bnMuIEZvciBleGFtcGxlLCBpZiB5b3Ugc2V0IGBzY2hlZHVsZWAgdG8gYHJhdGUoMTAgbWludXRlcylgLCB0aGVuIHRoZSBjYW5hcnkgd2lsbCBydW4gZXZlcnkgMTAgbWludXRlcy5cbiAgICogWW91IGNhbiBzZXQgdGhlIHNjaGVkdWxlIHdpdGggYFNjaGVkdWxlLnJhdGUoRHVyYXRpb24pYCAocmVjb21tZW5kZWQpIG9yIHlvdSBjYW4gc3BlY2lmeSBhbiBleHByZXNzaW9uIHVzaW5nIGBTY2hlZHVsZS5leHByZXNzaW9uKClgLlxuICAgKiBAZGVmYXVsdCAncmF0ZSg1IG1pbnV0ZXMpJ1xuICAgKi9cbiAgcmVhZG9ubHkgc2NoZWR1bGU/OiBTY2hlZHVsZTtcblxuICAvKipcbiAgICogV2hldGhlciBvciBub3QgdGhlIGNhbmFyeSBzaG91bGQgc3RhcnQgYWZ0ZXIgY3JlYXRpb24uXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IHN0YXJ0QWZ0ZXJDcmVhdGlvbj86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEhvdyBtYW55IGRheXMgc2hvdWxkIHN1Y2Nlc3NmdWwgcnVucyBiZSByZXRhaW5lZC5cbiAgICpcbiAgICogQGRlZmF1bHQgRHVyYXRpb24uZGF5cygzMSlcbiAgICovXG4gIHJlYWRvbmx5IHN1Y2Nlc3NSZXRlbnRpb25QZXJpb2Q/OiBEdXJhdGlvbjtcblxuICAvKipcbiAgICogSG93IG1hbnkgZGF5cyBzaG91bGQgZmFpbGVkIHJ1bnMgYmUgcmV0YWluZWQuXG4gICAqXG4gICAqIEBkZWZhdWx0IER1cmF0aW9uLmRheXMoMzEpXG4gICAqL1xuICByZWFkb25seSBmYWlsdXJlUmV0ZW50aW9uUGVyaW9kPzogRHVyYXRpb247XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBjYW5hcnkuIEJlIHN1cmUgdG8gZ2l2ZSBpdCBhIGRlc2NyaXB0aXZlIG5hbWUgdGhhdCBkaXN0aW5ndWlzaGVzIGl0IGZyb21cbiAgICogb3RoZXIgY2FuYXJpZXMgaW4geW91ciBhY2NvdW50LlxuICAgKlxuICAgKiBEbyBub3QgaW5jbHVkZSBzZWNyZXRzIG9yIHByb3ByaWV0YXJ5IGluZm9ybWF0aW9uIGluIHlvdXIgY2FuYXJ5IG5hbWUuIFRoZSBjYW5hcnkgbmFtZVxuICAgKiBtYWtlcyB1cCBwYXJ0IG9mIHRoZSBjYW5hcnkgQVJOLCB3aGljaCBpcyBpbmNsdWRlZCBpbiBvdXRib3VuZCBjYWxscyBvdmVyIHRoZSBpbnRlcm5ldC5cbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uQ2xvdWRXYXRjaC9sYXRlc3QvbW9uaXRvcmluZy9zZXJ2aWNlbGVuc19jYW5hcmllc19zZWN1cml0eS5odG1sXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gQSB1bmlxdWUgbmFtZSB3aWxsIGJlIGdlbmVyYXRlZCBmcm9tIHRoZSBjb25zdHJ1Y3QgSURcbiAgICovXG4gIHJlYWRvbmx5IGNhbmFyeU5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBWUEMgd2hlcmUgdGhpcyBjYW5hcnkgaXMgcnVuLlxuICAgKlxuICAgKiBTcGVjaWZ5IHRoaXMgaWYgdGhlIGNhbmFyeSBuZWVkcyB0byBhY2Nlc3MgcmVzb3VyY2VzIGluIGEgVlBDLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIE5vdCBpbiBWUENcbiAgICovXG4gIHJlYWRvbmx5IHZwYz86IElWcGM7XG5cbiAgLyoqXG4gICAqIFdoZXJlIHRvIHBsYWNlIHRoZSBuZXR3b3JrIGludGVyZmFjZXMgd2l0aGluIHRoZSBWUEMuIFlvdSBtdXN0IHByb3ZpZGUgYHZwY2Agd2hlbiB1c2luZyB0aGlzIHByb3AuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gdGhlIFZwYyBkZWZhdWx0IHN0cmF0ZWd5IGlmIG5vdCBzcGVjaWZpZWRcbiAgICovXG4gIHJlYWRvbmx5IHZwY1N1Ym5ldHM/OiBTdWJuZXRTZWxlY3Rpb247XG5cbiAgLyoqXG4gICAqIFRoZSBsaXN0IG9mIHNlY3VyaXR5IGdyb3VwcyB0byBhc3NvY2lhdGUgd2l0aCB0aGUgY2FuYXJ5J3MgbmV0d29yayBpbnRlcmZhY2VzLiBZb3UgbXVzdCBwcm92aWRlIGB2cGNgIHdoZW4gdXNpbmcgdGhpcyBwcm9wLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIElmIHRoZSBjYW5hcnkgaXMgcGxhY2VkIHdpdGhpbiBhIFZQQyBhbmQgYSBzZWN1cml0eSBncm91cCBpc1xuICAgKiBub3Qgc3BlY2lmaWVkIGEgZGVkaWNhdGVkIHNlY3VyaXR5IGdyb3VwIHdpbGwgYmUgY3JlYXRlZCBmb3IgdGhpcyBjYW5hcnkuXG4gICAqL1xuICByZWFkb25seSBzZWN1cml0eUdyb3Vwcz86IElTZWN1cml0eUdyb3VwW107XG59XG5cbi8qKlxuICogQSBDbG91ZFdhdGNoIFN5bnRoZXRpYyBDYW5hcnkgZm9yIG1vbml0b3JpbmcgQVBJcy5cbiAqL1xuZXhwb3J0IGNsYXNzIEFwaUNhbmFyeSBleHRlbmRzIENhbmFyeSB7XG4gIC8qKlxuICAgKiBBIENsb3VkV2F0Y2ggQWxhcm0gdGhhdCB0cmlnZ2VycyB3aGVuIHRoZSBzdWNjZXNzIHJhdGUgZmFsbHMgYmVsb3cgMTAwJSBvdmVyIHRoZSBwYXN0IDIgcGVyaW9kcy5cbiAgICovXG4gIHN1Y2Nlc3NBbGFybTogQWxhcm07XG5cbiAgLyoqXG4gICAqIEEgQ2xvdWRXYXRjaCBBbGFybSB0aGF0IHRyaWdnZXJzIHdoZW4gdGhlIGR1cmF0aW9uIG9mIHRoZSB0ZXN0cyBleGNlZWRzIHRoZSBnaXZlbiB0aHJlc2hvbGQgb3ZlciB0aGUgcGFzdCAyIHBlcmlvZHMuXG4gICAqL1xuICBkdXJhdGlvbkFsYXJtPzogQWxhcm07XG5cbiAgLyoqXG4gICAqIEBpbnRlcm5hbCBmaWVsZCB0byB0cmFjayBzdGVwcyBmb3IgdGhpcyBjYW5hcnkuXG4gICAqL1xuICBfc3RlcHM6IEFwaVRlc3RTdGVwW107XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IEFwaUNhbmFyeVByb3BzKSB7XG4gICAgY29uc3QgYnVuZGxlciA9IG5ldyBDYW5hcnlDb2RlQnVuZGxlcihwYXRoLmpvaW4oX19kaXJuYW1lLCAnLi4nLCAnLi4nLCAnY2FuYXJ5LXNyYycpKTtcbiAgICBjb25zdCBjYW5hcnlBc3NldCA9IG5ldyBBc3NldChzY29wZSwgYCR7aWR9QXBpQ2FuYXJ5QXNzZXRgLCB7XG4gICAgICBwYXRoOiBidW5kbGVyLmNvZGVQYXRoLFxuICAgICAgYnVuZGxpbmc6IHtcbiAgICAgICAgaW1hZ2U6IERvY2tlckltYWdlLmZyb21SZWdpc3RyeSgnbm9kZToxNCcpLFxuICAgICAgICBsb2NhbDogYnVuZGxlcixcbiAgICAgIH0sXG4gICAgfSk7XG4gICAgbGV0IGFydGlmYWN0c0J1Y2tldCA9IHByb3BzLmFydGlmYWN0c0J1Y2tldExvY2F0aW9uPy5idWNrZXQ7XG4gICAgaWYgKCFhcnRpZmFjdHNCdWNrZXQpIHtcbiAgICAgIGFydGlmYWN0c0J1Y2tldCA9IG5ldyBCdWNrZXQoc2NvcGUsIGAke2lkfUFydGlmYWN0c0J1Y2tldGAsIHtcbiAgICAgICAgZW5jcnlwdGlvbjogQnVja2V0RW5jcnlwdGlvbi5TM19NQU5BR0VELFxuICAgICAgICBibG9ja1B1YmxpY0FjY2VzczogQmxvY2tQdWJsaWNBY2Nlc3MuQkxPQ0tfQUxMLFxuICAgICAgICBlbmZvcmNlU1NMOiB0cnVlLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgc3VwZXIoc2NvcGUsIGlkLCB7XG4gICAgICAuLi5wcm9wcyxcbiAgICAgIHRlc3Q6IFRlc3QuY3VzdG9tKHtcbiAgICAgICAgY29kZTogQ29kZS5mcm9tQnVja2V0KGNhbmFyeUFzc2V0LmJ1Y2tldCwgY2FuYXJ5QXNzZXQuczNPYmplY3RLZXkpLFxuICAgICAgICBoYW5kbGVyOiAnaW5kZXguaGFuZGxlcicsXG4gICAgICB9KSxcbiAgICAgIHJ1bnRpbWU6IFJ1bnRpbWUuU1lOVEhFVElDU19OT0RFSlNfUFVQUEVURUVSXzNfOCxcbiAgICAgIGVudmlyb25tZW50VmFyaWFibGVzOiB7XG4gICAgICAgIGJhc2VVcmw6IHByb3BzLmJhc2VVcmwsXG4gICAgICAgIHRocmVhZENvdW50OiAocHJvcHMudGhyZWFkQ291bnQgPz8gMjApLnRvU3RyaW5nKCksXG4gICAgICAgIHRlc3RTdGVwczogTGF6eS5zdHJpbmcoeyBwcm9kdWNlOiAoKSA9PiBKU09OLnN0cmluZ2lmeSh0aGlzLl9zdGVwcykgfSksXG4gICAgICB9LFxuICAgICAgYXJ0aWZhY3RzQnVja2V0TG9jYXRpb246IHtcbiAgICAgICAgYnVja2V0OiBhcnRpZmFjdHNCdWNrZXQsXG4gICAgICAgIHByZWZpeDogcHJvcHMuYXJ0aWZhY3RzQnVja2V0TG9jYXRpb24/LnByZWZpeCxcbiAgICAgIH0sXG4gICAgfSk7XG4gICAgdGhpcy5fc3RlcHMgPSBwcm9wcy5zdGVwcyA/PyBbXTtcblxuICAgIGNvbnN0IHBlcmlvZCA9IER1cmF0aW9uLm1pbnV0ZXMoNSk7XG5cbiAgICB0aGlzLnN1Y2Nlc3NBbGFybSA9IG5ldyBBbGFybSh0aGlzLCAnU3VjY2Vzc0FsYXJtJywge1xuICAgICAgbWV0cmljOiB0aGlzLm1ldHJpY1N1Y2Nlc3NQZXJjZW50KHsgcGVyaW9kIH0pLFxuICAgICAgZXZhbHVhdGlvblBlcmlvZHM6IDIsXG4gICAgICB0aHJlc2hvbGQ6IDEwMCxcbiAgICAgIGNvbXBhcmlzb25PcGVyYXRvcjogQ29tcGFyaXNvbk9wZXJhdG9yLkxFU1NfVEhBTl9USFJFU0hPTEQsXG4gICAgfSk7XG5cbiAgICBpZiAocHJvcHMuZHVyYXRpb25BbGFybVRocmVzaG9sZCkge1xuICAgICAgdGhpcy5kdXJhdGlvbkFsYXJtID0gbmV3IEFsYXJtKHRoaXMsICdEdXJhdGlvbkFsYXJtJywge1xuICAgICAgICBtZXRyaWM6IHRoaXMubWV0cmljRHVyYXRpb24oeyBwZXJpb2QgfSksXG4gICAgICAgIGV2YWx1YXRpb25QZXJpb2RzOiAyLFxuICAgICAgICB0aHJlc2hvbGQ6IHByb3BzLmR1cmF0aW9uQWxhcm1UaHJlc2hvbGQudG9NaWxsaXNlY29uZHMoKSxcbiAgICAgICAgY29tcGFyaXNvbk9wZXJhdG9yOiBDb21wYXJpc29uT3BlcmF0b3IuR1JFQVRFUl9USEFOX1RIUkVTSE9MRCxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgYSBuZXcgdGVzdCBzdGVwIHRvIHRoaXMgY2FuYXJ5LlxuICAgKlxuICAgKiBAcGFyYW0gc3RlcCAtIEFwaVRlc3RTdGVwIHRvIGFkZC5cbiAgICovXG4gIGFkZFRlc3RTdGVwKHN0ZXA6IEFwaVRlc3RTdGVwKSB7XG4gICAgdGhpcy5fc3RlcHMucHVzaChzdGVwKTtcbiAgfVxufSJdfQ==
@@ -59,5 +59,5 @@ class EcsAppSpec {
59
59
  }
60
60
  exports.EcsAppSpec = EcsAppSpec;
61
61
  _a = JSII_RTTI_SYMBOL_1;
62
- EcsAppSpec[_a] = { fqn: "@cdklabs/cdk-ecs-codedeploy.EcsAppSpec", version: "0.0.109" };
62
+ EcsAppSpec[_a] = { fqn: "@cdklabs/cdk-ecs-codedeploy.EcsAppSpec", version: "0.0.111" };
63
63
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZWNzLWFwcHNwZWMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFHQTs7OztHQUlHO0FBQ0gsTUFBYSxVQUFVO0lBTXJCLFlBQVksYUFBNEI7UUFDdEMsSUFBSSxDQUFDLGFBQWEsR0FBRyxhQUFhLENBQUM7SUFDckMsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxRQUFRO1FBQ04sTUFBTSxPQUFPLEdBQUc7WUFDZCxPQUFPLEVBQUUsS0FBSztZQUNkLFNBQVMsRUFBRSxDQUFDO29CQUNWLGFBQWEsRUFBRTt3QkFDYixJQUFJLEVBQUUsbUJBQW1CO3dCQUN6QixVQUFVLEVBQUU7NEJBQ1YsY0FBYyxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLGlCQUFpQjs0QkFDbkUsZ0JBQWdCLEVBQUU7Z0NBQ2hCLGFBQWEsRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLGFBQWE7Z0NBQy9DLGFBQWEsRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLGFBQWE7NkJBQ2hEOzRCQUNELGVBQWUsRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLGVBQWU7NEJBQ25ELG9CQUFvQixFQUFFLElBQUksQ0FBQywyQ0FBMkMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLG1CQUFtQixDQUFDOzRCQUM5Ryx3QkFBd0IsRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLHdCQUF3QixFQUFFLEdBQUcsQ0FBQyx3QkFBd0IsQ0FBQyxFQUFFO2dDQUNwRyxPQUFPO29DQUNMLElBQUksRUFBRSx3QkFBd0IsQ0FBQyxJQUFJO29DQUNuQyxnQkFBZ0IsRUFBRSx3QkFBd0IsQ0FBQyxnQkFBZ0I7b0NBQzNELE1BQU0sRUFBRSx3QkFBd0IsQ0FBQyxNQUFNO2lDQUN4QyxDQUFDOzRCQUNKLENBQUMsQ0FBQzt5QkFDSDtxQkFDRjtpQkFDRixDQUFDO1NBQ0gsQ0FBQztRQUNGLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRU8sMkNBQTJDLENBQUMsbUJBQXlDO1FBQzNGLElBQUksQ0FBQyxtQkFBbUIsRUFBRTtZQUN4QixPQUFPLFNBQVMsQ0FBQztTQUNsQjtRQUNELE9BQU87WUFDTCxtQkFBbUIsRUFBRTtnQkFDbkIsY0FBYyxFQUFFLG1CQUFtQixDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxVQUFVO2dCQUMzRSxPQUFPLEVBQUUsbUJBQW1CLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxtQkFBbUIsQ0FBQyxVQUFVLENBQUMsQ0FBQyxTQUFTO2dCQUN4RixjQUFjLEVBQUUsbUJBQW1CLENBQUMsY0FBYyxFQUFFLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLGVBQWUsQ0FBQzthQUNwRjtTQUNGLENBQUM7SUFDSixDQUFDOztBQXRESCxnQ0F1REMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBlYzIgZnJvbSAnYXdzLWNkay1saWIvYXdzLWVjMic7XG5pbXBvcnQgKiBhcyBlY3MgZnJvbSAnYXdzLWNkay1saWIvYXdzLWVjcyc7XG5cbi8qKlxuICogUmVwcmVzZW50cyBhbiBBcHBTcGVjIHRvIGJlIHVzZWQgZm9yIEVDUyBzZXJ2aWNlcy5cbiAqXG4gKiBzZWU6IGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9jb2RlZGVwbG95L2xhdGVzdC91c2VyZ3VpZGUvcmVmZXJlbmNlLWFwcHNwZWMtZmlsZS1zdHJ1Y3R1cmUtcmVzb3VyY2VzLmh0bWwjcmVmZXJlbmNlLWFwcHNwZWMtZmlsZS1zdHJ1Y3R1cmUtcmVzb3VyY2VzLWVjc1xuICovXG5leHBvcnQgY2xhc3MgRWNzQXBwU3BlYyB7XG4gIC8qKlxuICAgKiBTZXJ2aWNlIHRvIHRhcmdldCBmb3IgdGhlIGRlcGxveW1lbnRcbiAgICovXG4gIHByaXZhdGUgcmVhZG9ubHkgdGFyZ2V0U2VydmljZTogVGFyZ2V0U2VydmljZTtcblxuICBjb25zdHJ1Y3Rvcih0YXJnZXRTZXJ2aWNlOiBUYXJnZXRTZXJ2aWNlKSB7XG4gICAgdGhpcy50YXJnZXRTZXJ2aWNlID0gdGFyZ2V0U2VydmljZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZW5kZXIgSlNPTiBzdHJpbmcgZm9yIHRoaXMgQXBwU3BlYyB0byBiZSB1c2VkXG4gICAqXG4gICAqIEByZXR1cm5zIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGlzIEFwcFNwZWNcbiAgICovXG4gIHRvU3RyaW5nKCk6IHN0cmluZyB7XG4gICAgY29uc3QgYXBwU3BlYyA9IHtcbiAgICAgIHZlcnNpb246ICcwLjAnLFxuICAgICAgUmVzb3VyY2VzOiBbe1xuICAgICAgICBUYXJnZXRTZXJ2aWNlOiB7XG4gICAgICAgICAgVHlwZTogJ0FXUzo6RUNTOjpTZXJ2aWNlJyxcbiAgICAgICAgICBQcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgICBUYXNrRGVmaW5pdGlvbjogdGhpcy50YXJnZXRTZXJ2aWNlLnRhc2tEZWZpbml0aW9uLnRhc2tEZWZpbml0aW9uQXJuLFxuICAgICAgICAgICAgTG9hZEJhbGFuY2VySW5mbzoge1xuICAgICAgICAgICAgICBDb250YWluZXJOYW1lOiB0aGlzLnRhcmdldFNlcnZpY2UuY29udGFpbmVyTmFtZSxcbiAgICAgICAgICAgICAgQ29udGFpbmVyUG9ydDogdGhpcy50YXJnZXRTZXJ2aWNlLmNvbnRhaW5lclBvcnQsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgUGxhdGZvcm1WZXJzaW9uOiB0aGlzLnRhcmdldFNlcnZpY2UucGxhdGZvcm1WZXJzaW9uLFxuICAgICAgICAgICAgTmV0d29ya0NvbmZpZ3VyYXRpb246IHRoaXMuY29uZmlndXJlQXdzVnBjTmV0d29ya2luZ1dpdGhTZWN1cml0eUdyb3Vwcyh0aGlzLnRhcmdldFNlcnZpY2UuYXdzdnBjQ29uZmlndXJhdGlvbiksXG4gICAgICAgICAgICBDYXBhY2l0eVByb3ZpZGVyU3RyYXRlZ3k6IHRoaXMudGFyZ2V0U2VydmljZS5jYXBhY2l0eVByb3ZpZGVyU3RyYXRlZ3k/Lm1hcChjYXBhY2l0eVByb3ZpZGVyU3RyYXRlZ3kgPT4ge1xuICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIEJhc2U6IGNhcGFjaXR5UHJvdmlkZXJTdHJhdGVneS5iYXNlLFxuICAgICAgICAgICAgICAgIENhcGFjaXR5UHJvdmlkZXI6IGNhcGFjaXR5UHJvdmlkZXJTdHJhdGVneS5jYXBhY2l0eVByb3ZpZGVyLFxuICAgICAgICAgICAgICAgIFdlaWdodDogY2FwYWNpdHlQcm92aWRlclN0cmF0ZWd5LndlaWdodCxcbiAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9XSxcbiAgICB9O1xuICAgIHJldHVybiBKU09OLnN0cmluZ2lmeShhcHBTcGVjKTtcbiAgfVxuXG4gIHByaXZhdGUgY29uZmlndXJlQXdzVnBjTmV0d29ya2luZ1dpdGhTZWN1cml0eUdyb3Vwcyhhd3N2cGNDb25maWd1cmF0aW9uPzogQXdzdnBjQ29uZmlndXJhdGlvbikge1xuICAgIGlmICghYXdzdnBjQ29uZmlndXJhdGlvbikge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgIGF3c3ZwY0NvbmZpZ3VyYXRpb246IHtcbiAgICAgICAgYXNzaWduUHVibGljSXA6IGF3c3ZwY0NvbmZpZ3VyYXRpb24uYXNzaWduUHVibGljSXAgPyAnRU5BQkxFRCcgOiAnRElTQUJMRUQnLFxuICAgICAgICBzdWJuZXRzOiBhd3N2cGNDb25maWd1cmF0aW9uLnZwYy5zZWxlY3RTdWJuZXRzKGF3c3ZwY0NvbmZpZ3VyYXRpb24udnBjU3VibmV0cykuc3VibmV0SWRzLFxuICAgICAgICBzZWN1cml0eUdyb3VwczogYXdzdnBjQ29uZmlndXJhdGlvbi5zZWN1cml0eUdyb3Vwcz8ubWFwKChzZykgPT4gc2cuc2VjdXJpdHlHcm91cElkKSxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxufVxuXG4vKipcbiAqIERlc2NyaWJlIHRoZSB0YXJnZXQgZm9yIENvZGVEZXBsb3kgdG8gdXNlIHdoZW4gY3JlYXRpbmcgYSBkZXBsb3ltZW50IGZvciBhbiBlY3MuRWNzRGVwbG95bWVudEdyb3VwLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRhcmdldFNlcnZpY2Uge1xuICAvKipcbiAgICogVGhlIFRhc2tEZWZpbnRpb24gdG8gZGVwbG95IHRvIHRoZSB0YXJnZXQgc2VydmljZXMuXG4gICAqL1xuICByZWFkb25seSB0YXNrRGVmaW5pdGlvbjogZWNzLklUYXNrRGVmaW5pdGlvbjtcblxuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIEFtYXpvbiBFQ1MgY29udGFpbmVyIHRoYXQgY29udGFpbnMgeW91ciBBbWF6b24gRUNTIGFwcGxpY2F0aW9uLiBJdCBtdXN0IGJlIGEgY29udGFpbmVyIHNwZWNpZmllZCBpbiB5b3VyIEFtYXpvbiBFQ1MgdGFzayBkZWZpbml0aW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgY29udGFpbmVyTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgcG9ydCBvbiB0aGUgY29udGFpbmVyIHdoZXJlIHRyYWZmaWMgd2lsbCBiZSByb3V0ZWQgdG8uXG4gICAqL1xuICByZWFkb25seSBjb250YWluZXJQb3J0OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFRoZSBwbGF0Zm9ybSB2ZXJzaW9uIG9mIHRoZSBGYXJnYXRlIHRhc2tzIGluIHRoZSBkZXBsb3llZCBBbWF6b24gRUNTIHNlcnZpY2UuXG4gICAqIHNlZTogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvbkVDUy9sYXRlc3QvZGV2ZWxvcGVyZ3VpZGUvcGxhdGZvcm1fdmVyc2lvbnMuaHRtbFxuICAgKlxuICAgKiBAZGVmYXVsdCBMQVRFU1RcbiAgICovXG4gIHJlYWRvbmx5IHBsYXRmb3JtVmVyc2lvbj86IGVjcy5GYXJnYXRlUGxhdGZvcm1WZXJzaW9uO1xuXG4gIC8qKlxuICAgKiBOZXR3b3JrIGNvbmZpZ3VyYXRpb24gZm9yIEVDUyBzZXJ2aWNlcyB0aGF0IGhhdmUgYSBuZXR3b3JrIHR5cGUgb2YgYGF3c3ZwY2AuXG4gICAqXG4gICAqIEBkZWZhdWx0IHJldXNlIGN1cnJlbnQgbmV0d29yayBzZXR0aW5ncyBmb3IgRUNTIHNlcnZpY2UuXG4gICAqL1xuICByZWFkb25seSBhd3N2cGNDb25maWd1cmF0aW9uPzogQXdzdnBjQ29uZmlndXJhdGlvbjtcblxuICAvKipcbiAgICogQSBsaXN0IG9mIEFtYXpvbiBFQ1MgY2FwYWNpdHkgcHJvdmlkZXJzIHRvIHVzZSBmb3IgdGhlIGRlcGxveW1lbnQuXG4gICAqXG4gICAqIEBkZWZhdWx0IHJldXNlIGN1cnJlbnQgY2FwY2l0eSBwcm92aWRlciBzdHJhdGVneSBmb3IgRUNTIHNlcnZpY2UuXG4gICAqL1xuICByZWFkb25seSBjYXBhY2l0eVByb3ZpZGVyU3RyYXRlZ3k/OiBlY3MuQ2FwYWNpdHlQcm92aWRlclN0cmF0ZWd5W107XG5cbn1cblxuLyoqXG4gKiBOZXR3b3JrIGNvbmZpZ3VyYXRpb24gZm9yIEVDUyBzZXJ2aWNlcyB0aGF0IGhhdmUgYSBuZXR3b3JrIHR5cGUgb2YgYGF3c3ZwY2AuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQXdzdnBjQ29uZmlndXJhdGlvbiB7XG4gIC8qKlxuICAgKiBUaGUgVlBDIHRvIHVzZSBmb3IgdGhlIHRhc2suXG4gICAqL1xuICByZWFkb25seSB2cGM6IGVjMi5JVnBjO1xuXG4gIC8qKlxuICAgKiBUaGUgU3VibmV0cyB0byB1c2UgZm9yIHRoZSB0YXNrLlxuICAgKi9cbiAgcmVhZG9ubHkgdnBjU3VibmV0czogZWMyLlN1Ym5ldFNlbGVjdGlvbjtcblxuICAvKipcbiAgICogVGhlIFNlY3VyaXR5IEdyb3VwcyB0byB1c2UgZm9yIHRoZSB0YXNrLlxuICAgKi9cbiAgcmVhZG9ubHkgc2VjdXJpdHlHcm91cHM6IGVjMi5JU2VjdXJpdHlHcm91cFtdO1xuXG4gIC8qKlxuICAgKiBBc3NpZ24gYSBwdWJsaWMgSVAgYWRkcmVzcyB0byB0aGUgdGFzay5cbiAgICovXG4gIHJlYWRvbmx5IGFzc2lnblB1YmxpY0lwOiBib29sZWFuO1xufSJdfQ==
@@ -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.109" };
64
+ EcsDeployment[_a] = { fqn: "@cdklabs/cdk-ecs-codedeploy.EcsDeployment", version: "0.0.111" };
65
65
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZWNzLWRlcGxveW1lbnQvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxtQ0FBbUM7QUFFbkMsMkNBQXVDO0FBQ3ZDLGdEQUEyRDtBQUMzRCx3RUFBbUU7QUF5Q25FOzs7Ozs7R0FNRztBQUNILE1BQWEsYUFBYyxTQUFRLHNCQUFTO0lBTTFDLFlBQW1CLEtBQXlCO1FBQzFDLEtBQUssQ0FBQyxLQUFLLENBQUMsZUFBZSxFQUFFLFlBQVksQ0FBQyxDQUFDO1FBRTNDLE1BQU0scUJBQXFCLEdBQUcsSUFBSSwrQ0FBcUIsQ0FBQyxJQUFJLEVBQUUsb0JBQW9CLEVBQUU7WUFDbEYsZUFBZSxFQUFFLEtBQUssQ0FBQyxlQUFlO1lBQ3RDLE9BQU8sRUFBRSxLQUFLLENBQUMsT0FBTyxJQUFJLEdBQUcsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztTQUNuRCxDQUFDLENBQUM7UUFFSCxJQUFJLCtCQUErQixHQUF3QixTQUFTLENBQUM7UUFDckUsSUFBSSxnQ0FBZ0MsR0FBd0IsU0FBUyxDQUFDO1FBQ3RFLElBQUksS0FBSyxDQUFDLFlBQVksRUFBRTtZQUN0QixJQUFJLE1BQU0sR0FBYyxFQUFFLENBQUM7WUFDM0IsSUFBSSxLQUFLLENBQUMsWUFBWSxDQUFDLGlCQUFpQixFQUFFO2dCQUN4QyxNQUFNLENBQUMsSUFBSSxDQUFDLDBCQUEwQixDQUFDLENBQUM7YUFDekM7WUFDRCxJQUFJLEtBQUssQ0FBQyxZQUFZLENBQUMsZ0JBQWdCLEVBQUU7Z0JBQ3ZDLE1BQU0sQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsQ0FBQzthQUNuQztZQUNELElBQUksS0FBSyxDQUFDLFlBQVksQ0FBQyxpQkFBaUIsRUFBRTtnQkFDeEMsTUFBTSxDQUFDLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDO2FBQzNDO1lBQ0QsSUFBSSxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtnQkFDckIsZ0NBQWdDLEdBQUcsTUFBTSxDQUFDO2dCQUMxQywrQkFBK0IsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2FBQ3BEO2lCQUFNO2dCQUNMLGdDQUFnQyxHQUFHLE9BQU8sQ0FBQzthQUM1QztTQUNGO1FBRUQsTUFBTSxPQUFPLEdBQUcsSUFBSSx3QkFBVSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUNwRCxNQUFNLFVBQVUsR0FBRyxJQUFJLEdBQUcsQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRTtZQUMxRCxZQUFZLEVBQUUscUJBQXFCLENBQUMsWUFBWTtZQUNoRCxZQUFZLEVBQUUsdUJBQXVCO1lBQ3JDLFVBQVUsRUFBRTtnQkFDVixlQUFlLEVBQUUsS0FBSyxDQUFDLGVBQWUsQ0FBQyxXQUFXLENBQUMsZUFBZTtnQkFDbEUsb0JBQW9CLEVBQUUsS0FBSyxDQUFDLGVBQWUsQ0FBQyxnQkFBZ0IsQ0FBQyxvQkFBb0I7Z0JBQ2pGLG1CQUFtQixFQUFFLEtBQUssQ0FBQyxlQUFlLENBQUMsbUJBQW1CO2dCQUM5RCxnQ0FBZ0M7Z0JBQ2hDLCtCQUErQjtnQkFDL0IsV0FBVyxFQUFFLEtBQUssQ0FBQyxXQUFXO2dCQUM5QixzQkFBc0IsRUFBRSxPQUFPLENBQUMsUUFBUSxFQUFFO2FBQzNDO1NBQ0YsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLFlBQVksR0FBRyxVQUFVLENBQUMsWUFBWSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQzlELENBQUM7O0FBbERILHNDQW9EQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGNkayBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgKiBhcyBjb2RlZGVwbG95IGZyb20gJ2F3cy1jZGstbGliL2F3cy1jb2RlZGVwbG95JztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHsgRWNzQXBwU3BlYywgVGFyZ2V0U2VydmljZSB9IGZyb20gJy4uL2Vjcy1hcHBzcGVjJztcbmltcG9ydCB7IEVjc0RlcGxveW1lbnRQcm92aWRlciB9IGZyb20gJy4uL2Vjcy1kZXBsb3ltZW50LXByb3ZpZGVyJztcblxuLyoqXG4gKiBDb25zdHJ1Y3Rpb24gcHJvcGVydGllcyBvZiBFY3NEZXBsb3ltZW50LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEVjc0RlcGxveW1lbnRQcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgZGVwbG95bWVudCBncm91cCB0byB0YXJnZXQgZm9yIHRoaXMgZGVwbG95bWVudC5cbiAgICovXG4gIHJlYWRvbmx5IGRlcGxveW1lbnRHcm91cDogY29kZWRlcGxveS5JRWNzRGVwbG95bWVudEdyb3VwO1xuXG4gIC8qKlxuICAgKiBUaGUgRUNTIHNlcnZpY2UgdG8gdGFyZ2V0IGZvciB0aGUgZGVwbG95bWVudC5cbiAgICpcbiAgICogc2VlOiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vY29kZWRlcGxveS9sYXRlc3QvdXNlcmd1aWRlL3JlZmVyZW5jZS1hcHBzcGVjLWZpbGUtc3RydWN0dXJlLXJlc291cmNlcy5odG1sI3JlZmVyZW5jZS1hcHBzcGVjLWZpbGUtc3RydWN0dXJlLXJlc291cmNlcy1lY3NcbiAgICovXG4gIHJlYWRvbmx5IHRhcmdldFNlcnZpY2U6IFRhcmdldFNlcnZpY2U7XG5cbiAgLyoqXG4gICAqIFRoZSBjb25maWd1cmF0aW9uIGZvciByb2xsYmFjayBpbiB0aGUgZXZlbnQgdGhhdCBhIGRlcGxveW1lbnQgZmFpbHMuXG4gICAqXG4gICAqIEBkZWZhdWx0OiBubyBhdXRvbWF0aWMgcm9sbGJhY2sgdHJpZ2dlcmVkXG4gICAqL1xuICByZWFkb25seSBhdXRvUm9sbGJhY2s/OiBjb2RlZGVwbG95LkF1dG9Sb2xsYmFja0NvbmZpZztcblxuICAvKipcbiAgICogVGhlIGRlc2NyaXB0aW9uIGZvciB0aGUgZGVwbG95bWVudC5cbiAgICpcbiAgICogQGRlZmF1bHQgbm8gZGVzY3JpcHRpb25cbiAgICovXG4gIHJlYWRvbmx5IGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgdGltZW91dCBmb3IgdGhlIGRlcGxveW1lbnQuIElmIHRoZSB0aW1lb3V0IGlzIHJlYWNoZWQsIGl0IHdpbGwgdHJpZ2dlciBhIHJvbGxiYWNrIG9mIHRoZSBzdGFjay5cbiAgICpcbiAgICogQGRlZmF1bHQgMzAgbWludXRlc1xuICAgKi9cbiAgcmVhZG9ubHkgdGltZW91dD86IGNkay5EdXJhdGlvbjtcblxufVxuXG4vKipcbiAqIEEgQ29kZURlcGxveSBEZXBsb3ltZW50IGZvciBhIEFtYXpvbiBFQ1Mgc2VydmljZSBEZXBsb3ltZW50R3JvdXAuIEFuIEVjc0RlcGxveW1lbnRHcm91cFxuICogbXVzdCBvbmx5IGhhdmUgMSBFY3NEZXBsb3ltZW50LiBUaGlzIGxpbWl0IGlzIGVuZm9yY2VkIGJ5IHJlbW92aW5nIHRoZSBzY29wZSBhbmQgaWRcbiAqIGZyb20gdGhlIGNvbnN0cnVjdG9yLiBUaGUgc2NvcGUgd2lsbCBhbHdheXMgYmUgc2V0IHRvIHRoZSBFY3NEZXBsb3ltZW50R3JvdXBcbiAqIGFuZCB0aGUgaWQgd2lsbCBhbHdheXMgYmUgc2V0IHRvIHRoZSBzdHJpbmcgJ0RlcGxveW1lbnQnIHRvIGZvcmNlIGFuIGVycm9yIGlmIG11bGl0aXBsZVxuICogRWNzRGVwbG95bWVudCBjb25zdHJ1Y3RzIGFyZSBjcmVhdGVkIGZvciBhIHNpbmdsZSBFY3NEZXBsb3ltZW50R3JvdXAuXG4gKi9cbmV4cG9ydCBjbGFzcyBFY3NEZXBsb3ltZW50IGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgLyoqXG4gICAqIFRoZSBpZCBvZiB0aGUgZGVwbG95bWVudCB0aGF0IHdhcyBjcmVhdGVkLlxuICAgKi9cbiAgZGVwbG95bWVudElkOiBzdHJpbmc7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKHByb3BzOiBFY3NEZXBsb3ltZW50UHJvcHMpIHtcbiAgICBzdXBlcihwcm9wcy5kZXBsb3ltZW50R3JvdXAsICdEZXBsb3ltZW50Jyk7XG5cbiAgICBjb25zdCBlY3NEZXBsb3ltZW50UHJvdmlkZXIgPSBuZXcgRWNzRGVwbG95bWVudFByb3ZpZGVyKHRoaXMsICdEZXBsb3ltZW50UHJvdmlkZXInLCB7XG4gICAgICBkZXBsb3ltZW50R3JvdXA6IHByb3BzLmRlcGxveW1lbnRHcm91cCxcbiAgICAgIHRpbWVvdXQ6IHByb3BzLnRpbWVvdXQgfHwgY2RrLkR1cmF0aW9uLm1pbnV0ZXMoMzApLFxuICAgIH0pO1xuXG4gICAgbGV0IGF1dG9Sb2xsYmFja0NvbmZpZ3VyYXRpb25FdmVudHMgOiBzdHJpbmcgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG4gICAgbGV0IGF1dG9Sb2xsYmFja0NvbmZpZ3VyYXRpb25FbmFibGVkIDogc3RyaW5nIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuICAgIGlmIChwcm9wcy5hdXRvUm9sbGJhY2spIHtcbiAgICAgIGxldCBldmVudHMgOiBzdHJpbmdbXSA9IFtdO1xuICAgICAgaWYgKHByb3BzLmF1dG9Sb2xsYmFjay5kZXBsb3ltZW50SW5BbGFybSkge1xuICAgICAgICBldmVudHMucHVzaCgnREVQTE9ZTUVOVF9TVE9QX09OX0FMQVJNJyk7XG4gICAgICB9XG4gICAgICBpZiAocHJvcHMuYXV0b1JvbGxiYWNrLmZhaWxlZERlcGxveW1lbnQpIHtcbiAgICAgICAgZXZlbnRzLnB1c2goJ0RFUExPWU1FTlRfRkFJTFVSRScpO1xuICAgICAgfVxuICAgICAgaWYgKHByb3BzLmF1dG9Sb2xsYmFjay5zdG9wcGVkRGVwbG95bWVudCkge1xuICAgICAgICBldmVudHMucHVzaCgnREVQTE9ZTUVOVF9TVE9QX09OX1JFUVVFU1QnKTtcbiAgICAgIH1cbiAgICAgIGlmIChldmVudHMubGVuZ3RoID4gMCkge1xuICAgICAgICBhdXRvUm9sbGJhY2tDb25maWd1cmF0aW9uRW5hYmxlZCA9ICd0cnVlJztcbiAgICAgICAgYXV0b1JvbGxiYWNrQ29uZmlndXJhdGlvbkV2ZW50cyA9IGV2ZW50cy5qb2luKCcsJyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBhdXRvUm9sbGJhY2tDb25maWd1cmF0aW9uRW5hYmxlZCA9ICdmYWxzZSc7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgYXBwc3BlYyA9IG5ldyBFY3NBcHBTcGVjKHByb3BzLnRhcmdldFNlcnZpY2UpO1xuICAgIGNvbnN0IGRlcGxveW1lbnQgPSBuZXcgY2RrLkN1c3RvbVJlc291cmNlKHRoaXMsICdSZXNvdXJjZScsIHtcbiAgICAgIHNlcnZpY2VUb2tlbjogZWNzRGVwbG95bWVudFByb3ZpZGVyLnNlcnZpY2VUb2tlbixcbiAgICAgIHJlc291cmNlVHlwZTogJ0N1c3RvbTo6RWNzRGVwbG95bWVudCcsXG4gICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgIGFwcGxpY2F0aW9uTmFtZTogcHJvcHMuZGVwbG95bWVudEdyb3VwLmFwcGxpY2F0aW9uLmFwcGxpY2F0aW9uTmFtZSxcbiAgICAgICAgZGVwbG95bWVudENvbmZpZ05hbWU6IHByb3BzLmRlcGxveW1lbnRHcm91cC5kZXBsb3ltZW50Q29uZmlnLmRlcGxveW1lbnRDb25maWdOYW1lLFxuICAgICAgICBkZXBsb3ltZW50R3JvdXBOYW1lOiBwcm9wcy5kZXBsb3ltZW50R3JvdXAuZGVwbG95bWVudEdyb3VwTmFtZSxcbiAgICAgICAgYXV0b1JvbGxiYWNrQ29uZmlndXJhdGlvbkVuYWJsZWQsXG4gICAgICAgIGF1dG9Sb2xsYmFja0NvbmZpZ3VyYXRpb25FdmVudHMsXG4gICAgICAgIGRlc2NyaXB0aW9uOiBwcm9wcy5kZXNjcmlwdGlvbixcbiAgICAgICAgcmV2aXNpb25BcHBTcGVjQ29udGVudDogYXBwc3BlYy50b1N0cmluZygpLFxuICAgICAgfSxcbiAgICB9KTtcbiAgICB0aGlzLmRlcGxveW1lbnRJZCA9IGRlcGxveW1lbnQuZ2V0QXR0U3RyaW5nKCdkZXBsb3ltZW50SWQnKTtcbiAgfVxuXG59XG4iXX0=
@@ -93,7 +93,7 @@ export declare class ApplicationLoadBalancedCodeDeployedFargateService extends A
93
93
  /**
94
94
  * Composite alarm for monitoring health of service.
95
95
  */
96
- healthAlarm: IAlarm;
96
+ healthAlarm?: IAlarm;
97
97
  /**
98
98
  * API Canary for the service.
99
99
  */
@@ -69,9 +69,14 @@ class ApplicationLoadBalancedCodeDeployedFargateService extends aws_ecs_patterns
69
69
  alarms.push(this.apiCanary.durationAlarm);
70
70
  }
71
71
  }
72
- this.healthAlarm = new aws_cloudwatch_1.CompositeAlarm(this, 'HealthAlarm', {
73
- alarmRule: aws_cloudwatch_1.AlarmRule.anyOf(...alarms),
74
- });
72
+ if (alarms.length > 0) {
73
+ this.healthAlarm = new aws_cloudwatch_1.CompositeAlarm(this, 'HealthAlarm', {
74
+ alarmRule: aws_cloudwatch_1.AlarmRule.anyOf(...alarms),
75
+ });
76
+ }
77
+ else {
78
+ this.healthAlarm = undefined;
79
+ }
75
80
  let testPort;
76
81
  if (props.listenerPort) {
77
82
  testPort = props.listenerPort + 1;
@@ -112,7 +117,7 @@ class ApplicationLoadBalancedCodeDeployedFargateService extends aws_ecs_patterns
112
117
  this.application = new aws_codedeploy_1.EcsApplication(this, 'Application');
113
118
  this.deploymentGroup = new aws_codedeploy_1.EcsDeploymentGroup(this, 'DeploymentGroup', {
114
119
  application: this.application,
115
- alarms: [this.healthAlarm],
120
+ alarms: this.healthAlarm ? [this.healthAlarm] : undefined,
116
121
  service: this.service,
117
122
  blueGreenDeploymentConfig: {
118
123
  blueTargetGroup: this.targetGroup,
@@ -142,5 +147,5 @@ class ApplicationLoadBalancedCodeDeployedFargateService extends aws_ecs_patterns
142
147
  }
143
148
  exports.ApplicationLoadBalancedCodeDeployedFargateService = ApplicationLoadBalancedCodeDeployedFargateService;
144
149
  _a = JSII_RTTI_SYMBOL_1;
145
- ApplicationLoadBalancedCodeDeployedFargateService[_a] = { fqn: "@cdklabs/cdk-ecs-codedeploy.ApplicationLoadBalancedCodeDeployedFargateService", version: "0.0.109" };
146
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbGljYXRpb24tbG9hZC1iYWxhbmNlZC1jb2RlZGVwbG95ZWQtZmFyZ2F0ZS1zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2Vjcy1wYXR0ZXJucy9hcHBsaWNhdGlvbi1sb2FkLWJhbGFuY2VkLWNvZGVkZXBsb3llZC1mYXJnYXRlLXNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSx3RUFBeUQ7QUFDekQsNkNBQXVDO0FBQ3ZDLCtEQUEwRztBQUMxRywrREFBMkg7QUFDM0gsaURBQTRFO0FBQzVFLG1FQUFpSTtBQUNqSSx1RkFBbUo7QUFDbkosK0NBQTBGO0FBRTFGLDhDQUF1RDtBQUN2RCxzREFBa0Q7QUE0RmxEOztHQUVHO0FBQ0gsTUFBYSxpREFBa0QsU0FBUSx3REFBcUM7SUF5QzFHOztPQUVHO0lBQ0gsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUE2RDtRQUNyRyxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRTtZQUNmLEdBQUcsS0FBSztZQUNSLG9CQUFvQixFQUFFO2dCQUNwQixJQUFJLEVBQUUsa0NBQXdCLENBQUMsV0FBVzthQUMzQztTQUNGLENBQUMsQ0FBQztRQUVILElBQUksS0FBSyxDQUFDLG1CQUFtQixFQUFFO1lBQzdCLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLHNDQUFzQyxFQUFFLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1NBQ3pIO1FBQ0QsSUFBSSxLQUFLLENBQUMsV0FBVyxFQUFFO1lBQ3JCLElBQUksQ0FBQyxXQUFXLENBQUMsb0JBQW9CLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1NBQzFEO1FBQ0QsSUFBSSxDQUFDLGVBQWUsR0FBRyxLQUFLLENBQUMsZUFBZTtZQUMxQyxJQUFJLGVBQU0sQ0FBQyxJQUFJLEVBQUUsaUJBQWlCLEVBQUU7Z0JBQ2xDLFVBQVUs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QUNuRTtTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFUyxrQkFBa0IsQ0FBQyxPQUFvQjtRQUMvQyxLQUFLLENBQUMsa0JBQWtCLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDcEMsQ0FBQzs7QUEvS0gsOEdBZ0xDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2NoZWR1bGUgfSBmcm9tICdAYXdzLWNkay9hd3Mtc3ludGhldGljcy1hbHBoYSc7XG5pbXBvcnQgeyBEdXJhdGlvbiB9IGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB7IEFsYXJtLCBBbGFybVJ1bGUsIENvbXBhcmlzb25PcGVyYXRvciwgQ29tcG9zaXRlQWxhcm0sIElBbGFybSB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1jbG91ZHdhdGNoJztcbmltcG9ydCB7IEVjc0FwcGxpY2F0aW9uLCBFY3NEZXBsb3ltZW50Q29uZmlnLCBFY3NEZXBsb3ltZW50R3JvdXAsIElFY3NEZXBsb3ltZW50Q29uZmlnIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWNvZGVkZXBsb3knO1xuaW1wb3J0IHsgQmFzZVNlcnZpY2UsIERlcGxveW1lbnRDb250cm9sbGVyVHlwZSB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1lY3MnO1xuaW1wb3J0IHsgQXBwbGljYXRpb25Mb2FkQmFsYW5jZWRGYXJnYXRlU2VydmljZSwgQXBwbGljYXRpb25Mb2FkQmFsYW5jZWRGYXJnYXRlU2VydmljZVByb3BzIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWVjcy1wYXR0ZXJucyc7XG5pbXBvcnQgeyBBcHBsaWNhdGlvbkxpc3RlbmVyLCBBcHBsaWNhdGlvblByb3RvY29sLCBBcHBsaWNhdGlvblRhcmdldEdyb3VwLCBIZWFsdGhDaGVjaywgVGFyZ2V0VHlwZSB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1lbGFzdGljbG9hZGJhbGFuY2luZ3YyJztcbmltcG9ydCB7IEJsb2NrUHVibGljQWNjZXNzLCBCdWNrZXQsIEJ1Y2tldEVuY3J5cHRpb24sIElCdWNrZXQgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtczMnO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgeyBBcGlUZXN0U3RlcCwgQXBpQ2FuYXJ5IH0gZnJvbSAnLi4vYXBpLWNhbmFyeSc7XG5pbXBvcnQgeyBFY3NEZXBsb3ltZW50IH0gZnJvbSAnLi4vZWNzLWRlcGxveW1lbnQnO1xuXG4vKipcbiAqIFRoZSBwcm9wZXJ0aWVzIGZvciB0aGUgQXBwbGljYXRpb25Mb2FkQmFsYW5jZWRDb2RlRGVwbG95ZWRGYXJnYXRlU2VydmljZSBzZXJ2aWNlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFwcGxpY2F0aW9uTG9hZEJhbGFuY2VkQ29kZURlcGxveWVkRmFyZ2F0ZVNlcnZpY2VQcm9wcyBleHRlbmRzIEFwcGxpY2F0aW9uTG9hZEJhbGFuY2VkRmFyZ2F0ZVNlcnZpY2VQcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgdGltZW91dCBmb3IgYSBDb2RlRGVwbG95IGRlcGxveW1lbnQuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gNjAgbWludXRlc1xuICAgKi9cbiAgcmVhZG9ubHkgZGVwbG95bWVudFRpbWVvdXQ/OiBEdXJhdGlvbjtcblxuICAvKipcbiAgICogVGhlIHRpbWUgdG8gd2FpdCBiZWZvcmUgdGVybWluYXRpbmcgdGhlIG9yaWdpbmFsIChibHVlKSB0YXNrIHNldC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSAxMCBtaW51dGVzXG4gICAqL1xuICByZWFkb25seSB0ZXJtaW5hdGlvbldhaXRUaW1lPzogRHVyYXRpb247XG5cbiAgLyoqXG4gICAqIFRoZSBkZXBsb3ltZW50IGNvbmZpZ3VyYXRpb24gdG8gdXNlIGZvciB0aGUgZGVwbG95bWVudCBncm91cC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBFY3NEZXBsb3ltZW50Q29uZmlnLkFMTF9BVF9PTkNFXG4gICAqL1xuICByZWFkb25seSBkZXBsb3ltZW50Q29uZmlnPzogSUVjc0RlcGxveW1lbnRDb25maWc7XG5cbiAgLyoqXG4gICAqIFRoZSBhbW91bnQgb2YgdGltZSBmb3IgRUxCIHRvIHdhaXQgYmVmb3JlIGNoYW5naW5nIHRoZSBzdGF0ZSBvZiBhIGRlcmVnaXN0ZXJpbmcgdGFyZ2V0XG4gICAqIGZyb20gJ2RyYWluaW5nJyB0byAndW51c2VkJy5cbiAgICpcbiAgICogQGRlZmF1bHQgLSAzMDAgc2Vjb25kc1xuICAgKi9cbiAgcmVhZG9ubHkgZGVyZWdpc3RyYXRpb25EZWxheT86IER1cmF0aW9uO1xuXG4gIC8qKlxuICAgKiBUaGUgaGVhbHRoY2hlY2sgdG8gY29uZmlndXJlIG9uIHRoZSBBcHBsaWNhdGlvbiBMb2FkIEJhbGFuY2VyIHRhcmdldCBncm91cHMuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gaGVhbHRoIGNoZWNrIGlzIGNvbmZpZ3VyZWRcbiAgICovXG4gIHJlYWRvbmx5IGhlYWx0aENoZWNrPzogSGVhbHRoQ2hlY2s7XG5cbiAgLyoqXG4gICAqIFRoZSBidWNrZXQgdG8gdXNlIGZvciBhY2Nlc3MgbG9ncyBmcm9tIHRoZSBBcHBsaWNhdGlvbiBMb2FkIEJhbGFuY2VyLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGEgbmV3IFMzIGJ1Y2tldCB3aWxsIGJlIGNyZWF0ZWRcbiAgICovXG4gIHJlYWRvbmx5IGFjY2Vzc0xvZ0J1Y2tldD86IElCdWNrZXQ7XG5cbiAgLyoqXG4gICAqIFRoZSBwcmVmaXggdG8gdXNlIGZvciBhY2Nlc3MgbG9ncyBmcm9tIHRoZSBBcHBsaWNhdGlvbiBMb2FkIEJhbGFuY2VyLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vbmVcbiAgICovXG4gIHJlYWRvbmx5IGFjY2Vzc0xvZ1ByZWZpeD86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHRocmVzaG9sZCBmb3IgcmVzcG9uc2UgdGltZSBhbGFybS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBhbGFybSB3aWxsIGJlIGNyZWF0ZWRcbiAgICovXG4gIHJlYWRvbmx5IHJlc3BvbnNlVGltZUFsYXJtVGhyZXNob2xkPzogRHVyYXRpb247XG5cbiAgLyoqXG4gICAqIFRoZSBudW1iZXIgb2YgdGhyZWFkcyB0byBydW4gY29uY3VycmVudGx5IGZvciB0aGUgc3ludGhldGljIHRlc3QuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gMjBcbiAgICovXG4gIHJlYWRvbmx5IGFwaUNhbmFyeVRocmVhZENvdW50PzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBUaGUgZnJlcXVlbmN5IGZvciBydW5uaW5nIHRoZSBhcGkgY2FuYXJpZXMuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gNSBtaW51dGVzXG4gICAqL1xuICByZWFkb25seSBhcGlDYW5hcnlTY2hlZHVsZT86IER1cmF0aW9uO1xuXG4gIC8qKlxuICAgKiBUaGUgdGhyZXNob2xkIGZvciBob3cgbG9uZyBhIGFwaSBjYW5hcnkgY2FuIHRha2UgdG8gcnVuLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIGFsYXJtIGlzIGNyZWF0ZWQgZm9yIHRlc3QgZHVyYXRpb25cbiAgICovXG4gIHJlYWRvbmx5IGFwaUNhbmFyeVRpbWVvdXQ/OiBEdXJhdGlvbjtcblxuICAvKipcbiAgICogVGhlIHN0ZXBzIHRvIHJ1biBpbiB0aGUgY2FuYXJ5LlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIHN5bnRoZXRpYyB0ZXN0IHdpbGwgYmUgY3JlYXRlZFxuICAgKi9cbiAgcmVhZG9ubHkgYXBpVGVzdFN0ZXBzPzogQXBpVGVzdFN0ZXBbXTtcbn1cblxuLyoqXG4gKiBBIEZhcmdhdGUgc2VydmljZSBydW5uaW5nIG9uIGFuIEVDUyBjbHVzdGVyIGZyb250ZWQgYnkgYW4gYXBwbGljYXRpb24gbG9hZCBiYWxhbmNlciBhbmQgZGVwbG95ZWQgYnkgQ29kZURlcGxveS5cbiAqL1xuZXhwb3J0IGNsYXNzIEFwcGxpY2F0aW9uTG9hZEJhbGFuY2VkQ29kZURlcGxveWVkRmFyZ2F0ZVNlcnZpY2UgZXh0ZW5kcyBBcHBsaWNhdGlvbkxvYWRCYWxhbmNlZEZhcmdhdGVTZXJ2aWNlIHtcbiAgLyoqXG4gICAqIENvbXBvc2l0ZSBhbGFybSBmb3IgbW9uaXRvcmluZyBoZWFsdGggb2Ygc2VydmljZS5cbiAgICovXG4gIGhlYWx0aEFsYXJtOiBJQWxhcm07XG5cbiAgLyoqXG4gICAqIEFQSSBDYW5hcnkgZm9yIHRoZSBzZXJ2aWNlLlxuICAgKi9cbiAgYXBpQ2FuYXJ5PzogQXBpQ2FuYXJ5O1xuXG4gIC8qKlxuICAgKiBUZXN0IGxpc3RlbmVyIHRvIHVzZSBmb3IgQ29kZURlcGxveSBkZXBsb3ltZW50cy5cbiAgICovXG4gIHRlc3RMaXN0ZW5lcjogQXBwbGljYXRpb25MaXN0ZW5lcjtcblxuICAvKipcbiAgICogVGVzdCB0YXJnZXQgZ3JvdXAgdG8gdXNlIGZvciBDb2RlRGVwbG95IGRlcGxveW1lbnRzLlxuICAgKi9cbiAgZ3JlZW5UYXJnZXRHcm91cDogQXBwbGljYXRpb25UYXJnZXRHcm91cDtcblxuICAvKipcbiAgICogUzMgQnVja2V0IHVzZWQgZm9yIGFjY2VzcyBsb2dzLlxuICAgKi9cbiAgYWNjZXNzTG9nQnVja2V0OiBJQnVja2V0O1xuXG4gIC8qKlxuICAgKiBDb2RlRGVwbG95IGFwcGxpY2F0aW9uIGZvciB0aGlzIHNlcnZpY2UuXG4gICAqL1xuICBhcHBsaWNhdGlvbjogRWNzQXBwbGljYXRpb247XG5cbiAgLyoqXG4gICAqIENvZGVEZXBsb3kgZGVwbG95bWVudCBncm91cCBmb3IgdGhpcyBzZXJ2aWNlLlxuICAgKi9cbiAgZGVwbG95bWVudEdyb3VwOiBFY3NEZXBsb3ltZW50R3JvdXA7XG5cbiAgLyoqXG4gICAqIENvZGVEZXBsb3kgZGVwbG95bWVudCBmb3IgdGhpcyBzZXJ2aWNlLlxuICAgKi9cbiAgZGVwbG95bWVudDogRWNzRGVwbG95bWVudDtcblxuICAvKipcbiAgICogQ29uc3RydWN0cyBhIG5ldyBpbnN0YW5jZSBvZiB0aGUgQXBwbGljYXRpb25Mb2FkQmFsYW5jZWRDb2RlRGVwbG95ZWRGYXJnYXRlU2VydmljZSBjbGFzcy5cbiAgICovXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBBcHBsaWNhdGlvbkxvYWRCYWxhbmNlZENvZGVEZXBsb3llZEZhcmdhdGVTZXJ2aWNlUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHtcbiAgICAgIC4uLnByb3BzLFxuICAgICAgZGVwbG95bWVudENvbnRyb2xsZXI6IHtcbiAgICAgICAgdHlwZTogRGVwbG95bWVudENvbnRyb2xsZXJUeXBlLkNPREVfREVQTE9ZLFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIGlmIChwcm9wcy5kZXJlZ2lzdHJhdGlvbkRlbGF5KSB7XG4gICAgICB0aGlzLnRhcmdldEdyb3VwLnNldEF0dHJpYnV0ZSgnZGVyZWdpc3RyYXRpb25fZGVsYXkudGltZW91dF9zZWNvbmRzJywgcHJvcHMuZGVyZWdpc3RyYXRpb25EZWxheS50b1NlY29uZHMoKS50b1N0cmluZygpKTtcbiAgICB9XG4gICAgaWYgKHByb3BzLmhlYWx0aENoZWNrKSB7XG4gICAgICB0aGlzLnRhcmdldEdyb3VwLmNvbmZpZ3VyZUhlYWx0aENoZWNrKHByb3BzLmhlYWx0aENoZWNrKTtcbiAgICB9XG4gICAgdGhpcy5hY2Nlc3NMb2dCdWNrZXQgPSBwcm9wcy5hY2Nlc3NMb2dCdWNrZXQgPz9cbiAgICAgIG5ldyBCdWNrZXQodGhpcywgJ0FjY2Vzc0xvZ0J1Y2tldCcsIHtcbiAgICAgICAgZW5jcnlwdGlvbjogQnVja2V0RW5jcnlwdGlvbi5TM19NQU5BR0VELFxuICAgICAgICBibG9ja1B1YmxpY0FjY2VzczogQmxvY2tQdWJsaWNBY2Nlc3MuQkxPQ0tfQUxMLFxuICAgICAgICBlbmZvcmNlU1NMOiB0cnVlLFxuICAgICAgfSk7XG5cbiAgICB0aGlzLmxvYWRCYWxhbmNlci5sb2dBY2Nlc3NMb2dzKHRoaXMuYWNjZXNzTG9nQnVja2V0LCBwcm9wcy5hY2Nlc3NMb2dQcmVmaXgpO1xuXG4gICAgY29uc3QgYWxhcm1zOiBJQWxhcm1bXSA9IFtdO1xuICAgIGlmIChwcm9wcy5yZXNwb25zZVRpbWVBbGFybVRocmVzaG9sZCkge1xuICAgICAgY29uc3QgcmVzcG9uc2VUaW1lQWxhcm0gPSBuZXcgQWxhcm0odGhpcywgJ1Jlc3BvbnNlVGltZUFsYXJtJywge1xuICAgICAgICBtZXRyaWM6IHRoaXMubG9hZEJhbGFuY2VyLm1ldHJpY3MudGFyZ2V0UmVzcG9uc2VUaW1lKHtcbiAgICAgICAgICBwZXJpb2Q6IER1cmF0aW9uLm1pbnV0ZXMoMSksXG4gICAgICAgICAgc3RhdGlzdGljOiAncDk1JyxcbiAgICAgICAgfSksXG4gICAgICAgIGV2YWx1YXRpb25QZXJpb2RzOiAyLFxuICAgICAgICB0aHJlc2hvbGQ6IHByb3BzLnJlc3BvbnNlVGltZUFsYXJtVGhyZXNob2xkLnRvU2Vjb25kcygpLFxuICAgICAgICBjb21wYXJpc29uT3BlcmF0b3I6IENvbXBhcmlzb25PcGVyYXRvci5HUkVBVEVSX1RIQU5fVEhSRVNIT0xELFxuICAgICAgfSk7XG4gICAgICBhbGFybXMucHVzaChyZXNwb25zZVRpbWVBbGFybSk7XG4gICAgfVxuXG4gICAgY29uc3QgcHJvdG9jb2wgPSBwcm9wcy5wcm90b2NvbCA/PyAocHJvcHMuY2VydGlmaWNhdGUgPyBBcHBsaWNhdGlvblByb3RvY29sLkhUVFBTIDogQXBwbGljYXRpb25Qcm90b2NvbC5IVFRQKTtcblxuICAgIGNvbnN0IHRlc3RIb3N0TmFtZSA9IHByb3BzLmRvbWFpbk5hbWUgPyBwcm9wcy5kb21haW5OYW1lIDogdGhpcy5sb2FkQmFsYW5jZXIubG9hZEJhbGFuY2VyRG5zTmFtZTtcblxuICAgIGlmIChwcm9wcy5hcGlUZXN0U3RlcHM/Lmxlbmd0aCkge1xuICAgICAgdGhpcy5hcGlDYW5hcnkgPSBuZXcgQXBpQ2FuYXJ5KHRoaXMsICdDYW5hcnknLCB7XG4gICAgICAgIGJhc2VVcmw6IGAke3Byb3RvY29sLnRvTG93ZXJDYXNlKCl9Oi8vJHt0ZXN0SG9zdE5hbWV9YCxcbiAgICAgICAgZHVyYXRpb25BbGFybVRocmVzaG9sZDogcHJvcHMuYXBpQ2FuYXJ5VGltZW91dCxcbiAgICAgICAgc2NoZWR1bGU6IFNjaGVkdWxlLnJhdGUocHJvcHMuYXBpQ2FuYXJ5U2NoZWR1bGUgPz8gRHVyYXRpb24ubWludXRlcyg1KSksXG4gICAgICAgIHRocmVhZENvdW50OiBwcm9wcy5hcGlDYW5hcnlUaHJlYWRDb3VudCxcbiAgICAgICAgc3RlcHM6IHByb3BzLmFwaVRlc3RTdGVwcyxcbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLmFwaUNhbmFyeS5ub2RlLmFkZERlcGVuZGVuY3kodGhpcy5zZXJ2aWNlKTtcblxuICAgICAgYWxhcm1zLnB1c2godGhpcy5hcGlDYW5hcnkuc3VjY2Vzc0FsYXJtKTtcbiAgICAgIGlmICh0aGlzLmFwaUNhbmFyeS5kdXJhdGlvbkFsYXJtKSB7XG4gICAgICAgIGFsYXJtcy5wdXNoKHRoaXMuYXBpQ2FuYXJ5LmR1cmF0aW9uQWxhcm0pO1xuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLmhlYWx0aEFsYXJtID0gbmV3IENvbXBvc2l0ZUFsYXJtKHRoaXMsICdIZWFsdGhBbGFybScsIHtcbiAgICAgIGFsYXJtUnVsZTogQWxhcm1SdWxlLmFueU9mKC4uLmFsYXJtcyksXG4gICAgfSk7XG5cbiAgICBsZXQgdGVzdFBvcnQ6IG51bWJlcjtcbiAgICBpZiAocHJvcHMubGlzdGVuZXJQb3J0KSB7XG4gICAgICB0ZXN0UG9ydCA9IHByb3BzLmxpc3RlbmVyUG9ydCArIDE7XG4gICAgfSBlbHNlIGlmIChwcm90b2NvbCA9PT0gQXBwbGljYXRpb25Qcm90b2NvbC5IVFRQKSB7XG4gICAgICB0ZXN0UG9ydCA9IDgwODA7XG4gICAgfSBlbHNlIGlmIChwcm90b2NvbCA9PT0gQXBwbGljYXRpb25Qcm90b2NvbC5IVFRQUykge1xuICAgICAgdGVzdFBvcnQgPSA4NDQzO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1VuYWJsZSB0byBkZXRlcm1pbmUgcG9ydCBmb3IgdGVzdCBsaXN0ZW5lcicpO1xuICAgIH1cblxuICAgIGxldCBjZXJ0aWZpY2F0ZXM7XG4gICAgaWYgKHByb3BzLmNlcnRpZmljYXRlKSB7XG4gICAgICBjZXJ0aWZpY2F0ZXMgPSBbcHJvcHMuY2VydGlmaWNhdGVdO1xuICAgIH1cblxuICAgIHRoaXMudGVzdExpc3RlbmVyID0gdGhpcy5sb2FkQmFsYW5jZXIuYWRkTGlzdGVuZXIoJ1Rlc3RMaXN0ZW5lcicsIHtcbiAgICAgIHByb3RvY29sLFxuICAgICAgcG9ydDogdGVzdFBvcnQsXG4gICAgICBvcGVuOiBwcm9wcy5vcGVuTGlzdGVuZXIgPz8gdHJ1ZSxcbiAgICAgIHNzbFBvbGljeTogcHJvcHMuc3NsUG9saWN5LFxuICAgICAgY2VydGlmaWNhdGVzOiBjZXJ0aWZpY2F0ZXMsXG4gICAgfSk7XG5cbiAgICB0aGlzLmdyZWVuVGFyZ2V0R3JvdXAgPSBuZXcgQXBwbGljYXRpb25UYXJnZXRHcm91cCh0aGlzLCAnR3JlZW5UYXJnZXRHcm91cCcsIHtcbiAgICAgIHZwYzogdGhpcy5jbHVzdGVyLnZwYyxcbiAgICAgIHBvcnQ6IHRlc3RQb3J0LFxuICAgICAgcHJvdG9jb2w6IHByb3BzLnRhcmdldFByb3RvY29sID8/IEFwcGxpY2F0aW9uUHJvdG9jb2wuSFRUUCxcbiAgICAgIHByb3RvY29sVmVyc2lvbjogcHJvcHMucHJvdG9jb2xWZXJzaW9uLFxuICAgICAgZGVyZWdpc3RyYXRpb25EZWxheTogcHJvcHMuZGVyZWdpc3RyYXRpb25EZWxheSxcbiAgICAgIGhlYWx0aENoZWNrOiBwcm9wcy5oZWFsdGhDaGVjayxcbiAgICAgIHRhcmdldFR5cGU6IFRhcmdldFR5cGUuSVAsXG4gICAgfSk7XG5cbiAgICB0aGlzLmxpc3RlbmVyLm5vZGUuYWRkRGVwZW5kZW5jeSh0aGlzLmdyZWVuVGFyZ2V0R3JvdXApO1xuXG4gICAgdGhpcy50ZXN0TGlzdGVuZXIuYWRkVGFyZ2V0R3JvdXBzKCdFQ1MnLCB7XG4gICAgICB0YXJnZXRHcm91cHM6IFt0aGlzLmdyZWVuVGFyZ2V0R3JvdXBdLFxuICAgIH0pO1xuXG4gICAgdGhpcy5hcHBsaWNhdGlvbiA9IG5ldyBFY3NBcHBsaWNhdGlvbih0aGlzLCAnQXBwbGljYXRpb24nKTtcbiAgICB0aGlzLmRlcGxveW1lbnRHcm91cCA9IG5ldyBFY3NEZXBsb3ltZW50R3JvdXAodGhpcywgJ0RlcGxveW1lbnRHcm91cCcsIHtcbiAgICAgIGFwcGxpY2F0aW9uOiB0aGlzLmFwcGxpY2F0aW9uLFxuICAgICAgYWxhcm1zOiBbdGhpcy5oZWFsdGhBbGFybV0sXG4gICAgICBzZXJ2aWNlOiB0aGlzLnNlcnZpY2UsXG4gICAgICBibHVlR3JlZW5EZXBsb3ltZW50Q29uZmlnOiB7XG4gICAgICAgIGJsdWVUYXJnZXRHcm91cDogdGhpcy50YXJnZXRHcm91cCxcbiAgICAgICAgZ3JlZW5UYXJnZXRHcm91cDogdGhpcy5ncmVlblRhcmdldEdyb3VwLFxuICAgICAgICBsaXN0ZW5lcjogdGhpcy5saXN0ZW5lcixcbiAgICAgICAgdGVzdExpc3RlbmVyOiB0aGlzLnRlc3RMaXN0ZW5lcixcbiAgICAgICAgdGVybWluYXRpb25XYWl0VGltZTogcHJvcHMudGVybWluYXRpb25XYWl0VGltZSA/PyBEdXJhdGlvbi5taW51dGVzKDEwKSxcbiAgICAgIH0sXG4gICAgICBkZXBsb3ltZW50Q29uZmlnOiBwcm9wcy5kZXBsb3ltZW50Q29uZmlnID8/IEVjc0RlcGxveW1lbnRDb25maWcuQUxMX0FUX09OQ0UsXG4gICAgICBhdXRvUm9sbGJhY2s6IHtcbiAgICAgICAgc3RvcHBlZERlcGxveW1lbnQ6IHRydWUsXG4gICAgICB9LFxuICAgIH0pO1xuICAgIHRoaXMuZGVwbG95bWVudCA9IG5ldyBFY3NEZXBsb3ltZW50KHtcbiAgICAgIGRlcGxveW1lbnRHcm91cDogdGhpcy5kZXBsb3ltZW50R3JvdXAsXG4gICAgICB0aW1lb3V0OiBwcm9wcy5kZXBsb3ltZW50VGltZW91dCA/PyBEdXJhdGlvbi5taW51dGVzKDYwKSxcbiAgICAgIHRhcmdldFNlcnZpY2U6IHtcbiAgICAgICAgdGFza0RlZmluaXRpb246IHRoaXMudGFza0RlZmluaXRpb24sXG4gICAgICAgIGNvbnRhaW5lck5hbWU6IHRoaXMudGFza0RlZmluaXRpb24uZGVmYXVsdENvbnRhaW5lciEuY29udGFpbmVyTmFtZSxcbiAgICAgICAgY29udGFpbmVyUG9ydDogdGhpcy50YXNrRGVmaW5pdGlvbi5kZWZhdWx0Q29udGFpbmVyIS5jb250YWluZXJQb3J0LFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBhZGRTZXJ2aWNlQXNUYXJnZXQoc2VydmljZTogQmFzZVNlcnZpY2UpIHtcbiAgICBzdXBlci5hZGRTZXJ2aWNlQXNUYXJnZXQoc2VydmljZSk7XG4gIH1cbn1cbiJdfQ==
150
+ ApplicationLoadBalancedCodeDeployedFargateService[_a] = { fqn: "@cdklabs/cdk-ecs-codedeploy.ApplicationLoadBalancedCodeDeployedFargateService", version: "0.0.111" };
151
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbGljYXRpb24tbG9hZC1iYWxhbmNlZC1jb2RlZGVwbG95ZWQtZmFyZ2F0ZS1zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2Vjcy1wYXR0ZXJucy9hcHBsaWNhdGlvbi1sb2FkLWJhbGFuY2VkLWNvZGVkZXBsb3llZC1mYXJnYXRlLXNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSx3RUFBeUQ7QUFDekQsNkNBQXVDO0FBQ3ZDLCtEQUEwRztBQUMxRywrREFBMkg7QUFDM0gsaURBQTRFO0FBQzVFLG1FQUFpSTtBQUNqSSx1RkFBbUo7QUFDbkosK0NBQTBGO0FBRTFGLDhDQUF1RDtBQUN2RCxzREFBa0Q7QUE0RmxEOztHQUVHO0FBQ0gsTUFBYSxpREFBa0QsU0FBUSx3REFBcUM7SUF5QzFHOztPQUVHO0lBQ0gsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUE2RDtRQUNyRyxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRTtZQUNmLEdBQUcsS0FBSztZQUNSLG9CQUFvQixFQUFFO2dCQUNwQixJQUFJLEVBQUUsa0NBQXdCLENBQUMsV0FBVzthQUMzQztTQUNGLENBQUMsQ0FBQztRQUVILElBQUksS0FBSyxDQUFDLG1CQUFtQixFQUFFO1lBQzdCLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLHNDQUFzQyxFQUFFLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1NBQ3pIO1FBQ0QsSUFBSSxLQUFLLENBQUMsV0FBVyxFQUFFO1lBQ3JCLElBQUksQ0FBQyxXQUFXLENBQUMsb0JBQW9CLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1NBQzFEO1FBQ0QsSUFBSSxDQUFDLGVBQWUsR0FBRyxLQUFLLENBQUMsZUFBZTtZQUMxQyxJQUFJLGVBQU0sQ0FBQyxJQUFJLEVBQUUsaUJBQWlCLEVBQUU7Z0JBQ2xDLFVBQVUs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QUU7Z0JBQ2IsY0FBYyxFQUFFLElBQUksQ0FBQyxjQUFjO2dCQUNuQyxhQUFhLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxnQkFBaUIsQ0FBQyxhQUFhO2dCQUNsRSxhQUFhLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxnQkFBaUIsQ0FBQyxhQUFhO2FBQ25FO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVTLGtCQUFrQixDQUFDLE9BQW9CO1FBQy9DLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNwQyxDQUFDOztBQW5MSCw4R0FvTEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTY2hlZHVsZSB9IGZyb20gJ0Bhd3MtY2RrL2F3cy1zeW50aGV0aWNzLWFscGhhJztcbmltcG9ydCB7IER1cmF0aW9uIH0gZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0IHsgQWxhcm0sIEFsYXJtUnVsZSwgQ29tcGFyaXNvbk9wZXJhdG9yLCBDb21wb3NpdGVBbGFybSwgSUFsYXJtIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWNsb3Vkd2F0Y2gnO1xuaW1wb3J0IHsgRWNzQXBwbGljYXRpb24sIEVjc0RlcGxveW1lbnRDb25maWcsIEVjc0RlcGxveW1lbnRHcm91cCwgSUVjc0RlcGxveW1lbnRDb25maWcgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtY29kZWRlcGxveSc7XG5pbXBvcnQgeyBCYXNlU2VydmljZSwgRGVwbG95bWVudENvbnRyb2xsZXJUeXBlIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWVjcyc7XG5pbXBvcnQgeyBBcHBsaWNhdGlvbkxvYWRCYWxhbmNlZEZhcmdhdGVTZXJ2aWNlLCBBcHBsaWNhdGlvbkxvYWRCYWxhbmNlZEZhcmdhdGVTZXJ2aWNlUHJvcHMgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtZWNzLXBhdHRlcm5zJztcbmltcG9ydCB7IEFwcGxpY2F0aW9uTGlzdGVuZXIsIEFwcGxpY2F0aW9uUHJvdG9jb2wsIEFwcGxpY2F0aW9uVGFyZ2V0R3JvdXAsIEhlYWx0aENoZWNrLCBUYXJnZXRUeXBlIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWVsYXN0aWNsb2FkYmFsYW5jaW5ndjInO1xuaW1wb3J0IHsgQmxvY2tQdWJsaWNBY2Nlc3MsIEJ1Y2tldCwgQnVja2V0RW5jcnlwdGlvbiwgSUJ1Y2tldCB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1zMyc7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB7IEFwaVRlc3RTdGVwLCBBcGlDYW5hcnkgfSBmcm9tICcuLi9hcGktY2FuYXJ5JztcbmltcG9ydCB7IEVjc0RlcGxveW1lbnQgfSBmcm9tICcuLi9lY3MtZGVwbG95bWVudCc7XG5cbi8qKlxuICogVGhlIHByb3BlcnRpZXMgZm9yIHRoZSBBcHBsaWNhdGlvbkxvYWRCYWxhbmNlZENvZGVEZXBsb3llZEZhcmdhdGVTZXJ2aWNlIHNlcnZpY2UuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQXBwbGljYXRpb25Mb2FkQmFsYW5jZWRDb2RlRGVwbG95ZWRGYXJnYXRlU2VydmljZVByb3BzIGV4dGVuZHMgQXBwbGljYXRpb25Mb2FkQmFsYW5jZWRGYXJnYXRlU2VydmljZVByb3BzIHtcbiAgLyoqXG4gICAqIFRoZSB0aW1lb3V0IGZvciBhIENvZGVEZXBsb3kgZGVwbG95bWVudC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSA2MCBtaW51dGVzXG4gICAqL1xuICByZWFkb25seSBkZXBsb3ltZW50VGltZW91dD86IER1cmF0aW9uO1xuXG4gIC8qKlxuICAgKiBUaGUgdGltZSB0byB3YWl0IGJlZm9yZSB0ZXJtaW5hdGluZyB0aGUgb3JpZ2luYWwgKGJsdWUpIHRhc2sgc2V0LlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIDEwIG1pbnV0ZXNcbiAgICovXG4gIHJlYWRvbmx5IHRlcm1pbmF0aW9uV2FpdFRpbWU/OiBEdXJhdGlvbjtcblxuICAvKipcbiAgICogVGhlIGRlcGxveW1lbnQgY29uZmlndXJhdGlvbiB0byB1c2UgZm9yIHRoZSBkZXBsb3ltZW50IGdyb3VwLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIEVjc0RlcGxveW1lbnRDb25maWcuQUxMX0FUX09OQ0VcbiAgICovXG4gIHJlYWRvbmx5IGRlcGxveW1lbnRDb25maWc/OiBJRWNzRGVwbG95bWVudENvbmZpZztcblxuICAvKipcbiAgICogVGhlIGFtb3VudCBvZiB0aW1lIGZvciBFTEIgdG8gd2FpdCBiZWZvcmUgY2hhbmdpbmcgdGhlIHN0YXRlIG9mIGEgZGVyZWdpc3RlcmluZyB0YXJnZXRcbiAgICogZnJvbSAnZHJhaW5pbmcnIHRvICd1bnVzZWQnLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIDMwMCBzZWNvbmRzXG4gICAqL1xuICByZWFkb25seSBkZXJlZ2lzdHJhdGlvbkRlbGF5PzogRHVyYXRpb247XG5cbiAgLyoqXG4gICAqIFRoZSBoZWFsdGhjaGVjayB0byBjb25maWd1cmUgb24gdGhlIEFwcGxpY2F0aW9uIExvYWQgQmFsYW5jZXIgdGFyZ2V0IGdyb3Vwcy5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBoZWFsdGggY2hlY2sgaXMgY29uZmlndXJlZFxuICAgKi9cbiAgcmVhZG9ubHkgaGVhbHRoQ2hlY2s/OiBIZWFsdGhDaGVjaztcblxuICAvKipcbiAgICogVGhlIGJ1Y2tldCB0byB1c2UgZm9yIGFjY2VzcyBsb2dzIGZyb20gdGhlIEFwcGxpY2F0aW9uIExvYWQgQmFsYW5jZXIuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gYSBuZXcgUzMgYnVja2V0IHdpbGwgYmUgY3JlYXRlZFxuICAgKi9cbiAgcmVhZG9ubHkgYWNjZXNzTG9nQnVja2V0PzogSUJ1Y2tldDtcblxuICAvKipcbiAgICogVGhlIHByZWZpeCB0byB1c2UgZm9yIGFjY2VzcyBsb2dzIGZyb20gdGhlIEFwcGxpY2F0aW9uIExvYWQgQmFsYW5jZXIuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm9uZVxuICAgKi9cbiAgcmVhZG9ubHkgYWNjZXNzTG9nUHJlZml4Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgdGhyZXNob2xkIGZvciByZXNwb25zZSB0aW1lIGFsYXJtLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIGFsYXJtIHdpbGwgYmUgY3JlYXRlZFxuICAgKi9cbiAgcmVhZG9ubHkgcmVzcG9uc2VUaW1lQWxhcm1UaHJlc2hvbGQ/OiBEdXJhdGlvbjtcblxuICAvKipcbiAgICogVGhlIG51bWJlciBvZiB0aHJlYWRzIHRvIHJ1biBjb25jdXJyZW50bHkgZm9yIHRoZSBzeW50aGV0aWMgdGVzdC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSAyMFxuICAgKi9cbiAgcmVhZG9ubHkgYXBpQ2FuYXJ5VGhyZWFkQ291bnQ/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFRoZSBmcmVxdWVuY3kgZm9yIHJ1bm5pbmcgdGhlIGFwaSBjYW5hcmllcy5cbiAgICpcbiAgICogQGRlZmF1bHQgLSA1IG1pbnV0ZXNcbiAgICovXG4gIHJlYWRvbmx5IGFwaUNhbmFyeVNjaGVkdWxlPzogRHVyYXRpb247XG5cbiAgLyoqXG4gICAqIFRoZSB0aHJlc2hvbGQgZm9yIGhvdyBsb25nIGEgYXBpIGNhbmFyeSBjYW4gdGFrZSB0byBydW4uXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gYWxhcm0gaXMgY3JlYXRlZCBmb3IgdGVzdCBkdXJhdGlvblxuICAgKi9cbiAgcmVhZG9ubHkgYXBpQ2FuYXJ5VGltZW91dD86IER1cmF0aW9uO1xuXG4gIC8qKlxuICAgKiBUaGUgc3RlcHMgdG8gcnVuIGluIHRoZSBjYW5hcnkuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gc3ludGhldGljIHRlc3Qgd2lsbCBiZSBjcmVhdGVkXG4gICAqL1xuICByZWFkb25seSBhcGlUZXN0U3RlcHM/OiBBcGlUZXN0U3RlcFtdO1xufVxuXG4vKipcbiAqIEEgRmFyZ2F0ZSBzZXJ2aWNlIHJ1bm5pbmcgb24gYW4gRUNTIGNsdXN0ZXIgZnJvbnRlZCBieSBhbiBhcHBsaWNhdGlvbiBsb2FkIGJhbGFuY2VyIGFuZCBkZXBsb3llZCBieSBDb2RlRGVwbG95LlxuICovXG5leHBvcnQgY2xhc3MgQXBwbGljYXRpb25Mb2FkQmFsYW5jZWRDb2RlRGVwbG95ZWRGYXJnYXRlU2VydmljZSBleHRlbmRzIEFwcGxpY2F0aW9uTG9hZEJhbGFuY2VkRmFyZ2F0ZVNlcnZpY2Uge1xuICAvKipcbiAgICogQ29tcG9zaXRlIGFsYXJtIGZvciBtb25pdG9yaW5nIGhlYWx0aCBvZiBzZXJ2aWNlLlxuICAgKi9cbiAgaGVhbHRoQWxhcm0/OiBJQWxhcm07XG5cbiAgLyoqXG4gICAqIEFQSSBDYW5hcnkgZm9yIHRoZSBzZXJ2aWNlLlxuICAgKi9cbiAgYXBpQ2FuYXJ5PzogQXBpQ2FuYXJ5O1xuXG4gIC8qKlxuICAgKiBUZXN0IGxpc3RlbmVyIHRvIHVzZSBmb3IgQ29kZURlcGxveSBkZXBsb3ltZW50cy5cbiAgICovXG4gIHRlc3RMaXN0ZW5lcjogQXBwbGljYXRpb25MaXN0ZW5lcjtcblxuICAvKipcbiAgICogVGVzdCB0YXJnZXQgZ3JvdXAgdG8gdXNlIGZvciBDb2RlRGVwbG95IGRlcGxveW1lbnRzLlxuICAgKi9cbiAgZ3JlZW5UYXJnZXRHcm91cDogQXBwbGljYXRpb25UYXJnZXRHcm91cDtcblxuICAvKipcbiAgICogUzMgQnVja2V0IHVzZWQgZm9yIGFjY2VzcyBsb2dzLlxuICAgKi9cbiAgYWNjZXNzTG9nQnVja2V0OiBJQnVja2V0O1xuXG4gIC8qKlxuICAgKiBDb2RlRGVwbG95IGFwcGxpY2F0aW9uIGZvciB0aGlzIHNlcnZpY2UuXG4gICAqL1xuICBhcHBsaWNhdGlvbjogRWNzQXBwbGljYXRpb247XG5cbiAgLyoqXG4gICAqIENvZGVEZXBsb3kgZGVwbG95bWVudCBncm91cCBmb3IgdGhpcyBzZXJ2aWNlLlxuICAgKi9cbiAgZGVwbG95bWVudEdyb3VwOiBFY3NEZXBsb3ltZW50R3JvdXA7XG5cbiAgLyoqXG4gICAqIENvZGVEZXBsb3kgZGVwbG95bWVudCBmb3IgdGhpcyBzZXJ2aWNlLlxuICAgKi9cbiAgZGVwbG95bWVudDogRWNzRGVwbG95bWVudDtcblxuICAvKipcbiAgICogQ29uc3RydWN0cyBhIG5ldyBpbnN0YW5jZSBvZiB0aGUgQXBwbGljYXRpb25Mb2FkQmFsYW5jZWRDb2RlRGVwbG95ZWRGYXJnYXRlU2VydmljZSBjbGFzcy5cbiAgICovXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBBcHBsaWNhdGlvbkxvYWRCYWxhbmNlZENvZGVEZXBsb3llZEZhcmdhdGVTZXJ2aWNlUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHtcbiAgICAgIC4uLnByb3BzLFxuICAgICAgZGVwbG95bWVudENvbnRyb2xsZXI6IHtcbiAgICAgICAgdHlwZTogRGVwbG95bWVudENvbnRyb2xsZXJUeXBlLkNPREVfREVQTE9ZLFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIGlmIChwcm9wcy5kZXJlZ2lzdHJhdGlvbkRlbGF5KSB7XG4gICAgICB0aGlzLnRhcmdldEdyb3VwLnNldEF0dHJpYnV0ZSgnZGVyZWdpc3RyYXRpb25fZGVsYXkudGltZW91dF9zZWNvbmRzJywgcHJvcHMuZGVyZWdpc3RyYXRpb25EZWxheS50b1NlY29uZHMoKS50b1N0cmluZygpKTtcbiAgICB9XG4gICAgaWYgKHByb3BzLmhlYWx0aENoZWNrKSB7XG4gICAgICB0aGlzLnRhcmdldEdyb3VwLmNvbmZpZ3VyZUhlYWx0aENoZWNrKHByb3BzLmhlYWx0aENoZWNrKTtcbiAgICB9XG4gICAgdGhpcy5hY2Nlc3NMb2dCdWNrZXQgPSBwcm9wcy5hY2Nlc3NMb2dCdWNrZXQgPz9cbiAgICAgIG5ldyBCdWNrZXQodGhpcywgJ0FjY2Vzc0xvZ0J1Y2tldCcsIHtcbiAgICAgICAgZW5jcnlwdGlvbjogQnVja2V0RW5jcnlwdGlvbi5TM19NQU5BR0VELFxuICAgICAgICBibG9ja1B1YmxpY0FjY2VzczogQmxvY2tQdWJsaWNBY2Nlc3MuQkxPQ0tfQUxMLFxuICAgICAgICBlbmZvcmNlU1NMOiB0cnVlLFxuICAgICAgfSk7XG5cbiAgICB0aGlzLmxvYWRCYWxhbmNlci5sb2dBY2Nlc3NMb2dzKHRoaXMuYWNjZXNzTG9nQnVja2V0LCBwcm9wcy5hY2Nlc3NMb2dQcmVmaXgpO1xuXG4gICAgY29uc3QgYWxhcm1zOiBJQWxhcm1bXSA9IFtdO1xuICAgIGlmIChwcm9wcy5yZXNwb25zZVRpbWVBbGFybVRocmVzaG9sZCkge1xuICAgICAgY29uc3QgcmVzcG9uc2VUaW1lQWxhcm0gPSBuZXcgQWxhcm0odGhpcywgJ1Jlc3BvbnNlVGltZUFsYXJtJywge1xuICAgICAgICBtZXRyaWM6IHRoaXMubG9hZEJhbGFuY2VyLm1ldHJpY3MudGFyZ2V0UmVzcG9uc2VUaW1lKHtcbiAgICAgICAgICBwZXJpb2Q6IER1cmF0aW9uLm1pbnV0ZXMoMSksXG4gICAgICAgICAgc3RhdGlzdGljOiAncDk1JyxcbiAgICAgICAgfSksXG4gICAgICAgIGV2YWx1YXRpb25QZXJpb2RzOiAyLFxuICAgICAgICB0aHJlc2hvbGQ6IHByb3BzLnJlc3BvbnNlVGltZUFsYXJtVGhyZXNob2xkLnRvU2Vjb25kcygpLFxuICAgICAgICBjb21wYXJpc29uT3BlcmF0b3I6IENvbXBhcmlzb25PcGVyYXRvci5HUkVBVEVSX1RIQU5fVEhSRVNIT0xELFxuICAgICAgfSk7XG4gICAgICBhbGFybXMucHVzaChyZXNwb25zZVRpbWVBbGFybSk7XG4gICAgfVxuXG4gICAgY29uc3QgcHJvdG9jb2wgPSBwcm9wcy5wcm90b2NvbCA/PyAocHJvcHMuY2VydGlmaWNhdGUgPyBBcHBsaWNhdGlvblByb3RvY29sLkhUVFBTIDogQXBwbGljYXRpb25Qcm90b2NvbC5IVFRQKTtcblxuICAgIGNvbnN0IHRlc3RIb3N0TmFtZSA9IHByb3BzLmRvbWFpbk5hbWUgPyBwcm9wcy5kb21haW5OYW1lIDogdGhpcy5sb2FkQmFsYW5jZXIubG9hZEJhbGFuY2VyRG5zTmFtZTtcblxuICAgIGlmIChwcm9wcy5hcGlUZXN0U3RlcHM/Lmxlbmd0aCkge1xuICAgICAgdGhpcy5hcGlDYW5hcnkgPSBuZXcgQXBpQ2FuYXJ5KHRoaXMsICdDYW5hcnknLCB7XG4gICAgICAgIGJhc2VVcmw6IGAke3Byb3RvY29sLnRvTG93ZXJDYXNlKCl9Oi8vJHt0ZXN0SG9zdE5hbWV9YCxcbiAgICAgICAgZHVyYXRpb25BbGFybVRocmVzaG9sZDogcHJvcHMuYXBpQ2FuYXJ5VGltZW91dCxcbiAgICAgICAgc2NoZWR1bGU6IFNjaGVkdWxlLnJhdGUocHJvcHMuYXBpQ2FuYXJ5U2NoZWR1bGUgPz8gRHVyYXRpb24ubWludXRlcyg1KSksXG4gICAgICAgIHRocmVhZENvdW50OiBwcm9wcy5hcGlDYW5hcnlUaHJlYWRDb3VudCxcbiAgICAgICAgc3RlcHM6IHByb3BzLmFwaVRlc3RTdGVwcyxcbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLmFwaUNhbmFyeS5ub2RlLmFkZERlcGVuZGVuY3kodGhpcy5zZXJ2aWNlKTtcblxuICAgICAgYWxhcm1zLnB1c2godGhpcy5hcGlDYW5hcnkuc3VjY2Vzc0FsYXJtKTtcbiAgICAgIGlmICh0aGlzLmFwaUNhbmFyeS5kdXJhdGlvbkFsYXJtKSB7XG4gICAgICAgIGFsYXJtcy5wdXNoKHRoaXMuYXBpQ2FuYXJ5LmR1cmF0aW9uQWxhcm0pO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAoYWxhcm1zLmxlbmd0aCA+IDApIHtcbiAgICAgIHRoaXMuaGVhbHRoQWxhcm0gPSBuZXcgQ29tcG9zaXRlQWxhcm0odGhpcywgJ0hlYWx0aEFsYXJtJywge1xuICAgICAgICBhbGFybVJ1bGU6IEFsYXJtUnVsZS5hbnlPZiguLi5hbGFybXMpLFxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuaGVhbHRoQWxhcm0gPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgbGV0IHRlc3RQb3J0OiBudW1iZXI7XG4gICAgaWYgKHByb3BzLmxpc3RlbmVyUG9ydCkge1xuICAgICAgdGVzdFBvcnQgPSBwcm9wcy5saXN0ZW5lclBvcnQgKyAxO1xuICAgIH0gZWxzZSBpZiAocHJvdG9jb2wgPT09IEFwcGxpY2F0aW9uUHJvdG9jb2wuSFRUUCkge1xuICAgICAgdGVzdFBvcnQgPSA4MDgwO1xuICAgIH0gZWxzZSBpZiAocHJvdG9jb2wgPT09IEFwcGxpY2F0aW9uUHJvdG9jb2wuSFRUUFMpIHtcbiAgICAgIHRlc3RQb3J0ID0gODQ0MztcbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdVbmFibGUgdG8gZGV0ZXJtaW5lIHBvcnQgZm9yIHRlc3QgbGlzdGVuZXInKTtcbiAgICB9XG5cbiAgICBsZXQgY2VydGlmaWNhdGVzO1xuICAgIGlmIChwcm9wcy5jZXJ0aWZpY2F0ZSkge1xuICAgICAgY2VydGlmaWNhdGVzID0gW3Byb3BzLmNlcnRpZmljYXRlXTtcbiAgICB9XG5cbiAgICB0aGlzLnRlc3RMaXN0ZW5lciA9IHRoaXMubG9hZEJhbGFuY2VyLmFkZExpc3RlbmVyKCdUZXN0TGlzdGVuZXInLCB7XG4gICAgICBwcm90b2NvbCxcbiAgICAgIHBvcnQ6IHRlc3RQb3J0LFxuICAgICAgb3BlbjogcHJvcHMub3Blbkxpc3RlbmVyID8/IHRydWUsXG4gICAgICBzc2xQb2xpY3k6IHByb3BzLnNzbFBvbGljeSxcbiAgICAgIGNlcnRpZmljYXRlczogY2VydGlmaWNhdGVzLFxuICAgIH0pO1xuXG4gICAgdGhpcy5ncmVlblRhcmdldEdyb3VwID0gbmV3IEFwcGxpY2F0aW9uVGFyZ2V0R3JvdXAodGhpcywgJ0dyZWVuVGFyZ2V0R3JvdXAnLCB7XG4gICAgICB2cGM6IHRoaXMuY2x1c3Rlci52cGMsXG4gICAgICBwb3J0OiB0ZXN0UG9ydCxcbiAgICAgIHByb3RvY29sOiBwcm9wcy50YXJnZXRQcm90b2NvbCA/PyBBcHBsaWNhdGlvblByb3RvY29sLkhUVFAsXG4gICAgICBwcm90b2NvbFZlcnNpb246IHByb3BzLnByb3RvY29sVmVyc2lvbixcbiAgICAgIGRlcmVnaXN0cmF0aW9uRGVsYXk6IHByb3BzLmRlcmVnaXN0cmF0aW9uRGVsYXksXG4gICAgICBoZWFsdGhDaGVjazogcHJvcHMuaGVhbHRoQ2hlY2ssXG4gICAgICB0YXJnZXRUeXBlOiBUYXJnZXRUeXBlLklQLFxuICAgIH0pO1xuXG4gICAgdGhpcy5saXN0ZW5lci5ub2RlLmFkZERlcGVuZGVuY3kodGhpcy5ncmVlblRhcmdldEdyb3VwKTtcblxuICAgIHRoaXMudGVzdExpc3RlbmVyLmFkZFRhcmdldEdyb3VwcygnRUNTJywge1xuICAgICAgdGFyZ2V0R3JvdXBzOiBbdGhpcy5ncmVlblRhcmdldEdyb3VwXSxcbiAgICB9KTtcblxuICAgIHRoaXMuYXBwbGljYXRpb24gPSBuZXcgRWNzQXBwbGljYXRpb24odGhpcywgJ0FwcGxpY2F0aW9uJyk7XG4gICAgdGhpcy5kZXBsb3ltZW50R3JvdXAgPSBuZXcgRWNzRGVwbG95bWVudEdyb3VwKHRoaXMsICdEZXBsb3ltZW50R3JvdXAnLCB7XG4gICAgICBhcHBsaWNhdGlvbjogdGhpcy5hcHBsaWNhdGlvbixcbiAgICAgIGFsYXJtczogdGhpcy5oZWFsdGhBbGFybT9bdGhpcy5oZWFsdGhBbGFybV06dW5kZWZpbmVkLFxuICAgICAgc2VydmljZTogdGhpcy5zZXJ2aWNlLFxuICAgICAgYmx1ZUdyZWVuRGVwbG95bWVudENvbmZpZzoge1xuICAgICAgICBibHVlVGFyZ2V0R3JvdXA6IHRoaXMudGFyZ2V0R3JvdXAsXG4gICAgICAgIGdyZWVuVGFyZ2V0R3JvdXA6IHRoaXMuZ3JlZW5UYXJnZXRHcm91cCxcbiAgICAgICAgbGlzdGVuZXI6IHRoaXMubGlzdGVuZXIsXG4gICAgICAgIHRlc3RMaXN0ZW5lcjogdGhpcy50ZXN0TGlzdGVuZXIsXG4gICAgICAgIHRlcm1pbmF0aW9uV2FpdFRpbWU6IHByb3BzLnRlcm1pbmF0aW9uV2FpdFRpbWUgPz8gRHVyYXRpb24ubWludXRlcygxMCksXG4gICAgICB9LFxuICAgICAgZGVwbG95bWVudENvbmZpZzogcHJvcHMuZGVwbG95bWVudENvbmZpZyA/PyBFY3NEZXBsb3ltZW50Q29uZmlnLkFMTF9BVF9PTkNFLFxuICAgICAgYXV0b1JvbGxiYWNrOiB7XG4gICAgICAgIHN0b3BwZWREZXBsb3ltZW50OiB0cnVlLFxuICAgICAgfSxcbiAgICB9KTtcbiAgICB0aGlzLmRlcGxveW1lbnQgPSBuZXcgRWNzRGVwbG95bWVudCh7XG4gICAgICBkZXBsb3ltZW50R3JvdXA6IHRoaXMuZGVwbG95bWVudEdyb3VwLFxuICAgICAgdGltZW91dDogcHJvcHMuZGVwbG95bWVudFRpbWVvdXQgPz8gRHVyYXRpb24ubWludXRlcyg2MCksXG4gICAgICB0YXJnZXRTZXJ2aWNlOiB7XG4gICAgICAgIHRhc2tEZWZpbml0aW9uOiB0aGlzLnRhc2tEZWZpbml0aW9uLFxuICAgICAgICBjb250YWluZXJOYW1lOiB0aGlzLnRhc2tEZWZpbml0aW9uLmRlZmF1bHRDb250YWluZXIhLmNvbnRhaW5lck5hbWUsXG4gICAgICAgIGNvbnRhaW5lclBvcnQ6IHRoaXMudGFza0RlZmluaXRpb24uZGVmYXVsdENvbnRhaW5lciEuY29udGFpbmVyUG9ydCxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgYWRkU2VydmljZUFzVGFyZ2V0KHNlcnZpY2U6IEJhc2VTZXJ2aWNlKSB7XG4gICAgc3VwZXIuYWRkU2VydmljZUFzVGFyZ2V0KHNlcnZpY2UpO1xuICB9XG59XG4iXX0=
@@ -26,14 +26,14 @@ export interface AddTagsToOnPremisesInstancesCommandOutput extends __MetadataBea
26
26
  * import { CodeDeployClient, AddTagsToOnPremisesInstancesCommand } from "@aws-sdk/client-codedeploy"; // ES Modules import
27
27
  * // const { CodeDeployClient, AddTagsToOnPremisesInstancesCommand } = require("@aws-sdk/client-codedeploy"); // CommonJS import
28
28
  * const client = new CodeDeployClient(config);
29
- * const input = {
30
- * tags: [ // required
31
- * {
29
+ * const input = { // AddTagsToOnPremisesInstancesInput
30
+ * tags: [ // TagList // required
31
+ * { // Tag
32
32
  * Key: "STRING_VALUE",
33
33
  * Value: "STRING_VALUE",
34
34
  * },
35
35
  * ],
36
- * instanceNames: [ // required
36
+ * instanceNames: [ // InstanceNameList // required
37
37
  * "STRING_VALUE",
38
38
  * ],
39
39
  * };
@@ -27,27 +27,27 @@ export interface BatchGetApplicationRevisionsCommandOutput extends BatchGetAppli
27
27
  * import { CodeDeployClient, BatchGetApplicationRevisionsCommand } from "@aws-sdk/client-codedeploy"; // ES Modules import
28
28
  * // const { CodeDeployClient, BatchGetApplicationRevisionsCommand } = require("@aws-sdk/client-codedeploy"); // CommonJS import
29
29
  * const client = new CodeDeployClient(config);
30
- * const input = {
30
+ * const input = { // BatchGetApplicationRevisionsInput
31
31
  * applicationName: "STRING_VALUE", // required
32
- * revisions: [ // required
33
- * {
32
+ * revisions: [ // RevisionLocationList // required
33
+ * { // RevisionLocation
34
34
  * revisionType: "S3" || "GitHub" || "String" || "AppSpecContent",
35
- * s3Location: {
35
+ * s3Location: { // S3Location
36
36
  * bucket: "STRING_VALUE",
37
37
  * key: "STRING_VALUE",
38
38
  * bundleType: "tar" || "tgz" || "zip" || "YAML" || "JSON",
39
39
  * version: "STRING_VALUE",
40
40
  * eTag: "STRING_VALUE",
41
41
  * },
42
- * gitHubLocation: {
42
+ * gitHubLocation: { // GitHubLocation
43
43
  * repository: "STRING_VALUE",
44
44
  * commitId: "STRING_VALUE",
45
45
  * },
46
- * string: {
46
+ * string: { // RawString
47
47
  * content: "STRING_VALUE",
48
48
  * sha256: "STRING_VALUE",
49
49
  * },
50
- * appSpecContent: {
50
+ * appSpecContent: { // AppSpecContent
51
51
  * content: "STRING_VALUE",
52
52
  * sha256: "STRING_VALUE",
53
53
  * },
@@ -27,8 +27,8 @@ export interface BatchGetApplicationsCommandOutput extends BatchGetApplicationsO
27
27
  * import { CodeDeployClient, BatchGetApplicationsCommand } from "@aws-sdk/client-codedeploy"; // ES Modules import
28
28
  * // const { CodeDeployClient, BatchGetApplicationsCommand } = require("@aws-sdk/client-codedeploy"); // CommonJS import
29
29
  * const client = new CodeDeployClient(config);
30
- * const input = {
31
- * applicationNames: [ // required
30
+ * const input = { // BatchGetApplicationsInput
31
+ * applicationNames: [ // ApplicationsList // required
32
32
  * "STRING_VALUE",
33
33
  * ],
34
34
  * };
@@ -26,9 +26,9 @@ export interface BatchGetDeploymentGroupsCommandOutput extends BatchGetDeploymen
26
26
  * import { CodeDeployClient, BatchGetDeploymentGroupsCommand } from "@aws-sdk/client-codedeploy"; // ES Modules import
27
27
  * // const { CodeDeployClient, BatchGetDeploymentGroupsCommand } = require("@aws-sdk/client-codedeploy"); // CommonJS import
28
28
  * const client = new CodeDeployClient(config);
29
- * const input = {
29
+ * const input = { // BatchGetDeploymentGroupsInput
30
30
  * applicationName: "STRING_VALUE", // required
31
- * deploymentGroupNames: [ // required
31
+ * deploymentGroupNames: [ // DeploymentGroupsList // required
32
32
  * "STRING_VALUE",
33
33
  * ],
34
34
  * };
@@ -35,9 +35,9 @@ export interface BatchGetDeploymentInstancesCommandOutput extends BatchGetDeploy
35
35
  * import { CodeDeployClient, BatchGetDeploymentInstancesCommand } from "@aws-sdk/client-codedeploy"; // ES Modules import
36
36
  * // const { CodeDeployClient, BatchGetDeploymentInstancesCommand } = require("@aws-sdk/client-codedeploy"); // CommonJS import
37
37
  * const client = new CodeDeployClient(config);
38
- * const input = {
38
+ * const input = { // BatchGetDeploymentInstancesInput
39
39
  * deploymentId: "STRING_VALUE", // required
40
- * instanceIds: [ // required
40
+ * instanceIds: [ // InstancesList // required
41
41
  * "STRING_VALUE",
42
42
  * ],
43
43
  * };
@@ -52,9 +52,9 @@ export interface BatchGetDeploymentTargetsCommandOutput extends BatchGetDeployme
52
52
  * import { CodeDeployClient, BatchGetDeploymentTargetsCommand } from "@aws-sdk/client-codedeploy"; // ES Modules import
53
53
  * // const { CodeDeployClient, BatchGetDeploymentTargetsCommand } = require("@aws-sdk/client-codedeploy"); // CommonJS import
54
54
  * const client = new CodeDeployClient(config);
55
- * const input = {
55
+ * const input = { // BatchGetDeploymentTargetsInput
56
56
  * deploymentId: "STRING_VALUE",
57
- * targetIds: [
57
+ * targetIds: [ // TargetIdList
58
58
  * "STRING_VALUE",
59
59
  * ],
60
60
  * };
@@ -27,8 +27,8 @@ export interface BatchGetDeploymentsCommandOutput extends BatchGetDeploymentsOut
27
27
  * import { CodeDeployClient, BatchGetDeploymentsCommand } from "@aws-sdk/client-codedeploy"; // ES Modules import
28
28
  * // const { CodeDeployClient, BatchGetDeploymentsCommand } = require("@aws-sdk/client-codedeploy"); // CommonJS import
29
29
  * const client = new CodeDeployClient(config);
30
- * const input = {
31
- * deploymentIds: [ // required
30
+ * const input = { // BatchGetDeploymentsInput
31
+ * deploymentIds: [ // DeploymentsList // required
32
32
  * "STRING_VALUE",
33
33
  * ],
34
34
  * };
@@ -27,8 +27,8 @@ export interface BatchGetOnPremisesInstancesCommandOutput extends BatchGetOnPrem
27
27
  * import { CodeDeployClient, BatchGetOnPremisesInstancesCommand } from "@aws-sdk/client-codedeploy"; // ES Modules import
28
28
  * // const { CodeDeployClient, BatchGetOnPremisesInstancesCommand } = require("@aws-sdk/client-codedeploy"); // CommonJS import
29
29
  * const client = new CodeDeployClient(config);
30
- * const input = {
31
- * instanceNames: [ // required
30
+ * const input = { // BatchGetOnPremisesInstancesInput
31
+ * instanceNames: [ // InstanceNameList // required
32
32
  * "STRING_VALUE",
33
33
  * ],
34
34
  * };
@@ -30,7 +30,7 @@ export interface ContinueDeploymentCommandOutput extends __MetadataBearer {
30
30
  * import { CodeDeployClient, ContinueDeploymentCommand } from "@aws-sdk/client-codedeploy"; // ES Modules import
31
31
  * // const { CodeDeployClient, ContinueDeploymentCommand } = require("@aws-sdk/client-codedeploy"); // CommonJS import
32
32
  * const client = new CodeDeployClient(config);
33
- * const input = {
33
+ * const input = { // ContinueDeploymentInput
34
34
  * deploymentId: "STRING_VALUE",
35
35
  * deploymentWaitType: "READY_WAIT" || "TERMINATION_WAIT",
36
36
  * };
@@ -26,11 +26,11 @@ export interface CreateApplicationCommandOutput extends CreateApplicationOutput,
26
26
  * import { CodeDeployClient, CreateApplicationCommand } from "@aws-sdk/client-codedeploy"; // ES Modules import
27
27
  * // const { CodeDeployClient, CreateApplicationCommand } = require("@aws-sdk/client-codedeploy"); // CommonJS import
28
28
  * const client = new CodeDeployClient(config);
29
- * const input = {
29
+ * const input = { // CreateApplicationInput
30
30
  * applicationName: "STRING_VALUE", // required
31
31
  * computePlatform: "Server" || "Lambda" || "ECS",
32
- * tags: [
33
- * {
32
+ * tags: [ // TagList
33
+ * { // Tag
34
34
  * Key: "STRING_VALUE",
35
35
  * Value: "STRING_VALUE",
36
36
  * },
@@ -26,27 +26,27 @@ export interface CreateDeploymentCommandOutput extends CreateDeploymentOutput, _
26
26
  * import { CodeDeployClient, CreateDeploymentCommand } from "@aws-sdk/client-codedeploy"; // ES Modules import
27
27
  * // const { CodeDeployClient, CreateDeploymentCommand } = require("@aws-sdk/client-codedeploy"); // CommonJS import
28
28
  * const client = new CodeDeployClient(config);
29
- * const input = {
29
+ * const input = { // CreateDeploymentInput
30
30
  * applicationName: "STRING_VALUE", // required
31
31
  * deploymentGroupName: "STRING_VALUE",
32
- * revision: {
32
+ * revision: { // RevisionLocation
33
33
  * revisionType: "S3" || "GitHub" || "String" || "AppSpecContent",
34
- * s3Location: {
34
+ * s3Location: { // S3Location
35
35
  * bucket: "STRING_VALUE",
36
36
  * key: "STRING_VALUE",
37
37
  * bundleType: "tar" || "tgz" || "zip" || "YAML" || "JSON",
38
38
  * version: "STRING_VALUE",
39
39
  * eTag: "STRING_VALUE",
40
40
  * },
41
- * gitHubLocation: {
41
+ * gitHubLocation: { // GitHubLocation
42
42
  * repository: "STRING_VALUE",
43
43
  * commitId: "STRING_VALUE",
44
44
  * },
45
- * string: {
45
+ * string: { // RawString
46
46
  * content: "STRING_VALUE",
47
47
  * sha256: "STRING_VALUE",
48
48
  * },
49
- * appSpecContent: {
49
+ * appSpecContent: { // AppSpecContent
50
50
  * content: "STRING_VALUE",
51
51
  * sha256: "STRING_VALUE",
52
52
  * },
@@ -54,19 +54,19 @@ export interface CreateDeploymentCommandOutput extends CreateDeploymentOutput, _
54
54
  * deploymentConfigName: "STRING_VALUE",
55
55
  * description: "STRING_VALUE",
56
56
  * ignoreApplicationStopFailures: true || false,
57
- * targetInstances: {
58
- * tagFilters: [
59
- * {
57
+ * targetInstances: { // TargetInstances
58
+ * tagFilters: [ // EC2TagFilterList
59
+ * { // EC2TagFilter
60
60
  * Key: "STRING_VALUE",
61
61
  * Value: "STRING_VALUE",
62
62
  * Type: "KEY_ONLY" || "VALUE_ONLY" || "KEY_AND_VALUE",
63
63
  * },
64
64
  * ],
65
- * autoScalingGroups: [
65
+ * autoScalingGroups: [ // AutoScalingGroupNameList
66
66
  * "STRING_VALUE",
67
67
  * ],
68
- * ec2TagSet: {
69
- * ec2TagSetList: [
68
+ * ec2TagSet: { // EC2TagSet
69
+ * ec2TagSetList: [ // EC2TagSetList
70
70
  * [
71
71
  * {
72
72
  * Key: "STRING_VALUE",
@@ -77,19 +77,19 @@ export interface CreateDeploymentCommandOutput extends CreateDeploymentOutput, _
77
77
  * ],
78
78
  * },
79
79
  * },
80
- * autoRollbackConfiguration: {
80
+ * autoRollbackConfiguration: { // AutoRollbackConfiguration
81
81
  * enabled: true || false,
82
- * events: [
82
+ * events: [ // AutoRollbackEventsList
83
83
  * "DEPLOYMENT_FAILURE" || "DEPLOYMENT_STOP_ON_ALARM" || "DEPLOYMENT_STOP_ON_REQUEST",
84
84
  * ],
85
85
  * },
86
86
  * updateOutdatedInstancesOnly: true || false,
87
87
  * fileExistsBehavior: "DISALLOW" || "OVERWRITE" || "RETAIN",
88
- * overrideAlarmConfiguration: {
88
+ * overrideAlarmConfiguration: { // AlarmConfiguration
89
89
  * enabled: true || false,
90
90
  * ignorePollAlarmFailure: true || false,
91
- * alarms: [
92
- * {
91
+ * alarms: [ // AlarmList
92
+ * { // Alarm
93
93
  * name: "STRING_VALUE",
94
94
  * },
95
95
  * ],
@@ -26,19 +26,19 @@ export interface CreateDeploymentConfigCommandOutput extends CreateDeploymentCon
26
26
  * import { CodeDeployClient, CreateDeploymentConfigCommand } from "@aws-sdk/client-codedeploy"; // ES Modules import
27
27
  * // const { CodeDeployClient, CreateDeploymentConfigCommand } = require("@aws-sdk/client-codedeploy"); // CommonJS import
28
28
  * const client = new CodeDeployClient(config);
29
- * const input = {
29
+ * const input = { // CreateDeploymentConfigInput
30
30
  * deploymentConfigName: "STRING_VALUE", // required
31
- * minimumHealthyHosts: {
31
+ * minimumHealthyHosts: { // MinimumHealthyHosts
32
32
  * type: "HOST_COUNT" || "FLEET_PERCENT",
33
33
  * value: Number("int"),
34
34
  * },
35
- * trafficRoutingConfig: {
35
+ * trafficRoutingConfig: { // TrafficRoutingConfig
36
36
  * type: "TimeBasedCanary" || "TimeBasedLinear" || "AllAtOnce",
37
- * timeBasedCanary: {
37
+ * timeBasedCanary: { // TimeBasedCanary
38
38
  * canaryPercentage: Number("int"),
39
39
  * canaryInterval: Number("int"),
40
40
  * },
41
- * timeBasedLinear: {
41
+ * timeBasedLinear: { // TimeBasedLinear
42
42
  * linearPercentage: Number("int"),
43
43
  * linearInterval: Number("int"),
44
44
  * },