mailslurp_client 15.21.1 → 16.0.2

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.
@@ -0,0 +1,533 @@
1
+ =begin
2
+ #MailSlurp API
3
+
4
+ #MailSlurp is an API for sending and receiving emails and SMS from dynamically allocated email addresses and phone numbers. 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://docs.mailslurp.com/) - [Examples](https://github.com/mailslurp/examples) repository
5
+
6
+ The version of the OpenAPI document: 6.5.2
7
+ Contact: contact@mailslurp.dev
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
+ # Structured output schema to use for generation
17
+ class StructuredOutputSchema
18
+ attr_accessor :any_of
19
+
20
+ attr_accessor :default
21
+
22
+ attr_accessor :description
23
+
24
+ attr_accessor :enum
25
+
26
+ attr_accessor :example
27
+
28
+ attr_accessor :format
29
+
30
+ attr_accessor :items
31
+
32
+ attr_accessor :max_items
33
+
34
+ attr_accessor :min_items
35
+
36
+ attr_accessor :max_length
37
+
38
+ attr_accessor :min_length
39
+
40
+ attr_accessor :pattern
41
+
42
+ attr_accessor :properties
43
+
44
+ attr_accessor :property_ordering
45
+
46
+ attr_accessor :required
47
+
48
+ attr_accessor :max_properties
49
+
50
+ attr_accessor :min_properties
51
+
52
+ attr_accessor :maximum
53
+
54
+ attr_accessor :minimum
55
+
56
+ attr_accessor :nullable
57
+
58
+ attr_accessor :title
59
+
60
+ # Primitive JSON schema types with a fallback CUSTOM for unknown values.
61
+ attr_accessor :type
62
+
63
+ class EnumAttributeValidator
64
+ attr_reader :datatype
65
+ attr_reader :allowable_values
66
+
67
+ def initialize(datatype, allowable_values)
68
+ @allowable_values = allowable_values.map do |value|
69
+ case datatype.to_s
70
+ when /Integer/i
71
+ value.to_i
72
+ when /Float/i
73
+ value.to_f
74
+ else
75
+ value
76
+ end
77
+ end
78
+ end
79
+
80
+ def valid?(value)
81
+ !value || allowable_values.include?(value)
82
+ end
83
+ end
84
+
85
+ # Attribute mapping from ruby-style variable name to JSON key.
86
+ def self.attribute_map
87
+ {
88
+ :'any_of' => :'anyOf',
89
+ :'default' => :'default',
90
+ :'description' => :'description',
91
+ :'enum' => :'enum',
92
+ :'example' => :'example',
93
+ :'format' => :'format',
94
+ :'items' => :'items',
95
+ :'max_items' => :'maxItems',
96
+ :'min_items' => :'minItems',
97
+ :'max_length' => :'maxLength',
98
+ :'min_length' => :'minLength',
99
+ :'pattern' => :'pattern',
100
+ :'properties' => :'properties',
101
+ :'property_ordering' => :'propertyOrdering',
102
+ :'required' => :'required',
103
+ :'max_properties' => :'maxProperties',
104
+ :'min_properties' => :'minProperties',
105
+ :'maximum' => :'maximum',
106
+ :'minimum' => :'minimum',
107
+ :'nullable' => :'nullable',
108
+ :'title' => :'title',
109
+ :'type' => :'type'
110
+ }
111
+ end
112
+
113
+ # Attribute type mapping.
114
+ def self.openapi_types
115
+ {
116
+ :'any_of' => :'Array<StructuredOutputSchema>',
117
+ :'default' => :'Object',
118
+ :'description' => :'String',
119
+ :'enum' => :'Array<String>',
120
+ :'example' => :'Object',
121
+ :'format' => :'String',
122
+ :'items' => :'StructuredOutputSchema',
123
+ :'max_items' => :'Integer',
124
+ :'min_items' => :'Integer',
125
+ :'max_length' => :'Integer',
126
+ :'min_length' => :'Integer',
127
+ :'pattern' => :'String',
128
+ :'properties' => :'Hash<String, StructuredOutputSchema>',
129
+ :'property_ordering' => :'Array<String>',
130
+ :'required' => :'Array<String>',
131
+ :'max_properties' => :'Integer',
132
+ :'min_properties' => :'Integer',
133
+ :'maximum' => :'Float',
134
+ :'minimum' => :'Float',
135
+ :'nullable' => :'Boolean',
136
+ :'title' => :'String',
137
+ :'type' => :'String'
138
+ }
139
+ end
140
+
141
+ # List of attributes with nullable: true
142
+ def self.openapi_nullable
143
+ Set.new([
144
+ :'default',
145
+ :'example',
146
+ ])
147
+ end
148
+
149
+ # Initializes the object
150
+ # @param [Hash] attributes Model attributes in the form of hash
151
+ def initialize(attributes = {})
152
+ if (!attributes.is_a?(Hash))
153
+ fail ArgumentError, "The input argument (attributes) must be a hash in `MailSlurpClient::StructuredOutputSchema` initialize method"
154
+ end
155
+
156
+ # check to see if the attribute exists and convert string to symbol for hash key
157
+ attributes = attributes.each_with_object({}) { |(k, v), h|
158
+ if (!self.class.attribute_map.key?(k.to_sym))
159
+ fail ArgumentError, "`#{k}` is not a valid attribute in `MailSlurpClient::StructuredOutputSchema`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
160
+ end
161
+ h[k.to_sym] = v
162
+ }
163
+
164
+ if attributes.key?(:'any_of')
165
+ if (value = attributes[:'any_of']).is_a?(Array)
166
+ self.any_of = value
167
+ end
168
+ end
169
+
170
+ if attributes.key?(:'default')
171
+ self.default = attributes[:'default']
172
+ end
173
+
174
+ if attributes.key?(:'description')
175
+ self.description = attributes[:'description']
176
+ end
177
+
178
+ if attributes.key?(:'enum')
179
+ if (value = attributes[:'enum']).is_a?(Array)
180
+ self.enum = value
181
+ end
182
+ end
183
+
184
+ if attributes.key?(:'example')
185
+ self.example = attributes[:'example']
186
+ end
187
+
188
+ if attributes.key?(:'format')
189
+ self.format = attributes[:'format']
190
+ end
191
+
192
+ if attributes.key?(:'items')
193
+ self.items = attributes[:'items']
194
+ end
195
+
196
+ if attributes.key?(:'max_items')
197
+ self.max_items = attributes[:'max_items']
198
+ end
199
+
200
+ if attributes.key?(:'min_items')
201
+ self.min_items = attributes[:'min_items']
202
+ end
203
+
204
+ if attributes.key?(:'max_length')
205
+ self.max_length = attributes[:'max_length']
206
+ end
207
+
208
+ if attributes.key?(:'min_length')
209
+ self.min_length = attributes[:'min_length']
210
+ end
211
+
212
+ if attributes.key?(:'pattern')
213
+ self.pattern = attributes[:'pattern']
214
+ end
215
+
216
+ if attributes.key?(:'properties')
217
+ if (value = attributes[:'properties']).is_a?(Hash)
218
+ self.properties = value
219
+ end
220
+ end
221
+
222
+ if attributes.key?(:'property_ordering')
223
+ if (value = attributes[:'property_ordering']).is_a?(Array)
224
+ self.property_ordering = value
225
+ end
226
+ end
227
+
228
+ if attributes.key?(:'required')
229
+ if (value = attributes[:'required']).is_a?(Array)
230
+ self.required = value
231
+ end
232
+ end
233
+
234
+ if attributes.key?(:'max_properties')
235
+ self.max_properties = attributes[:'max_properties']
236
+ end
237
+
238
+ if attributes.key?(:'min_properties')
239
+ self.min_properties = attributes[:'min_properties']
240
+ end
241
+
242
+ if attributes.key?(:'maximum')
243
+ self.maximum = attributes[:'maximum']
244
+ end
245
+
246
+ if attributes.key?(:'minimum')
247
+ self.minimum = attributes[:'minimum']
248
+ end
249
+
250
+ if attributes.key?(:'nullable')
251
+ self.nullable = attributes[:'nullable']
252
+ end
253
+
254
+ if attributes.key?(:'title')
255
+ self.title = attributes[:'title']
256
+ end
257
+
258
+ if attributes.key?(:'type')
259
+ self.type = attributes[:'type']
260
+ end
261
+ end
262
+
263
+ # Show invalid properties with the reasons. Usually used together with valid?
264
+ # @return Array for valid properties with the reasons
265
+ def list_invalid_properties
266
+ invalid_properties = Array.new
267
+ if !@max_items.nil? && @max_items < 0
268
+ invalid_properties.push('invalid value for "max_items", must be greater than or equal to 0.')
269
+ end
270
+
271
+ if !@min_items.nil? && @min_items < 0
272
+ invalid_properties.push('invalid value for "min_items", must be greater than or equal to 0.')
273
+ end
274
+
275
+ if !@max_length.nil? && @max_length < 0
276
+ invalid_properties.push('invalid value for "max_length", must be greater than or equal to 0.')
277
+ end
278
+
279
+ if !@min_length.nil? && @min_length < 0
280
+ invalid_properties.push('invalid value for "min_length", must be greater than or equal to 0.')
281
+ end
282
+
283
+ if !@max_properties.nil? && @max_properties < 0
284
+ invalid_properties.push('invalid value for "max_properties", must be greater than or equal to 0.')
285
+ end
286
+
287
+ if !@min_properties.nil? && @min_properties < 0
288
+ invalid_properties.push('invalid value for "min_properties", must be greater than or equal to 0.')
289
+ end
290
+
291
+ invalid_properties
292
+ end
293
+
294
+ # Check to see if the all the properties in the model are valid
295
+ # @return true if the model is valid
296
+ def valid?
297
+ return false if !@max_items.nil? && @max_items < 0
298
+ return false if !@min_items.nil? && @min_items < 0
299
+ return false if !@max_length.nil? && @max_length < 0
300
+ return false if !@min_length.nil? && @min_length < 0
301
+ return false if !@max_properties.nil? && @max_properties < 0
302
+ return false if !@min_properties.nil? && @min_properties < 0
303
+ type_validator = EnumAttributeValidator.new('String', ["string", "number", "integer", "boolean", "object", "array", "null"])
304
+ return false unless type_validator.valid?(@type)
305
+ true
306
+ end
307
+
308
+ # Custom attribute writer method with validation
309
+ # @param [Object] max_items Value to be assigned
310
+ def max_items=(max_items)
311
+ if !max_items.nil? && max_items < 0
312
+ fail ArgumentError, 'invalid value for "max_items", must be greater than or equal to 0.'
313
+ end
314
+
315
+ @max_items = max_items
316
+ end
317
+
318
+ # Custom attribute writer method with validation
319
+ # @param [Object] min_items Value to be assigned
320
+ def min_items=(min_items)
321
+ if !min_items.nil? && min_items < 0
322
+ fail ArgumentError, 'invalid value for "min_items", must be greater than or equal to 0.'
323
+ end
324
+
325
+ @min_items = min_items
326
+ end
327
+
328
+ # Custom attribute writer method with validation
329
+ # @param [Object] max_length Value to be assigned
330
+ def max_length=(max_length)
331
+ if !max_length.nil? && max_length < 0
332
+ fail ArgumentError, 'invalid value for "max_length", must be greater than or equal to 0.'
333
+ end
334
+
335
+ @max_length = max_length
336
+ end
337
+
338
+ # Custom attribute writer method with validation
339
+ # @param [Object] min_length Value to be assigned
340
+ def min_length=(min_length)
341
+ if !min_length.nil? && min_length < 0
342
+ fail ArgumentError, 'invalid value for "min_length", must be greater than or equal to 0.'
343
+ end
344
+
345
+ @min_length = min_length
346
+ end
347
+
348
+ # Custom attribute writer method with validation
349
+ # @param [Object] max_properties Value to be assigned
350
+ def max_properties=(max_properties)
351
+ if !max_properties.nil? && max_properties < 0
352
+ fail ArgumentError, 'invalid value for "max_properties", must be greater than or equal to 0.'
353
+ end
354
+
355
+ @max_properties = max_properties
356
+ end
357
+
358
+ # Custom attribute writer method with validation
359
+ # @param [Object] min_properties Value to be assigned
360
+ def min_properties=(min_properties)
361
+ if !min_properties.nil? && min_properties < 0
362
+ fail ArgumentError, 'invalid value for "min_properties", must be greater than or equal to 0.'
363
+ end
364
+
365
+ @min_properties = min_properties
366
+ end
367
+
368
+ # Custom attribute writer method checking allowed values (enum).
369
+ # @param [Object] type Object to be assigned
370
+ def type=(type)
371
+ validator = EnumAttributeValidator.new('String', ["string", "number", "integer", "boolean", "object", "array", "null"])
372
+ unless validator.valid?(type)
373
+ fail ArgumentError, "invalid value for \"type\", must be one of #{validator.allowable_values}."
374
+ end
375
+ @type = type
376
+ end
377
+
378
+ # Checks equality by comparing each attribute.
379
+ # @param [Object] Object to be compared
380
+ def ==(o)
381
+ return true if self.equal?(o)
382
+ self.class == o.class &&
383
+ any_of == o.any_of &&
384
+ default == o.default &&
385
+ description == o.description &&
386
+ enum == o.enum &&
387
+ example == o.example &&
388
+ format == o.format &&
389
+ items == o.items &&
390
+ max_items == o.max_items &&
391
+ min_items == o.min_items &&
392
+ max_length == o.max_length &&
393
+ min_length == o.min_length &&
394
+ pattern == o.pattern &&
395
+ properties == o.properties &&
396
+ property_ordering == o.property_ordering &&
397
+ required == o.required &&
398
+ max_properties == o.max_properties &&
399
+ min_properties == o.min_properties &&
400
+ maximum == o.maximum &&
401
+ minimum == o.minimum &&
402
+ nullable == o.nullable &&
403
+ title == o.title &&
404
+ type == o.type
405
+ end
406
+
407
+ # @see the `==` method
408
+ # @param [Object] Object to be compared
409
+ def eql?(o)
410
+ self == o
411
+ end
412
+
413
+ # Calculates hash code according to all attributes.
414
+ # @return [Integer] Hash code
415
+ def hash
416
+ [any_of, default, description, enum, example, format, items, max_items, min_items, max_length, min_length, pattern, properties, property_ordering, required, max_properties, min_properties, maximum, minimum, nullable, title, type].hash
417
+ end
418
+
419
+ # Builds the object from hash
420
+ # @param [Hash] attributes Model attributes in the form of hash
421
+ # @return [Object] Returns the model itself
422
+ def self.build_from_hash(attributes)
423
+ new.build_from_hash(attributes)
424
+ end
425
+
426
+ # Builds the object from hash
427
+ # @param [Hash] attributes Model attributes in the form of hash
428
+ # @return [Object] Returns the model itself
429
+ def build_from_hash(attributes)
430
+ return nil unless attributes.is_a?(Hash)
431
+ self.class.openapi_types.each_pair do |key, type|
432
+ if type =~ /\AArray<(.*)>/i
433
+ # check to ensure the input is an array given that the attribute
434
+ # is documented as an array but the input is not
435
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
436
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
437
+ end
438
+ elsif !attributes[self.class.attribute_map[key]].nil?
439
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
440
+ end # or else data not found in attributes(hash), not an issue as the data can be optional
441
+ end
442
+
443
+ self
444
+ end
445
+
446
+ # Deserializes the data based on type
447
+ # @param string type Data type
448
+ # @param string value Value to be deserialized
449
+ # @return [Object] Deserialized data
450
+ def _deserialize(type, value)
451
+ case type.to_sym
452
+ when :DateTime
453
+ DateTime.parse(value)
454
+ when :Date
455
+ Date.parse(value)
456
+ when :String
457
+ value.to_s
458
+ when :Integer
459
+ value.to_i
460
+ when :Float
461
+ value.to_f
462
+ when :Boolean
463
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
464
+ true
465
+ else
466
+ false
467
+ end
468
+ when :Object
469
+ # generic object (usually a Hash), return directly
470
+ value
471
+ when /\AArray<(?<inner_type>.+)>\z/
472
+ inner_type = Regexp.last_match[:inner_type]
473
+ value.map { |v| _deserialize(inner_type, v) }
474
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
475
+ k_type = Regexp.last_match[:k_type]
476
+ v_type = Regexp.last_match[:v_type]
477
+ {}.tap do |hash|
478
+ value.each do |k, v|
479
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
480
+ end
481
+ end
482
+ else # model
483
+ MailSlurpClient.const_get(type).build_from_hash(value)
484
+ end
485
+ end
486
+
487
+ # Returns the string representation of the object
488
+ # @return [String] String presentation of the object
489
+ def to_s
490
+ to_hash.to_s
491
+ end
492
+
493
+ # to_body is an alias to to_hash (backward compatibility)
494
+ # @return [Hash] Returns the object in the form of hash
495
+ def to_body
496
+ to_hash
497
+ end
498
+
499
+ # Returns the object in the form of hash
500
+ # @return [Hash] Returns the object in the form of hash
501
+ def to_hash
502
+ hash = {}
503
+ self.class.attribute_map.each_pair do |attr, param|
504
+ value = self.send(attr)
505
+ if value.nil?
506
+ is_nullable = self.class.openapi_nullable.include?(attr)
507
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
508
+ end
509
+
510
+ hash[param] = _to_hash(value)
511
+ end
512
+ hash
513
+ end
514
+
515
+ # Outputs non-array value in the form of hash
516
+ # For object, use to_hash. Otherwise, just return the value
517
+ # @param [Object] value Any valid value
518
+ # @return [Hash] Returns the value in the form of hash
519
+ def _to_hash(value)
520
+ if value.is_a?(Array)
521
+ value.compact.map { |v| _to_hash(v) }
522
+ elsif value.is_a?(Hash)
523
+ {}.tap do |hash|
524
+ value.each { |k, v| hash[k] = _to_hash(v) }
525
+ end
526
+ elsif value.respond_to? :to_hash
527
+ value.to_hash
528
+ else
529
+ value
530
+ end
531
+ end
532
+ end
533
+ end
@@ -11,5 +11,5 @@ OpenAPI Generator version: 4.3.1
11
11
  =end
