pingram 1.0.37 → 1.0.38

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 (42) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +2 -2
  3. data/lib/pingram/api/library_api.rb +2 -2
  4. data/lib/pingram/api/logs_api.rb +61 -0
  5. data/lib/pingram/api/profile_api.rb +0 -66
  6. data/lib/pingram/api/webhooks_api.rb +4 -4
  7. data/lib/pingram/api_client.rb +1 -1
  8. data/lib/pingram/models/{change_email_request.rb → confirm_change_email_request.rb} +19 -19
  9. data/lib/pingram/models/create_library_request.rb +1 -1
  10. data/lib/pingram/models/get_logs_response_messages_inner.rb +4 -0
  11. data/lib/pingram/models/get_logs_response_messages_inner_attachments_inner.rb +52 -4
  12. data/lib/pingram/models/logs_get_response_logs_inner.rb +60 -1
  13. data/lib/pingram/models/start_change_email_request.rb +201 -0
  14. data/lib/pingram/models/webhook_endpoint_upsert_request.rb +1 -1
  15. data/lib/pingram/version.rb +1 -1
  16. data/lib/pingram.rb +2 -1
  17. data/vendor/bundle/ruby/3.2.0/cache/date-3.6.0.gem +0 -0
  18. data/vendor/bundle/ruby/3.2.0/extensions/x86_64-linux/3.2.0/date-3.6.0/date_core.so +0 -0
  19. data/vendor/bundle/ruby/3.2.0/extensions/x86_64-linux/3.2.0/date-3.6.0/gem_make.out +26 -0
  20. data/vendor/bundle/ruby/3.2.0/extensions/x86_64-linux/3.2.0/{date-3.5.1 → date-3.6.0}/mkmf.log +55 -2
  21. data/vendor/bundle/ruby/3.2.0/gems/{date-3.5.1 → date-3.6.0}/ext/date/Makefile +1 -1
  22. data/vendor/bundle/ruby/3.2.0/gems/{date-3.5.1 → date-3.6.0}/ext/date/date_core.c +293 -77
  23. data/vendor/bundle/ruby/3.2.0/gems/{date-3.5.1 → date-3.6.0}/ext/date/date_parse.c +14 -4
  24. data/vendor/bundle/ruby/3.2.0/gems/{date-3.5.1 → date-3.6.0}/ext/date/date_strptime.c +13 -13
  25. data/vendor/bundle/ruby/3.2.0/gems/{date-3.5.1 → date-3.6.0}/ext/date/extconf.rb +6 -0
  26. data/vendor/bundle/ruby/3.2.0/gems/{date-3.5.1 → date-3.6.0}/lib/date.rb +1 -1
  27. data/vendor/bundle/ruby/3.2.0/gems/date-3.6.0/lib/date_core.so +0 -0
  28. data/vendor/bundle/ruby/3.2.0/specifications/{date-3.5.1.gemspec → date-3.6.0.gemspec} +3 -3
  29. metadata +25 -24
  30. data/vendor/bundle/ruby/3.2.0/cache/date-3.5.1.gem +0 -0
  31. data/vendor/bundle/ruby/3.2.0/extensions/x86_64-linux/3.2.0/date-3.5.1/date_core.so +0 -0
  32. data/vendor/bundle/ruby/3.2.0/extensions/x86_64-linux/3.2.0/date-3.5.1/gem_make.out +0 -24
  33. data/vendor/bundle/ruby/3.2.0/gems/date-3.5.1/lib/date_core.so +0 -0
  34. /data/vendor/bundle/ruby/3.2.0/extensions/x86_64-linux/3.2.0/{date-3.5.1 → date-3.6.0}/gem.build_complete +0 -0
  35. /data/vendor/bundle/ruby/3.2.0/gems/{date-3.5.1 → date-3.6.0}/BSDL +0 -0
  36. /data/vendor/bundle/ruby/3.2.0/gems/{date-3.5.1 → date-3.6.0}/COPYING +0 -0
  37. /data/vendor/bundle/ruby/3.2.0/gems/{date-3.5.1 → date-3.6.0}/README.md +0 -0
  38. /data/vendor/bundle/ruby/3.2.0/gems/{date-3.5.1 → date-3.6.0}/ext/date/date_strftime.c +0 -0
  39. /data/vendor/bundle/ruby/3.2.0/gems/{date-3.5.1 → date-3.6.0}/ext/date/date_tmx.h +0 -0
  40. /data/vendor/bundle/ruby/3.2.0/gems/{date-3.5.1 → date-3.6.0}/ext/date/prereq.mk +0 -0
  41. /data/vendor/bundle/ruby/3.2.0/gems/{date-3.5.1 → date-3.6.0}/ext/date/zonetab.h +0 -0
  42. /data/vendor/bundle/ruby/3.2.0/gems/{date-3.5.1 → date-3.6.0}/ext/date/zonetab.list +0 -0
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 72c7ebf52ff9504c319d6ce2a61380c6caa1b1db45b3ac999ad62e10f6df81df
4
- data.tar.gz: f47e1d381c9e1d50e4a3a3ff9ff5ab2dceeec901cf9f06ce667ff9f3fa4a4d79
3
+ metadata.gz: 6ec5493d49a8f9bab8f71746b3ba6d89b6482b3e045559785ee29f4f50381d2b
4
+ data.tar.gz: dd077466c0bb462e879e3c896eda7e5c54b66bbaa709213913b703ee1716469b
5
5
  SHA512:
