sendx-ruby-sdk 1.1.0 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (160) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +220 -81
  3. data/lib/sendx-ruby-sdk/api/campaign_api.rb +95 -143
  4. data/lib/sendx-ruby-sdk/api/contact_api.rb +129 -96
  5. data/lib/sendx-ruby-sdk/api/custom_field_api.rb +391 -0
  6. data/lib/sendx-ruby-sdk/api/email_sending_api.rb +158 -0
  7. data/lib/sendx-ruby-sdk/api/event_api.rb +91 -57
  8. data/lib/sendx-ruby-sdk/api/events_api.rb +158 -0
  9. data/lib/sendx-ruby-sdk/api/getting_started_api.rb +2 -2
  10. data/lib/sendx-ruby-sdk/api/list_api.rb +126 -91
  11. data/lib/sendx-ruby-sdk/api/post_api.rb +380 -0
  12. data/lib/sendx-ruby-sdk/api/post_category_api.rb +362 -0
  13. data/lib/sendx-ruby-sdk/api/post_tag_api.rb +362 -0
  14. data/lib/sendx-ruby-sdk/api/report_api.rb +90 -0
  15. data/lib/sendx-ruby-sdk/api/reports_api.rb +4 -4
  16. data/lib/sendx-ruby-sdk/api/sender_api.rb +28 -37
  17. data/lib/sendx-ruby-sdk/api/tag_api.rb +380 -0
  18. data/lib/sendx-ruby-sdk/api/tags_api.rb +8 -8
  19. data/lib/sendx-ruby-sdk/api/team_member_api.rb +147 -0
  20. data/lib/sendx-ruby-sdk/api/template_api.rb +391 -0
  21. data/lib/sendx-ruby-sdk/api/tracking_api.rb +158 -0
  22. data/lib/sendx-ruby-sdk/api/webhook_api.rb +362 -0
  23. data/lib/sendx-ruby-sdk/api_client.rb +10 -11
  24. data/lib/sendx-ruby-sdk/api_error.rb +3 -3
  25. data/lib/sendx-ruby-sdk/configuration.rb +6 -10
  26. data/lib/sendx-ruby-sdk/models/campaign.rb +23 -7
  27. data/lib/sendx-ruby-sdk/models/campaign_dashboard_data.rb +11 -5
  28. data/lib/sendx-ruby-sdk/models/campaign_request.rb +13 -41
  29. data/lib/sendx-ruby-sdk/models/contact.rb +11 -5
  30. data/lib/sendx-ruby-sdk/models/contact_request.rb +11 -5
  31. data/lib/sendx-ruby-sdk/models/create_response.rb +11 -5
  32. data/lib/sendx-ruby-sdk/models/custom_event_request.rb +37 -42
  33. data/lib/sendx-ruby-sdk/models/custom_field.rb +285 -0
  34. data/lib/sendx-ruby-sdk/models/customfield_customfield_id_delete200_response.rb +220 -0
  35. data/lib/sendx-ruby-sdk/models/dashboard_stats.rb +11 -5
  36. data/lib/sendx-ruby-sdk/models/delete_campaign200_response.rb +11 -5
  37. data/lib/sendx-ruby-sdk/models/delete_request.rb +11 -5
  38. data/lib/sendx-ruby-sdk/models/delete_response.rb +77 -13
  39. data/lib/sendx-ruby-sdk/models/e_custom_field.rb +295 -0
  40. data/lib/sendx-ruby-sdk/models/error_response.rb +288 -0
  41. data/lib/sendx-ruby-sdk/models/event_response.rb +13 -19
  42. data/lib/sendx-ruby-sdk/models/events_revenue_postback_get200_response.rb +229 -0
  43. data/lib/sendx-ruby-sdk/models/events_revenue_postback_get400_response.rb +220 -0
  44. data/lib/sendx-ruby-sdk/models/events_revenue_postback_get500_response.rb +220 -0
  45. data/lib/sendx-ruby-sdk/models/identify_error_response.rb +220 -0
  46. data/lib/sendx-ruby-sdk/models/identify_request.rb +52 -40
  47. data/lib/sendx-ruby-sdk/models/identify_response.rb +16 -19
  48. data/lib/sendx-ruby-sdk/models/last_sent_campaign_stat.rb +11 -5
  49. data/lib/sendx-ruby-sdk/models/link_stat.rb +232 -0
  50. data/lib/sendx-ruby-sdk/models/list_model.rb +11 -6
  51. data/lib/sendx-ruby-sdk/models/list_request.rb +11 -5
  52. data/lib/sendx-ruby-sdk/models/message_response.rb +229 -0
  53. data/lib/sendx-ruby-sdk/models/operation_response.rb +241 -0
  54. data/lib/sendx-ruby-sdk/models/postback_response.rb +229 -0
  55. data/lib/sendx-ruby-sdk/models/report_data.rb +11 -5
  56. data/lib/sendx-ruby-sdk/models/response.rb +11 -5
  57. data/lib/sendx-ruby-sdk/models/rest_e_campaign.rb +539 -0
  58. data/lib/sendx-ruby-sdk/models/rest_e_contact.rb +380 -0
  59. data/lib/sendx-ruby-sdk/models/rest_e_custom_field.rb +299 -0
  60. data/lib/sendx-ruby-sdk/models/rest_e_list.rb +238 -0
  61. data/lib/sendx-ruby-sdk/models/rest_e_post.rb +443 -0
  62. data/lib/sendx-ruby-sdk/models/rest_e_post_category.rb +238 -0
  63. data/lib/sendx-ruby-sdk/models/rest_e_post_tag.rb +238 -0
  64. data/lib/sendx-ruby-sdk/models/rest_e_sender.rb +265 -0
  65. data/lib/sendx-ruby-sdk/models/rest_e_tag.rb +238 -0
  66. data/lib/sendx-ruby-sdk/models/rest_e_template.rb +307 -0
  67. data/lib/sendx-ruby-sdk/models/rest_e_webhook.rb +349 -0
  68. data/lib/sendx-ruby-sdk/models/rest_r_campaign.rb +580 -0
  69. data/lib/sendx-ruby-sdk/models/rest_r_contact.rb +438 -0
  70. data/lib/sendx-ruby-sdk/models/rest_r_custom_field.rb +306 -0
  71. data/lib/sendx-ruby-sdk/models/rest_r_list.rb +291 -0
  72. data/lib/sendx-ruby-sdk/models/rest_r_member.rb +274 -0
  73. data/lib/sendx-ruby-sdk/models/rest_r_post.rb +384 -0
  74. data/lib/sendx-ruby-sdk/models/rest_r_post_category.rb +251 -0
  75. data/lib/sendx-ruby-sdk/models/rest_r_post_tag.rb +250 -0
  76. data/lib/sendx-ruby-sdk/models/rest_r_sender.rb +272 -0
  77. data/lib/sendx-ruby-sdk/models/rest_r_tag.rb +272 -0
  78. data/lib/sendx-ruby-sdk/models/rest_r_template.rb +366 -0
  79. data/lib/sendx-ruby-sdk/models/rest_r_webhook.rb +326 -0
  80. data/lib/sendx-ruby-sdk/models/rest_report_data.rb +312 -0
  81. data/lib/sendx-ruby-sdk/models/revenue_event_request.rb +37 -42
  82. data/lib/sendx-ruby-sdk/models/sender.rb +41 -5
  83. data/lib/sendx-ruby-sdk/models/sender_request.rb +31 -5
  84. data/lib/sendx-ruby-sdk/models/sender_response.rb +51 -5
  85. data/lib/sendx-ruby-sdk/models/tag.rb +11 -5
  86. data/lib/sendx-ruby-sdk/models/tag_request.rb +11 -5
  87. data/lib/sendx-ruby-sdk/models/template_email_message.rb +337 -0
  88. data/lib/sendx-ruby-sdk/models/track_request.rb +28 -20
  89. data/lib/sendx-ruby-sdk/models/track_response.rb +12 -6
  90. data/lib/sendx-ruby-sdk/models/webhook.rb +311 -0
  91. data/lib/sendx-ruby-sdk/models/webhook_object.rb +451 -0
  92. data/lib/sendx-ruby-sdk/models/webhook_request.rb +291 -0
  93. data/lib/sendx-ruby-sdk/models/x_attachment.rb +263 -0
  94. data/lib/sendx-ruby-sdk/models/x_email_message.rb +356 -0
  95. data/lib/sendx-ruby-sdk/models/x_email_response.rb +261 -0
  96. data/lib/sendx-ruby-sdk/models/x_from.rb +246 -0
  97. data/lib/sendx-ruby-sdk/models/x_reply_to.rb +246 -0
  98. data/lib/sendx-ruby-sdk/models/xto.rb +279 -0
  99. data/lib/sendx-ruby-sdk/version.rb +4 -4
  100. data/lib/sendx-ruby-sdk.rb +53 -25
  101. data/spec/api/custom_field_api_spec.rb +98 -0
  102. data/spec/api/email_sending_api_spec.rb +59 -0
  103. data/spec/api/events_api_spec.rb +59 -0
  104. data/spec/api/post_api_spec.rb +97 -0
  105. data/spec/api/post_category_api_spec.rb +95 -0
  106. data/spec/api/post_tag_api_spec.rb +95 -0
  107. data/spec/api/report_api_spec.rb +47 -0
  108. data/spec/api/tag_api_spec.rb +97 -0
  109. data/spec/api/team_member_api_spec.rb +58 -0
  110. data/spec/api/template_api_spec.rb +98 -0
  111. data/spec/api/tracking_api_spec.rb +59 -0
  112. data/spec/api/webhook_api_spec.rb +95 -0
  113. data/spec/models/custom_field_spec.rb +58 -0
  114. data/spec/models/customfield_customfield_id_delete200_response_spec.rb +36 -0
  115. data/spec/models/e_custom_field_spec.rb +64 -0
  116. data/spec/models/error_response_spec.rb +46 -0
  117. data/spec/models/events_revenue_postback_get200_response_spec.rb +42 -0
  118. data/spec/models/events_revenue_postback_get400_response_spec.rb +36 -0
  119. data/spec/models/events_revenue_postback_get500_response_spec.rb +36 -0
  120. data/spec/models/identify_error_response_spec.rb +36 -0
  121. data/spec/models/link_stat_spec.rb +42 -0
  122. data/spec/models/message_response_spec.rb +42 -0
  123. data/spec/models/operation_response_spec.rb +48 -0
  124. data/spec/models/postback_response_spec.rb +42 -0
  125. data/spec/models/rest_e_campaign_spec.rb +154 -0
  126. data/spec/models/rest_e_contact_spec.rb +78 -0
  127. data/spec/models/rest_e_custom_field_spec.rb +52 -0
  128. data/spec/models/rest_e_list_spec.rb +36 -0
  129. data/spec/models/rest_e_post_category_spec.rb +36 -0
  130. data/spec/models/rest_e_post_spec.rb +144 -0
  131. data/spec/models/rest_e_post_tag_spec.rb +36 -0
  132. data/spec/models/rest_e_sender_spec.rb +42 -0
  133. data/spec/models/rest_e_tag_spec.rb +36 -0
  134. data/spec/models/rest_e_template_spec.rb +66 -0
  135. data/spec/models/rest_e_webhook_spec.rb +84 -0
  136. data/spec/models/rest_r_campaign_spec.rb +178 -0
  137. data/spec/models/rest_r_contact_spec.rb +150 -0
  138. data/spec/models/rest_r_custom_field_spec.rb +58 -0
  139. data/spec/models/rest_r_list_spec.rb +64 -0
  140. data/spec/models/rest_r_member_spec.rb +72 -0
  141. data/spec/models/rest_r_post_category_spec.rb +54 -0
  142. data/spec/models/rest_r_post_spec.rb +144 -0
  143. data/spec/models/rest_r_post_tag_spec.rb +54 -0
  144. data/spec/models/rest_r_sender_spec.rb +54 -0
  145. data/spec/models/rest_r_tag_spec.rb +54 -0
  146. data/spec/models/rest_r_template_spec.rb +94 -0
  147. data/spec/models/rest_r_webhook_spec.rb +90 -0
  148. data/spec/models/rest_report_data_spec.rb +90 -0
  149. data/spec/models/template_email_message_spec.rb +72 -0
  150. data/spec/models/webhook_object_spec.rb +180 -0
  151. data/spec/models/webhook_request_spec.rb +78 -0
  152. data/spec/models/webhook_spec.rb +90 -0
  153. data/spec/models/x_attachment_spec.rb +42 -0
  154. data/spec/models/x_email_message_spec.rb +90 -0
  155. data/spec/models/x_email_response_spec.rb +60 -0
  156. data/spec/models/x_from_spec.rb +42 -0
  157. data/spec/models/x_reply_to_spec.rb +42 -0
  158. data/spec/models/xto_spec.rb +60 -0
  159. data/spec/spec_helper.rb +3 -3
  160. metadata +202 -28
