sendmux-management 1.0.0

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.
Files changed (131) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGELOG.md +12 -0
  3. data/README.md +3 -0
  4. data/lib/sendmux/management/client.rb +66 -0
  5. data/lib/sendmux/management/version.rb +7 -0
  6. data/lib/sendmux/management.rb +12 -0
  7. data/lib/sendmux_management_generated/api/billing_api.rb +221 -0
  8. data/lib/sendmux_management_generated/api/domain_filters_api.rb +161 -0
  9. data/lib/sendmux_management_generated/api/domains_api.rb +419 -0
  10. data/lib/sendmux_management_generated/api/emails_api.rb +258 -0
  11. data/lib/sendmux_management_generated/api/inboxes_api.rb +175 -0
  12. data/lib/sendmux_management_generated/api/mailbox_filters_api.rb +161 -0
  13. data/lib/sendmux_management_generated/api/mailboxes_api.rb +659 -0
  14. data/lib/sendmux_management_generated/api/sending_accounts_api.rb +946 -0
  15. data/lib/sendmux_management_generated/api/webhooks_api.rb +666 -0
  16. data/lib/sendmux_management_generated/api_client.rb +441 -0
  17. data/lib/sendmux_management_generated/api_error.rb +58 -0
  18. data/lib/sendmux_management_generated/api_model_base.rb +88 -0
  19. data/lib/sendmux_management_generated/configuration.rb +393 -0
  20. data/lib/sendmux_management_generated/models/api_error_detail.rb +219 -0
  21. data/lib/sendmux_management_generated/models/api_error_error.rb +275 -0
  22. data/lib/sendmux_management_generated/models/api_error_meta.rb +164 -0
  23. data/lib/sendmux_management_generated/models/api_error_response.rb +216 -0
  24. data/lib/sendmux_management_generated/models/balance.rb +293 -0
  25. data/lib/sendmux_management_generated/models/balance_auto_topup.rb +226 -0
  26. data/lib/sendmux_management_generated/models/balance_response.rb +223 -0
  27. data/lib/sendmux_management_generated/models/cursor_pagination.rb +173 -0
  28. data/lib/sendmux_management_generated/models/delivery_log_item.rb +393 -0
  29. data/lib/sendmux_management_generated/models/delivery_log_item_cursor_list_response.rb +251 -0
  30. data/lib/sendmux_management_generated/models/delivery_log_item_response.rb +223 -0
  31. data/lib/sendmux_management_generated/models/domain_deleted_response.rb +223 -0
  32. data/lib/sendmux_management_generated/models/domain_deleted_response_all_of_data.rb +190 -0
  33. data/lib/sendmux_management_generated/models/domain_item_cursor_list_response.rb +251 -0
  34. data/lib/sendmux_management_generated/models/domain_item_response.rb +223 -0
  35. data/lib/sendmux_management_generated/models/domain_verify_response.rb +223 -0
  36. data/lib/sendmux_management_generated/models/email_metrics.rb +218 -0
  37. data/lib/sendmux_management_generated/models/email_metrics_comparison.rb +294 -0
  38. data/lib/sendmux_management_generated/models/email_metrics_comparison_change_pct.rb +268 -0
  39. data/lib/sendmux_management_generated/models/email_metrics_response.rb +223 -0
  40. data/lib/sendmux_management_generated/models/email_metrics_summary.rb +268 -0
  41. data/lib/sendmux_management_generated/models/email_metrics_timeseries_inner.rb +294 -0
  42. data/lib/sendmux_management_generated/models/filter_rule.rb +242 -0
  43. data/lib/sendmux_management_generated/models/filter_state.rb +218 -0
  44. data/lib/sendmux_management_generated/models/filter_state_response.rb +223 -0
  45. data/lib/sendmux_management_generated/models/incoming_log_item.rb +465 -0
  46. data/lib/sendmux_management_generated/models/incoming_log_item_cursor_list_response.rb +251 -0
  47. data/lib/sendmux_management_generated/models/incoming_log_item_response.rb +223 -0
  48. data/lib/sendmux_management_generated/models/mailbox.rb +284 -0
  49. data/lib/sendmux_management_generated/models/mailbox_app_password_result.rb +164 -0
  50. data/lib/sendmux_management_generated/models/mailbox_app_password_result_credential.rb +359 -0
  51. data/lib/sendmux_management_generated/models/mailbox_app_password_result_response.rb +223 -0
  52. data/lib/sendmux_management_generated/models/mailbox_create_result.rb +189 -0
  53. data/lib/sendmux_management_generated/models/mailbox_create_result_response.rb +223 -0
  54. data/lib/sendmux_management_generated/models/mailbox_credential.rb +353 -0
  55. data/lib/sendmux_management_generated/models/mailbox_deleted_response.rb +223 -0
  56. data/lib/sendmux_management_generated/models/mailbox_domain.rb +358 -0
  57. data/lib/sendmux_management_generated/models/mailbox_domain_dns_records.rb +276 -0
  58. data/lib/sendmux_management_generated/models/mailbox_domain_mx_record.rb +190 -0
  59. data/lib/sendmux_management_generated/models/mailbox_domain_name_value_record.rb +191 -0
  60. data/lib/sendmux_management_generated/models/mailbox_domain_verify_checks.rb +246 -0
  61. data/lib/sendmux_management_generated/models/mailbox_domain_verify_result.rb +242 -0
  62. data/lib/sendmux_management_generated/models/mailbox_item_cursor_list_response.rb +251 -0
  63. data/lib/sendmux_management_generated/models/mailbox_item_response.rb +223 -0
  64. data/lib/sendmux_management_generated/models/mailbox_key_deleted_response.rb +223 -0
  65. data/lib/sendmux_management_generated/models/mailbox_send_scope.rb +213 -0
  66. data/lib/sendmux_management_generated/models/management_create_domain_request.rb +165 -0
  67. data/lib/sendmux_management_generated/models/management_create_mailbox_key_request.rb +182 -0
  68. data/lib/sendmux_management_generated/models/management_create_mailbox_request.rb +257 -0
  69. data/lib/sendmux_management_generated/models/management_create_mailbox_request_send_scope.rb +210 -0
  70. data/lib/sendmux_management_generated/models/management_test_webhook200_response.rb +223 -0
  71. data/lib/sendmux_management_generated/models/provider_allowed_actions.rb +268 -0
  72. data/lib/sendmux_management_generated/models/provider_create_body.rb +579 -0
  73. data/lib/sendmux_management_generated/models/provider_create_body_quotas.rb +174 -0
  74. data/lib/sendmux_management_generated/models/provider_create_body_quotas_per_day.rb +104 -0
  75. data/lib/sendmux_management_generated/models/provider_create_body_quotas_per_day_any_of.rb +215 -0
  76. data/lib/sendmux_management_generated/models/provider_deleted.rb +190 -0
  77. data/lib/sendmux_management_generated/models/provider_deleted_response.rb +223 -0
  78. data/lib/sendmux_management_generated/models/provider_item.rb +695 -0
  79. data/lib/sendmux_management_generated/models/provider_item_cursor_list_response.rb +251 -0
  80. data/lib/sendmux_management_generated/models/provider_item_response.rb +223 -0
  81. data/lib/sendmux_management_generated/models/provider_limits.rb +190 -0
  82. data/lib/sendmux_management_generated/models/provider_limits_response.rb +223 -0
  83. data/lib/sendmux_management_generated/models/provider_quota_range.rb +208 -0
  84. data/lib/sendmux_management_generated/models/provider_quotas.rb +186 -0
  85. data/lib/sendmux_management_generated/models/provider_stats.rb +325 -0
  86. data/lib/sendmux_management_generated/models/provider_stats_response.rb +223 -0
  87. data/lib/sendmux_management_generated/models/provider_status_counts.rb +242 -0
  88. data/lib/sendmux_management_generated/models/provider_test_result.rb +251 -0
  89. data/lib/sendmux_management_generated/models/provider_test_result_response.rb +223 -0
  90. data/lib/sendmux_management_generated/models/provider_type_counts.rb +246 -0
  91. data/lib/sendmux_management_generated/models/provider_update_body.rb +537 -0
  92. data/lib/sendmux_management_generated/models/provider_usage.rb +216 -0
  93. data/lib/sendmux_management_generated/models/provider_usage_item.rb +374 -0
  94. data/lib/sendmux_management_generated/models/provider_usage_response.rb +223 -0
  95. data/lib/sendmux_management_generated/models/resource_limit_snapshot.rb +420 -0
  96. data/lib/sendmux_management_generated/models/response_meta.rb +164 -0
  97. data/lib/sendmux_management_generated/models/sending_account_limit_request.rb +190 -0
  98. data/lib/sendmux_management_generated/models/sending_account_limit_request_response.rb +223 -0
  99. data/lib/sendmux_management_generated/models/set_filter_state_body.rb +226 -0
  100. data/lib/sendmux_management_generated/models/shared_amazon_ses_limit.rb +315 -0
  101. data/lib/sendmux_management_generated/models/shared_amazon_ses_limit_request.rb +361 -0
  102. data/lib/sendmux_management_generated/models/shared_amazon_ses_limit_request_create.rb +190 -0
  103. data/lib/sendmux_management_generated/models/shared_amazon_ses_limit_request_create_request.rb +368 -0
  104. data/lib/sendmux_management_generated/models/shared_amazon_ses_limit_request_create_response.rb +223 -0
  105. data/lib/sendmux_management_generated/models/shared_amazon_ses_limit_request_page.rb +176 -0
  106. data/lib/sendmux_management_generated/models/shared_amazon_ses_limit_request_page_response.rb +223 -0
  107. data/lib/sendmux_management_generated/models/spend_summary.rb +292 -0
  108. data/lib/sendmux_management_generated/models/spend_summary_response.rb +223 -0
  109. data/lib/sendmux_management_generated/models/success_envelope.rb +192 -0
  110. data/lib/sendmux_management_generated/models/transaction.rb +332 -0
  111. data/lib/sendmux_management_generated/models/transaction_cursor_list_response.rb +251 -0
  112. data/lib/sendmux_management_generated/models/update_mailbox_body.rb +210 -0
  113. data/lib/sendmux_management_generated/models/webhook_create_body.rb +269 -0
  114. data/lib/sendmux_management_generated/models/webhook_deleted_response.rb +223 -0
  115. data/lib/sendmux_management_generated/models/webhook_delivery_attempt.rb +562 -0
  116. data/lib/sendmux_management_generated/models/webhook_delivery_attempt_cursor_list_response.rb +251 -0
  117. data/lib/sendmux_management_generated/models/webhook_delivery_payload.rb +359 -0
  118. data/lib/sendmux_management_generated/models/webhook_delivery_payload_response.rb +223 -0
  119. data/lib/sendmux_management_generated/models/webhook_event_data.rb +395 -0
  120. data/lib/sendmux_management_generated/models/webhook_event_payload.rb +297 -0
  121. data/lib/sendmux_management_generated/models/webhook_filters.rb +168 -0
  122. data/lib/sendmux_management_generated/models/webhook_subscription.rb +380 -0
  123. data/lib/sendmux_management_generated/models/webhook_subscription_cursor_list_response.rb +251 -0
  124. data/lib/sendmux_management_generated/models/webhook_subscription_response.rb +223 -0
  125. data/lib/sendmux_management_generated/models/webhook_subscription_with_secret.rb +414 -0
  126. data/lib/sendmux_management_generated/models/webhook_subscription_with_secret_response.rb +223 -0
  127. data/lib/sendmux_management_generated/models/webhook_test_response.rb +165 -0
  128. data/lib/sendmux_management_generated/models/webhook_update_body.rb +233 -0
  129. data/lib/sendmux_management_generated/version.rb +15 -0
  130. data/lib/sendmux_management_generated.rb +158 -0
  131. metadata +247 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: e8f708b754f5bf79c8c450cbec76a5415147f4389b46ed535e997257ebd9f959
