aspose_email_cloud 20.5.0 → 20.7.0

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