mihari 5.2.3 → 5.2.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (102) hide show
  1. checksums.yaml +4 -4
  2. data/build_frontend.sh +1 -9
  3. data/frontend/.browserslistrc +3 -0
  4. data/frontend/.eslintrc.js +33 -0
  5. data/frontend/.gitignore +25 -0
  6. data/frontend/README.md +3 -0
  7. data/frontend/babel.config.js +3 -0
  8. data/frontend/index.html +21 -0
  9. data/frontend/jest.config.js +9 -0
  10. data/frontend/package-lock.json +13216 -0
  11. data/frontend/package.json +54 -0
  12. data/frontend/public/favicon.ico +0 -0
  13. data/frontend/scripts/swagger_doc_to_yaml.rb +23 -0
  14. data/frontend/src/App.vue +27 -0
  15. data/frontend/src/api-helper.ts +113 -0
  16. data/frontend/src/api.ts +105 -0
  17. data/frontend/src/components/ErrorMessage.vue +32 -0
  18. data/frontend/src/components/Loading.vue +15 -0
  19. data/frontend/src/components/Navbar.vue +59 -0
  20. data/frontend/src/components/Pagination.vue +126 -0
  21. data/frontend/src/components/alert/Alert.vue +92 -0
  22. data/frontend/src/components/alert/Alerts.vue +66 -0
  23. data/frontend/src/components/alert/AlertsWithPagination.vue +91 -0
  24. data/frontend/src/components/alert/AlertsWrapper.vue +141 -0
  25. data/frontend/src/components/alert/Form.vue +185 -0
  26. data/frontend/src/components/artifact/AS.vue +29 -0
  27. data/frontend/src/components/artifact/Artifact.vue +321 -0
  28. data/frontend/src/components/artifact/ArtifactTag.vue +70 -0
  29. data/frontend/src/components/artifact/ArtifactTags.vue +29 -0
  30. data/frontend/src/components/artifact/ArtifactWrapper.vue +62 -0
  31. data/frontend/src/components/artifact/CPEs.vue +23 -0
  32. data/frontend/src/components/artifact/DnsRecords.vue +38 -0
  33. data/frontend/src/components/artifact/Ports.vue +23 -0
  34. data/frontend/src/components/artifact/ReverseDnsNames.vue +31 -0
  35. data/frontend/src/components/artifact/Tags.vue +29 -0
  36. data/frontend/src/components/artifact/WhoisRecord.vue +49 -0
  37. data/frontend/src/components/config/Configs.vue +68 -0
  38. data/frontend/src/components/config/ConfigsWrapper.vue +40 -0
  39. data/frontend/src/components/link/Link.vue +32 -0
  40. data/frontend/src/components/link/Links.vue +47 -0
  41. data/frontend/src/components/rule/EditRule.vue +74 -0
  42. data/frontend/src/components/rule/EditRuleWrapper.vue +56 -0
  43. data/frontend/src/components/rule/Form.vue +160 -0
  44. data/frontend/src/components/rule/InputForm.vue +80 -0
  45. data/frontend/src/components/rule/NewRule.vue +60 -0
  46. data/frontend/src/components/rule/Rule.vue +108 -0
  47. data/frontend/src/components/rule/RuleWrapper.vue +62 -0
  48. data/frontend/src/components/rule/Rules.vue +88 -0
  49. data/frontend/src/components/rule/RulesWrapper.vue +130 -0
  50. data/frontend/src/components/rule/YAML.vue +47 -0
  51. data/frontend/src/components/tag/Tag.vue +73 -0
  52. data/frontend/src/components/tag/Tags.vue +37 -0
  53. data/frontend/src/countries.ts +350 -0
  54. data/frontend/src/index.ts +23 -0
  55. data/frontend/src/links/anyrun.ts +19 -0
  56. data/frontend/src/links/base.ts +14 -0
  57. data/frontend/src/links/censys.ts +20 -0
  58. data/frontend/src/links/crtsh.ts +20 -0
  59. data/frontend/src/links/dnslytics.ts +38 -0
  60. data/frontend/src/links/greynoise.ts +20 -0
  61. data/frontend/src/links/index.ts +40 -0
  62. data/frontend/src/links/intezer.ts +20 -0
  63. data/frontend/src/links/otx.ts +33 -0
  64. data/frontend/src/links/securitytrails.ts +38 -0
  65. data/frontend/src/links/shodan.ts +20 -0
  66. data/frontend/src/links/urlscan.ts +50 -0
  67. data/frontend/src/links/virustotal.ts +72 -0
  68. data/frontend/src/main.ts +11 -0
  69. data/frontend/src/router/index.ts +57 -0
  70. data/frontend/src/rule.ts +14 -0
  71. data/frontend/src/shims-vue.d.ts +6 -0
  72. data/frontend/src/swagger.yaml +737 -0
  73. data/frontend/src/types.ts +188 -0
  74. data/frontend/src/utils.ts +60 -0
  75. data/frontend/src/views/Alerts.vue +20 -0
  76. data/frontend/src/views/Artifact.vue +44 -0
  77. data/frontend/src/views/Configs.vue +20 -0
  78. data/frontend/src/views/EditRule.vue +44 -0
  79. data/frontend/src/views/NewRule.vue +26 -0
  80. data/frontend/src/views/Rule.vue +44 -0
  81. data/frontend/src/views/Rules.vue +20 -0
  82. data/frontend/tests/unit/utils.spec.ts +7 -0
  83. data/frontend/tsconfig.json +40 -0
  84. data/frontend/vite.config.js +24 -0
  85. data/lefthook.yml +10 -0
  86. data/lib/mihari/analyzers/base.rb +22 -5
  87. data/lib/mihari/analyzers/rule.rb +8 -29
  88. data/lib/mihari/commands/search.rb +16 -7
  89. data/lib/mihari/entities/rule.rb +1 -1
  90. data/lib/mihari/entities/tag.rb +1 -1
  91. data/lib/mihari/schemas/analyzer.rb +2 -7
  92. data/lib/mihari/schemas/rule.rb +1 -1
  93. data/lib/mihari/structs/config.rb +39 -16
  94. data/lib/mihari/structs/rule.rb +1 -1
  95. data/lib/mihari/version.rb +1 -1
  96. data/lib/mihari/web/public/assets/index-ac4e5ffa.js +50 -0
  97. data/lib/mihari/web/public/index.html +1 -1
  98. data/mihari.gemspec +5 -5
  99. metadata +97 -16
  100. data/.gitmodules +0 -0
  101. data/.overcommit.yml +0 -12
  102. 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