@@ -1,12 +1,12 @@
1
1
  =begin
2
2
  #SendX REST API
3
3
 
4
- ## Introduction SendX is an email marketing product. It helps you convert website visitors to customers, send them promotional emails, engage with them using drip sequences and craft custom journeys using powerful but simple automations. The SendX API is organized around REST. Our API has predictable resource-oriented URLs, accepts form-encoded request bodies, returns JSON-encoded responses, and uses standard HTTP response codes, authentication, and verbs. The SendX Rest API doesn’t support bulk updates. You can work on only one object per request. <br>
4
+ ## SendX REST API Documentation ## 🚀 Introduction The SendX API is organized around REST principles. Our API has predictable resource-oriented URLs, accepts JSON-encoded request bodies, returns JSON-encoded responses, and uses standard HTTP response codes, authentication, and verbs. **Key Features:** - 🔒 **Security**: Team-based authentication with optional member-level access - 🎯 **Resource-Oriented**: RESTful design with clear resource boundaries - 📊 **Rich Data Models**: Three-layer model system (Input/Output/Internal) - 🔗 **Relationships**: Automatic prefix handling for resource relationships - 📈 **Scalable**: Built for high-volume email marketing operations ## 🏗️ Architecture Overview SendX uses a three-layer model architecture: 1. **Input Models** (`RestE*`): For API requests 2. **Output Models** (`RestR*`): For API responses with prefixed IDs 3. **Internal Models**: Core business logic (not exposed in API) ## 🔐 Security & Authentication SendX uses API key authentication: ### Team API Key ```http X-Team-ApiKey: YOUR_TEAM_API_KEY ``` - **Required for all requests** - Team-level access to resources - Available in SendX Settings → Team API Key ## 🆔 Encrypted ID System SendX uses encrypted IDs for security and better developer experience: - **Internal IDs**: Sequential integers (not exposed) - **Encrypted IDs**: 22-character alphanumeric strings - **Prefixed IDs**: Resource-type prefixes in API responses (`contact_<22-char-id>`) ### ID Format **All resource IDs follow this pattern:** ``` <resource_prefix>_<22_character_alphanumeric_string> ``` **Example:** ```json { \"id\": \"contact_BnKjkbBBS500CoBCP0oChQ\", \"lists\": [\"list_OcuxJHdiAvujmwQVJfd3ss\", \"list_0tOFLp5RgV7s3LNiHrjGYs\"], \"tags\": [\"tag_UhsDkjL772Qbj5lWtT62VK\", \"tag_fL7t9lsnZ9swvx2HrtQ9wM\"] } ``` ## 📚 Resource Prefixes | Resource | Prefix | Example | |----------|--------|---------| | Contact | `contact_` | `contact_BnKjkbBBS500CoBCP0oChQ` | | Campaign | `campaign_` | `campaign_LUE9BTxmksSmqHWbh96zsn` | | List | `list_` | `list_OcuxJHdiAvujmwQVJfd3ss` | | Tag | `tag_` | `tag_UhsDkjL772Qbj5lWtT62VK` | | Sender | `sender_` | `sender_4vK3WFhMgvOwUNyaL4QxCD` | | Template | `template_` | `template_f3lJvTEhSjKGVb5Lwc5SWS` | | Custom Field | `field_` | `field_MnuqBAG2NPLm7PZMWbjQxt` | | Webhook | `webhook_` | `webhook_9l154iiXlZoPo7vngmamee` | | Post | `post_` | `post_XyZ123aBc456DeF789GhI` | | Post Category | `post_category_` | `post_category_YzS1wOU20yw87UUHKxMzwn` | | Post Tag | `post_tag_` | `post_tag_123XyZ456AbC` | | Member | `member_` | `member_JkL012MnO345PqR678` | ## 🎯 Best Practices ### Error Handling - **Always check status codes**: 2xx = success, 4xx = client error, 5xx = server error - **Read error messages**: Descriptive messages help debug issues - **Handle rate limits**: Respect API rate limits for optimal performance ### Data Validation - **Email format**: Must be valid email addresses - **Required fields**: Check documentation for mandatory fields - **Field lengths**: Respect maximum length constraints ### Performance - **Pagination**: Use offset/limit for large datasets - **Batch operations**: Process multiple items when supported - **Caching**: Cache responses when appropriate ## 🛠️ SDKs & Integration Official SDKs available for: - [Golang](https://github.com/sendx/sendx-go-sdk) - [Python](https://github.com/sendx/sendx-python-sdk) - [Ruby](https://github.com/sendx/sendx-ruby-sdk) - [Java](https://github.com/sendx/sendx-java-sdk) - [PHP](https://github.com/sendx/sendx-php-sdk) - [JavaScript](https://github.com/sendx/sendx-javascript-sdk) ## 📞 Support Need help? Contact us: - 💬 **Website Chat**: Available on sendx.io - 📧 **Email**: hello@sendx.io - 📚 **Documentation**: Full guides at help.sendx.io --- **API Endpoint:** `https://api.sendx.io/api/v1/rest` [<img src=\"https://run.pstmn.io/button.svg\" alt=\"Run In Postman\" style=\"width: 128px; height: 32px;\">](https://god.gw.postman.com/run-collection/33476323-44b198b0-5219-4619-a01f-cfc24d573885?action=collection%2Ffork&source=rip_markdown&collection-url=entityId%3D33476323-44b198b0-5219-4619-a01f-cfc24d573885%26entityType%3Dcollection%26workspaceId%3D6b1e4f65-96a9-4136-9512-6266c852517e)
5
5
 
