aspose_email_cloud 20.5.0 → 20.7.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 (95) hide show
  1. checksums.yaml +4 -4
  2. data/lib/aspose-email-cloud.rb +74 -0
  3. data/lib/aspose-email-cloud/api/email_api.rb +147 -0
  4. data/lib/aspose-email-cloud/models/ai_bcr_image_storage_file.rb +3 -3
  5. data/lib/aspose-email-cloud/models/ai_bcr_parse_storage_rq.rb +3 -3
  6. data/lib/aspose-email-cloud/models/append_email_base_request.rb +3 -3
  7. data/lib/aspose-email-cloud/models/append_email_model_rq.rb +3 -3
  8. data/lib/aspose-email-cloud/models/calendar_dto.rb +17 -4
  9. data/lib/aspose-email-cloud/models/contact_photo.rb +29 -5
  10. data/lib/aspose-email-cloud/models/daily_recurrence_pattern_dto.rb +296 -0
  11. data/lib/aspose-email-cloud/models/mapi_attachment_dto.rb +226 -0
  12. data/lib/aspose-email-cloud/models/mapi_binary_property_dto.rb +250 -0
  13. data/lib/aspose-email-cloud/models/mapi_boolean_property_dto.rb +255 -0
  14. data/lib/aspose-email-cloud/models/mapi_calendar_attendees_dto.rb +266 -0
  15. data/lib/aspose-email-cloud/models/mapi_calendar_daily_recurrence_pattern_dto.rb +464 -0
  16. data/lib/aspose-email-cloud/models/mapi_calendar_dto.rb +728 -0
  17. data/lib/aspose-email-cloud/models/mapi_calendar_event_recurrence_dto.rb +293 -0
  18. data/lib/aspose-email-cloud/models/mapi_calendar_exception_info_dto.rb +431 -0
  19. data/lib/aspose-email-cloud/models/mapi_calendar_recurrence_pattern_dto.rb +449 -0
  20. data/lib/aspose-email-cloud/models/mapi_calendar_time_zone_dto.rb +228 -0
  21. data/lib/aspose-email-cloud/models/mapi_calendar_time_zone_info_dto.rb +313 -0
  22. data/lib/aspose-email-cloud/models/mapi_calendar_time_zone_rule_dto.rb +362 -0
  23. data/lib/aspose-email-cloud/models/mapi_calendar_weekly_recurrence_pattern_dto.rb +464 -0
  24. data/lib/aspose-email-cloud/models/mapi_calendar_yearly_and_monthly_recurrence_pattern_dto.rb +500 -0
  25. data/lib/aspose-email-cloud/models/mapi_contact_dto.rb +569 -0
  26. data/lib/aspose-email-cloud/models/mapi_contact_electronic_address_dto.rb +283 -0
  27. data/lib/aspose-email-cloud/models/mapi_contact_electronic_address_property_set_dto.rb +327 -0
  28. data/lib/aspose-email-cloud/models/mapi_contact_event_property_set_dto.rb +236 -0
  29. data/lib/aspose-email-cloud/models/mapi_contact_name_property_set_dto.rb +335 -0
  30. data/lib/aspose-email-cloud/models/mapi_contact_other_property_set_dto.rb +319 -0
  31. data/lib/aspose-email-cloud/models/mapi_contact_personal_info_property_set_dto.rb +454 -0
  32. data/lib/aspose-email-cloud/models/mapi_contact_photo_dto.rb +255 -0
  33. data/lib/aspose-email-cloud/models/mapi_contact_physical_address_dto.rb +322 -0
  34. data/lib/aspose-email-cloud/models/mapi_contact_physical_address_property_set_dto.rb +239 -0
  35. data/lib/aspose-email-cloud/models/mapi_contact_professional_property_set_dto.rb +291 -0
  36. data/lib/aspose-email-cloud/models/mapi_contact_telephone_property_set_dto.rb +457 -0
  37. data/lib/aspose-email-cloud/models/mapi_date_time_property_dto.rb +255 -0
  38. data/lib/aspose-email-cloud/models/mapi_electronic_address_dto.rb +265 -0
  39. data/lib/aspose-email-cloud/models/mapi_file_as_property_dto.rb +255 -0
  40. data/lib/aspose-email-cloud/models/mapi_importance_property_dto.rb +255 -0
  41. data/lib/aspose-email-cloud/models/mapi_int_property_dto.rb +255 -0
  42. data/lib/aspose-email-cloud/models/mapi_known_property_descriptor.rb +237 -0
  43. data/lib/aspose-email-cloud/models/mapi_legacy_free_busy_property_dto.rb +255 -0
  44. data/lib/aspose-email-cloud/models/mapi_message_dto.rb +801 -0
  45. data/lib/aspose-email-cloud/models/mapi_message_item_base_dto.rb +452 -0
  46. data/lib/aspose-email-cloud/models/mapi_multi_int_property_dto.rb +252 -0
  47. data/lib/aspose-email-cloud/models/mapi_multi_string_property_dto.rb +252 -0
  48. data/lib/aspose-email-cloud/models/mapi_physical_address_index_property_dto.rb +255 -0
  49. data/lib/aspose-email-cloud/models/mapi_pid_lid_property_descriptor.rb +322 -0
  50. data/lib/aspose-email-cloud/models/mapi_pid_name_property_descriptor.rb +304 -0
  51. data/lib/aspose-email-cloud/models/mapi_pid_property_descriptor.rb +286 -0
  52. data/lib/aspose-email-cloud/models/mapi_pid_tag_property_descriptor.rb +322 -0
  53. data/lib/aspose-email-cloud/models/mapi_property_descriptor.rb +224 -0
  54. data/lib/aspose-email-cloud/models/mapi_property_dto.rb +237 -0
  55. data/lib/aspose-email-cloud/models/mapi_recipient_dto.rb +257 -0
  56. data/lib/aspose-email-cloud/models/mapi_response_type_property_dto.rb +255 -0
  57. data/lib/aspose-email-cloud/models/mapi_string_property_dto.rb +250 -0
  58. data/lib/aspose-email-cloud/models/monthly_recurrence_pattern_dto.rb +350 -0
  59. data/lib/aspose-email-cloud/models/recurrence_pattern_dto.rb +296 -0
  60. data/lib/aspose-email-cloud/models/requests/convert_calendar_model_to_mapi_model_request_data.rb +79 -0
  61. data/lib/aspose-email-cloud/models/requests/convert_contact_model_to_mapi_model_request_data.rb +79 -0
  62. data/lib/aspose-email-cloud/models/requests/convert_email_model_to_file_request_data.rb +2 -2
  63. data/lib/aspose-email-cloud/models/requests/convert_email_model_to_mapi_model_request_data.rb +79 -0
  64. data/lib/aspose-email-cloud/models/requests/convert_email_request_data.rb +2 -2
  65. data/lib/aspose-email-cloud/models/requests/convert_mapi_calendar_model_to_calendar_model_request_data.rb +79 -0
  66. data/lib/aspose-email-cloud/models/requests/convert_mapi_calendar_model_to_file_request_data.rb +89 -0
  67. data/lib/aspose-email-cloud/models/requests/convert_mapi_contact_model_to_contact_model_request_data.rb +79 -0
  68. data/lib/aspose-email-cloud/models/requests/convert_mapi_contact_model_to_file_request_data.rb +89 -0
  69. data/lib/aspose-email-cloud/models/requests/convert_mapi_message_model_to_email_model_request_data.rb +79 -0
  70. data/lib/aspose-email-cloud/models/requests/convert_mapi_message_model_to_file_request_data.rb +89 -0
  71. data/lib/aspose-email-cloud/models/requests/get_calendar_file_as_mapi_model_request_data.rb +80 -0
  72. data/lib/aspose-email-cloud/models/requests/get_contact_file_as_mapi_model_request_data.rb +90 -0
  73. data/lib/aspose-email-cloud/models/requests/get_email_as_file_request_data.rb +2 -2
  74. data/lib/aspose-email-cloud/models/requests/get_email_file_as_mapi_model_request_data.rb +90 -0
  75. data/lib/aspose-email-cloud/models/requests/get_email_model_list_request_data.rb +2 -2
  76. data/lib/aspose-email-cloud/models/requests/get_email_model_request_data.rb +2 -2
  77. data/lib/aspose-email-cloud/models/requests/get_mapi_calendar_model_request_data.rb +91 -0
  78. data/lib/aspose-email-cloud/models/requests/get_mapi_contact_model_request_data.rb +101 -0
  79. data/lib/aspose-email-cloud/models/requests/get_mapi_message_model_request_data.rb +101 -0
  80. data/lib/aspose-email-cloud/models/requests/save_calendar_model_request_data.rb +2 -2
  81. data/lib/aspose-email-cloud/models/requests/save_contact_model_request_data.rb +2 -2
  82. data/lib/aspose-email-cloud/models/requests/save_email_model_request_data.rb +4 -4
  83. data/lib/aspose-email-cloud/models/requests/save_mapi_calendar_model_request_data.rb +99 -0
  84. data/lib/aspose-email-cloud/models/requests/save_mapi_contact_model_request_data.rb +99 -0
  85. data/lib/aspose-email-cloud/models/requests/save_mapi_message_model_request_data.rb +99 -0
  86. data/lib/aspose-email-cloud/models/send_email_base_request.rb +3 -3
  87. data/lib/aspose-email-cloud/models/send_email_model_rq.rb +3 -3
  88. data/lib/aspose-email-cloud/models/storage_model_rq_of_mapi_calendar_dto.rb +225 -0
  89. data/lib/aspose-email-cloud/models/storage_model_rq_of_mapi_contact_dto.rb +225 -0
  90. data/lib/aspose-email-cloud/models/storage_model_rq_of_mapi_message_dto.rb +225 -0
  91. data/lib/aspose-email-cloud/models/task_regenerating_pattern_dto.rb +314 -0
  92. data/lib/aspose-email-cloud/models/weekly_recurrence_pattern_dto.rb +311 -0
  93. data/lib/aspose-email-cloud/models/yearly_recurrence_pattern_dto.rb +368 -0
  94. data/lib/aspose-email-cloud/version.rb +1 -1
  95. metadata +76 -2