6
- metadata.gz: df935ca664ef3c1c248651cbed7849dba8f309b6343e075472d8d35f1ddfef879621dae44808160b7db6087229b1ec45aab6b4a075cc4e50cf7f2379b860ba8c
7
- data.tar.gz: 19b0faff8ad1f538cb177d18783d9706be4fff58e7940a0dac9afc101dc09e245bbe4caeaab7fc7bd467a5e94902c33bb76f14e11d935df563c4f6a2c0bbfa3d
6
+ metadata.gz: 970e33fa4adff43a013129f394901bad68a9377a9c9923e02ac03aa37b950906dbc5c39719f8d1ff90af151e5d92474890caaca4fa9ff6108a4b2cf65251fb9a
7
+ data.tar.gz: 791e8d54009c3084df6156930552da132df8901a08f75795ff0167b719262683af36f3e06e9e7ffce9e7560d1db236fa795fcef288f20aec0b11c4caf66b6c94
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- pingram (1.0.37)
4
+ pingram (1.0.38)
5
5
  typhoeus (~> 1.0, >= 1.0.1)
6
6
 
7
7
  GEM
@@ -11,7 +11,7 @@ GEM
11
11
  byebug (13.0.0)
12
12
  reline (>= 0.6.0)
13
13
  coderay (1.1.3)
14
- date (3.5.1)
14
+ date (3.6.0)
15
15
  diff-lcs (1.6.2)
16
16
  ethon (0.18.0)
17
17
  ffi (>= 1.15.0)
@@ -19,7 +19,7 @@ module Pingram
19
19
  def initialize(api_client = ApiClient.default)
20
20
  @api_client = api_client
21
21
  end
22
- # Create an upload slot in the account library. PUT the file to the returned uploadUrl with the same Content-Type, then use the returned url in emails and the editor.
22
+ # Create an upload slot in the account library. contentType must be image/png, image/jpeg, image/gif, or image/webp. PUT the file to the returned uploadUrl with that Content-Type, then use the returned url in emails and the editor.
23
23
  # @param use_case [String] Library use-case
24
24
  # @param create_library_request [CreateLibraryRequest]
25
25
  # @param [Hash] opts the optional parameters
@@ -29,7 +29,7 @@ module Pingram
29
29
  data
30
30
  end
31
31
 
32
- # Create an upload slot in the account library. PUT the file to the returned uploadUrl with the same Content-Type, then use the returned url in emails and the editor.
32
+ # Create an upload slot in the account library. contentType must be image/png, image/jpeg, image/gif, or image/webp. PUT the file to the returned uploadUrl with that Content-Type, then use the returned url in emails and the editor.
33
33
  # @param use_case [String] Library use-case
34
34
  # @param create_library_request [CreateLibraryRequest]
35
35
  # @param [Hash] opts the optional parameters
@@ -257,6 +257,67 @@ module Pingram
257
257
  return data, status_code, headers
258
258
  end
259
259
 
260
+ # Resend the EMAIL_INBOUND webhook for one inbound email. Uses the original tracking ID and does not count another email. Refused when the message is older than 30 days.
261
+ # @param tracking_id [String] Tracking ID of the inbound email
262
+ # @param [Hash] opts the optional parameters
263
+ # @return [MessageResponse]
264
+ def logs_retry_inbound(tracking_id, opts = {})
265
+ data, _status_code, _headers = logs_retry_inbound_with_http_info(tracking_id, opts)
266
+ data
267
+ end
268
+
269
+ # Resend the EMAIL_INBOUND webhook for one inbound email. Uses the original tracking ID and does not count another email. Refused when the message is older than 30 days.
270
+ # @param tracking_id [String] Tracking ID of the inbound email
271
+ # @param [Hash] opts the optional parameters
272
+ # @return [Array<(MessageResponse, Integer, Hash)>] MessageResponse data, response status code and response headers
273
+ def logs_retry_inbound_with_http_info(tracking_id, opts = {})
274
+ if @api_client.config.debugging
275
+ @api_client.config.logger.debug 'Calling API: LogsApi.logs_retry_inbound ...'
276
+ end
277
+ # verify the required parameter 'tracking_id' is set
278
+ if @api_client.config.client_side_validation && tracking_id.nil?
279
+ fail ArgumentError, "Missing the required parameter 'tracking_id' when calling LogsApi.logs_retry_inbound"
280
+ end
281
+ # resource path
282
+ local_var_path = '/logs/retry/{trackingId}'.sub('{' + 'trackingId' + '}', CGI.escape(tracking_id.to_s))
283
+
284
+ # query parameters
285
+ query_params = opts[:query_params] || {}
286
+
287
+ # header parameters
288
+ header_params = opts[:header_params] || {}
289
+ # HTTP header 'Accept' (if needed)
290
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
291
+
292
+ # form parameters
293
+ form_params = opts[:form_params] || {}
294
+
295
+ # http body (model)
296
+ post_body = opts[:debug_body]
297
+
298
+ # return_type
299
+ return_type = opts[:debug_return_type] || 'MessageResponse'
300
+
301
+ # auth_names (apiKey last so Bearer wins when multiple schemes set Authorization)
302
+ auth_names = opts[:debug_auth_names] || ['endUserHashed', 'endUser', 'clientCredentials', 'apiKey']
303
+
304
+ new_options = opts.merge(
305
+ :operation => :"LogsApi.logs_retry_inbound",
306
+ :header_params => header_params,
307
+ :query_params => query_params,
308
+ :form_params => form_params,
309
+ :body => post_body,
310
+ :auth_names => auth_names,
311
+ :return_type => return_type
312
+ )
313
+
314
+ data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
315
+ if @api_client.config.debugging
316
+ @api_client.config.logger.debug "API called: LogsApi#logs_retry_inbound\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
317
+ end
318
+ return data, status_code, headers
319
+ end
320
+
260
321
  # Start an asynchronous log search over a date range. Returns a `queryId`; poll with Get Log Query Results until status is Complete.
