mihari 3.8.1 → 3.9.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 0a3dcac61a2835aa2f940ab90edf363b10293d0537baf8b1748212686770495f
4
- data.tar.gz: 1f1bb0515227d8cb842e511b3045298bec2b981706ddacd0750b9a6a11aa2625
3
+ metadata.gz: 47f7a6231abe8eee1a1a4e4bc6f905d5f08fba2b68b1435d1621ab85e9e583c0
4
+ data.tar.gz: 591a8c71130095d6ac963fb333179d087f00727f45ab545e4a674a3c42a2af46
5
5
  SHA512:
6
- metadata.gz: ce4ad498c64026a3b349c927dcd5f98bb59415a232acaaf279cde6f45d8f4af18bb62776568c092e261c936e5574f487a02f1fc4089f8af05a367578f06864b5
7
- data.tar.gz: a5223e8a9f2060374df5cb21f6dbcfd475ce66408a04356131471fbb0321ac4622fec0df7ebf354ae2b46c537460a8738beb3dda5ac35c3a11588a4a97642712
6
+ metadata.gz: da1c99c406086a9d8d029f8421a3316a5a6976c5b8fbc839a910bd0d61f04a3297614582974dbda925722308d206db9d2889fe44ae213df2650f1482cc15e918
7
+ data.tar.gz: edf130cb5027bbb6abfea72b150266b8768494b627162da814c93b38d54fe2597a870d78cd9f8f33238512e5a3205cb84a67b9da0589b71393b67fef062ad9b1
@@ -6,19 +6,23 @@ module Mihari
6
6
  def self.included(thor)
7
7
  thor.class_eval do
8
8
  desc "web", "Launch the web app"
9
- method_option :port, type: :numeric, default: 9292
10
- method_option :host, type: :string, default: "localhost"
9
+ method_option :port, type: :numeric, default: 9292, desc: "Hostname to listen on"
10
+ method_option :host, type: :string, default: "localhost", desc: "Port to listen on"
11
+ method_option :threads, type: :string, default: "0:16", desc: "min:max threads to use"
12
+ method_option :verbose, type: :boolean, default: true, desc: "Report each request"
11
13
  method_option :config, type: :string, desc: "Path to the config file"
12
14
  def web
13
- port = options["port"].to_i || 9292
14
- host = options["host"] || "localhost"
15
+ port = options["port"]
16
+ host = options["host"]
17
+ threads = options["threads"]
18
+ verbose = options["verbose"]
15
19
 
16
20
  load_configuration
17
21
 
18
22
  # set rack env as production
19
23
  ENV["RACK_ENV"] ||= "production"
20
24
 
21
- Mihari::App.run!(port: port, host: host)
25
+ Mihari::App.run!(port: port, host: host, threads: threads, verbose: verbose)
22
26
  end
23
27
  end
24
28
  end
@@ -106,7 +106,7 @@ module Mihari
106
106
  )
107
107
  end
108
108
 
109
- # ActiveRecord::Base.logger = Logger.new STDOUT
109
+ ActiveRecord::Base.logger = Logger.new($stdout) if ENV["RACK_ENV"] == "development"
110
110
  ActiveRecord::Migration.verbose = false
111
111
 
112
112
  InitialSchema.migrate(:up)
@@ -13,36 +13,20 @@ module Mihari
13
13
  #
14
14
  # Search alerts
15
15
  #
16
- # @param [String, nil] artifact_data
17
- # @param [String, nil] description
18
- # @param [String, nil] source
19
- # @param [String, nil] tag_name
20
- # @param [String, nil] title
21
- # @param [DateTime, nil] from_at
22
- # @param [DateTime, nil] to_at
23
- # @param [Integer, nil] limit
24
- # @param [Integer, nil] page
16
+ # @param [Structs::Alert::SearchFilterWithPagination] filter
25
17
  #
26
18
  # @return [Array<Hash>]
27
19
  #
28
- def search(artifact_data: nil, description: nil, source: nil, tag_name: nil, title: nil, from_at: nil, to_at: nil, limit: 10, page: 1)
29
- limit = limit.to_i
20
+ def search(filter)
21
+ limit = filter.limit.to_i
30
22
  raise ArgumentError, "limit should be bigger than zero" unless limit.positive?
31
23
 
32
- page = page.to_i
24
+ page = filter.page.to_i
33
25
  raise ArgumentError, "page should be bigger than zero" unless page.positive?
34
26
 
35
27
  offset = (page - 1) * limit
36
28
 
37
- relation = build_relation(
38
- artifact_data: artifact_data,
39
- title: title,
40
- description: description,
41
- source: source,
42
- tag_name: tag_name,
43
- from_at: from_at,
44
- to_at: to_at
45
- )
29
+ relation = build_relation(filter.without_pagination)
46
30
 
47
31
  # TODO: improve queires
48
32
  alert_ids = relation.limit(limit).offset(offset).order(id: :desc).pluck(:id).uniq
@@ -60,45 +44,43 @@ module Mihari
60
44
  # Count alerts
61
45
  #
62
46
  # @param [String, nil] artifact_data
63
- # @param [String, nil] description
64
- # @param [String, nil] source
65
- # @param [String, nil] tag_name
66
- # @param [String, nil] title
67
- # @param [DateTime, nil] from_at
68
- # @param [DateTime, nil] to_at
69
47
  #
70
48
  # @return [Integer]
71
49
  #
72
- def count(artifact_data: nil, description: nil, source: nil, tag_name: nil, title: nil, from_at: nil, to_at: nil)
73
- relation = build_relation(
74
- artifact_data: artifact_data,
75
- title: title,
76
- description: description,
77
- source: source,
78
- tag_name: tag_name,
79
- from_at: from_at,
80
- to_at: to_at
81
- )
50
+ def count(filter)
51
+ relation = build_relation(filter)
82
52
  relation.distinct("alerts.id").count
83
53
  end
84
54
 
85
55
  private
86
56
 
87
- def build_relation(artifact_data: nil, title: nil, description: nil, source: nil, tag_name: nil, from_at: nil, to_at: nil)
88
- relation = self
57
+ def build_relation(filter)
58
+ artifact_ids = []
59
+ artifact = Artifact.includes(:autonomous_system, :dns_records, :reverse_dns_names)
60
+ artifact = artifact.where(data: filter.artifact_data) if filter.artifact_data
61
+ artifact = artifact.where(autonomous_system: { asn: filter.asn }) if filter.asn
62
+ artifact = artifact.where(dns_records: { value: filter.dns_record }) if filter.dns_record
63
+ artifact = artifact.where(reverse_dns_names: { name: filter.reverse_dns_name }) if filter.reverse_dns_name
64
+ # get artifact ids if there is any valid filter for artifact
65
+ if filter.has_valid_artifact_filters
66
+ artifact_ids = artifact.pluck(:id)
67
+ # set invalid ID if nothing is matched with the filters
68
+ artifact_ids = [-1] if artifact_ids.empty?
69
+ end
89
70
 
71
+ relation = self
90
72
  relation = relation.includes(:artifacts, :tags)
91
73
 
92
- relation = relation.where(artifacts: { data: artifact_data }) if artifact_data
93
- relation = relation.where(tags: { name: tag_name }) if tag_name
74
+ relation = relation.where(artifacts: { id: artifact_ids }) unless artifact_ids.empty?
75
+ relation = relation.where(tags: { name: filter.tag_name }) if filter.tag_name
94
76
 
95
- relation = relation.where(source: source) if source
96
- relation = relation.where(title: title) if title
77
+ relation = relation.where(source: filter.source) if filter.source
78
+ relation = relation.where(title: filter.title) if filter.title
97
79
 
98
- relation = relation.filter(description: { like: "%#{description}%" }) if description
80
+ relation = relation.filter(description: { like: "%#{filter.description}%" }) if filter.description
99
81
 
100
- relation = relation.filter(created_at: { gte: from_at }) if from_at
101
- relation = relation.filter(created_at: { lte: to_at }) if to_at
82
+ relation = relation.filter(created_at: { gte: filter.from_at }) if filter.from_at
83
+ relation = relation.filter(created_at: { lte: filter.to_at }) if filter.to_at
102
84
 
103
85
  relation
104
86
  end
