aspose_email_cloud 20.1.0 → 20.2.0

Sign up to get free protection for your applications and to get access to all the features.
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