261
322
  # @param log_query_post_body [LogQueryPostBody]
262
323
  # @param [Hash] opts the optional parameters
@@ -85,72 +85,6 @@ module Pingram
85
85
  return data, status_code, headers
86
86
  end
87
87
 
88
- # Change the email address of the authenticated user
89
- # @param change_email_request [ChangeEmailRequest]
90
- # @param [Hash] opts the optional parameters
91
- # @return [SuccessResponse]
92
- def profile_change_email(change_email_request, opts = {})
93
- data, _status_code, _headers = profile_change_email_with_http_info(change_email_request, opts)
94
- data
95
- end
96
-
97
- # Change the email address of the authenticated user
98
- # @param change_email_request [ChangeEmailRequest]
99
- # @param [Hash] opts the optional parameters
100
- # @return [Array<(SuccessResponse, Integer, Hash)>] SuccessResponse data, response status code and response headers
101
- def profile_change_email_with_http_info(change_email_request, opts = {})
102
- if @api_client.config.debugging
103
- @api_client.config.logger.debug 'Calling API: ProfileApi.profile_change_email ...'
104
- end
105
- # verify the required parameter 'change_email_request' is set
106
- if @api_client.config.client_side_validation && change_email_request.nil?
107
- fail ArgumentError, "Missing the required parameter 'change_email_request' when calling ProfileApi.profile_change_email"
108
- end
109
- # resource path
110
- local_var_path = '/profile/change-email'
111
-
112
- # query parameters
113
- query_params = opts[:query_params] || {}
114
-
115
- # header parameters
116
- header_params = opts[:header_params] || {}
117
- # HTTP header 'Accept' (if needed)
118
- header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
119
- # HTTP header 'Content-Type'
120
- content_type = @api_client.select_header_content_type(['application/json'])
121
- if !content_type.nil?
122
- header_params['Content-Type'] = content_type
123
- end
124
-
125
- # form parameters
126
- form_params = opts[:form_params] || {}
127
-
128
- # http body (model)
129
- post_body = opts[:debug_body] || @api_client.object_to_http_body(change_email_request)
130
-
131
- # return_type
132
- return_type = opts[:debug_return_type] || 'SuccessResponse'
133
-
134
- # auth_names (apiKey last so Bearer wins when multiple schemes set Authorization)
135
- auth_names = opts[:debug_auth_names] || ['endUserHashed', 'endUser', 'clientCredentials', 'apiKey']
136
-
137
- new_options = opts.merge(
138
- :operation => :"ProfileApi.profile_change_email",
139
- :header_params => header_params,
140
- :query_params => query_params,
141
- :form_params => form_params,
142
- :body => post_body,
143
- :auth_names => auth_names,
144
- :return_type => return_type
145
- )
146
-
147
- data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
148
- if @api_client.config.debugging
149
- @api_client.config.logger.debug "API called: ProfileApi#profile_change_email\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
150
- end
151
- return data, status_code, headers
152
- end
153
-
154
88
  # Permanently delete the authenticated user's account
155
89
  # @param delete_account_request [DeleteAccountRequest]
156
90
  # @param [Hash] opts the optional parameters
@@ -19,7 +19,7 @@ module Pingram
19
19
  def initialize(api_client = ApiClient.default)
20
20
  @api_client = api_client
21
21
  end
22
- # Create a webhook endpoint. Pingram POSTs signed JSON to the URL when one of the subscribed events happens. The response includes id and a signing secret starting with pingram_whsecret_. Save it and verify the X-Pingram-Signature header. Updates keep this secret. At most 10 endpoints per account. The URL must be http or https and should return 2xx.
22
+ # Create a webhook endpoint. Pingram POSTs signed JSON to the URL when one of the subscribed events happens. The response includes id and a signing secret starting with pingram_whsecret_. Save it and verify the X-Pingram-Signature header. Updates keep this secret. At most 10 endpoints per account. The URL must be a public HTTPS URL and should return 2xx.
23
23
  # @param webhook_endpoint_upsert_request [WebhookEndpointUpsertRequest]
24
24
  # @param [Hash] opts the optional parameters
25
25
  # @return [WebhookEndpoint]
@@ -28,7 +28,7 @@ module Pingram
28
28
  data
29
29
  end
30
30
 
31
- # Create a webhook endpoint. Pingram POSTs signed JSON to the URL when one of the subscribed events happens. The response includes id and a signing secret starting with pingram_whsecret_. Save it and verify the X-Pingram-Signature header. Updates keep this secret. At most 10 endpoints per account. The URL must be http or https and should return 2xx.
31
+ # Create a webhook endpoint. Pingram POSTs signed JSON to the URL when one of the subscribed events happens. The response includes id and a signing secret starting with pingram_whsecret_. Save it and verify the X-Pingram-Signature header. Updates keep this secret. At most 10 endpoints per account. The URL must be a public HTTPS URL and should return 2xx.
32
32
  # @param webhook_endpoint_upsert_request [WebhookEndpointUpsertRequest]
33
33
  # @param [Hash] opts the optional parameters
