coolify/openapi.yaml
2024-07-06 14:34:15 +02:00

344 lines
11 KiB
YAML

openapi: 3.0.0
info:
title: Coolify
version: '0.1'
servers:
-
url: 'https://app.coolify.io/api/v1'
paths:
/version:
get:
summary: Version
description: 'Get Coolify version.'
operationId: 187b37139844731110757711ee71c215
responses:
'200':
description: 'Returns the version of the application'
content:
application/json:
schema:
type: string
example: v4.0.0
'401':
$ref: '#/components/responses/401'
'400':
$ref: '#/components/responses/400'
security:
-
bearerAuth: []
/enable:
get:
summary: 'Enable API'
description: 'Enable API (only with root permissions).'
operationId: 595019bae03d08277def667609779ff3
responses:
'200':
description: 'Enable API.'
content:
application/json:
schema:
properties:
message: { type: string, example: 'API enabled.' }
type: object
'403':
description: 'You are not allowed to enable the API.'
content:
application/json:
schema:
properties:
message: { type: string, example: 'You are not allowed to enable the API.' }
type: object
'401':
$ref: '#/components/responses/401'
'400':
$ref: '#/components/responses/400'
security:
-
bearerAuth: []
/disable:
get:
summary: 'Disable API'
description: 'Disable API (only with root permissions).'
operationId: 50e2486a2d196a996b24a284a283bcdb
responses:
'200':
description: 'Disable API.'
content:
application/json:
schema:
properties:
message: { type: string, example: 'API disabled.' }
type: object
'403':
description: 'You are not allowed to disable the API.'
content:
application/json:
schema:
properties:
message: { type: string, example: 'You are not allowed to disable the API.' }
type: object
'401':
$ref: '#/components/responses/401'
'400':
$ref: '#/components/responses/400'
security:
-
bearerAuth: []
/healthcheck:
get:
summary: Healthcheck
description: 'Healthcheck endpoint.'
operationId: 64db893135e686704bb88c3c238022c1
responses:
'200':
description: 'Healthcheck endpoint.'
content:
application/json:
schema:
type: string
example: OK
'401':
$ref: '#/components/responses/401'
'400':
$ref: '#/components/responses/400'
security:
-
bearerAuth: []
/teams:
get:
tags:
- Teams
summary: List
description: 'Get all teams.'
operationId: f9c530b5b25df9601cb87d6a58646f0a
responses:
'200':
description: 'List of teams.'
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Team'
'401':
$ref: '#/components/responses/401'
'400':
$ref: '#/components/responses/400'
security:
-
bearerAuth: []
'/teams/{id}':
get:
tags:
- Teams
summary: Get
description: 'Get team by TeamId.'
operationId: ac57ff546c002032cef44602c46a4e76
parameters:
-
name: id
in: path
description: 'Team ID'
required: true
schema:
type: integer
responses:
'200':
description: 'List of teams.'
content:
application/json:
schema:
$ref: '#/components/schemas/Team'
'401':
$ref: '#/components/responses/401'
'400':
$ref: '#/components/responses/400'
'404':
$ref: '#/components/responses/404'
security:
-
bearerAuth: []
components:
schemas:
Team:
description: 'Team model'
properties:
id:
type: integer
description: 'The unique identifier of the team.'
name:
type: string
description: 'The name of the team.'
description:
type: string
description: 'The description of the team.'
personal_team:
type: boolean
description: 'Whether the team is personal or not.'
created_at:
type: string
description: 'The date and time the team was created.'
updated_at:
type: string
description: 'The date and time the team was last updated.'
smtp_enabled:
type: boolean
description: 'Whether SMTP is enabled or not.'
smtp_from_address:
type: string
description: 'The email address to send emails from.'
smtp_from_name:
type: string
description: 'The name to send emails from.'
smtp_recipients:
type: string
description: 'The email addresses to send emails to.'
smtp_host:
type: string
description: 'The SMTP host.'
smtp_port:
type: string
description: 'The SMTP port.'
smtp_encryption:
type: string
description: 'The SMTP encryption.'
smtp_username:
type: string
description: 'The SMTP username.'
smtp_password:
type: string
description: 'The SMTP password.'
smtp_timeout:
type: string
description: 'The SMTP timeout.'
smtp_notifications_test:
type: boolean
description: 'Whether to send test notifications via SMTP.'
smtp_notifications_deployments:
type: boolean
description: 'Whether to send deployment notifications via SMTP.'
smtp_notifications_status_changes:
type: boolean
description: 'Whether to send status change notifications via SMTP.'
smtp_notifications_scheduled_tasks:
type: boolean
description: 'Whether to send scheduled task notifications via SMTP.'
smtp_notifications_database_backups:
type: boolean
description: 'Whether to send database backup notifications via SMTP.'
discord_enabled:
type: boolean
description: 'Whether Discord is enabled or not.'
discord_webhook_url:
type: string
description: 'The Discord webhook URL.'
discord_notifications_test:
type: boolean
description: 'Whether to send test notifications via Discord.'
discord_notifications_deployments:
type: boolean
description: 'Whether to send deployment notifications via Discord.'
discord_notifications_status_changes:
type: boolean
description: 'Whether to send status change notifications via Discord.'
discord_notifications_database_backups:
type: boolean
description: 'Whether to send database backup notifications via Discord.'
discord_notifications_scheduled_tasks:
type: boolean
description: 'Whether to send scheduled task notifications via Discord.'
show_boarding:
type: boolean
description: 'Whether to show the boarding screen or not.'
resend_enabled:
type: boolean
description: 'Whether to enable resending or not.'
resend_api_key:
type: string
description: 'The resending API key.'
use_instance_email_settings:
type: boolean
description: 'Whether to use instance email settings or not.'
telegram_enabled:
type: boolean
description: 'Whether Telegram is enabled or not.'
telegram_token:
type: string
description: 'The Telegram token.'
telegram_chat_id:
type: string
description: 'The Telegram chat ID.'
telegram_notifications_test:
type: boolean
description: 'Whether to send test notifications via Telegram.'
telegram_notifications_deployments:
type: boolean
description: 'Whether to send deployment notifications via Telegram.'
telegram_notifications_status_changes:
type: boolean
description: 'Whether to send status change notifications via Telegram.'
telegram_notifications_database_backups:
type: boolean
description: 'Whether to send database backup notifications via Telegram.'
telegram_notifications_test_message_thread_id:
type: string
description: 'The Telegram test message thread ID.'
telegram_notifications_deployments_message_thread_id:
type: string
description: 'The Telegram deployment message thread ID.'
telegram_notifications_status_changes_message_thread_id:
type: string
description: 'The Telegram status change message thread ID.'
telegram_notifications_database_backups_message_thread_id:
type: string
description: 'The Telegram database backup message thread ID.'
custom_server_limit:
type: string
description: 'The custom server limit.'
telegram_notifications_scheduled_tasks:
type: boolean
description: 'Whether to send scheduled task notifications via Telegram.'
telegram_notifications_scheduled_tasks_thread_id:
type: string
description: 'The Telegram scheduled task message thread ID.'
type: object
responses:
'401':
description: Unauthenticated.
content:
application/json:
schema:
properties:
message:
type: string
example: Unauthenticated.
type: object
'400':
description: 'Invalid token.'
content:
application/json:
schema:
properties:
message:
type: string
example: 'Invalid token.'
type: object
'404':
description: 'Resource not found.'
content:
application/json:
schema:
properties:
message:
type: string
type: object
securitySchemes:
bearerAuth:
type: http
description: 'Go to `Keys & Tokens` / `API tokens` and create a new token. Use the token as the bearer token.'
scheme: bearer
tags:
-
name: Teams
description: Teams