UNPKG

awscdk-resources-mongodbatlas

Version:

MongoDB Atlas CDK Construct Library for AWS CloudFormation Resources

106 lines 16 kB
"use strict"; var _a; Object.defineProperty(exports, "__esModule", { value: true }); exports.CfnCustomDbRole = void 0; exports.toJson_CfnCustomDbRoleProps = toJson_CfnCustomDbRoleProps; exports.toJson_Action = toJson_Action; exports.toJson_InheritedRole = toJson_InheritedRole; exports.toJson_Resource = toJson_Resource; const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti"); // Generated by cdk-import const cdk = require("aws-cdk-lib"); /** * Converts an object of type 'CfnCustomDbRoleProps' to JSON representation. */ /* eslint-disable max-len, quote-props */ function toJson_CfnCustomDbRoleProps(obj) { if (obj === undefined) { return undefined; } const result = { ProjectId: obj.projectId, Actions: obj.actions?.map((y) => toJson_Action(y)), InheritedRoles: obj.inheritedRoles?.map((y) => toJson_InheritedRole(y)), RoleName: obj.roleName, 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 'Action' to JSON representation. */ /* eslint-disable max-len, quote-props */ function toJson_Action(obj) { if (obj === undefined) { return undefined; } const result = { Action: obj.action, Resources: obj.resources?.map((y) => toJson_Resource(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 'InheritedRole' to JSON representation. */ /* eslint-disable max-len, quote-props */ function toJson_InheritedRole(obj) { if (obj === undefined) { return undefined; } const result = { Db: obj.db, Role: obj.role, }; // filter undefined values return Object.entries(result).reduce((r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }), {}); } /** * Converts an object of type 'Resource' to JSON representation. */ /* eslint-disable max-len, quote-props */ function toJson_Resource(obj) { if (obj === undefined) { return undefined; } const result = { Collection: obj.collection, DB: obj.db, Cluster: obj.cluster, }; // 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::CustomDBRole` * * @cloudformationResource MongoDB::Atlas::CustomDBRole * @stability external */ class CfnCustomDbRole extends cdk.CfnResource { /** * Create a new `MongoDB::Atlas::CustomDBRole`. * * @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: CfnCustomDbRole.CFN_RESOURCE_TYPE_NAME, properties: toJson_CfnCustomDbRoleProps(props), }); this.props = props; } } exports.CfnCustomDbRole = CfnCustomDbRole; _a = JSII_RTTI_SYMBOL_1; CfnCustomDbRole[_a] = { fqn: "awscdk-resources-mongodbatlas.CfnCustomDbRole", version: "3.13.0" }; /** * The CloudFormation resource type name for this resource class. */ CfnCustomDbRole.CFN_RESOURCE_TYPE_NAME = "MongoDB::Atlas::CustomDBRole"; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbDEtcmVzb3VyY2VzL2N1c3RvbS1kYi1yb2xlL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFrREEsa0VBa0JDO0FBMEJELHNDQWVDO0FBc0JELG9EQWVDO0FBbUNELDBDQWdCQzs7QUFyTUQsMEJBQTBCO0FBQzFCLG1DQUFtQztBQTZDbkM7O0dBRUc7QUFDSCx5Q0FBeUM7QUFDekMsU0FBZ0IsMkJBQTJCLENBQ3pDLEdBQXFDO0lBRXJDLElBQUksR0FBRyxLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQ3RCLE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFDRCxNQUFNLE1BQU0sR0FBRztRQUNiLFNBQVMsRUFBRSxHQUFHLENBQUMsU0FBUztRQUN4QixPQUFPLEVBQUUsR0FBRyxDQUFDLE9BQU8sRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNsRCxjQUFjLEVBQUUsR0FBRyxDQUFDLGNBQWMsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLG9CQUFvQixDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3ZFLFFBQVEsRUFBRSxHQUFHLENBQUMsUUFBUTtRQUN0QixPQUFPLEVBQUUsR0FBRyxDQUFDLE9BQU87S0FDckIsQ0FBQztJQUNGLDBCQUEwQjtJQUMxQixPQUFPLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxDQUNsQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMs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QUU7WUFDZixJQUFJLEVBQUUsZUFBZSxDQUFDLHNCQUFzQjtZQUM1QyxVQUFVLEVBQUUsMkJBQTJCLENBQUMsS0FBSyxDQUFFO1NBQ2hELENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO0lBQ3JCLENBQUM7O0FBOUJILDBDQStCQzs7O0FBOUJDOztHQUVHO0FBQ29CLHNDQUFzQixHQUMzQyw4QkFBOEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIEdlbmVyYXRlZCBieSBjZGstaW1wb3J0XG5pbXBvcnQgKiBhcyBjZGsgZnJvbSBcImF3cy1jZGstbGliXCI7XG5pbXBvcnQgKiBhcyBjb25zdHJ1Y3RzIGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5cbi8qKlxuICogUmV0dXJucywgYWRkcywgZWRpdHMsIGFuZCByZW1vdmVzIGN1c3RvbSBkYXRhYmFzZSB1c2VyIHByaXZpbGVnZSByb2xlcy5cbiAqXG4gKiBAc2NoZW1hIENmbkN1c3RvbURiUm9sZVByb3BzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ2ZuQ3VzdG9tRGJSb2xlUHJvcHMge1xuICAvKipcbiAgICogVW5pcXVlIDI0LWhleGFkZWNpbWFsIGRpZ2l0IHN0cmluZyB0aGF0IGlkZW50aWZpZXMgeW91ciBwcm9qZWN0LlxuICAgKlxuICAgKiBAc2NoZW1hIENmbkN1c3RvbURiUm9sZVByb3BzI1Byb2plY3RJZFxuICAgKi9cbiAgcmVhZG9ubHkgcHJvamVjdElkOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIExpc3Qgb2YgdGhlIGluZGl2aWR1YWwgcHJpdmlsZWdlIGFjdGlvbnMgdGhhdCB0aGUgcm9sZSBncmFudHMuXG4gICAqXG4gICAqIEBzY2hlbWEgQ2ZuQ3VzdG9tRGJSb2xlUHJvcHMjQWN0aW9uc1xuICAgKi9cbiAgcmVhZG9ubHkgYWN0aW9ucz86IEFjdGlvbltdO1xuXG4gIC8qKlxuICAgKiBMaXN0IG9mIHRoZSBidWlsdC1pbiByb2xlcyB0aGF0IHRoaXMgY3VzdG9tIHJvbGUgaW5oZXJpdHMuXG4gICAqXG4gICAqIEBzY2hlbWEgQ2ZuQ3VzdG9tRGJSb2xlUHJvcHMjSW5oZXJpdGVkUm9sZXNcbiAgICovXG4gIHJlYWRvbmx5IGluaGVyaXRlZFJvbGVzPzogSW5oZXJpdGVkUm9sZVtdO1xuXG4gIC8qKlxuICAgKiBIdW1hbi1yZWFkYWJsZSBsYWJlbCB0aGF0IGlkZW50aWZpZXMgdGhlIHJvbGUgZm9yIHRoZSByZXF1ZXN0LiBUaGlzIG5hbWUgbXVzdCBiZSB1bmlxdWUgZm9yIHRoaXMgY3VzdG9tIHJvbGUgaW4gdGhpcyBwcm9qZWN0LlxuICAgKlxuICAgKiBAc2NoZW1hIENmbkN1c3RvbURiUm9sZVByb3BzI1JvbGVOYW1lXG4gICAqL1xuICByZWFkb25seSByb2xlTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgcHJvZmlsZSBpcyBkZWZpbmVkIGluIEFXUyBTZWNyZXQgbWFuYWdlci4gU2VlIFtTZWNyZXQgTWFuYWdlciBQcm9maWxlIHNldHVwXSguLi8uLi8uLi9leGFtcGxlcy9wcm9maWxlLXNlY3JldC55YW1sKS5cbiAgICpcbiAgICogQHNjaGVtYSBDZm5DdXN0b21EYlJvbGVQcm9wcyNQcm9maWxlXG4gICAqL1xuICByZWFkb25seSBwcm9maWxlPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIENvbnZlcnRzIGFuIG9iamVjdCBvZiB0eXBlICdDZm5DdXN0b21EYlJvbGVQcm9wcycgdG8gSlNPTiByZXByZXNlbnRhdGlvbi5cbiAqL1xuLyogZXNsaW50LWRpc2FibGUgbWF4LWxlbiwgcXVvdGUtcHJvcHMgKi9cbmV4cG9ydCBmdW5jdGlvbiB0b0pzb25fQ2ZuQ3VzdG9tRGJSb2xlUHJvcHMoXG4gIG9iajogQ2ZuQ3VzdG9tRGJSb2xlUHJvcHMgfCB1bmRlZmluZWRcbik6IFJlY29yZDxzdHJpbmcsIGFueT4gfCB1bmRlZmluZWQge1xuICBpZiAob2JqID09PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG4gIGNvbnN0IHJlc3VsdCA9IHtcbiAgICBQcm9qZWN0SWQ6IG9iai5wcm9qZWN0SWQsXG4gICAgQWN0aW9uczogb2JqLmFjdGlvbnM/Lm1hcCgoeSkgPT4gdG9Kc29uX0FjdGlvbih5KSksXG4gICAgSW5oZXJpdGVkUm9sZXM6IG9iai5pbmhlcml0ZWRSb2xlcz8ubWFwKCh5KSA9PiB0b0pzb25fSW5oZXJpdGVkUm9sZSh5KSksXG4gICAgUm9sZU5hbWU6IG9iai5yb2xlTmFtZSxcbiAgICBQcm9maWxlOiBvYmoucHJvZmlsZSxcbiAgfTtcbiAgLy8gZmlsdGVyIHVuZGVmaW5lZCB2YWx1ZXNcbiAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKHJlc3VsdCkucmVkdWNlKFxuICAgIChyLCBpKSA9PiAoaVsxXSA9PT0gdW5kZWZpbmVkID8gciA6IHsgLi4uciwgW2lbMF1dOiBpWzFdIH0pLFxuICAgIHt9XG4gICk7XG59XG4vKiBlc2xpbnQtZW5hYmxlIG1heC1sZW4sIHF1b3RlLXByb3BzICovXG5cbi8qKlxuICogQHNjaGVtYSBBY3Rpb25cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBY3Rpb24ge1xuICAvKipcbiAgICogSHVtYW4tcmVhZGFibGUgbGFiZWwgdGhhdCBpZGVudGlmaWVzIHRoZSBwcml2aWxlZ2UgYWN0aW9uLlxuICAgKlxuICAgKiBAc2NoZW1hIEFjdGlvbiNBY3Rpb25cbiAgICovXG4gIHJlYWRvbmx5IGFjdGlvbj86IHN0cmluZztcblxuICAvKipcbiAgICogTGlzdCBvZiByZXNvdXJjZXMgb24gd2hpY2ggeW91IGdyYW50IHRoZSBhY3Rpb24uXG4gICAqXG4gICAqIEBzY2hlbWEgQWN0aW9uI1Jlc291cmNlc1xuICAgKi9cbiAgcmVhZG9ubHkgcmVzb3VyY2VzPzogUmVzb3VyY2VbXTtcbn1cblxuLyoqXG4gKiBDb252ZXJ0cyBhbiBvYmplY3Qgb2YgdHlwZSAnQWN0aW9uJyB0byBKU09OIHJlcHJlc2VudGF0aW9uLlxuICovXG4vKiBlc2xpbnQtZGlzYWJsZSBtYXgtbGVuLCBxdW90ZS1wcm9wcyAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvSnNvbl9BY3Rpb24oXG4gIG9iajogQWN0aW9uIHwgdW5kZWZpbmVkXG4pOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IHwgdW5kZWZpbmVkIHtcbiAgaWYgKG9iaiA9PT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuICBjb25zdCByZXN1bHQgPSB7XG4gICAgQWN0aW9uOiBvYmouYWN0aW9uLFxuICAgIFJlc291cmNlczogb2JqLnJlc291cmNlcz8ubWFwKCh5KSA9PiB0b0pzb25fUmVzb3VyY2UoeSkpLFxuICB9O1xuICAvLyBmaWx0ZXIgdW5kZWZpbmVkIHZhbHVlc1xuICByZXR1cm4gT2JqZWN0LmVudHJpZXMocmVzdWx0KS5yZWR1Y2UoXG4gICAgKHIsIGkpID0+IChpWzFdID09PSB1bmRlZmluZWQgPyByIDogeyAuLi5yLCBbaVswXV06IGlbMV0gfSksXG4gICAge31cbiAgKTtcbn1cbi8qIGVzbGludC1lbmFibGUgbWF4LWxlbiwgcXVvdGUtcHJvcHMgKi9cblxuLyoqXG4gKiBAc2NoZW1hIEluaGVyaXRlZFJvbGVcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJbmhlcml0ZWRSb2xlIHtcbiAgLyoqXG4gICAqIEBzY2hlbWEgSW5oZXJpdGVkUm9sZSNEYlxuICAgKi9cbiAgcmVhZG9ubHkgZGI/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEBzY2hlbWEgSW5oZXJpdGVkUm9sZSNSb2xlXG4gICAqL1xuICByZWFkb25seSByb2xlPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIENvbnZlcnRzIGFuIG9iamVjdCBvZiB0eXBlICdJbmhlcml0ZWRSb2xlJyB0byBKU09OIHJlcHJlc2VudGF0aW9uLlxuICovXG4vKiBlc2xpbnQtZGlzYWJsZSBtYXgtbGVuLCBxdW90ZS1wcm9wcyAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvSnNvbl9Jbmhlcml0ZWRSb2xlKFxuICBvYmo6IEluaGVyaXRlZFJvbGUgfCB1bmRlZmluZWRcbik6IFJlY29yZDxzdHJpbmcsIGFueT4gfCB1bmRlZmluZWQge1xuICBpZiAob2JqID09PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG4gIGNvbnN0IHJlc3VsdCA9IHtcbiAgICBEYjogb2JqLmRiLFxuICAgIFJvbGU6IG9iai5yb2xlLFxuICB9O1xuICAvLyBmaWx0ZXIgdW5kZWZpbmVkIHZhbHVlc1xuICByZXR1cm4gT2JqZWN0LmVudHJpZXMocmVzdWx0KS5yZWR1Y2UoXG4gICAgKHIsIGkpID0+IChpWzFdID09PSB1bmRlZmluZWQgPyByIDogeyAuLi5yLCBbaVswXV06IGlbMV0gfSksXG4gICAge31cbiAgKTtcbn1cbi8qIGVzbGludC1lbmFibGUgbWF4LWxlbiwgcXVvdGUtcHJvcHMgKi9cblxuLyoqXG4gKiBMaXN0IG9mIHJlc291cmNlcyBvbiB3aGljaCB5b3UgZ3JhbnQgdGhlIGFjdGlvbi5cbiAqXG4gKiBAc2NoZW1hIFJlc291cmNlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmVzb3VyY2Uge1xuICAvKipcbiAgICogSHVtYW4tcmVhZGFibGUgbGFiZWwgdGhhdCBpZGVudGlmaWVzIHRoZSBjb2xsZWN0aW9uIG9uIHdoaWNoIHlvdSBncmFudCB0aGUgYWN0aW9uIHRvIG9uZSBNb25nb0RCIHVzZXIuIElmIHlvdSBkb24ndCBzZXQgdGhpcyBwYXJhbWV0ZXIsIHlvdSBncmFudCB0aGUgYWN0aW9uIHRvIGFsbCBjb2xsZWN0aW9ucyBpbiB0aGUgZGF0YWJhc2Ugc3BlY2lmaWVkIGluIHRoZSBhY3Rpb25zLnJlc291cmNlcy5kYiBwYXJhbWV0ZXIuIElmIHlvdSBzZXQgXCJhY3Rpb25zLnJlc291cmNlcy5jbHVzdGVyXCIgOiB0cnVlLCBNb25nb0RCIENsb3VkIGlnbm9yZXMgdGhpcyBwYXJhbWV0ZXIuIFVzZSB0aGUgZW1wdHkgc3RyaW5nIChcIlwiKSB0byBhbGxvdyBhbiBhY3Rpb24gb24gYWxsIGNvbGxlY3Rpb25zLlxuICAgKlxuICAgKiBAc2NoZW1hIFJlc291cmNlI0NvbGxlY3Rpb25cbiAgICovXG4gIHJlYWRvbmx5IGNvbGxlY3Rpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEh1bWFuLXJlYWRhYmxlIGxhYmVsIHRoYXQgaWRlbnRpZmllcyB0aGUgZGF0YWJhc2Ugb24gd2hpY2ggeW91IGdyYW50IHRoZSBhY3Rpb24gdG8gb25lIE1vbmdvREIgdXNlci4gSWYgeW91IHNldCBcImFjdGlvbnMucmVzb3VyY2VzLmNsdXN0ZXJcIiA6IHRydWUsIE1vbmdvREIgQ2xvdWQgaWdub3JlcyB0aGlzIHBhcmFtZXRlci4gVXNlIHRoZSBlbXB0eSBzdHJpbmcgKFwiXCIpIHRvIGFsbG93IGFuIGFjdGlvbiBvbiBhbGwgZGF0YWJhc2VzLlxuICAgKlxuICAgKiBAc2NoZW1hIFJlc291cmNlI0RCXG4gICAqL1xuICByZWFkb25seSBkYj86IHN0cmluZztcblxuICAvKipcbiAgICogRmxhZyB0aGF0IGluZGljYXRlcyB3aGV0aGVyIHRvIGdyYW50IHRoZSBhY3Rpb24gb24gdGhlIGNsdXN0ZXIgcmVzb3VyY2UuIElmIHRydWUsIE1vbmdvREIgQ2xvdWQgaWdub3JlcyB0aGUgYWN0aW9ucy5yZXNvdXJjZXMuY29sbGVjdGlvbiBhbmQgYWN0aW9ucy5yZXNvdXJjZXMuZGIgcGFyYW1ldGVycy5cbiAgICpcbiAgICogQHNjaGVtYSBSZXNvdXJjZSNDbHVzdGVyXG4gICAqL1xuICByZWFkb25seSBjbHVzdGVyPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBDb252ZXJ0cyBhbiBvYmplY3Qgb2YgdHlwZSAnUmVzb3VyY2UnIHRvIEpTT04gcmVwcmVzZW50YXRpb24uXG4gKi9cbi8qIGVzbGludC1kaXNhYmxlIG1heC1sZW4sIHF1b3RlLXByb3BzICovXG5leHBvcnQgZnVuY3Rpb24gdG9Kc29uX1Jlc291cmNlKFxuICBvYmo6IFJlc291cmNlIHwgdW5kZWZpbmVkXG4pOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IHwgdW5kZWZpbmVkIHtcbiAgaWYgKG9iaiA9PT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuICBjb25zdCByZXN1bHQgPSB7XG4gICAgQ29sbGVjdGlvbjogb2JqLmNvbGxlY3Rpb24sXG4gICAgREI6IG9iai5kYixcbiAgICBDbHVzdGVyOiBvYmouY2x1c3RlcixcbiAgfTtcbiAgLy8gZmlsdGVyIHVuZGVmaW5lZCB2YWx1ZXNcbiAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKHJlc3VsdCkucmVkdWNlKFxuICAgIChyLCBpKSA9PiAoaVsxXSA9PT0gdW5kZWZpbmVkID8gciA6IHsgLi4uciwgW2lbMF1dOiBpWzFdIH0pLFxuICAgIHt9XG4gICk7XG59XG4vKiBlc2xpbnQtZW5hYmxlIG1heC1sZW4sIHF1b3RlLXByb3BzICovXG5cbi8qKlxuICogQSBDbG91ZEZvcm1hdGlvbiBgTW9uZ29EQjo6QXRsYXM6OkN1c3RvbURCUm9sZWBcbiAqXG4gKiBAY2xvdWRmb3JtYXRpb25SZXNvdXJjZSBNb25nb0RCOjpBdGxhczo6Q3VzdG9tREJSb2xlXG4gKiBAc3RhYmlsaXR5IGV4dGVybmFsXG4gKi9cbmV4cG9ydCBjbGFzcyBDZm5DdXN0b21EYlJvbGUgZXh0ZW5kcyBjZGsuQ2ZuUmVzb3VyY2Uge1xuICAvKipcbiAgICogVGhlIENsb3VkRm9ybWF0aW9uIHJlc291cmNlIHR5cGUgbmFtZSBmb3IgdGhpcyByZXNvdXJjZSBjbGFzcy5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgQ0ZOX1JFU09VUkNFX1RZUEVfTkFNRSA9XG4gICAgXCJNb25nb0RCOjpBdGxhczo6Q3VzdG9tREJSb2xlXCI7XG5cbiAgLyoqXG4gICAqIFJlc291cmNlIHByb3BzLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHByb3BzOiBDZm5DdXN0b21EYlJvbGVQcm9wcztcblxuICAvKipcbiAgICogQ3JlYXRlIGEgbmV3IGBNb25nb0RCOjpBdGxhczo6Q3VzdG9tREJSb2xlYC5cbiAgICpcbiAgICogQHBhcmFtIHNjb3BlIC0gc2NvcGUgaW4gd2hpY2ggdGhpcyByZXNvdXJjZSBpcyBkZWZpbmVkXG4gICAqIEBwYXJhbSBpZCAgICAtIHNjb3BlZCBpZCBvZiB0aGUgcmVzb3VyY2VcbiAgICogQHBhcmFtIHByb3BzIC0gcmVzb3VyY2UgcHJvcGVydGllc1xuICAgKi9cbiAgY29uc3RydWN0b3IoXG4gICAgc2NvcGU6IGNvbnN0cnVjdHMuQ29uc3RydWN0LFxuICAgIGlkOiBzdHJpbmcsXG4gICAgcHJvcHM6IENmbkN1c3RvbURiUm9sZVByb3BzXG4gICkge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwge1xuICAgICAgdHlwZTogQ2ZuQ3VzdG9tRGJSb2xlLkNGTl9SRVNPVVJDRV9UWVBFX05BTUUsXG4gICAgICBwcm9wZXJ0aWVzOiB0b0pzb25fQ2ZuQ3VzdG9tRGJSb2xlUHJvcHMocHJvcHMpISxcbiAgICB9KTtcblxuICAgIHRoaXMucHJvcHMgPSBwcm9wcztcbiAgfVxufVxuIl19