6
6
  The version of the OpenAPI document: 1.0.0
7
- Contact: support@sendx.io
7
+ Contact: hello@sendx.io
8
8
  Generated by: https://openapi-generator.tech
9
- Generator version: 7.8.0
9
+ Generator version: 7.13.0
10
10
 
11
11
  =end
12
12
 
@@ -19,28 +19,28 @@ module SendX
19
19
  def initialize(api_client = ApiClient.default)
20
20
  @api_client = api_client
21
21
  end
22
- # Create Campaign
23
- # Create a new email campaign
24
- # @param campaign_request [CampaignRequest] The campaign content
22
+ # Create campaign
23
+ # Creates a new email campaign.
24
+ # @param rest_e_campaign [RestECampaign]
25
25
  # @param [Hash] opts the optional parameters
26
- # @return [CreateResponse]
27
- def create_campaign(campaign_request, opts = {})
28
- data, _status_code, _headers = create_campaign_with_http_info(campaign_request, opts)
26
+ # @return [RestRCampaign]
27
+ def create_campaign(rest_e_campaign, opts = {})
28
+ data, _status_code, _headers = create_campaign_with_http_info(rest_e_campaign, opts)
29
29
  data
30
30
  end
31
31
 
32
- # Create Campaign
33
- # Create a new email campaign
34
- # @param campaign_request [CampaignRequest] The campaign content
32
+ # Create campaign
33
+ # Creates a new email campaign.
34
+ # @param rest_e_campaign [RestECampaign]
35
35
  # @param [Hash] opts the optional parameters
