sendpost_ruby_sdk 1.0.1 → 2.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 (287) hide show
  1. checksums.yaml +4 -4
  2. data/LICENSE +21 -0
  3. data/README.md +626 -82
  4. data/docs/AccountStats.md +20 -0
  5. data/docs/AccountStatsStat.md +38 -0
  6. data/docs/AggregateStat.md +38 -0
  7. data/docs/AggregateStats.md +38 -0
  8. data/docs/AggregatedEmailStats.md +38 -0
  9. data/docs/Attachment.md +4 -4
  10. data/docs/AutoWarmupPlan.md +80 -0
  11. data/docs/CopyTo.md +5 -5
  12. data/docs/CreateDomainRequest.md +18 -0
  13. data/docs/CreateSubAccountRequest.md +18 -0
  14. data/docs/CreateSuppressionRequest.md +24 -0
  15. data/docs/CreateSuppressionRequestHardBounceInner.md +18 -0
  16. data/docs/{SuppressionEmail.md → CreateSuppressionRequestManualInner.md} +3 -3
  17. data/docs/CreateSuppressionRequestSpamComplaintInner.md +18 -0
  18. data/docs/CreateSuppressionRequestUnsubscribeInner.md +18 -0
  19. data/docs/CreateWebhookRequest.md +46 -0
  20. data/docs/DeleteResponse.md +2 -2
  21. data/docs/DeleteSubAccountResponse.md +20 -0
  22. data/docs/DeleteSuppression200ResponseInner.md +20 -0
  23. data/docs/DeleteSuppressionRequest.md +18 -0
  24. data/docs/DeleteWebhookResponse.md +20 -0
  25. data/docs/Device.md +1 -1
  26. data/docs/Domain.md +56 -0
  27. data/docs/DomainApi.md +301 -0
  28. data/docs/DomainDkim.md +22 -0
  29. data/docs/DomainDmarc.md +22 -0
  30. data/docs/DomainGpt.md +22 -0
  31. data/docs/DomainReturnPath.md +22 -0
  32. data/docs/DomainTrack.md +22 -0
  33. data/docs/EIP.md +18 -0
  34. data/docs/{From.md → EmailAddress.md} +4 -4
  35. data/docs/EmailApi.md +38 -32
  36. data/docs/EmailMessage.md +30 -24
  37. data/docs/EmailMessageFrom.md +20 -0
  38. data/docs/EmailMessageObject.md +46 -0
  39. data/docs/{ReplyTo.md → EmailMessageReplyTo.md} +5 -5
  40. data/docs/EmailMessageToInner.md +26 -0
  41. data/docs/EmailMessageToInnerBccInner.md +22 -0
  42. data/docs/EmailMessageToInnerCcInner.md +22 -0
  43. data/docs/EmailMessageWithTemplate.md +52 -0
  44. data/docs/EmailResponse.md +8 -8
  45. data/docs/EmailStats.md +20 -0
  46. data/docs/EmailStatsStats.md +38 -0
  47. data/docs/Event.md +56 -0
  48. data/docs/EventMetadata.md +13 -9
  49. data/docs/{City.md → GeoLocation.md} +8 -8
  50. data/docs/IP.md +62 -0
  51. data/docs/IPAllocationRequest.md +20 -0
  52. data/docs/IPApi.md +375 -0
  53. data/docs/IPDeletionResponse.md +20 -0
  54. data/docs/IPPool.md +42 -0
  55. data/docs/IPPoolCreateRequest.md +28 -0
  56. data/docs/IPPoolDeleteResponse.md +20 -0
  57. data/docs/IPPoolUpdateRequest.md +24 -0
  58. data/docs/IPPoolsApi.md +361 -0
  59. data/docs/IPUpdateRequest.md +18 -0
  60. data/docs/Label.md +22 -0
  61. data/docs/Member.md +40 -0
  62. data/docs/Message.md +76 -0
  63. data/docs/MessageApi.md +79 -0
  64. data/docs/MessageHeaderTo.md +26 -0
  65. data/docs/MessageTo.md +26 -0
  66. data/docs/{Os.md → OperatingSystem.md} +7 -7
  67. data/docs/Person.md +20 -0
  68. data/docs/{To.md → Recipient.md} +7 -7
  69. data/docs/SMTPAuth.md +26 -0
  70. data/docs/Stat.md +20 -0
  71. data/docs/StatStats.md +38 -0
  72. data/docs/StatsAApi.md +307 -0
  73. data/docs/StatsApi.md +237 -0
  74. data/docs/SubAccount.md +48 -0
  75. data/docs/SubAccountApi.md +375 -0
  76. data/docs/Suppression.md +8 -8
  77. data/docs/SuppressionApi.md +76 -134
  78. data/docs/ThirdPartySendingProvider.md +38 -0
  79. data/docs/UpdateSubAccount.md +18 -0
  80. data/docs/UpdateWebhook.md +46 -0
  81. data/docs/UserAgent.md +4 -4
  82. data/docs/Webhook.md +54 -0
  83. data/docs/WebhookApi.md +375 -0
  84. data/git_push.sh +2 -2
  85. data/lib/sendpost_ruby_sdk/api/domain_api.rb +290 -0
  86. data/lib/sendpost_ruby_sdk/api/email_api.rb +33 -35
  87. data/lib/sendpost_ruby_sdk/api/ip_api.rb +356 -0
  88. data/lib/sendpost_ruby_sdk/api/ip_pools_api.rb +356 -0
  89. data/lib/sendpost_ruby_sdk/api/message_api.rb +85 -0
  90. data/lib/sendpost_ruby_sdk/api/stats_a_api.rb +320 -0
  91. data/lib/sendpost_ruby_sdk/api/stats_api.rb +260 -0
  92. data/lib/sendpost_ruby_sdk/api/sub_account_api.rb +356 -0
  93. data/lib/sendpost_ruby_sdk/api/suppression_api.rb +81 -141
  94. data/lib/sendpost_ruby_sdk/api/webhook_api.rb +356 -0
  95. data/lib/sendpost_ruby_sdk/api_client.rb +26 -24
  96. data/lib/sendpost_ruby_sdk/api_error.rb +3 -3
  97. data/lib/sendpost_ruby_sdk/configuration.rb +39 -12
  98. data/lib/sendpost_ruby_sdk/models/account_stats.rb +229 -0
  99. data/lib/sendpost_ruby_sdk/models/account_stats_stat.rb +310 -0
  100. data/lib/sendpost_ruby_sdk/models/aggregate_stat.rb +321 -0
  101. data/lib/sendpost_ruby_sdk/models/aggregate_stats.rb +310 -0
  102. data/lib/sendpost_ruby_sdk/models/aggregated_email_stats.rb +321 -0
  103. data/lib/sendpost_ruby_sdk/models/attachment.rb +27 -24
  104. data/lib/sendpost_ruby_sdk/models/auto_warmup_plan.rb +531 -0
  105. data/lib/sendpost_ruby_sdk/models/copy_to.rb +40 -36
  106. data/lib/sendpost_ruby_sdk/models/create_domain_request.rb +221 -0
  107. data/lib/sendpost_ruby_sdk/models/create_sub_account_request.rb +221 -0
  108. data/lib/sendpost_ruby_sdk/models/create_suppression_request.rb +259 -0
  109. data/lib/sendpost_ruby_sdk/models/create_suppression_request_hard_bounce_inner.rb +220 -0
  110. data/lib/sendpost_ruby_sdk/models/create_suppression_request_manual_inner.rb +220 -0
  111. data/lib/sendpost_ruby_sdk/models/create_suppression_request_spam_complaint_inner.rb +220 -0
  112. data/lib/sendpost_ruby_sdk/models/create_suppression_request_unsubscribe_inner.rb +220 -0
  113. data/lib/sendpost_ruby_sdk/models/create_webhook_request.rb +361 -0
  114. data/lib/sendpost_ruby_sdk/models/delete_response.rb +27 -24
  115. data/lib/sendpost_ruby_sdk/models/delete_sub_account_response.rb +231 -0
  116. data/lib/sendpost_ruby_sdk/models/delete_suppression200_response_inner.rb +231 -0
  117. data/lib/sendpost_ruby_sdk/models/delete_suppression_request.rb +222 -0
  118. data/lib/sendpost_ruby_sdk/models/delete_webhook_response.rb +231 -0
  119. data/lib/sendpost_ruby_sdk/models/device.rb +25 -24
  120. data/lib/sendpost_ruby_sdk/models/domain.rb +406 -0
  121. data/lib/sendpost_ruby_sdk/models/domain_dkim.rb +239 -0
  122. data/lib/sendpost_ruby_sdk/models/domain_dmarc.rb +239 -0
  123. data/lib/sendpost_ruby_sdk/models/domain_gpt.rb +239 -0
  124. data/lib/sendpost_ruby_sdk/models/domain_return_path.rb +239 -0
  125. data/lib/sendpost_ruby_sdk/models/domain_track.rb +239 -0
  126. data/lib/sendpost_ruby_sdk/models/eip.rb +238 -0
  127. data/lib/sendpost_ruby_sdk/models/email_address.rb +229 -0
  128. data/lib/sendpost_ruby_sdk/models/email_message.rb +133 -103
  129. data/lib/sendpost_ruby_sdk/models/email_message_from.rb +229 -0
  130. data/lib/sendpost_ruby_sdk/models/email_message_object.rb +354 -0
  131. data/lib/sendpost_ruby_sdk/models/email_message_reply_to.rb +229 -0
  132. data/lib/sendpost_ruby_sdk/models/email_message_to_inner.rb +262 -0
  133. data/lib/sendpost_ruby_sdk/models/email_message_to_inner_bcc_inner.rb +240 -0
  134. data/lib/sendpost_ruby_sdk/models/email_message_to_inner_cc_inner.rb +240 -0
  135. data/lib/sendpost_ruby_sdk/models/email_message_with_template.rb +392 -0
  136. data/lib/sendpost_ruby_sdk/models/email_response.rb +52 -49
  137. data/lib/sendpost_ruby_sdk/models/email_stats.rb +230 -0
  138. data/lib/sendpost_ruby_sdk/models/email_stats_stats.rb +321 -0
  139. data/lib/sendpost_ruby_sdk/models/event.rb +393 -0
  140. data/lib/sendpost_ruby_sdk/models/event_metadata.rb +77 -58
  141. data/lib/sendpost_ruby_sdk/models/geo_location.rb +256 -0
  142. data/lib/sendpost_ruby_sdk/models/ip.rb +491 -0
  143. data/lib/sendpost_ruby_sdk/models/ip_allocation_request.rb +266 -0
  144. data/lib/sendpost_ruby_sdk/models/ip_deletion_response.rb +265 -0
  145. data/lib/sendpost_ruby_sdk/models/ip_pool.rb +335 -0
  146. data/lib/sendpost_ruby_sdk/models/ip_pool_create_request.rb +269 -0
  147. data/lib/sendpost_ruby_sdk/models/ip_pool_delete_response.rb +229 -0
  148. data/lib/sendpost_ruby_sdk/models/ip_pool_update_request.rb +249 -0
  149. data/lib/sendpost_ruby_sdk/models/ip_update_request.rb +238 -0
  150. data/lib/sendpost_ruby_sdk/models/label.rb +241 -0
  151. data/lib/sendpost_ruby_sdk/models/member.rb +331 -0
  152. data/lib/sendpost_ruby_sdk/models/message.rb +523 -0
  153. data/lib/sendpost_ruby_sdk/models/message_header_to.rb +268 -0
  154. data/lib/sendpost_ruby_sdk/models/message_to.rb +268 -0
  155. data/lib/sendpost_ruby_sdk/models/operating_system.rb +256 -0
  156. data/lib/sendpost_ruby_sdk/models/person.rb +231 -0
  157. data/lib/sendpost_ruby_sdk/models/recipient.rb +263 -0
  158. data/lib/sendpost_ruby_sdk/models/smtp_auth.rb +261 -0
  159. data/lib/sendpost_ruby_sdk/models/stat.rb +230 -0
  160. data/lib/sendpost_ruby_sdk/models/stat_stats.rb +321 -0
  161. data/lib/sendpost_ruby_sdk/models/sub_account.rb +415 -0
  162. data/lib/sendpost_ruby_sdk/models/suppression.rb +52 -46
  163. data/lib/sendpost_ruby_sdk/models/third_party_sending_provider.rb +310 -0
  164. data/lib/sendpost_ruby_sdk/models/update_sub_account.rb +221 -0
  165. data/lib/sendpost_ruby_sdk/models/update_webhook.rb +368 -0
  166. data/lib/sendpost_ruby_sdk/models/user_agent.rb +25 -24
  167. data/lib/sendpost_ruby_sdk/models/webhook.rb +405 -0
  168. data/lib/sendpost_ruby_sdk/version.rb +4 -4
  169. data/lib/sendpost_ruby_sdk.rb +72 -15
  170. data/spec/api/domain_api_spec.rb +85 -0
  171. data/spec/api/email_api_spec.rb +9 -9
  172. data/spec/api/ip_api_spec.rb +98 -0
  173. data/spec/api/ip_pools_api_spec.rb +98 -0
  174. data/spec/api/message_api_spec.rb +47 -0
  175. data/spec/api/stats_a_api_spec.rb +89 -0
  176. data/spec/api/stats_api_spec.rb +78 -0
  177. data/spec/api/sub_account_api_spec.rb +98 -0
  178. data/spec/api/suppression_api_spec.rb +22 -34
  179. data/spec/api/webhook_api_spec.rb +98 -0
  180. data/spec/models/account_stats_spec.rb +42 -0
  181. data/spec/models/account_stats_stat_spec.rb +96 -0
  182. data/spec/models/aggregate_stat_spec.rb +96 -0
  183. data/spec/models/aggregate_stats_spec.rb +96 -0
  184. data/spec/models/aggregated_email_stats_spec.rb +96 -0
  185. data/spec/models/attachment_spec.rb +6 -4
  186. data/spec/models/auto_warmup_plan_spec.rb +222 -0
  187. data/spec/models/copy_to_spec.rb +8 -6
  188. data/spec/models/create_domain_request_spec.rb +36 -0
  189. data/spec/models/create_sub_account_request_spec.rb +36 -0
  190. data/spec/models/create_suppression_request_hard_bounce_inner_spec.rb +36 -0
  191. data/spec/models/create_suppression_request_manual_inner_spec.rb +36 -0
  192. data/spec/models/create_suppression_request_spam_complaint_inner_spec.rb +36 -0
  193. data/spec/models/create_suppression_request_spec.rb +54 -0
  194. data/spec/models/create_suppression_request_unsubscribe_inner_spec.rb +36 -0
  195. data/spec/models/create_webhook_request_spec.rb +120 -0
  196. data/spec/models/delete_response_spec.rb +6 -4
  197. data/spec/models/delete_sub_account_response_spec.rb +42 -0
  198. data/spec/models/delete_suppression200_response_inner_spec.rb +42 -0
  199. data/spec/models/delete_suppression_request_spec.rb +36 -0
  200. data/spec/models/delete_webhook_response_spec.rb +42 -0
  201. data/spec/models/device_spec.rb +6 -4
  202. data/spec/models/domain_dkim_spec.rb +48 -0
  203. data/spec/models/domain_dmarc_spec.rb +48 -0
  204. data/spec/models/domain_gpt_spec.rb +48 -0
  205. data/spec/models/domain_return_path_spec.rb +48 -0
  206. data/spec/models/domain_spec.rb +150 -0
  207. data/spec/models/domain_track_spec.rb +48 -0
  208. data/spec/models/eip_spec.rb +36 -0
  209. data/spec/models/email_address_spec.rb +42 -0
  210. data/spec/models/email_message_from_spec.rb +42 -0
  211. data/spec/models/email_message_object_spec.rb +120 -0
  212. data/spec/models/email_message_reply_to_spec.rb +42 -0
  213. data/spec/models/email_message_spec.rb +37 -17
  214. data/spec/models/email_message_to_inner_bcc_inner_spec.rb +48 -0
  215. data/spec/models/email_message_to_inner_cc_inner_spec.rb +48 -0
  216. data/spec/models/email_message_to_inner_spec.rb +60 -0
  217. data/spec/models/email_message_with_template_spec.rb +138 -0
  218. data/spec/models/email_response_spec.rb +10 -8
  219. data/spec/models/email_stats_spec.rb +42 -0
  220. data/spec/models/email_stats_stats_spec.rb +96 -0
  221. data/spec/models/event_metadata_spec.rb +24 -10
  222. data/spec/models/event_spec.rb +150 -0
  223. data/spec/models/geo_location_spec.rb +60 -0
  224. data/spec/models/ip_allocation_request_spec.rb +42 -0
  225. data/spec/models/ip_deletion_response_spec.rb +42 -0
  226. data/spec/models/ip_pool_create_request_spec.rb +66 -0
  227. data/spec/models/ip_pool_delete_response_spec.rb +42 -0
  228. data/spec/models/ip_pool_spec.rb +108 -0
  229. data/spec/models/ip_pool_update_request_spec.rb +54 -0
  230. data/spec/models/ip_spec.rb +168 -0
  231. data/spec/models/ip_update_request_spec.rb +36 -0
  232. data/spec/models/label_spec.rb +48 -0
  233. data/spec/models/member_spec.rb +102 -0
  234. data/spec/models/message_header_to_spec.rb +60 -0
  235. data/spec/models/message_spec.rb +210 -0
  236. data/spec/models/message_to_spec.rb +60 -0
  237. data/spec/models/operating_system_spec.rb +60 -0
  238. data/spec/models/person_spec.rb +42 -0
  239. data/spec/models/recipient_spec.rb +60 -0
  240. data/spec/models/smtp_auth_spec.rb +60 -0
  241. data/spec/models/stat_spec.rb +42 -0
  242. data/spec/models/stat_stats_spec.rb +96 -0
  243. data/spec/models/sub_account_spec.rb +130 -0
  244. data/spec/models/suppression_spec.rb +11 -9
  245. data/spec/models/third_party_sending_provider_spec.rb +96 -0
  246. data/spec/models/update_sub_account_spec.rb +36 -0
  247. data/spec/models/update_webhook_spec.rb +120 -0
  248. data/spec/models/user_agent_spec.rb +6 -4
  249. data/spec/models/webhook_spec.rb +144 -0
  250. data/spec/spec_helper.rb +3 -3
  251. metadata +288 -67
  252. data/config-ruby.json +0 -11
  253. data/docs/CountStat.md +0 -18
  254. data/docs/QEmailMessage.md +0 -70
  255. data/docs/QEvent.md +0 -42
  256. data/docs/RDSuppression.md +0 -18
  257. data/docs/RSuppression.md +0 -24
  258. data/docs/WebhookEvent.md +0 -20
  259. data/generate-libs.bash +0 -1
  260. data/lib/sendpost_ruby_sdk/models/city.rb +0 -255
  261. data/lib/sendpost_ruby_sdk/models/count_stat.rb +0 -219
  262. data/lib/sendpost_ruby_sdk/models/from.rb +0 -228
  263. data/lib/sendpost_ruby_sdk/models/os.rb +0 -255
  264. data/lib/sendpost_ruby_sdk/models/q_email_message.rb +0 -461
  265. data/lib/sendpost_ruby_sdk/models/q_event.rb +0 -329
  266. data/lib/sendpost_ruby_sdk/models/r_suppression.rb +0 -254
  267. data/lib/sendpost_ruby_sdk/models/rd_suppression.rb +0 -221
  268. data/lib/sendpost_ruby_sdk/models/reply_to.rb +0 -228
  269. data/lib/sendpost_ruby_sdk/models/suppression_email.rb +0 -219
  270. data/lib/sendpost_ruby_sdk/models/to.rb +0 -259
  271. data/lib/sendpost_ruby_sdk/models/webhook_event.rb +0 -228
  272. data/sendpost.yaml +0 -662
  273. data/sendpost_ruby_sdk.gemspec +0 -38
  274. data/spec/api_client_spec.rb +0 -228
  275. data/spec/configuration_spec.rb +0 -42
  276. data/spec/models/city_spec.rb +0 -58
  277. data/spec/models/count_stat_spec.rb +0 -34
  278. data/spec/models/from_spec.rb +0 -40
  279. data/spec/models/os_spec.rb +0 -58
  280. data/spec/models/q_email_message_spec.rb +0 -190
  281. data/spec/models/q_event_spec.rb +0 -106
  282. data/spec/models/r_suppression_spec.rb +0 -52
  283. data/spec/models/rd_suppression_spec.rb +0 -34
  284. data/spec/models/reply_to_spec.rb +0 -40
  285. data/spec/models/suppression_email_spec.rb +0 -34
  286. data/spec/models/to_spec.rb +0 -58
  287. data/spec/models/webhook_event_spec.rb +0 -40
