Files
Traefik-Redis-Api/swagger.yaml

234 lines
6.5 KiB
YAML

openapi: "3.1.0"
info:
title: Traefik Redis Provider API
version: "1.1.0"
license:
name: MIT
url: https://opensource.org/licenses/MIT
description: |
This is the API documentation for the Traefik Redis Provider.
It provides endpoints to manage routers and their configurations.
tags:
- name: routers
description: Operations related to routers
externalDocs:
description: Traefik Documentation
url: https://doc.traefik.io/traefik/
servers:
- url: http://localhost:9501
description: Local server
paths:
/{protocol}/routers/{router}:
post:
tags:
- routers
parameters:
- name: protocol
in: path
required: true
description: The protocol to use (e.g., http, udp, tcp)
example: http
schema:
$ref: '#/components/schemas/Protocol'
- name: router
in: path
required: true
description: The name of the router to create or update
example: router-1
schema:
type: string
summary: Create or update a specific router
description: |
This endpoint creates or updates a specific router.
It allows you to configure the router with the specified settings.
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/Router'
responses:
'200':
description: Router created or updated successfully
delete:
tags:
- routers
parameters:
- name: router
in: path
required: true
description: The name of the router to delete
example: router-1
schema:
type: string
- name: protocol
in: path
required: true
description: The protocol to use (e.g., http, udp, tcp)
example: http
schema:
$ref: '#/components/schemas/Protocol'
summary: Delete a specific router
description: |
This endpoint deletes a specific router.
It removes the specified router from the configuration.
responses:
'200':
description: Router deleted successfully
get:
tags:
- routers
parameters:
- name: protocol
in: path
required: true
description: The protocol to use (e.g., http, udp, tcp)
example: http
schema:
$ref: '#/components/schemas/Protocol'
- name: router
in: path
example: router-1
required: true
description: The name of the router to retrieve
schema:
type: string
summary: Get a specific router
description: |
This endpoint retrieves a specific router.
It returns the details of the specified router.
responses:
'200':
description: A specific router
content:
application/json:
schema:
$ref: '#/components/schemas/Router'
/{protocol}/routers:
get:
tags:
- routers
parameters:
- name: protocol
in: path
required: true
example: http
description: The protocol to use (e.g., http, udp, tcp)
schema:
$ref: '#/components/schemas/Protocol'
summary: Get all routers
description: |
This endpoint retrieves all routers.
It returns a list of routers with their details.
responses:
'200':
description: A list of routers
content:
application/json:
schema:
type: array
example:
- router-1
- router-2
components:
schemas:
Protocol:
title: Protocol
description: |
The protocol to use for the router.
It can be one of the following: http, tcp, udp.
type: string
enum:
- http
- tcp
- udp
Router:
title: Router
description: |
A router is a component that routes incoming requests to the appropriate service.
It can be configured with various settings such as rules, middlewares, and entrypoints.
type: object
required:
- rule
- service
properties:
observability:
type: object
properties:
tracing:
type: object
properties:
enabled:
type: boolean
example: true
samplingRate:
type: number
example: 0.1
metrics:
type: object
properties:
enabled:
type: boolean
example: true
buckets:
type: array
items:
type: number
example: 0.1
accessLogs:
type: object
properties:
enabled:
type: boolean
example: true
priority:
type: integer
example: 10
tls:
type: object
properties:
certResolver:
type: string
example: myresolver
domains:
type: array
items:
type: object
properties:
main:
type: string
example: example.com
sans:
type: array
items:
type: string
example:
- www.example.com
- api.example.com
service:
type: string
example: service-1
middlewares:
type: array
items:
type: string
example:
- middleware-1
- middleware-2
entrypoints:
type: array
items:
type: string
example:
- web
- websecure
rule:
type: string
examples:
- Host(`example.com`)
- Header(`key`, `value`)
- HeaderRegexp(`key`, `regexp`)