36
- # @return [Array<(CreateResponse, Integer, Hash)>] CreateResponse data, response status code and response headers
37
- def create_campaign_with_http_info(campaign_request, opts = {})
36
+ # @return [Array<(RestRCampaign, Integer, Hash)>] RestRCampaign data, response status code and response headers
37
+ def create_campaign_with_http_info(rest_e_campaign, opts = {})
38
38
  if @api_client.config.debugging
39
39
  @api_client.config.logger.debug 'Calling API: CampaignApi.create_campaign ...'
40
40
  end
41
- # verify the required parameter 'campaign_request' is set
42
- if @api_client.config.client_side_validation && campaign_request.nil?
43
- fail ArgumentError, "Missing the required parameter 'campaign_request' when calling CampaignApi.create_campaign"
41
+ # verify the required parameter 'rest_e_campaign' is set
42
+ if @api_client.config.client_side_validation && rest_e_campaign.nil?
43
+ fail ArgumentError, "Missing the required parameter 'rest_e_campaign' when calling CampaignApi.create_campaign"
44
44
  end
45
45
  # resource path
46
46
  local_var_path = '/campaign'
@@ -62,13 +62,13 @@ module SendX
62
62
  form_params = opts[:form_params] || {}
63
63
 
64
64
  # http body (model)
