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,313 @@
1
+ # ----------------------------------------------------------------------------
2
+ # <copyright company="Aspose" file="MapiCalendarTimeZoneInfoDto.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 the mapi calendar time zone rule.
31
+ class MapiCalendarTimeZoneInfoDto
32
+ # Time zone's offset in minutes from UTC.
33
+ # @return [Integer]
34
+ attr_accessor :bias
35
+
36
+ # Offset in minutes from lBias during daylight saving time.
37
+ # @return [Integer]
38
+ attr_accessor :daylight_bias
39
+
40
+ # Date and local time that indicate when to begin using the DaylightBias.
41
+ # @return [MapiCalendarTimeZoneRuleDto]
42
+ attr_accessor :daylight_date
43
+
44
+ # Offset in minutes from lBias during standard time.
45
+ # @return [Integer]
46
+ attr_accessor :standard_bias
47
+
48
+ # Date and local time that indicate when to begin using the StandardBias.
49
+ # @return [MapiCalendarTimeZoneRuleDto]
50
+ attr_accessor :standard_date
51
+
52
+ # Individual bit flags that specify information about this TimeZoneRule. Items: Enumerates the individual bit flags that specify information about TimeZoneRule Enum, available values: TzRuleFlagRecurCurrentTzReg, TzRuleFlagEffectiveTzReg
53
+ # @return [Array<String>]
54
+ attr_accessor :time_zone_flags
55
+
56
+ # Year in which this rule is scheduled to take effect.
57
+ # @return [Integer]
58
+ attr_accessor :year
59
+
60
+ # Attribute mapping from ruby-style variable name to JSON key.
61
+ def self.attribute_map
62
+ {
63
+ :'bias' => :'bias',
64
+ :'daylight_bias' => :'daylightBias',
65
+ :'daylight_date' => :'daylightDate',
66
+ :'standard_bias' => :'standardBias',
67
+ :'standard_date' => :'standardDate',
68
+ :'time_zone_flags' => :'timeZoneFlags',
69
+ :'year' => :'year'
70
+ }
71
+ end
72
+
73
+ # Attribute type mapping.
74
+ def self.swagger_types
75
+ {
76
+ :'bias' => :'Integer',
77
+ :'daylight_bias' => :'Integer',
78
+ :'daylight_date' => :'MapiCalendarTimeZoneRuleDto',
79
+ :'standard_bias' => :'Integer',
80
+ :'standard_date' => :'MapiCalendarTimeZoneRuleDto',
81
+ :'time_zone_flags' => :'Array<String>',
82
+ :'year' => :'Integer'
83
+ }
84
+ end
85
+
86
+ # Initializes the object
87
+ # @param [Hash] attributes Model attributes in the form of hash
88
+ def initialize(attributes = {})
89
+ return unless attributes.is_a?(Hash)
90
+
91
+ # convert string to symbol for hash key
92
+ attributes = attributes.each_with_object({}) { |(k, v), h| h[k.to_sym] = v }
93
+
94
+ if attributes.has_key?(:'bias')
95
+ self.bias = attributes[:'bias']
96
+ end
97
+
98
+ if attributes.has_key?(:'daylightBias')
99
+ self.daylight_bias = attributes[:'daylightBias']
100
+ end
101
+
102
+ if attributes.has_key?(:'daylightDate')
103
+ self.daylight_date = attributes[:'daylightDate']
104
+ end
105
+
106
+ if attributes.has_key?(:'standardBias')
107
+ self.standard_bias = attributes[:'standardBias']
108
+ end
109
+
110
+ if attributes.has_key?(:'standardDate')
111
+ self.standard_date = attributes[:'standardDate']
112
+ end
113
+
114
+ if attributes.has_key?(:'timeZoneFlags')
115
+ if (value = attributes[:'timeZoneFlags']).is_a?(Array)
116
+ self.time_zone_flags = value
117
+ end
118
+ end
119
+
120
+ if attributes.has_key?(:'year')
121
+ self.year = attributes[:'year']
122
+ end
123
+ end
124
+
125
+ # Initializes the object
126
+ # @param [Integer] bias Time zone's offset in minutes from UTC.
127
+ # @param [Integer] daylight_bias Offset in minutes from lBias during daylight saving time.
128
+ # @param [MapiCalendarTimeZoneRuleDto] daylight_date Date and local time that indicate when to begin using the DaylightBias.
129
+ # @param [Integer] standard_bias Offset in minutes from lBias during standard time.
130
+ # @param [MapiCalendarTimeZoneRuleDto] standard_date Date and local time that indicate when to begin using the StandardBias.
131
+ # @param [Array<String>] time_zone_flags Individual bit flags that specify information about this TimeZoneRule. Items: Enumerates the individual bit flags that specify information about TimeZoneRule Enum, available values: TzRuleFlagRecurCurrentTzReg, TzRuleFlagEffectiveTzReg
132
+ # @param [Integer] year Year in which this rule is scheduled to take effect.
133
+ def initialize(bias=nil, daylight_bias=nil, daylight_date=nil, standard_bias=nil, standard_date=nil, time_zone_flags=nil, year=nil)
134
+ self.bias = bias if bias
135
+ self.daylight_bias = daylight_bias if daylight_bias
136
+ self.daylight_date = daylight_date if daylight_date
137
+ self.standard_bias = standard_bias if standard_bias
138
+ self.standard_date = standard_date if standard_date
139
+ self.time_zone_flags = time_zone_flags if time_zone_flags
140
+ self.year = year if year
141
+ end
142
+
143
+ # Show invalid properties with the reasons. Usually used together with valid?
144
+ # @return Array for valid properties with the reasons
145
+ def list_invalid_properties
146
+ invalid_properties = Array.new
147
+ if @bias.nil?
148
+ invalid_properties.push('invalid value for "bias", bias cannot be nil.')
149
+ end
150
+
151
+ if @daylight_bias.nil?
152
+ invalid_properties.push('invalid value for "daylight_bias", daylight_bias cannot be nil.')
153
+ end
154
+
155
+ if @standard_bias.nil?
156
+ invalid_properties.push('invalid value for "standard_bias", standard_bias cannot be nil.')
157
+ end
158
+
159
+ if @year.nil?
160
+ invalid_properties.push('invalid value for "year", year cannot be nil.')
161
+ end
162
+
163
+ invalid_properties
164
+ end
165
+
166
+ # Check to see if the all the properties in the model are valid
167
+ # @return true if the model is valid
168
+ def valid?
169
+ return false if @bias.nil?
170
+ return false if @daylight_bias.nil?
171
+ return false if @standard_bias.nil?
172
+ return false if @year.nil?
173
+ true
174
+ end
175
+
176
+ # Checks equality by comparing each attribute.
177
+ # @param [Object] Object to be compared
178
+ def ==(o)
179
+ return true if self.equal?(o)
180
+ self.class == o.class &&
181
+ bias == o.bias &&
182
+ daylight_bias == o.daylight_bias &&
183
+ daylight_date == o.daylight_date &&
184
+ standard_bias == o.standard_bias &&
185
+ standard_date == o.standard_date &&
186
+ time_zone_flags == o.time_zone_flags &&
187
+ year == o.year
188
+ end
189
+
190
+ # @see the `==` method
191
+ # @param [Object] Object to be compared
192
+ def eql?(o)
193
+ self == o
194
+ end
195
+
196
+ # Calculates hash code according to all attributes.
197
+ # @return [Fixnum] Hash code
198
+ def hash
199
+ [bias, daylight_bias, daylight_date, standard_bias, standard_date, time_zone_flags, year].hash
200
+ end
201
+
202
+ # Builds the object from hash
203
+ # @param [Hash] attributes Model attributes in the form of hash
204
+ # @return [Object] Returns the model itself
205
+ def build_from_hash(attributes)
206
+ return nil unless attributes.is_a?(Hash)
207
+ self.class.swagger_types.each_pair do |key, type|
208
+ attribute_key = self.class.attribute_map[key]
209
+ attribute_key = (attribute_key[0, 1].downcase + attribute_key[1..-1]).to_sym
210
+ if type =~ /\AArray<(.*)>/i
211
+ # check to ensure the input is an array given that the the attribute
212
+ # is documented as an array but the input is not
213
+ if attributes[attribute_key].is_a?(Array)
214
+ self.send("#{key}=", attributes[attribute_key].map { |v| _deserialize($1, v) })
215
+ end
216
+ elsif !attributes[attribute_key].nil?
217
+ self.send("#{key}=", _deserialize(type, attributes[attribute_key]))
218
+ end # or else data not found in attributes(hash), not an issue as the data can be optional
219
+ end
220
+
221
+ self
222
+ end
223
+
224
+ # Deserializes the data based on type
225
+ # @param string type Data type
226
+ # @param string value Value to be deserialized
227
+ # @return [Object] Deserialized data
228
+ def _deserialize(type, value)
229
+ case type.to_sym
230
+ when :DateTime
231
+ DateTime.parse(value)
232
+ when :Date
233
+ Date.parse(value)
234
+ when :String
235
+ value.to_s
236
+ when :Integer
237
+ value.to_i
238
+ when :Float
239
+ value.to_f
240
+ when :BOOLEAN
241
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
242
+ true
243
+ else
244
+ false
245
+ end
246
+ when :Object
247
+ # generic object (usually a Hash), return directly
248
+ value
249
+ when /\AArray<(?<inner_type>.+)>\z/
250
+ inner_type = Regexp.last_match[:inner_type]
251
+ value.map { |v| _deserialize(inner_type, v) }
252
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
253
+ k_type = Regexp.last_match[:k_type]
254
+ v_type = Regexp.last_match[:v_type]
255
+ {}.tap do |hash|
256
+ value.each do |k, v|
257
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
258
+ end
259
+ end
260
+ else # model
261
+ sub_type = value[:type] || value[:discriminator] || type
262
+ if AsposeEmailCloud.const_defined?(sub_type)
263
+ type = sub_type
264
+ end
265
+ temp_model = AsposeEmailCloud.const_get(type).new
266
+ temp_model.build_from_hash(value)
267
+ end
268
+ end
269
+
270
+ # Returns the string representation of the object
271
+ # @return [String] String presentation of the object
272
+ def to_s
273
+ to_hash.to_s
274
+ end
275
+
276
+ # to_body is an alias to to_hash (backward compatibility)
277
+ # @return [Hash] Returns the object in the form of hash
278
+ def to_body
279
+ to_hash
280
+ end
281
+
282
+ # Returns the object in the form of hash
283
+ # @return [Hash] Returns the object in the form of hash
284
+ def to_hash
285
+ hash = {}
286
+ self.class.attribute_map.each_pair do |attr, param|
287
+ value = self.send(attr)
288
+ next if value.nil?
289
+ hash[param] = _to_hash(value)
290
+ end
291
+ hash
292
+ end
293
+
294
+ # Outputs non-array value in the form of hash
295
+ # For object, use to_hash. Otherwise, just return the value
296
+ # @param [Object] value Any valid value
297
+ # @return [Hash] Returns the value in the form of hash
298
+ def _to_hash(value)
299
+ if value.is_a?(Array)
300
+ value.compact.map { |v| _to_hash(v) }
301
+ elsif value.is_a?(Hash)
302
+ {}.tap do |hash|
303
+ value.each { |k, v| hash[k] = _to_hash(v) }
304
+ end
305
+ elsif value.respond_to? :to_hash
306
+ value.to_hash
307
+ else
308
+ value
309
+ end
310
+ end
311
+
312
+ end
313
+ end
@@ -0,0 +1,362 @@
1
+ # ----------------------------------------------------------------------------
2
+ # <copyright company="Aspose" file="MapiCalendarTimeZoneRuleDto.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 time zone rule that indicate when to begin using the Standard/Daylight time.
31
+ class MapiCalendarTimeZoneRuleDto
32
+ # Date and time that indicate when to begin using the Standard/Daylight time.
33
+ # @return [DateTime]
34
+ attr_accessor :date
35
+
36
+ # Day of week. Enum, available values: Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday
37
+ # @return [String]
38
+ attr_accessor :day_of_week
39
+
40
+ # Hour.
41
+ # @return [Integer]
42
+ attr_accessor :hour
43
+
44
+ # Milliseconds.
45
+ # @return [Integer]
46
+ attr_accessor :milliseconds
47
+
48
+ # Minute.
49
+ # @return [Integer]
50
+ attr_accessor :minute
51
+
52
+ # Month.
53
+ # @return [Integer]
54
+ attr_accessor :month
55
+
56
+ # Day positions, typically found in a month. Enum, available values: None, First, Second, Third, Fourth, Last
57
+ # @return [String]
58
+ attr_accessor :position
59
+
60
+ # Seconds.
61
+ # @return [Integer]
62
+ attr_accessor :seconds
63
+
64
+ # Year.
65
+ # @return [Integer]
66
+ attr_accessor :year
67
+
68
+ # Attribute mapping from ruby-style variable name to JSON key.
69
+ def self.attribute_map
70
+ {
71
+ :'date' => :'date',
72
+ :'day_of_week' => :'dayOfWeek',
73
+ :'hour' => :'hour',
74
+ :'milliseconds' => :'milliseconds',
75
+ :'minute' => :'minute',
76
+ :'month' => :'month',
77
+ :'position' => :'position',
78
+ :'seconds' => :'seconds',
79
+ :'year' => :'year'
80
+ }
81
+ end
82
+
83
+ # Attribute type mapping.
84
+ def self.swagger_types
85
+ {
86
+ :'date' => :'DateTime',
87
+ :'day_of_week' => :'String',
88
+ :'hour' => :'Integer',
89
+ :'milliseconds' => :'Integer',
90
+ :'minute' => :'Integer',
91
+ :'month' => :'Integer',
92
+ :'position' => :'String',
93
+ :'seconds' => :'Integer',
94
+ :'year' => :'Integer'
95
+ }
96
+ end
97
+
98
+ # Initializes the object
99
+ # @param [Hash] attributes Model attributes in the form of hash
100
+ def initialize(attributes = {})
101
+ return unless attributes.is_a?(Hash)
102
+
103
+ # convert string to symbol for hash key
104
+ attributes = attributes.each_with_object({}) { |(k, v), h| h[k.to_sym] = v }
105
+
106
+ if attributes.has_key?(:'date')
107
+ self.date = attributes[:'date']
108
+ end
109
+
110
+ if attributes.has_key?(:'dayOfWeek')
111
+ self.day_of_week = attributes[:'dayOfWeek']
112
+ end
113
+
114
+ if attributes.has_key?(:'hour')
115
+ self.hour = attributes[:'hour']
116
+ end
117
+
118
+ if attributes.has_key?(:'milliseconds')
119
+ self.milliseconds = attributes[:'milliseconds']
120
+ end
121
+
122
+ if attributes.has_key?(:'minute')
123
+ self.minute = attributes[:'minute']
124
+ end
125
+
126
+ if attributes.has_key?(:'month')
127
+ self.month = attributes[:'month']
128
+ end
129
+
130
+ if attributes.has_key?(:'position')
131
+ self.position = attributes[:'position']
132
+ end
133
+
134
+ if attributes.has_key?(:'seconds')
135
+ self.seconds = attributes[:'seconds']
136
+ end
137
+
138
+ if attributes.has_key?(:'year')
139
+ self.year = attributes[:'year']
140
+ end
141
+ end
142
+
143
+ # Initializes the object
144
+ # @param [DateTime] date Date and time that indicate when to begin using the Standard/Daylight time.
145
+ # @param [String] day_of_week Day of week. Enum, available values: Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday
146
+ # @param [Integer] hour Hour.
147
+ # @param [Integer] milliseconds Milliseconds.
148
+ # @param [Integer] minute Minute.
149
+ # @param [Integer] month Month.
150
+ # @param [String] position Day positions, typically found in a month. Enum, available values: None, First, Second, Third, Fourth, Last
151
+ # @param [Integer] seconds Seconds.
152
+ # @param [Integer] year Year.
153
+ def initialize(date=nil, day_of_week=nil, hour=nil, milliseconds=nil, minute=nil, month=nil, position=nil, seconds=nil, year=nil)
154
+ self.date = date if date
155
+ self.day_of_week = day_of_week if day_of_week
156
+ self.hour = hour if hour
157
+ self.milliseconds = milliseconds if milliseconds
158
+ self.minute = minute if minute
159
+ self.month = month if month
160
+ self.position = position if position
161
+ self.seconds = seconds if seconds
162
+ self.year = year if year
163
+ end
164
+
165
+ # Show invalid properties with the reasons. Usually used together with valid?
166
+ # @return Array for valid properties with the reasons
167
+ def list_invalid_properties
168
+ invalid_properties = Array.new
169
+ if @date.nil?
170
+ invalid_properties.push('invalid value for "date", date cannot be nil.')
171
+ end
172
+
173
+ if @day_of_week.nil?
174
+ invalid_properties.push('invalid value for "day_of_week", day_of_week cannot be nil.')
175
+ end
176
+
177
+ if @hour.nil?
178
+ invalid_properties.push('invalid value for "hour", hour cannot be nil.')
179
+ end
180
+
181
+ if @milliseconds.nil?
182
+ invalid_properties.push('invalid value for "milliseconds", milliseconds cannot be nil.')
183
+ end
184
+
185
+ if @minute.nil?
186
+ invalid_properties.push('invalid value for "minute", minute cannot be nil.')
187
+ end
188
+
189
+ if @month.nil?
190
+ invalid_properties.push('invalid value for "month", month cannot be nil.')
191
+ end
192
+
193
+ if @position.nil?
194
+ invalid_properties.push('invalid value for "position", position cannot be nil.')
195
+ end
196
+
197
+ if @seconds.nil?
198
+ invalid_properties.push('invalid value for "seconds", seconds cannot be nil.')
199
+ end
200
+
201
+ if @year.nil?
202
+ invalid_properties.push('invalid value for "year", year cannot be nil.')
203
+ end
204
+
205
+ invalid_properties
206
+ end
207
+
208
+ # Check to see if the all the properties in the model are valid
209
+ # @return true if the model is valid
210
+ def valid?
211
+ return false if @date.nil?
212
+ return false if @day_of_week.nil?
213
+ return false if @hour.nil?
214
+ return false if @milliseconds.nil?
215
+ return false if @minute.nil?
216
+ return false if @month.nil?
217
+ return false if @position.nil?
218
+ return false if @seconds.nil?
219
+ return false if @year.nil?
220
+ true
221
+ end
222
+
223
+ # Checks equality by comparing each attribute.
224
+ # @param [Object] Object to be compared
225
+ def ==(o)
226
+ return true if self.equal?(o)
227
+ self.class == o.class &&
228
+ date == o.date &&
229
+ day_of_week == o.day_of_week &&
230
+ hour == o.hour &&
231
+ milliseconds == o.milliseconds &&
232
+ minute == o.minute &&
233
+ month == o.month &&
234
+ position == o.position &&
235
+ seconds == o.seconds &&
236
+ year == o.year
237
+ end
238
+
239
+ # @see the `==` method
240
+ # @param [Object] Object to be compared
241
+ def eql?(o)
242
+ self == o
243
+ end
244
+
245
+ # Calculates hash code according to all attributes.
246
+ # @return [Fixnum] Hash code
247
+ def hash
248
+ [date, day_of_week, hour, milliseconds, minute, month, position, seconds, year].hash
249
+ end
250
+
251
+ # Builds the object from hash
252
+ # @param [Hash] attributes Model attributes in the form of hash
253
+ # @return [Object] Returns the model itself
254
+ def build_from_hash(attributes)
255
+ return nil unless attributes.is_a?(Hash)
256
+ self.class.swagger_types.each_pair do |key, type|
257
+ attribute_key = self.class.attribute_map[key]
258
+ attribute_key = (attribute_key[0, 1].downcase + attribute_key[1..-1]).to_sym
259
+ if type =~ /\AArray<(.*)>/i
260
+ # check to ensure the input is an array given that the the attribute
261
+ # is documented as an array but the input is not
262
+ if attributes[attribute_key].is_a?(Array)
263
+ self.send("#{key}=", attributes[attribute_key].map { |v| _deserialize($1, v) })
264
+ end
265
+ elsif !attributes[attribute_key].nil?
266
+ self.send("#{key}=", _deserialize(type, attributes[attribute_key]))
267
+ end # or else data not found in attributes(hash), not an issue as the data can be optional
268
+ end
269
+
270
+ self
271
+ end
272
+
273
+ # Deserializes the data based on type
274
+ # @param string type Data type
275
+ # @param string value Value to be deserialized
276
+ # @return [Object] Deserialized data
277
+ def _deserialize(type, value)
278
+ case type.to_sym
279
+ when :DateTime
280
+ DateTime.parse(value)
281
+ when :Date
282
+ Date.parse(value)
283
+ when :String
284
+ value.to_s
285
+ when :Integer
286
+ value.to_i
287
+ when :Float
288
+ value.to_f
289
+ when :BOOLEAN
290
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
291
+ true
292
+ else
293
+ false
294
+ end
295
+ when :Object
296
+ # generic object (usually a Hash), return directly
297
+ value
298
+ when /\AArray<(?<inner_type>.+)>\z/
299
+ inner_type = Regexp.last_match[:inner_type]
300
+ value.map { |v| _deserialize(inner_type, v) }
301
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
302
+ k_type = Regexp.last_match[:k_type]
303
+ v_type = Regexp.last_match[:v_type]
304
+ {}.tap do |hash|
305
+ value.each do |k, v|
306
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
307
+ end
308
+ end
309
+ else # model
310
+ sub_type = value[:type] || value[:discriminator] || type
311
+ if AsposeEmailCloud.const_defined?(sub_type)
312
+ type = sub_type
313
+ end
314
+ temp_model = AsposeEmailCloud.const_get(type).new
315
+ temp_model.build_from_hash(value)
316
+ end
317
+ end
318
+
319
+ # Returns the string representation of the object
320
+ # @return [String] String presentation of the object
321
+ def to_s
322
+ to_hash.to_s
323
+ end
324
+
325
+ # to_body is an alias to to_hash (backward compatibility)
326
+ # @return [Hash] Returns the object in the form of hash
327
+ def to_body
328
+ to_hash
329
+ end
330
+
331
+ # Returns the object in the form of hash
332
+ # @return [Hash] Returns the object in the form of hash
333
+ def to_hash
334
+ hash = {}
335
+ self.class.attribute_map.each_pair do |attr, param|
336
+ value = self.send(attr)
337
+ next if value.nil?
338
+ hash[param] = _to_hash(value)
339
+ end
340
+ hash
341
+ end
342
+
343
+ # Outputs non-array value in the form of hash
344
+ # For object, use to_hash. Otherwise, just return the value
345
+ # @param [Object] value Any valid value
346
+ # @return [Hash] Returns the value in the form of hash
347
+ def _to_hash(value)
348
+ if value.is_a?(Array)
349
+ value.compact.map { |v| _to_hash(v) }
350
+ elsif value.is_a?(Hash)
351
+ {}.tap do |hash|
352
+ value.each { |k, v| hash[k] = _to_hash(v) }
353
+ end
354
+ elsif value.respond_to? :to_hash
355
+ value.to_hash
356
+ else
357
+ value
358
+ end
359
+ end
360
+
361
+ end
362
+ end