34
34
  # @return [Array<(WebhookEndpoint, Integer, Hash)>] WebhookEndpoint data, response status code and response headers
@@ -201,7 +201,7 @@ module Pingram
201
201
  return data, status_code, headers
202
202
  end
203
203
 
204
- # Replace one webhook endpoint's URL and its full event subscription. endpointId comes from list or create. The signing secret stays the same. events is the complete set; omitting an event unsubscribes it. The URL must be http or https.
204
+ # Replace one webhook endpoint's URL and its full event subscription. endpointId comes from list or create. The signing secret stays the same. events is the complete set; omitting an event unsubscribes it. The URL must be a public HTTPS URL.
205
205
  # @param endpoint_id [String] Id of the webhook endpoint, from list or create.
206
206
  # @param webhook_endpoint_upsert_request [WebhookEndpointUpsertRequest]
207
207
  # @param [Hash] opts the optional parameters
@@ -211,7 +211,7 @@ module Pingram
211
211
  data
212
212
  end
213
213
 
214
- # Replace one webhook endpoint&#39;s URL and its full event subscription. endpointId comes from list or create. The signing secret stays the same. events is the complete set; omitting an event unsubscribes it. The URL must be http or https.
214
+ # Replace one webhook endpoint&#39;s URL and its full event subscription. endpointId comes from list or create. The signing secret stays the same. events is the complete set; omitting an event unsubscribes it. The URL must be a public HTTPS URL.
215
215
  # @param endpoint_id [String] Id of the webhook endpoint, from list or create.
216
216
  # @param webhook_endpoint_upsert_request [WebhookEndpointUpsertRequest]
217
217
  # @param [Hash] opts the optional parameters
@@ -32,7 +32,7 @@ module Pingram
32
32
  # @option config [Configuration] Configuration for initializing the object, default to Configuration.default
33
33
  def initialize(config = Configuration.default)
34
34
  @config = config