12
12
 
13
13
  module MailSlurpClient
14
- VERSION = '15.21.1'
14
+ VERSION = '16.0.2'
15
15
  end
@@ -149,6 +149,7 @@ require 'mailslurp_client/models/generate_dmarc_record_options'
149
149
  require 'mailslurp_client/models/generate_dmarc_record_results'
150
150
  require 'mailslurp_client/models/generate_mta_sts_record_options'
151
151
  require 'mailslurp_client/models/generate_mta_sts_record_results'
152
+ require 'mailslurp_client/models/generate_structured_content_email_options'
152
153
  require 'mailslurp_client/models/generate_tls_reporting_record_options'
153
154
  require 'mailslurp_client/models/generate_tls_reporting_record_results'
154
155
  require 'mailslurp_client/models/get_email_screenshot_options'
@@ -318,6 +319,8 @@ require 'mailslurp_client/models/sms_send_options'
318
319
  require 'mailslurp_client/models/smtp_access_details'
319
320
  require 'mailslurp_client/models/sort_object'
320
321
  require 'mailslurp_client/models/spelling_issue'
322
+ require 'mailslurp_client/models/structured_content_result'
323
+ require 'mailslurp_client/models/structured_output_schema'
321
324
  require 'mailslurp_client/models/template_dto'
