This is backwards compatible, as long as the timeout is 0 (never timeout), which is the default. In case of the dbjobqueue the underlying timeout is due to context.Canceled, context.DeadlineExceeded, or net.Error with Timeout() true. For the fsjobqueue only the first two are considered.
299 lines
7.1 KiB
YAML
299 lines
7.1 KiB
YAML
openapi: 3.0.0
|
|
info:
|
|
title: OSBuild Composer - Worker
|
|
version: '1'
|
|
description: This is an API for workers to request and handle jobs.
|
|
servers:
|
|
- url: /api/worker/v1
|
|
- url: /api/composer-worker/v1
|
|
|
|
paths:
|
|
/openapi:
|
|
get:
|
|
operationId: getOpenapi
|
|
summary: Get the openapi spec in json format
|
|
responses:
|
|
'200':
|
|
description: openapi spec in json format
|
|
'500':
|
|
description: Unexpected error occurred
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
|
|
/status:
|
|
get:
|
|
operationId: GetStatus
|
|
summary: status
|
|
description: Simple status handler which returns service status
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/StatusResponse'
|
|
'4XX':
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'5XX':
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
|
|
/jobs:
|
|
post:
|
|
operationId: RequestJob
|
|
summary: Request a job
|
|
description: Requests a job. This operation blocks until a job is available.
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/RequestJobRequest'
|
|
responses:
|
|
'201':
|
|
description: Created
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/RequestJobResponse'
|
|
'204':
|
|
description: No job was available, try again
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ObjectReference'
|
|
'4XX':
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'5XX':
|
|
description: ''
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
|
|
/jobs/{token}:
|
|
parameters:
|
|
- schema:
|
|
type: string
|
|
name: token
|
|
in: path
|
|
required: true
|
|
get:
|
|
operationId: GetJob
|
|
summary: Get running job
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/GetJobResponse'
|
|
'4XX':
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'5XX':
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
patch:
|
|
operationId: UpdateJob
|
|
summary: Update a running job
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UpdateJobRequest'
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UpdateJobResponse'
|
|
'4XX':
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'5XX':
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
|
|
/jobs/{token}/artifacts/{name}:
|
|
put:
|
|
operationId: UploadJobArtifact
|
|
summary: Upload an artifact
|
|
requestBody:
|
|
content:
|
|
application/octet-stream:
|
|
schema:
|
|
type: string
|
|
parameters:
|
|
- schema:
|
|
type: string
|
|
name: name
|
|
in: path
|
|
required: true
|
|
- schema:
|
|
type: string
|
|
name: token
|
|
in: path
|
|
required: true
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
'4XX':
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'5XX':
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
|
|
/errors/{id}:
|
|
get:
|
|
operationId: getError
|
|
summary: Get error description
|
|
description: Get an instance of the error specified by id
|
|
security:
|
|
- Bearer: []
|
|
parameters:
|
|
- in: path
|
|
name: id
|
|
schema:
|
|
type: string
|
|
example: '13'
|
|
required: true
|
|
description: ID of the error
|
|
responses:
|
|
'200':
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'4XX':
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'5XX':
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
|
|
components:
|
|
schemas:
|
|
ObjectReference:
|
|
type: object
|
|
required:
|
|
- id
|
|
- kind
|
|
- href
|
|
properties:
|
|
id:
|
|
type: string
|
|
kind:
|
|
type: string
|
|
href:
|
|
type: string
|
|
|
|
Error:
|
|
allOf:
|
|
- $ref: '#/components/schemas/ObjectReference'
|
|
- type: object
|
|
required:
|
|
- code
|
|
- reason
|
|
- operation_id
|
|
- message
|
|
properties:
|
|
code:
|
|
type: string
|
|
reason:
|
|
type: string
|
|
operation_id:
|
|
type: string
|
|
message:
|
|
description: Backward compatibility with workers <= v33, equals reason
|
|
type: string
|
|
|
|
StatusResponse:
|
|
allOf:
|
|
- $ref: '#/components/schemas/ObjectReference'
|
|
- type: object
|
|
required:
|
|
- status
|
|
properties:
|
|
status:
|
|
type: string
|
|
|
|
RequestJobRequest:
|
|
type: object
|
|
required:
|
|
- types
|
|
- arch
|
|
properties:
|
|
types:
|
|
type: array
|
|
items:
|
|
type: string
|
|
arch:
|
|
type: string
|
|
RequestJobResponse:
|
|
allOf:
|
|
- $ref: '#/components/schemas/ObjectReference'
|
|
- type: object
|
|
required:
|
|
- type
|
|
- location
|
|
- artifact_location
|
|
properties:
|
|
location:
|
|
type: string
|
|
artifact_location:
|
|
type: string
|
|
type:
|
|
type: string
|
|
args:
|
|
x-go-type: json.RawMessage
|
|
dynamic_args:
|
|
type: array
|
|
items:
|
|
x-go-type: json.RawMessage
|
|
|
|
GetJobResponse:
|
|
allOf:
|
|
- $ref: '#/components/schemas/ObjectReference'
|
|
- type: object
|
|
required:
|
|
- canceled
|
|
properties:
|
|
canceled:
|
|
type: boolean
|
|
UpdateJobRequest:
|
|
type: object
|
|
required:
|
|
- result
|
|
properties:
|
|
result:
|
|
x-go-type: json.RawMessage
|
|
UpdateJobResponse:
|
|
$ref: '#/components/schemas/ObjectReference'
|