This repository has been archived on 2024-01-12. You can view files and clone it, but cannot push or open issues or pull requests.
azalea/azalea.openapi.yml

373 lines
11 KiB
YAML

openapi: 3.0.3
info:
title: Azalea
version: 1.0.0
description: 'This is the API endpoint for the Azalea Reverse Proxy. NOTE: Most of the endpoints here can only be accessed internally.'
termsOfService: https://mrmelon54.com/terms/api
contact:
name: Webmaster
email: webmaster@mrmelon54.com
license:
name: MIT
url: https://mrmelon54.com/license/api
servers:
- url: https://api.mrmelon54.com/v1/azalea
description: Production Endpoint
- url: https://api.mrmelon54.xyz/v1/azalea
description: Staging Endpoint
security:
- BearerAuth: []
paths:
/http-services:
get:
summary: List HTTP services
operationId: findHttpServices
tags:
- Proxy Management
responses:
200:
description: HTTP services response
content:
application/json:
schema:
type: array
items:
$ref: "#/components/schemas/HttpService"
400:
$ref: "base.yml#/components/responses/BadReq"
401:
$ref: "base.yml#/components/responses/UnAuth"
403:
$ref: "base.yml#/components/responses/Forb"
post:
summary: Create a HTTP service
operationId: addHttpService
tags:
- Proxy Management
requestBody:
description: Site configuration
required: true
content:
application/json:
schema:
$ref: "#/components/schemas/NewHttpService"
examples:
'Example':
value:
address: mrmelon54.com
dst_host: 127.0.0.1
dst_port: 8080
responses:
201:
$ref: "#/components/responses/HttpServiceResp"
400:
$ref: "base.yml#/components/responses/BadReq"
401:
$ref: "base.yml#/components/responses/UnAuth"
403:
$ref: "base.yml#/components/responses/Forb"
/http-service/{id}:
parameters:
- in: path
name: id
required: true
schema:
type: integer
examples:
"Example":
value: 5
get:
summary: Get a HTTP service
operationId: getHttpService
tags:
- Proxy Management
responses:
200:
$ref: "#/components/responses/HttpServiceResp"
400:
$ref: "base.yml#/components/responses/BadReq"
401:
$ref: "base.yml#/components/responses/UnAuth"
403:
$ref: "base.yml#/components/responses/Forb"
put:
summary: Update a HTTP service, any valid configuration will enable a disabled HTTP service
operationId: editHttpService
tags:
- Proxy Management
requestBody:
description: HTTP service configuration
required: true
content:
application/json:
schema:
$ref: "#/components/schemas/NewHttpService"
examples:
'Example':
value:
address: mrmelon54.com
dst_host: 127.0.0.1
dst_port: 8080
responses:
204:
description: Empty updated response, Success.
400:
$ref: "base.yml#/components/responses/BadReq"
401:
$ref: "base.yml#/components/responses/UnAuth"
403:
$ref: "base.yml#/components/responses/Forb"
patch:
summary: Update a HTTP service, any valid configuration will enable a disabled HTTP service, an empty patch request enables a disabled HTTP service without modifying it
operationId: patchHttpService
tags:
- Proxy Management
requestBody:
description: HTTP service configuration
required: false
content:
application/json:
schema:
$ref: "#/components/schemas/NewHttpService"
examples:
'Example':
value:
dst_host: 127.0.0.1
dst_port: 8080
'Empty':
value: {}
responses:
204:
description: Empty patched response, Success.
400:
$ref: "base.yml#/components/responses/BadReq"
401:
$ref: "base.yml#/components/responses/UnAuth"
403:
$ref: "base.yml#/components/responses/Forb"
delete:
summary: Disables a HTTP service
operationId: deleteHttpService
tags:
- Proxy Management
responses:
204:
description: Empty deleted response, Success.
400:
$ref: "base.yml#/components/responses/BadReq"
401:
$ref: "base.yml#/components/responses/UnAuth"
403:
$ref: "base.yml#/components/responses/Forb"
/http-redirects:
get:
summary: List HTTP redirects
operationId: findHttpRedirects
tags:
- Redirect Management
responses:
200:
description: HTTP redirects response
content:
application/json:
schema:
type: array
items:
$ref: "#/components/schemas/HttpRedirect"
400:
$ref: "base.yml#/components/responses/BadReq"
401:
$ref: "base.yml#/components/responses/UnAuth"
403:
$ref: "base.yml#/components/responses/Forb"
post:
summary: Create a HTTP redirect
operationId: addHttpRedirect
tags:
- Redirect Management
requestBody:
description: Redirect configuration
required: true
content:
application/json:
schema:
$ref: "#/components/schemas/NewHttpRedirect"
examples:
'Example':
value:
address: mrmelon54.xyz
target: mrmelon54.com/%path%
responses:
201:
$ref: "#/components/responses/HttpRedirectResp"
400:
$ref: "base.yml#/components/responses/BadReq"
401:
$ref: "base.yml#/components/responses/UnAuth"
403:
$ref: "base.yml#/components/responses/Forb"
/http-redirect/{id}:
parameters:
- in: path
name: id
required: true
schema:
type: integer
examples:
"Example":
value: 5
get:
summary: Get a HTTP redirect
operationId: getHttpRedirect
tags:
- Redirect Management
responses:
200:
$ref: "#/components/responses/HttpRedirectResp"
400:
$ref: "base.yml#/components/responses/BadReq"
401:
$ref: "base.yml#/components/responses/UnAuth"
403:
$ref: "base.yml#/components/responses/Forb"
put:
summary: Create or update a HTTP redirect, any valid configuration will enable a disabled HTTP redirect
operationId: editHttpRedirect
tags:
- Redirect Management
requestBody:
description: Redirect configuration
required: true
content:
application/json:
schema:
$ref: "#/components/schemas/NewHttpRedirect"
examples:
'Example':
value:
address: mrmelon54.xyz
target: mrmelon54.com/%path%
responses:
204:
description: Empty updated response, Success.
400:
$ref: "base.yml#/components/responses/BadReq"
401:
$ref: "base.yml#/components/responses/UnAuth"
403:
$ref: "base.yml#/components/responses/Forb"
patch:
summary: Update a HTTP redirect, any valid configuration will enable a disabled HTTP redirect, an empty patch request enables a disabled HTTP redirect without modifying it
operationId: patchHttpRedirect
tags:
- Redirect Management
requestBody:
description: Redirect configuration
required: false
content:
application/json:
schema:
$ref: "#/components/schemas/NewHttpRedirect"
examples:
'Example':
value:
target: mrmelon54.com/%path%
'Empty':
value: {}
responses:
204:
description: Empty patched response, Success.
400:
$ref: "base.yml#/components/responses/BadReq"
401:
$ref: "base.yml#/components/responses/UnAuth"
403:
$ref: "base.yml#/components/responses/Forb"
delete:
summary: Disables a HTTP redirect
operationId: deleteHttpRedirect
tags:
- Redirect Management
responses:
204:
description: Empty deleted response, Success.
400:
$ref: "base.yml#/components/responses/BadReq"
401:
$ref: "base.yml#/components/responses/UnAuth"
403:
$ref: "base.yml#/components/responses/Forb"
components:
responses:
HttpServiceResp:
description: http service response
content:
application/json:
schema:
$ref: "#/components/schemas/HttpService"
HttpRedirectResp:
description: http redirect response
content:
application/json:
schema:
$ref: "#/components/schemas/HttpRedirect"
schemas:
HttpService:
allOf:
- $ref: "#/components/schemas/NewHttpService"
- type: object
required:
- id
properties:
id:
type: integer
description: ID for the HTTP service
enabled:
type: boolean
description: If the HTTP service is enabled
NewHttpService:
type: object
properties:
address:
type: string
description: Address to access
dst_host:
type: string
description: Destination host
dst_port:
type: integer
description: Destination port
secure_mode:
type: boolean
description: Use secure connection mode
ignore_cert:
type: boolean
description: Ignore internal service certificate
HttpRedirect:
allOf:
- $ref: "#/components/schemas/NewHttpRedirect"
- type: object
required:
- id
properties:
id:
type: integer
description: ID for the HTTP redirect
enabled:
type: boolean
description: If the HTTP redirect is enabled
NewHttpRedirect:
type: object
properties:
address:
type: string
description: Address to access
target:
type: string
description: Destination target
securitySchemes:
BearerAuth:
type: http
scheme: bearer
bearerFormat: JWT