@@ -0,0 +1,45 @@
1
+ require "json"
2
+ require "dry/struct"
3
+
4
+ module Mihari
5
+ module Structs
6
+ module Alert
7
+ class SearchFilter < Dry::Struct
8
+ attribute? :artifact_data, Types::String.optional
9
+ attribute? :description, Types::String.optional
10
+ attribute? :source, Types::String.optional
11
+ attribute? :tag_name, Types::String.optional
12
+ attribute? :title, Types::String.optional
13
+ attribute? :from_at, Types::DateTime.optional
14
+ attribute? :to_at, Types::DateTime.optional
15
+ attribute? :asn, Types::Int.optional
16
+ attribute? :dns_record, Types::String.optional
17
+ attribute? :reverse_dns_name, Types::String.optional
18
+
19
+ def has_valid_artifact_filters
20
+ !(artifact_data || asn || dns_record || reverse_dns_name).nil?
21
+ end
22
+ end
23
+
24
+ class SearchFilterWithPagination < SearchFilter
25
+ attribute? :page, Types::Int.default(1)
26
+ attribute? :limit, Types::Int.default(10)
27
+
28
+ def without_pagination
29
+ SearchFilter.new(
30
+ artifact_data: artifact_data,
31
+ description: description,
32
+ from_at: from_at,
33
+ source: source,
34
+ tag_name: tag_name,
35
+ title: title,
36
+ to_at: to_at,
37
+ asn: asn,
38
+ dns_record: dns_record,
39
+ reverse_dns_name: reverse_dns_name
40
+ )
41
+ end
42
+ end
43
+ end
44
+ end
45
+ end
data/lib/mihari/types.rb CHANGED
@@ -9,6 +9,7 @@ module Mihari
9
9
  Hash = Strict::Hash
10
10
  String = Strict::String
11
11
  Double = Strict::Float | Strict::Integer
12
+ DateTime = Strict::DateTime
12
13
 
13
14
  DataTypes = Types::String.enum(*ALLOWED_DATA_TYPES)
14
15
 
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Mihari
4
- VERSION = "3.8.1"
4
+ VERSION = "3.9.0"
5
5
  end
@@ -37,10 +37,10 @@ module Mihari
37
37
  use Mihari::Controllers::TagsController
38
38
 
39
39
  class << self
40
- def run!(port: 9292, host: "localhost")
40
+ def run!(port: 9292, host: "localhost", threads: "0:16", verbose: false)
41
41
  url = "http://#{host}:#{port}"
42
42
 
43
- Rack::Handler::Puma.run self, Port: port, Host: host do |server|
43
+ Rack::Handler::Puma.run(self, Port: port, Host: host, Threads: threads, Verbose: verbose) do |server|
44
44
  Launchy.open url
45
45
 
46
46
  [:INT, :TERM].each do |sig|
@@ -15,39 +15,32 @@ module Mihari
15
15
  param :to_at, DateTime
16
16
  param :toAt, DateTime
17
17
 
18
+ param :asn, Integer
19
+ param :dns_record, String
20
+ param :dnsRecord, String
21
+ param :reverse_dns_name, String
22
+ param :reverseDnsName, String
23
+
24
+ # set page & limit
18
25
  page = params["page"] || 1
19
- page = page.to_i
26
+ params["page"] = page.to_i
27
+
20
28
  limit = 10
29
+ params["limit"] = 10
21
30
 
22
- artifact_data = params["artifact"]
23
- description = params["description"]
24
- source = params["source"]
25
- tag_name = params["tag"]
26
- title = params["title"]
31
+ # normalize keys
32
+ params["artifact_data"] = params["artifact"]
33
+ params["from_at"] = params["from_at"] || params["fromAt"]
34
+ params["to_at"] = params["to_at"] || params["toAt"]
35
+ params["dns_record"] = params["dns_record"] || params["dnsRecord"]
36
+ params["reverse_dns_name"] = params["reverse_dns_name"] || params["reverseDnsName"]
27
37
 
28
- from_at = params["from_at"] || params["fromAt"]
29
- to_at = params["to_at"] || params["toAt"]
38
+ # symbolize hash keys
39
+ filter = params.to_h.transform_keys(&:to_sym)
30
40
 
31
- alerts = Mihari::Alert.search(
32
- artifact_data: artifact_data,
33
- description: description,
34
- from_at: from_at,
35
- limit: limit,
36
- page: page,
37
- source: source,
38
- tag_name: tag_name,
39
- title: title,
40
- to_at: to_at
41
- )
42
- total = Mihari::Alert.count(
43
- artifact_data: artifact_data,
44
- description: description,
45
- from_at: from_at,
46
- source: source,
47
- tag_name: tag_name,
48
- title: title,
49
- to_at: to_at
50
- )
41
+ search_filter_with_pagenation = Structs::Alert::SearchFilterWithPagination.new(**filter)
42
+ alerts = Mihari::Alert.search(search_filter_with_pagenation)
43
+ total = Mihari::Alert.count(search_filter_with_pagenation.without_pagination)
51
44
 
52
45
  json({ alerts: alerts, total: total, current_page: page, page_size: limit })
53
46
  end
@@ -1 +1 @@
1
- <!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width,initial-scale=1"><link rel="icon" href="/static/favicon.ico"><title>Mihari</title><link href="/static/js/app.a862ebca.js" rel="preload" as="script"></head><body><noscript><strong>We're sorry but Mihari doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id="app"></div><script src="/static/js/app.a862ebca.js"></script></body></html>
1
+ <!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width,initial-scale=1"><link rel="icon" href="/static/favicon.ico"><title>Mihari</title><link href="/static/js/app.378da3dc.js" rel="preload" as="script"></head><body><noscript><strong>We're sorry but Mihari doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id="app"></div><script src="/static/js/app.378da3dc.js"></script></body></html>
@@ -374,7 +374,7 @@ data-styled.g140[id="sc-amkrK"]{content:"icZuVc,"}/*!sc*/
374
374
  55.627 l 55.6165,55.627 -231.245496,231.24803 c -127.185,127.1864
375
375
  -231.5279,231.248 -231.873,231.248 -0.3451,0 -104.688,
376
376
  -104.0616 -231.873,-231.248 z
