mailslurp_client 12.7.0 → 12.8.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,299 @@
1
+ =begin
2
+ #MailSlurp API
3
+
4
+ #MailSlurp is an API for sending and receiving emails from dynamically allocated email addresses. It's designed for developers and QA teams to test applications, process inbound emails, send templated notifications, attachments, and more. ## Resources - [Homepage](https://www.mailslurp.com) - Get an [API KEY](https://app.mailslurp.com/sign-up/) - Generated [SDK Clients](https://www.mailslurp.com/docs/) - [Examples](https://github.com/mailslurp/examples) repository
5
+
6
+ The version of the OpenAPI document: 6.5.2
7
+
8
+ Generated by: https://openapi-generator.tech
9
+ OpenAPI Generator version: 4.3.1
10
+
11
+ =end
12
+
13
+ require 'date'
14
+
15
+ module MailSlurpClient
16
+ # Paginated bounced recipients. Page index starts at zero. Projection results may omit larger entity fields. For fetching a full entity use the projection ID with individual method calls.
17
+ class PageBouncedRecipients
18
+ attr_accessor :content
19
+
20
+ attr_accessor :empty
21
+
22
+ attr_accessor :first
23
+
24
+ attr_accessor :last
25
+
26
+ attr_accessor :number
27
+
28
+ attr_accessor :number_of_elements
29
+
30
+ attr_accessor :pageable
31
+
32
+ attr_accessor :size
33
+
34
+ attr_accessor :sort
35
+
36
+ attr_accessor :total_elements
37
+
38
+ attr_accessor :total_pages
39
+
40
+ # Attribute mapping from ruby-style variable name to JSON key.
41
+ def self.attribute_map
42
+ {
43
+ :'content' => :'content',
44
+ :'empty' => :'empty',
45
+ :'first' => :'first',
46
+ :'last' => :'last',
47
+ :'number' => :'number',
48
+ :'number_of_elements' => :'numberOfElements',
49
+ :'pageable' => :'pageable',
50
+ :'size' => :'size',
51
+ :'sort' => :'sort',
52
+ :'total_elements' => :'totalElements',
53
+ :'total_pages' => :'totalPages'
54
+ }
55
+ end
56
+
57
+ # Attribute type mapping.
58
+ def self.openapi_types
59
+ {
60
+ :'content' => :'Array<BounceRecipient>',
61
+ :'empty' => :'Boolean',
62
+ :'first' => :'Boolean',
63
+ :'last' => :'Boolean',
64
+ :'number' => :'Integer',
65
+ :'number_of_elements' => :'Integer',
66
+ :'pageable' => :'Pageable',
67
+ :'size' => :'Integer',
68
+ :'sort' => :'Sort',
69
+ :'total_elements' => :'Integer',
70
+ :'total_pages' => :'Integer'
71
+ }
72
+ end
73
+
74
+ # List of attributes with nullable: true
75
+ def self.openapi_nullable
76
+ Set.new([
77
+ ])
78
+ end
79
+
80
+ # Initializes the object
81
+ # @param [Hash] attributes Model attributes in the form of hash
82
+ def initialize(attributes = {})
83
+ if (!attributes.is_a?(Hash))
84
+ fail ArgumentError, "The input argument (attributes) must be a hash in `MailSlurpClient::PageBouncedRecipients` initialize method"
85
+ end
86
+
87
+ # check to see if the attribute exists and convert string to symbol for hash key
88
+ attributes = attributes.each_with_object({}) { |(k, v), h|
89
+ if (!self.class.attribute_map.key?(k.to_sym))
90
+ fail ArgumentError, "`#{k}` is not a valid attribute in `MailSlurpClient::PageBouncedRecipients`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
91
+ end
92
+ h[k.to_sym] = v
93
+ }
94
+
95
+ if attributes.key?(:'content')
96
+ if (value = attributes[:'content']).is_a?(Array)
97
+ self.content = value
98
+ end
99
+ end
100
+
101
+ if attributes.key?(:'empty')
102
+ self.empty = attributes[:'empty']
103
+ end
104
+
105
+ if attributes.key?(:'first')
106
+ self.first = attributes[:'first']
107
+ end
108
+
109
+ if attributes.key?(:'last')
110
+ self.last = attributes[:'last']
111
+ end
112
+
113
+ if attributes.key?(:'number')
114
+ self.number = attributes[:'number']
115
+ end
116
+
117
+ if attributes.key?(:'number_of_elements')
118
+ self.number_of_elements = attributes[:'number_of_elements']
119
+ end
120
+
121
+ if attributes.key?(:'pageable')
122
+ self.pageable = attributes[:'pageable']
123
+ end
124
+
125
+ if attributes.key?(:'size')
126
+ self.size = attributes[:'size']
127
+ end
128
+
129
+ if attributes.key?(:'sort')
130
+ self.sort = attributes[:'sort']
131
+ end
132
+
133
+ if attributes.key?(:'total_elements')
134
+ self.total_elements = attributes[:'total_elements']
135
+ end
136
+
137
+ if attributes.key?(:'total_pages')
138
+ self.total_pages = attributes[:'total_pages']
139
+ end
140
+ end
141
+
142
+ # Show invalid properties with the reasons. Usually used together with valid?
143
+ # @return Array for valid properties with the reasons
144
+ def list_invalid_properties
145
+ invalid_properties = Array.new
146
+ invalid_properties
147
+ end
148
+
149
+ # Check to see if the all the properties in the model are valid
150
+ # @return true if the model is valid
151
+ def valid?
152
+ true
153
+ end
154
+
155
+ # Checks equality by comparing each attribute.
156
+ # @param [Object] Object to be compared
157
+ def ==(o)
158
+ return true if self.equal?(o)
159
+ self.class == o.class &&
160
+ content == o.content &&
161
+ empty == o.empty &&
162
+ first == o.first &&
163
+ last == o.last &&
164
+ number == o.number &&
165
+ number_of_elements == o.number_of_elements &&
166
+ pageable == o.pageable &&
167
+ size == o.size &&
168
+ sort == o.sort &&
169
+ total_elements == o.total_elements &&
170
+ total_pages == o.total_pages
171
+ end
172
+
173
+ # @see the `==` method
174
+ # @param [Object] Object to be compared
175
+ def eql?(o)
176
+ self == o
177
+ end
178
+
179
+ # Calculates hash code according to all attributes.
180
+ # @return [Integer] Hash code
181
+ def hash
182
+ [content, empty, first, last, number, number_of_elements, pageable, size, sort, total_elements, total_pages].hash
183
+ end
184
+
185
+ # Builds the object from hash
186
+ # @param [Hash] attributes Model attributes in the form of hash
187
+ # @return [Object] Returns the model itself
188
+ def self.build_from_hash(attributes)
189
+ new.build_from_hash(attributes)
190
+ end
191
+
192
+ # Builds the object from hash
193
+ # @param [Hash] attributes Model attributes in the form of hash
194
+ # @return [Object] Returns the model itself
195
+ def build_from_hash(attributes)
196
+ return nil unless attributes.is_a?(Hash)
197
+ self.class.openapi_types.each_pair do |key, type|
198
+ if type =~ /\AArray<(.*)>/i
199
+ # check to ensure the input is an array given that the attribute
200
+ # is documented as an array but the input is not
201
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
202
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
203
+ end
204
+ elsif !attributes[self.class.attribute_map[key]].nil?
205
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
206
+ end # or else data not found in attributes(hash), not an issue as the data can be optional
207
+ end
208
+
209
+ self
210
+ end
211
+
212
+ # Deserializes the data based on type
213
+ # @param string type Data type
214
+ # @param string value Value to be deserialized
215
+ # @return [Object] Deserialized data
216
+ def _deserialize(type, value)
217
+ case type.to_sym
218
+ when :DateTime
219
+ DateTime.parse(value)
220
+ when :Date
221
+ Date.parse(value)
222
+ when :String
223
+ value.to_s
224
+ when :Integer
225
+ value.to_i
226
+ when :Float
227
+ value.to_f
228
+ when :Boolean
229
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
230
+ true
231
+ else
232
+ false
233
+ end
234
+ when :Object
235
+ # generic object (usually a Hash), return directly
236
+ value
237
+ when /\AArray<(?<inner_type>.+)>\z/
238
+ inner_type = Regexp.last_match[:inner_type]
239
+ value.map { |v| _deserialize(inner_type, v) }
240
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
241
+ k_type = Regexp.last_match[:k_type]
242
+ v_type = Regexp.last_match[:v_type]
243
+ {}.tap do |hash|
244
+ value.each do |k, v|
245
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
246
+ end
247
+ end
248
+ else # model
249
+ MailSlurpClient.const_get(type).build_from_hash(value)
250
+ end
251
+ end
252
+
253
+ # Returns the string representation of the object
254
+ # @return [String] String presentation of the object
255
+ def to_s
256
+ to_hash.to_s
257
+ end
258
+
259
+ # to_body is an alias to to_hash (backward compatibility)
260
+ # @return [Hash] Returns the object in the form of hash
261
+ def to_body
262
+ to_hash
263
+ end
264
+
265
+ # Returns the object in the form of hash
266
+ # @return [Hash] Returns the object in the form of hash
267
+ def to_hash
268
+ hash = {}
269
+ self.class.attribute_map.each_pair do |attr, param|
270
+ value = self.send(attr)
271
+ if value.nil?
272
+ is_nullable = self.class.openapi_nullable.include?(attr)
273
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
274
+ end
275
+
276
+ hash[param] = _to_hash(value)
277
+ end
278
+ hash
279
+ end
280
+
281
+ # Outputs non-array value in the form of hash
282
+ # For object, use to_hash. Otherwise, just return the value
283
+ # @param [Object] value Any valid value
284
+ # @return [Hash] Returns the value in the form of hash
285
+ def _to_hash(value)
286
+ if value.is_a?(Array)
287
+ value.compact.map { |v| _to_hash(v) }
288
+ elsif value.is_a?(Hash)
289
+ {}.tap do |hash|
290
+ value.each { |k, v| hash[k] = _to_hash(v) }
291
+ end
292
+ elsif value.respond_to? :to_hash
293
+ value.to_hash
294
+ else
295
+ value
296
+ end
297
+ end
298
+ end
299
+ end
@@ -28,6 +28,8 @@ module MailSlurpClient
28
28
 
