comet_backup_ruby_sdk 1.11.0 → 1.14.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 (345) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +28 -2
  3. data/Gemfile.lock +1 -1
  4. data/README.md +3 -2
  5. data/RELEASING.md +1 -1
  6. data/comet_backup_ruby_sdk.gemspec +1 -1
  7. data/lib/api_response_error.rb +27 -0
  8. data/lib/comet/api_response_error.rb +1 -1
  9. data/lib/comet/comet_server.rb +85 -6
  10. data/lib/comet/definitions.rb +72 -14
  11. data/lib/comet/models/add_bucket_response_message.rb +1 -1
  12. data/lib/comet/models/admin_account_properties_response.rb +1 -1
  13. data/lib/comet/models/admin_email_options.rb +1 -1
  14. data/lib/comet/models/admin_resource_response.rb +1 -1
  15. data/lib/comet/models/admin_security_options.rb +3 -1
  16. data/lib/comet/models/admin_u2fregistration.rb +2 -1
  17. data/lib/comet/models/admin_user_permissions.rb +1 -1
  18. data/lib/comet/models/admin_web_authn_registration.rb +10 -1
  19. data/lib/comet/models/allowed_admin_user.rb +3 -1
  20. data/lib/comet/models/available_download.rb +1 -1
  21. data/lib/comet/models/azure_destination_location.rb +1 -1
  22. data/lib/comet/models/b2destination_location.rb +2 -1
  23. data/lib/comet/models/b2storage_extra_info.rb +1 -1
  24. data/lib/comet/models/b2transaction_totals.rb +1 -1
  25. data/lib/comet/models/b2virtual_storage_role_settings.rb +1 -1
  26. data/lib/comet/models/backup_job_advanced_options.rb +10 -1
  27. data/lib/comet/models/backup_job_detail.rb +54 -1
  28. data/lib/comet/models/backup_job_progress.rb +1 -1
  29. data/lib/comet/models/backup_rule_config.rb +10 -1
  30. data/lib/comet/models/backup_rule_event_triggers.rb +1 -1
  31. data/lib/comet/models/branding_options.rb +10 -1
  32. data/lib/comet/models/branding_properties.rb +10 -1
  33. data/lib/comet/models/browse_disk_drives_response.rb +1 -1
  34. data/lib/comet/models/browse_edbresponse.rb +1 -1
  35. data/lib/comet/models/browse_hvresponse.rb +1 -1
  36. data/lib/comet/models/browse_office_365list_virtual_accounts_response.rb +1 -1
  37. data/lib/comet/models/browse_office_365objects_response.rb +1 -1
  38. data/lib/comet/models/browse_sqlserver_response.rb +1 -1
  39. data/lib/comet/models/browse_vssresponse.rb +1 -1
  40. data/lib/comet/models/bucket_properties.rb +1 -1
  41. data/lib/comet/models/bucket_usage_info.rb +1 -1
  42. data/lib/comet/models/comet_apiresponse_message.rb +1 -1
  43. data/lib/comet/models/comet_destination_location.rb +1 -1
  44. data/lib/comet/models/constellation_check_report.rb +1 -1
  45. data/lib/comet/models/constellation_stats.rb +1 -1
  46. data/lib/comet/models/constellation_status_apiresponse.rb +1 -1
  47. data/lib/comet/models/content_measurement.rb +1 -1
  48. data/lib/comet/models/content_measurement_component.rb +1 -1
  49. data/lib/comet/models/create_group_policy_response.rb +1 -1
  50. data/lib/comet/models/custom_remote_bucket_settings.rb +1 -1
  51. data/lib/comet/models/days_of_week_config.rb +108 -0
  52. data/lib/comet/models/default_email_report_policy.rb +1 -1
  53. data/lib/comet/models/default_source_with_osrestriction.rb +1 -1
  54. data/lib/comet/models/destination_config.rb +1 -1
  55. data/lib/comet/models/destination_location.rb +1 -1
  56. data/lib/comet/models/destination_statistics.rb +1 -1
  57. data/lib/comet/models/device_config.rb +1 -1
  58. data/lib/comet/models/disk_drive.rb +1 -1
  59. data/lib/comet/models/dispatcher_admin_sources_response.rb +1 -1
  60. data/lib/comet/models/dispatcher_stored_objects_response.rb +1 -1
  61. data/lib/comet/models/dispatcher_vault_snapshots_response.rb +1 -1
  62. data/lib/comet/models/dispatcher_windisk_snapshot_response.rb +1 -1
  63. data/lib/comet/models/edbfile_info.rb +1 -1
  64. data/lib/comet/models/email_options.rb +1 -1
  65. data/lib/comet/models/email_report_config.rb +1 -1
  66. data/lib/comet/models/email_report_generated_preview.rb +1 -1
  67. data/lib/comet/models/external_ldapauthentication_source_settings.rb +1 -1
  68. data/lib/comet/models/extra_file_exclusion.rb +1 -1
  69. data/lib/comet/models/ftpdestination_location.rb +1 -1
  70. data/lib/comet/models/get_group_policy_response.rb +1 -1
  71. data/lib/comet/models/get_profile_and_hash_response_message.rb +1 -1
  72. data/lib/comet/models/get_profile_hash_response_message.rb +1 -1
  73. data/lib/comet/models/group_policy.rb +1 -1
  74. data/lib/comet/models/hour_sched_config.rb +84 -0
  75. data/lib/comet/models/hyper_vmachine_info.rb +1 -1
  76. data/lib/comet/models/install_creds.rb +1 -1
  77. data/lib/comet/models/install_token.rb +1 -1
  78. data/lib/comet/models/install_token_response.rb +1 -1
  79. data/lib/comet/models/job_entry.rb +2 -1
  80. data/lib/comet/models/live_user_connection.rb +1 -1
  81. data/lib/comet/models/local_destination_location.rb +1 -1
  82. data/lib/comet/models/mac_oscode_sign_properties.rb +70 -1
  83. data/lib/comet/models/mongo_dbconnection.rb +1 -1
  84. data/lib/comet/models/mssqlconnection.rb +1 -1
  85. data/lib/comet/models/my_sqlconnection.rb +1 -1
  86. data/lib/comet/models/new_bucket_detail.rb +1 -1
  87. data/lib/comet/models/news_entry.rb +1 -1
  88. data/lib/comet/models/office_365connection.rb +1 -1
  89. data/lib/comet/models/office_365credential.rb +1 -1
  90. data/lib/comet/models/office_365custom_setting.rb +2 -1
  91. data/lib/comet/models/office_365custom_setting_v2.rb +1 -1
  92. data/lib/comet/models/office_365mixed_virtual_account.rb +9 -1
  93. data/lib/comet/models/office_365object_info.rb +1 -1
  94. data/lib/comet/models/organization.rb +1 -1
  95. data/lib/comet/models/organization_response.rb +1 -1
  96. data/lib/comet/models/osinfo.rb +1 -1
  97. data/lib/comet/models/partition.rb +1 -1
  98. data/lib/comet/models/private_branding_properties.rb +10 -1
  99. data/lib/comet/models/protected_item_engine_type_policy.rb +1 -1
  100. data/lib/comet/models/public_branding_properties.rb +1 -1
  101. data/lib/comet/models/register_office_application_begin_response.rb +1 -1
  102. data/lib/comet/models/register_office_application_check_response.rb +1 -1
  103. data/lib/comet/models/remote_server_address.rb +1 -1
  104. data/lib/comet/models/remote_storage_option.rb +1 -1
  105. data/lib/comet/models/replicator_state_apiresponse.rb +1 -1
  106. data/lib/comet/models/request_storage_vault_response_message.rb +1 -1
  107. data/lib/comet/models/restore_job_advanced_options.rb +1 -1
  108. data/lib/comet/models/retention_policy.rb +1 -1
  109. data/lib/comet/models/retention_range.rb +1 -1
  110. data/lib/comet/models/s3destination_location.rb +1 -1
  111. data/lib/comet/models/schedule_config.rb +37 -1
  112. data/lib/comet/models/search_clause.rb +1 -1
  113. data/lib/comet/models/self_backup_statistics.rb +1 -1
  114. data/lib/comet/models/server_config_options_branding_fragment.rb +1 -1
  115. data/lib/comet/models/server_config_options_software_build_role_fragment.rb +1 -1
  116. data/lib/comet/models/server_meta_branding_properties.rb +1 -1
  117. data/lib/comet/models/server_meta_version_info.rb +1 -1
  118. data/lib/comet/models/session_key_regenerated_response.rb +1 -1
  119. data/lib/comet/models/sftpdestination_location.rb +1 -1
  120. data/lib/comet/models/size_measurement.rb +1 -1
  121. data/lib/comet/models/software_build_role_options.rb +1 -1
  122. data/lib/comet/models/software_update_news_response.rb +1 -1
  123. data/lib/comet/models/source_basic_info.rb +1 -1
  124. data/lib/comet/models/source_config.rb +1 -1
  125. data/lib/comet/models/source_include_pattern.rb +1 -1
  126. data/lib/comet/models/source_statistics.rb +1 -1
  127. data/lib/comet/models/spanned_destination_location.rb +1 -1
  128. data/lib/comet/models/spanned_storage_extra_info.rb +1 -1
  129. data/lib/comet/models/sshconnection.rb +1 -1
  130. data/lib/comet/models/stat_result.rb +1 -1
  131. data/lib/comet/models/storage_free_space_info.rb +1 -1
  132. data/lib/comet/models/storage_vault_provider_policy.rb +1 -1
  133. data/lib/comet/models/stored_object.rb +2 -1
  134. data/lib/comet/models/streamable_event.rb +1 -1
  135. data/lib/comet/models/swift_destination_location.rb +1 -1
  136. data/lib/comet/models/test_response.rb +1 -1
  137. data/lib/comet/models/totp_regenerated_response.rb +1 -1
  138. data/lib/comet/models/u2fregister_request.rb +2 -1
  139. data/lib/comet/models/u2fregistered_key.rb +2 -1
  140. data/lib/comet/models/u2fregistration_challenge_response.rb +2 -1
  141. data/lib/comet/models/u2fsign_request.rb +2 -1
  142. data/lib/comet/models/u2fsign_response.rb +2 -1
  143. data/lib/comet/models/uninstall_config.rb +1 -1
  144. data/lib/comet/models/update_campaign_device_status.rb +1 -1
  145. data/lib/comet/models/update_campaign_options.rb +24 -1
  146. data/lib/comet/models/update_campaign_properties.rb +21 -1
  147. data/lib/comet/models/update_campaign_status.rb +21 -1
  148. data/lib/comet/models/update_campaign_status_device_entry.rb +1 -1
  149. data/lib/comet/models/user_custom_email_settings.rb +1 -1
  150. data/lib/comet/models/user_on_server.rb +1 -1
  151. data/lib/comet/models/user_policy.rb +1 -1
  152. data/lib/comet/models/user_profile_config.rb +10 -1
  153. data/lib/comet/models/user_profile_fragment.rb +1 -1
  154. data/lib/comet/models/vault_snapshot.rb +1 -1
  155. data/lib/comet/models/vmdksnapshot_view_options.rb +90 -0
  156. data/lib/comet/models/vsscomponent.rb +1 -1
  157. data/lib/comet/models/vsswriter_info.rb +1 -1
  158. data/lib/comet/models/wasabi_virtual_storage_role_settings.rb +1 -1
  159. data/lib/comet/models/web_authn_authenticator_selection.rb +1 -1
  160. data/lib/comet/models/web_authn_credential.rb +1 -1
  161. data/lib/comet/models/web_authn_credential_assertion.rb +1 -1
  162. data/lib/comet/models/web_authn_credential_descriptor.rb +1 -1
  163. data/lib/comet/models/web_authn_credential_entity.rb +1 -1
  164. data/lib/comet/models/web_authn_credential_parameter.rb +1 -1
  165. data/lib/comet/models/web_authn_public_key_credential_creation_options.rb +3 -4
  166. data/lib/comet/models/web_authn_public_key_credential_request_options.rb +3 -4
  167. data/lib/comet/models/web_authn_registration_challenge_response.rb +1 -1
  168. data/lib/comet/models/web_authn_relying_party_entity.rb +1 -1
  169. data/lib/comet/models/web_authn_sign_request.rb +1 -1
  170. data/lib/comet/models/web_authn_sign_response.rb +1 -1
  171. data/lib/comet/models/web_authn_user_entity.rb +1 -1
  172. data/lib/comet/models/web_interface_branding_properties.rb +1 -1
  173. data/lib/comet/models/webhook_option.rb +1 -1
  174. data/lib/comet/models/win_smbauth.rb +1 -1
  175. data/lib/comet/models/windows_code_sign_properties.rb +1 -1
  176. data/lib/comet_backup_ruby_sdk.rb +4 -1
  177. data/lib/comet_server.rb +3785 -0
  178. data/lib/definitions.rb +710 -0
  179. data/lib/models/add_bucket_response_message.rb +102 -0
  180. data/lib/models/admin_account_properties_response.rb +91 -0
  181. data/lib/models/admin_email_options.rb +84 -0
  182. data/lib/models/admin_resource_response.rb +93 -0
  183. data/lib/models/admin_security_options.rb +177 -0
  184. data/lib/models/admin_u2fregistration.rb +93 -0
  185. data/lib/models/admin_user_permissions.rb +106 -0
  186. data/lib/models/admin_web_authn_registration.rb +121 -0
  187. data/lib/models/allowed_admin_user.rb +214 -0
  188. data/lib/models/available_download.rb +90 -0
  189. data/lib/models/azure_destination_location.rb +111 -0
  190. data/lib/models/b2destination_location.rb +130 -0
  191. data/lib/models/b2storage_extra_info.rb +81 -0
  192. data/lib/models/b2transaction_totals.rb +93 -0
  193. data/lib/models/b2virtual_storage_role_settings.rb +99 -0
  194. data/lib/models/backup_job_advanced_options.rb +117 -0
  195. data/lib/models/backup_job_detail.rb +328 -0
  196. data/lib/models/backup_job_progress.rb +111 -0
  197. data/lib/models/backup_rule_config.rb +233 -0
  198. data/lib/models/backup_rule_event_triggers.rb +82 -0
  199. data/lib/models/branding_options.rb +335 -0
  200. data/lib/models/branding_properties.rb +293 -0
  201. data/lib/models/browse_disk_drives_response.rb +99 -0
  202. data/lib/models/browse_edbresponse.rb +99 -0
  203. data/lib/models/browse_hvresponse.rb +99 -0
  204. data/lib/models/browse_office_365list_virtual_accounts_response.rb +99 -0
  205. data/lib/models/browse_office_365objects_response.rb +99 -0
  206. data/lib/models/browse_sqlserver_response.rb +100 -0
  207. data/lib/models/browse_vssresponse.rb +99 -0
  208. data/lib/models/bucket_properties.rb +110 -0
  209. data/lib/models/bucket_usage_info.rb +97 -0
  210. data/lib/models/comet_apiresponse_message.rb +84 -0
  211. data/lib/models/comet_destination_location.rb +93 -0
  212. data/lib/models/constellation_check_report.rb +99 -0
  213. data/lib/models/constellation_stats.rb +102 -0
  214. data/lib/models/constellation_status_apiresponse.rb +114 -0
  215. data/lib/models/content_measurement.rb +99 -0
  216. data/lib/models/content_measurement_component.rb +91 -0
  217. data/lib/models/create_group_policy_response.rb +93 -0
  218. data/lib/models/custom_remote_bucket_settings.rb +75 -0
  219. data/lib/models/days_of_week_config.rb +108 -0
  220. data/lib/models/default_email_report_policy.rb +87 -0
  221. data/lib/models/default_source_with_osrestriction.rb +83 -0
  222. data/lib/models/destination_config.rb +562 -0
  223. data/lib/models/destination_location.rb +421 -0
  224. data/lib/models/destination_statistics.rb +115 -0
  225. data/lib/models/device_config.rb +124 -0
  226. data/lib/models/disk_drive.rb +180 -0
  227. data/lib/models/dispatcher_admin_sources_response.rb +100 -0
  228. data/lib/models/dispatcher_stored_objects_response.rb +99 -0
  229. data/lib/models/dispatcher_vault_snapshots_response.rb +99 -0
  230. data/lib/models/dispatcher_windisk_snapshot_response.rb +99 -0
  231. data/lib/models/edbfile_info.rb +99 -0
  232. data/lib/models/email_options.rb +153 -0
  233. data/lib/models/email_report_config.rb +98 -0
  234. data/lib/models/email_report_generated_preview.rb +136 -0
  235. data/lib/models/external_ldapauthentication_source_settings.rb +135 -0
  236. data/lib/models/extra_file_exclusion.rb +90 -0
  237. data/lib/models/ftpdestination_location.rb +141 -0
  238. data/lib/models/get_group_policy_response.rb +101 -0
  239. data/lib/models/get_profile_and_hash_response_message.rb +101 -0
  240. data/lib/models/get_profile_hash_response_message.rb +93 -0
  241. data/lib/models/group_policy.rb +98 -0
  242. data/lib/models/hour_sched_config.rb +84 -0
  243. data/lib/models/hyper_vmachine_info.rb +84 -0
  244. data/lib/models/install_creds.rb +99 -0
  245. data/lib/models/install_token.rb +117 -0
  246. data/lib/models/install_token_response.rb +92 -0
  247. data/lib/models/job_entry.rb +94 -0
  248. data/lib/models/live_user_connection.rb +149 -0
  249. data/lib/models/local_destination_location.rb +102 -0
  250. data/lib/models/mac_oscode_sign_properties.rb +197 -0
  251. data/lib/models/mongo_dbconnection.rb +230 -0
  252. data/lib/models/mssqlconnection.rb +120 -0
  253. data/lib/models/my_sqlconnection.rb +141 -0
  254. data/lib/models/new_bucket_detail.rb +84 -0
  255. data/lib/models/news_entry.rb +93 -0
  256. data/lib/models/office_365connection.rb +131 -0
  257. data/lib/models/office_365credential.rb +111 -0
  258. data/lib/models/office_365custom_setting.rb +133 -0
  259. data/lib/models/office_365custom_setting_v2.rb +108 -0
  260. data/lib/models/office_365mixed_virtual_account.rb +211 -0
  261. data/lib/models/office_365object_info.rb +118 -0
  262. data/lib/models/organization.rb +151 -0
  263. data/lib/models/organization_response.rb +101 -0
  264. data/lib/models/osinfo.rb +99 -0
  265. data/lib/models/partition.rb +172 -0
  266. data/lib/models/private_branding_properties.rb +227 -0
  267. data/lib/models/protected_item_engine_type_policy.rb +88 -0
  268. data/lib/models/public_branding_properties.rb +132 -0
  269. data/lib/models/register_office_application_begin_response.rb +93 -0
  270. data/lib/models/register_office_application_check_response.rb +100 -0
  271. data/lib/models/remote_server_address.rb +167 -0
  272. data/lib/models/remote_storage_option.rb +188 -0
  273. data/lib/models/replicator_state_apiresponse.rb +174 -0
  274. data/lib/models/request_storage_vault_response_message.rb +93 -0
  275. data/lib/models/restore_job_advanced_options.rb +131 -0
  276. data/lib/models/retention_policy.rb +90 -0
  277. data/lib/models/retention_range.rb +138 -0
  278. data/lib/models/s3destination_location.rb +123 -0
  279. data/lib/models/s3generic_virtual_storage_role.rb +111 -0
  280. data/lib/models/schedule_config.rb +131 -0
  281. data/lib/models/search_clause.rb +119 -0
  282. data/lib/models/self_backup_statistics.rb +108 -0
  283. data/lib/models/server_config_options_branding_fragment.rb +74 -0
  284. data/lib/models/server_config_options_software_build_role_fragment.rb +74 -0
  285. data/lib/models/server_meta_branding_properties.rb +144 -0
  286. data/lib/models/server_meta_version_info.rb +261 -0
  287. data/lib/models/session_key_regenerated_response.rb +102 -0
  288. data/lib/models/sftpdestination_location.rb +135 -0
  289. data/lib/models/size_measurement.rb +93 -0
  290. data/lib/models/software_build_role_options.rb +78 -0
  291. data/lib/models/software_update_news_response.rb +109 -0
  292. data/lib/models/source_basic_info.rb +101 -0
  293. data/lib/models/source_config.rb +202 -0
  294. data/lib/models/source_include_pattern.rb +84 -0
  295. data/lib/models/source_statistics.rb +82 -0
  296. data/lib/models/spanned_destination_location.rb +87 -0
  297. data/lib/models/spanned_storage_extra_info.rb +81 -0
  298. data/lib/models/sshconnection.rb +126 -0
  299. data/lib/models/stat_result.rb +111 -0
  300. data/lib/models/storage_free_space_info.rb +110 -0
  301. data/lib/models/storage_vault_provider_policy.rb +88 -0
  302. data/lib/models/stored_object.rb +238 -0
  303. data/lib/models/streamable_event.rb +92 -0
  304. data/lib/models/swift_destination_location.rb +209 -0
  305. data/lib/models/test_response.rb +90 -0
  306. data/lib/models/totp_regenerated_response.rb +111 -0
  307. data/lib/models/u2fregister_request.rb +85 -0
  308. data/lib/models/u2fregistered_key.rb +94 -0
  309. data/lib/models/u2fregistration_challenge_response.rb +133 -0
  310. data/lib/models/u2fsign_request.rb +109 -0
  311. data/lib/models/u2fsign_response.rb +103 -0
  312. data/lib/models/uninstall_config.rb +78 -0
  313. data/lib/models/update_campaign_device_status.rb +75 -0
  314. data/lib/models/update_campaign_options.rb +113 -0
  315. data/lib/models/update_campaign_properties.rb +128 -0
  316. data/lib/models/update_campaign_status.rb +143 -0
  317. data/lib/models/update_campaign_status_device_entry.rb +93 -0
  318. data/lib/models/user_custom_email_settings.rb +81 -0
  319. data/lib/models/user_on_server.rb +84 -0
  320. data/lib/models/user_policy.rb +339 -0
  321. data/lib/models/user_profile_config.rb +349 -0
  322. data/lib/models/user_profile_fragment.rb +75 -0
  323. data/lib/models/vault_snapshot.rb +99 -0
  324. data/lib/models/vmdksnapshot_view_options.rb +90 -0
  325. data/lib/models/vsscomponent.rb +99 -0
  326. data/lib/models/vsswriter_info.rb +90 -0
  327. data/lib/models/wasabi_virtual_storage_role_settings.rb +93 -0
  328. data/lib/models/web_authn_authenticator_selection.rb +96 -0
  329. data/lib/models/web_authn_credential.rb +105 -0
  330. data/lib/models/web_authn_credential_assertion.rb +74 -0
  331. data/lib/models/web_authn_credential_descriptor.rb +101 -0
  332. data/lib/models/web_authn_credential_entity.rb +86 -0
  333. data/lib/models/web_authn_credential_parameter.rb +84 -0
  334. data/lib/models/web_authn_public_key_credential_creation_options.rb +172 -0
  335. data/lib/models/web_authn_public_key_credential_request_options.rb +140 -0
  336. data/lib/models/web_authn_registration_challenge_response.rb +101 -0
  337. data/lib/models/web_authn_relying_party_entity.rb +95 -0
  338. data/lib/models/web_authn_sign_request.rb +83 -0
  339. data/lib/models/web_authn_sign_response.rb +84 -0
  340. data/lib/models/web_authn_user_entity.rb +105 -0
  341. data/lib/models/web_interface_branding_properties.rb +108 -0
  342. data/lib/models/webhook_option.rb +107 -0
  343. data/lib/models/win_smbauth.rb +102 -0
  344. data/lib/models/windows_code_sign_properties.rb +147 -0
  345. metadata +174 -2
