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
138 139 140 141 142 143 144 145 |
# File 'lib/smplkit/audit/forwarders.rb', line 138 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.
153 154 155 156 157 158 |
# File 'lib/smplkit/audit/forwarders.rb', line 153 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.
131 132 133 134 |
# File 'lib/smplkit/audit/forwarders.rb', line 131 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.
122 123 124 125 |
# File 'lib/smplkit/audit/forwarders.rb', line 122 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).
102 103 104 105 106 107 108 109 110 111 112 |
# File 'lib/smplkit/audit/forwarders.rb', line 102 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.
67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 |
# File 'lib/smplkit/audit/forwarders.rb', line 67 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 |