mihari 5.2.3 → 5.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (135) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +4 -1
  3. data/README.md +0 -10
  4. data/Rakefile +7 -1
  5. data/build_frontend.sh +2 -10
  6. data/frontend/.eslintrc.cjs +22 -0
  7. data/frontend/.gitignore +31 -0
  8. data/frontend/.prettierrc.json +8 -0
  9. data/frontend/README.md +3 -0
  10. data/frontend/env.d.ts +5 -0
  11. data/frontend/index.html +21 -0
  12. data/frontend/package-lock.json +8650 -0
  13. data/frontend/package.json +64 -0
  14. data/frontend/public/favicon.ico +0 -0
  15. data/frontend/scripts/swagger_doc_to_yaml.rb +23 -0
  16. data/frontend/src/App.vue +27 -0
  17. data/frontend/src/api-helper.ts +111 -0
  18. data/frontend/src/api.ts +105 -0
  19. data/frontend/src/components/ErrorMessage.vue +32 -0
  20. data/frontend/src/components/Loading.vue +15 -0
  21. data/frontend/src/components/Navbar.vue +42 -0
  22. data/frontend/src/components/Pagination.vue +119 -0
  23. data/frontend/src/components/alert/Alert.vue +87 -0
  24. data/frontend/src/components/alert/Alerts.vue +64 -0
  25. data/frontend/src/components/alert/AlertsWithPagination.vue +91 -0
  26. data/frontend/src/components/alert/AlertsWrapper.vue +134 -0
  27. data/frontend/src/components/alert/Form.vue +184 -0
  28. data/frontend/src/components/artifact/AS.vue +29 -0
  29. data/frontend/src/components/artifact/Artifact.vue +304 -0
  30. data/frontend/src/components/artifact/ArtifactTag.vue +64 -0
  31. data/frontend/src/components/artifact/ArtifactTags.vue +29 -0
  32. data/frontend/src/components/artifact/ArtifactWrapper.vue +59 -0
  33. data/frontend/src/components/artifact/CPEs.vue +23 -0
  34. data/frontend/src/components/artifact/DnsRecords.vue +38 -0
  35. data/frontend/src/components/artifact/Ports.vue +23 -0
  36. data/frontend/src/components/artifact/ReverseDnsNames.vue +31 -0
  37. data/frontend/src/components/artifact/Tags.vue +29 -0
  38. data/frontend/src/components/artifact/WhoisRecord.vue +47 -0
  39. data/frontend/src/components/config/Configs.vue +65 -0
  40. data/frontend/src/components/config/ConfigsWrapper.vue +34 -0
  41. data/frontend/src/components/link/Link.vue +32 -0
  42. data/frontend/src/components/link/Links.vue +42 -0
  43. data/frontend/src/components/rule/EditRule.vue +74 -0
  44. data/frontend/src/components/rule/EditRuleWrapper.vue +50 -0
  45. data/frontend/src/components/rule/Form.vue +160 -0
  46. data/frontend/src/components/rule/InputForm.vue +86 -0
  47. data/frontend/src/components/rule/NewRule.vue +60 -0
  48. data/frontend/src/components/rule/Rule.vue +106 -0
  49. data/frontend/src/components/rule/RuleWrapper.vue +55 -0
  50. data/frontend/src/components/rule/Rules.vue +84 -0
  51. data/frontend/src/components/rule/RulesWrapper.vue +127 -0
  52. data/frontend/src/components/rule/YAML.vue +44 -0
  53. data/frontend/src/components/tag/Tag.vue +65 -0
  54. data/frontend/src/components/tag/Tags.vue +37 -0
  55. data/frontend/src/countries.ts +350 -0
  56. data/frontend/src/index.ts +20 -0
  57. data/frontend/src/links/anyrun.ts +19 -0
  58. data/frontend/src/links/base.ts +14 -0
  59. data/frontend/src/links/censys.ts +20 -0
  60. data/frontend/src/links/crtsh.ts +20 -0
  61. data/frontend/src/links/dnslytics.ts +38 -0
  62. data/frontend/src/links/greynoise.ts +20 -0
  63. data/frontend/src/links/index.ts +40 -0
  64. data/frontend/src/links/intezer.ts +20 -0
  65. data/frontend/src/links/otx.ts +33 -0
  66. data/frontend/src/links/securitytrails.ts +38 -0
  67. data/frontend/src/links/shodan.ts +20 -0
  68. data/frontend/src/links/urlscan.ts +50 -0
  69. data/frontend/src/links/virustotal.ts +72 -0
  70. data/frontend/src/main.ts +11 -0
  71. data/frontend/src/router/index.ts +57 -0
  72. data/frontend/src/rule.ts +14 -0
  73. data/frontend/src/shims-vue.d.ts +6 -0
  74. data/frontend/src/swagger.yaml +737 -0
  75. data/frontend/src/types.ts +188 -0
  76. data/frontend/src/utils.ts +54 -0
  77. data/frontend/src/views/Alerts.vue +20 -0
  78. data/frontend/src/views/Artifact.vue +44 -0
  79. data/frontend/src/views/Configs.vue +20 -0
  80. data/frontend/src/views/EditRule.vue +44 -0
  81. data/frontend/src/views/NewRule.vue +26 -0
  82. data/frontend/src/views/Rule.vue +44 -0
  83. data/frontend/src/views/Rules.vue +20 -0
  84. data/frontend/tests/utils.spec.ts +9 -0
  85. data/frontend/tsconfig.app.json +21 -0
  86. data/frontend/tsconfig.json +14 -0
  87. data/frontend/tsconfig.node.json +13 -0
  88. data/frontend/tsconfig.vitest.json +12 -0
  89. data/frontend/vite.config.ts +24 -0
  90. data/frontend/vitest.config.ts +21 -0
  91. data/lefthook.yml +12 -0
  92. data/lib/mihari/analyzers/base.rb +63 -12
  93. data/lib/mihari/analyzers/binaryedge.rb +10 -15
  94. data/lib/mihari/analyzers/censys.rb +12 -15
  95. data/lib/mihari/analyzers/circl.rb +10 -10
  96. data/lib/mihari/analyzers/crtsh.rb +10 -6
  97. data/lib/mihari/analyzers/dnstwister.rb +6 -8
  98. data/lib/mihari/analyzers/feed.rb +21 -10
  99. data/lib/mihari/analyzers/greynoise.rb +10 -20
  100. data/lib/mihari/analyzers/onyphe.rb +9 -14
  101. data/lib/mihari/analyzers/otx.rb +8 -9
  102. data/lib/mihari/analyzers/passivetotal.rb +10 -10
  103. data/lib/mihari/analyzers/pulsedive.rb +21 -31
  104. data/lib/mihari/analyzers/rule.rb +8 -29
  105. data/lib/mihari/analyzers/securitytrails.rb +8 -6
  106. data/lib/mihari/analyzers/shodan.rb +8 -13
  107. data/lib/mihari/analyzers/urlscan.rb +15 -20
  108. data/lib/mihari/analyzers/virustotal.rb +16 -26
  109. data/lib/mihari/analyzers/virustotal_intelligence.rb +11 -17
  110. data/lib/mihari/analyzers/zoomeye.rb +12 -17
  111. data/lib/mihari/commands/search.rb +16 -7
  112. data/lib/mihari/config.rb +133 -0
  113. data/lib/mihari/constants.rb +3 -0
  114. data/lib/mihari/emitters/slack.rb +13 -3
  115. data/lib/mihari/entities/rule.rb +1 -1
  116. data/lib/mihari/entities/tag.rb +1 -1
  117. data/lib/mihari/errors.rb +1 -1
  118. data/lib/mihari/http.rb +2 -3
  119. data/lib/mihari/schemas/analyzer.rb +4 -7
  120. data/lib/mihari/schemas/rule.rb +1 -1
  121. data/lib/mihari/structs/config.rb +39 -16
  122. data/lib/mihari/structs/rule.rb +1 -1
  123. data/lib/mihari/type_checker.rb +6 -6
  124. data/lib/mihari/version.rb +1 -1
  125. data/lib/mihari/web/endpoints/configs.rb +5 -1
  126. data/lib/mihari/web/public/assets/{index-eed1bcd8.css → index-2ba8f0a6.css} +1 -1
  127. data/lib/mihari/web/public/assets/index-71285b15.js +50 -0
  128. data/lib/mihari/web/public/index.html +2 -2
  129. data/lib/mihari/web/public/redoc-static.html +388 -2193
  130. data/lib/mihari.rb +9 -59
  131. data/mihari.gemspec +13 -13
  132. metadata +112 -69
  133. data/.gitmodules +0 -0
  134. data/.overcommit.yml +0 -12
  135. data/lib/mihari/web/public/assets/index-cbe1734c.js +0 -50