377
- " fill="currentColor"></path></g></svg></div></div><div class="sc-kizEQm eWToXe api-content"><div class="sc-eCApnc fxZJZV"><div class="sc-iCoGMd KWWXd"><div class="sc-hKFxyN egQuEZ api-info"><h1 class="sc-fujyAs sc-fcmMJX cTueGk ikafbi">Mihari API<!-- --> <span>(<!-- -->1.0<!-- -->)</span></h1><p>Download OpenAPI specification<!-- -->:<a download="swagger.json" target="_blank" class="sc-GvhzO ksfJAW">Download</a></p><div class="sc-iBzEeX sc-cOifOu dFWqin bHzJuy"></div><div class="sc-iBzEeX sc-cOifOu dFWqin bHzJuy" data-role="redoc-summary"></div><div class="sc-iBzEeX sc-cOifOu dFWqin bHzJuy" data-role="redoc-description"></div></div></div></div><div id="tag/alerts" data-section-id="tag/alerts" class="sc-eCApnc fxZJZV"><div class="sc-iCoGMd KWWXd"><div class="sc-hKFxyN egQuEZ"><h1 class="sc-fujyAs cTueGk"><a class="sc-crzoAE iUxAWq" href="#tag/alerts" aria-label="tag/alerts"></a>alerts</h1></div></div></div><div id="tag/alerts/paths/~1api~1alerts/get" data-section-id="tag/alerts/paths/~1api~1alerts/get" class="sc-eCApnc bJnWIW"><div class="sc-iCoGMd sc-irKDMX KWWXd kBgcMI"><div class="sc-hKFxyN egQuEZ"><h2 class="sc-pNWdM euRMgx"><a class="sc-crzoAE iUxAWq" href="#tag/alerts/paths/~1api~1alerts/get" aria-label="tag/alerts/paths/~1api~1alerts/get"></a>Get alerts<!-- --> </h2><div><h5 class="sc-iqAclL eONCmm">query<!-- --> Parameters</h5><table class="sc-hHEiqL dYlGyN"><tbody><tr><td class="sc-hBMUJo sc-fFSPTT fABPTr eQzShU" kind="field" title="page"><span class="sc-iemWCZ bcnRwz"></span><span>page</span></td><td class="sc-bkbkJK gWxDzL"><div><div><span class="sc-fbIWvP sc-FRrlG CMpTe bBFKjV"></span><span class="sc-fbIWvP sc-fXazdy CMpTe gJKPGC">integer</span></div><div><span class="sc-fbIWvP CMpTe"> <!-- -->Default:<!-- --> </span> <span class="sc-fbIWvP sc-hmbstg CMpTe cfctgs">0</span></div> <div><div class="sc-iBzEeX sc-cOifOu dFWqin cJyzuM"></div></div></div></td></tr><tr><td class="sc-hBMUJo sc-fFSPTT fABPTr eQzShU" kind="field" title="artifact"><span class="sc-iemWCZ bcnRwz"></span><span>artifact</span></td><td class="sc-bkbkJK gWxDzL"><div><div><span class="sc-fbIWvP sc-FRrlG CMpTe bBFKjV"></span><span class="sc-fbIWvP sc-fXazdy CMpTe gJKPGC">string</span></div> <div><div class="sc-iBzEeX sc-cOifOu dFWqin cJyzuM"></div></div></div></td></tr><tr><td class="sc-hBMUJo sc-fFSPTT fABPTr eQzShU" kind="field" title="description"><span class="sc-iemWCZ bcnRwz"></span><span>description</span></td><td class="sc-bkbkJK gWxDzL"><div><div><span class="sc-fbIWvP sc-FRrlG CMpTe bBFKjV"></span><span class="sc-fbIWvP sc-fXazdy CMpTe gJKPGC">string</span></div> <div><div class="sc-iBzEeX sc-cOifOu dFWqin cJyzuM"></div></div></div></td></tr><tr><td class="sc-hBMUJo sc-fFSPTT fABPTr eQzShU" kind="field" title="source"><span class="sc-iemWCZ bcnRwz"></span><span>source</span></td><td class="sc-bkbkJK gWxDzL"><div><div><span class="sc-fbIWvP sc-FRrlG CMpTe bBFKjV"></span><span class="sc-fbIWvP sc-fXazdy CMpTe gJKPGC">string</span></div> <div><div class="sc-iBzEeX sc-cOifOu dFWqin cJyzuM"></div></div></div></td></tr><tr><td class="sc-hBMUJo sc-fFSPTT fABPTr eQzShU" kind="field" title="tag"><span class="sc-iemWCZ bcnRwz"></span><span>tag</span></td><td class="sc-bkbkJK gWxDzL"><div><div><span class="sc-fbIWvP sc-FRrlG CMpTe bBFKjV"></span><span class="sc-fbIWvP sc-fXazdy CMpTe gJKPGC">string</span></div> <div><div class="sc-iBzEeX sc-cOifOu dFWqin cJyzuM"></div></div></div></td></tr><tr><td class="sc-hBMUJo sc-fFSPTT fABPTr eQzShU" kind="field" title="title"><span class="sc-iemWCZ bcnRwz"></span><span>title</span></td><td class="sc-bkbkJK gWxDzL"><div><div><span class="sc-fbIWvP sc-FRrlG CMpTe bBFKjV"></span><span class="sc-fbIWvP sc-fXazdy CMpTe gJKPGC">string</span></div> <div><div class="sc-iBzEeX sc-cOifOu dFWqin cJyzuM"></div></div></div></td></tr><tr><td class="sc-hBMUJo sc-fFSPTT fABPTr eQzShU" kind="field" title="toAt"><span class="sc-iemWCZ bcnRwz"></span><span>toAt</span></td><td class="sc-bkbkJK gWxDzL"><div><div><span class="sc-fbIWvP sc-FRrlG CMpTe bBFKjV"></span><span class="sc-fbIWvP sc-fXazdy CMpTe gJKPGC">string</span></div> <div><div class="sc-iBzEeX sc-cOifOu dFWqin cJyzuM"></div></div></div></td></tr><tr class="last undefined"><td class="sc-hBMUJo sc-fFSPTT fABPTr eQzShU" kind="field" title="fromAt"><span class="sc-iemWCZ bcnRwz"></span><span>fromAt</span></td><td class="sc-bkbkJK gWxDzL"><div><div><span class="sc-fbIWvP sc-FRrlG CMpTe bBFKjV"></span><span class="sc-fbIWvP sc-fXazdy CMpTe gJKPGC">string</span></div> <div><div class="sc-iBzEeX sc-cOifOu dFWqin cJyzuM"></div></div></div></td></tr></tbody></table></div><div><h3 class="sc-dTSzeu efuQZt">Responses</h3><div><button class="sc-jXcxbT bCvCHz"><svg class="sc-dIsUp jLtOTj" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-jlZJtj jSPrUM">200<!-- --> </strong><span class="sc-Arkif dXjyFC"><p>A list of matched alerts</p>
377
+ " fill="currentColor"></path></g></svg></div></div><div class="sc-kizEQm eWToXe api-content"><div class="sc-eCApnc fxZJZV"><div class="sc-iCoGMd KWWXd"><div class="sc-hKFxyN egQuEZ api-info"><h1 class="sc-fujyAs sc-fcmMJX cTueGk ikafbi">Mihari API<!-- --> <span>(<!-- -->1.0<!-- -->)</span></h1><p>Download OpenAPI specification<!-- -->:<a download="swagger.json" target="_blank" class="sc-GvhzO ksfJAW">Download</a></p><div class="sc-iBzEeX sc-cOifOu dFWqin bHzJuy"></div><div class="sc-iBzEeX sc-cOifOu dFWqin bHzJuy" data-role="redoc-summary"></div><div class="sc-iBzEeX sc-cOifOu dFWqin bHzJuy" data-role="redoc-description"></div></div></div></div><div id="tag/alerts" data-section-id="tag/alerts" class="sc-eCApnc fxZJZV"><div class="sc-iCoGMd KWWXd"><div class="sc-hKFxyN egQuEZ"><h1 class="sc-fujyAs cTueGk"><a class="sc-crzoAE iUxAWq" href="#tag/alerts" aria-label="tag/alerts"></a>alerts</h1></div></div></div><div id="tag/alerts/paths/~1api~1alerts/get" data-section-id="tag/alerts/paths/~1api~1alerts/get" class="sc-eCApnc bJnWIW"><div class="sc-iCoGMd sc-irKDMX KWWXd kBgcMI"><div class="sc-hKFxyN egQuEZ"><h2 class="sc-pNWdM euRMgx"><a class="sc-crzoAE iUxAWq" href="#tag/alerts/paths/~1api~1alerts/get" aria-label="tag/alerts/paths/~1api~1alerts/get"></a>Get alerts<!-- --> </h2><div><h5 class="sc-iqAclL eONCmm">query<!-- --> Parameters</h5><table class="sc-hHEiqL dYlGyN"><tbody><tr><td class="sc-hBMUJo sc-fFSPTT fABPTr eQzShU" kind="field" title="page"><span class="sc-iemWCZ bcnRwz"></span><span>page</span></td><td class="sc-bkbkJK gWxDzL"><div><div><span class="sc-fbIWvP sc-FRrlG CMpTe bBFKjV"></span><span class="sc-fbIWvP sc-fXazdy CMpTe gJKPGC">integer</span></div><div><span class="sc-fbIWvP CMpTe"> <!-- -->Default:<!-- --> </span> <span class="sc-fbIWvP sc-hmbstg CMpTe cfctgs">0</span></div> <div><div class="sc-iBzEeX sc-cOifOu dFWqin cJyzuM"></div></div></div></td></tr><tr><td class="sc-hBMUJo sc-fFSPTT fABPTr eQzShU" kind="field" title="artifact"><span class="sc-iemWCZ bcnRwz"></span><span>artifact</span></td><td class="sc-bkbkJK gWxDzL"><div><div><span class="sc-fbIWvP sc-FRrlG CMpTe bBFKjV"></span><span class="sc-fbIWvP sc-fXazdy CMpTe gJKPGC">string</span></div> <div><div class="sc-iBzEeX sc-cOifOu dFWqin cJyzuM"></div></div></div></td></tr><tr><td class="sc-hBMUJo sc-fFSPTT fABPTr eQzShU" kind="field" title="description"><span class="sc-iemWCZ bcnRwz"></span><span>description</span></td><td class="sc-bkbkJK gWxDzL"><div><div><span class="sc-fbIWvP sc-FRrlG CMpTe bBFKjV"></span><span class="sc-fbIWvP sc-fXazdy CMpTe gJKPGC">string</span></div> <div><div class="sc-iBzEeX sc-cOifOu dFWqin cJyzuM"></div></div></div></td></tr><tr><td class="sc-hBMUJo sc-fFSPTT fABPTr eQzShU" kind="field" title="source"><span class="sc-iemWCZ bcnRwz"></span><span>source</span></td><td class="sc-bkbkJK gWxDzL"><div><div><span class="sc-fbIWvP sc-FRrlG CMpTe bBFKjV"></span><span class="sc-fbIWvP sc-fXazdy CMpTe gJKPGC">string</span></div> <div><div class="sc-iBzEeX sc-cOifOu dFWqin cJyzuM"></div></div></div></td></tr><tr><td class="sc-hBMUJo sc-fFSPTT fABPTr eQzShU" kind="field" title="tag"><span class="sc-iemWCZ bcnRwz"></span><span>tag</span></td><td class="sc-bkbkJK gWxDzL"><div><div><span class="sc-fbIWvP sc-FRrlG CMpTe bBFKjV"></span><span class="sc-fbIWvP sc-fXazdy CMpTe gJKPGC">string</span></div> <div><div class="sc-iBzEeX sc-cOifOu dFWqin cJyzuM"></div></div></div></td></tr><tr><td class="sc-hBMUJo sc-fFSPTT fABPTr eQzShU" kind="field" title="title"><span class="sc-iemWCZ bcnRwz"></span><span>title</span></td><td class="sc-bkbkJK gWxDzL"><div><div><span class="sc-fbIWvP sc-FRrlG CMpTe bBFKjV"></span><span class="sc-fbIWvP sc-fXazdy CMpTe gJKPGC">string</span></div> <div><div class="sc-iBzEeX sc-cOifOu dFWqin cJyzuM"></div></div></div></td></tr><tr><td class="sc-hBMUJo sc-fFSPTT fABPTr eQzShU" kind="field" title="toAt"><span class="sc-iemWCZ bcnRwz"></span><span>toAt</span></td><td class="sc-bkbkJK gWxDzL"><div><div><span class="sc-fbIWvP sc-FRrlG CMpTe bBFKjV"></span><span class="sc-fbIWvP sc-fXazdy CMpTe gJKPGC">string</span></div> <div><div class="sc-iBzEeX sc-cOifOu dFWqin cJyzuM"></div></div></div></td></tr><tr><td class="sc-hBMUJo sc-fFSPTT fABPTr eQzShU" kind="field" title="fromAt"><span class="sc-iemWCZ bcnRwz"></span><span>fromAt</span></td><td class="sc-bkbkJK gWxDzL"><div><div><span class="sc-fbIWvP sc-FRrlG CMpTe bBFKjV"></span><span class="sc-fbIWvP sc-fXazdy CMpTe gJKPGC">string</span></div> <div><div class="sc-iBzEeX sc-cOifOu dFWqin cJyzuM"></div></div></div></td></tr><tr><td class="sc-hBMUJo sc-fFSPTT fABPTr eQzShU" kind="field" title="asn"><span class="sc-iemWCZ bcnRwz"></span><span>asn</span></td><td class="sc-bkbkJK gWxDzL"><div><div><span class="sc-fbIWvP sc-FRrlG CMpTe bBFKjV"></span><span class="sc-fbIWvP sc-fXazdy CMpTe gJKPGC">integer</span></div> <div><div class="sc-iBzEeX sc-cOifOu dFWqin cJyzuM"></div></div></div></td></tr><tr><td class="sc-hBMUJo sc-fFSPTT fABPTr eQzShU" kind="field" title="dnsRecord"><span class="sc-iemWCZ bcnRwz"></span><span>dnsRecord</span></td><td class="sc-bkbkJK gWxDzL"><div><div><span class="sc-fbIWvP sc-FRrlG CMpTe bBFKjV"></span><span class="sc-fbIWvP sc-fXazdy CMpTe gJKPGC">string</span></div> <div><div class="sc-iBzEeX sc-cOifOu dFWqin cJyzuM"></div></div></div></td></tr><tr class="last undefined"><td class="sc-hBMUJo sc-fFSPTT fABPTr eQzShU" kind="field" title="reverseDnsName"><span class="sc-iemWCZ bcnRwz"></span><span>reverseDnsName</span></td><td class="sc-bkbkJK gWxDzL"><div><div><span class="sc-fbIWvP sc-FRrlG CMpTe bBFKjV"></span><span class="sc-fbIWvP sc-fXazdy CMpTe gJKPGC">string</span></div> <div><div class="sc-iBzEeX sc-cOifOu dFWqin cJyzuM"></div></div></div></td></tr></tbody></table></div><div><h3 class="sc-dTSzeu efuQZt">Responses</h3><div><button class="sc-jXcxbT bCvCHz"><svg class="sc-dIsUp jLtOTj" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-jlZJtj jSPrUM">200<!-- --> </strong><span class="sc-Arkif dXjyFC"><p>A list of matched alerts</p>
378
378
  </span></button></div></div></div><div class="sc-jSFjdj sc-gKAaRy hsSsLr gcushC"><div class="sc-kYPZxB jdCbTS"><button class="sc-dWBRfb jnEbBv"><span type="get" class="sc-jHcXXw cAOCuf http-verb get">get</span><span class="sc-xGAEC jRjoAh">/api/alerts</span><svg class="sc-dIsUp gGvkZD" style="margin-right:-25px" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></button><div aria-hidden="true" class="sc-bQCEYZ gBwOdz"><div class="sc-fXgAZx fKFAhr"><div class="sc-iBzEeX sc-cOifOu dFWqin cJyzuM"></div><div tabindex="0" role="button"><div class="sc-EZqKI gjiGnZ"><span></span>/api/alerts</div></div></div></div></div><div><h3 class="sc-kEqXSa iXmHCl"> <!-- -->Response samples<!-- --> </h3><div class="sc-carFqZ evYMTo" data-tabs="true"><ul class="react-tabs__tab-list" role="tablist"><li class="tab-success react-tabs__tab--selected" role="tab" id="react-tabs-0" aria-selected="true" aria-disabled="false" aria-controls="react-tabs-1" tabindex="0">200</li></ul><div class="react-tabs__tab-panel react-tabs__tab-panel--selected" role="tabpanel" id="react-tabs-1" aria-labelledby="react-tabs-0"><div><div class="sc-hhIiOg lhdonw"><span class="sc-oeezt bmwRob">Content type</span><div class="sc-eJocfa jzRrfm">application/json</div></div><div class="sc-gGLxEB hINeXe"><div class="sc-iNiQyp cVHUjN"><div class="sc-efHYUO eQQUSD"><button><div class="sc-khIgEk llGFDD">Copy</div></button><button> Expand all </button><button> Collapse all </button></div><div class="sc-iBzEeX dFWqin sc-jffHpj fqzhkP"><div class="redoc-json"><code><button class="collapser" aria-label="collapse"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable "><span class="property token string">"alerts"</span>: <button class="collapser" aria-label="collapse"></button><span class="token punctuation">[</span><span class="ellipsis"></span><ul class="array collapsible"><li><div class="hoverable collapsed"><button class="collapser" aria-label="expand"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable collapsed"><span class="property token string">"id"</span>: <span class="token number">0</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"title"</span>: <span class="token string">&quot;string&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"description"</span>: <span class="token string">&quot;string&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"source"</span>: <span class="token string">&quot;string&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"createdAt"</span>: <span class="token string">&quot;string&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"tags"</span>: <button class="collapser" aria-label="expand"></button><span class="token punctuation">[</span><span class="ellipsis"></span><ul class="array collapsible"><li><div class="hoverable collapsed"><button class="collapser" aria-label="expand"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable collapsed"><span class="property token string">"id"</span>: <span class="token number">0</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"name"</span>: <span class="token string">&quot;string&quot;</span></div></li></ul><span class="token punctuation">}</span></div></li></ul><span class="token punctuation">]</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"artifacts"</span>: <button class="collapser" aria-label="expand"></button><span class="token punctuation">[</span><span class="ellipsis"></span><ul class="array collapsible"><li><div class="hoverable collapsed"><button class="collapser" aria-label="expand"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable collapsed"><span class="property token string">"id"</span>: <span class="token number">0</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"data"</span>: <span class="token string">&quot;string&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"dataType"</span>: <span class="token string">&quot;string&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"source"</span>: <span class="token string">&quot;string&quot;</span></div></li></ul><span class="token punctuation">}</span></div></li></ul><span class="token punctuation">]</span></div></li></ul><span class="token punctuation">}</span></div></li></ul><span class="token punctuation">]</span><span class="token punctuation">,</span></div></li><li><div class="hoverable "><span class="property token string">"currentPage"</span>: <span class="token number">0</span><span class="token punctuation">,</span></div></li><li><div class="hoverable "><span class="property token string">"pageSize"</span>: <span class="token number">0</span><span class="token punctuation">,</span></div></li><li><div class="hoverable "><span class="property token string">"total"</span>: <span class="token number">0</span></div></li></ul><span class="token punctuation">}</span></code></div></div></div></div></div></div></div></div></div></div></div><div id="tag/alerts/paths/~1api~1alerts~1{id}/delete" data-section-id="tag/alerts/paths/~1api~1alerts~1{id}/delete" class="sc-eCApnc bJnWIW"><div class="sc-iCoGMd sc-irKDMX KWWXd kBgcMI"><div class="sc-hKFxyN egQuEZ"><h2 class="sc-pNWdM euRMgx"><a class="sc-crzoAE iUxAWq" href="#tag/alerts/paths/~1api~1alerts~1{id}/delete" aria-label="tag/alerts/paths/~1api~1alerts~1{id}/delete"></a>Delete an alert<!-- --> </h2><div><h5 class="sc-iqAclL eONCmm">path<!-- --> Parameters</h5><table class="sc-hHEiqL dYlGyN"><tbody><tr class="last undefined"><td class="sc-hBMUJo sc-fFSPTT fABPTr eQzShU" kind="field" title="id"><span class="sc-iemWCZ bcnRwz"></span><span>id</span><div class="sc-TtZnY sc-jHNicF hUSnpT bsGeIE"> required </div></td><td class="sc-bkbkJK gWxDzL"><div><div><span class="sc-fbIWvP sc-FRrlG CMpTe bBFKjV"></span><span class="sc-fbIWvP sc-fXazdy CMpTe gJKPGC">integer</span></div> <div><div class="sc-iBzEeX sc-cOifOu dFWqin cJyzuM"></div></div></div></td></tr></tbody></table></div><div><h3 class="sc-dTSzeu efuQZt">Responses</h3><div><button class="sc-jXcxbT bjdvNh" disabled=""><strong class="sc-jlZJtj jSPrUM">204<!-- --> </strong><span class="sc-Arkif dXjyFC"><p>An alert is deleted</p>
