@cryptotaxi247 / CoPilot / commits / 297247d6

Create swagger.json

taylor_socfortress committed Jul 10, 2023 at 16:48 UTC 297247d6a6a0d8631e217b3ce7fc13a46a2bf9b9
1 file changed +1945
backend/app/static/swagger.json new
+1945
@@ -0,0 +1,1945 @@
1 +{
2 + "openapi": "3.0.3",
3 + "info": {
4 + "title": "SOCFortress CoPilot",
5 + "version": "1.0.0"
6 + },
7 + "servers": [
8 + {
9 + "url": "http://localhost:5000"
10 + }
11 + ],
12 + "tags": [
13 + {
14 + "name": "Connectors",
15 + "description": "Everything about your Connectors",
16 + "externalDocs": {
17 + "description": "Find out more",
18 + "url": "http://swagger.io"
19 + }
20 + },
21 + {
22 + "name": "Agents",
23 + "description": "Everything about your Agents",
24 + "externalDocs": {
25 + "description": "Find out more",
26 + "url": "http://swagger.io"
27 + }
28 + },
29 + {
30 + "name": "Rules",
31 + "description": "Everything about your Wazuh Rules",
32 + "externalDocs": {
33 + "description": "Find out more",
34 + "url": "http://swagger.io"
35 + }
36 + },
37 + {
38 + "name": "Graylog",
39 + "description": "Everything about Graylog",
40 + "externalDocs": {
41 + "description": "Find out more",
42 + "url": "http://swagger.io"
43 + }
44 + },
45 + {
46 + "name": "Wazuh-Indexer",
47 + "description": "Everything about Wazuh-Indexer",
48 + "externalDocs": {
49 + "description": "Find out more",
50 + "url": "http://swagger.io"
51 + }
52 + },
53 + {
54 + "name": "Shuffle",
55 + "description": "Everything about Shuffle",
56 + "externalDocs": {
57 + "description": "Find out more",
58 + "url": "http://swagger.io"
59 + }
60 + },
61 + {
62 + "name": "Velociraptor",
63 + "description": "Everything about Velociraptor",
64 + "externalDocs": {
65 + "description": "Find out more",
66 + "url": "http://swagger.io"
67 + }
68 + },
69 + {
70 + "name": "DFIR-IRIS",
71 + "description": "Everything about DFIR-IRIS",
72 + "externalDocs": {
73 + "description": "Find out more",
74 + "url": "http://swagger.io"
75 + }
76 + }
77 + ],
78 + "paths": {
79 + "/connectors": {
80 + "get": {
81 + "tags": [
82 + "Connectors"
83 + ],
84 + "summary": "List all available connectors",
85 + "description": "Endpoint to list all available connectors. It processes each connector to verify the connection and returns the results.",
86 + "responses": {
87 + "200": {
88 + "description": "A JSON response containing the list of all available connectors along with their connection verification status.",
89 + "content": {
90 + "application/json": {
91 + "schema": {
92 + "type": "array",
93 + "items": {
94 + "type": "object",
95 + "properties": {
96 + "connectionSuccessful": {
97 + "type": "boolean"
98 + },
99 + "connector_api_key": {
100 + "type": "string",
101 + "nullable": true
102 + },
103 + "connector_last_updated": {
104 + "type": "string",
105 + "format": "date-time"
106 + },
107 + "connector_name": {
108 + "type": "string"
109 + },
110 + "connector_password": {
111 + "type": "string",
112 + "nullable": true
113 + },
114 + "connector_type": {
115 + "type": "string"
116 + },
117 + "connector_url": {
118 + "type": "string"
119 + },
120 + "connector_username": {
121 + "type": "string",
122 + "nullable": true
123 + },
124 + "id": {
125 + "type": "integer"
126 + },
127 + "name": {
128 + "type": "string"
129 + }
130 + }
131 + }
132 + }
133 + }
134 + }
135 + }
136 + }
137 + }
138 + },
139 + "/connectors/{id}": {
140 + "get": {
141 + "tags": [
142 + "Connectors"
143 + ],
144 + "summary": "Get the details of a specific connector.",
145 + "operationId": "getConnectorDetails",
146 + "parameters": [
147 + {
148 + "name": "id",
149 + "in": "path",
150 + "description": "The id of the connector to be fetched.",
151 + "required": true,
152 + "schema": {
153 + "type": "integer"
154 + }
155 + }
156 + ],
157 + "responses": {
158 + "200": {
159 + "description": "A JSON response containing the details of the connector.",
160 + "content": {
161 + "application/json": {
162 + "schema": {
163 + "type": "object",
164 + "properties": {
165 + "name": {
166 + "type": "string"
167 + },
168 + "connectionSuccessful": {
169 + "type": "boolean"
170 + },
171 + "connector_api_key": {
172 + "type": "string",
173 + "nullable": true
174 + },
175 + "connector_last_updated": {
176 + "type": "string",
177 + "format": "date-time"
178 + },
179 + "connector_name": {
180 + "type": "string"
181 + },
182 + "connector_password": {
183 + "type": "string",
184 + "nullable": true
185 + },
186 + "connector_type": {
187 + "type": "string"
188 + },
189 + "connector_url": {
190 + "type": "string"
191 + },
192 + "connector_username": {
193 + "type": "string",
194 + "nullable": true
195 + },
196 + "id": {
197 + "type": "integer"
198 + }
199 + }
200 + }
201 + }
202 + }
203 + },
204 + "404": {
205 + "description": "The connector could not be found."
206 + }
207 + }
208 + },
209 + "put": {
210 + "tags": [
211 + "Connectors"
212 + ],
213 + "summary": "Update a connector",
214 + "description": "Endpoint to update a connector. If the update operation was successful, it returns the connection verification status for the updated connector.",
215 + "operationId": "update_connector_route",
216 + "parameters": [
217 + {
218 + "name": "id",
219 + "in": "path",
220 + "description": "The id of the connector to be updated.",
221 + "required": true,
222 + "schema": {
223 + "type": "integer"
224 + }
225 + }
226 + ],
227 + "requestBody": {
228 + "content": {
229 + "application/json": {
230 + "schema": {
231 + "type": "object",
232 + "properties": {
233 + "connector_url": {
234 + "type": "string"
235 + },
236 + "connector_username": {
237 + "type": "string",
238 + "nullable": true
239 + },
240 + "connector_password": {
241 + "type": "string",
242 + "nullable": true
243 + },
244 + "connector_api_key": {
245 + "type": "string",
246 + "nullable": true
247 + }
248 + }
249 + }
250 + }
251 + },
252 + "required": true
253 + },
254 + "responses": {
255 + "200": {
256 + "description": "A JSON response containing the connection verification status of the updated connector.",
257 + "content": {
258 + "application/json": {
259 + "schema": {
260 + "type": "object",
261 + "properties": {
262 + "name": {
263 + "type": "string"
264 + },
265 + "connected": {
266 + "type": "boolean"
267 + },
268 + "message": {
269 + "type": "string"
270 + }
271 + }
272 + }
273 + }
274 + }
275 + },
276 + "400": {
277 + "description": "If the request data is invalid, it returns a 400 status with an error message.",
278 + "content": {
279 + "application/json": {
280 + "schema": {
281 + "type": "object",
282 + "properties": {
283 + "message": {
284 + "type": "string"
285 + },
286 + "success": {
287 + "type": "boolean"
288 + }
289 + }
290 + }
291 + }
292 + }
293 + },
294 + "404": {
295 + "description": "If the connector is not found, it returns a 404 status with an error message.",
296 + "content": {
297 + "application/json": {
298 + "schema": {
299 + "type": "object",
300 + "properties": {
301 + "message": {
302 + "type": "string"
303 + },
304 + "success": {
305 + "type": "boolean"
306 + }
307 + }
308 + }
309 + }
310 + }
311 + }
312 + }
313 + }
314 + },
315 + "/agents": {
316 + "get": {
317 + "tags": [
318 + "Agents"
319 + ],
320 + "summary": "List all available agents",
321 + "description": "Endpoint to list all available agents. It processes each agent to verify the connection and returns the results.",
322 + "responses": {
323 + "200": {
324 + "description": "Successful operation",
325 + "content": {
326 + "application/json": {
327 + "schema": {
328 + "type": "array",
329 + "items": {
330 + "$ref": "#/components/schemas/Agent"
331 + }
332 + }
333 + }
334 + }
335 + }
336 + }
337 + }
338 + },
339 + "/agents/{id}": {
340 + "get": {
341 + "tags": [
342 + "Agents"
343 + ],
344 + "summary": "Get details of a specific agent",
345 + "description": "Endpoint to get the details of an agent.",
346 + "parameters": [
347 + {
348 + "name": "id",
349 + "in": "path",
350 + "required": true,
351 + "description": "ID of the agent to be fetched",
352 + "schema": {
353 + "type": "string"
354 + }
355 + }
356 + ],
357 + "responses": {
358 + "200": {
359 + "description": "Successful operation",
360 + "content": {
361 + "application/json": {
362 + "schema": {
363 + "$ref": "#/components/schemas/Agent"
364 + }
365 + }
366 + }
367 + }
368 + }
369 + }
370 + },
371 + "/agents/{id}/critical": {
372 + "post": {
373 + "tags": [
374 + "Agents"
375 + ],
376 + "summary": "Marks an agent as critical",
377 + "description": "Marks an agent as a critical asset in the database.",
378 + "parameters": [
379 + {
380 + "name": "id",
381 + "in": "path",
382 + "description": "ID of the agent to be marked as critical",
383 + "required": true,
384 + "type": "string"
385 + }
386 + ],
387 + "responses": {
388 + "200": {
389 + "description": "Agent marked as critical",
390 + "schema": {
391 + "$ref": "#/definitions/Agent"
392 + }
393 + },
394 + "400": {
395 + "description": "Invalid ID supplied"
396 + },
397 + "404": {
398 + "description": "Agent not found"
399 + }
400 + }
401 + }
402 + },
403 + "/agents/{id}/delete": {
404 + "post": {
405 + "tags": [
406 + "Agents"
407 + ],
408 + "summary": "Deletes an agent",
409 + "description": "Deletes an agent from the database.",
410 + "parameters": [
411 + {
412 + "name": "id",
413 + "in": "path",
414 + "description": "ID of the agent to be deleted",
415 + "required": true,
416 + "type": "string"
417 + }
418 + ],
419 + "responses": {
420 + "200": {
421 + "description": "Agent deleted",
422 + "schema": {
423 + "$ref": "#/definitions/Agent"
424 + }
425 + },
426 + "400": {
427 + "description": "Invalid ID supplied"
428 + },
429 + "404": {
430 + "description": "Agent not found"
431 + }
432 + }
433 + }
434 +
435 + },
436 + "/agents/{id}/noncritical": {
437 + "post": {
438 + "tags": [
439 + "Agents"
440 + ],
441 + "summary": "Unmarks an agent as critical",
442 + "description": "Marks an agent as a non-critical asset in the database.",
443 + "parameters": [
444 + {
445 + "name": "id",
446 + "in": "path",
447 + "description": "ID of the agent to be unmarked as critical",
448 + "required": true,
449 + "type": "string"
450 + }
451 + ],
452 + "responses": {
453 + "200": {
454 + "description": "Agent unmarked as critical",
455 + "schema": {
456 + "$ref": "#/definitions/Agent"
457 + }
458 + },
459 + "400": {
460 + "description": "Invalid ID supplied"
461 + },
462 + "404": {
463 + "description": "Agent not found"
464 + }
465 + }
466 + }
467 + },
468 + "/agents/sync": {
469 + "post": {
470 + "summary": "Sync all agents",
471 + "description": "Endpoint to sync all agents.",
472 + "responses": {
473 + "200": {
474 + "description": "Successful operation",
475 + "content": {
476 + "application/json": {
477 + "schema": {
478 + "type": "object",
479 + "properties": {
480 + "message": {
481 + "type": "string",
482 + "description": "Operation message"
483 + },
484 + "success": {
485 + "type": "boolean",
486 + "description": "Indicates if the operation was successful"
487 + },
488 + "agents_added": {
489 + "type": "array",
490 + "items": {
491 + "type": "object",
492 + "description": "Agent details"
493 + }
494 + }
495 + }
496 + }
497 + }
498 + }
499 + },
500 + "default": {
501 + "description": "Unexpected error",
502 + "content": {
503 + "application/json": {
504 + "schema": {
505 + "$ref": "#/components/schemas/Error"
506 + }
507 + }
508 + }
509 + }
510 + },
511 + "operationId": "syncAgents",
512 + "tags": [
513 + "Agents"
514 + ]
515 + }
516 + },
517 + "/agents/{id}/vulnerabilities": {
518 + "get": {
519 + "tags": [
520 + "Agents"
521 + ],
522 + "summary": "Get vulnerabilities of a specific agent",
523 + "description": "Endpoint to get the vulnerabilities of an agent.",
524 + "parameters": [
525 + {
526 + "name": "id",
527 + "in": "path",
528 + "required": true,
529 + "description": "ID of the agent to be fetched",
530 + "schema": {
531 + "type": "string"
532 + }
533 + }
534 + ],
535 + "responses": {
536 + "200": {
537 + "description": "Successful operation",
538 + "content": {
539 + "application/json": {
540 + "schema": {
541 + "type": "array",
542 + "items": {
543 + "$ref": "#/components/schemas/Vulnerability"
544 + }
545 + }
546 + }
547 + }
548 + }
549 + }
550 + }
551 + },
552 + "/rule/disable": {
553 + "post": {
554 + "summary": "Disable a rule",
555 + "description": "Endpoint to disable a rule.",
556 + "requestBody": {
557 + "content": {
558 + "application/json": {
559 + "schema": {
560 + "type": "object",
561 + "properties": {
562 + "rule_id": {
563 + "type": "string",
564 + "description": "The ID of the rule to be disabled."
565 + },
566 + "reason": {
567 + "type": "string",
568 + "description": "The reason for disabling the rule."
569 + },
570 + "length_of_time": {
571 + "type": "integer",
572 + "description": "The length of time the rule should be disabled for."
573 + }
574 + }
575 + }
576 + }
577 + }
578 + },
579 + "responses": {
580 + "200": {
581 + "description": "Successful operation",
582 + "content": {
583 + "application/json": {
584 + "schema": {
585 + "type": "object",
586 + "properties": {
587 + "message": {
588 + "type": "string",
589 + "description": "Operation message"
590 + },
591 + "success": {
592 + "type": "boolean",
593 + "description": "Indicates if the operation was successful"
594 + }
595 + }
596 + }
597 + }
598 + }
599 + },
600 + "default": {
601 + "description": "Unexpected error",
602 + "content": {
603 + "application/json": {
604 + "schema": {
605 + "$ref": "#/components/schemas/Error"
606 + }
607 + }
608 + }
609 + }
610 + },
611 + "operationId": "disableRule",
612 + "tags": [
613 + "Rules"
614 + ]
615 + }
616 + },
617 + "/rule/enable": {
618 + "post": {
619 + "summary": "Enable a rule",
620 + "description": "Endpoint to enable a rule.",
621 + "requestBody": {
622 + "content": {
623 + "application/json": {
624 + "schema": {
625 + "type": "object",
626 + "properties": {
627 + "rule_id": {
628 + "type": "string",
629 + "description": "The ID of the rule to be enabled."
630 + }
631 + }
632 + }
633 + }
634 + }
635 + },
636 + "responses": {
637 + "200": {
638 + "description": "Successful operation",
639 + "content": {
640 + "application/json": {
641 + "schema": {
642 + "type": "object",
643 + "properties": {
644 + "message": {
645 + "type": "string",
646 + "description": "Operation message"
647 + },
648 + "success": {
649 + "type": "boolean",
650 + "description": "Indicates if the operation was successful"
651 + }
652 + }
653 + }
654 + }
655 + }
656 + },
657 + "default": {
658 + "description": "Unexpected error",
659 + "content": {
660 + "application/json": {
661 + "schema": {
662 + "$ref": "#/components/schemas/Error"
663 + }
664 + }
665 + }
666 + }
667 + },
668 + "operationId": "enableRule",
669 + "tags": [
670 + "Rules"
671 + ]
672 + }
673 + },
674 + "/graylog/messages": {
675 + "get": {
676 + "summary": "Get messages from Graylog",
677 + "description": "Endpoint to get messages from Graylog.",
678 + "responses": {
679 + "200": {
680 + "description": "Successful operation",
681 + "content": {
682 + "application/json": {
683 + "schema": {
684 + "type": "object",
685 + "properties": {
686 + "messages": {
687 + "type": "array",
688 + "items": {
689 + "type": "object",
690 + "description": "Message details"
691 + }
692 + }
693 + }
694 + }
695 + }
696 + }
697 + },
698 + "default": {
699 + "description": "Unexpected error",
700 + "content": {
701 + "application/json": {
702 + "schema": {
703 + "$ref": "#/components/schemas/Error"
704 + }
705 + }
706 + }
707 + }
708 + },
709 + "operationId": "getGraylogMessages",
710 + "tags": [
711 + "Graylog"
712 + ]
713 + }
714 + },
715 + "/graylog/metrics": {
716 + "get": {
717 + "summary": "Get metrics from Graylog",
718 + "description": "Endpoint to get metrics from Graylog.",
719 + "responses": {
720 + "200": {
721 + "description": "Successful operation",
722 + "content": {
723 + "application/json": {
724 + "schema": {
725 + "type": "object",
726 + "properties": {
727 + "metrics": {
728 + "type": "array",
729 + "items": {
730 + "type": "object",
731 + "description": "Metric details"
732 + }
733 + }
734 + }
735 + }
736 + }
737 + }
738 + },
739 + "default": {
740 + "description": "Unexpected error",
741 + "content": {
742 + "application/json": {
743 + "schema": {
744 + "$ref": "#/components/schemas/Error"
745 + }
746 + }
747 + }
748 + }
749 + },
750 + "operationId": "getGraylogMetrics",
751 + "tags": [
752 + "Graylog"
753 + ]
754 + }
755 + },
756 + "/graylog/indices": {
757 + "get": {
758 + "summary": "Get indices from Graylog",
759 + "description": "Endpoint to get indices from Graylog.",
760 + "responses": {
761 + "200": {
762 + "description": "Successful operation",
763 + "content": {
764 + "application/json": {
765 + "schema": {
766 + "type": "object",
767 + "properties": {
768 + "indices": {
769 + "type": "array",
770 + "items": {
771 + "type": "object",
772 + "description": "Index details"
773 + }
774 + }
775 + }
776 + }
777 + }
778 + }
779 + },
780 + "default": {
781 + "description": "Unexpected error",
782 + "content": {
783 + "application/json": {
784 + "schema": {
785 + "$ref": "#/components/schemas/Error"
786 + }
787 + }
788 + }
789 + }
790 + },
791 + "operationId": "getGraylogIndices",
792 + "tags": [
793 + "Graylog"
794 + ]
795 + }
796 + },
797 + "/graylog/indices/{index_name}/delete": {
798 + "delete": {
799 + "tags": [
800 + "Graylog"
801 + ],
802 + "summary": "Deletes a Graylog index",
803 + "description": "Endpoint to delete a Graylog index.",
804 + "parameters": [
805 + {
806 + "name": "index_name",
807 + "in": "path",
808 + "description": "The name of the index to be deleted.",
809 + "required": true,
810 + "type": "string"
811 + }
812 + ],
813 + "responses": {
814 + "200": {
815 + "description": "Successful operation",
816 + "schema": {
817 + "type": "object",
818 + "properties": {
819 + "message": {
820 + "type": "string"
821 + },
822 + "success": {
823 + "type": "boolean"
824 + }
825 + }
826 + }
827 + },
828 + "400": {
829 + "description": "Bad request",
830 + "schema": {
831 + "type": "object",
832 + "properties": {
833 + "message": {
834 + "type": "string"
835 + },
836 + "success": {
837 + "type": "boolean"
838 + }
839 + }
840 + }
841 + },
842 + "404": {
843 + "description": "Index not found",
844 + "schema": {
845 + "type": "object",
846 + "properties": {
847 + "message": {
848 + "type": "string"
849 + },
850 + "success": {
851 + "type": "boolean"
852 + }
853 + }
854 + }
855 + }
856 + }
857 + }
858 + },
859 + "/graylog/inputs": {
860 + "get": {
861 + "summary": "Get inputs from Graylog",
862 + "description": "Endpoint to get inputs from Graylog.",
863 + "responses": {
864 + "200": {
865 + "description": "Successful operation",
866 + "content": {
867 + "application/json": {
868 + "schema": {
869 + "type": "object",
870 + "properties": {
871 + "inputs": {
872 + "type": "array",
873 + "items": {
874 + "type": "object",
875 + "description": "Input details"
876 + }
877 + }
878 + }
879 + }
880 + }
881 + }
882 + },
883 + "default": {
884 + "description": "Unexpected error",
885 + "content": {
886 + "application/json": {
887 + "schema": {
888 + "$ref": "#/components/schemas/Error"
889 + }
890 + }
891 + }
892 + }
893 + },
894 + "operationId": "getGraylogInputs",
895 + "tags": [
896 + "Graylog"
897 + ]
898 + }
899 + },
900 + "/alerts": {
901 + "get": {
902 + "summary": "Get alerts",
903 + "description": "Endpoint to get alerts.",
904 + "responses": {
905 + "200": {
906 + "description": "Successful operation",
907 + "content": {
908 + "application/json": {
909 + "schema": {
910 + "type": "object",
911 + "properties": {
912 + "alerts": {
913 + "type": "array",
914 + "items": {
915 + "type": "object",
916 + "description": "Alert details"
917 + }
918 + }
919 + }
920 + }
921 + }
922 + }
923 + },
924 + "default": {
925 + "description": "Unexpected error",
926 + "content": {
927 + "application/json": {
928 + "schema": {
929 + "$ref": "#/components/schemas/Error"
930 + }
931 + }
932 + }
933 + }
934 + },
935 + "operationId": "getAlerts",
936 + "tags": [
937 + "Wazuh-Indexer"
938 + ]
939 + }
940 + },
941 + "/wazuh_indexer/allocation": {
942 + "get": {
943 + "summary": "Get node allocation of the Wazuh-Indexer nodes",
944 + "description": "Endpoint to get node allocation.",
945 + "responses": {
946 + "200": {
947 + "description": "Successful operation",
948 + "content": {
949 + "application/json": {
950 + "schema": {
951 + "type": "object",
952 + "properties": {
953 + "indices": {
954 + "type": "array",
955 + "items": {
956 + "type": "object",
957 + "description": "Node details"
958 + }
959 + }
960 + }
961 + }
962 + }
963 + }
964 + },
965 + "default": {
966 + "description": "Unexpected error",
967 + "content": {
968 + "application/json": {
969 + "schema": {
970 + "$ref": "#/components/schemas/Error"
971 + }
972 + }
973 + }
974 + }
975 + },
976 + "operationId": "getNodeAllocation",
977 + "tags": [
978 + "Wazuh-Indexer"
979 + ]
980 + }
981 + },
982 + "/wazuh_indexer/indices": {
983 + "get": {
984 + "summary": "Get indices from Wazuh-Indexer",
985 + "description": "Endpoint to get indices from Wazuh-Indexer.",
986 + "responses": {
987 + "200": {
988 + "description": "Successful operation",
989 + "content": {
990 + "application/json": {
991 + "schema": {
992 + "type": "object",
993 + "properties": {
994 + "indices": {
995 + "type": "array",
996 + "items": {
997 + "type": "object",
998 + "description": "Index details"
999 + }
1000 + }
1001 + }
1002 + }
1003 + }
1004 + }
1005 + },
1006 + "default": {
1007 + "description": "Unexpected error",
1008 + "content": {
1009 + "application/json": {
1010 + "schema": {
1011 + "$ref": "#/components/schemas/Error"
1012 + }
1013 + }
1014 + }
1015 + }
1016 + },
1017 + "operationId": "getWazuhIndices",
1018 + "tags": [
1019 + "Wazuh-Indexer"
1020 + ]
1021 + }
1022 + },
1023 + "/wazuh_indexer/health": {
1024 + "get": {
1025 + "summary": "Get health of the Wazuh-Indexer nodes",
1026 + "description": "Endpoint to get health.",
1027 + "responses": {
1028 + "200": {
1029 + "description": "Successful operation",
1030 + "content": {
1031 + "application/json": {
1032 + "schema": {
1033 + "type": "object",
1034 + "properties": {
1035 + "cluster_name": {
1036 + "type": "string"
1037 + },
1038 + "status": {
1039 + "type": "string"
1040 + },
1041 + "number_of_nodes": {
1042 + "type": "integer"
1043 + },
1044 + "number_of_data_nodes": {
1045 + "type": "integer"
1046 + },
1047 + "active_primary_shards": {
1048 + "type": "integer"
1049 + },
1050 + "active_shards": {
1051 + "type": "integer"
1052 + },
1053 + "relocating_shards": {
1054 + "type": "integer"
1055 + },
1056 + "initializing_shards": {
1057 + "type": "integer"
1058 + },
1059 + "unassigned_shards": {
1060 + "type": "integer"
1061 + },
1062 + "delayed_unassigned_shards": {
1063 + "type": "integer"
1064 + },
1065 + "number_of_pending_tasks": {
1066 + "type": "integer"
1067 + },
1068 + "number_of_in_flight_fetch": {
1069 + "type": "integer"
1070 + },
1071 + "task_max_waiting_in_queue_millis": {
1072 + "type": "integer"
1073 + },
1074 + "active_shards_percent_as_number": {
1075 + "type": "integer"
1076 + }
1077 + }
1078 + }
1079 + }
1080 + }
1081 + },
1082 + "default": {
1083 + "description": "Unexpected error",
1084 + "content": {
1085 + "application/json": {
1086 + "schema": {
1087 + "$ref": "#/components/schemas/Error"
1088 + }
1089 + }
1090 + }
1091 + }
1092 + },
1093 + "operationId": "getHealth",
1094 + "tags": [
1095 + "Wazuh-Indexer"
1096 + ]
1097 + }
1098 + },
1099 + "/wazuh_indexer/shards": {
1100 + "get": {
1101 + "summary": "Get shards from Wazuh-Indexer",
1102 + "description": "Endpoint to get shards from Wazuh-Indexer.",
1103 + "responses": {
1104 + "200": {
1105 + "description": "Successful operation",
1106 + "content": {
1107 + "application/json": {
1108 + "schema": {
1109 + "type": "object",
1110 + "properties": {
1111 + "shards": {
1112 + "type": "array",
1113 + "items": {
1114 + "type": "object",
1115 + "description": "Shard details"
1116 + }
1117 + }
1118 + }
1119 + }
1120 + }
1121 + }
1122 + },
1123 + "default": {
1124 + "description": "Unexpected error",
1125 + "content": {
1126 + "application/json": {
1127 + "schema": {
1128 + "$ref": "#/components/schemas/Error"
1129 + }
1130 + }
1131 + }
1132 + }
1133 + },
1134 + "operationId": "getShards",
1135 + "tags": [
1136 + "Wazuh-Indexer"
1137 + ]
1138 + }
1139 + },
1140 + "/shuffle/workflows": {
1141 + "get": {
1142 + "summary": "Get all workflows",
1143 + "description": "Endpoint to get all workflows.",
1144 + "responses": {
1145 + "200": {
1146 + "description": "Successful operation",
1147 + "content": {
1148 + "application/json": {
1149 + "schema": {
1150 + "type": "object",
1151 + "properties": {
1152 + "workflows": {
1153 + "type": "array",
1154 + "items": {
1155 + "type": "object",
1156 + "description": "Workflow details"
1157 + }
1158 + }
1159 + }
1160 + }
1161 + }
1162 + }
1163 + },
1164 + "default": {
1165 + "description": "Unexpected error",
1166 + "content": {
1167 + "application/json": {
1168 + "schema": {
1169 + "$ref": "#/components/schemas/Error"
1170 + }
1171 + }
1172 + }
1173 + }
1174 + },
1175 + "operationId": "getAllWorkflows",
1176 + "tags": [
1177 + "Shuffle"
1178 + ]
1179 + }
1180 + },
1181 + "/shuffle/workflows/executions": {
1182 + "get": {
1183 + "summary": "Get all workflow executions",
1184 + "description": "Endpoint to get all workflow executions.",
1185 + "responses": {
1186 + "200": {
1187 + "description": "Successful operation",
1188 + "content": {
1189 + "application/json": {
1190 + "schema": {
1191 + "type": "object",
1192 + "properties": {
1193 + "executions": {
1194 + "type": "array",
1195 + "items": {
1196 + "type": "object",
1197 + "description": "Workflow execution details"
1198 + }
1199 + }
1200 + }
1201 + }
1202 + }
1203 + }
1204 + },
1205 + "default": {
1206 + "description": "Unexpected error",
1207 + "content": {
1208 + "application/json": {
1209 + "schema": {
1210 + "$ref": "#/components/schemas/Error"
1211 + }
1212 + }
1213 + }
1214 + }
1215 + },
1216 + "operationId": "getAllWorkflowExecutions",
1217 + "tags": [
1218 + "Shuffle"
1219 + ]
1220 + }
1221 + },
1222 + "/shuffle/workflows/executions/{workflow_id}": {
1223 + "get": {
1224 + "summary": "Get workflow executions by workflow id",
1225 + "description": "Endpoint to get workflow executions by workflow id.",
1226 + "parameters": [
1227 + {
1228 + "name": "workflow_id",
1229 + "in": "path",
1230 + "description": "The workflow id",
1231 + "required": true,
1232 + "schema": {
1233 + "type": "string"
1234 + }
1235 + }
1236 + ],
1237 + "responses": {
1238 + "200": {
1239 + "description": "Successful operation",
1240 + "content": {
1241 + "application/json": {
1242 + "schema": {
1243 + "type": "object",
1244 + "properties": {
1245 + "executions": {
1246 + "type": "array",
1247 + "items": {
1248 + "type": "object",
1249 + "description": "Workflow execution details"
1250 + }
1251 + }
1252 + }
1253 + }
1254 + }
1255 + }
1256 + },
1257 + "default": {
1258 + "description": "Unexpected error",
1259 + "content": {
1260 + "application/json": {
1261 + "schema": {
1262 + "$ref": "#/components/schemas/Error"
1263 + }
1264 + }
1265 + }
1266 + }
1267 + },
1268 + "operationId": "getWorkflowExecutionsByWorkflowId",
1269 + "tags": [
1270 + "Shuffle"
1271 + ]
1272 + }
1273 + },
1274 + "/velociraptor/artifacts": {
1275 + "get": {
1276 + "summary": "Get all artifacts",
1277 + "description": "Endpoint to get all artifacts.",
1278 + "responses": {
1279 + "200": {
1280 + "description": "Successful operation",
1281 + "content": {
1282 + "application/json": {
1283 + "schema": {
1284 + "type": "object",
1285 + "properties": {
1286 + "artifacts": {
1287 + "type": "array",
1288 + "items": {
1289 + "type": "object",
1290 + "description": "Artifact details"
1291 + }
1292 + }
1293 + }
1294 + }
1295 + }
1296 + }
1297 + },
1298 + "default": {
1299 + "description": "Unexpected error",
1300 + "content": {
1301 + "application/json": {
1302 + "schema": {
1303 + "$ref": "#/components/schemas/Error"
1304 + }
1305 + }
1306 + }
1307 + }
1308 + },
1309 + "operationId": "getAllArtifacts",
1310 + "tags": [
1311 + "Velociraptor"
1312 + ]
1313 + }
1314 + },
1315 + "/velociraptor/artifacts/linux": {
1316 + "get": {
1317 + "summary": "Get all linux artifacts",
1318 + "description": "Endpoint to get all linux artifacts.",
1319 + "responses": {
1320 + "200": {
1321 + "description": "Successful operation",
1322 + "content": {
1323 + "application/json": {
1324 + "schema": {
1325 + "type": "object",
1326 + "properties": {
1327 + "artifacts": {
1328 + "type": "array",
1329 + "items": {
1330 + "type": "object",
1331 + "description": "Artifact details"
1332 + }
1333 + }
1334 + }
1335 + }
1336 + }
1337 + }
1338 + },
1339 + "default": {
1340 + "description": "Unexpected error",
1341 + "content": {
1342 + "application/json": {
1343 + "schema": {
1344 + "$ref": "#/components/schemas/Error"
1345 + }
1346 + }
1347 + }
1348 + }
1349 + },
1350 + "operationId": "getAllLinuxArtifacts",
1351 + "tags": [
1352 + "Velociraptor"
1353 + ]
1354 + }
1355 + },
1356 + "/velociraptor/artifacts/windows": {
1357 + "get": {
1358 + "summary": "Get all windows artifacts",
1359 + "description": "Endpoint to get all windows artifacts.",
1360 + "responses": {
1361 + "200": {
1362 + "description": "Successful operation",
1363 + "content": {
1364 + "application/json": {
1365 + "schema": {
1366 + "type": "object",
1367 + "properties": {
1368 + "artifacts": {
1369 + "type": "array",
1370 + "items": {
1371 + "type": "object",
1372 + "description": "Artifact details"
1373 + }
1374 + }
1375 + }
1376 + }
1377 + }
1378 + }
1379 + },
1380 + "default": {
1381 + "description": "Unexpected error",
1382 + "content": {
1383 + "application/json": {
1384 + "schema": {
1385 + "$ref": "#/components/schemas/Error"
1386 + }
1387 + }
1388 + }
1389 + }
1390 + },
1391 + "operationId": "getAllWindowsArtifacts",
1392 + "tags": [
1393 + "Velociraptor"
1394 + ]
1395 + }
1396 + },
1397 + "/velociraptor/artifacts/mac": {
1398 + "get": {
1399 + "summary": "Get all mac artifacts",
1400 + "description": "Endpoint to get all mac artifacts.",
1401 + "responses": {
1402 + "200": {
1403 + "description": "Successful operation",
1404 + "content": {
1405 + "application/json": {
1406 + "schema": {
1407 + "type": "object",
1408 + "properties": {
1409 + "artifacts": {
1410 + "type": "array",
1411 + "items": {
1412 + "type": "object",
1413 + "description": "Artifact details"
1414 + }
1415 + }
1416 + }
1417 + }
1418 + }
1419 + }
1420 + },
1421 + "default": {
1422 + "description": "Unexpected error",
1423 + "content": {
1424 + "application/json": {
1425 + "schema": {
1426 + "$ref": "#/components/schemas/Error"
1427 + }
1428 + }
1429 + }
1430 + }
1431 + },
1432 + "operationId": "getAllMacArtifacts",
1433 + "tags": [
1434 + "Velociraptor"
1435 + ]
1436 + }
1437 + },
1438 + "/velociraptor/artifacts/collection": {
1439 + "post": {
1440 + "summary": "Create a new artifact collection",
1441 + "description": "Endpoint to create a new artifact collection.",
1442 + "requestBody": {
1443 + "description": "Artifact collection details",
1444 + "content": {
1445 + "application/json": {
1446 + "schema": {
1447 + "type": "object",
1448 + "properties": {
1449 + "artifact_name": {
1450 + "type": "string",
1451 + "description": "The name of the artifact collection."
1452 + },
1453 + "client_name": {
1454 + "type": "string",
1455 + "description": "The name of the client to collect the artifact for."
1456 + }
1457 + }
1458 + }
1459 + }
1460 + }
1461 + },
1462 + "responses": {
1463 + "200": {
1464 + "description": "Successful operation",
1465 + "content": {
1466 + "application/json": {
1467 + "schema": {
1468 + "type": "object",
1469 + "properties": {
1470 + "collection": {
1471 + "type": "object",
1472 + "description": "Artifact collection details"
1473 + }
1474 + }
1475 + }
1476 + }
1477 + }
1478 + },
1479 + "default": {
1480 + "description": "Unexpected error",
1481 + "content": {
1482 + "application/json": {
1483 + "schema": {
1484 + "$ref": "#/components/schemas/Error"
1485 + }
1486 + }
1487 + }
1488 + }
1489 + },
1490 + "operationId": "createArtifactCollection",
1491 + "tags": [
1492 + "Velociraptor"
1493 + ]
1494 + }
1495 + },
1496 + "/dfir_iris/cases": {
1497 + "get": {
1498 + "summary": "Get all cases",
1499 + "description": "Endpoint to get all cases.",
1500 + "responses": {
1501 + "200": {
1502 + "description": "Successful operation",
1503 + "content": {
1504 + "application/json": {
1505 + "schema": {
1506 + "type": "object",
1507 + "properties": {
1508 + "cases": {
1509 + "type": "array",
1510 + "items": {
1511 + "type": "object",
1512 + "description": "Case details"
1513 + }
1514 + }
1515 + }
1516 + }
1517 + }
1518 + }
1519 + },
1520 + "default": {
1521 + "description": "Unexpected error",
1522 + "content": {
1523 + "application/json": {
1524 + "schema": {
1525 + "$ref": "#/components/schemas/Error"
1526 + }
1527 + }
1528 + }
1529 + }
1530 + },
1531 + "operationId": "getAllCases",
1532 + "tags": [
1533 + "DFIR Iris"
1534 + ]
1535 + }
1536 + },
1537 + "/dfir_iris/cases/{case_id}": {
1538 + "get": {
1539 + "summary": "Get a case",
1540 + "description": "Endpoint to get a case.",
1541 + "parameters": [
1542 + {
1543 + "name": "case_id",
1544 + "in": "path",
1545 + "description": "The ID of the case.",
1546 + "required": true,
1547 + "schema": {
1548 + "type": "integer"
1549 + }
1550 + }
1551 + ],
1552 + "responses": {
1553 + "200": {
1554 + "description": "Successful operation",
1555 + "content": {
1556 + "application/json": {
1557 + "schema": {
1558 + "type": "object",
1559 + "properties": {
1560 + "case": {
1561 + "type": "object",
1562 + "description": "Case details"
1563 + }
1564 + }
1565 + }
1566 + }
1567 + }
1568 + },
1569 + "404": {
1570 + "description": "Case not found",
1571 + "content": {
1572 + "application/json": {
1573 + "schema": {
1574 + "$ref": "#/components/schemas/Error"
1575 + }
1576 + }
1577 + }
1578 + },
1579 + "default": {
1580 + "description": "Unexpected error",
1581 + "content": {
1582 + "application/json": {
1583 + "schema": {
1584 + "$ref": "#/components/schemas/Error"
1585 + }
1586 + }
1587 + }
1588 + }
1589 + },
1590 + "operationId": "getCase",
1591 + "tags": [
1592 + "DFIR Iris"
1593 + ]
1594 + }
1595 + },
1596 + "/dfir_iris/cases/{case_id}/notes": {
1597 + "get": {
1598 + "summary": "Get all notes for a case",
1599 + "description": "Endpoint to get all notes for a case.",
1600 + "parameters": [
1601 + {
1602 + "name": "case_id",
1603 + "in": "path",
1604 + "description": "The ID of the case.",
1605 + "required": true,
1606 + "schema": {
1607 + "type": "integer"
1608 + }
1609 + }
1610 + ],
1611 + "responses": {
1612 + "200": {
1613 + "description": "Successful operation",
1614 + "content": {
1615 + "application/json": {
1616 + "schema": {
1617 + "type": "object",
1618 + "properties": {
1619 + "notes": {
1620 + "type": "array",
1621 + "items": {
1622 + "type": "object",
1623 + "description": "Note details"
1624 + }
1625 + }
1626 + }
1627 + }
1628 + }
1629 + }
1630 + },
1631 + "404": {
1632 + "description": "Case not found",
1633 + "content": {
1634 + "application/json": {
1635 + "schema": {
1636 + "$ref": "#/components/schemas/Error"
1637 + }
1638 + }
1639 + }
1640 + },
1641 + "default": {
1642 + "description": "Unexpected error",
1643 + "content": {
1644 + "application/json": {
1645 + "schema": {
1646 + "$ref": "#/components/schemas/Error"
1647 + }
1648 + }
1649 + }
1650 + }
1651 + },
1652 + "operationId": "getAllNotesForCase",
1653 + "tags": [
1654 + "DFIR Iris"
1655 + ]
1656 + }
1657 + },
1658 + "/dfir_iris/cases/{case_id}/note": {
1659 + "post": {
1660 + "summary": "Create a note for a case",
1661 + "description": "Endpoint to create a note for a case.",
1662 + "parameters": [
1663 + {
1664 + "name": "case_id",
1665 + "in": "path",
1666 + "description": "The ID of the case.",
1667 + "required": true,
1668 + "schema": {
1669 + "type": "integer"
1670 + }
1671 + }
1672 + ],
1673 + "requestBody": {
1674 + "description": "Note details",
1675 + "content": {
1676 + "application/json": {
1677 + "schema": {
1678 + "type": "object",
1679 + "properties": {
1680 + "note_title": {
1681 + "type": "string",
1682 + "description": "The title of the note"
1683 + },
1684 + "note_content": {
1685 + "type": "string",
1686 + "description": "The content of the note"
1687 + }
1688 + },
1689 + "description": "Note details"
1690 + }
1691 + }
1692 + }
1693 + },
1694 + "responses": {
1695 + "200": {
1696 + "description": "Successful operation",
1697 + "content": {
1698 + "application/json": {
1699 + "schema": {
1700 + "type": "object",
1701 + "properties": {
1702 + "note": {
1703 + "type": "object",
1704 + "properties": {
1705 + "title": {
1706 + "type": "string",
1707 + "description": "The title of the note"
1708 + },
1709 + "content": {
1710 + "type": "string",
1711 + "description": "The content of the note"
1712 + }
1713 + },
1714 + "description": "Note details"
1715 + }
1716 + }
1717 + }
1718 + }
1719 + }
1720 + },
1721 + "404": {
1722 + "description": "Case not found",
1723 + "content": {
1724 + "application/json": {
1725 + "schema": {
1726 + "$ref": "#/components/schemas/Error"
1727 + }
1728 + }
1729 + }
1730 + },
1731 + "default": {
1732 + "description": "Unexpected error",
1733 + "content": {
1734 + "application/json": {
1735 + "schema": {
1736 + "$ref": "#/components/schemas/Error"
1737 + }
1738 + }
1739 + }
1740 + }
1741 + },
1742 + "operationId": "createNoteForCase",
1743 + "tags": [
1744 + "DFIR Iris"
1745 + ]
1746 + }
1747 + },
1748 + "/dfir_iris/cases/{case_id}/assets": {
1749 + "get": {
1750 + "summary": "Get all assets for a case",
1751 + "description": "Endpoint to get all assets for a case.",
1752 + "parameters": [
1753 + {
1754 + "name": "case_id",
1755 + "in": "path",
1756 + "description": "The ID of the case.",
1757 + "required": true,
1758 + "schema": {
1759 + "type": "integer"
1760 + }
1761 + }
1762 + ],
1763 + "responses": {
1764 + "200": {
1765 + "description": "Successful operation",
1766 + "content": {
1767 + "application/json": {
1768 + "schema": {
1769 + "type": "object",
1770 + "properties": {
1771 + "assets": {
1772 + "type": "array",
1773 + "items": {
1774 + "type": "object",
1775 + "description": "Asset details"
1776 + }
1777 + }
1778 + }
1779 + }
1780 + }
1781 + }
1782 + },
1783 + "404": {
1784 + "description": "Case not found",
1785 + "content": {
1786 + "application/json": {
1787 + "schema": {
1788 + "$ref": "#/components/schemas/Error"
1789 + }
1790 + }
1791 + }
1792 + },
1793 + "default": {
1794 + "description": "Unexpected error",
1795 + "content": {
1796 + "application/json": {
1797 + "schema": {
1798 + "$ref": "#/components/schemas/Error"
1799 + }
1800 + }
1801 + }
1802 + }
1803 + },
1804 + "operationId": "getAllAssetsForCase",
1805 + "tags": [
1806 + "DFIR Iris"
1807 + ]
1808 + }
1809 + },
1810 + "/dfir_iris/alerts": {
1811 + "get": {
1812 + "summary": "Get all alerts",
1813 + "description": "Endpoint to get all alerts.",
1814 + "parameters": [
1815 + {
1816 + "name": "limit",
1817 + "in": "query",
1818 + "description": "The maximum number of alerts to return.",
1819 + "required": false,
1820 + "schema": {
1821 + "type": "integer"
1822 + }
1823 + },
1824 + {
1825 + "name": "offset",
1826 + "in": "query",
1827 + "description": "The offset to start returning alerts from.",
1828 + "required": false,
1829 + "schema": {
1830 + "type": "integer"
1831 + }
1832 + },
1833 + {
1834 + "name": "sort",
1835 + "in": "query",
1836 + "description": "The field to sort alerts by.",
1837 + "required": false,
1838 + "schema": {
1839 + "type": "string"
1840 + }
1841 + },
1842 + {
1843 + "name": "order",
1844 + "in": "query",
1845 + "description": "The order to sort alerts by.",
1846 + "required": false,
1847 + "schema": {
1848 + "type": "string"
1849 + }
1850 + },
1851 + {
1852 + "name": "filter",
1853 + "in": "query",
1854 + "description": "The filter to apply to the alerts.",
1855 + "required": false,
1856 + "schema": {
1857 + "type": "string"
1858 + }
1859 + }
1860 + ],
1861 + "responses": {
1862 + "200": {
1863 + "description": "Successful operation",
1864 + "content": {
1865 + "application/json": {
1866 + "schema": {
1867 + "type": "object",
1868 + "properties": {
1869 + "alerts": {
1870 + "type": "array",
1871 + "items": {
1872 + "type": "object",
1873 + "description": "Alert details"
1874 + }
1875 + }
1876 + }
1877 + }
1878 + }
1879 + }
1880 + },
1881 + "default": {
1882 + "description": "Unexpected error",
1883 + "content": {
1884 + "application/json": {
1885 + "schema": {
1886 + "$ref": "#/components/schemas/Error"
1887 + }
1888 + }
1889 + }
1890 + }
1891 + },
1892 + "operationId": "getAllAlerts",
1893 + "tags": [
1894 + "DFIR Iris"
1895 + ]
1896 + }
1897 + }
1898 + },
1899 + "components": {
1900 + "schemas": {
1901 + "Agent": {
1902 + "type": "object",
1903 + "properties": {
1904 + "agent_id": {
1905 + "type": "string",
1906 + "description": "The ID of the agent."
1907 + },
1908 + "critical_asset": {
1909 + "type": "boolean",
1910 + "description": "Flag indicating if the agent is a critical asset."
1911 + },
1912 + "hostname": {
1913 + "type": "string",
1914 + "description": "The hostname of the agent."
1915 + },
1916 + "id": {
1917 + "type": "integer",
1918 + "description": "The primary key of the agent."
1919 + },
1920 + "ip_address": {
1921 + "type": "string",
1922 + "description": "The IP address of the agent."
1923 + },
1924 + "last_seen": {
1925 + "type": "string",
1926 + "format": "date-time",
1927 + "description": "The last time the agent was seen."
1928 + },
1929 + "os": {
1930 + "type": "string",
1931 + "description": "The operating system of the agent."
1932 + }
1933 + },
1934 + "required": [
1935 + "agent_id",
1936 + "hostname",
1937 + "id",
1938 + "ip_address",
1939 + "last_seen",
1940 + "os"
1941 + ]
1942 + }
1943 + }
1944 + }
1945 +}