smplkit 2.0.13 → 2.0.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/smplkit/_generated/app/lib/smplkit_app_client/api/account_api.rb +11 -11
- data/lib/smplkit/_generated/app/lib/smplkit_app_client/api/api_keys_api.rb +18 -18
- data/lib/smplkit/_generated/app/lib/smplkit_app_client/api/billing_api.rb +21 -21
- data/lib/smplkit/_generated/app/lib/smplkit_app_client/api/context_types_api.rb +18 -18
- data/lib/smplkit/_generated/app/lib/smplkit_app_client/api/contexts_api.rb +11 -11
- data/lib/smplkit/_generated/app/lib/smplkit_app_client/api/environments_api.rb +18 -18
- data/lib/smplkit/_generated/app/lib/smplkit_app_client/api/metrics_api.rb +2 -2
- data/lib/smplkit/_generated/app/lib/smplkit_app_client/api/services_api.rb +18 -18
- data/lib/smplkit/_generated/app/lib/smplkit_app_client/api/users_api.rb +18 -18
- data/lib/smplkit/_generated/app/lib/smplkit_app_client/models/account.rb +14 -31
- data/lib/smplkit/_generated/app/lib/smplkit_app_client/models/account_request.rb +165 -0
- data/lib/smplkit/_generated/app/lib/smplkit_app_client/models/account_resource.rb +1 -0
- data/lib/smplkit/_generated/app/lib/smplkit_app_client/models/account_response.rb +1 -0
- data/lib/smplkit/_generated/app/lib/smplkit_app_client/models/account_wipe_request.rb +3 -3
- data/lib/smplkit/_generated/app/lib/smplkit_app_client/models/add_payment_method_attributes.rb +3 -1
- data/lib/smplkit/_generated/app/lib/smplkit_app_client/models/add_payment_method_body.rb +1 -0
- data/lib/smplkit/_generated/app/lib/smplkit_app_client/models/add_payment_method_data.rb +1 -0
- data/lib/smplkit/_generated/app/lib/smplkit_app_client/models/api_key.rb +15 -16
- data/lib/smplkit/_generated/app/lib/smplkit_app_client/models/api_key_list_response.rb +1 -0
- data/lib/smplkit/_generated/app/lib/smplkit_app_client/models/api_key_request.rb +165 -0
- data/lib/smplkit/_generated/app/lib/smplkit_app_client/models/api_key_resource.rb +1 -0
- data/lib/smplkit/_generated/app/lib/smplkit_app_client/models/api_key_response.rb +1 -0
- data/lib/smplkit/_generated/app/lib/smplkit_app_client/models/auth_token_response.rb +3 -0
- data/lib/smplkit/_generated/app/lib/smplkit_app_client/models/context.rb +6 -3
- data/lib/smplkit/_generated/app/lib/smplkit_app_client/models/context_batch_response.rb +2 -0
- data/lib/smplkit/_generated/app/lib/smplkit_app_client/models/context_bulk_item.rb +4 -2
- data/lib/smplkit/_generated/app/lib/smplkit_app_client/models/context_bulk_register.rb +2 -0
- data/lib/smplkit/_generated/app/lib/smplkit_app_client/models/context_list_response.rb +1 -0
- data/lib/smplkit/_generated/app/lib/smplkit_app_client/models/context_request.rb +165 -0
- data/lib/smplkit/_generated/app/lib/smplkit_app_client/models/context_resource.rb +1 -0
- data/lib/smplkit/_generated/app/lib/smplkit_app_client/models/context_response.rb +1 -0
- data/lib/smplkit/_generated/app/lib/smplkit_app_client/models/context_type.rb +5 -2
- data/lib/smplkit/_generated/app/lib/smplkit_app_client/models/context_type_list_response.rb +1 -0
- data/lib/smplkit/_generated/app/lib/smplkit_app_client/models/context_type_request.rb +165 -0
- data/lib/smplkit/_generated/app/lib/smplkit_app_client/models/context_type_resource.rb +1 -0
- data/lib/smplkit/_generated/app/lib/smplkit_app_client/models/context_type_response.rb +1 -0
- data/lib/smplkit/_generated/app/lib/smplkit_app_client/models/create_subscription_attributes.rb +4 -0
- data/lib/smplkit/_generated/app/lib/smplkit_app_client/models/create_subscription_body.rb +1 -0
- data/lib/smplkit/_generated/app/lib/smplkit_app_client/models/create_subscription_data.rb +2 -0
- data/lib/smplkit/_generated/app/lib/smplkit_app_client/models/email.rb +3 -1
- data/lib/smplkit/_generated/app/lib/smplkit_app_client/models/email_resource.rb +1 -0
- data/lib/smplkit/_generated/app/lib/smplkit_app_client/models/email_response.rb +1 -0
- data/lib/smplkit/_generated/app/lib/smplkit_app_client/models/environment.rb +6 -0
- data/lib/smplkit/_generated/app/lib/smplkit_app_client/models/environment_list_response.rb +1 -0
- data/lib/smplkit/_generated/app/lib/smplkit_app_client/models/environment_request.rb +165 -0
- data/lib/smplkit/_generated/app/lib/smplkit_app_client/models/environment_resource.rb +1 -0
- data/lib/smplkit/_generated/app/lib/smplkit_app_client/models/environment_response.rb +1 -0
- data/lib/smplkit/_generated/app/lib/smplkit_app_client/models/invitation.rb +11 -0
- data/lib/smplkit/_generated/app/lib/smplkit_app_client/models/invitation_accept_request.rb +2 -0
- data/lib/smplkit/_generated/app/lib/smplkit_app_client/models/invitation_bulk_create_request.rb +2 -0
- data/lib/smplkit/_generated/app/lib/smplkit_app_client/models/invitation_create_item.rb +3 -0
- data/lib/smplkit/_generated/app/lib/smplkit_app_client/models/invitation_list_response.rb +1 -0
- data/lib/smplkit/_generated/app/lib/smplkit_app_client/models/invitation_resource.rb +1 -0
- data/lib/smplkit/_generated/app/lib/smplkit_app_client/models/invitation_response.rb +1 -0
- data/lib/smplkit/_generated/app/lib/smplkit_app_client/models/invoice.rb +13 -0
- data/lib/smplkit/_generated/app/lib/smplkit_app_client/models/invoice_list_response.rb +1 -0
- data/lib/smplkit/_generated/app/lib/smplkit_app_client/models/invoice_resource.rb +1 -0
- data/lib/smplkit/_generated/app/lib/smplkit_app_client/models/invoice_single_response.rb +1 -0
- data/lib/smplkit/_generated/app/lib/smplkit_app_client/models/limit_definition.rb +5 -0
- data/lib/smplkit/_generated/app/lib/smplkit_app_client/models/login_request.rb +3 -0
- data/lib/smplkit/_generated/app/lib/smplkit_app_client/models/metric_attributes.rb +7 -0
- data/lib/smplkit/_generated/app/lib/smplkit_app_client/models/metric_bulk_request.rb +2 -0
- data/lib/smplkit/_generated/app/lib/smplkit_app_client/models/metric_list_response.rb +1 -0
- data/lib/smplkit/_generated/app/lib/smplkit_app_client/models/metric_name_item.rb +3 -0
- data/lib/smplkit/_generated/app/lib/smplkit_app_client/models/metric_names_response.rb +1 -0
- data/lib/smplkit/_generated/app/lib/smplkit_app_client/models/metric_resource.rb +1 -0
- data/lib/smplkit/_generated/app/lib/smplkit_app_client/models/metric_rollup_attributes.rb +6 -0
- data/lib/smplkit/_generated/app/lib/smplkit_app_client/models/metric_rollup_list_response.rb +1 -0
- data/lib/smplkit/_generated/app/lib/smplkit_app_client/models/metric_rollup_resource.rb +1 -0
- data/lib/smplkit/_generated/app/lib/smplkit_app_client/models/next_tier_meta.rb +4 -0
- data/lib/smplkit/_generated/app/lib/smplkit_app_client/models/page_meta.rb +5 -4
- data/lib/smplkit/_generated/app/lib/smplkit_app_client/models/payment_method.rb +9 -1
- data/lib/smplkit/_generated/app/lib/smplkit_app_client/models/payment_method_list_response.rb +1 -0
- data/lib/smplkit/_generated/app/lib/smplkit_app_client/models/payment_method_request.rb +165 -0
- data/lib/smplkit/_generated/app/lib/smplkit_app_client/models/payment_method_resource.rb +1 -0
- data/lib/smplkit/_generated/app/lib/smplkit_app_client/models/payment_method_response.rb +1 -0
- data/lib/smplkit/_generated/app/lib/smplkit_app_client/models/plan.rb +4 -0
- data/lib/smplkit/_generated/app/lib/smplkit_app_client/models/plan_change_request.rb +2 -0
- data/lib/smplkit/_generated/app/lib/smplkit_app_client/models/plan_definition.rb +3 -0
- data/lib/smplkit/_generated/app/lib/smplkit_app_client/models/plan_list_response.rb +1 -0
- data/lib/smplkit/_generated/app/lib/smplkit_app_client/models/plan_resource.rb +1 -0
- data/lib/smplkit/_generated/app/lib/smplkit_app_client/models/product.rb +8 -0
- data/lib/smplkit/_generated/app/lib/smplkit_app_client/models/product_list_response.rb +1 -0
- data/lib/smplkit/_generated/app/lib/smplkit_app_client/models/product_resource.rb +1 -0
- data/lib/smplkit/_generated/app/lib/smplkit_app_client/models/register_request.rb +4 -1
- data/lib/smplkit/_generated/app/lib/smplkit_app_client/models/service.rb +4 -0
- data/lib/smplkit/_generated/app/lib/smplkit_app_client/models/service_list_response.rb +1 -0
- data/lib/smplkit/_generated/app/lib/smplkit_app_client/models/service_request.rb +165 -0
- data/lib/smplkit/_generated/app/lib/smplkit_app_client/models/service_resource.rb +1 -0
- data/lib/smplkit/_generated/app/lib/smplkit_app_client/models/service_response.rb +1 -0
- data/lib/smplkit/_generated/app/lib/smplkit_app_client/models/setup_intent_attributes.rb +2 -0
- data/lib/smplkit/_generated/app/lib/smplkit_app_client/models/setup_intent_response.rb +1 -0
- data/lib/smplkit/_generated/app/lib/smplkit_app_client/models/subscription_attributes.rb +8 -0
- data/lib/smplkit/_generated/app/lib/smplkit_app_client/models/subscription_list_meta.rb +6 -1
- data/lib/smplkit/_generated/app/lib/smplkit_app_client/models/subscription_list_response.rb +1 -0
- data/lib/smplkit/_generated/app/lib/smplkit_app_client/models/subscription_resource.rb +1 -0
- data/lib/smplkit/_generated/app/lib/smplkit_app_client/models/subscription_response.rb +1 -0
- data/lib/smplkit/_generated/app/lib/smplkit_app_client/models/user.rb +11 -21
- data/lib/smplkit/_generated/app/lib/smplkit_app_client/models/user_list_response.rb +1 -0
- data/lib/smplkit/_generated/app/lib/smplkit_app_client/models/user_request.rb +165 -0
- data/lib/smplkit/_generated/app/lib/smplkit_app_client/models/user_resource.rb +1 -0
- data/lib/smplkit/_generated/app/lib/smplkit_app_client/models/user_response.rb +1 -0
- data/lib/smplkit/_generated/app/lib/smplkit_app_client/models/value.rb +1 -0
- data/lib/smplkit/_generated/app/lib/smplkit_app_client/models/verify_email_request.rb +2 -0
- data/lib/smplkit/_generated/app/lib/smplkit_app_client.rb +8 -0
- data/lib/smplkit/_generated/app/spec/api/account_api_spec.rb +2 -2
- data/lib/smplkit/_generated/app/spec/api/api_keys_api_spec.rb +2 -2
- data/lib/smplkit/_generated/app/spec/api/billing_api_spec.rb +7 -7
- data/lib/smplkit/_generated/app/spec/api/context_types_api_spec.rb +2 -2
- data/lib/smplkit/_generated/app/spec/api/contexts_api_spec.rb +2 -2
- data/lib/smplkit/_generated/app/spec/api/environments_api_spec.rb +2 -2
- data/lib/smplkit/_generated/app/spec/api/metrics_api_spec.rb +1 -1
- data/lib/smplkit/_generated/app/spec/api/services_api_spec.rb +2 -2
- data/lib/smplkit/_generated/app/spec/api/users_api_spec.rb +2 -2
- data/lib/smplkit/_generated/app/spec/models/account_request_spec.rb +36 -0
- data/lib/smplkit/_generated/app/spec/models/api_key_request_spec.rb +36 -0
- data/lib/smplkit/_generated/app/spec/models/api_key_spec.rb +0 -6
- data/lib/smplkit/_generated/app/spec/models/context_request_spec.rb +36 -0
- data/lib/smplkit/_generated/app/spec/models/context_type_request_spec.rb +36 -0
- data/lib/smplkit/_generated/app/spec/models/environment_request_spec.rb +36 -0
- data/lib/smplkit/_generated/app/spec/models/payment_method_request_spec.rb +36 -0
- data/lib/smplkit/_generated/app/spec/models/service_request_spec.rb +36 -0
- data/lib/smplkit/_generated/app/spec/models/user_request_spec.rb +36 -0
- data/lib/smplkit/_generated/audit/lib/smplkit_audit_client/api/actions_api.rb +2 -69
- data/lib/smplkit/_generated/audit/lib/smplkit_audit_client/api/events_api.rb +17 -17
- data/lib/smplkit/_generated/audit/lib/smplkit_audit_client/api/forwarders_api.rb +36 -36
- data/lib/smplkit/_generated/audit/lib/smplkit_audit_client/api/functions_api.rb +2 -2
- data/lib/smplkit/_generated/audit/lib/smplkit_audit_client/api/resource_types_api.rb +2 -72
- data/lib/smplkit/_generated/audit/lib/smplkit_audit_client/api/usage_api.rb +4 -4
- data/lib/smplkit/_generated/audit/lib/smplkit_audit_client/models/event.rb +12 -2
- data/lib/smplkit/_generated/audit/lib/smplkit_audit_client/models/event_list_response.rb +1 -1
- data/lib/smplkit/_generated/audit/lib/smplkit_audit_client/models/event_request.rb +165 -0
- data/lib/smplkit/_generated/audit/lib/smplkit_audit_client/models/event_resource.rb +2 -18
- data/lib/smplkit/_generated/audit/lib/smplkit_audit_client/models/event_response.rb +1 -1
- data/lib/smplkit/_generated/audit/lib/smplkit_audit_client/models/forwarder.rb +17 -17
- data/lib/smplkit/_generated/audit/lib/smplkit_audit_client/models/forwarder_delivery.rb +11 -1
- data/lib/smplkit/_generated/audit/lib/smplkit_audit_client/models/forwarder_delivery_list_response.rb +1 -0
- data/lib/smplkit/_generated/audit/lib/smplkit_audit_client/models/forwarder_delivery_resource.rb +1 -0
- data/lib/smplkit/_generated/audit/lib/smplkit_audit_client/models/forwarder_delivery_response.rb +1 -0
- data/lib/smplkit/_generated/audit/lib/smplkit_audit_client/models/forwarder_http.rb +40 -1
- data/lib/smplkit/_generated/audit/lib/smplkit_audit_client/models/forwarder_list_response.rb +1 -0
- data/lib/smplkit/_generated/audit/lib/smplkit_audit_client/models/forwarder_request.rb +165 -0
- data/lib/smplkit/_generated/audit/lib/smplkit_audit_client/models/forwarder_resource.rb +2 -17
- data/lib/smplkit/_generated/audit/lib/smplkit_audit_client/models/forwarder_response.rb +1 -0
- data/lib/smplkit/_generated/audit/lib/smplkit_audit_client/models/http_header.rb +3 -1
- data/lib/smplkit/_generated/audit/lib/smplkit_audit_client/models/retry_failed_deliveries_summary.rb +4 -0
- data/lib/smplkit/_generated/audit/lib/smplkit_audit_client/models/test_forwarder_request.rb +41 -1
- data/lib/smplkit/_generated/audit/lib/smplkit_audit_client/models/test_forwarder_response.rb +7 -1
- data/lib/smplkit/_generated/audit/lib/smplkit_audit_client/models/usage_attributes.rb +4 -1
- data/lib/smplkit/_generated/audit/lib/smplkit_audit_client/models/wipe_response.rb +3 -0
- data/lib/smplkit/_generated/audit/lib/smplkit_audit_client/models/wipe_tables_summary.rb +7 -0
- data/lib/smplkit/_generated/audit/lib/smplkit_audit_client.rb +2 -0
- data/lib/smplkit/_generated/audit/spec/api/actions_api_spec.rb +1 -14
- data/lib/smplkit/_generated/audit/spec/api/events_api_spec.rb +5 -5
- data/lib/smplkit/_generated/audit/spec/api/forwarders_api_spec.rb +11 -11
- data/lib/smplkit/_generated/audit/spec/api/functions_api_spec.rb +1 -1
- data/lib/smplkit/_generated/audit/spec/api/resource_types_api_spec.rb +1 -15
- data/lib/smplkit/_generated/audit/spec/api/usage_api_spec.rb +2 -2
- data/lib/smplkit/_generated/audit/spec/models/event_request_spec.rb +36 -0
- data/lib/smplkit/_generated/audit/spec/models/forwarder_http_spec.rb +4 -0
- data/lib/smplkit/_generated/audit/spec/models/forwarder_request_spec.rb +36 -0
- data/lib/smplkit/_generated/audit/spec/models/forwarder_spec.rb +0 -6
- data/lib/smplkit/_generated/audit/spec/models/test_forwarder_request_spec.rb +4 -0
- data/lib/smplkit/audit/actions.rb +35 -0
- data/lib/smplkit/audit/client.rb +11 -9
- data/lib/smplkit/audit/events.rb +8 -45
- data/lib/smplkit/audit/models.rb +197 -0
- data/lib/smplkit/audit/resource_types.rb +30 -0
- data/lib/smplkit/errors.rb +5 -0
- data/lib/smplkit/management/audit.rb +111 -0
- data/lib/smplkit/management/client.rb +4 -1
- data/lib/smplkit.rb +7 -5
- metadata +25 -3
- data/lib/smplkit/audit/forwarders.rb +0 -282
- data/lib/smplkit/audit/functions.rb +0 -58
|
@@ -1,282 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module Smplkit
|
|
4
|
-
module Audit
|
|
5
|
-
# Public-facing enum for SIEM streaming destination types.
|
|
6
|
-
#
|
|
7
|
-
# Mirrors the +ForwarderType+ enum the audit OpenAPI spec emits
|
|
8
|
-
# (ADR-047 §2.12). Customers pass these constants — or any string
|
|
9
|
-
# in {VALUES} — to {Forwarders#create} / {Forwarders#update} /
|
|
10
|
-
# {Forwarders#list}. The wrapper validates membership before
|
|
11
|
-
# round-tripping to the wire.
|
|
12
|
-
module ForwarderType
|
|
13
|
-
HTTP = "HTTP"
|
|
14
|
-
DATADOG = "DATADOG"
|
|
15
|
-
SPLUNK_HEC = "SPLUNK_HEC"
|
|
16
|
-
SUMO_LOGIC = "SUMO_LOGIC"
|
|
17
|
-
NEW_RELIC = "NEW_RELIC"
|
|
18
|
-
HONEYCOMB = "HONEYCOMB"
|
|
19
|
-
ELASTIC = "ELASTIC"
|
|
20
|
-
|
|
21
|
-
# Every supported value, in spec order. Useful for membership
|
|
22
|
-
# checks, dropdown population, or test parametrization.
|
|
23
|
-
VALUES = [HTTP, DATADOG, SPLUNK_HEC, SUMO_LOGIC, NEW_RELIC, HONEYCOMB, ELASTIC].freeze
|
|
24
|
-
|
|
25
|
-
# Coerce +value+ to a known wire-format slug, or raise ArgumentError.
|
|
26
|
-
# Strings round-trip transparently; nil passes through.
|
|
27
|
-
def self.coerce(value)
|
|
28
|
-
return nil if value.nil?
|
|
29
|
-
|
|
30
|
-
s = value.to_s
|
|
31
|
-
return s if VALUES.include?(s)
|
|
32
|
-
|
|
33
|
-
raise ArgumentError,
|
|
34
|
-
"Unknown ForwarderType #{value.inspect}; expected one of #{VALUES.inspect}"
|
|
35
|
-
end
|
|
36
|
-
end
|
|
37
|
-
|
|
38
|
-
# SIEM streaming forwarders for the authenticated account.
|
|
39
|
-
#
|
|
40
|
-
# Pro tier only — every method here raises a wrapped 402
|
|
41
|
-
# +SmplkitGeneratedClient::Audit::ApiError+ on lower tiers.
|
|
42
|
-
class Forwarders
|
|
43
|
-
attr_reader :deliveries, :actions
|
|
44
|
-
|
|
45
|
-
def initialize(api)
|
|
46
|
-
@api = api
|
|
47
|
-
@deliveries = ForwarderDeliveries.new(api)
|
|
48
|
-
@actions = ForwarderActions.new(api)
|
|
49
|
-
end
|
|
50
|
-
|
|
51
|
-
def create(name:, forwarder_type:, http:, enabled: true,
|
|
52
|
-
filter: nil, transform: nil, data: nil)
|
|
53
|
-
body = wrap_forwarder(nil, name, ForwarderType.coerce(forwarder_type),
|
|
54
|
-
http, enabled, filter, transform, data)
|
|
55
|
-
resp = @api.create_forwarder(body)
|
|
56
|
-
Forwarder.from_resource(resp.data)
|
|
57
|
-
end
|
|
58
|
-
|
|
59
|
-
def list(forwarder_type: nil, enabled: nil, page_size: nil, page_after: nil)
|
|
60
|
-
opts = {}
|
|
61
|
-
opts[:filter_forwarder_type] = ForwarderType.coerce(forwarder_type) if forwarder_type
|
|
62
|
-
opts[:filter_enabled] = enabled unless enabled.nil?
|
|
63
|
-
opts[:page_size] = page_size if page_size
|
|
64
|
-
opts[:page_after] = page_after if page_after
|
|
65
|
-
resp = @api.list_forwarders(opts)
|
|
66
|
-
forwarders = (resp.data || []).map { |r| Forwarder.from_resource(r) }
|
|
67
|
-
ListForwardersPage.new(forwarders, Forwarders.next_cursor(resp.links&._next))
|
|
68
|
-
end
|
|
69
|
-
|
|
70
|
-
def get(forwarder_id)
|
|
71
|
-
resp = @api.get_forwarder(forwarder_id)
|
|
72
|
-
Forwarder.from_resource(resp.data)
|
|
73
|
-
end
|
|
74
|
-
|
|
75
|
-
def update(forwarder_id, name:, forwarder_type:, http:, enabled: true,
|
|
76
|
-
filter: nil, transform: nil, data: nil)
|
|
77
|
-
body = wrap_forwarder(forwarder_id, name, ForwarderType.coerce(forwarder_type),
|
|
78
|
-
http, enabled, filter, transform, data)
|
|
79
|
-
resp = @api.update_forwarder(forwarder_id, body)
|
|
80
|
-
Forwarder.from_resource(resp.data)
|
|
81
|
-
end
|
|
82
|
-
|
|
83
|
-
def delete(forwarder_id)
|
|
84
|
-
@api.delete_forwarder(forwarder_id)
|
|
85
|
-
nil
|
|
86
|
-
end
|
|
87
|
-
|
|
88
|
-
def self.next_cursor(link)
|
|
89
|
-
return nil unless link.is_a?(String)
|
|
90
|
-
|
|
91
|
-
idx = link.index("page[after]=")
|
|
92
|
-
return nil if idx.nil?
|
|
93
|
-
|
|
94
|
-
token = link[(idx + "page[after]=".length)..]
|
|
95
|
-
amp = token.index("&")
|
|
96
|
-
amp ? token[0...amp] : token
|
|
97
|
-
end
|
|
98
|
-
|
|
99
|
-
private
|
|
100
|
-
|
|
101
|
-
def wrap_forwarder(id, name, forwarder_type, http, enabled, filter, transform, data)
|
|
102
|
-
attrs = SmplkitGeneratedClient::Audit::Forwarder.new(
|
|
103
|
-
name: name,
|
|
104
|
-
forwarder_type: forwarder_type,
|
|
105
|
-
enabled: enabled,
|
|
106
|
-
# Server-side validation rejects ``data: null`` (the field is
|
|
107
|
-
# required-non-null in the OpenAPI schema). Default to an empty
|
|
108
|
-
# hash mirroring the AuditEvents.record fix.
|
|
109
|
-
data: data || {},
|
|
110
|
-
http: ForwarderHttp.to_wire(http),
|
|
111
|
-
filter: filter,
|
|
112
|
-
transform: transform
|
|
113
|
-
)
|
|
114
|
-
resource = SmplkitGeneratedClient::Audit::ForwarderResource.new(
|
|
115
|
-
id: id ? id.to_s : "",
|
|
116
|
-
type: "forwarder",
|
|
117
|
-
attributes: attrs
|
|
118
|
-
)
|
|
119
|
-
SmplkitGeneratedClient::Audit::ForwarderResponse.new(data: resource)
|
|
120
|
-
end
|
|
121
|
-
end
|
|
122
|
-
|
|
123
|
-
# Sub-namespace for the per-forwarder delivery log + per-delivery retry.
|
|
124
|
-
class ForwarderDeliveries
|
|
125
|
-
attr_reader :actions
|
|
126
|
-
|
|
127
|
-
def initialize(api)
|
|
128
|
-
@api = api
|
|
129
|
-
@actions = DeliveryActions.new(api)
|
|
130
|
-
end
|
|
131
|
-
|
|
132
|
-
def list(forwarder_id, status: nil, created_at_range: nil, event_id: nil, page_size: nil, page_after: nil)
|
|
133
|
-
opts = {}
|
|
134
|
-
opts[:filter_status] = status if status
|
|
135
|
-
opts[:filter_created_at] = created_at_range if created_at_range
|
|
136
|
-
opts[:filter_event_id] = event_id if event_id
|
|
137
|
-
opts[:page_size] = page_size if page_size
|
|
138
|
-
opts[:page_after] = page_after if page_after
|
|
139
|
-
resp = @api.list_forwarder_deliveries(forwarder_id, opts)
|
|
140
|
-
deliveries = (resp.data || []).map { |r| ForwarderDelivery.from_resource(r) }
|
|
141
|
-
ListDeliveriesPage.new(deliveries, Forwarders.next_cursor(resp.links&._next))
|
|
142
|
-
end
|
|
143
|
-
end
|
|
144
|
-
|
|
145
|
-
# +client.audit.forwarders.deliveries.actions.retry(forwarder_id, delivery_id)+
|
|
146
|
-
class DeliveryActions
|
|
147
|
-
def initialize(api)
|
|
148
|
-
@api = api
|
|
149
|
-
end
|
|
150
|
-
|
|
151
|
-
def retry(forwarder_id, delivery_id)
|
|
152
|
-
resp = @api.retry_forwarder_delivery(forwarder_id, delivery_id)
|
|
153
|
-
ForwarderDelivery.from_resource(resp.data)
|
|
154
|
-
end
|
|
155
|
-
end
|
|
156
|
-
|
|
157
|
-
# +client.audit.forwarders.actions.retry_failed_deliveries(forwarder_id)+
|
|
158
|
-
class ForwarderActions
|
|
159
|
-
def initialize(api)
|
|
160
|
-
@api = api
|
|
161
|
-
end
|
|
162
|
-
|
|
163
|
-
def retry_failed_deliveries(forwarder_id)
|
|
164
|
-
resp = @api.retry_failed_forwarder_deliveries(forwarder_id)
|
|
165
|
-
RetryFailedDeliveriesSummary.new(
|
|
166
|
-
attempted: resp.attempted,
|
|
167
|
-
succeeded: resp.succeeded,
|
|
168
|
-
failed: resp.failed
|
|
169
|
-
)
|
|
170
|
-
end
|
|
171
|
-
end
|
|
172
|
-
|
|
173
|
-
# ----------------------------------------------------------------------
|
|
174
|
-
# Public-facing model structs
|
|
175
|
-
# ----------------------------------------------------------------------
|
|
176
|
-
|
|
177
|
-
HttpHeader = Struct.new(:name, :value, keyword_init: true)
|
|
178
|
-
|
|
179
|
-
# rubocop:disable Lint/StructNewOverride -- ``:method`` matches the
|
|
180
|
-
# API attribute and shadowing Struct#method is the expected ergonomics.
|
|
181
|
-
ForwarderHttp = Struct.new(:method, :url, :headers, :body, :success_status, keyword_init: true) do
|
|
182
|
-
def initialize(method: "POST", url: "", headers: nil, body: nil, success_status: "2xx")
|
|
183
|
-
super(method: method, url: url, headers: headers || [], body: body, success_status: success_status)
|
|
184
|
-
end
|
|
185
|
-
|
|
186
|
-
def self.to_wire(src)
|
|
187
|
-
h = src.is_a?(Hash) ? new(**src) : src
|
|
188
|
-
SmplkitGeneratedClient::Audit::ForwarderHttp.new(
|
|
189
|
-
method: h.method,
|
|
190
|
-
url: h.url,
|
|
191
|
-
headers: (h.headers || []).map do |hdr|
|
|
192
|
-
name, value = if hdr.is_a?(Hash)
|
|
193
|
-
[hdr[:name] || hdr["name"],
|
|
194
|
-
hdr[:value] || hdr["value"]]
|
|
195
|
-
else
|
|
196
|
-
[hdr.name, hdr.value]
|
|
197
|
-
end
|
|
198
|
-
SmplkitGeneratedClient::Audit::HttpHeader.new(name: name, value: value)
|
|
199
|
-
end,
|
|
200
|
-
body: h.body,
|
|
201
|
-
success_status: h.success_status
|
|
202
|
-
)
|
|
203
|
-
end
|
|
204
|
-
|
|
205
|
-
def self.from_wire(src)
|
|
206
|
-
return new if src.nil?
|
|
207
|
-
|
|
208
|
-
new(
|
|
209
|
-
method: src.method || "POST",
|
|
210
|
-
url: src.url || "",
|
|
211
|
-
headers: (src.headers || []).map { |h| HttpHeader.new(name: h.name, value: h.value) },
|
|
212
|
-
body: src.body,
|
|
213
|
-
success_status: src.success_status || "2xx"
|
|
214
|
-
)
|
|
215
|
-
end
|
|
216
|
-
end
|
|
217
|
-
# rubocop:enable Lint/StructNewOverride
|
|
218
|
-
|
|
219
|
-
# rubocop:disable Lint/StructNewOverride -- ``:filter`` matches the
|
|
220
|
-
# API attribute and shadowing Struct#filter is the expected ergonomics.
|
|
221
|
-
Forwarder = Struct.new(
|
|
222
|
-
:id, :name, :slug, :forwarder_type, :enabled,
|
|
223
|
-
:filter, :transform, :http, :data,
|
|
224
|
-
:created_at, :updated_at, :deleted_at, :version,
|
|
225
|
-
keyword_init: true
|
|
226
|
-
) do
|
|
227
|
-
def self.from_resource(resource)
|
|
228
|
-
a = resource.attributes
|
|
229
|
-
new(
|
|
230
|
-
id: resource.id,
|
|
231
|
-
name: a.name,
|
|
232
|
-
slug: a.slug,
|
|
233
|
-
forwarder_type: a.forwarder_type,
|
|
234
|
-
enabled: a.enabled.nil? || a.enabled,
|
|
235
|
-
filter: Smplkit::Helpers.deep_stringify_keys(a.filter || {}),
|
|
236
|
-
transform: a.transform,
|
|
237
|
-
http: ForwarderHttp.from_wire(a.http),
|
|
238
|
-
data: Smplkit::Helpers.deep_stringify_keys(a.data || {}),
|
|
239
|
-
created_at: a.created_at,
|
|
240
|
-
updated_at: a.updated_at,
|
|
241
|
-
deleted_at: a.deleted_at,
|
|
242
|
-
version: a.version
|
|
243
|
-
)
|
|
244
|
-
end
|
|
245
|
-
end
|
|
246
|
-
# rubocop:enable Lint/StructNewOverride
|
|
247
|
-
|
|
248
|
-
ListForwardersPage = Struct.new(:forwarders, :next_cursor)
|
|
249
|
-
|
|
250
|
-
ForwarderDelivery = Struct.new(
|
|
251
|
-
:id, :forwarder_id, :event_id, :attempt_number, :status,
|
|
252
|
-
:request, :response_status, :response_body, :latency_ms, :error, :created_at,
|
|
253
|
-
keyword_init: true
|
|
254
|
-
) do
|
|
255
|
-
def self.from_resource(resource)
|
|
256
|
-
a = resource.attributes
|
|
257
|
-
new(
|
|
258
|
-
id: resource.id,
|
|
259
|
-
forwarder_id: a.forwarder_id,
|
|
260
|
-
event_id: a.event_id,
|
|
261
|
-
attempt_number: a.attempt_number,
|
|
262
|
-
status: a.status,
|
|
263
|
-
request: Smplkit::Helpers.deep_stringify_keys(a.request || {}),
|
|
264
|
-
response_status: a.response_status,
|
|
265
|
-
response_body: a.response_body,
|
|
266
|
-
latency_ms: a.latency_ms,
|
|
267
|
-
error: a.error,
|
|
268
|
-
created_at: a.created_at
|
|
269
|
-
)
|
|
270
|
-
end
|
|
271
|
-
end
|
|
272
|
-
|
|
273
|
-
ListDeliveriesPage = Struct.new(:deliveries, :next_cursor)
|
|
274
|
-
|
|
275
|
-
RetryFailedDeliveriesSummary = Struct.new(:attempted, :succeeded, :failed, keyword_init: true)
|
|
276
|
-
|
|
277
|
-
TestForwarderResult = Struct.new(
|
|
278
|
-
:succeeded, :response_status, :response_headers, :response_body, :latency_ms, :error,
|
|
279
|
-
keyword_init: true
|
|
280
|
-
)
|
|
281
|
-
end
|
|
282
|
-
end
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module Smplkit
|
|
4
|
-
module Audit
|
|
5
|
-
# +client.audit.functions.test_forwarder.actions.execute(...)+
|
|
6
|
-
class Functions
|
|
7
|
-
attr_reader :test_forwarder
|
|
8
|
-
|
|
9
|
-
def initialize(api)
|
|
10
|
-
@test_forwarder = TestForwarderNamespace.new(api)
|
|
11
|
-
end
|
|
12
|
-
end
|
|
13
|
-
|
|
14
|
-
# Sub-namespace for the test_forwarder action.
|
|
15
|
-
class TestForwarderNamespace
|
|
16
|
-
attr_reader :actions
|
|
17
|
-
|
|
18
|
-
def initialize(api)
|
|
19
|
-
@actions = TestForwarderActions.new(api)
|
|
20
|
-
end
|
|
21
|
-
end
|
|
22
|
-
|
|
23
|
-
# +execute+ is a server-side proxy that lets the console preview a
|
|
24
|
-
# destination without browser CORS getting in the way. The audit
|
|
25
|
-
# service applies its SSRF guard before resolving the URL —
|
|
26
|
-
# private/loopback/link-local addresses (incl. the EC2 IMDS at
|
|
27
|
-
# +169.254.169.254+) and disallowed ports are rejected.
|
|
28
|
-
class TestForwarderActions
|
|
29
|
-
def initialize(api)
|
|
30
|
-
@api = api
|
|
31
|
-
end
|
|
32
|
-
|
|
33
|
-
def execute(url:, method: "POST", headers: nil, body: nil,
|
|
34
|
-
success_status: "2xx", timeout_ms: nil)
|
|
35
|
-
req = SmplkitGeneratedClient::Audit::TestForwarderRequest.new(
|
|
36
|
-
url: url,
|
|
37
|
-
method: method,
|
|
38
|
-
headers: (headers || []).map do |h|
|
|
39
|
-
name, value = h.is_a?(Hash) ? [h[:name] || h["name"], h[:value] || h["value"]] : [h.name, h.value]
|
|
40
|
-
SmplkitGeneratedClient::Audit::HttpHeader.new(name: name, value: value)
|
|
41
|
-
end,
|
|
42
|
-
body: body,
|
|
43
|
-
success_status: success_status,
|
|
44
|
-
timeout_ms: timeout_ms
|
|
45
|
-
)
|
|
46
|
-
resp = @api.execute_test_forwarder(req)
|
|
47
|
-
TestForwarderResult.new(
|
|
48
|
-
succeeded: resp.succeeded || false,
|
|
49
|
-
response_status: resp.response_status,
|
|
50
|
-
response_headers: resp.response_headers || {},
|
|
51
|
-
response_body: resp.response_body || "",
|
|
52
|
-
latency_ms: resp.latency_ms,
|
|
53
|
-
error: resp.error
|
|
54
|
-
)
|
|
55
|
-
end
|
|
56
|
-
end
|
|
57
|
-
end
|
|
58
|
-
end
|