35
- @user_agent = "pingram-ruby/1.0.37"
35
+ @user_agent = "pingram-ruby/1.0.38"
36
36
  @default_headers = {
37
37
  'Content-Type' => 'application/json',
38
38
  'User-Agent' => @user_agent
@@ -14,13 +14,13 @@ require 'date'
14
14
  require 'time'
15
15
 
16
16
  module Pingram
17
- class ChangeEmailRequest < ApiModelBase
18
- attr_accessor :new_email
17
+ class ConfirmChangeEmailRequest < ApiModelBase
18
+ attr_accessor :code
19
19
 
20
20
  # Attribute mapping from ruby-style variable name to JSON key.
21
21
  def self.attribute_map
22
22
  {
23
- :'new_email' => :'newEmail'
23
+ :'code' => :'code'
24
24
  }
25
25
  end
26
26
 
@@ -37,7 +37,7 @@ module Pingram
37
37
  # Attribute type mapping.
38
38
  def self.openapi_types
39
39
  {
40
- :'new_email' => :'String'
40
+ :'code' => :'String'
41
41
  }
42
42
  end
43
43
 
@@ -51,22 +51,22 @@ module Pingram
51
51
  # @param [Hash] attributes Model attributes in the form of hash
52
52
  def initialize(attributes = {})
53
53
  if (!attributes.is_a?(Hash))
54
- fail ArgumentError, "The input argument (attributes) must be a hash in `Pingram::ChangeEmailRequest` initialize method"
54
+ fail ArgumentError, "The input argument (attributes) must be a hash in `Pingram::ConfirmChangeEmailRequest` initialize method"
55
55
  end
56
56
 
57
57
  # check to see if the attribute exists and convert string to symbol for hash key
58
58
  acceptable_attribute_map = self.class.acceptable_attribute_map
59
59
  attributes = attributes.each_with_object({}) { |(k, v), h|
60
60
  if (!acceptable_attribute_map.key?(k.to_sym))
61
- fail ArgumentError, "`#{k}` is not a valid attribute in `Pingram::ChangeEmailRequest`. Please check the name to make sure it's valid. List of attributes: " + acceptable_attribute_map.keys.inspect
61
+ fail ArgumentError, "`#{k}` is not a valid attribute in `Pingram::ConfirmChangeEmailRequest`. Please check the name to make sure it's valid. List of attributes: " + acceptable_attribute_map.keys.inspect
62
62
  end
63
63
  h[k.to_sym] = v
64
64
  }
65
65
 
66
- if attributes.key?(:'new_email')
67
- self.new_email = attributes[:'new_email']
66
+ if attributes.key?(:'code')
67
+ self.code = attributes[:'code']
68
68
  else
69
- self.new_email = nil
69
+ self.code = nil
70
70
  end
71
71
  end
72
72
 
@@ -75,8 +75,8 @@ module Pingram
75
75
  def list_invalid_properties
76
76
  warn '[DEPRECATED] the `list_invalid_properties` method is obsolete'
77
77
  invalid_properties = Array.new
78
- if @new_email.nil?
79
- invalid_properties.push('invalid value for "new_email", new_email cannot be nil.')
78
+ if @code.nil?
79
+ invalid_properties.push('invalid value for "code", code cannot be nil.')
80
80
  end
81
81
 
82
82
  invalid_properties
@@ -86,18 +86,18 @@ module Pingram
86
86
  # @return true if the model is valid
87
87
  def valid?
88
88
  warn '[DEPRECATED] the `valid?` method is obsolete'
89
- return false if @new_email.nil?
89
+ return false if @code.nil?
90
90
  true
91
91
  end
92
92
 
93
93
  # Custom attribute writer method with validation
94
- # @param [Object] new_email Value to be assigned
95
- def new_email=(new_email)
96
- if new_email.nil?
97
- fail ArgumentError, 'new_email cannot be nil'
94
+ # @param [Object] code Value to be assigned
95
+ def code=(code)
96
+ if code.nil?
97
+ fail ArgumentError, 'code cannot be nil'
98
98
  end
99
99
 
100
- @new_email = new_email
100
+ @code = code
101
101
  end
102
102
 
103
103
  # Checks equality by comparing each attribute.
@@ -105,7 +105,7 @@ module Pingram
105
105
  def ==(o)
106
106
  return true if self.equal?(o)
107
107
  self.class == o.class &&
108
- new_email == o.new_email
108
+ code == o.code
109
109
  end
110
110
 
111
111
  # @see the `==` method
@@ -117,7 +117,7 @@ module Pingram
117
117
  # Calculates hash code according to all attributes.
118
118
  # @return [Integer] Hash code
119
119
  def hash
120
- [new_email].hash
120
+ [code].hash
121
121
  end
122
122
 
123
123
  # Builds the object from hash
@@ -18,7 +18,7 @@ module Pingram
18
18
  # Original filename, including extension (e.g. hero.png).
19
19
  attr_accessor :filename
20
20
 
21
- # MIME type of the file that will be uploaded to the returned URL.
21
+ # Image MIME type. One of image/png, image/jpeg, image/gif, or image/webp.
22
22
  attr_accessor :content_type
23
23
 
24
24
  # Attribute mapping from ruby-style variable name to JSON key.
@@ -23,6 +23,7 @@ module Pingram
23
23
 
24
24
  attr_accessor :epoch_ms
25
25
 
26
+ # Address that received the mail. Same value as `matched.email` on the EMAIL_INBOUND webhook, including when that address was only in Cc or Bcc.
26
27
  attr_accessor :inbox
27
28
 
28
29
  attr_accessor :from
@@ -31,10 +32,13 @@ module Pingram
31
32
 
32
33
  attr_accessor :subject
33
34
 
35
+ # Original To header addresses. Not the address that received the mail.
34
36
  attr_accessor :to
35
37
 
38
+ # Original Cc header addresses.
36
39
  attr_accessor :cc
37
40
 
41
+ # Bcc header addresses still on the delivered message. Usually omitted, because the Bcc header is removed before delivery.
38
42
  attr_accessor :bcc
39
43
 
40
44
  attr_accessor :reply_to
@@ -15,21 +15,51 @@ require 'time'
15
15
 
16
16
  module Pingram
17
17
  class GetLogsResponseMessagesInnerAttachmentsInner < ApiModelBase
18
+ # Original filename from the message.
18
19
  attr_accessor :filename
19
20
 
21
+ # MIME type of the file.
20
22
  attr_accessor :content_type
21
23
 
24
+ # Size in bytes. This response does not include the file bytes.
22
25
  attr_accessor :size
23
26
 
27
+ # Content-ID with angle brackets removed, so it matches `cid:` references in `bodyHtml`. Omitted when the part has no Content-ID.
24
28
  attr_accessor :content_id
25
29
 
30
+ # `inline` when the HTML body references this file; `attachment` when it is a separate file. Omitted when the message does not say which.
31
+ attr_accessor :content_disposition
32
+
33
+ class EnumAttributeValidator
34
+ attr_reader :datatype
35
+ attr_reader :allowable_values
36
+
37
+ def initialize(datatype, allowable_values)
38
+ @allowable_values = allowable_values.map do |value|
39
+ case datatype.to_s
40
+ when /Integer/i
41
+ value.to_i
42
+ when /Float/i
43
+ value.to_f
44
+ else
45
+ value
46
+ end
47
+ end
48
+ end
49
+
50
+ def valid?(value)
51
+ !value || allowable_values.include?(value)
52
+ end
53
+ end
54
+
26
55
  # Attribute mapping from ruby-style variable name to JSON key.
27
56
  def self.attribute_map
28
57
  {
29
58
  :'filename' => :'filename',
30
59
  :'content_type' => :'contentType',
31
60
  :'size' => :'size',
32
- :'content_id' => :'contentId'
61
+ :'content_id' => :'contentId',
62
+ :'content_disposition' => :'contentDisposition'
33
63
  }
34
64
  end
35
65
 
@@ -49,7 +79,8 @@ module Pingram
49
79
  :'filename' => :'String',
50
80
  :'content_type' => :'String',
51
81
  :'size' => :'Float',
52
- :'content_id' => :'String'
82
+ :'content_id' => :'String',
83
+ :'content_disposition' => :'String'
53
84
  }
54
85
  end
55
86
 
@@ -96,6 +127,10 @@ module Pingram
96
127
  if attributes.key?(:'content_id')
97
128
  self.content_id = attributes[:'content_id']
98
129
  end
130
+
131
+ if attributes.key?(:'content_disposition')
132
+ self.content_disposition = attributes[:'content_disposition']
133
+ end
99
134
  end
100
135
 
101
136
  # Show invalid properties with the reasons. Usually used together with valid?
@@ -125,6 +160,8 @@ module Pingram
125
160
  return false if @filename.nil?
126
161
  return false if @content_type.nil?
127
162
  return false if @size.nil?
163
+ content_disposition_validator = EnumAttributeValidator.new('String', ["inline", "attachment"])
164
+ return false unless content_disposition_validator.valid?(@content_disposition)
128
165
  true
129
166
  end
130
167
 