65
- post_body = opts[:debug_body] || @api_client.object_to_http_body(campaign_request)
65
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(rest_e_campaign)
66
66
 
67
67
  # return_type
68
- return_type = opts[:debug_return_type] || 'CreateResponse'
68
+ return_type = opts[:debug_return_type] || 'RestRCampaign'
69
69
 
70
70
  # auth_names
71
- auth_names = opts[:debug_auth_names] || ['apiKeyAuth']
71
+ auth_names = opts[:debug_auth_names] || ['TeamApiKey']
72
72
 
73
73
  new_options = opts.merge(
74
74
  :operation => :"CampaignApi.create_campaign",
@@ -87,31 +87,36 @@ module SendX
87
87
  return data, status_code, headers
88
88
  end
89
89
 
90
- # Delete Campaign
91
- # Deletes a specific campaign by its campaignId.
92
- # @param campaign_id [String] The ID of the campaign to delete
90
+ # Delete campaign
91
+ # Deletes a campaign.
92
+ # @param identifier [String] Campaign identifier to delete
93
93
  # @param [Hash] opts the optional parameters
94
- # @return [DeleteCampaign200Response]
95
- def delete_campaign(campaign_id, opts = {})
96
- data, _status_code, _headers = delete_campaign_with_http_info(campaign_id, opts)
94
+ # @return [DeleteResponse]
95
+ def delete_campaign(identifier, opts = {})
96
+ data, _status_code, _headers = delete_campaign_with_http_info(identifier, opts)
97
97
  data
98
98
  end
99
99
 
100
- # Delete Campaign
101
- # Deletes a specific campaign by its campaignId.
102
- # @param campaign_id [String] The ID of the campaign to delete
100
+ # Delete campaign
101
+ # Deletes a campaign.
102
+ # @param identifier [String] Campaign identifier to delete
103
103
  # @param [Hash] opts the optional parameters
104
- # @return [Array<(DeleteCampaign200Response, Integer, Hash)>] DeleteCampaign200Response data, response status code and response headers
105
- def delete_campaign_with_http_info(campaign_id, opts = {})
104
+ # @return [Array<(DeleteResponse, Integer, Hash)>] DeleteResponse data, response status code and response headers
105
+ def delete_campaign_with_http_info(identifier, opts = {})
106
106
  if @api_client.config.debugging
107
107
  @api_client.config.logger.debug 'Calling API: CampaignApi.delete_campaign ...'
108
108
  end
109
- # verify the required parameter 'campaign_id' is set
110
- if @api_client.config.client_side_validation && campaign_id.nil?
111
- fail ArgumentError, "Missing the required parameter 'campaign_id' when calling CampaignApi.delete_campaign"
109
+ # verify the required parameter 'identifier' is set
110
+ if @api_client.config.client_side_validation && identifier.nil?
111
+ fail ArgumentError, "Missing the required parameter 'identifier' when calling CampaignApi.delete_campaign"
112
112
  end
113
+ pattern = Regexp.new(/^(campaign_)?[a-zA-Z0-9]{22}$/)
114
+ if @api_client.config.client_side_validation && identifier !~ pattern
115
+ fail ArgumentError, "invalid value for 'identifier' when calling CampaignApi.delete_campaign, must conform to the pattern #{pattern}."
116
+ end
117
+
113
118
  # resource path
114
- local_var_path = '/campaign/{campaignId}'.sub('{' + 'campaignId' + '}', CGI.escape(campaign_id.to_s))
119
+ local_var_path = '/campaign/{identifier}'.sub('{' + 'identifier' + '}', CGI.escape(identifier.to_s))
115
120
 
116
121
  # query parameters
117
122
  query_params = opts[:query_params] || {}
@@ -128,10 +133,10 @@ module SendX
128
133
  post_body = opts[:debug_body]
129
134
 
130
135
  # return_type
131
- return_type = opts[:debug_return_type] || 'DeleteCampaign200Response'
136
+ return_type = opts[:debug_return_type] || 'DeleteResponse'
132
137
 
133
138
  # auth_names
134
- auth_names = opts[:debug_auth_names] || ['apiKeyAuth']
139
+ auth_names = opts[:debug_auth_names] || ['TeamApiKey']
135
140
 
136
141
  new_options = opts.merge(
137
142
  :operation => :"CampaignApi.delete_campaign",
@@ -150,102 +155,44 @@ module SendX
150
155
  return data, status_code, headers
151
156
  end
152
157
 
153
- # Edit Campaign
154
- # Submit edited content for a specific campaign.
155
- # @param campaign_request [CampaignRequest]
156
- # @param campaign_id [String] The ID of the campaign to edit
158
+ # Get all campaigns
159
+ # Retrieves a paginated list of all campaigns.
157
160
  # @param [Hash] opts the optional parameters
158
- # @return [Campaign]
159
- def edit_campaign(campaign_request, campaign_id, opts = {})
160
- data, _status_code, _headers = edit_campaign_with_http_info(campaign_request, campaign_id, opts)
161
+ # @option opts [Integer] :offset Number of campaigns to skip (default to 0)
162
+ # @option opts [Integer] :limit Maximum number of campaigns to return (default to 10)
163
+ # @option opts [String] :campaign_type Filter by campaign type (default to 'all')
164
+ # @return [Array<RestRCampaign>]
165
+ def get_all_campaigns(opts = {})
166
+ data, _status_code, _headers = get_all_campaigns_with_http_info(opts)
161
167
  data
162
168
  end
163
169
 
164
- # Edit Campaign
165
- # Submit edited content for a specific campaign.
166
- # @param campaign_request [CampaignRequest]
167
- # @param campaign_id [String] The ID of the campaign to edit
170
+ # Get all campaigns
171
+ # Retrieves a paginated list of all campaigns.
168
172
  # @param [Hash] opts the optional parameters
169
- # @return [Array<(Campaign, Integer, Hash)>] Campaign data, response status code and response headers
170
- def edit_campaign_with_http_info(campaign_request, campaign_id, opts = {})
173
+ # @option opts [Integer] :offset Number of campaigns to skip (default to 0)
174
+ # @option opts [Integer] :limit Maximum number of campaigns to return (default to 10)
175
+ # @option opts [String] :campaign_type Filter by campaign type (default to 'all')
176
+ # @return [Array<(Array<RestRCampaign>, Integer, Hash)>] Array<RestRCampaign> data, response status code and response headers
177
+ def get_all_campaigns_with_http_info(opts = {})
171
178
  if @api_client.config.debugging
172
- @api_client.config.logger.debug 'Calling API: CampaignApi.edit_campaign ...'
173
- end
174
- # verify the required parameter 'campaign_request' is set
175
- if @api_client.config.client_side_validation && campaign_request.nil?
176
- fail ArgumentError, "Missing the required parameter 'campaign_request' when calling CampaignApi.edit_campaign"
179
+ @api_client.config.logger.debug 'Calling API: CampaignApi.get_all_campaigns ...'
177
180
  end
178
- # verify the required parameter 'campaign_id' is set
179
- if @api_client.config.client_side_validation && campaign_id.nil?
180
- fail ArgumentError, "Missing the required parameter 'campaign_id' when calling CampaignApi.edit_campaign"
181
+ if @api_client.config.client_side_validation && !opts[:'offset'].nil? && opts[:'offset'] < 0
182
+ fail ArgumentError, 'invalid value for "opts[:"offset"]" when calling CampaignApi.get_all_campaigns, must be greater than or equal to 0.'
181
183
  end
182
- # resource path
183
- local_var_path = '/campaign/{campaignId}'.sub('{' + 'campaignId' + '}', CGI.escape(campaign_id.to_s))
184
-
185
- # query parameters
186
- query_params = opts[:query_params] || {}
187
184
 
188
- # header parameters
189
- header_params = opts[:header_params] || {}
190
- # HTTP header 'Accept' (if needed)
191
- header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
192
- # HTTP header 'Content-Type'
193
- content_type = @api_client.select_header_content_type(['application/json'])
194
- if !content_type.nil?
195
- header_params['Content-Type'] = content_type
185
+ if @api_client.config.client_side_validation && !opts[:'limit'].nil? && opts[:'limit'] > 100
186
+ fail ArgumentError, 'invalid value for "opts[:"limit"]" when calling CampaignApi.get_all_campaigns, must be smaller than or equal to 100.'
196
187
  end
197
188
 
198
- # form parameters
199
- form_params = opts[:form_params] || {}
200
-
201
- # http body (model)
202
- post_body = opts[:debug_body] || @api_client.object_to_http_body(campaign_request)
203
-
204
- # return_type
205
- return_type = opts[:debug_return_type] || 'Campaign'
206
-
207
- # auth_names
208
- auth_names = opts[:debug_auth_names] || ['apiKeyAuth']
209
-
210
- new_options = opts.merge(
211
- :operation => :"CampaignApi.edit_campaign",
212
- :header_params => header_params,
213
- :query_params => query_params,
214
- :form_params => form_params,
215
- :body => post_body,
216
- :auth_names => auth_names,
217
- :return_type => return_type
218
- )
219
-
220
- data, status_code, headers = @api_client.call_api(:PUT, local_var_path, new_options)
221
- if @api_client.config.debugging
222
- @api_client.config.logger.debug "API called: CampaignApi#edit_campaign\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
189
+ if @api_client.config.client_side_validation && !opts[:'limit'].nil? && opts[:'limit'] < 1
190
+ fail ArgumentError, 'invalid value for "opts[:"limit"]" when calling CampaignApi.get_all_campaigns, must be greater than or equal to 1.'
223
191
  end
224
- return data, status_code, headers
225
- end
226
-
227
- # Get All Campaigns
228
- # Retrieve a list of all campaigns.
229
- # @param [Hash] opts the optional parameters
230
- # @option opts [Integer] :offset Offset for pagination (default to 0)
231
- # @option opts [Integer] :limit Limit for pagination (default to 20)
232
- # @option opts [String] :search Search term to filter campaigns
233
- # @return [Array<Campaign>]
234
- def get_all_campaigns(opts = {})
235
- data, _status_code, _headers = get_all_campaigns_with_http_info(opts)
236
- data
237
- end
238
192
 
239
- # Get All Campaigns
240
- # Retrieve a list of all campaigns.
241
- # @param [Hash] opts the optional parameters
242
- # @option opts [Integer] :offset Offset for pagination (default to 0)
243
- # @option opts [Integer] :limit Limit for pagination (default to 20)
244
- # @option opts [String] :search Search term to filter campaigns
245
- # @return [Array<(Array<Campaign>, Integer, Hash)>] Array<Campaign> data, response status code and response headers
246
- def get_all_campaigns_with_http_info(opts = {})
247
- if @api_client.config.debugging
248
- @api_client.config.logger.debug 'Calling API: CampaignApi.get_all_campaigns ...'
193
+ allowable_values = ["all", "draft", "scheduled", "sent"]
194
+ if @api_client.config.client_side_validation && opts[:'campaign_type'] && !allowable_values.include?(opts[:'campaign_type'])
195
+ fail ArgumentError, "invalid value for \"campaign_type\", must be one of #{allowable_values}"
249
196
  end
250
197
  # resource path
251
198
  local_var_path = '/campaign'
@@ -254,7 +201,7 @@ module SendX
254
201
  query_params = opts[:query_params] || {}
255
202
  query_params[:'offset'] = opts[:'offset'] if !opts[:'offset'].nil?
256
203
  query_params[:'limit'] = opts[:'limit'] if !opts[:'limit'].nil?
257
- query_params[:'search'] = opts[:'search'] if !opts[:'search'].nil?
204
+ query_params[:'campaignType'] = opts[:'campaign_type'] if !opts[:'campaign_type'].nil?
258
205
 
259
206
  # header parameters
260
207
  header_params = opts[:header_params] || {}
@@ -268,10 +215,10 @@ module SendX
268
215
  post_body = opts[:debug_body]
269
216
 
270
217
  # return_type
271
- return_type = opts[:debug_return_type] || 'Array<Campaign>'
218
+ return_type = opts[:debug_return_type] || 'Array<RestRCampaign>'
272
219
 
273
220
  # auth_names
274
- auth_names = opts[:debug_auth_names] || ['apiKeyAuth']
221
+ auth_names = opts[:debug_auth_names] || ['TeamApiKey']
275
222
 
276
223
  new_options = opts.merge(
277
224
  :operation => :"CampaignApi.get_all_campaigns",
@@ -290,31 +237,36 @@ module SendX
290
237
  return data, status_code, headers
291
238
  end
292
239
 
293
- # Get Campaign By Id
294
- # Retrieve a specific campaign using its ID.
295
- # @param campaign_id [String] The ID of the campaign to retrieve.
240
+ # Get campaign by ID
241
+ # Retrieves detailed information about a specific campaign.
242
+ # @param identifier [String] Campaign identifier - &#x60;campaign_IMBoxK2iB5sUdgiNOjqAMA&#x60;
296
243
  # @param [Hash] opts the optional parameters
297
- # @return [Campaign]
298
- def get_campaign_by_id(campaign_id, opts = {})
299
- data, _status_code, _headers = get_campaign_by_id_with_http_info(campaign_id, opts)
244
+ # @return [RestRCampaign]
245
+ def get_campaign(identifier, opts = {})
246
+ data, _status_code, _headers = get_campaign_with_http_info(identifier, opts)
300
247
  data
301
248
  end
302
249
 
303
- # Get Campaign By Id
304
- # Retrieve a specific campaign using its ID.
305
- # @param campaign_id [String] The ID of the campaign to retrieve.
250
+ # Get campaign by ID
251
+ # Retrieves detailed information about a specific campaign.
252
+ # @param identifier [String] Campaign identifier - &#x60;campaign_IMBoxK2iB5sUdgiNOjqAMA&#x60;
306
253
  # @param [Hash] opts the optional parameters
307
- # @return [Array<(Campaign, Integer, Hash)>] Campaign data, response status code and response headers
308
- def get_campaign_by_id_with_http_info(campaign_id, opts = {})
254
+ # @return [Array<(RestRCampaign, Integer, Hash)>] RestRCampaign data, response status code and response headers
255
+ def get_campaign_with_http_info(identifier, opts = {})
309
256
  if @api_client.config.debugging
310
- @api_client.config.logger.debug 'Calling API: CampaignApi.get_campaign_by_id ...'
257
+ @api_client.config.logger.debug 'Calling API: CampaignApi.get_campaign ...'
258
+ end
259
+ # verify the required parameter 'identifier' is set
260
+ if @api_client.config.client_side_validation && identifier.nil?
261
+ fail ArgumentError, "Missing the required parameter 'identifier' when calling CampaignApi.get_campaign"
311
262
  end
312
- # verify the required parameter 'campaign_id' is set
313
- if @api_client.config.client_side_validation && campaign_id.nil?
314
- fail ArgumentError, "Missing the required parameter 'campaign_id' when calling CampaignApi.get_campaign_by_id"
263
+ pattern = Regexp.new(/^(campaign_)?[a-zA-Z0-9]{22}$/)
264
+ if @api_client.config.client_side_validation && identifier !~ pattern
265
+ fail ArgumentError, "invalid value for 'identifier' when calling CampaignApi.get_campaign, must conform to the pattern #{pattern}."
315
266
  end
267
+
316
268
  # resource path
317
- local_var_path = '/campaign/{campaignId}'.sub('{' + 'campaignId' + '}', CGI.escape(campaign_id.to_s))
269
+ local_var_path = '/campaign/{identifier}'.sub('{' + 'identifier' + '}', CGI.escape(identifier.to_s))
318
270
 
319
271
  # query parameters
320
272
  query_params = opts[:query_params] || {}
@@ -331,13 +283,13 @@ module SendX
331
283
  post_body = opts[:debug_body]
332
284
 
333
285
  # return_type
334
- return_type = opts[:debug_return_type] || 'Campaign'
286
+ return_type = opts[:debug_return_type] || 'RestRCampaign'
335
287
 
336
288
  # auth_names
337
- auth_names = opts[:debug_auth_names] || ['apiKeyAuth']
289
+ auth_names = opts[:debug_auth_names] || ['TeamApiKey']
338
290
 
339
291
  new_options = opts.merge(
340
- :operation => :"CampaignApi.get_campaign_by_id",
292
+ :operation => :"CampaignApi.get_campaign",
341
293
  :header_params => header_params,
342
294
  :query_params => query_params,
343
295
  :form_params => form_params,
@@ -348,7 +300,7 @@ module SendX
348
300
 
349
301
  data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
350
302
  if @api_client.config.debugging
351
- @api_client.config.logger.debug "API called: CampaignApi#get_campaign_by_id\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
303
+ @api_client.config.logger.debug "API called: CampaignApi#get_campaign\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
352
304
  end
353
305
  return data, status_code, headers
354
306
  end