Class: Smplkit::Audit::ResourceTypes

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

Overview

client.audit.resource_types.list — distinct resource_type slugs seen for the account.

Backed by a maintain-by-write side table (ADR-047 §2.5), so the response time is independent of how many years of events the account has accumulated. Sorted alphabetically; offset pagination (page_number / page_size) per ADR-014.

Instance Method Summary collapse

Constructor Details

#initialize(api) ⇒ ResourceTypes

Returns a new instance of ResourceTypes.



13
14
15
# File 'lib/smplkit/audit/resource_types.rb', line 13

def initialize(api)
  @api = api
end

Instance Method Details

#list(page_number: nil, page_size: nil, meta_total: nil, environments: nil) ⇒ Object

environments is an optional array of environment keys (and/or the reserved “smplkit” control-plane bucket) used to scope the read; the values are comma-joined into filter[environment]. Omitting it (or passing an empty array) leaves the filter unset — identical to the prior behavior on the wire.



22
23
24
25
26
27
28
29
30
31
32
33
# File 'lib/smplkit/audit/resource_types.rb', line 22

def list(page_number: nil, page_size: nil, meta_total: nil, environments: nil)
  opts = {}
  opts[:page_number] = page_number if page_number
  opts[:page_size] = page_size if page_size
  opts[:meta_total] = meta_total unless meta_total.nil?
  joined_environments = Smplkit::Audit.join_environments(environments)
  opts[:filter_environment] = joined_environments if joined_environments

  resp = Smplkit::Audit.call_api { @api.list_resource_types(opts) }
  rows = (resp.data || []).map { |r| ResourceType.from_resource(r) }
  ResourceTypeListPage.new(rows, Smplkit::Audit.extract_pagination(resp.meta))
end