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
+}