@@ -0,0 +1,255 @@
1
+ # ----------------------------------------------------------------------------
2
+ # <copyright company="Aspose" file="MapiLegacyFreeBusyPropertyDto.rb">
3
+ # Copyright (c) 2018-2020 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
+ # Mapi property with LegacyFreeBusyType value
31
+ class MapiLegacyFreeBusyPropertyDto
32
+ # Property descriptor
33
+ # @return [MapiPropertyDescriptor]
34
+ attr_accessor :descriptor
35
+
36
+
37
+ # @return [String]
38
+ def discriminator #getter method
39
+ self.class.name.split('::').last
40
+ end
41
+
42
+ def discriminator=(discriminator) #setter method, parameter ignored
43
+ @discriminator = self.class.name.split('::').last
44
+ end
45
+
46
+ # Represents the free/busy status for a calendar event. Enum, available values: Free, Tentative, Busy, Oof, WorkingElsewhere, NoData
47
+ # @return [String]
48
+ attr_accessor :value
49
+
50
+ # Attribute mapping from ruby-style variable name to JSON key.
51
+ def self.attribute_map
52
+ {
53
+ :'descriptor' => :'descriptor',
54
+ :'discriminator' => :'discriminator',
55
+ :'value' => :'value'
56
+ }
57
+ end
58
+
59
+ # Attribute type mapping.
60
+ def self.swagger_types
61
+ {
62
+ :'descriptor' => :'MapiPropertyDescriptor',
63
+ :'discriminator' => :'String',
64
+ :'value' => :'String'
65
+ }
66
+ end
67
+
68
+ # Initializes the object
69
+ # @param [Hash] attributes Model attributes in the form of hash
70
+ def initialize(attributes = {})
71
+ return unless attributes.is_a?(Hash)
72
+
73
+ # convert string to symbol for hash key
74
+ attributes = attributes.each_with_object({}) { |(k, v), h| h[k.to_sym] = v }
75
+
76
+ if attributes.has_key?(:'descriptor')
77
+ self.descriptor = attributes[:'descriptor']
78
+ end
79
+
80
+ if attributes.has_key?(:'discriminator')
81
+ @discriminator = self.class.name.split('::').last
82
+ end
83
+
84
+ if attributes.has_key?(:'value')
85
+ self.value = attributes[:'value']
86
+ end
87
+ end
88
+
89
+ # Initializes the object
90
+ # @param [MapiPropertyDescriptor] descriptor Property descriptor
91
+ # @param [String] discriminator
92
+ # @param [String] value Represents the free/busy status for a calendar event. Enum, available values: Free, Tentative, Busy, Oof, WorkingElsewhere, NoData
93
+ def initialize(descriptor=nil, discriminator=nil, value=nil)
94
+ self.descriptor = descriptor if descriptor
95
+ @discriminator = self.class.name.split('::').last
96
+ self.value = value if value
97
+ end
98
+
99
+ # Show invalid properties with the reasons. Usually used together with valid?
100
+ # @return Array for valid properties with the reasons
101
+ def list_invalid_properties
102
+ invalid_properties = Array.new
103
+ if @discriminator.nil?
104
+ invalid_properties.push('invalid value for "discriminator", discriminator cannot be nil.')
105
+ end
106
+
107
+ if @value.nil?
108
+ invalid_properties.push('invalid value for "value", value cannot be nil.')
109
+ end
110
+
111
+ invalid_properties
112
+ end
113
+
114
+ # Check to see if the all the properties in the model are valid
115
+ # @return true if the model is valid
116
+ def valid?
117
+ return false if @discriminator.nil?
118
+ return false if @value.nil?
119
+ true
120
+ end
121
+
122
+ # Checks equality by comparing each attribute.
123
+ # @param [Object] Object to be compared
124
+ def ==(o)
125
+ return true if self.equal?(o)
126
+ self.class == o.class &&
127
+ descriptor == o.descriptor &&
128
+ discriminator == o.discriminator &&
129
+ value == o.value
130
+ end
131
+
132
+ # @see the `==` method
133
+ # @param [Object] Object to be compared
134
+ def eql?(o)
135
+ self == o
136
+ end
137
+
138
+ # Calculates hash code according to all attributes.
139
+ # @return [Fixnum] Hash code
140
+ def hash
141
+ [descriptor, discriminator, value].hash
142
+ end
143
+
144
+ # Builds the object from hash
145
+ # @param [Hash] attributes Model attributes in the form of hash
146
+ # @return [Object] Returns the model itself
147
+ def build_from_hash(attributes)
148
+ return nil unless attributes.is_a?(Hash)
149
+ self.class.swagger_types.each_pair do |key, type|
150
+ attribute_key = self.class.attribute_map[key]
151
+ attribute_key = (attribute_key[0, 1].downcase + attribute_key[1..-1]).to_sym
152
+ if type =~ /\AArray<(.*)>/i
153
+ # check to ensure the input is an array given that the the attribute
154
+ # is documented as an array but the input is not
155
+ if attributes[attribute_key].is_a?(Array)
156
+ self.send("#{key}=", attributes[attribute_key].map { |v| _deserialize($1, v) })
157
+ end
158
+ elsif !attributes[attribute_key].nil?
159
+ self.send("#{key}=", _deserialize(type, attributes[attribute_key]))
160
+ end # or else data not found in attributes(hash), not an issue as the data can be optional
161
+ end
162
+
163
+ self
164
+ end
165
+
166
+ # Deserializes the data based on type
167
+ # @param string type Data type
168
+ # @param string value Value to be deserialized
169
+ # @return [Object] Deserialized data
170
+ def _deserialize(type, value)
171
+ case type.to_sym
172
+ when :DateTime
173
+ DateTime.parse(value)
174
+ when :Date
175
+ Date.parse(value)
176
+ when :String
177
+ value.to_s
178
+ when :Integer
179
+ value.to_i
180
+ when :Float
181
+ value.to_f
182
+ when :BOOLEAN
183
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
184
+ true
185
+ else
186
+ false
187
+ end
188
+ when :Object
189
+ # generic object (usually a Hash), return directly
190
+ value
191
+ when /\AArray<(?<inner_type>.+)>\z/
192
+ inner_type = Regexp.last_match[:inner_type]
193
+ value.map { |v| _deserialize(inner_type, v) }
194
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
195
+ k_type = Regexp.last_match[:k_type]
196
+ v_type = Regexp.last_match[:v_type]
197
+ {}.tap do |hash|
198
+ value.each do |k, v|
199
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
200
+ end
201
+ end
202
+ else # model
203
+ sub_type = value[:type] || value[:discriminator] || type
204
+ if AsposeEmailCloud.const_defined?(sub_type)
205
+ type = sub_type
206
+ end
207
+ temp_model = AsposeEmailCloud.const_get(type).new
208
+ temp_model.build_from_hash(value)
209
+ end
210
+ end
211
+
212
+ # Returns the string representation of the object
213
+ # @return [String] String presentation of the object
214
+ def to_s
215
+ to_hash.to_s
216
+ end
217
+
218
+ # to_body is an alias to to_hash (backward compatibility)
219
+ # @return [Hash] Returns the object in the form of hash
220
+ def to_body
221
+ to_hash
222
+ end
223
+
224
+ # Returns the object in the form of hash
225
+ # @return [Hash] Returns the object in the form of hash
226
+ def to_hash
227
+ hash = {}
228
+ self.class.attribute_map.each_pair do |attr, param|
229
+ value = self.send(attr)
230
+ next if value.nil?
231
+ hash[param] = _to_hash(value)
232
+ end
233
+ hash
234
+ end
235
+
236
+ # Outputs non-array value in the form of hash
237
+ # For object, use to_hash. Otherwise, just return the value
238
+ # @param [Object] value Any valid value
239
+ # @return [Hash] Returns the value in the form of hash
240
+ def _to_hash(value)
241
+ if value.is_a?(Array)
242
+ value.compact.map { |v| _to_hash(v) }
243
+ elsif value.is_a?(Hash)
244
+ {}.tap do |hash|
245
+ value.each { |k, v| hash[k] = _to_hash(v) }
246
+ end
247
+ elsif value.respond_to? :to_hash
248
+ value.to_hash
249
+ else
250
+ value
251
+ end
252
+ end
253
+
254
+ end
255
+ end
@@ -0,0 +1,801 @@
1
+ # ----------------------------------------------------------------------------
2
+ # <copyright company="Aspose" file="MapiMessageDto.rb">
3
+ # Copyright (c) 2018-2020 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
+ # Represents an Outlook Message format document.
31
+ class MapiMessageDto
32
+ # Message item attachments.
33
+ # @return [Array<MapiAttachmentDto>]
34
+ attr_accessor :attachments
35
+
36
+ # Billing information associated with an item.
37
+ # @return [String]
38
+ attr_accessor :billing
39
+
40
+ # Message text.
41
+ # @return [String]
42
+ attr_accessor :body
43
+
44
+ # Gets the BodyRtf of the message converted to HTML, if present, otherwise an empty string.
45
+ # @return [String]
46
+ attr_accessor :body_html
47
+
48
+ # RTF formatted message text.
49
+ # @return [String]
50
+ attr_accessor :body_rtf
51
+
52
+ # The content type of message body. Enum, available values: PlainText, Html, Rtf
53
+ # @return [String]
54
+ attr_accessor :body_type
55
+
56
+ # Contains keywords or categories for the message object.
57
+ # @return [Array<String>]
58
+ attr_accessor :categories
59
+
60
+ # Contains the names of the companies that are associated with an item.
61
+ # @return [Array<String>]
62
+ attr_accessor :companies
63
+
64
+ # The item id, uses with a server.
65
+ # @return [String]
66
+ attr_accessor :item_id
67
+
68
+ # Case-sensitive string that identifies the sender-defined message class, such as IPM.Note. The message class specifies the type, purpose, or content of the message.
69
+ # @return [String]
70
+ attr_accessor :message_class
71
+
72
+ # Contains the mileage information that is associated with an item.
73
+ # @return [String]
74
+ attr_accessor :mileage
75
+
76
+ # Recipients of the message.
77
+ # @return [Array<MapiRecipientDto>]
78
+ attr_accessor :recipients
79
+
80
+ # Contains values that indicate the message sensitivity. Enum, available values: None, Personal, Private, CompanyConfidential
81
+ # @return [String]
82
+ attr_accessor :sensitivity
83
+
84
+ # Subject of the message.
85
+ # @return [String]
86
+ attr_accessor :subject
87
+
88
+ # Subject prefix that typically indicates some action on a message, such as \"FW: \" for forwarding.
89
+ # @return [String]
90
+ attr_accessor :subject_prefix
91
+
92
+ # List of MAPI properties
93
+ # @return [Array<MapiPropertyDto>]
94
+ attr_accessor :properties
95
+
96
+
97
+ # @return [String]
98
+ def discriminator #getter method
99
+ self.class.name.split('::').last
100
+ end
101
+
102
+ def discriminator=(discriminator) #setter method, parameter ignored
103
+ @discriminator = self.class.name.split('::').last
104
+ end
105
+
106
+ # Message text
107
+ # @return [String]
108
+ attr_accessor :message_body
109
+
110
+ # Date and time the message sender submitted a message.
111
+ # @return [DateTime]
112
+ attr_accessor :client_submit_time
113
+
114
+ # Topic of the first message in a conversation thread.
115
+ # @return [String]
116
+ attr_accessor :conversation_topic
117
+
118
+ # Date and time a message was delivered.
119
+ # @return [DateTime]
120
+ attr_accessor :delivery_time
121
+
122
+ # List of the display names of any blind carbon copy (BCC) message recipients, separated by semicolons (;).
123
+ # @return [String]
124
+ attr_accessor :display_bcc
125
+
126
+ # List of the display names of any carbon copy (CC) message recipients, separated by semicolons (;).
127
+ # @return [String]
128
+ attr_accessor :display_cc
129
+
130
+ # Display name for the message.
131
+ # @return [String]
132
+ attr_accessor :display_name
133
+
134
+ # Prefix of the display name.
135
+ # @return [String]
136
+ attr_accessor :display_name_prefix
137
+
138
+ # List of the display names of the primary (To) message recipients, separated by semicolons (;).
139
+ # @return [String]
140
+ attr_accessor :display_to
141
+
142
+ # Message flags. Items: Mapi message flags. Enum, available values: MsgFlagZero, MsgFlagRead, MsgFlagUnmodified, MsgFlagSubmit, MsgFlagUnsent, MsgFlagHasAttach, MsgFlagFromMe, MsgFlagAssociated, MsgFlagResend, MsgFlagNotifyRead, MsgFlagNotifyUnread, MsgFlagEverRead, MsgFlagOriginX400, MsgFlagOriginInternet, MsgFlagOriginMiscExt
143
+ # @return [Array<String>]
144
+ attr_accessor :flags
145
+
146
+ # Transport message headers
147
+ # @return [Hash<String, String>]
148
+ attr_accessor :headers
149
+
150
+ # Internet message id of the message.
151
+ # @return [String]
152
+ attr_accessor :internet_message_id
153
+
154
+ # Represents outlook message format. Enum, available values: Ascii, Unicode
155
+ # @return [String]
156
+ attr_accessor :message_format
157
+
158
+ # Normalized subject of the message.
159
+ # @return [String]
160
+ attr_accessor :normalized_subject
161
+
162
+ # Value indicating whether the read receipt is requested.
163
+ # @return [BOOLEAN]
164
+ attr_accessor :read_receipt_requested
165
+
166
+ # Reply to names.
167
+ # @return [String]
168
+ attr_accessor :reply_to
169
+
170
+ # Message sender's e-mail address type.
171
+ # @return [String]
172
+ attr_accessor :sender_address_type
173
+
174
+ # Message sender's e-mail address.
175
+ # @return [String]
176
+ attr_accessor :sender_email_address
177
+
178
+ # Message sender's display name.
179
+ # @return [String]
180
+ attr_accessor :sender_name
181
+
182
+ # Message sender's e-mail address.
183
+ # @return [String]
184
+ attr_accessor :sender_smtp_address
185
+
186
+ # Address type for the messaging user represented by the sender.
187
+ # @return [String]
188
+ attr_accessor :sent_representing_address_type
189
+
190
+ # E-mail address for the messaging user represented by the sender.
191
+ # @return [String]
192
+ attr_accessor :sent_representing_email_address
193
+
194
+ # Display name for the messaging user represented by the sender.
195
+ # @return [String]
196
+ attr_accessor :sent_representing_name
197
+
198
+ # E-mail address for the messaging user represented by the sender.
199
+ # @return [String]
200
+ attr_accessor :sent_representing_smtp_address
201
+
202
+ # Transport-specific message envelope information.
203
+ # @return [String]
204
+ attr_accessor :transport_message_headers
205
+
206
+ # Attribute mapping from ruby-style variable name to JSON key.
207
+ def self.attribute_map
208
+ {
209
+ :'attachments' => :'attachments',
210
+ :'billing' => :'billing',
211
+ :'body' => :'body',
212
+ :'body_html' => :'bodyHtml',
213
+ :'body_rtf' => :'bodyRtf',
214
+ :'body_type' => :'bodyType',
215
+ :'categories' => :'categories',
216
+ :'companies' => :'companies',
217
+ :'item_id' => :'itemId',
218
+ :'message_class' => :'messageClass',
219
+ :'mileage' => :'mileage',
220
+ :'recipients' => :'recipients',
221
+ :'sensitivity' => :'sensitivity',
222
+ :'subject' => :'subject',
223
+ :'subject_prefix' => :'subjectPrefix',
224
+ :'properties' => :'properties',
225
+ :'discriminator' => :'discriminator',
226
+ :'message_body' => :'messageBody',
227
+ :'client_submit_time' => :'clientSubmitTime',
228
+ :'conversation_topic' => :'conversationTopic',
229
+ :'delivery_time' => :'deliveryTime',
230
+ :'display_bcc' => :'displayBcc',
231
+ :'display_cc' => :'displayCc',
232
+ :'display_name' => :'displayName',
233
+ :'display_name_prefix' => :'displayNamePrefix',
234
+ :'display_to' => :'displayTo',
235
+ :'flags' => :'flags',
236
+ :'headers' => :'headers',
237
+ :'internet_message_id' => :'internetMessageId',
238
+ :'message_format' => :'messageFormat',
239
+ :'normalized_subject' => :'normalizedSubject',
240
+ :'read_receipt_requested' => :'readReceiptRequested',
241
+ :'reply_to' => :'replyTo',
242
+ :'sender_address_type' => :'senderAddressType',
243
+ :'sender_email_address' => :'senderEmailAddress',
244
+ :'sender_name' => :'senderName',
245
+ :'sender_smtp_address' => :'senderSmtpAddress',
246
+ :'sent_representing_address_type' => :'sentRepresentingAddressType',
247
+ :'sent_representing_email_address' => :'sentRepresentingEmailAddress',
248
+ :'sent_representing_name' => :'sentRepresentingName',
249
+ :'sent_representing_smtp_address' => :'sentRepresentingSmtpAddress',
250
+ :'transport_message_headers' => :'transportMessageHeaders'
251
+ }
252
+ end
253
+
254
+ # Attribute type mapping.
255
+ def self.swagger_types
256
+ {
257
+ :'attachments' => :'Array<MapiAttachmentDto>',
258
+ :'billing' => :'String',
259
+ :'body' => :'String',
260
+ :'body_html' => :'String',
261
+ :'body_rtf' => :'String',
262
+ :'body_type' => :'String',
263
+ :'categories' => :'Array<String>',
264
+ :'companies' => :'Array<String>',
265
+ :'item_id' => :'String',
266
+ :'message_class' => :'String',
267
+ :'mileage' => :'String',
268
+ :'recipients' => :'Array<MapiRecipientDto>',
269
+ :'sensitivity' => :'String',
270
+ :'subject' => :'String',
271
+ :'subject_prefix' => :'String',
272
+ :'properties' => :'Array<MapiPropertyDto>',
273
+ :'discriminator' => :'String',
274
+ :'message_body' => :'String',
275
+ :'client_submit_time' => :'DateTime',
276
+ :'conversation_topic' => :'String',
277
+ :'delivery_time' => :'DateTime',
278
+ :'display_bcc' => :'String',
279
+ :'display_cc' => :'String',
280
+ :'display_name' => :'String',
281
+ :'display_name_prefix' => :'String',
282
+ :'display_to' => :'String',
283
+ :'flags' => :'Array<String>',
284
+ :'headers' => :'Hash<String, String>',
285
+ :'internet_message_id' => :'String',
286
+ :'message_format' => :'String',
287
+ :'normalized_subject' => :'String',
288
+ :'read_receipt_requested' => :'BOOLEAN',
289
+ :'reply_to' => :'String',
290
+ :'sender_address_type' => :'String',
291
+ :'sender_email_address' => :'String',
292
+ :'sender_name' => :'String',
293
+ :'sender_smtp_address' => :'String',
294
+ :'sent_representing_address_type' => :'String',
295
+ :'sent_representing_email_address' => :'String',
296
+ :'sent_representing_name' => :'String',
297
+ :'sent_representing_smtp_address' => :'String',
298
+ :'transport_message_headers' => :'String'
299
+ }
300
+ end
301
+
302
+ # Initializes the object
303
+ # @param [Hash] attributes Model attributes in the form of hash
304
+ def initialize(attributes = {})
305
+ return unless attributes.is_a?(Hash)
306
+
307
+ # convert string to symbol for hash key
308
+ attributes = attributes.each_with_object({}) { |(k, v), h| h[k.to_sym] = v }
309
+
310
+ if attributes.has_key?(:'attachments')
311
+ if (value = attributes[:'attachments']).is_a?(Array)
312
+ self.attachments = value
313
+ end
314
+ end
315
+
316
+ if attributes.has_key?(:'billing')
317
+ self.billing = attributes[:'billing']
318
+ end
319
+
320
+ if attributes.has_key?(:'body')
321
+ self.body = attributes[:'body']
322
+ end
323
+
324
+ if attributes.has_key?(:'bodyHtml')
325
+ self.body_html = attributes[:'bodyHtml']
326
+ end
327
+
328
+ if attributes.has_key?(:'bodyRtf')
329
+ self.body_rtf = attributes[:'bodyRtf']
330
+ end
331
+
332
+ if attributes.has_key?(:'bodyType')
333
+ self.body_type = attributes[:'bodyType']
334
+ end
335
+
336
+ if attributes.has_key?(:'categories')
337
+ if (value = attributes[:'categories']).is_a?(Array)
338
+ self.categories = value
339
+ end
340
+ end
341
+
342
+ if attributes.has_key?(:'companies')
343
+ if (value = attributes[:'companies']).is_a?(Array)
344
+ self.companies = value
345
+ end
346
+ end
347
+
348
+ if attributes.has_key?(:'itemId')
349
+ self.item_id = attributes[:'itemId']
350
+ end
351
+
352
+ if attributes.has_key?(:'messageClass')
353
+ self.message_class = attributes[:'messageClass']
354
+ end
355
+
356
+ if attributes.has_key?(:'mileage')
357
+ self.mileage = attributes[:'mileage']
358
+ end
359
+
360
+ if attributes.has_key?(:'recipients')
361
+ if (value = attributes[:'recipients']).is_a?(Array)
362
+ self.recipients = value
363
+ end
364
+ end
365
+
366
+ if attributes.has_key?(:'sensitivity')
367
+ self.sensitivity = attributes[:'sensitivity']
368
+ end
369
+
370
+ if attributes.has_key?(:'subject')
371
+ self.subject = attributes[:'subject']
372
+ end
373
+
374
+ if attributes.has_key?(:'subjectPrefix')
375
+ self.subject_prefix = attributes[:'subjectPrefix']
376
+ end
377
+
378
+ if attributes.has_key?(:'properties')
379
+ if (value = attributes[:'properties']).is_a?(Array)
380
+ self.properties = value
381
+ end
382
+ end
383
+
384
+ if attributes.has_key?(:'discriminator')
385
+ @discriminator = self.class.name.split('::').last
386
+ end
387
+
388
+ if attributes.has_key?(:'messageBody')
389
+ self.message_body = attributes[:'messageBody']
390
+ end
391
+
392
+ if attributes.has_key?(:'clientSubmitTime')
393
+ self.client_submit_time = attributes[:'clientSubmitTime']
394
+ end
395
+
396
+ if attributes.has_key?(:'conversationTopic')
397
+ self.conversation_topic = attributes[:'conversationTopic']
398
+ end
399
+
400
+ if attributes.has_key?(:'deliveryTime')
401
+ self.delivery_time = attributes[:'deliveryTime']
402
+ end
403
+
404
+ if attributes.has_key?(:'displayBcc')
405
+ self.display_bcc = attributes[:'displayBcc']
406
+ end
407
+
408
+ if attributes.has_key?(:'displayCc')
409
+ self.display_cc = attributes[:'displayCc']
410
+ end
411
+
412
+ if attributes.has_key?(:'displayName')
413
+ self.display_name = attributes[:'displayName']
414
+ end
415
+
416
+ if attributes.has_key?(:'displayNamePrefix')
417
+ self.display_name_prefix = attributes[:'displayNamePrefix']
418
+ end
419
+
420
+ if attributes.has_key?(:'displayTo')
421
+ self.display_to = attributes[:'displayTo']
422
+ end
423
+
424
+ if attributes.has_key?(:'flags')
425
+ if (value = attributes[:'flags']).is_a?(Array)
426
+ self.flags = value
427
+ end
428
+ end
429
+
430
+ if attributes.has_key?(:'headers')
431
+ if (value = attributes[:'headers']).is_a?(Hash)
432
+ self.headers = value
433
+ end
434
+ end
435
+
436
+ if attributes.has_key?(:'internetMessageId')
437
+ self.internet_message_id = attributes[:'internetMessageId']
438
+ end
439
+
440
+ if attributes.has_key?(:'messageFormat')
441
+ self.message_format = attributes[:'messageFormat']
442
+ end
443
+
444
+ if attributes.has_key?(:'normalizedSubject')
445
+ self.normalized_subject = attributes[:'normalizedSubject']
446
+ end
447
+
448
+ if attributes.has_key?(:'readReceiptRequested')
449
+ self.read_receipt_requested = attributes[:'readReceiptRequested']
450
+ end
451
+
452
+ if attributes.has_key?(:'replyTo')
453
+ self.reply_to = attributes[:'replyTo']
454
+ end
455
+
456
+ if attributes.has_key?(:'senderAddressType')
457
+ self.sender_address_type = attributes[:'senderAddressType']
458
+ end
459
+
460
+ if attributes.has_key?(:'senderEmailAddress')
461
+ self.sender_email_address = attributes[:'senderEmailAddress']
462
+ end
463
+
464
+ if attributes.has_key?(:'senderName')
465
+ self.sender_name = attributes[:'senderName']
466
+ end
467
+
468
+ if attributes.has_key?(:'senderSmtpAddress')
469
+ self.sender_smtp_address = attributes[:'senderSmtpAddress']
470
+ end
471
+
472
+ if attributes.has_key?(:'sentRepresentingAddressType')
473
+ self.sent_representing_address_type = attributes[:'sentRepresentingAddressType']
474
+ end
475
+
476
+ if attributes.has_key?(:'sentRepresentingEmailAddress')
477
+ self.sent_representing_email_address = attributes[:'sentRepresentingEmailAddress']
478
+ end
479
+
480
+ if attributes.has_key?(:'sentRepresentingName')
481
+ self.sent_representing_name = attributes[:'sentRepresentingName']
482
+ end
483
+
484
+ if attributes.has_key?(:'sentRepresentingSmtpAddress')
485
+ self.sent_representing_smtp_address = attributes[:'sentRepresentingSmtpAddress']
486
+ end
487
+
488
+ if attributes.has_key?(:'transportMessageHeaders')
489
+ self.transport_message_headers = attributes[:'transportMessageHeaders']
490
+ end
491
+ end
492
+
493
+ # Initializes the object
494
+ # @param [Array<MapiAttachmentDto>] attachments Message item attachments.
495
+ # @param [String] billing Billing information associated with an item.
496
+ # @param [String] body Message text.
497
+ # @param [String] body_html Gets the BodyRtf of the message converted to HTML, if present, otherwise an empty string.
498
+ # @param [String] body_rtf RTF formatted message text.
499
+ # @param [String] body_type The content type of message body. Enum, available values: PlainText, Html, Rtf
500
+ # @param [Array<String>] categories Contains keywords or categories for the message object.
501
+ # @param [Array<String>] companies Contains the names of the companies that are associated with an item.
502
+ # @param [String] item_id The item id, uses with a server.
503
+ # @param [String] message_class Case-sensitive string that identifies the sender-defined message class, such as IPM.Note. The message class specifies the type, purpose, or content of the message.
504
+ # @param [String] mileage Contains the mileage information that is associated with an item.
505
+ # @param [Array<MapiRecipientDto>] recipients Recipients of the message.
506
+ # @param [String] sensitivity Contains values that indicate the message sensitivity. Enum, available values: None, Personal, Private, CompanyConfidential
507
+ # @param [String] subject Subject of the message.
508
+ # @param [String] subject_prefix Subject prefix that typically indicates some action on a message, such as \"FW: \" for forwarding.
509
+ # @param [Array<MapiPropertyDto>] properties List of MAPI properties
510
+ # @param [String] discriminator
511
+ # @param [String] message_body Message text
512
+ # @param [DateTime] client_submit_time Date and time the message sender submitted a message.
513
+ # @param [String] conversation_topic Topic of the first message in a conversation thread.
514
+ # @param [DateTime] delivery_time Date and time a message was delivered.
515
+ # @param [String] display_bcc List of the display names of any blind carbon copy (BCC) message recipients, separated by semicolons (;).
516
+ # @param [String] display_cc List of the display names of any carbon copy (CC) message recipients, separated by semicolons (;).
517
+ # @param [String] display_name Display name for the message.
518
+ # @param [String] display_name_prefix Prefix of the display name.
519
+ # @param [String] display_to List of the display names of the primary (To) message recipients, separated by semicolons (;).
520
+ # @param [Array<String>] flags Message flags. Items: Mapi message flags. Enum, available values: MsgFlagZero, MsgFlagRead, MsgFlagUnmodified, MsgFlagSubmit, MsgFlagUnsent, MsgFlagHasAttach, MsgFlagFromMe, MsgFlagAssociated, MsgFlagResend, MsgFlagNotifyRead, MsgFlagNotifyUnread, MsgFlagEverRead, MsgFlagOriginX400, MsgFlagOriginInternet, MsgFlagOriginMiscExt
521
+ # @param [Hash<String, String>] headers Transport message headers
522
+ # @param [String] internet_message_id Internet message id of the message.
523
+ # @param [String] message_format Represents outlook message format. Enum, available values: Ascii, Unicode
524
+ # @param [String] normalized_subject Normalized subject of the message.
525
+ # @param [BOOLEAN] read_receipt_requested Value indicating whether the read receipt is requested.
526
+ # @param [String] reply_to Reply to names.
527
+ # @param [String] sender_address_type Message sender's e-mail address type.
528
+ # @param [String] sender_email_address Message sender's e-mail address.
529
+ # @param [String] sender_name Message sender's display name.
530
+ # @param [String] sender_smtp_address Message sender's e-mail address.
531
+ # @param [String] sent_representing_address_type Address type for the messaging user represented by the sender.
532
+ # @param [String] sent_representing_email_address E-mail address for the messaging user represented by the sender.
533
+ # @param [String] sent_representing_name Display name for the messaging user represented by the sender.
534
+ # @param [String] sent_representing_smtp_address E-mail address for the messaging user represented by the sender.
535
+ # @param [String] transport_message_headers Transport-specific message envelope information.
536
+ def initialize(attachments=nil, billing=nil, body=nil, body_html=nil, body_rtf=nil, body_type=nil, categories=nil, companies=nil, item_id=nil, message_class=nil, mileage=nil, recipients=nil, sensitivity=nil, subject=nil, subject_prefix=nil, properties=nil, discriminator=nil, message_body=nil, client_submit_time=nil, conversation_topic=nil, delivery_time=nil, display_bcc=nil, display_cc=nil, display_name=nil, display_name_prefix=nil, display_to=nil, flags=nil, headers=nil, internet_message_id=nil, message_format=nil, normalized_subject=nil, read_receipt_requested=nil, reply_to=nil, sender_address_type=nil, sender_email_address=nil, sender_name=nil, sender_smtp_address=nil, sent_representing_address_type=nil, sent_representing_email_address=nil, sent_representing_name=nil, sent_representing_smtp_address=nil, transport_message_headers=nil)
537
+ self.attachments = attachments if attachments
538
+ self.billing = billing if billing
539
+ self.body = body if body
540
+ self.body_html = body_html if body_html
541
+ self.body_rtf = body_rtf if body_rtf
542
+ self.body_type = body_type if body_type
543
+ self.categories = categories if categories
544
+ self.companies = companies if companies
545
+ self.item_id = item_id if item_id
546
+ self.message_class = message_class if message_class
547
+ self.mileage = mileage if mileage
548
+ self.recipients = recipients if recipients
549
+ self.sensitivity = sensitivity if sensitivity
550
+ self.subject = subject if subject
551
+ self.subject_prefix = subject_prefix if subject_prefix
552
+ self.properties = properties if properties
553
+ @discriminator = self.class.name.split('::').last
554
+ self.message_body = message_body if message_body
555
+ self.client_submit_time = client_submit_time if client_submit_time
556
+ self.conversation_topic = conversation_topic if conversation_topic
557
+ self.delivery_time = delivery_time if delivery_time
558
+ self.display_bcc = display_bcc if display_bcc
559
+ self.display_cc = display_cc if display_cc
560
+ self.display_name = display_name if display_name
561
+ self.display_name_prefix = display_name_prefix if display_name_prefix
562
+ self.display_to = display_to if display_to
563
+ self.flags = flags if flags
564
+ self.headers = headers if headers
565
+ self.internet_message_id = internet_message_id if internet_message_id
566
+ self.message_format = message_format if message_format
567
+ self.normalized_subject = normalized_subject if normalized_subject
568
+ self.read_receipt_requested = read_receipt_requested if read_receipt_requested
569
+ self.reply_to = reply_to if reply_to
570
+ self.sender_address_type = sender_address_type if sender_address_type
571
+ self.sender_email_address = sender_email_address if sender_email_address
572
+ self.sender_name = sender_name if sender_name
573
+ self.sender_smtp_address = sender_smtp_address if sender_smtp_address
574
+ self.sent_representing_address_type = sent_representing_address_type if sent_representing_address_type
575
+ self.sent_representing_email_address = sent_representing_email_address if sent_representing_email_address
576
+ self.sent_representing_name = sent_representing_name if sent_representing_name
577
+ self.sent_representing_smtp_address = sent_representing_smtp_address if sent_representing_smtp_address
578
+ self.transport_message_headers = transport_message_headers if transport_message_headers
579
+ end
580
+
581
+ # Show invalid properties with the reasons. Usually used together with valid?
582
+ # @return Array for valid properties with the reasons
583
+ def list_invalid_properties
584
+ invalid_properties = Array.new
585
+ if @body_type.nil?
586
+ invalid_properties.push('invalid value for "body_type", body_type cannot be nil.')
587
+ end
588
+
589
+ if @sensitivity.nil?
590
+ invalid_properties.push('invalid value for "sensitivity", sensitivity cannot be nil.')
591
+ end
592
+
593
+ if @discriminator.nil?
594
+ invalid_properties.push('invalid value for "discriminator", discriminator cannot be nil.')
595
+ end
596
+
597
+ if @client_submit_time.nil?
598
+ invalid_properties.push('invalid value for "client_submit_time", client_submit_time cannot be nil.')
599
+ end
600
+
601
+ if @delivery_time.nil?
602
+ invalid_properties.push('invalid value for "delivery_time", delivery_time cannot be nil.')
603
+ end
604
+
605
+ if @message_format.nil?
606
+ invalid_properties.push('invalid value for "message_format", message_format cannot be nil.')
607
+ end
608
+
609
+ if @read_receipt_requested.nil?
610
+ invalid_properties.push('invalid value for "read_receipt_requested", read_receipt_requested cannot be nil.')
611
+ end
612
+
613
+ invalid_properties
614
+ end
615
+
616
+ # Check to see if the all the properties in the model are valid
617
+ # @return true if the model is valid
618
+ def valid?
619
+ return false if @body_type.nil?
620
+ return false if @sensitivity.nil?
621
+ return false if @discriminator.nil?
622
+ return false if @client_submit_time.nil?
623
+ return false if @delivery_time.nil?
624
+ return false if @message_format.nil?
625
+ return false if @read_receipt_requested.nil?
626
+ true
627
+ end
628
+
629
+ # Checks equality by comparing each attribute.
630
+ # @param [Object] Object to be compared
631
+ def ==(o)
632
+ return true if self.equal?(o)
633
+ self.class == o.class &&
634
+ attachments == o.attachments &&
635
+ billing == o.billing &&
636
+ body == o.body &&
637
+ body_html == o.body_html &&
638
+ body_rtf == o.body_rtf &&
639
+ body_type == o.body_type &&
640
+ categories == o.categories &&
641
+ companies == o.companies &&
642
+ item_id == o.item_id &&
643
+ message_class == o.message_class &&
644
+ mileage == o.mileage &&
645
+ recipients == o.recipients &&
646
+ sensitivity == o.sensitivity &&
647
+ subject == o.subject &&
648
+ subject_prefix == o.subject_prefix &&
649
+ properties == o.properties &&
650
+ discriminator == o.discriminator &&
651
+ message_body == o.message_body &&
652
+ client_submit_time == o.client_submit_time &&
653
+ conversation_topic == o.conversation_topic &&
654
+ delivery_time == o.delivery_time &&
655
+ display_bcc == o.display_bcc &&
656
+ display_cc == o.display_cc &&
657
+ display_name == o.display_name &&
658
+ display_name_prefix == o.display_name_prefix &&
659
+ display_to == o.display_to &&
660
+ flags == o.flags &&
661
+ headers == o.headers &&
662
+ internet_message_id == o.internet_message_id &&
663
+ message_format == o.message_format &&
664
+ normalized_subject == o.normalized_subject &&
665
+ read_receipt_requested == o.read_receipt_requested &&
666
+ reply_to == o.reply_to &&
667
+ sender_address_type == o.sender_address_type &&
668
+ sender_email_address == o.sender_email_address &&
669
+ sender_name == o.sender_name &&
670
+ sender_smtp_address == o.sender_smtp_address &&
671
+ sent_representing_address_type == o.sent_representing_address_type &&
672
+ sent_representing_email_address == o.sent_representing_email_address &&
673
+ sent_representing_name == o.sent_representing_name &&
674
+ sent_representing_smtp_address == o.sent_representing_smtp_address &&
675
+ transport_message_headers == o.transport_message_headers
676
+ end
677
+
678
+ # @see the `==` method
679
+ # @param [Object] Object to be compared
680
+ def eql?(o)
681
+ self == o
682
+ end
683
+
684
+ # Calculates hash code according to all attributes.
685
+ # @return [Fixnum] Hash code
686
+ def hash
687
+ [attachments, billing, body, body_html, body_rtf, body_type, categories, companies, item_id, message_class, mileage, recipients, sensitivity, subject, subject_prefix, properties, discriminator, message_body, client_submit_time, conversation_topic, delivery_time, display_bcc, display_cc, display_name, display_name_prefix, display_to, flags, headers, internet_message_id, message_format, normalized_subject, read_receipt_requested, reply_to, sender_address_type, sender_email_address, sender_name, sender_smtp_address, sent_representing_address_type, sent_representing_email_address, sent_representing_name, sent_representing_smtp_address, transport_message_headers].hash
688
+ end
689
+
690
+ # Builds the object from hash
691
+ # @param [Hash] attributes Model attributes in the form of hash
692
+ # @return [Object] Returns the model itself
693
+ def build_from_hash(attributes)
694
+ return nil unless attributes.is_a?(Hash)
695
+ self.class.swagger_types.each_pair do |key, type|
696
+ attribute_key = self.class.attribute_map[key]
697
+ attribute_key = (attribute_key[0, 1].downcase + attribute_key[1..-1]).to_sym
698
+ if type =~ /\AArray<(.*)>/i
699
+ # check to ensure the input is an array given that the the attribute
700
+ # is documented as an array but the input is not
701
+ if attributes[attribute_key].is_a?(Array)
702
+ self.send("#{key}=", attributes[attribute_key].map { |v| _deserialize($1, v) })
703
+ end
704
+ elsif !attributes[attribute_key].nil?
705
+ self.send("#{key}=", _deserialize(type, attributes[attribute_key]))
706
+ end # or else data not found in attributes(hash), not an issue as the data can be optional
707
+ end
708
+
709
+ self
710
+ end
711
+
712
+ # Deserializes the data based on type
713
+ # @param string type Data type
714
+ # @param string value Value to be deserialized
715
+ # @return [Object] Deserialized data
716
+ def _deserialize(type, value)
717
+ case type.to_sym
718
+ when :DateTime
719
+ DateTime.parse(value)
720
+ when :Date
721
+ Date.parse(value)
722
+ when :String
723
+ value.to_s
724
+ when :Integer
725
+ value.to_i
726
+ when :Float
727
+ value.to_f
728
+ when :BOOLEAN
729
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
730
+ true
731
+ else
732
+ false
733
+ end
734
+ when :Object
735
+ # generic object (usually a Hash), return directly
736
+ value
737
+ when /\AArray<(?<inner_type>.+)>\z/
738
+ inner_type = Regexp.last_match[:inner_type]
739
+ value.map { |v| _deserialize(inner_type, v) }
740
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
741
+ k_type = Regexp.last_match[:k_type]
742
+ v_type = Regexp.last_match[:v_type]
743
+ {}.tap do |hash|
744
+ value.each do |k, v|
745
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
746
+ end
747
+ end
748
+ else # model
749
+ sub_type = value[:type] || value[:discriminator] || type
750
+ if AsposeEmailCloud.const_defined?(sub_type)
751
+ type = sub_type
752
+ end
753
+ temp_model = AsposeEmailCloud.const_get(type).new
754
+ temp_model.build_from_hash(value)
755
+ end
756
+ end
757
+
758
+ # Returns the string representation of the object
759
+ # @return [String] String presentation of the object
760
+ def to_s
761
+ to_hash.to_s
762
+ end
763
+
764
+ # to_body is an alias to to_hash (backward compatibility)
765
+ # @return [Hash] Returns the object in the form of hash
766
+ def to_body
767
+ to_hash
768
+ end
769
+
770
+ # Returns the object in the form of hash
771
+ # @return [Hash] Returns the object in the form of hash
772
+ def to_hash
773
+ hash = {}
774
+ self.class.attribute_map.each_pair do |attr, param|
775
+ value = self.send(attr)
776
+ next if value.nil?
777
+ hash[param] = _to_hash(value)
778
+ end
779
+ hash
780
+ end
781
+
782
+ # Outputs non-array value in the form of hash
783
+ # For object, use to_hash. Otherwise, just return the value
784
+ # @param [Object] value Any valid value
785
+ # @return [Hash] Returns the value in the form of hash
786
+ def _to_hash(value)
787
+ if value.is_a?(Array)
788
+ value.compact.map { |v| _to_hash(v) }
789
+ elsif value.is_a?(Hash)
790
+ {}.tap do |hash|
791
+ value.each { |k, v| hash[k] = _to_hash(v) }
792
+ end
793
+ elsif value.respond_to? :to_hash
794
+ value.to_hash
795
+ else
796
+ value
797
+ end
798
+ end
799
+
800
+ end
801
+ end