upda/_doc/api.yaml
Varakh 3b0603ae17
Some checks failed
/ build (push) Has been cancelled
feat(db): Drop support for SQLite support (breaking!) (#52)
- only Postgres is supported from now on to reduce maintenance
 - enables building main upda server application for all platforms
 - instead of using ORM auto migrate for database schema creation, switch to proper migration framework utilizing flexible steps and plain sql files
 - library updates

Reviewed-on: #52
Co-authored-by: Varakh <varakh@varakh.de>
Co-committed-by: Varakh <varakh@varakh.de>
2024-12-21 14:11:13 +00:00

2836 lines
74 KiB
YAML

openapi: 3.0.3
info:
title: upda
description: API specification
version: 5.0.0
externalDocs:
description: Find out more about the project
url: https://git.myservermanager.com/varakh/upda
servers:
- url: http://localhost:8080/api/v1
tags:
- name: updates
description: Updates endpoints
- name: webhooks
description: Webhooks endpoints
- name: events
description: Events endpoints
- name: secrets
description: Secrets endpoints
- name: actions
description: Actions endpoints
- name: action-invocations
description: Action invocations endpoints
- name: application
description: Application related endpoints
- name: auth
description: Application authorization related endpoints
paths:
'/info':
get:
tags:
- application
summary: Find application information
description: Find application information
operationId: findInfo
responses:
'200':
description: Successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/InfoResponse'
'/health':
get:
tags:
- application
summary: Find application health
description: Find application health
operationId: findHealth
responses:
'200':
description: Successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/HealthResponse'
/updates:
get:
tags:
- updates
security:
- basicAuth: [ ]
summary: Finds updates
description: Finds updates
operationId: findUpdates
parameters:
- name: page
in: query
description: the page
required: false
schema:
type: number
default: 1
- name: pageSize
in: query
description: the page size
required: false
schema:
type: number
default: 5
- name: order
in: query
description: the order
required: false
schema:
type: string
default: desc
enum:
- asc
- desc
- name: orderBy
in: query
description: the order by
required: false
schema:
type: string
default: updated_at
enum:
- id
- application
- provider
- host
- created_at
- updated_at
- name: state
in: query
description: the state (list, added with &state=...&state=...
required: false
schema:
type: array
items:
type: string
enum:
- pending
- ignored
- approved
- name: searchTerm
in: query
description: the search term
required: false
schema:
type: string
- name: searchIn
in: query
description: the search in
required: false
schema:
type: string
default: application
enum:
- application
- provider
- host
responses:
'200':
description: Successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/UpdatePageResponse'
'400':
description: Bad request
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'404':
description: Not found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'500':
description: Internal error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'/updates/{id}':
get:
tags:
- updates
security:
- basicAuth: [ ]
summary: Finds update by ID
description: Finds update by ID
operationId: findUpdateById
parameters:
- name: id
in: path
description: the id
required: true
schema:
type: string
responses:
'200':
description: Successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateSingleResponse'
'400':
description: Bad request
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'404':
description: Not found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'500':
description: Internal error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
delete:
tags:
- updates
security:
- basicAuth: [ ]
summary: Deletes an update by ID
description: 'Deletes an update by ID'
operationId: deleteUpdateById
parameters:
- name: id
in: path
description: the id
required: true
schema:
type: string
responses:
'204':
description: Successful operation
'400':
description: Bad request
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'404':
description: Not found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'500':
description: Internal error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'/updates/{id}/state':
patch:
tags:
- updates
security:
- basicAuth: [ ]
summary: Modifies update's state by ID
description: Modifies update's state by ID
operationId: patchUpdateStateById
parameters:
- name: id
in: path
description: the id
required: true
schema:
type: string
requestBody:
description: Modifies an update
content:
application/json:
schema:
$ref: '#/components/schemas/ModifyUpdateStateRequest'
responses:
'200':
description: Successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateSingleResponse'
'400':
description: Bad request
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'404':
description: Not found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'500':
description: Internal error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'/webhooks':
post:
tags:
- webhooks
security:
- basicAuth: [ ]
summary: Creates webhook
description: Creates webhook
operationId: createWebhook
requestBody:
description: Creates a webhook
content:
application/json:
schema:
$ref: '#/components/schemas/CreateWebhookRequest'
responses:
'200':
description: Successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/WebhookSingleResponse'
'400':
description: Bad request
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'404':
description: Not found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'500':
description: Internal error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
get:
tags:
- webhooks
security:
- basicAuth: [ ]
summary: Finds webhooks
description: Finds webhooks
operationId: findWebhooks
parameters:
- name: page
in: query
description: the page
required: false
schema:
type: number
default: 1
- name: pageSize
in: query
description: the page size
required: false
schema:
type: number
default: 5
- name: order
in: query
description: the order
required: false
schema:
type: string
default: asc
enum:
- asc
- desc
- name: orderBy
in: query
description: the order by
required: false
schema:
type: string
default: label
enum:
- id
- label
- created_at
- updated_at
responses:
'200':
description: Successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/WebhookPageResponse'
'400':
description: Bad request
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'404':
description: Not found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'500':
description: Internal error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'/webhooks/{id}':
post:
tags:
- webhooks
summary: Invokes a webhook by ID
description: 'Invokes a webhook by ID'
operationId: invokeWebhookById
parameters:
- name: id
in: path
description: the id
required: true
schema:
type: string
- name: X-Webhook-Token
in: header
description: the token for the webhook id
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
oneOf:
- $ref: '#/components/schemas/WebhookGenericRequest'
- $ref: '#/components/schemas/WebhookDiunRequest'
responses:
'204':
description: Successful operation
'400':
description: Bad request
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'404':
description: Not found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'500':
description: Internal error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
get:
tags:
- webhooks
security:
- basicAuth: [ ]
summary: Finds a webhook by ID
description: Finds webhook by ID
operationId: findWebhookById
parameters:
- name: id
in: path
description: the id
required: true
schema:
type: string
responses:
'200':
description: Successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/WebhookSingleResponse'
'400':
description: Bad request
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'404':
description: Not found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'500':
description: Internal error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
delete:
tags:
- webhooks
security:
- basicAuth: [ ]
summary: Deletes a webhook by ID
description: 'Deletes a webhook by ID'
operationId: deleteWebhookById
parameters:
- name: id
in: path
description: the id
required: true
schema:
type: string
responses:
'204':
description: Successful operation
'400':
description: Bad request
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'404':
description: Not found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'500':
description: Internal error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'/webhooks/{id}/label':
patch:
tags:
- webhooks
security:
- basicAuth: [ ]
summary: Modifies webhook's label by ID
description: Modifies webhook's label by ID
operationId: patchWebhookLabelById
parameters:
- name: id
in: path
description: the id
required: true
schema:
type: string
requestBody:
description: Modifies a webhook
content:
application/json:
schema:
$ref: '#/components/schemas/ModifyWebhookLabelRequest'
responses:
'200':
description: Successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/WebhookSingleResponse'
'400':
description: Bad request
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'404':
description: Not found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'500':
description: Internal error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'/webhooks/{id}/ignore-host':
patch:
tags:
- webhooks
security:
- basicAuth: [ ]
summary: Modifies webhook's ignoreHost by ID
description: Modifies webhook's ignoreHost by ID
operationId: patchWebhookIgnoreHostById
parameters:
- name: id
in: path
description: the id
required: true
schema:
type: string
requestBody:
description: Modifies a webhook
content:
application/json:
schema:
$ref: '#/components/schemas/ModifyWebhookIgnoreHostRequest'
responses:
'200':
description: Successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/WebhookSingleResponse'
'400':
description: Bad request
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'404':
description: Not found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'500':
description: Internal error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
/events:
get:
tags:
- events
security:
- basicAuth: [ ]
summary: Finds events
description: Finds events
operationId: findEvents
parameters:
- name: size
in: query
description: the size
required: false
schema:
type: number
default: 10
- name: skip
in: query
description: the skip
required: false
schema:
type: number
default: 0
- name: order
in: query
description: the order
required: false
schema:
type: string
default: desc
enum:
- asc
- desc
- name: orderBy
in: query
description: the order by
required: false
schema:
type: string
default: created_at
enum:
- id
- name
- created_at
- updated_at
responses:
'200':
description: Successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/EventWindowResponse'
'400':
description: Bad request
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'404':
description: Not found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'500':
description: Internal error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'/events/{id}':
get:
tags:
- events
security:
- basicAuth: [ ]
summary: Finds an event by ID
description: Finds event by ID
operationId: findEventById
parameters:
- name: id
in: path
description: the id
required: true
schema:
type: string
responses:
'200':
description: Successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/EventSingleResponse'
'400':
description: Bad request
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'404':
description: Not found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'500':
description: Internal error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
delete:
tags:
- events
security:
- basicAuth: [ ]
summary: Deletes an event by ID
description: 'Deletes a event by ID'
operationId: deleteEventById
parameters:
- name: id
in: path
description: the id
required: true
schema:
type: string
responses:
'204':
description: Successful operation
'400':
description: Bad request
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'404':
description: Not found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'500':
description: Internal error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
/actions:
post:
tags:
- actions
security:
- basicAuth: [ ]
summary: Creates action
description: Creates action
operationId: createAction
requestBody:
description: Creates an action
content:
application/json:
schema:
$ref: '#/components/schemas/CreateActionRequest'
responses:
'200':
description: Successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/ActionSingleResponse'
'400':
description: Bad request
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'404':
description: Not found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'500':
description: Internal error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
get:
tags:
- actions
security:
- basicAuth: [ ]
summary: Finds actions
description: Finds actions
operationId: findActions
parameters:
- name: page
in: query
description: the page
required: false
schema:
type: number
default: 1
- name: pageSize
in: query
description: the page size
required: false
schema:
type: number
default: 5
- name: order
in: query
description: the order
required: false
schema:
type: string
default: asc
enum:
- asc
- desc
- name: orderBy
in: query
description: the order by
required: false
schema:
type: string
default: label
enum:
- id
- label
- type
- created_at
- updated_at
responses:
'200':
description: Successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/ActionPageResponse'
'400':
description: Bad request
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'404':
description: Not found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'500':
description: Internal error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'/actions/{id}/label':
patch:
tags:
- actions
security:
- basicAuth: [ ]
summary: Modifies action's label by ID
description: Modifies action's label by ID
operationId: patchActionLabelById
parameters:
- name: id
in: path
description: the id
required: true
schema:
type: string
requestBody:
description: Modifies an action
content:
application/json:
schema:
$ref: '#/components/schemas/ModifyActionLabelRequest'
responses:
'200':
description: Successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/ActionSingleResponse'
'400':
description: Bad request
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'404':
description: Not found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'500':
description: Internal error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'/actions/{id}/match-event':
patch:
tags:
- actions
security:
- basicAuth: [ ]
summary: Modifies action's matchEvent by ID
description: Modifies action's matchEvent by ID
operationId: patchActionMatchEventById
parameters:
- name: id
in: path
description: the id
required: true
schema:
type: string
requestBody:
description: Modifies an action
content:
application/json:
schema:
$ref: '#/components/schemas/ModifyActionMatchEventRequest'
responses:
'200':
description: Successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/ActionSingleResponse'
'400':
description: Bad request
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'404':
description: Not found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'500':
description: Internal error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'/actions/{id}/match-host':
patch:
tags:
- actions
security:
- basicAuth: [ ]
summary: Modifies action's matchHost by ID
description: Modifies action's matchHost by ID
operationId: patchActionMatchHostById
parameters:
- name: id
in: path
description: the id
required: true
schema:
type: string
requestBody:
description: Modifies an action
content:
application/json:
schema:
$ref: '#/components/schemas/ModifyActionMatchHostRequest'
responses:
'200':
description: Successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/ActionSingleResponse'
'400':
description: Bad request
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'404':
description: Not found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'500':
description: Internal error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'/actions/{id}/match-application':
patch:
tags:
- actions
security:
- basicAuth: [ ]
summary: Modifies action's matchApplication by ID
description: Modifies action's matchApplication by ID
operationId: patchActionMatchApplicationById
parameters:
- name: id
in: path
description: the id
required: true
schema:
type: string
requestBody:
description: Modifies an action
content:
application/json:
schema:
$ref: '#/components/schemas/ModifyActionMatchApplicationRequest'
responses:
'200':
description: Successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/ActionSingleResponse'
'400':
description: Bad request
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'404':
description: Not found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'500':
description: Internal error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'/actions/{id}/match-provider':
patch:
tags:
- actions
security:
- basicAuth: [ ]
summary: Modifies action's matchProvider by ID
description: Modifies action's matchProvider by ID
operationId: patchActionMatchProviderById
parameters:
- name: id
in: path
description: the id
required: true
schema:
type: string
requestBody:
description: Modifies an action
content:
application/json:
schema:
$ref: '#/components/schemas/ModifyActionMatchProviderRequest'
responses:
'200':
description: Successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/ActionSingleResponse'
'400':
description: Bad request
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'404':
description: Not found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'500':
description: Internal error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'/actions/{id}/payload':
patch:
tags:
- actions
security:
- basicAuth: [ ]
summary: Modifies action's payload by ID
description: Modifies action's payload by ID
operationId: patchActionPayloadById
parameters:
- name: id
in: path
description: the id
required: true
schema:
type: string
requestBody:
description: Modifies an action
content:
application/json:
schema:
$ref: '#/components/schemas/ModifyActionPayloadRequest'
responses:
'200':
description: Successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/ActionSingleResponse'
'400':
description: Bad request
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'404':
description: Not found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'500':
description: Internal error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'/actions/{id}/enabled':
patch:
tags:
- actions
security:
- basicAuth: [ ]
summary: Modifies action's enabled flag by ID
description: Modifies action's enabled flag by ID
operationId: patchActionEnabledById
parameters:
- name: id
in: path
description: the id
required: true
schema:
type: string
requestBody:
description: Modifies an action
content:
application/json:
schema:
$ref: '#/components/schemas/ModifyActionEnabledRequest'
responses:
'200':
description: Successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/ActionSingleResponse'
'400':
description: Bad request
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'404':
description: Not found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'500':
description: Internal error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'/actions/{id}/test':
post:
tags:
- actions
security:
- basicAuth: [ ]
summary: Tests action by ID
description: Tests action by ID
operationId: postActionTestById
parameters:
- name: id
in: path
description: the id
required: true
schema:
type: string
requestBody:
description: Tests an action
content:
application/json:
schema:
$ref: '#/components/schemas/TestActionRequest'
responses:
'200':
description: Successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/ActionTestSingleResponse'
'400':
description: Bad request
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'404':
description: Not found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'500':
description: Internal error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'/actions/{id}':
get:
tags:
- actions
security:
- basicAuth: [ ]
summary: Finds an action by ID
description: Finds action by ID
operationId: findActionById
parameters:
- name: id
in: path
description: the id
required: true
schema:
type: string
responses:
'200':
description: Successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/ActionSingleResponse'
'400':
description: Bad request
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'404':
description: Not found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'500':
description: Internal error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
delete:
tags:
- actions
security:
- basicAuth: [ ]
summary: Deletes an action by ID
description: 'Deletes an action by ID'
operationId: deleteActionById
parameters:
- name: id
in: path
description: the id
required: true
schema:
type: string
responses:
'204':
description: Successful operation
'400':
description: Bad request
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'404':
description: Not found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'500':
description: Internal error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
/action-invocations:
get:
tags:
- action-invocations
security:
- basicAuth: [ ]
summary: Finds action invocations
description: Finds action invocations
operationId: findActionInvocations
parameters:
- name: page
in: query
description: the page
required: false
schema:
type: number
default: 1
- name: pageSize
in: query
description: the page size
required: false
schema:
type: number
default: 5
- name: order
in: query
description: the order
required: false
schema:
type: string
default: desc
enum:
- asc
- desc
- name: orderBy
in: query
description: the order by
required: false
schema:
type: string
default: created_at
enum:
- id
- state
- retry_count
- created_at
- updated_at
responses:
'200':
description: Successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/ActionInvocationPageResponse'
'400':
description: Bad request
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'404':
description: Not found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'500':
description: Internal error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'/action-invocations/{id}':
get:
tags:
- action-invocations
security:
- basicAuth: [ ]
summary: Finds an action invocation by ID
description: Finds action invocation by ID
operationId: findActionInvocationById
parameters:
- name: id
in: path
description: the id
required: true
schema:
type: string
responses:
'200':
description: Successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/ActionInvocationSingleResponse'
'400':
description: Bad request
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'404':
description: Not found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'500':
description: Internal error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
delete:
tags:
- action-invocations
security:
- basicAuth: [ ]
summary: Deletes an action invocation by ID
description: 'Deletes an action invocation by ID'
operationId: deleteActionInvocationById
parameters:
- name: id
in: path
description: the id
required: true
schema:
type: string
responses:
'204':
description: Successful operation
'400':
description: Bad request
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'404':
description: Not found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'500':
description: Internal error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
/secrets:
post:
tags:
- secrets
security:
- basicAuth: [ ]
summary: Creates secret
description: Creates secret
operationId: createSecret
requestBody:
description: Creates a secret
content:
application/json:
schema:
$ref: '#/components/schemas/CreateSecretRequest'
responses:
'200':
description: Successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/SecretSingleResponse'
'400':
description: Bad request
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'404':
description: Not found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'500':
description: Internal error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
get:
tags:
- secrets
security:
- basicAuth: [ ]
summary: Finds secrets
description: Finds secrets
operationId: findSecrets
responses:
'200':
description: Successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/SecretPageResponse'
'400':
description: Bad request
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'404':
description: Not found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'500':
description: Internal error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'/secrets/{id}':
get:
tags:
- secrets
security:
- basicAuth: [ ]
summary: Finds a secret by ID
description: Finds secret by ID
operationId: findSecretById
parameters:
- name: id
in: path
description: the id
required: true
schema:
type: string
responses:
'200':
description: Successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/SecretSingleResponse'
'400':
description: Bad request
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'404':
description: Not found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'500':
description: Internal error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
delete:
tags:
- secrets
security:
- basicAuth: [ ]
summary: Deletes a secret by ID
description: 'Deletes a secret by ID'
operationId: deleteSecretById
parameters:
- name: id
in: path
description: the id
required: true
schema:
type: string
responses:
'204':
description: Successful operation
'400':
description: Bad request
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'404':
description: Not found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'500':
description: Internal error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'/secrets/{id}/value':
patch:
tags:
- secrets
security:
- basicAuth: [ ]
summary: Modifies secret's value by ID
description: Modifies secret's value by ID
operationId: patchSecretValueById
parameters:
- name: id
in: path
description: the id
required: true
schema:
type: string
requestBody:
description: Modifies a secret
content:
application/json:
schema:
$ref: '#/components/schemas/ModifySecretValueRequest'
responses:
'200':
description: Successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/SecretSingleResponse'
'400':
description: Bad request
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'404':
description: Not found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'500':
description: Internal error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
/login:
get:
tags:
- auth
security:
- basicAuth: [ ]
summary: Probes login
description: Probes login
operationId: probeLogin
responses:
'204':
description: Successful operation
'400':
description: Bad request
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'404':
description: Not found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'500':
description: Internal error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
components:
securitySchemes:
basicAuth:
type: http
scheme: basic
schemas:
# response
ErrorResponse:
type: object
properties:
message:
type: string
status:
type: string
enum:
- IllegalArgument
- Unauthorized
- Forbidden
- NotFound
- Conflict
- GeneralError
InfoResponse:
type: object
properties:
data:
type: object
properties:
name:
type: string
version:
type: string
timeZone:
type: string
HealthResponse:
type: object
properties:
data:
type: object
properties:
healthy:
type: boolean
UpdateResponse:
type: object
properties:
id:
type: string
application:
type: string
provider:
type: string
host:
type: string
version:
type: string
state:
type: string
enum:
- pending
- approved
- ignored
createdAt:
type: string
updatedAt:
type: string
metadata:
type: object
nullable: true
UpdateSingleResponse:
type: object
properties:
data:
type: object
allOf:
- $ref: '#/components/schemas/UpdateResponse'
UpdatePageResponse:
type: object
properties:
data:
type: object
properties:
content:
type: array
items:
$ref: '#/components/schemas/UpdateResponse'
page:
type: number
pageSize:
type: number
orderBy:
type: string
enum:
- id
- created_at
- updated_at
- provider
- host
- label
order:
type: string
enum:
- asc
- desc
totalElements:
type: number
totalPages:
type: number
WebhookSingleResponse:
type: object
properties:
data:
type: object
allOf:
- $ref: '#/components/schemas/WebhookResponse'
WebhookResponse:
type: object
properties:
id:
type: string
label:
type: string
type:
type: string
enum:
- generic
- diun
createdAt:
type: string
updatedAt:
type: string
token:
type: string
description: Only returned during creation
nullable: true
ignoreHost:
type: boolean
WebhookPageResponse:
type: object
properties:
data:
type: object
properties:
content:
type: array
items:
$ref: '#/components/schemas/WebhookResponse'
page:
type: number
pageSize:
type: number
orderBy:
type: string
enum:
- id
- label
- type
- created_at
- updated_at
order:
type: string
enum:
- asc
- desc
totalElements:
type: number
totalPages:
type: number
EventWindowResponse:
type: object
properties:
data:
type: object
properties:
content:
type: array
items:
$ref: '#/components/schemas/EventResponse'
size:
type: number
skip:
type: number
orderBy:
type: string
enum:
- id
- name
- created_at
- updated_at
order:
type: string
enum:
- asc
- desc
hasNext:
type: boolean
EventSingleResponse:
type: object
properties:
data:
type: object
allOf:
- $ref: '#/components/schemas/EventResponse'
EventResponse:
type: object
properties:
id:
type: string
name:
type: string
enum:
- update_created
- update_updated
- update_updated_state
- update_updated_version
- update_deleted
createdAt:
type: string
updatedAt:
type: string
payload:
type: object
description: |
Depending on the event name, different payload can be returned
oneOf:
- $ref: '#/components/schemas/EventPayloadUpdateCreatedResponse'
- $ref: '#/components/schemas/EventPayloadUpdateUpdatedResponse'
- $ref: '#/components/schemas/EventPayloadUpdateDeletedResponse'
EventPayloadUpdateCreatedResponse:
type: object
properties:
id:
type: string
application:
type: string
provider:
type: string
host:
type: string
version:
type: string
state:
type: string
enum:
- pending
- approved
- ignored
EventPayloadUpdateUpdatedResponse:
type: object
properties:
id:
type: string
application:
type: string
provider:
type: string
host:
type: string
versionPrior:
type: string
version:
type: string
statePrior:
type: string
enum:
- pending
- approved
- ignored
state:
type: string
enum:
- pending
- approved
- ignored
EventPayloadUpdateDeletedResponse:
type: object
properties:
application:
type: string
provider:
type: string
host:
type: string
version:
type: string
state:
type: string
enum:
- pending
- approved
- ignored
ActionResponse:
type: object
properties:
id:
type: string
label:
type: string
type:
type: string
enum:
- shoutrrr
matchEvent:
type: string
nullable: true
matchHost:
type: string
nullable: true
matchApplication:
type: string
nullable: true
matchProvider:
type: string
nullable: true
payload:
type: object
enabled:
type: boolean
createdAt:
type: string
updatedAt:
type: string
ActionSingleResponse:
type: object
properties:
data:
type: object
allOf:
- $ref: '#/components/schemas/ActionResponse'
ActionPageResponse:
type: object
properties:
data:
type: object
properties:
content:
type: array
items:
$ref: '#/components/schemas/ActionResponse'
page:
type: number
pageSize:
type: number
orderBy:
type: string
enum:
- id
- created_at
- updated_at
- label
- type
order:
type: string
enum:
- asc
- desc
totalElements:
type: number
totalPages:
type: number
ActionTestResponse:
type: object
properties:
success:
type: boolean
message:
type: string
description: Blank in case of success
ActionTestSingleResponse:
type: object
properties:
data:
type: object
allOf:
- $ref: '#/components/schemas/ActionTestResponse'
ActionInvocationResponse:
type: object
properties:
id:
type: string
retryCount:
type: number
state:
type: string
enum:
- created
- running
- retrying
- error
- success
message:
type: string
nullable: true
actionId:
type: string
eventId:
type: string
createdAt:
type: string
updatedAt:
type: string
ActionInvocationSingleResponse:
type: object
properties:
data:
type: object
allOf:
- $ref: '#/components/schemas/ActionInvocationResponse'
ActionInvocationPageResponse:
type: object
properties:
data:
type: object
properties:
content:
type: array
items:
$ref: '#/components/schemas/ActionInvocationResponse'
page:
type: number
pageSize:
type: number
orderBy:
type: string
enum:
- id
- created_at
- updated_at
- state
- retry_count
order:
type: string
enum:
- asc
- desc
totalElements:
type: number
totalPages:
type: number
SecretResponse:
type: object
properties:
id:
type: string
key:
type: string
value:
type: string
nullable: true
createdAt:
type: string
updatedAt:
type: string
SecretSingleResponse:
type: object
properties:
data:
type: object
allOf:
- $ref: '#/components/schemas/SecretResponse'
SecretPageResponse:
type: object
properties:
data:
type: object
properties:
content:
type: array
items:
$ref: '#/components/schemas/SecretResponse'
# requests
ModifyUpdateStateRequest:
type: object
required:
- state
properties:
state:
type: string
enum:
- pending
- approved
- ignored
ModifyWebhookLabelRequest:
type: object
required:
- label
properties:
label:
type: string
ModifyWebhookIgnoreHostRequest:
type: object
required:
- ignoreHost
properties:
ignoreHost:
type: boolean
CreateWebhookRequest:
type: object
required:
- label
- type
properties:
label:
type: string
type:
type: string
enum:
- generic
- diun
ignoreHost:
type: boolean
WebhookGenericRequest:
type: object
required:
- application
- host
- version
properties:
application:
type: string
provider:
type: string
description: The optional provider attribute. If left blank or not sent during webhook invocation, the issuing webhook's label is used.
nullable: true
host:
type: string
version:
type: string
metadata:
description: "Any JSON object"
type: object
additionalProperties:
type: object
WebhookDiunRequest:
type: object
required:
- diun_version
- hostname
- status
- provider
- image
- mime_type
- digest
- created
- platform
- metadata
properties:
diun_version:
type: string
hostname:
type: string
status:
type: string
provider:
type: string
image:
type: string
hub_link:
type: string
mime_type:
type: string
digest:
type: string
created:
type: string
platform:
type: string
metadata:
type: object
properties:
ctn_command:
type: string
ctn_createdat:
type: string
ctn_id:
type: string
ctn_names:
type: string
ctn_size:
type: string
ctn_state:
type: string
ctn_status:
type: string
CreateActionRequest:
type: object
required:
- label
- type
- payload
- enabled
properties:
label:
type: string
type:
type: string
enum:
- shoutrrr
matchEvent:
type: string
matchHost:
type: string
matchApplication:
type: string
matchProvider:
type: string
enabled:
type: boolean
payload:
type: object
anyOf:
- $ref: '#/components/schemas/CreateActionPayloadRequestShoutrrr'
CreateActionPayloadRequestShoutrrr:
type: object
required:
- urls
- body
properties:
urls:
type: array
items:
type: string
body:
type: string
TestActionRequest:
type: object
required:
- application
- provider
- host
- version
- state
properties:
application:
type: string
provider:
type: string
host:
type: string
version:
type: string
state:
type: string
CreateSecretRequest:
type: object
required:
- key
- value
properties:
key:
type: string
value:
type: string
ModifySecretValueRequest:
type: object
required:
- value
properties:
value:
type: string
ModifyActionLabelRequest:
type: object
required:
- label
properties:
label:
type: string
ModifyActionTypeRequest:
type: object
required:
- type
properties:
type:
type: string
enum:
- shoutrrr
ModifyActionMatchEventRequest:
type: object
properties:
matchEvent:
type: string
nullable: true
ModifyActionMatchHostRequest:
type: object
properties:
matchHost:
type: string
nullable: true
ModifyActionMatchApplicationRequest:
type: object
properties:
matchApplication:
type: string
nullable: true
ModifyActionMatchProviderRequest:
type: object
properties:
matchProvider:
type: string
nullable: true
ModifyActionPayloadRequest:
type: object
required:
- type
- payload
properties:
type:
type: string
enum:
- shoutrrr
payload:
type: object
ModifyActionEnabledRequest:
type: object
required:
- enabled
properties:
enabled:
type: boolean