322
325
  require 'mailslurp_client/models/template_preview'
323
326
  require 'mailslurp_client/models/template_projection'
@@ -377,6 +380,7 @@ require 'mailslurp_client/models/webhook_test_response'
377
380
  require 'mailslurp_client/models/webhook_test_result'
378
381
 
379
382
  # APIs
383
+ require 'mailslurp_client/api/ai_controller_api'
380
384
  require 'mailslurp_client/api/alias_controller_api'
381
385
  require 'mailslurp_client/api/attachment_controller_api'
382
386
  require 'mailslurp_client/api/bounce_controller_api'
@@ -404,7 +408,6 @@ require 'mailslurp_client/api/o_auth_connection_api'
404
408
  require 'mailslurp_client/api/phone_controller_api'
405
409
  require 'mailslurp_client/api/sent_emails_controller_api'
406
410
  require 'mailslurp_client/api/sms_controller_api'
407
- require 'mailslurp_client/api/sse_controller_api'
408
411
  require 'mailslurp_client/api/template_controller_api'
409
412
  require 'mailslurp_client/api/tools_controller_api'
410
413
  require 'mailslurp_client/api/tracking_controller_api'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mailslurp_client
3
3
  version: !ruby/object:Gem::Version
4
- version: 15.21.1
4
+ version: 16.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - mailslurp
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2025-05-11 00:00:00.000000000 Z
11
+ date: 2025-05-22 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: Create emails addresses in Ruby then send and receive real emails and
14
14
  attachments. See https://www.mailslurp.com/ruby/ for full Ruby documentation. Get
