UNPKG

awscdk-resources-mongodbatlas

Version:

MongoDB Atlas CDK Construct Library for AWS CloudFormation Resources

94 lines 15 kB
"use strict"; var _a; Object.defineProperty(exports, "__esModule", { value: true }); exports.CfnResourcePolicy = void 0; exports.toJson_CfnResourcePolicyProps = toJson_CfnResourcePolicyProps; exports.toJson_ApiAtlasUserMetadata = toJson_ApiAtlasUserMetadata; exports.toJson_ApiAtlasPolicy = toJson_ApiAtlasPolicy; const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti"); // Generated by cdk-import const cdk = require("aws-cdk-lib"); /** * Converts an object of type 'CfnResourcePolicyProps' to JSON representation. */ /* eslint-disable max-len, quote-props */ function toJson_CfnResourcePolicyProps(obj) { if (obj === undefined) { return undefined; } const result = { CreatedByUser: toJson_ApiAtlasUserMetadata(obj.createdByUser), LastUpdatedByUser: toJson_ApiAtlasUserMetadata(obj.lastUpdatedByUser), Name: obj.name, OrgId: obj.orgId, Policies: obj.policies?.map((y) => toJson_ApiAtlasPolicy(y)), Profile: obj.profile, }; // filter undefined values return Object.entries(result).reduce((r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }), {}); } /** * Converts an object of type 'ApiAtlasUserMetadata' to JSON representation. */ /* eslint-disable max-len, quote-props */ function toJson_ApiAtlasUserMetadata(obj) { if (obj === undefined) { return undefined; } const result = { Id: obj.id, Name: obj.name, }; // filter undefined values return Object.entries(result).reduce((r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }), {}); } /** * Converts an object of type 'ApiAtlasPolicy' to JSON representation. */ /* eslint-disable max-len, quote-props */ function toJson_ApiAtlasPolicy(obj) { if (obj === undefined) { return undefined; } const result = { Body: obj.body, Id: obj.id, }; // 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::ResourcePolicy` * * @cloudformationResource MongoDB::Atlas::ResourcePolicy * @stability external */ class CfnResourcePolicy extends cdk.CfnResource { /** * Create a new `MongoDB::Atlas::ResourcePolicy`. * * @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: CfnResourcePolicy.CFN_RESOURCE_TYPE_NAME, properties: toJson_CfnResourcePolicyProps(props), }); this.props = props; this.attrCreatedDate = cdk.Token.asString(this.getAtt("CreatedDate")); this.attrId = cdk.Token.asString(this.getAtt("Id")); this.attrLastUpdatedDate = cdk.Token.asString(this.getAtt("LastUpdatedDate")); this.attrVersion = cdk.Token.asString(this.getAtt("Version")); } } exports.CfnResourcePolicy = CfnResourcePolicy; _a = JSII_RTTI_SYMBOL_1; CfnResourcePolicy[_a] = { fqn: "awscdk-resources-mongodbatlas.CfnResourcePolicy", version: "3.10.0" }; /** * The CloudFormation resource type name for this resource class. */ CfnResourcePolicy.CFN_RESOURCE_TYPE_NAME = "MongoDB::Atlas::ResourcePolicy"; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbDEtcmVzb3VyY2VzL3Jlc291cmNlLXBvbGljeS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBeURBLHNFQW1CQztBQTBCRCxrRUFlQztBQTBCRCxzREFlQzs7QUE5SkQsMEJBQTBCO0FBQzFCLG1DQUFtQztBQW9EbkM7O0dBRUc7QUFDSCx5Q0FBeUM7QUFDekMsU0FBZ0IsNkJBQTZCLENBQzNDLEdBQXVDO0lBRXZDLElBQUksR0FBRyxLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQ3RCLE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFDRCxNQUFNLE1BQU0sR0FBRztRQUNiLGFBQWEsRUFBRSwyQkFBMkIsQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDO1FBQzdELGlCQUFpQixFQUFFLDJCQUEyQixDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQztRQUNyRSxJQUFJLEVBQUUsR0FBRyxDQUFDLElBQUk7UUFDZCxLQUFLLEVBQUUsR0FBRyxDQUFDLEtBQUs7UUFDaEIsUUFBUSxFQUFFLEdBQUcsQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM1RCxPQUFPLEVBQUUsR0FBRyxDQUFDLE9BQU87S0FDckIsQ0FBQztJQUNGLDBCQUEwQjtJQUMxQixPQUFPLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxDQUNsQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFF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Ly8gR2VuZXJhdGVkIGJ5IGNkay1pbXBvcnRcbmltcG9ydCAqIGFzIGNkayBmcm9tIFwiYXdzLWNkay1saWJcIjtcbmltcG9ydCAqIGFzIGNvbnN0cnVjdHMgZnJvbSBcImNvbnN0cnVjdHNcIjtcblxuLyoqXG4gKiBBdGxhcyBSZXNvdXJjZSBQb2xpY2llc1xuICpcbiAqIEBzY2hlbWEgQ2ZuUmVzb3VyY2VQb2xpY3lQcm9wc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIENmblJlc291cmNlUG9saWN5UHJvcHMge1xuICAvKipcbiAgICogVGhlIHVzZXIgdGhhdCBsYXN0IHVwZGF0ZWQgdGhlIGF0bGFzIHJlc291cmNlIHBvbGljeS5cbiAgICpcbiAgICogQHNjaGVtYSBDZm5SZXNvdXJjZVBvbGljeVByb3BzI0NyZWF0ZWRCeVVzZXJcbiAgICovXG4gIHJlYWRvbmx5IGNyZWF0ZWRCeVVzZXI/OiBBcGlBdGxhc1VzZXJNZXRhZGF0YTtcblxuICAvKipcbiAgICogVGhlIHVzZXIgdGhhdCBsYXN0IHVwZGF0ZWQgdGhlIGF0bGFzIHJlc291cmNlIHBvbGljeS5cbiAgICpcbiAgICogQHNjaGVtYSBDZm5SZXNvdXJjZVBvbGljeVByb3BzI0xhc3RVcGRhdGVkQnlVc2VyXG4gICAqL1xuICByZWFkb25seSBsYXN0VXBkYXRlZEJ5VXNlcj86IEFwaUF0bGFzVXNlck1ldGFkYXRhO1xuXG4gIC8qKlxuICAgKiBIdW1hbi1yZWFkYWJsZSBsYWJlbCB0aGF0IGRlc2NyaWJlcyB0aGUgYXRsYXMgcmVzb3VyY2UgcG9saWN5LlxuICAgKlxuICAgKiBAc2NoZW1hIENmblJlc291cmNlUG9saWN5UHJvcHMjTmFtZVxuICAgKi9cbiAgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBVbmlxdWUgMjQtaGV4YWRlY2ltYWwgZGlnaXQgc3RyaW5nIHRoYXQgaWRlbnRpZmllcyB0aGUgb3JnYW5pemF0aW9uIHRoYXQgY29udGFpbnMgeW91ciBwcm9qZWN0cy4gVXNlIHRoZSBbL29yZ3NdKCN0YWcvT3JnYW5pemF0aW9ucy9vcGVyYXRpb24vbGlzdE9yZ2FuaXphdGlvbnMpIGVuZHBvaW50IHRvIHJldHJpZXZlIGFsbCBvcmdhbml6YXRpb25zIHRvIHdoaWNoIHRoZSBhdXRoZW50aWNhdGVkIHVzZXIgaGFzIGFjY2Vzcy5cbiAgICpcbiAgICogQHNjaGVtYSBDZm5SZXNvdXJjZVBvbGljeVByb3BzI09yZ0lkXG4gICAqL1xuICByZWFkb25seSBvcmdJZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBMaXN0IG9mIHBvbGljaWVzIHRoYXQgbWFrZSB1cCB0aGUgYXRsYXMgcmVzb3VyY2UgcG9saWN5LlxuICAgKlxuICAgKiBAc2NoZW1hIENmblJlc291cmNlUG9saWN5UHJvcHMjUG9saWNpZXNcbiAgICovXG4gIHJlYWRvbmx5IHBvbGljaWVzOiBBcGlBdGxhc1BvbGljeVtdO1xuXG4gIC8qKlxuICAgKiBQcm9maWxlIHVzZWQgdG8gcHJvdmlkZSBjcmVkZW50aWFscyBpbmZvcm1hdGlvbiwgKGEgc2VjcmV0IHdpdGggdGhlIGNmbi9hdGxhcy9wcm9maWxlL3tQcm9maWxlfSwgaXMgcmVxdWlyZWQpLCBpZiBub3QgcHJvdmlkZWQgZGVmYXVsdCBpcyB1c2VkXG4gICAqXG4gICAqIEBzY2hlbWEgQ2ZuUmVzb3VyY2VQb2xpY3lQcm9wcyNQcm9maWxlXG4gICAqL1xuICByZWFkb25seSBwcm9maWxlPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIENvbnZlcnRzIGFuIG9iamVjdCBvZiB0eXBlICdDZm5SZXNvdXJjZVBvbGljeVByb3BzJyB0byBKU09OIHJlcHJlc2VudGF0aW9uLlxuICovXG4vKiBlc2xpbnQtZGlzYWJsZSBtYXgtbGVuLCBxdW90ZS1wcm9wcyAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvSnNvbl9DZm5SZXNvdXJjZVBvbGljeVByb3BzKFxuICBvYmo6IENmblJlc291cmNlUG9saWN5UHJvcHMgfCB1bmRlZmluZWRcbik6IFJlY29yZDxzdHJpbmcsIGFueT4gfCB1bmRlZmluZWQge1xuICBpZiAob2JqID09PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG4gIGNvbnN0IHJlc3VsdCA9IHtcbiAgICBDcmVhdGVkQnlVc2VyOiB0b0pzb25fQXBpQXRsYXNVc2VyTWV0YWRhdGEob2JqLmNyZWF0ZWRCeVVzZXIpLFxuICAgIExhc3RVcGRhdGVkQnlVc2VyOiB0b0pzb25fQXBpQXRsYXNVc2VyTWV0YWRhdGEob2JqLmxhc3RVcGRhdGVkQnlVc2VyKSxcbiAgICBOYW1lOiBvYmoubmFtZSxcbiAgICBPcmdJZDogb2JqLm9yZ0lkLFxuICAgIFBvbGljaWVzOiBvYmoucG9saWNpZXM/Lm1hcCgoeSkgPT4gdG9Kc29uX0FwaUF0bGFzUG9saWN5KHkpKSxcbiAgICBQcm9maWxlOiBvYmoucHJvZmlsZSxcbiAgfTtcbiAgLy8gZmlsdGVyIHVuZGVmaW5lZCB2YWx1ZXNcbiAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKHJlc3VsdCkucmVkdWNlKFxuICAgIChyLCBpKSA9PiAoaVsxXSA9PT0gdW5kZWZpbmVkID8gciA6IHsgLi4uciwgW2lbMF1dOiBpWzFdIH0pLFxuICAgIHt9XG4gICk7XG59XG4vKiBlc2xpbnQtZW5hYmxlIG1heC1sZW4sIHF1b3RlLXByb3BzICovXG5cbi8qKlxuICogQHNjaGVtYSBBcGlBdGxhc1VzZXJNZXRhZGF0YVxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFwaUF0bGFzVXNlck1ldGFkYXRhIHtcbiAgLyoqXG4gICAqIFVuaXF1ZSAyNC1oZXhhZGVjaW1hbCBjaGFyYWN0ZXIgc3RyaW5nIHRoYXQgaWRlbnRpZmllcyBhIHVzZXIuXG4gICAqXG4gICAqIEBzY2hlbWEgQXBpQXRsYXNVc2VyTWV0YWRhdGEjSWRcbiAgICovXG4gIHJlYWRvbmx5IGlkPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBIdW1hbi1yZWFkYWJsZSBsYWJlbCB0aGF0IGRlc2NyaWJlcyBhIHVzZXIuXG4gICAqXG4gICAqIEBzY2hlbWEgQXBpQXRsYXNVc2VyTWV0YWRhdGEjTmFtZVxuICAgKi9cbiAgcmVhZG9ubHkgbmFtZT86IHN0cmluZztcbn1cblxuLyoqXG4gKiBDb252ZXJ0cyBhbiBvYmplY3Qgb2YgdHlwZSAnQXBpQXRsYXNVc2VyTWV0YWRhdGEnIHRvIEpTT04gcmVwcmVzZW50YXRpb24uXG4gKi9cbi8qIGVzbGludC1kaXNhYmxlIG1heC1sZW4sIHF1b3RlLXByb3BzICovXG5leHBvcnQgZnVuY3Rpb24gdG9Kc29uX0FwaUF0bGFzVXNlck1ldGFkYXRhKFxuICBvYmo6IEFwaUF0bGFzVXNlck1ldGFkYXRhIHwgdW5kZWZpbmVkXG4pOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IHwgdW5kZWZpbmVkIHtcbiAgaWYgKG9iaiA9PT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuICBjb25zdCByZXN1bHQgPSB7XG4gICAgSWQ6IG9iai5pZCxcbiAgICBOYW1lOiBvYmoubmFtZSxcbiAgfTtcbiAgLy8gZmlsdGVyIHVuZGVmaW5lZCB2YWx1ZXNcbiAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKHJlc3VsdCkucmVkdWNlKFxuICAgIChyLCBpKSA9PiAoaVsxXSA9PT0gdW5kZWZpbmVkID8gciA6IHsgLi4uciwgW2lbMF1dOiBpWzFdIH0pLFxuICAgIHt9XG4gICk7XG59XG4vKiBlc2xpbnQtZW5hYmxlIG1heC1sZW4sIHF1b3RlLXByb3BzICovXG5cbi8qKlxuICogQHNjaGVtYSBBcGlBdGxhc1BvbGljeVxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFwaUF0bGFzUG9saWN5IHtcbiAgLyoqXG4gICAqIEEgc3RyaW5nIHRoYXQgZGVmaW5lcyB0aGUgcGVybWlzc2lvbnMgZm9yIHRoZSBwb2xpY3kuIFRoZSBzeW50YXggdXNlZCBpcyB0aGUgQ2VkYXIgUG9saWN5IGxhbmd1YWdlLlxuICAgKlxuICAgKiBAc2NoZW1hIEFwaUF0bGFzUG9saWN5I0JvZHlcbiAgICovXG4gIHJlYWRvbmx5IGJvZHk6IHN0cmluZztcblxuICAvKipcbiAgICogVW5pcXVlIDI0LWhleGFkZWNpbWFsIGNoYXJhY3RlciBzdHJpbmcgdGhhdCBpZGVudGlmaWVzIHRoZSBwb2xpY3kuXG4gICAqXG4gICAqIEBzY2hlbWEgQXBpQXRsYXNQb2xpY3kjSWRcbiAgICovXG4gIHJlYWRvbmx5IGlkPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIENvbnZlcnRzIGFuIG9iamVjdCBvZiB0eXBlICdBcGlBdGxhc1BvbGljeScgdG8gSlNPTiByZXByZXNlbnRhdGlvbi5cbiAqL1xuLyogZXNsaW50LWRpc2FibGUgbWF4LWxlbiwgcXVvdGUtcHJvcHMgKi9cbmV4cG9ydCBmdW5jdGlvbiB0b0pzb25fQXBpQXRsYXNQb2xpY3koXG4gIG9iajogQXBpQXRsYXNQb2xpY3kgfCB1bmRlZmluZWRcbik6IFJlY29yZDxzdHJpbmcsIGFueT4gfCB1bmRlZmluZWQge1xuICBpZiAob2JqID09PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG4gIGNvbnN0IHJlc3VsdCA9IHtcbiAgICBCb2R5OiBvYmouYm9keSxcbiAgICBJZDogb2JqLmlkLFxuICB9O1xuICAvLyBmaWx0ZXIgdW5kZWZpbmVkIHZhbHVlc1xuICByZXR1cm4gT2JqZWN0LmVudHJpZXMocmVzdWx0KS5yZWR1Y2UoXG4gICAgKHIsIGkpID0+IChpWzFdID09PSB1bmRlZmluZWQgPyByIDogeyAuLi5yLCBbaVswXV06IGlbMV0gfSksXG4gICAge31cbiAgKTtcbn1cbi8qIGVzbGludC1lbmFibGUgbWF4LWxlbiwgcXVvdGUtcHJvcHMgKi9cblxuLyoqXG4gKiBBIENsb3VkRm9ybWF0aW9uIGBNb25nb0RCOjpBdGxhczo6UmVzb3VyY2VQb2xpY3lgXG4gKlxuICogQGNsb3VkZm9ybWF0aW9uUmVzb3VyY2UgTW9uZ29EQjo6QXRsYXM6OlJlc291cmNlUG9saWN5XG4gKiBAc3RhYmlsaXR5IGV4dGVybmFsXG4gKi9cbmV4cG9ydCBjbGFzcyBDZm5SZXNvdXJjZVBvbGljeSBleHRlbmRzIGNkay5DZm5SZXNvdXJjZSB7XG4gIC8qKlxuICAgKiBUaGUgQ2xvdWRGb3JtYXRpb24gcmVzb3VyY2UgdHlwZSBuYW1lIGZvciB0aGlzIHJlc291cmNlIGNsYXNzLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBDRk5fUkVTT1VSQ0VfVFlQRV9OQU1FID1cbiAgICBcIk1vbmdvREI6OkF0bGFzOjpSZXNvdXJjZVBvbGljeVwiO1xuXG4gIC8qKlxuICAgKiBSZXNvdXJjZSBwcm9wcy5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBwcm9wczogQ2ZuUmVzb3VyY2VQb2xpY3lQcm9wcztcblxuICAvKipcbiAgICogQXR0cmlidXRlIGBNb25nb0RCOjpBdGxhczo6UmVzb3VyY2VQb2xpY3kuQ3JlYXRlZERhdGVgXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgYXR0ckNyZWF0ZWREYXRlOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBBdHRyaWJ1dGUgYE1vbmdvREI6OkF0bGFzOjpSZXNvdXJjZVBvbGljeS5JZGBcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBhdHRySWQ6IHN0cmluZztcbiAgLyoqXG4gICAqIEF0dHJpYnV0ZSBgTW9uZ29EQjo6QXRsYXM6OlJlc291cmNlUG9saWN5Lkxhc3RVcGRhdGVkRGF0ZWBcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBhdHRyTGFzdFVwZGF0ZWREYXRlOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBBdHRyaWJ1dGUgYE1vbmdvREI6OkF0bGFzOjpSZXNvdXJjZVBvbGljeS5WZXJzaW9uYFxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGF0dHJWZXJzaW9uOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIG5ldyBgTW9uZ29EQjo6QXRsYXM6OlJlc291cmNlUG9saWN5YC5cbiAgICpcbiAgICogQHBhcmFtIHNjb3BlIC0gc2NvcGUgaW4gd2hpY2ggdGhpcyByZXNvdXJjZSBpcyBkZWZpbmVkXG4gICAqIEBwYXJhbSBpZCAgICAtIHNjb3BlZCBpZCBvZiB0aGUgcmVzb3VyY2VcbiAgICogQHBhcmFtIHByb3BzIC0gcmVzb3VyY2UgcHJvcGVydGllc1xuICAgKi9cbiAgY29uc3RydWN0b3IoXG4gICAgc2NvcGU6IGNvbnN0cnVjdHMuQ29uc3RydWN0LFxuICAgIGlkOiBzdHJpbmcsXG4gICAgcHJvcHM6IENmblJlc291cmNlUG9saWN5UHJvcHNcbiAgKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCB7XG4gICAgICB0eXBlOiBDZm5SZXNvdXJjZVBvbGljeS5DRk5fUkVTT1VSQ0VfVFlQRV9OQU1FLFxuICAgICAgcHJvcGVydGllczogdG9Kc29uX0NmblJlc291cmNlUG9saWN5UHJvcHMocHJvcHMpISxcbiAgICB9KTtcblxuICAgIHRoaXMucHJvcHMgPSBwcm9wcztcblxuICAgIHRoaXMuYXR0ckNyZWF0ZWREYXRlID0gY2RrLlRva2VuLmFzU3RyaW5nKHRoaXMuZ2V0QXR0KFwiQ3JlYXRlZERhdGVcIikpO1xuICAgIHRoaXMuYXR0cklkID0gY2RrLlRva2VuLmFzU3RyaW5nKHRoaXMuZ2V0QXR0KFwiSWRcIikpO1xuICAgIHRoaXMuYXR0ckxhc3RVcGRhdGVkRGF0ZSA9IGNkay5Ub2tlbi5hc1N0cmluZyhcbiAgICAgIHRoaXMuZ2V0QXR0KFwiTGFzdFVwZGF0ZWREYXRlXCIpXG4gICAgKTtcbiAgICB0aGlzLmF0dHJWZXJzaW9uID0gY2RrLlRva2VuLmFzU3RyaW5nKHRoaXMuZ2V0QXR0KFwiVmVyc2lvblwiKSk7XG4gIH1cbn1cbiJdfQ==