openapi: 3.1.0 info: title: Orkes Conductor REST API description: >- The Orkes Conductor REST API provides endpoints for managing workflows, tasks, human tasks, secrets, schedules, and other resources in the Orkes workflow orchestration platform built on Netflix Conductor. version: 2.0.0 contact: name: Orkes url: https://orkes.io/ license: name: Apache 2.0 url: https://www.apache.org/licenses/LICENSE-2.0 servers: - url: '{baseUrl}/api' description: Orkes Conductor Server variables: baseUrl: default: https://play.orkes.io security: - BearerAuth: [] paths: /metadata/workflow: get: operationId: listWorkflowDefinitions summary: List workflow definitions description: Returns all workflow definitions. tags: - Workflow 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: - Workflow Metadata requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/WorkflowDef' responses: '200': description: Workflow definition registered put: operationId: updateWorkflowDefinitions summary: Update workflow definitions description: Updates existing workflow definitions. tags: - Workflow Metadata requestBody: required: true content: application/json: schema: type: array items: $ref: '#/components/schemas/WorkflowDef' responses: '200': description: Workflow definitions updated /metadata/workflow/{name}: get: operationId: getWorkflowDefinition summary: Get workflow definition description: Returns a workflow definition by name and optional version. tags: - Workflow 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. tags: - Workflow Metadata parameters: - name: name in: path required: true schema: type: string - name: version in: query schema: type: integer responses: '200': description: Workflow definition deleted /metadata/taskdefs: get: operationId: listTaskDefinitions summary: List task definitions description: Returns all task definitions. tags: - Task 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: - Task Metadata requestBody: required: true content: application/json: schema: type: array items: $ref: '#/components/schemas/TaskDef' responses: '200': description: Task definitions registered /metadata/taskdefs/{taskType}: get: operationId: getTaskDefinition summary: Get task definition description: Returns a specific task definition. tags: - Task 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. tags: - Task Metadata parameters: - name: taskType in: path required: true schema: type: string responses: '200': description: Task definition deleted /workflow: post: operationId: startWorkflow summary: Start a workflow description: Starts a new workflow execution. tags: - Workflow Execution requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/StartWorkflowRequest' responses: '200': description: Successful response content: text/plain: schema: type: string /workflow/{workflowId}: get: operationId: getWorkflowExecution summary: Get workflow execution description: Returns details of a workflow execution. tags: - Workflow Execution parameters: - name: workflowId in: path required: true schema: type: string - name: includeTasks in: query schema: type: boolean 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. tags: - Workflow Execution parameters: - name: workflowId in: path required: true schema: type: string - name: reason in: query schema: type: string responses: '200': description: Workflow terminated /workflow/{workflowId}/pause: put: operationId: pauseWorkflow summary: Pause a workflow description: Pauses a running workflow. tags: - Workflow Execution parameters: - name: workflowId in: path required: true schema: type: string responses: '200': description: Workflow paused /workflow/{workflowId}/resume: put: operationId: resumeWorkflow summary: Resume a workflow description: Resumes a paused workflow. tags: - Workflow Execution parameters: - name: workflowId in: path required: true schema: type: string responses: '200': description: Workflow resumed /workflow/{workflowId}/retry: post: operationId: retryWorkflow summary: Retry a workflow description: Retries a failed workflow from the last failed task. tags: - Workflow Execution parameters: - name: workflowId in: path required: true schema: type: string responses: '200': description: Workflow retried /workflow/{workflowId}/restart: post: operationId: restartWorkflow summary: Restart a workflow description: Restarts a completed workflow. tags: - Workflow Execution parameters: - name: workflowId in: path required: true schema: type: string responses: '200': description: Workflow restarted /workflow/search: get: operationId: searchWorkflows summary: Search workflows description: Search workflow executions. tags: - Workflow Execution parameters: - name: start in: query schema: type: integer - name: size in: query schema: type: integer - 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 /tasks/poll/{taskType}: get: operationId: pollTask summary: Poll for a task description: Polls for a task of a given type. tags: - Tasks parameters: - name: taskType in: path required: true schema: type: string - name: workerid in: query schema: type: string responses: '200': description: Successful response content: application/json: schema: $ref: '#/components/schemas/Task' /tasks: post: operationId: updateTask summary: Update task description: Updates a task with results. tags: - Tasks requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/TaskResult' responses: '200': description: Successful response /human/tasks/search: get: operationId: searchHumanTasks summary: Search human tasks description: Search for human tasks across workflows. tags: - Human Tasks parameters: - name: start in: query schema: type: integer - name: size in: query schema: type: integer - name: query in: query schema: type: string responses: '200': description: Successful response content: application/json: schema: type: object properties: results: type: array items: $ref: '#/components/schemas/HumanTask' totalHits: type: integer /human/tasks/{taskId}: get: operationId: getHumanTask summary: Get a human task description: Returns details of a specific human task. tags: - Human Tasks parameters: - name: taskId in: path required: true schema: type: string responses: '200': description: Successful response content: application/json: schema: $ref: '#/components/schemas/HumanTask' /human/tasks/{taskId}/claim/{userId}: post: operationId: claimHumanTask summary: Claim a human task description: Claims a human task for a specific user. tags: - Human Tasks parameters: - name: taskId in: path required: true schema: type: string - name: userId in: path required: true schema: type: string responses: '200': description: Task claimed /human/tasks/{taskId}/release: post: operationId: releaseHumanTask summary: Release a human task description: Releases a claimed human task. tags: - Human Tasks parameters: - name: taskId in: path required: true schema: type: string responses: '200': description: Task released /human/tasks/{taskId}/complete: post: operationId: completeHumanTask summary: Complete a human task description: Completes a human task with output. tags: - Human Tasks parameters: - name: taskId in: path required: true schema: type: string requestBody: content: application/json: schema: type: object properties: output: type: object responses: '200': description: Task completed /secrets/{key}: get: operationId: getSecret summary: Get a secret description: Returns a secret value (if permitted). tags: - Secrets parameters: - name: key in: path required: true schema: type: string responses: '200': description: Successful response put: operationId: putSecret summary: Create or update a secret description: Creates or updates a secret value. tags: - Secrets parameters: - name: key in: path required: true schema: type: string requestBody: required: true content: text/plain: schema: type: string responses: '200': description: Secret saved delete: operationId: deleteSecret summary: Delete a secret description: Deletes a secret. tags: - Secrets parameters: - name: key in: path required: true schema: type: string responses: '200': description: Secret deleted /secrets: get: operationId: listSecrets summary: List secret names description: Returns a list of all secret names. tags: - Secrets responses: '200': description: Successful response content: application/json: schema: type: array items: type: string /scheduler/schedules: get: operationId: listSchedules summary: List schedules description: Returns all workflow schedules. tags: - Schedules responses: '200': description: Successful response content: application/json: schema: type: array items: $ref: '#/components/schemas/Schedule' post: operationId: createSchedule summary: Create a schedule description: Creates a new workflow schedule. tags: - Schedules requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/Schedule' responses: '200': description: Schedule created /scheduler/schedules/{name}: get: operationId: getSchedule summary: Get a schedule description: Returns a specific workflow schedule. tags: - Schedules parameters: - name: name in: path required: true schema: type: string responses: '200': description: Successful response content: application/json: schema: $ref: '#/components/schemas/Schedule' delete: operationId: deleteSchedule summary: Delete a schedule description: Deletes a workflow schedule. tags: - Schedules parameters: - name: name in: path required: true schema: type: string responses: '200': description: Schedule deleted /scheduler/schedules/{name}/pause: post: operationId: pauseSchedule summary: Pause a schedule description: Pauses a workflow schedule. tags: - Schedules parameters: - name: name in: path required: true schema: type: string responses: '200': description: Schedule paused /scheduler/schedules/{name}/resume: post: operationId: resumeSchedule summary: Resume a schedule description: Resumes a paused workflow schedule. tags: - Schedules parameters: - name: name in: path required: true schema: type: string responses: '200': description: Schedule resumed /token: post: operationId: generateToken summary: Generate access token description: Generates an access token for API authentication. tags: - Authentication requestBody: required: true content: application/json: schema: type: object required: - keyId - keySecret properties: keyId: type: string keySecret: type: string responses: '200': description: Successful response content: application/json: schema: type: object properties: token: type: string components: securitySchemes: BearerAuth: type: http scheme: bearer schemas: WorkflowDef: type: object required: - name - tasks properties: name: type: string description: type: string version: type: integer tasks: type: array items: type: object inputParameters: type: array items: type: string outputParameters: type: object schemaVersion: type: integer restartable: type: boolean timeoutSeconds: type: integer format: int64 timeoutPolicy: type: string failureWorkflow: type: string ownerEmail: type: string TaskDef: type: object required: - name properties: name: type: string description: type: string retryCount: type: integer timeoutSeconds: type: integer format: int64 retryLogic: type: string retryDelaySeconds: type: integer responseTimeoutSeconds: type: integer format: int64 concurrentExecLimit: type: integer rateLimitPerFrequency: type: integer rateLimitFrequencyInSeconds: type: integer ownerEmail: type: string StartWorkflowRequest: type: object required: - name properties: name: type: string version: type: integer correlationId: type: string input: type: object taskToDomain: type: object priority: type: integer Workflow: type: object properties: workflowId: type: string workflowName: type: string workflowVersion: type: integer status: type: string input: type: object output: type: object tasks: type: array items: $ref: '#/components/schemas/Task' startTime: type: integer format: int64 endTime: type: integer format: int64 Task: type: object properties: taskId: type: string taskType: type: string status: type: string referenceTaskName: type: string workflowInstanceId: type: string inputData: type: object outputData: type: object TaskResult: type: object required: - workflowInstanceId - taskId - status properties: workflowInstanceId: type: string taskId: type: string status: type: string outputData: type: object HumanTask: type: object properties: taskId: type: string displayName: type: string state: type: string enum: - PENDING - ASSIGNED - IN_PROGRESS - COMPLETED - TIMED_OUT assignee: type: object properties: userType: type: string user: type: string workflowId: type: string workflowName: type: string input: type: object output: type: object createdOn: type: integer format: int64 Schedule: type: object properties: name: type: string cronExpression: type: string startWorkflowRequest: $ref: '#/components/schemas/StartWorkflowRequest' paused: type: boolean scheduleStartTime: type: integer format: int64 scheduleEndTime: type: integer format: int64