@@ -0,0 +1,339 @@
1
+ #!/usr/bin/env ruby --enable-frozen-string-literal
2
+ #
3
+ # Copyright (c) 2020-2022 Comet Licensing Ltd.
4
+ # Please see the LICENSE file for usage information.
5
+ #
6
+ # SPDX-License-Identifier: MIT
7
+ #
8
+ # frozen_string_literal: true
9
+
10
+ require 'json'
11
+
12
+ module Comet
13
+
14
+ # UserPolicy is a typed class wrapper around the underlying Comet Server API data structure.
15
+ class UserPolicy
16
+
17
+ # @type [Boolean] prevent_request_storage_vault
18
+ attr_accessor :prevent_request_storage_vault
19
+
20
+ # @type [Boolean] prevent_add_custom_storage_vault
21
+ attr_accessor :prevent_add_custom_storage_vault
22
+
23
+ # @type [Boolean] prevent_edit_storage_vault
24
+ attr_accessor :prevent_edit_storage_vault
25
+
26
+ # @type [Boolean] hide_cloud_storage_branding
27
+ attr_accessor :hide_cloud_storage_branding
28
+
29
+ # @type [Boolean] prevent_delete_storage_vault
30
+ attr_accessor :prevent_delete_storage_vault
31
+
32
+ # @type [Comet::StorageVaultProviderPolicy] storage_vault_providers
33
+ attr_accessor :storage_vault_providers
34
+
35
+ # @type [Boolean] prevent_new_protected_item
36
+ attr_accessor :prevent_new_protected_item
37
+
38
+ # @type [Boolean] prevent_edit_protected_item
39
+ attr_accessor :prevent_edit_protected_item
40
+
41
+ # @type [Boolean] prevent_delete_protected_item
42
+ attr_accessor :prevent_delete_protected_item
43
+
44
+ # @type [Comet::ProtectedItemEngineTypePolicy] protected_item_engine_types
45
+ attr_accessor :protected_item_engine_types
46
+
47
+ # @type [Array<Comet::ExtraFileExclusion>] file_and_folder_mandatory_exclusions
48
+ attr_accessor :file_and_folder_mandatory_exclusions
49
+
50
+ # @type [Number] mode_schedule_skip_already_running
51
+ attr_accessor :mode_schedule_skip_already_running
52
+
53
+ # @type [Number] mode_admin_reset_password
54
+ attr_accessor :mode_admin_reset_password
55
+
56
+ # @type [Number] mode_admin_view_filenames
57
+ attr_accessor :mode_admin_view_filenames
58
+
59
+ # @type [Number] mode_require_user_reset_password
60
+ attr_accessor :mode_require_user_reset_password
61
+
62
+ # @type [Boolean] prevent_delete_single_snapshots
63
+ attr_accessor :prevent_delete_single_snapshots
64
+
65
+ # @type [Boolean] prevent_change_account_password
66
+ attr_accessor :prevent_change_account_password
67
+
68
+ # @type [Boolean] prevent_change_email_settings
69
+ attr_accessor :prevent_change_email_settings
70
+
71
+ # @type [Boolean] prevent_change_account_name
72
+ attr_accessor :prevent_change_account_name
73
+
74
+ # @type [Boolean] prevent_open_app_ui
75
+ attr_accessor :prevent_open_app_ui
76
+
77
+ # @type [Boolean] require_password_open_app_ui
78
+ attr_accessor :require_password_open_app_ui
79
+
80
+ # @type [Boolean] hide_app_import
81
+ attr_accessor :hide_app_import
82
+
83
+ # @type [Boolean] hide_app_version
84
+ attr_accessor :hide_app_version
85
+
86
+ # @type [Boolean] prevent_open_web_ui
87
+ attr_accessor :prevent_open_web_ui
88
+
89
+ # @type [Boolean] prevent_view_device_names
90
+ attr_accessor :prevent_view_device_names
91
+
92
+ # @type [Comet::DefaultEmailReportPolicy] default_email_reports
93
+ attr_accessor :default_email_reports
94
+
95
+ # @type [Comet::RetentionPolicy] default_storage_vault_retention
96
+ attr_accessor :default_storage_vault_retention
97
+
98
+ # @type [Boolean] enforce_storage_vault_retention
99
+ attr_accessor :enforce_storage_vault_retention
100
+
101
+ # @type [Boolean] prevent_protected_item_retention
102
+ attr_accessor :prevent_protected_item_retention
103
+
104
+ # @type [Hash{String => Comet::SourceConfig}] default_sources
105
+ attr_accessor :default_sources
106
+
107
+ # @type [Hash{String => Comet::BackupRuleConfig}] default_sources_backup_rules
108
+ attr_accessor :default_sources_backup_rules
109
+
110
+ # @type [Hash{String => Comet::DefaultSourceWithOSRestriction}] default_sources_with_osrestriction
111
+ attr_accessor :default_sources_with_osrestriction
112
+
113
+ # @type [Hash{String => Comet::BackupRuleConfig}] default_backup_rules
114
+ attr_accessor :default_backup_rules
115
+
116
+ # @type [Hash] Hidden storage to preserve future properties for non-destructive roundtrip operations
117
+ attr_accessor :unknown_json_fields
118
+
119
+ def initialize
120
+ clear
121
+ end
122
+
123
+ def clear
124
+ @storage_vault_providers = Comet::StorageVaultProviderPolicy.new
125
+ @protected_item_engine_types = Comet::ProtectedItemEngineTypePolicy.new
126
+ @file_and_folder_mandatory_exclusions = []
127
+ @mode_schedule_skip_already_running = 0
128
+ @mode_admin_reset_password = 0
129
+ @mode_admin_view_filenames = 0
130
+ @mode_require_user_reset_password = 0
131
+ @default_email_reports = Comet::DefaultEmailReportPolicy.new
132
+ @default_storage_vault_retention = Comet::RetentionPolicy.new
133
+ @default_sources = {}
134
+ @default_sources_backup_rules = {}
135
+ @default_sources_with_osrestriction = {}
136
+ @default_backup_rules = {}
137
+ @unknown_json_fields = {}
138
+ end
139
+
140
+ # @param [String] json_string The complete object in JSON format
141
+ def from_json(json_string)
142
+ raise TypeError, "'json_string' expected String, got #{json_string.class}" unless json_string.is_a? String
143
+
144
+ from_hash(JSON.parse(json_string))
145
+ end
146
+
147
+ # @param [Hash] obj The complete object as a Ruby hash
148
+ def from_hash(obj)
149
+ raise TypeError, "'obj' expected Hash, got #{obj.class}" unless obj.is_a? Hash
150
+
151
+ obj.each do |k, v|
152
+ case k
153
+ when 'PreventRequestStorageVault'
154
+ @prevent_request_storage_vault = v
155
+ when 'PreventAddCustomStorageVault'
156
+ @prevent_add_custom_storage_vault = v
157
+ when 'PreventEditStorageVault'
158
+ @prevent_edit_storage_vault = v
159
+ when 'HideCloudStorageBranding'
160
+ @hide_cloud_storage_branding = v
161
+ when 'PreventDeleteStorageVault'
162
+ @prevent_delete_storage_vault = v
163
+ when 'StorageVaultProviders'
164
+ @storage_vault_providers = Comet::StorageVaultProviderPolicy.new
165
+ @storage_vault_providers.from_hash(v)
166
+ when 'PreventNewProtectedItem'
167
+ @prevent_new_protected_item = v
168
+ when 'PreventEditProtectedItem'
169
+ @prevent_edit_protected_item = v
170
+ when 'PreventDeleteProtectedItem'
171
+ @prevent_delete_protected_item = v
172
+ when 'ProtectedItemEngineTypes'
173
+ @protected_item_engine_types = Comet::ProtectedItemEngineTypePolicy.new
174
+ @protected_item_engine_types.from_hash(v)
175
+ when 'FileAndFolderMandatoryExclusions'
176
+ if v.nil?
177
+ @file_and_folder_mandatory_exclusions = []
178
+ else
179
+ @file_and_folder_mandatory_exclusions = Array.new(v.length)
180
+ v.each_with_index do |v1, i1|
181
+ @file_and_folder_mandatory_exclusions[i1] = Comet::ExtraFileExclusion.new
182
+ @file_and_folder_mandatory_exclusions[i1].from_hash(v1)
183
+ end
184
+ end
185
+ when 'ModeScheduleSkipAlreadyRunning'
186
+ raise TypeError, "'v' expected Numeric, got #{v.class}" unless v.is_a? Numeric
187
+
188
+ @mode_schedule_skip_already_running = v
189
+ when 'ModeAdminResetPassword'
190
+ raise TypeError, "'v' expected Numeric, got #{v.class}" unless v.is_a? Numeric
191
+
192
+ @mode_admin_reset_password = v
193
+ when 'ModeAdminViewFilenames'
194
+ raise TypeError, "'v' expected Numeric, got #{v.class}" unless v.is_a? Numeric
195
+
196
+ @mode_admin_view_filenames = v
197
+ when 'ModeRequireUserResetPassword'
198
+ raise TypeError, "'v' expected Numeric, got #{v.class}" unless v.is_a? Numeric
199
+
200
+ @mode_require_user_reset_password = v
201
+ when 'PreventDeleteSingleSnapshots'
202
+ @prevent_delete_single_snapshots = v
203
+ when 'PreventChangeAccountPassword'
204
+ @prevent_change_account_password = v
205
+ when 'PreventChangeEmailSettings'
206
+ @prevent_change_email_settings = v
207
+ when 'PreventChangeAccountName'
208
+ @prevent_change_account_name = v
209
+ when 'PreventOpenAppUI'
210
+ @prevent_open_app_ui = v
211
+ when 'RequirePasswordOpenAppUI'
212
+ @require_password_open_app_ui = v
213
+ when 'HideAppImport'
214
+ @hide_app_import = v
215
+ when 'HideAppVersion'
216
+ @hide_app_version = v
217
+ when 'PreventOpenWebUI'
218
+ @prevent_open_web_ui = v
219
+ when 'PreventViewDeviceNames'
220
+ @prevent_view_device_names = v
221
+ when 'DefaultEmailReports'
222
+ @default_email_reports = Comet::DefaultEmailReportPolicy.new
223
+ @default_email_reports.from_hash(v)
224
+ when 'DefaultStorageVaultRetention'
225
+ @default_storage_vault_retention = Comet::RetentionPolicy.new
226
+ @default_storage_vault_retention.from_hash(v)
227
+ when 'EnforceStorageVaultRetention'
228
+ @enforce_storage_vault_retention = v
229
+ when 'PreventProtectedItemRetention'
230
+ @prevent_protected_item_retention = v
231
+ when 'DefaultSources'
232
+ @default_sources = {}
233
+ if v.nil?
234
+ @default_sources = {}
235
+ else
236
+ v.each do |k1, v1|
237
+ @default_sources[k1] = Comet::SourceConfig.new
238
+ @default_sources[k1].from_hash(v1)
239
+ end
240
+ end
241
+ when 'DefaultSourcesBackupRules'
242
+ @default_sources_backup_rules = {}
243
+ if v.nil?
244
+ @default_sources_backup_rules = {}
245
+ else
246
+ v.each do |k1, v1|
247
+ @default_sources_backup_rules[k1] = Comet::BackupRuleConfig.new
248
+ @default_sources_backup_rules[k1].from_hash(v1)
249
+ end
250
+ end
251
+ when 'DefaultSourcesWithOSRestriction'
252
+ @default_sources_with_osrestriction = {}
253
+ if v.nil?
254
+ @default_sources_with_osrestriction = {}
255
+ else
256
+ v.each do |k1, v1|
257
+ @default_sources_with_osrestriction[k1] = Comet::DefaultSourceWithOSRestriction.new
258
+ @default_sources_with_osrestriction[k1].from_hash(v1)
259
+ end
260
+ end
261
+ when 'DefaultBackupRules'
262
+ @default_backup_rules = {}
263
+ if v.nil?
264
+ @default_backup_rules = {}
265
+ else
266
+ v.each do |k1, v1|
267
+ @default_backup_rules[k1] = Comet::BackupRuleConfig.new
268
+ @default_backup_rules[k1].from_hash(v1)
269
+ end
270
+ end
271
+ else
272
+ @unknown_json_fields[k] = v
273
+ end
274
+ end
275
+ end
276
+
277
+ # @return [Hash] The complete object as a Ruby hash
278
+ def to_hash
279
+ ret = {}
280
+ ret['PreventRequestStorageVault'] = @prevent_request_storage_vault
281
+ ret['PreventAddCustomStorageVault'] = @prevent_add_custom_storage_vault
282
+ ret['PreventEditStorageVault'] = @prevent_edit_storage_vault
283
+ ret['HideCloudStorageBranding'] = @hide_cloud_storage_branding
284
+ ret['PreventDeleteStorageVault'] = @prevent_delete_storage_vault
285
+ ret['StorageVaultProviders'] = @storage_vault_providers
286
+ ret['PreventNewProtectedItem'] = @prevent_new_protected_item
287
+ ret['PreventEditProtectedItem'] = @prevent_edit_protected_item
288
+ ret['PreventDeleteProtectedItem'] = @prevent_delete_protected_item
289
+ ret['ProtectedItemEngineTypes'] = @protected_item_engine_types
290
+ unless @file_and_folder_mandatory_exclusions.nil?
291
+ ret['FileAndFolderMandatoryExclusions'] = @file_and_folder_mandatory_exclusions
292
+ end
293
+ unless @mode_schedule_skip_already_running.nil?
294
+ ret['ModeScheduleSkipAlreadyRunning'] = @mode_schedule_skip_already_running
295
+ end
296
+ unless @mode_admin_reset_password.nil?
297
+ ret['ModeAdminResetPassword'] = @mode_admin_reset_password
298
+ end
299
+ unless @mode_admin_view_filenames.nil?
300
+ ret['ModeAdminViewFilenames'] = @mode_admin_view_filenames
301
+ end
302
+ unless @mode_require_user_reset_password.nil?
303
+ ret['ModeRequireUserResetPassword'] = @mode_require_user_reset_password
304
+ end
305
+ ret['PreventDeleteSingleSnapshots'] = @prevent_delete_single_snapshots
306
+ ret['PreventChangeAccountPassword'] = @prevent_change_account_password
307
+ ret['PreventChangeEmailSettings'] = @prevent_change_email_settings
308
+ ret['PreventChangeAccountName'] = @prevent_change_account_name
309
+ ret['PreventOpenAppUI'] = @prevent_open_app_ui
310
+ ret['RequirePasswordOpenAppUI'] = @require_password_open_app_ui
311
+ ret['HideAppImport'] = @hide_app_import
312
+ ret['HideAppVersion'] = @hide_app_version
313
+ ret['PreventOpenWebUI'] = @prevent_open_web_ui
314
+ ret['PreventViewDeviceNames'] = @prevent_view_device_names
315
+ ret['DefaultEmailReports'] = @default_email_reports
316
+ ret['DefaultStorageVaultRetention'] = @default_storage_vault_retention
317
+ ret['EnforceStorageVaultRetention'] = @enforce_storage_vault_retention
318
+ ret['PreventProtectedItemRetention'] = @prevent_protected_item_retention
319
+ ret['DefaultSources'] = @default_sources
320
+ ret['DefaultSourcesBackupRules'] = @default_sources_backup_rules
321
+ ret['DefaultSourcesWithOSRestriction'] = @default_sources_with_osrestriction
322
+ ret['DefaultBackupRules'] = @default_backup_rules
323
+ @unknown_json_fields.each do |k, v|
324
+ ret[k] = v
325
+ end
326
+ ret
327
+ end
328
+
329
+ # @return [Hash] The complete object as a Ruby hash
330
+ def to_h
331
+ to_hash
332
+ end
333
+
334
+ # @return [String] The complete object as a JSON string
335
+ def to_json(options = {})
336
+ to_hash.to_json(options)
337
+ end
338
+ end
339
+ end
@@ -0,0 +1,349 @@
1
+ #!/usr/bin/env ruby --enable-frozen-string-literal
2
+ #
3
+ # Copyright (c) 2020-2022 Comet Licensing Ltd.
4
+ # Please see the LICENSE file for usage information.
5
+ #
6
+ # SPDX-License-Identifier: MIT
7
+ #
8
+ # frozen_string_literal: true
9
+
10
+ require 'json'
11
+
12
+ module Comet
13
+
14
+ # UserProfileConfig is a typed class wrapper around the underlying Comet Server API data structure.
15
+ # This is the main data structure for a user's profile.
16
+ class UserProfileConfig
17
+
18
+ # @type [String] username
19
+ attr_accessor :username
20
+
21
+ # @type [String] account_name
22
+ attr_accessor :account_name
23
+
24
+ # @type [String] local_timezone
25
+ attr_accessor :local_timezone
26
+
27
+ # @type [String] language_code
28
+ attr_accessor :language_code
29
+
30
+ # Tenant
31
+ # @type [String] organization_id
32
+ attr_accessor :organization_id
33
+
34
+ # @type [Array<String>] emails
35
+ attr_accessor :emails
36
+
37
+ # @type [Hash{String => Comet::UserCustomEmailSettings}] override_email_settings
38
+ attr_accessor :override_email_settings
39
+
40
+ # @type [Boolean] send_email_reports
41
+ attr_accessor :send_email_reports
42
+
43
+ # Storage Vaults
44
+ # @type [Hash{String => Comet::DestinationConfig}] destinations
45
+ attr_accessor :destinations
46
+
47
+ # Protected Items
48
+ # @type [Hash{String => Comet::SourceConfig}] sources
49
+ attr_accessor :sources
50
+
51
+ # @type [Hash{String => Comet::BackupRuleConfig}] backup_rules
52
+ attr_accessor :backup_rules
53
+
54
+ # @type [Hash{String => Comet::DeviceConfig}] devices
55
+ attr_accessor :devices
56
+
57
+ # @type [Boolean] is_suspended
58
+ attr_accessor :is_suspended
59
+
60
+ # @type [Boolean] all_protected_items_quota_enabled
61
+ attr_accessor :all_protected_items_quota_enabled
62
+
63
+ # @type [Number] all_protected_items_quota_bytes
64
+ attr_accessor :all_protected_items_quota_bytes
65
+
66
+ # @type [Number] maximum_devices
67
+ attr_accessor :maximum_devices
68
+
69
+ # If the PolicyID field is set to a non-empty string, the Comet Server will enforce the contents of
70
+ # the Policy field based on the matching server's policy. Otherwise if the PolicyID field is set to an
71
+ # empty string, the administrator may configure any custom values in the Policy field.
72
+ # @type [String] policy_id
73
+ attr_accessor :policy_id
74
+
75
+ # @type [Comet::UserPolicy] policy
76
+ attr_accessor :policy
77
+
78
+ # To change the user's password, use the AdminResetUserPassword API instead of accessing these fields
79
+ # directly. Otherwise, other encrypted fields in the user profile may become corrupted.
80
+ # @type [Number] password_format
81
+ attr_accessor :password_format
82
+
83
+ # @type [String] password_hash
84
+ attr_accessor :password_hash
85
+
86
+ # @type [String] password_recovery
87
+ attr_accessor :password_recovery
88
+
89
+ # @type [Boolean] allow_password_login
90
+ attr_accessor :allow_password_login
91
+
92
+ # @type [Boolean] allow_password_and_totplogin
93
+ attr_accessor :allow_password_and_totplogin
94
+
95
+ # @type [Number] totpkey_encryption_format
96
+ attr_accessor :totpkey_encryption_format
97
+
98
+ # @type [String] totpkey
99
+ attr_accessor :totpkey
100
+
101
+ # @type [Boolean] require_password_change
102
+ attr_accessor :require_password_change
103
+
104
+ # @type [Number] create_time
105
+ attr_accessor :create_time
106
+
107
+ # @type [String] creation_guid
108
+ attr_accessor :creation_guid
109
+
110
+ # @type [Hash] Hidden storage to preserve future properties for non-destructive roundtrip operations
111
+ attr_accessor :unknown_json_fields
112
+
113
+ def initialize
114
+ clear
115
+ end
116
+
117
+ def clear
118
+ @username = ''
119
+ @account_name = ''
120
+ @local_timezone = ''
121
+ @language_code = ''
122
+ @organization_id = ''
123
+ @emails = []
124
+ @override_email_settings = {}
125
+ @destinations = {}
126
+ @sources = {}
127
+ @backup_rules = {}
128
+ @devices = {}
129
+ @all_protected_items_quota_bytes = 0
130
+ @maximum_devices = 0
131
+ @policy_id = ''
132
+ @policy = Comet::UserPolicy.new
133
+ @password_format = 0
134
+ @password_hash = ''
135
+ @password_recovery = ''
136
+ @totpkey_encryption_format = 0
137
+ @totpkey = ''
138
+ @create_time = 0
139
+ @creation_guid = ''
140
+ @unknown_json_fields = {}
141
+ end
142
+
143
+ # @param [String] json_string The complete object in JSON format
144
+ def from_json(json_string)
145
+ raise TypeError, "'json_string' expected String, got #{json_string.class}" unless json_string.is_a? String
146
+
147
+ from_hash(JSON.parse(json_string))
148
+ end
149
+
150
+ # @param [Hash] obj The complete object as a Ruby hash
151
+ def from_hash(obj)
152
+ raise TypeError, "'obj' expected Hash, got #{obj.class}" unless obj.is_a? Hash
153
+
154
+ obj.each do |k, v|
155
+ case k
156
+ when 'Username'
157
+ raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
158
+
159
+ @username = v
160
+ when 'AccountName'
161
+ raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
162
+
163
+ @account_name = v
164
+ when 'LocalTimezone'
165
+ raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
166
+
167
+ @local_timezone = v
168
+ when 'LanguageCode'
169
+ raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
170
+
171
+ @language_code = v
172
+ when 'OrganizationID'
173
+ raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
174
+
175
+ @organization_id = v
176
+ when 'Emails'
177
+ if v.nil?
178
+ @emails = []
179
+ else
180
+ @emails = Array.new(v.length)
181
+ v.each_with_index do |v1, i1|
182
+ raise TypeError, "'v1' expected String, got #{v1.class}" unless v1.is_a? String
183
+
184
+ @emails[i1] = v1
185
+ end
186
+ end
187
+ when 'OverrideEmailSettings'
188
+ @override_email_settings = {}
189
+ if v.nil?
190
+ @override_email_settings = {}
191
+ else
192
+ v.each do |k1, v1|
193
+ @override_email_settings[k1] = Comet::UserCustomEmailSettings.new
194
+ @override_email_settings[k1].from_hash(v1)
195
+ end
196
+ end
197
+ when 'SendEmailReports'
198
+ @send_email_reports = v
199
+ when 'Destinations'
200
+ @destinations = {}
201
+ if v.nil?
202
+ @destinations = {}
203
+ else
204
+ v.each do |k1, v1|
205
+ @destinations[k1] = Comet::DestinationConfig.new
206
+ @destinations[k1].from_hash(v1)
207
+ end
208
+ end
209
+ when 'Sources'
210
+ @sources = {}
211
+ if v.nil?
212
+ @sources = {}
213
+ else
214
+ v.each do |k1, v1|
215
+ @sources[k1] = Comet::SourceConfig.new
216
+ @sources[k1].from_hash(v1)
217
+ end
218
+ end
219
+ when 'BackupRules'
220
+ @backup_rules = {}
221
+ if v.nil?
222
+ @backup_rules = {}
223
+ else
224
+ v.each do |k1, v1|
225
+ @backup_rules[k1] = Comet::BackupRuleConfig.new
226
+ @backup_rules[k1].from_hash(v1)
227
+ end
228
+ end
229
+ when 'Devices'
230
+ @devices = {}
231
+ if v.nil?
232
+ @devices = {}
233
+ else
234
+ v.each do |k1, v1|
235
+ @devices[k1] = Comet::DeviceConfig.new
236
+ @devices[k1].from_hash(v1)
237
+ end
238
+ end
239
+ when 'IsSuspended'
240
+ @is_suspended = v
241
+ when 'AllProtectedItemsQuotaEnabled'
242
+ @all_protected_items_quota_enabled = v
243
+ when 'AllProtectedItemsQuotaBytes'
244
+ raise TypeError, "'v' expected Numeric, got #{v.class}" unless v.is_a? Numeric
245
+
246
+ @all_protected_items_quota_bytes = v
247
+ when 'MaximumDevices'
248
+ raise TypeError, "'v' expected Numeric, got #{v.class}" unless v.is_a? Numeric
249
+
250
+ @maximum_devices = v
251
+ when 'PolicyID'
252
+ raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
253
+
254
+ @policy_id = v
255
+ when 'Policy'
256
+ @policy = Comet::UserPolicy.new
257
+ @policy.from_hash(v)
258
+ when 'PasswordFormat'
259
+ raise TypeError, "'v' expected Numeric, got #{v.class}" unless v.is_a? Numeric
260
+
261
+ @password_format = v
262
+ when 'PasswordHash'
263
+ raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
264
+
265
+ @password_hash = v
266
+ when 'PasswordRecovery'
267
+ raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
268
+
269
+ @password_recovery = v
270
+ when 'AllowPasswordLogin'
271
+ @allow_password_login = v
272
+ when 'AllowPasswordAndTOTPLogin'
273
+ @allow_password_and_totplogin = v
274
+ when 'TOTPKeyEncryptionFormat'
275
+ raise TypeError, "'v' expected Numeric, got #{v.class}" unless v.is_a? Numeric
276
+
277
+ @totpkey_encryption_format = v
278
+ when 'TOTPKey'
279
+ raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
280
+
281
+ @totpkey = v
282
+ when 'RequirePasswordChange'
283
+ @require_password_change = v
284
+ when 'CreateTime'
285
+ raise TypeError, "'v' expected Numeric, got #{v.class}" unless v.is_a? Numeric
286
+
287
+ @create_time = v
288
+ when 'CreationGUID'
289
+ raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
290
+
291
+ @creation_guid = v
292
+ else
293
+ @unknown_json_fields[k] = v
294
+ end
295
+ end
296
+ end
297
+
298
+ # @return [Hash] The complete object as a Ruby hash
299
+ def to_hash
300
+ ret = {}
301
+ ret['Username'] = @username
302
+ ret['AccountName'] = @account_name
303
+ ret['LocalTimezone'] = @local_timezone
304
+ ret['LanguageCode'] = @language_code
305
+ unless @organization_id.nil?
306
+ ret['OrganizationID'] = @organization_id
307
+ end
308
+ ret['Emails'] = @emails
309
+ ret['OverrideEmailSettings'] = @override_email_settings
310
+ ret['SendEmailReports'] = @send_email_reports
311
+ ret['Destinations'] = @destinations
312
+ ret['Sources'] = @sources
313
+ ret['BackupRules'] = @backup_rules
314
+ ret['Devices'] = @devices
315
+ ret['IsSuspended'] = @is_suspended
316
+ ret['AllProtectedItemsQuotaEnabled'] = @all_protected_items_quota_enabled
317
+ ret['AllProtectedItemsQuotaBytes'] = @all_protected_items_quota_bytes
318
+ ret['MaximumDevices'] = @maximum_devices
319
+ ret['PolicyID'] = @policy_id
320
+ ret['Policy'] = @policy
321
+ ret['PasswordFormat'] = @password_format
322
+ ret['PasswordHash'] = @password_hash
323
+ unless @password_recovery.nil?
324
+ ret['PasswordRecovery'] = @password_recovery
325
+ end
326
+ ret['AllowPasswordLogin'] = @allow_password_login
327
+ ret['AllowPasswordAndTOTPLogin'] = @allow_password_and_totplogin
328
+ ret['TOTPKeyEncryptionFormat'] = @totpkey_encryption_format
329
+ ret['TOTPKey'] = @totpkey
330
+ ret['RequirePasswordChange'] = @require_password_change
331
+ ret['CreateTime'] = @create_time
332
+ ret['CreationGUID'] = @creation_guid
333
+ @unknown_json_fields.each do |k, v|
334
+ ret[k] = v
335
+ end
336
+ ret
337
+ end
338
+
339
+ # @return [Hash] The complete object as a Ruby hash
340
+ def to_h
341
+ to_hash
342
+ end
343
+
344
+ # @return [String] The complete object as a JSON string
345
+ def to_json(options = {})
346
+ to_hash.to_json(options)
347
+ end
348
+ end
349
+ end