aspose_email_cloud 20.1.0 → 20.2.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 (105) hide show
  1. checksums.yaml +4 -4
  2. data/lib/aspose-email-cloud.rb +10 -0
  3. data/lib/aspose-email-cloud/api/email_api.rb +24 -0
  4. data/lib/aspose-email-cloud/models/discover_email_config_oauth.rb +388 -0
  5. data/lib/aspose-email-cloud/models/discover_email_config_password.rb +301 -0
  6. data/lib/aspose-email-cloud/models/discover_email_config_rq.rb +265 -0
  7. data/lib/aspose-email-cloud/models/email_account_config.rb +320 -0
  8. data/lib/aspose-email-cloud/models/email_account_config_list.rb +212 -0
  9. data/lib/aspose-email-cloud/models/list_response_of_email_account_config.rb +211 -0
  10. data/lib/aspose-email-cloud/models/name_value_pair.rb +222 -0
  11. data/lib/aspose-email-cloud/models/requests/add_calendar_attachment_request_data.rb +18 -8
  12. data/lib/aspose-email-cloud/models/requests/add_contact_attachment_request_data.rb +23 -10
  13. data/lib/aspose-email-cloud/models/requests/add_email_attachment_request_data.rb +18 -8
  14. data/lib/aspose-email-cloud/models/requests/add_mapi_attachment_request_data.rb +18 -8
  15. data/lib/aspose-email-cloud/models/requests/ai_bcr_ocr_request_data.rb +7 -3
  16. data/lib/aspose-email-cloud/models/requests/ai_bcr_ocr_storage_request_data.rb +7 -3
  17. data/lib/aspose-email-cloud/models/requests/ai_bcr_parse_model_request_data.rb +7 -3
  18. data/lib/aspose-email-cloud/models/requests/ai_bcr_parse_ocr_data_model_request_data.rb +7 -3
  19. data/lib/aspose-email-cloud/models/requests/ai_bcr_parse_request_data.rb +7 -3
  20. data/lib/aspose-email-cloud/models/requests/ai_bcr_parse_storage_request_data.rb +7 -3
  21. data/lib/aspose-email-cloud/models/requests/ai_name_complete_request_data.rb +32 -13
  22. data/lib/aspose-email-cloud/models/requests/ai_name_expand_parsed_request_data.rb +7 -3
  23. data/lib/aspose-email-cloud/models/requests/ai_name_expand_request_data.rb +32 -13
  24. data/lib/aspose-email-cloud/models/requests/ai_name_format_parsed_request_data.rb +7 -3
  25. data/lib/aspose-email-cloud/models/requests/ai_name_format_request_data.rb +37 -15
  26. data/lib/aspose-email-cloud/models/requests/ai_name_genderize_parsed_request_data.rb +7 -3
  27. data/lib/aspose-email-cloud/models/requests/ai_name_genderize_request_data.rb +32 -13
  28. data/lib/aspose-email-cloud/models/requests/ai_name_match_parsed_request_data.rb +7 -3
  29. data/lib/aspose-email-cloud/models/requests/ai_name_match_request_data.rb +38 -16
  30. data/lib/aspose-email-cloud/models/requests/ai_name_parse_email_address_request_data.rb +32 -13
  31. data/lib/aspose-email-cloud/models/requests/ai_name_parse_request_data.rb +32 -13
  32. data/lib/aspose-email-cloud/models/requests/append_email_message_request_data.rb +7 -3
  33. data/lib/aspose-email-cloud/models/requests/append_email_model_message_request_data.rb +7 -3
  34. data/lib/aspose-email-cloud/models/requests/append_mime_message_request_data.rb +7 -3
  35. data/lib/aspose-email-cloud/models/requests/convert_calendar_model_to_alternate_request_data.rb +7 -3
  36. data/lib/aspose-email-cloud/models/requests/convert_email_request_data.rb +13 -6
  37. data/lib/aspose-email-cloud/models/requests/copy_file_request_data.rb +28 -12
  38. data/lib/aspose-email-cloud/models/requests/copy_folder_request_data.rb +23 -10
  39. data/lib/aspose-email-cloud/models/requests/create_calendar_request_data.rb +13 -6
  40. data/lib/aspose-email-cloud/models/requests/create_contact_request_data.rb +18 -8
  41. data/lib/aspose-email-cloud/models/requests/create_email_folder_request_data.rb +7 -3
  42. data/lib/aspose-email-cloud/models/requests/create_email_request_data.rb +14 -7
  43. data/lib/aspose-email-cloud/models/requests/create_folder_request_data.rb +12 -5
  44. data/lib/aspose-email-cloud/models/requests/create_mapi_request_data.rb +13 -6
  45. data/lib/aspose-email-cloud/models/requests/delete_calendar_property_request_data.rb +23 -10
  46. data/lib/aspose-email-cloud/models/requests/delete_contact_property_request_data.rb +28 -12
  47. data/lib/aspose-email-cloud/models/requests/delete_email_folder_request_data.rb +7 -3
  48. data/lib/aspose-email-cloud/models/requests/delete_email_message_request_data.rb +7 -3
  49. data/lib/aspose-email-cloud/models/requests/delete_file_request_data.rb +17 -7
  50. data/lib/aspose-email-cloud/models/requests/delete_folder_request_data.rb +17 -7
  51. data/lib/aspose-email-cloud/models/requests/delete_mapi_attachment_request_data.rb +18 -8
  52. data/lib/aspose-email-cloud/models/requests/delete_mapi_properties_request_data.rb +13 -6
  53. data/lib/aspose-email-cloud/models/requests/discover_email_config_oauth_request_data.rb +79 -0
  54. data/lib/aspose-email-cloud/models/requests/discover_email_config_password_request_data.rb +79 -0
  55. data/lib/aspose-email-cloud/models/requests/discover_email_config_request_data.rb +86 -0
  56. data/lib/aspose-email-cloud/models/requests/download_file_request_data.rb +17 -7
  57. data/lib/aspose-email-cloud/models/requests/fetch_email_message_request_data.rb +28 -12
  58. data/lib/aspose-email-cloud/models/requests/fetch_email_model_request_data.rb +28 -12
  59. data/lib/aspose-email-cloud/models/requests/get_calendar_attachment_request_data.rb +23 -10
  60. data/lib/aspose-email-cloud/models/requests/get_calendar_list_request_data.rb +24 -11
  61. data/lib/aspose-email-cloud/models/requests/get_calendar_model_as_alternate_request_data.rb +27 -11
  62. data/lib/aspose-email-cloud/models/requests/get_calendar_model_list_request_data.rb +22 -9
  63. data/lib/aspose-email-cloud/models/requests/get_calendar_model_request_data.rb +17 -7
  64. data/lib/aspose-email-cloud/models/requests/get_calendar_request_data.rb +17 -7
  65. data/lib/aspose-email-cloud/models/requests/get_contact_attachment_request_data.rb +28 -12
  66. data/lib/aspose-email-cloud/models/requests/get_contact_list_request_data.rb +27 -11
  67. data/lib/aspose-email-cloud/models/requests/get_contact_model_list_request_data.rb +27 -11
  68. data/lib/aspose-email-cloud/models/requests/get_contact_model_request_data.rb +22 -9
  69. data/lib/aspose-email-cloud/models/requests/get_contact_properties_request_data.rb +22 -9
  70. data/lib/aspose-email-cloud/models/requests/get_disc_usage_request_data.rb +6 -2
  71. data/lib/aspose-email-cloud/models/requests/get_email_as_file_request_data.rb +23 -10
  72. data/lib/aspose-email-cloud/models/requests/get_email_attachment_request_data.rb +23 -10
  73. data/lib/aspose-email-cloud/models/requests/get_email_model_list_request_data.rb +27 -11
  74. data/lib/aspose-email-cloud/models/requests/get_email_model_request_data.rb +22 -9
  75. data/lib/aspose-email-cloud/models/requests/get_email_property_request_data.rb +22 -9
  76. data/lib/aspose-email-cloud/models/requests/get_email_request_data.rb +17 -7
  77. data/lib/aspose-email-cloud/models/requests/get_file_versions_request_data.rb +12 -5
  78. data/lib/aspose-email-cloud/models/requests/get_files_list_request_data.rb +12 -5
  79. data/lib/aspose-email-cloud/models/requests/get_mapi_attachment_request_data.rb +23 -10
  80. data/lib/aspose-email-cloud/models/requests/get_mapi_attachments_request_data.rb +17 -7
  81. data/lib/aspose-email-cloud/models/requests/get_mapi_list_request_data.rb +21 -8
  82. data/lib/aspose-email-cloud/models/requests/get_mapi_properties_request_data.rb +17 -7
  83. data/lib/aspose-email-cloud/models/requests/list_email_folders_request_data.rb +27 -11
  84. data/lib/aspose-email-cloud/models/requests/list_email_messages_request_data.rb +39 -17
  85. data/lib/aspose-email-cloud/models/requests/list_email_models_request_data.rb +39 -17
  86. data/lib/aspose-email-cloud/models/requests/move_file_request_data.rb +28 -12
  87. data/lib/aspose-email-cloud/models/requests/move_folder_request_data.rb +23 -10
  88. data/lib/aspose-email-cloud/models/requests/object_exists_request_data.rb +17 -7
  89. data/lib/aspose-email-cloud/models/requests/save_calendar_model_request_data.rb +13 -6
  90. data/lib/aspose-email-cloud/models/requests/save_contact_model_request_data.rb +18 -8
  91. data/lib/aspose-email-cloud/models/requests/save_email_model_request_data.rb +18 -8
  92. data/lib/aspose-email-cloud/models/requests/save_mail_account_request_data.rb +7 -3
  93. data/lib/aspose-email-cloud/models/requests/save_mail_o_auth_account_request_data.rb +7 -3
  94. data/lib/aspose-email-cloud/models/requests/send_email_mime_request_data.rb +7 -3
  95. data/lib/aspose-email-cloud/models/requests/send_email_model_request_data.rb +7 -3
  96. data/lib/aspose-email-cloud/models/requests/send_email_request_data.rb +7 -3
  97. data/lib/aspose-email-cloud/models/requests/set_email_property_request_data.rb +18 -8
  98. data/lib/aspose-email-cloud/models/requests/set_email_read_flag_request_data.rb +7 -3
  99. data/lib/aspose-email-cloud/models/requests/storage_exists_request_data.rb +7 -3
  100. data/lib/aspose-email-cloud/models/requests/update_calendar_properties_request_data.rb +13 -6
  101. data/lib/aspose-email-cloud/models/requests/update_contact_properties_request_data.rb +18 -8
  102. data/lib/aspose-email-cloud/models/requests/update_mapi_properties_request_data.rb +13 -6
  103. data/lib/aspose-email-cloud/models/requests/upload_file_request_data.rb +18 -8
  104. data/lib/aspose-email-cloud/version.rb +1 -1
  105. metadata +12 -2