@@ -1,12 +1,12 @@
1
1
  =begin
2
2
  #SendPost API
3
3
 
4
- #Email API and SMTP relay to not just send and measure email sending, but also alert and optimise. We provide you with tools, expertise and support needed to reliably deliver emails to your customers inboxes on time, every time.
4
+ ## Introduction SendPost provides email API and SMTP relay which can be used not just to send & measure but also alert & optimised email sending. You can use SendPost to: * Send personalised emails to multiple recipients using email API * Track opens and clicks * Analyse statistics around open, clicks, bounce, unsubscribe and spam At and advanced level you can use it to: * Manage multiple sub-accounts which may map to your promotional or transactional sending, multiple product lines or multiple customers * Classify your emails using groups for better analysis * Analyse and fix email sending at sub-account level, IP Pool level or group level * Have automated alerts to notify disruptions regarding email sending * Manage different dedicated IP Pools so to better control your email sending * Automatically know when IP or domain is blacklisted or sender score is down * Leverage pro deliverability tools to get significantly better email deliverability & inboxing [<img src=\"https://run.pstmn.io/button.svg\" alt=\"Run In Postman\" style=\"width: 128px; height: 32px;\">](https://god.gw.postman.com/run-collection/33476323-e6dbd27f-c4a7-4d49-bcac-94b0611b938b?action=collection%2Ffork&source=rip_markdown&collection-url=entityId%3D33476323-e6dbd27f-c4a7-4d49-bcac-94b0611b938b%26entityType%3Dcollection%26workspaceId%3D6b1e4f65-96a9-4136-9512-6266c852517e) # Overview ## REST API SendPost API is built on REST API principles. Authenticated users can interact with any of the API endpoints to perform: * **GET**- to get a resource * **POST** - to create a resource * **PUT** - to update an existing resource * **DELETE** - to delete a resource The API endpoint for all API calls is: <code>https://api.sendpost.io/api/v1</code> Some conventions that have been followed in the API design overall are following: * All resources have either <code>/api/v1/subaccount</code> or <code>/api/v1/account</code> in their API call resource path based on who is authorised for the resource. All API calls with path <code>/api/v1/subaccount</code> use <code>X-SubAccount-ApiKey</code> in their request header. Likewise all API calls with path <code>/api/v1/account</code> use <code>X-Account-ApiKey</code> in their request header. * All resource endpoints end with singular name and not plural. So we have <code>domain</code> instead of domains for domain resource endpoint. Likewise we have <code>sender</code> instead of senders for sender resource endpoint. * Body submitted for POST / PUT API calls as well as JSON response from SendPost API follow camelcase convention * All timestamps returned in response (created or submittedAt response fields) are UNIX nano epoch timestamp. <aside class=\"success\"> All resources have either <code>/api/v1/subaccount</code> or <code>/api/v1/account</code> in their API call resource path based on who is authorised for the resource. All API calls with path <code>/api/v1/subaccount</code> use <code>X-SubAccount-ApiKey</code> in their request header. Likewise all API calls with path <code>/api/v1/account</code> use <code>X-Account-ApiKey</code> in their request header. </aside> SendPost uses conventional HTTP response codes to indicate the success or failure of an API request. * Codes in the <code>2xx</code> range indicate success. * Codes in the <code>4xx</code> range indicate an error owing due to unauthorize access, incorrect request parameters or body etc. * Code in the <code>5xx</code> range indicate an eror with SendPost's servers ( internal service issue or maintenance ) <aside class=\"info\"> SendPost all responses return <code>created</code> in UNIX nano epoch timestamp. </aside> ## Authentication SendPost uses API keys for authentication. You can register a new SendPost API key at our [developer portal](https://app.sendpost.io/register). SendPost expects the API key to be included in all API requests to the server in a header that looks like the following: `X-SubAccount-ApiKey: AHEZEP8192SEGH` This API key is used for all Sub-Account level operations such as: * Sending emails * Retrieving stats regarding open, click, bounce, unsubscribe and spam * Uploading suppressions list * Verifying sending domains and more In addition to <code>X-SubAccount-ApiKey</code> you also have another API Key <code>X-Account-APIKey</code> which is used for Account level operations such as : * Creating and managing sub-accounts * Allocating IPs for your account * Getting overall billing and usage information * Email List validation * Creating and managing alerts and more <aside class=\"notice\"> You must look at individual API reference page to look at whether <code>X-SubAccount-ApiKey</code> is required or <code>X-Account-ApiKey</code> </aside> In case an incorrect API Key header is specified or if it is missed you will get HTTP Response 401 ( Unauthorized ) response from SendPost. ## HTTP Response Headers Code | Reason | Details ---------------| -----------------------| ----------- 200 | Success | Everything went well 401 | Unauthorized | Incorrect or missing API header either <code>X-SubAccount-ApiKey</code> or <code>X-Account-ApiKey</code> 403 | Forbidden | Typically sent when resource with same name or details already exist 406 | Missing resource id | Resource id specified is either missing or doesn't exist 422 | Unprocessable entity | Request body is not in proper format 500 | Internal server error | Some error happened at SendPost while processing API request 503 | Service Unavailable | SendPost is offline for maintenance. Please try again later # API SDKs We have native SendPost SDKs in the following programming languages. You can integrate with them or create your own SDK with our API specification. In case you need any assistance with respect to API then do reachout to our team from website chat or email us at **hello@sendpost.io** * [PHP](https://github.com/sendpost/sendpost_php_sdk) * [Javascript](https://github.com/sendpost/sendpost_javascript_sdk) * [Ruby](https://github.com/sendpost/sendpost_ruby_sdk) * [Python](https://github.com/sendpost/sendpost_python_sdk) * [Golang](https://github.com/sendpost/sendpost_go_sdk) # API Reference SendX REST API can be broken down into two major sub-sections: * Sub-Account * Account Sub-Account API operations enable common email sending API use-cases like sending bulk email, adding new domains or senders for email sending programmatically, retrieving stats, adding suppressions etc. All Sub-Account API operations need to pass <code>X-SubAccount-ApiKey</code> header with every API call. The Account API operations allow users to manage multiple sub-accounts and manage IPs. A single parent SendPost account can have 100's of sub-accounts. You may want to create sub-accounts for different products your company is running or to segregate types of emails or for managing email sending across multiple customers of yours. # SMTP Reference Simple Mail Transfer Protocol (SMTP) is a quick and easy way to send email from one server to another. SendPost provides an SMTP service that allows you to deliver your email via our servers instead of your own client or server. This means you can count on SendPost's delivery at scale for your SMTP needs. ## Integrating SMTP 1. Get the SMTP `username` and `password` from your SendPost account. 2. Set the server host in your email client or application to `smtp.sendpost.io`. This setting is sometimes referred to as the external SMTP server or the SMTP relay. 3. Set the `username` and `password`. 4. Set the port to `587` (or as specified below). ## SMTP Ports - For an unencrypted or a TLS connection, use port `25`, `2525` or `587`. - For a SSL connection, use port `465` - Check your firewall and network to ensure they're not blocking any of our SMTP Endpoints. SendPost supports STARTTLS for establishing a TLS-encrypted connection. STARTTLS is a means of upgrading an unencrypted connection to an encrypted connection. There are versions of STARTTLS for a variety of protocols; the SMTP version is defined in [RFC 3207](https://www.ietf.org/rfc/rfc3207.txt). To set up a STARTTLS connection, the SMTP client connects to the SendPost SMTP endpoint `smtp.sendpost.io` on port 25, 587, or 2525, issues an EHLO command, and waits for the server to announce that it supports the STARTTLS SMTP extension. The client then issues the STARTTLS command, initiating TLS negotiation. When negotiation is complete, the client issues an EHLO command over the new encrypted connection, and the SMTP session proceeds normally. <aside class=\"success\"> If you are unsure which port to use, a TLS connection on port 587 is typically recommended. </aside> ## Sending email from your application ```javascript \"use strict\"; const nodemailer = require(\"nodemailer\"); async function main() { // create reusable transporter object using the default SMTP transport let transporter = nodemailer.createTransport({ host: \"smtp.sendpost.io\", port: 587, secure: false, // true for 465, false for other ports auth: { user: \"<username>\" , // generated ethereal user pass: \"<password>\", // generated ethereal password }, requireTLS: true, debug: true, logger: true, }); // send mail with defined transport object try { let info = await transporter.sendMail({ from: 'erlich@piedpiper.com', to: 'gilfoyle@piedpiper.com', subject: 'Test Email Subject', html: '<h1>Hello Geeks!!!</h1>', }); console.log(\"Message sent: %s\", info.messageId); } catch (e) { console.log(e) } } main().catch(console.error); ``` For PHP ```php <?php // Import PHPMailer classes into the global namespace use PHPMailer\\PHPMailer\\PHPMailer; use PHPMailer\\PHPMailer\\SMTP; use PHPMailer\\PHPMailer\\Exception; // Load Composer's autoloader require 'vendor/autoload.php'; $mail = new PHPMailer(true); // Settings try { $mail->SMTPDebug = SMTP::DEBUG_CONNECTION; // Enable verbose debug output $mail->isSMTP(); // Send using SMTP $mail->Host = 'smtp.sendpost.io'; // Set the SMTP server to send through $mail->SMTPAuth = true; // Enable SMTP authentication $mail->Username = '<username>'; // SMTP username $mail->Password = '<password>'; // SMTP password $mail->SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS; // Enable implicit TLS encryption $mail->Port = 587; // TCP port to connect to; use 587 if you have set `SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS` //Recipients $mail->setFrom('erlich@piedpiper.com', 'Erlich'); $mail->addAddress('gilfoyle@piedpiper.com', 'Gilfoyle'); //Content $mail->isHTML(true); //Set email format to HTML $mail->Subject = 'Here is the subject'; $mail->Body = 'This is the HTML message body <b>in bold!</b>'; $mail->AltBody = 'This is the body in plain text for non-HTML mail clients'; $mail->send(); echo 'Message has been sent'; } catch (Exception $e) { echo \"Message could not be sent. Mailer Error: {$mail->ErrorInfo}\"; } ``` For Python ```python #!/usr/bin/python3 import sys import os import re from smtplib import SMTP import ssl from email.mime.text import MIMEText SMTPserver = 'smtp.sendpost.io' PORT = 587 sender = 'erlich@piedpiper.com' destination = ['gilfoyle@piedpiper.com'] USERNAME = \"<username>\" PASSWORD = \"<password>\" # typical values for text_subtype are plain, html, xml text_subtype = 'plain' content=\"\"\"\\ Test message \"\"\" subject=\"Sent from Python\" try: msg = MIMEText(content, text_subtype) msg['Subject']= subject msg['From'] = sender conn = SMTP(SMTPserver, PORT) conn.ehlo() context = ssl.create_default_context() conn.starttls(context=context) # upgrade to tls conn.ehlo() conn.set_debuglevel(True) conn.login(USERNAME, PASSWORD) try: resp = conn.sendmail(sender, destination, msg.as_string()) print(\"Send Mail Response: \", resp) except Exception as e: print(\"Send Email Error: \", e) finally: conn.quit() except Exception as e: print(\"Error:\", e) ``` For Golang ```go package main import ( \"fmt\" \"net/smtp\" \"os\" ) // Sending Email Using Smtp in Golang func main() { username := \"<username>\" password := \"<password>\" from := \"erlich@piedpiper.com\" toList := []string{\"gilfoyle@piedpiper.com\"} host := \"smtp.sendpost.io\" port := \"587\" // recommended // This is the message to send in the mail msg := \"Hello geeks!!!\" // We can't send strings directly in mail, // strings need to be converted into slice bytes body := []byte(msg) // PlainAuth uses the given username and password to // authenticate to host and act as identity. // Usually identity should be the empty string, // to act as username. auth := smtp.PlainAuth(\"\", username, password, host) // SendMail uses TLS connection to send the mail // The email is sent to all address in the toList, // the body should be of type bytes, not strings // This returns error if any occured. err := smtp.SendMail(host+\":\"+port, auth, from, toList, body) // handling the errors if err != nil { fmt.Println(err) os.Exit(1) } fmt.Println(\"Successfully sent mail to all user in toList\") } ``` For Java ```java // implementation 'com.sun.mail:javax.mail:1.6.2' import java.util.Properties; import javax.mail.Message; import javax.mail.Session; import javax.mail.Transport; import javax.mail.internet.InternetAddress; import javax.mail.internet.MimeMessage; public class SMTPConnect { // This address must be verified. static final String FROM = \"erlich@piedpiper.com\"; static final String FROMNAME = \"Erlich Bachman\"; // Replace recipient@example.com with a \"To\" address. If your account // is still in the sandbox, this address must be verified. static final String TO = \"gilfoyle@piedpiper.com\"; // Replace smtp_username with your SendPost SMTP user name. static final String SMTP_USERNAME = \"<username>\"; // Replace smtp_password with your SendPost SMTP password. static final String SMTP_PASSWORD = \"<password>\"; // SMTP Host Name static final String HOST = \"smtp.sendpost.io\"; // The port you will connect to on SendPost SMTP Endpoint. static final int PORT = 587; static final String SUBJECT = \"SendPost SMTP Test (SMTP interface accessed using Java)\"; static final String BODY = String.join( System.getProperty(\"line.separator\"), \"<h1>SendPost SMTP Test</h1>\", \"<p>This email was sent with SendPost using the \", \"<a href='https://github.com/eclipse-ee4j/mail'>Javamail Package</a>\", \" for <a href='https://www.java.com'>Java</a>.\" ); public static void main(String[] args) throws Exception { // Create a Properties object to contain connection configuration information. Properties props = System.getProperties(); props.put(\"mail.transport.protocol\", \"smtp\"); props.put(\"mail.smtp.port\", PORT); props.put(\"mail.smtp.starttls.enable\", \"true\"); props.put(\"mail.smtp.debug\", \"true\"); props.put(\"mail.smtp.auth\", \"true\"); // Create a Session object to represent a mail session with the specified properties. Session session = Session.getDefaultInstance(props); // Create a message with the specified information. MimeMessage msg = new MimeMessage(session); msg.setFrom(new InternetAddress(FROM,FROMNAME)); msg.setRecipient(Message.RecipientType.TO, new InternetAddress(TO)); msg.setSubject(SUBJECT); msg.setContent(BODY,\"text/html\"); // Create a transport. Transport transport = session.getTransport(); // Send the message. try { System.out.println(\"Sending...\"); // Connect to SendPost SMTP using the SMTP username and password you specified above. transport.connect(HOST, SMTP_USERNAME, SMTP_PASSWORD); // Send the email. transport.sendMessage(msg, msg.getAllRecipients()); System.out.println(\"Email sent!\"); } catch (Exception ex) { System.out.println(\"The email was not sent.\"); System.out.println(\"Error message: \" + ex.getMessage()); System.out.println(ex); } // Close and terminate the connection. } } ``` Many programming languages support sending email using SMTP. This capability might be built into the programming language itself, or it might be available as an add-on, plug-in, or library. You can take advantage of this capability by sending email through SendPost from within application programs that you write. We have provided examples in Python3, Golang, Java, PHP, JS.
5
5
 