29
29
  attr_accessor :seen_at
30
30
 
31
+ attr_accessor :sent_email_id
32
+
31
33
  attr_accessor :user_id
32
34
 
33
35
  # Attribute mapping from ruby-style variable name to JSON key.
@@ -40,6 +42,7 @@ module MailSlurpClient
40
42
  :'recipient' => :'recipient',
41
43
  :'seen' => :'seen',
42
44
  :'seen_at' => :'seenAt',
45
+ :'sent_email_id' => :'sentEmailId',
43
46
  :'user_id' => :'userId'
44
47
  }
45
48
  end
@@ -54,6 +57,7 @@ module MailSlurpClient
54
57
  :'recipient' => :'String',
55
58
  :'seen' => :'Boolean',
56
59
  :'seen_at' => :'DateTime',
60
+ :'sent_email_id' => :'String',
57
61
  :'user_id' => :'String'
58
62
  }
59
63
  end
@@ -107,6 +111,10 @@ module MailSlurpClient
107
111
  self.seen_at = attributes[:'seen_at']
108
112
  end
109
113
 
114
+ if attributes.key?(:'sent_email_id')
115
+ self.sent_email_id = attributes[:'sent_email_id']
116
+ end
117
+
110
118
  if attributes.key?(:'user_id')
111
119
  self.user_id = attributes[:'user_id']
