Class: Hachi::Clients::Artifact

Inherits:
Base
  • Object
show all
Defined in:
lib/hachi/clients/artifact.rb

Instance Attribute Summary

Attributes inherited from Base

#api_endpoint, #api_key

Instance Method Summary collapse

Methods inherited from Base

#delete, #get, #initialize, #patch, #post

Constructor Details

This class inherits a constructor from Hachi::Clients::Base

Instance Method Details

#create(case_id, data:, data_type:, message: nil, tlp: nil, tags: nil) ⇒ Hash

Create an artifact

Parameters:

  • case_id (String)

    Artifact ID

  • data (String)
  • data_type (String)
  • message (String, nil) (defaults to: nil)
  • tlp (Integer, nil) (defaults to: nil)
  • tags (Array<String>, nil) (defaults to: nil)

Returns:

  • (Hash)


18
19
20
21
22
23
24
25
26
27
28
# File 'lib/hachi/clients/artifact.rb', line 18

def create(case_id, data:, data_type:, message: nil, tlp: nil, tags: nil)
  artifact = Models::Artifact.new(
    data: data,
    data_type: data_type,
    message: message,
    tlp: tlp,
    tags: tags,
  )

  post("/api/case/#{case_id}/artifact", json: artifact.payload) { |json| json }
end

#delete_by_id(id) ⇒ String

Delete an artifact

Parameters:

  • id (String)

    Artifact ID

Returns:

  • (String)


48
49
50
# File 'lib/hachi/clients/artifact.rb', line 48

def delete_by_id(id)
  delete("/api/case/artifact/#{id}") { |json| json }
end

#get_by_id(id) ⇒ Hash

Get an artifact

Parameters:

  • id (String)

    Artifact ID

Returns:

  • (Hash)


37
38
39
# File 'lib/hachi/clients/artifact.rb', line 37

def get_by_id(id)
  get("/api/case/artifact/#{id}") { |json| json }
end

#search(query, range: "all") ⇒ Array

Find artifacts

Parameters:

  • query (Hash)
  • range (String) (defaults to: "all")

Returns:

  • (Array)


60
61
62
# File 'lib/hachi/clients/artifact.rb', line 60

def search(query, range: "all")
  _search("/api/case/artifact/_search", query: query, range: range) { |json| json }
end

#similar(id) ⇒ Array

Get list of similar observables

Parameters:

  • id (String)

    Artifact ID

Returns:

  • (Array)


71
72
73
# File 'lib/hachi/clients/artifact.rb', line 71

def similar(id)
  get("/api/case/artifact/#{id}/similar") { |json| json }
end