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
data/README.md CHANGED
@@ -1,124 +1,668 @@
1
- # sendpost_ruby_sdk
1
+ # SendPost Ruby SDK
2
2
 
3
- Sendpost - the Ruby gem for the SendPost API
3
+ A Ruby gem for sending emails and managing your SendPost account programmatically.
4
4
 
5
- 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.
5
+ ## What is SendPost?
6
6
 
7
+ SendPost is an email delivery service that helps you send transactional and marketing emails reliably. With SendPost, you can:
8
+
9
+ - Send personalized emails to multiple recipients
10
+ - Track email opens and link clicks
11
+ - Monitor email statistics (deliveries, bounces, spam complaints)
12
+ - Manage multiple sending domains and IP addresses
13
+ - Set up webhooks to receive real-time email event notifications
7
14
 
8
15
  ## Installation
9
16
 
10
- ```shell
17
+ ### Install from RubyGems (Recommended)
18
+
19
+ ```bash
11
20
  gem install sendpost_ruby_sdk
12
21
  ```
13
22
 
14
- ## Getting Started
23
+ ### Install from Source
15
24
 
16
- Please follow the [installation](#installation) procedure and then run the following code:
25
+ If you're installing from the source code:
26
+
27
+ ```bash
28
+ gem build sendpost_ruby_sdk.gemspec
29
+ gem install ./sendpost_ruby_sdk-2.0.0.gem
30
+ ```
31
+
32
+ ### Add to Your Gemfile
33
+
34
+ Add this line to your application's `Gemfile`:
35
+
36
+ ```ruby
37
+ gem 'sendpost_ruby_sdk', '~> 2.0.0'
38
+ ```
39
+
40
+ Then run:
41
+
42
+ ```bash
43
+ bundle install
44
+ ```
45
+
46
+ ## Quick Start
47
+
48
+ ### 1. Get Your API Keys
49
+
50
+ Before you can use the SDK, you need API keys from SendPost:
51
+
52
+ 1. Sign up at [https://app.sendpost.io/register](https://app.sendpost.io/register)
53
+ 2. Log in to your SendPost dashboard
54
+ 3. Navigate to API Keys section
55
+ 4. Copy your **Sub-Account API Key** (for sending emails)
56
+ 5. Copy your **Account API Key** (for managing sub-accounts, IPs, etc.)
57
+
58
+ ### 2. Configure the SDK
17
59
 
18
60
  ```ruby
19
61
  require 'sendpost_ruby_sdk'
20
62
 
21
- api_instance = Sendpost::EmailApi.new
22
- x_sub_account_api_key = 'your_api_key' # String | Sub-Account API Key
23
- email_message = Sendpost::EmailMessage.new
24
- email_message.from = {
25
- email: 'richard@piedpiper.com'
26
- }
27
- email_message.to = [{
28
- email: 'gavin@hooli.com'
29
- }]
30
- email_message.subject = 'Hello World'
31
- email_message.html_body = '<strong>it works!</strong>'
32
- email_message.ippool = 'PiedPiper'
33
-
34
- opts = {
35
- email_message: email_message # EmailMessage | Email message
36
- }
63
+ # Create configuration
64
+ config = Sendpost::Configuration.new
65
+ config.host = 'https://api.sendpost.io/api/v1'
66
+
67
+ # Set your Sub-Account API Key (for sending emails)
68
+ config.api_key['X-SubAccount-ApiKey'] = 'your_sub_account_api_key_here'
69
+ ```
70
+
71
+ ### 3. Send Your First Email
72
+
73
+ ```ruby
74
+ # Create API client
75
+ api_client = Sendpost::ApiClient.new(config)
76
+ email_api = Sendpost::EmailApi.new(api_client)
77
+
78
+ # Create email message
79
+ email_message = Sendpost::EmailMessageObject.new
37
80
 