112
120
  end
@@ -157,6 +165,7 @@ module MailSlurpClient
157
165
  recipient == o.recipient &&
158
166
  seen == o.seen &&
159
167
  seen_at == o.seen_at &&
168
+ sent_email_id == o.sent_email_id &&
160
169
  user_id == o.user_id
161
170
  end
162
171
 
@@ -169,7 +178,7 @@ module MailSlurpClient
169
178
  # Calculates hash code according to all attributes.
170
179
  # @return [Integer] Hash code
171
180
  def hash
172
- [created_at, id, inbox_id, name, recipient, seen, seen_at, user_id].hash
181
+ [created_at, id, inbox_id, name, recipient, seen, seen_at, sent_email_id, user_id].hash
173
182
  end
174
183
 
175
184
  # Builds the object from hash
@@ -17,6 +17,8 @@ module MailSlurpClient
17
17
  class WebhookProjection
18
18
  attr_accessor :created_at
19
19
 
20
+ attr_accessor :event_name
21
+
20
22
  attr_accessor :id
21
23
 
22
24
  attr_accessor :inbox_id
@@ -27,10 +29,33 @@ module MailSlurpClient
27
29
 
28
30
  attr_accessor :url
29
31
 
32
+ class EnumAttributeValidator
33
+ attr_reader :datatype
34
+ attr_reader :allowable_values
35
+
36
+ def initialize(datatype, allowable_values)
37
+ @allowable_values = allowable_values.map do |value|
38
+ case datatype.to_s
39
+ when /Integer/i
40
+ value.to_i
41
+ when /Float/i
42
+ value.to_f
43
+ else
44
+ value
45
+ end
46
+ end
47
+ end
48
+
49
+ def valid?(value)
50
+ !value || allowable_values.include?(value)
51
+ end
52
+ end
53
+
30
54
  # Attribute mapping from ruby-style variable name to JSON key.