@@ -158,6 +195,16 @@ module Pingram
158
195
  @size = size
159
196
  end
160
197
 
198
+ # Custom attribute writer method checking allowed values (enum).
199
+ # @param [Object] content_disposition Object to be assigned
200
+ def content_disposition=(content_disposition)
201
+ validator = EnumAttributeValidator.new('String', ["inline", "attachment"])
202
+ unless validator.valid?(content_disposition)
203
+ fail ArgumentError, "invalid value for \"content_disposition\", must be one of #{validator.allowable_values}."
204
+ end
205
+ @content_disposition = content_disposition
206
+ end
207
+
161
208
  # Checks equality by comparing each attribute.
162
209
  # @param [Object] Object to be compared
163
210
  def ==(o)
@@ -166,7 +213,8 @@ module Pingram
166
213
  filename == o.filename &&
167
214
  content_type == o.content_type &&
168
215
  size == o.size &&
169
- content_id == o.content_id
216
+ content_id == o.content_id &&
217
+ content_disposition == o.content_disposition
170
218
  end
171
219
 
172
220
  # @see the `==` method
@@ -178,7 +226,7 @@ module Pingram
178
226
  # Calculates hash code according to all attributes.
179
227
  # @return [Integer] Hash code
180
228
  def hash
181
- [filename, content_type, size, content_id].hash
229
+ [filename, content_type, size, content_id, content_disposition].hash
182
230
  end
183
231
 
184
232
  # Builds the object from hash
@@ -122,42 +122,73 @@ module Pingram
122
122
 
123
123
  attr_accessor :email_clicked_webhook_res
124
124
 
125
+ # When the message was accepted, ISO 8601. Log order and the 30-day resend window use this time.
125
126
  attr_accessor :email_inbound_at
126
127
 
128
+ # Sender email address.
127
129
  attr_accessor :email_inbound_from
128
130
 
131
+ # Sender display name, when the From header includes one.
129
132
  attr_accessor :email_inbound_from_name
130
133
 
134
+ # Comma-separated To header addresses. This is the header, not necessarily the Pingram inbox.
131
135
  attr_accessor :email_inbound_to
132
136
 
137
+ # Comma-separated CC header addresses.
133
138
  attr_accessor :email_inbound_cc
134
139
 
140
+ # Comma-separated BCC header addresses. Often empty because that header is stripped before delivery.
135
141
  attr_accessor :email_inbound_bcc
136
142
 
143
+ # Reply-To header address.
137
144
  attr_accessor :email_inbound_reply_to
138
145
 
146
+ # Address that received the mail. Same value as `matched.email` on the EMAIL_INBOUND webhook, including when that address was only in Cc or Bcc.
139
147
  attr_accessor :email_inbound_inbox
140
148
 
149
+ # Display name of `email_inbound_inbox` when the headers include one. Same value as `matched.name`. Omitted when that address has no display name.
150
+ attr_accessor :email_inbound_to_name
151
+
152
+ # Sender Date header, ISO 8601. Omitted when that header is missing or invalid.
153
+ attr_accessor :email_inbound_sent_at
154
+
155
+ # Key used to resend this inbound email for 30 days.
156
+ attr_accessor :email_inbound_retry_key
157
+
158
+ # User id from the original notification when this mail is a reply to one.
159
+ attr_accessor :email_inbound_user_id
160
+
161
+ # Subject line.
141
162
  attr_accessor :email_inbound_subject
142
163
 
164
+ # Plain-text body.
143
165
  attr_accessor :email_inbound_body_text
144
166
 
167
+ # HTML body. Inline images use `cid:` values that match attachment content IDs on the webhook payload.
145
168
  attr_accessor :email_inbound_body_html
146
169
 
170
+ # True when the message includes at least one attachment.
147
171
  attr_accessor :email_inbound_has_attachments
148
172
 
173
+ # Number of attachments. File bytes are not stored on this log.
149
174
  attr_accessor :email_inbound_attachment_count
150
175
 
176
+ # Message-ID header. Use it to thread later replies.
151
177
  attr_accessor :email_inbound_message_id
152
178
 
179
+ # In-Reply-To header: the Message-ID this mail replies to.
153
180
  attr_accessor :email_inbound_in_reply_to
154
181
 
182
+ # References header: the chain of Message-IDs in the thread.
155
183
  attr_accessor :email_inbound_references
156
184
 
185
+ # True when an EMAIL_INBOUND webhook endpoint returned a 2xx response.
157
186
  attr_accessor :email_inbound_webhook_delivered
158
187
 
188
+ # JSON delivery result for each EMAIL_INBOUND endpoint.
159
189
  attr_accessor :email_inbound_webhook_res
160
190
 
191
+ # How the inbox was matched: `reply` for a reply to a sent notification, `builtin` for a Pingram inbox, or `custom` for a custom domain.
161
192
  attr_accessor :email_inbound_resolution_type
162
193
 
163
194
  attr_accessor :sms_inbound_at
@@ -457,6 +488,10 @@ module Pingram
457
488
  :'email_inbound_bcc' => :'email_inbound_bcc',
458
489
  :'email_inbound_reply_to' => :'email_inbound_reply_to',
459
490
  :'email_inbound_inbox' => :'email_inbound_inbox',
491
+ :'email_inbound_to_name' => :'email_inbound_to_name',
492
+ :'email_inbound_sent_at' => :'email_inbound_sent_at',
493
+ :'email_inbound_retry_key' => :'email_inbound_retry_key',
494
+ :'email_inbound_user_id' => :'email_inbound_user_id',
460
495
  :'email_inbound_subject' => :'email_inbound_subject',
