Class: Smplkit::Audit::ForwardersClient
- Inherits:
-
Object
- Object
- Smplkit::Audit::ForwardersClient
- Defined in:
- lib/smplkit/audit/forwarders.rb
Overview
Surface for client.audit.forwarders.* — manage the customer’s configured SIEM forwarders.
The active-record entry point is #new: instantiate a draft, mutate fields, then call Smplkit::Audit::Forwarder#save. The client exposes #list, #get, and #delete directly; the _create_forwarder / _update_forwarder helpers are invoked by Smplkit::Audit::Forwarder#save.
Instance Method Summary collapse
- #_create_forwarder(forwarder) ⇒ Object
-
#_update_forwarder(forwarder) ⇒ Object
Header values come back in plaintext on the GET path, so a fetched forwarder round-trips through this full-replace PUT with its header values intact — no need to re-enter secrets.
-
#delete(forwarder_id) ⇒ nil
Delete a forwarder.
-
#get(forwarder_id) ⇒ Smplkit::Audit::Forwarder
Fetch a single forwarder by id.
-
#initialize(api) ⇒ ForwardersClient
constructor
A new instance of ForwardersClient.
-
#list(forwarder_type: nil, page_number: nil, page_size: nil, meta_total: nil) ⇒ ForwarderListPage
List forwarders for the authenticated account.
-
#new(id, forwarder_type:, configuration:, name: nil, environments: nil, description: nil, forward_smplkit_events: false, filter: nil, transform: nil, transform_type: nil) ⇒ Smplkit::Audit::Forwarder
Construct an unsaved Forwarder bound to this client.
Constructor Details
#initialize(api) ⇒ ForwardersClient
Returns a new instance of ForwardersClient.
24 25 26 |
# File 'lib/smplkit/audit/forwarders.rb', line 24 def initialize(api) @api = api end |
Instance Method Details
#_create_forwarder(forwarder) ⇒ Object
140 141 142 143 144 145 146 147 |
# File 'lib/smplkit/audit/forwarders.rb', line 140 def _create_forwarder(forwarder) if forwarder.id.nil? || forwarder.id.empty? raise ArgumentError, "Forwarder.id is required on create (caller-supplied key)" end resp = Audit.call_api { @api.create_forwarder(build_create_body(forwarder)) } Forwarder.from_resource(resp.data, client: self) end |
#_update_forwarder(forwarder) ⇒ Object
Header values come back in plaintext on the GET path, so a fetched forwarder round-trips through this full-replace PUT with its header values intact — no need to re-enter secrets.
155 156 157 158 159 160 |
# File 'lib/smplkit/audit/forwarders.rb', line 155 def _update_forwarder(forwarder) raise ArgumentError, "cannot update a Forwarder with no id" if forwarder.id.nil? resp = Audit.call_api { @api.update_forwarder(forwarder.id, build_body(forwarder)) } Forwarder.from_resource(resp.data, client: self) end |
#delete(forwarder_id) ⇒ nil
Delete a forwarder.
133 134 135 136 |
# File 'lib/smplkit/audit/forwarders.rb', line 133 def delete(forwarder_id) Audit.call_api { @api.delete_forwarder(forwarder_id) } nil end |
#get(forwarder_id) ⇒ Smplkit::Audit::Forwarder
Fetch a single forwarder by id. The returned instance is bound to this client, so forwarder.save and forwarder.delete work. Header values come back in plaintext, so mutating the returned forwarder and calling save preserves them without re-entering secrets.
124 125 126 127 |
# File 'lib/smplkit/audit/forwarders.rb', line 124 def get(forwarder_id) resp = Audit.call_api { @api.get_forwarder(forwarder_id) } Forwarder.from_resource(resp.data, client: self) end |
#list(forwarder_type: nil, page_number: nil, page_size: nil, meta_total: nil) ⇒ ForwarderListPage
List forwarders for the authenticated account.
Offset paginated: pass page_number (1-based) and page_size (default 1000, max 1000).
104 105 106 107 108 109 110 111 112 113 114 |
# File 'lib/smplkit/audit/forwarders.rb', line 104 def list(forwarder_type: nil, page_number: nil, page_size: nil, meta_total: nil) opts = {} opts[:filter_forwarder_type] = ForwarderType.coerce(forwarder_type) if forwarder_type opts[:page_number] = page_number if page_number opts[:page_size] = page_size if page_size opts[:meta_total] = unless .nil? resp = Audit.call_api { @api.list_forwarders(opts) } forwarders = (resp.data || []).map { |r| Forwarder.from_resource(r, client: self) } ForwarderListPage.new(forwarders, Audit.extract_pagination(resp.)) end |
#new(id, forwarder_type:, configuration:, name: nil, environments: nil, description: nil, forward_smplkit_events: false, filter: nil, transform: nil, transform_type: nil) ⇒ Smplkit::Audit::Forwarder
Construct an unsaved Smplkit::Audit::Forwarder bound to this client. Call #save on the returned instance to persist.
69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 |
# File 'lib/smplkit/audit/forwarders.rb', line 69 def new(id, forwarder_type:, configuration:, name: nil, environments: nil, description: nil, forward_smplkit_events: false, filter: nil, transform: nil, transform_type: nil) Forwarder.send(:validate_transform_pair!, transform, transform_type) Forwarder.new( self, id: id, name: name || id, forwarder_type: forwarder_type, configuration: configuration, environments: normalize_environments(environments), description: description, forward_smplkit_events: forward_smplkit_events, filter: filter, transform: transform, transform_type: transform_type ) end |