@@ -0,0 +1,737 @@
1
+ ---
2
+ info:
3
+ title: Mihari API
4
+ version: 0.0.1
5
+ swagger: "2.0"
6
+ produces:
7
+ - application/json
8
+ tags:
9
+ - name: alerts
10
+ description: Operations about alerts
11
+ - name: artifacts
12
+ description: Operations about artifacts
13
+ - name: configs
14
+ description: Operations about configs
15
+ - name: ip_addresses
16
+ description: Operations about ip_addresses
17
+ - name: rules
18
+ description: Operations about rules
19
+ - name: tags
20
+ description: Operations about tags
21
+ paths:
22
+ "/api/alerts/{id}":
23
+ delete:
24
+ summary: Delete an alert
25
+ description: Delete an alert
26
+ produces:
27
+ - application/json
28
+ parameters:
29
+ - in: path
30
+ name: id
31
+ type: integer
32
+ format: int32
33
+ required: true
34
+ responses:
35
+ "200":
36
+ description: Delete an alert
37
+ schema:
38
+ "$ref": "#/definitions/Mihari_Entities_Message"
39
+ "404":
40
+ description: Not found
41
+ schema:
42
+ "$ref": "#/definitions/Mihari_Entities_Message"
43
+ tags:
44
+ - alerts
45
+ "/api/alerts":
46
+ get:
47
+ summary: Search alerts
48
+ description: Search alerts
49
+ produces:
50
+ - application/json
51
+ parameters:
52
+ - in: query
53
+ name: page
54
+ type: integer
55
+ format: int32
56
+ default: 1
57
+ required: false
58
+ - in: query
59
+ name: limit
60
+ type: integer
61
+ format: int32
62
+ default: 10
63
+ required: false
64
+ - in: query
65
+ name: artifact
66
+ type: string
67
+ required: false
68
+ - in: query
69
+ name: rule_id
70
+ type: string
71
+ required: false
72
+ - in: query
73
+ name: tag
74
+ type: string
75
+ required: false
76
+ - in: query
77
+ name: fromAt
78
+ type: string
79
+ format: date-time
80
+ required: false
81
+ - in: query
82
+ name: toAt
83
+ type: string
84
+ format: date-time
85
+ required: false
86
+ responses:
87
+ "200":
88
+ description: Search alerts
89
+ schema:
90
+ type: array
91
+ items:
92
+ "$ref": "#/definitions/Mihari_Entities_AlertsWithPagination"
93
+ "404":
94
+ description: Not found
95
+ schema:
96
+ "$ref": "#/definitions/Mihari_Entities_Message"
97
+ tags:
98
+ - alerts
99
+ "/api/artifacts/{id}":
100
+ delete:
101
+ summary: Delete an artifact
102
+ description: Delete an artifact
103
+ produces:
104
+ - application/json
105
+ parameters:
106
+ - in: path
107
+ name: id
108
+ type: integer
109
+ format: int32
110
+ required: true
111
+ responses:
112
+ "200":
113
+ description: Delete an artifact
114
+ schema:
115
+ "$ref": "#/definitions/Mihari_Entities_Message"
116
+ "404":
117
+ description: Not found
118
+ schema:
119
+ "$ref": "#/definitions/Mihari_Entities_Message"
120
+ tags:
121
+ - artifacts
122
+ get:
123
+ summary: Get an artifact
124
+ description: Get an artifact
125
+ produces:
126
+ - application/json
127
+ parameters:
128
+ - in: path
129
+ name: id
130
+ type: integer
131
+ format: int32
132
+ required: true
133
+ responses:
134
+ "200":
135
+ description: Get an artifact
136
+ schema:
137
+ "$ref": "#/definitions/Mihari_Entities_Artifact"
138
+ "404":
139
+ description: Not found
140
+ schema:
141
+ "$ref": "#/definitions/Mihari_Entities_Message"
142
+ tags:
143
+ - artifacts
144
+ "/api/artifacts/{id}/enrich":
145
+ get:
146
+ summary: Enrich an artifact
147
+ description: Enrich an artifact
148
+ produces:
149
+ - application/json
150
+ parameters:
151
+ - in: path
152
+ name: id
153
+ type: integer
154
+ format: int32
155
+ required: true
156
+ responses:
157
+ "200":
158
+ description: Enrich an artifact
159
+ schema:
160
+ "$ref": "#/definitions/Mihari_Entities_Message"
161
+ "404":
162
+ description: Not found
163
+ schema:
164
+ "$ref": "#/definitions/Mihari_Entities_Message"
165
+ tags:
166
+ - artifacts
167
+ "/api/configs":
168
+ get:
169
+ summary: Get configs
170
+ description: Get configs
171
+ produces:
172
+ - application/json
173
+ responses:
174
+ "200":
175
+ description: Get configs
176
+ schema:
177
+ type: array
178
+ items:
179
+ "$ref": "#/definitions/Mihari_Entities_Config"
180
+ tags:
181
+ - configs
182
+ "/api/ip_addresses/{ip}":
183
+ get:
184
+ summary: Get an IP address
185
+ description: Get an IP address
186
+ produces:
187
+ - application/json
188
+ parameters:
189
+ - in: path
190
+ name: ip
191
+ type: string
192
+ required: true
193
+ responses:
194
+ "200":
195
+ description: Get an IP address
196
+ schema:
197
+ "$ref": "#/definitions/Mihari_Entities_IPAddress"
198
+ "404":
199
+ description: Not found
200
+ schema:
201
+ "$ref": "#/definitions/Mihari_Entities_Message"
202
+ tags:
203
+ - ip_addresses
204
+ "/api/rules/{id}":
205
+ delete:
206
+ summary: Delete a rule
207
+ description: Delete a rule
208
+ produces:
209
+ - application/json
210
+ parameters:
211
+ - in: path
212
+ name: id
213
+ type: string
214
+ required: true
215
+ responses:
216
+ "200":
217
+ description: Delete a rule
218
+ schema:
219
+ "$ref": "#/definitions/Mihari_Entities_Message"
220
+ "404":
221
+ description: Not found
222
+ schema:
223
+ "$ref": "#/definitions/Mihari_Entities_Message"
224
+ tags:
225
+ - rules
226
+ get:
227
+ summary: Get a rule
228
+ description: Get a rule
229
+ produces:
230
+ - application/json
231
+ parameters:
232
+ - in: path
233
+ name: id
234
+ type: string
235
+ required: true
236
+ responses:
237
+ "200":
238
+ description: Get a rule
239
+ schema:
240
+ "$ref": "#/definitions/Mihari_Entities_Rule"
241
+ "404":
242
+ description: Not found
243
+ schema:
244
+ "$ref": "#/definitions/Mihari_Entities_Message"
245
+ tags:
246
+ - rules
247
+ "/api/rules":
248
+ put:
249
+ summary: Update a rule
250
+ description: Update a rule
251
+ produces:
252
+ - application/json
253
+ consumes:
254
+ - application/json
255
+ parameters:
256
+ - name: putApiRules
257
+ in: body
258
+ required: true
259
+ schema:
260
+ "$ref": "#/definitions/putApiRules"
261
+ responses:
262
+ "200":
263
+ description: Update a rule
264
+ schema:
265
+ "$ref": "#/definitions/Mihari_Entities_Rule"
266
+ tags:
267
+ - rules
268
+ post:
269
+ summary: Create a rule
270
+ description: Create a rule
271
+ produces:
272
+ - application/json
273
+ consumes:
274
+ - application/json
275
+ parameters:
276
+ - name: postApiRules
277
+ in: body
278
+ required: true
279
+ schema:
280
+ "$ref": "#/definitions/postApiRules"
281
+ responses:
282
+ "201":
283
+ description: Create a rule
284
+ schema:
285
+ "$ref": "#/definitions/Mihari_Entities_Rule"
286
+ tags:
287
+ - rules
288
+ get:
289
+ summary: Search rules
290
+ description: Search rules
291
+ produces:
292
+ - application/json
293
+ parameters:
294
+ - in: query
295
+ name: page
296
+ type: integer
297
+ format: int32
298
+ default: 1
299
+ required: false
300
+ - in: query
301
+ name: limit
302
+ type: integer
303
+ format: int32
304
+ default: 10
305
+ required: false
306
+ - in: query
307
+ name: title
308
+ type: string
309
+ required: false
310
+ - in: query
311
+ name: description
312
+ type: string
313
+ required: false
314
+ - in: query
315
+ name: tag
316
+ type: string
317
+ required: false
318
+ - in: query
319
+ name: fromAt
320
+ type: string
321
+ format: date-time
322
+ required: false
323
+ - in: query
324
+ name: toAt
325
+ type: string
326
+ format: date-time
327
+ required: false
328
+ responses:
329
+ "200":
330
+ description: Search rules
331
+ schema:
332
+ type: array
333
+ items:
334
+ "$ref": "#/definitions/Mihari_Entities_RulesWithPagination"
335
+ "404":
336
+ description: Not found
337
+ schema:
338
+ "$ref": "#/definitions/Mihari_Entities_Message"
339
+ tags:
340
+ - rules
341
+ "/api/rules/{id}/run":
342
+ get:
343
+ summary: Run a rule
344
+ description: Run a rule
345
+ produces:
346
+ - application/json
347
+ parameters:
348
+ - in: path
349
+ name: id
350
+ type: string
351
+ required: true
352
+ responses:
353
+ "200":
354
+ description: Run a rule
355
+ schema:
356
+ "$ref": "#/definitions/Mihari_Entities_Message"
357
+ tags:
358
+ - rules
359
+ "/api/rules/ids":
360
+ get:
361
+ summary: Get rule IDs
362
+ description: Get Rule IDs
363
+ produces:
364
+ - application/json
365
+ responses:
366
+ "200":
367
+ description: Get Rule IDs
368
+ schema:
369
+ type: array
370
+ items:
371
+ "$ref": "#/definitions/Mihari_Entities_RuleIDs"
372
+ tags:
373
+ - rules
374
+ "/api/tags/{name}":
375
+ delete:
376
+ summary: Delete a tag
377
+ description: Delete a tag
378
+ produces:
379
+ - application/json
380
+ parameters:
381
+ - in: path
382
+ name: name
383
+ type: string
384
+ required: true
385
+ responses:
386
+ "200":
387
+ description: Delete a tag
388
+ schema:
389
+ "$ref": "#/definitions/Mihari_Entities_Message"
390
+ "404":
391
+ description: Not found
392
+ schema:
393
+ "$ref": "#/definitions/Mihari_Entities_Message"
394
+ tags:
395
+ - tags
396
+ "/api/tags":
397
+ get:
398
+ summary: Get tags
399
+ description: Get tags
400
+ produces:
401
+ - application/json
402
+ responses:
403
+ "200":
404
+ description: Get tags
405
+ schema:
406
+ type: array
407
+ items:
408
+ "$ref": "#/definitions/Mihari_Entities_Tags"
409
+ tags:
410
+ - tags
411
+ definitions:
412
+ Mihari_Entities_Message:
413
+ type: object
414
+ properties:
415
+ message:
416
+ type: string
417
+ required:
418
+ - message
419
+ description: Mihari_Entities_Message model
420
+ Mihari_Entities_AlertsWithPagination:
421
+ type: object
422
+ properties:
423
+ alerts:
424
+ type: array
425
+ items:
426
+ "$ref": "#/definitions/Mihari_Entities_Alert"
427
+ total:
428
+ type: integer
429
+ format: int32
430
+ currentPage:
431
+ type: integer
432
+ format: int32
433
+ pageSize:
434
+ type: integer
435
+ format: int32
436
+ required:
437
+ - alerts
438
+ - total
439
+ - currentPage
440
+ - pageSize
441
+ description: Mihari_Entities_AlertsWithPagination model
442
+ Mihari_Entities_Alert:
443
+ type: object
444
+ properties:
445
+ id:
446
+ type: string
447
+ description: String representation of the ID
448
+ ruleId:
449
+ type: string
450
+ createdAt:
451
+ type: string
452
+ format: date-time
453
+ artifacts:
454
+ type: array
455
+ items:
456
+ "$ref": "#/definitions/Mihari_Entities_BaseArtifact"
457
+ tags:
458
+ type: array
459
+ items:
460
+ "$ref": "#/definitions/Mihari_Entities_Tag"
461
+ required:
462
+ - id
463
+ - ruleId
464
+ - createdAt
465
+ - tags
466
+ Mihari_Entities_BaseArtifact:
467
+ type: object
468
+ properties:
469
+ id:
470
+ type: string
471
+ description: String representation of the ID
472
+ data:
473
+ type: string
474
+ dataType:
475
+ type: string
476
+ source:
477
+ type: string
478
+ tags:
479
+ type: array
480
+ items:
481
+ type: string
482
+ required:
483
+ - id
484
+ - data
485
+ - dataType
486
+ - source
487
+ Mihari_Entities_Tag:
488
+ type: object
489
+ properties:
490
+ name:
491
+ type: string
492
+ required:
493
+ - name
494
+ Mihari_Entities_Artifact:
495
+ type: object
496
+ properties:
497
+ id:
498
+ type: string
499
+ description: String representation of the ID
500
+ data:
501
+ type: string
502
+ dataType:
503
+ type: string
504
+ source:
505
+ type: string
506
+ tags:
507
+ type: array
508
+ items:
509
+ type: string
510
+ metadata:
511
+ type: object
512
+ autonomousSystem:
513
+ "$ref": "#/definitions/Mihari_Entities_AutonomousSystem"
514
+ geolocation:
515
+ "$ref": "#/definitions/Mihari_Entities_Geolocation"
516
+ whoisRecord:
517
+ "$ref": "#/definitions/Mihari_Entities_WhoisRecord"
518
+ reverseDnsNames:
519
+ type: array
520
+ items:
521
+ "$ref": "#/definitions/Mihari_Entities_ReverseDnsName"
522
+ dnsRecords:
523
+ type: array
524
+ items:
525
+ "$ref": "#/definitions/Mihari_Entities_DnsRecord"
526
+ cpes:
527
+ type: array
528
+ items:
529
+ "$ref": "#/definitions/Mihari_Entities_CPE"
530
+ ports:
531
+ type: array
532
+ items:
533
+ "$ref": "#/definitions/Mihari_Entities_Port"
534
+ required:
535
+ - id
536
+ - data
537
+ - dataType
538
+ - source
539
+ description: Mihari_Entities_Artifact model
540
+ Mihari_Entities_AutonomousSystem:
541
+ type: object
542
+ properties:
543
+ asn:
544
+ type: integer
545
+ format: int32
546
+ required:
547
+ - asn
548
+ Mihari_Entities_Geolocation:
549
+ type: object
550
+ properties:
551
+ country:
552
+ type: string
553
+ countryCode:
554
+ type: string
555
+ required:
556
+ - country
557
+ - countryCode
558
+ Mihari_Entities_WhoisRecord:
559
+ type: object
560
+ properties:
561
+ domain:
562
+ type: string
563
+ createdOn:
564
+ type: string
565
+ format: date
566
+ updatedOn:
567
+ type: string
568
+ format: date
569
+ expiresOn:
570
+ type: string
571
+ format: date
572
+ registrar:
573
+ type: object
574
+ contacts:
575
+ type: array
576
+ items:
577
+ type: object
578
+ required:
579
+ - domain
580
+ - contacts
581
+ Mihari_Entities_ReverseDnsName:
582
+ type: object
583
+ properties:
584
+ name:
585
+ type: string
586
+ required:
587
+ - name
588
+ Mihari_Entities_DnsRecord:
589
+ type: object
590
+ properties:
591
+ resource:
592
+ type: string
593
+ value:
594
+ type: string
595
+ required:
596
+ - resource
597
+ - value
598
+ Mihari_Entities_CPE:
599
+ type: object
600
+ properties:
601
+ cpe:
602
+ type: string
603
+ required:
604
+ - cpe
605
+ Mihari_Entities_Port:
606
+ type: object
607
+ properties:
608
+ port:
609
+ type: integer
610
+ format: int32
611
+ required:
612
+ - port
613
+ Mihari_Entities_Config:
614
+ type: object
615
+ properties:
616
+ name:
617
+ type: string
618
+ type:
619
+ type: string
620
+ values:
621
+ type: array
622
+ items:
623
+ type: string
624
+ isConfigured:
625
+ type: boolean
626
+ required:
627
+ - name
628
+ - type
629
+ - values
630
+ - isConfigured
631
+ description: Mihari_Entities_Config model
632
+ Mihari_Entities_IPAddress:
633
+ type: object
634
+ properties:
635
+ ip:
636
+ type: string
637
+ countryCode:
638
+ type: string
639
+ hostname:
640
+ type: string
641
+ loc:
642
+ type: string
643
+ asn:
644
+ type: integer
645
+ format: int32
646
+ required:
647
+ - ip
648
+ - countryCode
649
+ - loc
650
+ description: Mihari_Entities_IPAddress model
651
+ putApiRules:
652
+ type: object
653
+ properties:
654
+ id:
655
+ type: string
656
+ yaml:
657
+ type: string
658
+ required:
659
+ - id
660
+ - yaml
661
+ description: Update a rule
662
+ Mihari_Entities_Rule:
663
+ type: object
664
+ properties:
665
+ id:
666
+ type: string
667
+ title:
668
+ type: string
669
+ description:
670
+ type: string
671
+ yaml:
672
+ type: string
673
+ createdAt:
674
+ type: string
675
+ format: date-time
676
+ updatedAt:
677
+ type: string
678
+ format: date-time
679
+ tags:
680
+ type: array
681
+ items:
682
+ "$ref": "#/definitions/Mihari_Entities_Tag"
683
+ required:
684
+ - id
685
+ - title
686
+ - description
687
+ - yaml
688
+ - createdAt
689
+ - updatedAt
690
+ - tags
691
+ description: Mihari_Entities_Rule model
692
+ postApiRules:
693
+ type: object
694
+ properties:
695
+ yaml:
696
+ type: string
697
+ required:
698
+ - yaml
699
+ description: Create a rule
700
+ Mihari_Entities_RulesWithPagination:
701
+ type: object
702
+ properties:
703
+ rules:
704
+ type: array
705
+ items:
706
+ "$ref": "#/definitions/Mihari_Entities_Rule"
707
+ total:
708
+ type: integer
709
+ format: int32
710
+ currentPage:
711
+ type: integer
712
+ format: int32
713
+ pageSize:
714
+ type: integer
715
+ format: int32
716
+ required:
717
+ - rules
718
+ - total
719
+ - currentPage
720
+ - pageSize
721
+ description: Mihari_Entities_RulesWithPagination model
722
+ Mihari_Entities_RuleIDs:
723
+ type: object
724
+ properties:
725
+ ruleIds:
726
+ type: string
727
+ required:
728
+ - ruleIds
729
+ description: Mihari_Entities_RuleIDs model
730
+ Mihari_Entities_Tags:
731
+ type: object
732
+ properties:
733
+ tags:
734
+ type: string
735
+ required:
736
+ - tags
737
+ description: Mihari_Entities_Tags model