|
69 | 69 | } |
70 | 70 | } |
71 | 71 | }, |
| 72 | + "/api/k8s/tls": { |
| 73 | + "get": { |
| 74 | + "tags": [ |
| 75 | + "Kubernetes Diagnostics" |
| 76 | + ], |
| 77 | + "summary": "TLS-Zertifikat inspizieren", |
| 78 | + "description": "Baut eine separate TLS-Verbindung zum Ziel auf und gibt Protokoll, Cipher Suite, Zertifikatskette und SPIFFE/mTLS-Informationen zurück.", |
| 79 | + "operationId": "inspectTls", |
| 80 | + "parameters": [ |
| 81 | + { |
| 82 | + "name": "url", |
| 83 | + "in": "query", |
| 84 | + "description": "Ziel-URL (muss https:// sein)", |
| 85 | + "required": true, |
| 86 | + "schema": { |
| 87 | + "type": "string" |
| 88 | + }, |
| 89 | + "example": "https://example.com" |
| 90 | + } |
| 91 | + ], |
| 92 | + "responses": { |
| 93 | + "200": { |
| 94 | + "description": "TLS-Informationen erfolgreich abgerufen", |
| 95 | + "content": { |
| 96 | + "*/*": { |
| 97 | + "schema": { |
| 98 | + "type": "object", |
| 99 | + "additionalProperties": {} |
| 100 | + } |
| 101 | + } |
| 102 | + } |
| 103 | + } |
| 104 | + } |
| 105 | + } |
| 106 | + }, |
| 107 | + "/api/k8s/status": { |
| 108 | + "get": { |
| 109 | + "tags": [ |
| 110 | + "Kubernetes Diagnostics" |
| 111 | + ], |
| 112 | + "summary": "K8s-Client-Status abrufen", |
| 113 | + "description": "Zeigt ob der Kubernetes API Client erfolgreich initialisiert wurde, und listet die unterstützten Istio-Ressourcentypen und API-Versionen.", |
| 114 | + "operationId": "getK8sStatus", |
| 115 | + "responses": { |
| 116 | + "200": { |
| 117 | + "description": "K8s-Clientstatus", |
| 118 | + "content": { |
| 119 | + "*/*": { |
| 120 | + "schema": { |
| 121 | + "type": "object", |
| 122 | + "additionalProperties": {} |
| 123 | + } |
| 124 | + } |
| 125 | + } |
| 126 | + } |
| 127 | + } |
| 128 | + } |
| 129 | + }, |
72 | 130 | "/api/k8s/istio/{type}": { |
73 | 131 | "get": { |
74 | 132 | "tags": [ |
75 | 133 | "Kubernetes Diagnostics" |
76 | 134 | ], |
77 | 135 | "summary": "Istio-Ressourcen auflisten", |
78 | | - "description": "Listet spezifische Istio-Ressourcen eines Namespaces auf. Unterstützte Typen: `virtualservices`, `destinationrules`.", |
| 136 | + "description": "Listet spezifische Istio-Ressourcen eines Namespaces auf. Unterstützte Typen: `virtualservices`, `destinationrules`, `gateways`, `serviceentries`, `sidecars`, `envoyfilters`, `peerauthentications`, `requestauthentications`, `authorizationpolicies`.", |
79 | 137 | "operationId": "getIstioResources", |
80 | 138 | "parameters": [ |
81 | 139 | { |
|
107 | 165 | "*/*": { |
108 | 166 | "schema": { |
109 | 167 | "type": "array", |
110 | | - "items": {} |
| 168 | + "items": { |
| 169 | + "type": "object" |
| 170 | + } |
111 | 171 | } |
112 | 172 | } |
113 | 173 | } |
|
141 | 201 | } |
142 | 202 | } |
143 | 203 | }, |
| 204 | + "/api/k8s/correlate": { |
| 205 | + "get": { |
| 206 | + "tags": [ |
| 207 | + "Kubernetes Diagnostics" |
| 208 | + ], |
| 209 | + "summary": "URL mit VirtualService/DestinationRule korrelieren", |
| 210 | + "description": "Prüft ob die angegebene URL durch einen VirtualService abgedeckt ist und welche Routen/DestinationRules zutreffen.", |
| 211 | + "operationId": "correlateUrl", |
| 212 | + "parameters": [ |
| 213 | + { |
| 214 | + "name": "url", |
| 215 | + "in": "query", |
| 216 | + "description": "Ziel-URL", |
| 217 | + "required": true, |
| 218 | + "schema": { |
| 219 | + "type": "string" |
| 220 | + }, |
| 221 | + "example": "http://my-service.default.svc.cluster.local/api/v1" |
| 222 | + }, |
| 223 | + { |
| 224 | + "name": "namespace", |
| 225 | + "in": "query", |
| 226 | + "description": "Kubernetes-Namespace", |
| 227 | + "required": false, |
| 228 | + "schema": { |
| 229 | + "type": "string", |
| 230 | + "default": "default" |
| 231 | + }, |
| 232 | + "example": "default" |
| 233 | + } |
| 234 | + ], |
| 235 | + "responses": { |
| 236 | + "200": { |
| 237 | + "description": "Korrelationsergebnis erfolgreich abgerufen", |
| 238 | + "content": { |
| 239 | + "*/*": { |
| 240 | + "schema": { |
| 241 | + "type": "object", |
| 242 | + "additionalProperties": {} |
| 243 | + } |
| 244 | + } |
| 245 | + } |
| 246 | + } |
| 247 | + } |
| 248 | + } |
| 249 | + }, |
144 | 250 | "/api/k8s/context": { |
145 | 251 | "get": { |
146 | 252 | "tags": [ |
|
342 | 448 | "type": "integer", |
343 | 449 | "format": "int64" |
344 | 450 | }, |
| 451 | + "contentDisposition": { |
| 452 | + "$ref": "#/components/schemas/ContentDisposition" |
| 453 | + }, |
345 | 454 | "acceptCharset": { |
346 | 455 | "type": "array", |
347 | 456 | "items": { |
348 | 457 | "type": "string" |
349 | 458 | } |
350 | 459 | }, |
351 | | - "contentDisposition": { |
352 | | - "$ref": "#/components/schemas/ContentDisposition" |
353 | | - }, |
354 | 460 | "range": { |
355 | 461 | "type": "array", |
356 | 462 | "items": { |
|
450 | 556 | }, |
451 | 557 | "uniqueItems": true |
452 | 558 | }, |
| 559 | + "etag": { |
| 560 | + "type": "string" |
| 561 | + }, |
453 | 562 | "bearerAuth": { |
454 | 563 | "type": "string", |
455 | 564 | "writeOnly": true |
456 | 565 | }, |
457 | 566 | "contentLanguage": { |
458 | 567 | "type": "string" |
459 | 568 | }, |
460 | | - "etag": { |
461 | | - "type": "string" |
462 | | - }, |
463 | 569 | "expires": { |
464 | 570 | "type": "integer", |
465 | 571 | "format": "int64" |
|
492 | 598 | "type": "string" |
493 | 599 | } |
494 | 600 | }, |
| 601 | + "contentType": { |
| 602 | + "$ref": "#/components/schemas/MediaType" |
| 603 | + }, |
495 | 604 | "ifModifiedSince": { |
496 | 605 | "type": "integer", |
497 | 606 | "format": "int64" |
498 | | - }, |
499 | | - "contentType": { |
500 | | - "$ref": "#/components/schemas/MediaType" |
501 | 607 | } |
502 | 608 | } |
503 | 609 | }, |
|
0 commit comments