Class: Smplkit::Audit::Forwarders

Inherits:
Object
  • Object
show all
Defined in:
lib/smplkit/audit/forwarders.rb

Overview

SIEM streaming forwarders for the authenticated account.

Pro tier only — every method here raises a wrapped 402 SmplkitGeneratedClient::Audit::ApiError on lower tiers.

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(api) ⇒ Forwarders

Returns a new instance of Forwarders.



12
13
14
15
16
# File 'lib/smplkit/audit/forwarders.rb', line 12

def initialize(api)
  @api = api
  @deliveries = ForwarderDeliveries.new(api)
  @actions = ForwarderActions.new(api)
end

Instance Attribute Details

#actionsObject (readonly)

Returns the value of attribute actions.



10
11
12
# File 'lib/smplkit/audit/forwarders.rb', line 10

def actions
  @actions
end

#deliveriesObject (readonly)

Returns the value of attribute deliveries.



10
11
12
# File 'lib/smplkit/audit/forwarders.rb', line 10

def deliveries
  @deliveries
end

Class Method Details

.next_cursor(link) ⇒ Object



53
54
55
56
57
58
59
60
61
62
# File 'lib/smplkit/audit/forwarders.rb', line 53

def self.next_cursor(link)
  return nil unless link.is_a?(String)

  idx = link.index("page[after]=")
  return nil if idx.nil?

  token = link[(idx + "page[after]=".length)..]
  amp = token.index("&")
  amp ? token[0...amp] : token
end

Instance Method Details

#create(name:, forwarder_type:, http:, enabled: true, filter: nil, transform: nil, data: nil) ⇒ Object



18
19
20
21
22
23
# File 'lib/smplkit/audit/forwarders.rb', line 18

def create(name:, forwarder_type:, http:, enabled: true,
           filter: nil, transform: nil, data: nil)
  body = wrap_forwarder(nil, name, forwarder_type, http, enabled, filter, transform, data)
  resp = @api.create_forwarder(body)
  Forwarder.from_resource(resp.data)
end

#delete(forwarder_id) ⇒ Object



48
49
50
51
# File 'lib/smplkit/audit/forwarders.rb', line 48

def delete(forwarder_id)
  @api.delete_forwarder(forwarder_id)
  nil
end

#get(forwarder_id) ⇒ Object



36
37
38
39
# File 'lib/smplkit/audit/forwarders.rb', line 36

def get(forwarder_id)
  resp = @api.get_forwarder(forwarder_id)
  Forwarder.from_resource(resp.data)
end

#list(forwarder_type: nil, enabled: nil, page_size: nil, page_after: nil) ⇒ Object



25
26
27
28
29
30
31
32
33
34
# File 'lib/smplkit/audit/forwarders.rb', line 25

def list(forwarder_type: nil, enabled: nil, page_size: nil, page_after: nil)
  opts = {}
  opts[:filter_forwarder_type] = forwarder_type if forwarder_type
  opts[:filter_enabled] = enabled unless enabled.nil?
  opts[:page_size] = page_size if page_size
  opts[:page_after] = page_after if page_after
  resp = @api.list_forwarders(opts)
  forwarders = (resp.data || []).map { |r| Forwarder.from_resource(r) }
  ListForwardersPage.new(forwarders, Forwarders.next_cursor(resp.links&._next))
end

#update(forwarder_id, name:, forwarder_type:, http:, enabled: true, filter: nil, transform: nil, data: nil) ⇒ Object



41
42
43
44
45
46
# File 'lib/smplkit/audit/forwarders.rb', line 41

def update(forwarder_id, name:, forwarder_type:, http:, enabled: true,
           filter: nil, transform: nil, data: nil)
  body = wrap_forwarder(forwarder_id, name, forwarder_type, http, enabled, filter, transform, data)
  resp = @api.update_forwarder(forwarder_id, body)
  Forwarder.from_resource(resp.data)
end