Class: Hachi::API

Inherits:
Object
  • Object
show all
Extended by:
Forwardable
Defined in:
lib/hachi/api.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(api_endpoint: ENV.fetch("THEHIVE_API_ENDPOINT", nil), api_key: ENV.fetch("THEHIVE_API_KEY", nil), api_version: ENV.fetch("THEHIVE_API_VERSION", nil)) ⇒ API

Returns a new instance of API.

Parameters:

  • api_endpoint (String, nil) (defaults to: ENV.fetch("THEHIVE_API_ENDPOINT", nil))

    TheHive API endpoint

  • api_key (String, nil) (defaults to: ENV.fetch("THEHIVE_API_KEY", nil))

    TheHive API key

  • api_version (String, nil) (defaults to: ENV.fetch("THEHIVE_API_VERSION", nil))

    TheHive API version

Raises:

  • (ArgumentError)

    When given or an empty endpoint or key



25
26
27
28
29
30
31
32
33
34
35
# File 'lib/hachi/api.rb', line 25

def initialize(api_endpoint: ENV.fetch("THEHIVE_API_ENDPOINT", nil), api_key: ENV.fetch("THEHIVE_API_KEY", nil), api_version: ENV.fetch("THEHIVE_API_VERSION", nil))
  @api_endpoint = api_endpoint
  raise ArgumentError, "api_endpoint argument is required" unless api_endpoint

  @api_key = api_key
  raise ArgumentError, "api_key argument is required" unless api_key

  @api_version = api_version

  @base = Clients::Base.new(api_endpoint: api_endpoint, api_key: api_key, api_version: api_version)
end

Instance Attribute Details

#api_endpointString (readonly)

Returns TheHive API endpoint.

Returns:

  • (String)

    TheHive API endpoint



10
11
12
# File 'lib/hachi/api.rb', line 10

def api_endpoint
  @api_endpoint
end

#api_keyString (readonly)

Returns TheHive API key.

Returns:

  • (String)

    TheHive API key



13
14
15
# File 'lib/hachi/api.rb', line 13

def api_key
  @api_key
end

#api_versionString? (readonly)

Returns TheHive API version.

Returns:

  • (String, nil)

    TheHive API version



16
17
18
# File 'lib/hachi/api.rb', line 16

def api_version
  @api_version
end

Instance Method Details

#alertClients::Alert

Alert API endpoint client

Returns:



44
45
46
# File 'lib/hachi/api.rb', line 44

def alert
  @alert ||= Clients::Alert.new(api_endpoint: api_endpoint, api_key: api_key, api_version: api_version)
end

#artifactClients::Artifact

Artifact API endpoint client

Returns:



53
54
55
# File 'lib/hachi/api.rb', line 53

def artifact
  @artifact ||= Clients::Artifact.new(api_endpoint: api_endpoint, api_key: api_key, api_version: api_version)
end

#caseClients::Case

Case API endpoint client

Returns:



62
63
64
# File 'lib/hachi/api.rb', line 62

def case
  @case ||= Clients::Case.new(api_endpoint: api_endpoint, api_key: api_key, api_version: api_version)
end

#observableClients::Observable

Observable API endpoint client

Returns:



80
81
82
# File 'lib/hachi/api.rb', line 80

def observable
  @observable ||= Clients::Observable.new(api_endpoint: api_endpoint, api_key: api_key, api_version: api_version)
end

#queryClients::Query

Query API endpoint client

Returns:



89
90
91
# File 'lib/hachi/api.rb', line 89

def query
  @query ||= Clients::Query.new(api_endpoint: api_endpoint, api_key: api_key, api_version: api_version)
end

#userClients::User

User API endpoint client

Returns:



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

def user
  @user ||= Clients::User.new(api_endpoint: api_endpoint, api_key: api_key, api_version: api_version)
end