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.



45
46
47
48
49
# File 'lib/smplkit/audit/forwarders.rb', line 45

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.



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

def actions
  @actions
end

#deliveriesObject (readonly)

Returns the value of attribute deliveries.



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

def deliveries
  @deliveries
end

Class Method Details

.next_cursor(link) ⇒ Object



88
89
90
91
92
93
94
95
96
97
# File 'lib/smplkit/audit/forwarders.rb', line 88

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



51
52
53
54
55
56
57
# File 'lib/smplkit/audit/forwarders.rb', line 51

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

#delete(forwarder_id) ⇒ Object



83
84
85
86
# File 'lib/smplkit/audit/forwarders.rb', line 83

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

#get(forwarder_id) ⇒ Object



70
71
72
73
# File 'lib/smplkit/audit/forwarders.rb', line 70

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



59
60
61
62
63
64
65
66
67
68
# File 'lib/smplkit/audit/forwarders.rb', line 59

def list(forwarder_type: nil, enabled: nil, page_size: nil, page_after: nil)
  opts = {}
  opts[:filter_forwarder_type] = ForwarderType.coerce(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



75
76
77
78
79
80
81
# File 'lib/smplkit/audit/forwarders.rb', line 75

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