UNPKG

awscdk-resources-mongodbatlas

Version:

MongoDB Atlas CDK Construct Library for AWS CloudFormation Resources

96 lines 15.6 kB
"use strict"; var _a; Object.defineProperty(exports, "__esModule", { value: true }); exports.CfnApiKey = void 0; exports.toJson_CfnApiKeyProps = toJson_CfnApiKeyProps; exports.toJson_ProjectAssignment = toJson_ProjectAssignment; exports.toJson_ListOptions = toJson_ListOptions; const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti"); // Generated by cdk-import const cdk = require("aws-cdk-lib"); /** * Converts an object of type 'CfnApiKeyProps' to JSON representation. */ /* eslint-disable max-len, quote-props */ function toJson_CfnApiKeyProps(obj) { if (obj === undefined) { return undefined; } const result = { Description: obj.description, AwsSecretName: obj.awsSecretName, OrgId: obj.orgId, Profile: obj.profile, AwsSecretArn: obj.awsSecretArn, Roles: obj.roles?.map((y) => y), ProjectAssignments: obj.projectAssignments?.map((y) => toJson_ProjectAssignment(y)), ListOptions: toJson_ListOptions(obj.listOptions), }; // filter undefined values return Object.entries(result).reduce((r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }), {}); } /** * Converts an object of type 'ProjectAssignment' to JSON representation. */ /* eslint-disable max-len, quote-props */ function toJson_ProjectAssignment(obj) { if (obj === undefined) { return undefined; } const result = { Roles: obj.roles?.map((y) => y), 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 'ListOptions' to JSON representation. */ /* eslint-disable max-len, quote-props */ function toJson_ListOptions(obj) { if (obj === undefined) { return undefined; } const result = { PageNum: obj.pageNum, ItemsPerPage: obj.itemsPerPage, IncludeCount: obj.includeCount, }; // 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::APIKey` * * @cloudformationResource MongoDB::Atlas::APIKey * @stability external */ class CfnApiKey extends cdk.CfnResource { /** * Create a new `MongoDB::Atlas::APIKey`. * * @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: CfnApiKey.CFN_RESOURCE_TYPE_NAME, properties: toJson_CfnApiKeyProps(props), }); this.props = props; this.attrPrivateKey = cdk.Token.asString(this.getAtt("PrivateKey")); this.attrPublicKey = cdk.Token.asString(this.getAtt("PublicKey")); this.attrAPIUserId = cdk.Token.asString(this.getAtt("APIUserId")); } } exports.CfnApiKey = CfnApiKey; _a = JSII_RTTI_SYMBOL_1; CfnApiKey[_a] = { fqn: "awscdk-resources-mongodbatlas.CfnApiKey", version: "3.13.1" }; /** * The CloudFormation resource type name for this resource class. */ CfnApiKey.CFN_RESOURCE_TYPE_NAME = "MongoDB::Atlas::APIKey"; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbDEtcmVzb3VyY2VzL2FwaS1rZXkvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQW1FQSxzREF1QkM7QUEwQkQsNERBZUM7QUFpQ0QsZ0RBZ0JDOztBQXBMRCwwQkFBMEI7QUFDMUIsbUNBQW1DO0FBOERuQzs7R0FFRztBQUNILHlDQUF5QztBQUN6QyxTQUFnQixxQkFBcUIsQ0FDbkMsR0FBK0I7SUFFL0IsSUFBSSxHQUFHLEtBQUssU0FBUyxFQUFFLENBQUM7UUFDdEIsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUNELE1BQU0sTUFBTSxHQUFHO1FBQ2IsV0FBVyxFQUFFLEdBQUcsQ0FBQyxXQUFXO1FBQzVCLGFBQWEsRUFBRSxHQUFHLENBQUMsYUFBYTtRQUNoQyxLQUFLLEVBQUUsR0FBRyxDQUFDLEtBQUs7UUFDaEIsT0FBTyxFQUFFLEdBQUcsQ0FBQyxPQUFPO1FBQ3BCLFlBQVksRUFBRSxHQUFHLENBQUMsWUFBWTtRQUM5QixLQUFLLEVBQUUsR0FBRyxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUMvQixrQkFBa0IsRUFBRSxHQUFHLENBQUMsa0JBQWtCLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FDcEQsd0JBQXdCLENBQUMsQ0FBQyxDQUFDLENBQzVCO1FBQ0QsV0FBVyxFQUFFLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUM7S0FDakQsQ0FBQztJQUNGLDBCQUEwQjtJQUMxQixPQUFPLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxDQUNsQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFD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MkNDOzs7QUExQ0M7O0dBRUc7QUFDb0IsZ0NBQXNCLEdBQUcsd0JBQXdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBHZW5lcmF0ZWQgYnkgY2RrLWltcG9ydFxuaW1wb3J0ICogYXMgY2RrIGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuaW1wb3J0ICogYXMgY29uc3RydWN0cyBmcm9tIFwiY29uc3RydWN0c1wiO1xuXG4vKipcbiAqIENyZWF0ZXMgb25lIEFQSSBrZXkgZm9yIHRoZSBzcGVjaWZpZWQgb3JnYW5pemF0aW9uLiBBbiBvcmdhbml6YXRpb24gQVBJIGtleSBncmFudHMgcHJvZ3JhbW1hdGljIGFjY2VzcyB0byBhbiBvcmdhbml6YXRpb24uXG4gKlxuICogQHNjaGVtYSBDZm5BcGlLZXlQcm9wc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIENmbkFwaUtleVByb3BzIHtcbiAgLyoqXG4gICAqIFB1cnBvc2Ugb3IgZXhwbGFuYXRpb24gcHJvdmlkZWQgd2hlbiBzb21lb25lIGNyZWF0ZWQgdGhpcyBvcmdhbml6YXRpb24gQVBJIGtleS5cbiAgICpcbiAgICogQHNjaGVtYSBDZm5BcGlLZXlQcm9wcyNEZXNjcmlwdGlvblxuICAgKi9cbiAgcmVhZG9ubHkgZGVzY3JpcHRpb246IHN0cmluZztcblxuICAvKipcbiAgICogTmFtZSBvZiB0aGUgQVdTIFNlY3JldHMgTWFuYWdlciBzZWNyZXQgdGhhdCBzdG9yZXMgdGhlIEFQSSBrZXkgRGV0YWlscy5cbiAgICpcbiAgICogQHNjaGVtYSBDZm5BcGlLZXlQcm9wcyNBd3NTZWNyZXROYW1lXG4gICAqL1xuICByZWFkb25seSBhd3NTZWNyZXROYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFVuaXF1ZSAyNC1oZXhhZGVjaW1hbCBkaWdpdCBzdHJpbmcgdGhhdCBpZGVudGlmaWVzIHRoZSBvcmdhbml6YXRpb24gdGhhdCBjb250YWlucyB5b3VyIHByb2plY3RzLiBVc2UgdGhlIC9vcmdzIGVuZHBvaW50IHRvIHJldHJpZXZlIGFsbCBvcmdhbml6YXRpb25zIHRvIHdoaWNoIHRoZSBhdXRoZW50aWNhdGVkIHVzZXIgaGFzIGFjY2Vzcy5cbiAgICpcbiAgICogQHNjaGVtYSBDZm5BcGlLZXlQcm9wcyNPcmdJZFxuICAgKi9cbiAgcmVhZG9ubHkgb3JnSWQ6IHN0cmluZztcblxuICAvKipcbiAgICogUHJvZmlsZSB1c2VkIHRvIHByb3ZpZGUgY3JlZGVudGlhbHMgaW5mb3JtYXRpb24sIChhIHNlY3JldCB3aXRoIHRoZSBjZm4vYXRsYXMvcHJvZmlsZS97UHJvZmlsZX0sIGlzIHJlcXVpcmVkKSwgaWYgbm90IHByb3ZpZGVkIGRlZmF1bHQgaXMgdXNlZFxuICAgKlxuICAgKiBAc2NoZW1hIENmbkFwaUtleVByb3BzI1Byb2ZpbGVcbiAgICovXG4gIHJlYWRvbmx5IHByb2ZpbGU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEFSTiBvZiB0aGUgQVdTIFNlY3JldHMgTWFuYWdlciBzZWNyZXQgdGhhdCBzdG9yZXMgdGhlIEFQSSBrZXkgRGV0YWlsc1xuICAgKlxuICAgKiBAc2NoZW1hIENmbkFwaUtleVByb3BzI0F3c1NlY3JldEFyblxuICAgKi9cbiAgcmVhZG9ubHkgYXdzU2VjcmV0QXJuPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBMaXN0IG9mIHJvbGVzIHRvIGdyYW50IHRoaXMgQVBJIGtleS4gSWYgeW91IHByb3ZpZGUgdGhpcyBsaXN0LCBwcm92aWRlIGEgbWluaW11bSBvZiBvbmUgcm9sZSBhbmQgZW5zdXJlIGVhY2ggcm9sZSBhcHBsaWVzIHRvIHRoaXMgb3JnYW5pemF0aW9uLlxuICAgKlxuICAgKiBAc2NoZW1hIENmbkFwaUtleVByb3BzI1JvbGVzXG4gICAqL1xuICByZWFkb25seSByb2xlcz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBAc2NoZW1hIENmbkFwaUtleVByb3BzI1Byb2plY3RBc3NpZ25tZW50c1xuICAgKi9cbiAgcmVhZG9ubHkgcHJvamVjdEFzc2lnbm1lbnRzPzogUHJvamVjdEFzc2lnbm1lbnRbXTtcblxuICAvKipcbiAgICogQHNjaGVtYSBDZm5BcGlLZXlQcm9wcyNMaXN0T3B0aW9uc1xuICAgKi9cbiAgcmVhZG9ubHkgbGlzdE9wdGlvbnM/OiBMaXN0T3B0aW9ucztcbn1cblxuLyoqXG4gKiBDb252ZXJ0cyBhbiBvYmplY3Qgb2YgdHlwZSAnQ2ZuQXBpS2V5UHJvcHMnIHRvIEpTT04gcmVwcmVzZW50YXRpb24uXG4gKi9cbi8qIGVzbGludC1kaXNhYmxlIG1heC1sZW4sIHF1b3RlLXByb3BzICovXG5leHBvcnQgZnVuY3Rpb24gdG9Kc29uX0NmbkFwaUtleVByb3BzKFxuICBvYmo6IENmbkFwaUtleVByb3BzIHwgdW5kZWZpbmVkXG4pOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IHwgdW5kZWZpbmVkIHtcbiAgaWYgKG9iaiA9PT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuICBjb25zdCByZXN1bHQgPSB7XG4gICAgRGVzY3JpcHRpb246IG9iai5kZXNjcmlwdGlvbixcbiAgICBBd3NTZWNyZXROYW1lOiBvYmouYXdzU2VjcmV0TmFtZSxcbiAgICBPcmdJZDogb2JqLm9yZ0lkLFxuICAgIFByb2ZpbGU6IG9iai5wcm9maWxlLFxuICAgIEF3c1NlY3JldEFybjogb2JqLmF3c1NlY3JldEFybixcbiAgICBSb2xlczogb2JqLnJvbGVzPy5tYXAoKHkpID0+IHkpLFxuICAgIFByb2plY3RBc3NpZ25tZW50czogb2JqLnByb2plY3RBc3NpZ25tZW50cz8ubWFwKCh5KSA9PlxuICAgICAgdG9Kc29uX1Byb2plY3RBc3NpZ25tZW50KHkpXG4gICAgKSxcbiAgICBMaXN0T3B0aW9uczogdG9Kc29uX0xpc3RPcHRpb25zKG9iai5saXN0T3B0aW9ucyksXG4gIH07XG4gIC8vIGZpbHRlciB1bmRlZmluZWQgdmFsdWVzXG4gIHJldHVybiBPYmplY3QuZW50cmllcyhyZXN1bHQpLnJlZHVjZShcbiAgICAociwgaSkgPT4gKGlbMV0gPT09IHVuZGVmaW5lZCA/IHIgOiB7IC4uLnIsIFtpWzBdXTogaVsxXSB9KSxcbiAgICB7fVxuICApO1xufVxuLyogZXNsaW50LWVuYWJsZSBtYXgtbGVuLCBxdW90ZS1wcm9wcyAqL1xuXG4vKipcbiAqIEBzY2hlbWEgUHJvamVjdEFzc2lnbm1lbnRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQcm9qZWN0QXNzaWdubWVudCB7XG4gIC8qKlxuICAgKiBMaXN0IG9mIHJvbGVzIHRvIGdyYW50IHRoaXMgQVBJIGtleS4gSWYgeW91IHByb3ZpZGUgdGhpcyBsaXN0LCBwcm92aWRlIGEgbWluaW11bSBvZiBvbmUgcm9sZSBhbmQgZW5zdXJlIGVhY2ggcm9sZSBhcHBsaWVzIHRvIHRoaXMgb3JnYW5pemF0aW9uLlxuICAgKlxuICAgKiBAc2NoZW1hIFByb2plY3RBc3NpZ25tZW50I1JvbGVzXG4gICAqL1xuICByZWFkb25seSByb2xlcz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBVbmlxdWUgMjQtaGV4YWRlY2ltYWwgZGlnaXQgc3RyaW5nIHRoYXQgaWRlbnRpZmllcyB0aGUgcHJvamVjdCBpbiBhbiBvcmdhbml6YXRpb24uXG4gICAqXG4gICAqIEBzY2hlbWEgUHJvamVjdEFzc2lnbm1lbnQjUHJvamVjdElkXG4gICAqL1xuICByZWFkb25seSBwcm9qZWN0SWQ/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogQ29udmVydHMgYW4gb2JqZWN0IG9mIHR5cGUgJ1Byb2plY3RBc3NpZ25tZW50JyB0byBKU09OIHJlcHJlc2VudGF0aW9uLlxuICovXG4vKiBlc2xpbnQtZGlzYWJsZSBtYXgtbGVuLCBxdW90ZS1wcm9wcyAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvSnNvbl9Qcm9qZWN0QXNzaWdubWVudChcbiAgb2JqOiBQcm9qZWN0QXNzaWdubWVudCB8IHVuZGVmaW5lZFxuKTogUmVjb3JkPHN0cmluZywgYW55PiB8IHVuZGVmaW5lZCB7XG4gIGlmIChvYmogPT09IHVuZGVmaW5lZCkge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbiAgY29uc3QgcmVzdWx0ID0ge1xuICAgIFJvbGVzOiBvYmoucm9sZXM/Lm1hcCgoeSkgPT4geSksXG4gICAgUHJvamVjdElkOiBvYmoucHJvamVjdElkLFxuICB9O1xuICAvLyBmaWx0ZXIgdW5kZWZpbmVkIHZhbHVlc1xuICByZXR1cm4gT2JqZWN0LmVudHJpZXMocmVzdWx0KS5yZWR1Y2UoXG4gICAgKHIsIGkpID0+IChpWzFdID09PSB1bmRlZmluZWQgPyByIDogeyAuLi5yLCBbaVswXV06IGlbMV0gfSksXG4gICAge31cbiAgKTtcbn1cbi8qIGVzbGludC1lbmFibGUgbWF4LWxlbiwgcXVvdGUtcHJvcHMgKi9cblxuLyoqXG4gKiBAc2NoZW1hIExpc3RPcHRpb25zXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTGlzdE9wdGlvbnMge1xuICAvKipcbiAgICogTnVtYmVyIG9mIHRoZSBwYWdlIHRoYXQgZGlzcGxheXMgdGhlIGN1cnJlbnQgc2V0IG9mIHRoZSB0b3RhbCBvYmplY3RzIHRoYXQgdGhlIHJlc3BvbnNlIHJldHVybnMuXG4gICAqXG4gICAqIEBzY2hlbWEgTGlzdE9wdGlvbnMjUGFnZU51bVxuICAgKi9cbiAgcmVhZG9ubHkgcGFnZU51bT86IG51bWJlcjtcblxuICAvKipcbiAgICogTnVtYmVyIG9mIGl0ZW1zIHRoYXQgdGhlIHJlc3BvbnNlIHJldHVybnMgcGVyIHBhZ2UuXG4gICAqXG4gICAqIEBzY2hlbWEgTGlzdE9wdGlvbnMjSXRlbXNQZXJQYWdlXG4gICAqL1xuICByZWFkb25seSBpdGVtc1BlclBhZ2U/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIEZsYWcgdGhhdCBpbmRpY2F0ZXMgd2hldGhlciB0aGUgcmVzcG9uc2UgcmV0dXJucyB0aGUgdG90YWwgbnVtYmVyIG9mIGl0ZW1zICh0b3RhbENvdW50KSBpbiB0aGUgcmVzcG9uc2UuXG4gICAqXG4gICAqIEBzY2hlbWEgTGlzdE9wdGlvbnMjSW5jbHVkZUNvdW50XG4gICAqL1xuICByZWFkb25seSBpbmNsdWRlQ291bnQ/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIENvbnZlcnRzIGFuIG9iamVjdCBvZiB0eXBlICdMaXN0T3B0aW9ucycgdG8gSlNPTiByZXByZXNlbnRhdGlvbi5cbiAqL1xuLyogZXNsaW50LWRpc2FibGUgbWF4LWxlbiwgcXVvdGUtcHJvcHMgKi9cbmV4cG9ydCBmdW5jdGlvbiB0b0pzb25fTGlzdE9wdGlvbnMoXG4gIG9iajogTGlzdE9wdGlvbnMgfCB1bmRlZmluZWRcbik6IFJlY29yZDxzdHJpbmcsIGFueT4gfCB1bmRlZmluZWQge1xuICBpZiAob2JqID09PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG4gIGNvbnN0IHJlc3VsdCA9IHtcbiAgICBQYWdlTnVtOiBvYmoucGFnZU51bSxcbiAgICBJdGVtc1BlclBhZ2U6IG9iai5pdGVtc1BlclBhZ2UsXG4gICAgSW5jbHVkZUNvdW50OiBvYmouaW5jbHVkZUNvdW50LFxuICB9O1xuICAvLyBmaWx0ZXIgdW5kZWZpbmVkIHZhbHVlc1xuICByZXR1cm4gT2JqZWN0LmVudHJpZXMocmVzdWx0KS5yZWR1Y2UoXG4gICAgKHIsIGkpID0+IChpWzFdID09PSB1bmRlZmluZWQgPyByIDogeyAuLi5yLCBbaVswXV06IGlbMV0gfSksXG4gICAge31cbiAgKTtcbn1cbi8qIGVzbGludC1lbmFibGUgbWF4LWxlbiwgcXVvdGUtcHJvcHMgKi9cblxuLyoqXG4gKiBBIENsb3VkRm9ybWF0aW9uIGBNb25nb0RCOjpBdGxhczo6QVBJS2V5YFxuICpcbiAqIEBjbG91ZGZvcm1hdGlvblJlc291cmNlIE1vbmdvREI6OkF0bGFzOjpBUElLZXlcbiAqIEBzdGFiaWxpdHkgZXh0ZXJuYWxcbiAqL1xuZXhwb3J0IGNsYXNzIENmbkFwaUtleSBleHRlbmRzIGNkay5DZm5SZXNvdXJjZSB7XG4gIC8qKlxuICAgKiBUaGUgQ2xvdWRGb3JtYXRpb24gcmVzb3VyY2UgdHlwZSBuYW1lIGZvciB0aGlzIHJlc291cmNlIGNsYXNzLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBDRk5fUkVTT1VSQ0VfVFlQRV9OQU1FID0gXCJNb25nb0RCOjpBdGxhczo6QVBJS2V5XCI7XG5cbiAgLyoqXG4gICAqIFJlc291cmNlIHByb3BzLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHByb3BzOiBDZm5BcGlLZXlQcm9wcztcblxuICAvKipcbiAgICogQXR0cmlidXRlIGBNb25nb0RCOjpBdGxhczo6QVBJS2V5LlByaXZhdGVLZXlgXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgYXR0clByaXZhdGVLZXk6IHN0cmluZztcbiAgLyoqXG4gICAqIEF0dHJpYnV0ZSBgTW9uZ29EQjo6QXRsYXM6OkFQSUtleS5QdWJsaWNLZXlgXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgYXR0clB1YmxpY0tleTogc3RyaW5nO1xuICAvKipcbiAgICogQXR0cmlidXRlIGBNb25nb0RCOjpBdGxhczo6QVBJS2V5LkFQSVVzZXJJZGBcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBhdHRyQVBJVXNlcklkOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIG5ldyBgTW9uZ29EQjo6QXRsYXM6OkFQSUtleWAuXG4gICAqXG4gICAqIEBwYXJhbSBzY29wZSAtIHNjb3BlIGluIHdoaWNoIHRoaXMgcmVzb3VyY2UgaXMgZGVmaW5lZFxuICAgKiBAcGFyYW0gaWQgICAgLSBzY29wZWQgaWQgb2YgdGhlIHJlc291cmNlXG4gICAqIEBwYXJhbSBwcm9wcyAtIHJlc291cmNlIHByb3BlcnRpZXNcbiAgICovXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBjb25zdHJ1Y3RzLkNvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IENmbkFwaUtleVByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCB7XG4gICAgICB0eXBlOiBDZm5BcGlLZXkuQ0ZOX1JFU09VUkNFX1RZUEVfTkFNRSxcbiAgICAgIHByb3BlcnRpZXM6IHRvSnNvbl9DZm5BcGlLZXlQcm9wcyhwcm9wcykhLFxuICAgIH0pO1xuXG4gICAgdGhpcy5wcm9wcyA9IHByb3BzO1xuXG4gICAgdGhpcy5hdHRyUHJpdmF0ZUtleSA9IGNkay5Ub2tlbi5hc1N0cmluZyh0aGlzLmdldEF0dChcIlByaXZhdGVLZXlcIikpO1xuICAgIHRoaXMuYXR0clB1YmxpY0tleSA9IGNkay5Ub2tlbi5hc1N0cmluZyh0aGlzLmdldEF0dChcIlB1YmxpY0tleVwiKSk7XG4gICAgdGhpcy5hdHRyQVBJVXNlcklkID0gY2RrLlRva2VuLmFzU3RyaW5nKHRoaXMuZ2V0QXR0KFwiQVBJVXNlcklkXCIpKTtcbiAgfVxufVxuIl19