parlo-sdk 1.0.0 → 1.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 (36) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +6 -1
  3. data/lib/parlo-sdk/api/domains_api.rb +1 -1
  4. data/lib/parlo-sdk/api/emails_api.rb +94 -1
  5. data/lib/parlo-sdk/api_client.rb +1 -1
  6. data/lib/parlo-sdk/api_error.rb +1 -1
  7. data/lib/parlo-sdk/api_model_base.rb +1 -1
  8. data/lib/parlo-sdk/configuration.rb +1 -1
  9. data/lib/parlo-sdk/models/auth_health.rb +1 -1
  10. data/lib/parlo-sdk/models/auth_health_dkim.rb +1 -1
  11. data/lib/parlo-sdk/models/auth_health_dmarc.rb +1 -1
  12. data/lib/parlo-sdk/models/auth_health_spf.rb +1 -1
  13. data/lib/parlo-sdk/models/create_domain_request.rb +1 -1
  14. data/lib/parlo-sdk/models/delete_domain200_response.rb +1 -1
  15. data/lib/parlo-sdk/models/dns_record.rb +1 -1
  16. data/lib/parlo-sdk/models/domain.rb +1 -1
  17. data/lib/parlo-sdk/models/domain_summary.rb +1 -1
  18. data/lib/parlo-sdk/models/email.rb +106 -7
  19. data/lib/parlo-sdk/models/email_created.rb +1 -1
  20. data/lib/parlo-sdk/models/email_list.rb +192 -0
  21. data/lib/parlo-sdk/models/email_summary.rb +367 -0
  22. data/lib/parlo-sdk/models/error.rb +1 -1
  23. data/lib/parlo-sdk/models/list_domains200_response.rb +1 -1
  24. data/lib/parlo-sdk/models/list_meta.rb +240 -0
  25. data/lib/parlo-sdk/models/send_email_request.rb +2 -2
  26. data/lib/parlo-sdk/models/send_email_request_cc.rb +1 -1
  27. data/lib/parlo-sdk/models/send_email_request_to.rb +1 -1
  28. data/lib/parlo-sdk/models/webhook_event.rb +268 -0
  29. data/lib/parlo-sdk/version.rb +2 -2
  30. data/lib/parlo-sdk.rb +5 -1
  31. data/spec/models/email_list_spec.rb +42 -0
  32. data/spec/models/email_summary_spec.rb +88 -0
  33. data/spec/models/list_meta_spec.rb +60 -0
  34. data/spec/models/webhook_event_spec.rb +58 -0
  35. data/spec/spec_helper.rb +1 -1
  36. metadata +14 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a86fcc7296426ee54eb2d2903e4d0112ba86f5ca602fdb02f3f02dc2e889003e
4
- data.tar.gz: 99bafb1a2b9523052f897f5a4c48d797cab3dc35ee9f8f1ca2dda24557fff517
3
+ metadata.gz: 738dd8141e6e850ca8ea41d01174f179fdd536e141718039c1efae08852a4902
4
+ data.tar.gz: 9f71b3e66f4727698b2698c3c18c5886e4a9a58f471aad41111769824cb408fd
5
5
  SHA512:
6
- metadata.gz: f0f56669490d5fbd80059ca8f38ef01b4d076e5b5cec0dc510cd1fcc6643f6b6a941940718a9925a3d0cddf39277883f7ca4d449fb74276c1521694c72f68aeb
7
- data.tar.gz: 278e1e48e27744b27451e75d8c3ed25a54b986aae2c5d7f57158ff1aa9290027b6bb3d828256cab9404fa68a929c7e2eb5c1d6e3743106e3686ad7b82ed41fad
6
+ metadata.gz: 8f4d54f65720c8f9ceb1305f964e836f0620e4d2bbfd7fc99ef10571913411c222ea777b1a9570f331afc67bceeaf288b656b436508c297f229cb173fba9655b
7
+ data.tar.gz: 2c9a97f1ba2f2525c03c7d834a7a4a78361983225e9785273444d41d8f520f6f2dd2a986c5dfa535302b1748db73a4ef3190d27572f56ad1d70bdd40b0f3c795
data/README.md CHANGED
@@ -14,7 +14,7 @@ shape `{ \"message\": string, \"code\": string }`.
14
14
 
15
15
  This SDK is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project:
16
16
 
17
- - API version: 1.0.0
17
+ - API version: 1.1.0
18
18
  - Package version: 1.0.0
19
19
  - Generator version: 7.24.0-SNAPSHOT
20
20
  - Build package: org.openapitools.codegen.languages.RubyClientCodegen
@@ -99,6 +99,7 @@ Class | Method | HTTP request | Description
99
99
  *Parlo::DomainsApi* | [**list_domains**](docs/DomainsApi.md#list_domains) | **GET** /domains | List sending domains
100
100
  *Parlo::DomainsApi* | [**verify_domain**](docs/DomainsApi.md#verify_domain) | **POST** /domains/{id}/verify | Re-check a domain's DNS
101
101
  *Parlo::EmailsApi* | [**get_email**](docs/EmailsApi.md#get_email) | **GET** /emails/{id} | Retrieve an email
102
+ *Parlo::EmailsApi* | [**list_emails**](docs/EmailsApi.md#list_emails) | **GET** /emails | List transactional emails
102
103
  *Parlo::EmailsApi* | [**send_email**](docs/EmailsApi.md#send_email) | **POST** /emails | Send a transactional email
103
104
 
104
105
 
@@ -115,11 +116,15 @@ Class | Method | HTTP request | Description
115
116
  - [Parlo::DomainSummary](docs/DomainSummary.md)
116
117
  - [Parlo::Email](docs/Email.md)
117
118
  - [Parlo::EmailCreated](docs/EmailCreated.md)
119
+ - [Parlo::EmailList](docs/EmailList.md)
120
+ - [Parlo::EmailSummary](docs/EmailSummary.md)
118
121
  - [Parlo::Error](docs/Error.md)
119
122
  - [Parlo::ListDomains200Response](docs/ListDomains200Response.md)
123
+ - [Parlo::ListMeta](docs/ListMeta.md)
120
124
  - [Parlo::SendEmailRequest](docs/SendEmailRequest.md)
121
125
  - [Parlo::SendEmailRequestCc](docs/SendEmailRequestCc.md)
122
126
  - [Parlo::SendEmailRequestTo](docs/SendEmailRequestTo.md)
127
+ - [Parlo::WebhookEvent](docs/WebhookEvent.md)
123
128
 
124
129
 
125
130
  ## Documentation for Authorization
@@ -3,7 +3,7 @@
3
3
 
4
4
  #The Parlo API sends transactional email and manages the sending domains it authenticates from. Marketing campaigns (audiences, templates, broadcasts) are designed and sent from the Parlo dashboard, not this API — the API is transactional-only at launch. All requests authenticate with a company API key as an HTTP bearer token: `Authorization: Bearer parlo_live_xxx`. Errors return a JSON body of the shape `{ \"message\": string, \"code\": string }`.
5
5
 
6
- The version of the OpenAPI document: 1.0.0
6
+ The version of the OpenAPI document: 1.1.0
7
7
 
8
8
  Generated by: https://openapi-generator.tech
9
9
  Generator version: 7.24.0-SNAPSHOT
@@ -3,7 +3,7 @@
3
3
 
4
4
  #The Parlo API sends transactional email and manages the sending domains it authenticates from. Marketing campaigns (audiences, templates, broadcasts) are designed and sent from the Parlo dashboard, not this API — the API is transactional-only at launch. All requests authenticate with a company API key as an HTTP bearer token: `Authorization: Bearer parlo_live_xxx`. Errors return a JSON body of the shape `{ \"message\": string, \"code\": string }`.
5
5
 
6
- The version of the OpenAPI document: 1.0.0
6
+ The version of the OpenAPI document: 1.1.0
7
7
 
8
8
  Generated by: https://openapi-generator.tech
9
9
  Generator version: 7.24.0-SNAPSHOT
@@ -82,6 +82,99 @@ module Parlo
82
82
  return data, status_code, headers
83
83
  end
84
84
 
85
+ # List transactional emails
86
+ # Returns this company's transactional emails, newest first, with pagination metadata. Use it to build a delivery log or to reconcile a batch of sends without polling each message by id. Filters combine with AND. A malformed filter is rejected with a 422 rather than ignored, so a narrowing filter can never silently return the unfiltered set. Transactional message bodies are never stored and never returned.
87
+ # @param [Hash] opts the optional parameters
88
+ # @option opts [String] :status Filter by delivery status. Accepts a comma-separated list to match any of several, e.g. `bounced,failed`.
89
+ # @option opts [String] :to Filter by recipient. Matches any recipient of the message, case-insensitively, on a partial string — `example.com` matches every recipient at that domain.
90
+ # @option opts [String] :since Only emails created at or after this time. Strict ISO 8601: either a date (`2026-08-01`) or a timestamp (`2026-08-01T10:00:00Z`).
91
+ # @option opts [String] :_until Only emails created at or before this time. Same format as `since`. A date with no time covers that whole day.
92
+ # @option opts [Hash<String, String>] :tags Filter by the tags set at send time. Supply several keys to require all of them: &#x60;?tags[type]&#x3D;receipt&amp;tags[env]&#x3D;prod&#x60;. Maximum 10 keys.
93
+ # @option opts [String] :search_term Case-insensitive substring match on the subject.
94
+ # @option opts [Integer] :page 1-based page number. (default to 1)
95
+ # @option opts [Integer] :per_page Results per page. (default to 25)
96
+ # @return [EmailList]
97
+ def list_emails(opts = {})
98
+ data, _status_code, _headers = list_emails_with_http_info(opts)
99
+ data
100
+ end
101
+
102
+ # List transactional emails
103
+ # Returns this company&#39;s transactional emails, newest first, with pagination metadata. Use it to build a delivery log or to reconcile a batch of sends without polling each message by id. Filters combine with AND. A malformed filter is rejected with a 422 rather than ignored, so a narrowing filter can never silently return the unfiltered set. Transactional message bodies are never stored and never returned.
104
+ # @param [Hash] opts the optional parameters
105
+ # @option opts [String] :status Filter by delivery status. Accepts a comma-separated list to match any of several, e.g. &#x60;bounced,failed&#x60;.
106
+ # @option opts [String] :to Filter by recipient. Matches any recipient of the message, case-insensitively, on a partial string — &#x60;example.com&#x60; matches every recipient at that domain.
107
+ # @option opts [String] :since Only emails created at or after this time. Strict ISO 8601: either a date (&#x60;2026-08-01&#x60;) or a timestamp (&#x60;2026-08-01T10:00:00Z&#x60;).
108
+ # @option opts [String] :_until Only emails created at or before this time. Same format as &#x60;since&#x60;. A date with no time covers that whole day.
109
+ # @option opts [Hash<String, String>] :tags Filter by the tags set at send time. Supply several keys to require all of them: &#x60;?tags[type]&#x3D;receipt&amp;tags[env]&#x3D;prod&#x60;. Maximum 10 keys.
110
+ # @option opts [String] :search_term Case-insensitive substring match on the subject.
111
+ # @option opts [Integer] :page 1-based page number. (default to 1)
112
+ # @option opts [Integer] :per_page Results per page. (default to 25)
113
+ # @return [Array<(EmailList, Integer, Hash)>] EmailList data, response status code and response headers
114
+ def list_emails_with_http_info(opts = {})
115
+ if @api_client.config.debugging
116
+ @api_client.config.logger.debug 'Calling API: EmailsApi.list_emails ...'
117
+ end
118
+ if @api_client.config.client_side_validation && !opts[:'page'].nil? && opts[:'page'] < 1
119
+ fail ArgumentError, 'invalid value for "opts[:"page"]" when calling EmailsApi.list_emails, must be greater than or equal to 1.'
120
+ end
121
+
122
+ if @api_client.config.client_side_validation && !opts[:'per_page'].nil? && opts[:'per_page'] > 100
123
+ fail ArgumentError, 'invalid value for "opts[:"per_page"]" when calling EmailsApi.list_emails, must be smaller than or equal to 100.'
124
+ end
125
+
126
+ if @api_client.config.client_side_validation && !opts[:'per_page'].nil? && opts[:'per_page'] < 1
127
+ fail ArgumentError, 'invalid value for "opts[:"per_page"]" when calling EmailsApi.list_emails, must be greater than or equal to 1.'
128
+ end
129
+
130
+ # resource path
131
+ local_var_path = '/emails'
132
+
133
+ # query parameters
134
+ query_params = opts[:query_params] || {}
135
+ query_params[:'status'] = opts[:'status'] if !opts[:'status'].nil?
136
+ query_params[:'to'] = opts[:'to'] if !opts[:'to'].nil?
137
+ query_params[:'since'] = opts[:'since'] if !opts[:'since'].nil?
138
+ query_params[:'until'] = opts[:'_until'] if !opts[:'_until'].nil?
139
+ query_params[:'tags'] = opts[:'tags'] if !opts[:'tags'].nil?
140
+ query_params[:'search_term'] = opts[:'search_term'] if !opts[:'search_term'].nil?
141
+ query_params[:'page'] = opts[:'page'] if !opts[:'page'].nil?
142
+ query_params[:'per_page'] = opts[:'per_page'] if !opts[:'per_page'].nil?
143
+
144
+ # header parameters
145
+ header_params = opts[:header_params] || {}
146
+ # HTTP header 'Accept' (if needed)
147
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
148
+
149
+ # form parameters
150
+ form_params = opts[:form_params] || {}
151
+
152
+ # http body (model)
153
+ post_body = opts[:debug_body]
154
+
155
+ # return_type
156
+ return_type = opts[:debug_return_type] || 'EmailList'
157
+
158
+ # auth_names
159
+ auth_names = opts[:debug_auth_names] || ['bearerAuth']
160
+
161
+ new_options = opts.merge(
162
+ :operation => :"EmailsApi.list_emails",
163
+ :header_params => header_params,
164
+ :query_params => query_params,
165
+ :form_params => form_params,
166
+ :body => post_body,
167
+ :auth_names => auth_names,
168
+ :return_type => return_type
169
+ )
170
+
171
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
172
+ if @api_client.config.debugging
173
+ @api_client.config.logger.debug "API called: EmailsApi#list_emails\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
174
+ end
175
+ return data, status_code, headers
176
+ end
177
+
85
178
  # Send a transactional email
86
179
  # Queues a transactional email for delivery and returns immediately with a `queued` status. The actual send happens out of band; poll `GET /emails/{id}` (or consume webhook events) for the outcome. The `from` address must belong to a domain your company has verified (see the Domains endpoints). `data` fills `[placeholder]` tokens in `subject`, `html` and `text`. Provide at least one of `html` or `text`. Send an `Idempotency-Key` header to make retries safe — a repeated key returns the original email instead of sending again.
87
180
  # @param send_email_request [SendEmailRequest]
@@ -3,7 +3,7 @@
3
3
 
4
4
  #The Parlo API sends transactional email and manages the sending domains it authenticates from. Marketing campaigns (audiences, templates, broadcasts) are designed and sent from the Parlo dashboard, not this API — the API is transactional-only at launch. All requests authenticate with a company API key as an HTTP bearer token: `Authorization: Bearer parlo_live_xxx`. Errors return a JSON body of the shape `{ \"message\": string, \"code\": string }`.
5
5
 
6
- The version of the OpenAPI document: 1.0.0
6
+ The version of the OpenAPI document: 1.1.0
7
7
 
8
8
  Generated by: https://openapi-generator.tech
9
9
  Generator version: 7.24.0-SNAPSHOT
@@ -3,7 +3,7 @@
3
3
 
4
4
  #The Parlo API sends transactional email and manages the sending domains it authenticates from. Marketing campaigns (audiences, templates, broadcasts) are designed and sent from the Parlo dashboard, not this API — the API is transactional-only at launch. All requests authenticate with a company API key as an HTTP bearer token: `Authorization: Bearer parlo_live_xxx`. Errors return a JSON body of the shape `{ \"message\": string, \"code\": string }`.
5
5
 
6
- The version of the OpenAPI document: 1.0.0
6
+ The version of the OpenAPI document: 1.1.0
7
7
 
8
8
  Generated by: https://openapi-generator.tech
9
9
  Generator version: 7.24.0-SNAPSHOT
@@ -3,7 +3,7 @@
3
3
 
4
4
  #The Parlo API sends transactional email and manages the sending domains it authenticates from. Marketing campaigns (audiences, templates, broadcasts) are designed and sent from the Parlo dashboard, not this API — the API is transactional-only at launch. All requests authenticate with a company API key as an HTTP bearer token: `Authorization: Bearer parlo_live_xxx`. Errors return a JSON body of the shape `{ \"message\": string, \"code\": string }`.
5
5
 
6
- The version of the OpenAPI document: 1.0.0
6
+ The version of the OpenAPI document: 1.1.0
7
7
 
8
8
  Generated by: https://openapi-generator.tech
9
9
  Generator version: 7.24.0-SNAPSHOT
@@ -3,7 +3,7 @@
3
3
 
4
4
  #The Parlo API sends transactional email and manages the sending domains it authenticates from. Marketing campaigns (audiences, templates, broadcasts) are designed and sent from the Parlo dashboard, not this API — the API is transactional-only at launch. All requests authenticate with a company API key as an HTTP bearer token: `Authorization: Bearer parlo_live_xxx`. Errors return a JSON body of the shape `{ \"message\": string, \"code\": string }`.
5
5
 
6
- The version of the OpenAPI document: 1.0.0
6
+ The version of the OpenAPI document: 1.1.0
7
7
 
8
8
  Generated by: https://openapi-generator.tech
9
9
  Generator version: 7.24.0-SNAPSHOT
@@ -3,7 +3,7 @@
3
3
 
4
4
  #The Parlo API sends transactional email and manages the sending domains it authenticates from. Marketing campaigns (audiences, templates, broadcasts) are designed and sent from the Parlo dashboard, not this API — the API is transactional-only at launch. All requests authenticate with a company API key as an HTTP bearer token: `Authorization: Bearer parlo_live_xxx`. Errors return a JSON body of the shape `{ \"message\": string, \"code\": string }`.
5
5
 
6
- The version of the OpenAPI document: 1.0.0
6
+ The version of the OpenAPI document: 1.1.0
7
7
 
8
8
  Generated by: https://openapi-generator.tech
9
9
  Generator version: 7.24.0-SNAPSHOT
@@ -3,7 +3,7 @@
3
3
 
4
4
  #The Parlo API sends transactional email and manages the sending domains it authenticates from. Marketing campaigns (audiences, templates, broadcasts) are designed and sent from the Parlo dashboard, not this API — the API is transactional-only at launch. All requests authenticate with a company API key as an HTTP bearer token: `Authorization: Bearer parlo_live_xxx`. Errors return a JSON body of the shape `{ \"message\": string, \"code\": string }`.
5
5
 
6
- The version of the OpenAPI document: 1.0.0
6
+ The version of the OpenAPI document: 1.1.0
7
7
 
8
8
  Generated by: https://openapi-generator.tech
9
9
  Generator version: 7.24.0-SNAPSHOT
@@ -3,7 +3,7 @@
3
3
 
4
4
  #The Parlo API sends transactional email and manages the sending domains it authenticates from. Marketing campaigns (audiences, templates, broadcasts) are designed and sent from the Parlo dashboard, not this API — the API is transactional-only at launch. All requests authenticate with a company API key as an HTTP bearer token: `Authorization: Bearer parlo_live_xxx`. Errors return a JSON body of the shape `{ \"message\": string, \"code\": string }`.
5
5
 
6
- The version of the OpenAPI document: 1.0.0
6
+ The version of the OpenAPI document: 1.1.0
7
7
 
8
8
  Generated by: https://openapi-generator.tech
9
9
  Generator version: 7.24.0-SNAPSHOT
@@ -3,7 +3,7 @@
3
3
 
4
4
  #The Parlo API sends transactional email and manages the sending domains it authenticates from. Marketing campaigns (audiences, templates, broadcasts) are designed and sent from the Parlo dashboard, not this API — the API is transactional-only at launch. All requests authenticate with a company API key as an HTTP bearer token: `Authorization: Bearer parlo_live_xxx`. Errors return a JSON body of the shape `{ \"message\": string, \"code\": string }`.
5
5
 
6
- The version of the OpenAPI document: 1.0.0
6
+ The version of the OpenAPI document: 1.1.0
7
7
 
8
8
  Generated by: https://openapi-generator.tech
9
9
  Generator version: 7.24.0-SNAPSHOT
@@ -3,7 +3,7 @@
3
3
 
4
4
  #The Parlo API sends transactional email and manages the sending domains it authenticates from. Marketing campaigns (audiences, templates, broadcasts) are designed and sent from the Parlo dashboard, not this API — the API is transactional-only at launch. All requests authenticate with a company API key as an HTTP bearer token: `Authorization: Bearer parlo_live_xxx`. Errors return a JSON body of the shape `{ \"message\": string, \"code\": string }`.
5
5
 
6
- The version of the OpenAPI document: 1.0.0
6
+ The version of the OpenAPI document: 1.1.0
7
7
 
8
8
  Generated by: https://openapi-generator.tech
9
9
  Generator version: 7.24.0-SNAPSHOT
@@ -3,7 +3,7 @@
3
3
 
4
4
  #The Parlo API sends transactional email and manages the sending domains it authenticates from. Marketing campaigns (audiences, templates, broadcasts) are designed and sent from the Parlo dashboard, not this API — the API is transactional-only at launch. All requests authenticate with a company API key as an HTTP bearer token: `Authorization: Bearer parlo_live_xxx`. Errors return a JSON body of the shape `{ \"message\": string, \"code\": string }`.
5
5
 
6
- The version of the OpenAPI document: 1.0.0
6
+ The version of the OpenAPI document: 1.1.0
7
7
 
8
8
  Generated by: https://openapi-generator.tech
9
9
  Generator version: 7.24.0-SNAPSHOT
@@ -3,7 +3,7 @@
3
3
 
4
4
  #The Parlo API sends transactional email and manages the sending domains it authenticates from. Marketing campaigns (audiences, templates, broadcasts) are designed and sent from the Parlo dashboard, not this API — the API is transactional-only at launch. All requests authenticate with a company API key as an HTTP bearer token: `Authorization: Bearer parlo_live_xxx`. Errors return a JSON body of the shape `{ \"message\": string, \"code\": string }`.
5
5
 
6
- The version of the OpenAPI document: 1.0.0
6
+ The version of the OpenAPI document: 1.1.0
7
7
 
8
8
  Generated by: https://openapi-generator.tech
9
9
  Generator version: 7.24.0-SNAPSHOT
@@ -3,7 +3,7 @@
3
3
 
4
4
  #The Parlo API sends transactional email and manages the sending domains it authenticates from. Marketing campaigns (audiences, templates, broadcasts) are designed and sent from the Parlo dashboard, not this API — the API is transactional-only at launch. All requests authenticate with a company API key as an HTTP bearer token: `Authorization: Bearer parlo_live_xxx`. Errors return a JSON body of the shape `{ \"message\": string, \"code\": string }`.
5
5
 
6
- The version of the OpenAPI document: 1.0.0
6
+ The version of the OpenAPI document: 1.1.0
7
7
 
8
8
  Generated by: https://openapi-generator.tech
9
9
  Generator version: 7.24.0-SNAPSHOT
@@ -3,7 +3,7 @@
3
3
 
4
4
  #The Parlo API sends transactional email and manages the sending domains it authenticates from. Marketing campaigns (audiences, templates, broadcasts) are designed and sent from the Parlo dashboard, not this API — the API is transactional-only at launch. All requests authenticate with a company API key as an HTTP bearer token: `Authorization: Bearer parlo_live_xxx`. Errors return a JSON body of the shape `{ \"message\": string, \"code\": string }`.
5
5
 
6
- The version of the OpenAPI document: 1.0.0
6
+ The version of the OpenAPI document: 1.1.0
7
7
 
8
8
  Generated by: https://openapi-generator.tech
9
9
  Generator version: 7.24.0-SNAPSHOT
@@ -3,7 +3,7 @@
3
3
 
4
4
  #The Parlo API sends transactional email and manages the sending domains it authenticates from. Marketing campaigns (audiences, templates, broadcasts) are designed and sent from the Parlo dashboard, not this API — the API is transactional-only at launch. All requests authenticate with a company API key as an HTTP bearer token: `Authorization: Bearer parlo_live_xxx`. Errors return a JSON body of the shape `{ \"message\": string, \"code\": string }`.
5
5
 
6
- The version of the OpenAPI document: 1.0.0
6
+ The version of the OpenAPI document: 1.1.0
7
7
 
8
8
  Generated by: https://openapi-generator.tech
9
9
  Generator version: 7.24.0-SNAPSHOT
@@ -19,6 +19,8 @@ module Parlo
19
19
 
20
20
  attr_accessor :to
21
21
 
22
+ attr_accessor :from
23
+
22
24
  attr_accessor :subject
23
25
 
24
26
  attr_accessor :status
@@ -31,6 +33,14 @@ module Parlo
31
33
 
32
34
  attr_accessor :created_at
33
35
 
36
+ attr_accessor :stream
37
+
38
+ # The tags supplied when the email was sent.
39
+ attr_accessor :tags
40
+
41
+ # Why the send failed, as reported by the email provider. Null unless status is `failed`.
42
+ attr_accessor :error
43
+
34
44
  class EnumAttributeValidator
35
45
  attr_reader :datatype
36
46
  attr_reader :allowable_values
@@ -58,12 +68,16 @@ module Parlo
58
68
  {
59
69
  :'id' => :'id',
60
70
  :'to' => :'to',
71
+ :'from' => :'from',
61
72
  :'subject' => :'subject',
62
73
  :'status' => :'status',
63
74
  :'opened' => :'opened',
64
75
  :'clicked' => :'clicked',
65
76
  :'last_event_at' => :'last_event_at',
66
- :'created_at' => :'created_at'
77
+ :'created_at' => :'created_at',
78
+ :'stream' => :'stream',
79
+ :'tags' => :'tags',
80
+ :'error' => :'error'
67
81
  }
68
82
  end
69
83
 
@@ -82,23 +96,33 @@ module Parlo
82
96
  {
83
97
  :'id' => :'String',
84
98
  :'to' => :'Array<String>',
99
+ :'from' => :'String',
85
100
  :'subject' => :'String',
86
101
  :'status' => :'String',
87
102
  :'opened' => :'Boolean',
88
103
  :'clicked' => :'Boolean',
89
104
  :'last_event_at' => :'Time',
90
- :'created_at' => :'Time'
105
+ :'created_at' => :'Time',
106
+ :'stream' => :'String',
107
+ :'tags' => :'Hash<String, String>',
108
+ :'error' => :'String'
91
109
  }
92
110
  end
93
111
 
94
112
  # List of attributes with nullable: true
95
113
  def self.openapi_nullable
96
114
  Set.new([
97
- :'last_event_at',
98
- :'created_at'
115
+ :'error'
99
116
  ])
100
117
  end
101
118
 
119
+ # List of class defined in allOf (OpenAPI v3)
120
+ def self.openapi_all_of
121
+ [
122
+ :'EmailSummary'
123
+ ]
124
+ end
125
+
102
126
  # Initializes the object
103
127
  # @param [Hash] attributes Model attributes in the form of hash
104
128
  def initialize(attributes = {})
@@ -129,6 +153,12 @@ module Parlo
129
153
  self.to = nil
130
154
  end
131
155
 
156
+ if attributes.key?(:'from')
157
+ self.from = attributes[:'from']
158
+ else
159
+ self.from = nil
160
+ end
161
+
132
162
  if attributes.key?(:'subject')
133
163
  self.subject = attributes[:'subject']
134
164
  else
@@ -160,6 +190,26 @@ module Parlo
160
190
  if attributes.key?(:'created_at')
161
191
  self.created_at = attributes[:'created_at']
162
192
  end
193
+
194
+ if attributes.key?(:'stream')
195
+ self.stream = attributes[:'stream']
196
+ else
197
+ self.stream = nil
198
+ end
199
+
200
+ if attributes.key?(:'tags')
201
+ if (value = attributes[:'tags']).is_a?(Hash)
202
+ self.tags = value
203
+ end
204
+ else
205
+ self.tags = nil
206
+ end
207
+
208
+ if attributes.key?(:'error')
209
+ self.error = attributes[:'error']
210
+ else
211
+ self.error = nil
212
+ end
163
213
  end
164
214
 
165
215
  # Show invalid properties with the reasons. Usually used together with valid?
@@ -175,6 +225,10 @@ module Parlo
175
225
  invalid_properties.push('invalid value for "to", to cannot be nil.')
176
226
  end
177
227
 
228
+ if @from.nil?
229
+ invalid_properties.push('invalid value for "from", from cannot be nil.')
230
+ end
231
+
178
232
  if @subject.nil?
179
233
  invalid_properties.push('invalid value for "subject", subject cannot be nil.')
180
234
  end
@@ -191,6 +245,14 @@ module Parlo
191
245
  invalid_properties.push('invalid value for "clicked", clicked cannot be nil.')
192
246
  end
193
247
 
248
+ if @stream.nil?
249
+ invalid_properties.push('invalid value for "stream", stream cannot be nil.')
250
+ end
251
+
252
+ if @tags.nil?
253
+ invalid_properties.push('invalid value for "tags", tags cannot be nil.')
254
+ end
255
+
194
256
  invalid_properties
195
257
  end
196
258
 
@@ -200,12 +262,15 @@ module Parlo
200
262
  warn '[DEPRECATED] the `valid?` method is obsolete'
201
263
  return false if @id.nil?
202
264
  return false if @to.nil?
265
+ return false if @from.nil?
203
266
  return false if @subject.nil?
204
267
  return false if @status.nil?
205
268
  status_validator = EnumAttributeValidator.new('String', ["queued", "sent", "delivered", "bounced", "complained", "failed"])
206
269
  return false unless status_validator.valid?(@status)
207
270
  return false if @opened.nil?
208
271
  return false if @clicked.nil?
272
+ return false if @stream.nil?
273
+ return false if @tags.nil?
209
274
  true
210
275
  end
211
276
 
@@ -229,6 +294,16 @@ module Parlo
229
294
  @to = to
230
295
  end
231
296
 
297
+ # Custom attribute writer method with validation
298
+ # @param [Object] from Value to be assigned
299
+ def from=(from)
300
+ if from.nil?
301
+ fail ArgumentError, 'from cannot be nil'
302
+ end
303
+
304
+ @from = from
305
+ end
306
+
232
307
  # Custom attribute writer method with validation
233
308
  # @param [Object] subject Value to be assigned
234
309
  def subject=(subject)
@@ -269,6 +344,26 @@ module Parlo
269
344
  @clicked = clicked
270
345
  end
271
346
 
347
+ # Custom attribute writer method with validation
348
+ # @param [Object] stream Value to be assigned
349
+ def stream=(stream)
350
+ if stream.nil?
351
+ fail ArgumentError, 'stream cannot be nil'
352
+ end
353
+
354
+ @stream = stream
355
+ end
356
+
357
+ # Custom attribute writer method with validation
358
+ # @param [Object] tags Value to be assigned
359
+ def tags=(tags)
360
+ if tags.nil?
361
+ fail ArgumentError, 'tags cannot be nil'
362
+ end
363
+
364
+ @tags = tags
365
+ end
366
+
272
367
  # Checks equality by comparing each attribute.
273
368
  # @param [Object] Object to be compared
274
369
  def ==(o)
@@ -276,12 +371,16 @@ module Parlo
276
371
  self.class == o.class &&
277
372
  id == o.id &&
278
373
  to == o.to &&
374
+ from == o.from &&
279
375
  subject == o.subject &&
280
376
  status == o.status &&
281
377
  opened == o.opened &&
282
378
  clicked == o.clicked &&
283
379
  last_event_at == o.last_event_at &&
284
- created_at == o.created_at
380
+ created_at == o.created_at &&
381
+ stream == o.stream &&
382
+ tags == o.tags &&
383
+ error == o.error
285
384
  end
286
385
 
287
386
  # @see the `==` method
@@ -293,7 +392,7 @@ module Parlo
293
392
  # Calculates hash code according to all attributes.
294
393
  # @return [Integer] Hash code
295
394
  def hash
296
- [id, to, subject, status, opened, clicked, last_event_at, created_at].hash
395
+ [id, to, from, subject, status, opened, clicked, last_event_at, created_at, stream, tags, error].hash
297
396
  end
298
397
 
299
398
  # Builds the object from hash
@@ -3,7 +3,7 @@
3
3
 
4
4
  #The Parlo API sends transactional email and manages the sending domains it authenticates from. Marketing campaigns (audiences, templates, broadcasts) are designed and sent from the Parlo dashboard, not this API — the API is transactional-only at launch. All requests authenticate with a company API key as an HTTP bearer token: `Authorization: Bearer parlo_live_xxx`. Errors return a JSON body of the shape `{ \"message\": string, \"code\": string }`.
5
5
 
6
- The version of the OpenAPI document: 1.0.0
6
+ The version of the OpenAPI document: 1.1.0
7
7
 
8
8
  Generated by: https://openapi-generator.tech
9
9
  Generator version: 7.24.0-SNAPSHOT