4
+ data.tar.gz: 722d48a034be11ba9462407627d128c7d63d43ffb2ed3b21797fcb3af0cf1319
5
+ SHA512:
6
+ metadata.gz: d704c27c1802a4e1ad380670bfff60e4af71667638ced88288de0f51eb29a48d936cb7c231cd44959dcebc5003de23dbc68d0e7ebbf066624971fbc32a989d5e
7
+ data.tar.gz: c6fa21431a4bd6289722153d1bfd970f761e4e5f96ffca5eb847180aa21cdfc4619ea111582430d0997df9d934ec70530696c496a3edebd33a754504b5376251
data/CHANGELOG.md ADDED
@@ -0,0 +1,12 @@
1
+ # Changelog
2
+
3
+ ## 1.0.0 (2026-06-02)
4
+
5
+
6
+ ### Features
7
+
8
+ * **ruby:** add generated SDK packages ([f097fdf](https://github.com/Sendmux/sendmux-sdk/commit/f097fdf6afcbc2a048d9fdb1c9a669fff2a7ca4f))
9
+
10
+ ## 1.0.0
11
+
12
+ - Initial generated Ruby Management API package.
data/README.md ADDED
@@ -0,0 +1,3 @@
1
+ # sendmux-management
2
+
3
+ Ruby SDK package for the Sendmux Management API.
@@ -0,0 +1,66 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Sendmux
4
+ module Management
5
+ DEFAULT_BASE_URL = 'https://app.sendmux.ai/api/v1'
6
+
7
+ class ApiClient < Generated::ApiClient
8
+ def call_api(...)
9
+ super
10
+ rescue Generated::ApiError => e
11
+ raise Sendmux::Core::ErrorMapper.map(e)
12
+ end
13
+ end
14
+
15
+ class Client
16
+ attr_reader :api_client, :configuration
17
+
18
+ def initialize(api_key:, base_url: DEFAULT_BASE_URL, retry_options: nil)
19
+ @configuration = Sendmux::Core::Auth.configure_bearer(
20
+ Generated::Configuration.new,
21
+ api_key,
22
+ Sendmux::Core::ApiKeySurface::ROOT,
23
+ base_url: base_url
24
+ )
25
+ Sendmux::Core::Retry.configure(@configuration, retry_options)
26
+ @api_client = ApiClient.new(@configuration)
27
+ end
28
+
29
+ def billing
30
+ @billing ||= Generated::BillingApi.new(@api_client)
31
+ end
32
+
33
+ def domain_filters
34
+ @domain_filters ||= Generated::DomainFiltersApi.new(@api_client)
35
+ end
36
+
37
+ def domains
38
+ @domains ||= Generated::DomainsApi.new(@api_client)
39
+ end
40
+
41
+ def emails
42
+ @emails ||= Generated::EmailsApi.new(@api_client)
43
+ end
44
+
45
+ def inboxes
46
+ @inboxes ||= Generated::InboxesApi.new(@api_client)
47
+ end
48
+
49
+ def mailbox_filters
50
+ @mailbox_filters ||= Generated::MailboxFiltersApi.new(@api_client)
51
+ end
52
+
53
+ def mailboxes
54
+ @mailboxes ||= Generated::MailboxesApi.new(@api_client)
55
+ end
56
+
57
+ def sending_accounts
58
+ @sending_accounts ||= Generated::SendingAccountsApi.new(@api_client)
59
+ end
60
+
61
+ def webhooks
62
+ @webhooks ||= Generated::WebhooksApi.new(@api_client)
63
+ end
64
+ end
65
+ end
66
+ end
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Sendmux
4
+ module Management
5
+ VERSION = '1.0.0'
6
+ end
7
+ end
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'sendmux/core'
4
+
5
+ module Sendmux
6
+ module Management
7
+ end
8
+ end
9
+
10
+ require 'sendmux/management/version'
11
+ require 'sendmux_management_generated'
12
+ require 'sendmux/management/client'
@@ -0,0 +1,221 @@
1
+ =begin
2
+ #Sendmux API
3
+
4
+ #Programmatic access to your Sendmux email infrastructure.
5
+
6
+ The version of the OpenAPI document: 1.0.0
7
+
8
+ Generated by: https://openapi-generator.tech
9
+ Generator version: 7.22.0
10
+
11
+ =end
12
+
13
+ require 'cgi'
14
+
15
+ module Sendmux::Management::Generated
16
+ class BillingApi
17
+ attr_accessor :api_client
18
+
19
+ def initialize(api_client = ApiClient.default)
20
+ @api_client = api_client
21
+ end
22
+ # Get spend summary
23
+ # Returns a spend summary over a configurable lookback period.
24
+ # @param [Hash] opts the optional parameters
25
+ # @option opts [String] :days
26
+ # @return [SpendSummaryResponse]
27
+ def management_get_spend_summary(opts = {})
28
+ data, _status_code, _headers = management_get_spend_summary_with_http_info(opts)
29
+ data
30
+ end
31
+
32
+ # Get spend summary
33
+ # Returns a spend summary over a configurable lookback period.
34
+ # @param [Hash] opts the optional parameters
35
+ # @option opts [String] :days
36
+ # @return [Array<(SpendSummaryResponse, Integer, Hash)>] SpendSummaryResponse data, response status code and response headers
37
+ def management_get_spend_summary_with_http_info(opts = {})
38
+ if @api_client.config.debugging
39
+ @api_client.config.logger.debug 'Calling API: BillingApi.management_get_spend_summary ...'
40
+ end
41
+ allowable_values = ["7", "30", "90", "unknown_default_open_api"]
42
+ if @api_client.config.client_side_validation && opts[:'days'] && !allowable_values.include?(opts[:'days'])
43
+ fail ArgumentError, "invalid value for \"days\", must be one of #{allowable_values}"
44
+ end
45
+ # resource path
46
+ local_var_path = '/billing/summary'
47
+
48
+ # query parameters
49
+ query_params = opts[:query_params] || {}
50
+ query_params[:'days'] = opts[:'days'] if !opts[:'days'].nil?
51
+
52
+ # header parameters
53
+ header_params = opts[:header_params] || {}
54
+ # HTTP header 'Accept' (if needed)
55
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
56
+
57
+ # form parameters
58
+ form_params = opts[:form_params] || {}
59
+
60
+ # http body (model)
61
+ post_body = opts[:debug_body]
62
+
63
+ # return_type
64
+ return_type = opts[:debug_return_type] || 'SpendSummaryResponse'
65
+
66
+ # auth_names
67
+ auth_names = opts[:debug_auth_names] || ['bearerAuth']
68
+
69
+ new_options = opts.merge(
70
+ :operation => :"BillingApi.management_get_spend_summary",
71
+ :header_params => header_params,
72
+ :query_params => query_params,
73
+ :form_params => form_params,
74
+ :body => post_body,
75
+ :auth_names => auth_names,
76
+ :return_type => return_type
77
+ )
78
+
79
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
80
+ if @api_client.config.debugging
81
+ @api_client.config.logger.debug "API called: BillingApi#management_get_spend_summary\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
82
+ end
83
+ return data, status_code, headers
84
+ end
85
+
86
+ # Get current balance
87
+ # Returns the current team balance and auto top-up configuration.
88
+ # @param [Hash] opts the optional parameters
89
+ # @return [BalanceResponse]
90
+ def management_list_balance(opts = {})
91
+ data, _status_code, _headers = management_list_balance_with_http_info(opts)
92
+ data
93
+ end
94
+
95
+ # Get current balance
96
+ # Returns the current team balance and auto top-up configuration.
97
+ # @param [Hash] opts the optional parameters
98
+ # @return [Array<(BalanceResponse, Integer, Hash)>] BalanceResponse data, response status code and response headers
99
+ def management_list_balance_with_http_info(opts = {})
100
+ if @api_client.config.debugging
101
+ @api_client.config.logger.debug 'Calling API: BillingApi.management_list_balance ...'
102
+ end
103
+ # resource path
104
+ local_var_path = '/billing/balance'
105
+
106
+ # query parameters
107
+ query_params = opts[:query_params] || {}
108
+
109
+ # header parameters
110
+ header_params = opts[:header_params] || {}
111
+ # HTTP header 'Accept' (if needed)
112
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
113
+
114
+ # form parameters
115
+ form_params = opts[:form_params] || {}
116
+
117
+ # http body (model)
118
+ post_body = opts[:debug_body]
119
+
120
+ # return_type
121
+ return_type = opts[:debug_return_type] || 'BalanceResponse'
122
+
123
+ # auth_names
124
+ auth_names = opts[:debug_auth_names] || ['bearerAuth']
125
+
126
+ new_options = opts.merge(
127
+ :operation => :"BillingApi.management_list_balance",
128
+ :header_params => header_params,
129
+ :query_params => query_params,
130
+ :form_params => form_params,
131
+ :body => post_body,
132
+ :auth_names => auth_names,
133
+ :return_type => return_type
134
+ )
135
+
136
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
137
+ if @api_client.config.debugging
138
+ @api_client.config.logger.debug "API called: BillingApi#management_list_balance\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
139
+ end
140
+ return data, status_code, headers
141
+ end
142
+
143
+ # List transactions
144
+ # Returns paginated credit transaction history with optional type filter. Uses cursor-based pagination ordered by created_at descending — pass `cursor=<next_cursor>` from the previous response to fetch the next page.
145
+ # @param [Hash] opts the optional parameters
146
+ # @option opts [String] :cursor
147
+ # @option opts [Integer] :limit
148
+ # @option opts [String] :type
149
+ # @return [TransactionCursorListResponse]
150
+ def management_list_transactions(opts = {})
151
+ data, _status_code, _headers = management_list_transactions_with_http_info(opts)
152
+ data
153
+ end
154
+
155
+ # List transactions
156
+ # Returns paginated credit transaction history with optional type filter. Uses cursor-based pagination ordered by created_at descending — pass &#x60;cursor&#x3D;&lt;next_cursor&gt;&#x60; from the previous response to fetch the next page.
157
+ # @param [Hash] opts the optional parameters
158
+ # @option opts [String] :cursor
159
+ # @option opts [Integer] :limit
160
+ # @option opts [String] :type
161
+ # @return [Array<(TransactionCursorListResponse, Integer, Hash)>] TransactionCursorListResponse data, response status code and response headers
162
+ def management_list_transactions_with_http_info(opts = {})
163
+ if @api_client.config.debugging
164
+ @api_client.config.logger.debug 'Calling API: BillingApi.management_list_transactions ...'
165
+ end
166
+ if @api_client.config.client_side_validation && !opts[:'limit'].nil? && opts[:'limit'] > 100
167
+ fail ArgumentError, 'invalid value for "opts[:"limit"]" when calling BillingApi.management_list_transactions, must be smaller than or equal to 100.'
168
+ end
169
+
170
+ if @api_client.config.client_side_validation && !opts[:'limit'].nil? && opts[:'limit'] < 1
171
+ fail ArgumentError, 'invalid value for "opts[:"limit"]" when calling BillingApi.management_list_transactions, must be greater than or equal to 1.'
172
+ end
173
+
174
+ allowable_values = ["PURCHASE", "USAGE", "AUTO_TOPUP", "REFUND", "ADJUSTMENT", "unknown_default_open_api"]
175
+ if @api_client.config.client_side_validation && opts[:'type'] && !allowable_values.include?(opts[:'type'])
176
+ fail ArgumentError, "invalid value for \"type\", must be one of #{allowable_values}"
177
+ end
178
+ # resource path
179
+ local_var_path = '/billing/transactions'
180
+
181
+ # query parameters
182
+ query_params = opts[:query_params] || {}
183
+ query_params[:'cursor'] = opts[:'cursor'] if !opts[:'cursor'].nil?
184
+ query_params[:'limit'] = opts[:'limit'] if !opts[:'limit'].nil?
185
+ query_params[:'type'] = opts[:'type'] if !opts[:'type'].nil?
186
+
187
+ # header parameters
188
+ header_params = opts[:header_params] || {}
189
+ # HTTP header 'Accept' (if needed)
190
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
191
+
192
+ # form parameters
193
+ form_params = opts[:form_params] || {}
194
+
195
+ # http body (model)
196
+ post_body = opts[:debug_body]
197
+
198
+ # return_type
199
+ return_type = opts[:debug_return_type] || 'TransactionCursorListResponse'
200
+
201
+ # auth_names
202
+ auth_names = opts[:debug_auth_names] || ['bearerAuth']
203
+
204
+ new_options = opts.merge(
205
+ :operation => :"BillingApi.management_list_transactions",
206
+ :header_params => header_params,
207
+ :query_params => query_params,
208
+ :form_params => form_params,
209
+ :body => post_body,
210
+ :auth_names => auth_names,
211
+ :return_type => return_type
212
+ )
213
+
214
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
215
+ if @api_client.config.debugging
216
+ @api_client.config.logger.debug "API called: BillingApi#management_list_transactions\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
217
+ end
218
+ return data, status_code, headers
219
+ end
220
+ end
221
+ end
@@ -0,0 +1,161 @@
1
+ =begin
2
+ #Sendmux API
3
+
4
+ #Programmatic access to your Sendmux email infrastructure.
5
+
6
+ The version of the OpenAPI document: 1.0.0
7
+
8
+ Generated by: https://openapi-generator.tech
9
+ Generator version: 7.22.0
10
+
11
+ =end
12
+
13
+ require 'cgi'
14
+
15
+ module Sendmux::Management::Generated
16
+ class DomainFiltersApi
17
+ attr_accessor :api_client
18
+
19
+ def initialize(api_client = ApiClient.default)
20
+ @api_client = api_client
21
+ end
22
+ # Get domain-wide sender filters
23
+ # Returns the current sender-filter mode and rule set applied to every mailbox under this domain. Per-mailbox rules take precedence at match time. Responses carry a weak `ETag` — send it as `If-None-Match` to skip the body when the filter set has not changed (returns `304 Not Modified`). The same ETag is the value to use in `If-Match` on the corresponding PUT for optimistic concurrency.
24
+ # @param public_id [String]
25
+ # @param [Hash] opts the optional parameters
26
+ # @option opts [String] :if_none_match
27
+ # @return [FilterStateResponse]
28
+ def management_get_domain_filters(public_id, opts = {})
29
+ data, _status_code, _headers = management_get_domain_filters_with_http_info(public_id, opts)
30
+ data
31
+ end
32
+
33
+ # Get domain-wide sender filters
34
+ # Returns the current sender-filter mode and rule set applied to every mailbox under this domain. Per-mailbox rules take precedence at match time. Responses carry a weak &#x60;ETag&#x60; — send it as &#x60;If-None-Match&#x60; to skip the body when the filter set has not changed (returns &#x60;304 Not Modified&#x60;). The same ETag is the value to use in &#x60;If-Match&#x60; on the corresponding PUT for optimistic concurrency.
35
+ # @param public_id [String]
36
+ # @param [Hash] opts the optional parameters
37
+ # @option opts [String] :if_none_match
38
+ # @return [Array<(FilterStateResponse, Integer, Hash)>] FilterStateResponse data, response status code and response headers
39
+ def management_get_domain_filters_with_http_info(public_id, opts = {})
40
+ if @api_client.config.debugging
41
+ @api_client.config.logger.debug 'Calling API: DomainFiltersApi.management_get_domain_filters ...'
42
+ end
43
+ # verify the required parameter 'public_id' is set
44
+ if @api_client.config.client_side_validation && public_id.nil?
45
+ fail ArgumentError, "Missing the required parameter 'public_id' when calling DomainFiltersApi.management_get_domain_filters"
46
+ end
47
+ # resource path
48
+ local_var_path = '/domains/{public_id}/filters'.sub('{public_id}', CGI.escape(public_id.to_s))
49
+
50
+ # query parameters
51
+ query_params = opts[:query_params] || {}
52
+
53
+ # header parameters
54
+ header_params = opts[:header_params] || {}
55
+ # HTTP header 'Accept' (if needed)
56
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
57
+ header_params[:'If-None-Match'] = opts[:'if_none_match'] if !opts[:'if_none_match'].nil?
58
+
59
+ # form parameters
60
+ form_params = opts[:form_params] || {}
61
+
62
+ # http body (model)
63
+ post_body = opts[:debug_body]
64
+
65
+ # return_type
66
+ return_type = opts[:debug_return_type] || 'FilterStateResponse'
67
+
68
+ # auth_names
69
+ auth_names = opts[:debug_auth_names] || ['bearerAuth']
70
+
71
+ new_options = opts.merge(
72
+ :operation => :"DomainFiltersApi.management_get_domain_filters",
73
+ :header_params => header_params,
74
+ :query_params => query_params,
75
+ :form_params => form_params,
76
+ :body => post_body,
77
+ :auth_names => auth_names,
78
+ :return_type => return_type
79
+ )
80
+
81
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
82
+ if @api_client.config.debugging
83
+ @api_client.config.logger.debug "API called: DomainFiltersApi#management_get_domain_filters\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
84
+ end
85
+ return data, status_code, headers
86
+ end
87
+
88
+ # Replace domain-wide sender filters
89
+ # Atomically replaces the sender-filter mode and rule set for an entire domain. Applies to every mailbox under the domain unless that mailbox has its own per-mailbox rules (which take precedence). Maximum 1000 rules per request. For optimistic concurrency, send `If-Match: <etag>` using the ETag from a prior GET. A mismatched `If-Match` returns `409 conflict` (the server's ETag is echoed back so you can decide whether to re-fetch). Responses carry the new ETag so chained edits can pipeline without a re-GET.
90
+ # @param public_id [String]
91
+ # @param [Hash] opts the optional parameters
92
+ # @option opts [String] :if_match
93
+ # @option opts [SetFilterStateBody] :set_filter_state_body
94
+ # @return [FilterStateResponse]
95
+ def management_set_domain_filters(public_id, opts = {})
96
+ data, _status_code, _headers = management_set_domain_filters_with_http_info(public_id, opts)
97
+ data
98
+ end
99
+
100
+ # Replace domain-wide sender filters
101
+ # Atomically replaces the sender-filter mode and rule set for an entire domain. Applies to every mailbox under the domain unless that mailbox has its own per-mailbox rules (which take precedence). Maximum 1000 rules per request. For optimistic concurrency, send &#x60;If-Match: &lt;etag&gt;&#x60; using the ETag from a prior GET. A mismatched &#x60;If-Match&#x60; returns &#x60;409 conflict&#x60; (the server&#39;s ETag is echoed back so you can decide whether to re-fetch). Responses carry the new ETag so chained edits can pipeline without a re-GET.
102
+ # @param public_id [String]
103
+ # @param [Hash] opts the optional parameters
104
+ # @option opts [String] :if_match
105
+ # @option opts [SetFilterStateBody] :set_filter_state_body
106
+ # @return [Array<(FilterStateResponse, Integer, Hash)>] FilterStateResponse data, response status code and response headers
107
+ def management_set_domain_filters_with_http_info(public_id, opts = {})
108
+ if @api_client.config.debugging
109
+ @api_client.config.logger.debug 'Calling API: DomainFiltersApi.management_set_domain_filters ...'
110
+ end
111
+ # verify the required parameter 'public_id' is set
112
+ if @api_client.config.client_side_validation && public_id.nil?
113
+ fail ArgumentError, "Missing the required parameter 'public_id' when calling DomainFiltersApi.management_set_domain_filters"
114
+ end
115
+ # resource path
116
+ local_var_path = '/domains/{public_id}/filters'.sub('{public_id}', CGI.escape(public_id.to_s))
117
+
118
+ # query parameters
119
+ query_params = opts[:query_params] || {}
120
+
121
+ # header parameters
122
+ header_params = opts[:header_params] || {}
123
+ # HTTP header 'Accept' (if needed)
124
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
125
+ # HTTP header 'Content-Type'
126
+ content_type = @api_client.select_header_content_type(['application/json'])
127
+ if !content_type.nil?
128
+ header_params['Content-Type'] = content_type
129
+ end
130
+ header_params[:'If-Match'] = opts[:'if_match'] if !opts[:'if_match'].nil?
131
+
132
+ # form parameters
133
+ form_params = opts[:form_params] || {}
134
+
135
+ # http body (model)
136
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(opts[:'set_filter_state_body'])
137
+
138
+ # return_type
139
+ return_type = opts[:debug_return_type] || 'FilterStateResponse'
140
+
141
+ # auth_names
142
+ auth_names = opts[:debug_auth_names] || ['bearerAuth']
143
+
144
+ new_options = opts.merge(
145
+ :operation => :"DomainFiltersApi.management_set_domain_filters",
146
+ :header_params => header_params,
147
+ :query_params => query_params,
148
+ :form_params => form_params,
149
+ :body => post_body,
150
+ :auth_names => auth_names,
151
+ :return_type => return_type
152
+ )
153
+
154
+ data, status_code, headers = @api_client.call_api(:PUT, local_var_path, new_options)
155
+ if @api_client.config.debugging
156
+ @api_client.config.logger.debug "API called: DomainFiltersApi#management_set_domain_filters\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
157
+ end
158
+ return data, status_code, headers
159
+ end
160
+ end
161
+ end