openapi: 3.0.3
info:
title: Apache Oozie REST Admin Job API
description: The Oozie Web Services API provides REST endpoints for submitting, managing, and monitoring workflow, coordinator, and bundle jobs on Apache Hadoop. The API supports job lifecycle management (submit, start, suspend, resume, kill, rerun), status monitoring, log retrieval, DAG visualization, and system administration. Authentication is handled by the Hadoop security layer (Kerberos or SPNEGO when security is enabled).
version: 5.2.1
license:
name: Apache 2.0
identifier: Apache-2.0
contact:
name: Apache Oozie
url: https://oozie.apache.org
servers:
- url: http://localhost:11000/oozie
description: Apache Oozie server (default port 11000)
tags:
- name: Job
description: Single job lifecycle management and information retrieval
paths:
/v1/job/{job-id}:
get:
tags:
- Job
summary: Apache Oozie Get Job Info
description: 'Returns information, definition, logs, or graph for a specific job. Use the show parameter to control response type: info (default), definition, log, graph.'
operationId: getJobInfo
parameters:
- $ref: '#/components/parameters/jobId'
- name: show
in: query
required: false
description: Type of information to return.
schema:
type: string
enum:
- info
- definition
- log
- graph
default: info
example: info
- name: timezone
in: query
required: false
description: Timezone for date formatting.
schema:
type: string
default: GMT
- name: offset
in: query
required: false
description: Offset for action pagination within the job.
schema:
type: integer
- name: len
in: query
required: false
description: Number of actions to return.
schema:
type: integer
- name: format
in: query
required: false
description: Graph format (only when show=graph).
schema:
type: string
enum:
- png
- svg
- dot
- name: logfilter
in: query
required: false
description: Log filter (only when show=log) as semicolon-delimited key=value pairs.
schema:
type: string
responses:
'200':
description: Job information, definition, log, or graph.
content:
application/json:
schema:
$ref: '#/components/schemas/JobInfo'
examples:
GetJobInfo200Example:
summary: Default getJobInfo 200 response
x-microcks-default: true
value:
id: 0000001-200101120000000-oozie-admin-W
appName: my-workflow
status: RUNNING
user: admin
group: users
startTime: '2021-01-01T12:00:00.000Z'
endTime: null
actions: []
'400':
$ref: '#/components/responses/BadRequest'
'404':
$ref: '#/components/responses/NotFound'
'500':
$ref: '#/components/responses/InternalServerError'
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
put:
tags:
- Job
summary: Apache Oozie Manage Job
description: 'Apply a management action to a specific job. Supported actions: start, suspend, resume, kill, dryrun, rerun, coord-rerun, bundle-rerun, change, ignore, sla-change, sla-disable, sla-enable.'
operationId: manageJob
parameters:
- $ref: '#/components/parameters/jobId'
- name: action
in: query
required: true
description: Action to apply to the job.
schema:
type: string
enum:
- start
- suspend
- resume
- kill
- dryrun
- rerun
- coord-rerun
- bundle-rerun
- change
- ignore
- sla-change
- sla-disable
- sla-enable
example: start
- name: value
in: query
required: false
description: Value parameter for change/sla-change/sla-disable/sla-enable actions.
schema:
type: string
- name: type
in: query
required: false
description: Rerun type (action or date) for coord-rerun action.
schema:
type: string
enum:
- action
- date
- name: scope
in: query
required: false
description: Scope of actions to rerun (e.g., 1-2 for action range, date range for date type).
schema:
type: string
- name: refresh
in: query
required: false
description: Whether to refresh coordinator configuration on rerun.
schema:
type: boolean
- name: nocleanup
in: query
required: false
description: Whether to skip cleanup of workflow output directories on rerun.
schema:
type: boolean
requestBody:
required: false
description: XML configuration for rerun or update actions.
content:
application/xml:
schema:
type: string
responses:
'200':
description: Action applied successfully.
'400':
$ref: '#/components/responses/BadRequest'
'404':
$ref: '#/components/responses/NotFound'
'500':
$ref: '#/components/responses/InternalServerError'
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/v2/job/{job-id}:
get:
tags:
- Job
summary: Apache Oozie Get Job Info v2
description: 'Version 2 of job information retrieval. Supports additional show options: errorlog, auditlog, status, jmstopic, retries, allruns, missing-dependencies.'
operationId: getJobInfoV2
parameters:
- $ref: '#/components/parameters/jobId'
- name: show
in: query
required: false
description: Type of information to return.
schema:
type: string
enum:
- info
- definition
- log
- errorlog
- auditlog
- graph
- status
- jmstopic
- retries
- allruns
- missing-dependencies
default: info
- name: timezone
in: query
required: false
description: Timezone for date formatting.
schema:
type: string
- name: type
in: query
required: false
description: Filter type for allruns (action).
schema:
type: string
- name: action-list
in: query
required: false
description: Comma-separated action IDs for missing-dependencies or SLA operations.
schema:
type: string
responses:
'200':
description: Job information in the requested format.
content:
application/json:
schema:
$ref: '#/components/schemas/JobInfo'
examples:
GetJobInfoV2200Example:
summary: Default getJobInfoV2 200 response
x-microcks-default: true
value:
id: 0000001-200101120000000-oozie-admin-C
appName: my-coordinator
status: RUNNING
user: admin
'400':
$ref: '#/components/responses/BadRequest'
'404':
$ref: '#/components/responses/NotFound'
'500':
$ref: '#/components/responses/InternalServerError'
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
put:
tags:
- Job
summary: Apache Oozie Manage Job v2
description: 'Version 2 of job management. Supports additional actions: update (coordinator definition update), ignore, sla-change, sla-disable, sla-enable.'
operationId: manageJobV2
parameters:
- $ref: '#/components/parameters/jobId'
- name: action
in: query
required: true
description: Action to apply to the job.
schema:
type: string
enum:
- update
- ignore
- sla-change
- sla-disable
- sla-enable
- name: type
in: query
required: false
description: Ignore type (action).
schema:
type: string
- name: scope
in: query
required: false
description: Scope of actions to ignore (e.g., 3-4).
schema:
type: string
- name: value
in: query
required: false
description: SLA change value as key=value pairs.
schema:
type: string
- name: action-list
in: query
required: false
description: Comma-separated action list for SLA enable/disable.
schema:
type: string
requestBody:
required: false
description: XML configuration for coordinator update action.
content:
application/xml:
schema:
type: string
responses:
'200':
description: Action applied successfully.
'400':
$ref: '#/components/responses/BadRequest'
'404':
$ref: '#/components/responses/NotFound'
'500':
$ref: '#/components/responses/InternalServerError'
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
components:
schemas:
ErrorResponse:
type: object
description: Standard Oozie error response.
properties:
httpStatusCode:
type: integer
description: HTTP status code.
example: 400
oozieErrorCode:
type: string
description: Oozie-specific error code.
example: E0401
message:
type: string
description: Human-readable error message.
example: Command exception
JobAction:
type: object
description: A single action within a workflow job.
properties:
id:
type: string
description: Action identifier.
example: 0000001-200101120000000-oozie-admin-W@action1
name:
type: string
description: Action name as defined in the workflow.
example: my-map-reduce
type:
type: string
description: Action type (map-reduce, pig, hive, etc.).
example: map-reduce
status:
type: string
description: Current action status.
example: OK
startTime:
type: string
format: date-time
description: Action start timestamp.
example: '2021-01-01T12:00:00.000Z'
endTime:
type: string
format: date-time
description: Action end timestamp.
example: '2021-01-01T12:05:00.000Z'
errorCode:
type: string
description: Error code if the action failed.
example: null
errorMessage:
type: string
description: Error message if the action failed.
example: null
JobInfo:
type: object
description: Full information about a workflow, coordinator, or bundle job.
properties:
id:
type: string
description: Job identifier.
example: 0000001-200101120000000-oozie-admin-W
appName:
type: string
description: Application name from the workflow definition.
example: my-workflow
appPath:
type: string
description: HDFS path to the workflow application.
example: hdfs://localhost:8020/user/admin/workflow
status:
type: string
description: Current job status.
example: RUNNING
user:
type: string
description: User who submitted the job.
example: admin
group:
type: string
description: User group for the job.
example: users
startTime:
type: string
format: date-time
description: Job start timestamp.
example: '2021-01-01T12:00:00.000Z'
endTime:
type: string
format: date-time
description: Job end timestamp (null if still running).
lastModTime:
type: string
format: date-time
description: Last modification timestamp.
createdTime:
type: string
format: date-time
description: Job creation timestamp.
run:
type: integer
description: Run number for rerun tracking.
example: 0
actions:
type: array
description: List of actions within the job (workflow jobs only).
items:
$ref: '#/components/schemas/JobAction'
responses:
NotFound:
description: Job or resource not found.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
BadRequest:
description: Bad request - invalid parameters or configuration.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
InternalServerError:
description: Internal server error.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
parameters:
jobId:
name: job-id
in: path
required: true
description: The Oozie job identifier (workflow, coordinator, bundle, or action ID).
schema:
type: string
example: 0000001-200101120000000-oozie-admin-W