projen
Version:
CDK for software projects
80 lines • 13.7 kB
JavaScript
"use strict";
var _a;
Object.defineProperty(exports, "__esModule", { value: true });
exports.DockerComposeService = void 0;
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
const docker_compose_1 = require("./docker-compose");
/**
* A docker-compose service.
*/
class DockerComposeService {
constructor(serviceName, serviceDescription) {
if ((!serviceDescription.imageBuild && !serviceDescription.image) ||
(serviceDescription.imageBuild && serviceDescription.image)) {
throw new Error(`A service ${serviceName} requires exactly one of a \`imageBuild\` or \`image\` key`);
}
this.serviceName = serviceName;
this.command = serviceDescription.command;
this.image = serviceDescription.image;
this.imageBuild = serviceDescription.imageBuild;
this.dependsOn = serviceDescription.dependsOn ?? [];
this.volumes = serviceDescription.volumes ?? [];
this.networks = serviceDescription.networks ?? [];
this.ports = serviceDescription.ports ?? [];
this.environment = serviceDescription.environment ?? {};
this.labels = serviceDescription.labels ?? {};
this.entrypoint = serviceDescription.entrypoint;
this.platform = serviceDescription.platform;
this.privileged = serviceDescription.privileged;
}
/**
* Add a port mapping
* @param publishedPort Published port number
* @param targetPort Container's port number
* @param options Port mapping options
*/
addPort(publishedPort, targetPort, options) {
this.ports?.push(docker_compose_1.DockerCompose.portMapping(publishedPort, targetPort, options));
}
/**
* Add an environment variable
* @param name environment variable name
* @param value value of the environment variable
*/
addEnvironment(name, value) {
this.environment[name] = value;
}
/**
* Make the service depend on another service.
* @param serviceName
*/
addDependsOn(serviceName) {
this.dependsOn.push(serviceName);
}
/**
* Add a volume to the service.
* @param volume
*/
addVolume(volume) {
this.volumes.push(volume);
}
/**
* Add a network to the service.
* @param network
*/
addNetwork(network) {
this.networks.push(network);
}
/**
* Add a label
* @param name environment variable name
* @param value value of the environment variable
*/
addLabel(name, value) {
this.labels[name] = value;
}
}
exports.DockerComposeService = DockerComposeService;
_a = JSII_RTTI_SYMBOL_1;
DockerComposeService[_a] = { fqn: "projen.DockerComposeService", version: "0.95.2" };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9ja2VyLWNvbXBvc2Utc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kb2NrZXItY29tcG9zZS9kb2NrZXItY29tcG9zZS1zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEscURBQXFFO0FBa0JyRTs7R0FFRztBQUNILE1BQWEsb0JBQW9CO0lBaUUvQixZQUNFLFdBQW1CLEVBQ25CLGtCQUFtRDtRQUVuRCxJQUNFLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxVQUFVLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLENBQUM7WUFDN0QsQ0FBQyxrQkFBa0IsQ0FBQyxVQUFVLElBQUksa0JBQWtCLENBQUMsS0FBSyxDQUFDLEVBQzNELENBQUM7WUFDRCxNQUFNLElBQUksS0FBSyxDQUNiLGFBQWEsV0FBVyw0REFBNEQsQ0FDckYsQ0FBQztRQUNKLENBQUM7UUFFRCxJQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQztRQUMvQixJQUFJLENBQUMsT0FBTyxHQUFHLGtCQUFrQixDQUFDLE9BQU8sQ0FBQztRQUMxQyxJQUFJLENBQUMsS0FBSyxHQUFHLGtCQUFrQixDQUFDLEtBQUssQ0FBQztRQUN0QyxJQUFJLENBQUMsVUFBVSxHQUFHLGtCQUFrQixDQUFDLFVBQVUsQ0FBQztRQUNoRCxJQUFJLENBQUMsU0FBUyxHQUFHLGtCQUFrQixDQUFDLFNBQVMsSUFBSSxFQUFFLENBQUM7UUFDcEQsSUFBSSxDQUFDLE9BQU8sR0FBRyxrQkFBa0IsQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDO1FBQ2hELElBQUksQ0FBQyxRQUFRLEdBQUcsa0JBQWtCLENBQUMsUUFBUSxJQUFJLEVBQUUsQ0FBQztRQUNsRCxJQUFJLENBQUMsS0FBSyxHQUFHLGtCQUFrQixDQUFDLEtBQUssSUFBSSxFQUFFLENBQUM7UUFDNUMsSUFBSSxDQUFDLFdBQVcsR0FBRyxrQkFBa0IsQ0FBQyxXQUFXLElBQUksRUFBRSxDQUFDO1FBQ3hELElBQUksQ0FBQyxNQUFNLEdBQUcsa0JBQWtCLENBQUMsTUFBTSxJQUFJLEVBQUUsQ0FBQztRQUM5QyxJQUFJLENBQUMsVUFBVSxHQUFHLGtCQUFrQixDQUFDLFVBQVUsQ0FBQztRQUNoRCxJQUFJLENBQUMsUUFBUSxHQUFHLGtCQUFrQixDQUFDLFFBQVEsQ0FBQztRQUM1QyxJQUFJLENBQUMsVUFBVSxHQUFHLGtCQUFrQixDQUFDLFVBQVUsQ0FBQztJQUNsRCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSSxPQUFPLENBQ1osYUFBcUIsRUFDckIsVUFBa0IsRUFDbEIsT0FBeUM7UUFFekMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQ2QsOEJBQWEsQ0FBQyxXQUFXLENBQUMsYUFBYSxFQUFFLFVBQVUsRUFBRSxPQUFPLENBQUMsQ0FDOUQsQ0FBQztJQUNKLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksY0FBYyxDQUFDLElBQVksRUFBRSxLQUFhO1FBQy9DLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEdBQUcsS0FBSyxDQUFDO0lBQ2pDLENBQUM7SUFFRDs7O09BR0c7SUFDSSxZQUFZLENBQUMsV0FBc0M7UUFDeEQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVEOzs7T0FHRztJQUNJLFNBQVMsQ0FBQyxNQUFtQztRQUNsRCxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksVUFBVSxDQUFDLE9BQXFDO1FBQ3JELElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksUUFBUSxDQUFDLElBQVksRUFBRSxLQUFhO1FBQ3pDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsS0FBSyxDQUFDO0lBQzVCLENBQUM7O0FBckpILG9EQXNKQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERvY2tlckNvbXBvc2UsIERvY2tlckNvbXBvc2VCdWlsZCB9IGZyb20gXCIuL2RvY2tlci1jb21wb3NlXCI7XG5pbXBvcnQgeyBJRG9ja2VyQ29tcG9zZU5ldHdvcmtCaW5kaW5nIH0gZnJvbSBcIi4vZG9ja2VyLWNvbXBvc2UtbmV0d29ya1wiO1xuaW1wb3J0IHtcbiAgRG9ja2VyQ29tcG9zZVBvcnRNYXBwaW5nT3B0aW9ucyxcbiAgRG9ja2VyQ29tcG9zZVNlcnZpY2VQb3J0LFxufSBmcm9tIFwiLi9kb2NrZXItY29tcG9zZS1wb3J0XCI7XG5pbXBvcnQgeyBJRG9ja2VyQ29tcG9zZVZvbHVtZUJpbmRpbmcgfSBmcm9tIFwiLi9kb2NrZXItY29tcG9zZS12b2x1bWVcIjtcblxuLyoqXG4gKiBBbiBpbnRlcmZhY2UgcHJvdmlkaW5nIHRoZSBuYW1lIG9mIGEgZG9ja2VyIGNvbXBvc2Ugc2VydmljZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJRG9ja2VyQ29tcG9zZVNlcnZpY2VOYW1lIHtcbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBkb2NrZXIgY29tcG9zZSBzZXJ2aWNlLlxuICAgKi9cbiAgcmVhZG9ubHkgc2VydmljZU5hbWU6IHN0cmluZztcbn1cblxuLyoqXG4gKiBBIGRvY2tlci1jb21wb3NlIHNlcnZpY2UuXG4gKi9cbmV4cG9ydCBjbGFzcyBEb2NrZXJDb21wb3NlU2VydmljZSBpbXBsZW1lbnRzIElEb2NrZXJDb21wb3NlU2VydmljZU5hbWUge1xuICAvKipcbiAgICogTmFtZSBvZiB0aGUgc2VydmljZS5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBzZXJ2aWNlTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBEb2NrZXIgaW1hZ2UuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgaW1hZ2U/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIERvY2tlciBpbWFnZSBidWlsZCBpbnN0cnVjdGlvbnMuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgaW1hZ2VCdWlsZD86IERvY2tlckNvbXBvc2VCdWlsZDtcblxuICAvKipcbiAgICogQ29tbWFuZCB0byBydW4gaW4gdGhlIGNvbnRhaW5lci5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBjb21tYW5kPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIEVudHJ5cG9pbnQgdG8gcnVuIGluIHRoZSBjb250YWluZXIuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgZW50cnlwb2ludD86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBPdGhlciBzZXJ2aWNlcyB0aGF0IHRoaXMgc2VydmljZSBkZXBlbmRzIG9uLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGRlcGVuZHNPbjogSURvY2tlckNvbXBvc2VTZXJ2aWNlTmFtZVtdO1xuXG4gIC8qKlxuICAgKiBWb2x1bWVzIG1vdW50ZWQgaW4gdGhlIGNvbnRhaW5lci5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSB2b2x1bWVzOiBJRG9ja2VyQ29tcG9zZVZvbHVtZUJpbmRpbmdbXTtcblxuICAvKipcbiAgICogTmV0d29ya3MgbW91bnRlZCBpbiB0aGUgY29udGFpbmVyLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IG5ldHdvcmtzOiBJRG9ja2VyQ29tcG9zZU5ldHdvcmtCaW5kaW5nW107XG5cbiAgLyoqXG4gICAqIFB1Ymxpc2hlZCBwb3J0cy5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBwb3J0czogRG9ja2VyQ29tcG9zZVNlcnZpY2VQb3J0W107XG5cbiAgLyoqXG4gICAqIEVudmlyb25tZW50IHZhcmlhYmxlcy5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBlbnZpcm9ubWVudDogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcblxuICAvKipcbiAgICogQXR0YWNoZWQgbGFiZWxzLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGxhYmVsczogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcbiAgLyoqXG4gICAqIFRhcmdldCBwbGF0Zm9ybVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHBsYXRmb3JtPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBSdW4gaW4gcHJpdmlsZWdlZCBtb2RlXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgcHJpdmlsZWdlZD86IGJvb2xlYW47XG5cbiAgY29uc3RydWN0b3IoXG4gICAgc2VydmljZU5hbWU6IHN0cmluZyxcbiAgICBzZXJ2aWNlRGVzY3JpcHRpb246IERvY2tlckNvbXBvc2VTZXJ2aWNlRGVzY3JpcHRpb25cbiAgKSB7XG4gICAgaWYgKFxuICAgICAgKCFzZXJ2aWNlRGVzY3JpcHRpb24uaW1hZ2VCdWlsZCAmJiAhc2VydmljZURlc2NyaXB0aW9uLmltYWdlKSB8fFxuICAgICAgKHNlcnZpY2VEZXNjcmlwdGlvbi5pbWFnZUJ1aWxkICYmIHNlcnZpY2VEZXNjcmlwdGlvbi5pbWFnZSlcbiAgICApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYEEgc2VydmljZSAke3NlcnZpY2VOYW1lfSByZXF1aXJlcyBleGFjdGx5IG9uZSBvZiBhIFxcYGltYWdlQnVpbGRcXGAgb3IgXFxgaW1hZ2VcXGAga2V5YFxuICAgICAgKTtcbiAgICB9XG5cbiAgICB0aGlzLnNlcnZpY2VOYW1lID0gc2VydmljZU5hbWU7XG4gICAgdGhpcy5jb21tYW5kID0gc2VydmljZURlc2NyaXB0aW9uLmNvbW1hbmQ7XG4gICAgdGhpcy5pbWFnZSA9IHNlcnZpY2VEZXNjcmlwdGlvbi5pbWFnZTtcbiAgICB0aGlzLmltYWdlQnVpbGQgPSBzZXJ2aWNlRGVzY3JpcHRpb24uaW1hZ2VCdWlsZDtcbiAgICB0aGlzLmRlcGVuZHNPbiA9IHNlcnZpY2VEZXNjcmlwdGlvbi5kZXBlbmRzT24gPz8gW107XG4gICAgdGhpcy52b2x1bWVzID0gc2VydmljZURlc2NyaXB0aW9uLnZvbHVtZXMgPz8gW107XG4gICAgdGhpcy5uZXR3b3JrcyA9IHNlcnZpY2VEZXNjcmlwdGlvbi5uZXR3b3JrcyA/PyBbXTtcbiAgICB0aGlzLnBvcnRzID0gc2VydmljZURlc2NyaXB0aW9uLnBvcnRzID8/IFtdO1xuICAgIHRoaXMuZW52aXJvbm1lbnQgPSBzZXJ2aWNlRGVzY3JpcHRpb24uZW52aXJvbm1lbnQgPz8ge307XG4gICAgdGhpcy5sYWJlbHMgPSBzZXJ2aWNlRGVzY3JpcHRpb24ubGFiZWxzID8/IHt9O1xuICAgIHRoaXMuZW50cnlwb2ludCA9IHNlcnZpY2VEZXNjcmlwdGlvbi5lbnRyeXBvaW50O1xuICAgIHRoaXMucGxhdGZvcm0gPSBzZXJ2aWNlRGVzY3JpcHRpb24ucGxhdGZvcm07XG4gICAgdGhpcy5wcml2aWxlZ2VkID0gc2VydmljZURlc2NyaXB0aW9uLnByaXZpbGVnZWQ7XG4gIH1cblxuICAvKipcbiAgICogQWRkIGEgcG9ydCBtYXBwaW5nXG4gICAqIEBwYXJhbSBwdWJsaXNoZWRQb3J0IFB1Ymxpc2hlZCBwb3J0IG51bWJlclxuICAgKiBAcGFyYW0gdGFyZ2V0UG9ydCBDb250YWluZXIncyBwb3J0IG51bWJlclxuICAgKiBAcGFyYW0gb3B0aW9ucyBQb3J0IG1hcHBpbmcgb3B0aW9uc1xuICAgKi9cbiAgcHVibGljIGFkZFBvcnQoXG4gICAgcHVibGlzaGVkUG9ydDogbnVtYmVyLFxuICAgIHRhcmdldFBvcnQ6IG51bWJlcixcbiAgICBvcHRpb25zPzogRG9ja2VyQ29tcG9zZVBvcnRNYXBwaW5nT3B0aW9uc1xuICApIHtcbiAgICB0aGlzLnBvcnRzPy5wdXNoKFxuICAgICAgRG9ja2VyQ29tcG9zZS5wb3J0TWFwcGluZyhwdWJsaXNoZWRQb3J0LCB0YXJnZXRQb3J0LCBvcHRpb25zKVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQWRkIGFuIGVudmlyb25tZW50IHZhcmlhYmxlXG4gICAqIEBwYXJhbSBuYW1lIGVudmlyb25tZW50IHZhcmlhYmxlIG5hbWVcbiAgICogQHBhcmFtIHZhbHVlIHZhbHVlIG9mIHRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZVxuICAgKi9cbiAgcHVibGljIGFkZEVudmlyb25tZW50KG5hbWU6IHN0cmluZywgdmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuZW52aXJvbm1lbnRbbmFtZV0gPSB2YWx1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNYWtlIHRoZSBzZXJ2aWNlIGRlcGVuZCBvbiBhbm90aGVyIHNlcnZpY2UuXG4gICAqIEBwYXJhbSBzZXJ2aWNlTmFtZVxuICAgKi9cbiAgcHVibGljIGFkZERlcGVuZHNPbihzZXJ2aWNlTmFtZTogSURvY2tlckNvbXBvc2VTZXJ2aWNlTmFtZSkge1xuICAgIHRoaXMuZGVwZW5kc09uLnB1c2goc2VydmljZU5hbWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZCBhIHZvbHVtZSB0byB0aGUgc2VydmljZS5cbiAgICogQHBhcmFtIHZvbHVtZVxuICAgKi9cbiAgcHVibGljIGFkZFZvbHVtZSh2b2x1bWU6IElEb2NrZXJDb21wb3NlVm9sdW1lQmluZGluZykge1xuICAgIHRoaXMudm9sdW1lcy5wdXNoKHZvbHVtZSk7XG4gIH1cblxuICAvKipcbiAgICogQWRkIGEgbmV0d29yayB0byB0aGUgc2VydmljZS5cbiAgICogQHBhcmFtIG5ldHdvcmtcbiAgICovXG4gIHB1YmxpYyBhZGROZXR3b3JrKG5ldHdvcms6IElEb2NrZXJDb21wb3NlTmV0d29ya0JpbmRpbmcpIHtcbiAgICB0aGlzLm5ldHdvcmtzLnB1c2gobmV0d29yayk7XG4gIH1cblxuICAvKipcbiAgICogQWRkIGEgbGFiZWxcbiAgICogQHBhcmFtIG5hbWUgZW52aXJvbm1lbnQgdmFyaWFibGUgbmFtZVxuICAgKiBAcGFyYW0gdmFsdWUgdmFsdWUgb2YgdGhlIGVudmlyb25tZW50IHZhcmlhYmxlXG4gICAqL1xuICBwdWJsaWMgYWRkTGFiZWwobmFtZTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5sYWJlbHNbbmFtZV0gPSB2YWx1ZTtcbiAgfVxufVxuXG4vKipcbiAqIERlc2NyaXB0aW9uIG9mIGEgZG9ja2VyLWNvbXBvc2UueW1sIHNlcnZpY2UuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRG9ja2VyQ29tcG9zZVNlcnZpY2VEZXNjcmlwdGlvbiB7XG4gIC8qKlxuICAgKiBVc2UgYSBkb2NrZXIgaW1hZ2UuXG4gICAqIE5vdGU6IFlvdSBtdXN0IHNwZWNpZnkgZWl0aGVyIGBidWlsZGAgb3IgYGltYWdlYCBrZXkuXG4gICAqIEBzZWUgaW1hZ2VCdWlsZFxuICAgKi9cbiAgcmVhZG9ubHkgaW1hZ2U/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEJ1aWxkIGEgZG9ja2VyIGltYWdlLlxuICAgKiBOb3RlOiBZb3UgbXVzdCBzcGVjaWZ5IGVpdGhlciBgaW1hZ2VCdWlsZGAgb3IgYGltYWdlYCBrZXkuXG4gICAqIEBzZWUgaW1hZ2VcbiAgICovXG4gIHJlYWRvbmx5IGltYWdlQnVpbGQ/OiBEb2NrZXJDb21wb3NlQnVpbGQ7XG5cbiAgLyoqXG4gICAqIFByb3ZpZGUgYSBjb21tYW5kIHRvIHRoZSBkb2NrZXIgY29udGFpbmVyLlxuICAgKiBAZGVmYXVsdCAtIHVzZSB0aGUgY29udGFpbmVyJ3MgZGVmYXVsdCBjb21tYW5kXG4gICAqL1xuICByZWFkb25seSBjb21tYW5kPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIEVudHJ5cG9pbnQgdG8gcnVuIGluIHRoZSBjb250YWluZXIuXG4gICAqL1xuICByZWFkb25seSBlbnRyeXBvaW50Pzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIE5hbWVzIG9mIG90aGVyIHNlcnZpY2VzIHRoaXMgc2VydmljZSBkZXBlbmRzIG9uLlxuICAgKiBAZGVmYXVsdCAtIG5vIGRlcGVuZGVuY2llc1xuICAgKi9cbiAgcmVhZG9ubHkgZGVwZW5kc09uPzogSURvY2tlckNvbXBvc2VTZXJ2aWNlTmFtZVtdO1xuXG4gIC8qKlxuICAgKiBNb3VudCBzb21lIHZvbHVtZXMgaW50byB0aGUgc2VydmljZS5cbiAgICogVXNlIG9uZSBvZiB0aGUgZm9sbG93aW5nIHRvIGNyZWF0ZSB2b2x1bWVzOlxuICAgKiBAc2VlIERvY2tlckNvbXBvc2UuYmluZFZvbHVtZSgpIHRvIG1vdW50IGEgaG9zdCBwYXRoXG4gICAqIEBzZWUgRG9ja2VyQ29tcG9zZS5uYW1lZFZvbHVtZSgpIHRvIGNyZWF0ZSAmIG1vdW50IGEgbmFtZWQgdm9sdW1lXG4gICAqL1xuICByZWFkb25seSB2b2x1bWVzPzogSURvY2tlckNvbXBvc2VWb2x1bWVCaW5kaW5nW107XG5cbiAgLyoqXG4gICAqIEFkZCBzb21lIG5ldHdvcmtzIHRvIHRoZSBzZXJ2aWNlLlxuICAgKiBAc2VlIERvY2tlckNvbXBvc2UubmV0d29yaygpIHRvIGNyZWF0ZSAmIG1vdW50IGEgbmFtZWQgbmV0d29ya1xuICAgKi9cbiAgcmVhZG9ubHkgbmV0d29ya3M/OiBJRG9ja2VyQ29tcG9zZU5ldHdvcmtCaW5kaW5nW107XG5cbiAgLyoqXG4gICAqIE1hcCBzb21lIHBvcnRzLlxuICAgKiBAZGVmYXVsdCAtIG5vIHBvcnRzIGFyZSBtYXBwZWRcbiAgICovXG4gIHJlYWRvbmx5IHBvcnRzPzogRG9ja2VyQ29tcG9zZVNlcnZpY2VQb3J0W107XG5cbiAgLyoqXG4gICAqIEFkZCBlbnZpcm9ubWVudCB2YXJpYWJsZXMuXG4gICAqIEBkZWZhdWx0IC0gbm8gZW52aXJvbm1lbnQgdmFyaWFibGVzIGFyZSBwcm92aWRlZFxuICAgKi9cbiAgcmVhZG9ubHkgZW52aXJvbm1lbnQ/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xuXG4gIC8qKlxuICAgKiBBZGQgbGFiZWxzLlxuICAgKiBAZGVmYXVsdCAtIG5vIGxhYmVscyBhcmUgcHJvdmlkZWRcbiAgICovXG4gIHJlYWRvbmx5IGxhYmVscz86IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG4gIC8qKlxuICAgKiBBZGQgcGxhdGZvcm1cbiAgICogQGRlZmF1bHQgLSBubyBwbGF0Zm9ybSBpcyBwcm92aWRlZFxuICAgKi9cbiAgcmVhZG9ubHkgcGxhdGZvcm0/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFJ1biBpbiBwcml2aWxlZ2VkIG1vZGVcbiAgICogQGRlZmF1bHQgLSBubyBwcml2aWxlZ2VkIG1vZGUgZmxhZyBpcyBwcm92aWRlZFxuICAgKi9cbiAgcmVhZG9ubHkgcHJpdmlsZWdlZD86IGJvb2xlYW47XG59XG4iXX0=