mailhub-sdk 0.1.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 (151) hide show
  1. checksums.yaml +7 -0
  2. data/.fern/metadata.json +11 -0
  3. data/.fernignore +3 -0
  4. data/.rubocop.yml +103 -0
  5. data/CONTRIBUTING.md +120 -0
  6. data/README.md +159 -0
  7. data/Rakefile +20 -0
  8. data/custom.gemspec.rb +18 -0
  9. data/lib/Mailhub/campaign/client.rb +730 -0
  10. data/lib/Mailhub/campaign/types/add_campaign_media_by_code_request.rb +13 -0
  11. data/lib/Mailhub/campaign/types/cancel_campaign_request.rb +11 -0
  12. data/lib/Mailhub/campaign/types/catch_up_campaign_request.rb +11 -0
  13. data/lib/Mailhub/campaign/types/create_campaign_by_code_request.rb +27 -0
  14. data/lib/Mailhub/campaign/types/delete_campaign_request.rb +11 -0
  15. data/lib/Mailhub/campaign/types/get_campaign_activity_request.rb +11 -0
  16. data/lib/Mailhub/campaign/types/get_campaign_analytics_request.rb +11 -0
  17. data/lib/Mailhub/campaign/types/get_campaign_link_stats_request.rb +11 -0
  18. data/lib/Mailhub/campaign/types/get_campaign_media_request.rb +11 -0
  19. data/lib/Mailhub/campaign/types/get_campaign_rendered_preview_by_code_request.rb +21 -0
  20. data/lib/Mailhub/campaign/types/get_campaign_request.rb +11 -0
  21. data/lib/Mailhub/campaign/types/get_campaigns_request.rb +19 -0
  22. data/lib/Mailhub/campaign/types/pause_campaign_request.rb +11 -0
  23. data/lib/Mailhub/campaign/types/preview_campaign_request.rb +11 -0
  24. data/lib/Mailhub/campaign/types/remove_campaign_media_request.rb +13 -0
  25. data/lib/Mailhub/campaign/types/schedule_campaign_request.rb +11 -0
  26. data/lib/Mailhub/campaign/types/send_campaign_request.rb +11 -0
  27. data/lib/Mailhub/campaign/types/test_campaign_by_code_request.rb +23 -0
  28. data/lib/Mailhub/campaign/types/update_campaign_by_code_request.rb +29 -0
  29. data/lib/Mailhub/client.rb +55 -0
  30. data/lib/Mailhub/contact/client.rb +385 -0
  31. data/lib/Mailhub/contact/types/block_contact_request.rb +11 -0
  32. data/lib/Mailhub/contact/types/block_contacts_by_guid_request.rb +11 -0
  33. data/lib/Mailhub/contact/types/create_contact_request.rb +15 -0
  34. data/lib/Mailhub/contact/types/delete_contact_request.rb +11 -0
  35. data/lib/Mailhub/contact/types/delete_contacts_by_guid_request.rb +11 -0
  36. data/lib/Mailhub/contact/types/get_contact_request.rb +11 -0
  37. data/lib/Mailhub/contact/types/get_contacts_request.rb +21 -0
  38. data/lib/Mailhub/contact/types/get_import_job_request.rb +11 -0
  39. data/lib/Mailhub/contact/types/import_contacts_request.rb +9 -0
  40. data/lib/Mailhub/contact/types/update_contact_request.rb +17 -0
  41. data/lib/Mailhub/custom_field/client.rb +188 -0
  42. data/lib/Mailhub/custom_field/types/create_custom_field_request.rb +15 -0
  43. data/lib/Mailhub/custom_field/types/delete_custom_field_request.rb +11 -0
  44. data/lib/Mailhub/custom_field/types/get_custom_field_request.rb +11 -0
  45. data/lib/Mailhub/custom_field/types/update_custom_field_request.rb +15 -0
  46. data/lib/Mailhub/errors/api_error.rb +8 -0
  47. data/lib/Mailhub/errors/client_error.rb +17 -0
  48. data/lib/Mailhub/errors/redirect_error.rb +8 -0
  49. data/lib/Mailhub/errors/response_error.rb +42 -0
  50. data/lib/Mailhub/errors/server_error.rb +11 -0
  51. data/lib/Mailhub/errors/timeout_error.rb +8 -0
  52. data/lib/Mailhub/internal/errors/constraint_error.rb +10 -0
  53. data/lib/Mailhub/internal/errors/type_error.rb +10 -0
  54. data/lib/Mailhub/internal/http/base_request.rb +51 -0
  55. data/lib/Mailhub/internal/http/raw_client.rb +248 -0
  56. data/lib/Mailhub/internal/iterators/cursor_item_iterator.rb +28 -0
  57. data/lib/Mailhub/internal/iterators/cursor_page_iterator.rb +63 -0
  58. data/lib/Mailhub/internal/iterators/item_iterator.rb +65 -0
  59. data/lib/Mailhub/internal/iterators/offset_item_iterator.rb +30 -0
  60. data/lib/Mailhub/internal/iterators/offset_page_iterator.rb +103 -0
  61. data/lib/Mailhub/internal/json/request.rb +41 -0
  62. data/lib/Mailhub/internal/json/serializable.rb +25 -0
  63. data/lib/Mailhub/internal/multipart/multipart_encoder.rb +141 -0
  64. data/lib/Mailhub/internal/multipart/multipart_form_data.rb +78 -0
  65. data/lib/Mailhub/internal/multipart/multipart_form_data_part.rb +51 -0
  66. data/lib/Mailhub/internal/multipart/multipart_request.rb +40 -0
  67. data/lib/Mailhub/internal/types/array.rb +47 -0
  68. data/lib/Mailhub/internal/types/boolean.rb +34 -0
  69. data/lib/Mailhub/internal/types/enum.rb +56 -0
  70. data/lib/Mailhub/internal/types/hash.rb +36 -0
  71. data/lib/Mailhub/internal/types/model/field.rb +38 -0
  72. data/lib/Mailhub/internal/types/model.rb +208 -0
  73. data/lib/Mailhub/internal/types/type.rb +35 -0
  74. data/lib/Mailhub/internal/types/union.rb +161 -0
  75. data/lib/Mailhub/internal/types/unknown.rb +15 -0
  76. data/lib/Mailhub/internal/types/utils.rb +116 -0
  77. data/lib/Mailhub/media/client.rb +241 -0
  78. data/lib/Mailhub/media/types/delete_media_request.rb +11 -0
  79. data/lib/Mailhub/media/types/download_media_request.rb +11 -0
  80. data/lib/Mailhub/media/types/get_media_request.rb +11 -0
  81. data/lib/Mailhub/media/types/get_medias_request.rb +19 -0
  82. data/lib/Mailhub/media/types/update_media_request.rb +13 -0
  83. data/lib/Mailhub/media/types/upload_media_request.rb +9 -0
  84. data/lib/Mailhub/message/client.rb +201 -0
  85. data/lib/Mailhub/message/types/cancel_message_request.rb +11 -0
  86. data/lib/Mailhub/message/types/get_message_events_request.rb +11 -0
  87. data/lib/Mailhub/message/types/get_message_request.rb +11 -0
  88. data/lib/Mailhub/message/types/get_messages_request.rb +21 -0
  89. data/lib/Mailhub/message/types/send_message_request.rb +23 -0
  90. data/lib/Mailhub/segment/client.rb +377 -0
  91. data/lib/Mailhub/segment/types/create_segment_request.rb +13 -0
  92. data/lib/Mailhub/segment/types/delete_segment_request.rb +11 -0
  93. data/lib/Mailhub/segment/types/delete_segments_by_code_request.rb +13 -0
  94. data/lib/Mailhub/segment/types/get_segment_contacts_request.rb +15 -0
  95. data/lib/Mailhub/segment/types/get_segment_preview_request.rb +11 -0
  96. data/lib/Mailhub/segment/types/get_segment_request.rb +11 -0
  97. data/lib/Mailhub/segment/types/get_segments_request.rb +19 -0
  98. data/lib/Mailhub/segment/types/get_segments_union_preview_by_code_request.rb +11 -0
  99. data/lib/Mailhub/segment/types/sync_segment_request.rb +11 -0
  100. data/lib/Mailhub/segment/types/update_segment_request.rb +15 -0
  101. data/lib/Mailhub/template/client.rb +301 -0
  102. data/lib/Mailhub/template/types/create_template_request.rb +13 -0
  103. data/lib/Mailhub/template/types/delete_template_request.rb +11 -0
  104. data/lib/Mailhub/template/types/get_template_rendered_preview_request.rb +11 -0
  105. data/lib/Mailhub/template/types/get_template_request.rb +11 -0
  106. data/lib/Mailhub/template/types/get_templates_request.rb +19 -0
  107. data/lib/Mailhub/template/types/preview_template_request.rb +11 -0
  108. data/lib/Mailhub/template/types/update_template_request.rb +15 -0
  109. data/lib/Mailhub/types/api_error.rb +16 -0
  110. data/lib/Mailhub/types/api_error_detail.rb +12 -0
  111. data/lib/Mailhub/types/campaign_activity_point_model.rb +18 -0
  112. data/lib/Mailhub/types/campaign_analytics_model.rb +30 -0
  113. data/lib/Mailhub/types/campaign_link_stat_model.rb +14 -0
  114. data/lib/Mailhub/types/campaign_media_model.rb +24 -0
  115. data/lib/Mailhub/types/campaign_model.rb +52 -0
  116. data/lib/Mailhub/types/campaign_model_paged_result.rb +16 -0
  117. data/lib/Mailhub/types/campaign_segment_model.rb +14 -0
  118. data/lib/Mailhub/types/campaign_status.rb +17 -0
  119. data/lib/Mailhub/types/campaign_type.rb +12 -0
  120. data/lib/Mailhub/types/contact_import_job_model.rb +22 -0
  121. data/lib/Mailhub/types/contact_import_model.rb +10 -0
  122. data/lib/Mailhub/types/contact_import_status.rb +14 -0
  123. data/lib/Mailhub/types/contact_model.rb +26 -0
  124. data/lib/Mailhub/types/contact_model_cursor_paged_result.rb +18 -0
  125. data/lib/Mailhub/types/contact_model_paged_result.rb +16 -0
  126. data/lib/Mailhub/types/contact_segment_model.rb +14 -0
  127. data/lib/Mailhub/types/contact_status.rb +13 -0
  128. data/lib/Mailhub/types/custom_field_model.rb +20 -0
  129. data/lib/Mailhub/types/custom_field_type.rb +14 -0
  130. data/lib/Mailhub/types/import_contact_error_model.rb +12 -0
  131. data/lib/Mailhub/types/media_model.rb +28 -0
  132. data/lib/Mailhub/types/media_model_paged_result.rb +16 -0
  133. data/lib/Mailhub/types/message_event_model.rb +16 -0
  134. data/lib/Mailhub/types/message_event_type.rb +18 -0
  135. data/lib/Mailhub/types/message_model.rb +36 -0
  136. data/lib/Mailhub/types/message_model_cursor_paged_result.rb +18 -0
  137. data/lib/Mailhub/types/preview_segment_model.rb +10 -0
  138. data/lib/Mailhub/types/running_campaign_stats_model.rb +32 -0
  139. data/lib/Mailhub/types/segment_filter_group_model.rb +12 -0
  140. data/lib/Mailhub/types/segment_filter_model.rb +10 -0
  141. data/lib/Mailhub/types/segment_filter_rule_model.rb +14 -0
  142. data/lib/Mailhub/types/segment_model.rb +32 -0
  143. data/lib/Mailhub/types/segment_model_paged_result.rb +16 -0
  144. data/lib/Mailhub/types/segment_sync_status.rb +14 -0
  145. data/lib/Mailhub/types/template_expression_model.rb +14 -0
  146. data/lib/Mailhub/types/template_model.rb +20 -0
  147. data/lib/Mailhub/types/template_model_paged_result.rb +16 -0
  148. data/lib/Mailhub/version.rb +5 -0
  149. data/lib/Mailhub.rb +145 -0
  150. data/reference.md +3691 -0
  151. metadata +193 -0
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Mailhub
4
+ module Campaign
5
+ module Types
6
+ class AddCampaignMediaByCodeRequest < Internal::Types::Model
7
+ field :code, -> { String }, optional: false, nullable: false
8
+
9
+ field :media_code, -> { String }, optional: true, nullable: false, api_name: "mediaCode"
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Mailhub
4
+ module Campaign
5
+ module Types
6
+ class CancelCampaignRequest < Internal::Types::Model
7
+ field :code, -> { String }, optional: false, nullable: false
8
+ end
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Mailhub
4
+ module Campaign
5
+ module Types
6
+ class CatchUpCampaignRequest < Internal::Types::Model
7
+ field :code, -> { String }, optional: false, nullable: false
8
+ end
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,27 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Mailhub
4
+ module Campaign
5
+ module Types
6
+ class CreateCampaignByCodeRequest < Internal::Types::Model
7
+ field :name, -> { String }, optional: true, nullable: false
8
+
9
+ field :subject, -> { String }, optional: true, nullable: false
10
+
11
+ field :type, -> { Mailhub::Types::CampaignType }, optional: true, nullable: false
12
+
13
+ field :from_email, -> { String }, optional: true, nullable: false, api_name: "fromEmail"
14
+
15
+ field :segment_codes, -> { Internal::Types::Array[String] }, optional: true, nullable: false, api_name: "segmentCodes"
16
+
17
+ field :media_codes, -> { Internal::Types::Array[String] }, optional: true, nullable: false, api_name: "mediaCodes"
18
+
19
+ field :template_code, -> { String }, optional: true, nullable: false, api_name: "templateCode"
20
+
21
+ field :body, -> { String }, optional: true, nullable: false
22
+
23
+ field :send_at, -> { String }, optional: true, nullable: false, api_name: "sendAt"
24
+ end
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Mailhub
4
+ module Campaign
5
+ module Types
6
+ class DeleteCampaignRequest < Internal::Types::Model
7
+ field :code, -> { String }, optional: false, nullable: false
8
+ end
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Mailhub
4
+ module Campaign
5
+ module Types
6
+ class GetCampaignActivityRequest < Internal::Types::Model
7
+ field :code, -> { String }, optional: false, nullable: false
8
+ end
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Mailhub
4
+ module Campaign
5
+ module Types
6
+ class GetCampaignAnalyticsRequest < Internal::Types::Model
7
+ field :code, -> { String }, optional: false, nullable: false
8
+ end
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Mailhub
4
+ module Campaign
5
+ module Types
6
+ class GetCampaignLinkStatsRequest < Internal::Types::Model
7
+ field :code, -> { String }, optional: false, nullable: false
8
+ end
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Mailhub
4
+ module Campaign
5
+ module Types
6
+ class GetCampaignMediaRequest < Internal::Types::Model
7
+ field :code, -> { String }, optional: false, nullable: false
8
+ end
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,21 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Mailhub
4
+ module Campaign
5
+ module Types
6
+ class GetCampaignRenderedPreviewByCodeRequest < Internal::Types::Model
7
+ field :code, -> { String }, optional: false, nullable: false
8
+
9
+ field :name, -> { String }, optional: true, nullable: false
10
+
11
+ field :subject, -> { String }, optional: true, nullable: false
12
+
13
+ field :from_email, -> { String }, optional: true, nullable: false, api_name: "fromEmail"
14
+
15
+ field :template_code, -> { String }, optional: true, nullable: false, api_name: "templateCode"
16
+
17
+ field :body, -> { String }, optional: true, nullable: false
18
+ end
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Mailhub
4
+ module Campaign
5
+ module Types
6
+ class GetCampaignRequest < Internal::Types::Model
7
+ field :code, -> { String }, optional: false, nullable: false
8
+ end
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,19 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Mailhub
4
+ module Campaign
5
+ module Types
6
+ class GetCampaignsRequest < Internal::Types::Model
7
+ field :search, -> { String }, optional: true, nullable: false
8
+
9
+ field :sort_by, -> { String }, optional: true, nullable: false, api_name: "sortBy"
10
+
11
+ field :sort_direction, -> { String }, optional: true, nullable: false, api_name: "sortDirection"
12
+
13
+ field :page_size, -> { Integer }, optional: true, nullable: false, api_name: "pageSize"
14
+
15
+ field :page_index, -> { Integer }, optional: true, nullable: false, api_name: "pageIndex"
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Mailhub
4
+ module Campaign
5
+ module Types
6
+ class PauseCampaignRequest < Internal::Types::Model
7
+ field :code, -> { String }, optional: false, nullable: false
8
+ end
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Mailhub
4
+ module Campaign
5
+ module Types
6
+ class PreviewCampaignRequest < Internal::Types::Model
7
+ field :code, -> { String }, optional: false, nullable: false
8
+ end
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Mailhub
4
+ module Campaign
5
+ module Types
6
+ class RemoveCampaignMediaRequest < Internal::Types::Model
7
+ field :code, -> { String }, optional: false, nullable: false
8
+
9
+ field :media_code, -> { String }, optional: false, nullable: false, api_name: "mediaCode"
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Mailhub
4
+ module Campaign
5
+ module Types
6
+ class ScheduleCampaignRequest < Internal::Types::Model
7
+ field :code, -> { String }, optional: false, nullable: false
8
+ end
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Mailhub
4
+ module Campaign
5
+ module Types
6
+ class SendCampaignRequest < Internal::Types::Model
7
+ field :code, -> { String }, optional: false, nullable: false
8
+ end
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,23 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Mailhub
4
+ module Campaign
5
+ module Types
6
+ class TestCampaignByCodeRequest < Internal::Types::Model
7
+ field :code, -> { String }, optional: false, nullable: false
8
+
9
+ field :name, -> { String }, optional: true, nullable: false
10
+
11
+ field :subject, -> { String }, optional: true, nullable: false
12
+
13
+ field :from_email, -> { String }, optional: true, nullable: false, api_name: "fromEmail"
14
+
15
+ field :body, -> { String }, optional: true, nullable: false
16
+
17
+ field :template_code, -> { String }, optional: true, nullable: false, api_name: "templateCode"
18
+
19
+ field :contacts, -> { Internal::Types::Array[String] }, optional: true, nullable: false
20
+ end
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,29 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Mailhub
4
+ module Campaign
5
+ module Types
6
+ class UpdateCampaignByCodeRequest < Internal::Types::Model
7
+ field :code, -> { String }, optional: false, nullable: false
8
+
9
+ field :name, -> { String }, optional: true, nullable: false
10
+
11
+ field :subject, -> { String }, optional: true, nullable: false
12
+
13
+ field :type, -> { Mailhub::Types::CampaignType }, optional: true, nullable: false
14
+
15
+ field :from_email, -> { String }, optional: true, nullable: false, api_name: "fromEmail"
16
+
17
+ field :segment_codes, -> { Internal::Types::Array[String] }, optional: true, nullable: false, api_name: "segmentCodes"
18
+
19
+ field :media_codes, -> { Internal::Types::Array[String] }, optional: true, nullable: false, api_name: "mediaCodes"
20
+
21
+ field :template_code, -> { String }, optional: true, nullable: false, api_name: "templateCode"
22
+
23
+ field :body, -> { String }, optional: true, nullable: false
24
+
25
+ field :send_at, -> { String }, optional: true, nullable: false, api_name: "sendAt"
26
+ end
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,55 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Mailhub
4
+ class MailhubClient
5
+ # @param api_key [String]
6
+ # @param base_url [String, nil]
7
+ # @param max_retries [Integer]
8
+ #
9
+ # @return [void]
10
+ def initialize(api_key:, base_url: nil, max_retries: 2)
11
+ @raw_client = Mailhub::Internal::Http::RawClient.new(
12
+ base_url: base_url,
13
+ headers: {
14
+ "X-API-Key" => api_key.to_s
15
+ },
16
+ max_retries: max_retries
17
+ )
18
+ end
19
+
20
+ # @return [Mailhub::Campaign::Client]
21
+ def campaign
22
+ @campaign ||= Mailhub::Campaign::Client.new(client: @raw_client)
23
+ end
24
+
25
+ # @return [Mailhub::Contact::Client]
26
+ def contact
27
+ @contact ||= Mailhub::Contact::Client.new(client: @raw_client)
28
+ end
29
+
30
+ # @return [Mailhub::CustomField::Client]
31
+ def custom_field
32
+ @custom_field ||= Mailhub::CustomField::Client.new(client: @raw_client)
33
+ end
34
+
35
+ # @return [Mailhub::Media::Client]
36
+ def media
37
+ @media ||= Mailhub::Media::Client.new(client: @raw_client)
38
+ end
39
+
40
+ # @return [Mailhub::Message::Client]
41
+ def message
42
+ @message ||= Mailhub::Message::Client.new(client: @raw_client)
43
+ end
44
+
45
+ # @return [Mailhub::Segment::Client]
46
+ def segment
47
+ @segment ||= Mailhub::Segment::Client.new(client: @raw_client)
48
+ end
49
+
50
+ # @return [Mailhub::Template::Client]
51
+ def template
52
+ @template ||= Mailhub::Template::Client.new(client: @raw_client)
53
+ end
54
+ end
55
+ end