461
496
  :'email_inbound_body_text' => :'email_inbound_body_text',
462
497
  :'email_inbound_body_html' => :'email_inbound_body_html',
@@ -647,6 +682,10 @@ module Pingram
647
682
  :'email_inbound_bcc' => :'String',
648
683
  :'email_inbound_reply_to' => :'String',
649
684
  :'email_inbound_inbox' => :'String',
685
+ :'email_inbound_to_name' => :'String',
686
+ :'email_inbound_sent_at' => :'String',
687
+ :'email_inbound_retry_key' => :'String',
688
+ :'email_inbound_user_id' => :'String',
650
689
  :'email_inbound_subject' => :'String',
651
690
  :'email_inbound_body_text' => :'String',
652
691
  :'email_inbound_body_html' => :'String',
@@ -1033,6 +1072,22 @@ module Pingram
1033
1072
  self.email_inbound_inbox = attributes[:'email_inbound_inbox']
1034
1073
  end
1035
1074
 
1075
+ if attributes.key?(:'email_inbound_to_name')
1076
+ self.email_inbound_to_name = attributes[:'email_inbound_to_name']
1077
+ end
1078
+
1079
+ if attributes.key?(:'email_inbound_sent_at')
1080
+ self.email_inbound_sent_at = attributes[:'email_inbound_sent_at']
1081
+ end
1082
+
1083
+ if attributes.key?(:'email_inbound_retry_key')
1084
+ self.email_inbound_retry_key = attributes[:'email_inbound_retry_key']
1085
+ end
1086
+
1087
+ if attributes.key?(:'email_inbound_user_id')
1088
+ self.email_inbound_user_id = attributes[:'email_inbound_user_id']
1089
+ end
1090
+
1036
1091
  if attributes.key?(:'email_inbound_subject')
1037
1092
  self.email_inbound_subject = attributes[:'email_inbound_subject']
1038
1093
  end
@@ -1897,6 +1952,10 @@ module Pingram
1897
1952
  email_inbound_bcc == o.email_inbound_bcc &&
1898
1953
  email_inbound_reply_to == o.email_inbound_reply_to &&
1899
1954
  email_inbound_inbox == o.email_inbound_inbox &&
1955
+ email_inbound_to_name == o.email_inbound_to_name &&
1956
+ email_inbound_sent_at == o.email_inbound_sent_at &&
1957
+ email_inbound_retry_key == o.email_inbound_retry_key &&
1958
+ email_inbound_user_id == o.email_inbound_user_id &&
1900
1959
  email_inbound_subject == o.email_inbound_subject &&
1901
1960
  email_inbound_body_text == o.email_inbound_body_text &&
1902
1961
  email_inbound_body_html == o.email_inbound_body_html &&
@@ -2021,7 +2080,7 @@ module Pingram
2021
2080
  # Calculates hash code according to all attributes.
2022
2081
  # @return [Integer] Hash code
2023
2082
  def hash
