@aws-solutions-constructs/core 2.32.0 → 2.34.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (148) hide show
  1. package/.jsii +1250 -247
  2. package/lib/alb-defaults.d.ts +3 -0
  3. package/lib/alb-defaults.js +8 -1
  4. package/lib/alb-helper.d.ts +29 -0
  5. package/lib/alb-helper.js +34 -9
  6. package/lib/apigateway-defaults.d.ts +10 -0
  7. package/lib/apigateway-defaults.js +15 -1
  8. package/lib/apigateway-helper.d.ts +43 -12
  9. package/lib/apigateway-helper.js +50 -46
  10. package/lib/cloudfront-distribution-defaults.d.ts +9 -0
  11. package/lib/cloudfront-distribution-defaults.js +10 -1
  12. package/lib/cloudfront-distribution-helper.d.ts +31 -3
  13. package/lib/cloudfront-distribution-helper.js +20 -4
  14. package/lib/cloudwatch-log-group-defaults.d.ts +3 -0
  15. package/lib/cloudwatch-log-group-defaults.js +8 -1
  16. package/lib/cloudwatch-log-group-helper.d.ts +3 -0
  17. package/lib/cloudwatch-log-group-helper.js +14 -7
  18. package/lib/cognito-defaults.d.ts +6 -0
  19. package/lib/cognito-defaults.js +7 -1
  20. package/lib/cognito-helper.d.ts +15 -0
  21. package/lib/cognito-helper.js +20 -1
  22. package/lib/dynamodb-table-defaults.js +5 -1
  23. package/lib/dynamodb-table-helper.d.ts +22 -2
  24. package/lib/dynamodb-table-helper.js +22 -6
  25. package/lib/elasticache-defaults.d.ts +6 -0
  26. package/lib/elasticache-defaults.js +11 -1
  27. package/lib/elasticache-helper.d.ts +9 -0
  28. package/lib/elasticache-helper.js +10 -1
  29. package/lib/elasticsearch-defaults.d.ts +3 -0
  30. package/lib/elasticsearch-defaults.js +4 -1
  31. package/lib/elasticsearch-helper.d.ts +11 -1
  32. package/lib/elasticsearch-helper.js +12 -2
  33. package/lib/eventbridge-helper.d.ts +3 -0
  34. package/lib/eventbridge-helper.js +4 -1
  35. package/lib/events-rule-defaults.d.ts +3 -0
  36. package/lib/events-rule-defaults.js +4 -1
  37. package/lib/fargate-defaults.d.ts +15 -0
  38. package/lib/fargate-defaults.js +16 -1
  39. package/lib/fargate-helper.d.ts +14 -1
  40. package/lib/fargate-helper.js +15 -4
  41. package/lib/glue-database-defaults.d.ts +1 -1
  42. package/lib/glue-database-defaults.js +2 -2
  43. package/lib/glue-database-helper.d.ts +2 -0
  44. package/lib/glue-database-helper.js +7 -1
  45. package/lib/glue-job-defaults.d.ts +3 -0
  46. package/lib/glue-job-defaults.js +4 -1
  47. package/lib/glue-job-helper.d.ts +26 -2
  48. package/lib/glue-job-helper.js +48 -34
  49. package/lib/glue-table-defaults.d.ts +3 -0
  50. package/lib/glue-table-defaults.js +4 -1
  51. package/lib/glue-table-helper.d.ts +2 -0
  52. package/lib/glue-table-helper.js +7 -1
  53. package/lib/input-validation.d.ts +6 -0
  54. package/lib/input-validation.js +7 -1
  55. package/lib/iot-topic-rule-defaults.d.ts +3 -0
  56. package/lib/iot-topic-rule-defaults.js +4 -1
  57. package/lib/kinesis-analytics-defaults.js +1 -1
  58. package/lib/kinesis-analytics-helper.d.ts +3 -0
  59. package/lib/kinesis-analytics-helper.js +8 -1
  60. package/lib/kinesis-firehose-s3-defaults.d.ts +3 -0
  61. package/lib/kinesis-firehose-s3-defaults.js +4 -1
  62. package/lib/kinesis-streams-defaults.js +5 -1
  63. package/lib/kinesis-streams-helper.d.ts +6 -0
  64. package/lib/kinesis-streams-helper.js +11 -1
  65. package/lib/kms-defaults.js +1 -1
  66. package/lib/kms-helper.d.ts +3 -0
  67. package/lib/kms-helper.js +8 -1
  68. package/lib/lambda-defaults.d.ts +3 -0
  69. package/lib/lambda-defaults.js +8 -1
  70. package/lib/lambda-event-source-mapping-defaults.d.ts +9 -0
  71. package/lib/lambda-event-source-mapping-defaults.js +14 -5
  72. package/lib/lambda-helper.d.ts +16 -0
  73. package/lib/lambda-helper.js +22 -5
  74. package/lib/mediastore-defaults.d.ts +3 -0
  75. package/lib/mediastore-defaults.js +8 -1
  76. package/lib/mediastore-helper.d.ts +3 -0
  77. package/lib/mediastore-helper.js +8 -1
  78. package/lib/opensearch-defaults.d.ts +3 -0
  79. package/lib/opensearch-defaults.js +4 -1
  80. package/lib/opensearch-helper.d.ts +11 -1
  81. package/lib/opensearch-helper.js +12 -2
  82. package/lib/override-warning-service.d.ts +2 -0
  83. package/lib/override-warning-service.js +7 -1
  84. package/lib/s3-bucket-defaults.d.ts +6 -0
  85. package/lib/s3-bucket-defaults.js +11 -1
  86. package/lib/s3-bucket-helper.d.ts +17 -1
  87. package/lib/s3-bucket-helper.js +14 -2
  88. package/lib/sagemaker-defaults.d.ts +12 -0
  89. package/lib/sagemaker-defaults.js +13 -1
  90. package/lib/sagemaker-helper.d.ts +36 -3
  91. package/lib/sagemaker-helper.js +44 -22
  92. package/lib/secretsmanager-defaults.js +1 -1
  93. package/lib/secretsmanager-helper.d.ts +2 -0
  94. package/lib/secretsmanager-helper.js +7 -1
  95. package/lib/security-group-helper.d.ts +6 -0
  96. package/lib/security-group-helper.js +11 -1
  97. package/lib/sns-defaults.js +1 -1
  98. package/lib/sns-helper.d.ts +8 -1
  99. package/lib/sns-helper.js +10 -3
  100. package/lib/sqs-defaults.d.ts +3 -0
  101. package/lib/sqs-defaults.js +8 -1
  102. package/lib/sqs-helper.d.ts +11 -1
  103. package/lib/sqs-helper.js +15 -5
  104. package/lib/ssm-string-parameter-helper.d.ts +2 -0
  105. package/lib/ssm-string-parameter-helper.js +7 -1
  106. package/lib/step-function-defaults.d.ts +3 -0
  107. package/lib/step-function-defaults.js +8 -1
  108. package/lib/step-function-helper.d.ts +10 -1
  109. package/lib/step-function-helper.js +42 -34
  110. package/lib/utils.d.ts +15 -1
  111. package/lib/utils.js +23 -3
  112. package/lib/vpc-defaults.d.ts +3 -3
  113. package/lib/vpc-defaults.js +8 -4
  114. package/lib/vpc-helper.d.ts +9 -0
  115. package/lib/vpc-helper.js +14 -1
  116. package/lib/waf-defaults.d.ts +9 -0
  117. package/lib/waf-defaults.js +10 -1
  118. package/lib/waf-helper.d.ts +3 -0
  119. package/lib/waf-helper.js +4 -1
  120. package/node_modules/deepmerge/.eslintcache +1 -0
  121. package/node_modules/deepmerge/changelog.md +4 -0
  122. package/node_modules/deepmerge/index.d.ts +5 -1
  123. package/node_modules/deepmerge/package.json +3 -4
  124. package/node_modules/deepmerge/readme.md +1 -1
  125. package/node_modules/readable-stream/README.md +2 -2
  126. package/node_modules/readable-stream/lib/_stream_readable.js +4 -4
  127. package/node_modules/readable-stream/lib/_stream_writable.js +6 -8
  128. package/node_modules/readable-stream/lib/internal/streams/BufferList.js +0 -1
  129. package/node_modules/readable-stream/lib/internal/streams/destroy.js +14 -4
  130. package/node_modules/readable-stream/package.json +1 -1
  131. package/package.json +4 -4
  132. package/test/alb-helper.test.js +3 -3
  133. package/test/apigateway-helper.test.js +24 -24
  134. package/test/cloudfront-distribution-api-gateway-helper.test.js +3 -3
  135. package/test/cloudfront-distribution-s3-helper.test.js +20 -20
  136. package/test/dynamo-table.test.js +22 -8
  137. package/test/elasticsearch-helper.test.js +25 -9
  138. package/test/fargate-helper.test.js +4 -2
  139. package/test/glue-job-helper.test.js +59 -58
  140. package/test/input-validation.test.js +3 -3
  141. package/test/lambda-helper.test.js +32 -1
  142. package/test/opensearch-helper.test.js +17 -11
  143. package/test/s3-bucket-helper.test.js +44 -15
  144. package/test/sagemaker-helper.test.js +26 -34
  145. package/test/sns-helper.test.js +10 -4
  146. package/test/sqs-helper.test.js +12 -23
  147. package/test/step-function-helper.test.js +74 -18
  148. package/test/utils.test.js +20 -16
@@ -15,10 +15,16 @@ Object.defineProperty(exports, "__esModule", { value: true });
15
15
  exports.DefaultContainerDefinitionProps = exports.DefaultApplicationTargetGroupProps = exports.DefaultFargateTaskDefinitionProps = exports.DefaultFargateServiceProps = exports.DefaultClusterProps = void 0;
16
16
  const ecs = require("aws-cdk-lib/aws-ecs");
17
17
  const elb = require("aws-cdk-lib/aws-elasticloadbalancingv2");
18
+ /**
19
+ * @internal This is an internal core function and should not be called directly by Solutions Constructs clients.
20
+ */
18
21
  function DefaultClusterProps() {
19
22
  return {};
20
23
  }
21
24
  exports.DefaultClusterProps = DefaultClusterProps;
