UNPKG

awscdk-resources-mongodbatlas

Version:

MongoDB Atlas CDK Construct Library for AWS CloudFormation Resources

134 lines 26.2 kB
"use strict"; var _a; Object.defineProperty(exports, "__esModule", { value: true }); exports.CfnCloudBackUpRestoreJobs = exports.CfnCloudBackUpRestoreJobsPropsDeliveryType = exports.CfnCloudBackUpRestoreJobsPropsInstanceType = void 0; exports.toJson_CfnCloudBackUpRestoreJobsProps = toJson_CfnCloudBackUpRestoreJobsProps; exports.toJson_CfnCloudBackUpRestoreJobsPropsLinks = toJson_CfnCloudBackUpRestoreJobsPropsLinks; exports.toJson_SynchronousCreationOptions = toJson_SynchronousCreationOptions; const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti"); // Generated by cdk-import const cdk = require("aws-cdk-lib"); /** * Converts an object of type 'CfnCloudBackUpRestoreJobsProps' to JSON representation. */ /* eslint-disable max-len, quote-props */ function toJson_CfnCloudBackUpRestoreJobsProps(obj) { if (obj === undefined) { return undefined; } const result = { ProjectId: obj.projectId, InstanceType: obj.instanceType, InstanceName: obj.instanceName, DeliveryType: obj.deliveryType, SnapshotId: obj.snapshotId, Links: obj.links?.map((y) => toJson_CfnCloudBackUpRestoreJobsPropsLinks(y)), OpLogTs: obj.opLogTs, OpLogInc: obj.opLogInc, PointInTimeUtcSeconds: obj.pointInTimeUtcSeconds, TargetProjectId: obj.targetProjectId, TargetClusterName: obj.targetClusterName, Profile: obj.profile, EnableSynchronousCreation: obj.enableSynchronousCreation, SynchronousCreationOptions: toJson_SynchronousCreationOptions(obj.synchronousCreationOptions), }; // 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 instance specified on the Instance Name serverless or cluster. **WARNING:** `serverless` instance type is deprecated and will be removed in January 2026. For more details, see [Migrate your programmatic tools from M2, M5, or Serverless Instances to Flex Clusters](https://www.mongodb.com/docs/atlas/flex-migration/). * * @schema CfnCloudBackUpRestoreJobsPropsInstanceType */ var CfnCloudBackUpRestoreJobsPropsInstanceType; (function (CfnCloudBackUpRestoreJobsPropsInstanceType) { /** serverless */ CfnCloudBackUpRestoreJobsPropsInstanceType["SERVERLESS"] = "serverless"; /** cluster */ CfnCloudBackUpRestoreJobsPropsInstanceType["CLUSTER"] = "cluster"; })(CfnCloudBackUpRestoreJobsPropsInstanceType || (exports.CfnCloudBackUpRestoreJobsPropsInstanceType = CfnCloudBackUpRestoreJobsPropsInstanceType = {})); /** * Type of restore job to create.The value can be any one of download,automated or point_in_time * * @schema CfnCloudBackUpRestoreJobsPropsDeliveryType */ var CfnCloudBackUpRestoreJobsPropsDeliveryType; (function (CfnCloudBackUpRestoreJobsPropsDeliveryType) { /** download */ CfnCloudBackUpRestoreJobsPropsDeliveryType["DOWNLOAD"] = "download"; /** automated */ CfnCloudBackUpRestoreJobsPropsDeliveryType["AUTOMATED"] = "automated"; /** pointInTime */ CfnCloudBackUpRestoreJobsPropsDeliveryType["POINT_IN_TIME"] = "pointInTime"; })(CfnCloudBackUpRestoreJobsPropsDeliveryType || (exports.CfnCloudBackUpRestoreJobsPropsDeliveryType = CfnCloudBackUpRestoreJobsPropsDeliveryType = {})); /** * Converts an object of type 'CfnCloudBackUpRestoreJobsPropsLinks' to JSON representation. */ /* eslint-disable max-len, quote-props */ function toJson_CfnCloudBackUpRestoreJobsPropsLinks(obj) { if (obj === undefined) { return undefined; } const result = { Rel: obj.rel, Href: obj.href, }; // filter undefined values return Object.entries(result).reduce((r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }), {}); } /** * Converts an object of type 'SynchronousCreationOptions' to JSON representation. */ /* eslint-disable max-len, quote-props */ function toJson_SynchronousCreationOptions(obj) { if (obj === undefined) { return undefined; } const result = { TimeOutInSeconds: obj.timeOutInSeconds, CallbackDelaySeconds: obj.callbackDelaySeconds, ReturnSuccessIfTimeOut: obj.returnSuccessIfTimeOut, }; // 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::CloudBackUpRestoreJobs` * * @cloudformationResource MongoDB::Atlas::CloudBackUpRestoreJobs * @stability external */ class CfnCloudBackUpRestoreJobs extends cdk.CfnResource { /** * Create a new `MongoDB::Atlas::CloudBackUpRestoreJobs`. * * @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: CfnCloudBackUpRestoreJobs.CFN_RESOURCE_TYPE_NAME, properties: toJson_CfnCloudBackUpRestoreJobsProps(props), }); this.props = props; this.attrId = cdk.Token.asString(this.getAtt("Id")); this.attrDeliveryUrl = cdk.Token.asList(this.getAtt("DeliveryUrl")); this.attrCancelled = this.getAtt("Cancelled"); this.attrFailed = this.getAtt("Failed"); this.attrExpired = this.getAtt("Expired"); this.attrExpiresAt = cdk.Token.asString(this.getAtt("ExpiresAt")); this.attrFinishedAt = cdk.Token.asString(this.getAtt("FinishedAt")); this.attrTimestamp = cdk.Token.asString(this.getAtt("Timestamp")); } } exports.CfnCloudBackUpRestoreJobs = CfnCloudBackUpRestoreJobs; _a = JSII_RTTI_SYMBOL_1; CfnCloudBackUpRestoreJobs[_a] = { fqn: "awscdk-resources-mongodbatlas.CfnCloudBackUpRestoreJobs", version: "3.13.0" }; /** * The CloudFormation resource type name for this resource class. */ CfnCloudBackUpRestoreJobs.CFN_RESOURCE_TYPE_NAME = "MongoDB::Atlas::CloudBackUpRestoreJobs"; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbDEtcmVzb3VyY2VzL2Nsb3VkLWJhY2t1cC1yZXN0b3JlLWpvYnMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQWlIQSxzRkE2QkM7QUFnREQsZ0dBZUM7QUFtQ0QsOEVBZ0JDOztBQWhRRCwwQkFBMEI7QUFDMUIsbUNBQW1DO0FBNEduQzs7R0FFRztBQUNILHlDQUF5QztBQUN6QyxTQUFnQixxQ0FBcUMsQ0FDbkQsR0FBK0M7SUFFL0MsSUFBSSxHQUFHLEtBQUssU0FBUyxFQUFFLENBQUM7UUFDdEIsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUNELE1BQU0sTUFBTSxHQUFHO1FBQ2IsU0FBUyxFQUFFLEdBQUcsQ0FBQyxTQUFTO1FBQ3hCLFlBQVksRUFBRSxHQUFHLENBQUMsWUFBWTtRQUM5QixZQUFZLEVBQUUsR0FBRyxDQUFDLFlBQVk7UUFDOUIsWUFBWSxFQUFFLEdBQUcsQ0FBQyxZQUFZO1FBQzlCLFVBQVUsRUFBRSxHQUFHLENBQUMsVUFBVTtRQUMxQixLQUFLLEVBQUUsR0FBRyxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLDBDQUEwQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzNFLE9BQU8sRUFBRSxHQUFHLENBQUMsT0FBTztRQUNwQixRQUFRLEVBQUUsR0FBRyxDQUFDLFFBQVE7UUFDdEIscUJBQXFCLEVBQUUsR0FBRyxDQUFDLHFCQUFxQjtRQUNoRCxlQUFlLEVBQUUsR0FBRyxDQUFDLGVBQWU7UUFDcEMsaUJBQWlCLEVBQUUsR0FBRyxDQUFDLGlCQUFpQjtRQUN4QyxPQUFPLEVBQUUsR0FBRyxDQUFDLE9BQU87UUFDcEIseUJBQXlCLEVBQUUsR0FBRyxDQUFDLHlCQUF5QjtRQUN4RCwwQkFBMEIsRUFBRSxpQ0FBaUMsQ0FDM0QsR0FBRyxDQUFDLDBCQUEwQixDQUMvQjtLQUNGLENB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cmNlc0NvbnRlbnQiOlsiLy8gR2VuZXJhdGVkIGJ5IGNkay1pbXBvcnRcbmltcG9ydCAqIGFzIGNkayBmcm9tIFwiYXdzLWNkay1saWJcIjtcbmltcG9ydCAqIGFzIGNvbnN0cnVjdHMgZnJvbSBcImNvbnN0cnVjdHNcIjtcblxuLyoqXG4gKiBSZXR1cm5zLCBzdGFydHMsIGFuZCBjYW5jZWxzIENsb3VkIEJhY2t1cCByZXN0b3JlIGpvYnMuXG4gKlxuICogQHNjaGVtYSBDZm5DbG91ZEJhY2tVcFJlc3RvcmVKb2JzUHJvcHNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDZm5DbG91ZEJhY2tVcFJlc3RvcmVKb2JzUHJvcHMge1xuICAvKipcbiAgICogVGhlIHVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSBwcm9qZWN0IGZvciB0aGUgQXRsYXMgY2x1c3Rlci5cbiAgICpcbiAgICogQHNjaGVtYSBDZm5DbG91ZEJhY2tVcFJlc3RvcmVKb2JzUHJvcHMjUHJvamVjdElkXG4gICAqL1xuICByZWFkb25seSBwcm9qZWN0SWQ6IHN0cmluZztcblxuICAvKipcbiAgICogVHlwZSBvZiBpbnN0YW5jZSBzcGVjaWZpZWQgb24gdGhlIEluc3RhbmNlIE5hbWUgc2VydmVybGVzcyBvciBjbHVzdGVyLiAqKldBUk5JTkc6KiogYHNlcnZlcmxlc3NgIGluc3RhbmNlIHR5cGUgaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIEphbnVhcnkgMjAyNi4gRm9yIG1vcmUgZGV0YWlscywgc2VlIFtNaWdyYXRlIHlvdXIgcHJvZ3JhbW1hdGljIHRvb2xzIGZyb20gTTIsIE01LCBvciBTZXJ2ZXJsZXNzIEluc3RhbmNlcyB0byBGbGV4IENsdXN0ZXJzXShodHRwczovL3d3dy5tb25nb2RiLmNvbS9kb2NzL2F0bGFzL2ZsZXgtbWlncmF0aW9uLykuXG4gICAqXG4gICAqIEBzY2hlbWEgQ2ZuQ2xvdWRCYWNrVXBSZXN0b3JlSm9ic1Byb3BzI0luc3RhbmNlVHlwZVxuICAgKi9cbiAgcmVhZG9ubHkgaW5zdGFuY2VUeXBlOiBDZm5DbG91ZEJhY2tVcFJlc3RvcmVKb2JzUHJvcHNJbnN0YW5jZVR5cGU7XG5cbiAgLyoqXG4gICAqIFRoZSBpbnN0YW5jZSBuYW1lIG9mIHRoZSBTZXJ2ZXJsZXNzL0NsdXN0ZXIgd2hvc2Ugc25hcHNob3QgeW91IHdhbnQgdG8gcmVzdG9yZSBvciB5b3Ugd2FudCB0byByZXRyaWV2ZSByZXN0b3JlIGpvYnMuXG4gICAqXG4gICAqIEBzY2hlbWEgQ2ZuQ2xvdWRCYWNrVXBSZXN0b3JlSm9ic1Byb3BzI0luc3RhbmNlTmFtZVxuICAgKi9cbiAgcmVhZG9ubHkgaW5zdGFuY2VOYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFR5cGUgb2YgcmVzdG9yZSBqb2IgdG8gY3JlYXRlLlRoZSB2YWx1ZSBjYW4gYmUgYW55IG9uZSBvZiBkb3dubG9hZCxhdXRvbWF0ZWQgb3IgcG9pbnRfaW5fdGltZVxuICAgKlxuICAgKiBAc2NoZW1hIENmbkNsb3VkQmFja1VwUmVzdG9yZUpvYnNQcm9wcyNEZWxpdmVyeVR5cGVcbiAgICovXG4gIHJlYWRvbmx5IGRlbGl2ZXJ5VHlwZTogQ2ZuQ2xvdWRCYWNrVXBSZXN0b3JlSm9ic1Byb3BzRGVsaXZlcnlUeXBlO1xuXG4gIC8qKlxuICAgKiBVbmlxdWUgaWRlbnRpZmllciBvZiB0aGUgc291cmNlIHNuYXBzaG90IElEIG9mIHRoZSByZXN0b3JlIGpvYi5cbiAgICpcbiAgICogQHNjaGVtYSBDZm5DbG91ZEJhY2tVcFJlc3RvcmVKb2JzUHJvcHMjU25hcHNob3RJZFxuICAgKi9cbiAgcmVhZG9ubHkgc25hcHNob3RJZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBPbmUgb3IgbW9yZSBsaW5rcyB0byBzdWItcmVzb3VyY2VzIGFuZC9vciByZWxhdGVkIHJlc291cmNlcy5cbiAgICpcbiAgICogQHNjaGVtYSBDZm5DbG91ZEJhY2tVcFJlc3RvcmVKb2JzUHJvcHMjTGlua3NcbiAgICovXG4gIHJlYWRvbmx5IGxpbmtzPzogQ2ZuQ2xvdWRCYWNrVXBSZXN0b3JlSm9ic1Byb3BzTGlua3NbXTtcblxuICAvKipcbiAgICogVGltZXN0YW1wIGluIHRoZSBudW1iZXIgb2Ygc2Vjb25kcyB0aGF0IGhhdmUgZWxhcHNlZCBzaW5jZSB0aGUgVU5JWCBlcG9jaCBmcm9tIHdoaWNoIHRvIHlvdSB3YW50IHRvIHJlc3RvcmUgdGhpcyBzbmFwc2hvdC4gVGhpcyBpcyB0aGUgZmlyc3QgcGFydCBvZiBhbiBPcGxvZyB0aW1lc3RhbXAuXG4gICAqXG4gICAqIEBzY2hlbWEgQ2ZuQ2xvdWRCYWNrVXBSZXN0b3JlSm9ic1Byb3BzI09wTG9nVHNcbiAgICovXG4gIHJlYWRvbmx5IG9wTG9nVHM/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE9wbG9nIG9wZXJhdGlvbiBudW1iZXIgZnJvbSB3aGljaCB0byB5b3Ugd2FudCB0byByZXN0b3JlIHRoaXMgc25hcHNob3QuIFRoaXMgaXMgdGhlIHNlY29uZCBwYXJ0IG9mIGFuIE9wbG9nIHRpbWVzdGFtcC5cbiAgICpcbiAgICogQHNjaGVtYSBDZm5DbG91ZEJhY2tVcFJlc3RvcmVKb2JzUHJvcHMjT3BMb2dJbmNcbiAgICovXG4gIHJlYWRvbmx5IG9wTG9nSW5jPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBJZiB5b3UgcGVyZm9ybWVkIGEgUG9pbnQtaW4tVGltZSByZXN0b3JlcyBhdCBhIHRpbWUgc3BlY2lmaWVkIGJ5IGEgVW5peCB0aW1lIGluIHNlY29uZHMgc2luY2UgZXBvY2gsIHBvaW50SW5UaW1lVVRDU2Vjb25kcyBpbmRpY2F0ZXMgdGhlIFVuaXggdGltZSB1c2VkLlxuICAgKlxuICAgKiBAc2NoZW1hIENmbkNsb3VkQmFja1VwUmVzdG9yZUpvYnNQcm9wcyNQb2ludEluVGltZVV0Y1NlY29uZHNcbiAgICovXG4gIHJlYWRvbmx5IHBvaW50SW5UaW1lVXRjU2Vjb25kcz86IG51bWJlcjtcblxuICAvKipcbiAgICogTmFtZSBvZiB0aGUgdGFyZ2V0IEF0bGFzIHByb2plY3Qgb2YgdGhlIHJlc3RvcmUgam9iLiBPbmx5IHZpc2libGUgaWYgZGVsaXZlcnlUeXBlIGlzIGF1dG9tYXRlZC5cbiAgICpcbiAgICogQHNjaGVtYSBDZm5DbG91ZEJhY2tVcFJlc3RvcmVKb2JzUHJvcHMjVGFyZ2V0UHJvamVjdElkXG4gICAqL1xuICByZWFkb25seSB0YXJnZXRQcm9qZWN0SWQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE5hbWUgb2YgdGhlIHRhcmdldCBBdGxhcyBjbHVzdGVyIHRvIHdoaWNoIHRoZSByZXN0b3JlIGpvYiByZXN0b3JlcyB0aGUgc25hcHNob3QuIE9ubHkgdmlzaWJsZSBpZiBkZWxpdmVyeVR5cGUgaXMgYXV0b21hdGVkLlxuICAgKlxuICAgKiBAc2NoZW1hIENmbkNsb3VkQmFja1VwUmVzdG9yZUpvYnNQcm9wcyNUYXJnZXRDbHVzdGVyTmFtZVxuICAgKi9cbiAgcmVhZG9ubHkgdGFyZ2V0Q2x1c3Rlck5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFByb2ZpbGUgdXNlZCB0byBwcm92aWRlIGNyZWRlbnRpYWxzIGluZm9ybWF0aW9uLCAoYSBzZWNyZXQgd2l0aCB0aGUgY2ZuL2F0bGFzL3Byb2ZpbGUve1Byb2ZpbGV9LCBpcyByZXF1aXJlZCksIGlmIG5vdCBwcm92aWRlZCBkZWZhdWx0IGlzIHVzZWRcbiAgICpcbiAgICogQHNjaGVtYSBDZm5DbG91ZEJhY2tVcFJlc3RvcmVKb2JzUHJvcHMjUHJvZmlsZVxuICAgKi9cbiAgcmVhZG9ubHkgcHJvZmlsZT86IHN0cmluZztcblxuICAvKipcbiAgICogSWYgc2V0IHRvIHRydWUsIHRoZSBDbG91ZEZvcm1hdGlvbiByZXNvdXJjZSB3aWxsIHdhaXQgdW50aWwgdGhlIGpvYiBpcyBjb21wbGV0ZWQsIFdBUk5JTkc6IGlmIHRoZSBzbmFwc2hvdCBoYXMgYSBiaWcgbG9hZCBvZiBkYXRhLCB0aGUgY2xvdWQgZm9ybWF0aW9uIHJlc291cmNlIG1pZ2h0IHRha2UgYSBsb25nIHRpbWUgdG8gZmluaXNoIGxlYWRpbmcgdG8gaGlnaCBjb3N0c1xuICAgKlxuICAgKiBAc2NoZW1hIENmbkNsb3VkQmFja1VwUmVzdG9yZUpvYnNQcm9wcyNFbmFibGVTeW5jaHJvbm91c0NyZWF0aW9uXG4gICAqL1xuICByZWFkb25seSBlbmFibGVTeW5jaHJvbm91c0NyZWF0aW9uPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogT3B0aW9ucyB0aGF0IG5lZWRzIHRvIGJlIHNldCB0byBjb250cm9sIHRoZSBzeW5jaHJvbm91cyBjcmVhdGlvbiBmbG93LCB0aGlzIG9wdGlvbnMgbmVlZCB0byBiZSBzZXQgaWYgRW5hYmxlU3luY2hyb25vdXNDcmVhdGlvbiBpcyBzZSB0byBUUlVFXG4gICAqXG4gICAqIEBzY2hlbWEgQ2ZuQ2xvdWRCYWNrVXBSZXN0b3JlSm9ic1Byb3BzI1N5bmNocm9ub3VzQ3JlYXRpb25PcHRpb25zXG4gICAqL1xuICByZWFkb25seSBzeW5jaHJvbm91c0NyZWF0aW9uT3B0aW9ucz86IFN5bmNocm9ub3VzQ3JlYXRpb25PcHRpb25zO1xufVxuXG4vKipcbiAqIENvbnZlcnRzIGFuIG9iamVjdCBvZiB0eXBlICdDZm5DbG91ZEJhY2tVcFJlc3RvcmVKb2JzUHJvcHMnIHRvIEpTT04gcmVwcmVzZW50YXRpb24uXG4gKi9cbi8qIGVzbGludC1kaXNhYmxlIG1heC1sZW4sIHF1b3RlLXByb3BzICovXG5leHBvcnQgZnVuY3Rpb24gdG9Kc29uX0NmbkNsb3VkQmFja1VwUmVzdG9yZUpvYnNQcm9wcyhcbiAgb2JqOiBDZm5DbG91ZEJhY2tVcFJlc3RvcmVKb2JzUHJvcHMgfCB1bmRlZmluZWRcbik6IFJlY29yZDxzdHJpbmcsIGFueT4gfCB1bmRlZmluZWQge1xuICBpZiAob2JqID09PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG4gIGNvbnN0IHJlc3VsdCA9IHtcbiAgICBQcm9qZWN0SWQ6IG9iai5wcm9qZWN0SWQsXG4gICAgSW5zdGFuY2VUeXBlOiBvYmouaW5zdGFuY2VUeXBlLFxuICAgIEluc3RhbmNlTmFtZTogb2JqLmluc3RhbmNlTmFtZSxcbiAgICBEZWxpdmVyeVR5cGU6IG9iai5kZWxpdmVyeVR5cGUsXG4gICAgU25hcHNob3RJZDogb2JqLnNuYXBzaG90SWQsXG4gICAgTGlua3M6IG9iai5saW5rcz8ubWFwKCh5KSA9PiB0b0pzb25fQ2ZuQ2xvdWRCYWNrVXBSZXN0b3JlSm9ic1Byb3BzTGlua3MoeSkpLFxuICAgIE9wTG9nVHM6IG9iai5vcExvZ1RzLFxuICAgIE9wTG9nSW5jOiBvYmoub3BMb2dJbmMsXG4gICAgUG9pbnRJblRpbWVVdGNTZWNvbmRzOiBvYmoucG9pbnRJblRpbWVVdGNTZWNvbmRzLFxuICAgIFRhcmdldFByb2plY3RJZDogb2JqLnRhcmdldFByb2plY3RJZCxcbiAgICBUYXJnZXRDbHVzdGVyTmFtZTogb2JqLnRhcmdldENsdXN0ZXJOYW1lLFxuICAgIFByb2ZpbGU6IG9iai5wcm9maWxlLFxuICAgIEVuYWJsZVN5bmNocm9ub3VzQ3JlYXRpb246IG9iai5lbmFibGVTeW5jaHJvbm91c0NyZWF0aW9uLFxuICAgIFN5bmNocm9ub3VzQ3JlYXRpb25PcHRpb25zOiB0b0pzb25fU3luY2hyb25vdXNDcmVhdGlvbk9wdGlvbnMoXG4gICAgICBvYmouc3luY2hyb25vdXNDcmVhdGlvbk9wdGlvbnNcbiAgICApLFxuICB9O1xuICAvLyBmaWx0ZXIgdW5kZWZpbmVkIHZhbHVlc1xuICByZXR1cm4gT2JqZWN0LmVudHJpZXMocmVzdWx0KS5yZWR1Y2UoXG4gICAgKHIsIGkpID0+IChpWzFdID09PSB1bmRlZmluZWQgPyByIDogeyAuLi5yLCBbaVswXV06IGlbMV0gfSksXG4gICAge31cbiAgKTtcbn1cbi8qIGVzbGludC1lbmFibGUgbWF4LWxlbiwgcXVvdGUtcHJvcHMgKi9cblxuLyoqXG4gKiBUeXBlIG9mIGluc3RhbmNlIHNwZWNpZmllZCBvbiB0aGUgSW5zdGFuY2UgTmFtZSBzZXJ2ZXJsZXNzIG9yIGNsdXN0ZXIuICoqV0FSTklORzoqKiBgc2VydmVybGVzc2AgaW5zdGFuY2UgdHlwZSBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gSmFudWFyeSAyMDI2LiBGb3IgbW9yZSBkZXRhaWxzLCBzZWUgW01pZ3JhdGUgeW91ciBwcm9ncmFtbWF0aWMgdG9vbHMgZnJvbSBNMiwgTTUsIG9yIFNlcnZlcmxlc3MgSW5zdGFuY2VzIHRvIEZsZXggQ2x1c3RlcnNdKGh0dHBzOi8vd3d3Lm1vbmdvZGIuY29tL2RvY3MvYXRsYXMvZmxleC1taWdyYXRpb24vKS5cbiAqXG4gKiBAc2NoZW1hIENmbkNsb3VkQmFja1VwUmVzdG9yZUpvYnNQcm9wc0luc3RhbmNlVHlwZVxuICovXG5leHBvcnQgZW51bSBDZm5DbG91ZEJhY2tVcFJlc3RvcmVKb2JzUHJvcHNJbnN0YW5jZVR5cGUge1xuICAvKiogc2VydmVybGVzcyAqL1xuICBTRVJWRVJMRVNTID0gXCJzZXJ2ZXJsZXNzXCIsXG4gIC8qKiBjbHVzdGVyICovXG4gIENMVVNURVIgPSBcImNsdXN0ZXJcIixcbn1cblxuLyoqXG4gKiBUeXBlIG9mIHJlc3RvcmUgam9iIHRvIGNyZWF0ZS5UaGUgdmFsdWUgY2FuIGJlIGFueSBvbmUgb2YgZG93bmxvYWQsYXV0b21hdGVkIG9yIHBvaW50X2luX3RpbWVcbiAqXG4gKiBAc2NoZW1hIENmbkNsb3VkQmFja1VwUmVzdG9yZUpvYnNQcm9wc0RlbGl2ZXJ5VHlwZVxuICovXG5leHBvcnQgZW51bSBDZm5DbG91ZEJhY2tVcFJlc3RvcmVKb2JzUHJvcHNEZWxpdmVyeVR5cGUge1xuICAvKiogZG93bmxvYWQgKi9cbiAgRE9XTkxPQUQgPSBcImRvd25sb2FkXCIsXG4gIC8qKiBhdXRvbWF0ZWQgKi9cbiAgQVVUT01BVEVEID0gXCJhdXRvbWF0ZWRcIixcbiAgLyoqIHBvaW50SW5UaW1lICovXG4gIFBPSU5UX0lOX1RJTUUgPSBcInBvaW50SW5UaW1lXCIsXG59XG5cbi8qKlxuICogQHNjaGVtYSBDZm5DbG91ZEJhY2tVcFJlc3RvcmVKb2JzUHJvcHNMaW5rc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIENmbkNsb3VkQmFja1VwUmVzdG9yZUpvYnNQcm9wc0xpbmtzIHtcbiAgLyoqXG4gICAqIEBzY2hlbWEgQ2ZuQ2xvdWRCYWNrVXBSZXN0b3JlSm9ic1Byb3BzTGlua3MjUmVsXG4gICAqL1xuICByZWFkb25seSByZWw/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEBzY2hlbWEgQ2ZuQ2xvdWRCYWNrVXBSZXN0b3JlSm9ic1Byb3BzTGlua3MjSHJlZlxuICAgKi9cbiAgcmVhZG9ubHkgaHJlZj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBDb252ZXJ0cyBhbiBvYmplY3Qgb2YgdHlwZSAnQ2ZuQ2xvdWRCYWNrVXBSZXN0b3JlSm9ic1Byb3BzTGlua3MnIHRvIEpTT04gcmVwcmVzZW50YXRpb24uXG4gKi9cbi8qIGVzbGludC1kaXNhYmxlIG1heC1sZW4sIHF1b3RlLXByb3BzICovXG5leHBvcnQgZnVuY3Rpb24gdG9Kc29uX0NmbkNsb3VkQmFja1VwUmVzdG9yZUpvYnNQcm9wc0xpbmtzKFxuICBvYmo6IENmbkNsb3VkQmFja1VwUmVzdG9yZUpvYnNQcm9wc0xpbmtzIHwgdW5kZWZpbmVkXG4pOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IHwgdW5kZWZpbmVkIHtcbiAgaWYgKG9iaiA9PT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuICBjb25zdCByZXN1bHQgPSB7XG4gICAgUmVsOiBvYmoucmVsLFxuICAgIEhyZWY6IG9iai5ocmVmLFxuICB9O1xuICAvLyBmaWx0ZXIgdW5kZWZpbmVkIHZhbHVlc1xuICByZXR1cm4gT2JqZWN0LmVudHJpZXMocmVzdWx0KS5yZWR1Y2UoXG4gICAgKHIsIGkpID0+IChpWzFdID09PSB1bmRlZmluZWQgPyByIDogeyAuLi5yLCBbaVswXV06IGlbMV0gfSksXG4gICAge31cbiAgKTtcbn1cbi8qIGVzbGludC1lbmFibGUgbWF4LWxlbiwgcXVvdGUtcHJvcHMgKi9cblxuLyoqXG4gKiBPcHRpb25zIHRoYXQgbmVlZHMgdG8gYmUgc2V0IHRvIGNvbnRyb2wgdGhlIHN5bmNocm9ub3VzIGNyZWF0aW9uIGZsb3csIHRoaXMgb3B0aW9ucyBuZWVkIHRvIGJlIHNldCBpZiBFbmFibGVTeW5jaHJvbm91c0NyZWF0aW9uIGlzIHNlIHRvIFRSVUVcbiAqXG4gKiBAc2NoZW1hIFN5bmNocm9ub3VzQ3JlYXRpb25PcHRpb25zXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3luY2hyb25vdXNDcmVhdGlvbk9wdGlvbnMge1xuICAvKipcbiAgICogVGhlIGFtb3VudCBvZiB0aW1lIHRoZSBwcm9jZXNzIHdpbGwgd2FpdCB1bnRpbCBleGl0aW5nIHdpdGggYSBzdWNjZXNzLCBkZWZhdWx0ICgxMjAwIHNlY29uZHMpXG4gICAqXG4gICAqIEBzY2hlbWEgU3luY2hyb25vdXNDcmVhdGlvbk9wdGlvbnMjVGltZU91dEluU2Vjb25kc1xuICAgKi9cbiAgcmVhZG9ubHkgdGltZU91dEluU2Vjb25kcz86IG51bWJlcjtcblxuICAvKipcbiAgICogUmVwcmVzZW50cyB0aGUgdGltZSBpbnRlcnZhbCwgbWVhc3VyZWQgaW4gc2Vjb25kcywgZm9yIHRoZSBzeW5jaHJvbm91cyBwcm9jZXNzIHRvIHdhaXQgYmVmb3JlIGNoZWNraW5nIGFnYWluIHRvIHZlcmlmeSBpZiB0aGUgam9iIGhhcyBiZWVuIGNvbXBsZXRlZC4gZXhhbXBsZTogaWYgc2V0IHRvIDIwLCBpdCB3aWxsIGNoZWsgZXZlcnkgMjAgc2Vjb25kcyBpZiB0aGUgcmVzb3VyY2UgaXMgY29tcGxldGVkLCBkZWZhdWx0ICgzMCBzZWNvbmRzKVxuICAgKlxuICAgKiBAc2NoZW1hIFN5bmNocm9ub3VzQ3JlYXRpb25PcHRpb25zI0NhbGxiYWNrRGVsYXlTZWNvbmRzXG4gICAqL1xuICByZWFkb25seSBjYWxsYmFja0RlbGF5U2Vjb25kcz86IG51bWJlcjtcblxuICAvKipcbiAgICogaWYgc2V0IHRvIHRydWUsIHRoZSBwcm9jZXNzIHdpbGwgcmV0dXJuIHN1Y2Nlc3MsIGluIHRoZSBldmVudCBvZiBhIHRpbWVPdXQsIGRlZmF1bHQgZmFsc2VcbiAgICpcbiAgICogQHNjaGVtYSBTeW5jaHJvbm91c0NyZWF0aW9uT3B0aW9ucyNSZXR1cm5TdWNjZXNzSWZUaW1lT3V0XG4gICAqL1xuICByZWFkb25seSByZXR1cm5TdWNjZXNzSWZUaW1lT3V0PzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBDb252ZXJ0cyBhbiBvYmplY3Qgb2YgdHlwZSAnU3luY2hyb25vdXNDcmVhdGlvbk9wdGlvbnMnIHRvIEpTT04gcmVwcmVzZW50YXRpb24uXG4gKi9cbi8qIGVzbGludC1kaXNhYmxlIG1heC1sZW4sIHF1b3RlLXByb3BzICovXG5leHBvcnQgZnVuY3Rpb24gdG9Kc29uX1N5bmNocm9ub3VzQ3JlYXRpb25PcHRpb25zKFxuICBvYmo6IFN5bmNocm9ub3VzQ3JlYXRpb25PcHRpb25zIHwgdW5kZWZpbmVkXG4pOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IHwgdW5kZWZpbmVkIHtcbiAgaWYgKG9iaiA9PT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuICBjb25zdCByZXN1bHQgPSB7XG4gICAgVGltZU91dEluU2Vjb25kczogb2JqLnRpbWVPdXRJblNlY29uZHMsXG4gICAgQ2FsbGJhY2tEZWxheVNlY29uZHM6IG9iai5jYWxsYmFja0RlbGF5U2Vjb25kcyxcbiAgICBSZXR1cm5TdWNjZXNzSWZUaW1lT3V0OiBvYmoucmV0dXJuU3VjY2Vzc0lmVGltZU91dCxcbiAgfTtcbiAgLy8gZmlsdGVyIHVuZGVmaW5lZCB2YWx1ZXNcbiAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKHJlc3VsdCkucmVkdWNlKFxuICAgIChyLCBpKSA9PiAoaVsxXSA9PT0gdW5kZWZpbmVkID8gciA6IHsgLi4uciwgW2lbMF1dOiBpWzFdIH0pLFxuICAgIHt9XG4gICk7XG59XG4vKiBlc2xpbnQtZW5hYmxlIG1heC1sZW4sIHF1b3RlLXByb3BzICovXG5cbi8qKlxuICogQSBDbG91ZEZvcm1hdGlvbiBgTW9uZ29EQjo6QXRsYXM6OkNsb3VkQmFja1VwUmVzdG9yZUpvYnNgXG4gKlxuICogQGNsb3VkZm9ybWF0aW9uUmVzb3VyY2UgTW9uZ29EQjo6QXRsYXM6OkNsb3VkQmFja1VwUmVzdG9yZUpvYnNcbiAqIEBzdGFiaWxpdHkgZXh0ZXJuYWxcbiAqL1xuZXhwb3J0IGNsYXNzIENmbkNsb3VkQmFja1VwUmVzdG9yZUpvYnMgZXh0ZW5kcyBjZGsuQ2ZuUmVzb3VyY2Uge1xuICAvKipcbiAgICogVGhlIENsb3VkRm9ybWF0aW9uIHJlc291cmNlIHR5cGUgbmFtZSBmb3IgdGhpcyByZXNvdXJjZSBjbGFzcy5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgQ0ZOX1JFU09VUkNFX1RZUEVfTkFNRSA9XG4gICAgXCJNb25nb0RCOjpBdGxhczo6Q2xvdWRCYWNrVXBSZXN0b3JlSm9ic1wiO1xuXG4gIC8qKlxuICAgKiBSZXNvdXJjZSBwcm9wcy5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBwcm9wczogQ2ZuQ2xvdWRCYWNrVXBSZXN0b3JlSm9ic1Byb3BzO1xuXG4gIC8qKlxuICAgKiBBdHRyaWJ1dGUgYE1vbmdvREI6OkF0bGFzOjpDbG91ZEJhY2tVcFJlc3RvcmVKb2JzLklkYFxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGF0dHJJZDogc3RyaW5nO1xuICAvKipcbiAgICogQXR0cmlidXRlIGBNb25nb0RCOjpBdGxhczo6Q2xvdWRCYWNrVXBSZXN0b3JlSm9icy5EZWxpdmVyeVVybGBcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBhdHRyRGVsaXZlcnlVcmw6IHN0cmluZ1tdO1xuICAvKipcbiAgICogQXR0cmlidXRlIGBNb25nb0RCOjpBdGxhczo6Q2xvdWRCYWNrVXBSZXN0b3JlSm9icy5DYW5jZWxsZWRgXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgYXR0ckNhbmNlbGxlZDogY2RrLklSZXNvbHZhYmxlO1xuICAvKipcbiAgICogQXR0cmlidXRlIGBNb25nb0RCOjpBdGxhczo6Q2xvdWRCYWNrVXBSZXN0b3JlSm9icy5GYWlsZWRgXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgYXR0ckZhaWxlZDogY2RrLklSZXNvbHZhYmxlO1xuICAvKipcbiAgICogQXR0cmlidXRlIGBNb25nb0RCOjpBdGxhczo6Q2xvdWRCYWNrVXBSZXN0b3JlSm9icy5FeHBpcmVkYFxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGF0dHJFeHBpcmVkOiBjZGsuSVJlc29sdmFibGU7XG4gIC8qKlxuICAgKiBBdHRyaWJ1dGUgYE1vbmdvREI6OkF0bGFzOjpDbG91ZEJhY2tVcFJlc3RvcmVKb2JzLkV4cGlyZXNBdGBcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBhdHRyRXhwaXJlc0F0OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBBdHRyaWJ1dGUgYE1vbmdvREI6OkF0bGFzOjpDbG91ZEJhY2tVcFJlc3RvcmVKb2JzLkZpbmlzaGVkQXRgXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgYXR0ckZpbmlzaGVkQXQ6IHN0cmluZztcbiAgLyoqXG4gICAqIEF0dHJpYnV0ZSBgTW9uZ29EQjo6QXRsYXM6OkNsb3VkQmFja1VwUmVzdG9yZUpvYnMuVGltZXN0YW1wYFxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGF0dHJUaW1lc3RhbXA6IHN0cmluZztcblxuICAvKipcbiAgICogQ3JlYXRlIGEgbmV3IGBNb25nb0RCOjpBdGxhczo6Q2xvdWRCYWNrVXBSZXN0b3JlSm9ic2AuXG4gICAqXG4gICAqIEBwYXJhbSBzY29wZSAtIHNjb3BlIGluIHdoaWNoIHRoaXMgcmVzb3VyY2UgaXMgZGVmaW5lZFxuICAgKiBAcGFyYW0gaWQgICAgLSBzY29wZWQgaWQgb2YgdGhlIHJlc291cmNlXG4gICAqIEBwYXJhbSBwcm9wcyAtIHJlc291cmNlIHByb3BlcnRpZXNcbiAgICovXG4gIGNvbnN0cnVjdG9yKFxuICAgIHNjb3BlOiBjb25zdHJ1Y3RzLkNvbnN0cnVjdCxcbiAgICBpZDogc3RyaW5nLFxuICAgIHByb3BzOiBDZm5DbG91ZEJhY2tVcFJlc3RvcmVKb2JzUHJvcHNcbiAgKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCB7XG4gICAgICB0eXBlOiBDZm5DbG91ZEJhY2tVcFJlc3RvcmVKb2JzLkNGTl9SRVNPVVJDRV9UWVBFX05BTUUsXG4gICAgICBwcm9wZXJ0aWVzOiB0b0pzb25fQ2ZuQ2xvdWRCYWNrVXBSZXN0b3JlSm9ic1Byb3BzKHByb3BzKSEsXG4gICAgfSk7XG5cbiAgICB0aGlzLnByb3BzID0gcHJvcHM7XG5cbiAgICB0aGlzLmF0dHJJZCA9IGNkay5Ub2tlbi5hc1N0cmluZyh0aGlzLmdldEF0dChcIklkXCIpKTtcbiAgICB0aGlzLmF0dHJEZWxpdmVyeVVybCA9IGNkay5Ub2tlbi5hc0xpc3QodGhpcy5nZXRBdHQoXCJEZWxpdmVyeVVybFwiKSk7XG4gICAgdGhpcy5hdHRyQ2FuY2VsbGVkID0gdGhpcy5nZXRBdHQoXCJDYW5jZWxsZWRcIik7XG4gICAgdGhpcy5hdHRyRmFpbGVkID0gdGhpcy5nZXRBdHQoXCJGYWlsZWRcIik7XG4gICAgdGhpcy5hdHRyRXhwaXJlZCA9IHRoaXMuZ2V0QXR0KFwiRXhwaXJlZFwiKTtcbiAgICB0aGlzLmF0dHJFeHBpcmVzQXQgPSBjZGsuVG9rZW4uYXNTdHJpbmcodGhpcy5nZXRBdHQoXCJFeHBpcmVzQXRcIikpO1xuICAgIHRoaXMuYXR0ckZpbmlzaGVkQXQgPSBjZGsuVG9rZW4uYXNTdHJpbmcodGhpcy5nZXRBdHQoXCJGaW5pc2hlZEF0XCIpKTtcbiAgICB0aGlzLmF0dHJUaW1lc3RhbXAgPSBjZGsuVG9rZW4uYXNTdHJpbmcodGhpcy5nZXRBdHQoXCJUaW1lc3RhbXBcIikpO1xuICB9XG59XG4iXX0=