6
6
  The version of the OpenAPI document: 1.0.0
7
- Contact: hello@sendpost.io
7
+
8
8
  Generated by: https://openapi-generator.tech
9
- OpenAPI Generator version: 6.6.0
9
+ Generator version: 7.13.0
10
10
 
11
11
  =end
12
12
 
@@ -19,99 +19,31 @@ module Sendpost
19
19
  def initialize(api_client = ApiClient.default)
20
20
  @api_client = api_client
21
21
  end
22
- # Count Total Suppressions
23
- # @param x_sub_account_api_key [String] Sub-Account API Key
24
- # @param [Hash] opts the optional parameters
25
- # @option opts [String] :from from date
26
- # @option opts [String] :to to date
27
- # @return [CountStat]
28
- def count(x_sub_account_api_key, opts = {})
29
- data, _status_code, _headers = count_with_http_info(x_sub_account_api_key, opts)
30
- data
31
- end
32
-
33
- # Count Total Suppressions
34
- # @param x_sub_account_api_key [String] Sub-Account API Key
22
+ # Create Suppressions
23
+ # Creates new suppressions by posting to the suppression resource. You can specify different types of suppressions including `hardBounce`, `manual`, `unsubscribe`, and `spamComplaint`.
24
+ # @param create_suppression_request [CreateSuppressionRequest]
35
25
  # @param [Hash] opts the optional parameters
