awscdk-resources-mongodbatlas
Version:
MongoDB Atlas CDK Construct Library for AWS CloudFormation Resources
96 lines • 15.6 kB
JavaScript
;
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