UNPKG

awscdk-resources-mongodbatlas

Version:

MongoDB Atlas CDK Construct Library for AWS CloudFormation Resources

168 lines 24.4 kB
"use strict"; var _a; Object.defineProperty(exports, "__esModule", { value: true }); exports.CfnDatabaseUser = exports.ScopeDefinitionType = exports.CfnDatabaseUserPropsX509Type = exports.CfnDatabaseUserPropsLdapAuthType = exports.CfnDatabaseUserPropsAwsiamType = void 0; exports.toJson_CfnDatabaseUserProps = toJson_CfnDatabaseUserProps; exports.toJson_LabelDefinition = toJson_LabelDefinition; exports.toJson_RoleDefinition = toJson_RoleDefinition; exports.toJson_ScopeDefinition = toJson_ScopeDefinition; const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti"); // Generated by cdk-import const cdk = require("aws-cdk-lib"); /** * Converts an object of type 'CfnDatabaseUserProps' to JSON representation. */ /* eslint-disable max-len, quote-props */ function toJson_CfnDatabaseUserProps(obj) { if (obj === undefined) { return undefined; } const result = { DeleteAfterDate: obj.deleteAfterDate, AWSIAMType: obj.awsiamType, DatabaseName: obj.databaseName, Labels: obj.labels?.map((y) => toJson_LabelDefinition(y)), LdapAuthType: obj.ldapAuthType, X509Type: obj.x509Type, Password: obj.password, ProjectId: obj.projectId, Roles: obj.roles?.map((y) => toJson_RoleDefinition(y)), Scopes: obj.scopes?.map((y) => toJson_ScopeDefinition(y)), Username: obj.username, Profile: obj.profile, }; // 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 */ /** * Human-readable label that indicates whether the new database user authenticates with the Amazon Web Services (AWS) Identity and Access Management (IAM) credentials associated with the user or the user's role. Default value is `NONE`. * * @schema CfnDatabaseUserPropsAwsiamType */ var CfnDatabaseUserPropsAwsiamType; (function (CfnDatabaseUserPropsAwsiamType) { /** NONE */ CfnDatabaseUserPropsAwsiamType["NONE"] = "NONE"; /** USER */ CfnDatabaseUserPropsAwsiamType["USER"] = "USER"; /** ROLE */ CfnDatabaseUserPropsAwsiamType["ROLE"] = "ROLE"; })(CfnDatabaseUserPropsAwsiamType || (exports.CfnDatabaseUserPropsAwsiamType = CfnDatabaseUserPropsAwsiamType = {})); /** * Converts an object of type 'LabelDefinition' to JSON representation. */ /* eslint-disable max-len, quote-props */ function toJson_LabelDefinition(obj) { if (obj === undefined) { return undefined; } const result = { Key: obj.key, Value: obj.value, }; // 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 */ /** * Method by which the provided username is authenticated. Default value is `NONE`. * * @schema CfnDatabaseUserPropsLdapAuthType */ var CfnDatabaseUserPropsLdapAuthType; (function (CfnDatabaseUserPropsLdapAuthType) { /** NONE */ CfnDatabaseUserPropsLdapAuthType["NONE"] = "NONE"; /** USER */ CfnDatabaseUserPropsLdapAuthType["USER"] = "USER"; /** GROUP */ CfnDatabaseUserPropsLdapAuthType["GROUP"] = "GROUP"; })(CfnDatabaseUserPropsLdapAuthType || (exports.CfnDatabaseUserPropsLdapAuthType = CfnDatabaseUserPropsLdapAuthType = {})); /** * Method that briefs who owns the certificate provided. Default value is `NONE`. * * @schema CfnDatabaseUserPropsX509Type */ var CfnDatabaseUserPropsX509Type; (function (CfnDatabaseUserPropsX509Type) { /** NONE */ CfnDatabaseUserPropsX509Type["NONE"] = "NONE"; /** MANAGED */ CfnDatabaseUserPropsX509Type["MANAGED"] = "MANAGED"; /** CUSTOMER */ CfnDatabaseUserPropsX509Type["CUSTOMER"] = "CUSTOMER"; })(CfnDatabaseUserPropsX509Type || (exports.CfnDatabaseUserPropsX509Type = CfnDatabaseUserPropsX509Type = {})); /** * Converts an object of type 'RoleDefinition' to JSON representation. */ /* eslint-disable max-len, quote-props */ function toJson_RoleDefinition(obj) { if (obj === undefined) { return undefined; } const result = { CollectionName: obj.collectionName, DatabaseName: obj.databaseName, RoleName: obj.roleName, }; // filter undefined values return Object.entries(result).reduce((r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }), {}); } /** * Converts an object of type 'ScopeDefinition' to JSON representation. */ /* eslint-disable max-len, quote-props */ function toJson_ScopeDefinition(obj) { if (obj === undefined) { return undefined; } const result = { Name: obj.name, Type: obj.type, }; // 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 */ /** * @schema ScopeDefinitionType */ var ScopeDefinitionType; (function (ScopeDefinitionType) { /** CLUSTER */ ScopeDefinitionType["CLUSTER"] = "CLUSTER"; /** DATA_LAKE */ ScopeDefinitionType["DATA_LAKE"] = "DATA_LAKE"; })(ScopeDefinitionType || (exports.ScopeDefinitionType = ScopeDefinitionType = {})); /** * A CloudFormation `MongoDB::Atlas::DatabaseUser` * * @cloudformationResource MongoDB::Atlas::DatabaseUser * @stability external */ class CfnDatabaseUser extends cdk.CfnResource { /** * Create a new `MongoDB::Atlas::DatabaseUser`. * * @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: CfnDatabaseUser.CFN_RESOURCE_TYPE_NAME, properties: toJson_CfnDatabaseUserProps(props), }); this.props = props; this.attrUserCFNIdentifier = cdk.Token.asString(this.getAtt("UserCFNIdentifier")); } } exports.CfnDatabaseUser = CfnDatabaseUser; _a = JSII_RTTI_SYMBOL_1; CfnDatabaseUser[_a] = { fqn: "awscdk-resources-mongodbatlas.CfnDatabaseUser", version: "3.10.0" }; /** * The CloudFormation resource type name for this resource class. */ CfnDatabaseUser.CFN_RESOURCE_TYPE_NAME = "MongoDB::Atlas::DatabaseUser"; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbDEtcmVzb3VyY2VzL2RhdGFiYXNlLXVzZXIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQW1HQSxrRUF5QkM7QUFvQ0Qsd0RBZUM7QUF1REQsc0RBZ0JDO0FBc0JELHdEQWVDOztBQTNSRCwwQkFBMEI7QUFDMUIsbUNBQW1DO0FBOEZuQzs7R0FFRztBQUNILHlDQUF5QztBQUN6QyxTQUFnQiwyQkFBMkIsQ0FDekMsR0FBcUM7SUFFckMsSUFBSSxHQUFHLEtBQUssU0FBUyxFQUFFLENBQUM7UUFDdEIsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUNELE1BQU0sTUFBTSxHQUFHO1FBQ2IsZUFBZSxFQUFFLEdBQUcsQ0FBQyxlQUFlO1FBQ3BDLFVBQVUsRUFBRSxHQUFHLENBQUMsVUFBVTtRQUMxQixZQUFZLEVBQUUsR0FBRyxDQUFDLFlBQVk7UUFDOUIsTUFBTSxFQUFFLEdBQUcsQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN6RCxZQUFZLEVBQUUsR0FBRyxDQUFDLFlBQVk7UUFDOUIsUUFBUSxFQUFFLEdBQUcsQ0FBQyxRQUFRO1FBQ3RCLFFBQVEsRUFBRSxHQUFHLENBQUMsUUFBUTtRQUN0QixTQUFTLEVBQUUsR0FBRyxDQUFDLFNBQVM7UUFDeEIsS0FBSyxFQUFFLEdBQUcsQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN0RCxNQUFNLEVBQUUsR0FBRyxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLHNCQUFzQixDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3pELFFBQVEsRUFBRSxHQUFHLENBQUMsUUFBUTtR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LEVBQUU7WUFDZixJQUFJLEVBQUUsZUFBZSxDQUFDLHNCQUFzQjtZQUM1QyxVQUFVLEVBQUUsMkJBQTJCLENBQUMsS0FBSyxDQUFFO1NBQ2hELENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBRW5CLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FDN0MsSUFBSSxDQUFDLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxDQUNqQyxDQUFDO0lBQ0osQ0FBQzs7QUF2Q0gsMENBd0NDOzs7QUF2Q0M7O0dBRUc7QUFDb0Isc0NBQXNCLEdBQzNDLDhCQUE4QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gR2VuZXJhdGVkIGJ5IGNkay1pbXBvcnRcbmltcG9ydCAqIGFzIGNkayBmcm9tIFwiYXdzLWNkay1saWJcIjtcbmltcG9ydCAqIGFzIGNvbnN0cnVjdHMgZnJvbSBcImNvbnN0cnVjdHNcIjtcblxuLyoqXG4gKiBSZXR1cm5zLCBhZGRzLCBlZGl0cywgYW5kIHJlbW92ZXMgZGF0YWJhc2UgdXNlcnMuXG4gKlxuICogQHNjaGVtYSBDZm5EYXRhYmFzZVVzZXJQcm9wc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIENmbkRhdGFiYXNlVXNlclByb3BzIHtcbiAgLyoqXG4gICAqIERhdGUgYW5kIHRpbWUgd2hlbiBNb25nb0RCIENsb3VkIGRlbGV0ZXMgdGhlIHVzZXIuIFRoaXMgcGFyYW1ldGVyIGV4cHJlc3NlcyBpdHMgdmFsdWUgaW4gdGhlIElTTyA4NjAxIHRpbWVzdGFtcCBmb3JtYXQgaW4gVVRDIGFuZCBjYW4gaW5jbHVkZSB0aGUgdGltZSB6b25lIGRlc2lnbmF0aW9uLiBZb3UgbXVzdCBzcGVjaWZ5IGEgZnV0dXJlIGRhdGUgdGhhdCBmYWxscyB3aXRoaW4gb25lIHdlZWsgb2YgbWFraW5nIHRoZSBBcHBsaWNhdGlvbiBQcm9ncmFtbWluZyBJbnRlcmZhY2UgKEFQSSkgcmVxdWVzdC5cbiAgICpcbiAgICogQHNjaGVtYSBDZm5EYXRhYmFzZVVzZXJQcm9wcyNEZWxldGVBZnRlckRhdGVcbiAgICovXG4gIHJlYWRvbmx5IGRlbGV0ZUFmdGVyRGF0ZT86IHN0cmluZztcblxuICAvKipcbiAgICogSHVtYW4tcmVhZGFibGUgbGFiZWwgdGhhdCBpbmRpY2F0ZXMgd2hldGhlciB0aGUgbmV3IGRhdGFiYXNlIHVzZXIgYXV0aGVudGljYXRlcyB3aXRoIHRoZSBBbWF6b24gV2ViIFNlcnZpY2VzIChBV1MpIElkZW50aXR5IGFuZCBBY2Nlc3MgTWFuYWdlbWVudCAoSUFNKSBjcmVkZW50aWFscyBhc3NvY2lhdGVkIHdpdGggdGhlIHVzZXIgb3IgdGhlIHVzZXIncyByb2xlLiBEZWZhdWx0IHZhbHVlIGlzIGBOT05FYC5cbiAgICpcbiAgICogQHNjaGVtYSBDZm5EYXRhYmFzZVVzZXJQcm9wcyNBV1NJQU1UeXBlXG4gICAqL1xuICByZWFkb25seSBhd3NpYW1UeXBlPzogQ2ZuRGF0YWJhc2VVc2VyUHJvcHNBd3NpYW1UeXBlO1xuXG4gIC8qKlxuICAgKiBNb25nb0RCIGRhdGFiYXNlIGFnYWluc3Qgd2hpY2ggdGhlIE1vbmdvREIgZGF0YWJhc2UgdXNlciBhdXRoZW50aWNhdGVzLiBNb25nb0RCIGRhdGFiYXNlIHVzZXJzIG11c3QgcHJvdmlkZSBib3RoIGEgdXNlcm5hbWUgYW5kIGF1dGhlbnRpY2F0aW9uIGRhdGFiYXNlIHRvIGxvZyBpbnRvIE1vbmdvREIuICBEZWZhdWx0IHZhbHVlIGlzIGBhZG1pbmAuXG4gICAqXG4gICAqIEBzY2hlbWEgQ2ZuRGF0YWJhc2VVc2VyUHJvcHMjRGF0YWJhc2VOYW1lXG4gICAqL1xuICByZWFkb25seSBkYXRhYmFzZU5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogTGlzdCB0aGF0IGNvbnRhaW5zIHRoZSBrZXktdmFsdWUgcGFpcnMgZm9yIHRhZ2dpbmcgYW5kIGNhdGVnb3JpemluZyB0aGUgTW9uZ29EQiBkYXRhYmFzZSB1c2VyLiBUaGUgbGFiZWxzIHRoYXQgeW91IGRlZmluZSBkbyBub3QgYXBwZWFyIGluIHRoZSBjb25zb2xlLlxuICAgKlxuICAgKiBAc2NoZW1hIENmbkRhdGFiYXNlVXNlclByb3BzI0xhYmVsc1xuICAgKi9cbiAgcmVhZG9ubHkgbGFiZWxzPzogTGFiZWxEZWZpbml0aW9uW107XG5cbiAgLyoqXG4gICAqIE1ldGhvZCBieSB3aGljaCB0aGUgcHJvdmlkZWQgdXNlcm5hbWUgaXMgYXV0aGVudGljYXRlZC4gRGVmYXVsdCB2YWx1ZSBpcyBgTk9ORWAuXG4gICAqXG4gICAqIEBzY2hlbWEgQ2ZuRGF0YWJhc2VVc2VyUHJvcHMjTGRhcEF1dGhUeXBlXG4gICAqL1xuICByZWFkb25seSBsZGFwQXV0aFR5cGU/OiBDZm5EYXRhYmFzZVVzZXJQcm9wc0xkYXBBdXRoVHlwZTtcblxuICAvKipcbiAgICogTWV0aG9kIHRoYXQgYnJpZWZzIHdobyBvd25zIHRoZSBjZXJ0aWZpY2F0ZSBwcm92aWRlZC4gRGVmYXVsdCB2YWx1ZSBpcyBgTk9ORWAuXG4gICAqXG4gICAqIEBzY2hlbWEgQ2ZuRGF0YWJhc2VVc2VyUHJvcHMjWDUwOVR5cGVcbiAgICovXG4gIHJlYWRvbmx5IHg1MDlUeXBlPzogQ2ZuRGF0YWJhc2VVc2VyUHJvcHNYNTA5VHlwZTtcblxuICAvKipcbiAgICogVGhlIHVzZXLigJlzIHBhc3N3b3JkLiBUaGlzIGZpZWxkIGlzIG5vdCBpbmNsdWRlZCBpbiB0aGUgZW50aXR5IHJldHVybmVkIGZyb20gdGhlIHNlcnZlci5cbiAgICpcbiAgICogQHNjaGVtYSBDZm5EYXRhYmFzZVVzZXJQcm9wcyNQYXNzd29yZFxuICAgKi9cbiAgcmVhZG9ubHkgcGFzc3dvcmQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFVuaXF1ZSAyNC1oZXhhZGVjaW1hbCBkaWdpdCBzdHJpbmcgdGhhdCBpZGVudGlmaWVzIHlvdXIgQXRsYXMgUHJvamVjdC5cbiAgICpcbiAgICogQHNjaGVtYSBDZm5EYXRhYmFzZVVzZXJQcm9wcyNQcm9qZWN0SWRcbiAgICovXG4gIHJlYWRvbmx5IHByb2plY3RJZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBMaXN0IHRoYXQgcHJvdmlkZXMgdGhlIHBhaXJpbmdzIG9mIG9uZSByb2xlIHdpdGggb25lIGFwcGxpY2FibGUgZGF0YWJhc2UuXG4gICAqXG4gICAqIEBzY2hlbWEgQ2ZuRGF0YWJhc2VVc2VyUHJvcHMjUm9sZXNcbiAgICovXG4gIHJlYWRvbmx5IHJvbGVzOiBSb2xlRGVmaW5pdGlvbltdO1xuXG4gIC8qKlxuICAgKiBMaXN0IHRoYXQgY29udGFpbnMgY2x1c3RlcnMgYW5kIE1vbmdvREIgQXRsYXMgRGF0YSBMYWtlcyB0aGF0IHRoaXMgZGF0YWJhc2UgdXNlciBjYW4gYWNjZXNzLiBJZiBvbWl0dGVkLCBNb25nb0RCIENsb3VkIGdyYW50cyB0aGUgZGF0YWJhc2UgdXNlciBhY2Nlc3MgdG8gYWxsIHRoZSBjbHVzdGVycyBhbmQgTW9uZ29EQiBBdGxhcyBEYXRhIExha2VzIGluIHRoZSBwcm9qZWN0LlxuICAgKlxuICAgKiBAc2NoZW1hIENmbkRhdGFiYXNlVXNlclByb3BzI1Njb3Blc1xuICAgKi9cbiAgcmVhZG9ubHkgc2NvcGVzPzogU2NvcGVEZWZpbml0aW9uW107XG5cbiAgLyoqXG4gICAqIEh1bWFuLXJlYWRhYmxlIGxhYmVsIHRoYXQgcmVwcmVzZW50cyB0aGUgdXNlciB0aGF0IGF1dGhlbnRpY2F0ZXMgdG8gTW9uZ29EQi4gVGhlIGZvcm1hdCBvZiB0aGlzIGxhYmVsIGRlcGVuZHMgb24gdGhlIG1ldGhvZCBvZiBhdXRoZW50aWNhdGlvbi4gVGhpcyB3aWxsIGJlIFVTRVJfQVJOIG9yIFJPTEVfQVJOIGlmIEFXU0lBTVR5cGUgaXMgVVNFUiBvciBST0xFLiBSZWZlciBodHRwczovL3d3dy5tb25nb2RiLmNvbS9kb2NzL2F0bGFzL3JlZmVyZW5jZS9hcGktcmVzb3VyY2VzLXNwZWMvI3RhZy9EYXRhYmFzZS1Vc2Vycy9vcGVyYXRpb24vY3JlYXRlRGF0YWJhc2VVc2VyIGZvciBkZXRhaWxzLlxuICAgKlxuICAgKiBAc2NoZW1hIENmbkRhdGFiYXNlVXNlclByb3BzI1VzZXJuYW1lXG4gICAqL1xuICByZWFkb25seSB1c2VybmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBQcm9maWxlIHVzZWQgdG8gcHJvdmlkZSBjcmVkZW50aWFscyBpbmZvcm1hdGlvbiwgKGEgc2VjcmV0IHdpdGggdGhlIGNmbi9hdGxhcy9wcm9maWxlL3tQcm9maWxlfSwgaXMgcmVxdWlyZWQpLCBpZiBub3QgcHJvdmlkZWQgYGRlZmF1bHRgIGlzIHVzZWRcbiAgICpcbiAgICogQHNjaGVtYSBDZm5EYXRhYmFzZVVzZXJQcm9wcyNQcm9maWxlXG4gICAqL1xuICByZWFkb25seSBwcm9maWxlPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIENvbnZlcnRzIGFuIG9iamVjdCBvZiB0eXBlICdDZm5EYXRhYmFzZVVzZXJQcm9wcycgdG8gSlNPTiByZXByZXNlbnRhdGlvbi5cbiAqL1xuLyogZXNsaW50LWRpc2FibGUgbWF4LWxlbiwgcXVvdGUtcHJvcHMgKi9cbmV4cG9ydCBmdW5jdGlvbiB0b0pzb25fQ2ZuRGF0YWJhc2VVc2VyUHJvcHMoXG4gIG9iajogQ2ZuRGF0YWJhc2VVc2VyUHJvcHMgfCB1bmRlZmluZWRcbik6IFJlY29yZDxzdHJpbmcsIGFueT4gfCB1bmRlZmluZWQge1xuICBpZiAob2JqID09PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG4gIGNvbnN0IHJlc3VsdCA9IHtcbiAgICBEZWxldGVBZnRlckRhdGU6IG9iai5kZWxldGVBZnRlckRhdGUsXG4gICAgQVdTSUFNVHlwZTogb2JqLmF3c2lhbVR5cGUsXG4gICAgRGF0YWJhc2VOYW1lOiBvYmouZGF0YWJhc2VOYW1lLFxuICAgIExhYmVsczogb2JqLmxhYmVscz8ubWFwKCh5KSA9PiB0b0pzb25fTGFiZWxEZWZpbml0aW9uKHkpKSxcbiAgICBMZGFwQXV0aFR5cGU6IG9iai5sZGFwQXV0aFR5cGUsXG4gICAgWDUwOVR5cGU6IG9iai54NTA5VHlwZSxcbiAgICBQYXNzd29yZDogb2JqLnBhc3N3b3JkLFxuICAgIFByb2plY3RJZDogb2JqLnByb2plY3RJZCxcbiAgICBSb2xlczogb2JqLnJvbGVzPy5tYXAoKHkpID0+IHRvSnNvbl9Sb2xlRGVmaW5pdGlvbih5KSksXG4gICAgU2NvcGVzOiBvYmouc2NvcGVzPy5tYXAoKHkpID0+IHRvSnNvbl9TY29wZURlZmluaXRpb24oeSkpLFxuICAgIFVzZXJuYW1lOiBvYmoudXNlcm5hbWUsXG4gICAgUHJvZmlsZTogb2JqLnByb2ZpbGUsXG4gIH07XG4gIC8vIGZpbHRlciB1bmRlZmluZWQgdmFsdWVzXG4gIHJldHVybiBPYmplY3QuZW50cmllcyhyZXN1bHQpLnJlZHVjZShcbiAgICAociwgaSkgPT4gKGlbMV0gPT09IHVuZGVmaW5lZCA/IHIgOiB7IC4uLnIsIFtpWzBdXTogaVsxXSB9KSxcbiAgICB7fVxuICApO1xufVxuLyogZXNsaW50LWVuYWJsZSBtYXgtbGVuLCBxdW90ZS1wcm9wcyAqL1xuXG4vKipcbiAqIEh1bWFuLXJlYWRhYmxlIGxhYmVsIHRoYXQgaW5kaWNhdGVzIHdoZXRoZXIgdGhlIG5ldyBkYXRhYmFzZSB1c2VyIGF1dGhlbnRpY2F0ZXMgd2l0aCB0aGUgQW1hem9uIFdlYiBTZXJ2aWNlcyAoQVdTKSBJZGVudGl0eSBhbmQgQWNjZXNzIE1hbmFnZW1lbnQgKElBTSkgY3JlZGVudGlhbHMgYXNzb2NpYXRlZCB3aXRoIHRoZSB1c2VyIG9yIHRoZSB1c2VyJ3Mgcm9sZS4gRGVmYXVsdCB2YWx1ZSBpcyBgTk9ORWAuXG4gKlxuICogQHNjaGVtYSBDZm5EYXRhYmFzZVVzZXJQcm9wc0F3c2lhbVR5cGVcbiAqL1xuZXhwb3J0IGVudW0gQ2ZuRGF0YWJhc2VVc2VyUHJvcHNBd3NpYW1UeXBlIHtcbiAgLyoqIE5PTkUgKi9cbiAgTk9ORSA9IFwiTk9ORVwiLFxuICAvKiogVVNFUiAqL1xuICBVU0VSID0gXCJVU0VSXCIsXG4gIC8qKiBST0xFICovXG4gIFJPTEUgPSBcIlJPTEVcIixcbn1cblxuLyoqXG4gKiBAc2NoZW1hIGxhYmVsRGVmaW5pdGlvblxuICovXG5leHBvcnQgaW50ZXJmYWNlIExhYmVsRGVmaW5pdGlvbiB7XG4gIC8qKlxuICAgKiBAc2NoZW1hIGxhYmVsRGVmaW5pdGlvbiNLZXlcbiAgICovXG4gIHJlYWRvbmx5IGtleT86IHN0cmluZztcblxuICAvKipcbiAgICogQHNjaGVtYSBsYWJlbERlZmluaXRpb24jVmFsdWVcbiAgICovXG4gIHJlYWRvbmx5IHZhbHVlPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIENvbnZlcnRzIGFuIG9iamVjdCBvZiB0eXBlICdMYWJlbERlZmluaXRpb24nIHRvIEpTT04gcmVwcmVzZW50YXRpb24uXG4gKi9cbi8qIGVzbGludC1kaXNhYmxlIG1heC1sZW4sIHF1b3RlLXByb3BzICovXG5leHBvcnQgZnVuY3Rpb24gdG9Kc29uX0xhYmVsRGVmaW5pdGlvbihcbiAgb2JqOiBMYWJlbERlZmluaXRpb24gfCB1bmRlZmluZWRcbik6IFJlY29yZDxzdHJpbmcsIGFueT4gfCB1bmRlZmluZWQge1xuICBpZiAob2JqID09PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG4gIGNvbnN0IHJlc3VsdCA9IHtcbiAgICBLZXk6IG9iai5rZXksXG4gICAgVmFsdWU6IG9iai52YWx1ZSxcbiAgfTtcbiAgLy8gZmlsdGVyIHVuZGVmaW5lZCB2YWx1ZXNcbiAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKHJlc3VsdCkucmVkdWNlKFxuICAgIChyLCBpKSA9PiAoaVsxXSA9PT0gdW5kZWZpbmVkID8gciA6IHsgLi4uciwgW2lbMF1dOiBpWzFdIH0pLFxuICAgIHt9XG4gICk7XG59XG4vKiBlc2xpbnQtZW5hYmxlIG1heC1sZW4sIHF1b3RlLXByb3BzICovXG5cbi8qKlxuICogTWV0aG9kIGJ5IHdoaWNoIHRoZSBwcm92aWRlZCB1c2VybmFtZSBpcyBhdXRoZW50aWNhdGVkLiBEZWZhdWx0IHZhbHVlIGlzIGBOT05FYC5cbiAqXG4gKiBAc2NoZW1hIENmbkRhdGFiYXNlVXNlclByb3BzTGRhcEF1dGhUeXBlXG4gKi9cbmV4cG9ydCBlbnVtIENmbkRhdGFiYXNlVXNlclByb3BzTGRhcEF1dGhUeXBlIHtcbiAgLyoqIE5PTkUgKi9cbiAgTk9ORSA9IFwiTk9ORVwiLFxuICAvKiogVVNFUiAqL1xuICBVU0VSID0gXCJVU0VSXCIsXG4gIC8qKiBHUk9VUCAqL1xuICBHUk9VUCA9IFwiR1JPVVBcIixcbn1cblxuLyoqXG4gKiBNZXRob2QgdGhhdCBicmllZnMgd2hvIG93bnMgdGhlIGNlcnRpZmljYXRlIHByb3ZpZGVkLiBEZWZhdWx0IHZhbHVlIGlzIGBOT05FYC5cbiAqXG4gKiBAc2NoZW1hIENmbkRhdGFiYXNlVXNlclByb3BzWDUwOVR5cGVcbiAqL1xuZXhwb3J0IGVudW0gQ2ZuRGF0YWJhc2VVc2VyUHJvcHNYNTA5VHlwZSB7XG4gIC8qKiBOT05FICovXG4gIE5PTkUgPSBcIk5PTkVcIixcbiAgLyoqIE1BTkFHRUQgKi9cbiAgTUFOQUdFRCA9IFwiTUFOQUdFRFwiLFxuICAvKiogQ1VTVE9NRVIgKi9cbiAgQ1VTVE9NRVIgPSBcIkNVU1RPTUVSXCIsXG59XG5cbi8qKlxuICogQHNjaGVtYSByb2xlRGVmaW5pdGlvblxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJvbGVEZWZpbml0aW9uIHtcbiAgLyoqXG4gICAqIEBzY2hlbWEgcm9sZURlZmluaXRpb24jQ29sbGVjdGlvbk5hbWVcbiAgICovXG4gIHJlYWRvbmx5IGNvbGxlY3Rpb25OYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAc2NoZW1hIHJvbGVEZWZpbml0aW9uI0RhdGFiYXNlTmFtZVxuICAgKi9cbiAgcmVhZG9ubHkgZGF0YWJhc2VOYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAc2NoZW1hIHJvbGVEZWZpbml0aW9uI1JvbGVOYW1lXG4gICAqL1xuICByZWFkb25seSByb2xlTmFtZT86IHN0cmluZztcbn1cblxuLyoqXG4gKiBDb252ZXJ0cyBhbiBvYmplY3Qgb2YgdHlwZSAnUm9sZURlZmluaXRpb24nIHRvIEpTT04gcmVwcmVzZW50YXRpb24uXG4gKi9cbi8qIGVzbGludC1kaXNhYmxlIG1heC1sZW4sIHF1b3RlLXByb3BzICovXG5leHBvcnQgZnVuY3Rpb24gdG9Kc29uX1JvbGVEZWZpbml0aW9uKFxuICBvYmo6IFJvbGVEZWZpbml0aW9uIHwgdW5kZWZpbmVkXG4pOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IHwgdW5kZWZpbmVkIHtcbiAgaWYgKG9iaiA9PT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuICBjb25zdCByZXN1bHQgPSB7XG4gICAgQ29sbGVjdGlvbk5hbWU6IG9iai5jb2xsZWN0aW9uTmFtZSxcbiAgICBEYXRhYmFzZU5hbWU6IG9iai5kYXRhYmFzZU5hbWUsXG4gICAgUm9sZU5hbWU6IG9iai5yb2xlTmFtZSxcbiAgfTtcbiAgLy8gZmlsdGVyIHVuZGVmaW5lZCB2YWx1ZXNcbiAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKHJlc3VsdCkucmVkdWNlKFxuICAgIChyLCBpKSA9PiAoaVsxXSA9PT0gdW5kZWZpbmVkID8gciA6IHsgLi4uciwgW2lbMF1dOiBpWzFdIH0pLFxuICAgIHt9XG4gICk7XG59XG4vKiBlc2xpbnQtZW5hYmxlIG1heC1sZW4sIHF1b3RlLXByb3BzICovXG5cbi8qKlxuICogQHNjaGVtYSBzY29wZURlZmluaXRpb25cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTY29wZURlZmluaXRpb24ge1xuICAvKipcbiAgICogQHNjaGVtYSBzY29wZURlZmluaXRpb24jTmFtZVxuICAgKi9cbiAgcmVhZG9ubHkgbmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogQHNjaGVtYSBzY29wZURlZmluaXRpb24jVHlwZVxuICAgKi9cbiAgcmVhZG9ubHkgdHlwZT86IFNjb3BlRGVmaW5pdGlvblR5cGU7XG59XG5cbi8qKlxuICogQ29udmVydHMgYW4gb2JqZWN0IG9mIHR5cGUgJ1Njb3BlRGVmaW5pdGlvbicgdG8gSlNPTiByZXByZXNlbnRhdGlvbi5cbiAqL1xuLyogZXNsaW50LWRpc2FibGUgbWF4LWxlbiwgcXVvdGUtcHJvcHMgKi9cbmV4cG9ydCBmdW5jdGlvbiB0b0pzb25fU2NvcGVEZWZpbml0aW9uKFxuICBvYmo6IFNjb3BlRGVmaW5pdGlvbiB8IHVuZGVmaW5lZFxuKTogUmVjb3JkPHN0cmluZywgYW55PiB8IHVuZGVmaW5lZCB7XG4gIGlmIChvYmogPT09IHVuZGVmaW5lZCkge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbiAgY29uc3QgcmVzdWx0ID0ge1xuICAgIE5hbWU6IG9iai5uYW1lLFxuICAgIFR5cGU6IG9iai50eXBlLFxuICB9O1xuICAvLyBmaWx0ZXIgdW5kZWZpbmVkIHZhbHVlc1xuICByZXR1cm4gT2JqZWN0LmVudHJpZXMocmVzdWx0KS5yZWR1Y2UoXG4gICAgKHIsIGkpID0+IChpWzFdID09PSB1bmRlZmluZWQgPyByIDogeyAuLi5yLCBbaVswXV06IGlbMV0gfSksXG4gICAge31cbiAgKTtcbn1cbi8qIGVzbGludC1lbmFibGUgbWF4LWxlbiwgcXVvdGUtcHJvcHMgKi9cblxuLyoqXG4gKiBAc2NoZW1hIFNjb3BlRGVmaW5pdGlvblR5cGVcbiAqL1xuZXhwb3J0IGVudW0gU2NvcGVEZWZpbml0aW9uVHlwZSB7XG4gIC8qKiBDTFVTVEVSICovXG4gIENMVVNURVIgPSBcIkNMVVNURVJcIixcbiAgLyoqIERBVEFfTEFLRSAqL1xuICBEQVRBX0xBS0UgPSBcIkRBVEFfTEFLRVwiLFxufVxuXG4vKipcbiAqIEEgQ2xvdWRGb3JtYXRpb24gYE1vbmdvREI6OkF0bGFzOjpEYXRhYmFzZVVzZXJgXG4gKlxuICogQGNsb3VkZm9ybWF0aW9uUmVzb3VyY2UgTW9uZ29EQjo6QXRsYXM6OkRhdGFiYXNlVXNlclxuICogQHN0YWJpbGl0eSBleHRlcm5hbFxuICovXG5leHBvcnQgY2xhc3MgQ2ZuRGF0YWJhc2VVc2VyIGV4dGVuZHMgY2RrLkNmblJlc291cmNlIHtcbiAgLyoqXG4gICAqIFRoZSBDbG91ZEZvcm1hdGlvbiByZXNvdXJjZSB0eXBlIG5hbWUgZm9yIHRoaXMgcmVzb3VyY2UgY2xhc3MuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IENGTl9SRVNPVVJDRV9UWVBFX05BTUUgPVxuICAgIFwiTW9uZ29EQjo6QXRsYXM6OkRhdGFiYXNlVXNlclwiO1xuXG4gIC8qKlxuICAgKiBSZXNvdXJjZSBwcm9wcy5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBwcm9wczogQ2ZuRGF0YWJhc2VVc2VyUHJvcHM7XG5cbiAgLyoqXG4gICAqIEF0dHJpYnV0ZSBgTW9uZ29EQjo6QXRsYXM6OkRhdGFiYXNlVXNlci5Vc2VyQ0ZOSWRlbnRpZmllcmBcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBhdHRyVXNlckNGTklkZW50aWZpZXI6IHN0cmluZztcblxuICAvKipcbiAgICogQ3JlYXRlIGEgbmV3IGBNb25nb0RCOjpBdGxhczo6RGF0YWJhc2VVc2VyYC5cbiAgICpcbiAgICogQHBhcmFtIHNjb3BlIC0gc2NvcGUgaW4gd2hpY2ggdGhpcyByZXNvdXJjZSBpcyBkZWZpbmVkXG4gICAqIEBwYXJhbSBpZCAgICAtIHNjb3BlZCBpZCBvZiB0aGUgcmVzb3VyY2VcbiAgICogQHBhcmFtIHByb3BzIC0gcmVzb3VyY2UgcHJvcGVydGllc1xuICAgKi9cbiAgY29uc3RydWN0b3IoXG4gICAgc2NvcGU6IGNvbnN0cnVjdHMuQ29uc3RydWN0LFxuICAgIGlkOiBzdHJpbmcsXG4gICAgcHJvcHM6IENmbkRhdGFiYXNlVXNlclByb3BzXG4gICkge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwge1xuICAgICAgdHlwZTogQ2ZuRGF0YWJhc2VVc2VyLkNGTl9SRVNPVVJDRV9UWVBFX05BTUUsXG4gICAgICBwcm9wZXJ0aWVzOiB0b0pzb25fQ2ZuRGF0YWJhc2VVc2VyUHJvcHMocHJvcHMpISxcbiAgICB9KTtcblxuICAgIHRoaXMucHJvcHMgPSBwcm9wcztcblxuICAgIHRoaXMuYXR0clVzZXJDRk5JZGVudGlmaWVyID0gY2RrLlRva2VuLmFzU3RyaW5nKFxuICAgICAgdGhpcy5nZXRBdHQoXCJVc2VyQ0ZOSWRlbnRpZmllclwiKVxuICAgICk7XG4gIH1cbn1cbiJdfQ==