379
379
  </span></button></div></div></div><div class="sc-jSFjdj sc-gKAaRy hsSsLr gcushC"><div class="sc-kYPZxB jdCbTS"><button class="sc-dWBRfb jnEbBv"><span type="delete" class="sc-jHcXXw gemyvL http-verb delete">delete</span><span class="sc-xGAEC jRjoAh">/api/alerts/{id}</span><svg class="sc-dIsUp gGvkZD" style="margin-right:-25px" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></button><div aria-hidden="true" class="sc-bQCEYZ gBwOdz"><div class="sc-fXgAZx fKFAhr"><div class="sc-iBzEeX sc-cOifOu dFWqin cJyzuM"></div><div tabindex="0" role="button"><div class="sc-EZqKI gjiGnZ"><span></span>/api/alerts/{id}</div></div></div></div></div></div></div></div><div id="tag/tags" data-section-id="tag/tags" class="sc-eCApnc fxZJZV"><div class="sc-iCoGMd KWWXd"><div class="sc-hKFxyN egQuEZ"><h1 class="sc-fujyAs cTueGk"><a class="sc-crzoAE iUxAWq" href="#tag/tags" aria-label="tag/tags"></a>tags</h1></div></div></div><div id="tag/tags/paths/~1api~1tags~1/get" data-section-id="tag/tags/paths/~1api~1tags~1/get" class="sc-eCApnc bJnWIW"><div class="sc-iCoGMd sc-irKDMX KWWXd kBgcMI"><div class="sc-hKFxyN egQuEZ"><h2 class="sc-pNWdM euRMgx"><a class="sc-crzoAE iUxAWq" href="#tag/tags/paths/~1api~1tags~1/get" aria-label="tag/tags/paths/~1api~1tags~1/get"></a>Get tags<!-- --> </h2><div><h3 class="sc-dTSzeu efuQZt">Responses</h3><div><button class="sc-jXcxbT bCvCHz"><svg class="sc-dIsUp jLtOTj" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-jlZJtj jSPrUM">200<!-- --> </strong><span class="sc-Arkif dXjyFC"><p>A list of tags</p>