36
- # @option opts [String] :from from date
37
- # @option opts [String] :to to date
38
- # @return [Array<(CountStat, Integer, Hash)>] CountStat data, response status code and response headers
39
- def count_with_http_info(x_sub_account_api_key, opts = {})
40
- if @api_client.config.debugging
41
- @api_client.config.logger.debug 'Calling API: SuppressionApi.count ...'
42
- end
43
- # verify the required parameter 'x_sub_account_api_key' is set
44
- if @api_client.config.client_side_validation && x_sub_account_api_key.nil?
45
- fail ArgumentError, "Missing the required parameter 'x_sub_account_api_key' when calling SuppressionApi.count"
46
- end
47
- # resource path
48
- local_var_path = '/subaccount/suppression/count'
49
-
50
- # query parameters
51
- query_params = opts[:query_params] || {}
52
- query_params[:'from'] = opts[:'from'] if !opts[:'from'].nil?
53
- query_params[:'to'] = opts[:'to'] if !opts[:'to'].nil?
54
-
55
- # header parameters
56
- header_params = opts[:header_params] || {}
57
- # HTTP header 'Accept' (if needed)
58
- header_params['Accept'] = @api_client.select_header_accept(['application/json'])
59
- header_params[:'X-SubAccount-ApiKey'] = x_sub_account_api_key
60
-
61
- # form parameters
62
- form_params = opts[:form_params] || {}
63
-
64
- # http body (model)
65
- post_body = opts[:debug_body]
66
-
67
- # return_type
68
- return_type = opts[:debug_return_type] || 'CountStat'
69
-
70
- # auth_names
71
- auth_names = opts[:debug_auth_names] || []
72
-
73
- new_options = opts.merge(
74
- :operation => :"SuppressionApi.count",
75
- :header_params => header_params,
76
- :query_params => query_params,
77
- :form_params => form_params,
78
- :body => post_body,
79
- :auth_names => auth_names,
80
- :return_type => return_type
81
- )
82
-
83
- data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
84
- if @api_client.config.debugging
85
- @api_client.config.logger.debug "API called: SuppressionApi#count\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
86
- end
87
- return data, status_code, headers
88
- end
89
-
90
- # Add Email Addresses To Suppression List
91
- # @param x_sub_account_api_key [String] Sub-Account API Key
92
- # @param [Hash] opts the optional parameters
93
- # @option opts [RSuppression] :r_suppression Suppression content
94
26
  # @return [Array<Suppression>]
