awscdk-resources-mongodbatlas
Version:
MongoDB Atlas CDK Construct Library for AWS CloudFormation Resources
131 lines • 23 kB
JavaScript
var _a;
Object.defineProperty(exports, "__esModule", { value: true });
exports.CfnFlexCluster = void 0;
exports.toJson_CfnFlexClusterProps = toJson_CfnFlexClusterProps;
exports.toJson_ProviderSettings = toJson_ProviderSettings;
exports.toJson_BackupSettings = toJson_BackupSettings;
exports.toJson_ConnectionStrings = toJson_ConnectionStrings;
exports.toJson_Tag = toJson_Tag;
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
// Generated by cdk-import
const cdk = require("aws-cdk-lib");
/**
* Converts an object of type 'CfnFlexClusterProps' to JSON representation.
*/
/* eslint-disable max-len, quote-props */
function toJson_CfnFlexClusterProps(obj) {
if (obj === undefined) {
return undefined;
}
const result = {
Profile: obj.profile,
ProjectId: obj.projectId,
Name: obj.name,
ProviderSettings: toJson_ProviderSettings(obj.providerSettings),
BackupSettings: toJson_BackupSettings(obj.backupSettings),
ConnectionStrings: toJson_ConnectionStrings(obj.connectionStrings),
TerminationProtectionEnabled: obj.terminationProtectionEnabled,
Tags: obj.tags?.map((y) => toJson_Tag(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 'ProviderSettings' to JSON representation.
*/
/* eslint-disable max-len, quote-props */
function toJson_ProviderSettings(obj) {
if (obj === undefined) {
return undefined;
}
const result = {
BackingProviderName: obj.backingProviderName,
RegionName: obj.regionName,
DiskSizeGB: obj.diskSizeGb,
ProviderName: obj.providerName,
};
// filter undefined values
return Object.entries(result).reduce((r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }), {});
}
/**
* Converts an object of type 'BackupSettings' to JSON representation.
*/
/* eslint-disable max-len, quote-props */
function toJson_BackupSettings(obj) {
if (obj === undefined) {
return undefined;
}
const result = {
Enabled: obj.enabled,
};
// filter undefined values
return Object.entries(result).reduce((r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }), {});
}
/**
* Converts an object of type 'ConnectionStrings' to JSON representation.
*/
/* eslint-disable max-len, quote-props */
function toJson_ConnectionStrings(obj) {
if (obj === undefined) {
return undefined;
}
const result = {
Standard: obj.standard,
StandardSrv: obj.standardSrv,
};
// filter undefined values
return Object.entries(result).reduce((r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }), {});
}
/**
* Converts an object of type 'Tag' to JSON representation.
*/
/* eslint-disable max-len, quote-props */
function toJson_Tag(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 */
/**
* A CloudFormation `MongoDB::Atlas::FlexCluster`
*
* @cloudformationResource MongoDB::Atlas::FlexCluster
* @stability external
*/
class CfnFlexCluster extends cdk.CfnResource {
/**
* Create a new `MongoDB::Atlas::FlexCluster`.
*
* @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: CfnFlexCluster.CFN_RESOURCE_TYPE_NAME,
properties: toJson_CfnFlexClusterProps(props),
});
this.props = props;
this.attrId = cdk.Token.asString(this.getAtt("Id"));
this.attrStateName = cdk.Token.asString(this.getAtt("StateName"));
this.attrClusterType = cdk.Token.asString(this.getAtt("ClusterType"));
this.attrCreateDate = cdk.Token.asString(this.getAtt("CreateDate"));
this.attrMongoDBVersion = cdk.Token.asString(this.getAtt("MongoDBVersion"));
this.attrVersionReleaseSystem = cdk.Token.asString(this.getAtt("VersionReleaseSystem"));
}
}
exports.CfnFlexCluster = CfnFlexCluster;
_a = JSII_RTTI_SYMBOL_1;
CfnFlexCluster[_a] = { fqn: "awscdk-resources-mongodbatlas.CfnFlexCluster", version: "3.13.0" };
/**
* The CloudFormation resource type name for this resource class.
*/
CfnFlexCluster.CFN_RESOURCE_TYPE_NAME = "MongoDB::Atlas::FlexCluster";
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbDEtcmVzb3VyY2VzL2ZsZXgtY2x1c3Rlci9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBaUVBLGdFQXFCQztBQTBDRCwwREFpQkM7QUFxQkQsc0RBY0M7QUE0QkQsNERBZUM7QUE0QkQsZ0NBZUM7O0FBMVFELDBCQUEwQjtBQUMxQixtQ0FBbUM7QUE0RG5DOztHQUVHO0FBQ0gseUNBQXlDO0FBQ3pDLFNBQWdCLDBCQUEwQixDQUN4QyxHQUFvQztJQUVwQyxJQUFJLEdBQUcsS0FBSyxTQUFTLEVBQUUsQ0FBQztRQUN0QixPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0lBQ0QsTUFBTSxNQUFNLEdBQUc7UUFDYixPQUFPLEVBQUUsR0FBRyxDQUFDLE9BQU87UUFDcEIsU0FBUyxFQUFFLEdBQUcsQ0FBQyxTQUFTO1FBQ3hCLElBQUksRUFBRSxHQUFHLENBQUMsSUFBSTtRQUNkLGdCQUFnQixFQUFFLHVCQUF1QixDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQztRQUMvRCxjQUFjLEVBQUUscUJBQXFCLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQztRQUN6RCxpQkFBaUIsRUFBRSx3QkFBd0IsQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUM7UUFDbEUsNEJBQTRCLEVBQUUsR0FBRyxDQUFDLDRCQUE0QjtRQUM5RCxJQUFJLEVBQUUsR0FBRyxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztLQUMxQyxDQUFDO0lBQ0YsMEJBQTBCO0lBQzFCLE9BQU8sTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLENBQ2xDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssU0FBUyxDQUFDLENB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QUssQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDO1FBQ3RFLElBQUksQ0FBQyxjQUFjLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDO1FBQ3BFLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQztRQUM1RSxJQUFJLENBQUMsd0JBQXdCLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQ2hELElBQUksQ0FBQyxNQUFNLENBQUMsc0JBQXNCLENBQUMsQ0FDcEMsQ0FBQztJQUNKLENBQUM7O0FBL0RILHdDQWdFQzs7O0FBL0RDOztHQUVHO0FBQ29CLHFDQUFzQixHQUFHLDZCQUE2QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gR2VuZXJhdGVkIGJ5IGNkay1pbXBvcnRcbmltcG9ydCAqIGFzIGNkayBmcm9tIFwiYXdzLWNkay1saWJcIjtcbmltcG9ydCAqIGFzIGNvbnN0cnVjdHMgZnJvbSBcImNvbnN0cnVjdHNcIjtcblxuLyoqXG4gKiBUaGUgZmxleCBjbHVzdGVyIHJlc291cmNlIHByb3ZpZGVzIGFjY2VzcyB0byB5b3VyIGZsZXggY2x1c3RlciBjb25maWd1cmF0aW9ucy4gVGhlIHJlc291cmNlIGxldHMgeW91IGNyZWF0ZSwgZWRpdCBhbmQgZGVsZXRlIGZsZXggY2x1c3RlcnMuIFRoZSByZXNvdXJjZSByZXF1aXJlcyB5b3VyIFByb2plY3QgSUQuXG4gKlxuICogQHNjaGVtYSBDZm5GbGV4Q2x1c3RlclByb3BzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ2ZuRmxleENsdXN0ZXJQcm9wcyB7XG4gIC8qKlxuICAgKiBQcm9maWxlIHVzZWQgdG8gcHJvdmlkZSBjcmVkZW50aWFscyBpbmZvcm1hdGlvbiwgKGEgc2VjcmV0IHdpdGggdGhlIGNmbi9hdGxhcy9wcm9maWxlL3tQcm9maWxlfSwgaXMgcmVxdWlyZWQpLCBpZiBub3QgcHJvdmlkZWQgZGVmYXVsdCBpcyB1c2VkXG4gICAqXG4gICAqIEBzY2hlbWEgQ2ZuRmxleENsdXN0ZXJQcm9wcyNQcm9maWxlXG4gICAqL1xuICByZWFkb25seSBwcm9maWxlPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBVbmlxdWUgaWRlbnRpZmllciBvZiB0aGUgcHJvamVjdCB0aGUgY2x1c3RlciBiZWxvbmdzIHRvLlxuICAgKlxuICAgKiBAc2NoZW1hIENmbkZsZXhDbHVzdGVyUHJvcHMjUHJvamVjdElkXG4gICAqL1xuICByZWFkb25seSBwcm9qZWN0SWQ6IHN0cmluZztcblxuICAvKipcbiAgICogSHVtYW4tcmVhZGFibGUgbGFiZWwgdGhhdCBpZGVudGlmaWVzIHRoZSBmbGV4IGNsdXN0ZXIuXG4gICAqXG4gICAqIEBzY2hlbWEgQ2ZuRmxleENsdXN0ZXJQcm9wcyNOYW1lXG4gICAqL1xuICByZWFkb25seSBuYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEBzY2hlbWEgQ2ZuRmxleENsdXN0ZXJQcm9wcyNQcm92aWRlclNldHRpbmdzXG4gICAqL1xuICByZWFkb25seSBwcm92aWRlclNldHRpbmdzOiBQcm92aWRlclNldHRpbmdzO1xuXG4gIC8qKlxuICAgKiBAc2NoZW1hIENmbkZsZXhDbHVzdGVyUHJvcHMjQmFja3VwU2V0dGluZ3NcbiAgICovXG4gIHJlYWRvbmx5IGJhY2t1cFNldHRpbmdzPzogQmFja3VwU2V0dGluZ3M7XG5cbiAgLyoqXG4gICAqIEBzY2hlbWEgQ2ZuRmxleENsdXN0ZXJQcm9wcyNDb25uZWN0aW9uU3RyaW5nc1xuICAgKi9cbiAgcmVhZG9ubHkgY29ubmVjdGlvblN0cmluZ3M/OiBDb25uZWN0aW9uU3RyaW5ncztcblxuICAvKipcbiAgICogRmxhZyB0aGF0IGluZGljYXRlcyB3aGV0aGVyIHRlcm1pbmF0aW9uIHByb3RlY3Rpb24gaXMgZW5hYmxlZCBvbiB0aGUgY2x1c3Rlci4gSWYgc2V0IHRvIHRydWUsIE1vbmdvREIgQ2xvdWQgd29uJ3QgZGVsZXRlIHRoZSBjbHVzdGVyLiBJZiBzZXQgdG8gZmFsc2UsIE1vbmdvREIgQ2xvdWQgd2lsbCBkZWxldGUgdGhlIGNsdXN0ZXIuXG4gICAqXG4gICAqIEBzY2hlbWEgQ2ZuRmxleENsdXN0ZXJQcm9wcyNUZXJtaW5hdGlvblByb3RlY3Rpb25FbmFibGVkXG4gICAqL1xuICByZWFkb25seSB0ZXJtaW5hdGlvblByb3RlY3Rpb25FbmFibGVkPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogTWFwIHRoYXQgY29udGFpbnMga2V5LXZhbHVlIHBhaXJzIGJldHdlZW4gMSB0byAyNTUgY2hhcmFjdGVycyBpbiBsZW5ndGggZm9yIHRhZ2dpbmcgYW5kIGNhdGVnb3JpemluZyB0aGUgZmxleCBjbHVzdGVyLlxuICAgKlxuICAgKiBAc2NoZW1hIENmbkZsZXhDbHVzdGVyUHJvcHMjVGFnc1xuICAgKi9cbiAgcmVhZG9ubHkgdGFncz86IFRhZ1tdO1xufVxuXG4vKipcbiAqIENvbnZlcnRzIGFuIG9iamVjdCBvZiB0eXBlICdDZm5GbGV4Q2x1c3RlclByb3BzJyB0byBKU09OIHJlcHJlc2VudGF0aW9uLlxuICovXG4vKiBlc2xpbnQtZGlzYWJsZSBtYXgtbGVuLCBxdW90ZS1wcm9wcyAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvSnNvbl9DZm5GbGV4Q2x1c3RlclByb3BzKFxuICBvYmo6IENmbkZsZXhDbHVzdGVyUHJvcHMgfCB1bmRlZmluZWRcbik6IFJlY29yZDxzdHJpbmcsIGFueT4gfCB1bmRlZmluZWQge1xuICBpZiAob2JqID09PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG4gIGNvbnN0IHJlc3VsdCA9IHtcbiAgICBQcm9maWxlOiBvYmoucHJvZmlsZSxcbiAgICBQcm9qZWN0SWQ6IG9iai5wcm9qZWN0SWQsXG4gICAgTmFtZTogb2JqLm5hbWUsXG4gICAgUHJvdmlkZXJTZXR0aW5nczogdG9Kc29uX1Byb3ZpZGVyU2V0dGluZ3Mob2JqLnByb3ZpZGVyU2V0dGluZ3MpLFxuICAgIEJhY2t1cFNldHRpbmdzOiB0b0pzb25fQmFja3VwU2V0dGluZ3Mob2JqLmJhY2t1cFNldHRpbmdzKSxcbiAgICBDb25uZWN0aW9uU3RyaW5nczogdG9Kc29uX0Nvbm5lY3Rpb25TdHJpbmdzKG9iai5jb25uZWN0aW9uU3RyaW5ncyksXG4gICAgVGVybWluYXRpb25Qcm90ZWN0aW9uRW5hYmxlZDogb2JqLnRlcm1pbmF0aW9uUHJvdGVjdGlvbkVuYWJsZWQsXG4gICAgVGFnczogb2JqLnRhZ3M/Lm1hcCgoeSkgPT4gdG9Kc29uX1RhZyh5KSksXG4gIH07XG4gIC8vIGZpbHRlciB1bmRlZmluZWQgdmFsdWVzXG4gIHJldHVybiBPYmplY3QuZW50cmllcyhyZXN1bHQpLnJlZHVjZShcbiAgICAociwgaSkgPT4gKGlbMV0gPT09IHVuZGVmaW5lZCA/IHIgOiB7IC4uLnIsIFtpWzBdXTogaVsxXSB9KSxcbiAgICB7fVxuICApO1xufVxuLyogZXNsaW50LWVuYWJsZSBtYXgtbGVuLCBxdW90ZS1wcm9wcyAqL1xuXG4vKipcbiAqIEdyb3VwIG9mIGNsb3VkIHByb3ZpZGVyIHNldHRpbmdzIHRoYXQgY29uZmlndXJlIHRoZSBwcm92aXNpb25lZCBNb25nb0RCIGZsZXggY2x1c3Rlci5cbiAqXG4gKiBAc2NoZW1hIFByb3ZpZGVyU2V0dGluZ3NcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQcm92aWRlclNldHRpbmdzIHtcbiAgLyoqXG4gICAqIENsb3VkIHNlcnZpY2UgcHJvdmlkZXIgb24gd2hpY2ggTW9uZ29EQiBDbG91ZCBwcm92aXNpb25lZCB0aGUgZmxleCBjbHVzdGVyLlxuICAgKlxuICAgKiBAc2NoZW1hIFByb3ZpZGVyU2V0dGluZ3MjQmFja2luZ1Byb3ZpZGVyTmFtZVxuICAgKi9cbiAgcmVhZG9ubHkgYmFja2luZ1Byb3ZpZGVyTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBIdW1hbi1yZWFkYWJsZSBsYWJlbCB0aGF0IGlkZW50aWZpZXMgdGhlIGdlb2dyYXBoaWMgbG9jYXRpb24gb2YgeW91ciBNb25nb0RCIGZsZXggY2x1c3Rlci4gVGhlIHJlZ2lvbiB5b3UgY2hvb3NlIGNhbiBhZmZlY3QgbmV0d29yayBsYXRlbmN5IGZvciBjbGllbnRzIGFjY2Vzc2luZyB5b3VyIGRhdGFiYXNlcy5cbiAgICpcbiAgICogQHNjaGVtYSBQcm92aWRlclNldHRpbmdzI1JlZ2lvbk5hbWVcbiAgICovXG4gIHJlYWRvbmx5IHJlZ2lvbk5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogU3RvcmFnZSBjYXBhY2l0eSBhdmFpbGFibGUgdG8gdGhlIGZsZXggY2x1c3RlciBleHByZXNzZWQgaW4gZ2lnYWJ5dGVzLlxuICAgKlxuICAgKiBAc2NoZW1hIFByb3ZpZGVyU2V0dGluZ3MjRGlza1NpemVHQlxuICAgKi9cbiAgcmVhZG9ubHkgZGlza1NpemVHYj86IG51bWJlcjtcblxuICAvKipcbiAgICogSHVtYW4tcmVhZGFibGUgbGFiZWwgdGhhdCBpZGVudGlmaWVzIHRoZSBjbG91ZCBzZXJ2aWNlIHByb3ZpZGVyLlxuICAgKlxuICAgKiBAc2NoZW1hIFByb3ZpZGVyU2V0dGluZ3MjUHJvdmlkZXJOYW1lXG4gICAqL1xuICByZWFkb25seSBwcm92aWRlck5hbWU/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogQ29udmVydHMgYW4gb2JqZWN0IG9mIHR5cGUgJ1Byb3ZpZGVyU2V0dGluZ3MnIHRvIEpTT04gcmVwcmVzZW50YXRpb24uXG4gKi9cbi8qIGVzbGludC1kaXNhYmxlIG1heC1sZW4sIHF1b3RlLXByb3BzICovXG5leHBvcnQgZnVuY3Rpb24gdG9Kc29uX1Byb3ZpZGVyU2V0dGluZ3MoXG4gIG9iajogUHJvdmlkZXJTZXR0aW5ncyB8IHVuZGVmaW5lZFxuKTogUmVjb3JkPHN0cmluZywgYW55PiB8IHVuZGVmaW5lZCB7XG4gIGlmIChvYmogPT09IHVuZGVmaW5lZCkge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbiAgY29uc3QgcmVzdWx0ID0ge1xuICAgIEJhY2tpbmdQcm92aWRlck5hbWU6IG9iai5iYWNraW5nUHJvdmlkZXJOYW1lLFxuICAgIFJlZ2lvbk5hbWU6IG9iai5yZWdpb25OYW1lLFxuICAgIERpc2tTaXplR0I6IG9iai5kaXNrU2l6ZUdiLFxuICAgIFByb3ZpZGVyTmFtZTogb2JqLnByb3ZpZGVyTmFtZSxcbiAgfTtcbiAgLy8gZmlsdGVyIHVuZGVmaW5lZCB2YWx1ZXNcbiAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKHJlc3VsdCkucmVkdWNlKFxuICAgIChyLCBpKSA9PiAoaVsxXSA9PT0gdW5kZWZpbmVkID8gciA6IHsgLi4uciwgW2lbMF1dOiBpWzFdIH0pLFxuICAgIHt9XG4gICk7XG59XG4vKiBlc2xpbnQtZW5hYmxlIG1heC1sZW4sIHF1b3RlLXByb3BzICovXG5cbi8qKlxuICogRmxleCBiYWNrdXAgY29uZmlndXJhdGlvblxuICpcbiAqIEBzY2hlbWEgQmFja3VwU2V0dGluZ3NcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBCYWNrdXBTZXR0aW5ncyB7XG4gIC8qKlxuICAgKiBGbGFnIHRoYXQgaW5kaWNhdGVzIHdoZXRoZXIgYmFja3VwcyBhcmUgcGVyZm9ybWVkIGZvciB0aGlzIGZsZXggY2x1c3Rlci4gQmFja3VwIHVzZXMgZmxleCBjbHVzdGVyIGJhY2t1cHMuXG4gICAqXG4gICAqIEBzY2hlbWEgQmFja3VwU2V0dGluZ3MjRW5hYmxlZFxuICAgKi9cbiAgcmVhZG9ubHkgZW5hYmxlZD86IGJvb2xlYW47XG59XG5cbi8qKlxuICogQ29udmVydHMgYW4gb2JqZWN0IG9mIHR5cGUgJ0JhY2t1cFNldHRpbmdzJyB0byBKU09OIHJlcHJlc2VudGF0aW9uLlxuICovXG4vKiBlc2xpbnQtZGlzYWJsZSBtYXgtbGVuLCBxdW90ZS1wcm9wcyAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvSnNvbl9CYWNrdXBTZXR0aW5ncyhcbiAgb2JqOiBCYWNrdXBTZXR0aW5ncyB8IHVuZGVmaW5lZFxuKTogUmVjb3JkPHN0cmluZywgYW55PiB8IHVuZGVmaW5lZCB7XG4gIGlmIChvYmogPT09IHVuZGVmaW5lZCkge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbiAgY29uc3QgcmVzdWx0ID0ge1xuICAgIEVuYWJsZWQ6IG9iai5lbmFibGVkLFxuICB9O1xuICAvLyBmaWx0ZXIgdW5kZWZpbmVkIHZhbHVlc1xuICByZXR1cm4gT2JqZWN0LmVudHJpZXMocmVzdWx0KS5yZWR1Y2UoXG4gICAgKHIsIGkpID0+IChpWzFdID09PSB1bmRlZmluZWQgPyByIDogeyAuLi5yLCBbaVswXV06IGlbMV0gfSksXG4gICAge31cbiAgKTtcbn1cbi8qIGVzbGludC1lbmFibGUgbWF4LWxlbiwgcXVvdGUtcHJvcHMgKi9cblxuLyoqXG4gKiBDb2xsZWN0aW9uIG9mIFVuaWZvcm0gUmVzb3VyY2UgTG9jYXRvcnMgdGhhdCBwb2ludCB0byB0aGUgTW9uZ29EQiBkYXRhYmFzZS5cbiAqXG4gKiBAc2NoZW1hIENvbm5lY3Rpb25TdHJpbmdzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29ubmVjdGlvblN0cmluZ3Mge1xuICAvKipcbiAgICogUHVibGljIGNvbm5lY3Rpb24gc3RyaW5nIHRoYXQgeW91IGNhbiB1c2UgdG8gY29ubmVjdCB0byB0aGlzIGNsdXN0ZXIuIFRoaXMgY29ubmVjdGlvbiBzdHJpbmcgdXNlcyB0aGUgbW9uZ29kYjovLyBwcm90b2NvbC5cbiAgICpcbiAgICogQHNjaGVtYSBDb25uZWN0aW9uU3RyaW5ncyNTdGFuZGFyZFxuICAgKi9cbiAgcmVhZG9ubHkgc3RhbmRhcmQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFB1YmxpYyBjb25uZWN0aW9uIHN0cmluZyB0aGF0IHlvdSBjYW4gdXNlIHRvIGNvbm5lY3QgdG8gdGhpcyBmbGV4IGNsdXN0ZXIuIFRoaXMgY29ubmVjdGlvbiBzdHJpbmcgdXNlcyB0aGUgbW9uZ29kYitzcnY6Ly8gcHJvdG9jb2wuXG4gICAqXG4gICAqIEBzY2hlbWEgQ29ubmVjdGlvblN0cmluZ3MjU3RhbmRhcmRTcnZcbiAgICovXG4gIHJlYWRvbmx5IHN0YW5kYXJkU3J2Pzogc3RyaW5nO1xufVxuXG4vKipcbiAqIENvbnZlcnRzIGFuIG9iamVjdCBvZiB0eXBlICdDb25uZWN0aW9uU3RyaW5ncycgdG8gSlNPTiByZXByZXNlbnRhdGlvbi5cbiAqL1xuLyogZXNsaW50LWRpc2FibGUgbWF4LWxlbiwgcXVvdGUtcHJvcHMgKi9cbmV4cG9ydCBmdW5jdGlvbiB0b0pzb25fQ29ubmVjdGlvblN0cmluZ3MoXG4gIG9iajogQ29ubmVjdGlvblN0cmluZ3MgfCB1bmRlZmluZWRcbik6IFJlY29yZDxzdHJpbmcsIGFueT4gfCB1bmRlZmluZWQge1xuICBpZiAob2JqID09PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG4gIGNvbnN0IHJlc3VsdCA9IHtcbiAgICBTdGFuZGFyZDogb2JqLnN0YW5kYXJkLFxuICAgIFN0YW5kYXJkU3J2OiBvYmouc3RhbmRhcmRTcnYsXG4gIH07XG4gIC8vIGZpbHRlciB1bmRlZmluZWQgdmFsdWVzXG4gIHJldHVybiBPYmplY3QuZW50cmllcyhyZXN1bHQpLnJlZHVjZShcbiAgICAociwgaSkgPT4gKGlbMV0gPT09IHVuZGVmaW5lZCA/IHIgOiB7IC4uLnIsIFtpWzBdXTogaVsxXSB9KSxcbiAgICB7fVxuICApO1xufVxuLyogZXNsaW50LWVuYWJsZSBtYXgtbGVuLCBxdW90ZS1wcm9wcyAqL1xuXG4vKipcbiAqIExpc3QgdGhhdCBjb250YWlucyBrZXktdmFsdWUgcGFpcnMgYmV0d2VlbiAxIHRvIDI1NSBjaGFyYWN0ZXJzIGluIGxlbmd0aCBmb3IgdGFnZ2luZyBhbmQgY2F0ZWdvcml6aW5nIHRoZSBjbHVzdGVyLlxuICpcbiAqIEBzY2hlbWEgdGFnXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVGFnIHtcbiAgLyoqXG4gICAqIENvbnN0YW50IHRoYXQgZGVmaW5lcyB0aGUgc2V0IG9mIHRoZSB0YWcuIEZvciBleGFtcGxlLCBlbnZpcm9ubWVudCBpbiB0aGUgZW52aXJvbm1lbnQgOiBwcm9kdWN0aW9uIHRhZy5cbiAgICpcbiAgICogQHNjaGVtYSB0YWcjS2V5XG4gICAqL1xuICByZWFkb25seSBrZXk6IHN0cmluZztcblxuICAvKipcbiAgICogVmFyaWFibGUgdGhhdCBiZWxvbmdzIHRvIHRoZSBzZXQgb2YgdGhlIHRhZy4gRm9yIGV4YW1wbGUsIHByb2R1Y3Rpb24gaW4gdGhlIGVudmlyb25tZW50IDogcHJvZHVjdGlvbiB0YWcuXG4gICAqXG4gICAqIEBzY2hlbWEgdGFnI1ZhbHVlXG4gICAqL1xuICByZWFkb25seSB2YWx1ZTogc3RyaW5nO1xufVxuXG4vKipcbiAqIENvbnZlcnRzIGFuIG9iamVjdCBvZiB0eXBlICdUYWcnIHRvIEpTT04gcmVwcmVzZW50YXRpb24uXG4gKi9cbi8qIGVzbGludC1kaXNhYmxlIG1heC1sZW4sIHF1b3RlLXByb3BzICovXG5leHBvcnQgZnVuY3Rpb24gdG9Kc29uX1RhZyhcbiAgb2JqOiBUYWcgfCB1bmRlZmluZWRcbik6IFJlY29yZDxzdHJpbmcsIGFueT4gfCB1bmRlZmluZWQge1xuICBpZiAob2JqID09PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG4gIGNvbnN0IHJlc3VsdCA9IHtcbiAgICBLZXk6IG9iai5rZXksXG4gICAgVmFsdWU6IG9iai52YWx1ZSxcbiAgfTtcbiAgLy8gZmlsdGVyIHVuZGVmaW5lZCB2YWx1ZXNcbiAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKHJlc3VsdCkucmVkdWNlKFxuICAgIChyLCBpKSA9PiAoaVsxXSA9PT0gdW5kZWZpbmVkID8gciA6IHsgLi4uciwgW2lbMF1dOiBpWzFdIH0pLFxuICAgIHt9XG4gICk7XG59XG4vKiBlc2xpbnQtZW5hYmxlIG1heC1sZW4sIHF1b3RlLXByb3BzICovXG5cbi8qKlxuICogQSBDbG91ZEZvcm1hdGlvbiBgTW9uZ29EQjo6QXRsYXM6OkZsZXhDbHVzdGVyYFxuICpcbiAqIEBjbG91ZGZvcm1hdGlvblJlc291cmNlIE1vbmdvREI6OkF0bGFzOjpGbGV4Q2x1c3RlclxuICogQHN0YWJpbGl0eSBleHRlcm5hbFxuICovXG5leHBvcnQgY2xhc3MgQ2ZuRmxleENsdXN0ZXIgZXh0ZW5kcyBjZGsuQ2ZuUmVzb3VyY2Uge1xuICAvKipcbiAgICogVGhlIENsb3VkRm9ybWF0aW9uIHJlc291cmNlIHR5cGUgbmFtZSBmb3IgdGhpcyByZXNvdXJjZSBjbGFzcy5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgQ0ZOX1JFU09VUkNFX1RZUEVfTkFNRSA9IFwiTW9uZ29EQjo6QXRsYXM6OkZsZXhDbHVzdGVyXCI7XG5cbiAgLyoqXG4gICAqIFJlc291cmNlIHByb3BzLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHByb3BzOiBDZm5GbGV4Q2x1c3RlclByb3BzO1xuXG4gIC8qKlxuICAgKiBBdHRyaWJ1dGUgYE1vbmdvREI6OkF0bGFzOjpGbGV4Q2x1c3Rlci5JZGBcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBhdHRySWQ6IHN0cmluZztcbiAgLyoqXG4gICAqIEF0dHJpYnV0ZSBgTW9uZ29EQjo6QXRsYXM6OkZsZXhDbHVzdGVyLlN0YXRlTmFtZWBcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBhdHRyU3RhdGVOYW1lOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBBdHRyaWJ1dGUgYE1vbmdvREI6OkF0bGFzOjpGbGV4Q2x1c3Rlci5DbHVzdGVyVHlwZWBcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBhdHRyQ2x1c3RlclR5cGU6IHN0cmluZztcbiAgLyoqXG4gICAqIEF0dHJpYnV0ZSBgTW9uZ29EQjo6QXRsYXM6OkZsZXhDbHVzdGVyLkNyZWF0ZURhdGVgXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgYXR0ckNyZWF0ZURhdGU6IHN0cmluZztcbiAgLyoqXG4gICAqIEF0dHJpYnV0ZSBgTW9uZ29EQjo6QXRsYXM6OkZsZXhDbHVzdGVyLk1vbmdvREJWZXJzaW9uYFxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGF0dHJNb25nb0RCVmVyc2lvbjogc3RyaW5nO1xuICAvKipcbiAgICogQXR0cmlidXRlIGBNb25nb0RCOjpBdGxhczo6RmxleENsdXN0ZXIuVmVyc2lvblJlbGVhc2VTeXN0ZW1gXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgYXR0clZlcnNpb25SZWxlYXNlU3lzdGVtOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIG5ldyBgTW9uZ29EQjo6QXRsYXM6OkZsZXhDbHVzdGVyYC5cbiAgICpcbiAgICogQHBhcmFtIHNjb3BlIC0gc2NvcGUgaW4gd2hpY2ggdGhpcyByZXNvdXJjZSBpcyBkZWZpbmVkXG4gICAqIEBwYXJhbSBpZCAgICAtIHNjb3BlZCBpZCBvZiB0aGUgcmVzb3VyY2VcbiAgICogQHBhcmFtIHByb3BzIC0gcmVzb3VyY2UgcHJvcGVydGllc1xuICAgKi9cbiAgY29uc3RydWN0b3IoXG4gICAgc2NvcGU6IGNvbnN0cnVjdHMuQ29uc3RydWN0LFxuICAgIGlkOiBzdHJpbmcsXG4gICAgcHJvcHM6IENmbkZsZXhDbHVzdGVyUHJvcHNcbiAgKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCB7XG4gICAgICB0eXBlOiBDZm5GbGV4Q2x1c3Rlci5DRk5fUkVTT1VSQ0VfVFlQRV9OQU1FLFxuICAgICAgcHJvcGVydGllczogdG9Kc29uX0NmbkZsZXhDbHVzdGVyUHJvcHMocHJvcHMpISxcbiAgICB9KTtcblxuICAgIHRoaXMucHJvcHMgPSBwcm9wcztcblxuICAgIHRoaXMuYXR0cklkID0gY2RrLlRva2VuLmFzU3RyaW5nKHRoaXMuZ2V0QXR0KFwiSWRcIikpO1xuICAgIHRoaXMuYXR0clN0YXRlTmFtZSA9IGNkay5Ub2tlbi5hc1N0cmluZyh0aGlzLmdldEF0dChcIlN0YXRlTmFtZVwiKSk7XG4gICAgdGhpcy5hdHRyQ2x1c3RlclR5cGUgPSBjZGsuVG9rZW4uYXNTdHJpbmcodGhpcy5nZXRBdHQoXCJDbHVzdGVyVHlwZVwiKSk7XG4gICAgdGhpcy5hdHRyQ3JlYXRlRGF0ZSA9IGNkay5Ub2tlbi5hc1N0cmluZyh0aGlzLmdldEF0dChcIkNyZWF0ZURhdGVcIikpO1xuICAgIHRoaXMuYXR0ck1vbmdvREJWZXJzaW9uID0gY2RrLlRva2VuLmFzU3RyaW5nKHRoaXMuZ2V0QXR0KFwiTW9uZ29EQlZlcnNpb25cIikpO1xuICAgIHRoaXMuYXR0clZlcnNpb25SZWxlYXNlU3lzdGVtID0gY2RrLlRva2VuLmFzU3RyaW5nKFxuICAgICAgdGhpcy5nZXRBdHQoXCJWZXJzaW9uUmVsZWFzZVN5c3RlbVwiKVxuICAgICk7XG4gIH1cbn1cbiJdfQ==
;