helo-email-sdk 1.0.0.pre.beta.1

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 (129) hide show
  1. checksums.yaml +7 -0
  2. data/lib/helo/api_error.rb +23 -0
  3. data/lib/helo/apis/activity.rb +24 -0
  4. data/lib/helo/apis/broadcasts.rb +30 -0
  5. data/lib/helo/apis/channels.rb +35 -0
  6. data/lib/helo/apis/domains.rb +45 -0
  7. data/lib/helo/apis/sending.rb +43 -0
  8. data/lib/helo/apis/statistics.rb +25 -0
  9. data/lib/helo/apis/suppressions.rb +25 -0
  10. data/lib/helo/apis/webhooks.rb +40 -0
  11. data/lib/helo/client.rb +20 -0
  12. data/lib/helo/configuration.rb +9 -0
  13. data/lib/helo/core/api.rb +22 -0
  14. data/lib/helo/core/api_error.rb +23 -0
  15. data/lib/helo/core/array_type.rb +32 -0
  16. data/lib/helo/core/client.rb +75 -0
  17. data/lib/helo/core/configuration.rb +18 -0
  18. data/lib/helo/core/model.rb +129 -0
  19. data/lib/helo/core/model_type.rb +32 -0
  20. data/lib/helo/enums/attachment_disposition.rb +12 -0
  21. data/lib/helo/enums/broadcast_status.rb +14 -0
  22. data/lib/helo/enums/delivery_type.rb +12 -0
  23. data/lib/helo/enums/dns_record_status.rb +14 -0
  24. data/lib/helo/enums/dns_record_type.rb +12 -0
  25. data/lib/helo/enums/event_type.rb +19 -0
  26. data/lib/helo/enums/mail_type.rb +12 -0
  27. data/lib/helo/enums/suppression_reason.rb +14 -0
  28. data/lib/helo/enums/webhook_event.rb +19 -0
  29. data/lib/helo/models/accepted_webhook_payload.rb +17 -0
  30. data/lib/helo/models/activity_event.rb +19 -0
  31. data/lib/helo/models/activity_list_events_request.rb +20 -0
  32. data/lib/helo/models/activity_list_messages_request.rb +19 -0
  33. data/lib/helo/models/activity_mail_address.rb +10 -0
  34. data/lib/helo/models/attachment.rb +13 -0
  35. data/lib/helo/models/bounced_webhook_payload.rb +18 -0
  36. data/lib/helo/models/broadcast_content.rb +15 -0
  37. data/lib/helo/models/broadcast_content_attachment.rb +11 -0
  38. data/lib/helo/models/broadcast_content_template.rb +11 -0
  39. data/lib/helo/models/broadcast_details_response.rb +19 -0
  40. data/lib/helo/models/broadcast_failure_response.rb +12 -0
  41. data/lib/helo/models/broadcast_response.rb +14 -0
  42. data/lib/helo/models/broadcast_statistics.rb +15 -0
  43. data/lib/helo/models/broadcast_tracking.rb +10 -0
  44. data/lib/helo/models/broadcasts_list_failures_request.rb +11 -0
  45. data/lib/helo/models/broadcasts_list_request.rb +14 -0
  46. data/lib/helo/models/broadcasts_list_suppressions_request.rb +11 -0
  47. data/lib/helo/models/channel_basic_response.rb +12 -0
  48. data/lib/helo/models/channel_details_response.rb +14 -0
  49. data/lib/helo/models/channel_tracking.rb +10 -0
  50. data/lib/helo/models/channels_list_request.rb +14 -0
  51. data/lib/helo/models/clicked_webhook_payload.rb +18 -0
  52. data/lib/helo/models/complained_webhook_payload.rb +18 -0
  53. data/lib/helo/models/create_channel_request.rb +11 -0
  54. data/lib/helo/models/create_channel_tracking.rb +10 -0
  55. data/lib/helo/models/create_domain_request.rb +10 -0
  56. data/lib/helo/models/create_suppressions_request.rb +11 -0
  57. data/lib/helo/models/create_suppressions_response.rb +9 -0
  58. data/lib/helo/models/create_webhook_request.rb +13 -0
  59. data/lib/helo/models/delivered_webhook_payload.rb +18 -0
  60. data/lib/helo/models/delivery_stats.rb +15 -0
  61. data/lib/helo/models/dns_record_response.rb +13 -0
  62. data/lib/helo/models/dns_records_response.rb +13 -0
  63. data/lib/helo/models/domain_channel_response.rb +12 -0
  64. data/lib/helo/models/domain_response.rb +13 -0
  65. data/lib/helo/models/domain_with_dns_response.rb +14 -0
  66. data/lib/helo/models/domains_list_request.rb +13 -0
  67. data/lib/helo/models/error_response.rb +16 -0
  68. data/lib/helo/models/mail_address.rb +10 -0
  69. data/lib/helo/models/message.rb +17 -0
  70. data/lib/helo/models/message_details_response.rb +30 -0
  71. data/lib/helo/models/message_details_response_attachment.rb +11 -0
  72. data/lib/helo/models/message_details_response_event.rb +12 -0
  73. data/lib/helo/models/message_details_response_tracking.rb +10 -0
  74. data/lib/helo/models/opened_webhook_payload.rb +18 -0
  75. data/lib/helo/models/paginated_events_response.rb +11 -0
  76. data/lib/helo/models/paginated_messages_response.rb +11 -0
  77. data/lib/helo/models/paginated_response_of_broadcast.rb +10 -0
  78. data/lib/helo/models/paginated_response_of_broadcast_failure.rb +10 -0
  79. data/lib/helo/models/paginated_response_of_broadcast_suppression.rb +10 -0
  80. data/lib/helo/models/paginated_response_of_domain_response.rb +10 -0
  81. data/lib/helo/models/paginated_response_of_suppression_response.rb +10 -0
  82. data/lib/helo/models/pagination_result_of_channel_basic_response.rb +10 -0
  83. data/lib/helo/models/pagination_result_of_webhook_response.rb +10 -0
  84. data/lib/helo/models/processed_webhook_payload.rb +17 -0
  85. data/lib/helo/models/recipient_event_fields.rb +10 -0
  86. data/lib/helo/models/recipient_headers.rb +11 -0
  87. data/lib/helo/models/remove_suppression_result.rb +11 -0
  88. data/lib/helo/models/remove_suppressions_request.rb +11 -0
  89. data/lib/helo/models/remove_suppressions_response.rb +9 -0
  90. data/lib/helo/models/resubscribed_webhook_payload.rb +18 -0
  91. data/lib/helo/models/send_broadcast_request.rb +17 -0
  92. data/lib/helo/models/send_broadcast_request_message.rb +15 -0
  93. data/lib/helo/models/send_broadcast_request_template.rb +13 -0
  94. data/lib/helo/models/send_broadcast_request_tracking.rb +10 -0
  95. data/lib/helo/models/send_broadcast_response.rb +10 -0
  96. data/lib/helo/models/send_message_accepted_response.rb +11 -0
  97. data/lib/helo/models/send_message_batch_request.rb +9 -0
  98. data/lib/helo/models/send_message_batch_response.rb +9 -0
  99. data/lib/helo/models/send_message_failed_response.rb +11 -0
  100. data/lib/helo/models/send_message_request.rb +22 -0
  101. data/lib/helo/models/send_message_request_template.rb +13 -0
  102. data/lib/helo/models/send_message_request_tracking.rb +10 -0
  103. data/lib/helo/models/send_message_response.rb +8 -0
  104. data/lib/helo/models/statistics_daily_response.rb +9 -0
  105. data/lib/helo/models/statistics_daily_response_result.rb +11 -0
  106. data/lib/helo/models/statistics_hourly_response.rb +9 -0
  107. data/lib/helo/models/statistics_hourly_response_result.rb +11 -0
  108. data/lib/helo/models/statistics_retrieve_daily_request.rb +14 -0
  109. data/lib/helo/models/statistics_retrieve_hourly_request.rb +13 -0
  110. data/lib/helo/models/statistics_retrieve_totals_request.rb +13 -0
  111. data/lib/helo/models/statistics_totals_response.rb +10 -0
  112. data/lib/helo/models/suppression_response.rb +11 -0
  113. data/lib/helo/models/suppression_result.rb +11 -0
  114. data/lib/helo/models/suppressions_list_request.rb +15 -0
  115. data/lib/helo/models/unsubscribed_webhook_payload.rb +18 -0
  116. data/lib/helo/models/update_channel_request.rb +11 -0
  117. data/lib/helo/models/update_channel_tracking.rb +10 -0
  118. data/lib/helo/models/update_domain_request.rb +9 -0
  119. data/lib/helo/models/update_webhook_request.rb +13 -0
  120. data/lib/helo/models/validation_error.rb +9 -0
  121. data/lib/helo/models/webhook_header.rb +10 -0
  122. data/lib/helo/models/webhook_last_response.rb +11 -0
  123. data/lib/helo/models/webhook_payload_common.rb +15 -0
  124. data/lib/helo/models/webhook_response.rb +16 -0
  125. data/lib/helo/models/webhooks_list_request.rb +12 -0
  126. data/lib/helo/version.rb +5 -0
  127. data/lib/helo-email-sdk.rb +3 -0
  128. data/lib/helo.rb +35 -0
  129. metadata +239 -0
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Helo
4
+ class BroadcastStatus
5
+ ACCEPTED = "accepted"
6
+ PROCESSING = "processing"
7
+ COMPLETED = "completed"
8
+ CANCELED = "canceled"
9
+
10
+ def self.all
11
+ [ACCEPTED, PROCESSING, COMPLETED, CANCELED].freeze
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Helo
4
+ class DeliveryType
5
+ LIVE = "live"
6
+ SANDBOX = "sandbox"
7
+
8
+ def self.all
9
+ [LIVE, SANDBOX].freeze
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Helo
4
+ class DnsRecordStatus
5
+ PENDING = "pending"
6
+ VERIFIED = "verified"
7
+ FAILING = "failing"
8
+ FAILED = "failed"
9
+
10
+ def self.all
11
+ [PENDING, VERIFIED, FAILING, FAILED].freeze
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Helo
4
+ class DnsRecordType
5
+ TXT = "txt"
6
+ CNAME = "cname"
7
+
8
+ def self.all
9
+ [TXT, CNAME].freeze
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,19 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Helo
4
+ class EventType
5
+ ACCEPTED = "accepted"
6
+ PROCESSED = "processed"
7
+ DELIVERED = "delivered"
8
+ BOUNCED = "bounced"
9
+ OPENED = "opened"
10
+ CLICKED = "clicked"
11
+ COMPLAINED = "complained"
12
+ UNSUBSCRIBED = "unsubscribed"
13
+ RESUBSCRIBED = "resubscribed"
14
+
15
+ def self.all
16
+ [ACCEPTED, PROCESSED, DELIVERED, BOUNCED, OPENED, CLICKED, COMPLAINED, UNSUBSCRIBED, RESUBSCRIBED].freeze
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Helo
4
+ class MailType
5
+ TRANSACTIONAL = "transactional"
6
+ BROADCAST = "broadcast"
7
+
8
+ def self.all
9
+ [TRANSACTIONAL, BROADCAST].freeze
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Helo
4
+ class SuppressionReason
5
+ BOUNCE = "bounce"
6
+ COMPLAINT = "complaint"
7
+ UNSUBSCRIBE = "unsubscribe"
8
+ MANUAL = "manual"
9
+
10
+ def self.all
11
+ [BOUNCE, COMPLAINT, UNSUBSCRIBE, MANUAL].freeze
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,19 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Helo
4
+ class WebhookEvent
5
+ ACCEPTED = "accepted"
6
+ PROCESSED = "processed"
7
+ BOUNCED = "bounced"
8
+ DELIVERED = "delivered"
9
+ OPENED = "opened"
10
+ CLICKED = "clicked"
11
+ COMPLAINED = "complained"
12
+ UNSUBSCRIBED = "unsubscribed"
13
+ RESUBSCRIBED = "resubscribed"
14
+
15
+ def self.all
16
+ [ACCEPTED, PROCESSED, BOUNCED, DELIVERED, OPENED, CLICKED, COMPLAINED, UNSUBSCRIBED, RESUBSCRIBED].freeze
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Helo
4
+ class AcceptedWebhookPayload
5
+ include Helo::Core::Model
6
+
7
+ api_attribute :event_type, :string, key: "eventType"
8
+ api_attribute :recipients, key: "recipients"
9
+ api_attribute :timestamp, :datetime, key: "timestamp"
10
+ api_attribute :message_id, :string, key: "messageId"
11
+ api_attribute :channel_id, :string, key: "channelId"
12
+ api_attribute :mail_type, :string, key: "mailType"
13
+ api_attribute :subject, :string, key: "subject"
14
+ api_attribute :tags, key: "tags"
15
+ api_attribute :metadata, key: "metadata"
16
+ end
17
+ end
@@ -0,0 +1,19 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Helo
4
+ class ActivityEvent
5
+ include Helo::Core::Model
6
+
7
+ api_attribute :message_id, :string, key: "messageId"
8
+ api_attribute :channel_id, :string, key: "channelId"
9
+ api_attribute :mail_type, :string, key: "mailType"
10
+ api_attribute :mail_source, :string, key: "mailSource"
11
+ api_attribute :event_type, :string, key: "eventType"
12
+ api_attribute :timestamp, :datetime, key: "timestamp"
13
+ api_attribute :subject, :string, key: "subject"
14
+ api_attribute :recipients, key: "recipients"
15
+ api_attribute :tags, key: "tags"
16
+ api_attribute :metadata, key: "metadata"
17
+ api_attribute :details, key: "details"
18
+ end
19
+ end
@@ -0,0 +1,20 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Helo
4
+ # Generated request model for query parameters
5
+ class ActivityListEventsRequest
6
+ include Helo::Core::Model
7
+
8
+ api_attribute :channel_id, :string, key: "channelId"
9
+ api_attribute :message_id, :string, key: "messageId"
10
+ api_attribute :after, :integer, key: "after"
11
+ api_attribute :start_date, :datetime, key: "startDate"
12
+ api_attribute :end_date, :datetime, key: "endDate"
13
+ api_attribute :limit, :integer, key: "limit"
14
+ api_attribute :recipient, :string, key: "recipient"
15
+ api_attribute :subject, :string, key: "subject"
16
+ api_attribute :tags, key: "tags", explode: false
17
+ api_attribute :mail_type, :string, key: "mailType"
18
+ api_attribute :event_types, key: "eventTypes", explode: false
19
+ end
20
+ end
@@ -0,0 +1,19 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Helo
4
+ # Generated request model for query parameters
5
+ class ActivityListMessagesRequest
6
+ include Helo::Core::Model
7
+
8
+ api_attribute :channel_id, :string, key: "channelId"
9
+ api_attribute :after, :integer, key: "after"
10
+ api_attribute :start_date, :datetime, key: "startDate"
11
+ api_attribute :end_date, :datetime, key: "endDate"
12
+ api_attribute :limit, :integer, key: "limit"
13
+ api_attribute :recipient, :string, key: "recipient"
14
+ api_attribute :subject, :string, key: "subject"
15
+ api_attribute :tags, key: "tags", explode: false
16
+ api_attribute :mail_type, :string, key: "mailType"
17
+ api_attribute :status, :string, key: "status"
18
+ end
19
+ end
@@ -0,0 +1,10 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Helo
4
+ class ActivityMailAddress
5
+ include Helo::Core::Model
6
+
7
+ api_attribute :email, :string, key: "email"
8
+ api_attribute :name, :string, key: "name"
9
+ end
10
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Helo
4
+ class Attachment
5
+ include Helo::Core::Model
6
+
7
+ api_attribute :content, :string, key: "content"
8
+ api_attribute :content_id, :string, key: "contentId"
9
+ api_attribute :content_type, :string, key: "contentType"
10
+ api_attribute :file_name, :string, key: "fileName"
11
+ api_attribute :disposition, :string, key: "disposition"
12
+ end
13
+ end
@@ -0,0 +1,18 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Helo
4
+ class BouncedWebhookPayload
5
+ include Helo::Core::Model
6
+
7
+ api_attribute :event_type, :string, key: "eventType"
8
+ api_attribute :recipient, :string, key: "recipient"
9
+ api_attribute :details, :string, key: "details"
10
+ api_attribute :timestamp, :datetime, key: "timestamp"
11
+ api_attribute :message_id, :string, key: "messageId"
12
+ api_attribute :channel_id, :string, key: "channelId"
13
+ api_attribute :mail_type, :string, key: "mailType"
14
+ api_attribute :subject, :string, key: "subject"
15
+ api_attribute :tags, key: "tags"
16
+ api_attribute :metadata, key: "metadata"
17
+ end
18
+ end
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Helo
4
+ class BroadcastContent
5
+ include Helo::Core::Model
6
+
7
+ api_attribute :from, Helo::Core::ModelType.new("Helo::MailAddress"), key: "from"
8
+ api_attribute :reply_to, Helo::Core::ArrayType.new("Helo::MailAddress"), key: "replyTo"
9
+ api_attribute :template, Helo::Core::ModelType.new("Helo::BroadcastContentTemplate"), key: "template"
10
+ api_attribute :attachments, Helo::Core::ArrayType.new("Helo::BroadcastContentAttachment"), key: "attachments"
11
+ api_attribute :tags, key: "tags"
12
+ api_attribute :headers, key: "headers"
13
+ api_attribute :metadata, key: "metadata"
14
+ end
15
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Helo
4
+ class BroadcastContentAttachment
5
+ include Helo::Core::Model
6
+
7
+ api_attribute :file_name, :string, key: "fileName"
8
+ api_attribute :disposition, :string, key: "disposition"
9
+ api_attribute :size, :integer, key: "size"
10
+ end
11
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Helo
4
+ class BroadcastContentTemplate
5
+ include Helo::Core::Model
6
+
7
+ api_attribute :subject, :string, key: "subject"
8
+ api_attribute :html, :string, key: "html"
9
+ api_attribute :text, :string, key: "text"
10
+ end
11
+ end
@@ -0,0 +1,19 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Helo
4
+ class BroadcastDetailsResponse
5
+ include Helo::Core::Model
6
+
7
+ api_attribute :id, :string, key: "id"
8
+ api_attribute :created_at, :datetime, key: "createdAt"
9
+ api_attribute :status, :string, key: "status"
10
+ api_attribute :subject, :string, key: "subject"
11
+ api_attribute :completion, :string, key: "completion"
12
+ api_attribute :messages, :integer, key: "messages"
13
+ api_attribute :failed, :integer, key: "failed"
14
+ api_attribute :suppressed, :integer, key: "suppressed"
15
+ api_attribute :content, Helo::Core::ModelType.new("Helo::BroadcastContent"), key: "content"
16
+ api_attribute :tracking, Helo::Core::ModelType.new("Helo::BroadcastTracking"), key: "tracking"
17
+ api_attribute :statistics, Helo::Core::ModelType.new("Helo::BroadcastStatistics"), key: "statistics"
18
+ end
19
+ end
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Helo
4
+ class BroadcastFailureResponse
5
+ include Helo::Core::Model
6
+
7
+ api_attribute :recipients, Helo::Core::ModelType.new("Helo::RecipientHeaders"), key: "recipients"
8
+ api_attribute :message_index, :integer, key: "messageIndex"
9
+ api_attribute :error_code, :string, key: "errorCode"
10
+ api_attribute :error_message, :string, key: "errorMessage"
11
+ end
12
+ end
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Helo
4
+ class BroadcastResponse
5
+ include Helo::Core::Model
6
+
7
+ api_attribute :id, :string, key: "id"
8
+ api_attribute :created_at, :datetime, key: "createdAt"
9
+ api_attribute :status, :string, key: "status"
10
+ api_attribute :subject, :string, key: "subject"
11
+ api_attribute :completion, :string, key: "completion"
12
+ api_attribute :messages, :integer, key: "messages"
13
+ end
14
+ end
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Helo
4
+ class BroadcastStatistics
5
+ include Helo::Core::Model
6
+
7
+ api_attribute :sent, :integer, key: "sent"
8
+ api_attribute :delivered, :integer, key: "delivered"
9
+ api_attribute :bounced, :integer, key: "bounced"
10
+ api_attribute :opened, :integer, key: "opened"
11
+ api_attribute :clicked, :integer, key: "clicked"
12
+ api_attribute :complained, :integer, key: "complained"
13
+ api_attribute :unsubscribed, :integer, key: "unsubscribed"
14
+ end
15
+ end
@@ -0,0 +1,10 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Helo
4
+ class BroadcastTracking
5
+ include Helo::Core::Model
6
+
7
+ api_attribute :opens, :boolean, key: "opens"
8
+ api_attribute :links, :boolean, key: "links"
9
+ end
10
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Helo
4
+ # Generated request model for query parameters
5
+ class BroadcastsListFailuresRequest
6
+ include Helo::Core::Model
7
+
8
+ api_attribute :limit, :integer, key: "limit"
9
+ api_attribute :offset, :integer, key: "offset"
10
+ end
11
+ end
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Helo
4
+ # Generated request model for query parameters
5
+ class BroadcastsListRequest
6
+ include Helo::Core::Model
7
+
8
+ api_attribute :channel_id, :string, key: "channelId"
9
+ api_attribute :status, :string, key: "status"
10
+ api_attribute :subject, :string, key: "subject"
11
+ api_attribute :limit, :integer, key: "limit"
12
+ api_attribute :offset, :integer, key: "offset"
13
+ end
14
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Helo
4
+ # Generated request model for query parameters
5
+ class BroadcastsListSuppressionsRequest
6
+ include Helo::Core::Model
7
+
8
+ api_attribute :limit, :integer, key: "limit"
9
+ api_attribute :offset, :integer, key: "offset"
10
+ end
11
+ end
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Helo
4
+ class ChannelBasicResponse
5
+ include Helo::Core::Model
6
+
7
+ api_attribute :id, :string, key: "id"
8
+ api_attribute :name, :string, key: "name"
9
+ api_attribute :delivery_type, :string, key: "deliveryType"
10
+ api_attribute :created_at, :datetime, key: "createdAt"
11
+ end
12
+ end
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Helo
4
+ class ChannelDetailsResponse
5
+ include Helo::Core::Model
6
+
7
+ api_attribute :id, :string, key: "id"
8
+ api_attribute :name, :string, key: "name"
9
+ api_attribute :delivery_type, :string, key: "deliveryType"
10
+ api_attribute :created_at, :datetime, key: "createdAt"
11
+ api_attribute :updated_at, :datetime, key: "updatedAt"
12
+ api_attribute :tracking, Helo::Core::ModelType.new("Helo::ChannelTracking"), key: "tracking"
13
+ end
14
+ end
@@ -0,0 +1,10 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Helo
4
+ class ChannelTracking
5
+ include Helo::Core::Model
6
+
7
+ api_attribute :links, :boolean, key: "links"
8
+ api_attribute :opens, :boolean, key: "opens"
9
+ end
10
+ end
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Helo
4
+ # Generated request model for query parameters
5
+ class ChannelsListRequest
6
+ include Helo::Core::Model
7
+
8
+ api_attribute :limit, :integer, key: "limit"
9
+ api_attribute :offset, :integer, key: "offset"
10
+ api_attribute :name, :string, key: "name"
11
+ api_attribute :channel_ids, key: "channelIds", explode: false
12
+ api_attribute :delivery_type, :string, key: "deliveryType"
13
+ end
14
+ end
@@ -0,0 +1,18 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Helo
4
+ class ClickedWebhookPayload
5
+ include Helo::Core::Model
6
+
7
+ api_attribute :event_type, :string, key: "eventType"
8
+ api_attribute :recipient, :string, key: "recipient"
9
+ api_attribute :details, :string, key: "details"
10
+ api_attribute :timestamp, :datetime, key: "timestamp"
11
+ api_attribute :message_id, :string, key: "messageId"
12
+ api_attribute :channel_id, :string, key: "channelId"
13
+ api_attribute :mail_type, :string, key: "mailType"
14
+ api_attribute :subject, :string, key: "subject"
15
+ api_attribute :tags, key: "tags"
16
+ api_attribute :metadata, key: "metadata"
17
+ end
18
+ end
@@ -0,0 +1,18 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Helo
4
+ class ComplainedWebhookPayload
5
+ include Helo::Core::Model
6
+
7
+ api_attribute :event_type, :string, key: "eventType"
8
+ api_attribute :recipient, :string, key: "recipient"
9
+ api_attribute :details, :string, key: "details"
10
+ api_attribute :timestamp, :datetime, key: "timestamp"
11
+ api_attribute :message_id, :string, key: "messageId"
12
+ api_attribute :channel_id, :string, key: "channelId"
13
+ api_attribute :mail_type, :string, key: "mailType"
14
+ api_attribute :subject, :string, key: "subject"
15
+ api_attribute :tags, key: "tags"
16
+ api_attribute :metadata, key: "metadata"
17
+ end
18
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Helo
4
+ class CreateChannelRequest
5
+ include Helo::Core::Model
6
+
7
+ api_attribute :name, :string, key: "name"
8
+ api_attribute :delivery_type, :string, key: "deliveryType"
9
+ api_attribute :tracking, Helo::Core::ModelType.new("Helo::CreateChannelTracking"), key: "tracking"
10
+ end
11
+ end
@@ -0,0 +1,10 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Helo
4
+ class CreateChannelTracking
5
+ include Helo::Core::Model
6
+
7
+ api_attribute :links, :boolean, key: "links"
8
+ api_attribute :opens, :boolean, key: "opens"
9
+ end
10
+ end
@@ -0,0 +1,10 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Helo
4
+ class CreateDomainRequest
5
+ include Helo::Core::Model
6
+
7
+ api_attribute :name, :string, key: "name"
8
+ api_attribute :channel_ids, key: "channelIds"
9
+ end
10
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Helo
4
+ class CreateSuppressionsRequest
5
+ include Helo::Core::Model
6
+
7
+ api_attribute :channel_id, :string, key: "channelId"
8
+ api_attribute :mail_type, :string, key: "mailType"
9
+ api_attribute :emails, key: "emails"
10
+ end
11
+ end
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Helo
4
+ class CreateSuppressionsResponse
5
+ include Helo::Core::Model
6
+
7
+ api_attribute :results, Helo::Core::ArrayType.new("Helo::SuppressionResult"), key: "results"
8
+ end
9
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Helo
4
+ class CreateWebhookRequest
5
+ include Helo::Core::Model
6
+
7
+ api_attribute :url, :string, key: "url"
8
+ api_attribute :events, key: "events"
9
+ api_attribute :channel_id, :string, key: "channelId"
10
+ api_attribute :additional_headers, Helo::Core::ArrayType.new("Helo::WebhookHeader"), key: "additionalHeaders"
11
+ api_attribute :enabled, :boolean, key: "enabled"
12
+ end
13
+ end
@@ -0,0 +1,18 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Helo
4
+ class DeliveredWebhookPayload
5
+ include Helo::Core::Model
6
+
7
+ api_attribute :event_type, :string, key: "eventType"
8
+ api_attribute :recipient, :string, key: "recipient"
9
+ api_attribute :details, :string, key: "details"
10
+ api_attribute :timestamp, :datetime, key: "timestamp"
11
+ api_attribute :message_id, :string, key: "messageId"
12
+ api_attribute :channel_id, :string, key: "channelId"
13
+ api_attribute :mail_type, :string, key: "mailType"
14
+ api_attribute :subject, :string, key: "subject"
15
+ api_attribute :tags, key: "tags"
16
+ api_attribute :metadata, key: "metadata"
17
+ end
18
+ end
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Helo
4
+ class DeliveryStats
5
+ include Helo::Core::Model
6
+
7
+ api_attribute :sent, :integer, key: "sent"
8
+ api_attribute :delivered, :integer, key: "delivered"
9
+ api_attribute :opened, :integer, key: "opened"
10
+ api_attribute :clicked, :integer, key: "clicked"
11
+ api_attribute :bounced, :integer, key: "bounced"
12
+ api_attribute :unsubscribed, :integer, key: "unsubscribed"
13
+ api_attribute :complained, :integer, key: "complained"
14
+ end
15
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Helo
4
+ class DnsRecordResponse
5
+ include Helo::Core::Model
6
+
7
+ api_attribute :type, :string, key: "type"
8
+ api_attribute :host, :string, key: "host"
9
+ api_attribute :value, :string, key: "value"
10
+ api_attribute :status, :string, key: "status"
11
+ api_attribute :last_checked_at, :datetime, key: "lastCheckedAt"
12
+ end
13
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Helo
4
+ class DnsRecordsResponse
5
+ include Helo::Core::Model
6
+
7
+ api_attribute :domain_key_active, Helo::Core::ModelType.new("Helo::DnsRecordResponse"), key: "domainKeyActive"
8
+ api_attribute :domain_key_pending, Helo::Core::ModelType.new("Helo::DnsRecordResponse"), key: "domainKeyPending"
9
+ api_attribute :return_path, Helo::Core::ArrayType.new("Helo::DnsRecordResponse"), key: "returnPath"
10
+ api_attribute :tracking, Helo::Core::ModelType.new("Helo::DnsRecordResponse"), key: "tracking"
11
+ api_attribute :unsubscribe, Helo::Core::ModelType.new("Helo::DnsRecordResponse"), key: "unsubscribe"
12
+ end
13
+ end