95
- def create_suppressions(x_sub_account_api_key, opts = {})
96
- data, _status_code, _headers = create_suppressions_with_http_info(x_sub_account_api_key, opts)
27
+ def create_suppression(create_suppression_request, opts = {})
28
+ data, _status_code, _headers = create_suppression_with_http_info(create_suppression_request, opts)
97
29
  data
98
30
  end
99
31
 
100
- # Add Email Addresses To Suppression List
101
- # @param x_sub_account_api_key [String] Sub-Account API Key
32
+ # Create Suppressions
33
+ # Creates new suppressions by posting to the suppression resource. You can specify different types of suppressions including &#x60;hardBounce&#x60;, &#x60;manual&#x60;, &#x60;unsubscribe&#x60;, and &#x60;spamComplaint&#x60;.
34
+ # @param create_suppression_request [CreateSuppressionRequest]
102
35
  # @param [Hash] opts the optional parameters
103
- # @option opts [RSuppression] :r_suppression Suppression content
104
36
  # @return [Array<(Array<Suppression>, Integer, Hash)>] Array<Suppression> data, response status code and response headers
105
- def create_suppressions_with_http_info(x_sub_account_api_key, opts = {})
37
+ def create_suppression_with_http_info(create_suppression_request, opts = {})
106
38
  if @api_client.config.debugging