@@ -23,6 +23,7 @@ files:
23
23
  - SECURITY.md
24
24
  - SUPPORT.md
25
25
  - lib/mailslurp_client.rb
26
+ - lib/mailslurp_client/api/ai_controller_api.rb
26
27
  - lib/mailslurp_client/api/alias_controller_api.rb
27
28
  - lib/mailslurp_client/api/attachment_controller_api.rb
28
29
  - lib/mailslurp_client/api/bounce_controller_api.rb
@@ -50,7 +51,6 @@ files:
50
51
  - lib/mailslurp_client/api/phone_controller_api.rb
51
52
  - lib/mailslurp_client/api/sent_emails_controller_api.rb
52
53
  - lib/mailslurp_client/api/sms_controller_api.rb
53
- - lib/mailslurp_client/api/sse_controller_api.rb
54
54
  - lib/mailslurp_client/api/template_controller_api.rb
55
55
  - lib/mailslurp_client/api/tools_controller_api.rb
56
56
  - lib/mailslurp_client/api/tracking_controller_api.rb
@@ -192,6 +192,7 @@ files:
192
192
  - lib/mailslurp_client/models/generate_dmarc_record_results.rb
193
193
  - lib/mailslurp_client/models/generate_mta_sts_record_options.rb
194
194
  - lib/mailslurp_client/models/generate_mta_sts_record_results.rb
195
+ - lib/mailslurp_client/models/generate_structured_content_email_options.rb
195
196
  - lib/mailslurp_client/models/generate_tls_reporting_record_options.rb
196
197
  - lib/mailslurp_client/models/generate_tls_reporting_record_results.rb
197
198
  - lib/mailslurp_client/models/get_email_screenshot_options.rb
@@ -361,6 +362,8 @@ files:
361
362
  - lib/mailslurp_client/models/smtp_access_details.rb
362
363
  - lib/mailslurp_client/models/sort_object.rb
363
364
  - lib/mailslurp_client/models/spelling_issue.rb
365
+ - lib/mailslurp_client/models/structured_content_result.rb
366
+ - lib/mailslurp_client/models/structured_output_schema.rb
364
367
  - lib/mailslurp_client/models/template_dto.rb
365
368
  - lib/mailslurp_client/models/template_preview.rb
366
369
  - lib/mailslurp_client/models/template_projection.rb