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
@@ -0,0 +1,659 @@
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 MailboxesApi
17
+ attr_accessor :api_client
18
+
19
+ def initialize(api_client = ApiClient.default)
20
+ @api_client = api_client
21
+ end
22
+ # Create a mailbox
23
+ # Provisions a new mailbox plus an initial bearer token and matching IMAP/SMTP mailbox password. The domain portion of the email must already be verified via POST /domains. If supplied, `quota_bytes` must be one of the current storage tiers: 1073741824 (1 GB), 5368709120 (5 GB), or 53687091200 (50 GB). Creation provisions resources on our mail platform and, for `@myagent.mx` addresses, on Amazon SES — any failure rolls the partial state back automatically. Supply an `Idempotency-Key` header (any unique string, max 255 chars) to safely retry on network errors. Replays with the same key return the original response; replays with a different body return `409 idempotency_conflict`.
24
+ # @param [Hash] opts the optional parameters
25
+ # @option opts [String] :idempotency_key
26
+ # @option opts [ManagementCreateMailboxRequest] :management_create_mailbox_request
27
+ # @return [MailboxCreateResultResponse]
28
+ def management_create_mailbox(opts = {})
29
+ data, _status_code, _headers = management_create_mailbox_with_http_info(opts)
30
+ data
31
+ end
32
+
33
+ # Create a mailbox
34
+ # Provisions a new mailbox plus an initial bearer token and matching IMAP/SMTP mailbox password. The domain portion of the email must already be verified via POST /domains. If supplied, `quota_bytes` must be one of the current storage tiers: 1073741824 (1 GB), 5368709120 (5 GB), or 53687091200 (50 GB). Creation provisions resources on our mail platform and, for `@myagent.mx` addresses, on Amazon SES — any failure rolls the partial state back automatically. Supply an `Idempotency-Key` header (any unique string, max 255 chars) to safely retry on network errors. Replays with the same key return the original response; replays with a different body return `409 idempotency_conflict`.
35
+ # @param [Hash] opts the optional parameters
36
+ # @option opts [String] :idempotency_key
37
+ # @option opts [ManagementCreateMailboxRequest] :management_create_mailbox_request
38
+ # @return [Array<(MailboxCreateResultResponse, Integer, Hash)>] MailboxCreateResultResponse data, response status code and response headers
39
+ def management_create_mailbox_with_http_info(opts = {})
40
+ if @api_client.config.debugging
41
+ @api_client.config.logger.debug 'Calling API: MailboxesApi.management_create_mailbox ...'
42
+ end
43
+ if @api_client.config.client_side_validation && !opts[:'idempotency_key'].nil? && opts[:'idempotency_key'].to_s.length > 255
44
+ fail ArgumentError, 'invalid value for "opts[:"idempotency_key"]" when calling MailboxesApi.management_create_mailbox, the character length must be smaller than or equal to 255.'
45
+ end
46
+
47
+ # resource path
48
+ local_var_path = '/mailboxes'
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
+ # HTTP header 'Content-Type'
58
+ content_type = @api_client.select_header_content_type(['application/json'])
59
+ if !content_type.nil?
60
+ header_params['Content-Type'] = content_type
61
+ end
62
+ header_params[:'Idempotency-Key'] = opts[:'idempotency_key'] if !opts[:'idempotency_key'].nil?
63
+
64
+ # form parameters
65
+ form_params = opts[:form_params] || {}
66
+
67
+ # http body (model)
68
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(opts[:'management_create_mailbox_request'])
69
+
70
+ # return_type
71
+ return_type = opts[:debug_return_type] || 'MailboxCreateResultResponse'
72
+
73
+ # auth_names
74
+ auth_names = opts[:debug_auth_names] || ['bearerAuth']
75
+
76
+ new_options = opts.merge(
77
+ :operation => :"MailboxesApi.management_create_mailbox",
78
+ :header_params => header_params,
79
+ :query_params => query_params,
80
+ :form_params => form_params,
81
+ :body => post_body,
82
+ :auth_names => auth_names,
83
+ :return_type => return_type
84
+ )
85
+
86
+ data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
87
+ if @api_client.config.debugging
88
+ @api_client.config.logger.debug "API called: MailboxesApi#management_create_mailbox\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
89
+ end
90
+ return data, status_code, headers
91
+ end
92
+
93
+ # Create a mailbox API key
94
+ # Mints an additional bearer token plus IMAP/SMTP mailbox password for an existing mailbox. The plaintext key and password are shown exactly once — store them immediately. Supply an `Idempotency-Key` header (any unique string, max 255 chars) to safely retry on network errors. Replays with the same key return the original response; replays with a different body return `409 idempotency_conflict`.
95
+ # @param public_id [String]
96
+ # @param [Hash] opts the optional parameters
97
+ # @option opts [String] :idempotency_key
98
+ # @option opts [ManagementCreateMailboxKeyRequest] :management_create_mailbox_key_request
99
+ # @return [MailboxAppPasswordResultResponse]
100
+ def management_create_mailbox_key(public_id, opts = {})
101
+ data, _status_code, _headers = management_create_mailbox_key_with_http_info(public_id, opts)
102
+ data
103
+ end
104
+
105
+ # Create a mailbox API key
106
+ # Mints an additional bearer token plus IMAP/SMTP mailbox password for an existing mailbox. The plaintext key and password are shown exactly once — store them immediately. Supply an &#x60;Idempotency-Key&#x60; header (any unique string, max 255 chars) to safely retry on network errors. Replays with the same key return the original response; replays with a different body return &#x60;409 idempotency_conflict&#x60;.
107
+ # @param public_id [String]
108
+ # @param [Hash] opts the optional parameters
109
+ # @option opts [String] :idempotency_key
110
+ # @option opts [ManagementCreateMailboxKeyRequest] :management_create_mailbox_key_request
111
+ # @return [Array<(MailboxAppPasswordResultResponse, Integer, Hash)>] MailboxAppPasswordResultResponse data, response status code and response headers
112
+ def management_create_mailbox_key_with_http_info(public_id, opts = {})
113
+ if @api_client.config.debugging
114
+ @api_client.config.logger.debug 'Calling API: MailboxesApi.management_create_mailbox_key ...'
115
+ end
116
+ # verify the required parameter 'public_id' is set
117
+ if @api_client.config.client_side_validation && public_id.nil?
118
+ fail ArgumentError, "Missing the required parameter 'public_id' when calling MailboxesApi.management_create_mailbox_key"
119
+ end
120
+ if @api_client.config.client_side_validation && !opts[:'idempotency_key'].nil? && opts[:'idempotency_key'].to_s.length > 255
121
+ fail ArgumentError, 'invalid value for "opts[:"idempotency_key"]" when calling MailboxesApi.management_create_mailbox_key, the character length must be smaller than or equal to 255.'
122
+ end
123
+
124
+ # resource path
125
+ local_var_path = '/mailboxes/{public_id}/keys'.sub('{public_id}', CGI.escape(public_id.to_s))
126
+
127
+ # query parameters
128
+ query_params = opts[:query_params] || {}
129
+
130
+ # header parameters
131
+ header_params = opts[:header_params] || {}
132
+ # HTTP header 'Accept' (if needed)
133
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
134
+ # HTTP header 'Content-Type'
135
+ content_type = @api_client.select_header_content_type(['application/json'])
136
+ if !content_type.nil?
137
+ header_params['Content-Type'] = content_type
138
+ end
139
+ header_params[:'Idempotency-Key'] = opts[:'idempotency_key'] if !opts[:'idempotency_key'].nil?
140
+
141
+ # form parameters
142
+ form_params = opts[:form_params] || {}
143
+
144
+ # http body (model)
145
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(opts[:'management_create_mailbox_key_request'])
146
+
147
+ # return_type
148
+ return_type = opts[:debug_return_type] || 'MailboxAppPasswordResultResponse'
149
+
150
+ # auth_names
151
+ auth_names = opts[:debug_auth_names] || ['bearerAuth']
152
+
153
+ new_options = opts.merge(
154
+ :operation => :"MailboxesApi.management_create_mailbox_key",
155
+ :header_params => header_params,
156
+ :query_params => query_params,
157
+ :form_params => form_params,
158
+ :body => post_body,
159
+ :auth_names => auth_names,
160
+ :return_type => return_type
161
+ )
162
+
163
+ data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
164
+ if @api_client.config.debugging
165
+ @api_client.config.logger.debug "API called: MailboxesApi#management_create_mailbox_key\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
166
+ end
167
+ return data, status_code, headers
168
+ end
169
+
170
+ # Delete a mailbox
171
+ # Removes a mailbox from our mail platform, Amazon SES (for `@myagent.mx` addresses), and Sendmux. All associated API keys are revoked.
172
+ # @param public_id [String]
173
+ # @param [Hash] opts the optional parameters
174
+ # @return [MailboxDeletedResponse]
175
+ def management_delete_mailbox(public_id, opts = {})
176
+ data, _status_code, _headers = management_delete_mailbox_with_http_info(public_id, opts)
177
+ data
178
+ end
179
+
180
+ # Delete a mailbox
181
+ # Removes a mailbox from our mail platform, Amazon SES (for &#x60;@myagent.mx&#x60; addresses), and Sendmux. All associated API keys are revoked.
182
+ # @param public_id [String]
183
+ # @param [Hash] opts the optional parameters
184
+ # @return [Array<(MailboxDeletedResponse, Integer, Hash)>] MailboxDeletedResponse data, response status code and response headers
185
+ def management_delete_mailbox_with_http_info(public_id, opts = {})
186
+ if @api_client.config.debugging
187
+ @api_client.config.logger.debug 'Calling API: MailboxesApi.management_delete_mailbox ...'
188
+ end
189
+ # verify the required parameter 'public_id' is set
190
+ if @api_client.config.client_side_validation && public_id.nil?
191
+ fail ArgumentError, "Missing the required parameter 'public_id' when calling MailboxesApi.management_delete_mailbox"
192
+ end
193
+ # resource path
194
+ local_var_path = '/mailboxes/{public_id}'.sub('{public_id}', CGI.escape(public_id.to_s))
195
+
196
+ # query parameters
197
+ query_params = opts[:query_params] || {}
198
+
199
+ # header parameters
200
+ header_params = opts[:header_params] || {}
201
+ # HTTP header 'Accept' (if needed)
202
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
203
+
204
+ # form parameters
205
+ form_params = opts[:form_params] || {}
206
+
207
+ # http body (model)
208
+ post_body = opts[:debug_body]
209
+
210
+ # return_type
211
+ return_type = opts[:debug_return_type] || 'MailboxDeletedResponse'
212
+
213
+ # auth_names
214
+ auth_names = opts[:debug_auth_names] || ['bearerAuth']
215
+
216
+ new_options = opts.merge(
217
+ :operation => :"MailboxesApi.management_delete_mailbox",
218
+ :header_params => header_params,
219
+ :query_params => query_params,
220
+ :form_params => form_params,
221
+ :body => post_body,
222
+ :auth_names => auth_names,
223
+ :return_type => return_type
224
+ )
225
+
226
+ data, status_code, headers = @api_client.call_api(:DELETE, local_var_path, new_options)
227
+ if @api_client.config.debugging
228
+ @api_client.config.logger.debug "API called: MailboxesApi#management_delete_mailbox\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
229
+ end
230
+ return data, status_code, headers
231
+ end
232
+
233
+ # Revoke a mailbox API key
234
+ # Revokes a specific bearer token + matching mailbox password. Idempotent on already-revoked keys.
235
+ # @param public_id [String]
236
+ # @param key_id [String]
237
+ # @param [Hash] opts the optional parameters
238
+ # @return [MailboxKeyDeletedResponse]
239
+ def management_delete_mailbox_key(public_id, key_id, opts = {})
240
+ data, _status_code, _headers = management_delete_mailbox_key_with_http_info(public_id, key_id, opts)
241
+ data
242
+ end
243
+
244
+ # Revoke a mailbox API key
245
+ # Revokes a specific bearer token + matching mailbox password. Idempotent on already-revoked keys.
246
+ # @param public_id [String]
247
+ # @param key_id [String]
248
+ # @param [Hash] opts the optional parameters
249
+ # @return [Array<(MailboxKeyDeletedResponse, Integer, Hash)>] MailboxKeyDeletedResponse data, response status code and response headers
250
+ def management_delete_mailbox_key_with_http_info(public_id, key_id, opts = {})
251
+ if @api_client.config.debugging
252
+ @api_client.config.logger.debug 'Calling API: MailboxesApi.management_delete_mailbox_key ...'
253
+ end
254
+ # verify the required parameter 'public_id' is set
255
+ if @api_client.config.client_side_validation && public_id.nil?
256
+ fail ArgumentError, "Missing the required parameter 'public_id' when calling MailboxesApi.management_delete_mailbox_key"
257
+ end
258
+ # verify the required parameter 'key_id' is set
259
+ if @api_client.config.client_side_validation && key_id.nil?
260
+ fail ArgumentError, "Missing the required parameter 'key_id' when calling MailboxesApi.management_delete_mailbox_key"
261
+ end
262
+ # resource path
263
+ local_var_path = '/mailboxes/{public_id}/keys/{key_id}'.sub('{public_id}', CGI.escape(public_id.to_s)).sub('{key_id}', CGI.escape(key_id.to_s))
264
+
265
+ # query parameters
266
+ query_params = opts[:query_params] || {}
267
+
268
+ # header parameters
269
+ header_params = opts[:header_params] || {}
270
+ # HTTP header 'Accept' (if needed)
271
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
272
+
273
+ # form parameters
274
+ form_params = opts[:form_params] || {}
275
+
276
+ # http body (model)
277
+ post_body = opts[:debug_body]
278
+
279
+ # return_type
280
+ return_type = opts[:debug_return_type] || 'MailboxKeyDeletedResponse'
281
+
282
+ # auth_names
283
+ auth_names = opts[:debug_auth_names] || ['bearerAuth']
284
+
285
+ new_options = opts.merge(
286
+ :operation => :"MailboxesApi.management_delete_mailbox_key",
287
+ :header_params => header_params,
288
+ :query_params => query_params,
289
+ :form_params => form_params,
290
+ :body => post_body,
291
+ :auth_names => auth_names,
292
+ :return_type => return_type
293
+ )
294
+
295
+ data, status_code, headers = @api_client.call_api(:DELETE, local_var_path, new_options)
296
+ if @api_client.config.debugging
297
+ @api_client.config.logger.debug "API called: MailboxesApi#management_delete_mailbox_key\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
298
+ end
299
+ return data, status_code, headers
300
+ end
301
+
302
+ # Get a mailbox
303
+ # Returns a single mailbox, tenant-scoped to the caller's team. Responses carry a weak `ETag` header — send it back as `If-None-Match` on the next request and the server will return `304 Not Modified` (no body) when the resource has not changed. The same ETag is the value to use in `If-Match` on PATCH for optimistic concurrency.
304
+ # @param public_id [String]
305
+ # @param [Hash] opts the optional parameters
306
+ # @option opts [String] :if_none_match
307
+ # @return [MailboxItemResponse]
308
+ def management_get_mailbox(public_id, opts = {})
309
+ data, _status_code, _headers = management_get_mailbox_with_http_info(public_id, opts)
310
+ data
311
+ end
312
+
313
+ # Get a mailbox
314
+ # Returns a single mailbox, tenant-scoped to the caller&#39;s team. Responses carry a weak &#x60;ETag&#x60; header — send it back as &#x60;If-None-Match&#x60; on the next request and the server will return &#x60;304 Not Modified&#x60; (no body) when the resource has not changed. The same ETag is the value to use in &#x60;If-Match&#x60; on PATCH for optimistic concurrency.
315
+ # @param public_id [String]
316
+ # @param [Hash] opts the optional parameters
317
+ # @option opts [String] :if_none_match
318
+ # @return [Array<(MailboxItemResponse, Integer, Hash)>] MailboxItemResponse data, response status code and response headers
319
+ def management_get_mailbox_with_http_info(public_id, opts = {})
320
+ if @api_client.config.debugging
321
+ @api_client.config.logger.debug 'Calling API: MailboxesApi.management_get_mailbox ...'
322
+ end
323
+ # verify the required parameter 'public_id' is set
324
+ if @api_client.config.client_side_validation && public_id.nil?
325
+ fail ArgumentError, "Missing the required parameter 'public_id' when calling MailboxesApi.management_get_mailbox"
326
+ end
327
+ # resource path
328
+ local_var_path = '/mailboxes/{public_id}'.sub('{public_id}', CGI.escape(public_id.to_s))
329
+
330
+ # query parameters
331
+ query_params = opts[:query_params] || {}
332
+
333
+ # header parameters
334
+ header_params = opts[:header_params] || {}
335
+ # HTTP header 'Accept' (if needed)
336
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
337
+ header_params[:'If-None-Match'] = opts[:'if_none_match'] if !opts[:'if_none_match'].nil?
338
+
339
+ # form parameters
340
+ form_params = opts[:form_params] || {}
341
+
342
+ # http body (model)
343
+ post_body = opts[:debug_body]
344
+
345
+ # return_type
346
+ return_type = opts[:debug_return_type] || 'MailboxItemResponse'
347
+
348
+ # auth_names
349
+ auth_names = opts[:debug_auth_names] || ['bearerAuth']
350
+
351
+ new_options = opts.merge(
352
+ :operation => :"MailboxesApi.management_get_mailbox",
353
+ :header_params => header_params,
354
+ :query_params => query_params,
355
+ :form_params => form_params,
356
+ :body => post_body,
357
+ :auth_names => auth_names,
358
+ :return_type => return_type
359
+ )
360
+
361
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
362
+ if @api_client.config.debugging
363
+ @api_client.config.logger.debug "API called: MailboxesApi#management_get_mailbox\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
364
+ end
365
+ return data, status_code, headers
366
+ end
367
+
368
+ # List mailboxes
369
+ # Returns a cursor-paginated list of mailboxes configured for the team, ordered by `created_at` descending. Pass `cursor=<next_cursor>` from the previous response to fetch the next page.
370
+ # @param [Hash] opts the optional parameters
371
+ # @option opts [String] :cursor
372
+ # @option opts [Integer] :limit
373
+ # @option opts [String] :include_deleted
374
+ # @return [MailboxItemCursorListResponse]
375
+ def management_list_mailboxes(opts = {})
376
+ data, _status_code, _headers = management_list_mailboxes_with_http_info(opts)
377
+ data
378
+ end
379
+
380
+ # List mailboxes
381
+ # Returns a cursor-paginated list of mailboxes configured for the team, ordered by &#x60;created_at&#x60; descending. Pass &#x60;cursor&#x3D;&lt;next_cursor&gt;&#x60; from the previous response to fetch the next page.
382
+ # @param [Hash] opts the optional parameters
383
+ # @option opts [String] :cursor
384
+ # @option opts [Integer] :limit
385
+ # @option opts [String] :include_deleted
386
+ # @return [Array<(MailboxItemCursorListResponse, Integer, Hash)>] MailboxItemCursorListResponse data, response status code and response headers
387
+ def management_list_mailboxes_with_http_info(opts = {})
388
+ if @api_client.config.debugging
389
+ @api_client.config.logger.debug 'Calling API: MailboxesApi.management_list_mailboxes ...'
390
+ end
391
+ if @api_client.config.client_side_validation && !opts[:'limit'].nil? && opts[:'limit'] > 100
392
+ fail ArgumentError, 'invalid value for "opts[:"limit"]" when calling MailboxesApi.management_list_mailboxes, must be smaller than or equal to 100.'
393
+ end
394
+
395
+ if @api_client.config.client_side_validation && !opts[:'limit'].nil? && opts[:'limit'] < 1
396
+ fail ArgumentError, 'invalid value for "opts[:"limit"]" when calling MailboxesApi.management_list_mailboxes, must be greater than or equal to 1.'
397
+ end
398
+
399
+ allowable_values = ["true", "unknown_default_open_api"]
400
+ if @api_client.config.client_side_validation && opts[:'include_deleted'] && !allowable_values.include?(opts[:'include_deleted'])
401
+ fail ArgumentError, "invalid value for \"include_deleted\", must be one of #{allowable_values}"
402
+ end
403
+ # resource path
404
+ local_var_path = '/mailboxes'
405
+
406
+ # query parameters
407
+ query_params = opts[:query_params] || {}
408
+ query_params[:'cursor'] = opts[:'cursor'] if !opts[:'cursor'].nil?
409
+ query_params[:'limit'] = opts[:'limit'] if !opts[:'limit'].nil?
410
+ query_params[:'include_deleted'] = opts[:'include_deleted'] if !opts[:'include_deleted'].nil?
411
+
412
+ # header parameters
413
+ header_params = opts[:header_params] || {}
414
+ # HTTP header 'Accept' (if needed)
415
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
416
+
417
+ # form parameters
418
+ form_params = opts[:form_params] || {}
419
+
420
+ # http body (model)
421
+ post_body = opts[:debug_body]
422
+
423
+ # return_type
424
+ return_type = opts[:debug_return_type] || 'MailboxItemCursorListResponse'
425
+
426
+ # auth_names
427
+ auth_names = opts[:debug_auth_names] || ['bearerAuth']
428
+
429
+ new_options = opts.merge(
430
+ :operation => :"MailboxesApi.management_list_mailboxes",
431
+ :header_params => header_params,
432
+ :query_params => query_params,
433
+ :form_params => form_params,
434
+ :body => post_body,
435
+ :auth_names => auth_names,
436
+ :return_type => return_type
437
+ )
438
+
439
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
440
+ if @api_client.config.debugging
441
+ @api_client.config.logger.debug "API called: MailboxesApi#management_list_mailboxes\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
442
+ end
443
+ return data, status_code, headers
444
+ end
445
+
446
+ # Resume a mailbox
447
+ # Restores a suspended mailbox so it can authenticate, receive mail, and send from the mailbox address again. The operation is idempotent and accepts `Idempotency-Key` for safe retries.
448
+ # @param public_id [String]
449
+ # @param [Hash] opts the optional parameters
450
+ # @option opts [String] :idempotency_key
451
+ # @return [MailboxItemResponse]
452
+ def management_resume_mailbox(public_id, opts = {})
453
+ data, _status_code, _headers = management_resume_mailbox_with_http_info(public_id, opts)
454
+ data
455
+ end
456
+
457
+ # Resume a mailbox
458
+ # Restores a suspended mailbox so it can authenticate, receive mail, and send from the mailbox address again. The operation is idempotent and accepts &#x60;Idempotency-Key&#x60; for safe retries.
459
+ # @param public_id [String]
460
+ # @param [Hash] opts the optional parameters
461
+ # @option opts [String] :idempotency_key
462
+ # @return [Array<(MailboxItemResponse, Integer, Hash)>] MailboxItemResponse data, response status code and response headers
463
+ def management_resume_mailbox_with_http_info(public_id, opts = {})
464
+ if @api_client.config.debugging
465
+ @api_client.config.logger.debug 'Calling API: MailboxesApi.management_resume_mailbox ...'
466
+ end
467
+ # verify the required parameter 'public_id' is set
468
+ if @api_client.config.client_side_validation && public_id.nil?
469
+ fail ArgumentError, "Missing the required parameter 'public_id' when calling MailboxesApi.management_resume_mailbox"
470
+ end
471
+ if @api_client.config.client_side_validation && !opts[:'idempotency_key'].nil? && opts[:'idempotency_key'].to_s.length > 255
472
+ fail ArgumentError, 'invalid value for "opts[:"idempotency_key"]" when calling MailboxesApi.management_resume_mailbox, the character length must be smaller than or equal to 255.'
473
+ end
474
+
475
+ # resource path
476
+ local_var_path = '/mailboxes/{public_id}/resume'.sub('{public_id}', CGI.escape(public_id.to_s))
477
+
478
+ # query parameters
479
+ query_params = opts[:query_params] || {}
480
+
481
+ # header parameters
482
+ header_params = opts[:header_params] || {}
483
+ # HTTP header 'Accept' (if needed)
484
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
485
+ header_params[:'Idempotency-Key'] = opts[:'idempotency_key'] if !opts[:'idempotency_key'].nil?
486
+
487
+ # form parameters
488
+ form_params = opts[:form_params] || {}
489
+
490
+ # http body (model)
491
+ post_body = opts[:debug_body]
492
+
493
+ # return_type
494
+ return_type = opts[:debug_return_type] || 'MailboxItemResponse'
495
+
496
+ # auth_names
497
+ auth_names = opts[:debug_auth_names] || ['bearerAuth']
498
+
499
+ new_options = opts.merge(
500
+ :operation => :"MailboxesApi.management_resume_mailbox",
501
+ :header_params => header_params,
502
+ :query_params => query_params,
503
+ :form_params => form_params,
504
+ :body => post_body,
505
+ :auth_names => auth_names,
506
+ :return_type => return_type
507
+ )
508
+
509
+ data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
510
+ if @api_client.config.debugging
511
+ @api_client.config.logger.debug "API called: MailboxesApi#management_resume_mailbox\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
512
+ end
513
+ return data, status_code, headers
514
+ end
515
+
516
+ # Suspend a mailbox
517
+ # Suspends a mailbox without deleting messages, credentials, or settings. Suspended mailboxes cannot receive mail, authenticate to mailbox protocols, or send from the mailbox address. The operation is idempotent and accepts `Idempotency-Key` for safe retries.
518
+ # @param public_id [String]
519
+ # @param [Hash] opts the optional parameters
520
+ # @option opts [String] :idempotency_key
521
+ # @return [MailboxItemResponse]
522
+ def management_suspend_mailbox(public_id, opts = {})
523
+ data, _status_code, _headers = management_suspend_mailbox_with_http_info(public_id, opts)
524
+ data
525
+ end
526
+
527
+ # Suspend a mailbox
528
+ # Suspends a mailbox without deleting messages, credentials, or settings. Suspended mailboxes cannot receive mail, authenticate to mailbox protocols, or send from the mailbox address. The operation is idempotent and accepts &#x60;Idempotency-Key&#x60; for safe retries.
529
+ # @param public_id [String]
530
+ # @param [Hash] opts the optional parameters
531
+ # @option opts [String] :idempotency_key
532
+ # @return [Array<(MailboxItemResponse, Integer, Hash)>] MailboxItemResponse data, response status code and response headers
533
+ def management_suspend_mailbox_with_http_info(public_id, opts = {})
534
+ if @api_client.config.debugging
535
+ @api_client.config.logger.debug 'Calling API: MailboxesApi.management_suspend_mailbox ...'
536
+ end
537
+ # verify the required parameter 'public_id' is set
538
+ if @api_client.config.client_side_validation && public_id.nil?
539
+ fail ArgumentError, "Missing the required parameter 'public_id' when calling MailboxesApi.management_suspend_mailbox"
540
+ end
541
+ if @api_client.config.client_side_validation && !opts[:'idempotency_key'].nil? && opts[:'idempotency_key'].to_s.length > 255
542
+ fail ArgumentError, 'invalid value for "opts[:"idempotency_key"]" when calling MailboxesApi.management_suspend_mailbox, the character length must be smaller than or equal to 255.'
543
+ end
544
+
545
+ # resource path
546
+ local_var_path = '/mailboxes/{public_id}/suspend'.sub('{public_id}', CGI.escape(public_id.to_s))
547
+
548
+ # query parameters
549
+ query_params = opts[:query_params] || {}
550
+
551
+ # header parameters
552
+ header_params = opts[:header_params] || {}
553
+ # HTTP header 'Accept' (if needed)
554
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
555
+ header_params[:'Idempotency-Key'] = opts[:'idempotency_key'] if !opts[:'idempotency_key'].nil?
556
+
557
+ # form parameters
558
+ form_params = opts[:form_params] || {}
559
+
560
+ # http body (model)
561
+ post_body = opts[:debug_body]
562
+
563
+ # return_type
564
+ return_type = opts[:debug_return_type] || 'MailboxItemResponse'
565
+
566
+ # auth_names
567
+ auth_names = opts[:debug_auth_names] || ['bearerAuth']
568
+
569
+ new_options = opts.merge(
570
+ :operation => :"MailboxesApi.management_suspend_mailbox",
571
+ :header_params => header_params,
572
+ :query_params => query_params,
573
+ :form_params => form_params,
574
+ :body => post_body,
575
+ :auth_names => auth_names,
576
+ :return_type => return_type
577
+ )
578
+
579
+ data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
580
+ if @api_client.config.debugging
581
+ @api_client.config.logger.debug "API called: MailboxesApi#management_suspend_mailbox\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
582
+ end
583
+ return data, status_code, headers
584
+ end
585
+
586
+ # Update a mailbox
587
+ # Updates any combination of display_name, quota_bytes, and send_scope on a mailbox. The display_name and send_scope changes land in a single transaction; quota_bytes is applied afterwards because it also updates external state on our mail platform. Quota can only be set to 1073741824 (1 GB), 5368709120 (5 GB), or 53687091200 (50 GB), and cannot be shrunk below the mailbox's current usage. 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.
588
+ # @param public_id [String]
589
+ # @param [Hash] opts the optional parameters
590
+ # @option opts [String] :if_match
591
+ # @option opts [UpdateMailboxBody] :update_mailbox_body
592
+ # @return [MailboxItemResponse]
593
+ def management_update_mailbox(public_id, opts = {})
594
+ data, _status_code, _headers = management_update_mailbox_with_http_info(public_id, opts)
595
+ data
596
+ end
597
+
598
+ # Update a mailbox
599
+ # Updates any combination of display_name, quota_bytes, and send_scope on a mailbox. The display_name and send_scope changes land in a single transaction; quota_bytes is applied afterwards because it also updates external state on our mail platform. Quota can only be set to 1073741824 (1 GB), 5368709120 (5 GB), or 53687091200 (50 GB), and cannot be shrunk below the mailbox&#39;s current usage. 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.
600
+ # @param public_id [String]
601
+ # @param [Hash] opts the optional parameters
602
+ # @option opts [String] :if_match
603
+ # @option opts [UpdateMailboxBody] :update_mailbox_body
604
+ # @return [Array<(MailboxItemResponse, Integer, Hash)>] MailboxItemResponse data, response status code and response headers
605
+ def management_update_mailbox_with_http_info(public_id, opts = {})
606
+ if @api_client.config.debugging
607
+ @api_client.config.logger.debug 'Calling API: MailboxesApi.management_update_mailbox ...'
608
+ end
609
+ # verify the required parameter 'public_id' is set
610
+ if @api_client.config.client_side_validation && public_id.nil?
611
+ fail ArgumentError, "Missing the required parameter 'public_id' when calling MailboxesApi.management_update_mailbox"
612
+ end
613
+ # resource path
614
+ local_var_path = '/mailboxes/{public_id}'.sub('{public_id}', CGI.escape(public_id.to_s))
615
+
616
+ # query parameters
617
+ query_params = opts[:query_params] || {}
618
+
619
+ # header parameters
620
+ header_params = opts[:header_params] || {}
621
+ # HTTP header 'Accept' (if needed)
622
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
623
+ # HTTP header 'Content-Type'
624
+ content_type = @api_client.select_header_content_type(['application/json'])
625
+ if !content_type.nil?
626
+ header_params['Content-Type'] = content_type
627
+ end
628
+ header_params[:'If-Match'] = opts[:'if_match'] if !opts[:'if_match'].nil?
629
+
630
+ # form parameters
631
+ form_params = opts[:form_params] || {}
632
+
633
+ # http body (model)
634
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(opts[:'update_mailbox_body'])
635
+
636
+ # return_type
637
+ return_type = opts[:debug_return_type] || 'MailboxItemResponse'
638
+
639
+ # auth_names
640
+ auth_names = opts[:debug_auth_names] || ['bearerAuth']
641
+
642
+ new_options = opts.merge(
643
+ :operation => :"MailboxesApi.management_update_mailbox",
644
+ :header_params => header_params,
645
+ :query_params => query_params,
646
+ :form_params => form_params,
647
+ :body => post_body,
648
+ :auth_names => auth_names,
649
+ :return_type => return_type
650
+ )
651
+
652
+ data, status_code, headers = @api_client.call_api(:PATCH, local_var_path, new_options)
653
+ if @api_client.config.debugging
654
+ @api_client.config.logger.debug "API called: MailboxesApi#management_update_mailbox\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
655
+ end
656
+ return data, status_code, headers
657
+ end
658
+ end
659
+ end