@io-orkes/conductor-javascript 0.0.10 → 0.0.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"sources":["../node_modules/tsup/assets/esm_shims.js","../node_modules/delayed-stream/lib/delayed_stream.js","../node_modules/combined-stream/lib/combined_stream.js","../node_modules/mime-db/index.js","../node_modules/mime-types/index.js","../node_modules/asynckit/lib/defer.js","../node_modules/asynckit/lib/async.js","../node_modules/asynckit/lib/abort.js","../node_modules/asynckit/lib/iterate.js","../node_modules/asynckit/lib/state.js","../node_modules/asynckit/lib/terminator.js","../node_modules/asynckit/parallel.js","../node_modules/asynckit/serialOrdered.js","../node_modules/asynckit/serial.js","../node_modules/asynckit/index.js","../node_modules/form-data/lib/populate.js","../node_modules/form-data/lib/form_data.js","../index.ts","../src/task/index.ts","../src/task/TaskRunner.ts","../src/task/TaskManager.ts","../src/common/index.ts","../src/common/ConductorLogger.ts","../src/common/RequestCustomizer.ts","../src/common/open-api/core/CancelablePromise.ts","../src/common/orkes/index.ts","../src/common/orkes/OrkesConductorClient.ts","../src/common/open-api/ConductorClient.ts","../src/common/open-api/services/AdminResourceService.ts","../src/common/open-api/services/ApplicationResourceService.ts","../src/common/open-api/services/AuthorizationResourceService.ts","../src/common/open-api/services/EventResourceService.ts","../src/common/open-api/services/GroupResourceService.ts","../src/common/open-api/services/HealthCheckResourceService.ts","../src/common/open-api/services/MetadataResourceService.ts","../src/common/open-api/services/MigrationResourceService.ts","../src/common/open-api/services/PublisherConfigResourceService.ts","../src/common/open-api/services/QueueAdminResourceService.ts","../src/common/open-api/services/SchedulerResourceService.ts","../src/common/open-api/services/SecretResourceService.ts","../src/common/open-api/services/TagsExperimentalService.ts","../src/common/open-api/services/TaskResourceService.ts","../src/common/open-api/services/TokenResourceService.ts","../src/common/open-api/services/UserResourceService.ts","../src/common/open-api/services/VersionResourceService.ts","../src/common/open-api/services/WorkflowBulkResourceService.ts","../src/common/open-api/services/WorkflowResourceService.ts","../src/common/open-api/core/request.ts","../src/common/open-api/core/ApiError.ts","../src/common/generators/index.ts","../src/common/generators/SimpleTask.ts","../src/common/types.ts","../src/common/generators/common.ts","../src/common/generators/DoWhileTask.ts","../src/common/generators/EventTask.ts","../src/common/generators/ForkJoin.ts","../src/common/generators/HttpTask.ts","../src/common/generators/InlineTask.ts","../src/common/generators/JsonJQTransform.ts","../src/common/generators/KafkaTask.ts","../src/common/generators/SubWorkflowTask.ts","../src/common/generators/SetVariableTask.ts","../src/common/generators/TerminateTask.ts","../src/common/generators/WaitTask.ts","../src/common/generators/SwitchTask.ts","../src/common/generators/generator.ts","../src/common/generators/WorkflowGenerator.ts","../src/common/generators/ForkJoinDynamicTask.ts","../src/common/sdk/index.ts","../src/common/sdk/doWhile.ts","../src/common/sdk/dynamicFork.ts","../src/common/sdk/event.ts","../src/common/sdk/forkJoin.ts","../src/common/sdk/http.ts","../src/common/sdk/inline.ts","../src/common/sdk/join.ts","../src/common/sdk/jsonJq.ts","../src/common/sdk/kafkaPublish.ts","../src/common/sdk/setVariable.ts","../src/common/sdk/simple.ts","../src/common/sdk/subWorkflow.ts","../src/common/sdk/switch.ts","../src/common/sdk/terminate.ts","../src/common/sdk/wait.ts","../src/common/sdk/workflow.ts","../src/common/open-api/index.ts","../src/common/open-api/core/BaseHttpRequest.ts","../src/common/open-api/core/OpenAPI.ts","../src/task/Worker.ts","../src/core/index.ts","../src/core/executor.ts","../src/core/types.ts"],"sourcesContent":["// Shim globals in esm bundle\nimport { fileURLToPath } from 'url'\nimport path from 'path'\n\nconst getFilename = () => fileURLToPath(import.meta.url)\nconst getDirname = () => path.dirname(getFilename())\n\nexport const __dirname = /* @__PURE__ */ getDirname()\nexport const __filename = /* @__PURE__ */ getFilename()\n","var Stream = require('stream').Stream;\nvar util = require('util');\n\nmodule.exports = DelayedStream;\nfunction DelayedStream() {\n this.source = null;\n this.dataSize = 0;\n this.maxDataSize = 1024 * 1024;\n this.pauseStream = true;\n\n this._maxDataSizeExceeded = false;\n this._released = false;\n this._bufferedEvents = [];\n}\nutil.inherits(DelayedStream, Stream);\n\nDelayedStream.create = function(source, options) {\n var delayedStream = new this();\n\n options = options || {};\n for (var option in options) {\n delayedStream[option] = options[option];\n }\n\n delayedStream.source = source;\n\n var realEmit = source.emit;\n source.emit = function() {\n delayedStream._handleEmit(arguments);\n return realEmit.apply(source, arguments);\n };\n\n source.on('error', function() {});\n if (delayedStream.pauseStream) {\n source.pause();\n }\n\n return delayedStream;\n};\n\nObject.defineProperty(DelayedStream.prototype, 'readable', {\n configurable: true,\n enumerable: true,\n get: function() {\n return this.source.readable;\n }\n});\n\nDelayedStream.prototype.setEncoding = function() {\n return this.source.setEncoding.apply(this.source, arguments);\n};\n\nDelayedStream.prototype.resume = function() {\n if (!this._released) {\n this.release();\n }\n\n this.source.resume();\n};\n\nDelayedStream.prototype.pause = function() {\n this.source.pause();\n};\n\nDelayedStream.prototype.release = function() {\n this._released = true;\n\n this._bufferedEvents.forEach(function(args) {\n this.emit.apply(this, args);\n }.bind(this));\n this._bufferedEvents = [];\n};\n\nDelayedStream.prototype.pipe = function() {\n var r = Stream.prototype.pipe.apply(this, arguments);\n this.resume();\n return r;\n};\n\nDelayedStream.prototype._handleEmit = function(args) {\n if (this._released) {\n this.emit.apply(this, args);\n return;\n }\n\n if (args[0] === 'data') {\n this.dataSize += args[1].length;\n this._checkIfMaxDataSizeExceeded();\n }\n\n this._bufferedEvents.push(args);\n};\n\nDelayedStream.prototype._checkIfMaxDataSizeExceeded = function() {\n if (this._maxDataSizeExceeded) {\n return;\n }\n\n if (this.dataSize <= this.maxDataSize) {\n return;\n }\n\n this._maxDataSizeExceeded = true;\n var message =\n 'DelayedStream#maxDataSize of ' + this.maxDataSize + ' bytes exceeded.'\n this.emit('error', new Error(message));\n};\n","var util = require('util');\nvar Stream = require('stream').Stream;\nvar DelayedStream = require('delayed-stream');\n\nmodule.exports = CombinedStream;\nfunction CombinedStream() {\n this.writable = false;\n this.readable = true;\n this.dataSize = 0;\n this.maxDataSize = 2 * 1024 * 1024;\n this.pauseStreams = true;\n\n this._released = false;\n this._streams = [];\n this._currentStream = null;\n this._insideLoop = false;\n this._pendingNext = false;\n}\nutil.inherits(CombinedStream, Stream);\n\nCombinedStream.create = function(options) {\n var combinedStream = new this();\n\n options = options || {};\n for (var option in options) {\n combinedStream[option] = options[option];\n }\n\n return combinedStream;\n};\n\nCombinedStream.isStreamLike = function(stream) {\n return (typeof stream !== 'function')\n && (typeof stream !== 'string')\n && (typeof stream !== 'boolean')\n && (typeof stream !== 'number')\n && (!Buffer.isBuffer(stream));\n};\n\nCombinedStream.prototype.append = function(stream) {\n var isStreamLike = CombinedStream.isStreamLike(stream);\n\n if (isStreamLike) {\n if (!(stream instanceof DelayedStream)) {\n var newStream = DelayedStream.create(stream, {\n maxDataSize: Infinity,\n pauseStream: this.pauseStreams,\n });\n stream.on('data', this._checkDataSize.bind(this));\n stream = newStream;\n }\n\n this._handleErrors(stream);\n\n if (this.pauseStreams) {\n stream.pause();\n }\n }\n\n this._streams.push(stream);\n return this;\n};\n\nCombinedStream.prototype.pipe = function(dest, options) {\n Stream.prototype.pipe.call(this, dest, options);\n this.resume();\n return dest;\n};\n\nCombinedStream.prototype._getNext = function() {\n this._currentStream = null;\n\n if (this._insideLoop) {\n this._pendingNext = true;\n return; // defer call\n }\n\n this._insideLoop = true;\n try {\n do {\n this._pendingNext = false;\n this._realGetNext();\n } while (this._pendingNext);\n } finally {\n this._insideLoop = false;\n }\n};\n\nCombinedStream.prototype._realGetNext = function() {\n var stream = this._streams.shift();\n\n\n if (typeof stream == 'undefined') {\n this.end();\n return;\n }\n\n if (typeof stream !== 'function') {\n this._pipeNext(stream);\n return;\n }\n\n var getStream = stream;\n getStream(function(stream) {\n var isStreamLike = CombinedStream.isStreamLike(stream);\n if (isStreamLike) {\n stream.on('data', this._checkDataSize.bind(this));\n this._handleErrors(stream);\n }\n\n this._pipeNext(stream);\n }.bind(this));\n};\n\nCombinedStream.prototype._pipeNext = function(stream) {\n this._currentStream = stream;\n\n var isStreamLike = CombinedStream.isStreamLike(stream);\n if (isStreamLike) {\n stream.on('end', this._getNext.bind(this));\n stream.pipe(this, {end: false});\n return;\n }\n\n var value = stream;\n this.write(value);\n this._getNext();\n};\n\nCombinedStream.prototype._handleErrors = function(stream) {\n var self = this;\n stream.on('error', function(err) {\n self._emitError(err);\n });\n};\n\nCombinedStream.prototype.write = function(data) {\n this.emit('data', data);\n};\n\nCombinedStream.prototype.pause = function() {\n if (!this.pauseStreams) {\n return;\n }\n\n if(this.pauseStreams && this._currentStream && typeof(this._currentStream.pause) == 'function') this._currentStream.pause();\n this.emit('pause');\n};\n\nCombinedStream.prototype.resume = function() {\n if (!this._released) {\n this._released = true;\n this.writable = true;\n this._getNext();\n }\n\n if(this.pauseStreams && this._currentStream && typeof(this._currentStream.resume) == 'function') this._currentStream.resume();\n this.emit('resume');\n};\n\nCombinedStream.prototype.end = function() {\n this._reset();\n this.emit('end');\n};\n\nCombinedStream.prototype.destroy = function() {\n this._reset();\n this.emit('close');\n};\n\nCombinedStream.prototype._reset = function() {\n this.writable = false;\n this._streams = [];\n this._currentStream = null;\n};\n\nCombinedStream.prototype._checkDataSize = function() {\n this._updateDataSize();\n if (this.dataSize <= this.maxDataSize) {\n return;\n }\n\n var message =\n 'DelayedStream#maxDataSize of ' + this.maxDataSize + ' bytes exceeded.';\n this._emitError(new Error(message));\n};\n\nCombinedStream.prototype._updateDataSize = function() {\n this.dataSize = 0;\n\n var self = this;\n this._streams.forEach(function(stream) {\n if (!stream.dataSize) {\n return;\n }\n\n self.dataSize += stream.dataSize;\n });\n\n if (this._currentStream && this._currentStream.dataSize) {\n this.dataSize += this._currentStream.dataSize;\n }\n};\n\nCombinedStream.prototype._emitError = function(err) {\n this._reset();\n this.emit('error', err);\n};\n","/*!\n * mime-db\n * Copyright(c) 2014 Jonathan Ong\n * Copyright(c) 2015-2022 Douglas Christopher Wilson\n * MIT Licensed\n */\n\n/**\n * Module exports.\n */\n\nmodule.exports = require('./db.json')\n","/*!\n * mime-types\n * Copyright(c) 2014 Jonathan Ong\n * Copyright(c) 2015 Douglas Christopher Wilson\n * MIT Licensed\n */\n\n'use strict'\n\n/**\n * Module dependencies.\n * @private\n */\n\nvar db = require('mime-db')\nvar extname = require('path').extname\n\n/**\n * Module variables.\n * @private\n */\n\nvar EXTRACT_TYPE_REGEXP = /^\\s*([^;\\s]*)(?:;|\\s|$)/\nvar TEXT_TYPE_REGEXP = /^text\\//i\n\n/**\n * Module exports.\n * @public\n */\n\nexports.charset = charset\nexports.charsets = { lookup: charset }\nexports.contentType = contentType\nexports.extension = extension\nexports.extensions = Object.create(null)\nexports.lookup = lookup\nexports.types = Object.create(null)\n\n// Populate the extensions/types maps\npopulateMaps(exports.extensions, exports.types)\n\n/**\n * Get the default charset for a MIME type.\n *\n * @param {string} type\n * @return {boolean|string}\n */\n\nfunction charset (type) {\n if (!type || typeof type !== 'string') {\n return false\n }\n\n // TODO: use media-typer\n var match = EXTRACT_TYPE_REGEXP.exec(type)\n var mime = match && db[match[1].toLowerCase()]\n\n if (mime && mime.charset) {\n return mime.charset\n }\n\n // default text/* to utf-8\n if (match && TEXT_TYPE_REGEXP.test(match[1])) {\n return 'UTF-8'\n }\n\n return false\n}\n\n/**\n * Create a full Content-Type header given a MIME type or extension.\n *\n * @param {string} str\n * @return {boolean|string}\n */\n\nfunction contentType (str) {\n // TODO: should this even be in this module?\n if (!str || typeof str !== 'string') {\n return false\n }\n\n var mime = str.indexOf('/') === -1\n ? exports.lookup(str)\n : str\n\n if (!mime) {\n return false\n }\n\n // TODO: use content-type or other module\n if (mime.indexOf('charset') === -1) {\n var charset = exports.charset(mime)\n if (charset) mime += '; charset=' + charset.toLowerCase()\n }\n\n return mime\n}\n\n/**\n * Get the default extension for a MIME type.\n *\n * @param {string} type\n * @return {boolean|string}\n */\n\nfunction extension (type) {\n if (!type || typeof type !== 'string') {\n return false\n }\n\n // TODO: use media-typer\n var match = EXTRACT_TYPE_REGEXP.exec(type)\n\n // get extensions\n var exts = match && exports.extensions[match[1].toLowerCase()]\n\n if (!exts || !exts.length) {\n return false\n }\n\n return exts[0]\n}\n\n/**\n * Lookup the MIME type for a file path/extension.\n *\n * @param {string} path\n * @return {boolean|string}\n */\n\nfunction lookup (path) {\n if (!path || typeof path !== 'string') {\n return false\n }\n\n // get the extension (\"ext\" or \".ext\" or full path)\n var extension = extname('x.' + path)\n .toLowerCase()\n .substr(1)\n\n if (!extension) {\n return false\n }\n\n return exports.types[extension] || false\n}\n\n/**\n * Populate the extensions and types maps.\n * @private\n */\n\nfunction populateMaps (extensions, types) {\n // source preference (least -> most)\n var preference = ['nginx', 'apache', undefined, 'iana']\n\n Object.keys(db).forEach(function forEachMimeType (type) {\n var mime = db[type]\n var exts = mime.extensions\n\n if (!exts || !exts.length) {\n return\n }\n\n // mime -> extensions\n extensions[type] = exts\n\n // extension -> mime\n for (var i = 0; i < exts.length; i++) {\n var extension = exts[i]\n\n if (types[extension]) {\n var from = preference.indexOf(db[types[extension]].source)\n var to = preference.indexOf(mime.source)\n\n if (types[extension] !== 'application/octet-stream' &&\n (from > to || (from === to && types[extension].substr(0, 12) === 'application/'))) {\n // skip the remapping\n continue\n }\n }\n\n // set the extension -> mime\n types[extension] = type\n }\n })\n}\n","module.exports = defer;\n\n/**\n * Runs provided function on next iteration of the event loop\n *\n * @param {function} fn - function to run\n */\nfunction defer(fn)\n{\n var nextTick = typeof setImmediate == 'function'\n ? setImmediate\n : (\n typeof process == 'object' && typeof process.nextTick == 'function'\n ? process.nextTick\n : null\n );\n\n if (nextTick)\n {\n nextTick(fn);\n }\n else\n {\n setTimeout(fn, 0);\n }\n}\n","var defer = require('./defer.js');\n\n// API\nmodule.exports = async;\n\n/**\n * Runs provided callback asynchronously\n * even if callback itself is not\n *\n * @param {function} callback - callback to invoke\n * @returns {function} - augmented callback\n */\nfunction async(callback)\n{\n var isAsync = false;\n\n // check if async happened\n defer(function() { isAsync = true; });\n\n return function async_callback(err, result)\n {\n if (isAsync)\n {\n callback(err, result);\n }\n else\n {\n defer(function nextTick_callback()\n {\n callback(err, result);\n });\n }\n };\n}\n","// API\nmodule.exports = abort;\n\n/**\n * Aborts leftover active jobs\n *\n * @param {object} state - current state object\n */\nfunction abort(state)\n{\n Object.keys(state.jobs).forEach(clean.bind(state));\n\n // reset leftover jobs\n state.jobs = {};\n}\n\n/**\n * Cleans up leftover job by invoking abort function for the provided job id\n *\n * @this state\n * @param {string|number} key - job id to abort\n */\nfunction clean(key)\n{\n if (typeof this.jobs[key] == 'function')\n {\n this.jobs[key]();\n }\n}\n","var async = require('./async.js')\n , abort = require('./abort.js')\n ;\n\n// API\nmodule.exports = iterate;\n\n/**\n * Iterates over each job object\n *\n * @param {array|object} list - array or object (named list) to iterate over\n * @param {function} iterator - iterator to run\n * @param {object} state - current job status\n * @param {function} callback - invoked when all elements processed\n */\nfunction iterate(list, iterator, state, callback)\n{\n // store current index\n var key = state['keyedList'] ? state['keyedList'][state.index] : state.index;\n\n state.jobs[key] = runJob(iterator, key, list[key], function(error, output)\n {\n // don't repeat yourself\n // skip secondary callbacks\n if (!(key in state.jobs))\n {\n return;\n }\n\n // clean up jobs\n delete state.jobs[key];\n\n if (error)\n {\n // don't process rest of the results\n // stop still active jobs\n // and reset the list\n abort(state);\n }\n else\n {\n state.results[key] = output;\n }\n\n // return salvaged results\n callback(error, state.results);\n });\n}\n\n/**\n * Runs iterator over provided job element\n *\n * @param {function} iterator - iterator to invoke\n * @param {string|number} key - key/index of the element in the list of jobs\n * @param {mixed} item - job description\n * @param {function} callback - invoked after iterator is done with the job\n * @returns {function|mixed} - job abort function or something else\n */\nfunction runJob(iterator, key, item, callback)\n{\n var aborter;\n\n // allow shortcut if iterator expects only two arguments\n if (iterator.length == 2)\n {\n aborter = iterator(item, async(callback));\n }\n // otherwise go with full three arguments\n else\n {\n aborter = iterator(item, key, async(callback));\n }\n\n return aborter;\n}\n","// API\nmodule.exports = state;\n\n/**\n * Creates initial state object\n * for iteration over list\n *\n * @param {array|object} list - list to iterate over\n * @param {function|null} sortMethod - function to use for keys sort,\n * or `null` to keep them as is\n * @returns {object} - initial state object\n */\nfunction state(list, sortMethod)\n{\n var isNamedList = !Array.isArray(list)\n , initState =\n {\n index : 0,\n keyedList: isNamedList || sortMethod ? Object.keys(list) : null,\n jobs : {},\n results : isNamedList ? {} : [],\n size : isNamedList ? Object.keys(list).length : list.length\n }\n ;\n\n if (sortMethod)\n {\n // sort array keys based on it's values\n // sort object's keys just on own merit\n initState.keyedList.sort(isNamedList ? sortMethod : function(a, b)\n {\n return sortMethod(list[a], list[b]);\n });\n }\n\n return initState;\n}\n","var abort = require('./abort.js')\n , async = require('./async.js')\n ;\n\n// API\nmodule.exports = terminator;\n\n/**\n * Terminates jobs in the attached state context\n *\n * @this AsyncKitState#\n * @param {function} callback - final callback to invoke after termination\n */\nfunction terminator(callback)\n{\n if (!Object.keys(this.jobs).length)\n {\n return;\n }\n\n // fast forward iteration index\n this.index = this.size;\n\n // abort jobs\n abort(this);\n\n // send back results we have so far\n async(callback)(null, this.results);\n}\n","var iterate = require('./lib/iterate.js')\n , initState = require('./lib/state.js')\n , terminator = require('./lib/terminator.js')\n ;\n\n// Public API\nmodule.exports = parallel;\n\n/**\n * Runs iterator over provided array elements in parallel\n *\n * @param {array|object} list - array or object (named list) to iterate over\n * @param {function} iterator - iterator to run\n * @param {function} callback - invoked when all elements processed\n * @returns {function} - jobs terminator\n */\nfunction parallel(list, iterator, callback)\n{\n var state = initState(list);\n\n while (state.index < (state['keyedList'] || list).length)\n {\n iterate(list, iterator, state, function(error, result)\n {\n if (error)\n {\n callback(error, result);\n return;\n }\n\n // looks like it's the last one\n if (Object.keys(state.jobs).length === 0)\n {\n callback(null, state.results);\n return;\n }\n });\n\n state.index++;\n }\n\n return terminator.bind(state, callback);\n}\n","var iterate = require('./lib/iterate.js')\n , initState = require('./lib/state.js')\n , terminator = require('./lib/terminator.js')\n ;\n\n// Public API\nmodule.exports = serialOrdered;\n// sorting helpers\nmodule.exports.ascending = ascending;\nmodule.exports.descending = descending;\n\n/**\n * Runs iterator over provided sorted array elements in series\n *\n * @param {array|object} list - array or object (named list) to iterate over\n * @param {function} iterator - iterator to run\n * @param {function} sortMethod - custom sort function\n * @param {function} callback - invoked when all elements processed\n * @returns {function} - jobs terminator\n */\nfunction serialOrdered(list, iterator, sortMethod, callback)\n{\n var state = initState(list, sortMethod);\n\n iterate(list, iterator, state, function iteratorHandler(error, result)\n {\n if (error)\n {\n callback(error, result);\n return;\n }\n\n state.index++;\n\n // are we there yet?\n if (state.index < (state['keyedList'] || list).length)\n {\n iterate(list, iterator, state, iteratorHandler);\n return;\n }\n\n // done here\n callback(null, state.results);\n });\n\n return terminator.bind(state, callback);\n}\n\n/*\n * -- Sort methods\n */\n\n/**\n * sort helper to sort array elements in ascending order\n *\n * @param {mixed} a - an item to compare\n * @param {mixed} b - an item to compare\n * @returns {number} - comparison result\n */\nfunction ascending(a, b)\n{\n return a < b ? -1 : a > b ? 1 : 0;\n}\n\n/**\n * sort helper to sort array elements in descending order\n *\n * @param {mixed} a - an item to compare\n * @param {mixed} b - an item to compare\n * @returns {number} - comparison result\n */\nfunction descending(a, b)\n{\n return -1 * ascending(a, b);\n}\n","var serialOrdered = require('./serialOrdered.js');\n\n// Public API\nmodule.exports = serial;\n\n/**\n * Runs iterator over provided array elements in series\n *\n * @param {array|object} list - array or object (named list) to iterate over\n * @param {function} iterator - iterator to run\n * @param {function} callback - invoked when all elements processed\n * @returns {function} - jobs terminator\n */\nfunction serial(list, iterator, callback)\n{\n return serialOrdered(list, iterator, null, callback);\n}\n","module.exports =\n{\n parallel : require('./parallel.js'),\n serial : require('./serial.js'),\n serialOrdered : require('./serialOrdered.js')\n};\n","// populates missing values\nmodule.exports = function(dst, src) {\n\n Object.keys(src).forEach(function(prop)\n {\n dst[prop] = dst[prop] || src[prop];\n });\n\n return dst;\n};\n","var CombinedStream = require('combined-stream');\nvar util = require('util');\nvar path = require('path');\nvar http = require('http');\nvar https = require('https');\nvar parseUrl = require('url').parse;\nvar fs = require('fs');\nvar mime = require('mime-types');\nvar asynckit = require('asynckit');\nvar populate = require('./populate.js');\n\n// Public API\nmodule.exports = FormData;\n\n// make it a Stream\nutil.inherits(FormData, CombinedStream);\n\n/**\n * Create readable \"multipart/form-data\" streams.\n * Can be used to submit forms\n * and file uploads to other web applications.\n *\n * @constructor\n * @param {Object} options - Properties to be added/overriden for FormData and CombinedStream\n */\nfunction FormData(options) {\n if (!(this instanceof FormData)) {\n return new FormData(options);\n }\n\n this._overheadLength = 0;\n this._valueLength = 0;\n this._valuesToMeasure = [];\n\n CombinedStream.call(this);\n\n options = options || {};\n for (var option in options) {\n this[option] = options[option];\n }\n}\n\nFormData.LINE_BREAK = '\\r\\n';\nFormData.DEFAULT_CONTENT_TYPE = 'application/octet-stream';\n\nFormData.prototype.append = function(field, value, options) {\n\n options = options || {};\n\n // allow filename as single option\n if (typeof options == 'string') {\n options = {filename: options};\n }\n\n var append = CombinedStream.prototype.append.bind(this);\n\n // all that streamy business can't handle numbers\n if (typeof value == 'number') {\n value = '' + value;\n }\n\n // https://github.com/felixge/node-form-data/issues/38\n if (util.isArray(value)) {\n // Please convert your array into string\n // the way web server expects it\n this._error(new Error('Arrays are not supported.'));\n return;\n }\n\n var header = this._multiPartHeader(field, value, options);\n var footer = this._multiPartFooter();\n\n append(header);\n append(value);\n append(footer);\n\n // pass along options.knownLength\n this._trackLength(header, value, options);\n};\n\nFormData.prototype._trackLength = function(header, value, options) {\n var valueLength = 0;\n\n // used w/ getLengthSync(), when length is known.\n // e.g. for streaming directly from a remote server,\n // w/ a known file a size, and not wanting to wait for\n // incoming file to finish to get its size.\n if (options.knownLength != null) {\n valueLength += +options.knownLength;\n } else if (Buffer.isBuffer(value)) {\n valueLength = value.length;\n } else if (typeof value === 'string') {\n valueLength = Buffer.byteLength(value);\n }\n\n this._valueLength += valueLength;\n\n // @check why add CRLF? does this account for custom/multiple CRLFs?\n this._overheadLength +=\n Buffer.byteLength(header) +\n FormData.LINE_BREAK.length;\n\n // empty or either doesn't have path or not an http response\n if (!value || ( !value.path && !(value.readable && value.hasOwnProperty('httpVersion')) )) {\n return;\n }\n\n // no need to bother with the length\n if (!options.knownLength) {\n this._valuesToMeasure.push(value);\n }\n};\n\nFormData.prototype._lengthRetriever = function(value, callback) {\n\n if (value.hasOwnProperty('fd')) {\n\n // take read range into a account\n // `end` = Infinity –> read file till the end\n //\n // TODO: Looks like there is bug in Node fs.createReadStream\n // it doesn't respect `end` options without `start` options\n // Fix it when node fixes it.\n // https://github.com/joyent/node/issues/7819\n if (value.end != undefined && value.end != Infinity && value.start != undefined) {\n\n // when end specified\n // no need to calculate range\n // inclusive, starts with 0\n callback(null, value.end + 1 - (value.start ? value.start : 0));\n\n // not that fast snoopy\n } else {\n // still need to fetch file size from fs\n fs.stat(value.path, function(err, stat) {\n\n var fileSize;\n\n if (err) {\n callback(err);\n return;\n }\n\n // update final size based on the range options\n fileSize = stat.size - (value.start ? value.start : 0);\n callback(null, fileSize);\n });\n }\n\n // or http response\n } else if (value.hasOwnProperty('httpVersion')) {\n callback(null, +value.headers['content-length']);\n\n // or request stream http://github.com/mikeal/request\n } else if (value.hasOwnProperty('httpModule')) {\n // wait till response come back\n value.on('response', function(response) {\n value.pause();\n callback(null, +response.headers['content-length']);\n });\n value.resume();\n\n // something else\n } else {\n callback('Unknown stream');\n }\n};\n\nFormData.prototype._multiPartHeader = function(field, value, options) {\n // custom header specified (as string)?\n // it becomes responsible for boundary\n // (e.g. to handle extra CRLFs on .NET servers)\n if (typeof options.header == 'string') {\n return options.header;\n }\n\n var contentDisposition = this._getContentDisposition(value, options);\n var contentType = this._getContentType(value, options);\n\n var contents = '';\n var headers = {\n // add custom disposition as third element or keep it two elements if not\n 'Content-Disposition': ['form-data', 'name=\"' + field + '\"'].concat(contentDisposition || []),\n // if no content type. allow it to be empty array\n 'Content-Type': [].concat(contentType || [])\n };\n\n // allow custom headers.\n if (typeof options.header == 'object') {\n populate(headers, options.header);\n }\n\n var header;\n for (var prop in headers) {\n if (!headers.hasOwnProperty(prop)) continue;\n header = headers[prop];\n\n // skip nullish headers.\n if (header == null) {\n continue;\n }\n\n // convert all headers to arrays.\n if (!Array.isArray(header)) {\n header = [header];\n }\n\n // add non-empty headers.\n if (header.length) {\n contents += prop + ': ' + header.join('; ') + FormData.LINE_BREAK;\n }\n }\n\n return '--' + this.getBoundary() + FormData.LINE_BREAK + contents + FormData.LINE_BREAK;\n};\n\nFormData.prototype._getContentDisposition = function(value, options) {\n\n var filename\n , contentDisposition\n ;\n\n if (typeof options.filepath === 'string') {\n // custom filepath for relative paths\n filename = path.normalize(options.filepath).replace(/\\\\/g, '/');\n } else if (options.filename || value.name || value.path) {\n // custom filename take precedence\n // formidable and the browser add a name property\n // fs- and request- streams have path property\n filename = path.basename(options.filename || value.name || value.path);\n } else if (value.readable && value.hasOwnProperty('httpVersion')) {\n // or try http response\n filename = path.basename(value.client._httpMessage.path || '');\n }\n\n if (filename) {\n contentDisposition = 'filename=\"' + filename + '\"';\n }\n\n return contentDisposition;\n};\n\nFormData.prototype._getContentType = function(value, options) {\n\n // use custom content-type above all\n var contentType = options.contentType;\n\n // or try `name` from formidable, browser\n if (!contentType && value.name) {\n contentType = mime.lookup(value.name);\n }\n\n // or try `path` from fs-, request- streams\n if (!contentType && value.path) {\n contentType = mime.lookup(value.path);\n }\n\n // or if it's http-reponse\n if (!contentType && value.readable && value.hasOwnProperty('httpVersion')) {\n contentType = value.headers['content-type'];\n }\n\n // or guess it from the filepath or filename\n if (!contentType && (options.filepath || options.filename)) {\n contentType = mime.lookup(options.filepath || options.filename);\n }\n\n // fallback to the default content type if `value` is not simple value\n if (!contentType && typeof value == 'object') {\n contentType = FormData.DEFAULT_CONTENT_TYPE;\n }\n\n return contentType;\n};\n\nFormData.prototype._multiPartFooter = function() {\n return function(next) {\n var footer = FormData.LINE_BREAK;\n\n var lastPart = (this._streams.length === 0);\n if (lastPart) {\n footer += this._lastBoundary();\n }\n\n next(footer);\n }.bind(this);\n};\n\nFormData.prototype._lastBoundary = function() {\n return '--' + this.getBoundary() + '--' + FormData.LINE_BREAK;\n};\n\nFormData.prototype.getHeaders = function(userHeaders) {\n var header;\n var formHeaders = {\n 'content-type': 'multipart/form-data; boundary=' + this.getBoundary()\n };\n\n for (header in userHeaders) {\n if (userHeaders.hasOwnProperty(header)) {\n formHeaders[header.toLowerCase()] = userHeaders[header];\n }\n }\n\n return formHeaders;\n};\n\nFormData.prototype.setBoundary = function(boundary) {\n this._boundary = boundary;\n};\n\nFormData.prototype.getBoundary = function() {\n if (!this._boundary) {\n this._generateBoundary();\n }\n\n return this._boundary;\n};\n\nFormData.prototype.getBuffer = function() {\n var dataBuffer = new Buffer.alloc( 0 );\n var boundary = this.getBoundary();\n\n // Create the form content. Add Line breaks to the end of data.\n for (var i = 0, len = this._streams.length; i < len; i++) {\n if (typeof this._streams[i] !== 'function') {\n\n // Add content to the buffer.\n if(Buffer.isBuffer(this._streams[i])) {\n dataBuffer = Buffer.concat( [dataBuffer, this._streams[i]]);\n }else {\n dataBuffer = Buffer.concat( [dataBuffer, Buffer.from(this._streams[i])]);\n }\n\n // Add break after content.\n if (typeof this._streams[i] !== 'string' || this._streams[i].substring( 2, boundary.length + 2 ) !== boundary) {\n dataBuffer = Buffer.concat( [dataBuffer, Buffer.from(FormData.LINE_BREAK)] );\n }\n }\n }\n\n // Add the footer and return the Buffer object.\n return Buffer.concat( [dataBuffer, Buffer.from(this._lastBoundary())] );\n};\n\nFormData.prototype._generateBoundary = function() {\n // This generates a 50 character boundary similar to those used by Firefox.\n // They are optimized for boyer-moore parsing.\n var boundary = '--------------------------';\n for (var i = 0; i < 24; i++) {\n boundary += Math.floor(Math.random() * 10).toString(16);\n }\n\n this._boundary = boundary;\n};\n\n// Note: getLengthSync DOESN'T calculate streams length\n// As workaround one can calculate file size manually\n// and add it as knownLength option\nFormData.prototype.getLengthSync = function() {\n var knownLength = this._overheadLength + this._valueLength;\n\n // Don't get confused, there are 3 \"internal\" streams for each keyval pair\n // so it basically checks if there is any value added to the form\n if (this._streams.length) {\n knownLength += this._lastBoundary().length;\n }\n\n // https://github.com/form-data/form-data/issues/40\n if (!this.hasKnownLength()) {\n // Some async length retrievers are present\n // therefore synchronous length calculation is false.\n // Please use getLength(callback) to get proper length\n this._error(new Error('Cannot calculate proper length in synchronous way.'));\n }\n\n return knownLength;\n};\n\n// Public API to check if length of added values is known\n// https://github.com/form-data/form-data/issues/196\n// https://github.com/form-data/form-data/issues/262\nFormData.prototype.hasKnownLength = function() {\n var hasKnownLength = true;\n\n if (this._valuesToMeasure.length) {\n hasKnownLength = false;\n }\n\n return hasKnownLength;\n};\n\nFormData.prototype.getLength = function(cb) {\n var knownLength = this._overheadLength + this._valueLength;\n\n if (this._streams.length) {\n knownLength += this._lastBoundary().length;\n }\n\n if (!this._valuesToMeasure.length) {\n process.nextTick(cb.bind(this, null, knownLength));\n return;\n }\n\n asynckit.parallel(this._valuesToMeasure, this._lengthRetriever, function(err, values) {\n if (err) {\n cb(err);\n return;\n }\n\n values.forEach(function(length) {\n knownLength += length;\n });\n\n cb(null, knownLength);\n });\n};\n\nFormData.prototype.submit = function(params, cb) {\n var request\n , options\n , defaults = {method: 'post'}\n ;\n\n // parse provided url if it's string\n // or treat it as options object\n if (typeof params == 'string') {\n\n params = parseUrl(params);\n options = populate({\n port: params.port,\n path: params.pathname,\n host: params.hostname,\n protocol: params.protocol\n }, defaults);\n\n // use custom params\n } else {\n\n options = populate(params, defaults);\n // if no port provided use default one\n if (!options.port) {\n options.port = options.protocol == 'https:' ? 443 : 80;\n }\n }\n\n // put that good code in getHeaders to some use\n options.headers = this.getHeaders(params.headers);\n\n // https if specified, fallback to http in any other case\n if (options.protocol == 'https:') {\n request = https.request(options);\n } else {\n request = http.request(options);\n }\n\n // get content length and fire away\n this.getLength(function(err, length) {\n if (err) {\n this._error(err);\n return;\n }\n\n // add content length\n request.setHeader('Content-Length', length);\n\n this.pipe(request);\n if (cb) {\n var onResponse;\n\n var callback = function (error, responce) {\n request.removeListener('error', callback);\n request.removeListener('response', onResponse);\n\n return cb.call(this, error, responce);\n };\n\n onResponse = callback.bind(this, null);\n\n request.on('error', callback);\n request.on('response', onResponse);\n }\n }.bind(this));\n\n return request;\n};\n\nFormData.prototype._error = function(err) {\n if (!this.error) {\n this.error = err;\n this.pause();\n this.emit('error', err);\n }\n};\n\nFormData.prototype.toString = function () {\n return '[object FormData]';\n};\n","export * from \"./src/task/index\";\nexport * from \"./src/common/index\";\nexport * from \"./src/core\";\n","export * from \"./TaskRunner\"\nexport * from \"./TaskManager\"\nexport * from \"./Worker\"\n","import { ConductorLogger } from \"../common\";\nimport { ConductorWorker } from \"./Worker\";\nimport { Task, TaskResourceService } from \"../common/open-api\";\nimport { TaskManagerOptions } from \"./TaskManager\";\n\nconst DEFAULT_ERROR_MESSAGE = \"An unknown error occurred\";\n\nexport interface RunnerArgs {\n worker: ConductorWorker;\n taskResource: TaskResourceService;\n options: Required<TaskManagerOptions>;\n logger?: ConductorLogger;\n}\nconst noopLogger: ConductorLogger = {\n //eslint-disable-next-line\n debug: (...args: any) => {},\n //eslint-disable-next-line\n info: (...args: any) => {},\n //eslint-disable-next-line\n error: (...args: any) => {},\n};\n\n/**\n * Responsible for polling and executing tasks from a queue.\n *\n * Because a `poll` in conductor \"pops\" a task off of a conductor queue,\n * each runner participates in the poll -> work -> update loop.\n * We could potentially split this work into a separate \"poller\" and \"worker\" pools\n * but that could lead to picking up more work than the pool of workers are actually able to handle.\n *\n */\nexport class TaskRunner {\n isPolling = false;\n taskResource: TaskResourceService;\n worker: ConductorWorker;\n logger: ConductorLogger;\n options: Required<TaskManagerOptions>;\n\n constructor({\n worker,\n taskResource,\n options,\n logger = noopLogger,\n }: RunnerArgs) {\n this.taskResource = taskResource;\n this.logger = logger;\n this.worker = worker;\n this.options = options;\n }\n\n startPolling = () => {\n if (this.isPolling) {\n throw new Error(\"Runner is already started\");\n }\n\n this.isPolling = true;\n return this.poll();\n };\n\n stopPolling = () => {\n this.isPolling = false;\n };\n\n poll = async () => {\n while (this.isPolling) {\n try {\n const { workerID } = this.options;\n const task = await this.taskResource.poll(\n this.worker.taskDefName,\n workerID,\n this.options.domain\n );\n if (task && task.taskId) {\n await this.executeTask(task);\n } else {\n this.logger.debug(`No tasks for ${this.worker.taskDefName}`);\n }\n } catch (unknownError: unknown) {\n this.handleUnknownError(unknownError);\n }\n\n await new Promise((r) => setTimeout(() => r(true), this.options.pollInterval));\n }\n };\n\n executeTask = async (task: Task) => {\n try {\n const result = await this.worker.execute(task);\n await this.taskResource.updateTask1({\n ...result,\n workflowInstanceId: task.workflowInstanceId!,\n taskId: task.taskId!,\n });\n this.logger.debug(`Finished polling for task ${task.taskId}`);\n } catch (error: unknown) {\n this.logger.error(`Error executing ${task.taskId}`, error);\n await this.taskResource.updateTask1({\n workflowInstanceId: task.workflowInstanceId!,\n taskId: task.taskId!,\n reasonForIncompletion:\n (error as Record<string, string>)?.message ?? DEFAULT_ERROR_MESSAGE,\n status: \"FAILED\",\n outputData: {},\n });\n }\n };\n\n handleUnknownError = (unknownError: unknown) => {\n let message = \"\";\n let stack: string | undefined = \"\";\n if ((unknownError as Error).stack) {\n stack = (unknownError as Error).stack;\n }\n if ((unknownError as Error).message) {\n message = (unknownError as Error).message;\n }\n this.logger.error(\n `Error for ${this.worker.taskDefName}: error: ${message}, stack: ${stack}`\n );\n };\n}\n","import os from \"os\"\nimport {TaskRunner} from \"./TaskRunner\"\nimport {ConductorLogger, DefaultLogger} from \"../common\"\nimport {ConductorWorker} from \"./Worker\"\nimport {ConductorClient} from \"../common/open-api\"\n\nexport interface TaskManagerOptions {\n workerID: string\n domain: string | undefined\n pollInterval?: number,\n concurrency?: number\n}\n\nexport interface TaskManagerConfig {\n logger?: ConductorLogger\n options?: Partial<TaskManagerOptions>\n}\n\nconst defaultManagerOptions: Required<TaskManagerOptions> = {\n workerID: '',\n pollInterval: 1000,\n domain: undefined,\n concurrency: 1\n}\n\nfunction workerId (options: Partial<TaskManagerOptions>) {\n return options.workerID ?? os.hostname()\n}\n\n/**\n * Responsible for initializing and managing the runners that poll and work different task queues.\n */\nexport class TaskManager {\n private tasks: Record<string, Array<TaskRunner>> = {}\n private readonly client: ConductorClient\n private readonly logger: ConductorLogger\n private workers: Array<ConductorWorker>\n private readonly taskManageOptions: Required<TaskManagerOptions>\n\n constructor(client: ConductorClient, workers: Array<ConductorWorker>, config: TaskManagerConfig = {}) {\n if (!workers) { throw new Error(\"No workers supplied to TaskManager. Please pass an array of workers.\") }\n this.client = client\n this.logger = config.logger ?? new DefaultLogger()\n this.workers = workers\n const providedOptions = config.options ?? {}\n this.taskManageOptions = {\n ...defaultManagerOptions,\n ...providedOptions,\n workerID: workerId(providedOptions),\n }\n }\n\n startPolling = () => {\n this.workers.forEach(worker => {\n this.tasks[worker.taskDefName] = []\n const options = {\n ...this.taskManageOptions,\n concurrency: worker.concurrency ?? this.taskManageOptions.concurrency,\n domain: worker.domain ?? this.taskManageOptions.domain\n }\n this.logger.debug(`Starting taskDefName=${worker.taskDefName} concurrency=${options.concurrency} domain=${options.domain}`)\n for (let i = 0; i < options.concurrency; i++) {\n const runner = new TaskRunner({\n worker,\n options,\n taskResource: this.client.taskResource,\n logger: this.logger\n })\n // TODO(@ntomlin): right now we aren't handling these promises\n // which will inevitably lead to chaos\n runner.startPolling()\n this.tasks[worker.taskDefName].push(runner)\n }\n })\n }\n\n stopPolling = () => {\n for (const taskType in this.tasks) {\n this.tasks[taskType].forEach(runner => runner.stopPolling())\n this.tasks[taskType] = []\n }\n }\n}\n","export * from \"./ConductorLogger\";\nexport * from \"./RequestCustomizer\";\nexport * from \"./open-api/core/CancelablePromise\";\nexport * from \"./orkes\";\nexport * from \"./generators\";\nexport * from \"./types\";\nexport * from \"./sdk\";\n\nimport { ConductorClient, OpenAPIConfig } from \"./open-api\";\n\nexport { ConductorClient, OpenAPIConfig };\n","export interface ConductorLogger {\n info(...args: any): void\n error(...args: any): void\n debug(...args: any): void\n}\n\nexport type ConductorLogLevel = keyof typeof LOG_LEVELS\nexport interface DefaultLoggerConfig {\n level?: ConductorLogLevel,\n tags?: Object[]\n}\n\nconst LOG_LEVELS = {\n DEBUG: 10,\n INFO: 30,\n ERROR: 60\n} as const\n\n\n/*\nThis provides an easy way to get up and running without worrying about configuring a logging framework.\nIdeally, users that care can easily override with any compatible logger (e.g. pino, etc)\n */\nexport class DefaultLogger implements ConductorLogger {\n private readonly tags: Object[]\n private readonly level: number\n\n constructor(config: DefaultLoggerConfig = {}) {\n const {level, tags = []} = config\n this.tags = tags\n if (level && level in LOG_LEVELS) {\n this.level = LOG_LEVELS[level]\n } else {\n this.level = LOG_LEVELS.INFO\n }\n }\n\n private log (level: ConductorLogLevel, ...args: any) {\n let resolvedLevel: number\n let name = level\n if (level in LOG_LEVELS) {\n resolvedLevel = LOG_LEVELS[level]\n } else {\n name = \"INFO\"\n resolvedLevel = LOG_LEVELS.INFO\n }\n if (resolvedLevel >= this.level) {\n console.log(name, ...this.tags, ...args)\n }\n }\n\n info = (...args: any): void => {\n this.log(\"INFO\", ...args)\n }\n\n debug = (...args: any): void => {\n this.log(\"DEBUG\", ...args)\n }\n\n error =(...args: any): void => {\n this.log(\"ERROR\", ...args)\n }\n}\n","import {ApiRequestOptions} from \"./open-api/core/ApiRequestOptions\"\nimport {CancelablePromise} from \"./open-api/core/CancelablePromise\"\nimport {OpenAPIConfig} from \"./open-api/core/OpenAPI\"\nimport {request as baseRequest} from \"./open-api/core/request\"\n\n/**\n * A handler to modify requests made by ConductorClient. Useful for metrics/option transformation/etc.\n *\n * @remarks\n * Example: Customizing the request URL\n * ```\n *\n * const requestCustomizer = (request, config, options) => {\n * const url = options.url.replace(/^\\/api/, '')\n * return request(config, {...options, url });\n * }\n * const config = { BASE: \"https://my-api.com\"}\n * const client = new ConductorClient(config, requestCustomizer)\n * ```\n *\n * @param request the underlying node-fetch powered function\n * @param config @see OpenAPIConfig\n * @param options {see ApiRequestOptions}\n */\nexport type RequestType = typeof baseRequest;\nexport type ConductorHttpRequest = <T>(request: RequestType, config: OpenAPIConfig, options: ApiRequestOptions) => CancelablePromise<T>\n","/* istanbul ignore file */\n/* tslint:disable */\n/* eslint-disable */\nexport class CancelError extends Error {\n\n constructor(message: string) {\n super(message);\n this.name = 'CancelError';\n }\n\n public get isCancelled(): boolean {\n return true;\n }\n}\n\nexport interface OnCancel {\n readonly isResolved: boolean;\n readonly isRejected: boolean;\n readonly isCancelled: boolean;\n\n (cancelHandler: () => void): void;\n}\n\nexport class CancelablePromise<T> implements Promise<T> {\n readonly [Symbol.toStringTag]!: string;\n\n private _isResolved: boolean;\n private _isRejected: boolean;\n private _isCancelled: boolean;\n private readonly _cancelHandlers: (() => void)[];\n private readonly _promise: Promise<T>;\n private _resolve?: (value: T | PromiseLike<T>) => void;\n private _reject?: (reason?: any) => void;\n\n constructor(\n executor: (\n resolve: (value: T | PromiseLike<T>) => void,\n reject: (reason?: any) => void,\n onCancel: OnCancel\n ) => void\n ) {\n this._isResolved = false;\n this._isRejected = false;\n this._isCancelled = false;\n this._cancelHandlers = [];\n this._promise = new Promise<T>((resolve, reject) => {\n this._resolve = resolve;\n this._reject = reject;\n\n const onResolve = (value: T | PromiseLike<T>): void => {\n if (this._isResolved || this._isRejected || this._isCancelled) {\n return;\n }\n this._isResolved = true;\n this._resolve?.(value);\n };\n\n const onReject = (reason?: any): void => {\n if (this._isResolved || this._isRejected || this._isCancelled) {\n return;\n }\n this._isRejected = true;\n this._reject?.(reason);\n };\n\n const onCancel = (cancelHandler: () => void): void => {\n if (this._isResolved || this._isRejected || this._isCancelled) {\n return;\n }\n this._cancelHandlers.push(cancelHandler);\n };\n\n Object.defineProperty(onCancel, 'isResolved', {\n get: (): boolean => this._isResolved,\n });\n\n Object.defineProperty(onCancel, 'isRejected', {\n get: (): boolean => this._isRejected,\n });\n\n Object.defineProperty(onCancel, 'isCancelled', {\n get: (): boolean => this._isCancelled,\n });\n\n return executor(onResolve, onReject, onCancel as OnCancel);\n });\n }\n\n public then<TResult1 = T, TResult2 = never>(\n onFulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | null,\n onRejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | null\n ): Promise<TResult1 | TResult2> {\n return this._promise.then(onFulfilled, onRejected);\n }\n\n public catch<TResult = never>(\n onRejected?: ((reason: any) => TResult | PromiseLike<TResult>) | null\n ): Promise<T | TResult> {\n return this._promise.catch(onRejected);\n }\n\n public finally(onFinally?: (() => void) | null): Promise<T> {\n return this._promise.finally(onFinally);\n }\n\n public cancel(): void {\n if (this._isResolved || this._isRejected || this._isCancelled) {\n return;\n }\n this._isCancelled = true;\n if (this._cancelHandlers.length) {\n try {\n for (const cancelHandler of this._cancelHandlers) {\n cancelHandler();\n }\n } catch (error) {\n console.warn('Cancellation threw an error', error);\n return;\n }\n }\n this._cancelHandlers.length = 0;\n this._reject?.(new CancelError('Request aborted'));\n }\n\n public get isCancelled(): boolean {\n return this._isCancelled;\n }\n}\n","export * from \"./OrkesConductorClient\";\n","import { ConductorHttpRequest } from \"../RequestCustomizer\";\nimport {\n ConductorClient,\n ConductorClientAPIConfig,\n} from \"../open-api/ConductorClient\";\nimport { GenerateTokenRequest } from \"../open-api\";\nimport fetch from \"node-fetch\";\n\nexport type OrkesApiConfig = ConductorClientAPIConfig & GenerateTokenRequest;\n\nconst defaultRequestHandler: ConductorHttpRequest = (\n request,\n config,\n options\n) => request(config, options);\n/**\n * Takes a config with keyId and keySecret returns a promise with an instance of ConductorClient\n * \n * @param config ConductorClientConfig with keyId and keySecret \n * @param requestHandler (optional) ConductorHttpRequest handler\n * @returns \n */\nexport const orkesConductorClient = async (\n config?: Partial<OrkesApiConfig>,\n requestHandler: ConductorHttpRequest = defaultRequestHandler\n): Promise<ConductorClient> => {\n if (config?.keySecret != null && config?.keyId != null) {\n const { serverUrl, keyId, keySecret } = config;\n const tokenUrl = `${serverUrl}/token`;\n const res = await fetch(tokenUrl, {\n headers: {\n \"Content-Type\": \"application/json\",\n Accept: \"application/json\",\n },\n body: JSON.stringify({ keyId, keySecret }),\n method: \"POST\",\n });\n const { token } = await res.json();\n return new ConductorClient({ ...config, TOKEN: token }, requestHandler);\n } else {\n return Promise.resolve(new ConductorClient(config, requestHandler));\n }\n};\n","/* istanbul ignore file */\n/* tslint:disable */\n/* eslint-disable */\nimport type { BaseHttpRequest } from \"./core/BaseHttpRequest\";\nimport type { OpenAPIConfig } from \"./core/OpenAPI\";\n\nimport { AdminResourceService } from \"./services/AdminResourceService\";\nimport { ApplicationResourceService } from \"./services/ApplicationResourceService\";\nimport { AuthorizationResourceService } from \"./services/AuthorizationResourceService\";\nimport { EventResourceService } from \"./services/EventResourceService\";\nimport { GroupResourceService } from \"./services/GroupResourceService\";\nimport { HealthCheckResourceService } from \"./services/HealthCheckResourceService\";\nimport { MetadataResourceService } from \"./services/MetadataResourceService\";\nimport { MigrationResourceService } from \"./services/MigrationResourceService\";\nimport { PublisherConfigResourceService } from \"./services/PublisherConfigResourceService\";\nimport { QueueAdminResourceService } from \"./services/QueueAdminResourceService\";\nimport { SchedulerResourceService } from \"./services/SchedulerResourceService\";\nimport { SecretResourceService } from \"./services/SecretResourceService\";\nimport { TagsExperimentalService } from \"./services/TagsExperimentalService\";\nimport { TaskResourceService } from \"./services/TaskResourceService\";\nimport { TokenResourceService } from \"./services/TokenResourceService\";\nimport { UserResourceService } from \"./services/UserResourceService\";\nimport { VersionResourceService } from \"./services/VersionResourceService\";\nimport { WorkflowBulkResourceService } from \"./services/WorkflowBulkResourceService\";\nimport { WorkflowResourceService } from \"./services/WorkflowResourceService\";\nimport { request as baseRequest } from \"./core/request\";\nimport { ConductorHttpRequest } from \"../RequestCustomizer\";\n\ntype HttpRequestConstructor = new (config: OpenAPIConfig) => BaseHttpRequest;\n\nexport const defaultRequestHandler: ConductorHttpRequest = (\n request,\n config,\n options\n) => request(config, options);\n\nexport interface ConductorClientAPIConfig extends Omit<OpenAPIConfig, \"BASE\"> {\n serverUrl: string;\n}\n\nexport class ConductorClient {\n public readonly adminResource: AdminResourceService;\n public readonly applicationResource: ApplicationResourceService;\n public readonly authorizationResource: AuthorizationResourceService;\n public readonly eventResource: EventResourceService;\n public readonly groupResource: GroupResourceService;\n public readonly healthCheckResource: HealthCheckResourceService;\n public readonly metadataResource: MetadataResourceService;\n public readonly migrationResource: MigrationResourceService;\n public readonly publisherConfigResource: PublisherConfigResourceService;\n public readonly queueAdminResource: QueueAdminResourceService;\n public readonly schedulerResource: SchedulerResourceService;\n public readonly secretResource: SecretResourceService;\n public readonly tagsExperimental: TagsExperimentalService;\n public readonly taskResource: TaskResourceService;\n public readonly tokenResource: TokenResourceService;\n public readonly userResource: UserResourceService;\n public readonly versionResource: VersionResourceService;\n public readonly workflowBulkResource: WorkflowBulkResourceService;\n public readonly workflowResource: WorkflowResourceService;\n\n public readonly request: BaseHttpRequest;\n\n constructor(\n config?: Partial<ConductorClientAPIConfig>,\n requestHandler: ConductorHttpRequest = defaultRequestHandler\n ) {\n const resolvedConfig = {\n BASE: config?.serverUrl ?? \"http://localhost:8080\",\n VERSION: config?.VERSION ?? \"0\",\n WITH_CREDENTIALS: config?.WITH_CREDENTIALS ?? false,\n CREDENTIALS: config?.CREDENTIALS ?? \"include\",\n TOKEN: config?.TOKEN,\n USERNAME: config?.USERNAME,\n PASSWORD: config?.PASSWORD,\n HEADERS: config?.HEADERS,\n ENCODE_PATH: config?.ENCODE_PATH,\n };\n\n // START conductor-client-modification\n /* The generated models are all based on the concept of an instantiated base http\n class. To avoid making edits there, we just create an object that satisfies the same\n interface. Yay typescript!\n */\n this.request = {\n config: resolvedConfig,\n request: (apiConfig) => {\n return requestHandler(baseRequest, resolvedConfig, apiConfig);\n },\n };\n // END conductor-client-modification\n\n this.adminResource = new AdminResourceService(this.request);\n this.applicationResource = new ApplicationResourceService(this.request);\n this.authorizationResource = new AuthorizationResourceService(this.request);\n this.eventResource = new EventResourceService(this.request);\n this.groupResource = new GroupResourceService(this.request);\n this.healthCheckResource = new HealthCheckResourceService(this.request);\n this.metadataResource = new MetadataResourceService(this.request);\n this.migrationResource = new MigrationResourceService(this.request);\n this.publisherConfigResource = new PublisherConfigResourceService(\n this.request\n );\n this.queueAdminResource = new QueueAdminResourceService(this.request);\n this.schedulerResource = new SchedulerResourceService(this.request);\n this.secretResource = new SecretResourceService(this.request);\n this.tagsExperimental = new TagsExperimentalService(this.request);\n this.taskResource = new TaskResourceService(this.request);\n this.tokenResource = new TokenResourceService(this.request);\n this.userResource = new UserResourceService(this.request);\n this.versionResource = new VersionResourceService(this.request);\n this.workflowBulkResource = new WorkflowBulkResourceService(this.request);\n this.workflowResource = new WorkflowResourceService(this.request);\n }\n}\n","/* istanbul ignore file */\n/* tslint:disable */\n/* eslint-disable */\nimport type { Task } from '../models/Task';\n\nimport type { CancelablePromise } from '../core/CancelablePromise';\nimport type { BaseHttpRequest } from '../core/BaseHttpRequest';\n\nexport class AdminResourceService {\n\n constructor(public readonly httpRequest: BaseHttpRequest) {}\n\n /**\n * Verify and repair workflow consistency\n * @param workflowId\n * @returns string OK\n * @throws ApiError\n */\n public verifyAndRepairWorkflowConsistency(\n workflowId: string,\n ): CancelablePromise<string> {\n return this.httpRequest.request({\n method: 'POST',\n url: '/admin/consistency/verifyAndRepair/{workflowId}',\n path: {\n 'workflowId': workflowId,\n },\n });\n }\n\n /**\n * Get details of redis usage\n * @returns any OK\n * @throws ApiError\n */\n public getRedisUsage(): CancelablePromise<Record<string, any>> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/admin/redisUsage',\n });\n }\n\n /**\n * Get the list of pending tasks for a given task type\n * @param tasktype\n * @param start\n * @param count\n * @returns Task OK\n * @throws ApiError\n */\n public view(\n tasktype: string,\n start?: number,\n count: number = 100,\n ): CancelablePromise<Array<Task>> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/admin/task/{tasktype}',\n path: {\n 'tasktype': tasktype,\n },\n query: {\n 'start': start,\n 'count': count,\n },\n });\n }\n\n /**\n * Queue up all the running workflows for sweep\n * @param workflowId\n * @returns string OK\n * @throws ApiError\n */\n public requeueSweep(\n workflowId: string,\n ): CancelablePromise<string> {\n return this.httpRequest.request({\n method: 'POST',\n url: '/admin/sweep/requeue/{workflowId}',\n path: {\n 'workflowId': workflowId,\n },\n });\n }\n\n /**\n * Get registered queues\n * @param verbose\n * @returns any OK\n * @throws ApiError\n */\n public getEventQueues(\n verbose: boolean = false,\n ): CancelablePromise<Record<string, any>> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/admin/queues',\n query: {\n 'verbose': verbose,\n },\n });\n }\n\n}\n","/* istanbul ignore file */\n/* tslint:disable */\n/* eslint-disable */\nimport type { ConductorApplication } from '../models/ConductorApplication';\nimport type { CreateOrUpdateApplicationRequest } from '../models/CreateOrUpdateApplicationRequest';\n\nimport type { CancelablePromise } from '../core/CancelablePromise';\nimport type { BaseHttpRequest } from '../core/BaseHttpRequest';\n\nexport class ApplicationResourceService {\n\n constructor(public readonly httpRequest: BaseHttpRequest) {}\n\n /**\n * Get an application by id\n * @param id\n * @returns any OK\n * @throws ApiError\n */\n public getApplication(\n id: string,\n ): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/applications/{id}',\n path: {\n 'id': id,\n },\n });\n }\n\n /**\n * Update an application\n * @param id\n * @param requestBody\n * @returns any OK\n * @throws ApiError\n */\n public updateApplication(\n id: string,\n requestBody: CreateOrUpdateApplicationRequest,\n ): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'PUT',\n url: '/applications/{id}',\n path: {\n 'id': id,\n },\n body: requestBody,\n mediaType: 'application/json',\n });\n }\n\n /**\n * Delete an application\n * @param id\n * @returns any OK\n * @throws ApiError\n */\n public deleteApplication(\n id: string,\n ): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'DELETE',\n url: '/applications/{id}',\n path: {\n 'id': id,\n },\n });\n }\n\n /**\n * Get application's access keys\n * @param id\n * @returns any OK\n * @throws ApiError\n */\n public getAccessKeys(\n id: string,\n ): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/applications/{id}/accessKeys',\n path: {\n 'id': id,\n },\n });\n }\n\n /**\n * Create an access key for an application\n * @param id\n * @returns any OK\n * @throws ApiError\n */\n public createAccessKey(\n id: string,\n ): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'POST',\n url: '/applications/{id}/accessKeys',\n path: {\n 'id': id,\n },\n });\n }\n\n /**\n * @param applicationId\n * @param role\n * @returns any OK\n * @throws ApiError\n */\n public addRoleToApplicationUser(\n applicationId: string,\n role: string,\n ): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'POST',\n url: '/applications/{applicationId}/roles/{role}',\n path: {\n 'applicationId': applicationId,\n 'role': role,\n },\n });\n }\n\n /**\n * @param applicationId\n * @param role\n * @returns any OK\n * @throws ApiError\n */\n public removeRoleFromApplicationUser(\n applicationId: string,\n role: string,\n ): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'DELETE',\n url: '/applications/{applicationId}/roles/{role}',\n path: {\n 'applicationId': applicationId,\n 'role': role,\n },\n });\n }\n\n /**\n * Toggle the status of an access key\n * @param applicationId\n * @param keyId\n * @returns any OK\n * @throws ApiError\n */\n public toggleAccessKeyStatus(\n applicationId: string,\n keyId: string,\n ): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'POST',\n url: '/applications/{applicationId}/accessKeys/{keyId}/status',\n path: {\n 'applicationId': applicationId,\n 'keyId': keyId,\n },\n });\n }\n\n /**\n * Get all applications\n * @returns ConductorApplication OK\n * @throws ApiError\n */\n public listApplications(): CancelablePromise<Array<ConductorApplication>> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/applications',\n });\n }\n\n /**\n * Create an application\n * @param requestBody\n * @returns any OK\n * @throws ApiError\n */\n public createApplication(\n requestBody: CreateOrUpdateApplicationRequest,\n ): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'POST',\n url: '/applications',\n body: requestBody,\n mediaType: 'application/json',\n });\n }\n\n /**\n * Delete an access key\n * @param applicationId\n * @param keyId\n * @returns any OK\n * @throws ApiError\n */\n public deleteAccessKey(\n applicationId: string,\n keyId: string,\n ): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'DELETE',\n url: '/applications/{applicationId}/accessKeys/{keyId}',\n path: {\n 'applicationId': applicationId,\n 'keyId': keyId,\n },\n });\n }\n\n}\n","/* istanbul ignore file */\n/* tslint:disable */\n/* eslint-disable */\nimport type { AuthorizationRequest } from '../models/AuthorizationRequest';\nimport type { Response } from '../models/Response';\n\nimport type { CancelablePromise } from '../core/CancelablePromise';\nimport type { BaseHttpRequest } from '../core/BaseHttpRequest';\n\nexport class AuthorizationResourceService {\n\n constructor(public readonly httpRequest: BaseHttpRequest) {}\n\n /**\n * Grant access to a user over the target\n * @param requestBody\n * @returns Response OK\n * @throws ApiError\n */\n public grantPermissions(\n requestBody: AuthorizationRequest,\n ): CancelablePromise<Response> {\n return this.httpRequest.request({\n method: 'POST',\n url: '/auth/authorization',\n body: requestBody,\n mediaType: 'application/json',\n });\n }\n\n /**\n * Remove user's access over the target\n * @param requestBody\n * @returns Response OK\n * @throws ApiError\n */\n public removePermissions(\n requestBody: AuthorizationRequest,\n ): CancelablePromise<Response> {\n return this.httpRequest.request({\n method: 'DELETE',\n url: '/auth/authorization',\n body: requestBody,\n mediaType: 'application/json',\n });\n }\n\n /**\n * Get the access that have been granted over the given object\n * @param type\n * @param id\n * @returns any OK\n * @throws ApiError\n */\n public getPermissions(\n type: string,\n id: string,\n ): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/auth/authorization/{type}/{id}',\n path: {\n 'type': type,\n 'id': id,\n },\n });\n }\n\n}\n","/* istanbul ignore file */\n/* tslint:disable */\n/* eslint-disable */\nimport type { EventHandler } from '../models/EventHandler';\n\nimport type { CancelablePromise } from '../core/CancelablePromise';\nimport type { BaseHttpRequest } from '../core/BaseHttpRequest';\n\nexport class EventResourceService {\n\n constructor(public readonly httpRequest: BaseHttpRequest) {}\n\n /**\n * Get queue config by name\n * @param queueType\n * @param queueName\n * @returns any OK\n * @throws ApiError\n */\n public getQueueConfig(\n queueType: string,\n queueName: string,\n ): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/event/queue/config/{queueType}/{queueName}',\n path: {\n 'queueType': queueType,\n 'queueName': queueName,\n },\n });\n }\n\n /**\n * Create or update queue config by name\n * @param queueType\n * @param queueName\n * @param requestBody\n * @returns any OK\n * @throws ApiError\n */\n public putQueueConfig(\n queueType: string,\n queueName: string,\n requestBody: string,\n ): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'PUT',\n url: '/event/queue/config/{queueType}/{queueName}',\n path: {\n 'queueType': queueType,\n 'queueName': queueName,\n },\n body: requestBody,\n mediaType: 'application/json',\n });\n }\n\n /**\n * Delete queue config by name\n * @param queueType\n * @param queueName\n * @returns any OK\n * @throws ApiError\n */\n public deleteQueueConfig(\n queueType: string,\n queueName: string,\n ): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'DELETE',\n url: '/event/queue/config/{queueType}/{queueName}',\n path: {\n 'queueType': queueType,\n 'queueName': queueName,\n },\n });\n }\n\n /**\n * Get all the event handlers\n * @returns EventHandler OK\n * @throws ApiError\n */\n public getEventHandlers(): CancelablePromise<Array<EventHandler>> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/event',\n });\n }\n\n /**\n * Update an existing event handler.\n * @param requestBody\n * @returns any OK\n * @throws ApiError\n */\n public updateEventHandler(\n requestBody: EventHandler,\n ): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'PUT',\n url: '/event',\n body: requestBody,\n mediaType: 'application/json',\n });\n }\n\n /**\n * Add a new event handler.\n * @param requestBody\n * @returns any OK\n * @throws ApiError\n */\n public addEventHandler(\n requestBody: EventHandler,\n ): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'POST',\n url: '/event',\n body: requestBody,\n mediaType: 'application/json',\n });\n }\n\n /**\n * Get all queue configs\n * @returns any OK\n * @throws ApiError\n */\n public getQueueNames(): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/event/queue/config',\n });\n }\n\n /**\n * Remove an event handler\n * @param name\n * @returns any OK\n * @throws ApiError\n */\n public removeEventHandlerStatus(\n name: string,\n ): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'DELETE',\n url: '/event/{name}',\n path: {\n 'name': name,\n },\n });\n }\n\n /**\n * Get event handlers for a given event\n * @param event\n * @param activeOnly\n * @returns EventHandler OK\n * @throws ApiError\n */\n public getEventHandlersForEvent(\n event: string,\n activeOnly: boolean = true,\n ): CancelablePromise<Array<EventHandler>> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/event/{event}',\n path: {\n 'event': event,\n },\n query: {\n 'activeOnly': activeOnly,\n },\n });\n }\n\n}\n","/* istanbul ignore file */\n/* tslint:disable */\n/* eslint-disable */\nimport type { Group } from '../models/Group';\nimport type { Response } from '../models/Response';\nimport type { UpsertGroupRequest } from '../models/UpsertGroupRequest';\n\nimport type { CancelablePromise } from '../core/CancelablePromise';\nimport type { BaseHttpRequest } from '../core/BaseHttpRequest';\n\nexport class GroupResourceService {\n\n constructor(public readonly httpRequest: BaseHttpRequest) {}\n\n /**\n * Add user to group\n * @param groupId\n * @param userId\n * @returns any OK\n * @throws ApiError\n */\n public addUserToGroup(\n groupId: string,\n userId: string,\n ): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'POST',\n url: '/groups/{groupId}/users/{userId}',\n path: {\n 'groupId': groupId,\n 'userId': userId,\n },\n });\n }\n\n /**\n * Remove user from group\n * @param groupId\n * @param userId\n * @returns any OK\n * @throws ApiError\n */\n public removeUserFromGroup(\n groupId: string,\n userId: string,\n ): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'DELETE',\n url: '/groups/{groupId}/users/{userId}',\n path: {\n 'groupId': groupId,\n 'userId': userId,\n },\n });\n }\n\n /**\n * Get a group by id\n * @param id\n * @returns any OK\n * @throws ApiError\n */\n public getGroup(\n id: string,\n ): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/groups/{id}',\n path: {\n 'id': id,\n },\n });\n }\n\n /**\n * Create or update a group\n * @param id\n * @param requestBody\n * @returns any OK\n * @throws ApiError\n */\n public upsertGroup(\n id: string,\n requestBody: UpsertGroupRequest,\n ): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'PUT',\n url: '/groups/{id}',\n path: {\n 'id': id,\n },\n body: requestBody,\n mediaType: 'application/json',\n });\n }\n\n /**\n * Delete a group\n * @param id\n * @returns Response OK\n * @throws ApiError\n */\n public deleteGroup(\n id: string,\n ): CancelablePromise<Response> {\n return this.httpRequest.request({\n method: 'DELETE',\n url: '/groups/{id}',\n path: {\n 'id': id,\n },\n });\n }\n\n /**\n * Get the permissions this group has over workflows and tasks\n * @param groupId\n * @returns any OK\n * @throws ApiError\n */\n public getGrantedPermissions(\n groupId: string,\n ): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/groups/{groupId}/permissions',\n path: {\n 'groupId': groupId,\n },\n });\n }\n\n /**\n * Get all users in group\n * @param id\n * @returns any OK\n * @throws ApiError\n */\n public getUsersInGroup(\n id: string,\n ): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/groups/{id}/users',\n path: {\n 'id': id,\n },\n });\n }\n\n /**\n * Get all groups\n * @returns Group OK\n * @throws ApiError\n */\n public listGroups(): CancelablePromise<Array<Group>> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/groups',\n });\n }\n\n}\n","/* istanbul ignore file */\n/* tslint:disable */\n/* eslint-disable */\nimport type { CancelablePromise } from '../core/CancelablePromise';\nimport type { BaseHttpRequest } from '../core/BaseHttpRequest';\n\nexport class HealthCheckResourceService {\n\n constructor(public readonly httpRequest: BaseHttpRequest) {}\n\n /**\n * @returns any OK\n * @throws ApiError\n */\n public doCheck(): CancelablePromise<Record<string, any>> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/health',\n });\n }\n\n}\n","/* istanbul ignore file */\n/* tslint:disable */\n/* eslint-disable */\nimport type { TaskDef } from '../models/TaskDef';\nimport type { WorkflowDef } from '../models/WorkflowDef';\n\nimport type { CancelablePromise } from '../core/CancelablePromise';\nimport type { BaseHttpRequest } from '../core/BaseHttpRequest';\n\nexport class MetadataResourceService {\n\n constructor(public readonly httpRequest: BaseHttpRequest) {}\n\n /**\n * Gets the task definition\n * @param tasktype\n * @param metadata\n * @returns TaskDef OK\n * @throws ApiError\n */\n public getTaskDef(\n tasktype: string,\n metadata: boolean = false,\n ): CancelablePromise<TaskDef> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/metadata/taskdefs/{tasktype}',\n path: {\n 'tasktype': tasktype,\n },\n query: {\n 'metadata': metadata,\n },\n });\n }\n\n /**\n * Remove a task definition\n * @param tasktype\n * @returns any OK\n * @throws ApiError\n */\n public unregisterTaskDef(\n tasktype: string,\n ): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'DELETE',\n url: '/metadata/taskdefs/{tasktype}',\n path: {\n 'tasktype': tasktype,\n },\n });\n }\n\n /**\n * Retrieves all workflow definition along with blueprint\n * @param access\n * @param metadata\n * @param tagKey\n * @param tagValue\n * @returns WorkflowDef OK\n * @throws ApiError\n */\n public getAllWorkflows(\n access: string = 'READ',\n metadata: boolean = false,\n tagKey?: string,\n tagValue?: string,\n ): CancelablePromise<Array<WorkflowDef>> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/metadata/workflow',\n query: {\n 'access': access,\n 'metadata': metadata,\n 'tagKey': tagKey,\n 'tagValue': tagValue,\n },\n });\n }\n\n /**\n * Create or update workflow definition(s)\n * @param requestBody\n * @param overwrite\n * @returns any OK\n * @throws ApiError\n */\n public update(\n requestBody: Array<WorkflowDef>,\n overwrite: boolean = true,\n ): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'PUT',\n url: '/metadata/workflow',\n query: {\n 'overwrite': overwrite,\n },\n body: requestBody,\n mediaType: 'application/json',\n });\n }\n\n /**\n * Create a new workflow definition\n * @param requestBody\n * @param overwrite\n * @returns any OK\n * @throws ApiError\n */\n public create(\n requestBody: WorkflowDef,\n overwrite: boolean = false,\n ): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'POST',\n url: '/metadata/workflow',\n query: {\n 'overwrite': overwrite,\n },\n body: requestBody,\n mediaType: 'application/json',\n });\n }\n\n /**\n * Gets all task definition\n * @param access\n * @param metadata\n * @param tagKey\n * @param tagValue\n * @returns TaskDef OK\n * @throws ApiError\n */\n public getTaskDefs(\n access: string = 'READ',\n metadata: boolean = false,\n tagKey?: string,\n tagValue?: string,\n ): CancelablePromise<Array<TaskDef>> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/metadata/taskdefs',\n query: {\n 'access': access,\n 'metadata': metadata,\n 'tagKey': tagKey,\n 'tagValue': tagValue,\n },\n });\n }\n\n /**\n * Update an existing task\n * @param requestBody\n * @returns any OK\n * @throws ApiError\n */\n public updateTaskDef(\n requestBody: TaskDef,\n ): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'PUT',\n url: '/metadata/taskdefs',\n body: requestBody,\n mediaType: 'application/json',\n });\n }\n\n /**\n * Create or update task definition(s)\n * @param requestBody\n * @returns any OK\n * @throws ApiError\n */\n public registerTaskDef(\n requestBody: Array<TaskDef>,\n ): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'POST',\n url: '/metadata/taskdefs',\n body: requestBody,\n mediaType: 'application/json',\n });\n }\n\n /**\n * Removes workflow definition. It does not remove workflows associated with the definition.\n * @param name\n * @param version\n * @returns any OK\n * @throws ApiError\n */\n public unregisterWorkflowDef(\n name: string,\n version: number,\n ): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'DELETE',\n url: '/metadata/workflow/{name}/{version}',\n path: {\n 'name': name,\n 'version': version,\n },\n });\n }\n\n /**\n * Retrieves workflow definition along with blueprint\n * @param name\n * @param version\n * @param metadata\n * @returns WorkflowDef OK\n * @throws ApiError\n */\n public get(\n name: string,\n version?: number,\n metadata: boolean = false,\n ): CancelablePromise<WorkflowDef> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/metadata/workflow/{name}',\n path: {\n 'name': name,\n },\n query: {\n 'version': version,\n 'metadata': metadata,\n },\n });\n }\n\n}\n","/* istanbul ignore file */\n/* tslint:disable */\n/* eslint-disable */\nimport type { CancelablePromise } from '../core/CancelablePromise';\nimport type { BaseHttpRequest } from '../core/BaseHttpRequest';\n\nexport class MigrationResourceService {\n\n constructor(public readonly httpRequest: BaseHttpRequest) {}\n\n /**\n * Migrate workflows from Redis to Postgres\n * @param batchSize\n * @param startFromTimestamp\n * @returns any OK\n * @throws ApiError\n */\n public migrateWorkflows(\n batchSize: number,\n startFromTimestamp: number,\n ): CancelablePromise<Record<string, any>> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/admin/migrate_workflow',\n query: {\n 'batchSize': batchSize,\n 'startFromTimestamp': startFromTimestamp,\n },\n });\n }\n\n /**\n * Migrate Workflow Index t o the sharded table\n * @returns number OK\n * @throws ApiError\n */\n public migrateIndex(): CancelablePromise<number> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/admin/migrate_index',\n });\n }\n\n /**\n * Migrate Workflow and Task Definitions to Postgres\n * @returns any OK\n * @throws ApiError\n */\n public migrateMetadata(): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/admin/migrate_metadata',\n });\n }\n\n}\n","/* istanbul ignore file */\n/* tslint:disable */\n/* eslint-disable */\nimport type { CancelablePromise } from '../core/CancelablePromise';\nimport type { BaseHttpRequest } from '../core/BaseHttpRequest';\n\nexport class PublisherConfigResourceService {\n\n constructor(public readonly httpRequest: BaseHttpRequest) {}\n\n /**\n * Get all publisher configurations\n * @returns any OK\n * @throws ApiError\n */\n public listAllConfigs(): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/publishers',\n });\n }\n\n /**\n * Get a publisher config value by id\n * @param id\n * @returns string OK\n * @throws ApiError\n */\n public downloadConfig(\n id: string,\n ): CancelablePromise<string> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/publishers/{id}',\n path: {\n 'id': id,\n },\n });\n }\n\n /**\n * Put a publisher config value by id\n * @param id\n * @param requestBody\n * @returns any OK\n * @throws ApiError\n */\n public uploadConfig(\n id: string,\n requestBody: string,\n ): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'PUT',\n url: '/publishers/{id}',\n path: {\n 'id': id,\n },\n body: requestBody,\n mediaType: 'application/json',\n });\n }\n\n /**\n * Delete a publisher config value by id\n * @param id\n * @returns any OK\n * @throws ApiError\n */\n public deleteConfig(\n id: string,\n ): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'DELETE',\n url: '/publishers/{id}',\n path: {\n 'id': id,\n },\n });\n }\n\n}\n","/* istanbul ignore file */\n/* tslint:disable */\n/* eslint-disable */\nimport type { CancelablePromise } from '../core/CancelablePromise';\nimport type { BaseHttpRequest } from '../core/BaseHttpRequest';\n\nexport class QueueAdminResourceService {\n\n constructor(public readonly httpRequest: BaseHttpRequest) {}\n\n /**\n * Get Queue Names\n * @returns string OK\n * @throws ApiError\n */\n public names(): CancelablePromise<Record<string, string>> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/queue/',\n });\n }\n\n /**\n * Get the queue length\n * @returns number OK\n * @throws ApiError\n */\n public size(): CancelablePromise<Record<string, number>> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/queue/size',\n });\n }\n\n /**\n * Publish a message in queue to mark a wait task (by taskId) as completed.\n * @param workflowId\n * @param taskId\n * @param status\n * @param requestBody\n * @returns any OK\n * @throws ApiError\n */\n public updateByTaskId(\n workflowId: string,\n taskId: string,\n status: 'IN_PROGRESS' | 'CANCELED' | 'FAILED' | 'FAILED_WITH_TERMINAL_ERROR' | 'COMPLETED' | 'COMPLETED_WITH_ERRORS' | 'SCHEDULED' | 'TIMED_OUT' | 'SKIPPED',\n requestBody: Record<string, any>,\n ): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'POST',\n url: '/queue/update/{workflowId}/task/{taskId}/{status}',\n path: {\n 'workflowId': workflowId,\n 'taskId': taskId,\n 'status': status,\n },\n body: requestBody,\n mediaType: 'application/json',\n });\n }\n\n /**\n * Publish a message in queue to mark a wait task as completed.\n * @param workflowId\n * @param taskRefName\n * @param status\n * @param requestBody\n * @returns any OK\n * @throws ApiError\n */\n public update1(\n workflowId: string,\n taskRefName: string,\n status: 'IN_PROGRESS' | 'CANCELED' | 'FAILED' | 'FAILED_WITH_TERMINAL_ERROR' | 'COMPLETED' | 'COMPLETED_WITH_ERRORS' | 'SCHEDULED' | 'TIMED_OUT' | 'SKIPPED',\n requestBody: Record<string, any>,\n ): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'POST',\n url: '/queue/update/{workflowId}/{taskRefName}/{status}',\n path: {\n 'workflowId': workflowId,\n 'taskRefName': taskRefName,\n 'status': status,\n },\n body: requestBody,\n mediaType: 'application/json',\n });\n }\n\n}\n","/* istanbul ignore file */\n/* tslint:disable */\n/* eslint-disable */\nimport type { SaveScheduleRequest } from '../models/SaveScheduleRequest';\nimport type { SearchResultWorkflowScheduleExecutionModel } from '../models/SearchResultWorkflowScheduleExecutionModel';\nimport type { WorkflowSchedule } from '../models/WorkflowSchedule';\n\nimport type { CancelablePromise } from '../core/CancelablePromise';\nimport type { BaseHttpRequest } from '../core/BaseHttpRequest';\n\nexport class SchedulerResourceService {\n\n constructor(public readonly httpRequest: BaseHttpRequest) {}\n\n /**\n * Get an existing workflow schedule by name\n * @param name\n * @returns any OK\n * @throws ApiError\n */\n public getSchedule(\n name: string,\n ): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/scheduler/schedules/{name}',\n path: {\n 'name': name,\n },\n });\n }\n\n /**\n * Deletes an existing workflow schedule by name\n * @param name\n * @returns any OK\n * @throws ApiError\n */\n public deleteSchedule(\n name: string,\n ): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'DELETE',\n url: '/scheduler/schedules/{name}',\n path: {\n 'name': name,\n },\n });\n }\n\n /**\n * Get list of the next x (default 3, max 5) execution times for a scheduler\n * @param cronExpression\n * @param scheduleStartTime\n * @param scheduleEndTime\n * @param limit\n * @returns number OK\n * @throws ApiError\n */\n public getNextFewSchedules(\n cronExpression: string,\n scheduleStartTime?: number,\n scheduleEndTime?: number,\n limit: number = 3,\n ): CancelablePromise<Array<number>> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/scheduler/nextFewSchedules',\n query: {\n 'cronExpression': cronExpression,\n 'scheduleStartTime': scheduleStartTime,\n 'scheduleEndTime': scheduleEndTime,\n 'limit': limit,\n },\n });\n }\n\n /**\n * Pauses an existing schedule by name\n * @param name\n * @returns any OK\n * @throws ApiError\n */\n public pauseSchedule(\n name: string,\n ): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/scheduler/schedules/{name}/pause',\n path: {\n 'name': name,\n },\n });\n }\n\n /**\n * Pause all scheduling in a single conductor server instance (for debugging only)\n * @returns any OK\n * @throws ApiError\n */\n public pauseAllSchedules(): CancelablePromise<Record<string, any>> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/scheduler/admin/pause',\n });\n }\n\n /**\n * Resume a paused schedule by name\n * @param name\n * @returns any OK\n * @throws ApiError\n */\n public resumeSchedule(\n name: string,\n ): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/scheduler/schedules/{name}/resume',\n path: {\n 'name': name,\n },\n });\n }\n\n /**\n * Requeue all execution records\n * @returns any OK\n * @throws ApiError\n */\n public requeueAllExecutionRecords(): CancelablePromise<Record<string, any>> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/scheduler/admin/requeue',\n });\n }\n\n /**\n * Resume all scheduling\n * @returns any OK\n * @throws ApiError\n */\n public resumeAllSchedules(): CancelablePromise<Record<string, any>> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/scheduler/admin/resume',\n });\n }\n\n /**\n * Get all existing workflow schedules and optionally filter by workflow name\n * @param workflowName\n * @returns WorkflowSchedule OK\n * @throws ApiError\n */\n public getAllSchedules(\n workflowName?: string,\n ): CancelablePromise<Array<WorkflowSchedule>> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/scheduler/schedules',\n query: {\n 'workflowName': workflowName,\n },\n });\n }\n\n /**\n * Create or update a schedule for a specified workflow with a corresponding start workflow request\n * @param requestBody\n * @returns any OK\n * @throws ApiError\n */\n public saveSchedule(\n requestBody: SaveScheduleRequest,\n ): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'POST',\n url: '/scheduler/schedules',\n body: requestBody,\n mediaType: 'application/json',\n });\n }\n\n /**\n * Test timeout - do not use in production\n * @returns any OK\n * @throws ApiError\n */\n public testTimeout(): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/scheduler/test/timeout',\n });\n }\n\n /**\n * Search for workflows based on payload and other parameters\n * use sort options as sort=<field>:ASC|DESC e.g. sort=name&sort=workflowId:DESC. If order is not specified, defaults to ASC.\n * @param start\n * @param size\n * @param sort\n * @param freeText\n * @param query\n * @returns SearchResultWorkflowScheduleExecutionModel OK\n * @throws ApiError\n */\n public searchV21(\n start?: number,\n size: number = 100,\n sort?: string,\n freeText: string = '*',\n query?: string,\n ): CancelablePromise<SearchResultWorkflowScheduleExecutionModel> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/scheduler/search/executions',\n query: {\n 'start': start,\n 'size': size,\n 'sort': sort,\n 'freeText': freeText,\n 'query': query,\n },\n });\n }\n\n}\n","/* istanbul ignore file */\n/* tslint:disable */\n/* eslint-disable */\nimport type { CancelablePromise } from '../core/CancelablePromise';\nimport type { BaseHttpRequest } from '../core/BaseHttpRequest';\n\nexport class SecretResourceService {\n\n constructor(public readonly httpRequest: BaseHttpRequest) {}\n\n /**\n * Get secret value by key\n * @param key\n * @returns any OK\n * @throws ApiError\n */\n public getSecret(\n key: string,\n ): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/secrets/{key}',\n path: {\n 'key': key,\n },\n });\n }\n\n /**\n * Put a secret value by key\n * @param key\n * @param requestBody\n * @returns any OK\n * @throws ApiError\n */\n public putSecret(\n key: string,\n requestBody: string,\n ): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'PUT',\n url: '/secrets/{key}',\n path: {\n 'key': key,\n },\n body: requestBody,\n mediaType: 'application/json',\n });\n }\n\n /**\n * Delete a secret value by key\n * @param key\n * @returns any OK\n * @throws ApiError\n */\n public deleteSecret(\n key: string,\n ): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'DELETE',\n url: '/secrets/{key}',\n path: {\n 'key': key,\n },\n });\n }\n\n /**\n * List all secret names user can grant access to\n * @returns string OK\n * @throws ApiError\n */\n public listSecretsThatUserCanGrantAccessTo(): CancelablePromise<Array<string>> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/secrets',\n });\n }\n\n /**\n * List all secret names\n * @returns any OK\n * @throws ApiError\n */\n public listAllSecretNames(): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'POST',\n url: '/secrets',\n });\n }\n\n /**\n * Check if secret exists\n * @param key\n * @returns any OK\n * @throws ApiError\n */\n public secretExists(\n key: string,\n ): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/secrets/{key}/exists',\n path: {\n 'key': key,\n },\n });\n }\n\n}\n","/* istanbul ignore file */\n/* tslint:disable */\n/* eslint-disable */\nimport type { TagObject } from '../models/TagObject';\nimport type { TagString } from '../models/TagString';\n\nimport type { CancelablePromise } from '../core/CancelablePromise';\nimport type { BaseHttpRequest } from '../core/BaseHttpRequest';\n\nexport class TagsExperimentalService {\n\n constructor(public readonly httpRequest: BaseHttpRequest) {}\n\n /**\n * Returns all the tags of the workflow\n * @param name\n * @returns TagObject OK\n * @throws ApiError\n */\n public getWorkflowTags(\n name: string,\n ): CancelablePromise<Array<TagObject>> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/metadata/workflow/{name}/tags',\n path: {\n 'name': name,\n },\n });\n }\n\n /**\n * Set the tags of the workflow\n * @param name\n * @param requestBody\n * @returns any OK\n * @throws ApiError\n */\n public setWorkflowTags(\n name: string,\n requestBody: Array<TagObject>,\n ): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'PUT',\n url: '/metadata/workflow/{name}/tags',\n path: {\n 'name': name,\n },\n body: requestBody,\n mediaType: 'application/json',\n });\n }\n\n /**\n * Adds the tag to the workflow\n * @param name\n * @param requestBody\n * @returns any OK\n * @throws ApiError\n */\n public addWorkflowTag(\n name: string,\n requestBody: TagObject,\n ): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'POST',\n url: '/metadata/workflow/{name}/tags',\n path: {\n 'name': name,\n },\n body: requestBody,\n mediaType: 'application/json',\n });\n }\n\n /**\n * Removes the tag of the workflow\n * @param name\n * @param requestBody\n * @returns any OK\n * @throws ApiError\n */\n public deleteWorkflowTag(\n name: string,\n requestBody: TagObject,\n ): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'DELETE',\n url: '/metadata/workflow/{name}/tags',\n path: {\n 'name': name,\n },\n body: requestBody,\n mediaType: 'application/json',\n });\n }\n\n /**\n * Returns all the tags of the task\n * @param taskName\n * @returns TagObject OK\n * @throws ApiError\n */\n public getTaskTags(\n taskName: string,\n ): CancelablePromise<Array<TagObject>> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/metadata/task/{taskName}/tags',\n path: {\n 'taskName': taskName,\n },\n });\n }\n\n /**\n * Adds the tag to the task\n * @param taskName\n * @param requestBody\n * @returns any OK\n * @throws ApiError\n */\n public setTaskTags(\n taskName: string,\n requestBody: Array<TagObject>,\n ): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'PUT',\n url: '/metadata/task/{taskName}/tags',\n path: {\n 'taskName': taskName,\n },\n body: requestBody,\n mediaType: 'application/json',\n });\n }\n\n /**\n * Adds the tag to the task\n * @param taskName\n * @param requestBody\n * @returns any OK\n * @throws ApiError\n */\n public addTaskTag(\n taskName: string,\n requestBody: TagObject,\n ): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'POST',\n url: '/metadata/task/{taskName}/tags',\n path: {\n 'taskName': taskName,\n },\n body: requestBody,\n mediaType: 'application/json',\n });\n }\n\n /**\n * Removes the tag of the task\n * @param taskName\n * @param requestBody\n * @returns any OK\n * @throws ApiError\n */\n public deleteTaskTag(\n taskName: string,\n requestBody: TagString,\n ): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'DELETE',\n url: '/metadata/task/{taskName}/tags',\n path: {\n 'taskName': taskName,\n },\n body: requestBody,\n mediaType: 'application/json',\n });\n }\n\n}\n","/* istanbul ignore file */\n/* tslint:disable */\n/* eslint-disable */\nimport type { ExternalStorageLocation } from '../models/ExternalStorageLocation';\nimport type { PollData } from '../models/PollData';\nimport type { SearchResultTask } from '../models/SearchResultTask';\nimport type { SearchResultTaskSummary } from '../models/SearchResultTaskSummary';\nimport type { Task } from '../models/Task';\nimport type { TaskExecLog } from '../models/TaskExecLog';\nimport type { TaskResult } from '../models/TaskResult';\n\nimport type { CancelablePromise } from '../core/CancelablePromise';\nimport type { BaseHttpRequest } from '../core/BaseHttpRequest';\n\nexport class TaskResourceService {\n\n constructor(public readonly httpRequest: BaseHttpRequest) {}\n\n /**\n * Poll for a task of a certain type\n * @param tasktype\n * @param workerid\n * @param domain\n * @returns Task OK\n * @throws ApiError\n */\n public poll(\n tasktype: string,\n workerid?: string,\n domain?: string,\n ): CancelablePromise<Task> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/tasks/poll/{tasktype}',\n path: {\n 'tasktype': tasktype,\n },\n query: {\n 'workerid': workerid,\n 'domain': domain,\n },\n });\n }\n\n /**\n * Get the details about each queue\n * @returns number OK\n * @throws ApiError\n */\n public allVerbose(): CancelablePromise<Record<string, Record<string, Record<string, number>>>> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/tasks/queue/all/verbose',\n });\n }\n\n /**\n * Update a task By Ref Name\n * @param workflowId\n * @param taskRefName\n * @param status\n * @param requestBody\n * @returns string OK\n * @throws ApiError\n */\n public updateTask(\n workflowId: string,\n taskRefName: string,\n status: 'IN_PROGRESS' | 'FAILED' | 'FAILED_WITH_TERMINAL_ERROR' | 'COMPLETED',\n requestBody: Record<string, any>,\n ): CancelablePromise<string> {\n return this.httpRequest.request({\n method: 'POST',\n url: '/tasks/{workflowId}/{taskRefName}/{status}',\n path: {\n 'workflowId': workflowId,\n 'taskRefName': taskRefName,\n 'status': status,\n },\n body: requestBody,\n mediaType: 'application/json',\n });\n }\n\n /**\n * Get task by Id\n * @param taskId\n * @returns Task OK\n * @throws ApiError\n */\n public getTask(\n taskId: string,\n ): CancelablePromise<Task> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/tasks/{taskId}',\n path: {\n 'taskId': taskId,\n },\n });\n }\n\n /**\n * Get the details about each queue\n * @returns number OK\n * @throws ApiError\n */\n public all(): CancelablePromise<Record<string, number>> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/tasks/queue/all',\n });\n }\n\n /**\n * Requeue pending tasks\n * @param taskType\n * @returns string OK\n * @throws ApiError\n */\n public requeuePendingTask(\n taskType: string,\n ): CancelablePromise<string> {\n return this.httpRequest.request({\n method: 'POST',\n url: '/tasks/queue/requeue/{taskType}',\n path: {\n 'taskType': taskType,\n },\n });\n }\n\n /**\n * Search for tasks based in payload and other parameters\n * use sort options as sort=<field>:ASC|DESC e.g. sort=name&sort=workflowId:DESC. If order is not specified, defaults to ASC\n * @param start\n * @param size\n * @param sort\n * @param freeText\n * @param query\n * @returns SearchResultTaskSummary OK\n * @throws ApiError\n */\n public search(\n start?: number,\n size: number = 100,\n sort?: string,\n freeText: string = '*',\n query?: string,\n ): CancelablePromise<SearchResultTaskSummary> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/tasks/search',\n query: {\n 'start': start,\n 'size': size,\n 'sort': sort,\n 'freeText': freeText,\n 'query': query,\n },\n });\n }\n\n /**\n * Search for tasks based in payload and other parameters\n * use sort options as sort=<field>:ASC|DESC e.g. sort=name&sort=workflowId:DESC. If order is not specified, defaults to ASC\n * @param start\n * @param size\n * @param sort\n * @param freeText\n * @param query\n * @returns SearchResultTask OK\n * @throws ApiError\n */\n public searchV22(\n start?: number,\n size: number = 100,\n sort?: string,\n freeText: string = '*',\n query?: string,\n ): CancelablePromise<SearchResultTask> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/tasks/search-v2',\n query: {\n 'start': start,\n 'size': size,\n 'sort': sort,\n 'freeText': freeText,\n 'query': query,\n },\n });\n }\n\n /**\n * Get the last poll data for a given task type\n * @param taskType\n * @returns PollData OK\n * @throws ApiError\n */\n public getPollData(\n taskType: string,\n ): CancelablePromise<Array<PollData>> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/tasks/queue/polldata',\n query: {\n 'taskType': taskType,\n },\n });\n }\n\n /**\n * Get Task Execution Logs\n * @param taskId\n * @returns TaskExecLog OK\n * @throws ApiError\n */\n public getTaskLogs(\n taskId: string,\n ): CancelablePromise<Array<TaskExecLog>> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/tasks/{taskId}/log',\n path: {\n 'taskId': taskId,\n },\n });\n }\n\n /**\n * Log Task Execution Details\n * @param taskId\n * @param requestBody\n * @returns any OK\n * @throws ApiError\n */\n public log(\n taskId: string,\n requestBody: string,\n ): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'POST',\n url: '/tasks/{taskId}/log',\n path: {\n 'taskId': taskId,\n },\n body: requestBody,\n mediaType: 'application/json',\n });\n }\n\n /**\n * Get the last poll data for all task types\n * @returns PollData OK\n * @throws ApiError\n */\n public getAllPollData(): CancelablePromise<Array<PollData>> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/tasks/queue/polldata/all',\n });\n }\n\n /**\n * Batch poll for a task of a certain type\n * @param tasktype\n * @param workerid\n * @param domain\n * @param count\n * @param timeout\n * @returns Task OK\n * @throws ApiError\n */\n public batchPoll(\n tasktype: string,\n workerid?: string,\n domain?: string,\n count: number = 1,\n timeout: number = 100,\n ): CancelablePromise<Array<Task>> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/tasks/poll/batch/{tasktype}',\n path: {\n 'tasktype': tasktype,\n },\n query: {\n 'workerid': workerid,\n 'domain': domain,\n 'count': count,\n 'timeout': timeout,\n },\n });\n }\n\n /**\n * Update a task\n * @param requestBody\n * @returns string OK\n * @throws ApiError\n */\n public updateTask1(\n requestBody: TaskResult,\n ): CancelablePromise<string> {\n return this.httpRequest.request({\n method: 'POST',\n url: '/tasks',\n body: requestBody,\n mediaType: 'application/json',\n });\n }\n\n /**\n * Get Task type queue sizes\n * @param taskType\n * @returns number OK\n * @throws ApiError\n */\n public size1(\n taskType?: Array<string>,\n ): CancelablePromise<Record<string, number>> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/tasks/queue/sizes',\n query: {\n 'taskType': taskType,\n },\n });\n }\n\n /**\n * Get the external uri where the task payload is to be stored\n * @param path\n * @param operation\n * @param payloadType\n * @returns ExternalStorageLocation OK\n * @throws ApiError\n */\n public getExternalStorageLocation1(\n path: string,\n operation: string,\n payloadType: string,\n ): CancelablePromise<ExternalStorageLocation> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/tasks/externalstoragelocation',\n query: {\n 'path': path,\n 'operation': operation,\n 'payloadType': payloadType,\n },\n });\n }\n\n}\n","/* istanbul ignore file */\n/* tslint:disable */\n/* eslint-disable */\nimport type { GenerateTokenRequest } from '../models/GenerateTokenRequest';\nimport type { Response } from '../models/Response';\n\nimport type { CancelablePromise } from '../core/CancelablePromise';\nimport type { BaseHttpRequest } from '../core/BaseHttpRequest';\n\nexport class TokenResourceService {\n\n constructor(public readonly httpRequest: BaseHttpRequest) {}\n\n /**\n * Generate JWT with the given access key\n * @param requestBody\n * @returns Response OK\n * @throws ApiError\n */\n public generateToken(\n requestBody: GenerateTokenRequest,\n ): CancelablePromise<Response> {\n return this.httpRequest.request({\n method: 'POST',\n url: '/token',\n body: requestBody,\n mediaType: 'application/json',\n });\n }\n\n /**\n * Get the user info from the token\n * @returns any OK\n * @throws ApiError\n */\n public getUserInfo(): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/token/userInfo',\n });\n }\n\n}\n","/* istanbul ignore file */\n/* tslint:disable */\n/* eslint-disable */\nimport type { ConductorUser } from '../models/ConductorUser';\nimport type { Response } from '../models/Response';\nimport type { UpsertUserRequest } from '../models/UpsertUserRequest';\n\nimport type { CancelablePromise } from '../core/CancelablePromise';\nimport type { BaseHttpRequest } from '../core/BaseHttpRequest';\n\nexport class UserResourceService {\n\n constructor(public readonly httpRequest: BaseHttpRequest) {}\n\n /**\n * Get a user by id\n * @param id\n * @returns any OK\n * @throws ApiError\n */\n public getUser(\n id: string,\n ): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/users/{id}',\n path: {\n 'id': id,\n },\n });\n }\n\n /**\n * Create or update a user\n * @param id\n * @param requestBody\n * @returns any OK\n * @throws ApiError\n */\n public upsertUser(\n id: string,\n requestBody: UpsertUserRequest,\n ): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'PUT',\n url: '/users/{id}',\n path: {\n 'id': id,\n },\n body: requestBody,\n mediaType: 'application/json',\n });\n }\n\n /**\n * Delete a user\n * @param id\n * @returns Response OK\n * @throws ApiError\n */\n public deleteUser(\n id: string,\n ): CancelablePromise<Response> {\n return this.httpRequest.request({\n method: 'DELETE',\n url: '/users/{id}',\n path: {\n 'id': id,\n },\n });\n }\n\n /**\n * Get all users\n * @param apps\n * @returns ConductorUser OK\n * @throws ApiError\n */\n public listUsers(\n apps: boolean = false,\n ): CancelablePromise<Array<ConductorUser>> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/users',\n query: {\n 'apps': apps,\n },\n });\n }\n\n /**\n * Get the permissions this user has over workflows and tasks\n * @param userId\n * @returns any OK\n * @throws ApiError\n */\n public getGrantedPermissions1(\n userId: string,\n ): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/users/{userId}/permissions',\n path: {\n 'userId': userId,\n },\n });\n }\n\n}\n","/* istanbul ignore file */\n/* tslint:disable */\n/* eslint-disable */\nimport type { CancelablePromise } from '../core/CancelablePromise';\nimport type { BaseHttpRequest } from '../core/BaseHttpRequest';\n\nexport class VersionResourceService {\n\n constructor(public readonly httpRequest: BaseHttpRequest) {}\n\n /**\n * Get the server's version\n * @returns string OK\n * @throws ApiError\n */\n public getVersion(): CancelablePromise<string> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/version',\n });\n }\n\n}\n","/* istanbul ignore file */\n/* tslint:disable */\n/* eslint-disable */\nimport type { BulkResponse } from '../models/BulkResponse';\n\nimport type { CancelablePromise } from '../core/CancelablePromise';\nimport type { BaseHttpRequest } from '../core/BaseHttpRequest';\n\nexport class WorkflowBulkResourceService {\n\n constructor(public readonly httpRequest: BaseHttpRequest) {}\n\n /**\n * Retry the last failed task for each workflow from the list\n * @param requestBody\n * @returns BulkResponse OK\n * @throws ApiError\n */\n public retry(\n requestBody: Array<string>,\n ): CancelablePromise<BulkResponse> {\n return this.httpRequest.request({\n method: 'POST',\n url: '/workflow/bulk/retry',\n body: requestBody,\n mediaType: 'application/json',\n });\n }\n\n /**\n * Restart the list of completed workflow\n * @param requestBody\n * @param useLatestDefinitions\n * @returns BulkResponse OK\n * @throws ApiError\n */\n public restart(\n requestBody: Array<string>,\n useLatestDefinitions: boolean = false,\n ): CancelablePromise<BulkResponse> {\n return this.httpRequest.request({\n method: 'POST',\n url: '/workflow/bulk/restart',\n query: {\n 'useLatestDefinitions': useLatestDefinitions,\n },\n body: requestBody,\n mediaType: 'application/json',\n });\n }\n\n /**\n * Terminate workflows execution\n * @param requestBody\n * @param reason\n * @returns BulkResponse OK\n * @throws ApiError\n */\n public terminate(\n requestBody: Array<string>,\n reason?: string,\n ): CancelablePromise<BulkResponse> {\n return this.httpRequest.request({\n method: 'POST',\n url: '/workflow/bulk/terminate',\n query: {\n 'reason': reason,\n },\n body: requestBody,\n mediaType: 'application/json',\n });\n }\n\n /**\n * Resume the list of workflows\n * @param requestBody\n * @returns BulkResponse OK\n * @throws ApiError\n */\n public resumeWorkflow(\n requestBody: Array<string>,\n ): CancelablePromise<BulkResponse> {\n return this.httpRequest.request({\n method: 'PUT',\n url: '/workflow/bulk/resume',\n body: requestBody,\n mediaType: 'application/json',\n });\n }\n\n /**\n * Pause the list of workflows\n * @param requestBody\n * @returns BulkResponse OK\n * @throws ApiError\n */\n public pauseWorkflow1(\n requestBody: Array<string>,\n ): CancelablePromise<BulkResponse> {\n return this.httpRequest.request({\n method: 'PUT',\n url: '/workflow/bulk/pause',\n body: requestBody,\n mediaType: 'application/json',\n });\n }\n\n}\n","/* istanbul ignore file */\n/* tslint:disable */\n/* eslint-disable */\nimport type { ExternalStorageLocation } from '../models/ExternalStorageLocation';\nimport type { RerunWorkflowRequest } from '../models/RerunWorkflowRequest';\nimport type { ScrollableSearchResultWorkflowSummary } from '../models/ScrollableSearchResultWorkflowSummary';\nimport type { SearchResultWorkflow } from '../models/SearchResultWorkflow';\nimport type { SearchResultWorkflowSummary } from '../models/SearchResultWorkflowSummary';\nimport type { SkipTaskRequest } from '../models/SkipTaskRequest';\nimport type { StartWorkflowRequest } from '../models/StartWorkflowRequest';\nimport type { Workflow } from '../models/Workflow';\nimport type { WorkflowStatus } from '../models/WorkflowStatus';\n\nimport type { CancelablePromise } from '../core/CancelablePromise';\nimport type { BaseHttpRequest } from '../core/BaseHttpRequest';\n\nexport class WorkflowResourceService {\n\n constructor(public readonly httpRequest: BaseHttpRequest) {}\n\n /**\n * Retrieve all the running workflows\n * @param name\n * @param version\n * @param startTime\n * @param endTime\n * @returns string OK\n * @throws ApiError\n */\n public getRunningWorkflow(\n name: string,\n version: number = 1,\n startTime?: number,\n endTime?: number,\n ): CancelablePromise<Array<string>> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/workflow/running/{name}',\n path: {\n 'name': name,\n },\n query: {\n 'version': version,\n 'startTime': startTime,\n 'endTime': endTime,\n },\n });\n }\n\n /**\n * Start a new workflow with StartWorkflowRequest, which allows task to be executed in a domain\n * @param requestBody\n * @returns string OK\n * @throws ApiError\n */\n public startWorkflow(\n requestBody: StartWorkflowRequest,\n ): CancelablePromise<string> {\n return this.httpRequest.request({\n method: 'POST',\n url: '/workflow',\n body: requestBody,\n mediaType: 'application/json',\n });\n }\n\n /**\n * Starts the decision task for a workflow\n * @param workflowId\n * @returns any OK\n * @throws ApiError\n */\n public decide(\n workflowId: string,\n ): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'PUT',\n url: '/workflow/decide/{workflowId}',\n path: {\n 'workflowId': workflowId,\n },\n });\n }\n\n /**\n * Reruns the workflow from a specific task\n * @param workflowId\n * @param requestBody\n * @returns string OK\n * @throws ApiError\n */\n public rerun(\n workflowId: string,\n requestBody: RerunWorkflowRequest,\n ): CancelablePromise<string> {\n return this.httpRequest.request({\n method: 'POST',\n url: '/workflow/{workflowId}/rerun',\n path: {\n 'workflowId': workflowId,\n },\n body: requestBody,\n mediaType: 'application/json',\n });\n }\n\n /**\n * Search for workflows based on payload and other parameters\n * use sort options as sort=<field>:ASC|DESC e.g. sort=name&sort=workflowId:DESC. If order is not specified, defaults to ASC.\n * @param start\n * @param size\n * @param sort\n * @param freeText\n * @param query\n * @returns SearchResultWorkflow OK\n * @throws ApiError\n */\n public searchV21(\n start?: number,\n size: number = 100,\n sort?: string,\n freeText: string = '*',\n query?: string,\n ): CancelablePromise<SearchResultWorkflow> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/workflow/search-v2',\n query: {\n 'start': start,\n 'size': size,\n 'sort': sort,\n 'freeText': freeText,\n 'query': query,\n },\n });\n }\n\n /**\n * Pauses the workflow\n * @param workflowId\n * @returns any OK\n * @throws ApiError\n */\n public pauseWorkflow(\n workflowId: string,\n ): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'PUT',\n url: '/workflow/{workflowId}/pause',\n path: {\n 'workflowId': workflowId,\n },\n });\n }\n\n /**\n * Skips a given task from a current running workflow\n * @param workflowId\n * @param taskReferenceName\n * @param requestBody\n * @returns any OK\n * @throws ApiError\n */\n public skipTaskFromWorkflow(\n workflowId: string,\n taskReferenceName: string,\n requestBody?: SkipTaskRequest,\n ): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'PUT',\n url: '/workflow/{workflowId}/skiptask/{taskReferenceName}',\n path: {\n 'workflowId': workflowId,\n 'taskReferenceName': taskReferenceName,\n },\n body: requestBody,\n mediaType: 'application/json',\n });\n }\n\n /**\n * Lists workflows for the given correlation id list\n * @param name\n * @param requestBody\n * @param includeClosed\n * @param includeTasks\n * @returns Workflow OK\n * @throws ApiError\n */\n public getWorkflows(\n name: string,\n requestBody: Array<string>,\n includeClosed: boolean = false,\n includeTasks: boolean = false,\n ): CancelablePromise<Record<string, Array<Workflow>>> {\n return this.httpRequest.request({\n method: 'POST',\n url: '/workflow/{name}/correlated',\n path: {\n 'name': name,\n },\n query: {\n 'includeClosed': includeClosed,\n 'includeTasks': includeTasks,\n },\n body: requestBody,\n mediaType: 'application/json',\n });\n }\n\n /**\n * Gets the workflow by workflow id\n * @param workflowId\n * @param includeOutput\n * @param includeVariables\n * @returns WorkflowStatus OK\n * @throws ApiError\n */\n public getWorkflowStatusSummary(\n workflowId: string,\n includeOutput: boolean = false,\n includeVariables: boolean = false,\n ): CancelablePromise<WorkflowStatus> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/workflow/{workflowId}/status',\n path: {\n 'workflowId': workflowId,\n },\n query: {\n 'includeOutput': includeOutput,\n 'includeVariables': includeVariables,\n },\n });\n }\n\n /**\n * Lists workflows for the given correlation id\n * @param name\n * @param correlationId\n * @param includeClosed\n * @param includeTasks\n * @returns Workflow OK\n * @throws ApiError\n */\n public getWorkflows1(\n name: string,\n correlationId: string,\n includeClosed: boolean = false,\n includeTasks: boolean = false,\n ): CancelablePromise<Array<Workflow>> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/workflow/{name}/correlated/{correlationId}',\n path: {\n 'name': name,\n 'correlationId': correlationId,\n },\n query: {\n 'includeClosed': includeClosed,\n 'includeTasks': includeTasks,\n },\n });\n }\n\n /**\n * Retries the last failed task\n * @param workflowId\n * @param resumeSubworkflowTasks\n * @returns void\n * @throws ApiError\n */\n public retry1(\n workflowId: string,\n resumeSubworkflowTasks: boolean = false,\n ): CancelablePromise<void> {\n return this.httpRequest.request({\n method: 'POST',\n url: '/workflow/{workflowId}/retry',\n path: {\n 'workflowId': workflowId,\n },\n query: {\n 'resumeSubworkflowTasks': resumeSubworkflowTasks,\n },\n });\n }\n\n /**\n * Gets the workflow by workflow id\n * @param workflowId\n * @param includeTasks\n * @returns Workflow OK\n * @throws ApiError\n */\n public getExecutionStatus(\n workflowId: string,\n includeTasks: boolean = true,\n ): CancelablePromise<Workflow> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/workflow/{workflowId}',\n path: {\n 'workflowId': workflowId,\n },\n query: {\n 'includeTasks': includeTasks,\n },\n });\n }\n\n /**\n * Terminate workflow execution\n * @param workflowId\n * @param reason\n * @returns any OK\n * @throws ApiError\n */\n public terminate1(\n workflowId: string,\n reason?: string,\n ): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'DELETE',\n url: '/workflow/{workflowId}',\n path: {\n 'workflowId': workflowId,\n },\n query: {\n 'reason': reason,\n },\n });\n }\n\n /**\n * Resumes the workflow\n * @param workflowId\n * @returns any OK\n * @throws ApiError\n */\n public resumeWorkflow(\n workflowId: string,\n ): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'PUT',\n url: '/workflow/{workflowId}/resume',\n path: {\n 'workflowId': workflowId,\n },\n });\n }\n\n /**\n * Removes the workflow from the system\n * @param workflowId\n * @param archiveWorkflow\n * @returns any OK\n * @throws ApiError\n */\n public delete(\n workflowId: string,\n archiveWorkflow: boolean = true,\n ): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'DELETE',\n url: '/workflow/{workflowId}/remove',\n path: {\n 'workflowId': workflowId,\n },\n query: {\n 'archiveWorkflow': archiveWorkflow,\n },\n });\n }\n\n /**\n * Search for workflows based on task parameters\n * use sort options as sort=<field>:ASC|DESC e.g. sort=name&sort=workflowId:DESC. If order is not specified, defaults to ASC\n * @param start\n * @param size\n * @param sort\n * @param freeText\n * @param query\n * @returns SearchResultWorkflowSummary OK\n * @throws ApiError\n */\n public searchWorkflowsByTasks(\n start?: number,\n size: number = 100,\n sort?: string,\n freeText: string = '*',\n query?: string,\n ): CancelablePromise<SearchResultWorkflowSummary> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/workflow/search-by-tasks',\n query: {\n 'start': start,\n 'size': size,\n 'sort': sort,\n 'freeText': freeText,\n 'query': query,\n },\n });\n }\n\n /**\n * Get the uri and path of the external storage where the workflow payload is to be stored\n * @param path\n * @param operation\n * @param payloadType\n * @returns ExternalStorageLocation OK\n * @throws ApiError\n */\n public getExternalStorageLocation(\n path: string,\n operation: string,\n payloadType: string,\n ): CancelablePromise<ExternalStorageLocation> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/workflow/externalstoragelocation',\n query: {\n 'path': path,\n 'operation': operation,\n 'payloadType': payloadType,\n },\n });\n }\n\n /**\n * Start a new workflow. Returns the ID of the workflow instance that can be later used for tracking\n * @param name\n * @param requestBody\n * @param version\n * @param correlationId\n * @param priority\n * @returns string OK\n * @throws ApiError\n */\n public startWorkflow1(\n name: string,\n requestBody: Record<string, any>,\n version?: number,\n correlationId?: string,\n priority?: number,\n ): CancelablePromise<string> {\n return this.httpRequest.request({\n method: 'POST',\n url: '/workflow/{name}',\n path: {\n 'name': name,\n },\n query: {\n 'version': version,\n 'correlationId': correlationId,\n 'priority': priority,\n },\n body: requestBody,\n mediaType: 'application/json',\n });\n }\n\n /**\n * Restarts a completed workflow\n * @param workflowId\n * @param useLatestDefinitions\n * @returns void\n * @throws ApiError\n */\n public restart1(\n workflowId: string,\n useLatestDefinitions: boolean = false,\n ): CancelablePromise<void> {\n return this.httpRequest.request({\n method: 'POST',\n url: '/workflow/{workflowId}/restart',\n path: {\n 'workflowId': workflowId,\n },\n query: {\n 'useLatestDefinitions': useLatestDefinitions,\n },\n });\n }\n\n /**\n * Search for workflows based on payload and other parameters\n * use sort options as sort=<field>:ASC|DESC e.g. sort=name&sort=workflowId:DESC. If order is not specified, defaults to ASC.\n * @param queryId\n * @param start\n * @param size\n * @param sort\n * @param freeText\n * @param query\n * @param skipCache\n * @returns ScrollableSearchResultWorkflowSummary OK\n * @throws ApiError\n */\n public search1(\n queryId?: string,\n start?: number,\n size: number = 100,\n sort?: string,\n freeText: string = '*',\n query?: string,\n skipCache: boolean = false,\n ): CancelablePromise<ScrollableSearchResultWorkflowSummary> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/workflow/search',\n query: {\n 'queryId': queryId,\n 'start': start,\n 'size': size,\n 'sort': sort,\n 'freeText': freeText,\n 'query': query,\n 'skipCache': skipCache,\n },\n });\n }\n\n /**\n * Search for workflows based on task parameters\n * use sort options as sort=<field>:ASC|DESC e.g. sort=name&sort=workflowId:DESC. If order is not specified, defaults to ASC\n * @param start\n * @param size\n * @param sort\n * @param freeText\n * @param query\n * @returns SearchResultWorkflow OK\n * @throws ApiError\n */\n public searchWorkflowsByTasksV2(\n start?: number,\n size: number = 100,\n sort?: string,\n freeText: string = '*',\n query?: string,\n ): CancelablePromise<SearchResultWorkflow> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/workflow/search-by-tasks-v2',\n query: {\n 'start': start,\n 'size': size,\n 'sort': sort,\n 'freeText': freeText,\n 'query': query,\n },\n });\n }\n\n /**\n * Resets callback times of all non-terminal SIMPLE tasks to 0\n * @param workflowId\n * @returns void\n * @throws ApiError\n */\n public resetWorkflow(\n workflowId: string,\n ): CancelablePromise<void> {\n return this.httpRequest.request({\n method: 'POST',\n url: '/workflow/{workflowId}/resetcallbacks',\n path: {\n 'workflowId': workflowId,\n },\n });\n }\n\n}\n","/* istanbul ignore file */\n/* tslint:disable */\n/* eslint-disable */\nimport FormData from 'form-data';\nimport fetch, { Headers, RequestInit, Response } from 'node-fetch';\n\nimport { ApiError } from './ApiError';\nimport type { ApiRequestOptions } from './ApiRequestOptions';\nimport type { ApiResult } from './ApiResult';\nimport { CancelablePromise } from './CancelablePromise';\nimport type { OnCancel } from './CancelablePromise';\nimport type { OpenAPIConfig } from './OpenAPI';\nimport { AbortSignal } from 'node-fetch/externals';\n\nconst isDefined = <T>(value: T | null | undefined): value is Exclude<T, null | undefined> => {\n return value !== undefined && value !== null;\n};\n\nconst isString = (value: any): value is string => {\n return typeof value === 'string';\n};\n\nconst isStringWithValue = (value: any): value is string => {\n return isString(value) && value !== '';\n};\n\nconst isBlob = (value: any): value is Blob => {\n return (\n typeof value === 'object' &&\n typeof value.type === 'string' &&\n typeof value.stream === 'function' &&\n typeof value.arrayBuffer === 'function' &&\n typeof value.constructor === 'function' &&\n typeof value.constructor.name === 'string' &&\n /^(Blob|File)$/.test(value.constructor.name) &&\n /^(Blob|File)$/.test(value[Symbol.toStringTag])\n );\n};\n\nconst isFormData = (value: any): value is FormData => {\n return value instanceof FormData;\n};\n\nconst base64 = (str: string): string => {\n try {\n return btoa(str);\n } catch (err) {\n // @ts-ignore\n return Buffer.from(str).toString('base64');\n }\n};\n\nconst getQueryString = (params: Record<string, any>): string => {\n const qs: string[] = [];\n\n const append = (key: string, value: any) => {\n qs.push(`${encodeURIComponent(key)}=${encodeURIComponent(String(value))}`);\n };\n\n const process = (key: string, value: any) => {\n if (isDefined(value)) {\n if (Array.isArray(value)) {\n value.forEach(v => {\n process(key, v);\n });\n } else if (typeof value === 'object') {\n Object.entries(value).forEach(([k, v]) => {\n process(`${key}[${k}]`, v);\n });\n } else {\n append(key, value);\n }\n }\n };\n\n Object.entries(params).forEach(([key, value]) => {\n process(key, value);\n });\n\n if (qs.length > 0) {\n return `?${qs.join('&')}`;\n }\n\n return '';\n};\n\nconst getUrl = (config: OpenAPIConfig, options: ApiRequestOptions): string => {\n const encoder = config.ENCODE_PATH || encodeURI;\n\n const path = options.url\n .replace('{api-version}', config.VERSION)\n .replace(/{(.*?)}/g, (substring: string, group: string) => {\n if (options.path?.hasOwnProperty(group)) {\n return encoder(String(options.path[group]));\n }\n return substring;\n });\n\n const url = `${config.BASE}${path}`;\n if (options.query) {\n return `${url}${getQueryString(options.query)}`;\n }\n return url;\n};\n\nconst getFormData = (options: ApiRequestOptions): FormData | undefined => {\n if (options.formData) {\n const formData = new FormData();\n\n const process = (key: string, value: any) => {\n if (isString(value) || isBlob(value)) {\n formData.append(key, value);\n } else {\n formData.append(key, JSON.stringify(value));\n }\n };\n\n Object.entries(options.formData)\n .filter(([_, value]) => isDefined(value))\n .forEach(([key, value]) => {\n if (Array.isArray(value)) {\n value.forEach(v => process(key, v));\n } else {\n process(key, value);\n }\n });\n\n return formData;\n }\n return undefined;\n};\n\ntype Resolver<T> = (options: ApiRequestOptions) => Promise<T>;\n\nconst resolve = async <T>(options: ApiRequestOptions, resolver?: T | Resolver<T>): Promise<T | undefined> => {\n if (typeof resolver === 'function') {\n return (resolver as Resolver<T>)(options);\n }\n return resolver;\n};\n\nconst getHeaders = async (config: OpenAPIConfig, options: ApiRequestOptions): Promise<Headers> => {\n const token = await resolve(options, config.TOKEN);\n const username = await resolve(options, config.USERNAME);\n const password = await resolve(options, config.PASSWORD);\n const additionalHeaders = await resolve(options, config.HEADERS);\n\n const headers = Object.entries({\n Accept: 'application/json',\n ...additionalHeaders,\n ...options.headers,\n })\n .filter(([_, value]) => isDefined(value))\n .reduce((headers, [key, value]) => ({\n ...headers,\n [key]: String(value),\n }), {} as Record<string, string>);\n\n if (isStringWithValue(token)) {\n headers['X-AUTHORIZATION'] = token;\n }\n\n if (isStringWithValue(username) && isStringWithValue(password)) {\n const credentials = base64(`${username}:${password}`);\n headers['Authorization'] = `Basic ${credentials}`;\n }\n\n if (options.body) {\n if (options.mediaType) {\n headers['Content-Type'] = options.mediaType;\n } else if (isBlob(options.body)) {\n headers['Content-Type'] = 'application/octet-stream';\n } else if (isString(options.body)) {\n headers['Content-Type'] = 'text/plain';\n } else if (!isFormData(options.body)) {\n headers['Content-Type'] = 'application/json';\n }\n }\n\n return new Headers(headers);\n};\n\nconst getRequestBody = (options: ApiRequestOptions): any => {\n if (options.body) {\n if (options.mediaType?.includes('/json')) {\n return JSON.stringify(options.body)\n } else if (isString(options.body) || isBlob(options.body) || isFormData(options.body)) {\n return options.body as any;\n } else {\n return JSON.stringify(options.body);\n }\n }\n return undefined;\n};\n\nexport const sendRequest = async (\n options: ApiRequestOptions,\n url: string,\n body: any,\n formData: FormData | undefined,\n headers: Headers,\n onCancel: OnCancel\n): Promise<Response> => {\n const controller = new AbortController();\n\n const request: RequestInit = {\n headers,\n method: options.method,\n body: body ?? formData,\n signal: controller.signal as AbortSignal,\n };\n\n onCancel(() => controller.abort());\n\n return await fetch(url, request);\n};\n\nconst getResponseHeader = (response: Response, responseHeader?: string): string | undefined => {\n if (responseHeader) {\n const content = response.headers.get(responseHeader);\n if (isString(content)) {\n return content;\n }\n }\n return undefined;\n};\n\nconst getResponseBody = async (response: Response): Promise<any> => {\n if (response.status !== 204) {\n try {\n const contentType = response.headers.get('Content-Type');\n if (contentType) {\n const isJSON = contentType.toLowerCase().startsWith('application/json');\n if (isJSON) {\n return await response.json();\n } else {\n return await response.text();\n }\n }\n } catch (error) {\n console.error(error);\n }\n }\n return undefined;\n};\n\nconst catchErrorCodes = (options: ApiRequestOptions, result: ApiResult): void => {\n const errors: Record<number, string> = {\n 400: 'Bad Request',\n 401: 'Unauthorized',\n 403: 'Forbidden',\n 404: 'Not Found',\n 500: 'Internal Server Error',\n 502: 'Bad Gateway',\n 503: 'Service Unavailable',\n ...options.errors,\n }\n\n const error = errors[result.status];\n if (error) {\n throw new ApiError(options, result, error);\n }\n\n if (!result.ok) {\n throw new ApiError(options, result, 'Generic Error');\n }\n};\n\n/**\n * Request method\n * @param config The OpenAPI configuration object\n * @param options The request options from the service\n * @returns CancelablePromise<T>\n * @throws ApiError\n */\nexport const request = <T>(config: OpenAPIConfig, options: ApiRequestOptions): CancelablePromise<T> => {\n return new CancelablePromise(async (resolve, reject, onCancel) => {\n try {\n const url = getUrl(config, options);\n const formData = getFormData(options);\n const body = getRequestBody(options);\n const headers = await getHeaders(config, options);\n\n if (!onCancel.isCancelled) {\n const response = await sendRequest(options, url, body, formData, headers, onCancel);\n const responseBody = await getResponseBody(response);\n const responseHeader = getResponseHeader(response, options.responseHeader);\n\n const result: ApiResult = {\n url,\n ok: response.ok,\n status: response.status,\n statusText: response.statusText,\n body: responseHeader ?? responseBody,\n };\n\n catchErrorCodes(options, result);\n\n resolve(result.body);\n }\n } catch (error) {\n reject(error);\n }\n });\n};\n","/* istanbul ignore file */\n/* tslint:disable */\n/* eslint-disable */\nimport type { ApiRequestOptions } from './ApiRequestOptions';\nimport type { ApiResult } from './ApiResult';\n\nexport class ApiError extends Error {\n public readonly url: string;\n public readonly status: number;\n public readonly statusText: string;\n public readonly body: any;\n public readonly request: ApiRequestOptions;\n\n constructor(request: ApiRequestOptions, response: ApiResult, message: string) {\n super(message);\n\n this.name = 'ApiError';\n this.url = response.url;\n this.status = response.status;\n this.statusText = response.statusText;\n this.body = response.body;\n this.request = request;\n }\n}\n","import { generateSimpleTask } from \"./SimpleTask\";\nimport { generateDoWhileTask as doWhileGenerateInner } from \"./DoWhileTask\";\nimport { generateEventTask } from \"./EventTask\";\nimport {\n generateForkJoinTask as generateForkJoinTaskInner,\n generateJoinTask,\n} from \"./ForkJoin\";\nimport { generateHTTPTask } from \"./HttpTask\";\nimport { generateInlineTask } from \"./InlineTask\";\nimport { generateJQTransformTask } from \"./JsonJQTransform\";\nimport { generateKafkaPublishTask } from \"./KafkaTask\";\nimport { generateSubWorkflowTask } from \"./SubWorkflowTask\";\nimport { generateSetVariableTask } from \"./SetVariableTask\";\nimport { generateTerminateTask } from \"./TerminateTask\";\nimport { generateWaitTask } from \"./WaitTask\";\nimport { generateSwitchTask as innerGenerateSwitchTask } from \"./SwitchTask\";\n\nimport { taskGenMapper, generate } from \"./generator\";\nimport {\n SwitchTaskDefGen,\n NestedTaskMapper,\n DoWhileTaskDefGen,\n ForkJoinTaskDefGen,\n} from \"./types\";\n/**\n * Takes an optional partial SwitchTaskDefGen and an optional nestedMapper\n * generates a task replacing default/fake values with provided overrides\n *\n * @param overrides overrides for defaults\n * @param nestedTasksMapper function to run on array of nested tasks\n * @returns a fully defined task\n */\nconst generateSwitchTask = (\n overrides: Partial<SwitchTaskDefGen> = {},\n nestedTasksMapper: NestedTaskMapper = taskGenMapper\n) => innerGenerateSwitchTask(overrides, nestedTasksMapper);\n\n/**\n * Takes an optional partial DoWhileTaskDefGen and an optional nestedMapper\n * generates a task replacing default/fake values with provided overrides\n *\n * @param overrides overrides for defaults\n * @param nestedTasksMapper function to run on array of nested tasks\n * @returns a fully defined task\n */\nconst generateDoWhileTask = (\n overrides: Partial<DoWhileTaskDefGen> = {},\n nestedTasksMapper: NestedTaskMapper = taskGenMapper\n) => doWhileGenerateInner(overrides, nestedTasksMapper);\n\n/**\n * Takes an optional partial DoWhileTaskDefGen and an optional nestedMapper\n * generates a task replacing default/fake values with provided overrides\n *\n * @param overrides overrides for defaults\n * @param nestedTasksMapper function to run on array of nested tasks\n * @returns a fully defined task\n */\nconst generateForkJoinTask = (\n overrides: Partial<ForkJoinTaskDefGen> = {},\n nestedMapper: NestedTaskMapper = taskGenMapper\n) => generateForkJoinTaskInner(overrides, nestedMapper);\n\nexport {\n generateSimpleTask,\n generateDoWhileTask,\n generateEventTask,\n generateForkJoinTask,\n generateJoinTask,\n generateHTTPTask,\n generateInlineTask,\n generateJQTransformTask,\n generateKafkaPublishTask,\n generateSubWorkflowTask,\n generateSetVariableTask,\n generateTerminateTask,\n generateWaitTask,\n generateSwitchTask,\n generate,\n taskGenMapper,\n};\n","import { SimpleTaskDef, TaskType } from \"../types\";\nimport { nameTaskNameGenerator } from \"./common\";\n\n/**\n * Takes an optional partial SimpleTaskDef\n * generates a task replacing default values with provided overrides\n *\n * @param overrides overrides for defaults\n * @returns a fully defined task\n */\nexport const generateSimpleTask = (\n overrides: Partial<SimpleTaskDef> = {}\n): SimpleTaskDef => ({\n ...nameTaskNameGenerator(\"simple\", overrides),\n inputParameters: {},\n ...overrides,\n type: TaskType.SIMPLE,\n});\n","import { WorkflowDef as OriginalWorkflowDef } from \"./open-api/models/WorkflowDef\";\n\nexport interface CommonTaskDef {\n name: string;\n taskReferenceName: string;\n}\n\nexport enum TaskType {\n START = \"START\",\n SIMPLE = \"SIMPLE\",\n DYNAMIC = \"DYNAMIC\",\n FORK_JOIN = \"FORK_JOIN\",\n FORK_JOIN_DYNAMIC = \"FORK_JOIN_DYNAMIC\",\n DECISION = \"DECISION\",\n SWITCH = \"SWITCH\",\n JOIN = \"JOIN\",\n DO_WHILE = \"DO_WHILE\",\n SUB_WORKFLOW = \"SUB_WORKFLOW\",\n EVENT = \"EVENT\",\n WAIT = \"WAIT\",\n USER_DEFINED = \"USER_DEFINED\",\n HTTP = \"HTTP\",\n LAMBDA = \"LAMBDA\",\n INLINE = \"INLINE\",\n EXCLUSIVE_JOIN = \"EXCLUSIVE_JOIN\",\n TERMINAL = \"TERMINAL\",\n TERMINATE = \"TERMINATE\",\n KAFKA_PUBLISH = \"KAFKA_PUBLISH\",\n JSON_JQ_TRANSFORM = \"JSON_JQ_TRANSFORM\",\n SET_VARIABLE = \"SET_VARIABLE\",\n}\n\nexport type TaskDefTypes =\n | SimpleTaskDef\n | DoWhileTaskDef\n | EventTaskDef\n | ForkJoinTaskDef\n | ForkJoinDynamicDef\n | HttpTaskDef\n | InlineTaskDef\n | JsonJQTransformTaskDef\n | KafkaPublishTaskDef\n | SetVariableTaskDef\n | SubWorkflowTaskDef\n | SwitchTaskDef\n | TerminateTaskDef\n | JoinTaskDef\n | WaitTaskDef;\n\nexport interface DoWhileTaskDef extends CommonTaskDef {\n inputParameters: Record<string, unknown>;\n type: TaskType.DO_WHILE;\n startDelay?: number;\n optional?: boolean;\n asyncComplete?: boolean;\n loopCondition: string;\n loopOver: TaskDefTypes[];\n}\n\nexport interface EventTaskDef extends CommonTaskDef {\n type: TaskType.EVENT;\n sink: string;\n asyncComplete?: boolean;\n}\n\nexport interface ForkJoinTaskDef extends CommonTaskDef {\n type: TaskType.FORK_JOIN;\n inputParameters?: Record<string, string>;\n forkTasks: Array<Array<TaskDefTypes>>;\n}\n\nexport interface JoinTaskDef extends CommonTaskDef {\n type: TaskType.JOIN;\n inputParameters?: Record<string, string>;\n joinOn: string[];\n optional?: boolean;\n asyncComplete?: boolean;\n}\n\nexport interface ForkJoinDynamicDef extends CommonTaskDef {\n inputParameters: {\n dynamicTasks: any;\n dynamicTasksInput: any;\n };\n type: TaskType.FORK_JOIN_DYNAMIC;\n dynamicForkTasksParam: string; // not string \"dynamicTasks\",\n dynamicForkTasksInputParamName: string; // not string \"dynamicTasksInput\",\n startDelay?: number;\n optional?: boolean;\n asyncComplete?: boolean;\n}\nexport interface HttpInputParameters {\n uri: string;\n method: \"GET\" | \"PUT\" | \"POST\" | \"DELETE\" | \"OPTIONS\" | \"HEAD\";\n accept?: string;\n contentType?: string;\n headers?: Record<string, string>;\n body?: unknown;\n connectionTimeOut?: number;\n readTimeOut?: string;\n}\n\nexport interface HttpTaskDef extends CommonTaskDef {\n inputParameters: {\n [x: string]: unknown;\n http_request: HttpInputParameters;\n };\n type: TaskType.HTTP;\n}\n\nexport interface InlineTaskInputParameters {\n evaluatorType: \"javascript\" | \"graaljs\";\n expression: string;\n [x: string]: unknown;\n}\n\nexport interface InlineTaskDef extends CommonTaskDef {\n type: TaskType.INLINE;\n inputParameters: InlineTaskInputParameters;\n}\n\ninterface ContainingQueryExpression {\n queryExpression: string;\n [x: string | number | symbol]: unknown;\n}\n\nexport interface JsonJQTransformTaskDef extends CommonTaskDef {\n type: TaskType.JSON_JQ_TRANSFORM;\n inputParameters: ContainingQueryExpression;\n}\n\nexport interface KafkaPublishInputParameters {\n topic: string;\n value: string;\n bootStrapServers: string;\n headers: Record<string, string>;\n key: string;\n keySerializer: string;\n}\n\nexport interface KafkaPublishTaskDef extends CommonTaskDef {\n inputParameters: {\n kafka_request: KafkaPublishInputParameters;\n };\n type: TaskType.KAFKA_PUBLISH;\n}\n\nexport interface SetVariableTaskDef extends CommonTaskDef {\n type: TaskType.SET_VARIABLE;\n inputParameters: Record<string, unknown>;\n}\n\nexport interface SimpleTaskDef extends CommonTaskDef {\n type: TaskType.SIMPLE;\n inputParameters?: Record<string, unknown>;\n}\n\nexport interface SubWorkflowTaskDef extends CommonTaskDef {\n type: TaskType.SUB_WORKFLOW;\n inputParameters?: Record<string, unknown>;\n subWorkflowParam: {\n name: string;\n version?: number;\n taskToDomain?: Record<string, string>;\n };\n}\n\nexport interface SwitchTaskDef extends CommonTaskDef {\n inputParameters: Record<string, unknown>;\n type: TaskType.SWITCH;\n decisionCases: Record<string, TaskDefTypes[]>;\n defaultCase: TaskDefTypes[];\n evaluatorType: \"value-param\" | \"javascript\";\n expression: string;\n}\n\nexport interface TerminateTaskDef extends CommonTaskDef {\n inputParameters: {\n terminationStatus: \"COMPLETED\" | \"FAILED\";\n workflowOutput?: Record<string, string>;\n terminationReason?: string;\n };\n type: TaskType.TERMINATE;\n startDelay?: number;\n optional?: boolean;\n}\n\nexport interface WaitTaskDef extends CommonTaskDef {\n type: TaskType.WAIT;\n inputParameters: {\n duration?: string;\n until?: string;\n };\n}\n\ntype U2O<U extends string> = {\n [key in U]: U2O<Exclude<U, key>>;\n};\n\ntype O2T<O extends {}> = {} extends O\n ? []\n : {\n [key in keyof O]: [key, ...O2T<O[key]>];\n }[keyof O];\n\nexport type WorkflowInputParameters<T extends string> = O2T<U2O<T>>;\n\nexport interface WorkflowDef\n extends Omit<OriginalWorkflowDef, \"tasks\" | \"version\" | \"inputParameters\"> {\n /* inputParameters: O2T<U2O<T>> | string[]; */\n inputParameters: string[];\n version: number;\n tasks: TaskDefTypes[];\n}\n","export const randomChars = (n = 7): string =>\n (Math.random() + 1).toString(36).substring(n);\n\nexport const workflowNameGenerator = () => `workflow___${randomChars(7)}`;\n\nexport const taskNameGenerator = (taskType: string) =>\n `${taskType}__task_${randomChars(7)}`;\n\nexport const taskReferenceNameGenerator = (taskName: string) =>\n `${taskName}_ref`;\n\ninterface MaybeOverrides {\n name?: string;\n}\n\nexport const nameTaskNameGenerator = (\n taskType: string,\n maybeOverrides: MaybeOverrides = {}\n) => {\n const name = maybeOverrides?.name ?? taskNameGenerator(taskType);\n return {\n name,\n taskReferenceName: taskReferenceNameGenerator(name),\n };\n};\n\nexport function mapArrValues<T, R>(\n arrayTransformer: (a: T[]) => R[],\n mapWithValues: Record<string, T[]>\n) {\n return Object.fromEntries(\n Object.entries(mapWithValues).map(([key, value]: [string, T[]]) => [\n key,\n arrayTransformer(value),\n ])\n );\n}\n","import { TaskType, DoWhileTaskDef } from \"../types\";\nimport { DoWhileTaskDefGen, NestedTaskMapper } from \"./types\";\nimport { nameTaskNameGenerator } from \"./common\";\n\nexport const generateDoWhileTask = (\n overrides: Partial<DoWhileTaskDefGen> = {},\n nestedTasksMapper: NestedTaskMapper\n): DoWhileTaskDef => ({\n ...nameTaskNameGenerator(\"doWhile\", overrides),\n inputParameters: {},\n startDelay: 0,\n optional: false,\n asyncComplete: false,\n loopCondition:\"\",\n ...overrides,\n loopOver: nestedTasksMapper(overrides?.loopOver || []),\n type: TaskType.DO_WHILE,\n});\n","import { EventTaskDef, TaskType } from \"../types\";\nimport { nameTaskNameGenerator } from \"./common\";\n\n/**\n * Takes an optional partial EventTaskDef\n * generates a task replacing default/fake values with provided overrides\n *\n * @param overrides overrides for defaults\n * @returns a fully defined task\n */\nexport const generateEventTask = (\n overrides: Partial<EventTaskDef> = {}\n): EventTaskDef => ({\n ...nameTaskNameGenerator(\"event\", overrides),\n sink: \"sqs:sqs_queue_name\",\n asyncComplete: false,\n ...overrides,\n type: TaskType.EVENT,\n});\n","import { ForkJoinTaskDef, JoinTaskDef, TaskType } from \"../types\";\nimport { nameTaskNameGenerator } from \"./common\";\nimport { ForkJoinTaskDefGen, NestedTaskMapper } from \"./types\";\n\nexport const generateForkJoinTask = (\n overrides: Partial<ForkJoinTaskDefGen> = {},\n nestedMapper: NestedTaskMapper\n): ForkJoinTaskDef => ({\n ...nameTaskNameGenerator(\"forkJoin\", overrides),\n inputParameters: {},\n ...overrides,\n type: TaskType.FORK_JOIN,\n forkTasks: (overrides?.forkTasks || []).map(nestedMapper),\n});\n\nexport const generateJoinTask = (\n overrides: Partial<JoinTaskDef> = {}\n): JoinTaskDef => ({\n ...nameTaskNameGenerator(\"join\", overrides),\n inputParameters: {},\n joinOn: [],\n optional: false,\n asyncComplete: false,\n ...overrides,\n type: TaskType.JOIN,\n});\n","import { HttpTaskDef, TaskType } from \"../types\";\nimport { nameTaskNameGenerator } from \"./common\";\n\n/**\n * Takes an optional partial HttpTaskDef\n * generates a task replacing default/fake values with provided overrides\n *\n * @param overrides overrides for defaults\n * @returns a fully defined task\n */\nexport const generateHTTPTask = (\n overrides: Partial<HttpTaskDef> = {}\n): HttpTaskDef => ({\n ...nameTaskNameGenerator(\"httpTask\", overrides),\n inputParameters: {\n http_request: {\n uri: \"https://jsonplaceholder.typicode.com/posts/${workflow.input.queryid}\",\n method: \"GET\",\n },\n },\n ...overrides,\n type: TaskType.HTTP,\n});\n","import { InlineTaskDef, TaskType, InlineTaskInputParameters } from \"../types\";\nimport { InlineTaskDefGen, InlineTaskInputParametersGen } from \"./types\";\nimport { nameTaskNameGenerator } from \"./common\";\n\nconst defaultInputParams: InlineTaskInputParameters = {\n value: \"${workflow.input.value}\",\n evaluatorType: \"javascript\",\n expression: \"true\",\n};\n\nexport const generateEvaluationCode = (\n inputParametersPartial: Partial<InlineTaskInputParametersGen> = {}\n): InlineTaskInputParameters => {\n const inlinePartialDefJavascript = inputParametersPartial;\n const inlineExpression = inlinePartialDefJavascript?.expression;\n if (\n inlineExpression !== undefined &&\n typeof inlineExpression === \"function\"\n ) {\n const resultingFunction = inlineExpression();\n const resultingFunctionAsString = resultingFunction.toString();\n\n const toReturn: InlineTaskInputParameters = {\n evaluatorType: \"javascript\",\n ...(inputParametersPartial || { value: \"true\" }),\n expression: `(${resultingFunctionAsString})();`,\n };\n return toReturn;\n }\n return {\n ...defaultInputParams,\n ...inputParametersPartial,\n evaluatorType: \"javascript\",\n } as InlineTaskInputParameters;\n};\n\n/**\n * Takes an optional partial InlineTaskDefGen\n * generates a task replacing default/fake values with provided overrides\n * \n * <b>note</b> that the inputParameters.expression can be either a string containing javascript\n * or a function thar returns an ES5 function\n *\n * @param overrides overrides for defaults\n * @returns a fully defined task\n */\nexport const generateInlineTask = (\n override: Partial<InlineTaskDefGen> = {}\n): InlineTaskDef => ({\n ...nameTaskNameGenerator(\"inline\", override),\n ...override,\n inputParameters: generateEvaluationCode(override?.inputParameters || {}),\n type: TaskType.INLINE,\n});\n","import { JsonJQTransformTaskDef, TaskType } from \"../types\";\nimport { nameTaskNameGenerator } from \"./common\";\n\n/**\n * Takes an optional partial JsonJQTransformTaskDef\n * generates a task replacing default/fake values with provided overrides\n *\n * @param overrides overrides for defaults\n * @returns a fully defined task\n */\nexport const generateJQTransformTask = (\n overrides: Partial<JsonJQTransformTaskDef> = {}\n): JsonJQTransformTaskDef => ({\n ...nameTaskNameGenerator(\"jqTransform\", overrides),\n inputParameters: {\n key1: {\n value1: [\"a\", \"b\"],\n },\n key2: {\n value2: [\"c\", \"d\"],\n },\n queryExpression: \"{ key3: (.key1.value1 + .key2.value2) }\",\n },\n ...overrides,\n type: TaskType.JSON_JQ_TRANSFORM,\n});\n","import { KafkaPublishTaskDef, TaskType } from \"../types\";\nimport { nameTaskNameGenerator } from \"./common\";\n\n/**\n * Takes an optional partial KafkaPublishTaskDef\n * generates a task replacing default/fake values with provided overrides\n *\n * @param overrides overrides for defaults\n * @returns a fully defined task\n */\nexport const generateKafkaPublishTask = (\n overrides: Partial<KafkaPublishTaskDef> = {}\n): KafkaPublishTaskDef => ({\n ...nameTaskNameGenerator(\"kafka\", overrides),\n inputParameters: {\n kafka_request: {\n topic: \"topic\",\n value: \"\",\n bootStrapServers: \"localhost:9092\",\n headers: {},\n key: \"123\",\n keySerializer: \"org.apache.kafka.common.serialization.IntegerSerializer\",\n },\n },\n ...overrides,\n type: TaskType.KAFKA_PUBLISH,\n});\n","import { SubWorkflowTaskDef, TaskType } from \"../types\";\nimport { nameTaskNameGenerator } from \"./common\";\n\n/**\n * Takes an optional partial SubWorkflowTaskDef\n * generates a task replacing default/fake values with provided overrides\n *\n * @param overrides overrides for defaults\n * @returns a fully defined task\n */\nexport const generateSubWorkflowTask = (\n overrides: Partial<SubWorkflowTaskDef> = {}\n): SubWorkflowTaskDef => ({\n ...nameTaskNameGenerator(\"subWorkflow\", overrides),\n inputParameters: {},\n subWorkflowParam: {\n name: \"name\",\n version: 1,\n taskToDomain: {},\n },\n ...overrides,\n type: TaskType.SUB_WORKFLOW,\n});\n","import { SetVariableTaskDef, TaskType } from \"../types\";\nimport { nameTaskNameGenerator } from \"./common\";\n\n/**\n * Takes an optional partial SetVariableTaskDef\n * generates a task replacing default/fake values with provided overrides\n *\n * @param overrides overrides for defaults\n * @returns a fully defined task\n */\nexport const generateSetVariableTask = (\n overrides: Partial<SetVariableTaskDef> = {}\n): SetVariableTaskDef => ({\n ...nameTaskNameGenerator(\"setVariable\", overrides),\n inputParameters: {},\n ...overrides,\n type: TaskType.SET_VARIABLE,\n});\n","import { TerminateTaskDef, TaskType } from \"../types\";\nimport { nameTaskNameGenerator } from \"./common\";\n\n/**\n * Takes an optional partial TerminateTaskDef\n * generates a task replacing default/fake values with provided overrides\n *\n * @param overrides overrides for defaults\n * @returns a fully defined task\n */\nexport const generateTerminateTask = (\n overrides: Partial<TerminateTaskDef> = {}\n): TerminateTaskDef => ({\n ...nameTaskNameGenerator(\"terminate\", overrides),\n inputParameters: {\n terminationStatus: \"COMPLETED\",\n workflowOutput: {},\n },\n startDelay: 0,\n optional: false,\n ...overrides,\n type: TaskType.TERMINATE,\n});\n","import { WaitTaskDef, TaskType } from \"../types\";\nimport { nameTaskNameGenerator } from \"./common\";\n\n/**\n * Takes an optional partial WaitTaskDef\n * generates a task replacing default/fake values with provided overrides\n *\n * @param overrides overrides for defaults\n * @returns a fully defined task\n */\nexport const generateWaitTask = (\n overrides: Partial<WaitTaskDef> = {}\n): WaitTaskDef => ({\n ...nameTaskNameGenerator(\"wait\", overrides),\n ...overrides,\n inputParameters:{},\n type: TaskType.WAIT,\n});\n","import { SwitchTaskDef, TaskType, TaskDefTypes } from \"../types\";\nimport { nameTaskNameGenerator, mapArrValues } from \"./common\";\nimport { NestedTaskMapper, SwitchTaskDefGen } from \"./types\";\n\ntype DefinedCases = {\n decisionCases: Record<string, TaskDefTypes[]>;\n defaultCase: TaskDefTypes[];\n};\n\nconst fillSwitchTaskBranches = (\n task: Partial<SwitchTaskDefGen>,\n mapper: NestedTaskMapper\n): DefinedCases => ({\n decisionCases: mapArrValues(mapper, task?.decisionCases || {}),\n defaultCase: mapper(task?.defaultCase || []),\n});\n\nexport const generateSwitchTask = (\n overrides: Partial<SwitchTaskDefGen> = {},\n nestedTasksMapper: NestedTaskMapper\n): SwitchTaskDef => ({\n ...nameTaskNameGenerator(\"switch\", overrides),\n inputParameters: {\n switchCaseValue: \"\",\n },\n evaluatorType: \"value-param\",\n expression: \"switchCaseValue\",\n ...overrides,\n ...fillSwitchTaskBranches(overrides, nestedTasksMapper),\n type: TaskType.SWITCH,\n});\n","import { workflowGenerator } from \"./WorkflowGenerator\";\nimport { WorkflowDefGen, TaskDefTypesGen } from \"./types\";\nimport { generateSimpleTask } from \"./SimpleTask\";\nimport { generateDoWhileTask } from \"./DoWhileTask\";\nimport { generateEventTask } from \"./EventTask\";\nimport { generateForkJoinTask, generateJoinTask } from \"./ForkJoin\";\nimport { generateForkJoinDynamic } from \"./ForkJoinDynamicTask\";\nimport { generateHTTPTask } from \"./HttpTask\";\nimport { generateInlineTask } from \"./InlineTask\";\nimport { generateJQTransformTask } from \"./JsonJQTransform\";\nimport { generateKafkaPublishTask } from \"./KafkaTask\";\nimport { generateSubWorkflowTask } from \"./SubWorkflowTask\";\nimport { generateSetVariableTask } from \"./SetVariableTask\";\nimport { generateTerminateTask } from \"./TerminateTask\";\nimport { generateWaitTask } from \"./WaitTask\";\nimport { generateSwitchTask } from \"./SwitchTask\";\nimport { SimpleTaskDef, TaskDefTypes, TaskType } from \"../types\";\n\nconst filledTaskDef = (task: Partial<TaskDefTypesGen>): TaskDefTypes => {\n const taskType = task.type;\n switch (taskType) {\n case TaskType.SWITCH:\n return generateSwitchTask(task, taskGenMapper);\n case TaskType.SIMPLE:\n return generateSimpleTask(task);\n case TaskType.DO_WHILE:\n return generateDoWhileTask(task, taskGenMapper);\n case TaskType.EVENT:\n return generateEventTask(task);\n case TaskType.FORK_JOIN:\n return generateForkJoinTask(task, taskGenMapper);\n case TaskType.FORK_JOIN_DYNAMIC:\n return generateForkJoinDynamic(task);\n case TaskType.HTTP:\n return generateHTTPTask(task);\n case TaskType.INLINE:\n return generateInlineTask(task);\n case TaskType.JOIN:\n return generateJoinTask(task);\n case TaskType.JSON_JQ_TRANSFORM:\n return generateJQTransformTask(task);\n case TaskType.KAFKA_PUBLISH:\n return generateKafkaPublishTask(task);\n case TaskType.SUB_WORKFLOW:\n return generateSubWorkflowTask(task);\n case TaskType.SET_VARIABLE:\n return generateSetVariableTask(task);\n case TaskType.TERMINATE:\n return generateTerminateTask(task);\n case TaskType.WAIT:\n return generateWaitTask(task);\n default:\n return generateSimpleTask(task as SimpleTaskDef);\n }\n};\n\nexport const taskGenMapper = (\n tasks: Partial<TaskDefTypesGen>[]\n): TaskDefTypes[] =>\n tasks.reduce(\n (\n acc: TaskDefTypes[],\n task,\n idx: number\n ): TaskDefTypes[] => {\n const filledTask = filledTaskDef(task);\n const maybeNextTask =\n tasks.length >= idx + 1 ? tasks[idx + 1] : undefined;\n return acc.concat(maybeAddJoinTask(filledTask, maybeNextTask));\n },\n []\n );\n\nconst maybeAddJoinTask = (\n currentTask: TaskDefTypes,\n maybeNextTask?: Partial<TaskDefTypesGen>\n) => {\n if (\n currentTask.type === TaskType.FORK_JOIN ||\n (currentTask.type === TaskType.FORK_JOIN_DYNAMIC &&\n maybeNextTask != null &&\n maybeNextTask.type !== TaskType.JOIN)\n ) {\n return [currentTask, generateJoinTask({})];\n }\n return currentTask;\n};\n\n/**\n * Takes an optional partial WorkflowDefGen\n * generates a workflow replacing default/fake values with provided overrides\n *\n * @param overrides overrides for defaults\n * @returns a fully defined task\n */\nexport const generate = (overrides: Partial<WorkflowDefGen>) => {\n const maybeTasks: Partial<TaskDefTypesGen>[] = overrides.tasks || [];\n const generatedTasks: TaskDefTypes[] = taskGenMapper(maybeTasks);\n return workflowGenerator({ ...overrides, tasks: generatedTasks });\n};\n","import { WorkflowDef } from \"../types\";\n\nexport const workflowGenerator = (\n overrides: Partial<WorkflowDef>\n): WorkflowDef => ({\n name: \"NewWorkflow_3nxbi\",\n description:\n \"Edit or extend this sample workflow. Set the workflow name to get started\",\n version: 1,\n tasks: [],\n inputParameters: [],\n outputParameters: {},\n schemaVersion: 2,\n restartable: true,\n workflowStatusListenerEnabled: false,\n ownerEmail: \"james.stuart@orkes.io\",\n timeoutPolicy: \"ALERT_ONLY\",\n timeoutSeconds: 0,\n ...overrides,\n});\n","import { ForkJoinDynamicDef, TaskType } from \"../types\";\nimport { nameTaskNameGenerator } from \"./common\";\n\nexport const generateForkJoinDynamic = (\n overrides: Partial<ForkJoinDynamicDef> = {}\n): ForkJoinDynamicDef => ({\n ...nameTaskNameGenerator(\"forkJoinDynamic\", overrides),\n inputParameters: {\n dynamicTasks: \"\",\n dynamicTasksInput: \"\",\n },\n dynamicForkTasksParam: \"dynamicTasks\",\n dynamicForkTasksInputParamName: \"dynamicTasksInput\",\n startDelay: 0,\n optional: false,\n asyncComplete: false,\n ...overrides,\n type: TaskType.FORK_JOIN_DYNAMIC,\n});\n","export * from \"./doWhile\";\nexport * from \"./dynamicFork\";\nexport * from \"./event\";\nexport * from \"./forkJoin\";\nexport * from \"./http\";\nexport * from \"./inline\";\nexport * from \"./join\";\nexport * from \"./jsonJq\";\nexport * from \"./kafkaPublish\";\nexport * from \"./setVariable\";\nexport * from \"./simple\";\nexport * from \"./subWorkflow\";\nexport * from \"./switch\";\nexport * from \"./terminate\";\nexport * from \"./wait\";\nexport * from \"./workflow\";\n","import { TaskType, DoWhileTaskDef, TaskDefTypes } from \"../types\";\n\nexport const doWhileTask = (\n taskRefName: string,\n terminationCondition: string,\n tasks: TaskDefTypes[]\n): DoWhileTaskDef => ({\n name: taskRefName,\n taskReferenceName: taskRefName,\n loopCondition: terminationCondition,\n inputParameters: {},\n type: TaskType.DO_WHILE,\n loopOver: tasks,\n});\n\nconst loopForCondition = (taskRefName: string, valueKey: string) =>\n `if ( $.${taskRefName}['iteration'] < $.${valueKey} ) { true; } else { false; }`;\n\nexport const newLoopTask = (\n taskRefName: string,\n iterations: number,\n tasks: TaskDefTypes[]\n): DoWhileTaskDef => ({\n name: taskRefName,\n taskReferenceName: taskRefName,\n loopCondition: loopForCondition(taskRefName, \"value\"),\n inputParameters: {\n value: iterations,\n },\n type: TaskType.DO_WHILE,\n loopOver: tasks,\n});\n","import { TaskType, ForkJoinDynamicDef, TaskDefTypes } from \"../types\";\n\nexport const dynamicForkTask = (\n taskReferenceName: string,\n preForkTasks: TaskDefTypes[] = [],\n dynamicTasksInput: string = \"\"\n): ForkJoinDynamicDef => ({\n name: taskReferenceName,\n taskReferenceName,\n inputParameters: {\n dynamicTasks: preForkTasks,\n dynamicTasksInput,\n },\n type: TaskType.FORK_JOIN_DYNAMIC,\n dynamicForkTasksParam: \"dynamicTasks\",\n dynamicForkTasksInputParamName: \"dynamicTasksInput\",\n});\n","import { TaskType, EventTaskDef } from \"../types\";\n\nexport const eventTask = (\n taskReferenceName: string,\n eventPrefix: string,\n eventSuffix: string\n): EventTaskDef => ({\n name: taskReferenceName,\n taskReferenceName,\n sink: `${eventPrefix}:${eventSuffix}`,\n type: TaskType.EVENT,\n});\n\nexport const sqsEventTask = (taskReferenceName: string, queueName: string) =>\n eventTask(taskReferenceName, \"sqs\", queueName);\n\nexport const conductorEventTask = (\n taskReferenceName: string,\n eventName: string\n) => eventTask(taskReferenceName, \"conductor\", eventName);\n","import { TaskType, ForkJoinTaskDef, TaskDefTypes, JoinTaskDef } from \"../types\";\nimport { generateJoinTask } from \"../generators\";\n\nexport const forkTask = (\n taskReferenceName: string,\n forkTasks: TaskDefTypes[]\n): ForkJoinTaskDef => ({\n taskReferenceName,\n name: taskReferenceName,\n type: TaskType.FORK_JOIN,\n forkTasks: [forkTasks],\n});\n\nexport const forkTaskJoin = (\n taskReferenceName: string,\n forkTasks: TaskDefTypes[]\n): [ForkJoinTaskDef, JoinTaskDef] => [\n forkTask(taskReferenceName, forkTasks),\n generateJoinTask({name:`${taskReferenceName}_join`}),\n];\n","import {\n TaskType,\n HttpTaskDef,\n HttpInputParameters,\n} from \"../types\";\n\nexport const httpTask = (\n taskReferenceName: string,\n inputParameters: HttpInputParameters\n): HttpTaskDef => ({\n name: taskReferenceName,\n taskReferenceName,\n inputParameters: {\n http_request: inputParameters,\n },\n type: TaskType.HTTP,\n});\n","import { TaskType, InlineTaskDef } from \"../types\";\n\nexport const inlineTask = (\n taskReferenceName: string,\n script: string,\n evaluatorType: \"javascript\" | \"graaljs\" = \"javascript\"\n): InlineTaskDef => ({\n name: taskReferenceName,\n taskReferenceName,\n inputParameters: {\n evaluatorType,\n expression: script,\n },\n type: TaskType.INLINE,\n});\n","import { TaskType, JoinTaskDef } from \"../types\";\n\nexport const joinTask = (\n taskReferenceName: string,\n joinOn: string[]\n): JoinTaskDef => ({\n name: taskReferenceName,\n taskReferenceName,\n joinOn,\n type: TaskType.JOIN,\n});\n","import { TaskType, JsonJQTransformTaskDef } from \"../types\";\n\nexport const jsonJqTask = (\n taskReferenceName: string,\n script: string\n): JsonJQTransformTaskDef => ({\n name: taskReferenceName,\n taskReferenceName,\n type: TaskType.JSON_JQ_TRANSFORM,\n inputParameters: {\n queryExpression: script,\n },\n});\n","import {\n TaskType,\n KafkaPublishTaskDef,\n KafkaPublishInputParameters,\n} from \"../types\";\n\nexport const kafkaPublishTask = (\n taskReferenceName: string,\n kafka_request: KafkaPublishInputParameters\n): KafkaPublishTaskDef => ({\n taskReferenceName,\n name: taskReferenceName,\n type: TaskType.KAFKA_PUBLISH,\n inputParameters: {\n kafka_request,\n },\n});\n","import { TaskType, SetVariableTaskDef } from \"../types\";\n\nexport const setVariableTask = (\n taskReferenceName: string,\n inputParameters: Record<string, unknown>\n): SetVariableTaskDef => ({\n name: taskReferenceName,\n taskReferenceName,\n type: TaskType.SET_VARIABLE,\n inputParameters,\n});\n","import { TaskType, SimpleTaskDef } from \"../types\";\n\nexport const simpleTask = (\n taskReferenceName: string,\n name: string,\n inputParameters:Record<string,unknown>\n): SimpleTaskDef => ({\n name,\n taskReferenceName,\n inputParameters,\n type: TaskType.SIMPLE,\n});\n","import { TaskType, SubWorkflowTaskDef } from \"../types\";\n\nexport const subWorkflowTask = (\n taskReferenceName: string,\n workflowName: string,\n version?: number \n): SubWorkflowTaskDef => ({\n name: taskReferenceName,\n taskReferenceName,\n subWorkflowParam: {\n name: workflowName,\n version,\n },\n type: TaskType.SUB_WORKFLOW,\n});\n","import { TaskType, SwitchTaskDef, TaskDefTypes } from \"../types\";\n\nexport const switchTask = (\n taskReferenceName: string,\n expression: string,\n decisionCases: Record<string, TaskDefTypes[]> = {},\n defaultCase: TaskDefTypes[] = []\n): SwitchTaskDef => ({\n name: taskReferenceName,\n taskReferenceName,\n decisionCases,\n evaluatorType: \"value-param\",\n inputParameters: {\n switchCaseValue: expression,\n },\n expression: \"switchCaseValue\",\n defaultCase,\n type: TaskType.SWITCH,\n});\n","import { TaskType, TerminateTaskDef } from \"../types\";\nexport const terminateTask = (\n taskReferenceName: string,\n status: \"COMPLETED\" | \"FAILED\",\n terminationReason?: string\n): TerminateTaskDef => ({\n name: taskReferenceName,\n taskReferenceName,\n inputParameters: {\n terminationStatus: status,\n terminationReason,\n },\n type: TaskType.TERMINATE,\n});\n","import { TaskType, WaitTaskDef } from \"../types\";\n\nexport const waitTaskDuration = (taskReferenceName:string,duration:string):WaitTaskDef =>({\n name:taskReferenceName,\n taskReferenceName,\n inputParameters:{\n duration\n },\n type:TaskType.WAIT\n});\n\nexport const waitTaskUntil = (taskReferenceName:string,until:string):WaitTaskDef =>({\n name:taskReferenceName,\n taskReferenceName,\n inputParameters:{\n until\n },\n type:TaskType.WAIT\n})","import { WorkflowDef, TaskDefTypes } from \"../types\";\n\nexport const workflow = (name: string, tasks: TaskDefTypes[]): WorkflowDef => ({\n name,\n version: 1,\n tasks,\n inputParameters: [],\n timeoutSeconds: 0,\n});\n","/* istanbul ignore file */\n/* tslint:disable */\n/* eslint-disable */\nexport { ConductorClient } from './ConductorClient';\n\nexport { ApiError } from './core/ApiError';\nexport { BaseHttpRequest } from './core/BaseHttpRequest';\nexport { CancelablePromise, CancelError } from './core/CancelablePromise';\nexport { OpenAPI } from './core/OpenAPI';\nexport type { OpenAPIConfig } from './core/OpenAPI';\n\nexport type { Action } from './models/Action';\nexport type { AuthorizationRequest } from './models/AuthorizationRequest';\nexport type { BulkResponse } from './models/BulkResponse';\nexport type { ConductorApplication } from './models/ConductorApplication';\nexport type { ConductorUser } from './models/ConductorUser';\nexport type { CreateOrUpdateApplicationRequest } from './models/CreateOrUpdateApplicationRequest';\nexport type { EventHandler } from './models/EventHandler';\nexport type { ExternalStorageLocation } from './models/ExternalStorageLocation';\nexport type { GenerateTokenRequest } from './models/GenerateTokenRequest';\nexport type { Group } from './models/Group';\nexport type { Permission } from './models/Permission';\nexport type { PollData } from './models/PollData';\nexport type { RerunWorkflowRequest } from './models/RerunWorkflowRequest';\nexport type { Response } from './models/Response';\nexport type { Role } from './models/Role';\nexport type { SaveScheduleRequest } from './models/SaveScheduleRequest';\nexport type { ScrollableSearchResultWorkflowSummary } from './models/ScrollableSearchResultWorkflowSummary';\nexport type { SearchResultTask } from './models/SearchResultTask';\nexport type { SearchResultTaskSummary } from './models/SearchResultTaskSummary';\nexport type { SearchResultWorkflow } from './models/SearchResultWorkflow';\nexport type { SearchResultWorkflowScheduleExecutionModel } from './models/SearchResultWorkflowScheduleExecutionModel';\nexport type { SearchResultWorkflowSummary } from './models/SearchResultWorkflowSummary';\nexport type { SkipTaskRequest } from './models/SkipTaskRequest';\nexport type { StartWorkflow } from './models/StartWorkflow';\nexport type { StartWorkflowRequest } from './models/StartWorkflowRequest';\nexport type { SubjectRef } from './models/SubjectRef';\nexport type { SubWorkflowParams } from './models/SubWorkflowParams';\nexport type { TagObject } from './models/TagObject';\nexport type { TagString } from './models/TagString';\nexport type { TargetRef } from './models/TargetRef';\nexport type { Task } from './models/Task';\nexport type { TaskDef } from './models/TaskDef';\nexport type { TaskDetails } from './models/TaskDetails';\nexport type { TaskExecLog } from './models/TaskExecLog';\nexport type { TaskResult } from './models/TaskResult';\nexport type { TaskSummary } from './models/TaskSummary';\nexport type { UpsertGroupRequest } from './models/UpsertGroupRequest';\nexport type { UpsertUserRequest } from './models/UpsertUserRequest';\nexport type { Workflow } from './models/Workflow';\nexport type { WorkflowDef } from './models/WorkflowDef';\nexport type { WorkflowSchedule } from './models/WorkflowSchedule';\nexport type { WorkflowScheduleExecutionModel } from './models/WorkflowScheduleExecutionModel';\nexport type { WorkflowStatus } from './models/WorkflowStatus';\nexport type { WorkflowSummary } from './models/WorkflowSummary';\nexport type { WorkflowTask } from './models/WorkflowTask';\n\nexport { AdminResourceService } from './services/AdminResourceService';\nexport { ApplicationResourceService } from './services/ApplicationResourceService';\nexport { AuthorizationResourceService } from './services/AuthorizationResourceService';\nexport { EventResourceService } from './services/EventResourceService';\nexport { GroupResourceService } from './services/GroupResourceService';\nexport { HealthCheckResourceService } from './services/HealthCheckResourceService';\nexport { MetadataResourceService } from './services/MetadataResourceService';\nexport { MigrationResourceService } from './services/MigrationResourceService';\nexport { PublisherConfigResourceService } from './services/PublisherConfigResourceService';\nexport { QueueAdminResourceService } from './services/QueueAdminResourceService';\nexport { SchedulerResourceService } from './services/SchedulerResourceService';\nexport { SecretResourceService } from './services/SecretResourceService';\nexport { TagsExperimentalService } from './services/TagsExperimentalService';\nexport { TaskResourceService } from './services/TaskResourceService';\nexport { TokenResourceService } from './services/TokenResourceService';\nexport { UserResourceService } from './services/UserResourceService';\nexport { VersionResourceService } from './services/VersionResourceService';\nexport { WorkflowBulkResourceService } from './services/WorkflowBulkResourceService';\nexport { WorkflowResourceService } from './services/WorkflowResourceService';\n","/* istanbul ignore file */\n/* tslint:disable */\n/* eslint-disable */\nimport type { ApiRequestOptions } from './ApiRequestOptions';\nimport type { CancelablePromise } from './CancelablePromise';\nimport type { OpenAPIConfig } from './OpenAPI';\n\nexport abstract class BaseHttpRequest {\n\n constructor(public readonly config: OpenAPIConfig) {}\n\n public abstract request<T>(options: ApiRequestOptions): CancelablePromise<T>;\n}\n","/* istanbul ignore file */\n/* tslint:disable */\n/* eslint-disable */\nimport type { ApiRequestOptions } from './ApiRequestOptions';\n\ntype Resolver<T> = (options: ApiRequestOptions) => Promise<T>;\ntype Headers = Record<string, string>;\n\nexport type OpenAPIConfig = {\n BASE: string;\n VERSION: string;\n WITH_CREDENTIALS: boolean;\n CREDENTIALS: 'include' | 'omit' | 'same-origin';\n TOKEN?: string | Resolver<string>;\n USERNAME?: string | Resolver<string>;\n PASSWORD?: string | Resolver<string>;\n HEADERS?: Headers | Resolver<Headers>;\n ENCODE_PATH?: (path: string) => string;\n};\n\nexport const OpenAPI: OpenAPIConfig = {\n BASE: 'http://localhost:8080',\n VERSION: '0',\n WITH_CREDENTIALS: false,\n CREDENTIALS: 'include',\n TOKEN: undefined,\n USERNAME: undefined,\n PASSWORD: undefined,\n HEADERS: undefined,\n ENCODE_PATH: undefined,\n};\n","import {Task, TaskResult} from \"../common/open-api\"\n\n/**\n * Functional interface for defining a worker implementation that processes tasks from a conductor queue.\n *\n * @remarks\n * Optional items allow overriding properties on a per-worker basis. Items not overridden\n * here will be inherited from the `TaskManager` options.\n */\nexport interface ConductorWorker {\n taskDefName: string\n execute: (task: Task) => Promise<Omit<TaskResult, \"workflowInstanceId\" | \"taskId\">>\n domain?: string\n /*\n Number of polling instances to run concurrently\n */\n concurrency?: number\n}\n","export * from \"./executor\";\nexport * from \"./types\";\n","import { ConductorClient, WorkflowDef } from \"../common\";\nimport { Workflow } from \"../common/open-api\";\nimport {\n StartWorkflowRequest,\n RerunWorkflowRequest,\n SkipTaskRequest,\n TaskResult,\n ConductorError,\n} from \"./types\";\n\nconst RETRY_TIME_IN_MILLISECONDS = 10000;\n\nconst errorMapper = (error: any): ConductorError =>\n new ConductorError(error?.body?.message, error);\n\nconst tryCatchReThrow = (fn: Function) => {\n try {\n return fn();\n } catch (error) {\n throw errorMapper(error);\n }\n};\n\nexport class WorkflowExecutor {\n public readonly _client: ConductorClient;\n\n constructor(client: ConductorClient) {\n this._client = client;\n }\n /**\n * Will persist a workflow in conductor\n * @param override If true will override the existing workflow with the definition\n * @param workflow Complete workflow definition\n * @returns null\n */\n\n public registerWorkflow(override: boolean, workflow: WorkflowDef) {\n return tryCatchReThrow(() =>\n this._client.metadataResource.create(workflow, override)\n );\n }\n /**\n * Takes a StartWorkflowRequest. returns a Promise<string> with the workflowInstanceId of the running workflow\n * @param workflowRequest\n * @returns\n */\n public startWorkflow(workflowRequest: StartWorkflowRequest): Promise<string> {\n return tryCatchReThrow(() =>\n this._client.workflowResource.startWorkflow(workflowRequest)\n );\n }\n\n public startWorkflows(\n workflowsRequest: StartWorkflowRequest[]\n ): Promise<string>[] {\n return tryCatchReThrow(() => workflowsRequest.map(this.startWorkflow));\n }\n /**\n * Takes an workflowInstanceId and an includeTasks and an optional retry parameter returns the whole execution status.\n * If includeTasks flag is provided. Details of tasks execution will be returned as well,\n * retry specifies the amount of retrys before throwing an error.\n *\n * @param workflowInstanceId\n * @param includeTasks\n * @param retry\n * @returns\n */\n public async getWorkflow(\n workflowInstanceId: string,\n includeTasks: boolean,\n retry: number = 0\n ): Promise<Workflow> {\n try {\n const workflowStatus =\n await this._client.workflowResource.getExecutionStatus(\n workflowInstanceId,\n includeTasks\n );\n return workflowStatus;\n } catch (error: any) {\n if (![500, 404, 403].includes(error.status) || retry === 0) {\n throw errorMapper(error);\n }\n }\n\n await new Promise((res) =>\n setTimeout(() => res(true), RETRY_TIME_IN_MILLISECONDS)\n );\n\n return this.getWorkflow(workflowInstanceId, includeTasks, retry - 1);\n }\n\n /**\n * Returns a summary of the current workflow status.\n *\n * @param workflowInstanceId current running workflow\n * @param includeOutput flag to include output\n * @param includeVariables flag to include variable\n * @returns Promise<WorkflowStatus>\n */\n public getWorkflowStatus(\n workflowInstanceId: string,\n includeOutput: boolean,\n includeVariables: boolean\n ) {\n return tryCatchReThrow(() =>\n this._client.workflowResource.getWorkflowStatusSummary(\n workflowInstanceId,\n includeOutput,\n includeVariables\n )\n );\n }\n\n /**\n * Pauses a running workflow\n * @param workflowInstanceId current workflow execution\n * @returns\n */\n public pause(workflowInstanceId: string) {\n return tryCatchReThrow(() =>\n this._client.workflowResource.pauseWorkflow(workflowInstanceId)\n );\n }\n /**\n * Reruns workflowInstanceId workflow. with new parameters\n *\n * @param workflowInstanceId current workflow execution\n * @param rerunWorkflowRequest Rerun Workflow Execution Request\n * @returns\n */\n public reRun(\n workflowInstanceId: string,\n rerunWorkflowRequest: Partial<RerunWorkflowRequest> = {}\n ) {\n return tryCatchReThrow(() =>\n this._client.workflowResource.rerun(workflowInstanceId, rerunWorkflowRequest)\n );\n }\n\n /**\n * Restarts workflow with workflowInstanceId, if useLatestDefinition uses last defintion\n * @param workflowInstanceId\n * @param useLatestDefinitions\n * @returns\n */\n public restart(workflowInstanceId: string, useLatestDefinitions: boolean) {\n return tryCatchReThrow(() =>\n this._client.workflowResource.restart1(workflowInstanceId, useLatestDefinitions)\n );\n }\n\n /**\n * Resumes a previously paused execution\n *\n * @param workflowInstanceId Running workflow workflowInstanceId\n * @returns\n */\n public resume(workflowInstanceId: string) {\n return tryCatchReThrow(() =>\n this._client.workflowResource.resumeWorkflow(workflowInstanceId)\n );\n }\n\n /**\n * Retrys workflow from last failing task\n * if resumeSubworkflowTasks is true will resume tasks in spawned subworkflows\n *\n * @param workflowInstanceId\n * @param resumeSubworkflowTasks\n * @returns\n */\n public retry(workflowInstanceId: string, resumeSubworkflowTasks: boolean) {\n return tryCatchReThrow(() =>\n this._client.workflowResource.retry1(workflowInstanceId, resumeSubworkflowTasks)\n );\n }\n /**\n * Searches for existing workflows given the following querys\n *\n * @param start\n * @param size\n * @param query\n * @param freeText\n * @param sort\n * @param skipCache\n * @returns\n */\n public search(\n start: number,\n size: number,\n query: string,\n freeText: string,\n sort: string = \"\",\n skipCache: boolean = false\n ) {\n const queryId = undefined;\n return tryCatchReThrow(() =>\n this._client.workflowResource.search1(\n queryId,\n start,\n size,\n sort,\n freeText,\n query,\n skipCache\n )\n );\n }\n /**\n * Skips a task of a running workflow.\n * by providing a skipTaskRequest you can set the input and the output of the skipped tasks\n * @param workflowInstanceId\n * @param taskReferenceName\n * @param skipTaskRequest\n * @returns\n */\n public skipTasksFromWorkflow(\n workflowInstanceId: string,\n taskReferenceName: string,\n skipTaskRequest: Partial<SkipTaskRequest>\n ) {\n return tryCatchReThrow(() =>\n this._client.workflowResource.skipTaskFromWorkflow(\n workflowInstanceId,\n taskReferenceName,\n skipTaskRequest\n )\n );\n }\n/**\n * Takes an workflowInstanceId, and terminates a running workflow\n * @param workflowInstanceId \n * @param reason \n * @returns \n */\n public terminate(workflowInstanceId: string, reason: string) {\n return tryCatchReThrow(() =>\n this._client.workflowResource.terminate1(workflowInstanceId, reason)\n );\n }\n\n /**\n * Takes a taskId and a workflowInstanceId. Will update the task for the corresponding taskId\n * @param taskId \n * @param workflowInstanceId \n * @param taskStatus \n * @param taskOutput \n * @returns \n */\n public updateTask(\n taskId: string,\n workflowInstanceId: string,\n taskStatus: TaskResult,\n taskOutput: Record<string, any> // TODO this can be typed.\n ) {\n const taskUpdates = {\n status: taskStatus,\n taskId,\n workflowInstanceId,\n };\n return tryCatchReThrow(() =>\n this._client.taskResource.updateTask1({\n ...taskOutput,\n ...taskUpdates,\n })\n );\n }\n/**\n * Updates a task by reference Name\n * @param taskReferenceName \n * @param workflowInstanceId \n * @param status \n * @param taskOutput \n * @returns \n */\n public updateTaskByRefName(\n taskReferenceName: string,\n workflowInstanceId: string,\n status: TaskResult,\n taskOutput: Record<string, any>\n ) {\n return tryCatchReThrow(() =>\n this._client.taskResource.updateTask(\n workflowInstanceId,\n taskReferenceName,\n status,\n taskOutput\n )\n );\n }\n}\n","import { WorkflowDef } from \"../common\";\n\nexport interface StartWorkflowRequest<I = Record<string, any>> {\n name: string;\n version: number;\n correlationId?: string;\n input?: I;\n taskToDomain?: Record<string, string>;\n workflowDef?: WorkflowDef;\n externalInputPayloadStoragePath?: string;\n priority?: number;\n}\n\nexport interface RerunWorkflowRequest<I = Record<string, any>> {\n workflowInput: I;\n rerunFromTaskId?: string;\n taskInput: Record<string, any>;\n correlationId: string;\n}\n\nexport interface SkipTaskRequest {\n taskInput: Record<string, any>;\n taskOutput: Record<string, any>;\n}\n\nexport class ConductorError extends Error {\n private _trace;\n private __proto__: any;\n\n constructor(message?: string, innerError?: Error) {\n super(message);\n this._trace = innerError;\n const actualProto = new.target.prototype;\n\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(this, actualProto);\n } else {\n this.__proto__ = actualProto;\n }\n }\n}\n\nexport enum TaskResult {\n IN_PROGRESS = \"IN_PROGRESS\",\n FAILED = \"FAILED\",\n FAILED_WITH_TERMINAL_ERROR = \"FAILED_WITH_TERMINAL_ERROR\",\n COMPLETED = \"COMPLETED\",\n}\n"],"mappings":"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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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","names":[]}
1
+ {"version":3,"sources":["../src/task/TaskRunner.ts","../src/task/TaskManager.ts","../src/common/ConductorLogger.ts","../src/common/open-api/core/CancelablePromise.ts","../src/common/open-api/services/AdminResourceService.ts","../src/common/open-api/services/ApplicationResourceService.ts","../src/common/open-api/services/AuthorizationResourceService.ts","../src/common/open-api/services/EventResourceService.ts","../src/common/open-api/services/GroupResourceService.ts","../src/common/open-api/services/HealthCheckResourceService.ts","../src/common/open-api/services/MetadataResourceService.ts","../src/common/open-api/services/MigrationResourceService.ts","../src/common/open-api/services/PublisherConfigResourceService.ts","../src/common/open-api/services/QueueAdminResourceService.ts","../src/common/open-api/services/SchedulerResourceService.ts","../src/common/open-api/services/SecretResourceService.ts","../src/common/open-api/services/TagsExperimentalService.ts","../src/common/open-api/services/TaskResourceService.ts","../src/common/open-api/services/TokenResourceService.ts","../src/common/open-api/services/UserResourceService.ts","../src/common/open-api/services/VersionResourceService.ts","../src/common/open-api/services/WorkflowBulkResourceService.ts","../src/common/open-api/services/WorkflowResourceService.ts","../src/common/open-api/core/ApiError.ts","../src/common/open-api/core/request.ts","../src/common/open-api/ConductorClient.ts","../src/common/orkes/OrkesConductorClient.ts","../src/common/types.ts","../src/common/generators/common.ts","../src/common/generators/SimpleTask.ts","../src/common/generators/DoWhileTask.ts","../src/common/generators/EventTask.ts","../src/common/generators/ForkJoin.ts","../src/common/generators/HttpTask.ts","../src/common/generators/InlineTask.ts","../src/common/generators/JsonJQTransform.ts","../src/common/generators/KafkaTask.ts","../src/common/generators/SubWorkflowTask.ts","../src/common/generators/SetVariableTask.ts","../src/common/generators/TerminateTask.ts","../src/common/generators/WaitTask.ts","../src/common/generators/SwitchTask.ts","../src/common/generators/WorkflowGenerator.ts","../src/common/generators/ForkJoinDynamicTask.ts","../src/common/generators/generator.ts","../src/common/generators/index.ts","../src/common/sdk/doWhile.ts","../src/common/sdk/dynamicFork.ts","../src/common/sdk/event.ts","../src/common/sdk/forkJoin.ts","../src/common/sdk/http.ts","../src/common/sdk/inline.ts","../src/common/sdk/join.ts","../src/common/sdk/jsonJq.ts","../src/common/sdk/kafkaPublish.ts","../src/common/sdk/setVariable.ts","../src/common/sdk/simple.ts","../src/common/sdk/subWorkflow.ts","../src/common/sdk/switch.ts","../src/common/sdk/terminate.ts","../src/common/sdk/wait.ts","../src/common/sdk/workflow.ts","../src/core/types.ts","../src/core/executor.ts"],"sourcesContent":["import { ConductorLogger } from \"../common\";\nimport { ConductorWorker } from \"./Worker\";\nimport { Task, TaskResourceService } from \"../common/open-api\";\nimport { TaskManagerOptions } from \"./TaskManager\";\n\nconst DEFAULT_ERROR_MESSAGE = \"An unknown error occurred\";\n\nexport interface RunnerArgs {\n worker: ConductorWorker;\n taskResource: TaskResourceService;\n options: Required<TaskManagerOptions>;\n logger?: ConductorLogger;\n}\nconst noopLogger: ConductorLogger = {\n //eslint-disable-next-line\n debug: (...args: any) => {},\n //eslint-disable-next-line\n info: (...args: any) => {},\n //eslint-disable-next-line\n error: (...args: any) => {},\n};\n\n/**\n * Responsible for polling and executing tasks from a queue.\n *\n * Because a `poll` in conductor \"pops\" a task off of a conductor queue,\n * each runner participates in the poll -> work -> update loop.\n * We could potentially split this work into a separate \"poller\" and \"worker\" pools\n * but that could lead to picking up more work than the pool of workers are actually able to handle.\n *\n */\nexport class TaskRunner {\n isPolling = false;\n taskResource: TaskResourceService;\n worker: ConductorWorker;\n logger: ConductorLogger;\n options: Required<TaskManagerOptions>;\n\n constructor({\n worker,\n taskResource,\n options,\n logger = noopLogger,\n }: RunnerArgs) {\n this.taskResource = taskResource;\n this.logger = logger;\n this.worker = worker;\n this.options = options;\n }\n\n startPolling = () => {\n if (this.isPolling) {\n throw new Error(\"Runner is already started\");\n }\n\n this.isPolling = true;\n return this.poll();\n };\n\n stopPolling = () => {\n this.isPolling = false;\n };\n\n poll = async () => {\n while (this.isPolling) {\n try {\n const { workerID } = this.options;\n const task = await this.taskResource.poll(\n this.worker.taskDefName,\n workerID,\n this.options.domain\n );\n if (task && task.taskId) {\n await this.executeTask(task);\n } else {\n this.logger.debug(`No tasks for ${this.worker.taskDefName}`);\n }\n } catch (unknownError: unknown) {\n this.handleUnknownError(unknownError);\n }\n\n await new Promise((r) => setTimeout(() => r(true), this.options.pollInterval));\n }\n };\n\n executeTask = async (task: Task) => {\n try {\n const result = await this.worker.execute(task);\n await this.taskResource.updateTask1({\n ...result,\n workflowInstanceId: task.workflowInstanceId!,\n taskId: task.taskId!,\n });\n this.logger.debug(`Finished polling for task ${task.taskId}`);\n } catch (error: unknown) {\n this.logger.error(`Error executing ${task.taskId}`, error);\n await this.taskResource.updateTask1({\n workflowInstanceId: task.workflowInstanceId!,\n taskId: task.taskId!,\n reasonForIncompletion:\n (error as Record<string, string>)?.message ?? DEFAULT_ERROR_MESSAGE,\n status: \"FAILED\",\n outputData: {},\n });\n }\n };\n\n handleUnknownError = (unknownError: unknown) => {\n let message = \"\";\n let stack: string | undefined = \"\";\n if ((unknownError as Error).stack) {\n stack = (unknownError as Error).stack;\n }\n if ((unknownError as Error).message) {\n message = (unknownError as Error).message;\n }\n this.logger.error(\n `Error for ${this.worker.taskDefName}: error: ${message}, stack: ${stack}`\n );\n };\n}\n","import os from \"os\"\nimport {TaskRunner} from \"./TaskRunner\"\nimport {ConductorLogger, DefaultLogger} from \"../common\"\nimport {ConductorWorker} from \"./Worker\"\nimport {ConductorClient} from \"../common/open-api\"\n\nexport interface TaskManagerOptions {\n workerID: string\n domain: string | undefined\n pollInterval?: number,\n concurrency?: number\n}\n\nexport interface TaskManagerConfig {\n logger?: ConductorLogger\n options?: Partial<TaskManagerOptions>\n}\n\nconst defaultManagerOptions: Required<TaskManagerOptions> = {\n workerID: '',\n pollInterval: 1000,\n domain: undefined,\n concurrency: 1\n}\n\nfunction workerId (options: Partial<TaskManagerOptions>) {\n return options.workerID ?? os.hostname()\n}\n\n/**\n * Responsible for initializing and managing the runners that poll and work different task queues.\n */\nexport class TaskManager {\n private tasks: Record<string, Array<TaskRunner>> = {}\n private readonly client: ConductorClient\n private readonly logger: ConductorLogger\n private workers: Array<ConductorWorker>\n private readonly taskManageOptions: Required<TaskManagerOptions>\n\n constructor(client: ConductorClient, workers: Array<ConductorWorker>, config: TaskManagerConfig = {}) {\n if (!workers) { throw new Error(\"No workers supplied to TaskManager. Please pass an array of workers.\") }\n this.client = client\n this.logger = config.logger ?? new DefaultLogger()\n this.workers = workers\n const providedOptions = config.options ?? {}\n this.taskManageOptions = {\n ...defaultManagerOptions,\n ...providedOptions,\n workerID: workerId(providedOptions),\n }\n }\n\n startPolling = () => {\n this.workers.forEach(worker => {\n this.tasks[worker.taskDefName] = []\n const options = {\n ...this.taskManageOptions,\n concurrency: worker.concurrency ?? this.taskManageOptions.concurrency,\n domain: worker.domain ?? this.taskManageOptions.domain\n }\n this.logger.debug(`Starting taskDefName=${worker.taskDefName} concurrency=${options.concurrency} domain=${options.domain}`)\n for (let i = 0; i < options.concurrency; i++) {\n const runner = new TaskRunner({\n worker,\n options,\n taskResource: this.client.taskResource,\n logger: this.logger\n })\n // TODO(@ntomlin): right now we aren't handling these promises\n // which will inevitably lead to chaos\n runner.startPolling()\n this.tasks[worker.taskDefName].push(runner)\n }\n })\n }\n\n stopPolling = () => {\n for (const taskType in this.tasks) {\n this.tasks[taskType].forEach(runner => runner.stopPolling())\n this.tasks[taskType] = []\n }\n }\n}\n","export interface ConductorLogger {\n info(...args: any): void\n error(...args: any): void\n debug(...args: any): void\n}\n\nexport type ConductorLogLevel = keyof typeof LOG_LEVELS\nexport interface DefaultLoggerConfig {\n level?: ConductorLogLevel,\n tags?: Object[]\n}\n\nconst LOG_LEVELS = {\n DEBUG: 10,\n INFO: 30,\n ERROR: 60\n} as const\n\n\n/*\nThis provides an easy way to get up and running without worrying about configuring a logging framework.\nIdeally, users that care can easily override with any compatible logger (e.g. pino, etc)\n */\nexport class DefaultLogger implements ConductorLogger {\n private readonly tags: Object[]\n private readonly level: number\n\n constructor(config: DefaultLoggerConfig = {}) {\n const {level, tags = []} = config\n this.tags = tags\n if (level && level in LOG_LEVELS) {\n this.level = LOG_LEVELS[level]\n } else {\n this.level = LOG_LEVELS.INFO\n }\n }\n\n private log (level: ConductorLogLevel, ...args: any) {\n let resolvedLevel: number\n let name = level\n if (level in LOG_LEVELS) {\n resolvedLevel = LOG_LEVELS[level]\n } else {\n name = \"INFO\"\n resolvedLevel = LOG_LEVELS.INFO\n }\n if (resolvedLevel >= this.level) {\n console.log(name, ...this.tags, ...args)\n }\n }\n\n info = (...args: any): void => {\n this.log(\"INFO\", ...args)\n }\n\n debug = (...args: any): void => {\n this.log(\"DEBUG\", ...args)\n }\n\n error =(...args: any): void => {\n this.log(\"ERROR\", ...args)\n }\n}\n","/* istanbul ignore file */\n/* tslint:disable */\n/* eslint-disable */\nexport class CancelError extends Error {\n\n constructor(message: string) {\n super(message);\n this.name = 'CancelError';\n }\n\n public get isCancelled(): boolean {\n return true;\n }\n}\n\nexport interface OnCancel {\n readonly isResolved: boolean;\n readonly isRejected: boolean;\n readonly isCancelled: boolean;\n\n (cancelHandler: () => void): void;\n}\n\nexport class CancelablePromise<T> implements Promise<T> {\n readonly [Symbol.toStringTag]!: string;\n\n private _isResolved: boolean;\n private _isRejected: boolean;\n private _isCancelled: boolean;\n private readonly _cancelHandlers: (() => void)[];\n private readonly _promise: Promise<T>;\n private _resolve?: (value: T | PromiseLike<T>) => void;\n private _reject?: (reason?: any) => void;\n\n constructor(\n executor: (\n resolve: (value: T | PromiseLike<T>) => void,\n reject: (reason?: any) => void,\n onCancel: OnCancel\n ) => void\n ) {\n this._isResolved = false;\n this._isRejected = false;\n this._isCancelled = false;\n this._cancelHandlers = [];\n this._promise = new Promise<T>((resolve, reject) => {\n this._resolve = resolve;\n this._reject = reject;\n\n const onResolve = (value: T | PromiseLike<T>): void => {\n if (this._isResolved || this._isRejected || this._isCancelled) {\n return;\n }\n this._isResolved = true;\n this._resolve?.(value);\n };\n\n const onReject = (reason?: any): void => {\n if (this._isResolved || this._isRejected || this._isCancelled) {\n return;\n }\n this._isRejected = true;\n this._reject?.(reason);\n };\n\n const onCancel = (cancelHandler: () => void): void => {\n if (this._isResolved || this._isRejected || this._isCancelled) {\n return;\n }\n this._cancelHandlers.push(cancelHandler);\n };\n\n Object.defineProperty(onCancel, 'isResolved', {\n get: (): boolean => this._isResolved,\n });\n\n Object.defineProperty(onCancel, 'isRejected', {\n get: (): boolean => this._isRejected,\n });\n\n Object.defineProperty(onCancel, 'isCancelled', {\n get: (): boolean => this._isCancelled,\n });\n\n return executor(onResolve, onReject, onCancel as OnCancel);\n });\n }\n\n public then<TResult1 = T, TResult2 = never>(\n onFulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | null,\n onRejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | null\n ): Promise<TResult1 | TResult2> {\n return this._promise.then(onFulfilled, onRejected);\n }\n\n public catch<TResult = never>(\n onRejected?: ((reason: any) => TResult | PromiseLike<TResult>) | null\n ): Promise<T | TResult> {\n return this._promise.catch(onRejected);\n }\n\n public finally(onFinally?: (() => void) | null): Promise<T> {\n return this._promise.finally(onFinally);\n }\n\n public cancel(): void {\n if (this._isResolved || this._isRejected || this._isCancelled) {\n return;\n }\n this._isCancelled = true;\n if (this._cancelHandlers.length) {\n try {\n for (const cancelHandler of this._cancelHandlers) {\n cancelHandler();\n }\n } catch (error) {\n console.warn('Cancellation threw an error', error);\n return;\n }\n }\n this._cancelHandlers.length = 0;\n this._reject?.(new CancelError('Request aborted'));\n }\n\n public get isCancelled(): boolean {\n return this._isCancelled;\n }\n}\n","/* istanbul ignore file */\n/* tslint:disable */\n/* eslint-disable */\nimport type { Task } from '../models/Task';\n\nimport type { CancelablePromise } from '../core/CancelablePromise';\nimport type { BaseHttpRequest } from '../core/BaseHttpRequest';\n\nexport class AdminResourceService {\n\n constructor(public readonly httpRequest: BaseHttpRequest) {}\n\n /**\n * Verify and repair workflow consistency\n * @param workflowId\n * @returns string OK\n * @throws ApiError\n */\n public verifyAndRepairWorkflowConsistency(\n workflowId: string,\n ): CancelablePromise<string> {\n return this.httpRequest.request({\n method: 'POST',\n url: '/admin/consistency/verifyAndRepair/{workflowId}',\n path: {\n 'workflowId': workflowId,\n },\n });\n }\n\n /**\n * Get details of redis usage\n * @returns any OK\n * @throws ApiError\n */\n public getRedisUsage(): CancelablePromise<Record<string, any>> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/admin/redisUsage',\n });\n }\n\n /**\n * Get the list of pending tasks for a given task type\n * @param tasktype\n * @param start\n * @param count\n * @returns Task OK\n * @throws ApiError\n */\n public view(\n tasktype: string,\n start?: number,\n count: number = 100,\n ): CancelablePromise<Array<Task>> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/admin/task/{tasktype}',\n path: {\n 'tasktype': tasktype,\n },\n query: {\n 'start': start,\n 'count': count,\n },\n });\n }\n\n /**\n * Queue up all the running workflows for sweep\n * @param workflowId\n * @returns string OK\n * @throws ApiError\n */\n public requeueSweep(\n workflowId: string,\n ): CancelablePromise<string> {\n return this.httpRequest.request({\n method: 'POST',\n url: '/admin/sweep/requeue/{workflowId}',\n path: {\n 'workflowId': workflowId,\n },\n });\n }\n\n /**\n * Get registered queues\n * @param verbose\n * @returns any OK\n * @throws ApiError\n */\n public getEventQueues(\n verbose: boolean = false,\n ): CancelablePromise<Record<string, any>> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/admin/queues',\n query: {\n 'verbose': verbose,\n },\n });\n }\n\n}\n","/* istanbul ignore file */\n/* tslint:disable */\n/* eslint-disable */\nimport type { ConductorApplication } from '../models/ConductorApplication';\nimport type { CreateOrUpdateApplicationRequest } from '../models/CreateOrUpdateApplicationRequest';\n\nimport type { CancelablePromise } from '../core/CancelablePromise';\nimport type { BaseHttpRequest } from '../core/BaseHttpRequest';\n\nexport class ApplicationResourceService {\n\n constructor(public readonly httpRequest: BaseHttpRequest) {}\n\n /**\n * Get an application by id\n * @param id\n * @returns any OK\n * @throws ApiError\n */\n public getApplication(\n id: string,\n ): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/applications/{id}',\n path: {\n 'id': id,\n },\n });\n }\n\n /**\n * Update an application\n * @param id\n * @param requestBody\n * @returns any OK\n * @throws ApiError\n */\n public updateApplication(\n id: string,\n requestBody: CreateOrUpdateApplicationRequest,\n ): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'PUT',\n url: '/applications/{id}',\n path: {\n 'id': id,\n },\n body: requestBody,\n mediaType: 'application/json',\n });\n }\n\n /**\n * Delete an application\n * @param id\n * @returns any OK\n * @throws ApiError\n */\n public deleteApplication(\n id: string,\n ): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'DELETE',\n url: '/applications/{id}',\n path: {\n 'id': id,\n },\n });\n }\n\n /**\n * Get application's access keys\n * @param id\n * @returns any OK\n * @throws ApiError\n */\n public getAccessKeys(\n id: string,\n ): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/applications/{id}/accessKeys',\n path: {\n 'id': id,\n },\n });\n }\n\n /**\n * Create an access key for an application\n * @param id\n * @returns any OK\n * @throws ApiError\n */\n public createAccessKey(\n id: string,\n ): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'POST',\n url: '/applications/{id}/accessKeys',\n path: {\n 'id': id,\n },\n });\n }\n\n /**\n * @param applicationId\n * @param role\n * @returns any OK\n * @throws ApiError\n */\n public addRoleToApplicationUser(\n applicationId: string,\n role: string,\n ): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'POST',\n url: '/applications/{applicationId}/roles/{role}',\n path: {\n 'applicationId': applicationId,\n 'role': role,\n },\n });\n }\n\n /**\n * @param applicationId\n * @param role\n * @returns any OK\n * @throws ApiError\n */\n public removeRoleFromApplicationUser(\n applicationId: string,\n role: string,\n ): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'DELETE',\n url: '/applications/{applicationId}/roles/{role}',\n path: {\n 'applicationId': applicationId,\n 'role': role,\n },\n });\n }\n\n /**\n * Toggle the status of an access key\n * @param applicationId\n * @param keyId\n * @returns any OK\n * @throws ApiError\n */\n public toggleAccessKeyStatus(\n applicationId: string,\n keyId: string,\n ): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'POST',\n url: '/applications/{applicationId}/accessKeys/{keyId}/status',\n path: {\n 'applicationId': applicationId,\n 'keyId': keyId,\n },\n });\n }\n\n /**\n * Get all applications\n * @returns ConductorApplication OK\n * @throws ApiError\n */\n public listApplications(): CancelablePromise<Array<ConductorApplication>> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/applications',\n });\n }\n\n /**\n * Create an application\n * @param requestBody\n * @returns any OK\n * @throws ApiError\n */\n public createApplication(\n requestBody: CreateOrUpdateApplicationRequest,\n ): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'POST',\n url: '/applications',\n body: requestBody,\n mediaType: 'application/json',\n });\n }\n\n /**\n * Delete an access key\n * @param applicationId\n * @param keyId\n * @returns any OK\n * @throws ApiError\n */\n public deleteAccessKey(\n applicationId: string,\n keyId: string,\n ): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'DELETE',\n url: '/applications/{applicationId}/accessKeys/{keyId}',\n path: {\n 'applicationId': applicationId,\n 'keyId': keyId,\n },\n });\n }\n\n}\n","/* istanbul ignore file */\n/* tslint:disable */\n/* eslint-disable */\nimport type { AuthorizationRequest } from '../models/AuthorizationRequest';\nimport type { Response } from '../models/Response';\n\nimport type { CancelablePromise } from '../core/CancelablePromise';\nimport type { BaseHttpRequest } from '../core/BaseHttpRequest';\n\nexport class AuthorizationResourceService {\n\n constructor(public readonly httpRequest: BaseHttpRequest) {}\n\n /**\n * Grant access to a user over the target\n * @param requestBody\n * @returns Response OK\n * @throws ApiError\n */\n public grantPermissions(\n requestBody: AuthorizationRequest,\n ): CancelablePromise<Response> {\n return this.httpRequest.request({\n method: 'POST',\n url: '/auth/authorization',\n body: requestBody,\n mediaType: 'application/json',\n });\n }\n\n /**\n * Remove user's access over the target\n * @param requestBody\n * @returns Response OK\n * @throws ApiError\n */\n public removePermissions(\n requestBody: AuthorizationRequest,\n ): CancelablePromise<Response> {\n return this.httpRequest.request({\n method: 'DELETE',\n url: '/auth/authorization',\n body: requestBody,\n mediaType: 'application/json',\n });\n }\n\n /**\n * Get the access that have been granted over the given object\n * @param type\n * @param id\n * @returns any OK\n * @throws ApiError\n */\n public getPermissions(\n type: string,\n id: string,\n ): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/auth/authorization/{type}/{id}',\n path: {\n 'type': type,\n 'id': id,\n },\n });\n }\n\n}\n","/* istanbul ignore file */\n/* tslint:disable */\n/* eslint-disable */\nimport type { EventHandler } from '../models/EventHandler';\n\nimport type { CancelablePromise } from '../core/CancelablePromise';\nimport type { BaseHttpRequest } from '../core/BaseHttpRequest';\n\nexport class EventResourceService {\n\n constructor(public readonly httpRequest: BaseHttpRequest) {}\n\n /**\n * Get queue config by name\n * @param queueType\n * @param queueName\n * @returns any OK\n * @throws ApiError\n */\n public getQueueConfig(\n queueType: string,\n queueName: string,\n ): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/event/queue/config/{queueType}/{queueName}',\n path: {\n 'queueType': queueType,\n 'queueName': queueName,\n },\n });\n }\n\n /**\n * Create or update queue config by name\n * @param queueType\n * @param queueName\n * @param requestBody\n * @returns any OK\n * @throws ApiError\n */\n public putQueueConfig(\n queueType: string,\n queueName: string,\n requestBody: string,\n ): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'PUT',\n url: '/event/queue/config/{queueType}/{queueName}',\n path: {\n 'queueType': queueType,\n 'queueName': queueName,\n },\n body: requestBody,\n mediaType: 'application/json',\n });\n }\n\n /**\n * Delete queue config by name\n * @param queueType\n * @param queueName\n * @returns any OK\n * @throws ApiError\n */\n public deleteQueueConfig(\n queueType: string,\n queueName: string,\n ): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'DELETE',\n url: '/event/queue/config/{queueType}/{queueName}',\n path: {\n 'queueType': queueType,\n 'queueName': queueName,\n },\n });\n }\n\n /**\n * Get all the event handlers\n * @returns EventHandler OK\n * @throws ApiError\n */\n public getEventHandlers(): CancelablePromise<Array<EventHandler>> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/event',\n });\n }\n\n /**\n * Update an existing event handler.\n * @param requestBody\n * @returns any OK\n * @throws ApiError\n */\n public updateEventHandler(\n requestBody: EventHandler,\n ): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'PUT',\n url: '/event',\n body: requestBody,\n mediaType: 'application/json',\n });\n }\n\n /**\n * Add a new event handler.\n * @param requestBody\n * @returns any OK\n * @throws ApiError\n */\n public addEventHandler(\n requestBody: EventHandler,\n ): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'POST',\n url: '/event',\n body: requestBody,\n mediaType: 'application/json',\n });\n }\n\n /**\n * Get all queue configs\n * @returns any OK\n * @throws ApiError\n */\n public getQueueNames(): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/event/queue/config',\n });\n }\n\n /**\n * Remove an event handler\n * @param name\n * @returns any OK\n * @throws ApiError\n */\n public removeEventHandlerStatus(\n name: string,\n ): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'DELETE',\n url: '/event/{name}',\n path: {\n 'name': name,\n },\n });\n }\n\n /**\n * Get event handlers for a given event\n * @param event\n * @param activeOnly\n * @returns EventHandler OK\n * @throws ApiError\n */\n public getEventHandlersForEvent(\n event: string,\n activeOnly: boolean = true,\n ): CancelablePromise<Array<EventHandler>> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/event/{event}',\n path: {\n 'event': event,\n },\n query: {\n 'activeOnly': activeOnly,\n },\n });\n }\n\n}\n","/* istanbul ignore file */\n/* tslint:disable */\n/* eslint-disable */\nimport type { Group } from '../models/Group';\nimport type { Response } from '../models/Response';\nimport type { UpsertGroupRequest } from '../models/UpsertGroupRequest';\n\nimport type { CancelablePromise } from '../core/CancelablePromise';\nimport type { BaseHttpRequest } from '../core/BaseHttpRequest';\n\nexport class GroupResourceService {\n\n constructor(public readonly httpRequest: BaseHttpRequest) {}\n\n /**\n * Add user to group\n * @param groupId\n * @param userId\n * @returns any OK\n * @throws ApiError\n */\n public addUserToGroup(\n groupId: string,\n userId: string,\n ): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'POST',\n url: '/groups/{groupId}/users/{userId}',\n path: {\n 'groupId': groupId,\n 'userId': userId,\n },\n });\n }\n\n /**\n * Remove user from group\n * @param groupId\n * @param userId\n * @returns any OK\n * @throws ApiError\n */\n public removeUserFromGroup(\n groupId: string,\n userId: string,\n ): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'DELETE',\n url: '/groups/{groupId}/users/{userId}',\n path: {\n 'groupId': groupId,\n 'userId': userId,\n },\n });\n }\n\n /**\n * Get a group by id\n * @param id\n * @returns any OK\n * @throws ApiError\n */\n public getGroup(\n id: string,\n ): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/groups/{id}',\n path: {\n 'id': id,\n },\n });\n }\n\n /**\n * Create or update a group\n * @param id\n * @param requestBody\n * @returns any OK\n * @throws ApiError\n */\n public upsertGroup(\n id: string,\n requestBody: UpsertGroupRequest,\n ): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'PUT',\n url: '/groups/{id}',\n path: {\n 'id': id,\n },\n body: requestBody,\n mediaType: 'application/json',\n });\n }\n\n /**\n * Delete a group\n * @param id\n * @returns Response OK\n * @throws ApiError\n */\n public deleteGroup(\n id: string,\n ): CancelablePromise<Response> {\n return this.httpRequest.request({\n method: 'DELETE',\n url: '/groups/{id}',\n path: {\n 'id': id,\n },\n });\n }\n\n /**\n * Get the permissions this group has over workflows and tasks\n * @param groupId\n * @returns any OK\n * @throws ApiError\n */\n public getGrantedPermissions(\n groupId: string,\n ): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/groups/{groupId}/permissions',\n path: {\n 'groupId': groupId,\n },\n });\n }\n\n /**\n * Get all users in group\n * @param id\n * @returns any OK\n * @throws ApiError\n */\n public getUsersInGroup(\n id: string,\n ): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/groups/{id}/users',\n path: {\n 'id': id,\n },\n });\n }\n\n /**\n * Get all groups\n * @returns Group OK\n * @throws ApiError\n */\n public listGroups(): CancelablePromise<Array<Group>> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/groups',\n });\n }\n\n}\n","/* istanbul ignore file */\n/* tslint:disable */\n/* eslint-disable */\nimport type { CancelablePromise } from '../core/CancelablePromise';\nimport type { BaseHttpRequest } from '../core/BaseHttpRequest';\n\nexport class HealthCheckResourceService {\n\n constructor(public readonly httpRequest: BaseHttpRequest) {}\n\n /**\n * @returns any OK\n * @throws ApiError\n */\n public doCheck(): CancelablePromise<Record<string, any>> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/health',\n });\n }\n\n}\n","/* istanbul ignore file */\n/* tslint:disable */\n/* eslint-disable */\nimport type { TaskDef } from '../models/TaskDef';\nimport type { WorkflowDef } from '../models/WorkflowDef';\n\nimport type { CancelablePromise } from '../core/CancelablePromise';\nimport type { BaseHttpRequest } from '../core/BaseHttpRequest';\n\nexport class MetadataResourceService {\n\n constructor(public readonly httpRequest: BaseHttpRequest) {}\n\n /**\n * Gets the task definition\n * @param tasktype\n * @param metadata\n * @returns TaskDef OK\n * @throws ApiError\n */\n public getTaskDef(\n tasktype: string,\n metadata: boolean = false,\n ): CancelablePromise<TaskDef> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/metadata/taskdefs/{tasktype}',\n path: {\n 'tasktype': tasktype,\n },\n query: {\n 'metadata': metadata,\n },\n });\n }\n\n /**\n * Remove a task definition\n * @param tasktype\n * @returns any OK\n * @throws ApiError\n */\n public unregisterTaskDef(\n tasktype: string,\n ): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'DELETE',\n url: '/metadata/taskdefs/{tasktype}',\n path: {\n 'tasktype': tasktype,\n },\n });\n }\n\n /**\n * Retrieves all workflow definition along with blueprint\n * @param access\n * @param metadata\n * @param tagKey\n * @param tagValue\n * @returns WorkflowDef OK\n * @throws ApiError\n */\n public getAllWorkflows(\n access: string = 'READ',\n metadata: boolean = false,\n tagKey?: string,\n tagValue?: string,\n ): CancelablePromise<Array<WorkflowDef>> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/metadata/workflow',\n query: {\n 'access': access,\n 'metadata': metadata,\n 'tagKey': tagKey,\n 'tagValue': tagValue,\n },\n });\n }\n\n /**\n * Create or update workflow definition(s)\n * @param requestBody\n * @param overwrite\n * @returns any OK\n * @throws ApiError\n */\n public update(\n requestBody: Array<WorkflowDef>,\n overwrite: boolean = true,\n ): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'PUT',\n url: '/metadata/workflow',\n query: {\n 'overwrite': overwrite,\n },\n body: requestBody,\n mediaType: 'application/json',\n });\n }\n\n /**\n * Create a new workflow definition\n * @param requestBody\n * @param overwrite\n * @returns any OK\n * @throws ApiError\n */\n public create(\n requestBody: WorkflowDef,\n overwrite: boolean = false,\n ): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'POST',\n url: '/metadata/workflow',\n query: {\n 'overwrite': overwrite,\n },\n body: requestBody,\n mediaType: 'application/json',\n });\n }\n\n /**\n * Gets all task definition\n * @param access\n * @param metadata\n * @param tagKey\n * @param tagValue\n * @returns TaskDef OK\n * @throws ApiError\n */\n public getTaskDefs(\n access: string = 'READ',\n metadata: boolean = false,\n tagKey?: string,\n tagValue?: string,\n ): CancelablePromise<Array<TaskDef>> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/metadata/taskdefs',\n query: {\n 'access': access,\n 'metadata': metadata,\n 'tagKey': tagKey,\n 'tagValue': tagValue,\n },\n });\n }\n\n /**\n * Update an existing task\n * @param requestBody\n * @returns any OK\n * @throws ApiError\n */\n public updateTaskDef(\n requestBody: TaskDef,\n ): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'PUT',\n url: '/metadata/taskdefs',\n body: requestBody,\n mediaType: 'application/json',\n });\n }\n\n /**\n * Create or update task definition(s)\n * @param requestBody\n * @returns any OK\n * @throws ApiError\n */\n public registerTaskDef(\n requestBody: Array<TaskDef>,\n ): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'POST',\n url: '/metadata/taskdefs',\n body: requestBody,\n mediaType: 'application/json',\n });\n }\n\n /**\n * Removes workflow definition. It does not remove workflows associated with the definition.\n * @param name\n * @param version\n * @returns any OK\n * @throws ApiError\n */\n public unregisterWorkflowDef(\n name: string,\n version: number,\n ): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'DELETE',\n url: '/metadata/workflow/{name}/{version}',\n path: {\n 'name': name,\n 'version': version,\n },\n });\n }\n\n /**\n * Retrieves workflow definition along with blueprint\n * @param name\n * @param version\n * @param metadata\n * @returns WorkflowDef OK\n * @throws ApiError\n */\n public get(\n name: string,\n version?: number,\n metadata: boolean = false,\n ): CancelablePromise<WorkflowDef> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/metadata/workflow/{name}',\n path: {\n 'name': name,\n },\n query: {\n 'version': version,\n 'metadata': metadata,\n },\n });\n }\n\n}\n","/* istanbul ignore file */\n/* tslint:disable */\n/* eslint-disable */\nimport type { CancelablePromise } from '../core/CancelablePromise';\nimport type { BaseHttpRequest } from '../core/BaseHttpRequest';\n\nexport class MigrationResourceService {\n\n constructor(public readonly httpRequest: BaseHttpRequest) {}\n\n /**\n * Migrate workflows from Redis to Postgres\n * @param batchSize\n * @param startFromTimestamp\n * @returns any OK\n * @throws ApiError\n */\n public migrateWorkflows(\n batchSize: number,\n startFromTimestamp: number,\n ): CancelablePromise<Record<string, any>> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/admin/migrate_workflow',\n query: {\n 'batchSize': batchSize,\n 'startFromTimestamp': startFromTimestamp,\n },\n });\n }\n\n /**\n * Migrate Workflow Index t o the sharded table\n * @returns number OK\n * @throws ApiError\n */\n public migrateIndex(): CancelablePromise<number> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/admin/migrate_index',\n });\n }\n\n /**\n * Migrate Workflow and Task Definitions to Postgres\n * @returns any OK\n * @throws ApiError\n */\n public migrateMetadata(): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/admin/migrate_metadata',\n });\n }\n\n}\n","/* istanbul ignore file */\n/* tslint:disable */\n/* eslint-disable */\nimport type { CancelablePromise } from '../core/CancelablePromise';\nimport type { BaseHttpRequest } from '../core/BaseHttpRequest';\n\nexport class PublisherConfigResourceService {\n\n constructor(public readonly httpRequest: BaseHttpRequest) {}\n\n /**\n * Get all publisher configurations\n * @returns any OK\n * @throws ApiError\n */\n public listAllConfigs(): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/publishers',\n });\n }\n\n /**\n * Get a publisher config value by id\n * @param id\n * @returns string OK\n * @throws ApiError\n */\n public downloadConfig(\n id: string,\n ): CancelablePromise<string> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/publishers/{id}',\n path: {\n 'id': id,\n },\n });\n }\n\n /**\n * Put a publisher config value by id\n * @param id\n * @param requestBody\n * @returns any OK\n * @throws ApiError\n */\n public uploadConfig(\n id: string,\n requestBody: string,\n ): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'PUT',\n url: '/publishers/{id}',\n path: {\n 'id': id,\n },\n body: requestBody,\n mediaType: 'application/json',\n });\n }\n\n /**\n * Delete a publisher config value by id\n * @param id\n * @returns any OK\n * @throws ApiError\n */\n public deleteConfig(\n id: string,\n ): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'DELETE',\n url: '/publishers/{id}',\n path: {\n 'id': id,\n },\n });\n }\n\n}\n","/* istanbul ignore file */\n/* tslint:disable */\n/* eslint-disable */\nimport type { CancelablePromise } from '../core/CancelablePromise';\nimport type { BaseHttpRequest } from '../core/BaseHttpRequest';\n\nexport class QueueAdminResourceService {\n\n constructor(public readonly httpRequest: BaseHttpRequest) {}\n\n /**\n * Get Queue Names\n * @returns string OK\n * @throws ApiError\n */\n public names(): CancelablePromise<Record<string, string>> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/queue/',\n });\n }\n\n /**\n * Get the queue length\n * @returns number OK\n * @throws ApiError\n */\n public size(): CancelablePromise<Record<string, number>> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/queue/size',\n });\n }\n\n /**\n * Publish a message in queue to mark a wait task (by taskId) as completed.\n * @param workflowId\n * @param taskId\n * @param status\n * @param requestBody\n * @returns any OK\n * @throws ApiError\n */\n public updateByTaskId(\n workflowId: string,\n taskId: string,\n status: 'IN_PROGRESS' | 'CANCELED' | 'FAILED' | 'FAILED_WITH_TERMINAL_ERROR' | 'COMPLETED' | 'COMPLETED_WITH_ERRORS' | 'SCHEDULED' | 'TIMED_OUT' | 'SKIPPED',\n requestBody: Record<string, any>,\n ): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'POST',\n url: '/queue/update/{workflowId}/task/{taskId}/{status}',\n path: {\n 'workflowId': workflowId,\n 'taskId': taskId,\n 'status': status,\n },\n body: requestBody,\n mediaType: 'application/json',\n });\n }\n\n /**\n * Publish a message in queue to mark a wait task as completed.\n * @param workflowId\n * @param taskRefName\n * @param status\n * @param requestBody\n * @returns any OK\n * @throws ApiError\n */\n public update1(\n workflowId: string,\n taskRefName: string,\n status: 'IN_PROGRESS' | 'CANCELED' | 'FAILED' | 'FAILED_WITH_TERMINAL_ERROR' | 'COMPLETED' | 'COMPLETED_WITH_ERRORS' | 'SCHEDULED' | 'TIMED_OUT' | 'SKIPPED',\n requestBody: Record<string, any>,\n ): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'POST',\n url: '/queue/update/{workflowId}/{taskRefName}/{status}',\n path: {\n 'workflowId': workflowId,\n 'taskRefName': taskRefName,\n 'status': status,\n },\n body: requestBody,\n mediaType: 'application/json',\n });\n }\n\n}\n","/* istanbul ignore file */\n/* tslint:disable */\n/* eslint-disable */\nimport type { SaveScheduleRequest } from '../models/SaveScheduleRequest';\nimport type { SearchResultWorkflowScheduleExecutionModel } from '../models/SearchResultWorkflowScheduleExecutionModel';\nimport type { WorkflowSchedule } from '../models/WorkflowSchedule';\n\nimport type { CancelablePromise } from '../core/CancelablePromise';\nimport type { BaseHttpRequest } from '../core/BaseHttpRequest';\n\nexport class SchedulerResourceService {\n\n constructor(public readonly httpRequest: BaseHttpRequest) {}\n\n /**\n * Get an existing workflow schedule by name\n * @param name\n * @returns any OK\n * @throws ApiError\n */\n public getSchedule(\n name: string,\n ): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/scheduler/schedules/{name}',\n path: {\n 'name': name,\n },\n });\n }\n\n /**\n * Deletes an existing workflow schedule by name\n * @param name\n * @returns any OK\n * @throws ApiError\n */\n public deleteSchedule(\n name: string,\n ): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'DELETE',\n url: '/scheduler/schedules/{name}',\n path: {\n 'name': name,\n },\n });\n }\n\n /**\n * Get list of the next x (default 3, max 5) execution times for a scheduler\n * @param cronExpression\n * @param scheduleStartTime\n * @param scheduleEndTime\n * @param limit\n * @returns number OK\n * @throws ApiError\n */\n public getNextFewSchedules(\n cronExpression: string,\n scheduleStartTime?: number,\n scheduleEndTime?: number,\n limit: number = 3,\n ): CancelablePromise<Array<number>> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/scheduler/nextFewSchedules',\n query: {\n 'cronExpression': cronExpression,\n 'scheduleStartTime': scheduleStartTime,\n 'scheduleEndTime': scheduleEndTime,\n 'limit': limit,\n },\n });\n }\n\n /**\n * Pauses an existing schedule by name\n * @param name\n * @returns any OK\n * @throws ApiError\n */\n public pauseSchedule(\n name: string,\n ): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/scheduler/schedules/{name}/pause',\n path: {\n 'name': name,\n },\n });\n }\n\n /**\n * Pause all scheduling in a single conductor server instance (for debugging only)\n * @returns any OK\n * @throws ApiError\n */\n public pauseAllSchedules(): CancelablePromise<Record<string, any>> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/scheduler/admin/pause',\n });\n }\n\n /**\n * Resume a paused schedule by name\n * @param name\n * @returns any OK\n * @throws ApiError\n */\n public resumeSchedule(\n name: string,\n ): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/scheduler/schedules/{name}/resume',\n path: {\n 'name': name,\n },\n });\n }\n\n /**\n * Requeue all execution records\n * @returns any OK\n * @throws ApiError\n */\n public requeueAllExecutionRecords(): CancelablePromise<Record<string, any>> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/scheduler/admin/requeue',\n });\n }\n\n /**\n * Resume all scheduling\n * @returns any OK\n * @throws ApiError\n */\n public resumeAllSchedules(): CancelablePromise<Record<string, any>> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/scheduler/admin/resume',\n });\n }\n\n /**\n * Get all existing workflow schedules and optionally filter by workflow name\n * @param workflowName\n * @returns WorkflowSchedule OK\n * @throws ApiError\n */\n public getAllSchedules(\n workflowName?: string,\n ): CancelablePromise<Array<WorkflowSchedule>> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/scheduler/schedules',\n query: {\n 'workflowName': workflowName,\n },\n });\n }\n\n /**\n * Create or update a schedule for a specified workflow with a corresponding start workflow request\n * @param requestBody\n * @returns any OK\n * @throws ApiError\n */\n public saveSchedule(\n requestBody: SaveScheduleRequest,\n ): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'POST',\n url: '/scheduler/schedules',\n body: requestBody,\n mediaType: 'application/json',\n });\n }\n\n /**\n * Test timeout - do not use in production\n * @returns any OK\n * @throws ApiError\n */\n public testTimeout(): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/scheduler/test/timeout',\n });\n }\n\n /**\n * Search for workflows based on payload and other parameters\n * use sort options as sort=<field>:ASC|DESC e.g. sort=name&sort=workflowId:DESC. If order is not specified, defaults to ASC.\n * @param start\n * @param size\n * @param sort\n * @param freeText\n * @param query\n * @returns SearchResultWorkflowScheduleExecutionModel OK\n * @throws ApiError\n */\n public searchV21(\n start?: number,\n size: number = 100,\n sort?: string,\n freeText: string = '*',\n query?: string,\n ): CancelablePromise<SearchResultWorkflowScheduleExecutionModel> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/scheduler/search/executions',\n query: {\n 'start': start,\n 'size': size,\n 'sort': sort,\n 'freeText': freeText,\n 'query': query,\n },\n });\n }\n\n}\n","/* istanbul ignore file */\n/* tslint:disable */\n/* eslint-disable */\nimport type { CancelablePromise } from '../core/CancelablePromise';\nimport type { BaseHttpRequest } from '../core/BaseHttpRequest';\n\nexport class SecretResourceService {\n\n constructor(public readonly httpRequest: BaseHttpRequest) {}\n\n /**\n * Get secret value by key\n * @param key\n * @returns any OK\n * @throws ApiError\n */\n public getSecret(\n key: string,\n ): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/secrets/{key}',\n path: {\n 'key': key,\n },\n });\n }\n\n /**\n * Put a secret value by key\n * @param key\n * @param requestBody\n * @returns any OK\n * @throws ApiError\n */\n public putSecret(\n key: string,\n requestBody: string,\n ): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'PUT',\n url: '/secrets/{key}',\n path: {\n 'key': key,\n },\n body: requestBody,\n mediaType: 'application/json',\n });\n }\n\n /**\n * Delete a secret value by key\n * @param key\n * @returns any OK\n * @throws ApiError\n */\n public deleteSecret(\n key: string,\n ): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'DELETE',\n url: '/secrets/{key}',\n path: {\n 'key': key,\n },\n });\n }\n\n /**\n * List all secret names user can grant access to\n * @returns string OK\n * @throws ApiError\n */\n public listSecretsThatUserCanGrantAccessTo(): CancelablePromise<Array<string>> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/secrets',\n });\n }\n\n /**\n * List all secret names\n * @returns any OK\n * @throws ApiError\n */\n public listAllSecretNames(): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'POST',\n url: '/secrets',\n });\n }\n\n /**\n * Check if secret exists\n * @param key\n * @returns any OK\n * @throws ApiError\n */\n public secretExists(\n key: string,\n ): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/secrets/{key}/exists',\n path: {\n 'key': key,\n },\n });\n }\n\n}\n","/* istanbul ignore file */\n/* tslint:disable */\n/* eslint-disable */\nimport type { TagObject } from '../models/TagObject';\nimport type { TagString } from '../models/TagString';\n\nimport type { CancelablePromise } from '../core/CancelablePromise';\nimport type { BaseHttpRequest } from '../core/BaseHttpRequest';\n\nexport class TagsExperimentalService {\n\n constructor(public readonly httpRequest: BaseHttpRequest) {}\n\n /**\n * Returns all the tags of the workflow\n * @param name\n * @returns TagObject OK\n * @throws ApiError\n */\n public getWorkflowTags(\n name: string,\n ): CancelablePromise<Array<TagObject>> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/metadata/workflow/{name}/tags',\n path: {\n 'name': name,\n },\n });\n }\n\n /**\n * Set the tags of the workflow\n * @param name\n * @param requestBody\n * @returns any OK\n * @throws ApiError\n */\n public setWorkflowTags(\n name: string,\n requestBody: Array<TagObject>,\n ): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'PUT',\n url: '/metadata/workflow/{name}/tags',\n path: {\n 'name': name,\n },\n body: requestBody,\n mediaType: 'application/json',\n });\n }\n\n /**\n * Adds the tag to the workflow\n * @param name\n * @param requestBody\n * @returns any OK\n * @throws ApiError\n */\n public addWorkflowTag(\n name: string,\n requestBody: TagObject,\n ): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'POST',\n url: '/metadata/workflow/{name}/tags',\n path: {\n 'name': name,\n },\n body: requestBody,\n mediaType: 'application/json',\n });\n }\n\n /**\n * Removes the tag of the workflow\n * @param name\n * @param requestBody\n * @returns any OK\n * @throws ApiError\n */\n public deleteWorkflowTag(\n name: string,\n requestBody: TagObject,\n ): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'DELETE',\n url: '/metadata/workflow/{name}/tags',\n path: {\n 'name': name,\n },\n body: requestBody,\n mediaType: 'application/json',\n });\n }\n\n /**\n * Returns all the tags of the task\n * @param taskName\n * @returns TagObject OK\n * @throws ApiError\n */\n public getTaskTags(\n taskName: string,\n ): CancelablePromise<Array<TagObject>> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/metadata/task/{taskName}/tags',\n path: {\n 'taskName': taskName,\n },\n });\n }\n\n /**\n * Adds the tag to the task\n * @param taskName\n * @param requestBody\n * @returns any OK\n * @throws ApiError\n */\n public setTaskTags(\n taskName: string,\n requestBody: Array<TagObject>,\n ): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'PUT',\n url: '/metadata/task/{taskName}/tags',\n path: {\n 'taskName': taskName,\n },\n body: requestBody,\n mediaType: 'application/json',\n });\n }\n\n /**\n * Adds the tag to the task\n * @param taskName\n * @param requestBody\n * @returns any OK\n * @throws ApiError\n */\n public addTaskTag(\n taskName: string,\n requestBody: TagObject,\n ): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'POST',\n url: '/metadata/task/{taskName}/tags',\n path: {\n 'taskName': taskName,\n },\n body: requestBody,\n mediaType: 'application/json',\n });\n }\n\n /**\n * Removes the tag of the task\n * @param taskName\n * @param requestBody\n * @returns any OK\n * @throws ApiError\n */\n public deleteTaskTag(\n taskName: string,\n requestBody: TagString,\n ): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'DELETE',\n url: '/metadata/task/{taskName}/tags',\n path: {\n 'taskName': taskName,\n },\n body: requestBody,\n mediaType: 'application/json',\n });\n }\n\n}\n","/* istanbul ignore file */\n/* tslint:disable */\n/* eslint-disable */\nimport type { ExternalStorageLocation } from '../models/ExternalStorageLocation';\nimport type { PollData } from '../models/PollData';\nimport type { SearchResultTask } from '../models/SearchResultTask';\nimport type { SearchResultTaskSummary } from '../models/SearchResultTaskSummary';\nimport type { Task } from '../models/Task';\nimport type { TaskExecLog } from '../models/TaskExecLog';\nimport type { TaskResult } from '../models/TaskResult';\n\nimport type { CancelablePromise } from '../core/CancelablePromise';\nimport type { BaseHttpRequest } from '../core/BaseHttpRequest';\n\nexport class TaskResourceService {\n\n constructor(public readonly httpRequest: BaseHttpRequest) {}\n\n /**\n * Poll for a task of a certain type\n * @param tasktype\n * @param workerid\n * @param domain\n * @returns Task OK\n * @throws ApiError\n */\n public poll(\n tasktype: string,\n workerid?: string,\n domain?: string,\n ): CancelablePromise<Task> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/tasks/poll/{tasktype}',\n path: {\n 'tasktype': tasktype,\n },\n query: {\n 'workerid': workerid,\n 'domain': domain,\n },\n });\n }\n\n /**\n * Get the details about each queue\n * @returns number OK\n * @throws ApiError\n */\n public allVerbose(): CancelablePromise<Record<string, Record<string, Record<string, number>>>> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/tasks/queue/all/verbose',\n });\n }\n\n /**\n * Update a task By Ref Name\n * @param workflowId\n * @param taskRefName\n * @param status\n * @param requestBody\n * @returns string OK\n * @throws ApiError\n */\n public updateTask(\n workflowId: string,\n taskRefName: string,\n status: 'IN_PROGRESS' | 'FAILED' | 'FAILED_WITH_TERMINAL_ERROR' | 'COMPLETED',\n requestBody: Record<string, any>,\n ): CancelablePromise<string> {\n return this.httpRequest.request({\n method: 'POST',\n url: '/tasks/{workflowId}/{taskRefName}/{status}',\n path: {\n 'workflowId': workflowId,\n 'taskRefName': taskRefName,\n 'status': status,\n },\n body: requestBody,\n mediaType: 'application/json',\n });\n }\n\n /**\n * Get task by Id\n * @param taskId\n * @returns Task OK\n * @throws ApiError\n */\n public getTask(\n taskId: string,\n ): CancelablePromise<Task> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/tasks/{taskId}',\n path: {\n 'taskId': taskId,\n },\n });\n }\n\n /**\n * Get the details about each queue\n * @returns number OK\n * @throws ApiError\n */\n public all(): CancelablePromise<Record<string, number>> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/tasks/queue/all',\n });\n }\n\n /**\n * Requeue pending tasks\n * @param taskType\n * @returns string OK\n * @throws ApiError\n */\n public requeuePendingTask(\n taskType: string,\n ): CancelablePromise<string> {\n return this.httpRequest.request({\n method: 'POST',\n url: '/tasks/queue/requeue/{taskType}',\n path: {\n 'taskType': taskType,\n },\n });\n }\n\n /**\n * Search for tasks based in payload and other parameters\n * use sort options as sort=<field>:ASC|DESC e.g. sort=name&sort=workflowId:DESC. If order is not specified, defaults to ASC\n * @param start\n * @param size\n * @param sort\n * @param freeText\n * @param query\n * @returns SearchResultTaskSummary OK\n * @throws ApiError\n */\n public search(\n start?: number,\n size: number = 100,\n sort?: string,\n freeText: string = '*',\n query?: string,\n ): CancelablePromise<SearchResultTaskSummary> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/tasks/search',\n query: {\n 'start': start,\n 'size': size,\n 'sort': sort,\n 'freeText': freeText,\n 'query': query,\n },\n });\n }\n\n /**\n * Search for tasks based in payload and other parameters\n * use sort options as sort=<field>:ASC|DESC e.g. sort=name&sort=workflowId:DESC. If order is not specified, defaults to ASC\n * @param start\n * @param size\n * @param sort\n * @param freeText\n * @param query\n * @returns SearchResultTask OK\n * @throws ApiError\n */\n public searchV22(\n start?: number,\n size: number = 100,\n sort?: string,\n freeText: string = '*',\n query?: string,\n ): CancelablePromise<SearchResultTask> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/tasks/search-v2',\n query: {\n 'start': start,\n 'size': size,\n 'sort': sort,\n 'freeText': freeText,\n 'query': query,\n },\n });\n }\n\n /**\n * Get the last poll data for a given task type\n * @param taskType\n * @returns PollData OK\n * @throws ApiError\n */\n public getPollData(\n taskType: string,\n ): CancelablePromise<Array<PollData>> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/tasks/queue/polldata',\n query: {\n 'taskType': taskType,\n },\n });\n }\n\n /**\n * Get Task Execution Logs\n * @param taskId\n * @returns TaskExecLog OK\n * @throws ApiError\n */\n public getTaskLogs(\n taskId: string,\n ): CancelablePromise<Array<TaskExecLog>> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/tasks/{taskId}/log',\n path: {\n 'taskId': taskId,\n },\n });\n }\n\n /**\n * Log Task Execution Details\n * @param taskId\n * @param requestBody\n * @returns any OK\n * @throws ApiError\n */\n public log(\n taskId: string,\n requestBody: string,\n ): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'POST',\n url: '/tasks/{taskId}/log',\n path: {\n 'taskId': taskId,\n },\n body: requestBody,\n mediaType: 'application/json',\n });\n }\n\n /**\n * Get the last poll data for all task types\n * @returns PollData OK\n * @throws ApiError\n */\n public getAllPollData(): CancelablePromise<Array<PollData>> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/tasks/queue/polldata/all',\n });\n }\n\n /**\n * Batch poll for a task of a certain type\n * @param tasktype\n * @param workerid\n * @param domain\n * @param count\n * @param timeout\n * @returns Task OK\n * @throws ApiError\n */\n public batchPoll(\n tasktype: string,\n workerid?: string,\n domain?: string,\n count: number = 1,\n timeout: number = 100,\n ): CancelablePromise<Array<Task>> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/tasks/poll/batch/{tasktype}',\n path: {\n 'tasktype': tasktype,\n },\n query: {\n 'workerid': workerid,\n 'domain': domain,\n 'count': count,\n 'timeout': timeout,\n },\n });\n }\n\n /**\n * Update a task\n * @param requestBody\n * @returns string OK\n * @throws ApiError\n */\n public updateTask1(\n requestBody: TaskResult,\n ): CancelablePromise<string> {\n return this.httpRequest.request({\n method: 'POST',\n url: '/tasks',\n body: requestBody,\n mediaType: 'application/json',\n });\n }\n\n /**\n * Get Task type queue sizes\n * @param taskType\n * @returns number OK\n * @throws ApiError\n */\n public size1(\n taskType?: Array<string>,\n ): CancelablePromise<Record<string, number>> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/tasks/queue/sizes',\n query: {\n 'taskType': taskType,\n },\n });\n }\n\n /**\n * Get the external uri where the task payload is to be stored\n * @param path\n * @param operation\n * @param payloadType\n * @returns ExternalStorageLocation OK\n * @throws ApiError\n */\n public getExternalStorageLocation1(\n path: string,\n operation: string,\n payloadType: string,\n ): CancelablePromise<ExternalStorageLocation> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/tasks/externalstoragelocation',\n query: {\n 'path': path,\n 'operation': operation,\n 'payloadType': payloadType,\n },\n });\n }\n\n}\n","/* istanbul ignore file */\n/* tslint:disable */\n/* eslint-disable */\nimport type { GenerateTokenRequest } from '../models/GenerateTokenRequest';\nimport type { Response } from '../models/Response';\n\nimport type { CancelablePromise } from '../core/CancelablePromise';\nimport type { BaseHttpRequest } from '../core/BaseHttpRequest';\n\nexport class TokenResourceService {\n\n constructor(public readonly httpRequest: BaseHttpRequest) {}\n\n /**\n * Generate JWT with the given access key\n * @param requestBody\n * @returns Response OK\n * @throws ApiError\n */\n public generateToken(\n requestBody: GenerateTokenRequest,\n ): CancelablePromise<Response> {\n return this.httpRequest.request({\n method: 'POST',\n url: '/token',\n body: requestBody,\n mediaType: 'application/json',\n });\n }\n\n /**\n * Get the user info from the token\n * @returns any OK\n * @throws ApiError\n */\n public getUserInfo(): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/token/userInfo',\n });\n }\n\n}\n","/* istanbul ignore file */\n/* tslint:disable */\n/* eslint-disable */\nimport type { ConductorUser } from '../models/ConductorUser';\nimport type { Response } from '../models/Response';\nimport type { UpsertUserRequest } from '../models/UpsertUserRequest';\n\nimport type { CancelablePromise } from '../core/CancelablePromise';\nimport type { BaseHttpRequest } from '../core/BaseHttpRequest';\n\nexport class UserResourceService {\n\n constructor(public readonly httpRequest: BaseHttpRequest) {}\n\n /**\n * Get a user by id\n * @param id\n * @returns any OK\n * @throws ApiError\n */\n public getUser(\n id: string,\n ): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/users/{id}',\n path: {\n 'id': id,\n },\n });\n }\n\n /**\n * Create or update a user\n * @param id\n * @param requestBody\n * @returns any OK\n * @throws ApiError\n */\n public upsertUser(\n id: string,\n requestBody: UpsertUserRequest,\n ): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'PUT',\n url: '/users/{id}',\n path: {\n 'id': id,\n },\n body: requestBody,\n mediaType: 'application/json',\n });\n }\n\n /**\n * Delete a user\n * @param id\n * @returns Response OK\n * @throws ApiError\n */\n public deleteUser(\n id: string,\n ): CancelablePromise<Response> {\n return this.httpRequest.request({\n method: 'DELETE',\n url: '/users/{id}',\n path: {\n 'id': id,\n },\n });\n }\n\n /**\n * Get all users\n * @param apps\n * @returns ConductorUser OK\n * @throws ApiError\n */\n public listUsers(\n apps: boolean = false,\n ): CancelablePromise<Array<ConductorUser>> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/users',\n query: {\n 'apps': apps,\n },\n });\n }\n\n /**\n * Get the permissions this user has over workflows and tasks\n * @param userId\n * @returns any OK\n * @throws ApiError\n */\n public getGrantedPermissions1(\n userId: string,\n ): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/users/{userId}/permissions',\n path: {\n 'userId': userId,\n },\n });\n }\n\n}\n","/* istanbul ignore file */\n/* tslint:disable */\n/* eslint-disable */\nimport type { CancelablePromise } from '../core/CancelablePromise';\nimport type { BaseHttpRequest } from '../core/BaseHttpRequest';\n\nexport class VersionResourceService {\n\n constructor(public readonly httpRequest: BaseHttpRequest) {}\n\n /**\n * Get the server's version\n * @returns string OK\n * @throws ApiError\n */\n public getVersion(): CancelablePromise<string> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/version',\n });\n }\n\n}\n","/* istanbul ignore file */\n/* tslint:disable */\n/* eslint-disable */\nimport type { BulkResponse } from '../models/BulkResponse';\n\nimport type { CancelablePromise } from '../core/CancelablePromise';\nimport type { BaseHttpRequest } from '../core/BaseHttpRequest';\n\nexport class WorkflowBulkResourceService {\n\n constructor(public readonly httpRequest: BaseHttpRequest) {}\n\n /**\n * Retry the last failed task for each workflow from the list\n * @param requestBody\n * @returns BulkResponse OK\n * @throws ApiError\n */\n public retry(\n requestBody: Array<string>,\n ): CancelablePromise<BulkResponse> {\n return this.httpRequest.request({\n method: 'POST',\n url: '/workflow/bulk/retry',\n body: requestBody,\n mediaType: 'application/json',\n });\n }\n\n /**\n * Restart the list of completed workflow\n * @param requestBody\n * @param useLatestDefinitions\n * @returns BulkResponse OK\n * @throws ApiError\n */\n public restart(\n requestBody: Array<string>,\n useLatestDefinitions: boolean = false,\n ): CancelablePromise<BulkResponse> {\n return this.httpRequest.request({\n method: 'POST',\n url: '/workflow/bulk/restart',\n query: {\n 'useLatestDefinitions': useLatestDefinitions,\n },\n body: requestBody,\n mediaType: 'application/json',\n });\n }\n\n /**\n * Terminate workflows execution\n * @param requestBody\n * @param reason\n * @returns BulkResponse OK\n * @throws ApiError\n */\n public terminate(\n requestBody: Array<string>,\n reason?: string,\n ): CancelablePromise<BulkResponse> {\n return this.httpRequest.request({\n method: 'POST',\n url: '/workflow/bulk/terminate',\n query: {\n 'reason': reason,\n },\n body: requestBody,\n mediaType: 'application/json',\n });\n }\n\n /**\n * Resume the list of workflows\n * @param requestBody\n * @returns BulkResponse OK\n * @throws ApiError\n */\n public resumeWorkflow(\n requestBody: Array<string>,\n ): CancelablePromise<BulkResponse> {\n return this.httpRequest.request({\n method: 'PUT',\n url: '/workflow/bulk/resume',\n body: requestBody,\n mediaType: 'application/json',\n });\n }\n\n /**\n * Pause the list of workflows\n * @param requestBody\n * @returns BulkResponse OK\n * @throws ApiError\n */\n public pauseWorkflow1(\n requestBody: Array<string>,\n ): CancelablePromise<BulkResponse> {\n return this.httpRequest.request({\n method: 'PUT',\n url: '/workflow/bulk/pause',\n body: requestBody,\n mediaType: 'application/json',\n });\n }\n\n}\n","/* istanbul ignore file */\n/* tslint:disable */\n/* eslint-disable */\nimport type { ExternalStorageLocation } from '../models/ExternalStorageLocation';\nimport type { RerunWorkflowRequest } from '../models/RerunWorkflowRequest';\nimport type { ScrollableSearchResultWorkflowSummary } from '../models/ScrollableSearchResultWorkflowSummary';\nimport type { SearchResultWorkflow } from '../models/SearchResultWorkflow';\nimport type { SearchResultWorkflowSummary } from '../models/SearchResultWorkflowSummary';\nimport type { SkipTaskRequest } from '../models/SkipTaskRequest';\nimport type { StartWorkflowRequest } from '../models/StartWorkflowRequest';\nimport type { Workflow } from '../models/Workflow';\nimport type { WorkflowStatus } from '../models/WorkflowStatus';\n\nimport type { CancelablePromise } from '../core/CancelablePromise';\nimport type { BaseHttpRequest } from '../core/BaseHttpRequest';\n\nexport class WorkflowResourceService {\n\n constructor(public readonly httpRequest: BaseHttpRequest) {}\n\n /**\n * Retrieve all the running workflows\n * @param name\n * @param version\n * @param startTime\n * @param endTime\n * @returns string OK\n * @throws ApiError\n */\n public getRunningWorkflow(\n name: string,\n version: number = 1,\n startTime?: number,\n endTime?: number,\n ): CancelablePromise<Array<string>> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/workflow/running/{name}',\n path: {\n 'name': name,\n },\n query: {\n 'version': version,\n 'startTime': startTime,\n 'endTime': endTime,\n },\n });\n }\n\n /**\n * Start a new workflow with StartWorkflowRequest, which allows task to be executed in a domain\n * @param requestBody\n * @returns string OK\n * @throws ApiError\n */\n public startWorkflow(\n requestBody: StartWorkflowRequest,\n ): CancelablePromise<string> {\n return this.httpRequest.request({\n method: 'POST',\n url: '/workflow',\n body: requestBody,\n mediaType: 'application/json',\n });\n }\n\n /**\n * Starts the decision task for a workflow\n * @param workflowId\n * @returns any OK\n * @throws ApiError\n */\n public decide(\n workflowId: string,\n ): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'PUT',\n url: '/workflow/decide/{workflowId}',\n path: {\n 'workflowId': workflowId,\n },\n });\n }\n\n /**\n * Reruns the workflow from a specific task\n * @param workflowId\n * @param requestBody\n * @returns string OK\n * @throws ApiError\n */\n public rerun(\n workflowId: string,\n requestBody: RerunWorkflowRequest,\n ): CancelablePromise<string> {\n return this.httpRequest.request({\n method: 'POST',\n url: '/workflow/{workflowId}/rerun',\n path: {\n 'workflowId': workflowId,\n },\n body: requestBody,\n mediaType: 'application/json',\n });\n }\n\n /**\n * Search for workflows based on payload and other parameters\n * use sort options as sort=<field>:ASC|DESC e.g. sort=name&sort=workflowId:DESC. If order is not specified, defaults to ASC.\n * @param start\n * @param size\n * @param sort\n * @param freeText\n * @param query\n * @returns SearchResultWorkflow OK\n * @throws ApiError\n */\n public searchV21(\n start?: number,\n size: number = 100,\n sort?: string,\n freeText: string = '*',\n query?: string,\n ): CancelablePromise<SearchResultWorkflow> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/workflow/search-v2',\n query: {\n 'start': start,\n 'size': size,\n 'sort': sort,\n 'freeText': freeText,\n 'query': query,\n },\n });\n }\n\n /**\n * Pauses the workflow\n * @param workflowId\n * @returns any OK\n * @throws ApiError\n */\n public pauseWorkflow(\n workflowId: string,\n ): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'PUT',\n url: '/workflow/{workflowId}/pause',\n path: {\n 'workflowId': workflowId,\n },\n });\n }\n\n /**\n * Skips a given task from a current running workflow\n * @param workflowId\n * @param taskReferenceName\n * @param requestBody\n * @returns any OK\n * @throws ApiError\n */\n public skipTaskFromWorkflow(\n workflowId: string,\n taskReferenceName: string,\n requestBody?: SkipTaskRequest,\n ): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'PUT',\n url: '/workflow/{workflowId}/skiptask/{taskReferenceName}',\n path: {\n 'workflowId': workflowId,\n 'taskReferenceName': taskReferenceName,\n },\n body: requestBody,\n mediaType: 'application/json',\n });\n }\n\n /**\n * Lists workflows for the given correlation id list\n * @param name\n * @param requestBody\n * @param includeClosed\n * @param includeTasks\n * @returns Workflow OK\n * @throws ApiError\n */\n public getWorkflows(\n name: string,\n requestBody: Array<string>,\n includeClosed: boolean = false,\n includeTasks: boolean = false,\n ): CancelablePromise<Record<string, Array<Workflow>>> {\n return this.httpRequest.request({\n method: 'POST',\n url: '/workflow/{name}/correlated',\n path: {\n 'name': name,\n },\n query: {\n 'includeClosed': includeClosed,\n 'includeTasks': includeTasks,\n },\n body: requestBody,\n mediaType: 'application/json',\n });\n }\n\n /**\n * Gets the workflow by workflow id\n * @param workflowId\n * @param includeOutput\n * @param includeVariables\n * @returns WorkflowStatus OK\n * @throws ApiError\n */\n public getWorkflowStatusSummary(\n workflowId: string,\n includeOutput: boolean = false,\n includeVariables: boolean = false,\n ): CancelablePromise<WorkflowStatus> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/workflow/{workflowId}/status',\n path: {\n 'workflowId': workflowId,\n },\n query: {\n 'includeOutput': includeOutput,\n 'includeVariables': includeVariables,\n },\n });\n }\n\n /**\n * Lists workflows for the given correlation id\n * @param name\n * @param correlationId\n * @param includeClosed\n * @param includeTasks\n * @returns Workflow OK\n * @throws ApiError\n */\n public getWorkflows1(\n name: string,\n correlationId: string,\n includeClosed: boolean = false,\n includeTasks: boolean = false,\n ): CancelablePromise<Array<Workflow>> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/workflow/{name}/correlated/{correlationId}',\n path: {\n 'name': name,\n 'correlationId': correlationId,\n },\n query: {\n 'includeClosed': includeClosed,\n 'includeTasks': includeTasks,\n },\n });\n }\n\n /**\n * Retries the last failed task\n * @param workflowId\n * @param resumeSubworkflowTasks\n * @returns void\n * @throws ApiError\n */\n public retry1(\n workflowId: string,\n resumeSubworkflowTasks: boolean = false,\n ): CancelablePromise<void> {\n return this.httpRequest.request({\n method: 'POST',\n url: '/workflow/{workflowId}/retry',\n path: {\n 'workflowId': workflowId,\n },\n query: {\n 'resumeSubworkflowTasks': resumeSubworkflowTasks,\n },\n });\n }\n\n /**\n * Gets the workflow by workflow id\n * @param workflowId\n * @param includeTasks\n * @returns Workflow OK\n * @throws ApiError\n */\n public getExecutionStatus(\n workflowId: string,\n includeTasks: boolean = true,\n ): CancelablePromise<Workflow> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/workflow/{workflowId}',\n path: {\n 'workflowId': workflowId,\n },\n query: {\n 'includeTasks': includeTasks,\n },\n });\n }\n\n /**\n * Terminate workflow execution\n * @param workflowId\n * @param reason\n * @returns any OK\n * @throws ApiError\n */\n public terminate1(\n workflowId: string,\n reason?: string,\n ): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'DELETE',\n url: '/workflow/{workflowId}',\n path: {\n 'workflowId': workflowId,\n },\n query: {\n 'reason': reason,\n },\n });\n }\n\n /**\n * Resumes the workflow\n * @param workflowId\n * @returns any OK\n * @throws ApiError\n */\n public resumeWorkflow(\n workflowId: string,\n ): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'PUT',\n url: '/workflow/{workflowId}/resume',\n path: {\n 'workflowId': workflowId,\n },\n });\n }\n\n /**\n * Removes the workflow from the system\n * @param workflowId\n * @param archiveWorkflow\n * @returns any OK\n * @throws ApiError\n */\n public delete(\n workflowId: string,\n archiveWorkflow: boolean = true,\n ): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'DELETE',\n url: '/workflow/{workflowId}/remove',\n path: {\n 'workflowId': workflowId,\n },\n query: {\n 'archiveWorkflow': archiveWorkflow,\n },\n });\n }\n\n /**\n * Search for workflows based on task parameters\n * use sort options as sort=<field>:ASC|DESC e.g. sort=name&sort=workflowId:DESC. If order is not specified, defaults to ASC\n * @param start\n * @param size\n * @param sort\n * @param freeText\n * @param query\n * @returns SearchResultWorkflowSummary OK\n * @throws ApiError\n */\n public searchWorkflowsByTasks(\n start?: number,\n size: number = 100,\n sort?: string,\n freeText: string = '*',\n query?: string,\n ): CancelablePromise<SearchResultWorkflowSummary> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/workflow/search-by-tasks',\n query: {\n 'start': start,\n 'size': size,\n 'sort': sort,\n 'freeText': freeText,\n 'query': query,\n },\n });\n }\n\n /**\n * Get the uri and path of the external storage where the workflow payload is to be stored\n * @param path\n * @param operation\n * @param payloadType\n * @returns ExternalStorageLocation OK\n * @throws ApiError\n */\n public getExternalStorageLocation(\n path: string,\n operation: string,\n payloadType: string,\n ): CancelablePromise<ExternalStorageLocation> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/workflow/externalstoragelocation',\n query: {\n 'path': path,\n 'operation': operation,\n 'payloadType': payloadType,\n },\n });\n }\n\n /**\n * Start a new workflow. Returns the ID of the workflow instance that can be later used for tracking\n * @param name\n * @param requestBody\n * @param version\n * @param correlationId\n * @param priority\n * @returns string OK\n * @throws ApiError\n */\n public startWorkflow1(\n name: string,\n requestBody: Record<string, any>,\n version?: number,\n correlationId?: string,\n priority?: number,\n ): CancelablePromise<string> {\n return this.httpRequest.request({\n method: 'POST',\n url: '/workflow/{name}',\n path: {\n 'name': name,\n },\n query: {\n 'version': version,\n 'correlationId': correlationId,\n 'priority': priority,\n },\n body: requestBody,\n mediaType: 'application/json',\n });\n }\n\n /**\n * Restarts a completed workflow\n * @param workflowId\n * @param useLatestDefinitions\n * @returns void\n * @throws ApiError\n */\n public restart1(\n workflowId: string,\n useLatestDefinitions: boolean = false,\n ): CancelablePromise<void> {\n return this.httpRequest.request({\n method: 'POST',\n url: '/workflow/{workflowId}/restart',\n path: {\n 'workflowId': workflowId,\n },\n query: {\n 'useLatestDefinitions': useLatestDefinitions,\n },\n });\n }\n\n /**\n * Search for workflows based on payload and other parameters\n * use sort options as sort=<field>:ASC|DESC e.g. sort=name&sort=workflowId:DESC. If order is not specified, defaults to ASC.\n * @param queryId\n * @param start\n * @param size\n * @param sort\n * @param freeText\n * @param query\n * @param skipCache\n * @returns ScrollableSearchResultWorkflowSummary OK\n * @throws ApiError\n */\n public search1(\n queryId?: string,\n start?: number,\n size: number = 100,\n sort?: string,\n freeText: string = '*',\n query?: string,\n skipCache: boolean = false,\n ): CancelablePromise<ScrollableSearchResultWorkflowSummary> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/workflow/search',\n query: {\n 'queryId': queryId,\n 'start': start,\n 'size': size,\n 'sort': sort,\n 'freeText': freeText,\n 'query': query,\n 'skipCache': skipCache,\n },\n });\n }\n\n /**\n * Search for workflows based on task parameters\n * use sort options as sort=<field>:ASC|DESC e.g. sort=name&sort=workflowId:DESC. If order is not specified, defaults to ASC\n * @param start\n * @param size\n * @param sort\n * @param freeText\n * @param query\n * @returns SearchResultWorkflow OK\n * @throws ApiError\n */\n public searchWorkflowsByTasksV2(\n start?: number,\n size: number = 100,\n sort?: string,\n freeText: string = '*',\n query?: string,\n ): CancelablePromise<SearchResultWorkflow> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/workflow/search-by-tasks-v2',\n query: {\n 'start': start,\n 'size': size,\n 'sort': sort,\n 'freeText': freeText,\n 'query': query,\n },\n });\n }\n\n /**\n * Resets callback times of all non-terminal SIMPLE tasks to 0\n * @param workflowId\n * @returns void\n * @throws ApiError\n */\n public resetWorkflow(\n workflowId: string,\n ): CancelablePromise<void> {\n return this.httpRequest.request({\n method: 'POST',\n url: '/workflow/{workflowId}/resetcallbacks',\n path: {\n 'workflowId': workflowId,\n },\n });\n }\n\n}\n","/* istanbul ignore file */\n/* tslint:disable */\n/* eslint-disable */\nimport type { ApiRequestOptions } from './ApiRequestOptions';\nimport type { ApiResult } from './ApiResult';\n\nexport class ApiError extends Error {\n public readonly url: string;\n public readonly status: number;\n public readonly statusText: string;\n public readonly body: any;\n public readonly request: ApiRequestOptions;\n\n constructor(request: ApiRequestOptions, response: ApiResult, message: string) {\n super(message);\n\n this.name = 'ApiError';\n this.url = response.url;\n this.status = response.status;\n this.statusText = response.statusText;\n this.body = response.body;\n this.request = request;\n }\n}\n","/* istanbul ignore file */\n/* tslint:disable */\n/* eslint-disable */\n\nimport { ApiError } from \"./ApiError\";\nimport type { ApiRequestOptions } from \"./ApiRequestOptions\";\nimport type { ApiResult } from \"./ApiResult\";\nimport { CancelablePromise } from \"./CancelablePromise\";\nimport type { OnCancel } from \"./CancelablePromise\";\nimport type { OpenAPIConfig } from \"./OpenAPI\";\n\nconst isDefined = <T>(\n value: T | null | undefined\n): value is Exclude<T, null | undefined> => {\n return value !== undefined && value !== null;\n};\n\nconst isString = (value: any): value is string => {\n return typeof value === \"string\";\n};\n\nconst isStringWithValue = (value: any): value is string => {\n return isString(value) && value !== \"\";\n};\n\nconst isBlob = (value: any): value is Blob => {\n return (\n typeof value === \"object\" &&\n typeof value.type === \"string\" &&\n typeof value.stream === \"function\" &&\n typeof value.arrayBuffer === \"function\" &&\n typeof value.constructor === \"function\" &&\n typeof value.constructor.name === \"string\" &&\n /^(Blob|File)$/.test(value.constructor.name) &&\n /^(Blob|File)$/.test(value[Symbol.toStringTag])\n );\n};\n\nconst isFormData = (value: any): value is FormData => {\n return value instanceof FormData;\n};\n\nconst base64 = (str: string): string => {\n try {\n return btoa(str);\n } catch (err) {\n // @ts-ignore\n return Buffer.from(str).toString(\"base64\");\n }\n};\n\nconst getQueryString = (params: Record<string, any>): string => {\n const qs: string[] = [];\n\n const append = (key: string, value: any) => {\n qs.push(`${encodeURIComponent(key)}=${encodeURIComponent(String(value))}`);\n };\n\n const process = (key: string, value: any) => {\n if (isDefined(value)) {\n if (Array.isArray(value)) {\n value.forEach((v) => {\n process(key, v);\n });\n } else if (typeof value === \"object\") {\n Object.entries(value).forEach(([k, v]) => {\n process(`${key}[${k}]`, v);\n });\n } else {\n append(key, value);\n }\n }\n };\n\n Object.entries(params).forEach(([key, value]) => {\n process(key, value);\n });\n\n if (qs.length > 0) {\n return `?${qs.join(\"&\")}`;\n }\n\n return \"\";\n};\n\nconst getUrl = (config: OpenAPIConfig, options: ApiRequestOptions): string => {\n const encoder = config.ENCODE_PATH || encodeURI;\n\n const path = options.url\n .replace(\"{api-version}\", config.VERSION)\n .replace(/{(.*?)}/g, (substring: string, group: string) => {\n if (options.path?.hasOwnProperty(group)) {\n return encoder(String(options.path[group]));\n }\n return substring;\n });\n\n const url = `${config.BASE}${path}`;\n if (options.query) {\n return `${url}${getQueryString(options.query)}`;\n }\n return url;\n};\n\nconst getFormData = (options: ApiRequestOptions): FormData | undefined => {\n if (options.formData) {\n const formData = new FormData();\n\n const process = (key: string, value: any) => {\n if (isString(value) || isBlob(value)) {\n formData.append(key, value);\n } else {\n formData.append(key, JSON.stringify(value));\n }\n };\n\n Object.entries(options.formData)\n .filter(([_, value]) => isDefined(value))\n .forEach(([key, value]) => {\n if (Array.isArray(value)) {\n value.forEach((v) => process(key, v));\n } else {\n process(key, value);\n }\n });\n\n return formData;\n }\n return undefined;\n};\n\ntype Resolver<T> = (options: ApiRequestOptions) => Promise<T>;\n\nconst resolve = async <T>(\n options: ApiRequestOptions,\n resolver?: T | Resolver<T>\n): Promise<T | undefined> => {\n if (typeof resolver === \"function\") {\n return (resolver as Resolver<T>)(options);\n }\n return resolver;\n};\n\nconst getHeaders = async (\n config: OpenAPIConfig,\n options: ApiRequestOptions\n): Promise<Headers> => {\n const token = await resolve(options, config.TOKEN);\n const username = await resolve(options, config.USERNAME);\n const password = await resolve(options, config.PASSWORD);\n const additionalHeaders = await resolve(options, config.HEADERS);\n\n const headers = Object.entries({\n Accept: \"application/json\",\n ...additionalHeaders,\n ...options.headers,\n })\n .filter(([_, value]) => isDefined(value))\n .reduce(\n (headers, [key, value]) => ({\n ...headers,\n [key]: String(value),\n }),\n {} as Record<string, string>\n );\n\n if (isStringWithValue(token)) {\n headers[\"X-AUTHORIZATION\"] = token;\n }\n\n if (isStringWithValue(username) && isStringWithValue(password)) {\n const credentials = base64(`${username}:${password}`);\n headers[\"Authorization\"] = `Basic ${credentials}`;\n }\n\n if (options.body) {\n if (options.mediaType) {\n headers[\"Content-Type\"] = options.mediaType;\n } else if (isBlob(options.body)) {\n headers[\"Content-Type\"] = \"application/octet-stream\";\n } else if (isString(options.body)) {\n headers[\"Content-Type\"] = \"text/plain\";\n } else if (!isFormData(options.body)) {\n headers[\"Content-Type\"] = \"application/json\";\n }\n }\n\n return new Headers(headers);\n};\n\nconst getRequestBody = (options: ApiRequestOptions): any => {\n if (options.body) {\n if (options.mediaType?.includes(\"/json\")) {\n return JSON.stringify(options.body);\n } else if (\n isString(options.body) ||\n isBlob(options.body) ||\n isFormData(options.body)\n ) {\n return options.body as any;\n } else {\n return JSON.stringify(options.body);\n }\n }\n return undefined;\n};\n\nexport const sendRequest = async (\n options: ApiRequestOptions,\n url: string,\n body: any,\n formData: FormData | undefined,\n headers: Headers,\n onCancel: OnCancel\n): Promise<Response> => {\n const controller = new AbortController();\n\n const request: RequestInit = {\n headers,\n method: options.method,\n body: body ?? formData,\n signal: controller.signal as AbortSignal,\n };\n\n onCancel(() => controller.abort());\n\n return await fetch(url, request);\n};\n\nconst getResponseHeader = (\n response: Response,\n responseHeader?: string\n): string | undefined => {\n if (responseHeader) {\n const content = response.headers.get(responseHeader);\n if (isString(content)) {\n return content;\n }\n }\n return undefined;\n};\n\nconst getResponseBody = async (response: Response): Promise<any> => {\n if (response.status !== 204) {\n try {\n const contentType = response.headers.get(\"Content-Type\");\n if (contentType) {\n const isJSON = contentType.toLowerCase().startsWith(\"application/json\");\n if (isJSON) {\n return await response.json();\n } else {\n return await response.text();\n }\n }\n } catch (error) {\n console.error(error);\n }\n }\n return undefined;\n};\n\nconst catchErrorCodes = (\n options: ApiRequestOptions,\n result: ApiResult\n): void => {\n const errors: Record<number, string> = {\n 400: \"Bad Request\",\n 401: \"Unauthorized\",\n 403: \"Forbidden\",\n 404: \"Not Found\",\n 500: \"Internal Server Error\",\n 502: \"Bad Gateway\",\n 503: \"Service Unavailable\",\n ...options.errors,\n };\n\n const error = errors[result.status];\n if (error) {\n throw new ApiError(options, result, error);\n }\n\n if (!result.ok) {\n throw new ApiError(options, result, \"Generic Error\");\n }\n};\n\n/**\n * Request method\n * @param config The OpenAPI configuration object\n * @param options The request options from the service\n * @returns CancelablePromise<T>\n * @throws ApiError\n */\nexport const request = <T>(\n config: OpenAPIConfig,\n options: ApiRequestOptions\n): CancelablePromise<T> => {\n return new CancelablePromise(async (resolve, reject, onCancel) => {\n try {\n const url = getUrl(config, options);\n const formData = getFormData(options);\n const body = getRequestBody(options);\n const headers = await getHeaders(config, options);\n\n if (!onCancel.isCancelled) {\n const response = await sendRequest(\n options,\n url,\n body,\n formData,\n headers,\n onCancel\n );\n const responseBody = await getResponseBody(response);\n const responseHeader = getResponseHeader(\n response,\n options.responseHeader\n );\n\n const result: ApiResult = {\n url,\n ok: response.ok,\n status: response.status,\n statusText: response.statusText,\n body: responseHeader ?? responseBody,\n };\n\n catchErrorCodes(options, result);\n\n resolve(result.body);\n }\n } catch (error) {\n reject(error);\n }\n });\n};\n","/* istanbul ignore file */\n/* tslint:disable */\n/* eslint-disable */\nimport type { BaseHttpRequest } from \"./core/BaseHttpRequest\";\nimport type { OpenAPIConfig, Resolver } from \"./core/OpenAPI\";\n\nimport { AdminResourceService } from \"./services/AdminResourceService\";\nimport { ApplicationResourceService } from \"./services/ApplicationResourceService\";\nimport { AuthorizationResourceService } from \"./services/AuthorizationResourceService\";\nimport { EventResourceService } from \"./services/EventResourceService\";\nimport { GroupResourceService } from \"./services/GroupResourceService\";\nimport { HealthCheckResourceService } from \"./services/HealthCheckResourceService\";\nimport { MetadataResourceService } from \"./services/MetadataResourceService\";\nimport { MigrationResourceService } from \"./services/MigrationResourceService\";\nimport { PublisherConfigResourceService } from \"./services/PublisherConfigResourceService\";\nimport { QueueAdminResourceService } from \"./services/QueueAdminResourceService\";\nimport { SchedulerResourceService } from \"./services/SchedulerResourceService\";\nimport { SecretResourceService } from \"./services/SecretResourceService\";\nimport { TagsExperimentalService } from \"./services/TagsExperimentalService\";\nimport { TaskResourceService } from \"./services/TaskResourceService\";\nimport { TokenResourceService } from \"./services/TokenResourceService\";\nimport { UserResourceService } from \"./services/UserResourceService\";\nimport { VersionResourceService } from \"./services/VersionResourceService\";\nimport { WorkflowBulkResourceService } from \"./services/WorkflowBulkResourceService\";\nimport { WorkflowResourceService } from \"./services/WorkflowResourceService\";\nimport { request as baseRequest } from \"./core/request\";\nimport { ConductorHttpRequest } from \"../RequestCustomizer\";\n\ntype HttpRequestConstructor = new (config: OpenAPIConfig) => BaseHttpRequest;\n\nexport const defaultRequestHandler: ConductorHttpRequest = (\n request,\n config,\n options\n) => request(config, options);\n\nexport interface ConductorClientAPIConfig extends Omit<OpenAPIConfig, \"BASE\"> {\n serverUrl: string;\n}\n\nexport class ConductorClient {\n public readonly adminResource: AdminResourceService;\n public readonly applicationResource: ApplicationResourceService;\n public readonly authorizationResource: AuthorizationResourceService;\n public readonly eventResource: EventResourceService;\n public readonly groupResource: GroupResourceService;\n public readonly healthCheckResource: HealthCheckResourceService;\n public readonly metadataResource: MetadataResourceService;\n public readonly migrationResource: MigrationResourceService;\n public readonly publisherConfigResource: PublisherConfigResourceService;\n public readonly queueAdminResource: QueueAdminResourceService;\n public readonly schedulerResource: SchedulerResourceService;\n public readonly secretResource: SecretResourceService;\n public readonly tagsExperimental: TagsExperimentalService;\n public readonly taskResource: TaskResourceService;\n public readonly tokenResource: TokenResourceService;\n public readonly userResource: UserResourceService;\n public readonly versionResource: VersionResourceService;\n public readonly workflowBulkResource: WorkflowBulkResourceService;\n public readonly workflowResource: WorkflowResourceService;\n\n public readonly request: BaseHttpRequest;\n\n public readonly token?: string | Resolver<string>;\n\n constructor(\n config?: Partial<ConductorClientAPIConfig>,\n requestHandler: ConductorHttpRequest = defaultRequestHandler\n ) {\n const resolvedConfig = {\n BASE: config?.serverUrl ?? \"http://localhost:8080\",\n VERSION: config?.VERSION ?? \"0\",\n WITH_CREDENTIALS: config?.WITH_CREDENTIALS ?? false,\n CREDENTIALS: config?.CREDENTIALS ?? \"include\",\n TOKEN: config?.TOKEN,\n USERNAME: config?.USERNAME,\n PASSWORD: config?.PASSWORD,\n HEADERS: config?.HEADERS,\n ENCODE_PATH: config?.ENCODE_PATH,\n };\n\n // START conductor-client-modification\n /* The generated models are all based on the concept of an instantiated base http\n class. To avoid making edits there, we just create an object that satisfies the same\n interface. Yay typescript!\n */\n this.request = {\n config: resolvedConfig,\n request: (apiConfig) => {\n return requestHandler(baseRequest, resolvedConfig, apiConfig);\n },\n };\n // END conductor-client-modification\n this.token = config?.TOKEN;\n\n this.adminResource = new AdminResourceService(this.request);\n this.applicationResource = new ApplicationResourceService(this.request);\n this.authorizationResource = new AuthorizationResourceService(this.request);\n this.eventResource = new EventResourceService(this.request);\n this.groupResource = new GroupResourceService(this.request);\n this.healthCheckResource = new HealthCheckResourceService(this.request);\n this.metadataResource = new MetadataResourceService(this.request);\n this.migrationResource = new MigrationResourceService(this.request);\n this.publisherConfigResource = new PublisherConfigResourceService(\n this.request\n );\n this.queueAdminResource = new QueueAdminResourceService(this.request);\n this.schedulerResource = new SchedulerResourceService(this.request);\n this.secretResource = new SecretResourceService(this.request);\n this.tagsExperimental = new TagsExperimentalService(this.request);\n this.taskResource = new TaskResourceService(this.request);\n this.tokenResource = new TokenResourceService(this.request);\n this.userResource = new UserResourceService(this.request);\n this.versionResource = new VersionResourceService(this.request);\n this.workflowBulkResource = new WorkflowBulkResourceService(this.request);\n this.workflowResource = new WorkflowResourceService(this.request);\n }\n}\n","import { ConductorHttpRequest } from \"../RequestCustomizer\";\nimport {\n ConductorClient,\n ConductorClientAPIConfig,\n} from \"../open-api/ConductorClient\";\nimport { GenerateTokenRequest } from \"../open-api\";\n\nexport type OrkesApiConfig = ConductorClientAPIConfig & GenerateTokenRequest;\n\nconst defaultRequestHandler: ConductorHttpRequest = (\n request,\n config,\n options\n) => request(config, options);\n/**\n * Takes a config with keyId and keySecret returns a promise with an instance of ConductorClient\n *\n * @param config ConductorClientConfig with keyId and keySecret\n * @param requestHandler (optional) ConductorHttpRequest handler\n * @returns\n */\nexport const orkesConductorClient = async (\n config?: Partial<OrkesApiConfig>,\n requestHandler: ConductorHttpRequest = defaultRequestHandler\n): Promise<ConductorClient> => {\n if (config?.keySecret != null && config?.keyId != null) {\n const { serverUrl, keyId, keySecret } = config;\n const tokenUrl = `${serverUrl}/token`;\n const res = await fetch(tokenUrl, {\n headers: {\n \"Content-Type\": \"application/json\",\n Accept: \"application/json\",\n },\n body: JSON.stringify({ keyId, keySecret }),\n method: \"POST\",\n });\n const { token } = await res.json();\n return new ConductorClient({ ...config, TOKEN: token }, requestHandler);\n } else {\n return Promise.resolve(new ConductorClient(config, requestHandler));\n }\n};\n","import { WorkflowDef as OriginalWorkflowDef } from \"./open-api/models/WorkflowDef\";\n\nexport interface CommonTaskDef {\n name: string;\n taskReferenceName: string;\n}\n\nexport enum TaskType {\n START = \"START\",\n SIMPLE = \"SIMPLE\",\n DYNAMIC = \"DYNAMIC\",\n FORK_JOIN = \"FORK_JOIN\",\n FORK_JOIN_DYNAMIC = \"FORK_JOIN_DYNAMIC\",\n DECISION = \"DECISION\",\n SWITCH = \"SWITCH\",\n JOIN = \"JOIN\",\n DO_WHILE = \"DO_WHILE\",\n SUB_WORKFLOW = \"SUB_WORKFLOW\",\n EVENT = \"EVENT\",\n WAIT = \"WAIT\",\n USER_DEFINED = \"USER_DEFINED\",\n HTTP = \"HTTP\",\n LAMBDA = \"LAMBDA\",\n INLINE = \"INLINE\",\n EXCLUSIVE_JOIN = \"EXCLUSIVE_JOIN\",\n TERMINAL = \"TERMINAL\",\n TERMINATE = \"TERMINATE\",\n KAFKA_PUBLISH = \"KAFKA_PUBLISH\",\n JSON_JQ_TRANSFORM = \"JSON_JQ_TRANSFORM\",\n SET_VARIABLE = \"SET_VARIABLE\",\n}\n\nexport type TaskDefTypes =\n | SimpleTaskDef\n | DoWhileTaskDef\n | EventTaskDef\n | ForkJoinTaskDef\n | ForkJoinDynamicDef\n | HttpTaskDef\n | InlineTaskDef\n | JsonJQTransformTaskDef\n | KafkaPublishTaskDef\n | SetVariableTaskDef\n | SubWorkflowTaskDef\n | SwitchTaskDef\n | TerminateTaskDef\n | JoinTaskDef\n | WaitTaskDef;\n\nexport interface DoWhileTaskDef extends CommonTaskDef {\n inputParameters: Record<string, unknown>;\n type: TaskType.DO_WHILE;\n startDelay?: number;\n optional?: boolean;\n asyncComplete?: boolean;\n loopCondition: string;\n loopOver: TaskDefTypes[];\n}\n\nexport interface EventTaskDef extends CommonTaskDef {\n type: TaskType.EVENT;\n sink: string;\n asyncComplete?: boolean;\n}\n\nexport interface ForkJoinTaskDef extends CommonTaskDef {\n type: TaskType.FORK_JOIN;\n inputParameters?: Record<string, string>;\n forkTasks: Array<Array<TaskDefTypes>>;\n}\n\nexport interface JoinTaskDef extends CommonTaskDef {\n type: TaskType.JOIN;\n inputParameters?: Record<string, string>;\n joinOn: string[];\n optional?: boolean;\n asyncComplete?: boolean;\n}\n\nexport interface ForkJoinDynamicDef extends CommonTaskDef {\n inputParameters: {\n dynamicTasks: any;\n dynamicTasksInput: any;\n };\n type: TaskType.FORK_JOIN_DYNAMIC;\n dynamicForkTasksParam: string; // not string \"dynamicTasks\",\n dynamicForkTasksInputParamName: string; // not string \"dynamicTasksInput\",\n startDelay?: number;\n optional?: boolean;\n asyncComplete?: boolean;\n}\nexport interface HttpInputParameters {\n uri: string;\n method: \"GET\" | \"PUT\" | \"POST\" | \"DELETE\" | \"OPTIONS\" | \"HEAD\";\n accept?: string;\n contentType?: string;\n headers?: Record<string, string>;\n body?: unknown;\n connectionTimeOut?: number;\n readTimeOut?: string;\n}\n\nexport interface HttpTaskDef extends CommonTaskDef {\n inputParameters: {\n [x: string]: unknown;\n http_request: HttpInputParameters;\n };\n type: TaskType.HTTP;\n}\n\nexport interface InlineTaskInputParameters {\n evaluatorType: \"javascript\" | \"graaljs\";\n expression: string;\n [x: string]: unknown;\n}\n\nexport interface InlineTaskDef extends CommonTaskDef {\n type: TaskType.INLINE;\n inputParameters: InlineTaskInputParameters;\n}\n\ninterface ContainingQueryExpression {\n queryExpression: string;\n [x: string | number | symbol]: unknown;\n}\n\nexport interface JsonJQTransformTaskDef extends CommonTaskDef {\n type: TaskType.JSON_JQ_TRANSFORM;\n inputParameters: ContainingQueryExpression;\n}\n\nexport interface KafkaPublishInputParameters {\n topic: string;\n value: string;\n bootStrapServers: string;\n headers: Record<string, string>;\n key: string;\n keySerializer: string;\n}\n\nexport interface KafkaPublishTaskDef extends CommonTaskDef {\n inputParameters: {\n kafka_request: KafkaPublishInputParameters;\n };\n type: TaskType.KAFKA_PUBLISH;\n}\n\nexport interface SetVariableTaskDef extends CommonTaskDef {\n type: TaskType.SET_VARIABLE;\n inputParameters: Record<string, unknown>;\n}\n\nexport interface SimpleTaskDef extends CommonTaskDef {\n type: TaskType.SIMPLE;\n inputParameters?: Record<string, unknown>;\n}\n\nexport interface SubWorkflowTaskDef extends CommonTaskDef {\n type: TaskType.SUB_WORKFLOW;\n inputParameters?: Record<string, unknown>;\n subWorkflowParam: {\n name: string;\n version?: number;\n taskToDomain?: Record<string, string>;\n };\n}\n\nexport interface SwitchTaskDef extends CommonTaskDef {\n inputParameters: Record<string, unknown>;\n type: TaskType.SWITCH;\n decisionCases: Record<string, TaskDefTypes[]>;\n defaultCase: TaskDefTypes[];\n evaluatorType: \"value-param\" | \"javascript\";\n expression: string;\n}\n\nexport interface TerminateTaskDef extends CommonTaskDef {\n inputParameters: {\n terminationStatus: \"COMPLETED\" | \"FAILED\";\n workflowOutput?: Record<string, string>;\n terminationReason?: string;\n };\n type: TaskType.TERMINATE;\n startDelay?: number;\n optional?: boolean;\n}\n\nexport interface WaitTaskDef extends CommonTaskDef {\n type: TaskType.WAIT;\n inputParameters: {\n duration?: string;\n until?: string;\n };\n}\n\ntype U2O<U extends string> = {\n [key in U]: U2O<Exclude<U, key>>;\n};\n\ntype O2T<O extends {}> = {} extends O\n ? []\n : {\n [key in keyof O]: [key, ...O2T<O[key]>];\n }[keyof O];\n\nexport type WorkflowInputParameters<T extends string> = O2T<U2O<T>>;\n\nexport interface WorkflowDef\n extends Omit<OriginalWorkflowDef, \"tasks\" | \"version\" | \"inputParameters\"> {\n /* inputParameters: O2T<U2O<T>> | string[]; */\n inputParameters: string[];\n version: number;\n tasks: TaskDefTypes[];\n}\n","export const randomChars = (n = 7): string =>\n (Math.random() + 1).toString(36).substring(n);\n\nexport const workflowNameGenerator = () => `workflow___${randomChars(7)}`;\n\nexport const taskNameGenerator = (taskType: string) =>\n `${taskType}__task_${randomChars(7)}`;\n\nexport const taskReferenceNameGenerator = (taskName: string) =>\n `${taskName}_ref`;\n\ninterface MaybeOverrides {\n name?: string;\n}\n\nexport const nameTaskNameGenerator = (\n taskType: string,\n maybeOverrides: MaybeOverrides = {}\n) => {\n const name = maybeOverrides?.name ?? taskNameGenerator(taskType);\n return {\n name,\n taskReferenceName: taskReferenceNameGenerator(name),\n };\n};\n\nexport function mapArrValues<T, R>(\n arrayTransformer: (a: T[]) => R[],\n mapWithValues: Record<string, T[]>\n) {\n return Object.fromEntries(\n Object.entries(mapWithValues).map(([key, value]: [string, T[]]) => [\n key,\n arrayTransformer(value),\n ])\n );\n}\n","import { SimpleTaskDef, TaskType } from \"../types\";\nimport { nameTaskNameGenerator } from \"./common\";\n\n/**\n * Takes an optional partial SimpleTaskDef\n * generates a task replacing default values with provided overrides\n *\n * @param overrides overrides for defaults\n * @returns a fully defined task\n */\nexport const generateSimpleTask = (\n overrides: Partial<SimpleTaskDef> = {}\n): SimpleTaskDef => ({\n ...nameTaskNameGenerator(\"simple\", overrides),\n inputParameters: {},\n ...overrides,\n type: TaskType.SIMPLE,\n});\n","import { TaskType, DoWhileTaskDef } from \"../types\";\nimport { DoWhileTaskDefGen, NestedTaskMapper } from \"./types\";\nimport { nameTaskNameGenerator } from \"./common\";\n\nexport const generateDoWhileTask = (\n overrides: Partial<DoWhileTaskDefGen> = {},\n nestedTasksMapper: NestedTaskMapper\n): DoWhileTaskDef => ({\n ...nameTaskNameGenerator(\"doWhile\", overrides),\n inputParameters: {},\n startDelay: 0,\n optional: false,\n asyncComplete: false,\n loopCondition:\"\",\n ...overrides,\n loopOver: nestedTasksMapper(overrides?.loopOver || []),\n type: TaskType.DO_WHILE,\n});\n","import { EventTaskDef, TaskType } from \"../types\";\nimport { nameTaskNameGenerator } from \"./common\";\n\n/**\n * Takes an optional partial EventTaskDef\n * generates a task replacing default/fake values with provided overrides\n *\n * @param overrides overrides for defaults\n * @returns a fully defined task\n */\nexport const generateEventTask = (\n overrides: Partial<EventTaskDef> = {}\n): EventTaskDef => ({\n ...nameTaskNameGenerator(\"event\", overrides),\n sink: \"sqs:sqs_queue_name\",\n asyncComplete: false,\n ...overrides,\n type: TaskType.EVENT,\n});\n","import { ForkJoinTaskDef, JoinTaskDef, TaskType } from \"../types\";\nimport { nameTaskNameGenerator } from \"./common\";\nimport { ForkJoinTaskDefGen, NestedTaskMapper } from \"./types\";\n\nexport const generateForkJoinTask = (\n overrides: Partial<ForkJoinTaskDefGen> = {},\n nestedMapper: NestedTaskMapper\n): ForkJoinTaskDef => ({\n ...nameTaskNameGenerator(\"forkJoin\", overrides),\n inputParameters: {},\n ...overrides,\n type: TaskType.FORK_JOIN,\n forkTasks: (overrides?.forkTasks || []).map(nestedMapper),\n});\n\nexport const generateJoinTask = (\n overrides: Partial<JoinTaskDef> = {}\n): JoinTaskDef => ({\n ...nameTaskNameGenerator(\"join\", overrides),\n inputParameters: {},\n joinOn: [],\n optional: false,\n asyncComplete: false,\n ...overrides,\n type: TaskType.JOIN,\n});\n","import { HttpTaskDef, TaskType } from \"../types\";\nimport { nameTaskNameGenerator } from \"./common\";\n\n/**\n * Takes an optional partial HttpTaskDef\n * generates a task replacing default/fake values with provided overrides\n *\n * @param overrides overrides for defaults\n * @returns a fully defined task\n */\nexport const generateHTTPTask = (\n overrides: Partial<HttpTaskDef> = {}\n): HttpTaskDef => ({\n ...nameTaskNameGenerator(\"httpTask\", overrides),\n inputParameters: {\n http_request: {\n uri: \"https://jsonplaceholder.typicode.com/posts/${workflow.input.queryid}\",\n method: \"GET\",\n },\n },\n ...overrides,\n type: TaskType.HTTP,\n});\n","import { InlineTaskDef, TaskType, InlineTaskInputParameters } from \"../types\";\nimport { InlineTaskDefGen, InlineTaskInputParametersGen } from \"./types\";\nimport { nameTaskNameGenerator } from \"./common\";\n\nconst defaultInputParams: InlineTaskInputParameters = {\n value: \"${workflow.input.value}\",\n evaluatorType: \"javascript\",\n expression: \"true\",\n};\n\nexport const generateEvaluationCode = (\n inputParametersPartial: Partial<InlineTaskInputParametersGen> = {}\n): InlineTaskInputParameters => {\n const inlinePartialDefJavascript = inputParametersPartial;\n const inlineExpression = inlinePartialDefJavascript?.expression;\n if (\n inlineExpression !== undefined &&\n typeof inlineExpression === \"function\"\n ) {\n const resultingFunction = inlineExpression();\n const resultingFunctionAsString = resultingFunction.toString();\n\n const toReturn: InlineTaskInputParameters = {\n evaluatorType: \"javascript\",\n ...(inputParametersPartial || { value: \"true\" }),\n expression: `(${resultingFunctionAsString})();`,\n };\n return toReturn;\n }\n return {\n ...defaultInputParams,\n ...inputParametersPartial,\n evaluatorType: \"javascript\",\n } as InlineTaskInputParameters;\n};\n\n/**\n * Takes an optional partial InlineTaskDefGen\n * generates a task replacing default/fake values with provided overrides\n * \n * <b>note</b> that the inputParameters.expression can be either a string containing javascript\n * or a function thar returns an ES5 function\n *\n * @param overrides overrides for defaults\n * @returns a fully defined task\n */\nexport const generateInlineTask = (\n override: Partial<InlineTaskDefGen> = {}\n): InlineTaskDef => ({\n ...nameTaskNameGenerator(\"inline\", override),\n ...override,\n inputParameters: generateEvaluationCode(override?.inputParameters || {}),\n type: TaskType.INLINE,\n});\n","import { JsonJQTransformTaskDef, TaskType } from \"../types\";\nimport { nameTaskNameGenerator } from \"./common\";\n\n/**\n * Takes an optional partial JsonJQTransformTaskDef\n * generates a task replacing default/fake values with provided overrides\n *\n * @param overrides overrides for defaults\n * @returns a fully defined task\n */\nexport const generateJQTransformTask = (\n overrides: Partial<JsonJQTransformTaskDef> = {}\n): JsonJQTransformTaskDef => ({\n ...nameTaskNameGenerator(\"jqTransform\", overrides),\n inputParameters: {\n key1: {\n value1: [\"a\", \"b\"],\n },\n key2: {\n value2: [\"c\", \"d\"],\n },\n queryExpression: \"{ key3: (.key1.value1 + .key2.value2) }\",\n },\n ...overrides,\n type: TaskType.JSON_JQ_TRANSFORM,\n});\n","import { KafkaPublishTaskDef, TaskType } from \"../types\";\nimport { nameTaskNameGenerator } from \"./common\";\n\n/**\n * Takes an optional partial KafkaPublishTaskDef\n * generates a task replacing default/fake values with provided overrides\n *\n * @param overrides overrides for defaults\n * @returns a fully defined task\n */\nexport const generateKafkaPublishTask = (\n overrides: Partial<KafkaPublishTaskDef> = {}\n): KafkaPublishTaskDef => ({\n ...nameTaskNameGenerator(\"kafka\", overrides),\n inputParameters: {\n kafka_request: {\n topic: \"topic\",\n value: \"\",\n bootStrapServers: \"localhost:9092\",\n headers: {},\n key: \"123\",\n keySerializer: \"org.apache.kafka.common.serialization.IntegerSerializer\",\n },\n },\n ...overrides,\n type: TaskType.KAFKA_PUBLISH,\n});\n","import { SubWorkflowTaskDef, TaskType } from \"../types\";\nimport { nameTaskNameGenerator } from \"./common\";\n\n/**\n * Takes an optional partial SubWorkflowTaskDef\n * generates a task replacing default/fake values with provided overrides\n *\n * @param overrides overrides for defaults\n * @returns a fully defined task\n */\nexport const generateSubWorkflowTask = (\n overrides: Partial<SubWorkflowTaskDef> = {}\n): SubWorkflowTaskDef => ({\n ...nameTaskNameGenerator(\"subWorkflow\", overrides),\n inputParameters: {},\n subWorkflowParam: {\n name: \"name\",\n version: 1,\n taskToDomain: {},\n },\n ...overrides,\n type: TaskType.SUB_WORKFLOW,\n});\n","import { SetVariableTaskDef, TaskType } from \"../types\";\nimport { nameTaskNameGenerator } from \"./common\";\n\n/**\n * Takes an optional partial SetVariableTaskDef\n * generates a task replacing default/fake values with provided overrides\n *\n * @param overrides overrides for defaults\n * @returns a fully defined task\n */\nexport const generateSetVariableTask = (\n overrides: Partial<SetVariableTaskDef> = {}\n): SetVariableTaskDef => ({\n ...nameTaskNameGenerator(\"setVariable\", overrides),\n inputParameters: {},\n ...overrides,\n type: TaskType.SET_VARIABLE,\n});\n","import { TerminateTaskDef, TaskType } from \"../types\";\nimport { nameTaskNameGenerator } from \"./common\";\n\n/**\n * Takes an optional partial TerminateTaskDef\n * generates a task replacing default/fake values with provided overrides\n *\n * @param overrides overrides for defaults\n * @returns a fully defined task\n */\nexport const generateTerminateTask = (\n overrides: Partial<TerminateTaskDef> = {}\n): TerminateTaskDef => ({\n ...nameTaskNameGenerator(\"terminate\", overrides),\n inputParameters: {\n terminationStatus: \"COMPLETED\",\n workflowOutput: {},\n },\n startDelay: 0,\n optional: false,\n ...overrides,\n type: TaskType.TERMINATE,\n});\n","import { WaitTaskDef, TaskType } from \"../types\";\nimport { nameTaskNameGenerator } from \"./common\";\n\n/**\n * Takes an optional partial WaitTaskDef\n * generates a task replacing default/fake values with provided overrides\n *\n * @param overrides overrides for defaults\n * @returns a fully defined task\n */\nexport const generateWaitTask = (\n overrides: Partial<WaitTaskDef> = {}\n): WaitTaskDef => ({\n ...nameTaskNameGenerator(\"wait\", overrides),\n ...overrides,\n inputParameters:{},\n type: TaskType.WAIT,\n});\n","import { SwitchTaskDef, TaskType, TaskDefTypes } from \"../types\";\nimport { nameTaskNameGenerator, mapArrValues } from \"./common\";\nimport { NestedTaskMapper, SwitchTaskDefGen } from \"./types\";\n\ntype DefinedCases = {\n decisionCases: Record<string, TaskDefTypes[]>;\n defaultCase: TaskDefTypes[];\n};\n\nconst fillSwitchTaskBranches = (\n task: Partial<SwitchTaskDefGen>,\n mapper: NestedTaskMapper\n): DefinedCases => ({\n decisionCases: mapArrValues(mapper, task?.decisionCases || {}),\n defaultCase: mapper(task?.defaultCase || []),\n});\n\nexport const generateSwitchTask = (\n overrides: Partial<SwitchTaskDefGen> = {},\n nestedTasksMapper: NestedTaskMapper\n): SwitchTaskDef => ({\n ...nameTaskNameGenerator(\"switch\", overrides),\n inputParameters: {\n switchCaseValue: \"\",\n },\n evaluatorType: \"value-param\",\n expression: \"switchCaseValue\",\n ...overrides,\n ...fillSwitchTaskBranches(overrides, nestedTasksMapper),\n type: TaskType.SWITCH,\n});\n","import { WorkflowDef } from \"../types\";\n\nexport const workflowGenerator = (\n overrides: Partial<WorkflowDef>\n): WorkflowDef => ({\n name: \"NewWorkflow_3nxbi\",\n description:\n \"Edit or extend this sample workflow. Set the workflow name to get started\",\n version: 1,\n tasks: [],\n inputParameters: [],\n outputParameters: {},\n schemaVersion: 2,\n restartable: true,\n workflowStatusListenerEnabled: false,\n ownerEmail: \"james.stuart@orkes.io\",\n timeoutPolicy: \"ALERT_ONLY\",\n timeoutSeconds: 0,\n ...overrides,\n});\n","import { ForkJoinDynamicDef, TaskType } from \"../types\";\nimport { nameTaskNameGenerator } from \"./common\";\n\nexport const generateForkJoinDynamic = (\n overrides: Partial<ForkJoinDynamicDef> = {}\n): ForkJoinDynamicDef => ({\n ...nameTaskNameGenerator(\"forkJoinDynamic\", overrides),\n inputParameters: {\n dynamicTasks: \"\",\n dynamicTasksInput: \"\",\n },\n dynamicForkTasksParam: \"dynamicTasks\",\n dynamicForkTasksInputParamName: \"dynamicTasksInput\",\n startDelay: 0,\n optional: false,\n asyncComplete: false,\n ...overrides,\n type: TaskType.FORK_JOIN_DYNAMIC,\n});\n","import { workflowGenerator } from \"./WorkflowGenerator\";\nimport { WorkflowDefGen, TaskDefTypesGen } from \"./types\";\nimport { generateSimpleTask } from \"./SimpleTask\";\nimport { generateDoWhileTask } from \"./DoWhileTask\";\nimport { generateEventTask } from \"./EventTask\";\nimport { generateForkJoinTask, generateJoinTask } from \"./ForkJoin\";\nimport { generateForkJoinDynamic } from \"./ForkJoinDynamicTask\";\nimport { generateHTTPTask } from \"./HttpTask\";\nimport { generateInlineTask } from \"./InlineTask\";\nimport { generateJQTransformTask } from \"./JsonJQTransform\";\nimport { generateKafkaPublishTask } from \"./KafkaTask\";\nimport { generateSubWorkflowTask } from \"./SubWorkflowTask\";\nimport { generateSetVariableTask } from \"./SetVariableTask\";\nimport { generateTerminateTask } from \"./TerminateTask\";\nimport { generateWaitTask } from \"./WaitTask\";\nimport { generateSwitchTask } from \"./SwitchTask\";\nimport { SimpleTaskDef, TaskDefTypes, TaskType } from \"../types\";\n\nconst filledTaskDef = (task: Partial<TaskDefTypesGen>): TaskDefTypes => {\n const taskType = task.type;\n switch (taskType) {\n case TaskType.SWITCH:\n return generateSwitchTask(task, taskGenMapper);\n case TaskType.SIMPLE:\n return generateSimpleTask(task);\n case TaskType.DO_WHILE:\n return generateDoWhileTask(task, taskGenMapper);\n case TaskType.EVENT:\n return generateEventTask(task);\n case TaskType.FORK_JOIN:\n return generateForkJoinTask(task, taskGenMapper);\n case TaskType.FORK_JOIN_DYNAMIC:\n return generateForkJoinDynamic(task);\n case TaskType.HTTP:\n return generateHTTPTask(task);\n case TaskType.INLINE:\n return generateInlineTask(task);\n case TaskType.JOIN:\n return generateJoinTask(task);\n case TaskType.JSON_JQ_TRANSFORM:\n return generateJQTransformTask(task);\n case TaskType.KAFKA_PUBLISH:\n return generateKafkaPublishTask(task);\n case TaskType.SUB_WORKFLOW:\n return generateSubWorkflowTask(task);\n case TaskType.SET_VARIABLE:\n return generateSetVariableTask(task);\n case TaskType.TERMINATE:\n return generateTerminateTask(task);\n case TaskType.WAIT:\n return generateWaitTask(task);\n default:\n return generateSimpleTask(task as SimpleTaskDef);\n }\n};\n\nexport const taskGenMapper = (\n tasks: Partial<TaskDefTypesGen>[]\n): TaskDefTypes[] =>\n tasks.reduce(\n (\n acc: TaskDefTypes[],\n task,\n idx: number\n ): TaskDefTypes[] => {\n const filledTask = filledTaskDef(task);\n const maybeNextTask =\n tasks.length >= idx + 1 ? tasks[idx + 1] : undefined;\n return acc.concat(maybeAddJoinTask(filledTask, maybeNextTask));\n },\n []\n );\n\nconst maybeAddJoinTask = (\n currentTask: TaskDefTypes,\n maybeNextTask?: Partial<TaskDefTypesGen>\n) => {\n if (\n currentTask.type === TaskType.FORK_JOIN ||\n (currentTask.type === TaskType.FORK_JOIN_DYNAMIC &&\n maybeNextTask != null &&\n maybeNextTask.type !== TaskType.JOIN)\n ) {\n return [currentTask, generateJoinTask({})];\n }\n return currentTask;\n};\n\n/**\n * Takes an optional partial WorkflowDefGen\n * generates a workflow replacing default/fake values with provided overrides\n *\n * @param overrides overrides for defaults\n * @returns a fully defined task\n */\nexport const generate = (overrides: Partial<WorkflowDefGen>) => {\n const maybeTasks: Partial<TaskDefTypesGen>[] = overrides.tasks || [];\n const generatedTasks: TaskDefTypes[] = taskGenMapper(maybeTasks);\n return workflowGenerator({ ...overrides, tasks: generatedTasks });\n};\n","import { generateSimpleTask } from \"./SimpleTask\";\nimport { generateDoWhileTask as doWhileGenerateInner } from \"./DoWhileTask\";\nimport { generateEventTask } from \"./EventTask\";\nimport {\n generateForkJoinTask as generateForkJoinTaskInner,\n generateJoinTask,\n} from \"./ForkJoin\";\nimport { generateHTTPTask } from \"./HttpTask\";\nimport { generateInlineTask } from \"./InlineTask\";\nimport { generateJQTransformTask } from \"./JsonJQTransform\";\nimport { generateKafkaPublishTask } from \"./KafkaTask\";\nimport { generateSubWorkflowTask } from \"./SubWorkflowTask\";\nimport { generateSetVariableTask } from \"./SetVariableTask\";\nimport { generateTerminateTask } from \"./TerminateTask\";\nimport { generateWaitTask } from \"./WaitTask\";\nimport { generateSwitchTask as innerGenerateSwitchTask } from \"./SwitchTask\";\n\nimport { taskGenMapper, generate } from \"./generator\";\nimport {\n SwitchTaskDefGen,\n NestedTaskMapper,\n DoWhileTaskDefGen,\n ForkJoinTaskDefGen,\n} from \"./types\";\n/**\n * Takes an optional partial SwitchTaskDefGen and an optional nestedMapper\n * generates a task replacing default/fake values with provided overrides\n *\n * @param overrides overrides for defaults\n * @param nestedTasksMapper function to run on array of nested tasks\n * @returns a fully defined task\n */\nconst generateSwitchTask = (\n overrides: Partial<SwitchTaskDefGen> = {},\n nestedTasksMapper: NestedTaskMapper = taskGenMapper\n) => innerGenerateSwitchTask(overrides, nestedTasksMapper);\n\n/**\n * Takes an optional partial DoWhileTaskDefGen and an optional nestedMapper\n * generates a task replacing default/fake values with provided overrides\n *\n * @param overrides overrides for defaults\n * @param nestedTasksMapper function to run on array of nested tasks\n * @returns a fully defined task\n */\nconst generateDoWhileTask = (\n overrides: Partial<DoWhileTaskDefGen> = {},\n nestedTasksMapper: NestedTaskMapper = taskGenMapper\n) => doWhileGenerateInner(overrides, nestedTasksMapper);\n\n/**\n * Takes an optional partial DoWhileTaskDefGen and an optional nestedMapper\n * generates a task replacing default/fake values with provided overrides\n *\n * @param overrides overrides for defaults\n * @param nestedTasksMapper function to run on array of nested tasks\n * @returns a fully defined task\n */\nconst generateForkJoinTask = (\n overrides: Partial<ForkJoinTaskDefGen> = {},\n nestedMapper: NestedTaskMapper = taskGenMapper\n) => generateForkJoinTaskInner(overrides, nestedMapper);\n\nexport {\n generateSimpleTask,\n generateDoWhileTask,\n generateEventTask,\n generateForkJoinTask,\n generateJoinTask,\n generateHTTPTask,\n generateInlineTask,\n generateJQTransformTask,\n generateKafkaPublishTask,\n generateSubWorkflowTask,\n generateSetVariableTask,\n generateTerminateTask,\n generateWaitTask,\n generateSwitchTask,\n generate,\n taskGenMapper,\n};\n","import { TaskType, DoWhileTaskDef, TaskDefTypes } from \"../types\";\n\nexport const doWhileTask = (\n taskRefName: string,\n terminationCondition: string,\n tasks: TaskDefTypes[]\n): DoWhileTaskDef => ({\n name: taskRefName,\n taskReferenceName: taskRefName,\n loopCondition: terminationCondition,\n inputParameters: {},\n type: TaskType.DO_WHILE,\n loopOver: tasks,\n});\n\nconst loopForCondition = (taskRefName: string, valueKey: string) =>\n `if ( $.${taskRefName}['iteration'] < $.${valueKey} ) { true; } else { false; }`;\n\nexport const newLoopTask = (\n taskRefName: string,\n iterations: number,\n tasks: TaskDefTypes[]\n): DoWhileTaskDef => ({\n name: taskRefName,\n taskReferenceName: taskRefName,\n loopCondition: loopForCondition(taskRefName, \"value\"),\n inputParameters: {\n value: iterations,\n },\n type: TaskType.DO_WHILE,\n loopOver: tasks,\n});\n","import { TaskType, ForkJoinDynamicDef, TaskDefTypes } from \"../types\";\n\nexport const dynamicForkTask = (\n taskReferenceName: string,\n preForkTasks: TaskDefTypes[] = [],\n dynamicTasksInput: string = \"\"\n): ForkJoinDynamicDef => ({\n name: taskReferenceName,\n taskReferenceName,\n inputParameters: {\n dynamicTasks: preForkTasks,\n dynamicTasksInput,\n },\n type: TaskType.FORK_JOIN_DYNAMIC,\n dynamicForkTasksParam: \"dynamicTasks\",\n dynamicForkTasksInputParamName: \"dynamicTasksInput\",\n});\n","import { TaskType, EventTaskDef } from \"../types\";\n\nexport const eventTask = (\n taskReferenceName: string,\n eventPrefix: string,\n eventSuffix: string\n): EventTaskDef => ({\n name: taskReferenceName,\n taskReferenceName,\n sink: `${eventPrefix}:${eventSuffix}`,\n type: TaskType.EVENT,\n});\n\nexport const sqsEventTask = (taskReferenceName: string, queueName: string) =>\n eventTask(taskReferenceName, \"sqs\", queueName);\n\nexport const conductorEventTask = (\n taskReferenceName: string,\n eventName: string\n) => eventTask(taskReferenceName, \"conductor\", eventName);\n","import { TaskType, ForkJoinTaskDef, TaskDefTypes, JoinTaskDef } from \"../types\";\nimport { generateJoinTask } from \"../generators\";\n\nexport const forkTask = (\n taskReferenceName: string,\n forkTasks: TaskDefTypes[]\n): ForkJoinTaskDef => ({\n taskReferenceName,\n name: taskReferenceName,\n type: TaskType.FORK_JOIN,\n forkTasks: [forkTasks],\n});\n\nexport const forkTaskJoin = (\n taskReferenceName: string,\n forkTasks: TaskDefTypes[]\n): [ForkJoinTaskDef, JoinTaskDef] => [\n forkTask(taskReferenceName, forkTasks),\n generateJoinTask({name:`${taskReferenceName}_join`}),\n];\n","import {\n TaskType,\n HttpTaskDef,\n HttpInputParameters,\n} from \"../types\";\n\nexport const httpTask = (\n taskReferenceName: string,\n inputParameters: HttpInputParameters\n): HttpTaskDef => ({\n name: taskReferenceName,\n taskReferenceName,\n inputParameters: {\n http_request: inputParameters,\n },\n type: TaskType.HTTP,\n});\n","import { TaskType, InlineTaskDef } from \"../types\";\n\nexport const inlineTask = (\n taskReferenceName: string,\n script: string,\n evaluatorType: \"javascript\" | \"graaljs\" = \"javascript\"\n): InlineTaskDef => ({\n name: taskReferenceName,\n taskReferenceName,\n inputParameters: {\n evaluatorType,\n expression: script,\n },\n type: TaskType.INLINE,\n});\n","import { TaskType, JoinTaskDef } from \"../types\";\n\nexport const joinTask = (\n taskReferenceName: string,\n joinOn: string[]\n): JoinTaskDef => ({\n name: taskReferenceName,\n taskReferenceName,\n joinOn,\n type: TaskType.JOIN,\n});\n","import { TaskType, JsonJQTransformTaskDef } from \"../types\";\n\nexport const jsonJqTask = (\n taskReferenceName: string,\n script: string\n): JsonJQTransformTaskDef => ({\n name: taskReferenceName,\n taskReferenceName,\n type: TaskType.JSON_JQ_TRANSFORM,\n inputParameters: {\n queryExpression: script,\n },\n});\n","import {\n TaskType,\n KafkaPublishTaskDef,\n KafkaPublishInputParameters,\n} from \"../types\";\n\nexport const kafkaPublishTask = (\n taskReferenceName: string,\n kafka_request: KafkaPublishInputParameters\n): KafkaPublishTaskDef => ({\n taskReferenceName,\n name: taskReferenceName,\n type: TaskType.KAFKA_PUBLISH,\n inputParameters: {\n kafka_request,\n },\n});\n","import { TaskType, SetVariableTaskDef } from \"../types\";\n\nexport const setVariableTask = (\n taskReferenceName: string,\n inputParameters: Record<string, unknown>\n): SetVariableTaskDef => ({\n name: taskReferenceName,\n taskReferenceName,\n type: TaskType.SET_VARIABLE,\n inputParameters,\n});\n","import { TaskType, SimpleTaskDef } from \"../types\";\n\nexport const simpleTask = (\n taskReferenceName: string,\n name: string,\n inputParameters:Record<string,unknown>\n): SimpleTaskDef => ({\n name,\n taskReferenceName,\n inputParameters,\n type: TaskType.SIMPLE,\n});\n","import { TaskType, SubWorkflowTaskDef } from \"../types\";\n\nexport const subWorkflowTask = (\n taskReferenceName: string,\n workflowName: string,\n version?: number \n): SubWorkflowTaskDef => ({\n name: taskReferenceName,\n taskReferenceName,\n subWorkflowParam: {\n name: workflowName,\n version,\n },\n type: TaskType.SUB_WORKFLOW,\n});\n","import { TaskType, SwitchTaskDef, TaskDefTypes } from \"../types\";\n\nexport const switchTask = (\n taskReferenceName: string,\n expression: string,\n decisionCases: Record<string, TaskDefTypes[]> = {},\n defaultCase: TaskDefTypes[] = []\n): SwitchTaskDef => ({\n name: taskReferenceName,\n taskReferenceName,\n decisionCases,\n evaluatorType: \"value-param\",\n inputParameters: {\n switchCaseValue: expression,\n },\n expression: \"switchCaseValue\",\n defaultCase,\n type: TaskType.SWITCH,\n});\n","import { TaskType, TerminateTaskDef } from \"../types\";\nexport const terminateTask = (\n taskReferenceName: string,\n status: \"COMPLETED\" | \"FAILED\",\n terminationReason?: string\n): TerminateTaskDef => ({\n name: taskReferenceName,\n taskReferenceName,\n inputParameters: {\n terminationStatus: status,\n terminationReason,\n },\n type: TaskType.TERMINATE,\n});\n","import { TaskType, WaitTaskDef } from \"../types\";\n\nexport const waitTaskDuration = (taskReferenceName:string,duration:string):WaitTaskDef =>({\n name:taskReferenceName,\n taskReferenceName,\n inputParameters:{\n duration\n },\n type:TaskType.WAIT\n});\n\nexport const waitTaskUntil = (taskReferenceName:string,until:string):WaitTaskDef =>({\n name:taskReferenceName,\n taskReferenceName,\n inputParameters:{\n until\n },\n type:TaskType.WAIT\n})","import { WorkflowDef, TaskDefTypes } from \"../types\";\n\nexport const workflow = (name: string, tasks: TaskDefTypes[]): WorkflowDef => ({\n name,\n version: 1,\n tasks,\n inputParameters: [],\n timeoutSeconds: 0,\n});\n","import { WorkflowDef } from \"../common\";\n\nexport interface StartWorkflowRequest<I = Record<string, any>> {\n name: string;\n version: number;\n correlationId?: string;\n input?: I;\n taskToDomain?: Record<string, string>;\n workflowDef?: WorkflowDef;\n externalInputPayloadStoragePath?: string;\n priority?: number;\n}\n\nexport interface RerunWorkflowRequest<I = Record<string, any>> {\n workflowInput: I;\n rerunFromTaskId?: string;\n taskInput: Record<string, any>;\n correlationId: string;\n}\n\nexport interface SkipTaskRequest {\n taskInput: Record<string, any>;\n taskOutput: Record<string, any>;\n}\n\nexport class ConductorError extends Error {\n private _trace;\n private __proto__: any;\n\n constructor(message?: string, innerError?: Error) {\n super(message);\n this._trace = innerError;\n const actualProto = new.target.prototype;\n\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(this, actualProto);\n } else {\n this.__proto__ = actualProto;\n }\n }\n}\n\nexport enum TaskResult {\n IN_PROGRESS = \"IN_PROGRESS\",\n FAILED = \"FAILED\",\n FAILED_WITH_TERMINAL_ERROR = \"FAILED_WITH_TERMINAL_ERROR\",\n COMPLETED = \"COMPLETED\",\n}\n","import { ConductorClient, WorkflowDef } from \"../common\";\nimport { Workflow } from \"../common/open-api\";\nimport {\n StartWorkflowRequest,\n RerunWorkflowRequest,\n SkipTaskRequest,\n TaskResult,\n ConductorError,\n} from \"./types\";\n\nconst RETRY_TIME_IN_MILLISECONDS = 10000;\n\nconst errorMapper = (error: any): ConductorError =>\n new ConductorError(error?.body?.message, error);\n\nconst tryCatchReThrow = (fn: Function) => {\n try {\n return fn();\n } catch (error) {\n throw errorMapper(error);\n }\n};\n\nexport class WorkflowExecutor {\n public readonly _client: ConductorClient;\n\n constructor(client: ConductorClient) {\n this._client = client;\n }\n /**\n * Will persist a workflow in conductor\n * @param override If true will override the existing workflow with the definition\n * @param workflow Complete workflow definition\n * @returns null\n */\n\n public registerWorkflow(override: boolean, workflow: WorkflowDef) {\n return tryCatchReThrow(() =>\n this._client.metadataResource.create(workflow, override)\n );\n }\n /**\n * Takes a StartWorkflowRequest. returns a Promise<string> with the workflowInstanceId of the running workflow\n * @param workflowRequest\n * @returns\n */\n public startWorkflow(workflowRequest: StartWorkflowRequest): Promise<string> {\n return tryCatchReThrow(() =>\n this._client.workflowResource.startWorkflow(workflowRequest)\n );\n }\n\n public startWorkflows(\n workflowsRequest: StartWorkflowRequest[]\n ): Promise<string>[] {\n return tryCatchReThrow(() => workflowsRequest.map(this.startWorkflow));\n }\n /**\n * Takes an workflowInstanceId and an includeTasks and an optional retry parameter returns the whole execution status.\n * If includeTasks flag is provided. Details of tasks execution will be returned as well,\n * retry specifies the amount of retrys before throwing an error.\n *\n * @param workflowInstanceId\n * @param includeTasks\n * @param retry\n * @returns\n */\n public async getWorkflow(\n workflowInstanceId: string,\n includeTasks: boolean,\n retry: number = 0\n ): Promise<Workflow> {\n try {\n const workflowStatus =\n await this._client.workflowResource.getExecutionStatus(\n workflowInstanceId,\n includeTasks\n );\n return workflowStatus;\n } catch (error: any) {\n if (![500, 404, 403].includes(error.status) || retry === 0) {\n throw errorMapper(error);\n }\n }\n\n await new Promise((res) =>\n setTimeout(() => res(true), RETRY_TIME_IN_MILLISECONDS)\n );\n\n return this.getWorkflow(workflowInstanceId, includeTasks, retry - 1);\n }\n\n /**\n * Returns a summary of the current workflow status.\n *\n * @param workflowInstanceId current running workflow\n * @param includeOutput flag to include output\n * @param includeVariables flag to include variable\n * @returns Promise<WorkflowStatus>\n */\n public getWorkflowStatus(\n workflowInstanceId: string,\n includeOutput: boolean,\n includeVariables: boolean\n ) {\n return tryCatchReThrow(() =>\n this._client.workflowResource.getWorkflowStatusSummary(\n workflowInstanceId,\n includeOutput,\n includeVariables\n )\n );\n }\n\n /**\n * Pauses a running workflow\n * @param workflowInstanceId current workflow execution\n * @returns\n */\n public pause(workflowInstanceId: string) {\n return tryCatchReThrow(() =>\n this._client.workflowResource.pauseWorkflow(workflowInstanceId)\n );\n }\n /**\n * Reruns workflowInstanceId workflow. with new parameters\n *\n * @param workflowInstanceId current workflow execution\n * @param rerunWorkflowRequest Rerun Workflow Execution Request\n * @returns\n */\n public reRun(\n workflowInstanceId: string,\n rerunWorkflowRequest: Partial<RerunWorkflowRequest> = {}\n ) {\n return tryCatchReThrow(() =>\n this._client.workflowResource.rerun(workflowInstanceId, rerunWorkflowRequest)\n );\n }\n\n /**\n * Restarts workflow with workflowInstanceId, if useLatestDefinition uses last defintion\n * @param workflowInstanceId\n * @param useLatestDefinitions\n * @returns\n */\n public restart(workflowInstanceId: string, useLatestDefinitions: boolean) {\n return tryCatchReThrow(() =>\n this._client.workflowResource.restart1(workflowInstanceId, useLatestDefinitions)\n );\n }\n\n /**\n * Resumes a previously paused execution\n *\n * @param workflowInstanceId Running workflow workflowInstanceId\n * @returns\n */\n public resume(workflowInstanceId: string) {\n return tryCatchReThrow(() =>\n this._client.workflowResource.resumeWorkflow(workflowInstanceId)\n );\n }\n\n /**\n * Retrys workflow from last failing task\n * if resumeSubworkflowTasks is true will resume tasks in spawned subworkflows\n *\n * @param workflowInstanceId\n * @param resumeSubworkflowTasks\n * @returns\n */\n public retry(workflowInstanceId: string, resumeSubworkflowTasks: boolean) {\n return tryCatchReThrow(() =>\n this._client.workflowResource.retry1(workflowInstanceId, resumeSubworkflowTasks)\n );\n }\n /**\n * Searches for existing workflows given the following querys\n *\n * @param start\n * @param size\n * @param query\n * @param freeText\n * @param sort\n * @param skipCache\n * @returns\n */\n public search(\n start: number,\n size: number,\n query: string,\n freeText: string,\n sort: string = \"\",\n skipCache: boolean = false\n ) {\n const queryId = undefined;\n return tryCatchReThrow(() =>\n this._client.workflowResource.search1(\n queryId,\n start,\n size,\n sort,\n freeText,\n query,\n skipCache\n )\n );\n }\n /**\n * Skips a task of a running workflow.\n * by providing a skipTaskRequest you can set the input and the output of the skipped tasks\n * @param workflowInstanceId\n * @param taskReferenceName\n * @param skipTaskRequest\n * @returns\n */\n public skipTasksFromWorkflow(\n workflowInstanceId: string,\n taskReferenceName: string,\n skipTaskRequest: Partial<SkipTaskRequest>\n ) {\n return tryCatchReThrow(() =>\n this._client.workflowResource.skipTaskFromWorkflow(\n workflowInstanceId,\n taskReferenceName,\n skipTaskRequest\n )\n );\n }\n/**\n * Takes an workflowInstanceId, and terminates a running workflow\n * @param workflowInstanceId \n * @param reason \n * @returns \n */\n public terminate(workflowInstanceId: string, reason: string) {\n return tryCatchReThrow(() =>\n this._client.workflowResource.terminate1(workflowInstanceId, reason)\n );\n }\n\n /**\n * Takes a taskId and a workflowInstanceId. Will update the task for the corresponding taskId\n * @param taskId \n * @param workflowInstanceId \n * @param taskStatus \n * @param taskOutput \n * @returns \n */\n public updateTask(\n taskId: string,\n workflowInstanceId: string,\n taskStatus: TaskResult,\n taskOutput: Record<string, any> // TODO this can be typed.\n ) {\n const taskUpdates = {\n status: taskStatus,\n taskId,\n workflowInstanceId,\n };\n return tryCatchReThrow(() =>\n this._client.taskResource.updateTask1({\n ...taskOutput,\n ...taskUpdates,\n })\n );\n }\n/**\n * Updates a task by reference Name\n * @param taskReferenceName \n * @param workflowInstanceId \n * @param status \n * @param taskOutput \n * @returns \n */\n public updateTaskByRefName(\n taskReferenceName: string,\n workflowInstanceId: string,\n status: TaskResult,\n taskOutput: Record<string, any>\n ) {\n return tryCatchReThrow(() =>\n this._client.taskResource.updateTask(\n workflowInstanceId,\n taskReferenceName,\n status,\n taskOutput\n )\n );\n }\n}\n"],"mappings":"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","names":[]}