@@ -0,0 +1,320 @@
1
+ # ----------------------------------------------------------------------------
2
+ # <copyright company="Aspose" file="EmailAccountConfig.rb">
3
+ # Copyright (c) 2018-2019 Aspose Pty Ltd. All rights reserved.
4
+ # </copyright>
5
+ # <summary>
6
+ # Permission is hereby granted, free of charge, to any person obtaining a
7
+ # copy of this software and associated documentation files (the "Software"),
8
+ # to deal in the Software without restriction, including without limitation
9
+ # the rights to use, copy, modify, merge, publish, distribute, sublicense,
10
+ # and/or sell copies of the Software, and to permit persons to whom the
11
+ # Software is furnished to do so, subject to the following conditions:
12
+ #
13
+ # The above copyright notice and this permission notice shall be included in
14
+ # all copies or substantial portions of the Software.
15
+ #
16
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
+ # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
+ # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19
+ # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20
+ # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
21
+ # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
22
+ # DEALINGS IN THE SOFTWARE.
23
+ # </summary>
24
+ # ----------------------------------------------------------------------------
25
+
26
+
27
+ require 'date'
28
+
29
+ module AsposeEmailCloud
30
+ # Email account configuration.
31
+ class EmailAccountConfig
32
+ # Email account display name
33
+ # @return [String]
34
+ attr_accessor :display_name
35
+
36
+ # Type of connection protocol. Enum, available values: IMAP, POP3, SMTP, EWS, WebDav
37
+ # @return [String]
38
+ attr_accessor :protocol_type
39
+
40
+ # Email account host.
41
+ # @return [String]
42
+ attr_accessor :host
43
+
44
+ # Port.
45
+ # @return [Integer]
46
+ attr_accessor :port
47
+
48
+ # Enum, available values: None, SSLExplicit, SSLImplicit, SSLAuto, Auto
49
+ # @return [String]
50
+ attr_accessor :socket_type
51
+
52
+ # Supported authentication types. Items: Email account authentication types. Enum, available values: NoAuth, OAuth2, PasswordCleartext, PasswordEncrypted, SmtpAfterPop, ClientIpAddress
53
+ # @return [Array<String>]
54
+ attr_accessor :authentication_types
55
+
56
+ # Extra account information.
57
+ # @return [Array<NameValuePair>]
58
+ attr_accessor :extra_info
59
+
60
+ # Determines that configuration validated. Set to false if validation skipped.
61
+ # @return [BOOLEAN]
62
+ attr_accessor :is_validated
63
+
64
+ # Attribute mapping from ruby-style variable name to JSON key.
65
+ def self.attribute_map
66
+ {
67
+ :'display_name' => :'displayName',
68
+ :'protocol_type' => :'protocolType',
69
+ :'host' => :'host',
70
+ :'port' => :'port',
71
+ :'socket_type' => :'socketType',
72
+ :'authentication_types' => :'authenticationTypes',
73
+ :'extra_info' => :'extraInfo',
74
+ :'is_validated' => :'isValidated'
75
+ }
76
+ end
77
+
78
+ # Attribute type mapping.
79
+ def self.swagger_types
80
+ {
81
+ :'display_name' => :'String',
82
+ :'protocol_type' => :'String',
83
+ :'host' => :'String',
84
+ :'port' => :'Integer',
85
+ :'socket_type' => :'String',
86
+ :'authentication_types' => :'Array<String>',
87
+ :'extra_info' => :'Array<NameValuePair>',
88
+ :'is_validated' => :'BOOLEAN'
89
+ }
90
+ end
91
+
92
+ # Initializes the object
93
+ # @param [Hash] attributes Model attributes in the form of hash
94
+ def initialize(attributes = {})
95
+ return unless attributes.is_a?(Hash)
96
+
97
+ # convert string to symbol for hash key
98
+ attributes = attributes.each_with_object({}) { |(k, v), h| h[k.to_sym] = v }
99
+
100
+ if attributes.has_key?(:'displayName')
101
+ self.display_name = attributes[:'displayName']
102
+ end
103
+
104
+ if attributes.has_key?(:'protocolType')
105
+ self.protocol_type = attributes[:'protocolType']
106
+ end
107
+
108
+ if attributes.has_key?(:'host')
109
+ self.host = attributes[:'host']
110
+ end
111
+
112
+ if attributes.has_key?(:'port')
113
+ self.port = attributes[:'port']
114
+ end
115
+
116
+ if attributes.has_key?(:'socketType')
117
+ self.socket_type = attributes[:'socketType']
118
+ end
119
+
120
+ if attributes.has_key?(:'authenticationTypes')
121
+ if (value = attributes[:'authenticationTypes']).is_a?(Array)
122
+ self.authentication_types = value
123
+ end
124
+ end
125
+
126
+ if attributes.has_key?(:'extraInfo')
127
+ if (value = attributes[:'extraInfo']).is_a?(Array)
128
+ self.extra_info = value
129
+ end
130
+ end
131
+
132
+ if attributes.has_key?(:'isValidated')
133
+ self.is_validated = attributes[:'isValidated']
134
+ end
135
+ end
136
+
137
+ # Initializes the object
138
+ # @param [String] display_name Email account display name
139
+ # @param [String] protocol_type Type of connection protocol. Enum, available values: IMAP, POP3, SMTP, EWS, WebDav
140
+ # @param [String] host Email account host.
141
+ # @param [Integer] port Port.
142
+ # @param [String] socket_type Enum, available values: None, SSLExplicit, SSLImplicit, SSLAuto, Auto
143
+ # @param [Array<String>] authentication_types Supported authentication types. Items: Email account authentication types. Enum, available values: NoAuth, OAuth2, PasswordCleartext, PasswordEncrypted, SmtpAfterPop, ClientIpAddress
144
+ # @param [Array<NameValuePair>] extra_info Extra account information.
145
+ # @param [BOOLEAN] is_validated Determines that configuration validated. Set to false if validation skipped.
146
+ def initialize(display_name=nil, protocol_type=nil, host=nil, port=nil, socket_type=nil, authentication_types=nil, extra_info=nil, is_validated=nil)
147
+ self.display_name = display_name if display_name
148
+ self.protocol_type = protocol_type if protocol_type
149
+ self.host = host if host
150
+ self.port = port if port
151
+ self.socket_type = socket_type if socket_type
152
+ self.authentication_types = authentication_types if authentication_types
153
+ self.extra_info = extra_info if extra_info
154
+ self.is_validated = is_validated if is_validated
155
+ end
156
+
157
+ # Show invalid properties with the reasons. Usually used together with valid?
158
+ # @return Array for valid properties with the reasons
159
+ def list_invalid_properties
160
+ invalid_properties = Array.new
161
+ if @protocol_type.nil?
162
+ invalid_properties.push('invalid value for "protocol_type", protocol_type cannot be nil.')
163
+ end
164
+
165
+ if @socket_type.nil?
166
+ invalid_properties.push('invalid value for "socket_type", socket_type cannot be nil.')
167
+ end
168
+
169
+ if @is_validated.nil?
170
+ invalid_properties.push('invalid value for "is_validated", is_validated cannot be nil.')
171
+ end
172
+
173
+ invalid_properties
174
+ end
175
+
176
+ # Check to see if the all the properties in the model are valid
177
+ # @return true if the model is valid
178
+ def valid?
179
+ return false if @protocol_type.nil?
180
+ return false if @socket_type.nil?
181
+ return false if @is_validated.nil?
182
+ true
183
+ end
184
+
185
+ # Checks equality by comparing each attribute.
186
+ # @param [Object] Object to be compared
187
+ def ==(o)
188
+ return true if self.equal?(o)
189
+ self.class == o.class &&
190
+ display_name == o.display_name &&
191
+ protocol_type == o.protocol_type &&
192
+ host == o.host &&
193
+ port == o.port &&
194
+ socket_type == o.socket_type &&
195
+ authentication_types == o.authentication_types &&
196
+ extra_info == o.extra_info &&
197
+ is_validated == o.is_validated
198
+ end
199
+
200
+ # @see the `==` method
201
+ # @param [Object] Object to be compared
202
+ def eql?(o)
203
+ self == o
204
+ end
205
+
206
+ # Calculates hash code according to all attributes.
207
+ # @return [Fixnum] Hash code
208
+ def hash
209
+ [display_name, protocol_type, host, port, socket_type, authentication_types, extra_info, is_validated].hash
210
+ end
211
+
212
+ # Builds the object from hash
213
+ # @param [Hash] attributes Model attributes in the form of hash
214
+ # @return [Object] Returns the model itself
215
+ def build_from_hash(attributes)
216
+ return nil unless attributes.is_a?(Hash)
217
+ self.class.swagger_types.each_pair do |key, type|
218
+ attribute_key = self.class.attribute_map[key]
219
+ attribute_key = (attribute_key[0, 1].downcase + attribute_key[1..-1]).to_sym
220
+ if type =~ /\AArray<(.*)>/i
221
+ # check to ensure the input is an array given that the the attribute
222
+ # is documented as an array but the input is not
223
+ if attributes[attribute_key].is_a?(Array)
224
+ self.send("#{key}=", attributes[attribute_key].map { |v| _deserialize($1, v) })
225
+ end
226
+ elsif !attributes[attribute_key].nil?
227
+ self.send("#{key}=", _deserialize(type, attributes[attribute_key]))
228
+ end # or else data not found in attributes(hash), not an issue as the data can be optional
229
+ end
230
+
231
+ self
232
+ end
233
+
234
+ # Deserializes the data based on type
235
+ # @param string type Data type
236
+ # @param string value Value to be deserialized
237
+ # @return [Object] Deserialized data
238
+ def _deserialize(type, value)
239
+ case type.to_sym
240
+ when :DateTime
241
+ DateTime.parse(value)
242
+ when :Date
243
+ Date.parse(value)
244
+ when :String
245
+ value.to_s
246
+ when :Integer
247
+ value.to_i
248
+ when :Float
249
+ value.to_f
250
+ when :BOOLEAN
251
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
252
+ true
253
+ else
254
+ false
255
+ end
256
+ when :Object
257
+ # generic object (usually a Hash), return directly
258
+ value
259
+ when /\AArray<(?<inner_type>.+)>\z/
260
+ inner_type = Regexp.last_match[:inner_type]
261
+ value.map { |v| _deserialize(inner_type, v) }
262
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
263
+ k_type = Regexp.last_match[:k_type]
264
+ v_type = Regexp.last_match[:v_type]
265
+ {}.tap do |hash|
266
+ value.each do |k, v|
267
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
268
+ end
269
+ end
270
+ else # model
271
+ type = value[:type] || type
272
+ temp_model = AsposeEmailCloud.const_get(type).new
273
+ temp_model.build_from_hash(value)
274
+ end
275
+ end
276
+
277
+ # Returns the string representation of the object
278
+ # @return [String] String presentation of the object
279
+ def to_s
280
+ to_hash.to_s
281
+ end
282
+
283
+ # to_body is an alias to to_hash (backward compatibility)
284
+ # @return [Hash] Returns the object in the form of hash
285
+ def to_body
286
+ to_hash
287
+ end
288
+
289
+ # Returns the object in the form of hash
290
+ # @return [Hash] Returns the object in the form of hash
291
+ def to_hash
292
+ hash = {}
293
+ self.class.attribute_map.each_pair do |attr, param|
294
+ value = self.send(attr)
295
+ next if value.nil?
296
+ hash[param] = _to_hash(value)
297
+ end
298
+ hash
299
+ end
300
+
301
+ # Outputs non-array value in the form of hash
302
+ # For object, use to_hash. Otherwise, just return the value
303
+ # @param [Object] value Any valid value
304
+ # @return [Hash] Returns the value in the form of hash
305
+ def _to_hash(value)
306
+ if value.is_a?(Array)
307
+ value.compact.map { |v| _to_hash(v) }
308
+ elsif value.is_a?(Hash)
309
+ {}.tap do |hash|
310
+ value.each { |k, v| hash[k] = _to_hash(v) }
311
+ end
312
+ elsif value.respond_to? :to_hash
313
+ value.to_hash
314
+ else
315
+ value
316
+ end
317
+ end
318
+
319
+ end
320
+ end
@@ -0,0 +1,212 @@
1
+ # ----------------------------------------------------------------------------
2
+ # <copyright company="Aspose" file="EmailAccountConfigList.rb">
3
+ # Copyright (c) 2018-2019 Aspose Pty Ltd. All rights reserved.
4
+ # </copyright>
5
+ # <summary>
6
+ # Permission is hereby granted, free of charge, to any person obtaining a
7
+ # copy of this software and associated documentation files (the "Software"),
8
+ # to deal in the Software without restriction, including without limitation
9
+ # the rights to use, copy, modify, merge, publish, distribute, sublicense,
10
+ # and/or sell copies of the Software, and to permit persons to whom the
11
+ # Software is furnished to do so, subject to the following conditions:
12
+ #
13
+ # The above copyright notice and this permission notice shall be included in
14
+ # all copies or substantial portions of the Software.
15
+ #
16
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
+ # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
+ # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19
+ # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20
+ # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
21
+ # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
22
+ # DEALINGS IN THE SOFTWARE.
23
+ # </summary>
24
+ # ----------------------------------------------------------------------------
25
+
26
+
27
+ require 'date'
28
+
29
+ module AsposeEmailCloud
30
+ # List of email accounts
31
+ class EmailAccountConfigList
32
+
33
+ # @return [Array<EmailAccountConfig>]
34
+ attr_accessor :value
35
+
36
+ # Attribute mapping from ruby-style variable name to JSON key.
37
+ def self.attribute_map
38
+ {
39
+ :'value' => :'value'
40
+ }
41
+ end
42
+
43
+ # Attribute type mapping.
44
+ def self.swagger_types
45
+ {
46
+ :'value' => :'Array<EmailAccountConfig>'
47
+ }
48
+ end
49
+
50
+ # Initializes the object
51
+ # @param [Hash] attributes Model attributes in the form of hash
52
+ def initialize(attributes = {})
53
+ return unless attributes.is_a?(Hash)
54
+
55
+ # convert string to symbol for hash key
56
+ attributes = attributes.each_with_object({}) { |(k, v), h| h[k.to_sym] = v }
57
+
58
+ if attributes.has_key?(:'value')
59
+ if (value = attributes[:'value']).is_a?(Array)
60
+ self.value = value
61
+ end
62
+ end
63
+ end
64
+
65
+ # Initializes the object
66
+ # @param [Array<EmailAccountConfig>] value
67
+ def initialize(value=nil)
68
+ self.value = value if value
69
+ end
70
+
71
+ # Show invalid properties with the reasons. Usually used together with valid?
72
+ # @return Array for valid properties with the reasons
73
+ def list_invalid_properties
74
+ invalid_properties = Array.new
75
+ invalid_properties
76
+ end
77
+
78
+ # Check to see if the all the properties in the model are valid
79
+ # @return true if the model is valid
80
+ def valid?
81
+ true
82
+ end
83
+
84
+ # Checks equality by comparing each attribute.
85
+ # @param [Object] Object to be compared
86
+ def ==(o)
87
+ return true if self.equal?(o)
88
+ self.class == o.class &&
89
+ value == o.value
90
+ end
91
+
92
+ # @see the `==` method
93
+ # @param [Object] Object to be compared
94
+ def eql?(o)
95
+ self == o
96
+ end
97
+
98
+ # Calculates hash code according to all attributes.
99
+ # @return [Fixnum] Hash code
100
+ def hash
101
+ [value].hash
102
+ end
103
+
104
+ # Builds the object from hash
105
+ # @param [Hash] attributes Model attributes in the form of hash
106
+ # @return [Object] Returns the model itself
107
+ def build_from_hash(attributes)
108
+ return nil unless attributes.is_a?(Hash)
109
+ self.class.swagger_types.each_pair do |key, type|
110
+ attribute_key = self.class.attribute_map[key]
111
+ attribute_key = (attribute_key[0, 1].downcase + attribute_key[1..-1]).to_sym
112
+ if type =~ /\AArray<(.*)>/i
113
+ # check to ensure the input is an array given that the the attribute
114
+ # is documented as an array but the input is not
115
+ if attributes[attribute_key].is_a?(Array)
116
+ self.send("#{key}=", attributes[attribute_key].map { |v| _deserialize($1, v) })
117
+ end
118
+ elsif !attributes[attribute_key].nil?
119
+ self.send("#{key}=", _deserialize(type, attributes[attribute_key]))
120
+ end # or else data not found in attributes(hash), not an issue as the data can be optional
121
+ end
122
+
123
+ self
124
+ end
125
+
126
+ # Deserializes the data based on type
127
+ # @param string type Data type
128
+ # @param string value Value to be deserialized
129
+ # @return [Object] Deserialized data
130
+ def _deserialize(type, value)
131
+ case type.to_sym
132
+ when :DateTime
133
+ DateTime.parse(value)
134
+ when :Date
135
+ Date.parse(value)
136
+ when :String
137
+ value.to_s
138
+ when :Integer
139
+ value.to_i
140
+ when :Float
141
+ value.to_f
142
+ when :BOOLEAN
143
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
144
+ true
145
+ else
146
+ false
147
+ end
148
+ when :Object
149
+ # generic object (usually a Hash), return directly
150
+ value
151
+ when /\AArray<(?<inner_type>.+)>\z/
152
+ inner_type = Regexp.last_match[:inner_type]
153
+ value.map { |v| _deserialize(inner_type, v) }
154
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
155
+ k_type = Regexp.last_match[:k_type]
156
+ v_type = Regexp.last_match[:v_type]
157
+ {}.tap do |hash|
158
+ value.each do |k, v|
159
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
160
+ end
161
+ end
162
+ else # model
163
+ type = value[:type] || type
164
+ temp_model = AsposeEmailCloud.const_get(type).new
165
+ temp_model.build_from_hash(value)
166
+ end
167
+ end
168
+
169
+ # Returns the string representation of the object
170
+ # @return [String] String presentation of the object
171
+ def to_s
172
+ to_hash.to_s
173
+ end
174
+
175
+ # to_body is an alias to to_hash (backward compatibility)
176
+ # @return [Hash] Returns the object in the form of hash
177
+ def to_body
178
+ to_hash
179
+ end
180
+
181
+ # Returns the object in the form of hash
182
+ # @return [Hash] Returns the object in the form of hash
183
+ def to_hash
184
+ hash = {}
185
+ self.class.attribute_map.each_pair do |attr, param|
186
+ value = self.send(attr)
187
+ next if value.nil?
188
+ hash[param] = _to_hash(value)
189
+ end
190
+ hash
191
+ end
192
+
193
+ # Outputs non-array value in the form of hash
194
+ # For object, use to_hash. Otherwise, just return the value
195
+ # @param [Object] value Any valid value
196
+ # @return [Hash] Returns the value in the form of hash
197
+ def _to_hash(value)
198
+ if value.is_a?(Array)
199
+ value.compact.map { |v| _to_hash(v) }
200
+ elsif value.is_a?(Hash)
201
+ {}.tap do |hash|
202
+ value.each { |k, v| hash[k] = _to_hash(v) }
203
+ end
204
+ elsif value.respond_to? :to_hash
205
+ value.to_hash
206
+ else
207
+ value
208
+ end
209
+ end
210
+
211
+ end
212
+ end