1819 lines
47 KiB
YAML
1819 lines
47 KiB
YAML
openapi: 3.0.3
|
|
info:
|
|
title: Certigo Addon API
|
|
description: API für die Verwaltung von Spaces, FQDNs, Certificate Signing Requests (CSRs), Zertifikaten, Benutzern, Berechtigungen und automatischer Zertifikatserneuerung
|
|
version: 2.0.0
|
|
contact:
|
|
name: Certigo Addon
|
|
|
|
servers:
|
|
- url: http://localhost:8080/api
|
|
description: Local development server
|
|
|
|
security:
|
|
- basicAuth: []
|
|
|
|
paths:
|
|
/health:
|
|
get:
|
|
summary: System Health Check
|
|
description: Prüft den Systemstatus des Backends
|
|
tags:
|
|
- System
|
|
responses:
|
|
'200':
|
|
description: System ist erreichbar
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HealthResponse'
|
|
|
|
/stats:
|
|
get:
|
|
summary: Statistiken abrufen
|
|
description: Ruft Statistiken über die Anzahl der Spaces, FQDNs und CSRs ab
|
|
tags:
|
|
- System
|
|
responses:
|
|
'200':
|
|
description: Statistiken erfolgreich abgerufen
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/StatsResponse'
|
|
|
|
/spaces:
|
|
get:
|
|
summary: Alle Spaces abrufen
|
|
description: Ruft eine Liste aller Spaces ab
|
|
tags:
|
|
- Spaces
|
|
responses:
|
|
'200':
|
|
description: Liste der Spaces
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/Space'
|
|
|
|
post:
|
|
summary: Space erstellen
|
|
description: Erstellt einen neuen Space
|
|
tags:
|
|
- Spaces
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/CreateSpaceRequest'
|
|
responses:
|
|
'201':
|
|
description: Space erfolgreich erstellt
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Space'
|
|
'400':
|
|
description: Ungültige Anfrage
|
|
|
|
/spaces/{id}:
|
|
delete:
|
|
summary: Space löschen
|
|
description: Löscht einen Space. Wenn der Space FQDNs enthält, muss der Parameter deleteFqdns=true gesetzt werden.
|
|
tags:
|
|
- Spaces
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
- name: deleteFqdns
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: boolean
|
|
default: false
|
|
description: Wenn true, werden alle FQDNs des Spaces mitgelöscht
|
|
responses:
|
|
'200':
|
|
description: Space erfolgreich gelöscht
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/MessageResponse'
|
|
'404':
|
|
description: Space nicht gefunden
|
|
'409':
|
|
description: Space enthält noch FQDNs
|
|
|
|
/spaces/{id}/fqdns/count:
|
|
get:
|
|
summary: FQDN-Anzahl abrufen
|
|
description: Ruft die Anzahl der FQDNs für einen Space ab
|
|
tags:
|
|
- FQDNs
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
responses:
|
|
'200':
|
|
description: Anzahl der FQDNs
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/CountResponse'
|
|
|
|
/spaces/{id}/fqdns:
|
|
get:
|
|
summary: Alle FQDNs eines Spaces abrufen
|
|
description: Ruft alle FQDNs für einen Space ab
|
|
tags:
|
|
- FQDNs
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
responses:
|
|
'200':
|
|
description: Liste der FQDNs
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/FQDN'
|
|
'404':
|
|
description: Space nicht gefunden
|
|
|
|
post:
|
|
summary: FQDN erstellen
|
|
description: Erstellt einen neuen FQDN innerhalb eines Spaces
|
|
tags:
|
|
- FQDNs
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/CreateFQDNRequest'
|
|
responses:
|
|
'201':
|
|
description: FQDN erfolgreich erstellt
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/FQDN'
|
|
'400':
|
|
description: Ungültige Anfrage
|
|
'404':
|
|
description: Space nicht gefunden
|
|
'409':
|
|
description: FQDN existiert bereits in diesem Space
|
|
|
|
delete:
|
|
summary: Alle FQDNs eines Spaces löschen
|
|
description: Löscht alle FQDNs eines Spaces
|
|
tags:
|
|
- FQDNs
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
responses:
|
|
'200':
|
|
description: Alle FQDNs erfolgreich gelöscht
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/DeleteResponse'
|
|
|
|
/spaces/{id}/fqdns/{fqdnId}:
|
|
delete:
|
|
summary: FQDN löschen
|
|
description: Löscht einen einzelnen FQDN
|
|
tags:
|
|
- FQDNs
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
- name: fqdnId
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
responses:
|
|
'200':
|
|
description: FQDN erfolgreich gelöscht
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/MessageResponse'
|
|
'404':
|
|
description: FQDN nicht gefunden
|
|
|
|
/fqdns:
|
|
delete:
|
|
summary: Alle FQDNs global löschen
|
|
description: Löscht alle FQDNs aus allen Spaces. Erfordert confirm=true Query-Parameter.
|
|
tags:
|
|
- FQDNs
|
|
parameters:
|
|
- name: confirm
|
|
in: query
|
|
required: true
|
|
schema:
|
|
type: string
|
|
description: Muss "true" sein, um die Operation auszuführen
|
|
example: "true"
|
|
responses:
|
|
'200':
|
|
description: Alle FQDNs erfolgreich gelöscht
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/DeleteResponse'
|
|
'400':
|
|
description: Bestätigung erforderlich
|
|
|
|
/spaces/{spaceId}/fqdns/{fqdnId}/csr:
|
|
post:
|
|
summary: CSR hochladen
|
|
description: Lädt einen CSR (Certificate Signing Request) im PEM-Format hoch
|
|
tags:
|
|
- CSRs
|
|
parameters:
|
|
- name: spaceId
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
- name: fqdnId
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- csr
|
|
- spaceId
|
|
- fqdn
|
|
properties:
|
|
csr:
|
|
type: string
|
|
format: binary
|
|
description: CSR-Datei im PEM-Format
|
|
spaceId:
|
|
type: string
|
|
description: ID des Spaces
|
|
fqdn:
|
|
type: string
|
|
description: Name des FQDNs
|
|
responses:
|
|
'201':
|
|
description: CSR erfolgreich hochgeladen
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/CSR'
|
|
'400':
|
|
description: Ungültige Anfrage oder ungültiges CSR-Format
|
|
'404':
|
|
description: Space oder FQDN nicht gefunden
|
|
|
|
get:
|
|
summary: CSR(s) abrufen
|
|
description: Ruft CSR(s) für einen FQDN ab. Mit latest=true wird nur der neueste CSR zurückgegeben.
|
|
tags:
|
|
- CSRs
|
|
parameters:
|
|
- name: spaceId
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
- name: fqdnId
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
- name: latest
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: boolean
|
|
default: false
|
|
description: Wenn true, wird nur der neueste CSR zurückgegeben
|
|
responses:
|
|
'200':
|
|
description: CSR(s) erfolgreich abgerufen
|
|
content:
|
|
application/json:
|
|
schema:
|
|
oneOf:
|
|
- $ref: '#/components/schemas/CSR'
|
|
- type: array
|
|
items:
|
|
$ref: '#/components/schemas/CSR'
|
|
'404':
|
|
description: FQDN nicht gefunden
|
|
|
|
/spaces/{spaceId}/fqdns/{fqdnId}/csr/sign:
|
|
post:
|
|
summary: CSR signieren lassen
|
|
description: Sendet einen CSR an einen Provider zur Signierung
|
|
tags:
|
|
- CSRs
|
|
parameters:
|
|
- name: spaceId
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
- name: fqdnId
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/SignCSRRequest'
|
|
responses:
|
|
'200':
|
|
description: CSR erfolgreich signiert
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/SignCSRResponse'
|
|
'400':
|
|
description: Ungültige Anfrage
|
|
'404':
|
|
description: FQDN, CSR oder Provider nicht gefunden
|
|
|
|
/spaces/{spaceId}/fqdns/{fqdnId}/certificates:
|
|
get:
|
|
summary: Zertifikate abrufen
|
|
description: Ruft alle Zertifikate für einen FQDN ab
|
|
tags:
|
|
- Certificates
|
|
parameters:
|
|
- name: spaceId
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
- name: fqdnId
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
responses:
|
|
'200':
|
|
description: Liste der Zertifikate
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/Certificate'
|
|
'404':
|
|
description: FQDN nicht gefunden
|
|
|
|
/spaces/{spaceId}/fqdns/{fqdnId}/certificates/{certId}/refresh:
|
|
post:
|
|
summary: Zertifikat aktualisieren
|
|
description: Aktualisiert die Informationen eines Zertifikats vom Provider
|
|
tags:
|
|
- Certificates
|
|
parameters:
|
|
- name: spaceId
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
- name: fqdnId
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
- name: certId
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
responses:
|
|
'200':
|
|
description: Zertifikat erfolgreich aktualisiert
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Certificate'
|
|
'404':
|
|
description: Zertifikat nicht gefunden
|
|
|
|
/spaces/{spaceId}/fqdns/{fqdnId}/request-certificate:
|
|
post:
|
|
summary: Zertifikat beantragen (ACME)
|
|
description: Beantragt ein neues Zertifikat über das ACME-Protokoll für einen FQDN
|
|
tags:
|
|
- Certificates
|
|
parameters:
|
|
- name: spaceId
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
- name: fqdnId
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
requestBody:
|
|
required: false
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/RequestCertificateRequest'
|
|
responses:
|
|
'200':
|
|
description: Zertifikat erfolgreich beantragt
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/RequestCertificateResponse'
|
|
'400':
|
|
description: Ungültige Anfrage
|
|
'404':
|
|
description: FQDN nicht gefunden
|
|
|
|
/spaces/{spaceId}/fqdns/{fqdnId}/renewal-enabled:
|
|
put:
|
|
summary: Auto-Renewal für FQDN aktivieren/deaktivieren
|
|
description: Aktiviert oder deaktiviert die automatische Erneuerung für einen FQDN
|
|
tags:
|
|
- FQDNs
|
|
parameters:
|
|
- name: spaceId
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
- name: fqdnId
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UpdateRenewalEnabledRequest'
|
|
responses:
|
|
'200':
|
|
description: Auto-Renewal Status erfolgreich aktualisiert
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/MessageResponse'
|
|
'404':
|
|
description: FQDN nicht gefunden
|
|
|
|
/csrs:
|
|
delete:
|
|
summary: Alle CSRs global löschen
|
|
description: Löscht alle CSRs aus allen Spaces. Erfordert confirm=true Query-Parameter.
|
|
tags:
|
|
- CSRs
|
|
parameters:
|
|
- name: confirm
|
|
in: query
|
|
required: true
|
|
schema:
|
|
type: string
|
|
description: Muss "true" sein, um die Operation auszuführen
|
|
example: "true"
|
|
responses:
|
|
'200':
|
|
description: Alle CSRs erfolgreich gelöscht
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/DeleteResponse'
|
|
'400':
|
|
description: Bestätigung erforderlich
|
|
|
|
/renewal-queue:
|
|
get:
|
|
summary: Renewal Queue abrufen
|
|
description: Ruft alle Einträge in der Renewal Queue ab
|
|
tags:
|
|
- Renewal Queue
|
|
responses:
|
|
'200':
|
|
description: Liste der Renewal Queue Einträge
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
example: true
|
|
queue:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/RenewalQueueEntry'
|
|
'401':
|
|
description: Nicht authentifiziert
|
|
|
|
delete:
|
|
summary: Alle Renewal Queue Einträge löschen
|
|
description: Löscht alle Einträge aus der Renewal Queue. Erfordert confirm=true Query-Parameter.
|
|
tags:
|
|
- Renewal Queue
|
|
parameters:
|
|
- name: confirm
|
|
in: query
|
|
required: true
|
|
schema:
|
|
type: string
|
|
description: Muss "true" sein, um die Operation auszuführen
|
|
example: "true"
|
|
responses:
|
|
'200':
|
|
description: Alle Renewal Queue Einträge erfolgreich gelöscht
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
example: true
|
|
message:
|
|
type: string
|
|
example: "Alle Renewal Queue-Einträge erfolgreich gelöscht"
|
|
deletedCount:
|
|
type: integer
|
|
example: 42
|
|
'400':
|
|
description: Bestätigung erforderlich
|
|
'401':
|
|
description: Nicht authentifiziert
|
|
|
|
/renewal-queue/test/create:
|
|
post:
|
|
summary: Test-Queue-Eintrag erstellen
|
|
description: Erstellt einen Test-Eintrag in der Renewal Queue (nur für Administratoren)
|
|
tags:
|
|
- Renewal Queue
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/CreateTestRenewalQueueEntryRequest'
|
|
responses:
|
|
'201':
|
|
description: Test-Queue-Eintrag erfolgreich erstellt
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/CreateTestRenewalQueueEntryResponse'
|
|
'400':
|
|
description: Ungültige Anfrage
|
|
'403':
|
|
description: Nur Administratoren dürfen Test-Einträge erstellen
|
|
|
|
/renewal-queue/test/trigger:
|
|
post:
|
|
summary: Renewal Queue manuell auslösen
|
|
description: Löst die manuelle Verarbeitung der Renewal Queue aus (nur für Administratoren)
|
|
tags:
|
|
- Renewal Queue
|
|
responses:
|
|
'200':
|
|
description: Queue-Verarbeitung erfolgreich ausgelöst
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/MessageResponse'
|
|
'403':
|
|
description: Nur Administratoren dürfen die Queue manuell auslösen
|
|
|
|
/users:
|
|
get:
|
|
summary: Alle Benutzer abrufen
|
|
description: Ruft eine Liste aller Benutzer ab (nur für Administratoren)
|
|
tags:
|
|
- Users
|
|
responses:
|
|
'200':
|
|
description: Liste der Benutzer
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/User'
|
|
'403':
|
|
description: Nur Administratoren dürfen Benutzer abrufen
|
|
|
|
post:
|
|
summary: Benutzer erstellen
|
|
description: Erstellt einen neuen Benutzer (nur für Administratoren)
|
|
tags:
|
|
- Users
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/CreateUserRequest'
|
|
responses:
|
|
'201':
|
|
description: Benutzer erfolgreich erstellt
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/User'
|
|
'400':
|
|
description: Ungültige Anfrage
|
|
'403':
|
|
description: Nur Administratoren dürfen Benutzer erstellen
|
|
|
|
/users/{id}:
|
|
get:
|
|
summary: Benutzer abrufen
|
|
description: Ruft einen einzelnen Benutzer ab (nur für Administratoren)
|
|
tags:
|
|
- Users
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
responses:
|
|
'200':
|
|
description: Benutzer erfolgreich abgerufen
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/User'
|
|
'404':
|
|
description: Benutzer nicht gefunden
|
|
'403':
|
|
description: Nur Administratoren dürfen Benutzer abrufen
|
|
|
|
put:
|
|
summary: Benutzer aktualisieren
|
|
description: Aktualisiert einen Benutzer (nur für Administratoren)
|
|
tags:
|
|
- Users
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UpdateUserRequest'
|
|
responses:
|
|
'200':
|
|
description: Benutzer erfolgreich aktualisiert
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/User'
|
|
'400':
|
|
description: Ungültige Anfrage
|
|
'404':
|
|
description: Benutzer nicht gefunden
|
|
'403':
|
|
description: Nur Administratoren dürfen Benutzer aktualisieren
|
|
|
|
delete:
|
|
summary: Benutzer löschen
|
|
description: Löscht einen Benutzer (nur für Administratoren)
|
|
tags:
|
|
- Users
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
responses:
|
|
'200':
|
|
description: Benutzer erfolgreich gelöscht
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/MessageResponse'
|
|
'404':
|
|
description: Benutzer nicht gefunden
|
|
'403':
|
|
description: Nur Administratoren dürfen Benutzer löschen
|
|
|
|
/users/{id}/avatar:
|
|
get:
|
|
summary: Avatar abrufen
|
|
description: Ruft das Profilbild eines Benutzers ab
|
|
tags:
|
|
- Users
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
responses:
|
|
'200':
|
|
description: Avatar erfolgreich abgerufen
|
|
content:
|
|
image/png:
|
|
schema:
|
|
type: string
|
|
format: binary
|
|
'404':
|
|
description: Avatar nicht gefunden
|
|
|
|
post:
|
|
summary: Avatar hochladen
|
|
description: Lädt ein Profilbild für einen Benutzer hoch
|
|
tags:
|
|
- Users
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- avatar
|
|
properties:
|
|
avatar:
|
|
type: string
|
|
format: binary
|
|
description: Bilddatei (PNG, JPG, etc.)
|
|
responses:
|
|
'200':
|
|
description: Avatar erfolgreich hochgeladen
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/MessageResponse'
|
|
'400':
|
|
description: Ungültige Datei
|
|
|
|
/user/permissions:
|
|
get:
|
|
summary: Benutzer-Berechtigungen abrufen
|
|
description: Ruft die Berechtigungen des aktuell authentifizierten Benutzers ab
|
|
tags:
|
|
- Users
|
|
responses:
|
|
'200':
|
|
description: Berechtigungen erfolgreich abgerufen
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UserPermissions'
|
|
|
|
/permission-groups:
|
|
get:
|
|
summary: Alle Berechtigungsgruppen abrufen
|
|
description: Ruft eine Liste aller Berechtigungsgruppen ab (nur für Administratoren)
|
|
tags:
|
|
- Permission Groups
|
|
responses:
|
|
'200':
|
|
description: Liste der Berechtigungsgruppen
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/PermissionGroup'
|
|
'403':
|
|
description: Nur Administratoren dürfen Berechtigungsgruppen abrufen
|
|
|
|
post:
|
|
summary: Berechtigungsgruppe erstellen
|
|
description: Erstellt eine neue Berechtigungsgruppe (nur für Administratoren)
|
|
tags:
|
|
- Permission Groups
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/CreatePermissionGroupRequest'
|
|
responses:
|
|
'201':
|
|
description: Berechtigungsgruppe erfolgreich erstellt
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/PermissionGroup'
|
|
'400':
|
|
description: Ungültige Anfrage
|
|
'403':
|
|
description: Nur Administratoren dürfen Berechtigungsgruppen erstellen
|
|
|
|
/permission-groups/{id}:
|
|
get:
|
|
summary: Berechtigungsgruppe abrufen
|
|
description: Ruft eine einzelne Berechtigungsgruppe ab (nur für Administratoren)
|
|
tags:
|
|
- Permission Groups
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
responses:
|
|
'200':
|
|
description: Berechtigungsgruppe erfolgreich abgerufen
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/PermissionGroup'
|
|
'404':
|
|
description: Berechtigungsgruppe nicht gefunden
|
|
'403':
|
|
description: Nur Administratoren dürfen Berechtigungsgruppen abrufen
|
|
|
|
put:
|
|
summary: Berechtigungsgruppe aktualisieren
|
|
description: Aktualisiert eine Berechtigungsgruppe (nur für Administratoren)
|
|
tags:
|
|
- Permission Groups
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UpdatePermissionGroupRequest'
|
|
responses:
|
|
'200':
|
|
description: Berechtigungsgruppe erfolgreich aktualisiert
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/PermissionGroup'
|
|
'400':
|
|
description: Ungültige Anfrage
|
|
'404':
|
|
description: Berechtigungsgruppe nicht gefunden
|
|
'403':
|
|
description: Nur Administratoren dürfen Berechtigungsgruppen aktualisieren
|
|
|
|
delete:
|
|
summary: Berechtigungsgruppe löschen
|
|
description: Löscht eine Berechtigungsgruppe (nur für Administratoren)
|
|
tags:
|
|
- Permission Groups
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
responses:
|
|
'200':
|
|
description: Berechtigungsgruppe erfolgreich gelöscht
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/MessageResponse'
|
|
'404':
|
|
description: Berechtigungsgruppe nicht gefunden
|
|
'403':
|
|
description: Nur Administratoren dürfen Berechtigungsgruppen löschen
|
|
|
|
/providers:
|
|
get:
|
|
summary: Alle Provider abrufen
|
|
description: Ruft eine Liste aller Provider ab
|
|
tags:
|
|
- Providers
|
|
responses:
|
|
'200':
|
|
description: Liste der Provider
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/Provider'
|
|
|
|
/providers/{id}:
|
|
get:
|
|
summary: Provider abrufen
|
|
description: Ruft einen einzelnen Provider ab
|
|
tags:
|
|
- Providers
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
responses:
|
|
'200':
|
|
description: Provider erfolgreich abgerufen
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Provider'
|
|
'404':
|
|
description: Provider nicht gefunden
|
|
|
|
/providers/{id}/enabled:
|
|
put:
|
|
summary: Provider aktivieren/deaktivieren
|
|
description: Aktiviert oder deaktiviert einen Provider
|
|
tags:
|
|
- Providers
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/SetProviderEnabledRequest'
|
|
responses:
|
|
'200':
|
|
description: Provider Status erfolgreich aktualisiert
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/MessageResponse'
|
|
'404':
|
|
description: Provider nicht gefunden
|
|
|
|
/providers/{id}/config:
|
|
put:
|
|
summary: Provider-Konfiguration aktualisieren
|
|
description: Aktualisiert die Konfiguration eines Providers
|
|
tags:
|
|
- Providers
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UpdateProviderConfigRequest'
|
|
responses:
|
|
'200':
|
|
description: Provider-Konfiguration erfolgreich aktualisiert
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/MessageResponse'
|
|
'400':
|
|
description: Ungültige Konfiguration
|
|
'404':
|
|
description: Provider nicht gefunden
|
|
|
|
/providers/{id}/test:
|
|
post:
|
|
summary: Provider-Verbindung testen
|
|
description: Testet die Verbindung zu einem Provider
|
|
tags:
|
|
- Providers
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
requestBody:
|
|
required: false
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
responses:
|
|
'200':
|
|
description: Verbindungstest erfolgreich
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProviderTestResponse'
|
|
'404':
|
|
description: Provider nicht gefunden
|
|
|
|
/audit-logs:
|
|
get:
|
|
summary: Audit-Logs abrufen
|
|
description: Ruft Audit-Logs ab mit optionalen Filtern
|
|
tags:
|
|
- Audit Logs
|
|
parameters:
|
|
- name: limit
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: integer
|
|
default: 100
|
|
description: Maximale Anzahl der Einträge
|
|
- name: offset
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: integer
|
|
default: 0
|
|
description: Offset für Paginierung
|
|
responses:
|
|
'200':
|
|
description: Audit-Logs erfolgreich abgerufen
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/AuditLogsResponse'
|
|
|
|
delete:
|
|
summary: Alle Audit-Logs löschen
|
|
description: Löscht alle Audit-Logs
|
|
tags:
|
|
- Audit Logs
|
|
responses:
|
|
'200':
|
|
description: Alle Audit-Logs erfolgreich gelöscht
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/MessageResponse'
|
|
|
|
/audit-logs/test:
|
|
post:
|
|
summary: Test-Audit-Log erstellen
|
|
description: Erstellt einen Test-Audit-Log-Eintrag
|
|
tags:
|
|
- Audit Logs
|
|
requestBody:
|
|
required: false
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
responses:
|
|
'200':
|
|
description: Test-Audit-Log erfolgreich erstellt
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/MessageResponse'
|
|
|
|
components:
|
|
schemas:
|
|
HealthResponse:
|
|
type: object
|
|
properties:
|
|
status:
|
|
type: string
|
|
example: "ok"
|
|
message:
|
|
type: string
|
|
example: "Backend ist erreichbar"
|
|
time:
|
|
type: string
|
|
format: date-time
|
|
example: "2024-01-15T10:30:00Z"
|
|
|
|
StatsResponse:
|
|
type: object
|
|
properties:
|
|
spaces:
|
|
type: integer
|
|
example: 5
|
|
fqdns:
|
|
type: integer
|
|
example: 12
|
|
csrs:
|
|
type: integer
|
|
example: 7
|
|
|
|
Space:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
format: uuid
|
|
example: "550e8400-e29b-41d4-a716-446655440000"
|
|
name:
|
|
type: string
|
|
example: "Mein Space"
|
|
description:
|
|
type: string
|
|
example: "Beschreibung des Spaces"
|
|
createdAt:
|
|
type: string
|
|
format: date-time
|
|
example: "2024-01-15T10:30:00Z"
|
|
|
|
CreateSpaceRequest:
|
|
type: object
|
|
required:
|
|
- name
|
|
properties:
|
|
name:
|
|
type: string
|
|
example: "Mein Space"
|
|
description:
|
|
type: string
|
|
example: "Beschreibung des Space"
|
|
|
|
FQDN:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
format: uuid
|
|
example: "660e8400-e29b-41d4-a716-446655440000"
|
|
spaceId:
|
|
type: string
|
|
format: uuid
|
|
example: "550e8400-e29b-41d4-a716-446655440000"
|
|
fqdn:
|
|
type: string
|
|
example: "example.com"
|
|
description:
|
|
type: string
|
|
example: "Beschreibung des FQDN"
|
|
createdAt:
|
|
type: string
|
|
format: date-time
|
|
example: "2024-01-15T10:30:00Z"
|
|
renewalEnabled:
|
|
type: boolean
|
|
example: true
|
|
description: Auto-Renewal aktiviert
|
|
|
|
CreateFQDNRequest:
|
|
type: object
|
|
required:
|
|
- fqdn
|
|
properties:
|
|
fqdn:
|
|
type: string
|
|
example: "example.com"
|
|
description:
|
|
type: string
|
|
example: "Beschreibung des FQDN"
|
|
providerId:
|
|
type: string
|
|
format: uuid
|
|
example: "770e8400-e29b-41d4-a716-446655440000"
|
|
|
|
UpdateRenewalEnabledRequest:
|
|
type: object
|
|
required:
|
|
- renewalEnabled
|
|
properties:
|
|
renewalEnabled:
|
|
type: boolean
|
|
example: true
|
|
description: Auto-Renewal aktivieren/deaktivieren
|
|
|
|
Extension:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
example: "2.5.29.37"
|
|
oid:
|
|
type: string
|
|
example: "2.5.29.37"
|
|
name:
|
|
type: string
|
|
example: "X509v3 Extended Key Usage"
|
|
critical:
|
|
type: boolean
|
|
example: false
|
|
value:
|
|
type: string
|
|
example: "301406082b0601050507030106082b06010505070302"
|
|
description:
|
|
type: string
|
|
example: "TLS Web Server Authentication\n TLS Web Client Authentication"
|
|
purposes:
|
|
type: array
|
|
items:
|
|
type: string
|
|
example: ["TLS Web Server Authentication", "TLS Web Client Authentication"]
|
|
|
|
CSR:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
format: uuid
|
|
example: "770e8400-e29b-41d4-a716-446655440000"
|
|
fqdnId:
|
|
type: string
|
|
format: uuid
|
|
example: "660e8400-e29b-41d4-a716-446655440000"
|
|
spaceId:
|
|
type: string
|
|
format: uuid
|
|
example: "550e8400-e29b-41d4-a716-446655440000"
|
|
fqdn:
|
|
type: string
|
|
example: "example.com"
|
|
csrPem:
|
|
type: string
|
|
example: "-----BEGIN CERTIFICATE REQUEST-----\n...\n-----END CERTIFICATE REQUEST-----"
|
|
subject:
|
|
type: string
|
|
example: "CN=example.com"
|
|
publicKeyAlgorithm:
|
|
type: string
|
|
example: "RSA"
|
|
signatureAlgorithm:
|
|
type: string
|
|
example: "SHA256-RSA"
|
|
keySize:
|
|
type: integer
|
|
example: 2048
|
|
dnsNames:
|
|
type: array
|
|
items:
|
|
type: string
|
|
example: ["example.com", "www.example.com"]
|
|
emailAddresses:
|
|
type: array
|
|
items:
|
|
type: string
|
|
example: ["admin@example.com"]
|
|
ipAddresses:
|
|
type: array
|
|
items:
|
|
type: string
|
|
example: ["192.168.1.1"]
|
|
uris:
|
|
type: array
|
|
items:
|
|
type: string
|
|
example: ["https://example.com"]
|
|
extensions:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/Extension'
|
|
createdAt:
|
|
type: string
|
|
format: date-time
|
|
example: "2024-01-15T10:30:00Z"
|
|
|
|
SignCSRRequest:
|
|
type: object
|
|
required:
|
|
- providerId
|
|
properties:
|
|
providerId:
|
|
type: string
|
|
format: uuid
|
|
example: "880e8400-e29b-41d4-a716-446655440000"
|
|
|
|
SignCSRResponse:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
example: true
|
|
message:
|
|
type: string
|
|
example: "CSR erfolgreich signiert"
|
|
certificate:
|
|
type: string
|
|
example: "-----BEGIN CERTIFICATE-----\n...\n-----END CERTIFICATE-----"
|
|
|
|
Certificate:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
format: uuid
|
|
example: "990e8400-e29b-41d4-a716-446655440000"
|
|
fqdnId:
|
|
type: string
|
|
format: uuid
|
|
example: "660e8400-e29b-41d4-a716-446655440000"
|
|
spaceId:
|
|
type: string
|
|
format: uuid
|
|
example: "550e8400-e29b-41d4-a716-446655440000"
|
|
pem:
|
|
type: string
|
|
example: "-----BEGIN CERTIFICATE-----\n...\n-----END CERTIFICATE-----"
|
|
issuer:
|
|
type: string
|
|
example: "Let's Encrypt"
|
|
expiresAt:
|
|
type: string
|
|
format: date-time
|
|
example: "2025-01-15T10:30:00Z"
|
|
createdAt:
|
|
type: string
|
|
format: date-time
|
|
example: "2024-01-15T10:30:00Z"
|
|
|
|
RequestCertificateRequest:
|
|
type: object
|
|
properties:
|
|
confirmed:
|
|
type: boolean
|
|
example: false
|
|
description: Bestätigung für bereits gültiges Zertifikat
|
|
|
|
RequestCertificateResponse:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
example: true
|
|
message:
|
|
type: string
|
|
example: "Zertifikat erfolgreich beantragt"
|
|
certificate:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
format: uuid
|
|
pem:
|
|
type: string
|
|
stepStatus:
|
|
type: object
|
|
description: Status der einzelnen Schritte des Zertifikatsanfrage-Prozesses
|
|
|
|
RenewalQueueEntry:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
format: uuid
|
|
example: "aa0e8400-e29b-41d4-a716-446655440000"
|
|
certificateId:
|
|
type: string
|
|
format: uuid
|
|
example: "990e8400-e29b-41d4-a716-446655440000"
|
|
fqdnId:
|
|
type: string
|
|
format: uuid
|
|
example: "660e8400-e29b-41d4-a716-446655440000"
|
|
spaceId:
|
|
type: string
|
|
format: uuid
|
|
example: "550e8400-e29b-41d4-a716-446655440000"
|
|
scheduledAt:
|
|
type: string
|
|
format: date-time
|
|
example: "2025-01-24T03:25:13Z"
|
|
status:
|
|
type: string
|
|
enum: [pending, processing, completed, failed]
|
|
example: "pending"
|
|
createdAt:
|
|
type: string
|
|
format: date-time
|
|
example: "2024-01-15T10:30:00Z"
|
|
|
|
CreateTestRenewalQueueEntryRequest:
|
|
type: object
|
|
required:
|
|
- certificateId
|
|
- fqdnId
|
|
- spaceId
|
|
- minutesFromNow
|
|
properties:
|
|
certificateId:
|
|
type: string
|
|
format: uuid
|
|
example: "990e8400-e29b-41d4-a716-446655440000"
|
|
fqdnId:
|
|
type: string
|
|
format: uuid
|
|
example: "660e8400-e29b-41d4-a716-446655440000"
|
|
spaceId:
|
|
type: string
|
|
format: uuid
|
|
example: "550e8400-e29b-41d4-a716-446655440000"
|
|
minutesFromNow:
|
|
type: integer
|
|
example: 5
|
|
description: Anzahl der Minuten ab jetzt, wann der Renewal ausgeführt werden soll
|
|
|
|
CreateTestRenewalQueueEntryResponse:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
example: true
|
|
message:
|
|
type: string
|
|
example: "Test-Queue-Eintrag erstellt"
|
|
queueId:
|
|
type: string
|
|
format: uuid
|
|
example: "test-aa0e8400-e29b-41d4-a716-446655440000"
|
|
scheduledAt:
|
|
type: string
|
|
format: date-time
|
|
example: "2024-01-15T10:35:00Z"
|
|
|
|
User:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
format: uuid
|
|
example: "bb0e8400-e29b-41d4-a716-446655440000"
|
|
username:
|
|
type: string
|
|
example: "admin"
|
|
email:
|
|
type: string
|
|
example: "admin@example.com"
|
|
isAdmin:
|
|
type: boolean
|
|
example: true
|
|
enabled:
|
|
type: boolean
|
|
example: true
|
|
createdAt:
|
|
type: string
|
|
format: date-time
|
|
example: "2024-01-15T10:30:00Z"
|
|
|
|
CreateUserRequest:
|
|
type: object
|
|
required:
|
|
- username
|
|
- email
|
|
- password
|
|
properties:
|
|
username:
|
|
type: string
|
|
example: "newuser"
|
|
email:
|
|
type: string
|
|
example: "user@example.com"
|
|
password:
|
|
type: string
|
|
example: "securePassword123"
|
|
isAdmin:
|
|
type: boolean
|
|
example: false
|
|
|
|
UpdateUserRequest:
|
|
type: object
|
|
properties:
|
|
username:
|
|
type: string
|
|
example: "updateduser"
|
|
email:
|
|
type: string
|
|
example: "updated@example.com"
|
|
password:
|
|
type: string
|
|
example: "newPassword123"
|
|
isAdmin:
|
|
type: boolean
|
|
example: false
|
|
enabled:
|
|
type: boolean
|
|
example: true
|
|
|
|
UserPermissions:
|
|
type: object
|
|
properties:
|
|
isAdmin:
|
|
type: boolean
|
|
example: true
|
|
hasFullAccess:
|
|
type: boolean
|
|
example: false
|
|
accessibleSpaces:
|
|
type: array
|
|
items:
|
|
type: string
|
|
format: uuid
|
|
example: ["550e8400-e29b-41d4-a716-446655440000"]
|
|
permissions:
|
|
type: object
|
|
properties:
|
|
canCreateSpace:
|
|
type: boolean
|
|
canDeleteSpace:
|
|
type: boolean
|
|
canCreateFqdn:
|
|
type: object
|
|
canDeleteFqdn:
|
|
type: object
|
|
canUploadCSR:
|
|
type: object
|
|
canSignCSR:
|
|
type: object
|
|
groups:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/PermissionGroup'
|
|
|
|
PermissionGroup:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
format: uuid
|
|
example: "cc0e8400-e29b-41d4-a716-446655440000"
|
|
name:
|
|
type: string
|
|
example: "Developers"
|
|
description:
|
|
type: string
|
|
example: "Entwickler-Gruppe"
|
|
permission:
|
|
type: string
|
|
enum: [READ, READ_WRITE, FULL_ACCESS]
|
|
example: "READ_WRITE"
|
|
spaceIds:
|
|
type: array
|
|
items:
|
|
type: string
|
|
format: uuid
|
|
example: ["550e8400-e29b-41d4-a716-446655440000"]
|
|
createdAt:
|
|
type: string
|
|
format: date-time
|
|
example: "2024-01-15T10:30:00Z"
|
|
|
|
CreatePermissionGroupRequest:
|
|
type: object
|
|
required:
|
|
- name
|
|
- permission
|
|
properties:
|
|
name:
|
|
type: string
|
|
example: "Developers"
|
|
description:
|
|
type: string
|
|
example: "Entwickler-Gruppe"
|
|
permission:
|
|
type: string
|
|
enum: [READ, READ_WRITE, FULL_ACCESS]
|
|
example: "READ_WRITE"
|
|
spaceIds:
|
|
type: array
|
|
items:
|
|
type: string
|
|
format: uuid
|
|
example: ["550e8400-e29b-41d4-a716-446655440000"]
|
|
|
|
UpdatePermissionGroupRequest:
|
|
type: object
|
|
properties:
|
|
name:
|
|
type: string
|
|
example: "Developers"
|
|
description:
|
|
type: string
|
|
example: "Entwickler-Gruppe"
|
|
permission:
|
|
type: string
|
|
enum: [READ, READ_WRITE, FULL_ACCESS]
|
|
example: "READ_WRITE"
|
|
spaceIds:
|
|
type: array
|
|
items:
|
|
type: string
|
|
format: uuid
|
|
example: ["550e8400-e29b-41d4-a716-446655440000"]
|
|
|
|
Provider:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
format: uuid
|
|
example: "dd0e8400-e29b-41d4-a716-446655440000"
|
|
name:
|
|
type: string
|
|
example: "Let's Encrypt"
|
|
displayName:
|
|
type: string
|
|
example: "Let's Encrypt (Production)"
|
|
description:
|
|
type: string
|
|
example: "Let's Encrypt Production CA"
|
|
enabled:
|
|
type: boolean
|
|
example: true
|
|
config:
|
|
type: object
|
|
description: Provider-spezifische Konfiguration
|
|
|
|
SetProviderEnabledRequest:
|
|
type: object
|
|
required:
|
|
- enabled
|
|
properties:
|
|
enabled:
|
|
type: boolean
|
|
example: true
|
|
|
|
UpdateProviderConfigRequest:
|
|
type: object
|
|
properties:
|
|
config:
|
|
type: object
|
|
description: Provider-spezifische Konfiguration
|
|
|
|
ProviderTestResponse:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
example: true
|
|
message:
|
|
type: string
|
|
example: "Verbindung erfolgreich"
|
|
|
|
AuditLogsResponse:
|
|
type: object
|
|
properties:
|
|
logs:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/AuditLog'
|
|
total:
|
|
type: integer
|
|
example: 100
|
|
limit:
|
|
type: integer
|
|
example: 100
|
|
offset:
|
|
type: integer
|
|
example: 0
|
|
|
|
AuditLog:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
format: uuid
|
|
example: "ee0e8400-e29b-41d4-a716-446655440000"
|
|
action:
|
|
type: string
|
|
example: "CREATE"
|
|
resourceType:
|
|
type: string
|
|
example: "fqdn"
|
|
resourceId:
|
|
type: string
|
|
format: uuid
|
|
example: "660e8400-e29b-41d4-a716-446655440000"
|
|
userId:
|
|
type: string
|
|
format: uuid
|
|
example: "bb0e8400-e29b-41d4-a716-446655440000"
|
|
username:
|
|
type: string
|
|
example: "admin"
|
|
details:
|
|
type: object
|
|
ipAddress:
|
|
type: string
|
|
example: "192.168.1.1"
|
|
userAgent:
|
|
type: string
|
|
example: "Mozilla/5.0..."
|
|
timestamp:
|
|
type: string
|
|
format: date-time
|
|
example: "2024-01-15T10:30:00Z"
|
|
|
|
MessageResponse:
|
|
type: object
|
|
properties:
|
|
message:
|
|
type: string
|
|
example: "Operation erfolgreich"
|
|
|
|
CountResponse:
|
|
type: object
|
|
properties:
|
|
count:
|
|
type: integer
|
|
example: 5
|
|
|
|
DeleteResponse:
|
|
type: object
|
|
properties:
|
|
message:
|
|
type: string
|
|
example: "Alle FQDNs erfolgreich gelöscht"
|
|
deletedCount:
|
|
type: integer
|
|
example: 5
|
|
|
|
securitySchemes:
|
|
basicAuth:
|
|
type: http
|
|
scheme: basic
|
|
description: Basic HTTP Authentication
|