UNPKG

awscdk-resources-mongodbatlas

Version:

MongoDB Atlas CDK Construct Library for AWS CloudFormation Resources

101 lines 15.3 kB
"use strict"; var _a; Object.defineProperty(exports, "__esModule", { value: true }); exports.CfnStreamWorkspace = exports.StreamsDataProcessRegionCloudProvider = void 0; exports.toJson_CfnStreamWorkspaceProps = toJson_CfnStreamWorkspaceProps; exports.toJson_StreamsDataProcessRegion = toJson_StreamsDataProcessRegion; exports.toJson_StreamConfig = toJson_StreamConfig; const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti"); // Generated by cdk-import const cdk = require("aws-cdk-lib"); /** * Converts an object of type 'CfnStreamWorkspaceProps' to JSON representation. */ /* eslint-disable max-len, quote-props */ function toJson_CfnStreamWorkspaceProps(obj) { if (obj === undefined) { return undefined; } const result = { Profile: obj.profile, WorkspaceName: obj.workspaceName, DataProcessRegion: toJson_StreamsDataProcessRegion(obj.dataProcessRegion), StreamConfig: toJson_StreamConfig(obj.streamConfig), ProjectId: obj.projectId, }; // filter undefined values return Object.entries(result).reduce((r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }), {}); } /** * Converts an object of type 'StreamsDataProcessRegion' to JSON representation. */ /* eslint-disable max-len, quote-props */ function toJson_StreamsDataProcessRegion(obj) { if (obj === undefined) { return undefined; } const result = { CloudProvider: obj.cloudProvider, Region: obj.region, }; // filter undefined values return Object.entries(result).reduce((r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }), {}); } /** * Converts an object of type 'StreamConfig' to JSON representation. */ /* eslint-disable max-len, quote-props */ function toJson_StreamConfig(obj) { if (obj === undefined) { return undefined; } const result = { Tier: obj.tier, MaxTierSize: obj.maxTierSize, }; // filter undefined values return Object.entries(result).reduce((r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }), {}); } /* eslint-enable max-len, quote-props */ /** * Label that identifies the cloud service provider where MongoDB Cloud performs stream processing. For CloudFormation, this is restricted to AWS only. * * @schema StreamsDataProcessRegionCloudProvider */ var StreamsDataProcessRegionCloudProvider; (function (StreamsDataProcessRegionCloudProvider) { /** AWS */ StreamsDataProcessRegionCloudProvider["AWS"] = "AWS"; })(StreamsDataProcessRegionCloudProvider || (exports.StreamsDataProcessRegionCloudProvider = StreamsDataProcessRegionCloudProvider = {})); /** * A CloudFormation `MongoDB::Atlas::StreamWorkspace` * * @cloudformationResource MongoDB::Atlas::StreamWorkspace * @stability external */ class CfnStreamWorkspace extends cdk.CfnResource { /** * Create a new `MongoDB::Atlas::StreamWorkspace`. * * @param scope - scope in which this resource is defined * @param id - scoped id of the resource * @param props - resource properties */ constructor(scope, id, props) { super(scope, id, { type: CfnStreamWorkspace.CFN_RESOURCE_TYPE_NAME, properties: toJson_CfnStreamWorkspaceProps(props), }); this.props = props; this.attrId = cdk.Token.asString(this.getAtt("Id")); this.attrHostnames = cdk.Token.asList(this.getAtt("Hostnames")); } } exports.CfnStreamWorkspace = CfnStreamWorkspace; _a = JSII_RTTI_SYMBOL_1; CfnStreamWorkspace[_a] = { fqn: "awscdk-resources-mongodbatlas.CfnStreamWorkspace", version: "4.0.0" }; /** * The CloudFormation resource type name for this resource class. */ CfnStreamWorkspace.CFN_RESOURCE_TYPE_NAME = "MongoDB::Atlas::StreamWorkspace"; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbDEtcmVzb3VyY2VzL3N0cmVhbS13b3Jrc3BhY2UvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQThDQSx3RUFrQkM7QUEwQkQsMEVBZUM7QUE0QkQsa0RBZUM7O0FBcEpELDBCQUEwQjtBQUMxQixtQ0FBbUM7QUF5Q25DOztHQUVHO0FBQ0gseUNBQXlDO0FBQ3pDLFNBQWdCLDhCQUE4QixDQUM1QyxHQUF3QztJQUV4QyxJQUFJLEdBQUcsS0FBSyxTQUFTLEVBQUUsQ0FBQztRQUN0QixPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0lBQ0QsTUFBTSxNQUFNLEdBQUc7UUFDYixPQUFPLEVBQUUsR0FBRyxDQUFDLE9BQU87UUFDcEIsYUFBYSxFQUFFLEdBQUcsQ0FBQyxhQUFhO1FBQ2hDLGlCQUFpQixFQUFFLCtCQUErQixDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQztRQUN6RSxZQUFZLEVBQUUsbUJBQW1CLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQztRQUNuRCxTQUFTLEVBQUUsR0FBRyxDQUFDLFNBQVM7S0FDekIsQ0FBQztJQUNGLDBCQUEwQjtJQUMxQixPQUFPLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxDQUNsQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFDM0QsRUFBRSxDQUNILENBQUM7QUFDSixDQUFDO0FBc0JEOztHQUVHO0FBQ0gseUNBQXlDO0FBQ3pDLFNBQWdCLCtCQUErQixDQUM3QyxHQUF5QztJQUV6QyxJQUFJLEdBQUcsS0FBSyxTQUFTLEVBQUUsQ0FBQztRQUN0QixPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0lBQ0QsTUFBTSxNQUFNLEdBQUc7UUFDYixhQUFhLEVBQUUsR0FBRyxDQUFDLGFBQWE7UUFDaEMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxNQUFNO0tBQ25CLENBQUM7SUFDRiwwQkFBMEI7SUFDMUIsT0FBTyxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sQ0FDbEMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQzNELEVBQUUsQ0FDSCxDQUFDO0FBQ0osQ0FBQztBQXdCRDs7R0FFRztBQUNILHlDQUF5QztBQUN6QyxTQUFnQixtQkFBbUIsQ0FDakMsR0FBNkI7SUFFN0IsSUFBSSxHQUFHLEtBQUssU0FBUyxFQUFFLENBQUM7UUFDdEIsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUNELE1BQU0sTUFBTSxHQUFHO1FBQ2IsSUFBSSxFQUFFLEdBQUcsQ0FBQyxJQUFJO1FBQ2QsV0FBVyxFQUFFLEdBQUcsQ0FBQyxXQUFXO0tBQzdCLENBQUM7SUFDRiwwQkFBMEI7SUFDMUIsT0FBTyxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sQ0FDbEMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQzNELEVBQUUsQ0FDSCxDQUFDO0FBQ0osQ0FBQztBQUNELHdDQUF3QztBQUV4Qzs7OztHQUlHO0FBQ0gsSUFBWSxxQ0FHWDtBQUhELFdBQVkscUNBQXFDO0lBQy9DLFVBQVU7SUFDVixvREFBVyxDQUFBO0FBQ2IsQ0FBQyxFQUhXLHFDQUFxQyxxREFBckMscUNBQXFDLFFBR2hEO0FBRUQ7Ozs7O0dBS0c7QUFDSCxNQUFhLGtCQUFtQixTQUFRLEdBQUcsQ0FBQyxXQUFXO0lBcUJyRDs7Ozs7O09BTUc7SUFDSCxZQUNFLEtBQTJCLEVBQzNCLEVBQVUsRUFDVixLQUE4QjtRQUU5QixLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRTtZQUNmLElBQUksRUFBRSxrQkFBa0IsQ0FBQyxzQkFBc0I7WUFDL0MsVUFBVSxFQUFFLDhCQUE4QixDQUFDLEtBQUssQ0FBRTtTQUNuRCxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUVuQixJQUFJLENBQUMsTUFBTSxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUNwRCxJQUFJLENBQUMsYUFBYSxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztJQUNsRSxDQUFDOztBQTFDSCxnREEyQ0M7OztBQTFDQzs7R0FFRztBQUNvQix5Q0FBc0IsR0FDM0MsaUNBQWlDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBHZW5lcmF0ZWQgYnkgY2RrLWltcG9ydFxuaW1wb3J0ICogYXMgY2RrIGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuaW1wb3J0ICogYXMgY29uc3RydWN0cyBmcm9tIFwiY29uc3RydWN0c1wiO1xuXG4vKipcbiAqIFJldHVybnMsIGFkZHMsIHVwZGF0ZXMsIGFuZCByZW1vdmVzIEF0bGFzIFN0cmVhbSBQcm9jZXNzaW5nIFdvcmtzcGFjZXMuIFRoZSBEYXRhUHJvY2Vzc1JlZ2lvbi5SZWdpb24gcHJvcGVydHkgY2FuIGJlIHVwZGF0ZWQgYWZ0ZXIgY3JlYXRpb24uIE90aGVyIHByb3BlcnRpZXMgKFdvcmtzcGFjZU5hbWUsIFByb2plY3RJZCwgUHJvZmlsZSwgU3RyZWFtQ29uZmlnLCBEYXRhUHJvY2Vzc1JlZ2lvbi5DbG91ZFByb3ZpZGVyKSBhcmUgY3JlYXRlLW9ubHkgYW5kIHJlcXVpcmUgcmVzb3VyY2UgcmVwbGFjZW1lbnQgdG8gY2hhbmdlLlxuICpcbiAqIEBzY2hlbWEgQ2ZuU3RyZWFtV29ya3NwYWNlUHJvcHNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDZm5TdHJlYW1Xb3Jrc3BhY2VQcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgcHJvZmlsZSBpcyBkZWZpbmVkIGluIEFXUyBTZWNyZXQgbWFuYWdlci4gU2VlIFtTZWNyZXQgTWFuYWdlciBQcm9maWxlIHNldHVwXSguLi8uLi8uLi9leGFtcGxlcy9wcm9maWxlLXNlY3JldC55YW1sKS5cbiAgICpcbiAgICogQHNjaGVtYSBDZm5TdHJlYW1Xb3Jrc3BhY2VQcm9wcyNQcm9maWxlXG4gICAqL1xuICByZWFkb25seSBwcm9maWxlPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBIdW1hbi1yZWFkYWJsZSBsYWJlbCB0aGF0IGlkZW50aWZpZXMgdGhlIHN0cmVhbSB3b3Jrc3BhY2UuXG4gICAqXG4gICAqIEBzY2hlbWEgQ2ZuU3RyZWFtV29ya3NwYWNlUHJvcHMjV29ya3NwYWNlTmFtZVxuICAgKi9cbiAgcmVhZG9ubHkgd29ya3NwYWNlTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAc2NoZW1hIENmblN0cmVhbVdvcmtzcGFjZVByb3BzI0RhdGFQcm9jZXNzUmVnaW9uXG4gICAqL1xuICByZWFkb25seSBkYXRhUHJvY2Vzc1JlZ2lvbjogU3RyZWFtc0RhdGFQcm9jZXNzUmVnaW9uO1xuXG4gIC8qKlxuICAgKiBAc2NoZW1hIENmblN0cmVhbVdvcmtzcGFjZVByb3BzI1N0cmVhbUNvbmZpZ1xuICAgKi9cbiAgcmVhZG9ubHkgc3RyZWFtQ29uZmlnPzogU3RyZWFtQ29uZmlnO1xuXG4gIC8qKlxuICAgKiBVbmlxdWUgMjQtaGV4YWRlY2ltYWwgY2hhcmFjdGVyIHN0cmluZyB0aGF0IGlkZW50aWZpZXMgdGhlIHByb2plY3QuXG4gICAqXG4gICAqIEBzY2hlbWEgQ2ZuU3RyZWFtV29ya3NwYWNlUHJvcHMjUHJvamVjdElkXG4gICAqL1xuICByZWFkb25seSBwcm9qZWN0SWQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBDb252ZXJ0cyBhbiBvYmplY3Qgb2YgdHlwZSAnQ2ZuU3RyZWFtV29ya3NwYWNlUHJvcHMnIHRvIEpTT04gcmVwcmVzZW50YXRpb24uXG4gKi9cbi8qIGVzbGludC1kaXNhYmxlIG1heC1sZW4sIHF1b3RlLXByb3BzICovXG5leHBvcnQgZnVuY3Rpb24gdG9Kc29uX0NmblN0cmVhbVdvcmtzcGFjZVByb3BzKFxuICBvYmo6IENmblN0cmVhbVdvcmtzcGFjZVByb3BzIHwgdW5kZWZpbmVkXG4pOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IHwgdW5kZWZpbmVkIHtcbiAgaWYgKG9iaiA9PT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuICBjb25zdCByZXN1bHQgPSB7XG4gICAgUHJvZmlsZTogb2JqLnByb2ZpbGUsXG4gICAgV29ya3NwYWNlTmFtZTogb2JqLndvcmtzcGFjZU5hbWUsXG4gICAgRGF0YVByb2Nlc3NSZWdpb246IHRvSnNvbl9TdHJlYW1zRGF0YVByb2Nlc3NSZWdpb24ob2JqLmRhdGFQcm9jZXNzUmVnaW9uKSxcbiAgICBTdHJlYW1Db25maWc6IHRvSnNvbl9TdHJlYW1Db25maWcob2JqLnN0cmVhbUNvbmZpZyksXG4gICAgUHJvamVjdElkOiBvYmoucHJvamVjdElkLFxuICB9O1xuICAvLyBmaWx0ZXIgdW5kZWZpbmVkIHZhbHVlc1xuICByZXR1cm4gT2JqZWN0LmVudHJpZXMocmVzdWx0KS5yZWR1Y2UoXG4gICAgKHIsIGkpID0+IChpWzFdID09PSB1bmRlZmluZWQgPyByIDogeyAuLi5yLCBbaVswXV06IGlbMV0gfSksXG4gICAge31cbiAgKTtcbn1cbi8qIGVzbGludC1lbmFibGUgbWF4LWxlbiwgcXVvdGUtcHJvcHMgKi9cblxuLyoqXG4gKiBJbmZvcm1hdGlvbiBhYm91dCB0aGUgY2xvdWQgcHJvdmlkZXIgcmVnaW9uIGluIHdoaWNoIE1vbmdvREIgQ2xvdWQgcHJvY2Vzc2VzIHRoZSBzdHJlYW0uXG4gKlxuICogQHNjaGVtYSBTdHJlYW1zRGF0YVByb2Nlc3NSZWdpb25cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTdHJlYW1zRGF0YVByb2Nlc3NSZWdpb24ge1xuICAvKipcbiAgICogTGFiZWwgdGhhdCBpZGVudGlmaWVzIHRoZSBjbG91ZCBzZXJ2aWNlIHByb3ZpZGVyIHdoZXJlIE1vbmdvREIgQ2xvdWQgcGVyZm9ybXMgc3RyZWFtIHByb2Nlc3NpbmcuIEZvciBDbG91ZEZvcm1hdGlvbiwgdGhpcyBpcyByZXN0cmljdGVkIHRvIEFXUyBvbmx5LlxuICAgKlxuICAgKiBAc2NoZW1hIFN0cmVhbXNEYXRhUHJvY2Vzc1JlZ2lvbiNDbG91ZFByb3ZpZGVyXG4gICAqL1xuICByZWFkb25seSBjbG91ZFByb3ZpZGVyOiBTdHJlYW1zRGF0YVByb2Nlc3NSZWdpb25DbG91ZFByb3ZpZGVyO1xuXG4gIC8qKlxuICAgKiBAc2NoZW1hIFN0cmVhbXNEYXRhUHJvY2Vzc1JlZ2lvbiNSZWdpb25cbiAgICovXG4gIHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xufVxuXG4vKipcbiAqIENvbnZlcnRzIGFuIG9iamVjdCBvZiB0eXBlICdTdHJlYW1zRGF0YVByb2Nlc3NSZWdpb24nIHRvIEpTT04gcmVwcmVzZW50YXRpb24uXG4gKi9cbi8qIGVzbGludC1kaXNhYmxlIG1heC1sZW4sIHF1b3RlLXByb3BzICovXG5leHBvcnQgZnVuY3Rpb24gdG9Kc29uX1N0cmVhbXNEYXRhUHJvY2Vzc1JlZ2lvbihcbiAgb2JqOiBTdHJlYW1zRGF0YVByb2Nlc3NSZWdpb24gfCB1bmRlZmluZWRcbik6IFJlY29yZDxzdHJpbmcsIGFueT4gfCB1bmRlZmluZWQge1xuICBpZiAob2JqID09PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG4gIGNvbnN0IHJlc3VsdCA9IHtcbiAgICBDbG91ZFByb3ZpZGVyOiBvYmouY2xvdWRQcm92aWRlcixcbiAgICBSZWdpb246IG9iai5yZWdpb24sXG4gIH07XG4gIC8vIGZpbHRlciB1bmRlZmluZWQgdmFsdWVzXG4gIHJldHVybiBPYmplY3QuZW50cmllcyhyZXN1bHQpLnJlZHVjZShcbiAgICAociwgaSkgPT4gKGlbMV0gPT09IHVuZGVmaW5lZCA/IHIgOiB7IC4uLnIsIFtpWzBdXTogaVsxXSB9KSxcbiAgICB7fVxuICApO1xufVxuLyogZXNsaW50LWVuYWJsZSBtYXgtbGVuLCBxdW90ZS1wcm9wcyAqL1xuXG4vKipcbiAqIENvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgYW4gQXRsYXMgU3RyZWFtIFByb2Nlc3NpbmcgV29ya3NwYWNlLlxuICpcbiAqIEBzY2hlbWEgU3RyZWFtQ29uZmlnXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3RyZWFtQ29uZmlnIHtcbiAgLyoqXG4gICAqIFNlbGVjdGVkIHRpZXIgZm9yIHRoZSBTdHJlYW0gV29ya3NwYWNlLiBDb25maWd1cmVzIE1lbW9yeSAvIFZDUFUgYWxsb3dhbmNlcy4gVmFsaWQgdmFsdWVzOiBTUDIsIFNQNSwgU1AxMCwgU1AzMCwgU1A1MC5cbiAgICpcbiAgICogQHNjaGVtYSBTdHJlYW1Db25maWcjVGllclxuICAgKi9cbiAgcmVhZG9ubHkgdGllcjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBNYXggdGllciBzaXplIGZvciB0aGUgU3RyZWFtIFdvcmtzcGFjZS4gQ29uZmlndXJlcyBNZW1vcnkgLyBWQ1BVIGFsbG93YW5jZXMuIFZhbGlkIHZhbHVlczogU1AyLCBTUDUsIFNQMTAsIFNQMzAsIFNQNTAuXG4gICAqXG4gICAqIEBzY2hlbWEgU3RyZWFtQ29uZmlnI01heFRpZXJTaXplXG4gICAqL1xuICByZWFkb25seSBtYXhUaWVyU2l6ZT86IHN0cmluZztcbn1cblxuLyoqXG4gKiBDb252ZXJ0cyBhbiBvYmplY3Qgb2YgdHlwZSAnU3RyZWFtQ29uZmlnJyB0byBKU09OIHJlcHJlc2VudGF0aW9uLlxuICovXG4vKiBlc2xpbnQtZGlzYWJsZSBtYXgtbGVuLCBxdW90ZS1wcm9wcyAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvSnNvbl9TdHJlYW1Db25maWcoXG4gIG9iajogU3RyZWFtQ29uZmlnIHwgdW5kZWZpbmVkXG4pOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IHwgdW5kZWZpbmVkIHtcbiAgaWYgKG9iaiA9PT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuICBjb25zdCByZXN1bHQgPSB7XG4gICAgVGllcjogb2JqLnRpZXIsXG4gICAgTWF4VGllclNpemU6IG9iai5tYXhUaWVyU2l6ZSxcbiAgfTtcbiAgLy8gZmlsdGVyIHVuZGVmaW5lZCB2YWx1ZXNcbiAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKHJlc3VsdCkucmVkdWNlKFxuICAgIChyLCBpKSA9PiAoaVsxXSA9PT0gdW5kZWZpbmVkID8gciA6IHsgLi4uciwgW2lbMF1dOiBpWzFdIH0pLFxuICAgIHt9XG4gICk7XG59XG4vKiBlc2xpbnQtZW5hYmxlIG1heC1sZW4sIHF1b3RlLXByb3BzICovXG5cbi8qKlxuICogTGFiZWwgdGhhdCBpZGVudGlmaWVzIHRoZSBjbG91ZCBzZXJ2aWNlIHByb3ZpZGVyIHdoZXJlIE1vbmdvREIgQ2xvdWQgcGVyZm9ybXMgc3RyZWFtIHByb2Nlc3NpbmcuIEZvciBDbG91ZEZvcm1hdGlvbiwgdGhpcyBpcyByZXN0cmljdGVkIHRvIEFXUyBvbmx5LlxuICpcbiAqIEBzY2hlbWEgU3RyZWFtc0RhdGFQcm9jZXNzUmVnaW9uQ2xvdWRQcm92aWRlclxuICovXG5leHBvcnQgZW51bSBTdHJlYW1zRGF0YVByb2Nlc3NSZWdpb25DbG91ZFByb3ZpZGVyIHtcbiAgLyoqIEFXUyAqL1xuICBBV1MgPSBcIkFXU1wiLFxufVxuXG4vKipcbiAqIEEgQ2xvdWRGb3JtYXRpb24gYE1vbmdvREI6OkF0bGFzOjpTdHJlYW1Xb3Jrc3BhY2VgXG4gKlxuICogQGNsb3VkZm9ybWF0aW9uUmVzb3VyY2UgTW9uZ29EQjo6QXRsYXM6OlN0cmVhbVdvcmtzcGFjZVxuICogQHN0YWJpbGl0eSBleHRlcm5hbFxuICovXG5leHBvcnQgY2xhc3MgQ2ZuU3RyZWFtV29ya3NwYWNlIGV4dGVuZHMgY2RrLkNmblJlc291cmNlIHtcbiAgLyoqXG4gICAqIFRoZSBDbG91ZEZvcm1hdGlvbiByZXNvdXJjZSB0eXBlIG5hbWUgZm9yIHRoaXMgcmVzb3VyY2UgY2xhc3MuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IENGTl9SRVNPVVJDRV9UWVBFX05BTUUgPVxuICAgIFwiTW9uZ29EQjo6QXRsYXM6OlN0cmVhbVdvcmtzcGFjZVwiO1xuXG4gIC8qKlxuICAgKiBSZXNvdXJjZSBwcm9wcy5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBwcm9wczogQ2ZuU3RyZWFtV29ya3NwYWNlUHJvcHM7XG5cbiAgLyoqXG4gICAqIEF0dHJpYnV0ZSBgTW9uZ29EQjo6QXRsYXM6OlN0cmVhbVdvcmtzcGFjZS5JZGBcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBhdHRySWQ6IHN0cmluZztcbiAgLyoqXG4gICAqIEF0dHJpYnV0ZSBgTW9uZ29EQjo6QXRsYXM6OlN0cmVhbVdvcmtzcGFjZS5Ib3N0bmFtZXNgXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgYXR0ckhvc3RuYW1lczogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIG5ldyBgTW9uZ29EQjo6QXRsYXM6OlN0cmVhbVdvcmtzcGFjZWAuXG4gICAqXG4gICAqIEBwYXJhbSBzY29wZSAtIHNjb3BlIGluIHdoaWNoIHRoaXMgcmVzb3VyY2UgaXMgZGVmaW5lZFxuICAgKiBAcGFyYW0gaWQgICAgLSBzY29wZWQgaWQgb2YgdGhlIHJlc291cmNlXG4gICAqIEBwYXJhbSBwcm9wcyAtIHJlc291cmNlIHByb3BlcnRpZXNcbiAgICovXG4gIGNvbnN0cnVjdG9yKFxuICAgIHNjb3BlOiBjb25zdHJ1Y3RzLkNvbnN0cnVjdCxcbiAgICBpZDogc3RyaW5nLFxuICAgIHByb3BzOiBDZm5TdHJlYW1Xb3Jrc3BhY2VQcm9wc1xuICApIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHtcbiAgICAgIHR5cGU6IENmblN0cmVhbVdvcmtzcGFjZS5DRk5fUkVTT1VSQ0VfVFlQRV9OQU1FLFxuICAgICAgcHJvcGVydGllczogdG9Kc29uX0NmblN0cmVhbVdvcmtzcGFjZVByb3BzKHByb3BzKSEsXG4gICAgfSk7XG5cbiAgICB0aGlzLnByb3BzID0gcHJvcHM7XG5cbiAgICB0aGlzLmF0dHJJZCA9IGNkay5Ub2tlbi5hc1N0cmluZyh0aGlzLmdldEF0dChcIklkXCIpKTtcbiAgICB0aGlzLmF0dHJIb3N0bmFtZXMgPSBjZGsuVG9rZW4uYXNMaXN0KHRoaXMuZ2V0QXR0KFwiSG9zdG5hbWVzXCIpKTtcbiAgfVxufVxuIl19