@aws-cdk/aws-bedrock-agentcore-alpha 2.237.1-alpha.0 → 2.239.0-alpha.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 (70) hide show
  1. package/.jsii +2128 -856
  2. package/.jsii.tabl.json.gz +0 -0
  3. package/.warnings.jsii.js +119 -1
  4. package/README.md +109 -47
  5. package/lib/gateway/gateway-base.d.ts +14 -7
  6. package/lib/gateway/gateway-base.js +13 -4
  7. package/lib/gateway/gateway.d.ts +66 -10
  8. package/lib/gateway/gateway.js +38 -3
  9. package/lib/gateway/inbound-auth/authorizer.d.ts +2 -2
  10. package/lib/gateway/inbound-auth/authorizer.js +4 -4
  11. package/lib/gateway/inbound-auth/custom-claim.d.ts +1 -1
  12. package/lib/gateway/inbound-auth/custom-claim.js +2 -2
  13. package/lib/gateway/interceptor.d.ts +3 -3
  14. package/lib/gateway/interceptor.js +2 -2
  15. package/lib/gateway/outbound-auth/api-key.d.ts +4 -2
  16. package/lib/gateway/outbound-auth/api-key.js +2 -2
  17. package/lib/gateway/outbound-auth/credential-provider.d.ts +5 -5
  18. package/lib/gateway/outbound-auth/credential-provider.js +2 -2
  19. package/lib/gateway/outbound-auth/iam-role.d.ts +3 -2
  20. package/lib/gateway/outbound-auth/iam-role.js +1 -1
  21. package/lib/gateway/outbound-auth/oauth.d.ts +4 -2
  22. package/lib/gateway/outbound-auth/oauth.js +1 -1
  23. package/lib/gateway/protocol.d.ts +1 -1
  24. package/lib/gateway/protocol.js +3 -3
  25. package/lib/gateway/targets/schema/api-schema.d.ts +3 -3
  26. package/lib/gateway/targets/schema/api-schema.js +5 -5
  27. package/lib/gateway/targets/schema/base-schema.d.ts +2 -2
  28. package/lib/gateway/targets/schema/base-schema.js +1 -1
  29. package/lib/gateway/targets/schema/tool-schema.d.ts +3 -3
  30. package/lib/gateway/targets/schema/tool-schema.js +5 -5
  31. package/lib/gateway/targets/target-base.d.ts +13 -5
  32. package/lib/gateway/targets/target-base.js +13 -2
  33. package/lib/gateway/targets/target-configuration.d.ts +251 -5
  34. package/lib/gateway/targets/target-configuration.js +344 -8
  35. package/lib/gateway/targets/target.d.ts +59 -9
  36. package/lib/gateway/targets/target.js +46 -3
  37. package/lib/memory/memory-strategy.d.ts +6 -4
  38. package/lib/memory/memory-strategy.js +2 -3
  39. package/lib/memory/memory.d.ts +12 -5
  40. package/lib/memory/memory.js +13 -17
  41. package/lib/memory/strategies/managed-strategy.d.ts +5 -4
  42. package/lib/memory/strategies/managed-strategy.js +2 -2
  43. package/lib/memory/strategies/self-managed-strategy.d.ts +4 -4
  44. package/lib/memory/strategies/self-managed-strategy.js +2 -2
  45. package/lib/memory/validation-helpers.d.ts +1 -1
  46. package/lib/memory/validation-helpers.js +1 -1
  47. package/lib/network/network-configuration.d.ts +2 -2
  48. package/lib/network/network-configuration.js +5 -5
  49. package/lib/runtime/inbound-auth/custom-claim.d.ts +1 -1
  50. package/lib/runtime/inbound-auth/custom-claim.js +2 -2
  51. package/lib/runtime/inbound-auth/runtime-authorizer-configuration.d.ts +3 -3
  52. package/lib/runtime/inbound-auth/runtime-authorizer-configuration.js +2 -2
  53. package/lib/runtime/runtime-artifact.d.ts +27 -4
  54. package/lib/runtime/runtime-artifact.js +67 -2
  55. package/lib/runtime/runtime-base.d.ts +12 -5
  56. package/lib/runtime/runtime-base.js +15 -18
  57. package/lib/runtime/runtime-endpoint-base.d.ts +9 -3
  58. package/lib/runtime/runtime-endpoint-base.js +10 -14
  59. package/lib/runtime/runtime-endpoint.d.ts +3 -2
  60. package/lib/runtime/runtime-endpoint.js +2 -2
  61. package/lib/runtime/runtime.d.ts +7 -5
  62. package/lib/runtime/runtime.js +2 -2
  63. package/lib/runtime/types.d.ts +1 -1
  64. package/lib/runtime/types.js +1 -1
  65. package/lib/tools/browser.d.ts +12 -5
  66. package/lib/tools/browser.js +14 -5
  67. package/lib/tools/code-interpreter.d.ts +11 -4
  68. package/lib/tools/code-interpreter.js +14 -5
  69. package/package.json +12 -12
  70. package/rosetta/default.ts-fixture +1 -0
