aspose_email_cloud 20.2.0 → 20.3.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 (244) hide show
  1. checksums.yaml +4 -4
  2. data/lib/aspose-email-cloud.rb +13 -0
  3. data/lib/aspose-email-cloud/api/email_api.rb +921 -879
  4. data/lib/aspose-email-cloud/api_client.rb +386 -382
  5. data/lib/aspose-email-cloud/api_error.rb +41 -41
  6. data/lib/aspose-email-cloud/configuration.rb +240 -240
  7. data/lib/aspose-email-cloud/models/account_base_request.rb +263 -260
  8. data/lib/aspose-email-cloud/models/add_attachment_request.rb +226 -223
  9. data/lib/aspose-email-cloud/models/ai_bcr_base64_image.rb +231 -228
  10. data/lib/aspose-email-cloud/models/ai_bcr_base64_rq.rb +228 -225
  11. data/lib/aspose-email-cloud/models/ai_bcr_image.rb +218 -215
  12. data/lib/aspose-email-cloud/models/ai_bcr_image_storage_file.rb +231 -228
  13. data/lib/aspose-email-cloud/models/ai_bcr_ocr_data.rb +256 -253
  14. data/lib/aspose-email-cloud/models/ai_bcr_ocr_data_part.rb +300 -297
  15. data/lib/aspose-email-cloud/models/ai_bcr_options.rb +226 -223
  16. data/lib/aspose-email-cloud/models/ai_bcr_parse_ocr_data_rq.rb +233 -230
  17. data/lib/aspose-email-cloud/models/ai_bcr_parse_storage_rq.rb +251 -248
  18. data/lib/aspose-email-cloud/models/ai_bcr_rq.rb +213 -210
  19. data/lib/aspose-email-cloud/models/ai_bcr_storage_image_rq.rb +233 -230
  20. data/lib/aspose-email-cloud/models/ai_name_component.rb +267 -264
  21. data/lib/aspose-email-cloud/models/ai_name_cultural_context.rb +270 -267
  22. data/lib/aspose-email-cloud/models/ai_name_extracted.rb +233 -230
  23. data/lib/aspose-email-cloud/models/ai_name_extracted_component.rb +231 -228
  24. data/lib/aspose-email-cloud/models/ai_name_formatted.rb +226 -223
  25. data/lib/aspose-email-cloud/models/ai_name_gender_hypothesis.rb +236 -233
  26. data/lib/aspose-email-cloud/models/ai_name_match_result.rb +233 -230
  27. data/lib/aspose-email-cloud/models/ai_name_mismatch.rb +249 -246
  28. data/lib/aspose-email-cloud/models/ai_name_parsed_match_rq.rb +266 -263
  29. data/lib/aspose-email-cloud/models/ai_name_parsed_rq.rb +246 -243
  30. data/lib/aspose-email-cloud/models/ai_name_weighted.rb +231 -228
  31. data/lib/aspose-email-cloud/models/ai_name_weighted_variants.rb +228 -225
  32. data/lib/aspose-email-cloud/models/alternate_view.rb +282 -279
  33. data/lib/aspose-email-cloud/models/append_email_account_base_request.rb +318 -315
  34. data/lib/aspose-email-cloud/models/append_email_base_request.rb +336 -333
  35. data/lib/aspose-email-cloud/models/append_email_mime_base_request.rb +355 -352
  36. data/lib/aspose-email-cloud/models/append_email_model_rq.rb +336 -333
  37. data/lib/aspose-email-cloud/models/associated_person.rb +244 -241
  38. data/lib/aspose-email-cloud/models/attachment.rb +324 -321
  39. data/lib/aspose-email-cloud/models/attachment_base.rb +254 -251
  40. data/lib/aspose-email-cloud/models/base_object.rb +5 -2
  41. data/lib/aspose-email-cloud/models/calendar_dto.rb +557 -554
  42. data/lib/aspose-email-cloud/models/calendar_dto_alternate_rq.rb +268 -265
  43. data/lib/aspose-email-cloud/models/calendar_dto_list.rb +215 -212
  44. data/lib/aspose-email-cloud/models/calendar_reminder.rb +318 -315
  45. data/lib/aspose-email-cloud/models/contact_dto.rb +699 -696
  46. data/lib/aspose-email-cloud/models/contact_dto_list.rb +215 -212
  47. data/lib/aspose-email-cloud/models/contact_photo.rb +231 -228
  48. data/lib/aspose-email-cloud/models/content_type.rb +267 -264
  49. data/lib/aspose-email-cloud/models/content_type_parameter.rb +226 -223
  50. data/lib/aspose-email-cloud/models/create_email_request.rb +231 -228
  51. data/lib/aspose-email-cloud/models/create_folder_base_request.rb +313 -310
  52. data/lib/aspose-email-cloud/models/customer_event.rb +231 -228
  53. data/lib/aspose-email-cloud/models/delete_folder_base_request.rb +318 -315
  54. data/lib/aspose-email-cloud/models/delete_message_base_request.rb +318 -315
  55. data/lib/aspose-email-cloud/models/disc_usage.rb +236 -233
  56. data/lib/aspose-email-cloud/models/discover_email_config_oauth.rb +391 -388
  57. data/lib/aspose-email-cloud/models/discover_email_config_password.rb +304 -301
  58. data/lib/aspose-email-cloud/models/discover_email_config_rq.rb +268 -265
  59. data/lib/aspose-email-cloud/models/email_account_config.rb +323 -320
  60. data/lib/aspose-email-cloud/models/email_account_config_list.rb +215 -212
  61. data/lib/aspose-email-cloud/models/email_account_request.rb +397 -394
  62. data/lib/aspose-email-cloud/models/email_address.rb +270 -267
  63. data/lib/aspose-email-cloud/models/email_client_account.rb +337 -0
  64. data/lib/aspose-email-cloud/models/email_client_account_credentials.rb +261 -0
  65. data/lib/aspose-email-cloud/models/email_client_account_oauth_credentials.rb +385 -0
  66. data/lib/aspose-email-cloud/models/email_client_account_password_credentials.rb +298 -0
  67. data/lib/aspose-email-cloud/models/email_client_multi_account.rb +233 -0
  68. data/lib/aspose-email-cloud/models/email_document.rb +233 -230
  69. data/lib/aspose-email-cloud/models/email_document_response.rb +213 -210
  70. data/lib/aspose-email-cloud/models/email_dto.rb +681 -678
  71. data/lib/aspose-email-cloud/models/email_dto_list.rb +215 -212
  72. data/lib/aspose-email-cloud/models/email_properties.rb +233 -230
  73. data/lib/aspose-email-cloud/models/email_property.rb +268 -265
  74. data/lib/aspose-email-cloud/models/email_property_response.rb +213 -210
  75. data/lib/aspose-email-cloud/models/enum_with_custom_of_associated_person_category.rb +230 -227
  76. data/lib/aspose-email-cloud/models/enum_with_custom_of_email_address_category.rb +230 -227
  77. data/lib/aspose-email-cloud/models/enum_with_custom_of_event_category.rb +230 -227
  78. data/lib/aspose-email-cloud/models/enum_with_custom_of_instant_messenger_category.rb +230 -227
  79. data/lib/aspose-email-cloud/models/enum_with_custom_of_phone_number_category.rb +230 -227
  80. data/lib/aspose-email-cloud/models/enum_with_custom_of_postal_address_category.rb +230 -227
  81. data/lib/aspose-email-cloud/models/enum_with_custom_of_url_category.rb +230 -227
  82. data/lib/aspose-email-cloud/models/error.rb +252 -249
  83. data/lib/aspose-email-cloud/models/error_details.rb +231 -228
  84. data/lib/aspose-email-cloud/models/file_version.rb +306 -303
  85. data/lib/aspose-email-cloud/models/file_versions.rb +215 -212
  86. data/lib/aspose-email-cloud/models/files_list.rb +215 -212
  87. data/lib/aspose-email-cloud/models/files_upload_result.rb +230 -227
  88. data/lib/aspose-email-cloud/models/hierarchical_object.rb +5 -2
  89. data/lib/aspose-email-cloud/models/hierarchical_object_request.rb +231 -228
  90. data/lib/aspose-email-cloud/models/hierarchical_object_response.rb +226 -223
  91. data/lib/aspose-email-cloud/models/indexed_hierarchical_object.rb +5 -2
  92. data/lib/aspose-email-cloud/models/indexed_primitive_object.rb +5 -2
  93. data/lib/aspose-email-cloud/models/instant_messenger_address.rb +244 -241
  94. data/lib/aspose-email-cloud/models/link.rb +252 -249
  95. data/lib/aspose-email-cloud/models/linked_resource.rb +267 -264
  96. data/lib/aspose-email-cloud/models/list_response_of_ai_bcr_ocr_data.rb +214 -211
  97. data/lib/aspose-email-cloud/models/list_response_of_ai_name_component.rb +214 -211
  98. data/lib/aspose-email-cloud/models/list_response_of_ai_name_extracted.rb +214 -211
  99. data/lib/aspose-email-cloud/models/list_response_of_ai_name_gender_hypothesis.rb +214 -211
  100. data/lib/aspose-email-cloud/models/list_response_of_contact_dto.rb +214 -211
  101. data/lib/aspose-email-cloud/models/list_response_of_email_account_config.rb +214 -211
  102. data/lib/aspose-email-cloud/models/list_response_of_email_dto.rb +214 -211
  103. data/lib/aspose-email-cloud/models/list_response_of_hierarchical_object.rb +214 -211
  104. data/lib/aspose-email-cloud/models/list_response_of_hierarchical_object_response.rb +214 -211
  105. data/lib/aspose-email-cloud/models/list_response_of_mail_server_folder.rb +214 -211
  106. data/lib/aspose-email-cloud/models/list_response_of_storage_file_location.rb +214 -211
  107. data/lib/aspose-email-cloud/models/list_response_of_storage_model_of_calendar_dto.rb +214 -211
  108. data/lib/aspose-email-cloud/models/list_response_of_storage_model_of_contact_dto.rb +214 -211
  109. data/lib/aspose-email-cloud/models/list_response_of_storage_model_of_email_dto.rb +214 -211
  110. data/lib/aspose-email-cloud/models/list_response_of_string.rb +214 -211
  111. data/lib/aspose-email-cloud/models/mail_address.rb +244 -241
  112. data/lib/aspose-email-cloud/models/mail_server_folder.rb +226 -223
  113. data/lib/aspose-email-cloud/models/mime_response.rb +213 -210
  114. data/lib/aspose-email-cloud/models/name_value_pair.rb +226 -222
  115. data/lib/aspose-email-cloud/models/object_exist.rb +236 -233
  116. data/lib/aspose-email-cloud/models/phone_number.rb +244 -241
  117. data/lib/aspose-email-cloud/models/postal_address.rb +353 -350
  118. data/lib/aspose-email-cloud/models/primitive_object.rb +5 -2
  119. data/lib/aspose-email-cloud/models/reminder_attendee.rb +213 -210
  120. data/lib/aspose-email-cloud/models/reminder_trigger.rb +249 -246
  121. data/lib/aspose-email-cloud/models/requests/add_calendar_attachment_request_data.rb +99 -99
  122. data/lib/aspose-email-cloud/models/requests/add_contact_attachment_request_data.rb +109 -109
  123. data/lib/aspose-email-cloud/models/requests/add_email_attachment_request_data.rb +99 -99
  124. data/lib/aspose-email-cloud/models/requests/add_mapi_attachment_request_data.rb +99 -99
  125. data/lib/aspose-email-cloud/models/requests/ai_bcr_ocr_request_data.rb +79 -79
  126. data/lib/aspose-email-cloud/models/requests/ai_bcr_ocr_storage_request_data.rb +79 -79
  127. data/lib/aspose-email-cloud/models/requests/ai_bcr_parse_model_request_data.rb +79 -79
  128. data/lib/aspose-email-cloud/models/requests/ai_bcr_parse_ocr_data_model_request_data.rb +79 -79
  129. data/lib/aspose-email-cloud/models/requests/ai_bcr_parse_request_data.rb +79 -79
  130. data/lib/aspose-email-cloud/models/requests/ai_bcr_parse_storage_request_data.rb +79 -79
  131. data/lib/aspose-email-cloud/models/requests/ai_name_complete_request_data.rb +110 -110
  132. data/lib/aspose-email-cloud/models/requests/ai_name_expand_parsed_request_data.rb +79 -79
  133. data/lib/aspose-email-cloud/models/requests/ai_name_expand_request_data.rb +110 -110
  134. data/lib/aspose-email-cloud/models/requests/ai_name_format_parsed_request_data.rb +79 -79
  135. data/lib/aspose-email-cloud/models/requests/ai_name_format_request_data.rb +116 -116
  136. data/lib/aspose-email-cloud/models/requests/ai_name_genderize_parsed_request_data.rb +79 -79
  137. data/lib/aspose-email-cloud/models/requests/ai_name_genderize_request_data.rb +110 -110
  138. data/lib/aspose-email-cloud/models/requests/ai_name_match_parsed_request_data.rb +79 -79
  139. data/lib/aspose-email-cloud/models/requests/ai_name_match_request_data.rb +121 -121
  140. data/lib/aspose-email-cloud/models/requests/ai_name_parse_email_address_request_data.rb +110 -110
  141. data/lib/aspose-email-cloud/models/requests/ai_name_parse_request_data.rb +110 -110
  142. data/lib/aspose-email-cloud/models/requests/append_email_message_request_data.rb +79 -79
  143. data/lib/aspose-email-cloud/models/requests/append_email_model_message_request_data.rb +79 -79
  144. data/lib/aspose-email-cloud/models/requests/append_mime_message_request_data.rb +79 -79
  145. data/lib/aspose-email-cloud/models/requests/convert_calendar_model_to_alternate_request_data.rb +79 -79
  146. data/lib/aspose-email-cloud/models/requests/convert_email_request_data.rb +90 -90
  147. data/lib/aspose-email-cloud/models/requests/copy_file_request_data.rb +108 -108
  148. data/lib/aspose-email-cloud/models/requests/copy_folder_request_data.rb +102 -102
  149. data/lib/aspose-email-cloud/models/requests/create_calendar_request_data.rb +89 -89
  150. data/lib/aspose-email-cloud/models/requests/create_contact_request_data.rb +99 -99
  151. data/lib/aspose-email-cloud/models/requests/create_email_folder_request_data.rb +79 -79
  152. data/lib/aspose-email-cloud/models/requests/create_email_request_data.rb +89 -89
  153. data/lib/aspose-email-cloud/models/requests/create_folder_request_data.rb +85 -85
  154. data/lib/aspose-email-cloud/models/requests/create_mapi_request_data.rb +89 -89
  155. data/lib/aspose-email-cloud/models/requests/delete_calendar_property_request_data.rb +109 -109
  156. data/lib/aspose-email-cloud/models/requests/delete_contact_property_request_data.rb +119 -119
  157. data/lib/aspose-email-cloud/models/requests/delete_email_folder_request_data.rb +79 -79
  158. data/lib/aspose-email-cloud/models/requests/delete_email_message_request_data.rb +79 -79
  159. data/lib/aspose-email-cloud/models/requests/delete_file_request_data.rb +91 -91
  160. data/lib/aspose-email-cloud/models/requests/delete_folder_request_data.rb +91 -91
  161. data/lib/aspose-email-cloud/models/requests/delete_mapi_attachment_request_data.rb +99 -99
  162. data/lib/aspose-email-cloud/models/requests/delete_mapi_properties_request_data.rb +89 -89
  163. data/lib/aspose-email-cloud/models/requests/discover_email_config_oauth_request_data.rb +79 -79
  164. data/lib/aspose-email-cloud/models/requests/discover_email_config_password_request_data.rb +79 -79
  165. data/lib/aspose-email-cloud/models/requests/discover_email_config_request_data.rb +86 -86
  166. data/lib/aspose-email-cloud/models/requests/download_file_request_data.rb +91 -91
  167. data/lib/aspose-email-cloud/models/requests/email_request.rb +75 -75
  168. data/lib/aspose-email-cloud/models/requests/fetch_email_message_request_data.rb +109 -109
  169. data/lib/aspose-email-cloud/models/requests/fetch_email_model_request_data.rb +109 -109
  170. data/lib/aspose-email-cloud/models/requests/get_calendar_attachment_request_data.rb +101 -101
  171. data/lib/aspose-email-cloud/models/requests/get_calendar_list_request_data.rb +108 -108
  172. data/lib/aspose-email-cloud/models/requests/get_calendar_model_as_alternate_request_data.rb +107 -107
  173. data/lib/aspose-email-cloud/models/requests/get_calendar_model_list_request_data.rb +98 -98
  174. data/lib/aspose-email-cloud/models/requests/get_calendar_model_request_data.rb +91 -91
  175. data/lib/aspose-email-cloud/models/requests/get_calendar_request_data.rb +91 -91
  176. data/lib/aspose-email-cloud/models/requests/get_contact_attachment_request_data.rb +111 -111
  177. data/lib/aspose-email-cloud/models/requests/get_contact_list_request_data.rb +103 -103
  178. data/lib/aspose-email-cloud/models/requests/get_contact_model_list_request_data.rb +103 -103
  179. data/lib/aspose-email-cloud/models/requests/get_contact_model_request_data.rb +101 -101
  180. data/lib/aspose-email-cloud/models/requests/get_contact_properties_request_data.rb +101 -101
  181. data/lib/aspose-email-cloud/models/requests/get_disc_usage_request_data.rb +75 -75
  182. data/lib/aspose-email-cloud/models/requests/get_email_as_file_request_data.rb +101 -101
  183. data/lib/aspose-email-cloud/models/requests/get_email_attachment_request_data.rb +101 -101
  184. data/lib/aspose-email-cloud/models/requests/get_email_client_account_request_data.rb +102 -0
  185. data/lib/aspose-email-cloud/models/requests/get_email_client_multi_account_request_data.rb +102 -0
  186. data/lib/aspose-email-cloud/models/requests/get_email_model_list_request_data.rb +103 -103
  187. data/lib/aspose-email-cloud/models/requests/get_email_model_request_data.rb +101 -101
  188. data/lib/aspose-email-cloud/models/requests/get_email_property_request_data.rb +101 -101
  189. data/lib/aspose-email-cloud/models/requests/get_email_request_data.rb +91 -91
  190. data/lib/aspose-email-cloud/models/requests/get_file_versions_request_data.rb +85 -85
  191. data/lib/aspose-email-cloud/models/requests/get_files_list_request_data.rb +85 -85
  192. data/lib/aspose-email-cloud/models/requests/get_mapi_attachment_request_data.rb +101 -101
  193. data/lib/aspose-email-cloud/models/requests/get_mapi_attachments_request_data.rb +91 -91
  194. data/lib/aspose-email-cloud/models/requests/get_mapi_list_request_data.rb +93 -93
  195. data/lib/aspose-email-cloud/models/requests/get_mapi_properties_request_data.rb +91 -91
  196. data/lib/aspose-email-cloud/models/requests/http_request.rb +51 -51
  197. data/lib/aspose-email-cloud/models/requests/is_email_address_disposable_request_data.rb +79 -0
  198. data/lib/aspose-email-cloud/models/requests/list_email_folders_request_data.rb +104 -104
  199. data/lib/aspose-email-cloud/models/requests/list_email_messages_request_data.rb +127 -127
  200. data/lib/aspose-email-cloud/models/requests/list_email_models_request_data.rb +127 -127
  201. data/lib/aspose-email-cloud/models/requests/move_file_request_data.rb +108 -108
  202. data/lib/aspose-email-cloud/models/requests/move_folder_request_data.rb +102 -102
  203. data/lib/aspose-email-cloud/models/requests/object_exists_request_data.rb +91 -91
  204. data/lib/aspose-email-cloud/models/requests/save_calendar_model_request_data.rb +89 -89
  205. data/lib/aspose-email-cloud/models/requests/save_contact_model_request_data.rb +99 -99
  206. data/lib/aspose-email-cloud/models/requests/save_email_client_account_request_data.rb +79 -0
  207. data/lib/aspose-email-cloud/models/requests/save_email_client_multi_account_request_data.rb +79 -0
  208. data/lib/aspose-email-cloud/models/requests/save_email_model_request_data.rb +99 -99
  209. data/lib/aspose-email-cloud/models/requests/save_mail_account_request_data.rb +79 -79
  210. data/lib/aspose-email-cloud/models/requests/save_mail_o_auth_account_request_data.rb +79 -79
  211. data/lib/aspose-email-cloud/models/requests/send_email_mime_request_data.rb +79 -79
  212. data/lib/aspose-email-cloud/models/requests/send_email_model_request_data.rb +79 -79
  213. data/lib/aspose-email-cloud/models/requests/send_email_request_data.rb +79 -79
  214. data/lib/aspose-email-cloud/models/requests/set_email_property_request_data.rb +99 -99
  215. data/lib/aspose-email-cloud/models/requests/set_email_read_flag_request_data.rb +79 -79
  216. data/lib/aspose-email-cloud/models/requests/storage_exists_request_data.rb +79 -79
  217. data/lib/aspose-email-cloud/models/requests/update_calendar_properties_request_data.rb +89 -89
  218. data/lib/aspose-email-cloud/models/requests/update_contact_properties_request_data.rb +99 -99
  219. data/lib/aspose-email-cloud/models/requests/update_mapi_properties_request_data.rb +89 -89
  220. data/lib/aspose-email-cloud/models/requests/upload_file_request_data.rb +97 -97
  221. data/lib/aspose-email-cloud/models/save_email_account_request.rb +434 -431
  222. data/lib/aspose-email-cloud/models/save_o_auth_email_account_request.rb +521 -505
  223. data/lib/aspose-email-cloud/models/send_email_base_request.rb +281 -278
  224. data/lib/aspose-email-cloud/models/send_email_mime_base_request.rb +300 -297
  225. data/lib/aspose-email-cloud/models/send_email_model_rq.rb +276 -273
  226. data/lib/aspose-email-cloud/models/set_email_property_request.rb +231 -228
  227. data/lib/aspose-email-cloud/models/set_message_read_flag_account_base_request.rb +318 -315
  228. data/lib/aspose-email-cloud/models/storage_exist.rb +218 -215
  229. data/lib/aspose-email-cloud/models/storage_file.rb +275 -272
  230. data/lib/aspose-email-cloud/models/storage_file_location.rb +263 -260
  231. data/lib/aspose-email-cloud/models/storage_file_rq_of_email_client_account.rb +225 -0
  232. data/lib/aspose-email-cloud/models/storage_file_rq_of_email_client_multi_account.rb +225 -0
  233. data/lib/aspose-email-cloud/models/storage_folder_location.rb +226 -223
  234. data/lib/aspose-email-cloud/models/storage_model_of_calendar_dto.rb +225 -222
  235. data/lib/aspose-email-cloud/models/storage_model_of_contact_dto.rb +225 -222
  236. data/lib/aspose-email-cloud/models/storage_model_of_email_dto.rb +225 -222
  237. data/lib/aspose-email-cloud/models/storage_model_rq_of_calendar_dto.rb +225 -222
  238. data/lib/aspose-email-cloud/models/storage_model_rq_of_contact_dto.rb +225 -222
  239. data/lib/aspose-email-cloud/models/storage_model_rq_of_email_dto.rb +225 -222
  240. data/lib/aspose-email-cloud/models/url.rb +244 -241
  241. data/lib/aspose-email-cloud/models/value_response.rb +213 -210
  242. data/lib/aspose-email-cloud/models/value_t_of_boolean.rb +217 -0
  243. data/lib/aspose-email-cloud/version.rb +1 -1
  244. metadata +15 -2
