awscdk-resources-mongodbatlas
Version:
MongoDB Atlas CDK Construct Library for AWS CloudFormation Resources
154 lines • 23.3 kB
JavaScript
;
var _a;
Object.defineProperty(exports, "__esModule", { value: true });
exports.CfnDataLakePipeline = exports.SourceType = exports.SinkType = void 0;
exports.toJson_CfnDataLakePipelineProps = toJson_CfnDataLakePipelineProps;
exports.toJson_Sink = toJson_Sink;
exports.toJson_Source = toJson_Source;
exports.toJson_Transformations = toJson_Transformations;
exports.toJson_PartitionFields = toJson_PartitionFields;
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
// Generated by cdk-import
const cdk = require("aws-cdk-lib");
/**
* Converts an object of type 'CfnDataLakePipelineProps' to JSON representation.
*/
/* eslint-disable max-len, quote-props */
function toJson_CfnDataLakePipelineProps(obj) {
if (obj === undefined) {
return undefined;
}
const result = {
Profile: obj.profile,
ProjectId: obj.projectId,
State: obj.state,
Name: obj.name,
Sink: toJson_Sink(obj.sink),
Source: toJson_Source(obj.source),
Transformations: obj.transformations?.map((y) => toJson_Transformations(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 'Sink' to JSON representation.
*/
/* eslint-disable max-len, quote-props */
function toJson_Sink(obj) {
if (obj === undefined) {
return undefined;
}
const result = {
Type: obj.type,
MetadataProvider: obj.metadataProvider,
MetadataRegion: obj.metadataRegion,
PartitionFields: obj.partitionFields?.map((y) => toJson_PartitionFields(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 'Source' to JSON representation.
*/
/* eslint-disable max-len, quote-props */
function toJson_Source(obj) {
if (obj === undefined) {
return undefined;
}
const result = {
Type: obj.type,
ClusterName: obj.clusterName,
CollectionName: obj.collectionName,
DatabaseName: obj.databaseName,
GroupId: obj.groupId,
};
// filter undefined values
return Object.entries(result).reduce((r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }), {});
}
/**
* Converts an object of type 'Transformations' to JSON representation.
*/
/* eslint-disable max-len, quote-props */
function toJson_Transformations(obj) {
if (obj === undefined) {
return undefined;
}
const result = {
Field: obj.field,
Type: obj.type,
};
// 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 */
/**
* Type of ingestion destination of this Data Lake Pipeline.
*
* @schema SinkType
*/
var SinkType;
(function (SinkType) {
/** DLS */
SinkType["DLS"] = "DLS";
})(SinkType || (exports.SinkType = SinkType = {}));
/**
* Converts an object of type 'PartitionFields' to JSON representation.
*/
/* eslint-disable max-len, quote-props */
function toJson_PartitionFields(obj) {
if (obj === undefined) {
return undefined;
}
const result = {
FieldName: obj.fieldName,
Order: obj.order,
};
// 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 */
/**
* Type of ingestion source of this Data Lake Pipeline.
*
* @schema SourceType
*/
var SourceType;
(function (SourceType) {
/** ON_DEMAND_CPS */
SourceType["ON_DEMAND_CPS"] = "ON_DEMAND_CPS";
/** PERIODIC_CPS */
SourceType["PERIODIC_CPS"] = "PERIODIC_CPS";
})(SourceType || (exports.SourceType = SourceType = {}));
/**
* A CloudFormation `MongoDB::Atlas::DataLakePipeline`
*
* @cloudformationResource MongoDB::Atlas::DataLakePipeline
* @stability external
*/
class CfnDataLakePipeline extends cdk.CfnResource {
/**
* Create a new `MongoDB::Atlas::DataLakePipeline`.
*
* @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: CfnDataLakePipeline.CFN_RESOURCE_TYPE_NAME,
properties: toJson_CfnDataLakePipelineProps(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"));
}
}
exports.CfnDataLakePipeline = CfnDataLakePipeline;
_a = JSII_RTTI_SYMBOL_1;
CfnDataLakePipeline[_a] = { fqn: "awscdk-resources-mongodbatlas.CfnDataLakePipeline", version: "3.12.1" };
/**
* The CloudFormation resource type name for this resource class.
*/
CfnDataLakePipeline.CFN_RESOURCE_TYPE_NAME = "MongoDB::Atlas::DataLakePipeline";
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbDEtcmVzb3VyY2VzL2RhdGEtbGFrZS1waXBlbGluZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBNERBLDBFQW9CQztBQTBDRCxrQ0FpQkM7QUFpREQsc0NBa0JDO0FBNEJELHdEQWVDO0FBc0NELHdEQWVDOztBQTlTRCwwQkFBMEI7QUFDMUIsbUNBQW1DO0FBdURuQzs7R0FFRztBQUNILHlDQUF5QztBQUN6QyxTQUFnQiwrQkFBK0IsQ0FDN0MsR0FBeUM7SUFFekMsSUFBSSxHQUFHLEtBQUssU0FBUyxFQUFFLENBQUM7UUFDdEIsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUNELE1BQU0sTUFBTSxHQUFHO1FBQ2IsT0FBTyxFQUFFLEdBQUcsQ0FBQyxPQUFPO1FBQ3BCLFNBQVMsRUFBRSxHQUFHLENBQUMsU0FBUztRQUN4QixLQUFLLEVBQUUsR0FBRyxDQUFDLEtBQUs7UUFDaEIsSUFBSSxFQUFFLEdBQUcsQ0FBQyxJQUFJO1FBQ2QsSUFBSSxFQUFFLFdBQVcsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDO1FBQzNCLE1BQU0sRUFBRSxhQUFhLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQztRQUNqQyxlQUFlLEVBQUUsR0FBRyxDQUFDLGVBQWUsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLHNCQUFzQixDQUFDLENBQUMsQ0FBQyxDQUFDO0tBQzVFLENBQUM7SUFDRiwwQkFBMEI7SUFDMUIsT0FBTyxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sQ0FDbEMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDLENB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QUNWLEtBQStCO1FBRS9CLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFO1lBQ2YsSUFBSSxFQUFFLG1CQUFtQixDQUFDLHNCQUFzQjtZQUNoRCxVQUFVLEVBQUUsK0JBQStCLENBQUMsS0FBSyxDQUFFO1NBQ3BELENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBRW5CLElBQUksQ0FBQyxlQUFlLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDO1FBQ3RFLElBQUksQ0FBQyxNQUFNLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQ3BELElBQUksQ0FBQyxtQkFBbUIsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FDM0MsSUFBSSxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUMvQixDQUFDO0lBQ0osQ0FBQzs7QUFqREgsa0RBa0RDOzs7QUFqREM7O0dBRUc7QUFDb0IsMENBQXNCLEdBQzNDLGtDQUFrQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gR2VuZXJhdGVkIGJ5IGNkay1pbXBvcnRcbmltcG9ydCAqIGFzIGNkayBmcm9tIFwiYXdzLWNkay1saWJcIjtcbmltcG9ydCAqIGFzIGNvbnN0cnVjdHMgZnJvbSBcImNvbnN0cnVjdHNcIjtcblxuLyoqXG4gKiBEYXRhIExha2UgaXMgZGVwcmVjYXRlZC4gQXMgb2YgU2VwdGVtYmVyIDIwMjQsIERhdGEgTGFrZSBpcyBkZXByZWNhdGVkLiBJZiB5b3UgdXNlIERhdGEgTGFrZSwgeW91IHNob3VsZCBtaWdyYXRlIHRvIGFsdGVybmF0aXZlIHNvbHV0aW9ucyBiZWZvcmUgdGhlIHNlcnZpY2UgaXMgcmVtb3ZlZC4gVG8gbGVhcm4gbW9yZSwgc2VlIDxodHRwczovL2RvY2h1Yi5tb25nb2RiLm9yZy9jb3JlL2RhdGEtbGFrZS1kZXByZWNhdGlvbj4uIFRoaXMgcmVzb3VyY2UgcmV0dXJucywgYWRkcywgZWRpdHMsIGFuZCByZW1vdmVzIGRhdGEgbGFrZSBwaXBlbGluZXMuXG4gKlxuICogQHNjaGVtYSBDZm5EYXRhTGFrZVBpcGVsaW5lUHJvcHNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDZm5EYXRhTGFrZVBpcGVsaW5lUHJvcHMge1xuICAvKipcbiAgICogUHJvZmlsZSB1c2VkIHRvIHByb3ZpZGUgY3JlZGVudGlhbHMgaW5mb3JtYXRpb24sIChhIHNlY3JldCB3aXRoIHRoZSBjZm4vYXRsYXMvcHJvZmlsZS97UHJvZmlsZX0sIGlzIHJlcXVpcmVkKSwgaWYgbm90IHByb3ZpZGVkIGRlZmF1bHQgaXMgdXNlZFxuICAgKlxuICAgKiBAc2NoZW1hIENmbkRhdGFMYWtlUGlwZWxpbmVQcm9wcyNQcm9maWxlXG4gICAqL1xuICByZWFkb25seSBwcm9maWxlPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBVbmlxdWUgMjQtaGV4YWRlY2ltYWwgZGlnaXQgc3RyaW5nIHRoYXQgaWRlbnRpZmllcyB5b3VyIHByb2plY3QuXG4gICAqXG4gICAqIEBzY2hlbWEgQ2ZuRGF0YUxha2VQaXBlbGluZVByb3BzI1Byb2plY3RJZFxuICAgKi9cbiAgcmVhZG9ubHkgcHJvamVjdElkOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFN0YXRlIG9mIHRoZSBEYXRhIExha2UgUGlwZWxpbmUuXG4gICAqXG4gICAqIEBzY2hlbWEgQ2ZuRGF0YUxha2VQaXBlbGluZVByb3BzI1N0YXRlXG4gICAqL1xuICByZWFkb25seSBzdGF0ZT86IHN0cmluZztcblxuICAvKipcbiAgICogTmFtZSBvZiB0aGlzIERhdGEgTGFrZSBQaXBlbGluZS5cbiAgICpcbiAgICogQHNjaGVtYSBDZm5EYXRhTGFrZVBpcGVsaW5lUHJvcHMjTmFtZVxuICAgKi9cbiAgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAc2NoZW1hIENmbkRhdGFMYWtlUGlwZWxpbmVQcm9wcyNTaW5rXG4gICAqL1xuICByZWFkb25seSBzaW5rOiBTaW5rO1xuXG4gIC8qKlxuICAgKiBAc2NoZW1hIENmbkRhdGFMYWtlUGlwZWxpbmVQcm9wcyNTb3VyY2VcbiAgICovXG4gIHJlYWRvbmx5IHNvdXJjZT86IFNvdXJjZTtcblxuICAvKipcbiAgICogSW5nZXN0aW9uIGRlc3RpbmF0aW9uIG9mIGEgRGF0YSBMYWtlIFBpcGVsaW5lLlxuICAgKlxuICAgKiBAc2NoZW1hIENmbkRhdGFMYWtlUGlwZWxpbmVQcm9wcyNUcmFuc2Zvcm1hdGlvbnNcbiAgICovXG4gIHJlYWRvbmx5IHRyYW5zZm9ybWF0aW9uczogVHJhbnNmb3JtYXRpb25zW107XG59XG5cbi8qKlxuICogQ29udmVydHMgYW4gb2JqZWN0IG9mIHR5cGUgJ0NmbkRhdGFMYWtlUGlwZWxpbmVQcm9wcycgdG8gSlNPTiByZXByZXNlbnRhdGlvbi5cbiAqL1xuLyogZXNsaW50LWRpc2FibGUgbWF4LWxlbiwgcXVvdGUtcHJvcHMgKi9cbmV4cG9ydCBmdW5jdGlvbiB0b0pzb25fQ2ZuRGF0YUxha2VQaXBlbGluZVByb3BzKFxuICBvYmo6IENmbkRhdGFMYWtlUGlwZWxpbmVQcm9wcyB8IHVuZGVmaW5lZFxuKTogUmVjb3JkPHN0cmluZywgYW55PiB8IHVuZGVmaW5lZCB7XG4gIGlmIChvYmogPT09IHVuZGVmaW5lZCkge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbiAgY29uc3QgcmVzdWx0ID0ge1xuICAgIFByb2ZpbGU6IG9iai5wcm9maWxlLFxuICAgIFByb2plY3RJZDogb2JqLnByb2plY3RJZCxcbiAgICBTdGF0ZTogb2JqLnN0YXRlLFxuICAgIE5hbWU6IG9iai5uYW1lLFxuICAgIFNpbms6IHRvSnNvbl9TaW5rKG9iai5zaW5rKSxcbiAgICBTb3VyY2U6IHRvSnNvbl9Tb3VyY2Uob2JqLnNvdXJjZSksXG4gICAgVHJhbnNmb3JtYXRpb25zOiBvYmoudHJhbnNmb3JtYXRpb25zPy5tYXAoKHkpID0+IHRvSnNvbl9UcmFuc2Zvcm1hdGlvbnMoeSkpLFxuICB9O1xuICAvLyBmaWx0ZXIgdW5kZWZpbmVkIHZhbHVlc1xuICByZXR1cm4gT2JqZWN0LmVudHJpZXMocmVzdWx0KS5yZWR1Y2UoXG4gICAgKHIsIGkpID0+IChpWzFdID09PSB1bmRlZmluZWQgPyByIDogeyAuLi5yLCBbaVswXV06IGlbMV0gfSksXG4gICAge31cbiAgKTtcbn1cbi8qIGVzbGludC1lbmFibGUgbWF4LWxlbiwgcXVvdGUtcHJvcHMgKi9cblxuLyoqXG4gKiBJbmdlc3Rpb24gZGVzdGluYXRpb24gb2YgYSBEYXRhIExha2UgUGlwZWxpbmUuXG4gKlxuICogQHNjaGVtYSBzaW5rXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2luayB7XG4gIC8qKlxuICAgKiBUeXBlIG9mIGluZ2VzdGlvbiBkZXN0aW5hdGlvbiBvZiB0aGlzIERhdGEgTGFrZSBQaXBlbGluZS5cbiAgICpcbiAgICogQHNjaGVtYSBzaW5rI1R5cGVcbiAgICovXG4gIHJlYWRvbmx5IHR5cGU/OiBTaW5rVHlwZTtcblxuICAvKipcbiAgICogVGFyZ2V0IGNsb3VkIHByb3ZpZGVyIGZvciB0aGlzIERhdGEgTGFrZSBQaXBlbGluZS5cbiAgICpcbiAgICogQHNjaGVtYSBzaW5rI01ldGFkYXRhUHJvdmlkZXJcbiAgICovXG4gIHJlYWRvbmx5IG1ldGFkYXRhUHJvdmlkZXI/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRhcmdldCBjbG91ZCBwcm92aWRlciByZWdpb24gZm9yIHRoaXMgRGF0YSBMYWtlIFBpcGVsaW5lLlxuICAgKlxuICAgKiBAc2NoZW1hIHNpbmsjTWV0YWRhdGFSZWdpb25cbiAgICovXG4gIHJlYWRvbmx5IG1ldGFkYXRhUmVnaW9uPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBPcmRlcmVkIGZpZWxkcyB1c2VkIHRvIHBoeXNpY2FsbHkgb3JnYW5pemUgZGF0YSBpbiB0aGUgZGVzdGluYXRpb24uXG4gICAqXG4gICAqIEBzY2hlbWEgc2luayNQYXJ0aXRpb25GaWVsZHNcbiAgICovXG4gIHJlYWRvbmx5IHBhcnRpdGlvbkZpZWxkcz86IFBhcnRpdGlvbkZpZWxkc1tdO1xufVxuXG4vKipcbiAqIENvbnZlcnRzIGFuIG9iamVjdCBvZiB0eXBlICdTaW5rJyB0byBKU09OIHJlcHJlc2VudGF0aW9uLlxuICovXG4vKiBlc2xpbnQtZGlzYWJsZSBtYXgtbGVuLCBxdW90ZS1wcm9wcyAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvSnNvbl9TaW5rKFxuICBvYmo6IFNpbmsgfCB1bmRlZmluZWRcbik6IFJlY29yZDxzdHJpbmcsIGFueT4gfCB1bmRlZmluZWQge1xuICBpZiAob2JqID09PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG4gIGNvbnN0IHJlc3VsdCA9IHtcbiAgICBUeXBlOiBvYmoudHlwZSxcbiAgICBNZXRhZGF0YVByb3ZpZGVyOiBvYmoubWV0YWRhdGFQcm92aWRlcixcbiAgICBNZXRhZGF0YVJlZ2lvbjogb2JqLm1ldGFkYXRhUmVnaW9uLFxuICAgIFBhcnRpdGlvbkZpZWxkczogb2JqLnBhcnRpdGlvbkZpZWxkcz8ubWFwKCh5KSA9PiB0b0pzb25fUGFydGl0aW9uRmllbGRzKHkpKSxcbiAgfTtcbiAgLy8gZmlsdGVyIHVuZGVmaW5lZCB2YWx1ZXNcbiAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKHJlc3VsdCkucmVkdWNlKFxuICAgIChyLCBpKSA9PiAoaVsxXSA9PT0gdW5kZWZpbmVkID8gciA6IHsgLi4uciwgW2lbMF1dOiBpWzFdIH0pLFxuICAgIHt9XG4gICk7XG59XG4vKiBlc2xpbnQtZW5hYmxlIG1heC1sZW4sIHF1b3RlLXByb3BzICovXG5cbi8qKlxuICogSW5nZXN0aW9uIGRlc3RpbmF0aW9uIG9mIGEgRGF0YSBMYWtlIFBpcGVsaW5lLlxuICpcbiAqIEBzY2hlbWEgc291cmNlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU291cmNlIHtcbiAgLyoqXG4gICAqIFR5cGUgb2YgaW5nZXN0aW9uIHNvdXJjZSBvZiB0aGlzIERhdGEgTGFrZSBQaXBlbGluZS5cbiAgICpcbiAgICogQHNjaGVtYSBzb3VyY2UjVHlwZVxuICAgKi9cbiAgcmVhZG9ubHkgdHlwZT86IFNvdXJjZVR5cGU7XG5cbiAgLyoqXG4gICAqIEh1bWFuLXJlYWRhYmxlIG5hbWUgdGhhdCBpZGVudGlmaWVzIHRoZSBjbHVzdGVyLlxuICAgKlxuICAgKiBAc2NoZW1hIHNvdXJjZSNDbHVzdGVyTmFtZVxuICAgKi9cbiAgcmVhZG9ubHkgY2x1c3Rlck5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEh1bWFuLXJlYWRhYmxlIG5hbWUgdGhhdCBpZGVudGlmaWVzIHRoZSBjb2xsZWN0aW9uLlxuICAgKlxuICAgKiBAc2NoZW1hIHNvdXJjZSNDb2xsZWN0aW9uTmFtZVxuICAgKi9cbiAgcmVhZG9ubHkgY29sbGVjdGlvbk5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEh1bWFuLXJlYWRhYmxlIG5hbWUgdGhhdCBpZGVudGlmaWVzIHRoZSBkYXRhYmFzZS5cbiAgICpcbiAgICogQHNjaGVtYSBzb3VyY2UjRGF0YWJhc2VOYW1lXG4gICAqL1xuICByZWFkb25seSBkYXRhYmFzZU5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFVuaXF1ZSAyNC1oZXhhZGVjaW1hbCBjaGFyYWN0ZXIgc3RyaW5nIHRoYXQgaWRlbnRpZmllcyB0aGUgcHJvamVjdC5cbiAgICpcbiAgICogQHNjaGVtYSBzb3VyY2UjR3JvdXBJZFxuICAgKi9cbiAgcmVhZG9ubHkgZ3JvdXBJZD86IHN0cmluZztcbn1cblxuLyoqXG4gKiBDb252ZXJ0cyBhbiBvYmplY3Qgb2YgdHlwZSAnU291cmNlJyB0byBKU09OIHJlcHJlc2VudGF0aW9uLlxuICovXG4vKiBlc2xpbnQtZGlzYWJsZSBtYXgtbGVuLCBxdW90ZS1wcm9wcyAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvSnNvbl9Tb3VyY2UoXG4gIG9iajogU291cmNlIHwgdW5kZWZpbmVkXG4pOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IHwgdW5kZWZpbmVkIHtcbiAgaWYgKG9iaiA9PT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuICBjb25zdCByZXN1bHQgPSB7XG4gICAgVHlwZTogb2JqLnR5cGUsXG4gICAgQ2x1c3Rlck5hbWU6IG9iai5jbHVzdGVyTmFtZSxcbiAgICBDb2xsZWN0aW9uTmFtZTogb2JqLmNvbGxlY3Rpb25OYW1lLFxuICAgIERhdGFiYXNlTmFtZTogb2JqLmRhdGFiYXNlTmFtZSxcbiAgICBHcm91cElkOiBvYmouZ3JvdXBJZCxcbiAgfTtcbiAgLy8gZmlsdGVyIHVuZGVmaW5lZCB2YWx1ZXNcbiAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKHJlc3VsdCkucmVkdWNlKFxuICAgIChyLCBpKSA9PiAoaVsxXSA9PT0gdW5kZWZpbmVkID8gciA6IHsgLi4uciwgW2lbMF1dOiBpWzFdIH0pLFxuICAgIHt9XG4gICk7XG59XG4vKiBlc2xpbnQtZW5hYmxlIG1heC1sZW4sIHF1b3RlLXByb3BzICovXG5cbi8qKlxuICogT3JkZXJlZCBmaWVsZHMgdXNlZCB0byBwaHlzaWNhbGx5IG9yZ2FuaXplIGRhdGEgaW4gdGhlIGRlc3RpbmF0aW9uLlxuICpcbiAqIEBzY2hlbWEgdHJhbnNmb3JtYXRpb25zXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVHJhbnNmb3JtYXRpb25zIHtcbiAgLyoqXG4gICAqIEtleSBpbiB0aGUgZG9jdW1lbnQuXG4gICAqXG4gICAqIEBzY2hlbWEgdHJhbnNmb3JtYXRpb25zI0ZpZWxkXG4gICAqL1xuICByZWFkb25seSBmaWVsZD86IHN0cmluZztcblxuICAvKipcbiAgICogVHlwZSBvZiB0cmFuc2Zvcm1hdGlvbiBhcHBsaWVkIGR1cmluZyB0aGUgZXhwb3J0IG9mIHRoZSBuYW1lc3BhY2UgaW4gYSBEYXRhIExha2UgUGlwZWxpbmUuXG4gICAqXG4gICAqIEBzY2hlbWEgdHJhbnNmb3JtYXRpb25zI1R5cGVcbiAgICovXG4gIHJlYWRvbmx5IHR5cGU/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogQ29udmVydHMgYW4gb2JqZWN0IG9mIHR5cGUgJ1RyYW5zZm9ybWF0aW9ucycgdG8gSlNPTiByZXByZXNlbnRhdGlvbi5cbiAqL1xuLyogZXNsaW50LWRpc2FibGUgbWF4LWxlbiwgcXVvdGUtcHJvcHMgKi9cbmV4cG9ydCBmdW5jdGlvbiB0b0pzb25fVHJhbnNmb3JtYXRpb25zKFxuICBvYmo6IFRyYW5zZm9ybWF0aW9ucyB8IHVuZGVmaW5lZFxuKTogUmVjb3JkPHN0cmluZywgYW55PiB8IHVuZGVmaW5lZCB7XG4gIGlmIChvYmogPT09IHVuZGVmaW5lZCkge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbiAgY29uc3QgcmVzdWx0ID0ge1xuICAgIEZpZWxkOiBvYmouZmllbGQsXG4gICAgVHlwZTogb2JqLnR5cGUsXG4gIH07XG4gIC8vIGZpbHRlciB1bmRlZmluZWQgdmFsdWVzXG4gIHJldHVybiBPYmplY3QuZW50cmllcyhyZXN1bHQpLnJlZHVjZShcbiAgICAociwgaSkgPT4gKGlbMV0gPT09IHVuZGVmaW5lZCA/IHIgOiB7IC4uLnIsIFtpWzBdXTogaVsxXSB9KSxcbiAgICB7fVxuICApO1xufVxuLyogZXNsaW50LWVuYWJsZSBtYXgtbGVuLCBxdW90ZS1wcm9wcyAqL1xuXG4vKipcbiAqIFR5cGUgb2YgaW5nZXN0aW9uIGRlc3RpbmF0aW9uIG9mIHRoaXMgRGF0YSBMYWtlIFBpcGVsaW5lLlxuICpcbiAqIEBzY2hlbWEgU2lua1R5cGVcbiAqL1xuZXhwb3J0IGVudW0gU2lua1R5cGUge1xuICAvKiogRExTICovXG4gIERMUyA9IFwiRExTXCIsXG59XG5cbi8qKlxuICogT3JkZXJlZCBmaWVsZHMgdXNlZCB0byBwaHlzaWNhbGx5IG9yZ2FuaXplIGRhdGEgaW4gdGhlIGRlc3RpbmF0aW9uLlxuICpcbiAqIEBzY2hlbWEgcGFydGl0aW9uRmllbGRzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGFydGl0aW9uRmllbGRzIHtcbiAgLyoqXG4gICAqIEh1bWFuLXJlYWRhYmxlIGxhYmVsIHRoYXQgaWRlbnRpZmllcyB0aGUgZmllbGQgbmFtZSB1c2VkIHRvIHBhcnRpdGlvbiBkYXRhLlxuICAgKlxuICAgKiBAc2NoZW1hIHBhcnRpdGlvbkZpZWxkcyNGaWVsZE5hbWVcbiAgICovXG4gIHJlYWRvbmx5IGZpZWxkTmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogU2VxdWVuY2UgaW4gd2hpY2ggTW9uZ29EQiBDbG91ZCBzbGljZXMgdGhlIGNvbGxlY3Rpb24gZGF0YSB0byBjcmVhdGUgcGFydGl0aW9ucy4gVGhlIHJlc291cmNlIGV4cHJlc3NlcyB0aGlzIHNlcXVlbmNlIHN0YXJ0aW5nIHdpdGggemVyby5cbiAgICpcbiAgICogQHNjaGVtYSBwYXJ0aXRpb25GaWVsZHMjT3JkZXJcbiAgICovXG4gIHJlYWRvbmx5IG9yZGVyPzogbnVtYmVyO1xufVxuXG4vKipcbiAqIENvbnZlcnRzIGFuIG9iamVjdCBvZiB0eXBlICdQYXJ0aXRpb25GaWVsZHMnIHRvIEpTT04gcmVwcmVzZW50YXRpb24uXG4gKi9cbi8qIGVzbGludC1kaXNhYmxlIG1heC1sZW4sIHF1b3RlLXByb3BzICovXG5leHBvcnQgZnVuY3Rpb24gdG9Kc29uX1BhcnRpdGlvbkZpZWxkcyhcbiAgb2JqOiBQYXJ0aXRpb25GaWVsZHMgfCB1bmRlZmluZWRcbik6IFJlY29yZDxzdHJpbmcsIGFueT4gfCB1bmRlZmluZWQge1xuICBpZiAob2JqID09PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG4gIGNvbnN0IHJlc3VsdCA9IHtcbiAgICBGaWVsZE5hbWU6IG9iai5maWVsZE5hbWUsXG4gICAgT3JkZXI6IG9iai5vcmRlcixcbiAgfTtcbiAgLy8gZmlsdGVyIHVuZGVmaW5lZCB2YWx1ZXNcbiAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKHJlc3VsdCkucmVkdWNlKFxuICAgIChyLCBpKSA9PiAoaVsxXSA9PT0gdW5kZWZpbmVkID8gciA6IHsgLi4uciwgW2lbMF1dOiBpWzFdIH0pLFxuICAgIHt9XG4gICk7XG59XG4vKiBlc2xpbnQtZW5hYmxlIG1heC1sZW4sIHF1b3RlLXByb3BzICovXG5cbi8qKlxuICogVHlwZSBvZiBpbmdlc3Rpb24gc291cmNlIG9mIHRoaXMgRGF0YSBMYWtlIFBpcGVsaW5lLlxuICpcbiAqIEBzY2hlbWEgU291cmNlVHlwZVxuICovXG5leHBvcnQgZW51bSBTb3VyY2VUeXBlIHtcbiAgLyoqIE9OX0RFTUFORF9DUFMgKi9cbiAgT05fREVNQU5EX0NQUyA9IFwiT05fREVNQU5EX0NQU1wiLFxuICAvKiogUEVSSU9ESUNfQ1BTICovXG4gIFBFUklPRElDX0NQUyA9IFwiUEVSSU9ESUNfQ1BTXCIsXG59XG5cbi8qKlxuICogQSBDbG91ZEZvcm1hdGlvbiBgTW9uZ29EQjo6QXRsYXM6OkRhdGFMYWtlUGlwZWxpbmVgXG4gKlxuICogQGNsb3VkZm9ybWF0aW9uUmVzb3VyY2UgTW9uZ29EQjo6QXRsYXM6OkRhdGFMYWtlUGlwZWxpbmVcbiAqIEBzdGFiaWxpdHkgZXh0ZXJuYWxcbiAqL1xuZXhwb3J0IGNsYXNzIENmbkRhdGFMYWtlUGlwZWxpbmUgZXh0ZW5kcyBjZGsuQ2ZuUmVzb3VyY2Uge1xuICAvKipcbiAgICogVGhlIENsb3VkRm9ybWF0aW9uIHJlc291cmNlIHR5cGUgbmFtZSBmb3IgdGhpcyByZXNvdXJjZSBjbGFzcy5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgQ0ZOX1JFU09VUkNFX1RZUEVfTkFNRSA9XG4gICAgXCJNb25nb0RCOjpBdGxhczo6RGF0YUxha2VQaXBlbGluZVwiO1xuXG4gIC8qKlxuICAgKiBSZXNvdXJjZSBwcm9wcy5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBwcm9wczogQ2ZuRGF0YUxha2VQaXBlbGluZVByb3BzO1xuXG4gIC8qKlxuICAgKiBBdHRyaWJ1dGUgYE1vbmdvREI6OkF0bGFzOjpEYXRhTGFrZVBpcGVsaW5lLkNyZWF0ZWREYXRlYFxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGF0dHJDcmVhdGVkRGF0ZTogc3RyaW5nO1xuICAvKipcbiAgICogQXR0cmlidXRlIGBNb25nb0RCOjpBdGxhczo6RGF0YUxha2VQaXBlbGluZS5JZGBcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBhdHRySWQ6IHN0cmluZztcbiAgLyoqXG4gICAqIEF0dHJpYnV0ZSBgTW9uZ29EQjo6QXRsYXM6OkRhdGFMYWtlUGlwZWxpbmUuTGFzdFVwZGF0ZWREYXRlYFxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGF0dHJMYXN0VXBkYXRlZERhdGU6IHN0cmluZztcblxuICAvKipcbiAgICogQ3JlYXRlIGEgbmV3IGBNb25nb0RCOjpBdGxhczo6RGF0YUxha2VQaXBlbGluZWAuXG4gICAqXG4gICAqIEBwYXJhbSBzY29wZSAtIHNjb3BlIGluIHdoaWNoIHRoaXMgcmVzb3VyY2UgaXMgZGVmaW5lZFxuICAgKiBAcGFyYW0gaWQgICAgLSBzY29wZWQgaWQgb2YgdGhlIHJlc291cmNlXG4gICAqIEBwYXJhbSBwcm9wcyAtIHJlc291cmNlIHByb3BlcnRpZXNcbiAgICovXG4gIGNvbnN0cnVjdG9yKFxuICAgIHNjb3BlOiBjb25zdHJ1Y3RzLkNvbnN0cnVjdCxcbiAgICBpZDogc3RyaW5nLFxuICAgIHByb3BzOiBDZm5EYXRhTGFrZVBpcGVsaW5lUHJvcHNcbiAgKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCB7XG4gICAgICB0eXBlOiBDZm5EYXRhTGFrZVBpcGVsaW5lLkNGTl9SRVNPVVJDRV9UWVBFX05BTUUsXG4gICAgICBwcm9wZXJ0aWVzOiB0b0pzb25fQ2ZuRGF0YUxha2VQaXBlbGluZVByb3BzKHByb3BzKSEsXG4gICAgfSk7XG5cbiAgICB0aGlzLnByb3BzID0gcHJvcHM7XG5cbiAgICB0aGlzLmF0dHJDcmVhdGVkRGF0ZSA9IGNkay5Ub2tlbi5hc1N0cmluZyh0aGlzLmdldEF0dChcIkNyZWF0ZWREYXRlXCIpKTtcbiAgICB0aGlzLmF0dHJJZCA9IGNkay5Ub2tlbi5hc1N0cmluZyh0aGlzLmdldEF0dChcIklkXCIpKTtcbiAgICB0aGlzLmF0dHJMYXN0VXBkYXRlZERhdGUgPSBjZGsuVG9rZW4uYXNTdHJpbmcoXG4gICAgICB0aGlzLmdldEF0dChcIkxhc3RVcGRhdGVkRGF0ZVwiKVxuICAgICk7XG4gIH1cbn1cbiJdfQ==