81
+ # Set sender
82
+ from_addr = Sendpost::EmailMessageFrom.new
83
+ from_addr.email = 'sender@yourdomain.com'
84
+ from_addr.name = 'Your Name'
85
+ email_message.from = from_addr
86
+
87
+ # Set recipient
88
+ recipient = Sendpost::EmailMessageToInner.new
89
+ recipient.email = 'recipient@example.com'
90
+ recipient.name = 'Recipient Name'
91
+ email_message.to = [recipient]
92
+
93
+ # Set email content
94
+ email_message.subject = 'Hello from SendPost!'
95
+ email_message.html_body = '<h1>Welcome!</h1><p>This is your first email sent with SendPost Ruby SDK.</p>'
96
+ email_message.text_body = 'Welcome! This is your first email sent with SendPost Ruby SDK.'
97
+
98
+ # Enable tracking
99
+ email_message.track_opens = true
100
+ email_message.track_clicks = true
101
+
102
+ # Send the email
38
103
  begin
39
- result = api_instance.send_email(x_sub_account_api_key, opts)
40
- p result
104
+ responses = email_api.send_email(email_message)
105
+ if responses && !responses.empty?
106
+ puts "Email sent successfully! Message ID: #{responses[0].message_id}"
107
+ end
41
108
  rescue Sendpost::ApiError => e
42
- puts "Exception when calling EmailApi->send_email: #{e}"
109
+ puts "Error sending email: #{e.code} - #{e.response_body}"
43
110
  end
44
-
45
111
  ```
46
112
 
47
- Example with cc, bcc and template:
113
+ ## Detailed Usage Guide
114
+
115
+ ### Understanding API Keys
116
+
117
+ SendPost uses two types of API keys:
118
+
119
+ **Sub-Account API Key (`X-SubAccount-ApiKey`)**
120
+ - Used for: Sending emails, managing domains, viewing sub-account statistics
121
+ - Where to find: SendPost Dashboard → Sub-Accounts → API Keys
122
+
123
+ **Account API Key (`X-Account-ApiKey`)**
124
+ - Used for: Creating sub-accounts, managing IPs, creating webhooks, account-level statistics
125
+ - Where to find: SendPost Dashboard → Account Settings → API Keys
126
+
127
+ ### Sending Emails
128
+
129
+ #### Basic Email
48
130
 
49
131
  ```ruby
50
132
  require 'sendpost_ruby_sdk'
51
133
 
