UNPKG

awscdk-resources-mongodbatlas

Version:

MongoDB Atlas CDK Construct Library for AWS CloudFormation Resources

117 lines 21.9 kB
"use strict"; var _a; Object.defineProperty(exports, "__esModule", { value: true }); exports.CfnProject = void 0; exports.toJson_CfnProjectProps = toJson_CfnProjectProps; exports.toJson_ProjectSettings = toJson_ProjectSettings; exports.toJson_ProjectTeam = toJson_ProjectTeam; exports.toJson_ProjectApiKey = toJson_ProjectApiKey; const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti"); // Generated by cdk-import const cdk = require("aws-cdk-lib"); /** * Converts an object of type 'CfnProjectProps' to JSON representation. */ /* eslint-disable max-len, quote-props */ function toJson_CfnProjectProps(obj) { if (obj === undefined) { return undefined; } const result = { Name: obj.name, OrgId: obj.orgId, ProjectOwnerId: obj.projectOwnerId, WithDefaultAlertsSettings: obj.withDefaultAlertsSettings, ProjectSettings: toJson_ProjectSettings(obj.projectSettings), Profile: obj.profile, ProjectTeams: obj.projectTeams?.map((y) => toJson_ProjectTeam(y)), ProjectApiKeys: obj.projectApiKeys?.map((y) => toJson_ProjectApiKey(y)), RegionUsageRestrictions: obj.regionUsageRestrictions, Tags: obj.tags, }; // filter undefined values return Object.entries(result).reduce((r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }), {}); } /** * Converts an object of type 'ProjectSettings' to JSON representation. */ /* eslint-disable max-len, quote-props */ function toJson_ProjectSettings(obj) { if (obj === undefined) { return undefined; } const result = { IsCollectDatabaseSpecificsStatisticsEnabled: obj.isCollectDatabaseSpecificsStatisticsEnabled, IsDataExplorerEnabled: obj.isDataExplorerEnabled, IsExtendedStorageSizesEnabled: obj.isExtendedStorageSizesEnabled, IsPerformanceAdvisorEnabled: obj.isPerformanceAdvisorEnabled, IsRealtimePerformancePanelEnabled: obj.isRealtimePerformancePanelEnabled, IsSchemaAdvisorEnabled: obj.isSchemaAdvisorEnabled, }; // filter undefined values return Object.entries(result).reduce((r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }), {}); } /** * Converts an object of type 'ProjectTeam' to JSON representation. */ /* eslint-disable max-len, quote-props */ function toJson_ProjectTeam(obj) { if (obj === undefined) { return undefined; } const result = { TeamId: obj.teamId, RoleNames: obj.roleNames?.map((y) => y), }; // filter undefined values return Object.entries(result).reduce((r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }), {}); } /** * Converts an object of type 'ProjectApiKey' to JSON representation. */ /* eslint-disable max-len, quote-props */ function toJson_ProjectApiKey(obj) { if (obj === undefined) { return undefined; } const result = { Key: obj.key, RoleNames: obj.roleNames?.map((y) => y), }; // 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 */ /** * A CloudFormation `MongoDB::Atlas::Project` * * @cloudformationResource MongoDB::Atlas::Project * @stability external */ class CfnProject extends cdk.CfnResource { /** * Create a new `MongoDB::Atlas::Project`. * * @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: CfnProject.CFN_RESOURCE_TYPE_NAME, properties: toJson_CfnProjectProps(props), }); this.props = props; this.attrId = cdk.Token.asString(this.getAtt("Id")); this.attrCreated = cdk.Token.asString(this.getAtt("Created")); this.attrClusterCount = cdk.Token.asNumber(this.getAtt("ClusterCount")); } } exports.CfnProject = CfnProject; _a = JSII_RTTI_SYMBOL_1; CfnProject[_a] = { fqn: "awscdk-resources-mongodbatlas.CfnProject", version: "3.13.0" }; /** * The CloudFormation resource type name for this resource class. */ CfnProject.CFN_RESOURCE_TYPE_NAME = "MongoDB::Atlas::Project"; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbDEtcmVzb3VyY2VzL3Byb2plY3QvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQWlGQSx3REF1QkM7QUFzREQsd0RBb0JDO0FBMEJELGdEQWVDO0FBMEJELG9EQWVDOztBQXBRRCwwQkFBMEI7QUFDMUIsbUNBQW1DO0FBNEVuQzs7R0FFRztBQUNILHlDQUF5QztBQUN6QyxTQUFnQixzQkFBc0IsQ0FDcEMsR0FBZ0M7SUFFaEMsSUFBSSxHQUFHLEtBQUssU0FBUyxFQUFFLENBQUM7UUFDdEIsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUNELE1BQU0sTUFBTSxHQUFHO1FBQ2IsSUFBSSxFQUFFLEdBQUcsQ0FBQyxJQUFJO1FBQ2QsS0FBSyxFQUFFLEdBQUcsQ0FBQyxLQUFLO1FBQ2hCLGNBQWMsRUFBRSxHQUFHLENBQUMsY0FBYztRQUNsQyx5QkFBeUIsRUFBRSxHQUFHLENBQUMseUJBQXlCO1FBQ3hELGVBQWUsRUFBRSxzQkFBc0IsQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDO1FBQzVELE9BQU8sRUFBRSxHQUFHLENBQUMsT0FBTztRQUNwQixZQUFZLEVBQUUsR0FBRyxDQUFDLFlBQVksRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2pFLGNBQWMsRUFBRSxHQUFHLENBQUMsY0FBYyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdkUsdUJBQXVCLEVBQUUsR0FBRyxDQUFDLHVCQUF1QjtRQUNwRCxJQUFJLEVBQUUsR0FBRyxDQUFDLElBQUk7S0FDZixDQUFDO0lBQ0YsMEJBQTBCO0lBQzFCLE9BQU8sTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLENBQ2xDLENB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LENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQzNELEVBQUUsQ0FDSCxDQUFDO0FBQ0osQ0FBQztBQUNELHdDQUF3QztBQUV4Qzs7Ozs7R0FLRztBQUNILE1BQWEsVUFBVyxTQUFRLEdBQUcsQ0FBQyxXQUFXO0lBd0I3Qzs7Ozs7O09BTUc7SUFDSCxZQUFZLEtBQTJCLEVBQUUsRUFBVSxFQUFFLEtBQXNCO1FBQ3pFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFO1lBQ2YsSUFBSSxFQUFFLFVBQVUsQ0FBQyxzQkFBc0I7WUFDdkMsVUFBVSxFQUFFLHNCQUFzQixDQUFDLEtBQUssQ0FBRTtTQUMzQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUVuQixJQUFJLENBQUMsTUFBTSxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUNwRCxJQUFJLENBQUMsV0FBVyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztRQUM5RCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDO0lBQzFFLENBQUM7O0FBMUNILGdDQTJDQzs7O0FBMUNDOztHQUVHO0FBQ29CLGlDQUFzQixHQUFHLHlCQUF5QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gR2VuZXJhdGVkIGJ5IGNkay1pbXBvcnRcbmltcG9ydCAqIGFzIGNkayBmcm9tIFwiYXdzLWNkay1saWJcIjtcbmltcG9ydCAqIGFzIGNvbnN0cnVjdHMgZnJvbSBcImNvbnN0cnVjdHNcIjtcblxuLyoqXG4gKiBSZXRyaWV2ZXMgb3IgY3JlYXRlcyBwcm9qZWN0cyBpbiBhbnkgZ2l2ZW4gQXRsYXMgb3JnYW5pemF0aW9uLlxuICpcbiAqIEBzY2hlbWEgQ2ZuUHJvamVjdFByb3BzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ2ZuUHJvamVjdFByb3BzIHtcbiAgLyoqXG4gICAqIE5hbWUgb2YgdGhlIHByb2plY3QgdG8gY3JlYXRlLlxuICAgKlxuICAgKiBAc2NoZW1hIENmblByb2plY3RQcm9wcyNOYW1lXG4gICAqL1xuICByZWFkb25seSBuYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSBvcmdhbml6YXRpb24gd2l0aGluIHdoaWNoIHRvIGNyZWF0ZSB0aGUgcHJvamVjdC5cbiAgICpcbiAgICogQHNjaGVtYSBDZm5Qcm9qZWN0UHJvcHMjT3JnSWRcbiAgICovXG4gIHJlYWRvbmx5IG9yZ0lkOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSBvcmdhbml6YXRpb24gd2l0aGluIHdoaWNoIHRvIGNyZWF0ZSB0aGUgcHJvamVjdC5cbiAgICpcbiAgICogQHNjaGVtYSBDZm5Qcm9qZWN0UHJvcHMjUHJvamVjdE93bmVySWRcbiAgICovXG4gIHJlYWRvbmx5IHByb2plY3RPd25lcklkPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBGbGFnIHRoYXQgaW5kaWNhdGVzIHdoZXRoZXIgdG8gY3JlYXRlIHRoZSBwcm9qZWN0IHdpdGggZGVmYXVsdCBhbGVydCBzZXR0aW5ncy5cbiAgICpcbiAgICogQHNjaGVtYSBDZm5Qcm9qZWN0UHJvcHMjV2l0aERlZmF1bHRBbGVydHNTZXR0aW5nc1xuICAgKi9cbiAgcmVhZG9ubHkgd2l0aERlZmF1bHRBbGVydHNTZXR0aW5ncz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEBzY2hlbWEgQ2ZuUHJvamVjdFByb3BzI1Byb2plY3RTZXR0aW5nc1xuICAgKi9cbiAgcmVhZG9ubHkgcHJvamVjdFNldHRpbmdzPzogUHJvamVjdFNldHRpbmdzO1xuXG4gIC8qKlxuICAgKiBQcm9maWxlIHVzZWQgdG8gcHJvdmlkZSBjcmVkZW50aWFscyBpbmZvcm1hdGlvbiwgKGEgc2VjcmV0IHdpdGggdGhlIGNmbi9hdGxhcy9wcm9maWxlL3tQcm9maWxlfSwgaXMgcmVxdWlyZWQpLCBpZiBub3QgcHJvdmlkZWQgZGVmYXVsdCBpcyB1c2VkXG4gICAqXG4gICAqIEBzY2hlbWEgQ2ZuUHJvamVjdFByb3BzI1Byb2ZpbGVcbiAgICovXG4gIHJlYWRvbmx5IHByb2ZpbGU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRlYW1zIHRvIHdoaWNoIHRoZSBhdXRoZW50aWNhdGVkIHVzZXIgaGFzIGFjY2VzcyBpbiB0aGUgcHJvamVjdCBzcGVjaWZpZWQgdXNpbmcgaXRzIHVuaXF1ZSAyNC1oZXhhZGVjaW1hbCBkaWdpdCBpZGVudGlmaWVyLlxuICAgKlxuICAgKiBAc2NoZW1hIENmblByb2plY3RQcm9wcyNQcm9qZWN0VGVhbXNcbiAgICovXG4gIHJlYWRvbmx5IHByb2plY3RUZWFtcz86IFByb2plY3RUZWFtW107XG5cbiAgLyoqXG4gICAqIEFQSSBrZXlzIHRoYXQgeW91IGFzc2lnbmVkIHRvIHRoZSBzcGVjaWZpZWQgcHJvamVjdC5cbiAgICpcbiAgICogQHNjaGVtYSBDZm5Qcm9qZWN0UHJvcHMjUHJvamVjdEFwaUtleXNcbiAgICovXG4gIHJlYWRvbmx5IHByb2plY3RBcGlLZXlzPzogUHJvamVjdEFwaUtleVtdO1xuXG4gIC8qKlxuICAgKiBSZWdpb24gdXNhZ2UgcmVzdHJpY3Rpb25zIHRoYXQgZGVzaWduYXRlIHRoZSBwcm9qZWN0J3MgQVdTIHJlZ2lvbi5FbnVtOiBcIkdPVl9SRUdJT05TX09OTFlcIiBcIkNPTU1FUkNJQUxfRkVEUkFNUF9SRUdJT05TX09OTFlcIiBcIk5PTkVcIlxuICAgKlxuICAgKiBAc2NoZW1hIENmblByb2plY3RQcm9wcyNSZWdpb25Vc2FnZVJlc3RyaWN0aW9uc1xuICAgKi9cbiAgcmVhZG9ubHkgcmVnaW9uVXNhZ2VSZXN0cmljdGlvbnM/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEBzY2hlbWEgQ2ZuUHJvamVjdFByb3BzI1RhZ3NcbiAgICovXG4gIHJlYWRvbmx5IHRhZ3M/OiBhbnk7XG59XG5cbi8qKlxuICogQ29udmVydHMgYW4gb2JqZWN0IG9mIHR5cGUgJ0NmblByb2plY3RQcm9wcycgdG8gSlNPTiByZXByZXNlbnRhdGlvbi5cbiAqL1xuLyogZXNsaW50LWRpc2FibGUgbWF4LWxlbiwgcXVvdGUtcHJvcHMgKi9cbmV4cG9ydCBmdW5jdGlvbiB0b0pzb25fQ2ZuUHJvamVjdFByb3BzKFxuICBvYmo6IENmblByb2plY3RQcm9wcyB8IHVuZGVmaW5lZFxuKTogUmVjb3JkPHN0cmluZywgYW55PiB8IHVuZGVmaW5lZCB7XG4gIGlmIChvYmogPT09IHVuZGVmaW5lZCkge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbiAgY29uc3QgcmVzdWx0ID0ge1xuICAgIE5hbWU6IG9iai5uYW1lLFxuICAgIE9yZ0lkOiBvYmoub3JnSWQsXG4gICAgUHJvamVjdE93bmVySWQ6IG9iai5wcm9qZWN0T3duZXJJZCxcbiAgICBXaXRoRGVmYXVsdEFsZXJ0c1NldHRpbmdzOiBvYmoud2l0aERlZmF1bHRBbGVydHNTZXR0aW5ncyxcbiAgICBQcm9qZWN0U2V0dGluZ3M6IHRvSnNvbl9Qcm9qZWN0U2V0dGluZ3Mob2JqLnByb2plY3RTZXR0aW5ncyksXG4gICAgUHJvZmlsZTogb2JqLnByb2ZpbGUsXG4gICAgUHJvamVjdFRlYW1zOiBvYmoucHJvamVjdFRlYW1zPy5tYXAoKHkpID0+IHRvSnNvbl9Qcm9qZWN0VGVhbSh5KSksXG4gICAgUHJvamVjdEFwaUtleXM6IG9iai5wcm9qZWN0QXBpS2V5cz8ubWFwKCh5KSA9PiB0b0pzb25fUHJvamVjdEFwaUtleSh5KSksXG4gICAgUmVnaW9uVXNhZ2VSZXN0cmljdGlvbnM6IG9iai5yZWdpb25Vc2FnZVJlc3RyaWN0aW9ucyxcbiAgICBUYWdzOiBvYmoudGFncyxcbiAgfTtcbiAgLy8gZmlsdGVyIHVuZGVmaW5lZCB2YWx1ZXNcbiAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKHJlc3VsdCkucmVkdWNlKFxuICAgIChyLCBpKSA9PiAoaVsxXSA9PT0gdW5kZWZpbmVkID8gciA6IHsgLi4uciwgW2lbMF1dOiBpWzFdIH0pLFxuICAgIHt9XG4gICk7XG59XG4vKiBlc2xpbnQtZW5hYmxlIG1heC1sZW4sIHF1b3RlLXByb3BzICovXG5cbi8qKlxuICogQHNjaGVtYSBwcm9qZWN0U2V0dGluZ3NcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQcm9qZWN0U2V0dGluZ3Mge1xuICAvKipcbiAgICogRmxhZyB0aGF0IGluZGljYXRlcyB3aGV0aGVyIHRvIGNvbGxlY3QgZGF0YWJhc2Utc3BlY2lmaWMgbWV0cmljcyBmb3IgdGhlIHNwZWNpZmllZCBwcm9qZWN0LlxuICAgKlxuICAgKiBAc2NoZW1hIHByb2plY3RTZXR0aW5ncyNJc0NvbGxlY3REYXRhYmFzZVNwZWNpZmljc1N0YXRpc3RpY3NFbmFibGVkXG4gICAqL1xuICByZWFkb25seSBpc0NvbGxlY3REYXRhYmFzZVNwZWNpZmljc1N0YXRpc3RpY3NFbmFibGVkPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogRmxhZyB0aGF0IGluZGljYXRlcyB3aGV0aGVyIHRvIGVuYWJsZSB0aGUgRGF0YSBFeHBsb3JlciBmb3IgdGhlIHNwZWNpZmllZCBwcm9qZWN0LlxuICAgKlxuICAgKiBAc2NoZW1hIHByb2plY3RTZXR0aW5ncyNJc0RhdGFFeHBsb3JlckVuYWJsZWRcbiAgICovXG4gIHJlYWRvbmx5IGlzRGF0YUV4cGxvcmVyRW5hYmxlZD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEZsYWcgdGhhdCBpbmRpY2F0ZXMgd2hldGhlciB0byBlbmFibGUgZXh0ZW5kZWQgc3RvcmFnZSBzaXplcyBmb3IgdGhlIHNwZWNpZmllZCBwcm9qZWN0LlxuICAgKlxuICAgKiBAc2NoZW1hIHByb2plY3RTZXR0aW5ncyNJc0V4dGVuZGVkU3RvcmFnZVNpemVzRW5hYmxlZFxuICAgKi9cbiAgcmVhZG9ubHkgaXNFeHRlbmRlZFN0b3JhZ2VTaXplc0VuYWJsZWQ/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBGbGFnIHRoYXQgaW5kaWNhdGVzIHdoZXRoZXIgdG8gZW5hYmxlIHRoZSBQZXJmb3JtYW5jZSBBZHZpc29yIGFuZCBQcm9maWxlciBmb3IgdGhlIHNwZWNpZmllZCBwcm9qZWN0LlxuICAgKlxuICAgKiBAc2NoZW1hIHByb2plY3RTZXR0aW5ncyNJc1BlcmZvcm1hbmNlQWR2aXNvckVuYWJsZWRcbiAgICovXG4gIHJlYWRvbmx5IGlzUGVyZm9ybWFuY2VBZHZpc29yRW5hYmxlZD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEZsYWcgdGhhdCBpbmRpY2F0ZXMgd2hldGhlciB0byBlbmFibGUgdGhlIFJlYWwgVGltZSBQZXJmb3JtYW5jZSBQYW5lbCBmb3IgdGhlIHNwZWNpZmllZCBwcm9qZWN0LlxuICAgKlxuICAgKiBAc2NoZW1hIHByb2plY3RTZXR0aW5ncyNJc1JlYWx0aW1lUGVyZm9ybWFuY2VQYW5lbEVuYWJsZWRcbiAgICovXG4gIHJlYWRvbmx5IGlzUmVhbHRpbWVQZXJmb3JtYW5jZVBhbmVsRW5hYmxlZD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEZsYWcgdGhhdCBpbmRpY2F0ZXMgd2hldGhlciB0byBlbmFibGUgdGhlIFNjaGVtYSBBZHZpc29yIGZvciB0aGUgc3BlY2lmaWVkIHByb2plY3QuXG4gICAqXG4gICAqIEBzY2hlbWEgcHJvamVjdFNldHRpbmdzI0lzU2NoZW1hQWR2aXNvckVuYWJsZWRcbiAgICovXG4gIHJlYWRvbmx5IGlzU2NoZW1hQWR2aXNvckVuYWJsZWQ/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIENvbnZlcnRzIGFuIG9iamVjdCBvZiB0eXBlICdQcm9qZWN0U2V0dGluZ3MnIHRvIEpTT04gcmVwcmVzZW50YXRpb24uXG4gKi9cbi8qIGVzbGludC1kaXNhYmxlIG1heC1sZW4sIHF1b3RlLXByb3BzICovXG5leHBvcnQgZnVuY3Rpb24gdG9Kc29uX1Byb2plY3RTZXR0aW5ncyhcbiAgb2JqOiBQcm9qZWN0U2V0dGluZ3MgfCB1bmRlZmluZWRcbik6IFJlY29yZDxzdHJpbmcsIGFueT4gfCB1bmRlZmluZWQge1xuICBpZiAob2JqID09PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG4gIGNvbnN0IHJlc3VsdCA9IHtcbiAgICBJc0NvbGxlY3REYXRhYmFzZVNwZWNpZmljc1N0YXRpc3RpY3NFbmFibGVkOlxuICAgICAgb2JqLmlzQ29sbGVjdERhdGFiYXNlU3BlY2lmaWNzU3RhdGlzdGljc0VuYWJsZWQsXG4gICAgSXNEYXRhRXhwbG9yZXJFbmFibGVkOiBvYmouaXNEYXRhRXhwbG9yZXJFbmFibGVkLFxuICAgIElzRXh0ZW5kZWRTdG9yYWdlU2l6ZXNFbmFibGVkOiBvYmouaXNFeHRlbmRlZFN0b3JhZ2VTaXplc0VuYWJsZWQsXG4gICAgSXNQZXJmb3JtYW5jZUFkdmlzb3JFbmFibGVkOiBvYmouaXNQZXJmb3JtYW5jZUFkdmlzb3JFbmFibGVkLFxuICAgIElzUmVhbHRpbWVQZXJmb3JtYW5jZVBhbmVsRW5hYmxlZDogb2JqLmlzUmVhbHRpbWVQZXJmb3JtYW5jZVBhbmVsRW5hYmxlZCxcbiAgICBJc1NjaGVtYUFkdmlzb3JFbmFibGVkOiBvYmouaXNTY2hlbWFBZHZpc29yRW5hYmxlZCxcbiAgfTtcbiAgLy8gZmlsdGVyIHVuZGVmaW5lZCB2YWx1ZXNcbiAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKHJlc3VsdCkucmVkdWNlKFxuICAgIChyLCBpKSA9PiAoaVsxXSA9PT0gdW5kZWZpbmVkID8gciA6IHsgLi4uciwgW2lbMF1dOiBpWzFdIH0pLFxuICAgIHt9XG4gICk7XG59XG4vKiBlc2xpbnQtZW5hYmxlIG1heC1sZW4sIHF1b3RlLXByb3BzICovXG5cbi8qKlxuICogQHNjaGVtYSBwcm9qZWN0VGVhbVxuICovXG5leHBvcnQgaW50ZXJmYWNlIFByb2plY3RUZWFtIHtcbiAgLyoqXG4gICAqIFVuaXF1ZSAyNC1oZXhhZGVjaW1hbCBjaGFyYWN0ZXIgc3RyaW5nIHRoYXQgaWRlbnRpZmllcyB0aGUgdGVhbS4gc3RyaW5nID0gMjQgY2hhcmFjdGVycyBeKFthLWYwLTldezI0fSkkXG4gICAqXG4gICAqIEBzY2hlbWEgcHJvamVjdFRlYW0jVGVhbUlkXG4gICAqL1xuICByZWFkb25seSB0ZWFtSWQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE9uZSBvciBtb3JlIG9yZ2FuaXphdGlvbi0gb3IgcHJvamVjdC1sZXZlbCByb2xlcyB0byBhc3NpZ24gdG8gdGhlIE1vbmdvREIgQ2xvdWQgdXNlci4gdGVtcyBFbnVtOiBcIkdST1VQX0NMVVNURVJfTUFOQUdFUlwiIFwiR1JPVVBfREFUQV9BQ0NFU1NfQURNSU5cIiBcIkdST1VQX0RBVEFfQUNDRVNTX1JFQURfT05MWVwiIFwiR1JPVVBfREFUQV9BQ0NFU1NfUkVBRF9XUklURVwiIFwiR1JPVVBfT1dORVJcIiBcIkdST1VQX1JFQURfT05MWVwiXG4gICAqXG4gICAqIEBzY2hlbWEgcHJvamVjdFRlYW0jUm9sZU5hbWVzXG4gICAqL1xuICByZWFkb25seSByb2xlTmFtZXM/OiBzdHJpbmdbXTtcbn1cblxuLyoqXG4gKiBDb252ZXJ0cyBhbiBvYmplY3Qgb2YgdHlwZSAnUHJvamVjdFRlYW0nIHRvIEpTT04gcmVwcmVzZW50YXRpb24uXG4gKi9cbi8qIGVzbGludC1kaXNhYmxlIG1heC1sZW4sIHF1b3RlLXByb3BzICovXG5leHBvcnQgZnVuY3Rpb24gdG9Kc29uX1Byb2plY3RUZWFtKFxuICBvYmo6IFByb2plY3RUZWFtIHwgdW5kZWZpbmVkXG4pOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IHwgdW5kZWZpbmVkIHtcbiAgaWYgKG9iaiA9PT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuICBjb25zdCByZXN1bHQgPSB7XG4gICAgVGVhbUlkOiBvYmoudGVhbUlkLFxuICAgIFJvbGVOYW1lczogb2JqLnJvbGVOYW1lcz8ubWFwKCh5KSA9PiB5KSxcbiAgfTtcbiAgLy8gZmlsdGVyIHVuZGVmaW5lZCB2YWx1ZXNcbiAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKHJlc3VsdCkucmVkdWNlKFxuICAgIChyLCBpKSA9PiAoaVsxXSA9PT0gdW5kZWZpbmVkID8gciA6IHsgLi4uciwgW2lbMF1dOiBpWzFdIH0pLFxuICAgIHt9XG4gICk7XG59XG4vKiBlc2xpbnQtZW5hYmxlIG1heC1sZW4sIHF1b3RlLXByb3BzICovXG5cbi8qKlxuICogQHNjaGVtYSBwcm9qZWN0QXBpS2V5XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUHJvamVjdEFwaUtleSB7XG4gIC8qKlxuICAgKiBVbmlxdWUgMjQtaGV4YWRlY2ltYWwgZGlnaXQgc3RyaW5nIHRoYXQgaWRlbnRpZmllcyB0aGlzIG9yZ2FuaXphdGlvbiBBUEkga2V5IGFzc2lnbmVkIHRvIHRoaXMgcHJvamVjdC5cbiAgICpcbiAgICogQHNjaGVtYSBwcm9qZWN0QXBpS2V5I0tleVxuICAgKi9cbiAgcmVhZG9ubHkga2V5Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBMaXN0IG9mIHJvbGVzIHRvIGdyYW50IHRoaXMgQVBJIGtleS4gSWYgeW91IHByb3ZpZGUgdGhpcyBsaXN0LCBwcm92aWRlIGEgbWluaW11bSBvZiBvbmUgcm9sZSBhbmQgZW5zdXJlIGVhY2ggcm9sZSBhcHBsaWVzIHRvIHRoaXMgcHJvamVjdC5JdGVtcyBFbnVtOiBcIk9SR19PV05FUlwiIFwiT1JHX01FTUJFUlwiIFwiT1JHX0dST1VQX0NSRUFUT1JcIiBcIk9SR19CSUxMSU5HX0FETUlOXCIgXCJPUkdfUkVBRF9PTkxZXCIgXCJPUkdfVEVBTV9NRU1CRVJTX0FETUlOXCIgXCJHUk9VUF9BVExBU19BRE1JTlwiIFwiR1JPVVBfQVVUT01BVElPTl9BRE1JTlwiIFwiR1JPVVBfQkFDS1VQX0FETUlOXCIgXCJHUk9VUF9NT05JVE9SSU5HX0FETUlOXCIgXCJHUk9VUF9PV05FUlwiIFwiR1JPVVBfUkVBRF9PTkxZXCIgXCJHUk9VUF9VU0VSX0FETUlOXCIgXCJHUk9VUF9CSUxMSU5HX0FETUlOXCIgXCJHUk9VUF9EQVRBX0FDQ0VTU19BRE1JTlwiIFwiR1JPVVBfREFUQV9BQ0NFU1NfUkVBRF9PTkxZXCIgXCJHUk9VUF9EQVRBX0FDQ0VTU19SRUFEX1dSSVRFXCIgXCJHUk9VUF9DSEFSVFNfQURNSU5cIiBcIkdST1VQX0NMVVNURVJfTUFOQUdFUlwiIFwiR1JPVVBfU0VBUkNIX0lOREVYX0VESVRPUlwiXG4gICAqXG4gICAqIEBzY2hlbWEgcHJvamVjdEFwaUtleSNSb2xlTmFtZXNcbiAgICovXG4gIHJlYWRvbmx5IHJvbGVOYW1lcz86IHN0cmluZ1tdO1xufVxuXG4vKipcbiAqIENvbnZlcnRzIGFuIG9iamVjdCBvZiB0eXBlICdQcm9qZWN0QXBpS2V5JyB0byBKU09OIHJlcHJlc2VudGF0aW9uLlxuICovXG4vKiBlc2xpbnQtZGlzYWJsZSBtYXgtbGVuLCBxdW90ZS1wcm9wcyAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvSnNvbl9Qcm9qZWN0QXBpS2V5KFxuICBvYmo6IFByb2plY3RBcGlLZXkgfCB1bmRlZmluZWRcbik6IFJlY29yZDxzdHJpbmcsIGFueT4gfCB1bmRlZmluZWQge1xuICBpZiAob2JqID09PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG4gIGNvbnN0IHJlc3VsdCA9IHtcbiAgICBLZXk6IG9iai5rZXksXG4gICAgUm9sZU5hbWVzOiBvYmoucm9sZU5hbWVzPy5tYXAoKHkpID0+IHkpLFxuICB9O1xuICAvLyBmaWx0ZXIgdW5kZWZpbmVkIHZhbHVlc1xuICByZXR1cm4gT2JqZWN0LmVudHJpZXMocmVzdWx0KS5yZWR1Y2UoXG4gICAgKHIsIGkpID0+IChpWzFdID09PSB1bmRlZmluZWQgPyByIDogeyAuLi5yLCBbaVswXV06IGlbMV0gfSksXG4gICAge31cbiAgKTtcbn1cbi8qIGVzbGludC1lbmFibGUgbWF4LWxlbiwgcXVvdGUtcHJvcHMgKi9cblxuLyoqXG4gKiBBIENsb3VkRm9ybWF0aW9uIGBNb25nb0RCOjpBdGxhczo6UHJvamVjdGBcbiAqXG4gKiBAY2xvdWRmb3JtYXRpb25SZXNvdXJjZSBNb25nb0RCOjpBdGxhczo6UHJvamVjdFxuICogQHN0YWJpbGl0eSBleHRlcm5hbFxuICovXG5leHBvcnQgY2xhc3MgQ2ZuUHJvamVjdCBleHRlbmRzIGNkay5DZm5SZXNvdXJjZSB7XG4gIC8qKlxuICAgKiBUaGUgQ2xvdWRGb3JtYXRpb24gcmVzb3VyY2UgdHlwZSBuYW1lIGZvciB0aGlzIHJlc291cmNlIGNsYXNzLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBDRk5fUkVTT1VSQ0VfVFlQRV9OQU1FID0gXCJNb25nb0RCOjpBdGxhczo6UHJvamVjdFwiO1xuXG4gIC8qKlxuICAgKiBSZXNvdXJjZSBwcm9wcy5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBwcm9wczogQ2ZuUHJvamVjdFByb3BzO1xuXG4gIC8qKlxuICAgKiBBdHRyaWJ1dGUgYE1vbmdvREI6OkF0bGFzOjpQcm9qZWN0LklkYFxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGF0dHJJZDogc3RyaW5nO1xuICAvKipcbiAgICogQXR0cmlidXRlIGBNb25nb0RCOjpBdGxhczo6UHJvamVjdC5DcmVhdGVkYFxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGF0dHJDcmVhdGVkOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBBdHRyaWJ1dGUgYE1vbmdvREI6OkF0bGFzOjpQcm9qZWN0LkNsdXN0ZXJDb3VudGBcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBhdHRyQ2x1c3RlckNvdW50OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIG5ldyBgTW9uZ29EQjo6QXRsYXM6OlByb2plY3RgLlxuICAgKlxuICAgKiBAcGFyYW0gc2NvcGUgLSBzY29wZSBpbiB3aGljaCB0aGlzIHJlc291cmNlIGlzIGRlZmluZWRcbiAgICogQHBhcmFtIGlkICAgIC0gc2NvcGVkIGlkIG9mIHRoZSByZXNvdXJjZVxuICAgKiBAcGFyYW0gcHJvcHMgLSByZXNvdXJjZSBwcm9wZXJ0aWVzXG4gICAqL1xuICBjb25zdHJ1Y3RvcihzY29wZTogY29uc3RydWN0cy5Db25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBDZm5Qcm9qZWN0UHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHtcbiAgICAgIHR5cGU6IENmblByb2plY3QuQ0ZOX1JFU09VUkNFX1RZUEVfTkFNRSxcbiAgICAgIHByb3BlcnRpZXM6IHRvSnNvbl9DZm5Qcm9qZWN0UHJvcHMocHJvcHMpISxcbiAgICB9KTtcblxuICAgIHRoaXMucHJvcHMgPSBwcm9wcztcblxuICAgIHRoaXMuYXR0cklkID0gY2RrLlRva2VuLmFzU3RyaW5nKHRoaXMuZ2V0QXR0KFwiSWRcIikpO1xuICAgIHRoaXMuYXR0ckNyZWF0ZWQgPSBjZGsuVG9rZW4uYXNTdHJpbmcodGhpcy5nZXRBdHQoXCJDcmVhdGVkXCIpKTtcbiAgICB0aGlzLmF0dHJDbHVzdGVyQ291bnQgPSBjZGsuVG9rZW4uYXNOdW1iZXIodGhpcy5nZXRBdHQoXCJDbHVzdGVyQ291bnRcIikpO1xuICB9XG59XG4iXX0=