2024
- [received_at, type, env_id, client_id, agent, ip, request, test, tracking_id, account_id, failed_at, failed_code, failed_internal, inapp_sent_at, inapp_sent_after, inapp_delivered_at, inapp_delivered_after, inapp_failed_at, inapp_failed_code, inapp_failed_internal, mobile_push_failed_at, mobile_push_failed_code, mobile_push_failed_token, mobile_push_failed_internal, mobile_push_sent_at, mobile_push_sent_after, mobile_push_sent_token, mobile_push_delivered_at, mobile_push_delivered_after, email_sent_at, email_sent_message_id, email_sent_after, email_preview, email_delivered_at, email_delivered_recipients, email_delivered_after, email_delivered_webhook_res, email_failed_at, email_failed_code, email_failed_recipient, email_failed_diagnostic_code, email_failed_internal, email_failed_webhook_res, email_opened_at, email_opened_user_agent, email_opened_ip, email_opened_webhook_res, email_clicked_at, email_clicked_user_agent, email_clicked_ip, email_clicked_link, email_clicked_link_tags, email_clicked_webhook_res, email_inbound_at, email_inbound_from, email_inbound_from_name, email_inbound_to, email_inbound_cc, email_inbound_bcc, email_inbound_reply_to, email_inbound_inbox, email_inbound_subject, email_inbound_body_text, email_inbound_body_html, email_inbound_has_attachments, email_inbound_attachment_count, email_inbound_message_id, email_inbound_in_reply_to, email_inbound_references, email_inbound_webhook_delivered, email_inbound_webhook_res, email_inbound_resolution_type, sms_inbound_at, sms_inbound_from, sms_inbound_to, sms_inbound_text, sms_inbound_webhook_delivered, sms_inbound_webhook_res, sms_inbound_media, sms_replied_at, sms_replied_to, sms_replied_text, sms_replied_segments, sms_replied_encoding, sms_unsubscribe_at, sms_unsubscribe_from, sms_unsubscribe_keyword, sms_unsubscribe_webhook_delivered, sms_unsubscribe_webhook_res, sms_subscribe_at, sms_subscribe_from, sms_subscribe_keyword, sms_subscribe_webhook_delivered, sms_subscribe_webhook_res, web_push_sent_token, web_push_sent_at, web_push_sent_after, web_push_delivered_at, web_push_delivered_after, web_push_delivered_token, web_push_delivered_internal, web_push_failed_at, web_push_failed_token, web_push_failed_code, web_push_failed_internal, processed_at, ignored, scheduled_for, user_id, user_email, user_number, email_routing, email_routing_reason, sms_routing, sms_routing_reason, web_push_routing, web_push_routing_reason, mobile_push_routing, mobile_push_routing_reason, call_routing, call_routing_reason, inapp_routing, inapp_routing_reason, slack_routing, slack_routing_reason, sms_preview, call_preview, web_push_preview, mobile_push_preview, slack_preview, inapp_preview, slack_sent_at, slack_sent_after, slack_delivered_at, slack_delivered_after, slack_delivered_internal, slack_failed_at, slack_failed_code, slack_failed_internal, call_sent_at, call_sent_after, call_sent_from, call_delivered_at, call_delivered_after, call_delivered_code, call_delivered_cost_internal, call_delivered_cost, call_failed_at, call_failed_code, call_failed_internal, sms_failed_at, sms_failed_code, sms_failed_internal, sms_sent_at, sms_sent_after, sms_sent_from, sms_sent_carrier, sms_sent_line_type, sms_sent_encoding, sms_sent_segments, sms_sent_parts, sms_sent_cost, sms_sent_country, sms_sent_message_id, sms_sent_mms, sms_carrier_cost_internal, sms_carrier_fee_internal, sms_rate_internal, sms_delivered_at, sms_delivered_after, sms_delivered_cost_internal, schedule_updated_at, schedule_updated_to, schedule_deleted_at].hash
2083
+ [received_at, type, env_id, client_id, agent, ip, request, test, tracking_id, account_id, failed_at, failed_code, failed_internal, inapp_sent_at, inapp_sent_after, inapp_delivered_at, inapp_delivered_after, inapp_failed_at, inapp_failed_code, inapp_failed_internal, mobile_push_failed_at, mobile_push_failed_code, mobile_push_failed_token, mobile_push_failed_internal, mobile_push_sent_at, mobile_push_sent_after, mobile_push_sent_token, mobile_push_delivered_at, mobile_push_delivered_after, email_sent_at, email_sent_message_id, email_sent_after, email_preview, email_delivered_at, email_delivered_recipients, email_delivered_after, email_delivered_webhook_res, email_failed_at, email_failed_code, email_failed_recipient, email_failed_diagnostic_code, email_failed_internal, email_failed_webhook_res, email_opened_at, email_opened_user_agent, email_opened_ip, email_opened_webhook_res, email_clicked_at, email_clicked_user_agent, email_clicked_ip, email_clicked_link, email_clicked_link_tags, email_clicked_webhook_res, email_inbound_at, email_inbound_from, email_inbound_from_name, email_inbound_to, email_inbound_cc, email_inbound_bcc, email_inbound_reply_to, email_inbound_inbox, email_inbound_to_name, email_inbound_sent_at, email_inbound_retry_key, email_inbound_user_id, email_inbound_subject, email_inbound_body_text, email_inbound_body_html, email_inbound_has_attachments, email_inbound_attachment_count, email_inbound_message_id, email_inbound_in_reply_to, email_inbound_references, email_inbound_webhook_delivered, email_inbound_webhook_res, email_inbound_resolution_type, sms_inbound_at, sms_inbound_from, sms_inbound_to, sms_inbound_text, sms_inbound_webhook_delivered, sms_inbound_webhook_res, sms_inbound_media, sms_replied_at, sms_replied_to, sms_replied_text, sms_replied_segments, sms_replied_encoding, sms_unsubscribe_at, sms_unsubscribe_from, sms_unsubscribe_keyword, sms_unsubscribe_webhook_delivered, sms_unsubscribe_webhook_res, sms_subscribe_at, sms_subscribe_from, sms_subscribe_keyword, sms_subscribe_webhook_delivered, sms_subscribe_webhook_res, web_push_sent_token, web_push_sent_at, web_push_sent_after, web_push_delivered_at, web_push_delivered_after, web_push_delivered_token, web_push_delivered_internal, web_push_failed_at, web_push_failed_token, web_push_failed_code, web_push_failed_internal, processed_at, ignored, scheduled_for, user_id, user_email, user_number, email_routing, email_routing_reason, sms_routing, sms_routing_reason, web_push_routing, web_push_routing_reason, mobile_push_routing, mobile_push_routing_reason, call_routing, call_routing_reason, inapp_routing, inapp_routing_reason, slack_routing, slack_routing_reason, sms_preview, call_preview, web_push_preview, mobile_push_preview, slack_preview, inapp_preview, slack_sent_at, slack_sent_after, slack_delivered_at, slack_delivered_after, slack_delivered_internal, slack_failed_at, slack_failed_code, slack_failed_internal, call_sent_at, call_sent_after, call_sent_from, call_delivered_at, call_delivered_after, call_delivered_code, call_delivered_cost_internal, call_delivered_cost, call_failed_at, call_failed_code, call_failed_internal, sms_failed_at, sms_failed_code, sms_failed_internal, sms_sent_at, sms_sent_after, sms_sent_from, sms_sent_carrier, sms_sent_line_type, sms_sent_encoding, sms_sent_segments, sms_sent_parts, sms_sent_cost, sms_sent_country, sms_sent_message_id, sms_sent_mms, sms_carrier_cost_internal, sms_carrier_fee_internal, sms_rate_internal, sms_delivered_at, sms_delivered_after, sms_delivered_cost_internal, schedule_updated_at, schedule_updated_to, schedule_deleted_at].hash
2025
2084
  end
2026
2085
 
2027
2086
  # Builds the object from hash