mihari 3.8.1 → 3.9.0

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.
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);