107
- @api_client.config.logger.debug 'Calling API: SuppressionApi.create_suppressions ...'
39
+ @api_client.config.logger.debug 'Calling API: SuppressionApi.create_suppression ...'
108
40
  end
109
- # verify the required parameter 'x_sub_account_api_key' is set
110
- if @api_client.config.client_side_validation && x_sub_account_api_key.nil?
111
- fail ArgumentError, "Missing the required parameter 'x_sub_account_api_key' when calling SuppressionApi.create_suppressions"
41
+ # verify the required parameter 'create_suppression_request' is set
42
+ if @api_client.config.client_side_validation && create_suppression_request.nil?
43
+ fail ArgumentError, "Missing the required parameter 'create_suppression_request' when calling SuppressionApi.create_suppression"
112
44
  end
113
45
  # resource path
114
- local_var_path = '/subaccount/suppression/'
46
+ local_var_path = '/subaccount/suppression'
115
47
 
116
48
  # query parameters
117
49
  query_params = opts[:query_params] || {}
@@ -119,28 +51,27 @@ module Sendpost
119
51
  # header parameters
120
52
  header_params = opts[:header_params] || {}
121
53
  # HTTP header 'Accept' (if needed)
122
- header_params['Accept'] = @api_client.select_header_accept(['application/json'])
54
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
123
55
  # HTTP header 'Content-Type'
