openapi: 3.1.0 info: title: Netflix Conductor REST API description: >- The Conductor REST API provides endpoints for managing workflow definitions, executing workflows, handling tasks, and managing metadata in the Conductor microservices orchestration engine. version: 3.x contact: name: Conductor OSS url: https://conductor-oss.org/ license: name: Apache 2.0 url: https://www.apache.org/licenses/LICENSE-2.0 servers: - url: '{baseUrl}/api' description: Conductor Server variables: baseUrl: default: http://localhost:8080 paths: /metadata/workflow: get: operationId: listWorkflowDefinitions summary: List workflow definitions description: Returns all registered workflow definitions. tags: - Metadata responses: '200': description: Successful response content: application/json: schema: type: array items: $ref: '#/components/schemas/WorkflowDef' post: operationId: registerWorkflowDefinition summary: Register a workflow definition description: Registers a new workflow definition. tags: - Metadata requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/WorkflowDef' responses: '204': description: Workflow definition registered put: operationId: updateWorkflowDefinitions summary: Update workflow definitions description: Updates existing workflow definitions. tags: - Metadata requestBody: required: true content: application/json: schema: type: array items: $ref: '#/components/schemas/WorkflowDef' responses: '204': description: Workflow definitions updated /metadata/workflow/{name}: get: operationId: getWorkflowDefinition summary: Get workflow definition description: Returns a specific workflow definition by name. tags: - Metadata parameters: - name: name in: path required: true schema: type: string - name: version in: query schema: type: integer responses: '200': description: Successful response content: application/json: schema: $ref: '#/components/schemas/WorkflowDef' delete: operationId: deleteWorkflowDefinition summary: Delete a workflow definition description: Deletes a workflow definition by name and version. tags: - Metadata parameters: - name: name in: path required: true schema: type: string - name: version in: query schema: type: integer responses: '204': description: Workflow definition deleted /metadata/taskdefs: get: operationId: listTaskDefinitions summary: List task definitions description: Returns all registered task definitions. tags: - Metadata responses: '200': description: Successful response content: application/json: schema: type: array items: $ref: '#/components/schemas/TaskDef' post: operationId: registerTaskDefinitions summary: Register task definitions description: Registers new task definitions. tags: - Metadata requestBody: required: true content: application/json: schema: type: array items: $ref: '#/components/schemas/TaskDef' responses: '204': description: Task definitions registered /metadata/taskdefs/{taskType}: get: operationId: getTaskDefinition summary: Get task definition description: Returns a specific task definition by name. tags: - Metadata parameters: - name: taskType in: path required: true schema: type: string responses: '200': description: Successful response content: application/json: schema: $ref: '#/components/schemas/TaskDef' delete: operationId: deleteTaskDefinition summary: Delete a task definition description: Deletes a task definition by name. tags: - Metadata parameters: - name: taskType in: path required: true schema: type: string responses: '204': description: Task definition deleted /workflow: post: operationId: startWorkflow summary: Start a workflow description: Starts a new workflow execution. tags: - Workflow requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/StartWorkflowRequest' responses: '200': description: Successful response content: text/plain: schema: type: string description: Workflow ID /workflow/{workflowId}: get: operationId: getWorkflow summary: Get workflow execution description: Returns the execution details of a specific workflow. tags: - Workflow parameters: - name: workflowId in: path required: true schema: type: string - name: includeTasks in: query schema: type: boolean default: true responses: '200': description: Successful response content: application/json: schema: $ref: '#/components/schemas/Workflow' delete: operationId: terminateWorkflow summary: Terminate a workflow description: Terminates a running workflow execution. tags: - Workflow parameters: - name: workflowId in: path required: true schema: type: string - name: reason in: query schema: type: string responses: '204': description: Workflow terminated /workflow/{workflowId}/pause: put: operationId: pauseWorkflow summary: Pause a workflow description: Pauses a running workflow execution. tags: - Workflow parameters: - name: workflowId in: path required: true schema: type: string responses: '204': description: Workflow paused /workflow/{workflowId}/resume: put: operationId: resumeWorkflow summary: Resume a workflow description: Resumes a paused workflow execution. tags: - Workflow parameters: - name: workflowId in: path required: true schema: type: string responses: '204': description: Workflow resumed /workflow/{workflowId}/restart: post: operationId: restartWorkflow summary: Restart a workflow description: Restarts a completed or terminated workflow from the beginning. tags: - Workflow parameters: - name: workflowId in: path required: true schema: type: string - name: useLatestDefinitions in: query schema: type: boolean default: false responses: '204': description: Workflow restarted /workflow/{workflowId}/retry: post: operationId: retryWorkflow summary: Retry a workflow description: Retries a failed workflow from the last failed task. tags: - Workflow parameters: - name: workflowId in: path required: true schema: type: string - name: resumeSubworkflowTasks in: query schema: type: boolean default: false responses: '204': description: Workflow retried /workflow/{workflowId}/rerun: post: operationId: rerunWorkflow summary: Rerun a workflow description: Reruns a completed workflow from a specific task. tags: - Workflow parameters: - name: workflowId in: path required: true schema: type: string requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/RerunWorkflowRequest' responses: '200': description: Successful response content: text/plain: schema: type: string /workflow/{workflowId}/skiptask/{taskReferenceName}: put: operationId: skipTask summary: Skip a task description: Skips a specific task in a running workflow. tags: - Workflow parameters: - name: workflowId in: path required: true schema: type: string - name: taskReferenceName in: path required: true schema: type: string responses: '204': description: Task skipped /workflow/search: get: operationId: searchWorkflows summary: Search workflows description: Search for workflow executions based on query parameters. tags: - Workflow parameters: - name: start in: query schema: type: integer default: 0 - name: size in: query schema: type: integer default: 100 - name: sort in: query schema: type: string - name: freeText in: query schema: type: string - name: query in: query schema: type: string responses: '200': description: Successful response content: application/json: schema: $ref: '#/components/schemas/SearchResult' /tasks/poll/{taskType}: get: operationId: pollTask summary: Poll for a task description: Polls for a task of a given type for a worker. tags: - Tasks parameters: - name: taskType in: path required: true schema: type: string - name: workerid in: query schema: type: string - name: domain in: query schema: type: string responses: '200': description: Successful response content: application/json: schema: $ref: '#/components/schemas/Task' /tasks/poll/batch/{taskType}: get: operationId: batchPollTasks summary: Batch poll for tasks description: Polls for multiple tasks of a given type. tags: - Tasks parameters: - name: taskType in: path required: true schema: type: string - name: workerid in: query schema: type: string - name: count in: query schema: type: integer default: 1 - name: timeout in: query schema: type: integer default: 100 responses: '200': description: Successful response content: application/json: schema: type: array items: $ref: '#/components/schemas/Task' /tasks: post: operationId: updateTask summary: Update task status description: Updates the status of a task with results. tags: - Tasks requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/TaskResult' responses: '200': description: Successful response content: text/plain: schema: type: string /tasks/{taskId}: get: operationId: getTask summary: Get task details description: Returns details of a specific task. tags: - Tasks parameters: - name: taskId in: path required: true schema: type: string responses: '200': description: Successful response content: application/json: schema: $ref: '#/components/schemas/Task' /tasks/queue/sizes: get: operationId: getTaskQueueSizes summary: Get task queue sizes description: Returns the sizes of task queues. tags: - Tasks parameters: - name: taskType in: query schema: type: array items: type: string responses: '200': description: Successful response content: application/json: schema: type: object additionalProperties: type: integer /event: get: operationId: listEventHandlers summary: List event handlers description: Returns all registered event handlers. tags: - Events responses: '200': description: Successful response content: application/json: schema: type: array items: $ref: '#/components/schemas/EventHandler' post: operationId: createEventHandler summary: Create event handler description: Registers a new event handler. tags: - Events requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/EventHandler' responses: '204': description: Event handler created components: schemas: WorkflowDef: type: object required: - name - tasks properties: name: type: string description: type: string version: type: integer tasks: type: array items: $ref: '#/components/schemas/WorkflowTask' inputParameters: type: array items: type: string outputParameters: type: object schemaVersion: type: integer restartable: type: boolean workflowStatusListenerEnabled: type: boolean timeoutSeconds: type: integer format: int64 timeoutPolicy: type: string enum: - TIME_OUT_WF - ALERT_ONLY failureWorkflow: type: string ownerEmail: type: string WorkflowTask: type: object required: - name - taskReferenceName - type properties: name: type: string taskReferenceName: type: string type: type: string enum: - SIMPLE - DYNAMIC - FORK_JOIN - FORK_JOIN_DYNAMIC - DECISION - SWITCH - JOIN - DO_WHILE - SUB_WORKFLOW - EVENT - WAIT - HUMAN - HTTP - INLINE - JSON_JQ_TRANSFORM - SET_VARIABLE - TERMINATE inputParameters: type: object dynamicTaskNameParam: type: string caseValueParam: type: string caseExpression: type: string decisionCases: type: object defaultCase: type: array items: $ref: '#/components/schemas/WorkflowTask' forkTasks: type: array items: type: array items: $ref: '#/components/schemas/WorkflowTask' joinOn: type: array items: type: string subWorkflowParam: type: object optional: type: boolean startDelay: type: integer retryCount: type: integer TaskDef: type: object required: - name properties: name: type: string description: type: string retryCount: type: integer timeoutSeconds: type: integer format: int64 inputKeys: type: array items: type: string outputKeys: type: array items: type: string timeoutPolicy: type: string enum: - RETRY - TIME_OUT_WF - ALERT_ONLY retryLogic: type: string enum: - FIXED - EXPONENTIAL_BACKOFF - LINEAR_BACKOFF retryDelaySeconds: type: integer responseTimeoutSeconds: type: integer format: int64 concurrentExecLimit: type: integer rateLimitPerFrequency: type: integer rateLimitFrequencyInSeconds: type: integer ownerEmail: type: string pollTimeoutSeconds: type: integer StartWorkflowRequest: type: object required: - name properties: name: type: string version: type: integer correlationId: type: string input: type: object taskToDomain: type: object additionalProperties: type: string externalInputPayloadStoragePath: type: string priority: type: integer Workflow: type: object properties: workflowId: type: string workflowName: type: string workflowVersion: type: integer correlationId: type: string status: type: string enum: - RUNNING - COMPLETED - FAILED - TIMED_OUT - TERMINATED - PAUSED input: type: object output: type: object tasks: type: array items: $ref: '#/components/schemas/Task' startTime: type: integer format: int64 endTime: type: integer format: int64 updateTime: type: integer format: int64 reasonForIncompletion: type: string priority: type: integer failedReferenceTaskNames: type: array items: type: string Task: type: object properties: taskId: type: string taskType: type: string status: type: string enum: - IN_PROGRESS - COMPLETED - FAILED - TIMED_OUT - CANCELED - SCHEDULED referenceTaskName: type: string workflowInstanceId: type: string inputData: type: object outputData: type: object scheduledTime: type: integer format: int64 startTime: type: integer format: int64 endTime: type: integer format: int64 retryCount: type: integer pollCount: type: integer callbackAfterSeconds: type: integer format: int64 workerId: type: string TaskResult: type: object required: - workflowInstanceId - taskId - status properties: workflowInstanceId: type: string taskId: type: string status: type: string enum: - IN_PROGRESS - COMPLETED - FAILED outputData: type: object reasonForIncompletion: type: string callbackAfterSeconds: type: integer format: int64 workerId: type: string RerunWorkflowRequest: type: object properties: reRunFromWorkflowId: type: string reRunFromTaskId: type: string workflowInput: type: object taskInput: type: object correlationId: type: string SearchResult: type: object properties: totalHits: type: integer format: int64 results: type: array items: $ref: '#/components/schemas/Workflow' EventHandler: type: object properties: name: type: string event: type: string condition: type: string actions: type: array items: type: object active: type: boolean