swagger: "2.0" info: { version: "", title: "" } paths: /jobs: get: tags: [ "jobs" ] summary: "List jobs" operationId: "listJobs" responses: "200": description: "successful operation" schema: { type: array, items: { $ref: "#/definitions/JobResponse" } } examples: test: - id: "b81c2366-ea37-43d2-b61b-03afdc21d985" automation: "hash.sha1" payload: "test" status: "created" security: [ { roles: [ "job:read" ] } ] post: tags: [ "jobs" ] summary: "Start a new job" operationId: "runJob" parameters: - { name: "job", in: "body", description: "New job", required: true, schema: { $ref: "#/definitions/JobForm" }, x-example: { automation: "hash.sha1", payload: "test" } } responses: "200": description: "successful operation" schema: { $ref: "#/definitions/JobResponse" } examples: test: { id: "87390749-2125-4a87-91c5-da7e3f9bebf1", automation: "hash.sha1", payload: "test", status: "created" } security: [ { roles: [ "job:write" ] } ] /jobs/{id}: get: tags: [ "jobs" ] summary: "Get a single job" operationId: "getJob" parameters: - { name: "id", in: "path", description: "Job ID", required: true, type: string, x-example: "b81c2366-ea37-43d2-b61b-03afdc21d985" } responses: "200": description: "successful operation" schema: { $ref: "#/definitions/JobResponse" } examples: test: { id: "b81c2366-ea37-43d2-b61b-03afdc21d985", automation: "hash.sha1", payload: "test", status: "created" } security: [ { roles: [ "job:read" ] } ] put: tags: [ "jobs" ] summary: "Update an existing job" operationId: "updateJob" parameters: - { name: "id", in: "path", description: "Job ID", required: true, type: string, x-example: "b81c2366-ea37-43d2-b61b-03afdc21d985" } - { name: "job", in: "body", description: "Job object that needs to be added", required: true, schema: { $ref: "#/definitions/JobUpdate" }, x-example: { status: "failed", running: false } } responses: "200": description: "successful operation" schema: { $ref: "#/definitions/JobResponse" } examples: test: { id: "b81c2366-ea37-43d2-b61b-03afdc21d985", automation: "hash.sha1", payload: "test", status: "failed" } security: [ { roles: [ "job:write" ] } ] definitions: Message: type: object properties: payload: { } secrets: { type: object, additionalProperties: { type: string } } context: { $ref: "#/definitions/Context" } Context: type: object properties: artifact: { $ref: "#/definitions/Artifact" } playbook: { $ref: "#/definitions/PlaybookResponse" } task: { $ref: "#/definitions/TaskResponse" } ticket: { $ref: "#/definitions/TicketResponse" } Origin: type: object properties: task_origin: { $ref: "#/definitions/TaskOrigin" } artifact_origin: { $ref: "#/definitions/ArtifactOrigin" } TaskOrigin: type: object required: [ ticket_id, playbook_id, task_id ] properties: ticket_id: { type: integer, format: int64 } playbook_id: { type: string } task_id: { type: string } ArtifactOrigin: type: object required: [ ticket_id, artifact ] properties: ticket_id: { type: integer, format: int64 } artifact: { type: string } JobForm: type: object required: [ automation ] properties: automation: { type: string } payload: { } origin: { $ref: "#/definitions/Origin" } JobUpdate: type: object required: [ running, status ] properties: container: { type: string } running: { type: boolean } status: { type: string } log: { type: string } output: { type: object } Job: type: object required: [ automation, running, status ] properties: automation: { type: string } container: { type: string } payload: { } running: { type: boolean } status: { type: string } log: { type: string } output: { type: object } origin: { $ref: "#/definitions/Origin" } JobResponse: type: object required: [ id, automation, status ] properties: id: { type: string } automation: { type: string } container: { type: string } status: { type: string } payload: { } log: { type: string } output: { type: object } origin: { $ref: "#/definitions/Origin" }