@@ -40,7 +40,7 @@ class ToolSchemaError extends Error {
40
40
  * TOOL SCHEMA CLASS
41
41
  *****************************************************************************/
42
42
  class ToolSchema extends base_schema_1.TargetSchema {
43
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.ToolSchema", version: "2.237.1-alpha.0" };
43
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.ToolSchema", version: "2.239.0-alpha.0" };
44
44
  /**
45
45
  * Creates a tool Schema from a local file.
46
46
  * @param path - the path to the local file containing the function schema for the tool
@@ -98,7 +98,7 @@ exports.ToolSchema = ToolSchema;
98
98
  class AssetToolSchema extends ToolSchema {
99
99
  path;
100
100
  options;
101
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.AssetToolSchema", version: "2.237.1-alpha.0" };
101
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.AssetToolSchema", version: "2.239.0-alpha.0" };
102
102
  asset;
103
103
  constructor(path, options = {}) {
104
104
  super();
@@ -151,7 +151,7 @@ exports.AssetToolSchema = AssetToolSchema;
151
151
  */
152
152
  class InlineToolSchema extends ToolSchema {
153
153
  schema;
154
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.InlineToolSchema", version: "2.237.1-alpha.0" };
154
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.InlineToolSchema", version: "2.239.0-alpha.0" };
155
155
  constructor(schema) {
156
156
  super(undefined, undefined, schema);
157
157
  this.schema = schema;
@@ -181,7 +181,7 @@ exports.InlineToolSchema = InlineToolSchema;
181
181
  class S3ToolSchema extends ToolSchema {
182
182
  location;
183
183
  bucketOwnerAccountId;
184
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.S3ToolSchema", version: "2.237.1-alpha.0" };
184
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.S3ToolSchema", version: "2.239.0-alpha.0" };
185
185
  constructor(location, bucketOwnerAccountId) {
186
186
  super(location, bucketOwnerAccountId, undefined);
187
187
  this.location = location;
@@ -211,4 +211,4 @@ class S3ToolSchema extends ToolSchema {
211
211
  }
212
212
  }
213
213
  exports.S3ToolSchema = S3ToolSchema;
214
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbC1zY2hlbWEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJ0b29sLXNjaGVtYS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsNkNBQWtDO0FBQ2xDLGlEQUFtRDtBQUVuRCx1REFBdUQ7QUFDdkQsNEVBQWdFO0FBRWhFLCtDQUE2QztBQXNCN0M7O0dBRUc7QUFDSCxJQUFZLG9CQWFYO0FBYkQsV0FBWSxvQkFBb0I7SUFDOUIsa0JBQWtCO0lBQ2xCLHlDQUFpQixDQUFBO0lBQ2pCLGtCQUFrQjtJQUNsQix5Q0FBaUIsQ0FBQTtJQUNqQixrQkFBa0I7SUFDbEIseUNBQWlCLENBQUE7SUFDakIsaUJBQWlCO0lBQ2pCLHVDQUFlLENBQUE7SUFDZixtQkFBbUI7SUFDbkIsMkNBQW1CLENBQUE7SUFDbkIsbUJBQW1CO0lBQ25CLDJDQUFtQixDQUFBO0FBQ3JCLENBQUMsRUFiVyxvQkFBb0Isb0NBQXBCLG9CQUFvQixRQWEvQjtBQTBFRDs7R0FFRztBQUNILE1BQU0sZUFBZ0IsU0FBUSxLQUFLO0lBQ1k7SUFBN0MsWUFBWSxPQUFlLEVBQWtCLEtBQWM7UUFDekQsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRDRCLFVBQUssR0FBTCxLQUFLLENBQVM7UUFFekQsSUFBSSxDQUFDLElBQUksR0FBRyxpQkFBaUIsQ0FBQztLQUMvQjtDQUNGO0FBRUQ7OytFQUUrRTtBQUMvRSxNQUFzQixVQUFXLFNBQVEsMEJBQVk7O0lBQ25EOzs7T0FHRztJQUNJLE1BQU0sQ0FBQyxjQUFjLENBQUMsSUFBWTtRQUN2QyxPQUFPLElBQUksZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO0tBQ2xDO0lBRUQ7OztPQUdHO0lBQ0ksTUFBTSxDQUFDLFVBQVUsQ0FBQyxNQUF3QjtRQUMvQyxPQUFPLElBQUksZ0JBQWdCLENBQUMsTUFBTSxDQUFDLENBQUM7S0FDckM7SUFFRDs7Ozs7T0FLRztJQUNJLE1BQU0sQ0FBQyxVQUFVLENBQUMsTUFBZSxFQUFFLFNBQWlC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QUE2QjtRQUM1RixLQUFLLENBQUMsUUFBUSxFQUFFLG9CQUFvQixFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBRHRCLGFBQVEsR0FBUixRQUFRLENBQVU7UUFBa0IseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFTO0tBRTdGO0lBQ0Q7O09BRUc7SUFDSSxPQUFPO1FBQ1osT0FBTztZQUNMLEVBQUUsRUFBRTtnQkFDRixHQUFHLEVBQUUsUUFBUSxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsRUFBRTtnQkFDbEUsR0FBRyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsSUFBSSxFQUFFLG9CQUFvQixFQUFFLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO2FBQ3RGO1NBQ0YsQ0FBQztLQUNIO0lBRU0sSUFBSSxDQUFDLEtBQWdCO1FBQzFCLElBQUksS0FBSyxFQUFFLENBQUM7UUFDWixDQUFDO0tBRUY7SUFFTSxzQkFBc0IsQ0FBQyxJQUFXO1FBQ3ZDLGVBQUssQ0FBQyxjQUFjLENBQUM7WUFDbkIsT0FBTyxFQUFFLElBQUk7WUFDYixPQUFPLEVBQUUsQ0FBQyxjQUFjLENBQUM7WUFDekIsWUFBWSxFQUFFLENBQUMsT0FBTyxpQkFBRyxDQUFDLFNBQVMsU0FBUyxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsRUFBRSxDQUFDO1NBQ25HLENBQUMsQ0FBQztLQUNKOztBQTVCSCxvQ0E2QkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBd3MgfSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgeyBHcmFudCwgSVJvbGUgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtaWFtJztcbmltcG9ydCB7IElCdWNrZXQsIExvY2F0aW9uIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLXMzJztcbmltcG9ydCAqIGFzIHMzX2Fzc2V0cyBmcm9tICdhd3MtY2RrLWxpYi9hd3MtczMtYXNzZXRzJztcbmltcG9ydCB7IG1kNWhhc2ggfSBmcm9tICdhd3MtY2RrLWxpYi9jb3JlL2xpYi9oZWxwZXJzLWludGVybmFsJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHsgVGFyZ2V0U2NoZW1hIH0gZnJvbSAnLi9iYXNlLXNjaGVtYSc7XG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUb29sIFNjaGVtYSBDb25maWd1cmF0aW9uXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbi8qKlxuICogQWJzdHJhY3QgaW50ZXJmYWNlIGZvciB0b29sIHNjaGVtYSBjb25maWd1cmF0aW9uXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJVG9vbFNjaGVtYUNvbmZpZ3VyYXRpb24ge1xuICAvKipcbiAgICogVGhlIHRvb2wgc2NoZW1hIGNvbmZpZ3VyYXRpb24gdHlwZVxuICAgKi9cbiAgcmVhZG9ubHkgdG9vbFNjaGVtYVR5cGU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHRvb2wgc2NoZW1hIGNvbmZpZ3VyYXRpb24gb2JqZWN0XG4gICAqL1xuICByZWFkb25seSBjb25maWd1cmF0aW9uOiBhbnk7XG59XG5cbi8qKlxuICogU2NoZW1hIGRlZmluaXRpb24gdHlwZXNcbiAqL1xuZXhwb3J0IGVudW0gU2NoZW1hRGVmaW5pdGlvblR5cGUge1xuICAvKiogU3RyaW5nIHR5cGUgKi9cbiAgU1RSSU5HID0gJ3N0cmluZycsXG4gIC8qKiBOdW1iZXIgdHlwZSAqL1xuICBOVU1CRVIgPSAnbnVtYmVyJyxcbiAgLyoqIE9iamVjdCB0eXBlICovXG4gIE9CSkVDVCA9ICdvYmplY3QnLFxuICAvKiogQXJyYXkgdHlwZSAqL1xuICBBUlJBWSA9ICdhcnJheScsXG4gIC8qKiBCb29sZWFuIHR5cGUgKi9cbiAgQk9PTEVBTiA9ICdib29sZWFuJyxcbiAgLyoqIEludGVnZXIgdHlwZSAqL1xuICBJTlRFR0VSID0gJ2ludGVnZXInLFxufVxuXG4vKipcbiAqIFNjaGVtYSBkZWZpbml0aW9uIGZvciB0b29sIGlucHV0L291dHB1dFxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNjaGVtYURlZmluaXRpb24ge1xuICAvKipcbiAgICogVGhlIHR5cGUgb2YgdGhlIHNjaGVtYSBkZWZpbml0aW9uLiBUaGlzIGZpZWxkIHNwZWNpZmllcyB0aGUgZGF0YSB0eXBlIG9mIHRoZSBzY2hlbWEuXG4gICAqL1xuICByZWFkb25seSB0eXBlOiBTY2hlbWFEZWZpbml0aW9uVHlwZTtcblxuICAvKipcbiAgICogVGhlIGRlc2NyaXB0aW9uIG9mIHRoZSBzY2hlbWEgZGVmaW5pdGlvbi4gVGhpcyBkZXNjcmlwdGlvbiBwcm92aWRlcyBpbmZvcm1hdGlvbiBhYm91dCB0aGUgcHVycG9zZSBhbmQgdXNhZ2Ugb2YgdGhlIHNjaGVtYS5cbiAgICovXG4gIC8qKlxuICAgKiBUaGUgZGVzY3JpcHRpb24gb2YgdGhlIHNjaGVtYSBkZWZpbml0aW9uLiBUaGlzIGRlc2NyaXB0aW9uIHByb3ZpZGVzIGluZm9ybWF0aW9uIGFib3V0IHRoZSBwdXJwb3NlIGFuZCB1c2FnZSBvZiB0aGUgc2NoZW1hLlxuICAgKiBAZGVmYXVsdCAtIE5vIGRlc2NyaXB0aW9uXG4gICAqL1xuICByZWFkb25seSBkZXNjcmlwdGlvbj86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGl0ZW1zIGluIHRoZSBzY2hlbWEgZGVmaW5pdGlvbi4gVGhpcyBmaWVsZCBpcyB1c2VkIGZvciBhcnJheSB0eXBlcyB0byBkZWZpbmUgdGhlIHN0cnVjdHVyZSBvZiB0aGUgYXJyYXkgZWxlbWVudHMuXG4gICAqL1xuICAvKipcbiAgICogVGhlIGl0ZW1zIGluIHRoZSBzY2hlbWEgZGVmaW5pdGlvbi4gVGhpcyBmaWVsZCBpcyB1c2VkIGZvciBhcnJheSB0eXBlcyB0byBkZWZpbmUgdGhlIHN0cnVjdHVyZSBvZiB0aGUgYXJyYXkgZWxlbWVudHMuXG4gICAqIEBkZWZhdWx0IC0gTm8gaXRlbXMgZGVmaW5pdGlvblxuICAgKi9cbiAgcmVhZG9ubHkgaXRlbXM/OiBTY2hlbWFEZWZpbml0aW9uO1xuXG4gIC8qKlxuICAgKiBUaGUgcHJvcGVydGllcyBvZiB0aGUgc2NoZW1hIGRlZmluaXRpb24uIFRoZXNlIHByb3BlcnRpZXMgZGVmaW5lIHRoZSBmaWVsZHMgaW4gdGhlIHNjaGVtYS5cbiAgICovXG4gIC8qKlxuICAgKiBUaGUgcHJvcGVydGllcyBvZiB0aGUgc2NoZW1hIGRlZmluaXRpb24uIFRoZXNlIHByb3BlcnRpZXMgZGVmaW5lIHRoZSBmaWVsZHMgaW4gdGhlIHNjaGVtYS5cbiAgICogQGRlZmF1bHQgLSBObyBwcm9wZXJ0aWVzXG4gICAqL1xuICByZWFkb25seSBwcm9wZXJ0aWVzPzogUmVjb3JkPHN0cmluZywgU2NoZW1hRGVmaW5pdGlvbj47XG5cbiAgLyoqXG4gICAqIFRoZSByZXF1aXJlZCBmaWVsZHMgaW4gdGhlIHNjaGVtYSBkZWZpbml0aW9uLiBUaGVzZSBmaWVsZHMgbXVzdCBiZSBwcm92aWRlZCB3aGVuIHVzaW5nIHRoZSBzY2hlbWEuXG4gICAqIEBkZWZhdWx0IC0gTm8gcmVxdWlyZWQgZmllbGRzXG4gICAqL1xuICByZWFkb25seSByZXF1aXJlZD86IHN0cmluZ1tdO1xufVxuXG4vKipcbiAqIFRvb2wgZGVmaW5pdGlvbiBmb3IgaW5saW5lIHBheWxvYWRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUb29sRGVmaW5pdGlvbiB7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgdG9vbC4gVGhpcyBuYW1lIGlkZW50aWZpZXMgdGhlIHRvb2wgaW4gdGhlIE1vZGVsIENvbnRleHQgUHJvdG9jb2wuXG4gICAqL1xuICByZWFkb25seSBuYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBkZXNjcmlwdGlvbiBvZiB0aGUgdG9vbC4gVGhpcyBkZXNjcmlwdGlvbiBwcm92aWRlcyBpbmZvcm1hdGlvbiBhYm91dCB0aGUgcHVycG9zZSBhbmQgdXNhZ2Ugb2YgdGhlIHRvb2wuXG4gICAqL1xuICByZWFkb25seSBkZXNjcmlwdGlvbjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgaW5wdXQgc2NoZW1hIGZvciB0aGUgdG9vbC4gVGhpcyBzY2hlbWEgZGVmaW5lcyB0aGUgc3RydWN0dXJlIG9mIHRoZSBpbnB1dCB0aGF0IHRoZSB0b29sIGFjY2VwdHMuXG4gICAqL1xuICByZWFkb25seSBpbnB1dFNjaGVtYTogU2NoZW1hRGVmaW5pdGlvbjtcblxuICAvKipcbiAgICogVGhlIG91dHB1dCBzY2hlbWEgZm9yIHRoZSB0b29sLiBUaGlzIHNjaGVtYSBkZWZpbmVzIHRoZSBzdHJ1Y3R1cmUgb2YgdGhlIG91dHB1dCB0aGF0IHRoZSB0b29sIHByb2R1Y2VzLlxuICAgKi9cbiAgLyoqXG4gICAqIFRoZSBvdXRwdXQgc2NoZW1hIGZvciB0aGUgdG9vbC4gVGhpcyBzY2hlbWEgZGVmaW5lcyB0aGUgc3RydWN0dXJlIG9mIHRoZSBvdXRwdXQgdGhhdCB0aGUgdG9vbCBwcm9kdWNlcy5cbiAgICogQGRlZmF1bHQgLSBObyBvdXRwdXQgc2NoZW1hXG4gICAqL1xuICByZWFkb25seSBvdXRwdXRTY2hlbWE/OiBTY2hlbWFEZWZpbml0aW9uO1xufVxuXG4vKipcbiAqIEVycm9yIHRocm93biB3aGVuIGEgVG9vbFNjaGVtYSBpcyBub3QgcHJvcGVybHkgaW5pdGlhbGl6ZWQuXG4gKi9cbmNsYXNzIFRvb2xTY2hlbWFFcnJvciBleHRlbmRzIEVycm9yIHtcbiAgY29uc3RydWN0b3IobWVzc2FnZTogc3RyaW5nLCBwdWJsaWMgcmVhZG9ubHkgY2F1c2U/OiBzdHJpbmcpIHtcbiAgICBzdXBlcihtZXNzYWdlKTtcbiAgICB0aGlzLm5hbWUgPSAnVG9vbFNjaGVtYUVycm9yJztcbiAgfVxufVxuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKiAgICAgICAgICAgICAgICAgICAgICAgVE9PTCBTQ0hFTUEgQ0xBU1NcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBUb29sU2NoZW1hIGV4dGVuZHMgVGFyZ2V0U2NoZW1hIHtcbiAgLyoqXG4gICAqIENyZWF0ZXMgYSB0b29sIFNjaGVtYSBmcm9tIGEgbG9jYWwgZmlsZS5cbiAgICogQHBhcmFtIHBhdGggLSB0aGUgcGF0aCB0byB0aGUgbG9jYWwgZmlsZSBjb250YWluaW5nIHRoZSBmdW5jdGlvbiBzY2hlbWEgZm9yIHRoZSB0b29sXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21Mb2NhbEFzc2V0KHBhdGg6IHN0cmluZyk6IFRvb2xTY2hlbWEge1xuICAgIHJldHVybiBuZXcgQXNzZXRUb29sU2NoZW1hKHBhdGgpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBUb29sIFNjaGVtYSBmcm9tIGFuIGlubGluZSBzdHJpbmcuXG4gICAqIEBwYXJhbSBzY2hlbWEgLSB0aGUgSlNPTiBvciBZQU1MIHBheWxvYWQgZGVmaW5pbmcgdGhlIE9wZW5BUEkgc2NoZW1hIGZvciB0aGUgYWN0aW9uIGdyb3VwXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21JbmxpbmUoc2NoZW1hOiBUb29sRGVmaW5pdGlvbltdKTogSW5saW5lVG9vbFNjaGVtYSB7XG4gICAgcmV0dXJuIG5ldyBJbmxpbmVUb29sU2NoZW1hKHNjaGVtYSk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIFRvb2wgU2NoZW1hIGZyb20gYW4gUzMgRmlsZVxuICAgKiBAcGFyYW0gYnVja2V0IC0gdGhlIGJ1Y2tldCBjb250YWluaW5nIHRoZSBsb2NhbCBmaWxlIGNvbnRhaW5pbmcgdGhlIE9wZW5BUEkgc2NoZW1hIGZvciB0aGUgYWN0aW9uIGdyb3VwXG4gICAqIEBwYXJhbSBvYmplY3RLZXkgLSBvYmplY3Qga2V5IGluIHRoZSBidWNrZXRcbiAgICogQHBhcmFtIGJ1Y2tldE93bmVyQWNjb3VudElkIC0gb3B0aW9uYWwgVGhlIGFjY291bnQgSUQgb2YgdGhlIEFtYXpvbiBTMyBidWNrZXQgb3duZXIuIFRoaXMgSUQgaXMgdXNlZCBmb3IgY3Jvc3MtYWNjb3VudCBhY2Nlc3MgdG8gdGhlIGJ1Y2tldC5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbVMzRmlsZShidWNrZXQ6IElCdWNrZXQsIG9iamVjdEtleTogc3RyaW5nLCBidWNrZXRPd25lckFjY291bnRJZD86IHN0cmluZyk6IFMzVG9vbFNjaGVtYSB7XG4gICAgcmV0dXJuIG5ldyBTM1Rvb2xTY2hlbWEoXG4gICAgICB7XG4gICAgICAgIGJ1Y2tldE5hbWU6IGJ1Y2tldC5idWNrZXROYW1lLFxuICAgICAgICBvYmplY3RLZXk6IG9iamVjdEtleSxcbiAgICAgIH0sXG4gICAgICBidWNrZXRPd25lckFjY291bnRJZCxcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBTMyBsb2NhdGlvbiBvZiB0aGUgdG9vbCBzY2hlbWEgZmlsZSwgaWYgdXNpbmcgYW4gUzMtYmFzZWQgc2NoZW1hLlxuICAgKiBDb250YWlucyB0aGUgYnVja2V0IG5hbWUgYW5kIG9iamVjdCBrZXkgaW5mb3JtYXRpb24uXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgczNGaWxlPzogTG9jYXRpb247XG5cbiAgLyoqXG4gICAqIFRoZSBpbmxpbmUgdG9vbCBzY2hlbWEgZGVmaW5pdGlvbiBhcyBhIHN0cmluZywgaWYgdXNpbmcgYW4gaW5saW5lIHNjaGVtYS5cbiAgICogQ2FuIGJlIGluIEpTT04gb3IgWUFNTCBmb3JtYXQuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgaW5saW5lU2NoZW1hPzogVG9vbERlZmluaXRpb25bXTtcblxuICAvKipcbiAgICogVGhlIGFjY291bnQgSUQgb2YgdGhlIFMzIGJ1Y2tldCBvd25lciBmb3IgY3Jvc3MtYWNjb3VudCBhY2Nlc3NcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBidWNrZXRPd25lckFjY291bnRJZD86IHN0cmluZztcblxuICBwcm90ZWN0ZWQgY29uc3RydWN0b3IoczNGaWxlPzogTG9jYXRpb24sIGJ1Y2tldE93bmVyQWNjb3VudElkPzogc3RyaW5nLCBpbmxpbmVTY2hlbWE/OiBUb29sRGVmaW5pdGlvbltdKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLnMzRmlsZSA9IHMzRmlsZTtcbiAgICB0aGlzLmlubGluZVNjaGVtYSA9IGlubGluZVNjaGVtYTtcbiAgICB0aGlzLmJ1Y2tldE93bmVyQWNjb3VudElkID0gYnVja2V0T3duZXJBY2NvdW50SWQ7XG4gIH1cblxuICAvKipcbiAgICogRm9ybWF0IGFzIENGTiBwcm9wZXJ0aWVzXG4gICAqIEBpbnRlcm5hbCBUaGlzIGlzIGFuIGludGVybmFsIGNvcmUgZnVuY3Rpb24gYW5kIHNob3VsZCBub3QgYmUgY2FsbGVkIGRpcmVjdGx5LlxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IF9yZW5kZXIoKTogYW55O1xufVxuXG4vKipcbiAqIFRvb2wgU2NoZW1hIGZyb20gYSBsb2NhbCBhc3NldC5cbiAqXG4gKiBUaGUgYXNzZXQgaXMgdXBsb2FkZWQgdG8gYW4gUzMgc3RhZ2luZyBidWNrZXQsIHRoZW4gbW92ZWQgdG8gaXRzIGZpbmFsIGxvY2F0aW9uXG4gKiBieSBDbG91ZEZvcm1hdGlvbiBkdXJpbmcgZGVwbG95bWVudC5cbiAqL1xuZXhwb3J0IGNsYXNzIEFzc2V0VG9vbFNjaGVtYSBleHRlbmRzIFRvb2xTY2hlbWEge1xuICBwcml2YXRlIGFzc2V0PzogczNfYXNzZXRzLkFzc2V0O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgcGF0aDogc3RyaW5nLCBwcml2YXRlIHJlYWRvbmx5IG9wdGlvbnM6IHMzX2Fzc2V0cy5Bc3NldE9wdGlvbnMgPSB7fSkge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICAvKipcbiAgICogQmluZHMgdGhpcyB0b29sIHNjaGVtYSB0byBhIGNvbnN0cnVjdCBzY29wZS5cbiAgICogVGhpcyBtZXRob2QgaW5pdGlhbGl6ZXMgdGhlIFMzIGFzc2V0IGlmIGl0IGhhc24ndCBiZWVuIGluaXRpYWxpemVkIHlldC5cbiAgICogTXVzdCBiZSBjYWxsZWQgYmVmb3JlIHJlbmRlcmluZyB0aGUgc2NoZW1hIGFzIENGTiBwcm9wZXJ0aWVzLlxuICAgKlxuICAgKiBAcGFyYW0gc2NvcGUgLSBUaGUgY29uc3RydWN0IHNjb3BlIHRvIGJpbmQgdG9cbiAgICovXG4gIHB1YmxpYyBiaW5kKHNjb3BlOiBDb25zdHJ1Y3QpOiB2b2lkIHtcbiAgICAvLyBJZiB0aGUgc2FtZSBBc3NldFRvb2xTY2hlbWEgaXMgdXNlZCBtdWx0aXBsZSB0aW1lcywgcmV0YWluIG9ubHkgdGhlIGZpcnN0IGluc3RhbnRpYXRpb25cbiAgICBpZiAoIXRoaXMuYXNzZXQpIHtcbiAgICAgIHRoaXMuYXNzZXQgPSBuZXcgczNfYXNzZXRzLkFzc2V0KHNjb3BlLCBgU2NoZW1hJHttZDVoYXNoKHRoaXMucGF0aCl9YCwge1xuICAgICAgICBwYXRoOiB0aGlzLnBhdGgsXG4gICAgICAgIC4uLnRoaXMub3B0aW9ucyxcbiAgICAgIH0pO1xuICAgICAgLy8gTm90ZTogUGVybWlzc2lvbnMgd2lsbCBiZSBncmFudGVkIGJ5IHRoZSBHYXRld2F5IHRhcmdldCBjb25zdHJ1Y3Qgd2hlbiBhZGRpbmcgdGhlIHRhcmdldFxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBGb3JtYXQgYXMgQ0ZOIHByb3BlcnRpZXNcbiAgICogQGludGVybmFsIFRoaXMgaXMgYW4gaW50ZXJuYWwgY29yZSBmdW5jdGlvbiBhbmQgc2hvdWxkIG5vdCBiZSBjYWxsZWQgZGlyZWN0bHkuXG4gICAqL1xuICBwdWJsaWMgX3JlbmRlcigpOiBhbnkge1xuICAgIGlmICghdGhpcy5hc3NldCkge1xuICAgICAgdGhyb3cgbmV3IFRvb2xTY2hlbWFFcnJvcihcbiAgICAgICAgJ1Rvb2xTY2hlbWEgbXVzdCBiZSBib3VuZCB0byBhIHNjb3BlIGJlZm9yZSByZW5kZXJpbmcuIENhbGwgYmluZCgpIGZpcnN0LicsXG4gICAgICAgICdBc3NldCBub3QgaW5pdGlhbGl6ZWQnLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgczM6IHtcbiAgICAgICAgdXJpOiBgczM6Ly8ke3RoaXMuYXNzZXQuczNCdWNrZXROYW1lfS8ke3RoaXMuYXNzZXQuczNPYmplY3RLZXl9YCxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuXG4gIHB1YmxpYyBncmFudFBlcm1pc3Npb25zVG9Sb2xlKHJvbGU6IElSb2xlKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmFzc2V0KSB7XG4gICAgICB0aHJvdyBuZXcgVG9vbFNjaGVtYUVycm9yKFxuICAgICAgICAnVG9vbFNjaGVtYSBtdXN0IGJlIGJvdW5kIHRvIGEgc2NvcGUgYmVmb3JlIHJlbmRlcmluZy4gQ2FsbCBiaW5kKCkgZmlyc3QuJyxcbiAgICAgICAgJ0Fzc2V0IG5vdCBpbml0aWFsaXplZCcsXG4gICAgICApO1xuICAgIH1cbiAgICB0aGlzLmFzc2V0LmdyYW50UmVhZChyb2xlKTtcbiAgfVxufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8qKlxuICogQ2xhc3MgdG8gZGVmaW5lIGEgVG9vbCBTY2hlbWEgZnJvbSBhbiBpbmxpbmUgc3RyaW5nLlxuICogVGhlIHNjaGVtYSBjYW4gYmUgcHJvdmlkZWQgZGlyZWN0bHkgYXMgYSBzdHJpbmcgaW4gZWl0aGVyIEpTT04gb3IgWUFNTCBmb3JtYXQuXG4gKi9cbmV4cG9ydCBjbGFzcyBJbmxpbmVUb29sU2NoZW1hIGV4dGVuZHMgVG9vbFNjaGVtYSB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgc2NoZW1hOiBUb29sRGVmaW5pdGlvbltdKSB7XG4gICAgc3VwZXIodW5kZWZpbmVkLCB1bmRlZmluZWQsIHNjaGVtYSk7XG4gIH1cblxuICAvKipcbiAgICogQGludGVybmFsIFRoaXMgaXMgYW4gaW50ZXJuYWwgY29yZSBmdW5jdGlvbiBhbmQgc2hvdWxkIG5vdCBiZSBjYWxsZWQgZGlyZWN0bHkuXG4gICAqL1xuICBwdWJsaWMgX3JlbmRlcigpOiBhbnkge1xuICAgIHJldHVybiB7XG4gICAgICBpbmxpbmVQYXlsb2FkOiB0aGlzLnNjaGVtYSxcbiAgICB9O1xuICB9XG5cbiAgcHVibGljIGJpbmQoc2NvcGU6IENvbnN0cnVjdCk6IHZvaWQge1xuICAgIGlmIChzY29wZSkge1xuICAgIH1cbiAgICAvLyBOby1vcFxuICB9XG5cbiAgcHVibGljIGdyYW50UGVybWlzc2lvbnNUb1JvbGUoX3JvbGU6IElSb2xlKTogdm9pZCB7XG4gICAgLy8gTm8tb3AgLSBJbmxpbmVUb29sU2NoZW1hIGRvZXNuJ3QgbmVlZCBwZXJtaXNzaW9uc1xuICB9XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gUzMgRmlsZVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vKipcbiAqIENsYXNzIHRvIGRlZmluZSBhIFRvb2wgU2NoZW1hIGZyb20gYW4gUzMgb2JqZWN0LlxuICovXG5leHBvcnQgY2xhc3MgUzNUb29sU2NoZW1hIGV4dGVuZHMgVG9vbFNjaGVtYSB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgbG9jYXRpb246IExvY2F0aW9uLCBwdWJsaWMgcmVhZG9ubHkgYnVja2V0T3duZXJBY2NvdW50SWQ/OiBzdHJpbmcpIHtcbiAgICBzdXBlcihsb2NhdGlvbiwgYnVja2V0T3duZXJBY2NvdW50SWQsIHVuZGVmaW5lZCk7XG4gIH1cbiAgLyoqXG4gICAqIEBpbnRlcm5hbCBUaGlzIGlzIGFuIGludGVybmFsIGNvcmUgZnVuY3Rpb24gYW5kIHNob3VsZCBub3QgYmUgY2FsbGVkIGRpcmVjdGx5LlxuICAgKi9cbiAgcHVibGljIF9yZW5kZXIoKTogYW55IHtcbiAgICByZXR1cm4ge1xuICAgICAgczM6IHtcbiAgICAgICAgdXJpOiBgczM6Ly8ke3RoaXMubG9jYXRpb24uYnVja2V0TmFtZX0vJHt0aGlzLmxvY2F0aW9uLm9iamVjdEtleX1gLFxuICAgICAgICAuLi4odGhpcy5idWNrZXRPd25lckFjY291bnRJZCAmJiB7IGJ1Y2tldE93bmVyQWNjb3VudElkOiB0aGlzLmJ1Y2tldE93bmVyQWNjb3VudElkIH0pLFxuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgcHVibGljIGJpbmQoc2NvcGU6IENvbnN0cnVjdCk6IHZvaWQge1xuICAgIGlmIChzY29wZSkge1xuICAgIH1cbiAgICAvLyBOby1vcFxuICB9XG5cbiAgcHVibGljIGdyYW50UGVybWlzc2lvbnNUb1JvbGUocm9sZTogSVJvbGUpOiB2b2lkIHtcbiAgICBHcmFudC5hZGRUb1ByaW5jaXBhbCh7XG4gICAgICBncmFudGVlOiByb2xlLFxuICAgICAgYWN0aW9uczogWydzMzpHZXRPYmplY3QnXSxcbiAgICAgIHJlc291cmNlQXJuczogW2Bhcm46JHtBd3MuUEFSVElUSU9OfTpzMzo6OiR7dGhpcy5sb2NhdGlvbi5idWNrZXROYW1lfS8ke3RoaXMubG9jYXRpb24ub2JqZWN0S2V5fWBdLFxuICAgIH0pO1xuICB9XG59XG4iXX0=
214
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbC1zY2hlbWEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJ0b29sLXNjaGVtYS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsNkNBQWtDO0FBRWxDLGlEQUE0QztBQUU1Qyx1REFBdUQ7QUFDdkQsNEVBQWdFO0FBRWhFLCtDQUE2QztBQXNCN0M7O0dBRUc7QUFDSCxJQUFZLG9CQWFYO0FBYkQsV0FBWSxvQkFBb0I7SUFDOUIsa0JBQWtCO0lBQ2xCLHlDQUFpQixDQUFBO0lBQ2pCLGtCQUFrQjtJQUNsQix5Q0FBaUIsQ0FBQTtJQUNqQixrQkFBa0I7SUFDbEIseUNBQWlCLENBQUE7SUFDakIsaUJBQWlCO0lBQ2pCLHVDQUFlLENBQUE7SUFDZixtQkFBbUI7SUFDbkIsMkNBQW1CLENBQUE7SUFDbkIsbUJBQW1CO0lBQ25CLDJDQUFtQixDQUFBO0FBQ3JCLENBQUMsRUFiVyxvQkFBb0Isb0NBQXBCLG9CQUFvQixRQWEvQjtBQTBFRDs7R0FFRztBQUNILE1BQU0sZUFBZ0IsU0FBUSxLQUFLO0lBQ1k7SUFBN0MsWUFBWSxPQUFlLEVBQWtCLEtBQWM7UUFDekQsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRDRCLFVBQUssR0FBTCxLQUFLLENBQVM7UUFFekQsSUFBSSxDQUFDLElBQUksR0FBRyxpQkFBaUIsQ0FBQztLQUMvQjtDQUNGO0FBRUQ7OytFQUUrRTtBQUMvRSxNQUFzQixVQUFXLFNBQVEsMEJBQVk7O0lBQ25EOzs7T0FHRztJQUNJLE1BQU0sQ0FBQyxjQUFjLENBQUMsSUFBWTtRQUN2QyxPQUFPLElBQUksZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO0tBQ2xDO0lBRUQ7OztPQUdHO0lBQ0ksTUFBTSxDQUFDLFVBQVUsQ0FBQyxNQUF3QjtRQUMvQyxPQUFPLElBQUksZ0JBQWdCLENBQUMsTUFBTSxDQUFDLENBQUM7S0FDckM7SUFFRDs7Ozs7T0FLRztJQUNJLE1BQU0sQ0FBQyxVQUFVLENBQUMsTUFBZSxFQUFFLFNBQWlC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QUE2QjtRQUM1RixLQUFLLENBQUMsUUFBUSxFQUFFLG9CQUFvQixFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBRHRCLGFBQVEsR0FBUixRQUFRLENBQVU7UUFBa0IseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFTO0tBRTdGO0lBQ0Q7O09BRUc7SUFDSSxPQUFPO1FBQ1osT0FBTztZQUNMLEVBQUUsRUFBRTtnQkFDRixHQUFHLEVBQUUsUUFBUSxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsRUFBRTtnQkFDbEUsR0FBRyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsSUFBSSxFQUFFLG9CQUFvQixFQUFFLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO2FBQ3RGO1NBQ0YsQ0FBQztLQUNIO0lBRU0sSUFBSSxDQUFDLEtBQWdCO1FBQzFCLElBQUksS0FBSyxFQUFFLENBQUM7UUFDWixDQUFDO0tBRUY7SUFFTSxzQkFBc0IsQ0FBQyxJQUFXO1FBQ3ZDLGVBQUssQ0FBQyxjQUFjLENBQUM7WUFDbkIsT0FBTyxFQUFFLElBQUk7WUFDYixPQUFPLEVBQUUsQ0FBQyxjQUFjLENBQUM7WUFDekIsWUFBWSxFQUFFLENBQUMsT0FBTyxpQkFBRyxDQUFDLFNBQVMsU0FBUyxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsRUFBRSxDQUFDO1NBQ25HLENBQUMsQ0FBQztLQUNKOztBQTVCSCxvQ0E2QkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBd3MgfSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgdHlwZSB7IElSb2xlIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWlhbSc7XG5pbXBvcnQgeyBHcmFudCB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1pYW0nO1xuaW1wb3J0IHR5cGUgeyBJQnVja2V0LCBMb2NhdGlvbiB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1zMyc7XG5pbXBvcnQgKiBhcyBzM19hc3NldHMgZnJvbSAnYXdzLWNkay1saWIvYXdzLXMzLWFzc2V0cyc7XG5pbXBvcnQgeyBtZDVoYXNoIH0gZnJvbSAnYXdzLWNkay1saWIvY29yZS9saWIvaGVscGVycy1pbnRlcm5hbCc7XG5pbXBvcnQgdHlwZSB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHsgVGFyZ2V0U2NoZW1hIH0gZnJvbSAnLi9iYXNlLXNjaGVtYSc7XG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUb29sIFNjaGVtYSBDb25maWd1cmF0aW9uXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbi8qKlxuICogQWJzdHJhY3QgaW50ZXJmYWNlIGZvciB0b29sIHNjaGVtYSBjb25maWd1cmF0aW9uXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJVG9vbFNjaGVtYUNvbmZpZ3VyYXRpb24ge1xuICAvKipcbiAgICogVGhlIHRvb2wgc2NoZW1hIGNvbmZpZ3VyYXRpb24gdHlwZVxuICAgKi9cbiAgcmVhZG9ubHkgdG9vbFNjaGVtYVR5cGU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHRvb2wgc2NoZW1hIGNvbmZpZ3VyYXRpb24gb2JqZWN0XG4gICAqL1xuICByZWFkb25seSBjb25maWd1cmF0aW9uOiBhbnk7XG59XG5cbi8qKlxuICogU2NoZW1hIGRlZmluaXRpb24gdHlwZXNcbiAqL1xuZXhwb3J0IGVudW0gU2NoZW1hRGVmaW5pdGlvblR5cGUge1xuICAvKiogU3RyaW5nIHR5cGUgKi9cbiAgU1RSSU5HID0gJ3N0cmluZycsXG4gIC8qKiBOdW1iZXIgdHlwZSAqL1xuICBOVU1CRVIgPSAnbnVtYmVyJyxcbiAgLyoqIE9iamVjdCB0eXBlICovXG4gIE9CSkVDVCA9ICdvYmplY3QnLFxuICAvKiogQXJyYXkgdHlwZSAqL1xuICBBUlJBWSA9ICdhcnJheScsXG4gIC8qKiBCb29sZWFuIHR5cGUgKi9cbiAgQk9PTEVBTiA9ICdib29sZWFuJyxcbiAgLyoqIEludGVnZXIgdHlwZSAqL1xuICBJTlRFR0VSID0gJ2ludGVnZXInLFxufVxuXG4vKipcbiAqIFNjaGVtYSBkZWZpbml0aW9uIGZvciB0b29sIGlucHV0L291dHB1dFxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNjaGVtYURlZmluaXRpb24ge1xuICAvKipcbiAgICogVGhlIHR5cGUgb2YgdGhlIHNjaGVtYSBkZWZpbml0aW9uLiBUaGlzIGZpZWxkIHNwZWNpZmllcyB0aGUgZGF0YSB0eXBlIG9mIHRoZSBzY2hlbWEuXG4gICAqL1xuICByZWFkb25seSB0eXBlOiBTY2hlbWFEZWZpbml0aW9uVHlwZTtcblxuICAvKipcbiAgICogVGhlIGRlc2NyaXB0aW9uIG9mIHRoZSBzY2hlbWEgZGVmaW5pdGlvbi4gVGhpcyBkZXNjcmlwdGlvbiBwcm92aWRlcyBpbmZvcm1hdGlvbiBhYm91dCB0aGUgcHVycG9zZSBhbmQgdXNhZ2Ugb2YgdGhlIHNjaGVtYS5cbiAgICovXG4gIC8qKlxuICAgKiBUaGUgZGVzY3JpcHRpb24gb2YgdGhlIHNjaGVtYSBkZWZpbml0aW9uLiBUaGlzIGRlc2NyaXB0aW9uIHByb3ZpZGVzIGluZm9ybWF0aW9uIGFib3V0IHRoZSBwdXJwb3NlIGFuZCB1c2FnZSBvZiB0aGUgc2NoZW1hLlxuICAgKiBAZGVmYXVsdCAtIE5vIGRlc2NyaXB0aW9uXG4gICAqL1xuICByZWFkb25seSBkZXNjcmlwdGlvbj86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGl0ZW1zIGluIHRoZSBzY2hlbWEgZGVmaW5pdGlvbi4gVGhpcyBmaWVsZCBpcyB1c2VkIGZvciBhcnJheSB0eXBlcyB0byBkZWZpbmUgdGhlIHN0cnVjdHVyZSBvZiB0aGUgYXJyYXkgZWxlbWVudHMuXG4gICAqL1xuICAvKipcbiAgICogVGhlIGl0ZW1zIGluIHRoZSBzY2hlbWEgZGVmaW5pdGlvbi4gVGhpcyBmaWVsZCBpcyB1c2VkIGZvciBhcnJheSB0eXBlcyB0byBkZWZpbmUgdGhlIHN0cnVjdHVyZSBvZiB0aGUgYXJyYXkgZWxlbWVudHMuXG4gICAqIEBkZWZhdWx0IC0gTm8gaXRlbXMgZGVmaW5pdGlvblxuICAgKi9cbiAgcmVhZG9ubHkgaXRlbXM/OiBTY2hlbWFEZWZpbml0aW9uO1xuXG4gIC8qKlxuICAgKiBUaGUgcHJvcGVydGllcyBvZiB0aGUgc2NoZW1hIGRlZmluaXRpb24uIFRoZXNlIHByb3BlcnRpZXMgZGVmaW5lIHRoZSBmaWVsZHMgaW4gdGhlIHNjaGVtYS5cbiAgICovXG4gIC8qKlxuICAgKiBUaGUgcHJvcGVydGllcyBvZiB0aGUgc2NoZW1hIGRlZmluaXRpb24uIFRoZXNlIHByb3BlcnRpZXMgZGVmaW5lIHRoZSBmaWVsZHMgaW4gdGhlIHNjaGVtYS5cbiAgICogQGRlZmF1bHQgLSBObyBwcm9wZXJ0aWVzXG4gICAqL1xuICByZWFkb25seSBwcm9wZXJ0aWVzPzogUmVjb3JkPHN0cmluZywgU2NoZW1hRGVmaW5pdGlvbj47XG5cbiAgLyoqXG4gICAqIFRoZSByZXF1aXJlZCBmaWVsZHMgaW4gdGhlIHNjaGVtYSBkZWZpbml0aW9uLiBUaGVzZSBmaWVsZHMgbXVzdCBiZSBwcm92aWRlZCB3aGVuIHVzaW5nIHRoZSBzY2hlbWEuXG4gICAqIEBkZWZhdWx0IC0gTm8gcmVxdWlyZWQgZmllbGRzXG4gICAqL1xuICByZWFkb25seSByZXF1aXJlZD86IHN0cmluZ1tdO1xufVxuXG4vKipcbiAqIFRvb2wgZGVmaW5pdGlvbiBmb3IgaW5saW5lIHBheWxvYWRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUb29sRGVmaW5pdGlvbiB7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgdG9vbC4gVGhpcyBuYW1lIGlkZW50aWZpZXMgdGhlIHRvb2wgaW4gdGhlIE1vZGVsIENvbnRleHQgUHJvdG9jb2wuXG4gICAqL1xuICByZWFkb25seSBuYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBkZXNjcmlwdGlvbiBvZiB0aGUgdG9vbC4gVGhpcyBkZXNjcmlwdGlvbiBwcm92aWRlcyBpbmZvcm1hdGlvbiBhYm91dCB0aGUgcHVycG9zZSBhbmQgdXNhZ2Ugb2YgdGhlIHRvb2wuXG4gICAqL1xuICByZWFkb25seSBkZXNjcmlwdGlvbjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgaW5wdXQgc2NoZW1hIGZvciB0aGUgdG9vbC4gVGhpcyBzY2hlbWEgZGVmaW5lcyB0aGUgc3RydWN0dXJlIG9mIHRoZSBpbnB1dCB0aGF0IHRoZSB0b29sIGFjY2VwdHMuXG4gICAqL1xuICByZWFkb25seSBpbnB1dFNjaGVtYTogU2NoZW1hRGVmaW5pdGlvbjtcblxuICAvKipcbiAgICogVGhlIG91dHB1dCBzY2hlbWEgZm9yIHRoZSB0b29sLiBUaGlzIHNjaGVtYSBkZWZpbmVzIHRoZSBzdHJ1Y3R1cmUgb2YgdGhlIG91dHB1dCB0aGF0IHRoZSB0b29sIHByb2R1Y2VzLlxuICAgKi9cbiAgLyoqXG4gICAqIFRoZSBvdXRwdXQgc2NoZW1hIGZvciB0aGUgdG9vbC4gVGhpcyBzY2hlbWEgZGVmaW5lcyB0aGUgc3RydWN0dXJlIG9mIHRoZSBvdXRwdXQgdGhhdCB0aGUgdG9vbCBwcm9kdWNlcy5cbiAgICogQGRlZmF1bHQgLSBObyBvdXRwdXQgc2NoZW1hXG4gICAqL1xuICByZWFkb25seSBvdXRwdXRTY2hlbWE/OiBTY2hlbWFEZWZpbml0aW9uO1xufVxuXG4vKipcbiAqIEVycm9yIHRocm93biB3aGVuIGEgVG9vbFNjaGVtYSBpcyBub3QgcHJvcGVybHkgaW5pdGlhbGl6ZWQuXG4gKi9cbmNsYXNzIFRvb2xTY2hlbWFFcnJvciBleHRlbmRzIEVycm9yIHtcbiAgY29uc3RydWN0b3IobWVzc2FnZTogc3RyaW5nLCBwdWJsaWMgcmVhZG9ubHkgY2F1c2U/OiBzdHJpbmcpIHtcbiAgICBzdXBlcihtZXNzYWdlKTtcbiAgICB0aGlzLm5hbWUgPSAnVG9vbFNjaGVtYUVycm9yJztcbiAgfVxufVxuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKiAgICAgICAgICAgICAgICAgICAgICAgVE9PTCBTQ0hFTUEgQ0xBU1NcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBUb29sU2NoZW1hIGV4dGVuZHMgVGFyZ2V0U2NoZW1hIHtcbiAgLyoqXG4gICAqIENyZWF0ZXMgYSB0b29sIFNjaGVtYSBmcm9tIGEgbG9jYWwgZmlsZS5cbiAgICogQHBhcmFtIHBhdGggLSB0aGUgcGF0aCB0byB0aGUgbG9jYWwgZmlsZSBjb250YWluaW5nIHRoZSBmdW5jdGlvbiBzY2hlbWEgZm9yIHRoZSB0b29sXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21Mb2NhbEFzc2V0KHBhdGg6IHN0cmluZyk6IFRvb2xTY2hlbWEge1xuICAgIHJldHVybiBuZXcgQXNzZXRUb29sU2NoZW1hKHBhdGgpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBUb29sIFNjaGVtYSBmcm9tIGFuIGlubGluZSBzdHJpbmcuXG4gICAqIEBwYXJhbSBzY2hlbWEgLSB0aGUgSlNPTiBvciBZQU1MIHBheWxvYWQgZGVmaW5pbmcgdGhlIE9wZW5BUEkgc2NoZW1hIGZvciB0aGUgYWN0aW9uIGdyb3VwXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21JbmxpbmUoc2NoZW1hOiBUb29sRGVmaW5pdGlvbltdKTogSW5saW5lVG9vbFNjaGVtYSB7XG4gICAgcmV0dXJuIG5ldyBJbmxpbmVUb29sU2NoZW1hKHNjaGVtYSk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIFRvb2wgU2NoZW1hIGZyb20gYW4gUzMgRmlsZVxuICAgKiBAcGFyYW0gYnVja2V0IC0gdGhlIGJ1Y2tldCBjb250YWluaW5nIHRoZSBsb2NhbCBmaWxlIGNvbnRhaW5pbmcgdGhlIE9wZW5BUEkgc2NoZW1hIGZvciB0aGUgYWN0aW9uIGdyb3VwXG4gICAqIEBwYXJhbSBvYmplY3RLZXkgLSBvYmplY3Qga2V5IGluIHRoZSBidWNrZXRcbiAgICogQHBhcmFtIGJ1Y2tldE93bmVyQWNjb3VudElkIC0gb3B0aW9uYWwgVGhlIGFjY291bnQgSUQgb2YgdGhlIEFtYXpvbiBTMyBidWNrZXQgb3duZXIuIFRoaXMgSUQgaXMgdXNlZCBmb3IgY3Jvc3MtYWNjb3VudCBhY2Nlc3MgdG8gdGhlIGJ1Y2tldC5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbVMzRmlsZShidWNrZXQ6IElCdWNrZXQsIG9iamVjdEtleTogc3RyaW5nLCBidWNrZXRPd25lckFjY291bnRJZD86IHN0cmluZyk6IFMzVG9vbFNjaGVtYSB7XG4gICAgcmV0dXJuIG5ldyBTM1Rvb2xTY2hlbWEoXG4gICAgICB7XG4gICAgICAgIGJ1Y2tldE5hbWU6IGJ1Y2tldC5idWNrZXROYW1lLFxuICAgICAgICBvYmplY3RLZXk6IG9iamVjdEtleSxcbiAgICAgIH0sXG4gICAgICBidWNrZXRPd25lckFjY291bnRJZCxcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBTMyBsb2NhdGlvbiBvZiB0aGUgdG9vbCBzY2hlbWEgZmlsZSwgaWYgdXNpbmcgYW4gUzMtYmFzZWQgc2NoZW1hLlxuICAgKiBDb250YWlucyB0aGUgYnVja2V0IG5hbWUgYW5kIG9iamVjdCBrZXkgaW5mb3JtYXRpb24uXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgczNGaWxlPzogTG9jYXRpb247XG5cbiAgLyoqXG4gICAqIFRoZSBpbmxpbmUgdG9vbCBzY2hlbWEgZGVmaW5pdGlvbiBhcyBhIHN0cmluZywgaWYgdXNpbmcgYW4gaW5saW5lIHNjaGVtYS5cbiAgICogQ2FuIGJlIGluIEpTT04gb3IgWUFNTCBmb3JtYXQuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgaW5saW5lU2NoZW1hPzogVG9vbERlZmluaXRpb25bXTtcblxuICAvKipcbiAgICogVGhlIGFjY291bnQgSUQgb2YgdGhlIFMzIGJ1Y2tldCBvd25lciBmb3IgY3Jvc3MtYWNjb3VudCBhY2Nlc3NcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBidWNrZXRPd25lckFjY291bnRJZD86IHN0cmluZztcblxuICBwcm90ZWN0ZWQgY29uc3RydWN0b3IoczNGaWxlPzogTG9jYXRpb24sIGJ1Y2tldE93bmVyQWNjb3VudElkPzogc3RyaW5nLCBpbmxpbmVTY2hlbWE/OiBUb29sRGVmaW5pdGlvbltdKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLnMzRmlsZSA9IHMzRmlsZTtcbiAgICB0aGlzLmlubGluZVNjaGVtYSA9IGlubGluZVNjaGVtYTtcbiAgICB0aGlzLmJ1Y2tldE93bmVyQWNjb3VudElkID0gYnVja2V0T3duZXJBY2NvdW50SWQ7XG4gIH1cblxuICAvKipcbiAgICogRm9ybWF0IGFzIENGTiBwcm9wZXJ0aWVzXG4gICAqIEBpbnRlcm5hbCBUaGlzIGlzIGFuIGludGVybmFsIGNvcmUgZnVuY3Rpb24gYW5kIHNob3VsZCBub3QgYmUgY2FsbGVkIGRpcmVjdGx5LlxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IF9yZW5kZXIoKTogYW55O1xufVxuXG4vKipcbiAqIFRvb2wgU2NoZW1hIGZyb20gYSBsb2NhbCBhc3NldC5cbiAqXG4gKiBUaGUgYXNzZXQgaXMgdXBsb2FkZWQgdG8gYW4gUzMgc3RhZ2luZyBidWNrZXQsIHRoZW4gbW92ZWQgdG8gaXRzIGZpbmFsIGxvY2F0aW9uXG4gKiBieSBDbG91ZEZvcm1hdGlvbiBkdXJpbmcgZGVwbG95bWVudC5cbiAqL1xuZXhwb3J0IGNsYXNzIEFzc2V0VG9vbFNjaGVtYSBleHRlbmRzIFRvb2xTY2hlbWEge1xuICBwcml2YXRlIGFzc2V0PzogczNfYXNzZXRzLkFzc2V0O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgcGF0aDogc3RyaW5nLCBwcml2YXRlIHJlYWRvbmx5IG9wdGlvbnM6IHMzX2Fzc2V0cy5Bc3NldE9wdGlvbnMgPSB7fSkge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICAvKipcbiAgICogQmluZHMgdGhpcyB0b29sIHNjaGVtYSB0byBhIGNvbnN0cnVjdCBzY29wZS5cbiAgICogVGhpcyBtZXRob2QgaW5pdGlhbGl6ZXMgdGhlIFMzIGFzc2V0IGlmIGl0IGhhc24ndCBiZWVuIGluaXRpYWxpemVkIHlldC5cbiAgICogTXVzdCBiZSBjYWxsZWQgYmVmb3JlIHJlbmRlcmluZyB0aGUgc2NoZW1hIGFzIENGTiBwcm9wZXJ0aWVzLlxuICAgKlxuICAgKiBAcGFyYW0gc2NvcGUgLSBUaGUgY29uc3RydWN0IHNjb3BlIHRvIGJpbmQgdG9cbiAgICovXG4gIHB1YmxpYyBiaW5kKHNjb3BlOiBDb25zdHJ1Y3QpOiB2b2lkIHtcbiAgICAvLyBJZiB0aGUgc2FtZSBBc3NldFRvb2xTY2hlbWEgaXMgdXNlZCBtdWx0aXBsZSB0aW1lcywgcmV0YWluIG9ubHkgdGhlIGZpcnN0IGluc3RhbnRpYXRpb25cbiAgICBpZiAoIXRoaXMuYXNzZXQpIHtcbiAgICAgIHRoaXMuYXNzZXQgPSBuZXcgczNfYXNzZXRzLkFzc2V0KHNjb3BlLCBgU2NoZW1hJHttZDVoYXNoKHRoaXMucGF0aCl9YCwge1xuICAgICAgICBwYXRoOiB0aGlzLnBhdGgsXG4gICAgICAgIC4uLnRoaXMub3B0aW9ucyxcbiAgICAgIH0pO1xuICAgICAgLy8gTm90ZTogUGVybWlzc2lvbnMgd2lsbCBiZSBncmFudGVkIGJ5IHRoZSBHYXRld2F5IHRhcmdldCBjb25zdHJ1Y3Qgd2hlbiBhZGRpbmcgdGhlIHRhcmdldFxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBGb3JtYXQgYXMgQ0ZOIHByb3BlcnRpZXNcbiAgICogQGludGVybmFsIFRoaXMgaXMgYW4gaW50ZXJuYWwgY29yZSBmdW5jdGlvbiBhbmQgc2hvdWxkIG5vdCBiZSBjYWxsZWQgZGlyZWN0bHkuXG4gICAqL1xuICBwdWJsaWMgX3JlbmRlcigpOiBhbnkge1xuICAgIGlmICghdGhpcy5hc3NldCkge1xuICAgICAgdGhyb3cgbmV3IFRvb2xTY2hlbWFFcnJvcihcbiAgICAgICAgJ1Rvb2xTY2hlbWEgbXVzdCBiZSBib3VuZCB0byBhIHNjb3BlIGJlZm9yZSByZW5kZXJpbmcuIENhbGwgYmluZCgpIGZpcnN0LicsXG4gICAgICAgICdBc3NldCBub3QgaW5pdGlhbGl6ZWQnLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgczM6IHtcbiAgICAgICAgdXJpOiBgczM6Ly8ke3RoaXMuYXNzZXQuczNCdWNrZXROYW1lfS8ke3RoaXMuYXNzZXQuczNPYmplY3RLZXl9YCxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuXG4gIHB1YmxpYyBncmFudFBlcm1pc3Npb25zVG9Sb2xlKHJvbGU6IElSb2xlKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmFzc2V0KSB7XG4gICAgICB0aHJvdyBuZXcgVG9vbFNjaGVtYUVycm9yKFxuICAgICAgICAnVG9vbFNjaGVtYSBtdXN0IGJlIGJvdW5kIHRvIGEgc2NvcGUgYmVmb3JlIHJlbmRlcmluZy4gQ2FsbCBiaW5kKCkgZmlyc3QuJyxcbiAgICAgICAgJ0Fzc2V0IG5vdCBpbml0aWFsaXplZCcsXG4gICAgICApO1xuICAgIH1cbiAgICB0aGlzLmFzc2V0LmdyYW50UmVhZChyb2xlKTtcbiAgfVxufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8qKlxuICogQ2xhc3MgdG8gZGVmaW5lIGEgVG9vbCBTY2hlbWEgZnJvbSBhbiBpbmxpbmUgc3RyaW5nLlxuICogVGhlIHNjaGVtYSBjYW4gYmUgcHJvdmlkZWQgZGlyZWN0bHkgYXMgYSBzdHJpbmcgaW4gZWl0aGVyIEpTT04gb3IgWUFNTCBmb3JtYXQuXG4gKi9cbmV4cG9ydCBjbGFzcyBJbmxpbmVUb29sU2NoZW1hIGV4dGVuZHMgVG9vbFNjaGVtYSB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgc2NoZW1hOiBUb29sRGVmaW5pdGlvbltdKSB7XG4gICAgc3VwZXIodW5kZWZpbmVkLCB1bmRlZmluZWQsIHNjaGVtYSk7XG4gIH1cblxuICAvKipcbiAgICogQGludGVybmFsIFRoaXMgaXMgYW4gaW50ZXJuYWwgY29yZSBmdW5jdGlvbiBhbmQgc2hvdWxkIG5vdCBiZSBjYWxsZWQgZGlyZWN0bHkuXG4gICAqL1xuICBwdWJsaWMgX3JlbmRlcigpOiBhbnkge1xuICAgIHJldHVybiB7XG4gICAgICBpbmxpbmVQYXlsb2FkOiB0aGlzLnNjaGVtYSxcbiAgICB9O1xuICB9XG5cbiAgcHVibGljIGJpbmQoc2NvcGU6IENvbnN0cnVjdCk6IHZvaWQge1xuICAgIGlmIChzY29wZSkge1xuICAgIH1cbiAgICAvLyBOby1vcFxuICB9XG5cbiAgcHVibGljIGdyYW50UGVybWlzc2lvbnNUb1JvbGUoX3JvbGU6IElSb2xlKTogdm9pZCB7XG4gICAgLy8gTm8tb3AgLSBJbmxpbmVUb29sU2NoZW1hIGRvZXNuJ3QgbmVlZCBwZXJtaXNzaW9uc1xuICB9XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gUzMgRmlsZVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vKipcbiAqIENsYXNzIHRvIGRlZmluZSBhIFRvb2wgU2NoZW1hIGZyb20gYW4gUzMgb2JqZWN0LlxuICovXG5leHBvcnQgY2xhc3MgUzNUb29sU2NoZW1hIGV4dGVuZHMgVG9vbFNjaGVtYSB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgbG9jYXRpb246IExvY2F0aW9uLCBwdWJsaWMgcmVhZG9ubHkgYnVja2V0T3duZXJBY2NvdW50SWQ/OiBzdHJpbmcpIHtcbiAgICBzdXBlcihsb2NhdGlvbiwgYnVja2V0T3duZXJBY2NvdW50SWQsIHVuZGVmaW5lZCk7XG4gIH1cbiAgLyoqXG4gICAqIEBpbnRlcm5hbCBUaGlzIGlzIGFuIGludGVybmFsIGNvcmUgZnVuY3Rpb24gYW5kIHNob3VsZCBub3QgYmUgY2FsbGVkIGRpcmVjdGx5LlxuICAgKi9cbiAgcHVibGljIF9yZW5kZXIoKTogYW55IHtcbiAgICByZXR1cm4ge1xuICAgICAgczM6IHtcbiAgICAgICAgdXJpOiBgczM6Ly8ke3RoaXMubG9jYXRpb24uYnVja2V0TmFtZX0vJHt0aGlzLmxvY2F0aW9uLm9iamVjdEtleX1gLFxuICAgICAgICAuLi4odGhpcy5idWNrZXRPd25lckFjY291bnRJZCAmJiB7IGJ1Y2tldE93bmVyQWNjb3VudElkOiB0aGlzLmJ1Y2tldE93bmVyQWNjb3VudElkIH0pLFxuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgcHVibGljIGJpbmQoc2NvcGU6IENvbnN0cnVjdCk6IHZvaWQge1xuICAgIGlmIChzY29wZSkge1xuICAgIH1cbiAgICAvLyBOby1vcFxuICB9XG5cbiAgcHVibGljIGdyYW50UGVybWlzc2lvbnNUb1JvbGUocm9sZTogSVJvbGUpOiB2b2lkIHtcbiAgICBHcmFudC5hZGRUb1ByaW5jaXBhbCh7XG4gICAgICBncmFudGVlOiByb2xlLFxuICAgICAgYWN0aW9uczogWydzMzpHZXRPYmplY3QnXSxcbiAgICAgIHJlc291cmNlQXJuczogW2Bhcm46JHtBd3MuUEFSVElUSU9OfTpzMzo6OiR7dGhpcy5sb2NhdGlvbi5idWNrZXROYW1lfS8ke3RoaXMubG9jYXRpb24ub2JqZWN0S2V5fWBdLFxuICAgIH0pO1xuICB9XG59XG4iXX0=
@@ -1,7 +1,9 @@
1
- import { Resource, IResource } from 'aws-cdk-lib';
1
+ import type { IResource } from 'aws-cdk-lib';
2
+ import { Resource } from 'aws-cdk-lib';
3
+ import type { GatewayTargetReference, IGatewayTargetRef } from 'aws-cdk-lib/aws-bedrockagentcore';
2
4
  import * as iam from 'aws-cdk-lib/aws-iam';
3
- import { IGateway } from '../gateway-base';
4
- import { ICredentialProviderConfig } from '../outbound-auth/credential-provider';
5
+ import type { IGateway } from '../gateway-base';
6
+ import type { ICredentialProviderConfig } from '../outbound-auth/credential-provider';
5
7
  /******************************************************************************
6
8
  * ENUM
7
9
  *****************************************************************************/
@@ -23,7 +25,9 @@ export declare enum McpTargetType {
23
25
  /** Lambda function target type */
24
26
  LAMBDA = "LAMBDA",
25
27
  /** MCP server target type */
26
- MCP_SERVER = "MCP_SERVER"
28
+ MCP_SERVER = "MCP_SERVER",
29
+ /** API Gateway target type */
30
+ API_GATEWAY = "API_GATEWAY"
27
31
  }
28
32
  /******************************************************************************
29
33
  * Interface
@@ -34,7 +38,7 @@ export declare enum McpTargetType {
34
38
  * Represents a target that hosts tools for the gateway.
35
39
  * Targets can be Lambda functions, OpenAPI schemas, or Smithy models.
36
40
  */
37
- export interface IGatewayTarget extends IResource {
41
+ export interface IGatewayTarget extends IResource, IGatewayTargetRef {
38
42
  /**
39
43
  * The ARN of the gateway target resource
40
44
  * @attribute
@@ -131,6 +135,10 @@ export declare abstract class GatewayTargetBase extends Resource implements IGat
131
135
  abstract readonly createdAt?: string;
132
136
  abstract readonly updatedAt?: string;
133
137
  abstract readonly targetProtocolType: GatewayTargetProtocolType;
138
+ /**
139
+ * A reference to a GatewayTarget resource.
140
+ */
141
+ get gatewayTargetRef(): GatewayTargetReference;
134
142
  /**
135
143
  * Grants IAM actions to the IAM Principal
136
144
  *
@@ -28,6 +28,8 @@ var McpTargetType;
28
28
  McpTargetType["LAMBDA"] = "LAMBDA";
29
29
  /** MCP server target type */
30
30
  McpTargetType["MCP_SERVER"] = "MCP_SERVER";
31
+ /** API Gateway target type */
32
+ McpTargetType["API_GATEWAY"] = "API_GATEWAY";
31
33
  })(McpTargetType || (exports.McpTargetType = McpTargetType = {}));
32
34
  /******************************************************************************
33
35
  * Base Class
@@ -39,7 +41,16 @@ var McpTargetType;
39
41
  * permission management and property definitions.
40
42
  */
41
43
  class GatewayTargetBase extends aws_cdk_lib_1.Resource {
42
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.GatewayTargetBase", version: "2.237.1-alpha.0" };
44
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.GatewayTargetBase", version: "2.239.0-alpha.0" };
45
+ /**
46
+ * A reference to a GatewayTarget resource.
47
+ */
48
+ get gatewayTargetRef() {
49
+ return {
50
+ gatewayIdentifier: this.gateway.gatewayRef.gatewayIdentifier,
51
+ targetId: this.targetId,
52
+ };
53
+ }
43
54
  /**
44
55
  * Grants IAM actions to the IAM Principal
45
56
  *
@@ -84,4 +95,4 @@ class GatewayTargetBase extends aws_cdk_lib_1.Resource {
84
95
  }
85
96
  }
86
97
  exports.GatewayTargetBase = GatewayTargetBase;
87
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFyZ2V0LWJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJ0YXJnZXQtYmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsNkNBQWtEO0FBQ2xELDJDQUEyQztBQUkzQzs7K0VBRStFO0FBQy9FOztHQUVHO0FBQ0gsSUFBWSx5QkFHWDtBQUhELFdBQVkseUJBQXlCO0lBQ25DLGtDQUFrQztJQUNsQyx3Q0FBVyxDQUFBO0FBQ2IsQ0FBQyxFQUhXLHlCQUF5Qix5Q0FBekIseUJBQXlCLFFBR3BDO0FBRUQ7O0dBRUc7QUFDSCxJQUFZLGFBU1g7QUFURCxXQUFZLGFBQWE7SUFDdkIsaUNBQWlDO0lBQ2pDLGtEQUFpQyxDQUFBO0lBQ2pDLCtCQUErQjtJQUMvQiw4Q0FBNkIsQ0FBQTtJQUM3QixrQ0FBa0M7SUFDbEMsa0NBQWlCLENBQUE7SUFDakIsNkJBQTZCO0lBQzdCLDBDQUF5QixDQUFBO0FBQzNCLENBQUMsRUFUVyxhQUFhLDZCQUFiLGFBQWEsUUFTeEI7QUF1R0Q7OytFQUUrRTtBQUMvRTs7Ozs7R0FLRztBQUNILE1BQXNCLGlCQUFrQixTQUFRLHNCQUFROztJQWF0RDs7Ozs7OztPQU9HO0lBQ0ksS0FBSyxDQUFDLE9BQXVCLEVBQUUsR0FBRyxPQUFpQjtRQUN4RCxPQUFPLEdBQUcsQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDO1lBQzlCLE9BQU8sRUFBRSxPQUFPO1lBQ2hCLFlBQVksRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUM7WUFDOUIsT0FBTyxFQUFFLE9BQU87U0FDakIsQ0FBQyxDQUFDO0tBQ0o7SUFFRDs7Ozs7O09BTUc7SUFDSSxTQUFTLENBQUMsT0FBdUI7UUFDdEMsTUFBTSxxQkFBcUIsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxvQ0FBb0MsQ0FBQyxDQUFDO1FBRXhGLE1BQU0sZ0JBQWdCLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUM7WUFDaEQsT0FBTyxFQUFFLE9BQU87WUFDaEIsWUFBWSxFQUFFLENBQUMsR0FBRyxDQUFDO1lBQ25CLE9BQU8sRUFBRSxDQUFDLHNDQUFzQyxDQUFDO1NBQ2xELENBQUMsQ0FBQztRQUNILHdCQUF3QjtRQUN4QixPQUFPLHFCQUFxQixDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0tBQ3hEO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksV0FBVyxDQUFDLE9BQXVCO1FBQ3hDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FDZixPQUFPLEVBQ1AsdUNBQXVDLEVBQ3ZDLHVDQUF1QyxFQUN2Qyx1Q0FBdUMsQ0FDeEMsQ0FBQztLQUNIOztBQTlESCw4Q0ErREMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSZXNvdXJjZSwgSVJlc291cmNlIH0gZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0ICogYXMgaWFtIGZyb20gJ2F3cy1jZGstbGliL2F3cy1pYW0nO1xuaW1wb3J0IHsgSUdhdGV3YXkgfSBmcm9tICcuLi9nYXRld2F5LWJhc2UnO1xuaW1wb3J0IHsgSUNyZWRlbnRpYWxQcm92aWRlckNvbmZpZyB9IGZyb20gJy4uL291dGJvdW5kLWF1dGgvY3JlZGVudGlhbC1wcm92aWRlcic7XG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRU5VTVxuICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqXG4gKiBQcm90b2NvbCB0eXBlcyBzdXBwb3J0ZWQgYnkgZ2F0ZXdheSB0YXJnZXRzXG4gKi9cbmV4cG9ydCBlbnVtIEdhdGV3YXlUYXJnZXRQcm90b2NvbFR5cGUge1xuICAvKiogTW9kZWwgQ29udGV4dCBQcm90b2NvbCB0eXBlICovXG4gIE1DUCA9ICdNQ1AnLFxufVxuXG4vKipcbiAqIE1DUCB0YXJnZXQgdHlwZXNcbiAqL1xuZXhwb3J0IGVudW0gTWNwVGFyZ2V0VHlwZSB7XG4gIC8qKiBPcGVuQVBJIHNjaGVtYSB0YXJnZXQgdHlwZSAqL1xuICBPUEVOQVBJX1NDSEVNQSA9ICdPUEVOQVBJX1NDSEVNQScsXG4gIC8qKiBTbWl0aHkgbW9kZWwgdGFyZ2V0IHR5cGUgKi9cbiAgU01JVEhZX01PREVMID0gJ1NNSVRIWV9NT0RFTCcsXG4gIC8qKiBMYW1iZGEgZnVuY3Rpb24gdGFyZ2V0IHR5cGUgKi9cbiAgTEFNQkRBID0gJ0xBTUJEQScsXG4gIC8qKiBNQ1Agc2VydmVyIHRhcmdldCB0eXBlICovXG4gIE1DUF9TRVJWRVIgPSAnTUNQX1NFUlZFUicsXG59XG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbnRlcmZhY2VcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuLyoqXG4gKiBJbnRlcmZhY2UgZm9yIEdhdGV3YXlUYXJnZXQgcmVzb3VyY2VzXG4gKlxuICogUmVwcmVzZW50cyBhIHRhcmdldCB0aGF0IGhvc3RzIHRvb2xzIGZvciB0aGUgZ2F0ZXdheS5cbiAqIFRhcmdldHMgY2FuIGJlIExhbWJkYSBmdW5jdGlvbnMsIE9wZW5BUEkgc2NoZW1hcywgb3IgU21pdGh5IG1vZGVscy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJR2F0ZXdheVRhcmdldCBleHRlbmRzIElSZXNvdXJjZSB7XG4gIC8qKlxuICAgKiBUaGUgQVJOIG9mIHRoZSBnYXRld2F5IHRhcmdldCByZXNvdXJjZVxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICByZWFkb25seSB0YXJnZXRBcm46IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGlkIG9mIHRoZSBnYXRld2F5IHRhcmdldFxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICByZWFkb25seSB0YXJnZXRJZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgZ2F0ZXdheSB0YXJnZXRcbiAgICovXG4gIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGRlc2NyaXB0aW9uIG9mIHRoZSBnYXRld2F5IHRhcmdldFxuICAgKi9cbiAgcmVhZG9ubHkgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBnYXRld2F5IHRoYXQgdGhpcyB0YXJnZXQgYmVsb25ncyB0b1xuICAgKi9cbiAgcmVhZG9ubHkgZ2F0ZXdheTogSUdhdGV3YXk7XG5cbiAgLyoqXG4gICAqIFRoZSB0YXJnZXQgcHJvdG9jb2xcbiAgICovXG4gIHJlYWRvbmx5IHRhcmdldFByb3RvY29sVHlwZTogR2F0ZXdheVRhcmdldFByb3RvY29sVHlwZTtcblxuICAvKipcbiAgICogVGhlIGNyZWRlbnRpYWwgcHJvdmlkZXIgY29uZmlndXJhdGlvbiBmb3IgdGhlIHRhcmdldFxuICAgKi9cbiAgcmVhZG9ubHkgY3JlZGVudGlhbFByb3ZpZGVyQ29uZmlndXJhdGlvbnM6IElDcmVkZW50aWFsUHJvdmlkZXJDb25maWdbXSB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogVGhlIHN0YXR1cyBvZiB0aGUgZ2F0ZXdheSB0YXJnZXRcbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcmVhZG9ubHkgc3RhdHVzPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgc3RhdHVzIHJlYXNvbnMgZm9yIHRoZSBnYXRld2F5IHRhcmdldFxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICByZWFkb25seSBzdGF0dXNSZWFzb25zPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIFRpbWVzdGFtcCB3aGVuIHRoZSBnYXRld2F5IHRhcmdldCB3YXMgY3JlYXRlZFxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICByZWFkb25seSBjcmVhdGVkQXQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRpbWVzdGFtcCB3aGVuIHRoZSBnYXRld2F5IHRhcmdldCB3YXMgbGFzdCB1cGRhdGVkXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHJlYWRvbmx5IHVwZGF0ZWRBdD86IHN0cmluZztcblxuICAvKipcbiAgICogR3JhbnRzIElBTSBhY3Rpb25zIHRvIHRoZSBJQU0gUHJpbmNpcGFsXG4gICAqL1xuICBncmFudChncmFudGVlOiBpYW0uSUdyYW50YWJsZSwgLi4uYWN0aW9uczogc3RyaW5nW10pOiBpYW0uR3JhbnQ7XG5cbiAgLyoqXG4gICAqIEdyYW50cyBgR2V0YCBhbmQgYExpc3RgIGFjdGlvbnMgb24gdGhlIEdhdGV3YXkgVGFyZ2V0XG4gICAqL1xuICBncmFudFJlYWQoZ3JhbnRlZTogaWFtLklHcmFudGFibGUpOiBpYW0uR3JhbnQ7XG5cbiAgLyoqXG4gICAqIEdyYW50cyBgQ3JlYXRlYCwgYFVwZGF0ZWAsIGFuZCBgRGVsZXRlYCBhY3Rpb25zIG9uIHRoZSBHYXRld2F5IFRhcmdldFxuICAgKi9cbiAgZ3JhbnRNYW5hZ2UoZ3JhbnRlZTogaWFtLklHcmFudGFibGUpOiBpYW0uR3JhbnQ7XG59XG5cbi8qKlxuICogSW50ZXJmYWNlIGZvciBNQ1AgZ2F0ZXdheSB0YXJnZXRzXG4gKlxuICogRXh0ZW5kcyB0aGUgYmFzZSBnYXRld2F5IHRhcmdldCBpbnRlcmZhY2Ugd2l0aCBNQ1Atc3BlY2lmaWMgcHJvcGVydGllcy5cbiAqIE1DUCB0YXJnZXRzIGV4cG9zZSB0b29scyB1c2luZyB0aGUgTW9kZWwgQ29udGV4dCBQcm90b2NvbC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJTWNwR2F0ZXdheVRhcmdldCBleHRlbmRzIElHYXRld2F5VGFyZ2V0IHtcbiAgLyoqXG4gICAqIFRoZSB0eXBlIG9mIHRhcmdldCAoTGFtYmRhLCBPcGVuQVBJLCBvciBTbWl0aHkpXG4gICAqL1xuICByZWFkb25seSB0YXJnZXRUeXBlOiBNY3BUYXJnZXRUeXBlO1xufVxuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQmFzZSBDbGFzc1xuICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqXG4gKiBCYXNlIGNsYXNzIGZvciBnYXRld2F5IHRhcmdldCBpbXBsZW1lbnRhdGlvbnNcbiAqXG4gKiBQcm92aWRlcyBjb21tb24gZnVuY3Rpb25hbGl0eSBmb3IgYWxsIGdhdGV3YXkgdGFyZ2V0IHR5cGVzIGluY2x1ZGluZ1xuICogcGVybWlzc2lvbiBtYW5hZ2VtZW50IGFuZCBwcm9wZXJ0eSBkZWZpbml0aW9ucy5cbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEdhdGV3YXlUYXJnZXRCYXNlIGV4dGVuZHMgUmVzb3VyY2UgaW1wbGVtZW50cyBJR2F0ZXdheVRhcmdldCB7XG4gIHB1YmxpYyBhYnN0cmFjdCByZWFkb25seSB0YXJnZXRBcm46IHN0cmluZztcbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IHRhcmdldElkOiBzdHJpbmc7XG4gIHB1YmxpYyBhYnN0cmFjdCByZWFkb25seSBuYW1lOiBzdHJpbmc7XG4gIHB1YmxpYyBhYnN0cmFjdCByZWFkb25seSBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IGdhdGV3YXk6IElHYXRld2F5O1xuICBwdWJsaWMgYWJzdHJhY3QgcmVhZG9ubHkgY3JlZGVudGlhbFByb3ZpZGVyQ29uZmlndXJhdGlvbnM6IElDcmVkZW50aWFsUHJvdmlkZXJDb25maWdbXSB8IHVuZGVmaW5lZDtcbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IHN0YXR1cz86IHN0cmluZztcbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IHN0YXR1c1JlYXNvbnM/OiBzdHJpbmdbXTtcbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IGNyZWF0ZWRBdD86IHN0cmluZztcbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IHVwZGF0ZWRBdD86IHN0cmluZztcbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IHRhcmdldFByb3RvY29sVHlwZTogR2F0ZXdheVRhcmdldFByb3RvY29sVHlwZTtcblxuICAvKipcbiAgICogR3JhbnRzIElBTSBhY3Rpb25zIHRvIHRoZSBJQU0gUHJpbmNpcGFsXG4gICAqXG4gICAqIFtkaXNhYmxlLWF3c2xpbnQ6bm8tZ3JhbnRzXVxuICAgKlxuICAgKiBAcGFyYW0gZ3JhbnRlZSBUaGUgcHJpbmNpcGFsIHRvIGdyYW50IHBlcm1pc3Npb25zIHRvXG4gICAqIEBwYXJhbSBhY3Rpb25zIFRoZSBJQU0gYWN0aW9ucyB0byBncmFudFxuICAgKi9cbiAgcHVibGljIGdyYW50KGdyYW50ZWU6IGlhbS5JR3JhbnRhYmxlLCAuLi5hY3Rpb25zOiBzdHJpbmdbXSk6IGlhbS5HcmFudCB7XG4gICAgcmV0dXJuIGlhbS5HcmFudC5hZGRUb1ByaW5jaXBhbCh7XG4gICAgICBncmFudGVlOiBncmFudGVlLFxuICAgICAgcmVzb3VyY2VBcm5zOiBbdGhpcy50YXJnZXRBcm5dLFxuICAgICAgYWN0aW9uczogYWN0aW9ucyxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgYEdldGAgYW5kIGBMaXN0YCBhY3Rpb25zIG9uIHRoZSBHYXRld2F5IFRhcmdldFxuICAgKlxuICAgKiBbZGlzYWJsZS1hd3NsaW50Om5vLWdyYW50c11cbiAgICpcbiAgICogQHBhcmFtIGdyYW50ZWUgVGhlIHByaW5jaXBhbCB0byBncmFudCByZWFkIHBlcm1pc3Npb25zIHRvXG4gICAqL1xuICBwdWJsaWMgZ3JhbnRSZWFkKGdyYW50ZWU6IGlhbS5JR3JhbnRhYmxlKTogaWFtLkdyYW50IHtcbiAgICBjb25zdCByZXNvdXJjZVNwZWNpZmljR3JhbnQgPSB0aGlzLmdyYW50KGdyYW50ZWUsICdiZWRyb2NrLWFnZW50Y29yZTpHZXRHYXRld2F5VGFyZ2V0Jyk7XG5cbiAgICBjb25zdCBhbGxSZXNvdXJjZUdyYW50ID0gaWFtLkdyYW50LmFkZFRvUHJpbmNpcGFsKHtcbiAgICAgIGdyYW50ZWU6IGdyYW50ZWUsXG4gICAgICByZXNvdXJjZUFybnM6IFsnKiddLFxuICAgICAgYWN0aW9uczogWydiZWRyb2NrLWFnZW50Y29yZTpMaXN0R2F0ZXdheVRhcmdldHMnXSxcbiAgICB9KTtcbiAgICAvLyBSZXR1cm4gY29tYmluZWQgZ3JhbnRcbiAgICByZXR1cm4gcmVzb3VyY2VTcGVjaWZpY0dyYW50LmNvbWJpbmUoYWxsUmVzb3VyY2VHcmFudCk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIGBDcmVhdGVgLCBgVXBkYXRlYCwgYW5kIGBEZWxldGVgIGFjdGlvbnMgb24gdGhlIEdhdGV3YXkgVGFyZ2V0XG4gICAqXG4gICAqIFtkaXNhYmxlLWF3c2xpbnQ6bm8tZ3JhbnRzXVxuICAgKlxuICAgKiBAcGFyYW0gZ3JhbnRlZSBUaGUgcHJpbmNpcGFsIHRvIGdyYW50IG1hbmFnZSBwZXJtaXNzaW9ucyB0b1xuICAgKi9cbiAgcHVibGljIGdyYW50TWFuYWdlKGdyYW50ZWU6IGlhbS5JR3JhbnRhYmxlKTogaWFtLkdyYW50IHtcbiAgICByZXR1cm4gdGhpcy5ncmFudChcbiAgICAgIGdyYW50ZWUsXG4gICAgICAnYmVkcm9jay1hZ2VudGNvcmU6Q3JlYXRlR2F0ZXdheVRhcmdldCcsXG4gICAgICAnYmVkcm9jay1hZ2VudGNvcmU6VXBkYXRlR2F0ZXdheVRhcmdldCcsXG4gICAgICAnYmVkcm9jay1hZ2VudGNvcmU6RGVsZXRlR2F0ZXdheVRhcmdldCcsXG4gICAgKTtcbiAgfVxufVxuIl19
98
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFyZ2V0LWJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJ0YXJnZXQtYmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQ0EsNkNBQXVDO0FBRXZDLDJDQUEyQztBQUkzQzs7K0VBRStFO0FBQy9FOztHQUVHO0FBQ0gsSUFBWSx5QkFHWDtBQUhELFdBQVkseUJBQXlCO0lBQ25DLGtDQUFrQztJQUNsQyx3Q0FBVyxDQUFBO0FBQ2IsQ0FBQyxFQUhXLHlCQUF5Qix5Q0FBekIseUJBQXlCLFFBR3BDO0FBRUQ7O0dBRUc7QUFDSCxJQUFZLGFBV1g7QUFYRCxXQUFZLGFBQWE7SUFDdkIsaUNBQWlDO0lBQ2pDLGtEQUFpQyxDQUFBO0lBQ2pDLCtCQUErQjtJQUMvQiw4Q0FBNkIsQ0FBQTtJQUM3QixrQ0FBa0M7SUFDbEMsa0NBQWlCLENBQUE7SUFDakIsNkJBQTZCO0lBQzdCLDBDQUF5QixDQUFBO0lBQ3pCLDhCQUE4QjtJQUM5Qiw0Q0FBMkIsQ0FBQTtBQUM3QixDQUFDLEVBWFcsYUFBYSw2QkFBYixhQUFhLFFBV3hCO0FBdUdEOzsrRUFFK0U7QUFDL0U7Ozs7O0dBS0c7QUFDSCxNQUFzQixpQkFBa0IsU0FBUSxzQkFBUTs7SUFhdEQ7O09BRUc7SUFDSCxJQUFXLGdCQUFnQjtRQUN6QixPQUFPO1lBQ0wsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsaUJBQWlCO1lBQzVELFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTtTQUN4QixDQUFDO0tBQ0g7SUFFRDs7Ozs7OztPQU9HO0lBQ0ksS0FBSyxDQUFDLE9BQXVCLEVBQUUsR0FBRyxPQUFpQjtRQUN4RCxPQUFPLEdBQUcsQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDO1lBQzlCLE9BQU8sRUFBRSxPQUFPO1lBQ2hCLFlBQVksRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUM7WUFDOUIsT0FBTyxFQUFFLE9BQU87U0FDakIsQ0FBQyxDQUFDO0tBQ0o7SUFFRDs7Ozs7O09BTUc7SUFDSSxTQUFTLENBQUMsT0FBdUI7UUFDdEMsTUFBTSxxQkFBcUIsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxvQ0FBb0MsQ0FBQyxDQUFDO1FBRXhGLE1BQU0sZ0JBQWdCLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUM7WUFDaEQsT0FBTyxFQUFFLE9BQU87WUFDaEIsWUFBWSxFQUFFLENBQUMsR0FBRyxDQUFDO1lBQ25CLE9BQU8sRUFBRSxDQUFDLHNDQUFzQyxDQUFDO1NBQ2xELENBQUMsQ0FBQztRQUNILHdCQUF3QjtRQUN4QixPQUFPLHFCQUFxQixDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0tBQ3hEO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksV0FBVyxDQUFDLE9BQXVCO1FBQ3hDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FDZixPQUFPLEVBQ1AsdUNBQXVDLEVBQ3ZDLHVDQUF1QyxFQUN2Qyx1Q0FBdUMsQ0FDeEMsQ0FBQztLQUNIOztBQXhFSCw4Q0F5RUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IElSZXNvdXJjZSB9IGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB7IFJlc291cmNlIH0gZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0IHR5cGUgeyBHYXRld2F5VGFyZ2V0UmVmZXJlbmNlLCBJR2F0ZXdheVRhcmdldFJlZiB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1iZWRyb2NrYWdlbnRjb3JlJztcbmltcG9ydCAqIGFzIGlhbSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtaWFtJztcbmltcG9ydCB0eXBlIHsgSUdhdGV3YXkgfSBmcm9tICcuLi9nYXRld2F5LWJhc2UnO1xuaW1wb3J0IHR5cGUgeyBJQ3JlZGVudGlhbFByb3ZpZGVyQ29uZmlnIH0gZnJvbSAnLi4vb3V0Ym91bmQtYXV0aC9jcmVkZW50aWFsLXByb3ZpZGVyJztcblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFTlVNXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKipcbiAqIFByb3RvY29sIHR5cGVzIHN1cHBvcnRlZCBieSBnYXRld2F5IHRhcmdldHNcbiAqL1xuZXhwb3J0IGVudW0gR2F0ZXdheVRhcmdldFByb3RvY29sVHlwZSB7XG4gIC8qKiBNb2RlbCBDb250ZXh0IFByb3RvY29sIHR5cGUgKi9cbiAgTUNQID0gJ01DUCcsXG59XG5cbi8qKlxuICogTUNQIHRhcmdldCB0eXBlc1xuICovXG5leHBvcnQgZW51bSBNY3BUYXJnZXRUeXBlIHtcbiAgLyoqIE9wZW5BUEkgc2NoZW1hIHRhcmdldCB0eXBlICovXG4gIE9QRU5BUElfU0NIRU1BID0gJ09QRU5BUElfU0NIRU1BJyxcbiAgLyoqIFNtaXRoeSBtb2RlbCB0YXJnZXQgdHlwZSAqL1xuICBTTUlUSFlfTU9ERUwgPSAnU01JVEhZX01PREVMJyxcbiAgLyoqIExhbWJkYSBmdW5jdGlvbiB0YXJnZXQgdHlwZSAqL1xuICBMQU1CREEgPSAnTEFNQkRBJyxcbiAgLyoqIE1DUCBzZXJ2ZXIgdGFyZ2V0IHR5cGUgKi9cbiAgTUNQX1NFUlZFUiA9ICdNQ1BfU0VSVkVSJyxcbiAgLyoqIEFQSSBHYXRld2F5IHRhcmdldCB0eXBlICovXG4gIEFQSV9HQVRFV0FZID0gJ0FQSV9HQVRFV0FZJyxcbn1cblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEludGVyZmFjZVxuICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4vKipcbiAqIEludGVyZmFjZSBmb3IgR2F0ZXdheVRhcmdldCByZXNvdXJjZXNcbiAqXG4gKiBSZXByZXNlbnRzIGEgdGFyZ2V0IHRoYXQgaG9zdHMgdG9vbHMgZm9yIHRoZSBnYXRld2F5LlxuICogVGFyZ2V0cyBjYW4gYmUgTGFtYmRhIGZ1bmN0aW9ucywgT3BlbkFQSSBzY2hlbWFzLCBvciBTbWl0aHkgbW9kZWxzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIElHYXRld2F5VGFyZ2V0IGV4dGVuZHMgSVJlc291cmNlLCBJR2F0ZXdheVRhcmdldFJlZiB7XG4gIC8qKlxuICAgKiBUaGUgQVJOIG9mIHRoZSBnYXRld2F5IHRhcmdldCByZXNvdXJjZVxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICByZWFkb25seSB0YXJnZXRBcm46IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGlkIG9mIHRoZSBnYXRld2F5IHRhcmdldFxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICByZWFkb25seSB0YXJnZXRJZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgZ2F0ZXdheSB0YXJnZXRcbiAgICovXG4gIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGRlc2NyaXB0aW9uIG9mIHRoZSBnYXRld2F5IHRhcmdldFxuICAgKi9cbiAgcmVhZG9ubHkgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBnYXRld2F5IHRoYXQgdGhpcyB0YXJnZXQgYmVsb25ncyB0b1xuICAgKi9cbiAgcmVhZG9ubHkgZ2F0ZXdheTogSUdhdGV3YXk7XG5cbiAgLyoqXG4gICAqIFRoZSB0YXJnZXQgcHJvdG9jb2xcbiAgICovXG4gIHJlYWRvbmx5IHRhcmdldFByb3RvY29sVHlwZTogR2F0ZXdheVRhcmdldFByb3RvY29sVHlwZTtcblxuICAvKipcbiAgICogVGhlIGNyZWRlbnRpYWwgcHJvdmlkZXIgY29uZmlndXJhdGlvbiBmb3IgdGhlIHRhcmdldFxuICAgKi9cbiAgcmVhZG9ubHkgY3JlZGVudGlhbFByb3ZpZGVyQ29uZmlndXJhdGlvbnM6IElDcmVkZW50aWFsUHJvdmlkZXJDb25maWdbXSB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogVGhlIHN0YXR1cyBvZiB0aGUgZ2F0ZXdheSB0YXJnZXRcbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcmVhZG9ubHkgc3RhdHVzPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgc3RhdHVzIHJlYXNvbnMgZm9yIHRoZSBnYXRld2F5IHRhcmdldFxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICByZWFkb25seSBzdGF0dXNSZWFzb25zPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIFRpbWVzdGFtcCB3aGVuIHRoZSBnYXRld2F5IHRhcmdldCB3YXMgY3JlYXRlZFxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICByZWFkb25seSBjcmVhdGVkQXQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRpbWVzdGFtcCB3aGVuIHRoZSBnYXRld2F5IHRhcmdldCB3YXMgbGFzdCB1cGRhdGVkXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHJlYWRvbmx5IHVwZGF0ZWRBdD86IHN0cmluZztcblxuICAvKipcbiAgICogR3JhbnRzIElBTSBhY3Rpb25zIHRvIHRoZSBJQU0gUHJpbmNpcGFsXG4gICAqL1xuICBncmFudChncmFudGVlOiBpYW0uSUdyYW50YWJsZSwgLi4uYWN0aW9uczogc3RyaW5nW10pOiBpYW0uR3JhbnQ7XG5cbiAgLyoqXG4gICAqIEdyYW50cyBgR2V0YCBhbmQgYExpc3RgIGFjdGlvbnMgb24gdGhlIEdhdGV3YXkgVGFyZ2V0XG4gICAqL1xuICBncmFudFJlYWQoZ3JhbnRlZTogaWFtLklHcmFudGFibGUpOiBpYW0uR3JhbnQ7XG5cbiAgLyoqXG4gICAqIEdyYW50cyBgQ3JlYXRlYCwgYFVwZGF0ZWAsIGFuZCBgRGVsZXRlYCBhY3Rpb25zIG9uIHRoZSBHYXRld2F5IFRhcmdldFxuICAgKi9cbiAgZ3JhbnRNYW5hZ2UoZ3JhbnRlZTogaWFtLklHcmFudGFibGUpOiBpYW0uR3JhbnQ7XG59XG5cbi8qKlxuICogSW50ZXJmYWNlIGZvciBNQ1AgZ2F0ZXdheSB0YXJnZXRzXG4gKlxuICogRXh0ZW5kcyB0aGUgYmFzZSBnYXRld2F5IHRhcmdldCBpbnRlcmZhY2Ugd2l0aCBNQ1Atc3BlY2lmaWMgcHJvcGVydGllcy5cbiAqIE1DUCB0YXJnZXRzIGV4cG9zZSB0b29scyB1c2luZyB0aGUgTW9kZWwgQ29udGV4dCBQcm90b2NvbC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJTWNwR2F0ZXdheVRhcmdldCBleHRlbmRzIElHYXRld2F5VGFyZ2V0IHtcbiAgLyoqXG4gICAqIFRoZSB0eXBlIG9mIHRhcmdldCAoTGFtYmRhLCBPcGVuQVBJLCBvciBTbWl0aHkpXG4gICAqL1xuICByZWFkb25seSB0YXJnZXRUeXBlOiBNY3BUYXJnZXRUeXBlO1xufVxuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQmFzZSBDbGFzc1xuICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqXG4gKiBCYXNlIGNsYXNzIGZvciBnYXRld2F5IHRhcmdldCBpbXBsZW1lbnRhdGlvbnNcbiAqXG4gKiBQcm92aWRlcyBjb21tb24gZnVuY3Rpb25hbGl0eSBmb3IgYWxsIGdhdGV3YXkgdGFyZ2V0IHR5cGVzIGluY2x1ZGluZ1xuICogcGVybWlzc2lvbiBtYW5hZ2VtZW50IGFuZCBwcm9wZXJ0eSBkZWZpbml0aW9ucy5cbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEdhdGV3YXlUYXJnZXRCYXNlIGV4dGVuZHMgUmVzb3VyY2UgaW1wbGVtZW50cyBJR2F0ZXdheVRhcmdldCB7XG4gIHB1YmxpYyBhYnN0cmFjdCByZWFkb25seSB0YXJnZXRBcm46IHN0cmluZztcbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IHRhcmdldElkOiBzdHJpbmc7XG4gIHB1YmxpYyBhYnN0cmFjdCByZWFkb25seSBuYW1lOiBzdHJpbmc7XG4gIHB1YmxpYyBhYnN0cmFjdCByZWFkb25seSBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IGdhdGV3YXk6IElHYXRld2F5O1xuICBwdWJsaWMgYWJzdHJhY3QgcmVhZG9ubHkgY3JlZGVudGlhbFByb3ZpZGVyQ29uZmlndXJhdGlvbnM6IElDcmVkZW50aWFsUHJvdmlkZXJDb25maWdbXSB8IHVuZGVmaW5lZDtcbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IHN0YXR1cz86IHN0cmluZztcbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IHN0YXR1c1JlYXNvbnM/OiBzdHJpbmdbXTtcbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IGNyZWF0ZWRBdD86IHN0cmluZztcbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IHVwZGF0ZWRBdD86IHN0cmluZztcbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IHRhcmdldFByb3RvY29sVHlwZTogR2F0ZXdheVRhcmdldFByb3RvY29sVHlwZTtcblxuICAvKipcbiAgICogQSByZWZlcmVuY2UgdG8gYSBHYXRld2F5VGFyZ2V0IHJlc291cmNlLlxuICAgKi9cbiAgcHVibGljIGdldCBnYXRld2F5VGFyZ2V0UmVmKCk6IEdhdGV3YXlUYXJnZXRSZWZlcmVuY2Uge1xuICAgIHJldHVybiB7XG4gICAgICBnYXRld2F5SWRlbnRpZmllcjogdGhpcy5nYXRld2F5LmdhdGV3YXlSZWYuZ2F0ZXdheUlkZW50aWZpZXIsXG4gICAgICB0YXJnZXRJZDogdGhpcy50YXJnZXRJZCxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBJQU0gYWN0aW9ucyB0byB0aGUgSUFNIFByaW5jaXBhbFxuICAgKlxuICAgKiBbZGlzYWJsZS1hd3NsaW50Om5vLWdyYW50c11cbiAgICpcbiAgICogQHBhcmFtIGdyYW50ZWUgVGhlIHByaW5jaXBhbCB0byBncmFudCBwZXJtaXNzaW9ucyB0b1xuICAgKiBAcGFyYW0gYWN0aW9ucyBUaGUgSUFNIGFjdGlvbnMgdG8gZ3JhbnRcbiAgICovXG4gIHB1YmxpYyBncmFudChncmFudGVlOiBpYW0uSUdyYW50YWJsZSwgLi4uYWN0aW9uczogc3RyaW5nW10pOiBpYW0uR3JhbnQge1xuICAgIHJldHVybiBpYW0uR3JhbnQuYWRkVG9QcmluY2lwYWwoe1xuICAgICAgZ3JhbnRlZTogZ3JhbnRlZSxcbiAgICAgIHJlc291cmNlQXJuczogW3RoaXMudGFyZ2V0QXJuXSxcbiAgICAgIGFjdGlvbnM6IGFjdGlvbnMsXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIGBHZXRgIGFuZCBgTGlzdGAgYWN0aW9ucyBvbiB0aGUgR2F0ZXdheSBUYXJnZXRcbiAgICpcbiAgICogW2Rpc2FibGUtYXdzbGludDpuby1ncmFudHNdXG4gICAqXG4gICAqIEBwYXJhbSBncmFudGVlIFRoZSBwcmluY2lwYWwgdG8gZ3JhbnQgcmVhZCBwZXJtaXNzaW9ucyB0b1xuICAgKi9cbiAgcHVibGljIGdyYW50UmVhZChncmFudGVlOiBpYW0uSUdyYW50YWJsZSk6IGlhbS5HcmFudCB7XG4gICAgY29uc3QgcmVzb3VyY2VTcGVjaWZpY0dyYW50ID0gdGhpcy5ncmFudChncmFudGVlLCAnYmVkcm9jay1hZ2VudGNvcmU6R2V0R2F0ZXdheVRhcmdldCcpO1xuXG4gICAgY29uc3QgYWxsUmVzb3VyY2VHcmFudCA9IGlhbS5HcmFudC5hZGRUb1ByaW5jaXBhbCh7XG4gICAgICBncmFudGVlOiBncmFudGVlLFxuICAgICAgcmVzb3VyY2VBcm5zOiBbJyonXSxcbiAgICAgIGFjdGlvbnM6IFsnYmVkcm9jay1hZ2VudGNvcmU6TGlzdEdhdGV3YXlUYXJnZXRzJ10sXG4gICAgfSk7XG4gICAgLy8gUmV0dXJuIGNvbWJpbmVkIGdyYW50XG4gICAgcmV0dXJuIHJlc291cmNlU3BlY2lmaWNHcmFudC5jb21iaW5lKGFsbFJlc291cmNlR3JhbnQpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBgQ3JlYXRlYCwgYFVwZGF0ZWAsIGFuZCBgRGVsZXRlYCBhY3Rpb25zIG9uIHRoZSBHYXRld2F5IFRhcmdldFxuICAgKlxuICAgKiBbZGlzYWJsZS1hd3NsaW50Om5vLWdyYW50c11cbiAgICpcbiAgICogQHBhcmFtIGdyYW50ZWUgVGhlIHByaW5jaXBhbCB0byBncmFudCBtYW5hZ2UgcGVybWlzc2lvbnMgdG9cbiAgICovXG4gIHB1YmxpYyBncmFudE1hbmFnZShncmFudGVlOiBpYW0uSUdyYW50YWJsZSk6IGlhbS5HcmFudCB7XG4gICAgcmV0dXJuIHRoaXMuZ3JhbnQoXG4gICAgICBncmFudGVlLFxuICAgICAgJ2JlZHJvY2stYWdlbnRjb3JlOkNyZWF0ZUdhdGV3YXlUYXJnZXQnLFxuICAgICAgJ2JlZHJvY2stYWdlbnRjb3JlOlVwZGF0ZUdhdGV3YXlUYXJnZXQnLFxuICAgICAgJ2JlZHJvY2stYWdlbnRjb3JlOkRlbGV0ZUdhdGV3YXlUYXJnZXQnLFxuICAgICk7XG4gIH1cbn1cbiJdfQ==
@@ -1,8 +1,9 @@
1
- import { IFunction } from 'aws-cdk-lib/aws-lambda';
2
- import { Construct } from 'constructs';
3
- import { IGateway } from '../gateway-base';
4
- import { ApiSchema } from './schema/api-schema';
5
- import { ToolSchema } from './schema/tool-schema';
1
+ import type { IRestApi } from 'aws-cdk-lib/aws-apigateway';
2
+ import type { IFunction } from 'aws-cdk-lib/aws-lambda';
3
+ import type { Construct } from 'constructs';
4
+ import type { IGateway } from '../gateway-base';
5
+ import type { ApiSchema } from './schema/api-schema';
6
+ import type { ToolSchema } from './schema/tool-schema';
6
7
  import { McpTargetType } from './target-base';
7
8
  /******************************************************************************
8
9
  * Interface
@@ -228,3 +229,248 @@ export declare class McpServerTargetConfiguration extends McpTargetConfiguration
228
229
  */
229
230
  private validateEndpoint;
230
231
  }
232
+ /******************************************************************************
233
+ * API Gateway Target Configuration
234
+ *****************************************************************************/
235
+ /**
236
+ * HTTP methods supported by API Gateway
237
+ */
238
+ export declare enum ApiGatewayHttpMethod {
239
+ /** GET method */
240
+ GET = "GET",
241
+ /** POST method */
242
+ POST = "POST",
243
+ /** PUT method */
244
+ PUT = "PUT",
245
+ /** DELETE method */
246
+ DELETE = "DELETE",
247
+ /** PATCH method */
248
+ PATCH = "PATCH",
249
+ /** HEAD method */
250
+ HEAD = "HEAD",
251
+ /** OPTIONS method */
252
+ OPTIONS = "OPTIONS"
253
+ }
254
+ /**
255
+ * Configuration for filtering API Gateway tools
256
+ *
257
+ * Tool filters allow you to select REST API operations using path and method combinations.
258
+ * Each filter supports two path matching strategies:
259
+ * - **Explicit paths**: Matches a single specific path, such as `/pets/{petId}`
260
+ * - **Wildcard paths**: Matches all paths starting with the specified prefix, such as `/pets/*`
261
+ */
262
+ export interface ApiGatewayToolFilter {
263
+ /**
264
+ * The resource path to filter
265
+ * Can be an explicit path (e.g., `/pets/{petId}`) or a wildcard path (e.g., `/pets/*`)
266
+ * Must start with a forward slash
267
+ */
268
+ readonly filterPath: string;
269
+ /**
270
+ * List of HTTP methods to include for this path
271
+ * Each filter specifies both a path and a list of HTTP methods
272
+ * Multiple filters can overlap and duplicates are automatically de-duplicated
273
+ */
274
+ readonly methods: ApiGatewayHttpMethod[];
275
+ }
276
+ /**
277
+ * Configuration for overriding API Gateway tool metadata
278
+ *
279
+ * Tool overrides allow you to customize the tool name or description for specific operations
280
+ * after filtering. Each override must specify an explicit path and a single HTTP method.
281
+ * The override must match an operation that exists in your API and must correspond to one
282
+ * of the operations resolved by your filters.
283
+ */
284
+ export interface ApiGatewayToolOverride {
285
+ /**
286
+ * The explicit resource path (no wildcards)
287
+ * Must match an operation that exists in your API
288
+ */
289
+ readonly path: string;
290
+ /**
291
+ * The HTTP method for this override
292
+ * Must be a single method (no wildcards)
293
+ */
294
+ readonly method: ApiGatewayHttpMethod;
295
+ /**
296
+ * The custom tool name
297
+ * If not provided, the operationId from the OpenAPI definition will be used
298
+ */
299
+ readonly name: string;
300
+ /**
301
+ * Optional custom description for the tool
302
+ * @default - No custom description
303
+ */
304
+ readonly description?: string;
305
+ }
306
+ /**
307
+ * Configuration for passing metadata (headers and query parameters) to the API Gateway target
308
+ */
309
+ export interface MetadataConfiguration {
310
+ /**
311
+ * List of query parameter names to pass through to the target
312
+ *
313
+ * Constraints:
314
+ * - Array must contain 1-10 items
315
+ * - Each parameter name must be 1-40 characters
316
+ * - Cannot be an empty array
317
+ *
318
+ * @default - No query parameters are passed through
319
+ */
320
+ readonly allowedQueryParameters?: string[];
321
+ /**
322
+ * List of request header names to pass through to the target
323
+ *
324
+ * Constraints:
325
+ * - Array must contain 1-10 items
326
+ * - Each header name must be 1-100 characters
327
+ * - Cannot be an empty array
328
+ *
329
+ * @default - No request headers are passed through
330
+ */
331
+ readonly allowedRequestHeaders?: string[];
332
+ /**
333
+ * List of response header names to pass through from the target
334
+ *
335
+ * Constraints:
336
+ * - Array must contain 1-10 items
337
+ * - Each header name must be 1-100 characters
338
+ * - Cannot be an empty array
339
+ *
340
+ * @default - No response headers are passed through
341
+ */
342
+ readonly allowedResponseHeaders?: string[];
343
+ }
344
+ /**
345
+ * Configuration for API Gateway tools
346
+ *
347
+ * The API Gateway tool configuration defines which operations from your REST API
348
+ * are exposed as tools. It requires a list of tool filters to select operations
349
+ * to expose, and optionally accepts tool overrides to customize tool metadata.
350
+ */
351
+ export interface ApiGatewayToolConfiguration {
352
+ /**
353
+ * List of tool filters to select operations
354
+ * At least one filter is required
355
+ */
356
+ readonly toolFilters: ApiGatewayToolFilter[];
357
+ /**
358
+ * Optional list of tool overrides to customize tool metadata
359
+ * Each override must correspond to an operation selected by the filters
360
+ * @default - No tool overrides
361
+ */
362
+ readonly toolOverrides?: ApiGatewayToolOverride[];
363
+ }
364
+ /**
365
+ * Properties for creating an API Gateway target configuration
366
+ */
367
+ export interface ApiGatewayTargetConfigurationProps {
368
+ /**
369
+ * The REST API to integrate with
370
+ * Must be in the same account and region as the gateway
371
+ */
372
+ readonly restApi: IRestApi;
373
+ /**
374
+ * The stage name of the REST API
375
+ * @default - Uses the deployment stage from the RestApi (restApi.deploymentStage.stageName)
376
+ */
377
+ readonly stage?: string;
378
+ /**
379
+ * Tool configuration defining which operations to expose
380
+ */
381
+ readonly apiGatewayToolConfiguration: ApiGatewayToolConfiguration;
382
+ /**
383
+ * Metadata configuration for passing headers and query parameters
384
+ * Allows you to pass additional context through headers and query parameters
385
+ * @default - No metadata configuration
386
+ */
387
+ readonly metadataConfiguration?: MetadataConfiguration;
388
+ }
389
+ /**
390
+ * Configuration for API Gateway-based MCP targets
391
+ *
392
+ * This configuration connects your gateway to an Amazon API Gateway REST API stage.
393
+ * The gateway translates incoming MCP requests into HTTP requests to your REST API
394
+ * and handles response formatting.
395
+ *
396
+ * Key considerations:
397
+ * - API must be in the same account and region as the gateway
398
+ * - Only REST APIs are supported (no HTTP or WebSocket APIs)
399
+ * - API must use a public endpoint type
400
+ * - Methods with both AWS_IAM authorization and API key requirements are not supported
401
+ * - Proxy resources (e.g., `/pets/{proxy+}`) are not supported
402
+ */
403
+ export declare class ApiGatewayTargetConfiguration extends McpTargetConfiguration {
404
+ /**
405
+ * Create an API Gateway target configuration
406
+ *
407
+ * @param props The configuration properties
408
+ * @returns A new ApiGatewayTargetConfiguration instance
409
+ */
410
+ static create(props: ApiGatewayTargetConfigurationProps): ApiGatewayTargetConfiguration;
411
+ readonly targetType = McpTargetType.API_GATEWAY;
412
+ /**
413
+ * The REST API reference
414
+ */
415
+ private readonly _restApi;
416
+ /**
417
+ * The ID of the REST API
418
+ */
419
+ readonly restApiId: string;
420
+ /**
421
+ * The stage name of the REST API
422
+ */
423
+ readonly stage: string;
424
+ /**
425
+ * Tool configuration for the API Gateway target
426
+ */
427
+ readonly apiGatewayToolConfiguration: ApiGatewayToolConfiguration;
428
+ /**
429
+ * Metadata configuration for the API Gateway target
430
+ */
431
+ readonly metadataConfiguration?: MetadataConfiguration;
432
+ constructor(props: ApiGatewayTargetConfigurationProps);
433
+ /**
434
+ * Binds this configuration to a construct scope
435
+ * Sets up necessary permissions for the gateway to access the API Gateway
436
+ *
437
+ * @param _scope The construct scope
438
+ * @param gateway The gateway that will use this target
439
+ */
440
+ bind(_scope: Construct, gateway: IGateway): TargetConfigurationConfig;
441
+ /**
442
+ * Renders the MCP-specific configuration
443
+ */
444
+ protected renderMcpConfiguration(): any;
445
+ /**
446
+ * Validates the configuration
447
+ * @internal
448
+ */
449
+ private validateConfiguration;
450
+ /**
451
+ * Validates metadata configuration
452
+ * @internal
453
+ */
454
+ private validateMetadataConfiguration;
455
+ /**
456
+ * Validates a metadata configuration array (query parameters or headers)
457
+ * @param array The array to validate
458
+ * @param fieldName The name of the field for error messages
459
+ * @param minItems Minimum number of items allowed in the array
460
+ * @param maxItems Maximum number of items allowed in the array
461
+ * @param minStringLength Minimum length for each string in the array
462
+ * @param maxStringLength Maximum length for each string in the array
463
+ * @internal
464
+ */
465
+ private validateMetadataArray;
466
+ /**
467
+ * Validates a tool filter
468
+ * @internal
469
+ */
470
+ private validateToolFilter;
471
+ /**
472
+ * Validates a tool override
473
+ * @internal
474
+ */
475
+ private validateToolOverride;
476
+ }