380
380
  </span></button></div></div></div><div class="sc-jSFjdj sc-gKAaRy hsSsLr gcushC"><div class="sc-kYPZxB jdCbTS"><button class="sc-dWBRfb jnEbBv"><span type="get" class="sc-jHcXXw cAOCuf http-verb get">get</span><span class="sc-xGAEC jRjoAh">/api/tags/</span><svg class="sc-dIsUp gGvkZD" style="margin-right:-25px" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></button><div aria-hidden="true" class="sc-bQCEYZ gBwOdz"><div class="sc-fXgAZx fKFAhr"><div class="sc-iBzEeX sc-cOifOu dFWqin cJyzuM"></div><div tabindex="0" role="button"><div class="sc-EZqKI gjiGnZ"><span></span>/api/tags/</div></div></div></div></div><div><h3 class="sc-kEqXSa iXmHCl"> <!-- -->Response samples<!-- --> </h3><div class="sc-carFqZ evYMTo" data-tabs="true"><ul class="react-tabs__tab-list" role="tablist"><li class="tab-success react-tabs__tab--selected" role="tab" id="react-tabs-2" aria-selected="true" aria-disabled="false" aria-controls="react-tabs-3" tabindex="0">200</li></ul><div class="react-tabs__tab-panel react-tabs__tab-panel--selected" role="tabpanel" id="react-tabs-3" aria-labelledby="react-tabs-2"><div><div class="sc-hhIiOg lhdonw"><span class="sc-oeezt bmwRob">Content type</span><div class="sc-eJocfa jzRrfm">application/json</div></div><div class="sc-gGLxEB hINeXe"><div class="sc-iNiQyp cVHUjN"><div class="sc-efHYUO eQQUSD"><button><div class="sc-khIgEk llGFDD">Copy</div></button><button> Expand all </button><button> Collapse all </button></div><div class="sc-iBzEeX dFWqin sc-jffHpj fqzhkP"><div class="redoc-json"><code><button class="collapser" aria-label="collapse"></button><span class="token punctuation">[</span><span class="ellipsis"></span><ul class="array collapsible"><li><div class="hoverable "><button class="collapser" aria-label="collapse"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable collapsed"><span class="property token string">"id"</span>: <span class="token number">0</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"name"</span>: <span class="token string">&quot;string&quot;</span></div></li></ul><span class="token punctuation">}</span></div></li></ul><span class="token punctuation">]</span></code></div></div></div></div></div></div></div></div></div></div></div><div id="tag/tags/paths/~1api~1tags~1{name}/delete" data-section-id="tag/tags/paths/~1api~1tags~1{name}/delete" class="sc-eCApnc bJnWIW"><div class="sc-iCoGMd sc-irKDMX KWWXd kBgcMI"><div class="sc-hKFxyN egQuEZ"><h2 class="sc-pNWdM euRMgx"><a class="sc-crzoAE iUxAWq" href="#tag/tags/paths/~1api~1tags~1{name}/delete" aria-label="tag/tags/paths/~1api~1tags~1{name}/delete"></a>Delete a tag<!-- --> </h2><div><h5 class="sc-iqAclL eONCmm">path<!-- --> Parameters</h5><table class="sc-hHEiqL dYlGyN"><tbody><tr class="last undefined"><td class="sc-hBMUJo sc-fFSPTT fABPTr eQzShU" kind="field" title="name"><span class="sc-iemWCZ bcnRwz"></span><span>name</span><div class="sc-TtZnY sc-jHNicF hUSnpT bsGeIE"> required </div></td><td class="sc-bkbkJK gWxDzL"><div><div><span class="sc-fbIWvP sc-FRrlG CMpTe bBFKjV"></span><span class="sc-fbIWvP sc-fXazdy CMpTe gJKPGC">string</span></div> <div><div class="sc-iBzEeX sc-cOifOu dFWqin cJyzuM"></div></div></div></td></tr></tbody></table></div><div><h3 class="sc-dTSzeu efuQZt">Responses</h3><div><button class="sc-jXcxbT bjdvNh" disabled=""><strong class="sc-jlZJtj jSPrUM">204<!-- --> </strong><span class="sc-Arkif dXjyFC"><p>A tag is deleted</p>
@@ -388,7 +388,7 @@ data-styled.g140[id="sc-amkrK"]{content:"icZuVc,"}/*!sc*/
388
388
  </span></button></div></div></div><div class="sc-jSFjdj sc-gKAaRy hsSsLr gcushC"><div class="sc-kYPZxB jdCbTS"><button class="sc-dWBRfb jnEbBv"><span type="post" class="sc-jHcXXw bXnXQF http-verb post">post</span><span class="sc-xGAEC jRjoAh">/api/analyzer</span><svg class="sc-dIsUp gGvkZD" style="margin-right:-25px" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></button><div aria-hidden="true" class="sc-bQCEYZ gBwOdz"><div class="sc-fXgAZx fKFAhr"><div class="sc-iBzEeX sc-cOifOu dFWqin cJyzuM"></div><div tabindex="0" role="button"><div class="sc-EZqKI gjiGnZ"><span></span>/api/analyzer</div></div></div></div></div><div><h3 class="sc-kEqXSa iXmHCl"> <!-- -->Request samples<!-- --> </h3><div class="sc-carFqZ evYMTo" data-tabs="true"><ul class="react-tabs__tab-list" role="tablist"><li class="react-tabs__tab react-tabs__tab--selected" role="tab" id="react-tabs-14" aria-selected="true" aria-disabled="false" aria-controls="react-tabs-15" tabindex="0">Payload</li></ul><div class="react-tabs__tab-panel react-tabs__tab-panel--selected" role="tabpanel" id="react-tabs-15" aria-labelledby="react-tabs-14"><div><div class="sc-hhIiOg lhdonw"><span class="sc-oeezt bmwRob">Content type</span><div class="sc-eJocfa jzRrfm">application/json</div></div><div class="sc-gGLxEB hINeXe"><div class="sc-iNiQyp cVHUjN"><div class="sc-efHYUO eQQUSD"><button><div class="sc-khIgEk llGFDD">Copy</div></button><button> Expand all </button><button> Collapse all </button></div><div class="sc-iBzEeX dFWqin sc-jffHpj fqzhkP"><div class="redoc-json"><code><button class="collapser" aria-label="collapse"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable "><span class="property token string">"title"</span>: <span class="token string">&quot;string&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable "><span class="property token string">"description"</span>: <span class="token string">&quot;string&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable "><span class="property token string">"source"</span>: <span class="token string">&quot;string&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable "><span class="property token string">"artifacts"</span>: <span class="token string">&quot;string&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable "><span class="property token string">"tags"</span>: <button class="collapser" aria-label="collapse"></button><span class="token punctuation">[</span><span class="ellipsis"></span><ul class="array collapsible"><li><div class="hoverable collapsed"><span class="token string">&quot;string&quot;</span></div></li></ul><span class="token punctuation">]</span><span class="token punctuation">,</span></div></li><li><div class="hoverable "><span class="property token string">"ignoreOldArtifacts"</span>: <span class="token boolean">false</span><span class="token punctuation">,</span></div></li><li><div class="hoverable "><span class="property token string">"ignoreThreshold"</span>: <span class="token number">0</span></div></li></ul><span class="token punctuation">}</span></code></div></div></div></div></div></div></div></div></div></div></div><div id="tag/ip-addresses" data-section-id="tag/ip-addresses" class="sc-eCApnc fxZJZV"><div class="sc-iCoGMd KWWXd"><div class="sc-hKFxyN egQuEZ"><h1 class="sc-fujyAs cTueGk"><a class="sc-crzoAE iUxAWq" href="#tag/ip-addresses" aria-label="tag/ip-addresses"></a>ip addresses</h1></div></div></div><div id="tag/ip-addresses/paths/~1api~1ip_addresses~1{ip}/get" data-section-id="tag/ip-addresses/paths/~1api~1ip_addresses~1{ip}/get" class="sc-eCApnc bJnWIW"><div class="sc-iCoGMd sc-irKDMX KWWXd kBgcMI"><div class="sc-hKFxyN egQuEZ"><h2 class="sc-pNWdM euRMgx"><a class="sc-crzoAE iUxAWq" href="#tag/ip-addresses/paths/~1api~1ip_addresses~1{ip}/get" aria-label="tag/ip-addresses/paths/~1api~1ip_addresses~1{ip}/get"></a>Get an IP address information<!-- --> </h2><div><h5 class="sc-iqAclL eONCmm">path<!-- --> Parameters</h5><table class="sc-hHEiqL dYlGyN"><tbody><tr class="last undefined"><td class="sc-hBMUJo sc-fFSPTT fABPTr eQzShU" kind="field" title="ip"><span class="sc-iemWCZ bcnRwz"></span><span>ip</span><div class="sc-TtZnY sc-jHNicF hUSnpT bsGeIE"> required </div></td><td class="sc-bkbkJK gWxDzL"><div><div><span class="sc-fbIWvP sc-FRrlG CMpTe bBFKjV"></span><span class="sc-fbIWvP sc-fXazdy CMpTe gJKPGC">string</span></div> <div><div class="sc-iBzEeX sc-cOifOu dFWqin cJyzuM"></div></div></div></td></tr></tbody></table></div><div><h3 class="sc-dTSzeu efuQZt">Responses</h3><div><button class="sc-jXcxbT bCvCHz"><svg class="sc-dIsUp jLtOTj" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-jlZJtj jSPrUM">200<!-- --> </strong><span class="sc-Arkif dXjyFC"><p>An IP address information</p>
389
389
  </span></button></div></div></div><div class="sc-jSFjdj sc-gKAaRy hsSsLr gcushC"><div class="sc-kYPZxB jdCbTS"><button class="sc-dWBRfb jnEbBv"><span type="get" class="sc-jHcXXw cAOCuf http-verb get">get</span><span class="sc-xGAEC jRjoAh">/api/ip_addresses/{ip}</span><svg class="sc-dIsUp gGvkZD" style="margin-right:-25px" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></button><div aria-hidden="true" class="sc-bQCEYZ gBwOdz"><div class="sc-fXgAZx fKFAhr"><div class="sc-iBzEeX sc-cOifOu dFWqin cJyzuM"></div><div tabindex="0" role="button"><div class="sc-EZqKI gjiGnZ"><span></span>/api/ip_addresses/{ip}</div></div></div></div></div><div><h3 class="sc-kEqXSa iXmHCl"> <!-- -->Response samples<!-- --> </h3><div class="sc-carFqZ evYMTo" data-tabs="true"><ul class="react-tabs__tab-list" role="tablist"><li class="tab-success react-tabs__tab--selected" role="tab" id="react-tabs-16" aria-selected="true" aria-disabled="false" aria-controls="react-tabs-17" tabindex="0">200</li></ul><div class="react-tabs__tab-panel react-tabs__tab-panel--selected" role="tabpanel" id="react-tabs-17" aria-labelledby="react-tabs-16"><div><div class="sc-hhIiOg lhdonw"><span class="sc-oeezt bmwRob">Content type</span><div class="sc-eJocfa jzRrfm">application/json</div></div><div class="sc-gGLxEB hINeXe"><div class="sc-iNiQyp cVHUjN"><div class="sc-efHYUO eQQUSD"><button><div class="sc-khIgEk llGFDD">Copy</div></button><button> Expand all </button><button> Collapse all </button></div><div class="sc-iBzEeX dFWqin sc-jffHpj fqzhkP"><div class="redoc-json"><code><button class="collapser" aria-label="collapse"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable "><span class="property token string">"ip"</span>: <span class="token string">&quot;string&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable "><span class="property token string">"country"</span>: <span class="token string">&quot;string&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable "><span class="property token string">"city"</span>: <span class="token string">&quot;string&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable "><span class="property token string">"postal"</span>: <span class="token string">&quot;string&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable "><span class="property token string">"region"</span>: <span class="token string">&quot;string&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable "><span class="property token string">"timezone"</span>: <span class="token string">&quot;string&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable "><span class="property token string">"hostname"</span>: <span class="token string">&quot;string&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable "><span class="property token string">"loc"</span>: <span class="token string">&quot;string&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable "><span class="property token string">"org"</span>: <span class="token string">&quot;string&quot;</span></div></li></ul><span class="token punctuation">}</span></code></div></div></div></div></div></div></div></div></div></div></div></div><div class="sc-cKRKFl gBTuHc"></div></div></div>
390
390
  <script>
391
- const __redoc_state = {"menu":{"activeItemIdx":-1},"spec":{"data":{"info":{"title":"Mihari API","version":"1.0"},"openapi":"3.0.0","paths":{"/api/alerts":{"get":{"summary":"Get alerts","tags":["alerts"],"parameters":[{"in":"query","name":"page","schema":{"type":"integer","default":0},"required":false},{"in":"query","name":"artifact","schema":{"type":"string"},"required":false},{"in":"query","name":"description","schema":{"type":"string"},"required":false},{"in":"query","name":"source","schema":{"type":"string"},"required":false},{"in":"query","name":"tag","schema":{"type":"string"},"required":false},{"in":"query","name":"title","schema":{"type":"string"},"required":false},{"in":"query","name":"toAt","schema":{"type":"string"},"required":false},{"in":"query","name":"fromAt","schema":{"type":"string"},"required":false}],"responses":{"200":{"description":"A list of matched alerts","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AlertSearchResults"}}}}}}},"/api/alerts/{id}":{"delete":{"summary":"Delete an alert","tags":["alerts"],"parameters":[{"in":"path","name":"id","schema":{"type":"integer"},"required":true}],"responses":{"204":{"description":"An alert is deleted"}}}},"/api/tags/":{"get":{"summary":"Get tags","tags":["tags"],"responses":{"200":{"description":"A list of tags","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Tags"}}}}}}},"/api/tags/{name}":{"delete":{"summary":"Delete a tag","tags":["tags"],"parameters":[{"in":"path","name":"name","schema":{"type":"string"},"required":true}],"responses":{"204":{"description":"A tag is deleted"}}}},"/api/sources":{"get":{"summary":"Get sources","tags":["sources"],"responses":{"200":{"description":"A list of sources","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Sources"}}}}}}},"/api/artifacts/{id}":{"get":{"summary":"Get an artifact","tags":["artifacts"],"parameters":[{"in":"path","name":"id","schema":{"type":"integer"},"required":true}],"responses":{"200":{"description":"An artifact","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ArtifactWithRelations"}}}}}},"delete":{"summary":"Delete an artifact","tags":["artifacts"],"parameters":[{"in":"path","name":"id","schema":{"type":"integer"},"required":true}],"responses":{"204":{"description":"An artifact is deleted"}}}},"/api/artifacts/{id}/enrich":{"get":{"summary":"Enrich an artifact","tags":["artifacts"],"parameters":[{"in":"path","name":"id","schema":{"type":"integer"},"required":true}],"responses":{"201":{"description":"An artifact is enriched"}}}},"/api/config":{"get":{"summary":"Get a config","tags":["config"],"responses":{"200":{"description":"A dictionary of configuration items","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Config"}}}}}}},"/api/command":{"post":{"summary":"Run a command","tags":["command"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CommandRequest"}}}},"responses":{"200":{"description":"A result of a command","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CommandResult"}}}}}}},"/api/analyzer":{"post":{"summary":"Run an analyzer","tags":["analyzers"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AnalyzerRequest"}}}},"responses":{"201":{"description":"OK"}}}},"/api/ip_addresses/{ip}":{"get":{"summary":"Get an IP address information","tags":["ip addresses"],"parameters":[{"in":"path","name":"ip","schema":{"type":"string"},"required":true}],"responses":{"200":{"description":"An IP address information","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IPInfo"}}}}}}}},"components":{"schemas":{"Tag":{"type":"object","properties":{"id":{"type":"integer"},"name":{"type":"string"}}},"Tags":{"type":"array","items":{"allOf":[{"$ref":"#/components/schemas/Tag"}]}},"Sources":{"type":"array","items":{"allOf":[{"type":"string"}]}},"DnsRecord":{"type":"object","properties":{"resource":{"type":"string"},"value":{"type":"string"}}},"WhoisRecord":{"type":"object","properties":{"domain":{"type":"string"},"createdOn":{"type":"string","nullable":true},"updatedOn":{"type":"string","nullable":true},"expiresOn":{"type":"string","nullable":true},"registrar":{"type":"object","nullable":true},"contacts":{"type":"array","items":{"type":"object"}}}},"Geolocation":{"type":"object","properties":{"country":{"type":"string"},"countryCode":{"type":"string","nullable":true}}},"AutonomousSystem":{"type":"object","properties":{"asn":{"type":"integer"}}},"Artifact":{"type":"object","properties":{"id":{"type":"integer"},"data":{"type":"string"},"dataType":{"type":"string"},"source":{"type":"string","nullable":true}}},"ArtifactWithRelations":{"allOf":[{"$ref":"#/components/schemas/Artifact"},{"type":"object","properties":{"tags":{"type":"array","items":{"type":"string"}},"reverseDnsNames":{"type":"array","items":{"type":"string"},"nullable":true},"autonomousSystem":{"$ref":"#/components/schemas/AutonomousSystem","nullable":true},"geolocation":{"$ref":"#/components/schemas/Geolocation","nullable":true},"whoisRecord":{"$ref":"#/components/schemas/WhoisRecord","nullable":true},"dnsRecords":{"type":"array","items":{"allOf":[{"$ref":"#/components/schemas/DnsRecord"}]},"nullable":true}}}]},"Alert":{"type":"object","properties":{"id":{"type":"integer"},"title":{"type":"string"},"description":{"type":"string"},"source":{"type":"string"},"createdAt":{"type":"string"},"tags":{"type":"array","items":{"allOf":[{"$ref":"#/components/schemas/Tag"}]}},"artifacts":{"type":"array","items":{"allOf":[{"$ref":"#/components/schemas/Artifact"}]}}}},"AlertSearchResults":{"type":"object","properties":{"alerts":{"type":"array","items":{"allOf":[{"$ref":"#/components/schemas/Alert"}]}},"currentPage":{"type":"integer"},"pageSize":{"type":"integer"},"total":{"type":"integer"}}},"ConfigItemValue":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"}}},"ConfigItem":{"type":"object","properties":{"isConfigured":{"type":"boolean"},"type":{"type":"string"},"values":{"type":"array","items":{"allOf":[{"$ref":"#/components/schemas/ConfigItemValue"}]}}}},"Config":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/ConfigItem"}},"CommandRequest":{"type":"object","properties":{"command":{"type":"string"}}},"CommandResult":{"type":"object","properties":{"output":{"type":"string"},"success":{"type":"boolean"}}},"AnalyzerRequest":{"type":"object","properties":{"title":{"type":"string"},"description":{"type":"string"},"source":{"type":"string"},"artifacts":{"type":"string"},"tags":{"type":"array","items":{"type":"string"}},"ignoreOldArtifacts":{"type":"boolean","default":false},"ignoreThreshold":{"type":"integer","default":0}},"required":["title","description","source","artifacts"]},"IPInfo":{"type":"object","properties":{"ip":{"type":"string"},"country":{"type":"string"},"city":{"type":"string"},"postal":{"type":"string"},"region":{"type":"string"},"timezone":{"type":"string"},"hostname":{"type":"string"},"loc":{"type":"string"},"org":{"type":"string"}}}}}}},"searchIndex":{"store":["tag/alerts","tag/alerts/paths/~1api~1alerts/get","tag/alerts/paths/~1api~1alerts~1{id}/delete","tag/tags","tag/tags/paths/~1api~1tags~1/get","tag/tags/paths/~1api~1tags~1{name}/delete","tag/sources","tag/sources/paths/~1api~1sources/get","tag/artifacts","tag/artifacts/paths/~1api~1artifacts~1{id}/get","tag/artifacts/paths/~1api~1artifacts~1{id}/delete","tag/artifacts/paths/~1api~1artifacts~1{id}~1enrich/get","tag/config","tag/config/paths/~1api~1config/get","tag/command","tag/command/paths/~1api~1command/post","tag/analyzers","tag/analyzers/paths/~1api~1analyzer/post","tag/ip-addresses","tag/ip-addresses/paths/~1api~1ip_addresses~1{ip}/get"],"index":{"version":"2.3.9","fields":["title","description"],"fieldVectors":[["title/0",[0,2.052]],["description/0",[]],["title/1",[0,2.052]],["description/1",[]],["title/2",[0,1.551,1,1.551]],["description/2",[]],["title/3",[2,2.052]],["description/3",[]],["title/4",[2,2.052]],["description/4",[]],["title/5",[1,1.551,2,1.551]],["description/5",[]],["title/6",[3,2.438]],["description/6",[]],["title/7",[3,2.438]],["description/7",[]],["title/8",[4,1.764]],["description/8",[]],["title/9",[4,1.764]],["description/9",[]],["title/10",[1,1.551,4,1.334]],["description/10",[]],["title/11",[4,1.334,5,2.285]],["description/11",[]],["title/12",[6,2.438]],["description/12",[]],["title/13",[6,2.438]],["description/13",[]],["title/14",[7,2.438]],["description/14",[]],["title/15",[7,1.842,8,1.842]],["description/15",[]],["title/16",[9,2.438]],["description/16",[]],["title/17",[8,1.842,9,1.842]],["description/17",[]],["title/18",[10,1.842,11,1.842]],["description/18",[]],["title/19",[10,1.481,11,1.481,12,1.836]],["description/19",[]]],"invertedIndex":[["address",{"_index":11,"title":{"18":{},"19":{}},"description":{}}],["alert",{"_index":0,"title":{"0":{},"1":{},"2":{}},"description":{}}],["analyz",{"_index":9,"title":{"16":{},"17":{}},"description":{}}],["artifact",{"_index":4,"title":{"8":{},"9":{},"10":{},"11":{}},"description":{}}],["command",{"_index":7,"title":{"14":{},"15":{}},"description":{}}],["config",{"_index":6,"title":{"12":{},"13":{}},"description":{}}],["delet",{"_index":1,"title":{"2":{},"5":{},"10":{}},"description":{}}],["enrich",{"_index":5,"title":{"11":{}},"description":{}}],["inform",{"_index":12,"title":{"19":{}},"description":{}}],["ip",{"_index":10,"title":{"18":{},"19":{}},"description":{}}],["run",{"_index":8,"title":{"15":{},"17":{}},"description":{}}],["sourc",{"_index":3,"title":{"6":{},"7":{}},"description":{}}],["tag",{"_index":2,"title":{"3":{},"4":{},"5":{}},"description":{}}]],"pipeline":[]}},"options":{}};
391
+ const __redoc_state = {"menu":{"activeItemIdx":-1},"spec":{"data":{"info":{"title":"Mihari API","version":"1.0"},"openapi":"3.0.0","paths":{"/api/alerts":{"get":{"summary":"Get alerts","tags":["alerts"],"parameters":[{"in":"query","name":"page","schema":{"type":"integer","default":0},"required":false},{"in":"query","name":"artifact","schema":{"type":"string"},"required":false},{"in":"query","name":"description","schema":{"type":"string"},"required":false},{"in":"query","name":"source","schema":{"type":"string"},"required":false},{"in":"query","name":"tag","schema":{"type":"string"},"required":false},{"in":"query","name":"title","schema":{"type":"string"},"required":false},{"in":"query","name":"toAt","schema":{"type":"string"},"required":false},{"in":"query","name":"fromAt","schema":{"type":"string"},"required":false},{"in":"query","name":"asn","schema":{"type":"integer"},"required":false},{"in":"query","name":"dnsRecord","schema":{"type":"string"},"required":false},{"in":"query","name":"reverseDnsName","schema":{"type":"string"},"required":false}],"responses":{"200":{"description":"A list of matched alerts","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AlertSearchResults"}}}}}}},"/api/alerts/{id}":{"delete":{"summary":"Delete an alert","tags":["alerts"],"parameters":[{"in":"path","name":"id","schema":{"type":"integer"},"required":true}],"responses":{"204":{"description":"An alert is deleted"}}}},"/api/tags/":{"get":{"summary":"Get tags","tags":["tags"],"responses":{"200":{"description":"A list of tags","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Tags"}}}}}}},"/api/tags/{name}":{"delete":{"summary":"Delete a tag","tags":["tags"],"parameters":[{"in":"path","name":"name","schema":{"type":"string"},"required":true}],"responses":{"204":{"description":"A tag is deleted"}}}},"/api/sources":{"get":{"summary":"Get sources","tags":["sources"],"responses":{"200":{"description":"A list of sources","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Sources"}}}}}}},"/api/artifacts/{id}":{"get":{"summary":"Get an artifact","tags":["artifacts"],"parameters":[{"in":"path","name":"id","schema":{"type":"integer"},"required":true}],"responses":{"200":{"description":"An artifact","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ArtifactWithRelations"}}}}}},"delete":{"summary":"Delete an artifact","tags":["artifacts"],"parameters":[{"in":"path","name":"id","schema":{"type":"integer"},"required":true}],"responses":{"204":{"description":"An artifact is deleted"}}}},"/api/artifacts/{id}/enrich":{"get":{"summary":"Enrich an artifact","tags":["artifacts"],"parameters":[{"in":"path","name":"id","schema":{"type":"integer"},"required":true}],"responses":{"201":{"description":"An artifact is enriched"}}}},"/api/config":{"get":{"summary":"Get a config","tags":["config"],"responses":{"200":{"description":"A dictionary of configuration items","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Config"}}}}}}},"/api/command":{"post":{"summary":"Run a command","tags":["command"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CommandRequest"}}}},"responses":{"200":{"description":"A result of a command","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CommandResult"}}}}}}},"/api/analyzer":{"post":{"summary":"Run an analyzer","tags":["analyzers"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AnalyzerRequest"}}}},"responses":{"201":{"description":"OK"}}}},"/api/ip_addresses/{ip}":{"get":{"summary":"Get an IP address information","tags":["ip addresses"],"parameters":[{"in":"path","name":"ip","schema":{"type":"string"},"required":true}],"responses":{"200":{"description":"An IP address information","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IPInfo"}}}}}}}},"components":{"schemas":{"Tag":{"type":"object","properties":{"id":{"type":"integer"},"name":{"type":"string"}}},"Tags":{"type":"array","items":{"allOf":[{"$ref":"#/components/schemas/Tag"}]}},"Sources":{"type":"array","items":{"allOf":[{"type":"string"}]}},"DnsRecord":{"type":"object","properties":{"resource":{"type":"string"},"value":{"type":"string"}}},"WhoisRecord":{"type":"object","properties":{"domain":{"type":"string"},"createdOn":{"type":"string","nullable":true},"updatedOn":{"type":"string","nullable":true},"expiresOn":{"type":"string","nullable":true},"registrar":{"type":"object","nullable":true},"contacts":{"type":"array","items":{"type":"object"}}}},"Geolocation":{"type":"object","properties":{"country":{"type":"string"},"countryCode":{"type":"string","nullable":true}}},"AutonomousSystem":{"type":"object","properties":{"asn":{"type":"integer"}}},"Artifact":{"type":"object","properties":{"id":{"type":"integer"},"data":{"type":"string"},"dataType":{"type":"string"},"source":{"type":"string","nullable":true}}},"ArtifactWithRelations":{"allOf":[{"$ref":"#/components/schemas/Artifact"},{"type":"object","properties":{"tags":{"type":"array","items":{"type":"string"}},"reverseDnsNames":{"type":"array","items":{"type":"string"},"nullable":true},"autonomousSystem":{"$ref":"#/components/schemas/AutonomousSystem","nullable":true},"geolocation":{"$ref":"#/components/schemas/Geolocation","nullable":true},"whoisRecord":{"$ref":"#/components/schemas/WhoisRecord","nullable":true},"dnsRecords":{"type":"array","items":{"allOf":[{"$ref":"#/components/schemas/DnsRecord"}]},"nullable":true}}}]},"Alert":{"type":"object","properties":{"id":{"type":"integer"},"title":{"type":"string"},"description":{"type":"string"},"source":{"type":"string"},"createdAt":{"type":"string"},"tags":{"type":"array","items":{"allOf":[{"$ref":"#/components/schemas/Tag"}]}},"artifacts":{"type":"array","items":{"allOf":[{"$ref":"#/components/schemas/Artifact"}]}}}},"AlertSearchResults":{"type":"object","properties":{"alerts":{"type":"array","items":{"allOf":[{"$ref":"#/components/schemas/Alert"}]}},"currentPage":{"type":"integer"},"pageSize":{"type":"integer"},"total":{"type":"integer"}}},"ConfigItemValue":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"}}},"ConfigItem":{"type":"object","properties":{"isConfigured":{"type":"boolean"},"type":{"type":"string"},"values":{"type":"array","items":{"allOf":[{"$ref":"#/components/schemas/ConfigItemValue"}]}}}},"Config":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/ConfigItem"}},"CommandRequest":{"type":"object","properties":{"command":{"type":"string"}}},"CommandResult":{"type":"object","properties":{"output":{"type":"string"},"success":{"type":"boolean"}}},"AnalyzerRequest":{"type":"object","properties":{"title":{"type":"string"},"description":{"type":"string"},"source":{"type":"string"},"artifacts":{"type":"string"},"tags":{"type":"array","items":{"type":"string"}},"ignoreOldArtifacts":{"type":"boolean","default":false},"ignoreThreshold":{"type":"integer","default":0}},"required":["title","description","source","artifacts"]},"IPInfo":{"type":"object","properties":{"ip":{"type":"string"},"country":{"type":"string"},"city":{"type":"string"},"postal":{"type":"string"},"region":{"type":"string"},"timezone":{"type":"string"},"hostname":{"type":"string"},"loc":{"type":"string"},"org":{"type":"string"}}}}}}},"searchIndex":{"store":["tag/alerts","tag/alerts/paths/~1api~1alerts/get","tag/alerts/paths/~1api~1alerts~1{id}/delete","tag/tags","tag/tags/paths/~1api~1tags~1/get","tag/tags/paths/~1api~1tags~1{name}/delete","tag/sources","tag/sources/paths/~1api~1sources/get","tag/artifacts","tag/artifacts/paths/~1api~1artifacts~1{id}/get","tag/artifacts/paths/~1api~1artifacts~1{id}/delete","tag/artifacts/paths/~1api~1artifacts~1{id}~1enrich/get","tag/config","tag/config/paths/~1api~1config/get","tag/command","tag/command/paths/~1api~1command/post","tag/analyzers","tag/analyzers/paths/~1api~1analyzer/post","tag/ip-addresses","tag/ip-addresses/paths/~1api~1ip_addresses~1{ip}/get"],"index":{"version":"2.3.9","fields":["title","description"],"fieldVectors":[["title/0",[0,2.052]],["description/0",[]],["title/1",[0,2.052]],["description/1",[]],["title/2",[0,1.551,1,1.551]],["description/2",[]],["title/3",[2,2.052]],["description/3",[]],["title/4",[2,2.052]],["description/4",[]],["title/5",[1,1.551,2,1.551]],["description/5",[]],["title/6",[3,2.438]],["description/6",[]],["title/7",[3,2.438]],["description/7",[]],["title/8",[4,1.764]],["description/8",[]],["title/9",[4,1.764]],["description/9",[]],["title/10",[1,1.551,4,1.334]],["description/10",[]],["title/11",[4,1.334,5,2.285]],["description/11",[]],["title/12",[6,2.438]],["description/12",[]],["title/13",[6,2.438]],["description/13",[]],["title/14",[7,2.438]],["description/14",[]],["title/15",[7,1.842,8,1.842]],["description/15",[]],["title/16",[9,2.438]],["description/16",[]],["title/17",[8,1.842,9,1.842]],["description/17",[]],["title/18",[10,1.842,11,1.842]],["description/18",[]],["title/19",[10,1.481,11,1.481,12,1.836]],["description/19",[]]],"invertedIndex":[["address",{"_index":11,"title":{"18":{},"19":{}},"description":{}}],["alert",{"_index":0,"title":{"0":{},"1":{},"2":{}},"description":{}}],["analyz",{"_index":9,"title":{"16":{},"17":{}},"description":{}}],["artifact",{"_index":4,"title":{"8":{},"9":{},"10":{},"11":{}},"description":{}}],["command",{"_index":7,"title":{"14":{},"15":{}},"description":{}}],["config",{"_index":6,"title":{"12":{},"13":{}},"description":{}}],["delet",{"_index":1,"title":{"2":{},"5":{},"10":{}},"description":{}}],["enrich",{"_index":5,"title":{"11":{}},"description":{}}],["inform",{"_index":12,"title":{"19":{}},"description":{}}],["ip",{"_index":10,"title":{"18":{},"19":{}},"description":{}}],["run",{"_index":8,"title":{"15":{},"17":{}},"description":{}}],["sourc",{"_index":3,"title":{"6":{},"7":{}},"description":{}}],["tag",{"_index":2,"title":{"3":{},"4":{},"5":{}},"description":{}}]],"pipeline":[]}},"options":{}};
392
392
 
393
393
  var container = document.getElementById('redoc');
394
394
  Redoc.hydrate(__redoc_state, container);