25
+ /**
26
+ * @internal This is an internal core function and should not be called directly by Solutions Constructs clients.
27
+ */
22
28
  function DefaultFargateServiceProps() {
23
29
  return {
24
30
  assignPublicIp: false,
@@ -29,6 +35,9 @@ function DefaultFargateServiceProps() {
29
35
  };
30
36
  }
31
37
  exports.DefaultFargateServiceProps = DefaultFargateServiceProps;
38
+ /**
39
+ * @internal This is an internal core function and should not be called directly by Solutions Constructs clients.
40
+ */
32
41
  function DefaultFargateTaskDefinitionProps() {
33
42
  return {
34
43
  cpu: 256,
@@ -36,6 +45,9 @@ function DefaultFargateTaskDefinitionProps() {
36
45
  };
37
46
  }
38
47
  exports.DefaultFargateTaskDefinitionProps = DefaultFargateTaskDefinitionProps;
48
+ /**
49
+ * @internal This is an internal core function and should not be called directly by Solutions Constructs clients.
50
+ */
39
51
  function DefaultApplicationTargetGroupProps(vpc) {
40
52
  return {
41
53
  port: 8080,
@@ -47,6 +59,9 @@ function DefaultApplicationTargetGroupProps(vpc) {
47
59
  };
48
60
  }
49
61
  exports.DefaultApplicationTargetGroupProps = DefaultApplicationTargetGroupProps;
62
+ /**
63
+ * @internal This is an internal core function and should not be called directly by Solutions Constructs clients.
64
+ */
50
65
  function DefaultContainerDefinitionProps() {
51
66
  return {
52
67
  memoryReservationMiB: 512,
@@ -54,4 +69,4 @@ function DefaultContainerDefinitionProps() {
54
69
  };
55
70
  }
56
71
  exports.DefaultContainerDefinitionProps = DefaultContainerDefinitionProps;
57
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFyZ2F0ZS1kZWZhdWx0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImZhcmdhdGUtZGVmYXVsdHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7Ozs7OztHQVdHOzs7QUFHSCwyQ0FBMkM7QUFDM0MsOERBQThEO0FBRTlELFNBQWdCLG1CQUFtQjtJQUNqQyxPQUFPLEVBRU4sQ0FBQztBQUNKLENBQUM7QUFKRCxrREFJQztBQUVELFNBQWdCLDBCQUEwQjtJQUV4QyxPQUFPO1FBQ0wsY0FBYyxFQUFFLEtBQUs7UUFDckIsWUFBWSxFQUFFLENBQUM7UUFDZixpQkFBaUIsRUFBRSxHQUFHO1FBQ3RCLGlCQUFpQixFQUFFLEVBQUU7UUFDckIsZUFBZSxFQUFFLEdBQUcsQ0FBQyxzQkFBc0IsQ0FBQyxNQUFNO0tBQ25ELENBQUM7QUFDSixDQUFDO0FBVEQsZ0VBU0M7QUFFRCxTQUFnQixpQ0FBaUM7SUFDL0MsT0FBTztRQUNMLEdBQUcsRUFBRSxHQUFHO1FBQ1IsY0FBYyxFQUFFLEdBQUc7S0FDcEIsQ0FBQztBQUNKLENBQUM7QUFMRCw4RUFLQztBQUVELFNBQWdCLGtDQUFrQyxDQUFDLEdBQWE7SUFDOUQsT0FBTztRQUNMLElBQUksRUFBRSxJQUFJO1FBQ1YsUUFBUSxFQUFFLEdBQUcsQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJO1FBQ3RDLGVBQWUsRUFBRSxHQUFHLENBQUMsMEJBQTBCLENBQUMsS0FBSztRQUNyRCxVQUFVLEVBQUUsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFO1FBQzdCLEdBQUc7UUFDSCxXQUFXLEVBQUUsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFO0tBQzNCLENBQUM7QUFDSixDQUFDO0FBVEQsZ0ZBU0M7QUFFRCxTQUFnQiwrQkFBK0I7SUFDN0MsT0FBTztRQUNMLG9CQUFvQixFQUFFLEdBQUc7UUFDekIsWUFBWSxFQUFFLENBQUUsRUFBRSxhQUFhLEVBQUUsSUFBSSxFQUFFLENBQUU7S0FDMUMsQ0FBQztBQUNKLENBQUM7QUFMRCwwRUFLQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogIENvcHlyaWdodCBBbWF6b24uY29tLCBJbmMuIG9yIGl0cyBhZmZpbGlhdGVzLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpLiBZb3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlXG4gKiAgd2l0aCB0aGUgTGljZW5zZS4gQSBjb3B5IG9mIHRoZSBMaWNlbnNlIGlzIGxvY2F0ZWQgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqICBvciBpbiB0aGUgJ2xpY2Vuc2UnIGZpbGUgYWNjb21wYW55aW5nIHRoaXMgZmlsZS4gVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICdBUyBJUycgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFU1xuICogIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGV4cHJlc3Mgb3IgaW1wbGllZC4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zXG4gKiAgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCAqIGFzIGVjMiBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWVjMlwiO1xuaW1wb3J0ICogYXMgZWNzIGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtZWNzXCI7XG5pbXBvcnQgKiBhcyBlbGIgZnJvbSBcImF3cy1jZGstbGliL2F3cy1lbGFzdGljbG9hZGJhbGFuY2luZ3YyXCI7XG5cbmV4cG9ydCBmdW5jdGlvbiBEZWZhdWx0Q2x1c3RlclByb3BzKCkge1xuICByZXR1cm4ge1xuXG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBEZWZhdWx0RmFyZ2F0ZVNlcnZpY2VQcm9wcyhcbikge1xuICByZXR1cm4ge1xuICAgIGFzc2lnblB1YmxpY0lwOiBmYWxzZSxcbiAgICBkZXNpcmVkQ291bnQ6IDIsXG4gICAgbWF4SGVhbHRoeVBlcmNlbnQ6IDE1MCxcbiAgICBtaW5IZWFsdGh5UGVyY2VudDogNzUsXG4gICAgcGxhdGZvcm1WZXJzaW9uOiBlY3MuRmFyZ2F0ZVBsYXRmb3JtVmVyc2lvbi5MQVRFU1QsXG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBEZWZhdWx0RmFyZ2F0ZVRhc2tEZWZpbml0aW9uUHJvcHMoKTogZWNzLkZhcmdhdGVUYXNrRGVmaW5pdGlvblByb3BzIHtcbiAgcmV0dXJuIHtcbiAgICBjcHU6IDI1NixcbiAgICBtZW1vcnlMaW1pdE1pQjogNTEyLFxuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gRGVmYXVsdEFwcGxpY2F0aW9uVGFyZ2V0R3JvdXBQcm9wcyh2cGM6IGVjMi5JVnBjKTogZWxiLkFwcGxpY2F0aW9uVGFyZ2V0R3JvdXBQcm9wcyB7XG4gIHJldHVybiB7XG4gICAgcG9ydDogODA4MCxcbiAgICBwcm90b2NvbDogZWxiLkFwcGxpY2F0aW9uUHJvdG9jb2wuSFRUUCxcbiAgICBwcm90b2NvbFZlcnNpb246IGVsYi5BcHBsaWNhdGlvblByb3RvY29sVmVyc2lvbi5IVFRQMSxcbiAgICB0YXJnZXRUeXBlOiBlbGIuVGFyZ2V0VHlwZS5JUCxcbiAgICB2cGMsXG4gICAgaGVhbHRoQ2hlY2s6IHsgcGF0aDogJy8nIH1cbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIERlZmF1bHRDb250YWluZXJEZWZpbml0aW9uUHJvcHMoKTogZWNzLkNvbnRhaW5lckRlZmluaXRpb25PcHRpb25zIHwgYW55IHtcbiAgcmV0dXJuIHtcbiAgICBtZW1vcnlSZXNlcnZhdGlvbk1pQjogNTEyLFxuICAgIHBvcnRNYXBwaW5nczogWyB7IGNvbnRhaW5lclBvcnQ6IDgwODAgfSBdLFxuICB9O1xufSJdfQ==
72
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFyZ2F0ZS1kZWZhdWx0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImZhcmdhdGUtZGVmYXVsdHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7Ozs7OztHQVdHOzs7QUFRSCwyQ0FBMkM7QUFDM0MsOERBQThEO0FBRTlEOztHQUVHO0FBQ0gsU0FBZ0IsbUJBQW1CO0lBQ2pDLE9BQU8sRUFFTixDQUFDO0FBQ0osQ0FBQztBQUpELGtEQUlDO0FBRUQ7O0dBRUc7QUFDSCxTQUFnQiwwQkFBMEI7SUFFeEMsT0FBTztRQUNMLGNBQWMsRUFBRSxLQUFLO1FBQ3JCLFlBQVksRUFBRSxDQUFDO1FBQ2YsaUJBQWlCLEVBQUUsR0FBRztRQUN0QixpQkFBaUIsRUFBRSxFQUFFO1FBQ3JCLGVBQWUsRUFBRSxHQUFHLENBQUMsc0JBQXNCLENBQUMsTUFBTTtLQUNuRCxDQUFDO0FBQ0osQ0FBQztBQVRELGdFQVNDO0FBRUQ7O0dBRUc7QUFDSCxTQUFnQixpQ0FBaUM7SUFDL0MsT0FBTztRQUNMLEdBQUcsRUFBRSxHQUFHO1FBQ1IsY0FBYyxFQUFFLEdBQUc7S0FDcEIsQ0FBQztBQUNKLENBQUM7QUFMRCw4RUFLQztBQUVEOztHQUVHO0FBQ0gsU0FBZ0Isa0NBQWtDLENBQUMsR0FBYTtJQUM5RCxPQUFPO1FBQ0wsSUFBSSxFQUFFLElBQUk7UUFDVixRQUFRLEVBQUUsR0FBRyxDQUFDLG1CQUFtQixDQUFDLElBQUk7UUFDdEMsZUFBZSxFQUFFLEdBQUcsQ0FBQywwQkFBMEIsQ0FBQyxLQUFLO1FBQ3JELFVBQVUsRUFBRSxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUU7UUFDN0IsR0FBRztRQUNILFdBQVcsRUFBRSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUU7S0FDM0IsQ0FBQztBQUNKLENBQUM7QUFURCxnRkFTQztBQUVEOztHQUVHO0FBQ0gsU0FBZ0IsK0JBQStCO0lBQzdDLE9BQU87UUFDTCxvQkFBb0IsRUFBRSxHQUFHO1FBQ3pCLFlBQVksRUFBRSxDQUFFLEVBQUUsYUFBYSxFQUFFLElBQUksRUFBRSxDQUFFO0tBQzFDLENBQUM7QUFDSixDQUFDO0FBTEQsMEVBS0MiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqICBDb3B5cmlnaHQgQW1hem9uLmNvbSwgSW5jLiBvciBpdHMgYWZmaWxpYXRlcy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKS4gWW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZVxuICogIHdpdGggdGhlIExpY2Vuc2UuIEEgY29weSBvZiB0aGUgTGljZW5zZSBpcyBsb2NhdGVkIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiAgb3IgaW4gdGhlICdsaWNlbnNlJyBmaWxlIGFjY29tcGFueWluZyB0aGlzIGZpbGUuIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAnQVMgSVMnIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVNcbiAqICBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBleHByZXNzIG9yIGltcGxpZWQuIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9uc1xuICogIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG4vKlxuICogIFRoZSBmdW5jdGlvbnMgZm91bmQgaGVyZSBpbiB0aGUgY29yZSBsaWJyYXJ5IGFyZSBmb3IgaW50ZXJuYWwgdXNlIGFuZCBjYW4gYmUgY2hhbmdlZFxuICogIG9yIHJlbW92ZWQgb3V0c2lkZSBvZiBhIG1ham9yIHJlbGVhc2UuIFdlIHJlY29tbWVuZCBhZ2FpbnN0IGNhbGxpbmcgdGhlbSBkaXJlY3RseSBmcm9tIGNsaWVudCBjb2RlLlxuICovXG5cbmltcG9ydCAqIGFzIGVjMiBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWVjMlwiO1xuaW1wb3J0ICogYXMgZWNzIGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtZWNzXCI7XG5pbXBvcnQgKiBhcyBlbGIgZnJvbSBcImF3cy1jZGstbGliL2F3cy1lbGFzdGljbG9hZGJhbGFuY2luZ3YyXCI7XG5cbi8qKlxuICogQGludGVybmFsIFRoaXMgaXMgYW4gaW50ZXJuYWwgY29yZSBmdW5jdGlvbiBhbmQgc2hvdWxkIG5vdCBiZSBjYWxsZWQgZGlyZWN0bHkgYnkgU29sdXRpb25zIENvbnN0cnVjdHMgY2xpZW50cy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIERlZmF1bHRDbHVzdGVyUHJvcHMoKSB7XG4gIHJldHVybiB7XG5cbiAgfTtcbn1cblxuLyoqXG4gKiBAaW50ZXJuYWwgVGhpcyBpcyBhbiBpbnRlcm5hbCBjb3JlIGZ1bmN0aW9uIGFuZCBzaG91bGQgbm90IGJlIGNhbGxlZCBkaXJlY3RseSBieSBTb2x1dGlvbnMgQ29uc3RydWN0cyBjbGllbnRzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gRGVmYXVsdEZhcmdhdGVTZXJ2aWNlUHJvcHMoXG4pIHtcbiAgcmV0dXJuIHtcbiAgICBhc3NpZ25QdWJsaWNJcDogZmFsc2UsXG4gICAgZGVzaXJlZENvdW50OiAyLFxuICAgIG1heEhlYWx0aHlQZXJjZW50OiAxNTAsXG4gICAgbWluSGVhbHRoeVBlcmNlbnQ6IDc1LFxuICAgIHBsYXRmb3JtVmVyc2lvbjogZWNzLkZhcmdhdGVQbGF0Zm9ybVZlcnNpb24uTEFURVNULFxuICB9O1xufVxuXG4vKipcbiAqIEBpbnRlcm5hbCBUaGlzIGlzIGFuIGludGVybmFsIGNvcmUgZnVuY3Rpb24gYW5kIHNob3VsZCBub3QgYmUgY2FsbGVkIGRpcmVjdGx5IGJ5IFNvbHV0aW9ucyBDb25zdHJ1Y3RzIGNsaWVudHMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBEZWZhdWx0RmFyZ2F0ZVRhc2tEZWZpbml0aW9uUHJvcHMoKTogZWNzLkZhcmdhdGVUYXNrRGVmaW5pdGlvblByb3BzIHtcbiAgcmV0dXJuIHtcbiAgICBjcHU6IDI1NixcbiAgICBtZW1vcnlMaW1pdE1pQjogNTEyLFxuICB9O1xufVxuXG4vKipcbiAqIEBpbnRlcm5hbCBUaGlzIGlzIGFuIGludGVybmFsIGNvcmUgZnVuY3Rpb24gYW5kIHNob3VsZCBub3QgYmUgY2FsbGVkIGRpcmVjdGx5IGJ5IFNvbHV0aW9ucyBDb25zdHJ1Y3RzIGNsaWVudHMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBEZWZhdWx0QXBwbGljYXRpb25UYXJnZXRHcm91cFByb3BzKHZwYzogZWMyLklWcGMpOiBlbGIuQXBwbGljYXRpb25UYXJnZXRHcm91cFByb3BzIHtcbiAgcmV0dXJuIHtcbiAgICBwb3J0OiA4MDgwLFxuICAgIHByb3RvY29sOiBlbGIuQXBwbGljYXRpb25Qcm90b2NvbC5IVFRQLFxuICAgIHByb3RvY29sVmVyc2lvbjogZWxiLkFwcGxpY2F0aW9uUHJvdG9jb2xWZXJzaW9uLkhUVFAxLFxuICAgIHRhcmdldFR5cGU6IGVsYi5UYXJnZXRUeXBlLklQLFxuICAgIHZwYyxcbiAgICBoZWFsdGhDaGVjazogeyBwYXRoOiAnLycgfVxuICB9O1xufVxuXG4vKipcbiAqIEBpbnRlcm5hbCBUaGlzIGlzIGFuIGludGVybmFsIGNvcmUgZnVuY3Rpb24gYW5kIHNob3VsZCBub3QgYmUgY2FsbGVkIGRpcmVjdGx5IGJ5IFNvbHV0aW9ucyBDb25zdHJ1Y3RzIGNsaWVudHMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBEZWZhdWx0Q29udGFpbmVyRGVmaW5pdGlvblByb3BzKCk6IGVjcy5Db250YWluZXJEZWZpbml0aW9uT3B0aW9ucyB8IGFueSB7XG4gIHJldHVybiB7XG4gICAgbWVtb3J5UmVzZXJ2YXRpb25NaUI6IDUxMixcbiAgICBwb3J0TWFwcGluZ3M6IFsgeyBjb250YWluZXJQb3J0OiA4MDgwIH0gXSxcbiAgfTtcbn0iXX0=
@@ -13,6 +13,19 @@
13
13
  import { Construct } from "constructs";
14
14
  import * as ec2 from "aws-cdk-lib/aws-ec2";
15
15
  import * as ecs from "aws-cdk-lib/aws-ecs";
16
- export declare function CreateFargateService(scope: Construct, id: string, constructVpc: ec2.IVpc, clientClusterProps?: ecs.ClusterProps, ecrRepositoryArn?: string, ecrImageVersion?: string, clientFargateTaskDefinitionProps?: ecs.FargateTaskDefinitionProps | any, clientContainerDefinitionProps?: ecs.ContainerDefinitionProps | any, clientFargateServiceProps?: ecs.FargateServiceProps | any): [ecs.FargateService, ecs.ContainerDefinition];
16
+ export interface CreateFargateServiceResponse {
17
+ readonly service: ecs.FargateService;
18
+ readonly containerDefinition: ecs.ContainerDefinition;
19
+ }
20
+ /**
21
+ * @internal This is an internal core function and should not be called directly by Solutions Constructs clients.
22
+ */
23
+ export declare function CreateFargateService(scope: Construct, id: string, constructVpc: ec2.IVpc, clientClusterProps?: ecs.ClusterProps, ecrRepositoryArn?: string, ecrImageVersion?: string, clientFargateTaskDefinitionProps?: ecs.FargateTaskDefinitionProps | any, clientContainerDefinitionProps?: ecs.ContainerDefinitionProps | any, clientFargateServiceProps?: ecs.FargateServiceProps | any): CreateFargateServiceResponse;
24
+ /**
25
+ * @internal This is an internal core function and should not be called directly by Solutions Constructs clients.
26
+ */
17
27
  export declare function CheckFargateProps(props: any): void;
28
+ /**
29
+ * @internal This is an internal core function and should not be called directly by Solutions Constructs clients.
30
+ */
18
31
  export declare function getServiceVpcSecurityGroupIds(service: ecs.FargateService): string[];
@@ -18,6 +18,9 @@ const ecs = require("aws-cdk-lib/aws-ecs");
18
18
  const ecr = require("aws-cdk-lib/aws-ecr");
19
19
  const defaults = require("..");
20
20
  const __1 = require("..");
21
+ /**
22
+ * @internal This is an internal core function and should not be called directly by Solutions Constructs clients.
23
+ */
21
24
  function CreateFargateService(scope, id, constructVpc, clientClusterProps, ecrRepositoryArn, ecrImageVersion, clientFargateTaskDefinitionProps, clientContainerDefinitionProps, clientFargateServiceProps) {
22
25
  defaults.AddAwsServiceEndpoint(scope, constructVpc, defaults.ServiceEndpointTypes.ECR_API);
23
26
  defaults.AddAwsServiceEndpoint(scope, constructVpc, defaults.ServiceEndpointTypes.ECR_DKR);
@@ -34,7 +37,9 @@ function CreateFargateService(scope, id, constructVpc, clientClusterProps, ecrRe
34
37
  }
35
38
  // Create the Fargate Service
36
39
  let newContainerDefinition;
37
- [constructFargateServiceDefinitionProps.taskDefinition, newContainerDefinition] = CreateTaskDefinition(scope, id, clientFargateTaskDefinitionProps, clientContainerDefinitionProps, constructContainerDefintionProps);
40
+ const createTaskDefinitionResponse = CreateTaskDefinition(scope, id, clientFargateTaskDefinitionProps, clientContainerDefinitionProps, constructContainerDefintionProps);
41
+ constructFargateServiceDefinitionProps.taskDefinition = createTaskDefinitionResponse.taskDefinition;
42
+ newContainerDefinition = createTaskDefinitionResponse.containerDefinition;
38
43
  if (!clientFargateServiceProps?.vpcSubnets) {
39
44
  if (constructVpc.isolatedSubnets.length) {
40
45
  constructFargateServiceDefinitionProps.vpcSubnets = {
@@ -73,7 +78,7 @@ function CreateFargateService(scope, id, constructVpc, clientClusterProps, ecrRe
73
78
  }
74
79
  const fargateServiceProps = defaults.consolidateProps(defaultFargateServiceProps, clientFargateServiceProps, constructFargateServiceDefinitionProps);
75
80
  const newService = new ecs.FargateService(scope, `${id}-service`, fargateServiceProps);
76
- return [newService, newContainerDefinition];
81
+ return { service: newService, containerDefinition: newContainerDefinition };
77
82
  }
78
83
  exports.CreateFargateService = CreateFargateService;
79
84
  function CreateCluster(scope, id, constructVpc, clientClusterProps) {
@@ -96,8 +101,11 @@ function CreateTaskDefinition(scope, id, clientFargateTaskDefinitionProps, clien
96
101
  });
97
102
  const containerDefinitionProps = defaults.consolidateProps(defaultContainerDefinitionProps, clientContainerDefinitionProps, constructContainerDefinitionProps);
98
103
  const containerDefinition = taskDefinition.addContainer(`${id}-container`, containerDefinitionProps);
99
- return [taskDefinition, containerDefinition];
104
+ return { taskDefinition, containerDefinition };
100
105
  }
106
+ /**
107
+ * @internal This is an internal core function and should not be called directly by Solutions Constructs clients.
108
+ */
101
109
  function CheckFargateProps(props) {
102
110
  let errorMessages = "";
103
111
  let errorFound = false;
@@ -154,10 +162,13 @@ function CheckFargateProps(props) {
154
162
  }
155
163
  }
156
164
  exports.CheckFargateProps = CheckFargateProps;
165
+ /**
166
+ * @internal This is an internal core function and should not be called directly by Solutions Constructs clients.
167
+ */
157
168
  function getServiceVpcSecurityGroupIds(service) {
158
169
  const securityGroupIds = [];
159
170
  service.connections.securityGroups.forEach(element => securityGroupIds.push(element.securityGroupId));
160
171
  return securityGroupIds;
161
172
  }
162
173
  exports.getServiceVpcSecurityGroupIds = getServiceVpcSecurityGroupIds;
163
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFyZ2F0ZS1oZWxwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJmYXJnYXRlLWhlbHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7Ozs7O0dBV0c7OztBQUdILDJDQUEyQztBQUMzQywyQ0FBMkM7QUFDM0MsMkNBQTJDO0FBQzNDLCtCQUErQjtBQUMvQiwwQkFBbUM7QUFFbkMsU0FBZ0Isb0JBQW9CLENBQ2xDLEtBQWdCLEVBQ2hCLEVBQVUsRUFDVixZQUFzQixFQUN0QixrQkFBcUMsRUFDckMsZ0JBQXlCLEVBQ3pCLGVBQXdCLEVBQ3hCLGdDQUF1RSxFQUN2RSw4QkFBbUUsRUFDbkUseUJBQXlEO0lBRXpELFFBQVEsQ0FBQyxxQkFBcUIsQ0FDNUIsS0FBSyxFQUNMLFlBQVksRUFDWixRQUFRLENBQUMsb0JBQW9CLENBQUMsT0FBTyxDQUN0QyxDQUFDO0lBQ0YsUUFBUSxDQUFDLHFCQUFxQixDQUM1QixLQUFLLEVBQ0wsWUFBWSxFQUNaLFFBQVEsQ0FBQyxvQkFBb0IsQ0FBQyxPQUFPLENBQ3RDLENBQUM7SUFDRixRQUFRLENBQUMscUJBQXFCLENBQzVCLEtBQUssRUFDTCxZQUFZLEVBQ1osUUFBUSxDQUFDLG9CQUFvQixDQUFDLEVBQUUsQ0FDakMsQ0FBQztJQUVGLE1BQU0sZ0NBQWdDLEdBQVEsRUFBRSxDQUFDO0lBQ2pELE1BQU0sc0NBQXNDLEdBQVEsRUFBRSxDQUFDO0lBRXZELElBQUksQ0FBQyx5QkFBeUIsRUFBRSxPQUFPLEVBQUU7UUFDdkMsNEJBQTRCO1FBQzVCLHNDQUFzQyxDQUFDLE9BQU8sR0FBRyxhQUFhLENBQzVELEtBQUssRUFDTCxHQUFHLEVBQUUsVUFBVSxFQUNmLFlBQVksRUFDWixrQkFBa0IsQ0FDbkIsQ0FBQztLQUNIO0lBRUQsNkJBQTZCO0lBQzdCLElBQUksQ0FBQyw4QkFBOEIsRUFBRSxLQUFLLEVBQUU7UUFDMUMsZ0NBQWdDLENBQUMsS0FBSyxHQUFHLFdBQVcsQ0FDbEQsS0FBSyxF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TztJQUVELElBQUksVUFBVSxFQUFFO1FBQ2QsTUFBTSxJQUFJLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQztLQUNoQztBQUNILENBQUM7QUFwRUQsOENBb0VDO0FBRUQsU0FBZ0IsNkJBQTZCLENBQUMsT0FBMkI7SUFDdkUsTUFBTSxnQkFBZ0IsR0FBYSxFQUFFLENBQUM7SUFFdEMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDO0lBRXRHLE9BQU8sZ0JBQWdCLENBQUM7QUFDMUIsQ0FBQztBQU5ELHNFQU1DIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiAgQ29weXJpZ2h0IEFtYXpvbi5jb20sIEluYy4gb3IgaXRzIGFmZmlsaWF0ZXMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIikuIFlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2VcbiAqICB3aXRoIHRoZSBMaWNlbnNlLiBBIGNvcHkgb2YgdGhlIExpY2Vuc2UgaXMgbG9jYXRlZCBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogIG9yIGluIHRoZSAnbGljZW5zZScgZmlsZSBhY2NvbXBhbnlpbmcgdGhpcyBmaWxlLiBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgb24gYW4gJ0FTIElTJyBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTXG4gKiAgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZXhwcmVzcyBvciBpbXBsaWVkLiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnNcbiAqICBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCAqIGFzIGVjMiBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWVjMlwiO1xuaW1wb3J0ICogYXMgZWNzIGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtZWNzXCI7XG5pbXBvcnQgKiBhcyBlY3IgZnJvbSBcImF3cy1jZGstbGliL2F3cy1lY3JcIjtcbmltcG9ydCAqIGFzIGRlZmF1bHRzIGZyb20gXCIuLlwiO1xuaW1wb3J0IHsgb3ZlcnJpZGVQcm9wcyB9IGZyb20gXCIuLlwiO1xuXG5leHBvcnQgZnVuY3Rpb24gQ3JlYXRlRmFyZ2F0ZVNlcnZpY2UoXG4gIHNjb3BlOiBDb25zdHJ1Y3QsXG4gIGlkOiBzdHJpbmcsXG4gIGNvbnN0cnVjdFZwYzogZWMyLklWcGMsXG4gIGNsaWVudENsdXN0ZXJQcm9wcz86IGVjcy5DbHVzdGVyUHJvcHMsXG4gIGVjclJlcG9zaXRvcnlBcm4/OiBzdHJpbmcsXG4gIGVjckltYWdlVmVyc2lvbj86IHN0cmluZyxcbiAgY2xpZW50RmFyZ2F0ZVRhc2tEZWZpbml0aW9uUHJvcHM/OiBlY3MuRmFyZ2F0ZVRhc2tEZWZpbml0aW9uUHJvcHMgfCBhbnksXG4gIGNsaWVudENvbnRhaW5lckRlZmluaXRpb25Qcm9wcz86IGVjcy5Db250YWluZXJEZWZpbml0aW9uUHJvcHMgfCBhbnksXG4gIGNsaWVudEZhcmdhdGVTZXJ2aWNlUHJvcHM/OiBlY3MuRmFyZ2F0ZVNlcnZpY2VQcm9wcyB8IGFueVxuKTogW2Vjcy5GYXJnYXRlU2VydmljZSwgZWNzLkNvbnRhaW5lckRlZmluaXRpb25dIHtcbiAgZGVmYXVsdHMuQWRkQXdzU2VydmljZUVuZHBvaW50KFxuICAgIHNjb3BlLFxuICAgIGNvbnN0cnVjdFZwYyxcbiAgICBkZWZhdWx0cy5TZXJ2aWNlRW5kcG9pbnRUeXBlcy5FQ1JfQVBJXG4gICk7XG4gIGRlZmF1bHRzLkFkZEF3c1NlcnZpY2VFbmRwb2ludChcbiAgICBzY29wZSxcbiAgICBjb25zdHJ1Y3RWcGMsXG4gICAgZGVmYXVsdHMuU2VydmljZUVuZHBvaW50VHlwZXMuRUNSX0RLUlxuICApO1xuICBkZWZhdWx0cy5BZGRBd3NTZXJ2aWNlRW5kcG9pbnQoXG4gICAgc2NvcGUsXG4gICAgY29uc3RydWN0VnBjLFxuICAgIGRlZmF1bHRzLlNlcnZpY2VFbmRwb2ludFR5cGVzLlMzXG4gICk7XG5cbiAgY29uc3QgY29uc3RydWN0Q29udGFpbmVyRGVmaW50aW9uUHJvcHM6IGFueSA9IHt9O1xuICBjb25zdCBjb25zdHJ1Y3RGYXJnYXRlU2VydmljZURlZmluaXRpb25Qcm9wczogYW55ID0ge307XG5cbiAgaWYgKCFjbGllbnRGYXJnYXRlU2VydmljZVByb3BzPy5jbHVzdGVyKSB7XG4gICAgLy8gQ29uc3RydWN0IEZhcmdhdGUgU2VydmljZVxuICAgIGNvbnN0cnVjdEZhcmdhdGVTZXJ2aWNlRGVmaW5pdGlvblByb3BzLmNsdXN0ZXIgPSBDcmVhdGVDbHVzdGVyKFxuICAgICAgc2NvcGUsXG4gICAgICBgJHtpZH0tY2x1c3RlcmAsXG4gICAgICBjb25zdHJ1Y3RWcGMsXG4gICAgICBjbGllbnRDbHVzdGVyUHJvcHNcbiAgICApO1xuICB9XG5cbiAgLy8gU2V0IHVwIHRoZSBGYXJnYXRlIHNlcnZpY2VcbiAgaWYgKCFjbGllbnRDb250YWluZXJEZWZpbml0aW9uUHJvcHM/LmltYWdlKSB7XG4gICAgY29uc3RydWN0Q29udGFpbmVyRGVmaW50aW9uUHJvcHMuaW1hZ2UgPSBDcmVhdGVJbWFnZShcbiAgICAgIHNjb3BlLFxuICAgICAgaWQsXG4gICAgICBlY3JSZXBvc2l0b3J5QXJuLFxuICAgICAgZWNySW1hZ2VWZXJzaW9uXG4gICAgKTtcbiAgfVxuXG4gIC8vIENyZWF0ZSB0aGUgRmFyZ2F0ZSBTZXJ2aWNlXG4gIGxldCBuZXdDb250YWluZXJEZWZpbml0aW9uO1xuICBbY29uc3RydWN0RmFyZ2F0ZVNlcnZpY2VEZWZpbml0aW9uUHJvcHMudGFza0RlZmluaXRpb24sIG5ld0NvbnRhaW5lckRlZmluaXRpb25dID0gQ3JlYXRlVGFza0RlZmluaXRpb24oXG4gICAgc2NvcGUsXG4gICAgaWQsXG4gICAgY2xpZW50RmFyZ2F0ZVRhc2tEZWZpbml0aW9uUHJvcHMsXG4gICAgY2xpZW50Q29udGFpbmVyRGVmaW5pdGlvblByb3BzLFxuICAgIGNvbnN0cnVjdENvbnRhaW5lckRlZmludGlvblByb3BzXG4gICk7XG5cbiAgaWYgKCFjbGllbnRGYXJnYXRlU2VydmljZVByb3BzPy52cGNTdWJuZXRzKSB7XG4gICAgaWYgKGNvbnN0cnVjdFZwYy5pc29sYXRlZFN1Ym5ldHMubGVuZ3RoKSB7XG4gICAgICBjb25zdHJ1Y3RGYXJnYXRlU2VydmljZURlZmluaXRpb25Qcm9wcy52cGNTdWJuZXRzID0ge1xuICAgICAgICBzdWJuZXRzOiBjb25zdHJ1Y3RWcGMuaXNvbGF0ZWRTdWJuZXRzLFxuICAgICAgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3RydWN0RmFyZ2F0ZVNlcnZpY2VEZWZpbml0aW9uUHJvcHMudnBjU3VibmV0cyA9IHtcbiAgICAgICAgc3VibmV0czogY29uc3RydWN0VnBjLnByaXZhdGVTdWJuZXRzLFxuICAgICAgfTtcbiAgICB9XG4gIH1cblxuICBsZXQgZGVmYXVsdEZhcmdhdGVTZXJ2aWNlUHJvcHM7XG5cbiAgaWYgKCFjbGllbnRGYXJnYXRlU2VydmljZVByb3BzPy5zZWN1cml0eUdyb3Vwcykge1xuICAgIGNvbnN0IHNlcnZpY2VTZWN1cml0eUdyb3VwID0gbmV3IGVjMi5TZWN1cml0eUdyb3VwKHNjb3BlLCBgJHtpZH0tc2dgLCB7XG4gICAgICBhbGxvd0FsbE91dGJvdW5kOiB0cnVlLFxuICAgICAgZGlzYWJsZUlubGluZVJ1bGVzOiBmYWxzZSxcbiAgICAgIHZwYzogY29uc3RydWN0VnBjLFxuICAgICAgLy8gV2UgYWRkIGEgZGVzY3JpcHRpb24gaGVyZSBzbyB0aGF0IHRoaXMgU0cgY2FuIGJlIGVhc2lseSBpZGVudGlmaWVkIGluIHRlc3RzXG4gICAgICBkZXNjcmlwdGlvbjogJ0NvbnN0cnVjdCBjcmVhdGVkIHNlY3VyaXR5IGdyb3VwJ1xuICAgIH0pO1xuICAgIGRlZmF1bHRGYXJnYXRlU2VydmljZVByb3BzID0gb3ZlcnJpZGVQcm9wcyhkZWZhdWx0cy5EZWZhdWx0RmFyZ2F0ZVNlcnZpY2VQcm9wcygpLCB7IHNlY3VyaXR5R3JvdXBzOiBbIHNlcnZpY2VTZWN1cml0eUdyb3VwIF19KTtcbiAgICBkZWZhdWx0cy5hZGRDZm5TdXBwcmVzc1J1bGVzKHNlcnZpY2VTZWN1cml0eUdyb3VwLCBbXG4gICAgICB7XG4gICAgICAgIGlkOiAnVzUnLFxuICAgICAgICByZWFzb246ICdFZ3Jlc3Mgb2YgMC4wLjAuMC8wIGlzIGRlZmF1bHQgYW5kIGdlbmVyYWxseSBjb25zaWRlcmVkIE9LJyxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGlkOiAnVzQwJyxcbiAgICAgICAgcmVhc29uOiAnRWdyZXNzIElQUHJvdG9jb2wgb2YgLTEgaXMgZGVmYXVsdCBhbmQgZ2VuZXJhbGx5IGNvbnNpZGVyZWQgT0snLFxuICAgICAgfVxuICAgIF0pO1xuICB9IGVsc2Uge1xuICAgIGRlZmF1bHRGYXJnYXRlU2VydmljZVByb3BzID0gZGVmYXVsdHMuRGVmYXVsdEZhcmdhdGVTZXJ2aWNlUHJvcHMoKTtcbiAgfVxuXG4gIGNvbnN0IGZhcmdhdGVTZXJ2aWNlUHJvcHMgPSBkZWZhdWx0cy5jb25zb2xpZGF0ZVByb3BzKFxuICAgIGRlZmF1bHRGYXJnYXRlU2VydmljZVByb3BzLFxuICAgIGNsaWVudEZhcmdhdGVTZXJ2aWNlUHJvcHMsXG4gICAgY29uc3RydWN0RmFyZ2F0ZVNlcnZpY2VEZWZpbml0aW9uUHJvcHNcbiAgKTtcblxuICBjb25zdCBuZXdTZXJ2aWNlID0gbmV3IGVjcy5GYXJnYXRlU2VydmljZShcbiAgICBzY29wZSxcbiAgICBgJHtpZH0tc2VydmljZWAsXG4gICAgZmFyZ2F0ZVNlcnZpY2VQcm9wcyxcbiAgKTtcblxuICByZXR1cm4gW25ld1NlcnZpY2UsIG5ld0NvbnRhaW5lckRlZmluaXRpb25dO1xufVxuXG5mdW5jdGlvbiBDcmVhdGVDbHVzdGVyKFxuICBzY29wZTogQ29uc3RydWN0LFxuICBpZDogc3RyaW5nLFxuICBjb25zdHJ1Y3RWcGM6IGVjMi5JVnBjLFxuICBjbGllbnRDbHVzdGVyUHJvcHM/OiBlY3MuQ2x1c3RlclByb3BzXG4pOiBlY3MuSUNsdXN0ZXIge1xuICBjb25zdCBjb25zdHJ1Y3RQcm9wcyA9IHsgdnBjOiBjb25zdHJ1Y3RWcGMgfTtcbiAgcmV0dXJuIG5ldyBlY3MuQ2x1c3RlcihcbiAgICBzY29wZSxcbiAgICBpZCxcbiAgICBkZWZhdWx0cy5jb25zb2xpZGF0ZVByb3BzKFxuICAgICAgZGVmYXVsdHMuRGVmYXVsdENsdXN0ZXJQcm9wcygpLFxuICAgICAgY2xpZW50Q2x1c3RlclByb3BzLFxuICAgICAgY29uc3RydWN0UHJvcHNcbiAgICApXG4gICk7XG59XG5cbmZ1bmN0aW9uIENyZWF0ZUltYWdlKFxuICBzY29wZTogQ29uc3RydWN0LFxuICBpZDogc3RyaW5nLFxuICByZXBvc2l0b3J5QXJuPzogc3RyaW5nLFxuICBpbWFnZVZlcnNpb24/OiBzdHJpbmdcbik6IGVjcy5Db250YWluZXJJbWFnZSB7XG4gIGlmIChyZXBvc2l0b3J5QXJuKSB7XG4gICAgcmV0dXJuIGVjcy5Db250YWluZXJJbWFnZS5mcm9tRWNyUmVwb3NpdG9yeShcbiAgICAgIGVjci5SZXBvc2l0b3J5LmZyb21SZXBvc2l0b3J5QXJuKHNjb3BlLCBgJHtpZH0tY29udGFpbmVyYCwgcmVwb3NpdG9yeUFybiksXG4gICAgICBpbWFnZVZlcnNpb24gfHwgXCJsYXRlc3RcIlxuICAgICk7XG4gIH0gZWxzZSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFwiTm90IEltcGxlbWVudGVkIC0gaW1hZ2Ugd2l0aG91dCByZXBvIG5hbWUgYW5kIHZlcnNpb25cIik7XG4gIH1cbn1cblxuZnVuY3Rpb24gQ3JlYXRlVGFza0RlZmluaXRpb24oXG4gIHNjb3BlOiBDb25zdHJ1Y3QsXG4gIGlkOiBzdHJpbmcsXG4gIGNsaWVudEZhcmdhdGVUYXNrRGVmaW5pdGlvblByb3BzPzogZWNzLkZhcmdhdGVUYXNrRGVmaW5pdGlvblByb3BzLFxuICBjbGllbnRDb250YWluZXJEZWZpbml0aW9uUHJvcHM/OiBlY3MuQ29udGFpbmVyRGVmaW5pdGlvblByb3BzLFxuICBjb25zdHJ1Y3RDb250YWluZXJEZWZpbml0aW9uUHJvcHM/OiBlY3MuQ29udGFpbmVyRGVmaW5pdGlvblByb3BzXG4pOiBbZWNzLkZhcmdhdGVUYXNrRGVmaW5pdGlvbiwgZWNzLkNvbnRhaW5lckRlZmluaXRpb25dIHtcbiAgY29uc3QgdGFza0RlZmluaXRpb25Qcm9wcyA9IGRlZmF1bHRzLmNvbnNvbGlkYXRlUHJvcHMoXG4gICAgZGVmYXVsdHMuRGVmYXVsdEZhcmdhdGVUYXNrRGVmaW5pdGlvblByb3BzKCksXG4gICAgY2xpZW50RmFyZ2F0ZVRhc2tEZWZpbml0aW9uUHJvcHNcbiAgKTtcbiAgY29uc3QgdGFza0RlZmluaXRpb24gPSBuZXcgZWNzLkZhcmdhdGVUYXNrRGVmaW5pdGlvbihcbiAgICBzY29wZSxcbiAgICBgJHtpZH0tdGFza2RlZmAsXG4gICAgdGFza0RlZmluaXRpb25Qcm9wc1xuICApO1xuXG4gIGNvbnN0IGRlZmF1bHRDb250YWluZXJEZWZpbml0aW9uUHJvcHMgPSBkZWZhdWx0cy5jb25zb2xpZGF0ZVByb3BzKGRlZmF1bHRzLkRlZmF1bHRDb250YWluZXJEZWZpbml0aW9uUHJvcHMoKSwge1xuICAgIGNvbnRhaW5lck5hbWU6IGAke2lkfS1jb250YWluZXJgLFxuICB9KTtcbiAgY29uc3QgY29udGFpbmVyRGVmaW5pdGlvblByb3BzID0gZGVmYXVsdHMuY29uc29saWRhdGVQcm9wcyhcbiAgICBkZWZhdWx0Q29udGFpbmVyRGVmaW5pdGlvblByb3BzLFxuICAgIGNsaWVudENvbnRhaW5lckRlZmluaXRpb25Qcm9wcyxcbiAgICBjb25zdHJ1Y3RDb250YWluZXJEZWZpbml0aW9uUHJvcHMsXG4gICk7XG4gIGNvbnN0IGNvbnRhaW5lckRlZmluaXRpb24gPSB0YXNrRGVmaW5pdGlvbi5hZGRDb250YWluZXIoYCR7aWR9LWNvbnRhaW5lcmAsIGNvbnRhaW5lckRlZmluaXRpb25Qcm9wcyk7XG4gIHJldHVybiBbdGFza0RlZmluaXRpb24sIGNvbnRhaW5lckRlZmluaXRpb25dO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gQ2hlY2tGYXJnYXRlUHJvcHMocHJvcHM6IGFueSkge1xuICBsZXQgZXJyb3JNZXNzYWdlcyA9IFwiXCI7XG4gIGxldCBlcnJvckZvdW5kID0gZmFsc2U7XG5cbiAgaWYgKFxuICAgIHByb3BzLmV4aXN0aW5nRmFyZ2F0ZVNlcnZpY2VPYmplY3QgJiZcbiAgICAocHJvcHMuZXhpc3RpbmdJbWFnZU9iamVjdCB8fFxuICAgICAgcHJvcHMuZWNySW1hZ2VWZXJzaW9uIHx8XG4gICAgICBwcm9wcy5jb250YWluZXJEZWZpbml0aW9uUHJvcHMgfHxcbiAgICAgIHByb3BzLmZhcmdhdGVUYXNrRGVmaW5pdGlvblByb3BzIHx8XG4gICAgICBwcm9wcy5lY3JSZXBvc2l0b3J5QXJuIHx8XG4gICAgICBwcm9wcy5mYXJnYXRlU2VydmljZVByb3BzIHx8XG4gICAgICBwcm9wcy5jbHVzdGVyUHJvcHMpXG4gICkge1xuICAgIGVycm9yRm91bmQgPSB0cnVlO1xuICAgIGVycm9yTWVzc2FnZXMgKz1cbiAgICAgIFwiSWYgeW91IHByb3ZpZGUgYW4gZXhpc3RpbmdGYXJnYXRlU2VydmljZU9iamVjdCwgeW91IGNhbm5vdCBwcm92aWRlIGFueSBwcm9wcyBkZWZpbmluZyBhIG5ldyBzZXJ2aWNlXFxuXCI7XG4gIH1cblxuICBpZiAoXG4gICAgcHJvcHMuZXhpc3RpbmdJbWFnZU9iamVjdCAmJlxuICAgIChwcm9wcy5lY3JJbWFnZVZlcnNpb24gfHwgcHJvcHMuZWNyUmVwb3NpdG9yeUFybilcbiAgKSB7XG4gICAgZXJyb3JGb3VuZCA9IHRydWU7XG4gICAgZXJyb3JNZXNzYWdlcyArPVxuICAgICAgXCJJZiB5b3UgcHJvdmlkZSBhbiBleGlzdGluZ0ltYWdlT2JqZWN0IHRoZW4geW91IGNhbm5vdCBwcm92aWRlIGFuIGVjclJlcG9zaXRvcnlBcm4gbm9yIGVjckltYWdlVmVyc2lvblxcblwiO1xuICB9XG5cbiAgLy8gQ29uZmlybSBubyBuZXR3b3JrIGluZm9ybWF0aW9uIGluIFRhcmdldCBHcm91cCBQcm9wc1xuICBpZiAocHJvcHMudGFyZ2V0R3JvdXBQcm9wcz8udnBjKSB7XG4gICAgZXJyb3JGb3VuZCA9IHRydWU7XG4gICAgZXJyb3JNZXNzYWdlcyArPVxuICAgICAgXCJQcm92aWRlIGFsbCBWUEMgaW5mbyBhdCBDb25zdHJ1Y3QgbGV2ZWwsIG5vdCB3aXRoaW4gdGFyZ2V0R3JvdXBQcm9wc1xcblwiO1xuICB9XG5cbiAgaWYgKHByb3BzLmZhcmdhdGVTZXJ2aWNlUHJvcHM/LnRhc2tEZWZpbml0aW9uKSB7XG4gICAgZXJyb3JGb3VuZCA9IHRydWU7XG4gICAgZXJyb3JNZXNzYWdlcyArPVxuICAgICAgXCJUaGUgY29uc3RydWN0IGNhbm5vdCBhY2NlcHQgYW4gZXhpc3RpbmcgdGFzayBkZWZpbml0aW9uIGluIGZhcmdhdGVTZXJ2aWNlUHJvcHNcXG5cIjtcbiAgfVxuXG4gIGlmIChwcm9wcy5mYXJnYXRlU2VydmljZVByb3BzPy5jbHVzdGVyICYmIHByb3BzLmNsdXN0ZXJQcm9wcykge1xuICAgIGVycm9yRm91bmQgPSB0cnVlO1xuICAgIGVycm9yTWVzc2FnZXMgKz1cbiAgICAgIFwiSWYgeW91IHByb3ZpZGUgYSBjbHVzdGVyIGluIGZhcmdhdGVTZXJ2aWNlUHJvcHMgdGhlbiB5b3UgY2Fubm90IHByb3ZpZGUgY2x1c3RlclByb3BzXFxuXCI7XG4gIH1cblxuICBpZiAocHJvcHMuY2x1c3RlclByb3BzPy52cGMpIHtcbiAgICBlcnJvckZvdW5kID0gdHJ1ZTtcbiAgICBlcnJvck1lc3NhZ2VzICs9XG4gICAgICBcIkFsbCBzZXJ2aWNlcyBpbiB0aGUgY29uc3RydWN0IHVzZSB0aGUgY29uc3RydWN0IFZQQywgeW91IGNhbm5vdCBzcGVjaWZ5IGEgVlBDIGluIGNsdXN0ZXJQcm9wc1xcblwiO1xuICB9XG5cbiAgaWYgKFxuICAgIChwcm9wcy5leGlzdGluZ0ZhcmdhdGVTZXJ2aWNlT2JqZWN0IHx8XG4gICAgICBwcm9wcy5leGlzdGluZ0NvbnRhaW5lckRlZmluaXRpb25PYmplY3QpICYmXG4gICAgKCFwcm9wcy5leGlzdGluZ0ZhcmdhdGVTZXJ2aWNlT2JqZWN0IHx8XG4gICAgICAhcHJvcHMuZXhpc3RpbmdDb250YWluZXJEZWZpbml0aW9uT2JqZWN0IHx8XG4gICAgICAhcHJvcHMuZXhpc3RpbmdWcGMpXG4gICkge1xuICAgIGVycm9yRm91bmQgPSB0cnVlO1xuICAgIGVycm9yTWVzc2FnZXMgKz1cbiAgICAgIFwiSWYgYW4gZXhpc3RpbmcgU2VydmljZSBpcyBpbmRpY2F0ZWQgYnkgc3VwcGx5aW5nIGVpdGhlciBleGlzdGluZ0ZhcmdhdGVTZXJ2aWNlT2JqZWN0IG9yIGV4aXN0aW5nQ29udGFpbmVyRGVmaW5pdGlvbk9iamVjdCwgdGhlbiBleGlzdGluZ0ZhcmdhdGVTZXJ2aWNlT2JqZWN0LCBleGlzdGluZ0NvbnRhaW5lckRlZmluaXRpb25PYmplY3QsIGFuZCBleGlzdGluZ1ZwYyBtdXN0IGFsbCBiZSBwcm92aWRlZFxcblwiO1xuICB9XG5cbiAgaWYgKGVycm9yRm91bmQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoZXJyb3JNZXNzYWdlcyk7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFNlcnZpY2VWcGNTZWN1cml0eUdyb3VwSWRzKHNlcnZpY2U6IGVjcy5GYXJnYXRlU2VydmljZSk6IHN0cmluZ1tdIHtcbiAgY29uc3Qgc2VjdXJpdHlHcm91cElkczogc3RyaW5nW10gPSBbXTtcblxuICBzZXJ2aWNlLmNvbm5lY3Rpb25zLnNlY3VyaXR5R3JvdXBzLmZvckVhY2goZWxlbWVudCA9PiBzZWN1cml0eUdyb3VwSWRzLnB1c2goZWxlbWVudC5zZWN1cml0eUdyb3VwSWQpKTtcblxuICByZXR1cm4gc2VjdXJpdHlHcm91cElkcztcbn0iXX0=
174
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFyZ2F0ZS1oZWxwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJmYXJnYXRlLWhlbHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7Ozs7O0dBV0c7OztBQVFILDJDQUEyQztBQUMzQywyQ0FBMkM7QUFDM0MsMkNBQTJDO0FBQzNDLCtCQUErQjtBQUMvQiwwQkFBbUM7QUFPbkM7O0dBRUc7QUFDSCxTQUFnQixvQkFBb0IsQ0FDbEMsS0FBZ0IsRUFDaEIsRUFBVSxFQUNWLFlBQXNCLEVBQ3RCLGtCQUFxQyxFQUNyQyxnQkFBeUIsRUFDekIsZUFBd0IsRUFDeEIsZ0NBQXVFLEVBQ3ZFLDhCQUFtRSxFQUNuRSx5QkFBeUQ7SUFFekQsUUFBUSxDQUFDLHFCQUFxQixDQUM1QixLQUFLLEVBQ0wsWUFBWSxFQUNaLFFBQVEsQ0FBQyxvQkFBb0IsQ0FBQyxPQUFPLENBQ3RDLENBQUM7SUFDRixRQUFRLENBQUMscUJBQXFCLENBQzVCLEtBQUssRUFDTCxZQUFZLEVBQ1osUUFBUSxDQUFDLG9CQUFvQixDQUFDLE9BQU8sQ0FDdEMsQ0FBQztJQUNGLFFBQVEsQ0FBQyxxQkFBcUIsQ0FDNUIsS0FBSyxFQUNMLFlBQVksRUFDWixRQUFRLENBQUMsb0JBQW9CLENBQUMsRUFBRSxDQUNqQyxDQUFDO0lBRUYsTUFBTSxnQ0FBZ0MsR0FBUSxFQUFFLENBQUM7SUFDakQsTUFBTSxzQ0FBc0MsR0FBUSxFQUFFLENBQUM7SUFFdkQsSUFBSSxDQUFDLHlCQUF5QixFQUFFLE9BQU8sRUFBRTtRQUN2Qyw0QkFBNEI7UUFDNUIsc0NBQXNDLENBQUMsT0FBTyxHQUFHLGFBQWEsQ0FDNUQsS0FBSyxFQUNMLEdBQUcsRUFBRSxVQUFVLEVBQ2YsWUFBWSxFQUNaLGtCQUFrQixDQUNuQixDQUFDO0tBQ0g7SUFFRCw2QkFBNkI7SUFDN0IsSUFBSSxDQUFDLDhCQUE4QixFQUFFLEtBQUssRUFBRTtRQUMxQyxnQ0FBZ0MsQ0FBQyxLQUFLLEdBQUcsV0FBVyxD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QUssQ0FBQyxpQ0FBaUM7WUFDeEMsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLEVBQ3JCO1FBQ0EsVUFBVSxHQUFHLElBQUksQ0FBQztRQUNsQixhQUFhO1lBQ1gseU9BQXlPLENBQUM7S0FDN087SUFFRCxJQUFJLFVBQVUsRUFBRTtRQUNkLE1BQU0sSUFBSSxLQUFLLENBQUMsYUFBYSxDQUFDLENBQUM7S0FDaEM7QUFDSCxDQUFDO0FBcEVELDhDQW9FQztBQUVEOztHQUVHO0FBQ0gsU0FBZ0IsNkJBQTZCLENBQUMsT0FBMkI7SUFDdkUsTUFBTSxnQkFBZ0IsR0FBYSxFQUFFLENBQUM7SUFFdEMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDO0lBRXRHLE9BQU8sZ0JBQWdCLENBQUM7QUFDMUIsQ0FBQztBQU5ELHNFQU1DIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiAgQ29weXJpZ2h0IEFtYXpvbi5jb20sIEluYy4gb3IgaXRzIGFmZmlsaWF0ZXMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIikuIFlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2VcbiAqICB3aXRoIHRoZSBMaWNlbnNlLiBBIGNvcHkgb2YgdGhlIExpY2Vuc2UgaXMgbG9jYXRlZCBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogIG9yIGluIHRoZSAnbGljZW5zZScgZmlsZSBhY2NvbXBhbnlpbmcgdGhpcyBmaWxlLiBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgb24gYW4gJ0FTIElTJyBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTXG4gKiAgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZXhwcmVzcyBvciBpbXBsaWVkLiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnNcbiAqICBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuLypcbiAqICBUaGUgZnVuY3Rpb25zIGZvdW5kIGhlcmUgaW4gdGhlIGNvcmUgbGlicmFyeSBhcmUgZm9yIGludGVybmFsIHVzZSBhbmQgY2FuIGJlIGNoYW5nZWRcbiAqICBvciByZW1vdmVkIG91dHNpZGUgb2YgYSBtYWpvciByZWxlYXNlLiBXZSByZWNvbW1lbmQgYWdhaW5zdCBjYWxsaW5nIHRoZW0gZGlyZWN0bHkgZnJvbSBjbGllbnQgY29kZS5cbiAqL1xuXG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0ICogYXMgZWMyIGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtZWMyXCI7XG5pbXBvcnQgKiBhcyBlY3MgZnJvbSBcImF3cy1jZGstbGliL2F3cy1lY3NcIjtcbmltcG9ydCAqIGFzIGVjciBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWVjclwiO1xuaW1wb3J0ICogYXMgZGVmYXVsdHMgZnJvbSBcIi4uXCI7XG5pbXBvcnQgeyBvdmVycmlkZVByb3BzIH0gZnJvbSBcIi4uXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3JlYXRlRmFyZ2F0ZVNlcnZpY2VSZXNwb25zZSB7XG4gIHJlYWRvbmx5IHNlcnZpY2U6IGVjcy5GYXJnYXRlU2VydmljZSxcbiAgcmVhZG9ubHkgY29udGFpbmVyRGVmaW5pdGlvbjogZWNzLkNvbnRhaW5lckRlZmluaXRpb25cbn1cblxuLyoqXG4gKiBAaW50ZXJuYWwgVGhpcyBpcyBhbiBpbnRlcm5hbCBjb3JlIGZ1bmN0aW9uIGFuZCBzaG91bGQgbm90IGJlIGNhbGxlZCBkaXJlY3RseSBieSBTb2x1dGlvbnMgQ29uc3RydWN0cyBjbGllbnRzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gQ3JlYXRlRmFyZ2F0ZVNlcnZpY2UoXG4gIHNjb3BlOiBDb25zdHJ1Y3QsXG4gIGlkOiBzdHJpbmcsXG4gIGNvbnN0cnVjdFZwYzogZWMyLklWcGMsXG4gIGNsaWVudENsdXN0ZXJQcm9wcz86IGVjcy5DbHVzdGVyUHJvcHMsXG4gIGVjclJlcG9zaXRvcnlBcm4/OiBzdHJpbmcsXG4gIGVjckltYWdlVmVyc2lvbj86IHN0cmluZyxcbiAgY2xpZW50RmFyZ2F0ZVRhc2tEZWZpbml0aW9uUHJvcHM/OiBlY3MuRmFyZ2F0ZVRhc2tEZWZpbml0aW9uUHJvcHMgfCBhbnksXG4gIGNsaWVudENvbnRhaW5lckRlZmluaXRpb25Qcm9wcz86IGVjcy5Db250YWluZXJEZWZpbml0aW9uUHJvcHMgfCBhbnksXG4gIGNsaWVudEZhcmdhdGVTZXJ2aWNlUHJvcHM/OiBlY3MuRmFyZ2F0ZVNlcnZpY2VQcm9wcyB8IGFueVxuKTogQ3JlYXRlRmFyZ2F0ZVNlcnZpY2VSZXNwb25zZSB7XG4gIGRlZmF1bHRzLkFkZEF3c1NlcnZpY2VFbmRwb2ludChcbiAgICBzY29wZSxcbiAgICBjb25zdHJ1Y3RWcGMsXG4gICAgZGVmYXVsdHMuU2VydmljZUVuZHBvaW50VHlwZXMuRUNSX0FQSVxuICApO1xuICBkZWZhdWx0cy5BZGRBd3NTZXJ2aWNlRW5kcG9pbnQoXG4gICAgc2NvcGUsXG4gICAgY29uc3RydWN0VnBjLFxuICAgIGRlZmF1bHRzLlNlcnZpY2VFbmRwb2ludFR5cGVzLkVDUl9ES1JcbiAgKTtcbiAgZGVmYXVsdHMuQWRkQXdzU2VydmljZUVuZHBvaW50KFxuICAgIHNjb3BlLFxuICAgIGNvbnN0cnVjdFZwYyxcbiAgICBkZWZhdWx0cy5TZXJ2aWNlRW5kcG9pbnRUeXBlcy5TM1xuICApO1xuXG4gIGNvbnN0IGNvbnN0cnVjdENvbnRhaW5lckRlZmludGlvblByb3BzOiBhbnkgPSB7fTtcbiAgY29uc3QgY29uc3RydWN0RmFyZ2F0ZVNlcnZpY2VEZWZpbml0aW9uUHJvcHM6IGFueSA9IHt9O1xuXG4gIGlmICghY2xpZW50RmFyZ2F0ZVNlcnZpY2VQcm9wcz8uY2x1c3Rlcikge1xuICAgIC8vIENvbnN0cnVjdCBGYXJnYXRlIFNlcnZpY2VcbiAgICBjb25zdHJ1Y3RGYXJnYXRlU2VydmljZURlZmluaXRpb25Qcm9wcy5jbHVzdGVyID0gQ3JlYXRlQ2x1c3RlcihcbiAgICAgIHNjb3BlLFxuICAgICAgYCR7aWR9LWNsdXN0ZXJgLFxuICAgICAgY29uc3RydWN0VnBjLFxuICAgICAgY2xpZW50Q2x1c3RlclByb3BzXG4gICAgKTtcbiAgfVxuXG4gIC8vIFNldCB1cCB0aGUgRmFyZ2F0ZSBzZXJ2aWNlXG4gIGlmICghY2xpZW50Q29udGFpbmVyRGVmaW5pdGlvblByb3BzPy5pbWFnZSkge1xuICAgIGNvbnN0cnVjdENvbnRhaW5lckRlZmludGlvblByb3BzLmltYWdlID0gQ3JlYXRlSW1hZ2UoXG4gICAgICBzY29wZSxcbiAgICAgIGlkLFxuICAgICAgZWNyUmVwb3NpdG9yeUFybixcbiAgICAgIGVjckltYWdlVmVyc2lvblxuICAgICk7XG4gIH1cblxuICAvLyBDcmVhdGUgdGhlIEZhcmdhdGUgU2VydmljZVxuICBsZXQgbmV3Q29udGFpbmVyRGVmaW5pdGlvbjtcbiAgY29uc3QgY3JlYXRlVGFza0RlZmluaXRpb25SZXNwb25zZSA9IENyZWF0ZVRhc2tEZWZpbml0aW9uKFxuICAgIHNjb3BlLFxuICAgIGlkLFxuICAgIGNsaWVudEZhcmdhdGVUYXNrRGVmaW5pdGlvblByb3BzLFxuICAgIGNsaWVudENvbnRhaW5lckRlZmluaXRpb25Qcm9wcyxcbiAgICBjb25zdHJ1Y3RDb250YWluZXJEZWZpbnRpb25Qcm9wc1xuICApO1xuICBjb25zdHJ1Y3RGYXJnYXRlU2VydmljZURlZmluaXRpb25Qcm9wcy50YXNrRGVmaW5pdGlvbiA9IGNyZWF0ZVRhc2tEZWZpbml0aW9uUmVzcG9uc2UudGFza0RlZmluaXRpb247XG4gIG5ld0NvbnRhaW5lckRlZmluaXRpb24gPSBjcmVhdGVUYXNrRGVmaW5pdGlvblJlc3BvbnNlLmNvbnRhaW5lckRlZmluaXRpb247XG5cbiAgaWYgKCFjbGllbnRGYXJnYXRlU2VydmljZVByb3BzPy52cGNTdWJuZXRzKSB7XG4gICAgaWYgKGNvbnN0cnVjdFZwYy5pc29sYXRlZFN1Ym5ldHMubGVuZ3RoKSB7XG4gICAgICBjb25zdHJ1Y3RGYXJnYXRlU2VydmljZURlZmluaXRpb25Qcm9wcy52cGNTdWJuZXRzID0ge1xuICAgICAgICBzdWJuZXRzOiBjb25zdHJ1Y3RWcGMuaXNvbGF0ZWRTdWJuZXRzLFxuICAgICAgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3RydWN0RmFyZ2F0ZVNlcnZpY2VEZWZpbml0aW9uUHJvcHMudnBjU3VibmV0cyA9IHtcbiAgICAgICAgc3VibmV0czogY29uc3RydWN0VnBjLnByaXZhdGVTdWJuZXRzLFxuICAgICAgfTtcbiAgICB9XG4gIH1cblxuICBsZXQgZGVmYXVsdEZhcmdhdGVTZXJ2aWNlUHJvcHM7XG5cbiAgaWYgKCFjbGllbnRGYXJnYXRlU2VydmljZVByb3BzPy5zZWN1cml0eUdyb3Vwcykge1xuICAgIGNvbnN0IHNlcnZpY2VTZWN1cml0eUdyb3VwID0gbmV3IGVjMi5TZWN1cml0eUdyb3VwKHNjb3BlLCBgJHtpZH0tc2dgLCB7XG4gICAgICBhbGxvd0FsbE91dGJvdW5kOiB0cnVlLFxuICAgICAgZGlzYWJsZUlubGluZVJ1bGVzOiBmYWxzZSxcbiAgICAgIHZwYzogY29uc3RydWN0VnBjLFxuICAgICAgLy8gV2UgYWRkIGEgZGVzY3JpcHRpb24gaGVyZSBzbyB0aGF0IHRoaXMgU0cgY2FuIGJlIGVhc2lseSBpZGVudGlmaWVkIGluIHRlc3RzXG4gICAgICBkZXNjcmlwdGlvbjogJ0NvbnN0cnVjdCBjcmVhdGVkIHNlY3VyaXR5IGdyb3VwJ1xuICAgIH0pO1xuICAgIGRlZmF1bHRGYXJnYXRlU2VydmljZVByb3BzID0gb3ZlcnJpZGVQcm9wcyhkZWZhdWx0cy5EZWZhdWx0RmFyZ2F0ZVNlcnZpY2VQcm9wcygpLCB7IHNlY3VyaXR5R3JvdXBzOiBbIHNlcnZpY2VTZWN1cml0eUdyb3VwIF19KTtcbiAgICBkZWZhdWx0cy5hZGRDZm5TdXBwcmVzc1J1bGVzKHNlcnZpY2VTZWN1cml0eUdyb3VwLCBbXG4gICAgICB7XG4gICAgICAgIGlkOiAnVzUnLFxuICAgICAgICByZWFzb246ICdFZ3Jlc3Mgb2YgMC4wLjAuMC8wIGlzIGRlZmF1bHQgYW5kIGdlbmVyYWxseSBjb25zaWRlcmVkIE9LJyxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGlkOiAnVzQwJyxcbiAgICAgICAgcmVhc29uOiAnRWdyZXNzIElQUHJvdG9jb2wgb2YgLTEgaXMgZGVmYXVsdCBhbmQgZ2VuZXJhbGx5IGNvbnNpZGVyZWQgT0snLFxuICAgICAgfVxuICAgIF0pO1xuICB9IGVsc2Uge1xuICAgIGRlZmF1bHRGYXJnYXRlU2VydmljZVByb3BzID0gZGVmYXVsdHMuRGVmYXVsdEZhcmdhdGVTZXJ2aWNlUHJvcHMoKTtcbiAgfVxuXG4gIGNvbnN0IGZhcmdhdGVTZXJ2aWNlUHJvcHMgPSBkZWZhdWx0cy5jb25zb2xpZGF0ZVByb3BzKFxuICAgIGRlZmF1bHRGYXJnYXRlU2VydmljZVByb3BzLFxuICAgIGNsaWVudEZhcmdhdGVTZXJ2aWNlUHJvcHMsXG4gICAgY29uc3RydWN0RmFyZ2F0ZVNlcnZpY2VEZWZpbml0aW9uUHJvcHNcbiAgKTtcblxuICBjb25zdCBuZXdTZXJ2aWNlID0gbmV3IGVjcy5GYXJnYXRlU2VydmljZShcbiAgICBzY29wZSxcbiAgICBgJHtpZH0tc2VydmljZWAsXG4gICAgZmFyZ2F0ZVNlcnZpY2VQcm9wcyxcbiAgKTtcblxuICByZXR1cm4geyBzZXJ2aWNlOiBuZXdTZXJ2aWNlLCBjb250YWluZXJEZWZpbml0aW9uOiBuZXdDb250YWluZXJEZWZpbml0aW9uIH07XG59XG5cbmZ1bmN0aW9uIENyZWF0ZUNsdXN0ZXIoXG4gIHNjb3BlOiBDb25zdHJ1Y3QsXG4gIGlkOiBzdHJpbmcsXG4gIGNvbnN0cnVjdFZwYzogZWMyLklWcGMsXG4gIGNsaWVudENsdXN0ZXJQcm9wcz86IGVjcy5DbHVzdGVyUHJvcHNcbik6IGVjcy5JQ2x1c3RlciB7XG4gIGNvbnN0IGNvbnN0cnVjdFByb3BzID0geyB2cGM6IGNvbnN0cnVjdFZwYyB9O1xuICByZXR1cm4gbmV3IGVjcy5DbHVzdGVyKFxuICAgIHNjb3BlLFxuICAgIGlkLFxuICAgIGRlZmF1bHRzLmNvbnNvbGlkYXRlUHJvcHMoXG4gICAgICBkZWZhdWx0cy5EZWZhdWx0Q2x1c3RlclByb3BzKCksXG4gICAgICBjbGllbnRDbHVzdGVyUHJvcHMsXG4gICAgICBjb25zdHJ1Y3RQcm9wc1xuICAgIClcbiAgKTtcbn1cblxuZnVuY3Rpb24gQ3JlYXRlSW1hZ2UoXG4gIHNjb3BlOiBDb25zdHJ1Y3QsXG4gIGlkOiBzdHJpbmcsXG4gIHJlcG9zaXRvcnlBcm4/OiBzdHJpbmcsXG4gIGltYWdlVmVyc2lvbj86IHN0cmluZ1xuKTogZWNzLkNvbnRhaW5lckltYWdlIHtcbiAgaWYgKHJlcG9zaXRvcnlBcm4pIHtcbiAgICByZXR1cm4gZWNzLkNvbnRhaW5lckltYWdlLmZyb21FY3JSZXBvc2l0b3J5KFxuICAgICAgZWNyLlJlcG9zaXRvcnkuZnJvbVJlcG9zaXRvcnlBcm4oc2NvcGUsIGAke2lkfS1jb250YWluZXJgLCByZXBvc2l0b3J5QXJuKSxcbiAgICAgIGltYWdlVmVyc2lvbiB8fCBcImxhdGVzdFwiXG4gICAgKTtcbiAgfSBlbHNlIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJOb3QgSW1wbGVtZW50ZWQgLSBpbWFnZSB3aXRob3V0IHJlcG8gbmFtZSBhbmQgdmVyc2lvblwiKTtcbiAgfVxufVxuXG5pbnRlcmZhY2UgQ3JlYXRlVGFza0RlZmluaXRpb25SZXNwb25zZSB7XG4gIHRhc2tEZWZpbml0aW9uOiBlY3MuRmFyZ2F0ZVRhc2tEZWZpbml0aW9uXG4gIGNvbnRhaW5lckRlZmluaXRpb246IGVjcy5Db250YWluZXJEZWZpbml0aW9uXG59XG5cbmZ1bmN0aW9uIENyZWF0ZVRhc2tEZWZpbml0aW9uKFxuICBzY29wZTogQ29uc3RydWN0LFxuICBpZDogc3RyaW5nLFxuICBjbGllbnRGYXJnYXRlVGFza0RlZmluaXRpb25Qcm9wcz86IGVjcy5GYXJnYXRlVGFza0RlZmluaXRpb25Qcm9wcyxcbiAgY2xpZW50Q29udGFpbmVyRGVmaW5pdGlvblByb3BzPzogZWNzLkNvbnRhaW5lckRlZmluaXRpb25Qcm9wcyxcbiAgY29uc3RydWN0Q29udGFpbmVyRGVmaW5pdGlvblByb3BzPzogZWNzLkNvbnRhaW5lckRlZmluaXRpb25Qcm9wc1xuKTogQ3JlYXRlVGFza0RlZmluaXRpb25SZXNwb25zZSB7XG4gIGNvbnN0IHRhc2tEZWZpbml0aW9uUHJvcHMgPSBkZWZhdWx0cy5jb25zb2xpZGF0ZVByb3BzKFxuICAgIGRlZmF1bHRzLkRlZmF1bHRGYXJnYXRlVGFza0RlZmluaXRpb25Qcm9wcygpLFxuICAgIGNsaWVudEZhcmdhdGVUYXNrRGVmaW5pdGlvblByb3BzXG4gICk7XG4gIGNvbnN0IHRhc2tEZWZpbml0aW9uID0gbmV3IGVjcy5GYXJnYXRlVGFza0RlZmluaXRpb24oXG4gICAgc2NvcGUsXG4gICAgYCR7aWR9LXRhc2tkZWZgLFxuICAgIHRhc2tEZWZpbml0aW9uUHJvcHNcbiAgKTtcblxuICBjb25zdCBkZWZhdWx0Q29udGFpbmVyRGVmaW5pdGlvblByb3BzID0gZGVmYXVsdHMuY29uc29saWRhdGVQcm9wcyhkZWZhdWx0cy5EZWZhdWx0Q29udGFpbmVyRGVmaW5pdGlvblByb3BzKCksIHtcbiAgICBjb250YWluZXJOYW1lOiBgJHtpZH0tY29udGFpbmVyYCxcbiAgfSk7XG4gIGNvbnN0IGNvbnRhaW5lckRlZmluaXRpb25Qcm9wcyA9IGRlZmF1bHRzLmNvbnNvbGlkYXRlUHJvcHMoXG4gICAgZGVmYXVsdENvbnRhaW5lckRlZmluaXRpb25Qcm9wcyxcbiAgICBjbGllbnRDb250YWluZXJEZWZpbml0aW9uUHJvcHMsXG4gICAgY29uc3RydWN0Q29udGFpbmVyRGVmaW5pdGlvblByb3BzLFxuICApO1xuICBjb25zdCBjb250YWluZXJEZWZpbml0aW9uID0gdGFza0RlZmluaXRpb24uYWRkQ29udGFpbmVyKGAke2lkfS1jb250YWluZXJgLCBjb250YWluZXJEZWZpbml0aW9uUHJvcHMpO1xuICByZXR1cm4geyB0YXNrRGVmaW5pdGlvbiwgY29udGFpbmVyRGVmaW5pdGlvbiB9O1xufVxuXG4vKipcbiAqIEBpbnRlcm5hbCBUaGlzIGlzIGFuIGludGVybmFsIGNvcmUgZnVuY3Rpb24gYW5kIHNob3VsZCBub3QgYmUgY2FsbGVkIGRpcmVjdGx5IGJ5IFNvbHV0aW9ucyBDb25zdHJ1Y3RzIGNsaWVudHMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBDaGVja0ZhcmdhdGVQcm9wcyhwcm9wczogYW55KSB7XG4gIGxldCBlcnJvck1lc3NhZ2VzID0gXCJcIjtcbiAgbGV0IGVycm9yRm91bmQgPSBmYWxzZTtcblxuICBpZiAoXG4gICAgcHJvcHMuZXhpc3RpbmdGYXJnYXRlU2VydmljZU9iamVjdCAmJlxuICAgIChwcm9wcy5leGlzdGluZ0ltYWdlT2JqZWN0IHx8XG4gICAgICBwcm9wcy5lY3JJbWFnZVZlcnNpb24gfHxcbiAgICAgIHByb3BzLmNvbnRhaW5lckRlZmluaXRpb25Qcm9wcyB8fFxuICAgICAgcHJvcHMuZmFyZ2F0ZVRhc2tEZWZpbml0aW9uUHJvcHMgfHxcbiAgICAgIHByb3BzLmVjclJlcG9zaXRvcnlBcm4gfHxcbiAgICAgIHByb3BzLmZhcmdhdGVTZXJ2aWNlUHJvcHMgfHxcbiAgICAgIHByb3BzLmNsdXN0ZXJQcm9wcylcbiAgKSB7XG4gICAgZXJyb3JGb3VuZCA9IHRydWU7XG4gICAgZXJyb3JNZXNzYWdlcyArPVxuICAgICAgXCJJZiB5b3UgcHJvdmlkZSBhbiBleGlzdGluZ0ZhcmdhdGVTZXJ2aWNlT2JqZWN0LCB5b3UgY2Fubm90IHByb3ZpZGUgYW55IHByb3BzIGRlZmluaW5nIGEgbmV3IHNlcnZpY2VcXG5cIjtcbiAgfVxuXG4gIGlmIChcbiAgICBwcm9wcy5leGlzdGluZ0ltYWdlT2JqZWN0ICYmXG4gICAgKHByb3BzLmVjckltYWdlVmVyc2lvbiB8fCBwcm9wcy5lY3JSZXBvc2l0b3J5QXJuKVxuICApIHtcbiAgICBlcnJvckZvdW5kID0gdHJ1ZTtcbiAgICBlcnJvck1lc3NhZ2VzICs9XG4gICAgICBcIklmIHlvdSBwcm92aWRlIGFuIGV4aXN0aW5nSW1hZ2VPYmplY3QgdGhlbiB5b3UgY2Fubm90IHByb3ZpZGUgYW4gZWNyUmVwb3NpdG9yeUFybiBub3IgZWNySW1hZ2VWZXJzaW9uXFxuXCI7XG4gIH1cblxuICAvLyBDb25maXJtIG5vIG5ldHdvcmsgaW5mb3JtYXRpb24gaW4gVGFyZ2V0IEdyb3VwIFByb3BzXG4gIGlmIChwcm9wcy50YXJnZXRHcm91cFByb3BzPy52cGMpIHtcbiAgICBlcnJvckZvdW5kID0gdHJ1ZTtcbiAgICBlcnJvck1lc3NhZ2VzICs9XG4gICAgICBcIlByb3ZpZGUgYWxsIFZQQyBpbmZvIGF0IENvbnN0cnVjdCBsZXZlbCwgbm90IHdpdGhpbiB0YXJnZXRHcm91cFByb3BzXFxuXCI7XG4gIH1cblxuICBpZiAocHJvcHMuZmFyZ2F0ZVNlcnZpY2VQcm9wcz8udGFza0RlZmluaXRpb24pIHtcbiAgICBlcnJvckZvdW5kID0gdHJ1ZTtcbiAgICBlcnJvck1lc3NhZ2VzICs9XG4gICAgICBcIlRoZSBjb25zdHJ1Y3QgY2Fubm90IGFjY2VwdCBhbiBleGlzdGluZyB0YXNrIGRlZmluaXRpb24gaW4gZmFyZ2F0ZVNlcnZpY2VQcm9wc1xcblwiO1xuICB9XG5cbiAgaWYgKHByb3BzLmZhcmdhdGVTZXJ2aWNlUHJvcHM/LmNsdXN0ZXIgJiYgcHJvcHMuY2x1c3RlclByb3BzKSB7XG4gICAgZXJyb3JGb3VuZCA9IHRydWU7XG4gICAgZXJyb3JNZXNzYWdlcyArPVxuICAgICAgXCJJZiB5b3UgcHJvdmlkZSBhIGNsdXN0ZXIgaW4gZmFyZ2F0ZVNlcnZpY2VQcm9wcyB0aGVuIHlvdSBjYW5ub3QgcHJvdmlkZSBjbHVzdGVyUHJvcHNcXG5cIjtcbiAgfVxuXG4gIGlmIChwcm9wcy5jbHVzdGVyUHJvcHM/LnZwYykge1xuICAgIGVycm9yRm91bmQgPSB0cnVlO1xuICAgIGVycm9yTWVzc2FnZXMgKz1cbiAgICAgIFwiQWxsIHNlcnZpY2VzIGluIHRoZSBjb25zdHJ1Y3QgdXNlIHRoZSBjb25zdHJ1Y3QgVlBDLCB5b3UgY2Fubm90IHNwZWNpZnkgYSBWUEMgaW4gY2x1c3RlclByb3BzXFxuXCI7XG4gIH1cblxuICBpZiAoXG4gICAgKHByb3BzLmV4aXN0aW5nRmFyZ2F0ZVNlcnZpY2VPYmplY3QgfHxcbiAgICAgIHByb3BzLmV4aXN0aW5nQ29udGFpbmVyRGVmaW5pdGlvbk9iamVjdCkgJiZcbiAgICAoIXByb3BzLmV4aXN0aW5nRmFyZ2F0ZVNlcnZpY2VPYmplY3QgfHxcbiAgICAgICFwcm9wcy5leGlzdGluZ0NvbnRhaW5lckRlZmluaXRpb25PYmplY3QgfHxcbiAgICAgICFwcm9wcy5leGlzdGluZ1ZwYylcbiAgKSB7XG4gICAgZXJyb3JGb3VuZCA9IHRydWU7XG4gICAgZXJyb3JNZXNzYWdlcyArPVxuICAgICAgXCJJZiBhbiBleGlzdGluZyBTZXJ2aWNlIGlzIGluZGljYXRlZCBieSBzdXBwbHlpbmcgZWl0aGVyIGV4aXN0aW5nRmFyZ2F0ZVNlcnZpY2VPYmplY3Qgb3IgZXhpc3RpbmdDb250YWluZXJEZWZpbml0aW9uT2JqZWN0LCB0aGVuIGV4aXN0aW5nRmFyZ2F0ZVNlcnZpY2VPYmplY3QsIGV4aXN0aW5nQ29udGFpbmVyRGVmaW5pdGlvbk9iamVjdCwgYW5kIGV4aXN0aW5nVnBjIG11c3QgYWxsIGJlIHByb3ZpZGVkXFxuXCI7XG4gIH1cblxuICBpZiAoZXJyb3JGb3VuZCkge1xuICAgIHRocm93IG5ldyBFcnJvcihlcnJvck1lc3NhZ2VzKTtcbiAgfVxufVxuXG4vKipcbiAqIEBpbnRlcm5hbCBUaGlzIGlzIGFuIGludGVybmFsIGNvcmUgZnVuY3Rpb24gYW5kIHNob3VsZCBub3QgYmUgY2FsbGVkIGRpcmVjdGx5IGJ5IFNvbHV0aW9ucyBDb25zdHJ1Y3RzIGNsaWVudHMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRTZXJ2aWNlVnBjU2VjdXJpdHlHcm91cElkcyhzZXJ2aWNlOiBlY3MuRmFyZ2F0ZVNlcnZpY2UpOiBzdHJpbmdbXSB7XG4gIGNvbnN0IHNlY3VyaXR5R3JvdXBJZHM6IHN0cmluZ1tdID0gW107XG5cbiAgc2VydmljZS5jb25uZWN0aW9ucy5zZWN1cml0eUdyb3Vwcy5mb3JFYWNoKGVsZW1lbnQgPT4gc2VjdXJpdHlHcm91cElkcy5wdXNoKGVsZW1lbnQuc2VjdXJpdHlHcm91cElkKSk7XG5cbiAgcmV0dXJuIHNlY3VyaXR5R3JvdXBJZHM7XG59Il19
@@ -12,6 +12,6 @@
12
12
  */
13
13
  import { CfnDatabaseProps } from "aws-cdk-lib/aws-glue";
14
14
  /**
15
- * Default database props
15
+ * @internal This is an internal core function and should not be called directly by Solutions Constructs clients.
16
16
  */
17
17
  export declare function DefaultGlueDatabaseProps(): CfnDatabaseProps;
@@ -15,7 +15,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
15
15
  exports.DefaultGlueDatabaseProps = void 0;
16
16
  const aws_cdk_lib_1 = require("aws-cdk-lib");
17
17
  /**
18
- * Default database props
18
+ * @internal This is an internal core function and should not be called directly by Solutions Constructs clients.
19
19
  */
20
20
  function DefaultGlueDatabaseProps() {
21
21
  const _databaseProps = {
@@ -27,4 +27,4 @@ function DefaultGlueDatabaseProps() {
27
27
  return _databaseProps;
28
28
  }
29
29
  exports.DefaultGlueDatabaseProps = DefaultGlueDatabaseProps;
30
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2x1ZS1kYXRhYmFzZS1kZWZhdWx0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImdsdWUtZGF0YWJhc2UtZGVmYXVsdHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7Ozs7OztHQVdHOzs7QUFHSCw2Q0FBa0M7QUFFbEM7O0dBRUc7QUFDSCxTQUFnQix3QkFBd0I7SUFDdEMsTUFBTSxjQUFjLEdBQXFCO1FBQ3ZDLFNBQVMsRUFBRSxpQkFBRyxDQUFDLFVBQVU7UUFDekIsYUFBYSxFQUFFO1lBQ2IsV0FBVyxFQUFFLDJEQUEyRDtTQUN6RTtLQUNGLENBQUM7SUFFRixPQUFPLGNBQWMsQ0FBQztBQUN4QixDQUFDO0FBVEQsNERBU0MiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqICBDb3B5cmlnaHQgQW1hem9uLmNvbSwgSW5jLiBvciBpdHMgYWZmaWxpYXRlcy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKS4gWW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZVxuICogIHdpdGggdGhlIExpY2Vuc2UuIEEgY29weSBvZiB0aGUgTGljZW5zZSBpcyBsb2NhdGVkIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiAgb3IgaW4gdGhlICdsaWNlbnNlJyBmaWxlIGFjY29tcGFueWluZyB0aGlzIGZpbGUuIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAnQVMgSVMnIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVNcbiAqICBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBleHByZXNzIG9yIGltcGxpZWQuIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9uc1xuICogIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQgeyBDZm5EYXRhYmFzZVByb3BzIH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1nbHVlXCI7XG5pbXBvcnQgeyBBd3MgfSBmcm9tIFwiYXdzLWNkay1saWJcIjtcblxuLyoqXG4gKiBEZWZhdWx0IGRhdGFiYXNlIHByb3BzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBEZWZhdWx0R2x1ZURhdGFiYXNlUHJvcHMoKTogQ2ZuRGF0YWJhc2VQcm9wcyB7XG4gIGNvbnN0IF9kYXRhYmFzZVByb3BzOiBDZm5EYXRhYmFzZVByb3BzID0ge1xuICAgIGNhdGFsb2dJZDogQXdzLkFDQ09VTlRfSUQsXG4gICAgZGF0YWJhc2VJbnB1dDoge1xuICAgICAgZGVzY3JpcHRpb246ICdBbiBBV1MgR2x1ZSBkYXRhYmFzZSBnZW5lcmF0ZWQgYnkgQVdTIFNvbHV0aW9ucyBDb25zdHJ1Y3QnXG4gICAgfVxuICB9O1xuXG4gIHJldHVybiBfZGF0YWJhc2VQcm9wcztcbn0iXX0=
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2x1ZS1kYXRhYmFzZS1kZWZhdWx0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImdsdWUtZGF0YWJhc2UtZGVmYXVsdHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7Ozs7OztHQVdHOzs7QUFRSCw2Q0FBa0M7QUFFbEM7O0dBRUc7QUFDSCxTQUFnQix3QkFBd0I7SUFDdEMsTUFBTSxjQUFjLEdBQXFCO1FBQ3ZDLFNBQVMsRUFBRSxpQkFBRyxDQUFDLFVBQVU7UUFDekIsYUFBYSxFQUFFO1lBQ2IsV0FBVyxFQUFFLDJEQUEyRDtTQUN6RTtLQUNGLENBQUM7SUFFRixPQUFPLGNBQWMsQ0FBQztBQUN4QixDQUFDO0FBVEQsNERBU0MiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqICBDb3B5cmlnaHQgQW1hem9uLmNvbSwgSW5jLiBvciBpdHMgYWZmaWxpYXRlcy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKS4gWW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZVxuICogIHdpdGggdGhlIExpY2Vuc2UuIEEgY29weSBvZiB0aGUgTGljZW5zZSBpcyBsb2NhdGVkIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiAgb3IgaW4gdGhlICdsaWNlbnNlJyBmaWxlIGFjY29tcGFueWluZyB0aGlzIGZpbGUuIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAnQVMgSVMnIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVNcbiAqICBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBleHByZXNzIG9yIGltcGxpZWQuIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9uc1xuICogIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG4vKlxuICogIFRoZSBmdW5jdGlvbnMgZm91bmQgaGVyZSBpbiB0aGUgY29yZSBsaWJyYXJ5IGFyZSBmb3IgaW50ZXJuYWwgdXNlIGFuZCBjYW4gYmUgY2hhbmdlZFxuICogIG9yIHJlbW92ZWQgb3V0c2lkZSBvZiBhIG1ham9yIHJlbGVhc2UuIFdlIHJlY29tbWVuZCBhZ2FpbnN0IGNhbGxpbmcgdGhlbSBkaXJlY3RseSBmcm9tIGNsaWVudCBjb2RlLlxuICovXG5cbmltcG9ydCB7IENmbkRhdGFiYXNlUHJvcHMgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWdsdWVcIjtcbmltcG9ydCB7IEF3cyB9IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuXG4vKipcbiAqIEBpbnRlcm5hbCBUaGlzIGlzIGFuIGludGVybmFsIGNvcmUgZnVuY3Rpb24gYW5kIHNob3VsZCBub3QgYmUgY2FsbGVkIGRpcmVjdGx5IGJ5IFNvbHV0aW9ucyBDb25zdHJ1Y3RzIGNsaWVudHMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBEZWZhdWx0R2x1ZURhdGFiYXNlUHJvcHMoKTogQ2ZuRGF0YWJhc2VQcm9wcyB7XG4gIGNvbnN0IF9kYXRhYmFzZVByb3BzOiBDZm5EYXRhYmFzZVByb3BzID0ge1xuICAgIGNhdGFsb2dJZDogQXdzLkFDQ09VTlRfSUQsXG4gICAgZGF0YWJhc2VJbnB1dDoge1xuICAgICAgZGVzY3JpcHRpb246ICdBbiBBV1MgR2x1ZSBkYXRhYmFzZSBnZW5lcmF0ZWQgYnkgQVdTIFNvbHV0aW9ucyBDb25zdHJ1Y3QnXG4gICAgfVxuICB9O1xuXG4gIHJldHVybiBfZGF0YWJhc2VQcm9wcztcbn0iXX0=
@@ -13,6 +13,8 @@
13
13
  import { CfnDatabase, CfnDatabaseProps } from "aws-cdk-lib/aws-glue";
14
14
  import { Construct } from "constructs";
15
15
  /**
16
+ * @internal This is an internal core function and should not be called directly by Solutions Constructs clients.
17
+ *
16
18
  * Create an AWS Glue database with the properties provided
17
19
  *
18
20
  * @param scope
@@ -13,8 +13,14 @@
13
13
  */
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
15
  exports.DefaultGlueDatabase = void 0;
16
+ /*
17
+ * The functions found here in the core library are for internal use and can be changed
18
+ * or removed outside of a major release. We recommend against calling them directly from client code.
19
+ */
16
20
  const aws_glue_1 = require("aws-cdk-lib/aws-glue");
17
21
  /**
22
+ * @internal This is an internal core function and should not be called directly by Solutions Constructs clients.
23
+ *
18
24
  * Create an AWS Glue database with the properties provided
19
25
  *
20
26
  * @param scope
@@ -24,4 +30,4 @@ function DefaultGlueDatabase(scope, databaseProps) {
24
30
  return new aws_glue_1.CfnDatabase(scope, 'GlueDatabase', databaseProps);
25
31
  }
26
32
  exports.DefaultGlueDatabase = DefaultGlueDatabase;
27
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2x1ZS1kYXRhYmFzZS1oZWxwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJnbHVlLWRhdGFiYXNlLWhlbHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7Ozs7O0dBV0c7OztBQUVILG1EQUFxRTtBQUdyRTs7Ozs7R0FLRztBQUNILFNBQWdCLG1CQUFtQixDQUFDLEtBQWdCLEVBQUUsYUFBK0I7SUFDbkYsT0FBTyxJQUFJLHNCQUFXLENBQUMsS0FBSyxFQUFFLGNBQWMsRUFBRSxhQUFhLENBQUMsQ0FBQztBQUMvRCxDQUFDO0FBRkQsa0RBRUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqICBDb3B5cmlnaHQgQW1hem9uLmNvbSwgSW5jLiBvciBpdHMgYWZmaWxpYXRlcy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKS4gWW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZVxuICogIHdpdGggdGhlIExpY2Vuc2UuIEEgY29weSBvZiB0aGUgTGljZW5zZSBpcyBsb2NhdGVkIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiAgb3IgaW4gdGhlICdsaWNlbnNlJyBmaWxlIGFjY29tcGFueWluZyB0aGlzIGZpbGUuIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAnQVMgSVMnIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVNcbiAqICBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBleHByZXNzIG9yIGltcGxpZWQuIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9uc1xuICogIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQgeyBDZm5EYXRhYmFzZSwgQ2ZuRGF0YWJhc2VQcm9wcyB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtZ2x1ZVwiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcblxuLyoqXG4gKiBDcmVhdGUgYW4gQVdTIEdsdWUgZGF0YWJhc2Ugd2l0aCB0aGUgcHJvcGVydGllcyBwcm92aWRlZFxuICpcbiAqIEBwYXJhbSBzY29wZVxuICogQHBhcmFtIGRhdGFiYXNlUHJvcHNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIERlZmF1bHRHbHVlRGF0YWJhc2Uoc2NvcGU6IENvbnN0cnVjdCwgZGF0YWJhc2VQcm9wczogQ2ZuRGF0YWJhc2VQcm9wcyk6IENmbkRhdGFiYXNlIHtcbiAgcmV0dXJuIG5ldyBDZm5EYXRhYmFzZShzY29wZSwgJ0dsdWVEYXRhYmFzZScsIGRhdGFiYXNlUHJvcHMpO1xufSJdfQ==
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2x1ZS1kYXRhYmFzZS1oZWxwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJnbHVlLWRhdGFiYXNlLWhlbHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7Ozs7O0dBV0c7OztBQUVIOzs7R0FHRztBQUVILG1EQUFxRTtBQUdyRTs7Ozs7OztHQU9HO0FBQ0gsU0FBZ0IsbUJBQW1CLENBQUMsS0FBZ0IsRUFBRSxhQUErQjtJQUNuRixPQUFPLElBQUksc0JBQVcsQ0FBQyxLQUFLLEVBQUUsY0FBYyxFQUFFLGFBQWEsQ0FBQyxDQUFDO0FBQy9ELENBQUM7QUFGRCxrREFFQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogIENvcHlyaWdodCBBbWF6b24uY29tLCBJbmMuIG9yIGl0cyBhZmZpbGlhdGVzLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpLiBZb3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlXG4gKiAgd2l0aCB0aGUgTGljZW5zZS4gQSBjb3B5IG9mIHRoZSBMaWNlbnNlIGlzIGxvY2F0ZWQgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqICBvciBpbiB0aGUgJ2xpY2Vuc2UnIGZpbGUgYWNjb21wYW55aW5nIHRoaXMgZmlsZS4gVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICdBUyBJUycgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFU1xuICogIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGV4cHJlc3Mgb3IgaW1wbGllZC4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zXG4gKiAgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbi8qXG4gKiAgVGhlIGZ1bmN0aW9ucyBmb3VuZCBoZXJlIGluIHRoZSBjb3JlIGxpYnJhcnkgYXJlIGZvciBpbnRlcm5hbCB1c2UgYW5kIGNhbiBiZSBjaGFuZ2VkXG4gKiAgb3IgcmVtb3ZlZCBvdXRzaWRlIG9mIGEgbWFqb3IgcmVsZWFzZS4gV2UgcmVjb21tZW5kIGFnYWluc3QgY2FsbGluZyB0aGVtIGRpcmVjdGx5IGZyb20gY2xpZW50IGNvZGUuXG4gKi9cblxuaW1wb3J0IHsgQ2ZuRGF0YWJhc2UsIENmbkRhdGFiYXNlUHJvcHMgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWdsdWVcIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5cbi8qKlxuICogQGludGVybmFsIFRoaXMgaXMgYW4gaW50ZXJuYWwgY29yZSBmdW5jdGlvbiBhbmQgc2hvdWxkIG5vdCBiZSBjYWxsZWQgZGlyZWN0bHkgYnkgU29sdXRpb25zIENvbnN0cnVjdHMgY2xpZW50cy5cbiAqXG4gKiBDcmVhdGUgYW4gQVdTIEdsdWUgZGF0YWJhc2Ugd2l0aCB0aGUgcHJvcGVydGllcyBwcm92aWRlZFxuICpcbiAqIEBwYXJhbSBzY29wZVxuICogQHBhcmFtIGRhdGFiYXNlUHJvcHNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIERlZmF1bHRHbHVlRGF0YWJhc2Uoc2NvcGU6IENvbnN0cnVjdCwgZGF0YWJhc2VQcm9wczogQ2ZuRGF0YWJhc2VQcm9wcyk6IENmbkRhdGFiYXNlIHtcbiAgcmV0dXJuIG5ldyBDZm5EYXRhYmFzZShzY29wZSwgJ0dsdWVEYXRhYmFzZScsIGRhdGFiYXNlUHJvcHMpO1xufSJdfQ==
@@ -13,4 +13,7 @@
13
13
  import { CfnJobProps } from 'aws-cdk-lib/aws-glue';
14
14
  import { IRole } from 'aws-cdk-lib/aws-iam';
15
15
  import * as s3assets from "aws-cdk-lib/aws-s3-assets";
16
+ /**
17
+ * @internal This is an internal core function and should not be called directly by Solutions Constructs clients.
18
+ */
16
19
  export declare function DefaultGlueJobProps(jobRole: IRole, userProvidedGlueJobProps: CfnJobProps | any, glueSecurityConfigName: string, defaultArguments: {}, etlCodeAsset?: s3assets.Asset): CfnJobProps;
@@ -13,6 +13,9 @@
13
13
  */
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
15
  exports.DefaultGlueJobProps = void 0;
16
+ /**
17
+ * @internal This is an internal core function and should not be called directly by Solutions Constructs clients.
18
+ */
16
19
  function DefaultGlueJobProps(jobRole, userProvidedGlueJobProps, glueSecurityConfigName, defaultArguments, etlCodeAsset) {
17
20
  const glueVersion = userProvidedGlueJobProps.glueVersion;
18
21
  // setting default to 2 to reduce cost
@@ -35,4 +38,4 @@ function DefaultGlueJobProps(jobRole, userProvidedGlueJobProps, glueSecurityConf
35
38
  return defaultGlueJobProps;
36
39
  }
37
40
  exports.DefaultGlueJobProps = DefaultGlueJobProps;
38
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2x1ZS1qb2ItZGVmYXVsdHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJnbHVlLWpvYi1kZWZhdWx0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7Ozs7O0dBV0c7OztBQU1ILFNBQWdCLG1CQUFtQixDQUFDLE9BQWMsRUFBRSx3QkFBMkMsRUFDN0Ysc0JBQThCLEVBQUUsZ0JBQW9CLEVBQUUsWUFBNkI7SUFDbkYsTUFBTSxXQUFXLEdBQXVCLHdCQUF3QixDQUFDLFdBQVcsQ0FBQztJQUU3RSxzQ0FBc0M7SUFDdEMsTUFBTSxXQUFXLEdBQUcsV0FBVyxLQUFLLEtBQUssSUFBSSxDQUFDLENBQUMsd0JBQXdCLENBQUMsVUFBVTtXQUM3RSx3QkFBd0IsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7SUFFL0QsSUFBSSxZQUFZLEVBQUU7UUFDaEIsd0JBQXdCLENBQUMsT0FBTyxDQUFDLGNBQWMsR0FBRyxZQUFZLENBQUMsV0FBVyxDQUFDO0tBQzVFO0lBRUQsTUFBTSxtQkFBbUIsR0FBZ0I7UUFDdkMsT0FBTyxFQUFFLHdCQUF3QixDQUFDLE9BQVE7UUFDMUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxPQUFPO1FBQ3JCLHFCQUFxQixFQUFFLHNCQUFzQjtRQUM3QyxnQkFBZ0I7UUFDaEIsV0FBVztRQUNYLGVBQWUsRUFBRSxDQUFDLENBQUMsV0FBVyxJQUFJLFdBQVcsS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTO1FBQ3hFLFVBQVUsRUFBRSxDQUFDLENBQUMsV0FBVyxJQUFJLFdBQVcsS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxTQUFTO1FBQ3hFLHdIQUF3SDtRQUN4SCxXQUFXLEVBQUUsV0FBVyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLEtBQUs7S0FDL0MsQ0FBQztJQUVGLE9BQU8sbUJBQW1CLENBQUM7QUFDN0IsQ0FBQztBQXpCRCxrREF5QkMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqICBDb3B5cmlnaHQgQW1hem9uLmNvbSwgSW5jLiBvciBpdHMgYWZmaWxpYXRlcy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKS4gWW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZVxuICogIHdpdGggdGhlIExpY2Vuc2UuIEEgY29weSBvZiB0aGUgTGljZW5zZSBpcyBsb2NhdGVkIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiAgb3IgaW4gdGhlICdsaWNlbnNlJyBmaWxlIGFjY29tcGFueWluZyB0aGlzIGZpbGUuIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAnQVMgSVMnIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVNcbiAqICBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBleHByZXNzIG9yIGltcGxpZWQuIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9uc1xuICogIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQgeyBDZm5Kb2JQcm9wcyB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1nbHVlJztcbmltcG9ydCB7IElSb2xlIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWlhbSc7XG5pbXBvcnQgKiBhcyBzM2Fzc2V0cyBmcm9tIFwiYXdzLWNkay1saWIvYXdzLXMzLWFzc2V0c1wiO1xuXG5leHBvcnQgZnVuY3Rpb24gRGVmYXVsdEdsdWVKb2JQcm9wcyhqb2JSb2xlOiBJUm9sZSwgdXNlclByb3ZpZGVkR2x1ZUpvYlByb3BzOiBDZm5Kb2JQcm9wcyB8IGFueSxcbiAgZ2x1ZVNlY3VyaXR5Q29uZmlnTmFtZTogc3RyaW5nLCBkZWZhdWx0QXJndW1lbnRzOiB7fSwgZXRsQ29kZUFzc2V0PzogczNhc3NldHMuQXNzZXQpOiBDZm5Kb2JQcm9wcyB7XG4gIGNvbnN0IGdsdWVWZXJzaW9uOiBzdHJpbmcgfCB1bmRlZmluZWQgPSB1c2VyUHJvdmlkZWRHbHVlSm9iUHJvcHMuZ2x1ZVZlcnNpb247XG5cbiAgLy8gc2V0dGluZyBkZWZhdWx0IHRvIDIgdG8gcmVkdWNlIGNvc3RcbiAgY29uc3QgbWF4Q2FwYWNpdHkgPSBnbHVlVmVyc2lvbiA9PT0gXCIxLjBcIiAmJiAhKHVzZXJQcm92aWRlZEdsdWVKb2JQcm9wcy53b3JrZXJUeXBlXG4gICAgfHwgdXNlclByb3ZpZGVkR2x1ZUpvYlByb3BzLm51bWJlck9mV29ya2VycykgPyAyIDogdW5kZWZpbmVkO1xuXG4gIGlmIChldGxDb2RlQXNzZXQpIHtcbiAgICB1c2VyUHJvdmlkZWRHbHVlSm9iUHJvcHMuY29tbWFuZC5zY3JpcHRMb2NhdGlvbiA9IGV0bENvZGVBc3NldC5zM09iamVjdFVybDtcbiAgfVxuXG4gIGNvbnN0IGRlZmF1bHRHbHVlSm9iUHJvcHM6IENmbkpvYlByb3BzID0ge1xuICAgIGNvbW1hbmQ6IHVzZXJQcm92aWRlZEdsdWVKb2JQcm9wcy5jb21tYW5kISxcbiAgICByb2xlOiBqb2JSb2xlLnJvbGVBcm4sXG4gICAgc2VjdXJpdHlDb25maWd1cmF0aW9uOiBnbHVlU2VjdXJpdHlDb25maWdOYW1lLFxuICAgIGRlZmF1bHRBcmd1bWVudHMsXG4gICAgbWF4Q2FwYWNpdHksXG4gICAgbnVtYmVyT2ZXb3JrZXJzOiAoIWdsdWVWZXJzaW9uIHx8IGdsdWVWZXJzaW9uID09PSBcIjIuMFwiKSA/IDIgOiB1bmRlZmluZWQsIC8vIGRlZmF1bHRpbmcgdG8gMiB3b3JrZXJzLFxuICAgIHdvcmtlclR5cGU6ICghZ2x1ZVZlcnNpb24gfHwgZ2x1ZVZlcnNpb24gPT09IFwiMi4wXCIpID8gJ0cuMVgnIDogdW5kZWZpbmVkLCAvLyBkZWZhdWx0aW5nIHRvIEcuMVggYXMgaXQgaXMgcHJlZmVycmVkIHdpdGggZ2x1ZSB2ZXJzaW9uIDIuMFxuICAgIC8vIGdsdWUgdmVyc2lvbiB0aG91Z2ggb3B0aW9uYWwgaXMgcmVxdWlyZWQgZm9yIHN0cmVhbWluZyBldGwgam9icyBvdGhlcndpc2UgaXQgdGhyb3dzIGFuIGVycm9yIHRoYXQgJ2NvbW1hbmQgbm90IGZvdW5kJ1xuICAgIGdsdWVWZXJzaW9uOiBnbHVlVmVyc2lvbiA/IGdsdWVWZXJzaW9uIDogJzIuMCdcbiAgfTtcblxuICByZXR1cm4gZGVmYXVsdEdsdWVKb2JQcm9wcztcbn0iXX0=
41
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2x1ZS1qb2ItZGVmYXVsdHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJnbHVlLWpvYi1kZWZhdWx0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7Ozs7O0dBV0c7OztBQVdIOztHQUVHO0FBQ0gsU0FBZ0IsbUJBQW1CLENBQUMsT0FBYyxFQUFFLHdCQUEyQyxFQUM3RixzQkFBOEIsRUFBRSxnQkFBb0IsRUFBRSxZQUE2QjtJQUNuRixNQUFNLFdBQVcsR0FBdUIsd0JBQXdCLENBQUMsV0FBVyxDQUFDO0lBRTdFLHNDQUFzQztJQUN0QyxNQUFNLFdBQVcsR0FBRyxXQUFXLEtBQUssS0FBSyxJQUFJLENBQUMsQ0FBQyx3QkFBd0IsQ0FBQyxVQUFVO1dBQzdFLHdCQUF3QixDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztJQUUvRCxJQUFJLFlBQVksRUFBRTtRQUNoQix3QkFBd0IsQ0FBQyxPQUFPLENBQUMsY0FBYyxHQUFHLFlBQVksQ0FBQyxXQUFXLENBQUM7S0FDNUU7SUFFRCxNQUFNLG1CQUFtQixHQUFnQjtRQUN2QyxPQUFPLEVBQUUsd0JBQXdCLENBQUMsT0FBUTtRQUMxQyxJQUFJLEVBQUUsT0FBTyxDQUFDLE9BQU87UUFDckIscUJBQXFCLEVBQUUsc0JBQXNCO1FBQzdDLGdCQUFnQjtRQUNoQixXQUFXO1FBQ1gsZUFBZSxFQUFFLENBQUMsQ0FBQyxXQUFXLElBQUksV0FBVyxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVM7UUFDeEUsVUFBVSxFQUFFLENBQUMsQ0FBQyxXQUFXLElBQUksV0FBVyxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFNBQVM7UUFDeEUsd0hBQXdIO1FBQ3hILFdBQVcsRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsS0FBSztLQUMvQyxDQUFDO0lBRUYsT0FBTyxtQkFBbUIsQ0FBQztBQUM3QixDQUFDO0FBekJELGtEQXlCQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogIENvcHlyaWdodCBBbWF6b24uY29tLCBJbmMuIG9yIGl0cyBhZmZpbGlhdGVzLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpLiBZb3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlXG4gKiAgd2l0aCB0aGUgTGljZW5zZS4gQSBjb3B5IG9mIHRoZSBMaWNlbnNlIGlzIGxvY2F0ZWQgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqICBvciBpbiB0aGUgJ2xpY2Vuc2UnIGZpbGUgYWNjb21wYW55aW5nIHRoaXMgZmlsZS4gVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICdBUyBJUycgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFU1xuICogIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGV4cHJlc3Mgb3IgaW1wbGllZC4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zXG4gKiAgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbi8qXG4gKiAgVGhlIGZ1bmN0aW9ucyBmb3VuZCBoZXJlIGluIHRoZSBjb3JlIGxpYnJhcnkgYXJlIGZvciBpbnRlcm5hbCB1c2UgYW5kIGNhbiBiZSBjaGFuZ2VkXG4gKiAgb3IgcmVtb3ZlZCBvdXRzaWRlIG9mIGEgbWFqb3IgcmVsZWFzZS4gV2UgcmVjb21tZW5kIGFnYWluc3QgY2FsbGluZyB0aGVtIGRpcmVjdGx5IGZyb20gY2xpZW50IGNvZGUuXG4gKi9cblxuaW1wb3J0IHsgQ2ZuSm9iUHJvcHMgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtZ2x1ZSc7XG5pbXBvcnQgeyBJUm9sZSB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1pYW0nO1xuaW1wb3J0ICogYXMgczNhc3NldHMgZnJvbSBcImF3cy1jZGstbGliL2F3cy1zMy1hc3NldHNcIjtcblxuLyoqXG4gKiBAaW50ZXJuYWwgVGhpcyBpcyBhbiBpbnRlcm5hbCBjb3JlIGZ1bmN0aW9uIGFuZCBzaG91bGQgbm90IGJlIGNhbGxlZCBkaXJlY3RseSBieSBTb2x1dGlvbnMgQ29uc3RydWN0cyBjbGllbnRzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gRGVmYXVsdEdsdWVKb2JQcm9wcyhqb2JSb2xlOiBJUm9sZSwgdXNlclByb3ZpZGVkR2x1ZUpvYlByb3BzOiBDZm5Kb2JQcm9wcyB8IGFueSxcbiAgZ2x1ZVNlY3VyaXR5Q29uZmlnTmFtZTogc3RyaW5nLCBkZWZhdWx0QXJndW1lbnRzOiB7fSwgZXRsQ29kZUFzc2V0PzogczNhc3NldHMuQXNzZXQpOiBDZm5Kb2JQcm9wcyB7XG4gIGNvbnN0IGdsdWVWZXJzaW9uOiBzdHJpbmcgfCB1bmRlZmluZWQgPSB1c2VyUHJvdmlkZWRHbHVlSm9iUHJvcHMuZ2x1ZVZlcnNpb247XG5cbiAgLy8gc2V0dGluZyBkZWZhdWx0IHRvIDIgdG8gcmVkdWNlIGNvc3RcbiAgY29uc3QgbWF4Q2FwYWNpdHkgPSBnbHVlVmVyc2lvbiA9PT0gXCIxLjBcIiAmJiAhKHVzZXJQcm92aWRlZEdsdWVKb2JQcm9wcy53b3JrZXJUeXBlXG4gICAgfHwgdXNlclByb3ZpZGVkR2x1ZUpvYlByb3BzLm51bWJlck9mV29ya2VycykgPyAyIDogdW5kZWZpbmVkO1xuXG4gIGlmIChldGxDb2RlQXNzZXQpIHtcbiAgICB1c2VyUHJvdmlkZWRHbHVlSm9iUHJvcHMuY29tbWFuZC5zY3JpcHRMb2NhdGlvbiA9IGV0bENvZGVBc3NldC5zM09iamVjdFVybDtcbiAgfVxuXG4gIGNvbnN0IGRlZmF1bHRHbHVlSm9iUHJvcHM6IENmbkpvYlByb3BzID0ge1xuICAgIGNvbW1hbmQ6IHVzZXJQcm92aWRlZEdsdWVKb2JQcm9wcy5jb21tYW5kISxcbiAgICByb2xlOiBqb2JSb2xlLnJvbGVBcm4sXG4gICAgc2VjdXJpdHlDb25maWd1cmF0aW9uOiBnbHVlU2VjdXJpdHlDb25maWdOYW1lLFxuICAgIGRlZmF1bHRBcmd1bWVudHMsXG4gICAgbWF4Q2FwYWNpdHksXG4gICAgbnVtYmVyT2ZXb3JrZXJzOiAoIWdsdWVWZXJzaW9uIHx8IGdsdWVWZXJzaW9uID09PSBcIjIuMFwiKSA/IDIgOiB1bmRlZmluZWQsIC8vIGRlZmF1bHRpbmcgdG8gMiB3b3JrZXJzLFxuICAgIHdvcmtlclR5cGU6ICghZ2x1ZVZlcnNpb24gfHwgZ2x1ZVZlcnNpb24gPT09IFwiMi4wXCIpID8gJ0cuMVgnIDogdW5kZWZpbmVkLCAvLyBkZWZhdWx0aW5nIHRvIEcuMVggYXMgaXQgaXMgcHJlZmVycmVkIHdpdGggZ2x1ZSB2ZXJzaW9uIDIuMFxuICAgIC8vIGdsdWUgdmVyc2lvbiB0aG91Z2ggb3B0aW9uYWwgaXMgcmVxdWlyZWQgZm9yIHN0cmVhbWluZyBldGwgam9icyBvdGhlcndpc2UgaXQgdGhyb3dzIGFuIGVycm9yIHRoYXQgJ2NvbW1hbmQgbm90IGZvdW5kJ1xuICAgIGdsdWVWZXJzaW9uOiBnbHVlVmVyc2lvbiA/IGdsdWVWZXJzaW9uIDogJzIuMCdcbiAgfTtcblxuICByZXR1cm4gZGVmYXVsdEdsdWVKb2JQcm9wcztcbn0iXX0=
@@ -78,9 +78,29 @@ export interface BuildGlueJobProps {
78
78
  */
79
79
  readonly etlCodeAsset?: s3assets.Asset;
80
80
  }
81
- export declare function buildGlueJob(scope: Construct, props: BuildGlueJobProps): [glue.CfnJob, IRole, [Bucket, (Bucket | undefined)?]?];
82
- export declare function deployGlueJob(scope: Construct, glueJobProps: glue.CfnJobProps, database: glue.CfnDatabase, table: glue.CfnTable, outputDataStore: SinkDataStoreProps, etlCodeAsset?: s3assets.Asset): [glue.CfnJob, IRole, [Bucket, (Bucket | undefined)?]];
81
+ export interface BuildGlueJobResponse {
82
+ readonly job: glue.CfnJob;
83
+ readonly role: IRole;
84
+ readonly bucket?: Bucket;
85
+ readonly loggingBucket?: Bucket;
86
+ }
83
87
  /**
88
+ * @internal This is an internal core function and should not be called directly by Solutions Constructs clients.
89
+ */
90
+ export declare function buildGlueJob(scope: Construct, props: BuildGlueJobProps): BuildGlueJobResponse;
91
+ export interface DeployGlueJobResponse {
92
+ readonly job: glue.CfnJob;
93
+ readonly role: IRole;
94
+ readonly bucket?: Bucket;
95
+ readonly loggingBucket?: Bucket;
96
+ }
97
+ /**
98
+ * @internal This is an internal core function and should not be called directly by Solutions Constructs clients.
99
+ */
100
+ export declare function deployGlueJob(scope: Construct, glueJobProps: glue.CfnJobProps, database: glue.CfnDatabase, table: glue.CfnTable, outputDataStore: SinkDataStoreProps, etlCodeAsset?: s3assets.Asset): DeployGlueJobResponse;
101
+ /**
102
+ * @internal This is an internal core function and should not be called directly by Solutions Constructs clients.
103
+ *
84
104
  * This is a helper method to create the Role required for the Glue Job. If a role is already created then this
85
105
  * method is not required to be called.
86
106
  *
@@ -88,10 +108,14 @@ export declare function deployGlueJob(scope: Construct, glueJobProps: glue.CfnJo
88
108
  */
89
109
  export declare function createGlueJobRole(scope: Construct): Role;
90
110
  /**
111
+ * @internal This is an internal core function and should not be called directly by Solutions Constructs clients.
112
+ *
91
113
  * This method creates an AWS Glue table. The method is called when an existing Glue table is not provided
92
114
  */
93
115
  export declare function createGlueTable(scope: Construct, database: glue.CfnDatabase, tableProps?: glue.CfnTableProps, fieldSchema?: glue.CfnTable.ColumnProperty[], sourceType?: string, parameters?: any): glue.CfnTable;
94
116
  /**
117
+ * @internal This is an internal core function and should not be called directly by Solutions Constructs clients.
118
+ *
95
119
  * This method creates an AWS Glue database. The method is only called with an existing Glue database type is not provided.
96
120
  * The method uses the user provided props to override the defaul props for the Glue database
97
121
  *