@@ -81,7 +81,7 @@ module AsposeEmailCloud
81
81
  # @param [String] type Property type. Used for deserialization purposes
82
82
  def initialize(name=nil, type=nil)
83
83
  self.name = name if name
84
- @type = self.class.name.split('::').last if type
84
+ @type = self.class.name.split('::').last
85
85
  end
86
86
 
87
87
  # Show invalid properties with the reasons. Usually used together with valid?
@@ -177,7 +177,10 @@ module AsposeEmailCloud
177
177
  end
178
178
  end
179
179
  else # model
180
- type = value[:type] || type
180
+ sub_type = value[:type] || value[:discriminator] || type
181
+ if AsposeEmailCloud.const_defined?(sub_type)
182
+ type = sub_type
183
+ end
181
184
  temp_model = AsposeEmailCloud.const_get(type).new
182
185
  temp_model.build_from_hash(value)
183
186
  end
@@ -1,554 +1,557 @@
1
- # ----------------------------------------------------------------------------
2
- # <copyright company="Aspose" file="CalendarDto.rb">
3
- # Copyright (c) 2018-2019 Aspose Pty Ltd. All rights reserved.
4
- # </copyright>
5
- # <summary>
6
- # Permission is hereby granted, free of charge, to any person obtaining a
7
- # copy of this software and associated documentation files (the "Software"),
8
- # to deal in the Software without restriction, including without limitation
9
- # the rights to use, copy, modify, merge, publish, distribute, sublicense,
10
- # and/or sell copies of the Software, and to permit persons to whom the
11
- # Software is furnished to do so, subject to the following conditions:
12
- #
13
- # The above copyright notice and this permission notice shall be included in
14
- # all copies or substantial portions of the Software.
15
- #
16
- # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
- # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
- # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19
- # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20
- # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
21
- # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
22
- # DEALINGS IN THE SOFTWARE.
23
- # </summary>
24
- # ----------------------------------------------------------------------------
25
-
26
-
27
- require 'date'
28
-
29
- module AsposeEmailCloud
30
- # iCalendar document representation.
31
- class CalendarDto
32
- # Document attachments.
33
- # @return [Array<Attachment>]
34
- attr_accessor :attachments
35
-
36
- # Event attendees.
37
- # @return [Array<MailAddress>]
38
- attr_accessor :attendees
39
-
40
- # Description.
41
- # @return [String]
42
- attr_accessor :description
43
-
44
- # End date.
45
- # @return [DateTime]
46
- attr_accessor :end_date
47
-
48
- # End time zone.
49
- # @return [String]
50
- attr_accessor :end_time_zone
51
-
52
- # Appointment flags. Items: Enumerates iCalendar flags. Enum, available values: None, AllDayEvent
53
- # @return [Array<String>]
54
- attr_accessor :flags
55
-
56
- # Indicates if description is in HTML format.
57
- # @return [BOOLEAN]
58
- attr_accessor :is_description_html
59
-
60
- # Location.
61
- # @return [String]
62
- attr_accessor :location
63
-
64
- # Defines the iCalendar object method type associated with the calendar document. Enum, available values: None, Publish, Request, Reply, Add, Cancel, Refresh, Counter, DeclineCounter
65
- # @return [String]
66
- attr_accessor :method
67
-
68
- # Specifies the BUSY status. Enum, available values: NotDefined, Free, Tentative, Busy, Oof
69
- # @return [String]
70
- attr_accessor :microsoft_busy_status
71
-
72
- # Specifies the INTENDED status. Enum, available values: NotDefined, Free, Tentative, Busy, Oof
73
- # @return [String]
74
- attr_accessor :microsoft_intended_status
75
-
76
- # Optional attendees.
77
- # @return [Array<MailAddress>]
78
- attr_accessor :optional_attendees
79
-
80
- # Event organizer.
81
- # @return [MailAddress]
82
- attr_accessor :organizer
83
-
84
- # String representation of recurrence pattern (See iCalendar RFC, \"Recurrence rule\" section). For example: For daily recurrence: \"FREQ=DAILY;COUNT=10;WKST=MO\" For monthly recurrence: \"BYSETPOS=1;BYDAY=MO,TU,WE,TH,FR;FREQ=MONTHLY;INTERVAL=10;WKST=MO\" For yearly recurrence: \"BYMONTHDAY=30;BYMONTH=1;FREQ=YEARLY;WKST=MO\"
85
- # @return [String]
86
- attr_accessor :recurrence_string
87
-
88
- # Reminders.
89
- # @return [Array<CalendarReminder>]
90
- attr_accessor :reminders
91
-
92
- # The sequence id. Read only.
93
- # @return [String]
94
- attr_accessor :sequence_id
95
-
96
- # Start date.
97
- # @return [DateTime]
98
- attr_accessor :start_date
99
-
100
- # Start time zone.
101
- # @return [String]
102
- attr_accessor :start_time_zone
103
-
104
- # Defines the overall status or confirmation for the calendar document. Enum, available values: NotDefined, Cancelled, Tentative, Confirmed
105
- # @return [String]
106
- attr_accessor :status
107
-
108
- # Summary.
109
- # @return [String]
110
- attr_accessor :summary
111
-
112
- # Specifies whether or not this appointment is intended to be visible in availability searches. Enum, available values: NotDefined, Transparent, Opaque
113
- # @return [String]
114
- attr_accessor :transparency
115
-
116
- # Attribute mapping from ruby-style variable name to JSON key.
117
- def self.attribute_map
118
- {
119
- :'attachments' => :'attachments',
120
- :'attendees' => :'attendees',
121
- :'description' => :'description',
122
- :'end_date' => :'endDate',
123
- :'end_time_zone' => :'endTimeZone',
124
- :'flags' => :'flags',
125
- :'is_description_html' => :'isDescriptionHtml',
126
- :'location' => :'location',
127
- :'method' => :'method',
128
- :'microsoft_busy_status' => :'microsoftBusyStatus',
129
- :'microsoft_intended_status' => :'microsoftIntendedStatus',
130
- :'optional_attendees' => :'optionalAttendees',
131
- :'organizer' => :'organizer',
132
- :'recurrence_string' => :'recurrenceString',
133
- :'reminders' => :'reminders',
134
- :'sequence_id' => :'sequenceId',
135
- :'start_date' => :'startDate',
136
- :'start_time_zone' => :'startTimeZone',
137
- :'status' => :'status',
138
- :'summary' => :'summary',
139
- :'transparency' => :'transparency'
140
- }
141
- end
142
-
143
- # Attribute type mapping.
144
- def self.swagger_types
145
- {
146
- :'attachments' => :'Array<Attachment>',
147
- :'attendees' => :'Array<MailAddress>',
148
- :'description' => :'String',
149
- :'end_date' => :'DateTime',
150
- :'end_time_zone' => :'String',
151
- :'flags' => :'Array<String>',
152
- :'is_description_html' => :'BOOLEAN',
153
- :'location' => :'String',
154
- :'method' => :'String',
155
- :'microsoft_busy_status' => :'String',
156
- :'microsoft_intended_status' => :'String',
157
- :'optional_attendees' => :'Array<MailAddress>',
158
- :'organizer' => :'MailAddress',
159
- :'recurrence_string' => :'String',
160
- :'reminders' => :'Array<CalendarReminder>',
161
- :'sequence_id' => :'String',
162
- :'start_date' => :'DateTime',
163
- :'start_time_zone' => :'String',
164
- :'status' => :'String',
165
- :'summary' => :'String',
166
- :'transparency' => :'String'
167
- }
168
- end
169
-
170
- # Initializes the object
171
- # @param [Hash] attributes Model attributes in the form of hash
172
- def initialize(attributes = {})
173
- return unless attributes.is_a?(Hash)
174
-
175
- # convert string to symbol for hash key
176
- attributes = attributes.each_with_object({}) { |(k, v), h| h[k.to_sym] = v }
177
-
178
- if attributes.has_key?(:'attachments')
179
- if (value = attributes[:'attachments']).is_a?(Array)
180
- self.attachments = value
181
- end
182
- end
183
-
184
- if attributes.has_key?(:'attendees')
185
- if (value = attributes[:'attendees']).is_a?(Array)
186
- self.attendees = value
187
- end
188
- end
189
-
190
- if attributes.has_key?(:'description')
191
- self.description = attributes[:'description']
192
- end
193
-
194
- if attributes.has_key?(:'endDate')
195
- self.end_date = attributes[:'endDate']
196
- end
197
-
198
- if attributes.has_key?(:'endTimeZone')
199
- self.end_time_zone = attributes[:'endTimeZone']
200
- end
201
-
202
- if attributes.has_key?(:'flags')
203
- if (value = attributes[:'flags']).is_a?(Array)
204
- self.flags = value
205
- end
206
- end
207
-
208
- if attributes.has_key?(:'isDescriptionHtml')
209
- self.is_description_html = attributes[:'isDescriptionHtml']
210
- end
211
-
212
- if attributes.has_key?(:'location')
213
- self.location = attributes[:'location']
214
- end
215
-
216
- if attributes.has_key?(:'method')
217
- self.method = attributes[:'method']
218
- end
219
-
220
- if attributes.has_key?(:'microsoftBusyStatus')
221
- self.microsoft_busy_status = attributes[:'microsoftBusyStatus']
222
- end
223
-
224
- if attributes.has_key?(:'microsoftIntendedStatus')
225
- self.microsoft_intended_status = attributes[:'microsoftIntendedStatus']
226
- end
227
-
228
- if attributes.has_key?(:'optionalAttendees')
229
- if (value = attributes[:'optionalAttendees']).is_a?(Array)
230
- self.optional_attendees = value
231
- end
232
- end
233
-
234
- if attributes.has_key?(:'organizer')
235
- self.organizer = attributes[:'organizer']
236
- end
237
-
238
- if attributes.has_key?(:'recurrenceString')
239
- self.recurrence_string = attributes[:'recurrenceString']
240
- end
241
-
242
- if attributes.has_key?(:'reminders')
243
- if (value = attributes[:'reminders']).is_a?(Array)
244
- self.reminders = value
245
- end
246
- end
247
-
248
- if attributes.has_key?(:'sequenceId')
249
- self.sequence_id = attributes[:'sequenceId']
250
- end
251
-
252
- if attributes.has_key?(:'startDate')
253
- self.start_date = attributes[:'startDate']
254
- end
255
-
256
- if attributes.has_key?(:'startTimeZone')
257
- self.start_time_zone = attributes[:'startTimeZone']
258
- end
259
-
260
- if attributes.has_key?(:'status')
261
- self.status = attributes[:'status']
262
- end
263
-
264
- if attributes.has_key?(:'summary')
265
- self.summary = attributes[:'summary']
266
- end
267
-
268
- if attributes.has_key?(:'transparency')
269
- self.transparency = attributes[:'transparency']
270
- end
271
- end
272
-
273
- # Initializes the object
274
- # @param [Array<Attachment>] attachments Document attachments.
275
- # @param [Array<MailAddress>] attendees Event attendees.
276
- # @param [String] description Description.
277
- # @param [DateTime] end_date End date.
278
- # @param [String] end_time_zone End time zone.
279
- # @param [Array<String>] flags Appointment flags. Items: Enumerates iCalendar flags. Enum, available values: None, AllDayEvent
280
- # @param [BOOLEAN] is_description_html Indicates if description is in HTML format.
281
- # @param [String] location Location.
282
- # @param [String] method Defines the iCalendar object method type associated with the calendar document. Enum, available values: None, Publish, Request, Reply, Add, Cancel, Refresh, Counter, DeclineCounter
283
- # @param [String] microsoft_busy_status Specifies the BUSY status. Enum, available values: NotDefined, Free, Tentative, Busy, Oof
284
- # @param [String] microsoft_intended_status Specifies the INTENDED status. Enum, available values: NotDefined, Free, Tentative, Busy, Oof
285
- # @param [Array<MailAddress>] optional_attendees Optional attendees.
286
- # @param [MailAddress] organizer Event organizer.
287
- # @param [String] recurrence_string String representation of recurrence pattern (See iCalendar RFC, \"Recurrence rule\" section). For example: For daily recurrence: \"FREQ=DAILY;COUNT=10;WKST=MO\" For monthly recurrence: \"BYSETPOS=1;BYDAY=MO,TU,WE,TH,FR;FREQ=MONTHLY;INTERVAL=10;WKST=MO\" For yearly recurrence: \"BYMONTHDAY=30;BYMONTH=1;FREQ=YEARLY;WKST=MO\"
288
- # @param [Array<CalendarReminder>] reminders Reminders.
289
- # @param [String] sequence_id The sequence id. Read only.
290
- # @param [DateTime] start_date Start date.
291
- # @param [String] start_time_zone Start time zone.
292
- # @param [String] status Defines the overall status or confirmation for the calendar document. Enum, available values: NotDefined, Cancelled, Tentative, Confirmed
293
- # @param [String] summary Summary.
294
- # @param [String] transparency Specifies whether or not this appointment is intended to be visible in availability searches. Enum, available values: NotDefined, Transparent, Opaque
295
- def initialize(attachments=nil, attendees=nil, description=nil, end_date=nil, end_time_zone=nil, flags=nil, is_description_html=nil, location=nil, method=nil, microsoft_busy_status=nil, microsoft_intended_status=nil, optional_attendees=nil, organizer=nil, recurrence_string=nil, reminders=nil, sequence_id=nil, start_date=nil, start_time_zone=nil, status=nil, summary=nil, transparency=nil)
296
- self.attachments = attachments if attachments
297
- self.attendees = attendees if attendees
298
- self.description = description if description
299
- self.end_date = end_date if end_date
300
- self.end_time_zone = end_time_zone if end_time_zone
301
- self.flags = flags if flags
302
- self.is_description_html = is_description_html if is_description_html
303
- self.location = location if location
304
- self.method = method if method
305
- self.microsoft_busy_status = microsoft_busy_status if microsoft_busy_status
306
- self.microsoft_intended_status = microsoft_intended_status if microsoft_intended_status
307
- self.optional_attendees = optional_attendees if optional_attendees
308
- self.organizer = organizer if organizer
309
- self.recurrence_string = recurrence_string if recurrence_string
310
- self.reminders = reminders if reminders
311
- self.sequence_id = sequence_id if sequence_id
312
- self.start_date = start_date if start_date
313
- self.start_time_zone = start_time_zone if start_time_zone
314
- self.status = status if status
315
- self.summary = summary if summary
316
- self.transparency = transparency if transparency
317
- end
318
-
319
- # Show invalid properties with the reasons. Usually used together with valid?
320
- # @return Array for valid properties with the reasons
321
- def list_invalid_properties
322
- invalid_properties = Array.new
323
- if @attendees.nil?
324
- invalid_properties.push('invalid value for "attendees", attendees cannot be nil.')
325
- end
326
-
327
- if @end_date.nil?
328
- invalid_properties.push('invalid value for "end_date", end_date cannot be nil.')
329
- end
330
-
331
- if @is_description_html.nil?
332
- invalid_properties.push('invalid value for "is_description_html", is_description_html cannot be nil.')
333
- end
334
-
335
- if @location.nil?
336
- invalid_properties.push('invalid value for "location", location cannot be nil.')
337
- end
338
-
339
- if @location.to_s.length < 1
340
- invalid_properties.push('invalid value for "location", the character length must be great than or equal to 1.')
341
- end
342
-
343
- if @method.nil?
344
- invalid_properties.push('invalid value for "method", method cannot be nil.')
345
- end
346
-
347
- if @microsoft_busy_status.nil?
348
- invalid_properties.push('invalid value for "microsoft_busy_status", microsoft_busy_status cannot be nil.')
349
- end
350
-
351
- if @microsoft_intended_status.nil?
352
- invalid_properties.push('invalid value for "microsoft_intended_status", microsoft_intended_status cannot be nil.')
353
- end
354
-
355
- if @organizer.nil?
356
- invalid_properties.push('invalid value for "organizer", organizer cannot be nil.')
357
- end
358
-
359
- if @start_date.nil?
360
- invalid_properties.push('invalid value for "start_date", start_date cannot be nil.')
361
- end
362
-
363
- if @status.nil?
364
- invalid_properties.push('invalid value for "status", status cannot be nil.')
365
- end
366
-
367
- if @transparency.nil?
368
- invalid_properties.push('invalid value for "transparency", transparency cannot be nil.')
369
- end
370
-
371
- invalid_properties
372
- end
373
-
374
- # Check to see if the all the properties in the model are valid
375
- # @return true if the model is valid
376
- def valid?
377
- return false if @attendees.nil?
378
- return false if @end_date.nil?
379
- return false if @is_description_html.nil?
380
- return false if @location.nil?
381
- return false if @location.to_s.length < 1
382
- return false if @method.nil?
383
- return false if @microsoft_busy_status.nil?
384
- return false if @microsoft_intended_status.nil?
385
- return false if @organizer.nil?
386
- return false if @start_date.nil?
387
- return false if @status.nil?
388
- return false if @transparency.nil?
389
- true
390
- end
391
-
392
- # Custom attribute writer method with validation
393
- # @param [Object] location Value to be assigned
394
- def location=(location)
395
- if location.nil?
396
- fail ArgumentError, 'location cannot be nil'
397
- end
398
-
399
- if location.to_s.length < 1
400
- fail ArgumentError, 'invalid value for "location", the character length must be great than or equal to 1.'
401
- end
402
-
403
- @location = location
404
- end
405
-
406
- # Checks equality by comparing each attribute.
407
- # @param [Object] Object to be compared
408
- def ==(o)
409
- return true if self.equal?(o)
410
- self.class == o.class &&
411
- attachments == o.attachments &&
412
- attendees == o.attendees &&
413
- description == o.description &&
414
- end_date == o.end_date &&
415
- end_time_zone == o.end_time_zone &&
416
- flags == o.flags &&
417
- is_description_html == o.is_description_html &&
418
- location == o.location &&
419
- method == o.method &&
420
- microsoft_busy_status == o.microsoft_busy_status &&
421
- microsoft_intended_status == o.microsoft_intended_status &&
422
- optional_attendees == o.optional_attendees &&
423
- organizer == o.organizer &&
424
- recurrence_string == o.recurrence_string &&
425
- reminders == o.reminders &&
426
- sequence_id == o.sequence_id &&
427
- start_date == o.start_date &&
428
- start_time_zone == o.start_time_zone &&
429
- status == o.status &&
430
- summary == o.summary &&
431
- transparency == o.transparency
432
- end
433
-
434
- # @see the `==` method
435
- # @param [Object] Object to be compared
436
- def eql?(o)
437
- self == o
438
- end
439
-
440
- # Calculates hash code according to all attributes.
441
- # @return [Fixnum] Hash code
442
- def hash
443
- [attachments, attendees, description, end_date, end_time_zone, flags, is_description_html, location, method, microsoft_busy_status, microsoft_intended_status, optional_attendees, organizer, recurrence_string, reminders, sequence_id, start_date, start_time_zone, status, summary, transparency].hash
444
- end
445
-
446
- # Builds the object from hash
447
- # @param [Hash] attributes Model attributes in the form of hash
448
- # @return [Object] Returns the model itself
449
- def build_from_hash(attributes)
450
- return nil unless attributes.is_a?(Hash)
451
- self.class.swagger_types.each_pair do |key, type|
452
- attribute_key = self.class.attribute_map[key]
453
- attribute_key = (attribute_key[0, 1].downcase + attribute_key[1..-1]).to_sym
454
- if type =~ /\AArray<(.*)>/i
455
- # check to ensure the input is an array given that the the attribute
456
- # is documented as an array but the input is not
457
- if attributes[attribute_key].is_a?(Array)
458
- self.send("#{key}=", attributes[attribute_key].map { |v| _deserialize($1, v) })
459
- end
460
- elsif !attributes[attribute_key].nil?
461
- self.send("#{key}=", _deserialize(type, attributes[attribute_key]))
462
- end # or else data not found in attributes(hash), not an issue as the data can be optional
463
- end
464
-
465
- self
466
- end
467
-
468
- # Deserializes the data based on type
469
- # @param string type Data type
470
- # @param string value Value to be deserialized
471
- # @return [Object] Deserialized data
472
- def _deserialize(type, value)
473
- case type.to_sym
474
- when :DateTime
475
- DateTime.parse(value)
476
- when :Date
477
- Date.parse(value)
478
- when :String
479
- value.to_s
480
- when :Integer
481
- value.to_i
482
- when :Float
483
- value.to_f
484
- when :BOOLEAN
485
- if value.to_s =~ /\A(true|t|yes|y|1)\z/i
486
- true
487
- else
488
- false
489
- end
490
- when :Object
491
- # generic object (usually a Hash), return directly
492
- value
493
- when /\AArray<(?<inner_type>.+)>\z/
494
- inner_type = Regexp.last_match[:inner_type]
495
- value.map { |v| _deserialize(inner_type, v) }
496
- when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
497
- k_type = Regexp.last_match[:k_type]
498
- v_type = Regexp.last_match[:v_type]
499
- {}.tap do |hash|
500
- value.each do |k, v|
501
- hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
502
- end
503
- end
504
- else # model
505
- type = value[:type] || type
506
- temp_model = AsposeEmailCloud.const_get(type).new
507
- temp_model.build_from_hash(value)
508
- end
509
- end
510
-
511
- # Returns the string representation of the object
512
- # @return [String] String presentation of the object
513
- def to_s
514
- to_hash.to_s
515
- end
516
-
517
- # to_body is an alias to to_hash (backward compatibility)
518
- # @return [Hash] Returns the object in the form of hash
519
- def to_body
520
- to_hash
521
- end
522
-
523
- # Returns the object in the form of hash
524
- # @return [Hash] Returns the object in the form of hash
525
- def to_hash
526
- hash = {}
527
- self.class.attribute_map.each_pair do |attr, param|
528
- value = self.send(attr)
529
- next if value.nil?
530
- hash[param] = _to_hash(value)
531
- end
532
- hash
533
- end
534
-
535
- # Outputs non-array value in the form of hash
536
- # For object, use to_hash. Otherwise, just return the value
537
- # @param [Object] value Any valid value
538
- # @return [Hash] Returns the value in the form of hash
539
- def _to_hash(value)
540
- if value.is_a?(Array)
541
- value.compact.map { |v| _to_hash(v) }
542
- elsif value.is_a?(Hash)
543
- {}.tap do |hash|
544
- value.each { |k, v| hash[k] = _to_hash(v) }
545
- end
546
- elsif value.respond_to? :to_hash
547
- value.to_hash
548
- else
549
- value
550
- end
551
- end
552
-
553
- end
554
- end
1
+ # ----------------------------------------------------------------------------
2
+ # <copyright company="Aspose" file="CalendarDto.rb">
3
+ # Copyright (c) 2018-2019 Aspose Pty Ltd. All rights reserved.
4
+ # </copyright>
5
+ # <summary>
6
+ # Permission is hereby granted, free of charge, to any person obtaining a
7
+ # copy of this software and associated documentation files (the "Software"),
8
+ # to deal in the Software without restriction, including without limitation
9
+ # the rights to use, copy, modify, merge, publish, distribute, sublicense,
10
+ # and/or sell copies of the Software, and to permit persons to whom the
11
+ # Software is furnished to do so, subject to the following conditions:
12
+ #
13
+ # The above copyright notice and this permission notice shall be included in
14
+ # all copies or substantial portions of the Software.
15
+ #
16
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
+ # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
+ # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19
+ # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20
+ # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
21
+ # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
22
+ # DEALINGS IN THE SOFTWARE.
23
+ # </summary>
24
+ # ----------------------------------------------------------------------------
25
+
26
+
27
+ require 'date'
28
+
29
+ module AsposeEmailCloud
30
+ # iCalendar document representation.
31
+ class CalendarDto
32
+ # Document attachments.
33
+ # @return [Array<Attachment>]
34
+ attr_accessor :attachments
35
+
36
+ # Event attendees.
37
+ # @return [Array<MailAddress>]
38
+ attr_accessor :attendees
39
+
40
+ # Description.
41
+ # @return [String]
42
+ attr_accessor :description
43
+
44
+ # End date.
45
+ # @return [DateTime]
46
+ attr_accessor :end_date
47
+
48
+ # End time zone.
49
+ # @return [String]
50
+ attr_accessor :end_time_zone
51
+
52
+ # Appointment flags. Items: Enumerates iCalendar flags. Enum, available values: None, AllDayEvent
53
+ # @return [Array<String>]
54
+ attr_accessor :flags
55
+
56
+ # Indicates if description is in HTML format.
57
+ # @return [BOOLEAN]
58
+ attr_accessor :is_description_html
59
+
60
+ # Location.
61
+ # @return [String]
62
+ attr_accessor :location
63
+
64
+ # Defines the iCalendar object method type associated with the calendar document. Enum, available values: None, Publish, Request, Reply, Add, Cancel, Refresh, Counter, DeclineCounter
65
+ # @return [String]
66
+ attr_accessor :method
67
+
68
+ # Specifies the BUSY status. Enum, available values: NotDefined, Free, Tentative, Busy, Oof
69
+ # @return [String]
70
+ attr_accessor :microsoft_busy_status
71
+
72
+ # Specifies the INTENDED status. Enum, available values: NotDefined, Free, Tentative, Busy, Oof
73
+ # @return [String]
74
+ attr_accessor :microsoft_intended_status
75
+
76
+ # Optional attendees.
77
+ # @return [Array<MailAddress>]
78
+ attr_accessor :optional_attendees
79
+
80
+ # Event organizer.
81
+ # @return [MailAddress]
82
+ attr_accessor :organizer
83
+
84
+ # String representation of recurrence pattern (See iCalendar RFC, \"Recurrence rule\" section). For example: For daily recurrence: \"FREQ=DAILY;COUNT=10;WKST=MO\" For monthly recurrence: \"BYSETPOS=1;BYDAY=MO,TU,WE,TH,FR;FREQ=MONTHLY;INTERVAL=10;WKST=MO\" For yearly recurrence: \"BYMONTHDAY=30;BYMONTH=1;FREQ=YEARLY;WKST=MO\"
85
+ # @return [String]
86
+ attr_accessor :recurrence_string
87
+
88
+ # Reminders.
89
+ # @return [Array<CalendarReminder>]
90
+ attr_accessor :reminders
91
+
92
+ # The sequence id. Read only.
93
+ # @return [String]
94
+ attr_accessor :sequence_id
95
+
96
+ # Start date.
97
+ # @return [DateTime]
98
+ attr_accessor :start_date
99
+
100
+ # Start time zone.
101
+ # @return [String]
102
+ attr_accessor :start_time_zone
103
+
104
+ # Defines the overall status or confirmation for the calendar document. Enum, available values: NotDefined, Cancelled, Tentative, Confirmed
105
+ # @return [String]
106
+ attr_accessor :status
107
+
108
+ # Summary.
109
+ # @return [String]
110
+ attr_accessor :summary
111
+
112
+ # Specifies whether or not this appointment is intended to be visible in availability searches. Enum, available values: NotDefined, Transparent, Opaque
113
+ # @return [String]
114
+ attr_accessor :transparency
115
+
116
+ # Attribute mapping from ruby-style variable name to JSON key.
117
+ def self.attribute_map
118
+ {
119
+ :'attachments' => :'attachments',
120
+ :'attendees' => :'attendees',
121
+ :'description' => :'description',
122
+ :'end_date' => :'endDate',
123
+ :'end_time_zone' => :'endTimeZone',
124
+ :'flags' => :'flags',
125
+ :'is_description_html' => :'isDescriptionHtml',
126
+ :'location' => :'location',
127
+ :'method' => :'method',
128
+ :'microsoft_busy_status' => :'microsoftBusyStatus',
129
+ :'microsoft_intended_status' => :'microsoftIntendedStatus',
130
+ :'optional_attendees' => :'optionalAttendees',
131
+ :'organizer' => :'organizer',
132
+ :'recurrence_string' => :'recurrenceString',
133
+ :'reminders' => :'reminders',
134
+ :'sequence_id' => :'sequenceId',
135
+ :'start_date' => :'startDate',
136
+ :'start_time_zone' => :'startTimeZone',
137
+ :'status' => :'status',
138
+ :'summary' => :'summary',
139
+ :'transparency' => :'transparency'
140
+ }
141
+ end
142
+
143
+ # Attribute type mapping.
144
+ def self.swagger_types
145
+ {
146
+ :'attachments' => :'Array<Attachment>',
147
+ :'attendees' => :'Array<MailAddress>',
148
+ :'description' => :'String',
149
+ :'end_date' => :'DateTime',
150
+ :'end_time_zone' => :'String',
151
+ :'flags' => :'Array<String>',
152
+ :'is_description_html' => :'BOOLEAN',
153
+ :'location' => :'String',
154
+ :'method' => :'String',
155
+ :'microsoft_busy_status' => :'String',
156
+ :'microsoft_intended_status' => :'String',
157
+ :'optional_attendees' => :'Array<MailAddress>',
158
+ :'organizer' => :'MailAddress',
159
+ :'recurrence_string' => :'String',
160
+ :'reminders' => :'Array<CalendarReminder>',
161
+ :'sequence_id' => :'String',
162
+ :'start_date' => :'DateTime',
163
+ :'start_time_zone' => :'String',
164
+ :'status' => :'String',
165
+ :'summary' => :'String',
166
+ :'transparency' => :'String'
167
+ }
168
+ end
169
+
170
+ # Initializes the object
171
+ # @param [Hash] attributes Model attributes in the form of hash
172
+ def initialize(attributes = {})
173
+ return unless attributes.is_a?(Hash)
174
+
175
+ # convert string to symbol for hash key
176
+ attributes = attributes.each_with_object({}) { |(k, v), h| h[k.to_sym] = v }
177
+
178
+ if attributes.has_key?(:'attachments')
179
+ if (value = attributes[:'attachments']).is_a?(Array)
180
+ self.attachments = value
181
+ end
182
+ end
183
+
184
+ if attributes.has_key?(:'attendees')
185
+ if (value = attributes[:'attendees']).is_a?(Array)
186
+ self.attendees = value
187
+ end
188
+ end
189
+
190
+ if attributes.has_key?(:'description')
191
+ self.description = attributes[:'description']
192
+ end
193
+
194
+ if attributes.has_key?(:'endDate')
195
+ self.end_date = attributes[:'endDate']
196
+ end
197
+
198
+ if attributes.has_key?(:'endTimeZone')
199
+ self.end_time_zone = attributes[:'endTimeZone']
200
+ end
201
+
202
+ if attributes.has_key?(:'flags')
203
+ if (value = attributes[:'flags']).is_a?(Array)
204
+ self.flags = value
205
+ end
206
+ end
207
+
208
+ if attributes.has_key?(:'isDescriptionHtml')
209
+ self.is_description_html = attributes[:'isDescriptionHtml']
210
+ end
211
+
212
+ if attributes.has_key?(:'location')
213
+ self.location = attributes[:'location']
214
+ end
215
+
216
+ if attributes.has_key?(:'method')
217
+ self.method = attributes[:'method']
218
+ end
219
+
220
+ if attributes.has_key?(:'microsoftBusyStatus')
221
+ self.microsoft_busy_status = attributes[:'microsoftBusyStatus']
222
+ end
223
+
224
+ if attributes.has_key?(:'microsoftIntendedStatus')
225
+ self.microsoft_intended_status = attributes[:'microsoftIntendedStatus']
226
+ end
227
+
228
+ if attributes.has_key?(:'optionalAttendees')
229
+ if (value = attributes[:'optionalAttendees']).is_a?(Array)
230
+ self.optional_attendees = value
231
+ end
232
+ end
233
+
234
+ if attributes.has_key?(:'organizer')
235
+ self.organizer = attributes[:'organizer']
236
+ end
237
+
238
+ if attributes.has_key?(:'recurrenceString')
239
+ self.recurrence_string = attributes[:'recurrenceString']
240
+ end
241
+
242
+ if attributes.has_key?(:'reminders')
243
+ if (value = attributes[:'reminders']).is_a?(Array)
244
+ self.reminders = value
245
+ end
246
+ end
247
+
248
+ if attributes.has_key?(:'sequenceId')
249
+ self.sequence_id = attributes[:'sequenceId']
250
+ end
251
+
252
+ if attributes.has_key?(:'startDate')
253
+ self.start_date = attributes[:'startDate']
254
+ end
255
+
256
+ if attributes.has_key?(:'startTimeZone')
257
+ self.start_time_zone = attributes[:'startTimeZone']
258
+ end
259
+
260
+ if attributes.has_key?(:'status')
261
+ self.status = attributes[:'status']
262
+ end
263
+
264
+ if attributes.has_key?(:'summary')
265
+ self.summary = attributes[:'summary']
266
+ end
267
+
268
+ if attributes.has_key?(:'transparency')
269
+ self.transparency = attributes[:'transparency']
270
+ end
271
+ end
272
+
273
+ # Initializes the object
274
+ # @param [Array<Attachment>] attachments Document attachments.
275
+ # @param [Array<MailAddress>] attendees Event attendees.
276
+ # @param [String] description Description.
277
+ # @param [DateTime] end_date End date.
278
+ # @param [String] end_time_zone End time zone.
279
+ # @param [Array<String>] flags Appointment flags. Items: Enumerates iCalendar flags. Enum, available values: None, AllDayEvent
280
+ # @param [BOOLEAN] is_description_html Indicates if description is in HTML format.
281
+ # @param [String] location Location.
282
+ # @param [String] method Defines the iCalendar object method type associated with the calendar document. Enum, available values: None, Publish, Request, Reply, Add, Cancel, Refresh, Counter, DeclineCounter
283
+ # @param [String] microsoft_busy_status Specifies the BUSY status. Enum, available values: NotDefined, Free, Tentative, Busy, Oof
284
+ # @param [String] microsoft_intended_status Specifies the INTENDED status. Enum, available values: NotDefined, Free, Tentative, Busy, Oof
285
+ # @param [Array<MailAddress>] optional_attendees Optional attendees.
286
+ # @param [MailAddress] organizer Event organizer.
287
+ # @param [String] recurrence_string String representation of recurrence pattern (See iCalendar RFC, \"Recurrence rule\" section). For example: For daily recurrence: \"FREQ=DAILY;COUNT=10;WKST=MO\" For monthly recurrence: \"BYSETPOS=1;BYDAY=MO,TU,WE,TH,FR;FREQ=MONTHLY;INTERVAL=10;WKST=MO\" For yearly recurrence: \"BYMONTHDAY=30;BYMONTH=1;FREQ=YEARLY;WKST=MO\"
288
+ # @param [Array<CalendarReminder>] reminders Reminders.
289
+ # @param [String] sequence_id The sequence id. Read only.
290
+ # @param [DateTime] start_date Start date.
291
+ # @param [String] start_time_zone Start time zone.
292
+ # @param [String] status Defines the overall status or confirmation for the calendar document. Enum, available values: NotDefined, Cancelled, Tentative, Confirmed
293
+ # @param [String] summary Summary.
294
+ # @param [String] transparency Specifies whether or not this appointment is intended to be visible in availability searches. Enum, available values: NotDefined, Transparent, Opaque
295
+ def initialize(attachments=nil, attendees=nil, description=nil, end_date=nil, end_time_zone=nil, flags=nil, is_description_html=nil, location=nil, method=nil, microsoft_busy_status=nil, microsoft_intended_status=nil, optional_attendees=nil, organizer=nil, recurrence_string=nil, reminders=nil, sequence_id=nil, start_date=nil, start_time_zone=nil, status=nil, summary=nil, transparency=nil)
296
+ self.attachments = attachments if attachments
297
+ self.attendees = attendees if attendees
298
+ self.description = description if description
299
+ self.end_date = end_date if end_date
300
+ self.end_time_zone = end_time_zone if end_time_zone
301
+ self.flags = flags if flags
302
+ self.is_description_html = is_description_html if is_description_html
303
+ self.location = location if location
304
+ self.method = method if method
305
+ self.microsoft_busy_status = microsoft_busy_status if microsoft_busy_status
306
+ self.microsoft_intended_status = microsoft_intended_status if microsoft_intended_status
307
+ self.optional_attendees = optional_attendees if optional_attendees
308
+ self.organizer = organizer if organizer
309
+ self.recurrence_string = recurrence_string if recurrence_string
310
+ self.reminders = reminders if reminders
311
+ self.sequence_id = sequence_id if sequence_id
312
+ self.start_date = start_date if start_date
313
+ self.start_time_zone = start_time_zone if start_time_zone
314
+ self.status = status if status
315
+ self.summary = summary if summary
316
+ self.transparency = transparency if transparency
317
+ end
318
+
319
+ # Show invalid properties with the reasons. Usually used together with valid?
320
+ # @return Array for valid properties with the reasons
321
+ def list_invalid_properties
322
+ invalid_properties = Array.new
323
+ if @attendees.nil?
324
+ invalid_properties.push('invalid value for "attendees", attendees cannot be nil.')
325
+ end
326
+
327
+ if @end_date.nil?
328
+ invalid_properties.push('invalid value for "end_date", end_date cannot be nil.')
329
+ end
330
+
331
+ if @is_description_html.nil?
332
+ invalid_properties.push('invalid value for "is_description_html", is_description_html cannot be nil.')
333
+ end
334
+
335
+ if @location.nil?
336
+ invalid_properties.push('invalid value for "location", location cannot be nil.')
337
+ end
338
+
339
+ if @location.to_s.length < 1
340
+ invalid_properties.push('invalid value for "location", the character length must be great than or equal to 1.')
341
+ end
342
+
343
+ if @method.nil?
344
+ invalid_properties.push('invalid value for "method", method cannot be nil.')
345
+ end
346
+
347
+ if @microsoft_busy_status.nil?
348
+ invalid_properties.push('invalid value for "microsoft_busy_status", microsoft_busy_status cannot be nil.')
349
+ end
350
+
351
+ if @microsoft_intended_status.nil?
352
+ invalid_properties.push('invalid value for "microsoft_intended_status", microsoft_intended_status cannot be nil.')
353
+ end
354
+
355
+ if @organizer.nil?
356
+ invalid_properties.push('invalid value for "organizer", organizer cannot be nil.')
357
+ end
358
+
359
+ if @start_date.nil?
360
+ invalid_properties.push('invalid value for "start_date", start_date cannot be nil.')
361
+ end
362
+
363
+ if @status.nil?
364
+ invalid_properties.push('invalid value for "status", status cannot be nil.')
365
+ end
366
+
367
+ if @transparency.nil?
368
+ invalid_properties.push('invalid value for "transparency", transparency cannot be nil.')
369
+ end
370
+
371
+ invalid_properties
372
+ end
373
+
374
+ # Check to see if the all the properties in the model are valid
375
+ # @return true if the model is valid
376
+ def valid?
377
+ return false if @attendees.nil?
378
+ return false if @end_date.nil?
379
+ return false if @is_description_html.nil?
380
+ return false if @location.nil?
381
+ return false if @location.to_s.length < 1
382
+ return false if @method.nil?
383
+ return false if @microsoft_busy_status.nil?
384
+ return false if @microsoft_intended_status.nil?
385
+ return false if @organizer.nil?
386
+ return false if @start_date.nil?
387
+ return false if @status.nil?
388
+ return false if @transparency.nil?
389
+ true
390
+ end
391
+
392
+ # Custom attribute writer method with validation
393
+ # @param [Object] location Value to be assigned
394
+ def location=(location)
395
+ if location.nil?
396
+ fail ArgumentError, 'location cannot be nil'
397
+ end
398
+
399
+ if location.to_s.length < 1
400
+ fail ArgumentError, 'invalid value for "location", the character length must be great than or equal to 1.'
401
+ end
402
+
403
+ @location = location
404
+ end
405
+
406
+ # Checks equality by comparing each attribute.
407
+ # @param [Object] Object to be compared
408
+ def ==(o)
409
+ return true if self.equal?(o)
410
+ self.class == o.class &&
411
+ attachments == o.attachments &&
412
+ attendees == o.attendees &&
413
+ description == o.description &&
414
+ end_date == o.end_date &&
415
+ end_time_zone == o.end_time_zone &&
416
+ flags == o.flags &&
417
+ is_description_html == o.is_description_html &&
418
+ location == o.location &&
419
+ method == o.method &&
420
+ microsoft_busy_status == o.microsoft_busy_status &&
421
+ microsoft_intended_status == o.microsoft_intended_status &&
422
+ optional_attendees == o.optional_attendees &&
423
+ organizer == o.organizer &&
424
+ recurrence_string == o.recurrence_string &&
425
+ reminders == o.reminders &&
426
+ sequence_id == o.sequence_id &&
427
+ start_date == o.start_date &&
428
+ start_time_zone == o.start_time_zone &&
429
+ status == o.status &&
430
+ summary == o.summary &&
431
+ transparency == o.transparency
432
+ end
433
+
434
+ # @see the `==` method
435
+ # @param [Object] Object to be compared
436
+ def eql?(o)
437
+ self == o
438
+ end
439
+
440
+ # Calculates hash code according to all attributes.
441
+ # @return [Fixnum] Hash code
442
+ def hash
443
+ [attachments, attendees, description, end_date, end_time_zone, flags, is_description_html, location, method, microsoft_busy_status, microsoft_intended_status, optional_attendees, organizer, recurrence_string, reminders, sequence_id, start_date, start_time_zone, status, summary, transparency].hash
444
+ end
445
+
446
+ # Builds the object from hash
447
+ # @param [Hash] attributes Model attributes in the form of hash
448
+ # @return [Object] Returns the model itself
449
+ def build_from_hash(attributes)
450
+ return nil unless attributes.is_a?(Hash)
451
+ self.class.swagger_types.each_pair do |key, type|
452
+ attribute_key = self.class.attribute_map[key]
453
+ attribute_key = (attribute_key[0, 1].downcase + attribute_key[1..-1]).to_sym
454
+ if type =~ /\AArray<(.*)>/i
455
+ # check to ensure the input is an array given that the the attribute
456
+ # is documented as an array but the input is not
457
+ if attributes[attribute_key].is_a?(Array)
458
+ self.send("#{key}=", attributes[attribute_key].map { |v| _deserialize($1, v) })
459
+ end
460
+ elsif !attributes[attribute_key].nil?
461
+ self.send("#{key}=", _deserialize(type, attributes[attribute_key]))
462
+ end # or else data not found in attributes(hash), not an issue as the data can be optional
463
+ end
464
+
465
+ self
466
+ end
467
+
468
+ # Deserializes the data based on type
469
+ # @param string type Data type
470
+ # @param string value Value to be deserialized
471
+ # @return [Object] Deserialized data
472
+ def _deserialize(type, value)
473
+ case type.to_sym
474
+ when :DateTime
475
+ DateTime.parse(value)
476
+ when :Date
477
+ Date.parse(value)
478
+ when :String
479
+ value.to_s
480
+ when :Integer
481
+ value.to_i
482
+ when :Float
483
+ value.to_f
484
+ when :BOOLEAN
485
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
486
+ true
487
+ else
488
+ false
489
+ end
490
+ when :Object
491
+ # generic object (usually a Hash), return directly
492
+ value
493
+ when /\AArray<(?<inner_type>.+)>\z/
494
+ inner_type = Regexp.last_match[:inner_type]
495
+ value.map { |v| _deserialize(inner_type, v) }
496
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
497
+ k_type = Regexp.last_match[:k_type]
498
+ v_type = Regexp.last_match[:v_type]
499
+ {}.tap do |hash|
500
+ value.each do |k, v|
501
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
502
+ end
503
+ end
504
+ else # model
505
+ sub_type = value[:type] || value[:discriminator] || type
506
+ if AsposeEmailCloud.const_defined?(sub_type)
507
+ type = sub_type
508
+ end
509
+ temp_model = AsposeEmailCloud.const_get(type).new
510
+ temp_model.build_from_hash(value)
511
+ end
512
+ end
513
+
514
+ # Returns the string representation of the object
515
+ # @return [String] String presentation of the object
516
+ def to_s
517
+ to_hash.to_s
518
+ end
519
+
520
+ # to_body is an alias to to_hash (backward compatibility)
521
+ # @return [Hash] Returns the object in the form of hash
522
+ def to_body
523
+ to_hash
524
+ end
525
+
526
+ # Returns the object in the form of hash
527
+ # @return [Hash] Returns the object in the form of hash
528
+ def to_hash
529
+ hash = {}
530
+ self.class.attribute_map.each_pair do |attr, param|
531
+ value = self.send(attr)
532
+ next if value.nil?
533
+ hash[param] = _to_hash(value)
534
+ end
535
+ hash
536
+ end
537
+
538
+ # Outputs non-array value in the form of hash
539
+ # For object, use to_hash. Otherwise, just return the value
540
+ # @param [Object] value Any valid value
541
+ # @return [Hash] Returns the value in the form of hash
542
+ def _to_hash(value)
543
+ if value.is_a?(Array)
544
+ value.compact.map { |v| _to_hash(v) }
545
+ elsif value.is_a?(Hash)
546
+ {}.tap do |hash|
547
+ value.each { |k, v| hash[k] = _to_hash(v) }
548
+ end
549
+ elsif value.respond_to? :to_hash
550
+ value.to_hash
551
+ else
552
+ value
553
+ end
554
+ end
555
+
556
+ end
557
+ end