sendpost_ruby_sdk 2.0.0 → 3.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.
- checksums.yaml +4 -4
- data/README.md +613 -529
- data/docs/AccountCycleUsage.md +18 -0
- data/docs/AccountStats.md +3 -3
- data/docs/AccountWebhookWithStats.md +58 -0
- data/docs/AggregateStat.md +14 -14
- data/docs/AggregateStats.md +22 -22
- data/docs/Attachment.md +4 -4
- data/docs/BlacklistLinks.md +20 -0
- data/docs/BlacklistResource.md +38 -0
- data/docs/BlacklistedOn.md +20 -0
- data/docs/CopyTo.md +6 -6
- data/docs/CreateDomainRequest.md +2 -2
- data/docs/CreateSuppressionRequest.md +4 -4
- data/docs/CreateSuppressionRequestHardBounceInner.md +1 -1
- data/docs/CreateSuppressionRequestManualInner.md +1 -1
- data/docs/CreateSuppressionRequestSpamComplaintInner.md +1 -1
- data/docs/CreateSuppressionRequestUnsubscribeInner.md +1 -1
- data/docs/DailyStatistics.md +38 -0
- data/docs/DateStat.md +40 -0
- data/docs/DeleteResponse.md +4 -4
- data/docs/DeleteSubAccountResponse.md +4 -4
- data/docs/{DeleteSuppression200ResponseInner.md → DeleteSuppression200Response.md} +2 -4
- data/docs/DeleteSuppressionRequest.md +1 -1
- data/docs/{EmailMessageReplyTo.md → DeleteSuppressionRequestSuppressionsInner.md} +3 -5
- data/docs/DeleteWebhookResponse.md +3 -3
- data/docs/Device.md +2 -2
- data/docs/DnsRecord.md +22 -0
- data/docs/Domain.md +24 -28
- data/docs/DomainApi.md +66 -66
- data/docs/DomainStat.md +46 -0
- data/docs/EIP.md +1 -1
- data/docs/EmailAddress.md +4 -4
- data/docs/EmailApi.md +4 -4
- data/docs/EmailMessage.md +30 -30
- data/docs/EmailMessageObject.md +33 -26
- data/docs/EmailMessageWithTemplate.md +32 -27
- data/docs/EmailResponse.md +10 -10
- data/docs/EmailTypeStat.md +40 -0
- data/docs/ErrorResponse.md +18 -0
- data/docs/ErrorResponseError.md +26 -0
- data/docs/ErrorResponseErrorDetailsInner.md +20 -0
- data/docs/Event.md +18 -36
- data/docs/EventMetadata.md +14 -14
- data/docs/GeoLocation.md +8 -8
- data/docs/GroupStat.md +40 -0
- data/docs/IP.md +13 -43
- data/docs/IPAllocationRequest.md +4 -4
- data/docs/IPApi.md +19 -19
- data/docs/IPDeletionResponse.md +2 -2
- data/docs/IPPool.md +13 -21
- data/docs/IPPoolCreateRequest.md +10 -8
- data/docs/IPPoolDeleteResponse.md +2 -2
- data/docs/IPPoolStat.md +44 -0
- data/docs/IPPoolUpdateRequest.md +13 -7
- data/docs/IPPoolsApi.md +26 -19
- data/docs/IPStat.md +46 -0
- data/docs/IPUpdateRequest.md +2 -2
- data/docs/Label.md +10 -6
- data/docs/Member.md +15 -21
- data/docs/Message.md +37 -53
- data/docs/MessageApi.md +83 -3
- data/docs/NewSubAccount.md +18 -0
- data/docs/NewWebhook.md +46 -0
- data/docs/Os.md +26 -0
- data/docs/PostmasterDomainStat.md +30 -0
- data/docs/ProviderStat.md +40 -0
- data/docs/RAIPPoolStat.md +20 -0
- data/docs/RDStat.md +20 -0
- data/docs/RIPStat.md +20 -0
- data/docs/RStat.md +20 -0
- data/docs/Recipient.md +8 -8
- data/docs/SDStat.md +42 -0
- data/docs/SMTPAuth.md +5 -9
- data/docs/SeedContactStats.md +28 -0
- data/docs/Stat.md +22 -4
- data/docs/StatsAApi.md +24 -24
- data/docs/StatsApi.md +19 -19
- data/docs/SubAccount.md +13 -27
- data/docs/SubAccountApi.md +23 -23
- data/docs/SubAccountStat.md +44 -0
- data/docs/SubAccountStatForPool.md +42 -0
- data/docs/Suppression.md +14 -10
- data/docs/SuppressionApi.md +19 -19
- data/docs/TPSPStat.md +42 -0
- data/docs/UpdateSubAccount.md +2 -2
- data/docs/UpdateWebhook.md +23 -23
- data/docs/UserAgent.md +7 -7
- data/docs/ValidationStat.md +32 -0
- data/docs/Webhook.md +31 -29
- data/docs/WebhookApi.md +28 -28
- data/docs/WebhookObject.md +20 -0
- data/docs/WebhookReferenceApi.md +71 -0
- data/lib/sendpost_ruby_sdk/api/domain_api.rb +84 -84
- data/lib/sendpost_ruby_sdk/api/email_api.rb +6 -6
- data/lib/sendpost_ruby_sdk/api/ip_api.rb +24 -24
- data/lib/sendpost_ruby_sdk/api/ip_pools_api.rb +25 -25
- data/lib/sendpost_ruby_sdk/api/message_api.rb +83 -6
- data/lib/sendpost_ruby_sdk/api/stats_a_api.rb +30 -30
- data/lib/sendpost_ruby_sdk/api/stats_api.rb +24 -24
- data/lib/sendpost_ruby_sdk/api/sub_account_api.rb +33 -33
- data/lib/sendpost_ruby_sdk/api/suppression_api.rb +23 -23
- data/lib/sendpost_ruby_sdk/api/webhook_api.rb +36 -36
- data/lib/sendpost_ruby_sdk/api/webhook_reference_api.rb +82 -0
- data/lib/sendpost_ruby_sdk/api_client.rb +2 -2
- data/lib/sendpost_ruby_sdk/api_error.rb +2 -2
- data/lib/sendpost_ruby_sdk/configuration.rb +2 -2
- data/lib/sendpost_ruby_sdk/models/account_cycle_usage.rb +222 -0
- data/lib/sendpost_ruby_sdk/models/account_stats.rb +5 -3
- data/lib/sendpost_ruby_sdk/models/account_webhook_with_stats.rb +463 -0
- data/lib/sendpost_ruby_sdk/models/aggregate_stat.rb +37 -29
- data/lib/sendpost_ruby_sdk/models/aggregate_stats.rb +43 -24
- data/lib/sendpost_ruby_sdk/models/attachment.rb +48 -4
- data/lib/sendpost_ruby_sdk/models/blacklist_links.rb +232 -0
- data/lib/sendpost_ruby_sdk/models/blacklist_resource.rb +323 -0
- data/lib/sendpost_ruby_sdk/models/blacklisted_on.rb +232 -0
- data/lib/sendpost_ruby_sdk/models/copy_to.rb +42 -3
- data/lib/sendpost_ruby_sdk/models/create_domain_request.rb +32 -3
- data/lib/sendpost_ruby_sdk/models/create_suppression_request.rb +6 -6
- data/lib/sendpost_ruby_sdk/models/create_suppression_request_hard_bounce_inner.rb +2 -2
- data/lib/sendpost_ruby_sdk/models/create_suppression_request_manual_inner.rb +2 -2
- data/lib/sendpost_ruby_sdk/models/create_suppression_request_spam_complaint_inner.rb +2 -2
- data/lib/sendpost_ruby_sdk/models/create_suppression_request_unsubscribe_inner.rb +2 -2
- data/lib/sendpost_ruby_sdk/models/daily_statistics.rb +322 -0
- data/lib/sendpost_ruby_sdk/models/date_stat.rb +339 -0
- data/lib/sendpost_ruby_sdk/models/delete_response.rb +5 -4
- data/lib/sendpost_ruby_sdk/models/delete_sub_account_response.rb +5 -4
- data/lib/sendpost_ruby_sdk/models/delete_suppression200_response.rb +221 -0
- data/lib/sendpost_ruby_sdk/models/delete_suppression_request.rb +4 -3
- data/lib/sendpost_ruby_sdk/models/delete_suppression_request_suppressions_inner.rb +220 -0
- data/lib/sendpost_ruby_sdk/models/delete_webhook_response.rb +5 -4
- data/lib/sendpost_ruby_sdk/models/device.rb +5 -3
- data/lib/sendpost_ruby_sdk/models/dns_record.rb +276 -0
- data/lib/sendpost_ruby_sdk/models/domain.rb +42 -56
- data/lib/sendpost_ruby_sdk/models/domain_stat.rb +369 -0
- data/lib/sendpost_ruby_sdk/models/eip.rb +4 -3
- data/lib/sendpost_ruby_sdk/models/email_address.rb +41 -2
- data/lib/sendpost_ruby_sdk/models/email_message.rb +26 -9
- data/lib/sendpost_ruby_sdk/models/email_message_object.rb +123 -3
- data/lib/sendpost_ruby_sdk/models/email_message_with_template.rb +121 -12
- data/lib/sendpost_ruby_sdk/models/email_response.rb +8 -4
- data/lib/sendpost_ruby_sdk/models/email_type_stat.rb +339 -0
- data/lib/sendpost_ruby_sdk/models/error_response.rb +221 -0
- data/lib/sendpost_ruby_sdk/models/error_response_error.rb +297 -0
- data/lib/sendpost_ruby_sdk/models/error_response_error_details_inner.rb +231 -0
- data/lib/sendpost_ruby_sdk/models/event.rb +94 -118
- data/lib/sendpost_ruby_sdk/models/event_metadata.rb +15 -5
- data/lib/sendpost_ruby_sdk/models/geo_location.rb +20 -14
- data/lib/sendpost_ruby_sdk/models/group_stat.rb +339 -0
- data/lib/sendpost_ruby_sdk/models/ip.rb +72 -223
- data/lib/sendpost_ruby_sdk/models/ip_allocation_request.rb +29 -33
- data/lib/sendpost_ruby_sdk/models/ip_deletion_response.rb +5 -4
- data/lib/sendpost_ruby_sdk/models/ip_pool.rb +100 -66
- data/lib/sendpost_ruby_sdk/models/ip_pool_create_request.rb +101 -9
- data/lib/sendpost_ruby_sdk/models/ip_pool_delete_response.rb +5 -2
- data/lib/sendpost_ruby_sdk/models/ip_pool_stat.rb +359 -0
- data/lib/sendpost_ruby_sdk/models/ip_pool_update_request.rb +97 -7
- data/lib/sendpost_ruby_sdk/models/ip_stat.rb +369 -0
- data/lib/sendpost_ruby_sdk/models/ip_update_request.rb +4 -20
- data/lib/sendpost_ruby_sdk/models/label.rb +101 -6
- data/lib/sendpost_ruby_sdk/models/member.rb +49 -57
- data/lib/sendpost_ruby_sdk/models/message.rb +39 -120
- data/lib/sendpost_ruby_sdk/models/new_sub_account.rb +257 -0
- data/lib/sendpost_ruby_sdk/models/new_webhook.rb +407 -0
- data/lib/sendpost_ruby_sdk/models/os.rb +262 -0
- data/lib/sendpost_ruby_sdk/models/postmaster_domain_stat.rb +282 -0
- data/lib/sendpost_ruby_sdk/models/provider_stat.rb +339 -0
- data/lib/sendpost_ruby_sdk/models/r_stat.rb +231 -0
- data/lib/sendpost_ruby_sdk/models/raip_pool_stat.rb +231 -0
- data/lib/sendpost_ruby_sdk/models/rd_stat.rb +231 -0
- data/lib/sendpost_ruby_sdk/models/recipient.rb +82 -3
- data/lib/sendpost_ruby_sdk/models/rip_stat.rb +231 -0
- data/lib/sendpost_ruby_sdk/models/sd_stat.rb +349 -0
- data/lib/sendpost_ruby_sdk/models/seed_contact_stats.rb +281 -0
- data/lib/sendpost_ruby_sdk/models/smtp_auth.rb +10 -29
- data/lib/sendpost_ruby_sdk/models/stat.rb +108 -16
- data/lib/sendpost_ruby_sdk/models/sub_account.rb +57 -115
- data/lib/sendpost_ruby_sdk/models/sub_account_stat.rb +359 -0
- data/lib/sendpost_ruby_sdk/models/sub_account_stat_for_pool.rb +349 -0
- data/lib/sendpost_ruby_sdk/models/suppression.rb +82 -15
- data/lib/sendpost_ruby_sdk/models/tpsp_stat.rb +349 -0
- data/lib/sendpost_ruby_sdk/models/update_sub_account.rb +32 -3
- data/lib/sendpost_ruby_sdk/models/update_webhook.rb +83 -37
- data/lib/sendpost_ruby_sdk/models/user_agent.rb +11 -6
- data/lib/sendpost_ruby_sdk/models/validation_stat.rb +292 -0
- data/lib/sendpost_ruby_sdk/models/webhook.rb +108 -67
- data/lib/sendpost_ruby_sdk/models/webhook_object.rb +232 -0
- data/lib/sendpost_ruby_sdk/version.rb +3 -3
- data/lib/sendpost_ruby_sdk.rb +36 -26
- data/sendpost_ruby_sdk.gemspec +39 -0
- data/spec/api/webhook_reference_api_spec.rb +46 -0
- data/spec/models/account_cycle_usage_spec.rb +36 -0
- data/spec/models/account_webhook_with_stats_spec.rb +160 -0
- data/spec/models/blacklist_links_spec.rb +42 -0
- data/spec/models/blacklist_resource_spec.rb +96 -0
- data/spec/models/blacklisted_on_spec.rb +42 -0
- data/spec/models/daily_statistics_spec.rb +96 -0
- data/spec/models/date_stat_spec.rb +102 -0
- data/spec/models/delete_suppression200_response_spec.rb +36 -0
- data/spec/models/delete_suppression_request_suppressions_inner_spec.rb +36 -0
- data/spec/models/dns_record_spec.rb +52 -0
- data/spec/models/domain_stat_spec.rb +120 -0
- data/spec/models/email_type_stat_spec.rb +102 -0
- data/spec/models/error_response_error_details_inner_spec.rb +42 -0
- data/spec/models/error_response_error_spec.rb +64 -0
- data/spec/models/error_response_spec.rb +36 -0
- data/spec/models/group_stat_spec.rb +102 -0
- data/spec/models/ip_pool_stat_spec.rb +114 -0
- data/spec/models/ip_stat_spec.rb +120 -0
- data/spec/models/new_sub_account_spec.rb +36 -0
- data/spec/models/new_webhook_spec.rb +120 -0
- data/spec/models/os_spec.rb +60 -0
- data/spec/models/postmaster_domain_stat_spec.rb +72 -0
- data/spec/models/provider_stat_spec.rb +102 -0
- data/spec/models/r_stat_spec.rb +42 -0
- data/spec/models/raip_pool_stat_spec.rb +42 -0
- data/spec/models/rd_stat_spec.rb +42 -0
- data/spec/models/rip_stat_spec.rb +42 -0
- data/spec/models/sd_stat_spec.rb +108 -0
- data/spec/models/seed_contact_stats_spec.rb +66 -0
- data/spec/models/sub_account_stat_for_pool_spec.rb +108 -0
- data/spec/models/sub_account_stat_spec.rb +114 -0
- data/spec/models/tpsp_stat_spec.rb +108 -0
- data/spec/models/validation_stat_spec.rb +78 -0
- data/spec/models/webhook_object_spec.rb +42 -0
- data/spec/spec_helper.rb +2 -2
- metadata +144 -212
- data/LICENSE +0 -21
- data/docs/AccountStatsStat.md +0 -38
- data/docs/AggregatedEmailStats.md +0 -38
- data/docs/AutoWarmupPlan.md +0 -80
- data/docs/CreateSubAccountRequest.md +0 -18
- data/docs/CreateWebhookRequest.md +0 -46
- data/docs/DomainDkim.md +0 -22
- data/docs/DomainDmarc.md +0 -22
- data/docs/DomainGpt.md +0 -22
- data/docs/DomainReturnPath.md +0 -22
- data/docs/DomainTrack.md +0 -22
- data/docs/EmailMessageFrom.md +0 -20
- data/docs/EmailMessageToInner.md +0 -26
- data/docs/EmailMessageToInnerBccInner.md +0 -22
- data/docs/EmailMessageToInnerCcInner.md +0 -22
- data/docs/EmailStats.md +0 -20
- data/docs/EmailStatsStats.md +0 -38
- data/docs/MessageHeaderTo.md +0 -26
- data/docs/MessageTo.md +0 -26
- data/docs/OperatingSystem.md +0 -26
- data/docs/Person.md +0 -20
- data/docs/StatStats.md +0 -38
- data/docs/ThirdPartySendingProvider.md +0 -38
- data/lib/sendpost_ruby_sdk/models/account_stats_stat.rb +0 -310
- data/lib/sendpost_ruby_sdk/models/aggregated_email_stats.rb +0 -321
- data/lib/sendpost_ruby_sdk/models/auto_warmup_plan.rb +0 -531
- data/lib/sendpost_ruby_sdk/models/create_sub_account_request.rb +0 -221
- data/lib/sendpost_ruby_sdk/models/create_webhook_request.rb +0 -361
- data/lib/sendpost_ruby_sdk/models/delete_suppression200_response_inner.rb +0 -231
- data/lib/sendpost_ruby_sdk/models/domain_dkim.rb +0 -239
- data/lib/sendpost_ruby_sdk/models/domain_dmarc.rb +0 -239
- data/lib/sendpost_ruby_sdk/models/domain_gpt.rb +0 -239
- data/lib/sendpost_ruby_sdk/models/domain_return_path.rb +0 -239
- data/lib/sendpost_ruby_sdk/models/domain_track.rb +0 -239
- data/lib/sendpost_ruby_sdk/models/email_message_from.rb +0 -229
- data/lib/sendpost_ruby_sdk/models/email_message_reply_to.rb +0 -229
- data/lib/sendpost_ruby_sdk/models/email_message_to_inner.rb +0 -262
- data/lib/sendpost_ruby_sdk/models/email_message_to_inner_bcc_inner.rb +0 -240
- data/lib/sendpost_ruby_sdk/models/email_message_to_inner_cc_inner.rb +0 -240
- data/lib/sendpost_ruby_sdk/models/email_stats.rb +0 -230
- data/lib/sendpost_ruby_sdk/models/email_stats_stats.rb +0 -321
- data/lib/sendpost_ruby_sdk/models/message_header_to.rb +0 -268
- data/lib/sendpost_ruby_sdk/models/message_to.rb +0 -268
- data/lib/sendpost_ruby_sdk/models/operating_system.rb +0 -256
- data/lib/sendpost_ruby_sdk/models/person.rb +0 -231
- data/lib/sendpost_ruby_sdk/models/stat_stats.rb +0 -321
- data/lib/sendpost_ruby_sdk/models/third_party_sending_provider.rb +0 -310
- data/spec/api/domain_api_spec.rb +0 -85
- data/spec/api/email_api_spec.rb +0 -59
- data/spec/api/ip_api_spec.rb +0 -98
- data/spec/api/ip_pools_api_spec.rb +0 -98
- data/spec/api/message_api_spec.rb +0 -47
- data/spec/api/stats_a_api_spec.rb +0 -89
- data/spec/api/stats_api_spec.rb +0 -78
- data/spec/api/sub_account_api_spec.rb +0 -98
- data/spec/api/suppression_api_spec.rb +0 -76
- data/spec/api/webhook_api_spec.rb +0 -98
- data/spec/models/account_stats_spec.rb +0 -42
- data/spec/models/account_stats_stat_spec.rb +0 -96
- data/spec/models/aggregate_stat_spec.rb +0 -96
- data/spec/models/aggregate_stats_spec.rb +0 -96
- data/spec/models/aggregated_email_stats_spec.rb +0 -96
- data/spec/models/attachment_spec.rb +0 -42
- data/spec/models/auto_warmup_plan_spec.rb +0 -222
- data/spec/models/copy_to_spec.rb +0 -48
- data/spec/models/create_domain_request_spec.rb +0 -36
- data/spec/models/create_sub_account_request_spec.rb +0 -36
- data/spec/models/create_suppression_request_hard_bounce_inner_spec.rb +0 -36
- data/spec/models/create_suppression_request_manual_inner_spec.rb +0 -36
- data/spec/models/create_suppression_request_spam_complaint_inner_spec.rb +0 -36
- data/spec/models/create_suppression_request_spec.rb +0 -54
- data/spec/models/create_suppression_request_unsubscribe_inner_spec.rb +0 -36
- data/spec/models/create_webhook_request_spec.rb +0 -120
- data/spec/models/delete_response_spec.rb +0 -42
- data/spec/models/delete_sub_account_response_spec.rb +0 -42
- data/spec/models/delete_suppression200_response_inner_spec.rb +0 -42
- data/spec/models/delete_suppression_request_spec.rb +0 -36
- data/spec/models/delete_webhook_response_spec.rb +0 -42
- data/spec/models/device_spec.rb +0 -36
- data/spec/models/domain_dkim_spec.rb +0 -48
- data/spec/models/domain_dmarc_spec.rb +0 -48
- data/spec/models/domain_gpt_spec.rb +0 -48
- data/spec/models/domain_return_path_spec.rb +0 -48
- data/spec/models/domain_spec.rb +0 -150
- data/spec/models/domain_track_spec.rb +0 -48
- data/spec/models/eip_spec.rb +0 -36
- data/spec/models/email_address_spec.rb +0 -42
- data/spec/models/email_message_from_spec.rb +0 -42
- data/spec/models/email_message_object_spec.rb +0 -120
- data/spec/models/email_message_reply_to_spec.rb +0 -42
- data/spec/models/email_message_spec.rb +0 -138
- data/spec/models/email_message_to_inner_bcc_inner_spec.rb +0 -48
- data/spec/models/email_message_to_inner_cc_inner_spec.rb +0 -48
- data/spec/models/email_message_to_inner_spec.rb +0 -60
- data/spec/models/email_message_with_template_spec.rb +0 -138
- data/spec/models/email_response_spec.rb +0 -60
- data/spec/models/email_stats_spec.rb +0 -42
- data/spec/models/email_stats_stats_spec.rb +0 -96
- data/spec/models/event_metadata_spec.rb +0 -84
- data/spec/models/event_spec.rb +0 -150
- data/spec/models/geo_location_spec.rb +0 -60
- data/spec/models/ip_allocation_request_spec.rb +0 -42
- data/spec/models/ip_deletion_response_spec.rb +0 -42
- data/spec/models/ip_pool_create_request_spec.rb +0 -66
- data/spec/models/ip_pool_delete_response_spec.rb +0 -42
- data/spec/models/ip_pool_spec.rb +0 -108
- data/spec/models/ip_pool_update_request_spec.rb +0 -54
- data/spec/models/ip_spec.rb +0 -168
- data/spec/models/ip_update_request_spec.rb +0 -36
- data/spec/models/label_spec.rb +0 -48
- data/spec/models/member_spec.rb +0 -102
- data/spec/models/message_header_to_spec.rb +0 -60
- data/spec/models/message_spec.rb +0 -210
- data/spec/models/message_to_spec.rb +0 -60
- data/spec/models/operating_system_spec.rb +0 -60
- data/spec/models/person_spec.rb +0 -42
- data/spec/models/recipient_spec.rb +0 -60
- data/spec/models/smtp_auth_spec.rb +0 -60
- data/spec/models/stat_spec.rb +0 -42
- data/spec/models/stat_stats_spec.rb +0 -96
- data/spec/models/sub_account_spec.rb +0 -130
- data/spec/models/suppression_spec.rb +0 -60
- data/spec/models/third_party_sending_provider_spec.rb +0 -96
- data/spec/models/update_sub_account_spec.rb +0 -36
- data/spec/models/update_webhook_spec.rb +0 -120
- data/spec/models/user_agent_spec.rb +0 -54
- data/spec/models/webhook_spec.rb +0 -144
data/docs/IPApi.md
CHANGED
|
@@ -17,7 +17,7 @@ All URIs are relative to *https://api.sendpost.io/api/v1*
|
|
|
17
17
|
|
|
18
18
|
Allocate IP
|
|
19
19
|
|
|
20
|
-
|
|
20
|
+
Request allocation of a new dedicated IP address to your account. New IPs start in warmup state to build sender reputation gradually. **Warmup Process:** - New IPs have limited daily sending capacity - Volume increases automatically each day while `autoWarmupEnabled` is set - Full capacity typically reached after 30-45 days - Consistent, engagement-positive sending accelerates warmup **When to Allocate New IPs:** - Scaling beyond current IP capacity - Separating different email streams (transactional vs marketing) - Geographic IP requirements - Replacing an IP with poor reputation **Best Practices:** - Dedicated IPs require consistent volume (10k+ emails/month ideal) - Low volume on dedicated IPs can harm deliverability - Consider shared IPs for low-volume senders
|
|
21
21
|
|
|
22
22
|
### Examples
|
|
23
23
|
|
|
@@ -33,7 +33,7 @@ Sendpost.configure do |config|
|
|
|
33
33
|
end
|
|
34
34
|
|
|
35
35
|
api_instance = Sendpost::IPApi.new
|
|
36
|
-
ip_allocation_request = Sendpost::IPAllocationRequest.new({
|
|
36
|
+
ip_allocation_request = Sendpost::IPAllocationRequest.new({ips: [34.21.14.11, 34.21.14.12]}) # IPAllocationRequest |
|
|
37
37
|
|
|
38
38
|
begin
|
|
39
39
|
# Allocate IP
|
|
@@ -88,7 +88,7 @@ end
|
|
|
88
88
|
|
|
89
89
|
Delete IP
|
|
90
90
|
|
|
91
|
-
|
|
91
|
+
Remove an IP address from your account. This action is irreversible. **⚠️ Before Deleting:** - Remove the IP from all IP pools first - Ensure no active sending relies on this IP - Consider impact on overall sending capacity **Note:** You cannot delete an IP that is currently assigned to an IP pool.
|
|
92
92
|
|
|
93
93
|
### Examples
|
|
94
94
|
|
|
@@ -104,7 +104,7 @@ Sendpost.configure do |config|
|
|
|
104
104
|
end
|
|
105
105
|
|
|
106
106
|
api_instance = Sendpost::IPApi.new
|
|
107
|
-
ip_id =
|
|
107
|
+
ip_id = 11322 # Integer | The unique ID of the IP resource to delete.
|
|
108
108
|
|
|
109
109
|
begin
|
|
110
110
|
# Delete IP
|
|
@@ -137,7 +137,7 @@ end
|
|
|
137
137
|
|
|
138
138
|
| Name | Type | Description | Notes |
|
|
139
139
|
| ---- | ---- | ----------- | ----- |
|
|
140
|
-
| **ip_id** | **Integer** | The ID of the IP resource to delete | |
|
|
140
|
+
| **ip_id** | **Integer** | The unique ID of the IP resource to delete. | |
|
|
141
141
|
|
|
142
142
|
### Return type
|
|
143
143
|
|
|
@@ -159,7 +159,7 @@ end
|
|
|
159
159
|
|
|
160
160
|
List IPs
|
|
161
161
|
|
|
162
|
-
|
|
162
|
+
Retrieve all IP addresses allocated to your account. IPs are the foundation of your sending infrastructure and directly impact deliverability. **IP Types:** | Type | Value | Description | |------|-------|-------------| | Shared | `0` | IP shared with other SendPost senders. Cost-effective, reputation is pooled. | | Dedicated | `1` | Exclusive IP for your account. Full control over sender reputation. | **IP States:** | State | Value | Description | |-------|-------|-------------| | Warmup | `0` | New IP building reputation. Volume is limited and gradually increases. | | Normal | `1` | Fully warmed IP ready for normal sending volume. | **Warmup Information:** - `autoWarmupEnabled` - Whether SendPost is automatically increasing volume **Use Cases:** - Monitor IP warmup progress for new IPs - Audit shared vs dedicated IP allocation - Plan IP pool configurations - Check available sending capacity
|
|
163
163
|
|
|
164
164
|
### Examples
|
|
165
165
|
|
|
@@ -176,9 +176,9 @@ end
|
|
|
176
176
|
|
|
177
177
|
api_instance = Sendpost::IPApi.new
|
|
178
178
|
opts = {
|
|
179
|
-
limit:
|
|
180
|
-
offset:
|
|
181
|
-
search: '
|
|
179
|
+
limit: 50, # Integer | Number of records to return per request. Default 20.
|
|
180
|
+
offset: 0, # Integer | Number of initial records to skip for pagination.
|
|
181
|
+
search: '52.34' # String | Case insensitive search against public IP addresses.
|
|
182
182
|
}
|
|
183
183
|
|
|
184
184
|
begin
|
|
@@ -212,9 +212,9 @@ end
|
|
|
212
212
|
|
|
213
213
|
| Name | Type | Description | Notes |
|
|
214
214
|
| ---- | ---- | ----------- | ----- |
|
|
215
|
-
| **limit** | **Integer** | Number of records to return per request | [optional] |
|
|
216
|
-
| **offset** | **Integer** | Number of initial records to skip | [optional] |
|
|
217
|
-
| **search** | **String** | Case insensitive search against
|
|
215
|
+
| **limit** | **Integer** | Number of records to return per request. Default 20. | [optional][default to 20] |
|
|
216
|
+
| **offset** | **Integer** | Number of initial records to skip for pagination. | [optional][default to 0] |
|
|
217
|
+
| **search** | **String** | Case insensitive search against public IP addresses. | [optional] |
|
|
218
218
|
|
|
219
219
|
### Return type
|
|
220
220
|
|
|
@@ -236,7 +236,7 @@ end
|
|
|
236
236
|
|
|
237
237
|
Get IP
|
|
238
238
|
|
|
239
|
-
|
|
239
|
+
Retrieve detailed information about a specific IP address, including its warmup status, type, and configuration. **Use Cases:** - Check warmup progress for a new dedicated IP - Verify IP configuration before adding to a pool - Debug deliverability issues by checking IP state - Monitor auto-warmup progress
|
|
240
240
|
|
|
241
241
|
### Examples
|
|
242
242
|
|
|
@@ -252,7 +252,7 @@ Sendpost.configure do |config|
|
|
|
252
252
|
end
|
|
253
253
|
|
|
254
254
|
api_instance = Sendpost::IPApi.new
|
|
255
|
-
ip_id =
|
|
255
|
+
ip_id = 11322 # Integer | The unique ID of the IP resource to retrieve.
|
|
256
256
|
|
|
257
257
|
begin
|
|
258
258
|
# Get IP
|
|
@@ -285,7 +285,7 @@ end
|
|
|
285
285
|
|
|
286
286
|
| Name | Type | Description | Notes |
|
|
287
287
|
| ---- | ---- | ----------- | ----- |
|
|
288
|
-
| **ip_id** | **Integer** | The ID of the IP resource to retrieve | |
|
|
288
|
+
| **ip_id** | **Integer** | The unique ID of the IP resource to retrieve. | |
|
|
289
289
|
|
|
290
290
|
### Return type
|
|
291
291
|
|
|
@@ -307,7 +307,7 @@ end
|
|
|
307
307
|
|
|
308
308
|
Update IP
|
|
309
309
|
|
|
310
|
-
|
|
310
|
+
Modify settings for an existing IP address. Use this to manage warmup configuration. **Configurable Settings:** - `autoWarmupEnabled` - Enable/disable automatic warmup schedule **Use Cases:** - Pause auto-warmup during low-volume periods - Re-enable warmup after manual intervention - Adjust warmup settings based on sending patterns
|
|
311
311
|
|
|
312
312
|
### Examples
|
|
313
313
|
|
|
@@ -323,8 +323,8 @@ Sendpost.configure do |config|
|
|
|
323
323
|
end
|
|
324
324
|
|
|
325
325
|
api_instance = Sendpost::IPApi.new
|
|
326
|
-
ip_update_request = Sendpost::IPUpdateRequest.new
|
|
327
|
-
ip_id =
|
|
326
|
+
ip_update_request = Sendpost::IPUpdateRequest.new # IPUpdateRequest |
|
|
327
|
+
ip_id = 11322 # Integer | The unique ID of the IP resource to update.
|
|
328
328
|
|
|
329
329
|
begin
|
|
330
330
|
# Update IP
|
|
@@ -358,7 +358,7 @@ end
|
|
|
358
358
|
| Name | Type | Description | Notes |
|
|
359
359
|
| ---- | ---- | ----------- | ----- |
|
|
360
360
|
| **ip_update_request** | [**IPUpdateRequest**](IPUpdateRequest.md) | | |
|
|
361
|
-
| **ip_id** | **Integer** | The ID of the IP resource to update | |
|
|
361
|
+
| **ip_id** | **Integer** | The unique ID of the IP resource to update. | |
|
|
362
362
|
|
|
363
363
|
### Return type
|
|
364
364
|
|
data/docs/IPDeletionResponse.md
CHANGED
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
|
|
5
5
|
| Name | Type | Description | Notes |
|
|
6
6
|
| ---- | ---- | ----------- | ----- |
|
|
7
|
-
| **id** | **Integer** |
|
|
8
|
-
| **message** | **String** |
|
|
7
|
+
| **id** | **Integer** | ID of the deleted IP | |
|
|
8
|
+
| **message** | **String** | Confirmation message | |
|
|
9
9
|
|
|
10
10
|
## Example
|
|
11
11
|
|
data/docs/IPPool.md
CHANGED
|
@@ -4,19 +4,15 @@
|
|
|
4
4
|
|
|
5
5
|
| Name | Type | Description | Notes |
|
|
6
6
|
| ---- | ---- | ----------- | ----- |
|
|
7
|
-
| **id** | **Integer** |
|
|
8
|
-
| **name** | **String** | | [optional] |
|
|
9
|
-
| **
|
|
10
|
-
| **
|
|
11
|
-
| **
|
|
12
|
-
| **
|
|
13
|
-
| **
|
|
14
|
-
| **
|
|
15
|
-
| **
|
|
16
|
-
| **ip_domain_warmup_status** | **String** | | [optional] |
|
|
17
|
-
| **should_overflow** | **Boolean** | Indicates whether the IP should overflow, once email capacity of the IP Pool has been reached, should we send remaining emails over shared IP or not | [optional] |
|
|
18
|
-
| **overflow_pool_name** | **String** | The name of the overflow pool | [optional] |
|
|
19
|
-
| **warmup_interval** | **Integer** | The interval for the warmup | [optional] |
|
|
7
|
+
| **id** | **Integer** | Unique identifier for the IP pool | [optional] |
|
|
8
|
+
| **name** | **String** | Display name for the IP pool. Must be unique within your account. Use descriptive names like \"transactional\", \"marketing\", \"high-priority\". | [optional] |
|
|
9
|
+
| **type** | **Integer** | Type of IP pool: - `0` = Shared (uses shared IPs with pooled reputation) - `1` = Dedicated (uses dedicated IPs exclusive to your account) | [optional] |
|
|
10
|
+
| **routing_strategy** | **Integer** | How emails are distributed across IPs/providers in this pool: - `0` = Round Robin (equal distribution) - `1` = Email Provider Strategy (route by recipient domain like Gmail, Yahoo) - `2` = Volume Percentage Strategy (weighted distribution) - `3` = Sending Domain Strategy (route by sender domain) See the IPPools tag description for detailed routing configuration examples. | [optional] |
|
|
11
|
+
| **routing_meta_data** | **String** | JSON-encoded configuration for the selected routing strategy. Format depends on routingStrategy value. See IPPools documentation for examples. For Round Robin (strategy 0): Use empty object `{}` | [optional] |
|
|
12
|
+
| **should_overflow** | **Boolean** | Whether to automatically overflow to a backup pool when this pool is unavailable (all IPs down) or at capacity (warmup limits reached). | [optional] |
|
|
13
|
+
| **overflow_pool_name** | **String** | Name of the IP pool to overflow to when shouldOverflow is enabled. The overflow pool must exist. Common pattern: overflow to shared IP pool. | [optional] |
|
|
14
|
+
| **ips** | [**Array<IP>**](IP.md) | List of dedicated IPs assigned to this pool | [optional] |
|
|
15
|
+
| **created** | **Integer** | UNIX epoch timestamp in nanoseconds when the IP pool was created | [optional] |
|
|
20
16
|
|
|
21
17
|
## Example
|
|
22
18
|
|
|
@@ -26,17 +22,13 @@ require 'sendpost_ruby_sdk'
|
|
|
26
22
|
instance = Sendpost::IPPool.new(
|
|
27
23
|
id: 746,
|
|
28
24
|
name: Transactional,
|
|
29
|
-
|
|
30
|
-
ips: null,
|
|
31
|
-
third_party_sending_providers: null,
|
|
25
|
+
type: 1,
|
|
32
26
|
routing_strategy: 0,
|
|
33
27
|
routing_meta_data: {},
|
|
34
|
-
auto_warmup_enabled: false,
|
|
35
|
-
infra_monitor: true,
|
|
36
|
-
ip_domain_warmup_status: null,
|
|
37
28
|
should_overflow: true,
|
|
38
|
-
overflow_pool_name:
|
|
39
|
-
|
|
29
|
+
overflow_pool_name: shared-backup,
|
|
30
|
+
ips: null,
|
|
31
|
+
created: 1704067200000000000
|
|
40
32
|
)
|
|
41
33
|
```
|
|
42
34
|
|
data/docs/IPPoolCreateRequest.md
CHANGED
|
@@ -4,12 +4,13 @@
|
|
|
4
4
|
|
|
5
5
|
| Name | Type | Description | Notes |
|
|
6
6
|
| ---- | ---- | ----------- | ----- |
|
|
7
|
-
| **name** | **String** |
|
|
8
|
-
| **ips** | [**Array<EIP>**](EIP.md) | | [optional] |
|
|
9
|
-
| **tpsps** | **Array<Integer>** | | [optional] |
|
|
10
|
-
| **routing_strategy** | **Integer** | | [optional] |
|
|
11
|
-
| **routing_meta_data** | **String** | | [optional] |
|
|
12
|
-
| **
|
|
7
|
+
| **name** | **String** | Display name for the IP pool. Must be unique within your account. Use descriptive names like \"transactional\", \"marketing-bulk\", \"high-priority\" | |
|
|
8
|
+
| **ips** | [**Array<EIP>**](EIP.md) | List of dedicated IP addresses to include in this pool. IPs must already be allocated to your account. | [optional] |
|
|
9
|
+
| **tpsps** | **Array<Integer>** | List of third-party sending provider IDs to include in this pool. TPSPs must be pre-configured in your account. | [optional] |
|
|
10
|
+
| **routing_strategy** | **Integer** | Email routing strategy: - `0` = Round Robin (equal distribution) - `1` = Email Provider Strategy (route by recipient domain) - `2` = Volume Percentage Strategy (weighted distribution) - `3` = Sending Domain Strategy (route by sender domain) | [optional][default to ROUTING_STRATEGY::N0] |
|
|
11
|
+
| **routing_meta_data** | **String** | JSON-encoded routing configuration. See IPPools documentation for format. Use `{}` for round-robin strategy. | [optional][default to '{}'] |
|
|
12
|
+
| **should_overflow** | **Boolean** | Whether to overflow to shared pool when this pool is unavailable | [optional][default to false] |
|
|
13
|
+
| **overflow_pool_name** | **String** | Name of the IP pool to overflow to (if shouldOverflow is true) | [optional] |
|
|
13
14
|
|
|
14
15
|
## Example
|
|
15
16
|
|
|
@@ -19,10 +20,11 @@ require 'sendpost_ruby_sdk'
|
|
|
19
20
|
instance = Sendpost::IPPoolCreateRequest.new(
|
|
20
21
|
name: Marketing Promotional,
|
|
21
22
|
ips: null,
|
|
22
|
-
tpsps: [
|
|
23
|
+
tpsps: [101, 102],
|
|
23
24
|
routing_strategy: 0,
|
|
24
25
|
routing_meta_data: {},
|
|
25
|
-
|
|
26
|
+
should_overflow: true,
|
|
27
|
+
overflow_pool_name: shared-backup
|
|
26
28
|
)
|
|
27
29
|
```
|
|
28
30
|
|
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
|
|
5
5
|
| Name | Type | Description | Notes |
|
|
6
6
|
| ---- | ---- | ----------- | ----- |
|
|
7
|
-
| **id** | **Integer** |
|
|
8
|
-
| **message** | **String** |
|
|
7
|
+
| **id** | **Integer** | ID of the deleted IP pool | [optional] |
|
|
8
|
+
| **message** | **String** | Confirmation message | [optional] |
|
|
9
9
|
|
|
10
10
|
## Example
|
|
11
11
|
|
data/docs/IPPoolStat.md
ADDED
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
# Sendpost::IPPoolStat
|
|
2
|
+
|
|
3
|
+
## Properties
|
|
4
|
+
|
|
5
|
+
| Name | Type | Description | Notes |
|
|
6
|
+
| ---- | ---- | ----------- | ----- |
|
|
7
|
+
| **processed** | **Integer** | Total number of emails accepted by SendPost API for processing. This is the starting point - all emails submitted through the API. | [optional] |
|
|
8
|
+
| **sent** | **Integer** | Number of emails sent to recipient mail servers. sent = processed - dropped - smtpDropped | [optional] |
|
|
9
|
+
| **dropped** | **Integer** | Number of emails dropped before sending. Common reasons: - Recipient email in suppression list (hard bounce, spam complaint, unsubscribe) - Invalid recipient email format - Sender domain not verified | [optional] |
|
|
10
|
+
| **smtp_dropped** | **Integer** | Number of emails dropped at SMTP level due to policy violations or rate limiting by the receiving server before delivery attempt completed. | [optional] |
|
|
11
|
+
| **delivered** | **Integer** | Number of emails successfully delivered to recipient mail servers. Note: Delivered means accepted by the server, not necessarily in inbox. | [optional] |
|
|
12
|
+
| **soft_bounced** | **Integer** | Number of temporary delivery failures (soft bounces). Common causes: - Recipient mailbox full - Server temporarily unavailable - Message too large SendPost automatically retries soft bounces. | [optional] |
|
|
13
|
+
| **hard_bounced** | **Integer** | Number of permanent delivery failures (hard bounces). Common causes: - Recipient email doesn't exist - Domain doesn't exist - Recipient has blocked sender Hard bounced addresses are automatically added to suppression list. | [optional] |
|
|
14
|
+
| **opened** | **Integer** | Number of emails opened (tracking pixel loaded). Requires trackOpens=true. Note: Some email clients block tracking pixels. | [optional] |
|
|
15
|
+
| **clicked** | **Integer** | Number of emails with at least one link clicked. Requires trackClicks=true. | [optional] |
|
|
16
|
+
| **unsubscribed** | **Integer** | Number of recipients who clicked the unsubscribe link. Unsubscribed addresses are automatically added to suppression list. | [optional] |
|
|
17
|
+
| **spam** | **Integer** | Number of spam complaints (recipient marked email as spam). High spam rates can severely impact your sender reputation. Target: Keep spam rate below 0.1%. | [optional] |
|
|
18
|
+
| **ip_pool_id** | **Integer** | Unique identifier of the IP pool. | [optional] |
|
|
19
|
+
| **ip_pool_name** | **String** | Human-readable name of the IP pool. | [optional] |
|
|
20
|
+
| **pending** | **Integer** | Number of emails queued on this pool but not yet processed. | [optional] |
|
|
21
|
+
|
|
22
|
+
## Example
|
|
23
|
+
|
|
24
|
+
```ruby
|
|
25
|
+
require 'sendpost_ruby_sdk'
|
|
26
|
+
|
|
27
|
+
instance = Sendpost::IPPoolStat.new(
|
|
28
|
+
processed: 225,
|
|
29
|
+
sent: 220,
|
|
30
|
+
dropped: 10,
|
|
31
|
+
smtp_dropped: 5,
|
|
32
|
+
delivered: 200,
|
|
33
|
+
soft_bounced: 5,
|
|
34
|
+
hard_bounced: 10,
|
|
35
|
+
opened: 150,
|
|
36
|
+
clicked: 50,
|
|
37
|
+
unsubscribed: 6,
|
|
38
|
+
spam: 2,
|
|
39
|
+
ip_pool_id: 5,
|
|
40
|
+
ip_pool_name: Transactional Pool,
|
|
41
|
+
pending: 3
|
|
42
|
+
)
|
|
43
|
+
```
|
|
44
|
+
|
data/docs/IPPoolUpdateRequest.md
CHANGED
|
@@ -4,10 +4,13 @@
|
|
|
4
4
|
|
|
5
5
|
| Name | Type | Description | Notes |
|
|
6
6
|
| ---- | ---- | ----------- | ----- |
|
|
7
|
-
| **name** | **String** |
|
|
8
|
-
| **ips** | [**Array<
|
|
9
|
-
| **
|
|
10
|
-
| **
|
|
7
|
+
| **name** | **String** | New display name for the IP pool | [optional] |
|
|
8
|
+
| **ips** | [**Array<EIP>**](EIP.md) | Updated list of IP addresses for this pool. This replaces the current IP list - include all IPs you want in the pool. | [optional] |
|
|
9
|
+
| **tpsps** | **Array<Integer>** | Updated list of third-party sending provider IDs | [optional] |
|
|
10
|
+
| **routing_strategy** | **Integer** | Updated routing strategy (see IPPoolCreateRequest for values) | [optional] |
|
|
11
|
+
| **routing_meta_data** | **String** | Updated routing configuration (JSON) | [optional] |
|
|
12
|
+
| **should_overflow** | **Boolean** | Whether to enable overflow to backup pool | [optional] |
|
|
13
|
+
| **overflow_pool_name** | **String** | Name of the overflow pool | [optional] |
|
|
11
14
|
|
|
12
15
|
## Example
|
|
13
16
|
|
|
@@ -15,10 +18,13 @@
|
|
|
15
18
|
require 'sendpost_ruby_sdk'
|
|
16
19
|
|
|
17
20
|
instance = Sendpost::IPPoolUpdateRequest.new(
|
|
18
|
-
name: Marketing Promotional,
|
|
19
|
-
ips:
|
|
21
|
+
name: Marketing Promotional v2,
|
|
22
|
+
ips: null,
|
|
23
|
+
tpsps: null,
|
|
20
24
|
routing_strategy: 0,
|
|
21
|
-
routing_meta_data: {}
|
|
25
|
+
routing_meta_data: {},
|
|
26
|
+
should_overflow: true,
|
|
27
|
+
overflow_pool_name: shared-backup
|
|
22
28
|
)
|
|
23
29
|
```
|
|
24
30
|
|
data/docs/IPPoolsApi.md
CHANGED
|
@@ -17,7 +17,7 @@ All URIs are relative to *https://api.sendpost.io/api/v1*
|
|
|
17
17
|
|
|
18
18
|
Create IPPool
|
|
19
19
|
|
|
20
|
-
|
|
20
|
+
Create a new IP pool to organize your sending infrastructure. Pools group IPs and third-party sending providers (TPSPs) for intelligent routing. **Pool Components:** - **IPs:** Dedicated IP addresses from your account - **TPSPs:** Third-party sending providers (SendGrid, Mailgun, etc.) **TPSP Types:** | Value | Provider | |-------|----------| | `0` | Amazon SES | | `1` | SendGrid | | `2` | Mailgun | | `3` | Custom SMTP | | `4` | PostMark | | `5` | Gmail | **Routing Strategies:** - `0` = Round Robin - Distribute traffic evenly - `1` = Email Provider - Route by recipient's mailbox provider - `2` = Volume Percentage - Split by defined percentages - `3` = Sending Domain - Route by your from domain **Use Cases:** - Separate transactional from marketing emails - Route high-volume traffic through TPSPs - Implement provider-specific routing for deliverability - Create backup pools for failover **Naming Best Practices:** - Use descriptive names: `Transactional_Orders`, `Marketing_Newsletter` - Include purpose: `HighPriority_Alerts`, `Bulk_Promotions`
|
|
21
21
|
|
|
22
22
|
### Examples
|
|
23
23
|
|
|
@@ -33,7 +33,7 @@ Sendpost.configure do |config|
|
|
|
33
33
|
end
|
|
34
34
|
|
|
35
35
|
api_instance = Sendpost::IPPoolsApi.new
|
|
36
|
-
ip_pool_create_request = Sendpost::IPPoolCreateRequest.new # IPPoolCreateRequest |
|
|
36
|
+
ip_pool_create_request = Sendpost::IPPoolCreateRequest.new({name: 'Marketing Promotional'}) # IPPoolCreateRequest |
|
|
37
37
|
|
|
38
38
|
begin
|
|
39
39
|
# Create IPPool
|
|
@@ -88,16 +88,23 @@ end
|
|
|
88
88
|
|
|
89
89
|
Delete IPPool
|
|
90
90
|
|
|
91
|
-
|
|
91
|
+
Remove an IP pool from your account. This action is irreversible. **⚠️ Before Deleting:** - Ensure no sub-accounts are actively using this pool - Update any sending configurations that reference this pool - IPs in the pool will become unassigned (not deleted) **Note:** The default system pool cannot be deleted.
|
|
92
92
|
|
|
93
93
|
### Examples
|
|
94
94
|
|
|
95
95
|
```ruby
|
|
96
96
|
require 'time'
|
|
97
97
|
require 'sendpost_ruby_sdk'
|
|
98
|
+
# setup authorization
|
|
99
|
+
Sendpost.configure do |config|
|
|
100
|
+
# Configure API key authorization: accountAuth
|
|
101
|
+
config.api_key['X-Account-ApiKey'] = 'YOUR API KEY'
|
|
102
|
+
# Uncomment the following line to set a prefix for the API key, e.g. 'Bearer' (defaults to nil)
|
|
103
|
+
# config.api_key_prefix['X-Account-ApiKey'] = 'Bearer'
|
|
104
|
+
end
|
|
98
105
|
|
|
99
106
|
api_instance = Sendpost::IPPoolsApi.new
|
|
100
|
-
ippool_id = 756 # Integer | The ID of the
|
|
107
|
+
ippool_id = 756 # Integer | The unique ID of the IP pool to delete.
|
|
101
108
|
|
|
102
109
|
begin
|
|
103
110
|
# Delete IPPool
|
|
@@ -130,7 +137,7 @@ end
|
|
|
130
137
|
|
|
131
138
|
| Name | Type | Description | Notes |
|
|
132
139
|
| ---- | ---- | ----------- | ----- |
|
|
133
|
-
| **ippool_id** | **Integer** | The ID of the
|
|
140
|
+
| **ippool_id** | **Integer** | The unique ID of the IP pool to delete. | |
|
|
134
141
|
|
|
135
142
|
### Return type
|
|
136
143
|
|
|
@@ -138,7 +145,7 @@ end
|
|
|
138
145
|
|
|
139
146
|
### Authorization
|
|
140
147
|
|
|
141
|
-
|
|
148
|
+
[accountAuth](../README.md#accountAuth)
|
|
142
149
|
|
|
143
150
|
### HTTP request headers
|
|
144
151
|
|
|
@@ -152,7 +159,7 @@ No authorization required
|
|
|
152
159
|
|
|
153
160
|
List IPPools
|
|
154
161
|
|
|
155
|
-
|
|
162
|
+
Retrieve all IP pools configured for your account. IP pools group IPs and third-party sending providers (TPSPs) for intelligent traffic routing. **Pool Types:** | Type | Value | Description | |------|-------|-------------| | Shared | `0` | Pool uses shared IPs (shared with other SendPost customers) | | Dedicated | `1` | Pool uses dedicated IPs (exclusive to your account) | **Routing Strategies:** | Strategy | Value | Description | |----------|-------|-------------| | Round Robin | `0` | Distribute traffic evenly across pool members | | Email Provider | `1` | Route based on recipient's mailbox provider (Gmail, Yahoo, etc.) | | Volume Percentage | `2` | Split traffic by defined percentages | | Sending Domain | `3` | Route based on your sending domain | **Use Cases:** - Audit your sending infrastructure configuration - View IPs and TPSPs in each pool - Plan routing strategy changes - Verify pool setup before sending campaigns
|
|
156
163
|
|
|
157
164
|
### Examples
|
|
158
165
|
|
|
@@ -169,9 +176,9 @@ end
|
|
|
169
176
|
|
|
170
177
|
api_instance = Sendpost::IPPoolsApi.new
|
|
171
178
|
opts = {
|
|
172
|
-
limit: 10, # Integer | Number of records to return per request
|
|
173
|
-
offset: 0, # Integer | Number of initial records to skip
|
|
174
|
-
search: 'Transactional' # String | Case insensitive search against
|
|
179
|
+
limit: 10, # Integer | Number of records to return per request. Default 20.
|
|
180
|
+
offset: 0, # Integer | Number of initial records to skip for pagination.
|
|
181
|
+
search: 'Transactional' # String | Case insensitive search against IP pool names.
|
|
175
182
|
}
|
|
176
183
|
|
|
177
184
|
begin
|
|
@@ -205,9 +212,9 @@ end
|
|
|
205
212
|
|
|
206
213
|
| Name | Type | Description | Notes |
|
|
207
214
|
| ---- | ---- | ----------- | ----- |
|
|
208
|
-
| **limit** | **Integer** | Number of records to return per request | [optional] |
|
|
209
|
-
| **offset** | **Integer** | Number of initial records to skip | [optional] |
|
|
210
|
-
| **search** | **String** | Case insensitive search against
|
|
215
|
+
| **limit** | **Integer** | Number of records to return per request. Default 20. | [optional][default to 20] |
|
|
216
|
+
| **offset** | **Integer** | Number of initial records to skip for pagination. | [optional][default to 0] |
|
|
217
|
+
| **search** | **String** | Case insensitive search against IP pool names. | [optional] |
|
|
211
218
|
|
|
212
219
|
### Return type
|
|
213
220
|
|
|
@@ -229,7 +236,7 @@ end
|
|
|
229
236
|
|
|
230
237
|
Get IPPool
|
|
231
238
|
|
|
232
|
-
|
|
239
|
+
Retrieve complete details about a specific IP pool, including all IPs and TPSPs assigned to it. **Response Includes:** - Pool name, ID, and creation date - Complete list of IPs with warmup status - All configured TPSPs with their settings - Current routing strategy and metadata - Warmup and monitoring configuration **Use Cases:** - Verify pool configuration before sending - Check which IPs/TPSPs are in a pool - Debug routing issues - Audit pool settings for compliance
|
|
233
240
|
|
|
234
241
|
### Examples
|
|
235
242
|
|
|
@@ -245,7 +252,7 @@ Sendpost.configure do |config|
|
|
|
245
252
|
end
|
|
246
253
|
|
|
247
254
|
api_instance = Sendpost::IPPoolsApi.new
|
|
248
|
-
ippool_id = 74 # Integer | The ID of the
|
|
255
|
+
ippool_id = 74 # Integer | The unique ID of the IP pool to retrieve.
|
|
249
256
|
|
|
250
257
|
begin
|
|
251
258
|
# Get IPPool
|
|
@@ -278,7 +285,7 @@ end
|
|
|
278
285
|
|
|
279
286
|
| Name | Type | Description | Notes |
|
|
280
287
|
| ---- | ---- | ----------- | ----- |
|
|
281
|
-
| **ippool_id** | **Integer** | The ID of the
|
|
288
|
+
| **ippool_id** | **Integer** | The unique ID of the IP pool to retrieve. | |
|
|
282
289
|
|
|
283
290
|
### Return type
|
|
284
291
|
|
|
@@ -300,7 +307,7 @@ end
|
|
|
300
307
|
|
|
301
308
|
Update IPPool
|
|
302
309
|
|
|
303
|
-
|
|
310
|
+
Modify an existing IP pool's configuration, including name, IPs, TPSPs, and routing strategy. **What Can Be Updated:** - Pool name - IP addresses assigned to the pool - Third-party sending providers (TPSPs) - Routing strategy and metadata - Warmup and monitoring settings **Use Cases:** - Add new IPs to scale capacity - Remove underperforming IPs - Change routing strategy - Add/remove TPSP integrations - Rename pool for clarity **Best Practices:** - Test routing changes during low-traffic periods - Ensure at least one sending option remains in the pool - Document changes for team awareness
|
|
304
311
|
|
|
305
312
|
### Examples
|
|
306
313
|
|
|
@@ -310,7 +317,7 @@ require 'sendpost_ruby_sdk'
|
|
|
310
317
|
|
|
311
318
|
api_instance = Sendpost::IPPoolsApi.new
|
|
312
319
|
ip_pool_update_request = Sendpost::IPPoolUpdateRequest.new # IPPoolUpdateRequest |
|
|
313
|
-
ippool_id = 756 # Integer | The ID of the
|
|
320
|
+
ippool_id = 756 # Integer | The unique ID of the IP pool to update.
|
|
314
321
|
|
|
315
322
|
begin
|
|
316
323
|
# Update IPPool
|
|
@@ -344,7 +351,7 @@ end
|
|
|
344
351
|
| Name | Type | Description | Notes |
|
|
345
352
|
| ---- | ---- | ----------- | ----- |
|
|
346
353
|
| **ip_pool_update_request** | [**IPPoolUpdateRequest**](IPPoolUpdateRequest.md) | | |
|
|
347
|
-
| **ippool_id** | **Integer** | The ID of the
|
|
354
|
+
| **ippool_id** | **Integer** | The unique ID of the IP pool to update. | |
|
|
348
355
|
|
|
349
356
|
### Return type
|
|
350
357
|
|
data/docs/IPStat.md
ADDED
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
# Sendpost::IPStat
|
|
2
|
+
|
|
3
|
+
## Properties
|
|
4
|
+
|
|
5
|
+
| Name | Type | Description | Notes |
|
|
6
|
+
| ---- | ---- | ----------- | ----- |
|
|
7
|
+
| **processed** | **Integer** | Total number of emails accepted by SendPost API for processing. This is the starting point - all emails submitted through the API. | [optional] |
|
|
8
|
+
| **sent** | **Integer** | Number of emails sent to recipient mail servers. sent = processed - dropped - smtpDropped | [optional] |
|
|
9
|
+
| **dropped** | **Integer** | Number of emails dropped before sending. Common reasons: - Recipient email in suppression list (hard bounce, spam complaint, unsubscribe) - Invalid recipient email format - Sender domain not verified | [optional] |
|
|
10
|
+
| **smtp_dropped** | **Integer** | Number of emails dropped at SMTP level due to policy violations or rate limiting by the receiving server before delivery attempt completed. | [optional] |
|
|
11
|
+
| **delivered** | **Integer** | Number of emails successfully delivered to recipient mail servers. Note: Delivered means accepted by the server, not necessarily in inbox. | [optional] |
|
|
12
|
+
| **soft_bounced** | **Integer** | Number of temporary delivery failures (soft bounces). Common causes: - Recipient mailbox full - Server temporarily unavailable - Message too large SendPost automatically retries soft bounces. | [optional] |
|
|
13
|
+
| **hard_bounced** | **Integer** | Number of permanent delivery failures (hard bounces). Common causes: - Recipient email doesn't exist - Domain doesn't exist - Recipient has blocked sender Hard bounced addresses are automatically added to suppression list. | [optional] |
|
|
14
|
+
| **opened** | **Integer** | Number of emails opened (tracking pixel loaded). Requires trackOpens=true. Note: Some email clients block tracking pixels. | [optional] |
|
|
15
|
+
| **clicked** | **Integer** | Number of emails with at least one link clicked. Requires trackClicks=true. | [optional] |
|
|
16
|
+
| **unsubscribed** | **Integer** | Number of recipients who clicked the unsubscribe link. Unsubscribed addresses are automatically added to suppression list. | [optional] |
|
|
17
|
+
| **spam** | **Integer** | Number of spam complaints (recipient marked email as spam). High spam rates can severely impact your sender reputation. Target: Keep spam rate below 0.1%. | [optional] |
|
|
18
|
+
| **ip_id** | **Integer** | Unique identifier of the IP address record. | [optional] |
|
|
19
|
+
| **public_ip** | **String** | The public IPv4/IPv6 address these statistics belong to. | [optional] |
|
|
20
|
+
| **state** | **Integer** | Numeric lifecycle/state code of the IP (e.g. warming, active). | [optional] |
|
|
21
|
+
| **pending** | **Integer** | Number of emails queued on this IP but not yet processed. | [optional] |
|
|
22
|
+
|
|
23
|
+
## Example
|
|
24
|
+
|
|
25
|
+
```ruby
|
|
26
|
+
require 'sendpost_ruby_sdk'
|
|
27
|
+
|
|
28
|
+
instance = Sendpost::IPStat.new(
|
|
29
|
+
processed: 225,
|
|
30
|
+
sent: 220,
|
|
31
|
+
dropped: 10,
|
|
32
|
+
smtp_dropped: 5,
|
|
33
|
+
delivered: 200,
|
|
34
|
+
soft_bounced: 5,
|
|
35
|
+
hard_bounced: 10,
|
|
36
|
+
opened: 150,
|
|
37
|
+
clicked: 50,
|
|
38
|
+
unsubscribed: 6,
|
|
39
|
+
spam: 2,
|
|
40
|
+
ip_id: 88,
|
|
41
|
+
public_ip: 192.0.2.10,
|
|
42
|
+
state: 1,
|
|
43
|
+
pending: 3
|
|
44
|
+
)
|
|
45
|
+
```
|
|
46
|
+
|
data/docs/IPUpdateRequest.md
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
| Name | Type | Description | Notes |
|
|
6
6
|
| ---- | ---- | ----------- | ----- |
|
|
7
|
-
| **auto_warmup_enabled** | **Boolean** |
|
|
7
|
+
| **auto_warmup_enabled** | **Boolean** | Toggle automatic IP warmup on or off. - `true`: SendPost automatically manages daily sending limits - `false`: You manage sending volume manually (advanced users) Warning: Disabling warmup and sending high volume on a new IP can damage sender reputation. | [optional] |
|
|
8
8
|
|
|
9
9
|
## Example
|
|
10
10
|
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
require 'sendpost_ruby_sdk'
|
|
13
13
|
|
|
14
14
|
instance = Sendpost::IPUpdateRequest.new(
|
|
15
|
-
auto_warmup_enabled:
|
|
15
|
+
auto_warmup_enabled: true
|
|
16
16
|
)
|
|
17
17
|
```
|
|
18
18
|
|
data/docs/Label.md
CHANGED
|
@@ -4,9 +4,11 @@
|
|
|
4
4
|
|
|
5
5
|
| Name | Type | Description | Notes |
|
|
6
6
|
| ---- | ---- | ----------- | ----- |
|
|
7
|
-
| **id** | **Integer** | Unique
|
|
8
|
-
| **name** | **String** |
|
|
9
|
-
| **
|
|
7
|
+
| **id** | **Integer** | Unique identifier for the label | [optional] |
|
|
8
|
+
| **name** | **String** | Display name for the label (max 50 characters) | [optional] |
|
|
9
|
+
| **color** | **String** | Hex color code for visual identification in the dashboard. Format: 6-character hex without # prefix. | [optional] |
|
|
10
|
+
| **type** | **Integer** | Resource type this label applies to: - `0` = IP label - `1` = Sub-account label - `2` = IP Pool label | [optional] |
|
|
11
|
+
| **created** | **Integer** | UNIX epoch timestamp in nanoseconds when the label was created | [optional] |
|
|
10
12
|
|
|
11
13
|
## Example
|
|
12
14
|
|
|
@@ -14,9 +16,11 @@
|
|
|
14
16
|
require 'sendpost_ruby_sdk'
|
|
15
17
|
|
|
16
18
|
instance = Sendpost::Label.new(
|
|
17
|
-
id:
|
|
18
|
-
name:
|
|
19
|
-
|
|
19
|
+
id: 42,
|
|
20
|
+
name: production,
|
|
21
|
+
color: 4CAF50,
|
|
22
|
+
type: 0,
|
|
23
|
+
created: 1704067200000000000
|
|
20
24
|
)
|
|
21
25
|
```
|
|
22
26
|
|
data/docs/Member.md
CHANGED
|
@@ -4,18 +4,15 @@
|
|
|
4
4
|
|
|
5
5
|
| Name | Type | Description | Notes |
|
|
6
6
|
| ---- | ---- | ----------- | ----- |
|
|
7
|
-
| **id** | **Integer** | Unique
|
|
8
|
-
| **
|
|
9
|
-
| **
|
|
10
|
-
| **
|
|
11
|
-
| **
|
|
12
|
-
| **
|
|
13
|
-
| **
|
|
14
|
-
| **
|
|
15
|
-
| **
|
|
16
|
-
| **phone_number** | **String** | Phone number for the member | [optional] |
|
|
17
|
-
| **notes_color** | **String** | Color for the member's notes | [optional] |
|
|
18
|
-
| **created** | **Integer** | UNIX epoch nano timestamp when the member was created | [optional] |
|
|
7
|
+
| **id** | **Integer** | Unique identifier for the team member | [optional] |
|
|
8
|
+
| **email** | **String** | Email address of the team member (used for login) | [optional] |
|
|
9
|
+
| **name** | **String** | Display name of the team member | [optional] |
|
|
10
|
+
| **is_verified** | **Boolean** | Whether the member has verified their email address. Unverified members have limited access until verification is complete. | [optional] |
|
|
11
|
+
| **logo_url** | **String** | URL of the member's profile picture/avatar | [optional] |
|
|
12
|
+
| **company_name** | **String** | Company or organization name | [optional] |
|
|
13
|
+
| **onboard_q_answered** | **Boolean** | Whether the member has completed the onboarding questionnaire | [optional] |
|
|
14
|
+
| **phone_number** | **String** | Contact phone number in E.164 format. Used for account recovery and important notifications. | [optional] |
|
|
15
|
+
| **created** | **Integer** | UNIX epoch timestamp in nanoseconds when the member was added | [optional] |
|
|
19
16
|
|
|
20
17
|
## Example
|
|
21
18
|
|
|
@@ -24,17 +21,14 @@ require 'sendpost_ruby_sdk'
|
|
|
24
21
|
|
|
25
22
|
instance = Sendpost::Member.new(
|
|
26
23
|
id: 117,
|
|
27
|
-
is_verified: true,
|
|
28
|
-
is_forbidden: false,
|
|
29
|
-
firebase_uid: 1234567890,
|
|
30
24
|
email: raj@piedpiper.com,
|
|
31
|
-
name: Raj,
|
|
32
|
-
|
|
33
|
-
|
|
25
|
+
name: Raj Koothrappali,
|
|
26
|
+
is_verified: true,
|
|
27
|
+
logo_url: https://avatars.example.com/raj.png,
|
|
28
|
+
company_name: Pied Piper,
|
|
34
29
|
onboard_q_answered: true,
|
|
35
|
-
phone_number: +
|
|
36
|
-
|
|
37
|
-
created: 1567512491588004044
|
|
30
|
+
phone_number: +14155551234,
|
|
31
|
+
created: 1704067200000000000
|
|
38
32
|
)
|
|
39
33
|
```
|
|
40
34
|
|