31
55
  def self.attribute_map
32
56
  {
33
57
  :'created_at' => :'createdAt',
58
+ :'event_name' => :'eventName',
34
59
  :'id' => :'id',
35
60
  :'inbox_id' => :'inboxId',
36
61
  :'name' => :'name',
@@ -43,6 +68,7 @@ module MailSlurpClient
43
68
  def self.openapi_types
44
69
  {
45
70
  :'created_at' => :'DateTime',
71
+ :'event_name' => :'String',
46
72
  :'id' => :'String',
47
73
  :'inbox_id' => :'String',
48
74
  :'name' => :'String',
@@ -76,6 +102,10 @@ module MailSlurpClient
76
102
  self.created_at = attributes[:'created_at']
77
103
  end
78
104
 
105
+ if attributes.key?(:'event_name')
106
+ self.event_name = attributes[:'event_name']
107
+ end
108
+
79
109
  if attributes.key?(:'id')
80
110
  self.id = attributes[:'id']
81
111
  end
@@ -128,6 +158,8 @@ module MailSlurpClient
128
158
  # @return true if the model is valid
129
159
  def valid?
130
160
  return false if @created_at.nil?
161
+ event_name_validator = EnumAttributeValidator.new('String', ["EMAIL_RECEIVED", "NEW_EMAIL", "NEW_CONTACT", "NEW_ATTACHMENT", "EMAIL_OPENED"])
162
+ return false unless event_name_validator.valid?(@event_name)
131
163
  return false if @id.nil?
132
164
  return false if @inbox_id.nil?
133
165
  return false if @updated_at.nil?
@@ -135,12 +167,23 @@ module MailSlurpClient
135
167
  true
136
168
  end
137
169
 
170
+ # Custom attribute writer method checking allowed values (enum).
171
+ # @param [Object] event_name Object to be assigned
172
+ def event_name=(event_name)
173
+ validator = EnumAttributeValidator.new('String', ["EMAIL_RECEIVED", "NEW_EMAIL", "NEW_CONTACT", "NEW_ATTACHMENT", "EMAIL_OPENED"])
174
+ unless validator.valid?(event_name)
175
+ fail ArgumentError, "invalid value for \"event_name\", must be one of #{validator.allowable_values}."
176
+ end
177
+ @event_name = event_name
178
+ end
179
+
138
180
  # Checks equality by comparing each attribute.
139
181
  # @param [Object] Object to be compared
140
182
  def ==(o)
141
183
  return true if self.equal?(o)
142
184
  self.class == o.class &&
143
185
  created_at == o.created_at &&
186
+ event_name == o.event_name &&
144
187
  id == o.id &&
145
188
  inbox_id == o.inbox_id &&
146
189
  name == o.name &&
@@ -157,7 +200,7 @@ module MailSlurpClient
157
200
  # Calculates hash code according to all attributes.
158
201
  # @return [Integer] Hash code
159
202
  def hash
160
- [created_at, id, inbox_id, name, updated_at, url].hash
203
+ [created_at, event_name, id, inbox_id, name, updated_at, url].hash
161
204
  end
162
205
 
163
206
  # Builds the object from hash