52
- api_instance = Sendpost::EmailApi.new
53
- x_sub_account_api_key = 'your_api_key' # String | Sub-Account API Key
54
- email_message = Sendpost::EmailMessage.new
55
- email_message.from = {
56
- email: 'richard@piedpiper.com'
134
+ # Setup
135
+ config = Sendpost::Configuration.new
136
+ config.host = 'https://api.sendpost.io/api/v1'
137
+ config.api_key['X-SubAccount-ApiKey'] = 'your_sub_account_api_key'
138
+
139
+ api_client = Sendpost::ApiClient.new(config)
140
+ email_api = Sendpost::EmailApi.new(api_client)
141
+
142
+ # Create message
143
+ email_message = Sendpost::EmailMessageObject.new
144
+
145
+ # From address
146
+ from = Sendpost::EmailMessageFrom.new
147
+ from.email = 'noreply@yourdomain.com'
148
+ from.name = 'Your Company'
149
+ email_message.from = from
150
+
151
+ # To address
152
+ to = Sendpost::EmailMessageToInner.new
153
+ to.email = 'customer@example.com'
154
+ to.name = 'Customer Name'
155
+ email_message.to = [to]
156
+
157
+ # Email content
158
+ email_message.subject = 'Order Confirmation'
159
+ email_message.html_body = '<h1>Thank you for your order!</h1>'
160
+ email_message.text_body = 'Thank you for your order!'
161
+
162
+ # Send
163
+ responses = email_api.send_email(email_message)
164
+ puts "Sent! Message ID: #{responses[0].message_id}"
165
+ ```
166
+
167
+ #### Email with Multiple Recipients
168
+
169
+ ```ruby
170
+ # Create multiple recipients
171
+ recipient1 = Sendpost::EmailMessageToInner.new
172
+ recipient1.email = 'user1@example.com'
173
+ recipient1.name = 'User One'
174
+
175
+ recipient2 = Sendpost::EmailMessageToInner.new
176
+ recipient2.email = 'user2@example.com'
177
+ recipient2.name = 'User Two'
178
+
179
+ # Add CC recipients
180
+ cc_recipient = Sendpost::EmailMessageToInnerCcInner.new
181
+ cc_recipient.email = 'cc@example.com'
182
+ recipient1.cc = [cc_recipient]
183
+
184
+ # Add BCC recipients
185
+ bcc_recipient = Sendpost::EmailMessageToInnerBccInner.new
186
+ bcc_recipient.email = 'bcc@example.com'
187
+ recipient1.bcc = [bcc_recipient]
188
+
189
+ # Set all recipients
190
+ email_message.to = [recipient1, recipient2]
191
+ ```
192
+
193
+ #### Email with Attachments
194
+
195
+ ```ruby
196
+ # Create attachment
197
+ attachment = Sendpost::Attachment.new
198
+ attachment.name = 'invoice.pdf'
199
+ attachment.content = Base64.encode64(File.read('path/to/invoice.pdf'))
200
+ attachment.content_type = 'application/pdf'
201
+
202
+ email_message.attachments = [attachment]
203
+ ```
204
+
205
+ #### Email with Custom Fields and Headers
206
+
207
+ ```ruby
208
+ # Add custom fields to recipient (for personalization)
209
+ recipient = Sendpost::EmailMessageToInner.new
210
+ recipient.email = 'customer@example.com'
211
+ recipient.custom_fields = {
212
+ 'customer_id' => '12345',
213
+ 'order_number' => 'ORD-67890',
214
+ 'total_amount' => '99.99'
57
215
  }
58
- email_message.to = [{
59
- email: 'gavin@hooli.com',
60
- cc: [{ email: 'dinesh@bachmanity.com' }],
61
- bcc: [{ email: 'jian@bachmanity.com' }]
62
- }]
63
-
64
- email_message.subject = 'Hello World'
65
- email_message.template = 'Welcome Mail'
66
- email_message.html_body = '<strong>it works!</strong>'
67
- email_message.ippool = 'PiedPiper'
68
-
69
- opts = {
70
- email_message: email_message # EmailMessage | Email message
216
+
217
+ # Add custom headers
218
+ email_message.headers = {
219
+ 'X-Order-ID' => '12345',
220
+ 'X-Email-Type' => 'transactional'
71
221
  }
72
222
 
223
+ # Add groups for analytics
224
+ email_message.groups = ['transactional', 'order-confirmation']
225
+ ```
226
+
227
+ #### Email with Reply-To
228
+
229
+ ```ruby
230
+ reply_to = Sendpost::EmailMessageReplyTo.new
231
+ reply_to.email = 'support@yourdomain.com'
232
+ reply_to.name = 'Support Team'
233
+ email_message.reply_to = reply_to
234
+ ```
235
+
236
+ ### Managing Domains
237
+
238
+ Before sending emails, you need to add and verify your sending domain.
239
+
240
+ #### Add a Domain
241
+
242
+ ```ruby
243
+ # Use Sub-Account API Key
244
+ config = Sendpost::Configuration.new
245
+ config.host = 'https://api.sendpost.io/api/v1'
246
+ config.api_key['X-SubAccount-ApiKey'] = 'your_sub_account_api_key'
247
+
248
+ api_client = Sendpost::ApiClient.new(config)
249
+ domain_api = Sendpost::DomainApi.new(api_client)
250
+
251
+ # Create domain request
252
+ domain_request = Sendpost::CreateDomainRequest.new
253
+ domain_request.name = 'yourdomain.com'
254
+
255
+ # Add domain
256
+ domain = domain_api.subaccount_domain_post(domain_request)
257
+
258
+ puts "Domain added! ID: #{domain.id}"
259
+ puts "DKIM Record: #{domain.dkim.text_value}" if domain.dkim
260
+
261
+ # IMPORTANT: Add the DNS records shown to your domain's DNS settings
262
+ ```
263
+
264
+ #### List All Domains
265
+
266
+ ```ruby
267
+ domains = domain_api.get_all_domains
268
+
269
+ domains.each do |domain|
270
+ puts "Domain: #{domain.name}"
271
+ puts "Verified: #{domain.verified ? 'Yes' : 'No'}"
272
+ puts "---"
273
+ end
274
+ ```
275
+
276
+ #### Get Domain Details
277
+
278
+ ```ruby
279
+ domain_id = 'your_domain_id'
280
+ domain = domain_api.subaccount_domain_domain_id_get(domain_id)
281
+
282
+ puts "Domain: #{domain.name}"
283
+ puts "Verified: #{domain.verified}"
284
+ puts "DKIM: #{domain.dkim.text_value}" if domain.dkim
285
+ ```
286
+
287
+ ### Viewing Statistics
288
+
289
+ #### Get Sub-Account Statistics
290
+
291
+ ```ruby
292
+ require 'date'
293
+
294
+ # Use Account API Key for statistics
295
+ config = Sendpost::Configuration.new
296
+ config.host = 'https://api.sendpost.io/api/v1'
297
+ config.api_key['X-Account-ApiKey'] = 'your_account_api_key'
298
+
299
+ api_client = Sendpost::ApiClient.new(config)
300
+ stats_api = Sendpost::StatsApi.new(api_client)
301
+
302
+ # Get stats for last 7 days
303
+ sub_account_id = 'your_sub_account_id'
304
+ to_date = Date.today
305
+ from_date = to_date - 7
306
+
307
+ stats = stats_api.account_subaccount_stat_subaccount_id_get(
308
+ from_date,
309
+ to_date,
310
+ sub_account_id
311
+ )
312
+
313
+ stats.each do |stat|
314
+ puts "Date: #{stat.date}"
315
+ if stat.stats
316
+ puts " Processed: #{stat.stats.processed || 0}"
317
+ puts " Delivered: #{stat.stats.delivered || 0}"
318
+ puts " Opened: #{stat.stats.opened || 0}"
319
+ puts " Clicked: #{stat.stats.clicked || 0}"
320
+ puts " Bounced: #{stat.stats.hard_bounced || 0}"
321
+ puts " Spam: #{stat.stats.spam || 0}"
322
+ end
323
+ puts "---"
324
+ end
325
+ ```
326
+
327
+ #### Get Aggregate Statistics
328
+
329
+ ```ruby
330
+ # Get overall stats for a sub-account
331
+ aggregate_stat = stats_api.account_subaccount_stat_subaccount_id_aggregate_get(
332
+ from_date,
333
+ to_date,
334
+ sub_account_id
335
+ )
336
+
337
+ puts "Total Processed: #{aggregate_stat.processed || 0}"
338
+ puts "Total Delivered: #{aggregate_stat.delivered || 0}"
339
+ puts "Total Opened: #{aggregate_stat.opened || 0}"
340
+ puts "Total Clicked: #{aggregate_stat.clicked || 0}"
341
+ ```
342
+
343
+ #### Get Account-Level Statistics
344
+
345
+ ```ruby
346
+ # Use StatsAApi for account-level stats
347
+ stats_a_api = Sendpost::StatsAApi.new(api_client)
348
+
349
+ account_stats = stats_a_api.get_all_account_stats(from_date, to_date)
350
+
351
+ account_stats.each do |stat|
352
+ puts "Date: #{stat.date}"
353
+ if stat.stat
354
+ puts " Processed: #{stat.stat.processed || 0}"
355
+ puts " Delivered: #{stat.stat.delivered || 0}"
356
+ end
357
+ end
358
+ ```
359
+
360
+ ### Managing Sub-Accounts
361
+
362
+ #### List All Sub-Accounts
363
+
364
+ ```ruby
365
+ # Use Account API Key
366
+ config = Sendpost::Configuration.new
367
+ config.host = 'https://api.sendpost.io/api/v1'
368
+ config.api_key['X-Account-ApiKey'] = 'your_account_api_key'
369
+
370
+ api_client = Sendpost::ApiClient.new(config)
371
+ sub_account_api = Sendpost::SubAccountApi.new(api_client)
372
+
373
+ sub_accounts = sub_account_api.get_all_sub_accounts
374
+
375
+ sub_accounts.each do |sub_account|
376
+ puts "ID: #{sub_account.id}"
377
+ puts "Name: #{sub_account.name}"
378
+ puts "API Key: #{sub_account.api_key}"
379
+ puts "---"
380
+ end
381
+ ```
382
+
383
+ #### Create a Sub-Account
384
+
385
+ ```ruby
386
+ new_sub_account = Sendpost::CreateSubAccountRequest.new
387
+ new_sub_account.name = "Client Account - #{Time.now.to_i}"
388
+
389
+ sub_account = sub_account_api.create_sub_account(new_sub_account)
390
+
391
+ puts "Created! ID: #{sub_account.id}"
392
+ puts "API Key: #{sub_account.api_key}"
393
+ ```
394
+
395
+ #### Get Sub-Account Details
396
+
397
+ ```ruby
398
+ sub_account_id = 'your_sub_account_id'
399
+ sub_account = sub_account_api.get_sub_account(sub_account_id)
400
+
401
+ puts "Name: #{sub_account.name}"
402
+ puts "Type: #{sub_account.type}"
403
+ puts "Blocked: #{sub_account.blocked}"
404
+ ```
405
+
406
+ ### Managing Webhooks
407
+
408
+ Webhooks allow you to receive real-time notifications when email events occur.
409
+
410
+ #### Create a Webhook
411
+
412
+ ```ruby
413
+ # Use Account API Key
414
+ config = Sendpost::Configuration.new
415
+ config.host = 'https://api.sendpost.io/api/v1'
416
+ config.api_key['X-Account-ApiKey'] = 'your_account_api_key'
417
+
418
+ api_client = Sendpost::ApiClient.new(config)
419
+ webhook_api = Sendpost::WebhookApi.new(api_client)
420
+
421
+ # Create webhook request
422
+ webhook_request = Sendpost::CreateWebhookRequest.new
423
+ webhook_request.url = 'https://your-app.com/webhooks/sendpost'
424
+ webhook_request.enabled = true
425
+
426
+ # Configure which events to receive
427
+ webhook_request.processed = true # Email processed
428
+ webhook_request.delivered = true # Email delivered
429
+ webhook_request.dropped = true # Email dropped
430
+ webhook_request.soft_bounced = true # Soft bounce
431
+ webhook_request.hard_bounced = true # Hard bounce
432
+ webhook_request.opened = true # Email opened
433
+ webhook_request.clicked = true # Link clicked
434
+ webhook_request.unsubscribed = true # Unsubscribed
435
+ webhook_request.spam = true # Marked as spam
436
+
437
+ webhook = webhook_api.create_webhook(webhook_request)
438
+
439
+ puts "Webhook created! ID: #{webhook.id}"
440
+ ```
441
+
442
+ #### List All Webhooks
443
+
444
+ ```ruby
445
+ webhooks = webhook_api.get_all_webhooks
446
+
447
+ webhooks.each do |webhook|
448
+ puts "ID: #{webhook.id}"
449
+ puts "URL: #{webhook.url}"
450
+ puts "Enabled: #{webhook.enabled}"
451
+ puts "---"
452
+ end
453
+ ```
454
+
455
+ ### Retrieving Message Details
456
+
457
+ ```ruby
458
+ # Use Account API Key
459
+ config = Sendpost::Configuration.new
460
+ config.host = 'https://api.sendpost.io/api/v1'
461
+ config.api_key['X-Account-ApiKey'] = 'your_account_api_key'
462
+
463
+ api_client = Sendpost::ApiClient.new(config)
464
+ message_api = Sendpost::MessageApi.new(api_client)
465
+
466
+ # Get message by ID (from email send response)
467
+ message_id = 'your_message_id'
468
+ message = message_api.get_message_by_id(message_id)
469
+
470
+ puts "Message ID: #{message.message_id}"
471
+ puts "From: #{message.from.email}" if message.from
472
+ puts "To: #{message.to.email}" if message.to
473
+ puts "Subject: #{message.subject}"
474
+ puts "Submitted At: #{message.submitted_at}"
475
+ puts "IP Used: #{message.public_ip}"
476
+ ```
477
+
478
+ ### Managing Suppressions
479
+
480
+ Suppressions are email addresses that should not receive emails (unsubscribed, bounced, etc.).
481
+
482
+ #### Add Suppressions
483
+
484
+ ```ruby
485
+ # Use Sub-Account API Key
486
+ config = Sendpost::Configuration.new
487
+ config.host = 'https://api.sendpost.io/api/v1'
488
+ config.api_key['X-SubAccount-ApiKey'] = 'your_sub_account_api_key'
489
+
490
+ api_client = Sendpost::ApiClient.new(config)
491
+ suppression_api = Sendpost::SuppressionApi.new(api_client)
492
+
493
+ # Create suppression request
494
+ suppression_request = Sendpost::CreateSuppressionRequest.new
495
+
496
+ # Add hard bounces
497
+ hard_bounce = Sendpost::CreateSuppressionRequestHardBounceInner.new
498
+ hard_bounce.email = 'bounced@example.com'
499
+ suppression_request.hard_bounce = [hard_bounce]
500
+
501
+ # Add unsubscribes
502
+ unsubscribe = Sendpost::CreateSuppressionRequestUnsubscribeInner.new
503
+ unsubscribe.email = 'unsubscribed@example.com'
504
+ suppression_request.unsubscribe = [unsubscribe]
505
+
506
+ # Add spam complaints
507
+ spam = Sendpost::CreateSuppressionRequestSpamComplaintInner.new
508
+ spam.email = 'spam@example.com'
509
+ suppression_request.spam_complaint = [spam]
510
+
511
+ # Add manual suppressions
512
+ manual = Sendpost::CreateSuppressionRequestManualInner.new
513
+ manual.email = 'manual@example.com'
514
+ suppression_request.manual = [manual]
515
+
516
+ suppression_api.create_suppression(suppression_request)
517
+ puts "Suppressions added successfully"
518
+ ```
519
+
520
+ #### List Suppressions
521
+
522
+ ```ruby
523
+ suppressions = suppression_api.get_suppression_list
524
+
525
+ suppressions.each do |suppression|
526
+ puts "Email: #{suppression.email}"
527
+ puts "Type: #{suppression.type}"
528
+ puts "---"
529
+ end
530
+ ```
531
+
532
+ ## Error Handling
533
+
534
+ The SDK raises `Sendpost::ApiError` when API calls fail. Always wrap API calls in begin/rescue blocks:
535
+
536
+ ```ruby
73
537
  begin
74
- result = api_instance.send_email_with_template(x_sub_account_api_key, opts)
75
- p result
538
+ responses = email_api.send_email(email_message)
539
+ puts "Success!"
76
540
  rescue Sendpost::ApiError => e
77
- puts "Exception when calling EmailApi->send_email: #{e}"
541
+ puts "API Error:"
542
+ puts " Status Code: #{e.code}"
543
+ puts " Response: #{e.response_body}"
544
+
545
+ case e.code
546
+ when 401
547
+ puts " Issue: Invalid or missing API key"
548
+ when 403
549
+ puts " Issue: Resource already exists or insufficient permissions"
550
+ when 404
551
+ puts " Issue: Resource not found"
552
+ when 422
553
+ puts " Issue: Invalid request data"
554
+ when 500
555
+ puts " Issue: SendPost server error"
556
+ end
557
+ rescue StandardError => e
558
+ puts "Unexpected error: #{e.message}"
78
559
  end
560
+ ```
561
+
562
+ ### Common HTTP Status Codes
563
+
564
+ | Code | Meaning | What to Do |
565
+ |------|---------|------------|
566
+ | 200 | Success | Everything worked |
567
+ | 401 | Unauthorized | Check your API key |
568
+ | 403 | Forbidden | Resource exists or no permission |
569
+ | 404 | Not Found | Resource ID doesn't exist |
570
+ | 422 | Invalid Data | Check your request body |
571
+ | 500 | Server Error | Try again later |
572
+ | 503 | Service Unavailable | SendPost is down for maintenance |
573
+
574
+ ## Complete Example
575
+
576
+ Here's a complete example that demonstrates common operations:
577
+
578
+ ```ruby
579
+ #!/usr/bin/env ruby
580
+ require 'sendpost_ruby_sdk'
581
+ require 'date'
582
+
583
+ # Configuration
584
+ SUB_ACCOUNT_API_KEY = ENV['SENDPOST_SUB_ACCOUNT_API_KEY'] || 'your_key_here'
585
+ ACCOUNT_API_KEY = ENV['SENDPOST_ACCOUNT_API_KEY'] || 'your_key_here'
586
+
587
+ # Setup Sub-Account API (for sending emails)
588
+ sub_config = Sendpost::Configuration.new
589
+ sub_config.host = 'https://api.sendpost.io/api/v1'
590
+ sub_config.api_key['X-SubAccount-ApiKey'] = SUB_ACCOUNT_API_KEY
79
591
 
592
+ sub_api_client = Sendpost::ApiClient.new(sub_config)
593
+ email_api = Sendpost::EmailApi.new(sub_api_client)
594
+
595
+ # Setup Account API (for managing resources)
596
+ account_config = Sendpost::Configuration.new
597
+ account_config.host = 'https://api.sendpost.io/api/v1'
598
+ account_config.api_key['X-Account-ApiKey'] = ACCOUNT_API_KEY
599
+
600
+ account_api_client = Sendpost::ApiClient.new(account_config)
601
+
602
+ # Send an email
603
+ email_message = Sendpost::EmailMessageObject.new
604
+
605
+ from = Sendpost::EmailMessageFrom.new
606
+ from.email = 'sender@yourdomain.com'
607
+ from.name = 'Your Company'
608
+ email_message.from = from
609
+
610
+ to = Sendpost::EmailMessageToInner.new
611
+ to.email = 'recipient@example.com'
612
+ to.name = 'Recipient'
613
+ email_message.to = [to]
614
+
615
+ email_message.subject = 'Test Email'
616
+ email_message.html_body = '<h1>Hello!</h1><p>This is a test email.</p>'
617
+ email_message.text_body = 'Hello! This is a test email.'
618
+ email_message.track_opens = true
619
+ email_message.track_clicks = true
620
+
621
+ begin
622
+ responses = email_api.send_email(email_message)
623
+ message_id = responses[0].message_id
624
+ puts "Email sent! Message ID: #{message_id}"
625
+
626
+ # Get message details
627
+ message_api = Sendpost::MessageApi.new(account_api_client)
628
+ message = message_api.get_message_by_id(message_id)
629
+ puts "Message details retrieved successfully"
630
+
631
+ rescue Sendpost::ApiError => e
632
+ puts "Error: #{e.code} - #{e.response_body}"
633
+ end
80
634
  ```
81
635
 
82
- ## Documentation for API Endpoints
636
+ ## API Reference
637
+
638
+ For complete API documentation, see the [API Reference](docs/) directory. Key API classes:
639
+
640
+ - `Sendpost::EmailApi` - Send emails
641
+ - `Sendpost::DomainApi` - Manage domains
642
+ - `Sendpost::SubAccountApi` - Manage sub-accounts
643
+ - `Sendpost::StatsApi` - View statistics
644
+ - `Sendpost::WebhookApi` - Manage webhooks
645
+ - `Sendpost::SuppressionApi` - Manage suppressions
646
+ - `Sendpost::MessageApi` - Retrieve message details
83
647
 
84
- All URIs are relative to *https://api.sendpost.io/api/v1*
648
+ ## Requirements
85
649
 
86
- Class | Method | HTTP request | Description
87
- ------------ | ------------- | ------------- | -------------
88
- *Sendpost::EmailApi* | [**send_email**](docs/EmailApi.md#send_email) | **POST** /subaccount/email/ |
89
- *Sendpost::EmailApi* | [**send_email_with_template**](docs/EmailApi.md#send_email_with_template) | **POST** /subaccount/email/template |
90
- *Sendpost::SuppressionApi* | [**count**](docs/SuppressionApi.md#count) | **GET** /subaccount/suppression/count |
91
- *Sendpost::SuppressionApi* | [**create_suppressions**](docs/SuppressionApi.md#create_suppressions) | **POST** /subaccount/suppression/ |
92
- *Sendpost::SuppressionApi* | [**delete_suppression**](docs/SuppressionApi.md#delete_suppression) | **DELETE** /subaccount/suppression/ |
93
- *Sendpost::SuppressionApi* | [**get_suppressions**](docs/SuppressionApi.md#get_suppressions) | **GET** /subaccount/suppression/ |
650
+ - Ruby 2.7 or higher
651
+ - Internet connection
94
652
 
653
+ ## Getting Help
95
654
 
96
- ## Documentation for Models
655
+ - **Documentation**: [https://docs.sendpost.io](https://docs.sendpost.io)
656
+ - **Email Support**: hello@sendpost.io
657
+ - **Website**: [https://sendpost.io](https://sendpost.io)
658
+ - **Developer Portal**: [https://app.sendpost.io](https://app.sendpost.io)
97
659
 
98
- - [Sendpost::Attachment](docs/Attachment.md)
99
- - [Sendpost::City](docs/City.md)
100
- - [Sendpost::CopyTo](docs/CopyTo.md)
101
- - [Sendpost::CountStat](docs/CountStat.md)
102
- - [Sendpost::DeleteResponse](docs/DeleteResponse.md)
103
- - [Sendpost::Device](docs/Device.md)
104
- - [Sendpost::EmailMessage](docs/EmailMessage.md)
105
- - [Sendpost::EmailResponse](docs/EmailResponse.md)
106
- - [Sendpost::EventMetadata](docs/EventMetadata.md)
107
- - [Sendpost::From](docs/From.md)
108
- - [Sendpost::Os](docs/Os.md)
109
- - [Sendpost::QEmailMessage](docs/QEmailMessage.md)
110
- - [Sendpost::QEvent](docs/QEvent.md)
111
- - [Sendpost::RDSuppression](docs/RDSuppression.md)
112
- - [Sendpost::RSuppression](docs/RSuppression.md)
113
- - [Sendpost::ReplyTo](docs/ReplyTo.md)
114
- - [Sendpost::Suppression](docs/Suppression.md)
115
- - [Sendpost::SuppressionEmail](docs/SuppressionEmail.md)
116
- - [Sendpost::To](docs/To.md)
117
- - [Sendpost::UserAgent](docs/UserAgent.md)
118
- - [Sendpost::WebhookEvent](docs/WebhookEvent.md)
660
+ ## License
119
661
 
662
+ This SDK is provided under the Unlicense. See LICENSE file for details.
120
663
 
121
- ## Documentation for Authorization
664
+ ## Version
122
665
 
123
- Endpoints do not require authorization.
666
+ Current version: 2.0.0
124
667
 
668
+ Generated by [OpenAPI Generator](https://openapi-generator.tech)