124
56
  content_type = @api_client.select_header_content_type(['application/json'])
125
57
  if !content_type.nil?
126
58
  header_params['Content-Type'] = content_type
127
59
  end
128
- header_params[:'X-SubAccount-ApiKey'] = x_sub_account_api_key
129
60
 
130
61
  # form parameters
131
62
  form_params = opts[:form_params] || {}
132
63
 
133
64
  # http body (model)
134
- post_body = opts[:debug_body] || @api_client.object_to_http_body(opts[:'r_suppression'])
65
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(create_suppression_request)
135
66
 
136
67
  # return_type
137
68
  return_type = opts[:debug_return_type] || 'Array<Suppression>'
138
69
 
139
70
  # auth_names
140
- auth_names = opts[:debug_auth_names] || []
71
+ auth_names = opts[:debug_auth_names] || ['subAccountAuth']
141
72
 
142
73
  new_options = opts.merge(
143
- :operation => :"SuppressionApi.create_suppressions",
74
+ :operation => :"SuppressionApi.create_suppression",
144
75
  :header_params => header_params,
145
76
  :query_params => query_params,
146
77
  :form_params => form_params,
@@ -151,36 +82,36 @@ module Sendpost
151
82
 
152
83
  data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
153
84
  if @api_client.config.debugging
154
- @api_client.config.logger.debug "API called: SuppressionApi#create_suppressions\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
85
+ @api_client.config.logger.debug "API called: SuppressionApi#create_suppression\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
155
86
  end
156
87
  return data, status_code, headers
157
88
  end
158
89
 
159
- # Delete specific emails which are in suppression list
160
- # @param x_sub_account_api_key [String] Sub-Account API Key
90
+ # Delete Suppressions
91
+ # Deletes one or more suppressions for a given sub-account. The request can contain a list of emails to delete specific suppressions or delete a single suppression.
92
+ # @param delete_suppression_request [DeleteSuppressionRequest]
161
93
  # @param [Hash] opts the optional parameters
162
- # @option opts [RDSuppression] :rd_suppression Suppression content
163
- # @return [Array<DeleteResponse>]
164
- def delete_suppression(x_sub_account_api_key, opts = {})
165
- data, _status_code, _headers = delete_suppression_with_http_info(x_sub_account_api_key, opts)
94
+ # @return [Array<DeleteSuppression200ResponseInner>]
95
+ def delete_suppression(delete_suppression_request, opts = {})
96
+ data, _status_code, _headers = delete_suppression_with_http_info(delete_suppression_request, opts)
166
97
  data
167
98
  end
168
99
 
169
- # Delete specific emails which are in suppression list
170
- # @param x_sub_account_api_key [String] Sub-Account API Key
100
+ # Delete Suppressions
101
+ # Deletes one or more suppressions for a given sub-account. The request can contain a list of emails to delete specific suppressions or delete a single suppression.
102
+ # @param delete_suppression_request [DeleteSuppressionRequest]
171
103
  # @param [Hash] opts the optional parameters
172
- # @option opts [RDSuppression] :rd_suppression Suppression content
173
- # @return [Array<(Array<DeleteResponse>, Integer, Hash)>] Array<DeleteResponse> data, response status code and response headers
174
- def delete_suppression_with_http_info(x_sub_account_api_key, opts = {})
104
+ # @return [Array<(Array<DeleteSuppression200ResponseInner>, Integer, Hash)>] Array<DeleteSuppression200ResponseInner> data, response status code and response headers
105
+ def delete_suppression_with_http_info(delete_suppression_request, opts = {})
175
106
  if @api_client.config.debugging
176
107
  @api_client.config.logger.debug 'Calling API: SuppressionApi.delete_suppression ...'
177
108
  end
178
- # verify the required parameter 'x_sub_account_api_key' is set
179
- if @api_client.config.client_side_validation && x_sub_account_api_key.nil?
180
- fail ArgumentError, "Missing the required parameter 'x_sub_account_api_key' when calling SuppressionApi.delete_suppression"
109
+ # verify the required parameter 'delete_suppression_request' is set
110
+ if @api_client.config.client_side_validation && delete_suppression_request.nil?
111
+ fail ArgumentError, "Missing the required parameter 'delete_suppression_request' when calling SuppressionApi.delete_suppression"
181
112
  end
182
113
  # resource path
183
- local_var_path = '/subaccount/suppression/'
114
+ local_var_path = '/subaccount/suppression'
184
115
 
185
116
  # query parameters
186
117
  query_params = opts[:query_params] || {}
@@ -188,25 +119,24 @@ module Sendpost
188
119
  # header parameters
189
120
  header_params = opts[:header_params] || {}
190
121
  # HTTP header 'Accept' (if needed)
191
- header_params['Accept'] = @api_client.select_header_accept(['application/json'])
122
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
192
123
  # HTTP header 'Content-Type'
193
124
  content_type = @api_client.select_header_content_type(['application/json'])
194
125
  if !content_type.nil?
195
126
  header_params['Content-Type'] = content_type
196
127
  end
197
- header_params[:'X-SubAccount-ApiKey'] = x_sub_account_api_key
198
128
 
199
129
  # form parameters
200
130
  form_params = opts[:form_params] || {}
201
131
 
202
132
  # http body (model)
203
- post_body = opts[:debug_body] || @api_client.object_to_http_body(opts[:'rd_suppression'])
133
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(delete_suppression_request)
204
134
 
205
135
  # return_type
206
- return_type = opts[:debug_return_type] || 'Array<DeleteResponse>'
136
+ return_type = opts[:debug_return_type] || 'Array<DeleteSuppression200ResponseInner>'
207
137
 
208
138
  # auth_names
209
- auth_names = opts[:debug_auth_names] || []
139
+ auth_names = opts[:debug_auth_names] || ['subAccountAuth']
210
140
 
211
141
  new_options = opts.merge(
212
142
  :operation => :"SuppressionApi.delete_suppression",
@@ -225,53 +155,63 @@ module Sendpost
225
155
  return data, status_code, headers
226
156
  end
227
157
 
228
- # Get all suppressions
229
- # @param x_sub_account_api_key [String] Sub-Account API Key
158
+ # List Suppressions
159
+ # Retrieves a list of suppressions associated with a specific sub-account within a given date range. The maximum difference between `from` and `to` dates should not exceed 60 days.
160
+ # @param from [Date] Start date for the suppression records
161
+ # @param to [Date] End date for the suppression records (Note: &#x60;from&#x60; should be earlier than &#x60;to&#x60; and the date range should not exceed 60 days)
230
162
  # @param [Hash] opts the optional parameters
231
- # @option opts [Integer] :offset offset
232
- # @option opts [Integer] :limit limit
233
- # @option opts [String] :search search
234
- # @option opts [String] :from from date
235
- # @option opts [String] :to to date
163
+ # @option opts [Integer] :limit Number of records to return per request (default to 20)
164
+ # @option opts [Integer] :offset Number of initial records to skip (default to 0)
165
+ # @option opts [String] :search Case-insensitive search against suppression email
166
+ # @option opts [String] :type Type of suppression. Valid values: &#x60;hardBounce&#x60;, &#x60;manual&#x60;, &#x60;spamComplaint&#x60;, &#x60;unsubscribe&#x60;
236
167
  # @return [Array<Suppression>]
237
- def get_suppressions(x_sub_account_api_key, opts = {})
238
- data, _status_code, _headers = get_suppressions_with_http_info(x_sub_account_api_key, opts)
168
+ def get_suppression_list(from, to, opts = {})
169
+ data, _status_code, _headers = get_suppression_list_with_http_info(from, to, opts)
239
170
  data
240
171
  end
241
172
 
242
- # Get all suppressions
243
- # @param x_sub_account_api_key [String] Sub-Account API Key
173
+ # List Suppressions
174
+ # Retrieves a list of suppressions associated with a specific sub-account within a given date range. The maximum difference between &#x60;from&#x60; and &#x60;to&#x60; dates should not exceed 60 days.
175
+ # @param from [Date] Start date for the suppression records
176
+ # @param to [Date] End date for the suppression records (Note: &#x60;from&#x60; should be earlier than &#x60;to&#x60; and the date range should not exceed 60 days)
244
177
  # @param [Hash] opts the optional parameters
245
- # @option opts [Integer] :offset offset
246
- # @option opts [Integer] :limit limit
247
- # @option opts [String] :search search
248
- # @option opts [String] :from from date
249
- # @option opts [String] :to to date
178
+ # @option opts [Integer] :limit Number of records to return per request (default to 20)
179
+ # @option opts [Integer] :offset Number of initial records to skip (default to 0)
180
+ # @option opts [String] :search Case-insensitive search against suppression email
181
+ # @option opts [String] :type Type of suppression. Valid values: &#x60;hardBounce&#x60;, &#x60;manual&#x60;, &#x60;spamComplaint&#x60;, &#x60;unsubscribe&#x60;
250
182
  # @return [Array<(Array<Suppression>, Integer, Hash)>] Array<Suppression> data, response status code and response headers
251
- def get_suppressions_with_http_info(x_sub_account_api_key, opts = {})
183
+ def get_suppression_list_with_http_info(from, to, opts = {})
252
184
  if @api_client.config.debugging
253
- @api_client.config.logger.debug 'Calling API: SuppressionApi.get_suppressions ...'
185
+ @api_client.config.logger.debug 'Calling API: SuppressionApi.get_suppression_list ...'
186
+ end
187
+ # verify the required parameter 'from' is set
188
+ if @api_client.config.client_side_validation && from.nil?
189
+ fail ArgumentError, "Missing the required parameter 'from' when calling SuppressionApi.get_suppression_list"
190
+ end
191
+ # verify the required parameter 'to' is set
192
+ if @api_client.config.client_side_validation && to.nil?
193
+ fail ArgumentError, "Missing the required parameter 'to' when calling SuppressionApi.get_suppression_list"
254
194
  end
255
- # verify the required parameter 'x_sub_account_api_key' is set
256
- if @api_client.config.client_side_validation && x_sub_account_api_key.nil?
257
- fail ArgumentError, "Missing the required parameter 'x_sub_account_api_key' when calling SuppressionApi.get_suppressions"
195
+ allowable_values = ["hardBounce", "manual", "spamComplaint", "unsubscribe"]
196
+ if @api_client.config.client_side_validation && opts[:'type'] && !allowable_values.include?(opts[:'type'])
197
+ fail ArgumentError, "invalid value for \"type\", must be one of #{allowable_values}"
258
198
  end
259
199
  # resource path
260
- local_var_path = '/subaccount/suppression/'
200
+ local_var_path = '/subaccount/suppression'
261
201
 
262
202
  # query parameters
263
203
  query_params = opts[:query_params] || {}
264
- query_params[:'offset'] = opts[:'offset'] if !opts[:'offset'].nil?
204
+ query_params[:'from'] = from
205
+ query_params[:'to'] = to
265
206
  query_params[:'limit'] = opts[:'limit'] if !opts[:'limit'].nil?
207
+ query_params[:'offset'] = opts[:'offset'] if !opts[:'offset'].nil?
266
208
  query_params[:'search'] = opts[:'search'] if !opts[:'search'].nil?
267
- query_params[:'from'] = opts[:'from'] if !opts[:'from'].nil?
268
- query_params[:'to'] = opts[:'to'] if !opts[:'to'].nil?
209
+ query_params[:'type'] = opts[:'type'] if !opts[:'type'].nil?
269
210
 
270
211
  # header parameters
271
212
  header_params = opts[:header_params] || {}
272
213
  # HTTP header 'Accept' (if needed)
273
- header_params['Accept'] = @api_client.select_header_accept(['application/json'])
274
- header_params[:'X-SubAccount-ApiKey'] = x_sub_account_api_key
214
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
275
215
 
276
216
  # form parameters
277
217
  form_params = opts[:form_params] || {}
@@ -283,10 +223,10 @@ module Sendpost
283
223
  return_type = opts[:debug_return_type] || 'Array<Suppression>'
284
224
 
285
225
  # auth_names
286
- auth_names = opts[:debug_auth_names] || []
226
+ auth_names = opts[:debug_auth_names] || ['subAccountAuth']
287
227
 
288
228
  new_options = opts.merge(
289
- :operation => :"SuppressionApi.get_suppressions",
229
+ :operation => :"SuppressionApi.get_suppression_list",
290
230
  :header_params => header_params,
291
231
  :query_params => query_params,
292
232
  :form_params => form_params,
@@ -297,7 +237,7 @@ module Sendpost
297
237
 
298
238
  data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
299
239
  if @api_client.config.debugging
300
- @api_client.config.logger.debug "API called: SuppressionApi#get_suppressions\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
240
+ @api_client.config.logger.debug "API called: SuppressionApi#get_suppression_list\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
301
241
  end
302
242
  return data, status_code, headers
303
243
  end