comet_backup_ruby_sdk 2.36.0 → 2.38.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 (227) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +18 -0
  3. data/Gemfile.lock +1 -1
  4. data/comet_backup_ruby_sdk.gemspec +1 -1
  5. data/lib/comet/api_response_error.rb +1 -1
  6. data/lib/comet/comet_server.rb +269 -3
  7. data/lib/comet/definitions.rb +26 -5
  8. data/lib/comet/models/add_bucket_response_message.rb +1 -1
  9. data/lib/comet/models/admin_account_properties_response.rb +1 -1
  10. data/lib/comet/models/admin_email_options.rb +1 -1
  11. data/lib/comet/models/admin_resource_response.rb +1 -1
  12. data/lib/comet/models/admin_security_options.rb +8 -1
  13. data/lib/comet/models/admin_u2fregistration.rb +1 -1
  14. data/lib/comet/models/admin_user_permissions.rb +1 -1
  15. data/lib/comet/models/admin_web_authn_registration.rb +1 -1
  16. data/lib/comet/models/allowed_admin_user.rb +8 -1
  17. data/lib/comet/models/amazon_awsvirtual_storage_role_settings.rb +1 -1
  18. data/lib/comet/models/authentication_role_options.rb +1 -1
  19. data/lib/comet/models/available_download.rb +1 -1
  20. data/lib/comet/models/azure_destination_location.rb +1 -1
  21. data/lib/comet/models/b2destination_location.rb +1 -1
  22. data/lib/comet/models/b2storage_extra_info.rb +1 -1
  23. data/lib/comet/models/b2transaction_totals.rb +1 -1
  24. data/lib/comet/models/b2virtual_storage_role_settings.rb +1 -1
  25. data/lib/comet/models/backup_job_advanced_options.rb +1 -1
  26. data/lib/comet/models/backup_job_detail.rb +15 -1
  27. data/lib/comet/models/backup_job_progress.rb +10 -1
  28. data/lib/comet/models/backup_rule_config.rb +1 -1
  29. data/lib/comet/models/backup_rule_event_triggers.rb +1 -1
  30. data/lib/comet/models/branding_options.rb +1 -1
  31. data/lib/comet/models/branding_properties.rb +1 -1
  32. data/lib/comet/models/browse_disk_drives_response.rb +1 -1
  33. data/lib/comet/models/browse_edbresponse.rb +1 -1
  34. data/lib/comet/models/browse_hvresponse.rb +1 -1
  35. data/lib/comet/models/browse_office_365list_virtual_accounts_response.rb +1 -1
  36. data/lib/comet/models/browse_office_365objects_response.rb +1 -1
  37. data/lib/comet/models/browse_sqlserver_response.rb +1 -1
  38. data/lib/comet/models/browse_vmware_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_role_options.rb +1 -1
  46. data/lib/comet/models/constellation_stats.rb +1 -1
  47. data/lib/comet/models/constellation_status_apiresponse.rb +1 -1
  48. data/lib/comet/models/content_measurement.rb +1 -1
  49. data/lib/comet/models/content_measurement_component.rb +1 -1
  50. data/lib/comet/models/count_jobs_response.rb +1 -1
  51. data/lib/comet/models/create_group_policy_response.rb +1 -1
  52. data/lib/comet/models/create_user_group_response.rb +92 -0
  53. data/lib/comet/models/custom_remote_bucket_settings.rb +1 -1
  54. data/lib/comet/models/days_of_week_config.rb +1 -1
  55. data/lib/comet/models/default_email_report_policy.rb +1 -1
  56. data/lib/comet/models/default_source_with_osrestriction.rb +1 -1
  57. data/lib/comet/models/destination_config.rb +17 -1
  58. data/lib/comet/models/destination_location.rb +1 -1
  59. data/lib/comet/models/destination_statistics.rb +1 -1
  60. data/lib/comet/models/device_config.rb +1 -1
  61. data/lib/comet/models/disk_drive.rb +25 -1
  62. data/lib/comet/models/dispatcher_admin_sources_response.rb +1 -1
  63. data/lib/comet/models/dispatcher_stored_objects_response.rb +1 -1
  64. data/lib/comet/models/dispatcher_vault_snapshots_response.rb +1 -1
  65. data/lib/comet/models/dispatcher_windisk_snapshot_response.rb +1 -1
  66. data/lib/comet/models/edbfile_info.rb +1 -1
  67. data/lib/comet/models/email_options.rb +1 -1
  68. data/lib/comet/models/email_report_config.rb +1 -1
  69. data/lib/comet/models/email_report_generated_preview.rb +1 -1
  70. data/lib/comet/models/email_reporting_option.rb +1 -1
  71. data/lib/comet/models/external_authentication_source.rb +1 -1
  72. data/lib/comet/models/external_authentication_source_display.rb +1 -1
  73. data/lib/comet/models/external_authentication_source_response.rb +1 -1
  74. data/lib/comet/models/external_ldapauthentication_source_server.rb +1 -1
  75. data/lib/comet/models/external_ldapauthentication_source_settings.rb +1 -1
  76. data/lib/comet/models/extra_file_exclusion.rb +1 -1
  77. data/lib/comet/models/file_option.rb +1 -1
  78. data/lib/comet/models/ftpdestination_location.rb +1 -1
  79. data/lib/comet/models/get_group_policy_response.rb +1 -1
  80. data/lib/comet/models/get_profile_and_hash_response_message.rb +1 -1
  81. data/lib/comet/models/get_profile_hash_response_message.rb +1 -1
  82. data/lib/comet/models/get_user_group_response.rb +81 -0
  83. data/lib/comet/models/get_user_group_with_users_response.rb +87 -0
  84. data/lib/comet/models/global_override_options.rb +1 -1
  85. data/lib/comet/models/group_policy.rb +1 -1
  86. data/lib/comet/models/hour_sched_config.rb +1 -1
  87. data/lib/comet/models/httpconnector_options.rb +1 -1
  88. data/lib/comet/models/hyper_vmachine_info.rb +1 -1
  89. data/lib/comet/models/impossible_cloud_iamtemplate_settings.rb +1 -1
  90. data/lib/comet/models/impossible_cloud_partner_template_settings.rb +1 -1
  91. data/lib/comet/models/install_creds.rb +1 -1
  92. data/lib/comet/models/install_token.rb +1 -1
  93. data/lib/comet/models/install_token_response.rb +1 -1
  94. data/lib/comet/models/job_entry.rb +1 -1
  95. data/lib/comet/models/license_limits.rb +1 -1
  96. data/lib/comet/models/license_options.rb +1 -1
  97. data/lib/comet/models/live_user_connection.rb +1 -1
  98. data/lib/comet/models/local_destination_location.rb +1 -1
  99. data/lib/comet/models/local_storage_directory.rb +1 -1
  100. data/lib/comet/models/login_protection_options.rb +93 -0
  101. data/lib/comet/models/mac_oscode_sign_properties.rb +1 -1
  102. data/lib/comet/models/mongo_dbconnection.rb +1 -1
  103. data/lib/comet/models/mssqlconnection.rb +1 -1
  104. data/lib/comet/models/mssqllogin_args.rb +1 -1
  105. data/lib/comet/models/my_sqlconnection.rb +1 -1
  106. data/lib/comet/models/new_bucket_detail.rb +1 -1
  107. data/lib/comet/models/news_entry.rb +1 -1
  108. data/lib/comet/models/object_lock_storage_template_settings.rb +1 -1
  109. data/lib/comet/models/office_365connection.rb +1 -1
  110. data/lib/comet/models/office_365credential.rb +1 -1
  111. data/lib/comet/models/office_365custom_setting.rb +1 -1
  112. data/lib/comet/models/office_365custom_setting_v2.rb +1 -1
  113. data/lib/comet/models/office_365mixed_virtual_account.rb +1 -1
  114. data/lib/comet/models/office_365object_info.rb +1 -1
  115. data/lib/comet/models/oidc_claim.rb +1 -1
  116. data/lib/comet/models/oidc_config.rb +1 -1
  117. data/lib/comet/models/organization.rb +1 -1
  118. data/lib/comet/models/organization_login_urlresponse.rb +1 -1
  119. data/lib/comet/models/organization_response.rb +1 -1
  120. data/lib/comet/models/osinfo.rb +1 -1
  121. data/lib/comet/models/partition.rb +1 -1
  122. data/lib/comet/models/private_branding_properties.rb +1 -1
  123. data/lib/comet/models/protected_item_engine_type_policy.rb +1 -1
  124. data/lib/comet/models/psaconfig.rb +1 -1
  125. data/lib/comet/models/psagrouped_by.rb +1 -1
  126. data/lib/comet/models/public_branding_properties.rb +1 -1
  127. data/lib/comet/models/ratelimit_options.rb +1 -1
  128. data/lib/comet/models/ratelimit_rule.rb +1 -1
  129. data/lib/comet/models/register_office_application_begin_response.rb +1 -1
  130. data/lib/comet/models/register_office_application_check_response.rb +1 -1
  131. data/lib/comet/models/registration_lobby_connection.rb +1 -1
  132. data/lib/comet/models/remote_server_address.rb +1 -1
  133. data/lib/comet/models/remote_storage_option.rb +16 -1
  134. data/lib/comet/models/replica_server.rb +1 -1
  135. data/lib/comet/models/replicator_state_apiresponse.rb +1 -1
  136. data/lib/comet/models/request_storage_vault_response_message.rb +1 -1
  137. data/lib/comet/models/restore_job_advanced_options.rb +1 -1
  138. data/lib/comet/models/retention_policy.rb +1 -1
  139. data/lib/comet/models/retention_range.rb +1 -1
  140. data/lib/comet/models/s3destination_location.rb +1 -1
  141. data/lib/comet/models/s3generic_virtual_storage_role.rb +1 -1
  142. data/lib/comet/models/schedule_config.rb +1 -1
  143. data/lib/comet/models/search_clause.rb +1 -1
  144. data/lib/comet/models/search_result_file_info.rb +1 -1
  145. data/lib/comet/models/search_snapshots_response.rb +1 -1
  146. data/lib/comet/models/self_backup_export_options.rb +1 -1
  147. data/lib/comet/models/self_backup_options.rb +1 -1
  148. data/lib/comet/models/self_backup_statistics.rb +1 -1
  149. data/lib/comet/models/self_backup_target.rb +1 -1
  150. data/lib/comet/models/server_config_options.rb +10 -1
  151. data/lib/comet/models/server_config_options_branding_fragment.rb +1 -1
  152. data/lib/comet/models/server_config_options_software_build_role_fragment.rb +1 -1
  153. data/lib/comet/models/server_meta_branding_properties.rb +8 -1
  154. data/lib/comet/models/server_meta_version_info.rb +3 -1
  155. data/lib/comet/models/session_key_regenerated_response.rb +1 -1
  156. data/lib/comet/models/session_options.rb +1 -1
  157. data/lib/comet/models/sftpdestination_location.rb +1 -1
  158. data/lib/comet/models/single_field_source.rb +1 -1
  159. data/lib/comet/models/size_measurement.rb +1 -1
  160. data/lib/comet/models/smbdestination_location.rb +1 -1
  161. data/lib/comet/models/software_build_role_options.rb +1 -1
  162. data/lib/comet/models/software_update_news_response.rb +1 -1
  163. data/lib/comet/models/source_basic_info.rb +1 -1
  164. data/lib/comet/models/source_config.rb +1 -1
  165. data/lib/comet/models/source_include_pattern.rb +1 -1
  166. data/lib/comet/models/source_statistics.rb +1 -1
  167. data/lib/comet/models/spanned_destination_location.rb +1 -1
  168. data/lib/comet/models/spanned_storage_extra_info.rb +1 -1
  169. data/lib/comet/models/sshconnection.rb +1 -1
  170. data/lib/comet/models/stat_result.rb +1 -1
  171. data/lib/comet/models/storage_free_space_info.rb +1 -1
  172. data/lib/comet/models/storage_role_options.rb +1 -1
  173. data/lib/comet/models/storage_vault_provider_policy.rb +1 -1
  174. data/lib/comet/models/stored_object.rb +1 -1
  175. data/lib/comet/models/storj_destination_location.rb +1 -1
  176. data/lib/comet/models/storj_virtual_storage_role_setting.rb +1 -1
  177. data/lib/comet/models/streamable_event.rb +1 -1
  178. data/lib/comet/models/swift_destination_location.rb +1 -1
  179. data/lib/comet/models/test_response.rb +1 -1
  180. data/lib/comet/models/time_span.rb +1 -1
  181. data/lib/comet/models/totp_regenerated_response.rb +1 -1
  182. data/lib/comet/models/u2fregister_request.rb +1 -1
  183. data/lib/comet/models/u2fregistered_key.rb +1 -1
  184. data/lib/comet/models/u2fregistration_challenge_response.rb +1 -1
  185. data/lib/comet/models/u2fsign_request.rb +1 -1
  186. data/lib/comet/models/u2fsign_response.rb +1 -1
  187. data/lib/comet/models/uninstall_config.rb +1 -1
  188. data/lib/comet/models/update_campaign_device_status.rb +1 -1
  189. data/lib/comet/models/update_campaign_options.rb +1 -1
  190. data/lib/comet/models/update_campaign_properties.rb +1 -1
  191. data/lib/comet/models/update_campaign_status.rb +1 -1
  192. data/lib/comet/models/update_campaign_status_device_entry.rb +1 -1
  193. data/lib/comet/models/user_custom_email_settings.rb +1 -1
  194. data/lib/comet/models/user_group.rb +92 -0
  195. data/lib/comet/models/user_on_server.rb +1 -1
  196. data/lib/comet/models/user_policy.rb +10 -1
  197. data/lib/comet/models/user_profile_config.rb +29 -2
  198. data/lib/comet/models/user_profile_fragment.rb +1 -1
  199. data/lib/comet/models/user_server_config.rb +1 -1
  200. data/lib/comet/models/vault_snapshot.rb +1 -1
  201. data/lib/comet/models/vmdksnapshot_view_options.rb +1 -1
  202. data/lib/comet/models/vmware_connection.rb +1 -1
  203. data/lib/comet/models/vmware_machine_info.rb +1 -1
  204. data/lib/comet/models/vsphere_connection.rb +1 -1
  205. data/lib/comet/models/vsscomponent.rb +1 -1
  206. data/lib/comet/models/vsswriter_info.rb +1 -1
  207. data/lib/comet/models/wasabi_virtual_storage_role_settings.rb +1 -1
  208. data/lib/comet/models/web_authn_authenticator_selection.rb +1 -1
  209. data/lib/comet/models/web_authn_credential.rb +1 -1
  210. data/lib/comet/models/web_authn_credential_assertion.rb +1 -1
  211. data/lib/comet/models/web_authn_credential_descriptor.rb +1 -1
  212. data/lib/comet/models/web_authn_credential_entity.rb +1 -1
  213. data/lib/comet/models/web_authn_credential_parameter.rb +1 -1
  214. data/lib/comet/models/web_authn_public_key_credential_creation_options.rb +1 -1
  215. data/lib/comet/models/web_authn_public_key_credential_request_options.rb +1 -1
  216. data/lib/comet/models/web_authn_registration_challenge_response.rb +1 -1
  217. data/lib/comet/models/web_authn_relying_party_entity.rb +1 -1
  218. data/lib/comet/models/web_authn_sign_request.rb +1 -1
  219. data/lib/comet/models/web_authn_sign_response.rb +1 -1
  220. data/lib/comet/models/web_authn_user_entity.rb +1 -1
  221. data/lib/comet/models/web_dav_destination_location.rb +1 -1
  222. data/lib/comet/models/web_interface_branding_properties.rb +1 -1
  223. data/lib/comet/models/webhook_option.rb +1 -1
  224. data/lib/comet/models/win_smbauth.rb +1 -1
  225. data/lib/comet/models/windows_code_sign_properties.rb +1 -1
  226. data/lib/comet_backup_ruby_sdk.rb +6 -1
  227. metadata +7 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9d9fc30a121c374d4b92dd55afb55c535b02da997d4d37efe5ff549c5c4403f4
4
- data.tar.gz: ac4736937b564fcc2e689d7b3cacec002fab32a2d615037893a789b95002d8aa
3
+ metadata.gz: 559b4995b120e9ebd54810f4c808e8d0cb36f0799ea97d9bdbf26ac5dc27508f
4
+ data.tar.gz: c59f6e40f566b7c011562c6532233eec43f67fac346d37fa08586b344ce9d03e
5
5
  SHA512:
6
- metadata.gz: ccb3449005c19d46da142f4678c4a468aafe36b1b44bd543bb182fa0cdcf7cfadbe4c84cd61d8643bfee80c5ead9f3ae3ab1ff0d3712d93dcc163379bd349c9e
7
- data.tar.gz: 2ecbe31ae73af5eed45ea24cdfc6be68d9727a5bc99fb23cf807917165e31e3c51acae5424e97ada6b8ed3420b5afcf8fbb4f79e865956c79521c2b63715746e
6
+ metadata.gz: e2420d761669565217d482531cc3c75220f6ea99fa7bacbe3f95b04c985f9e0310a5b324f060145f01c24276543724ade3dbc4f2d654d838276068a64684b339
7
+ data.tar.gz: f630881d973b35d820385f302aa9977d8dfe6ed9cc58a49df5e40a6eaccfc8bcf7ac2348de945258de3128a786434efb676901fa0b248f6a27701025387cd983
data/CHANGELOG.md CHANGED
@@ -1,5 +1,23 @@
1
1
  # CHANGELOG
2
2
 
3
+ ## 2025-01-15 v2.38.0
4
+
5
+ - Based on Comet 24.12.2
6
+ - Support new Login Protection feature
7
+ - Support requiring password changes for admin accounts
8
+ - Support new user grouping functionality
9
+ - Support creating a first admin account on empty servers
10
+ - Support vault-device associations and automatic vault creation
11
+
12
+ ## 2024-10-29 v2.37.0
13
+
14
+ - Based on Comet 24.9.6
15
+ - New API AdminDispatcherTestSmbAuth to instruct a device to test Windows SMB credentials
16
+ - New RESTORETYPE_WINDISK_VHDX to restore Disk Image backup as Hyper-V VHDX format
17
+ - BackupJobDetail supports ConflictingJobID field to indicate conflicting job if a lock error occurred
18
+ - BackupJobProgress can report the total number of items for progress visualization
19
+ - DiskDrive adds information about parent disks on Linux
20
+
3
21
  ## 2024-09-17 v2.36.0
4
22
 
5
23
  - Based on Comet 24.9.1
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- comet_backup_ruby_sdk (2.36.0)
4
+ comet_backup_ruby_sdk (2.38.0)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
@@ -12,7 +12,7 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
12
12
 
13
13
  Gem::Specification.new do |spec|
14
14
  spec.name = 'comet_backup_ruby_sdk'
15
- spec.version = '2.36.0'
15
+ spec.version = '2.38.0'
16
16
  spec.authors = ['Comet Licensing Ltd.']
17
17
  spec.email = ['hello@cometbackup.com']
18
18
 
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # Copyright (c) 2020-2024 Comet Licensing Ltd.
3
+ # Copyright (c) 2020-2025 Comet Licensing Ltd.
4
4
  # Please see the LICENSE file for usage information.
5
5
  #
6
6
  # SPDX-License-Identifier: MIT
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # Copyright (c) 2020-2024 Comet Licensing Ltd.
3
+ # Copyright (c) 2020-2025 Comet Licensing Ltd.
4
4
  # Please see the LICENSE file for usage information.
5
5
  #
6
6
  # SPDX-License-Identifier: MIT
@@ -325,6 +325,30 @@ module Comet
325
325
  ret
326
326
  end
327
327
 
328
+ # AdminAddFirstAdminUser
329
+ #
330
+ # Add first admin user account on new server.
331
+ #
332
+ # @param [String] target_user the username for this new admin
333
+ # @param [String] target_password the password for this new admin user
334
+ # @return [Comet::CometAPIResponseMessage]
335
+ def admin_add_first_admin_user(target_user, target_password)
336
+ submit_params = {}
337
+ raise TypeError, "'target_user' expected String, got #{target_user.class}" unless target_user.is_a? String
338
+
339
+ submit_params['TargetUser'] = target_user
340
+ raise TypeError, "'target_password' expected String, got #{target_password.class}" unless target_password.is_a? String
341
+
342
+ submit_params['TargetPassword'] = target_password
343
+
344
+ body = perform_request('api/v1/admin/add-first-admin-user', submit_params)
345
+ json_body = JSON.parse body
346
+ check_status json_body
347
+ ret = Comet::CometAPIResponseMessage.new
348
+ ret.from_hash(json_body)
349
+ ret
350
+ end
351
+
328
352
  # AdminAddUser
329
353
  #
330
354
  # Add a new user account.
@@ -1801,6 +1825,7 @@ module Comet
1801
1825
  #
1802
1826
  # Request a list of Office365 mailbox accounts.
1803
1827
  # The remote device must have given consent for an MSP to browse their files.
1828
+ # This is primarily used for testing the connection to Graph API, not for actual listing
1804
1829
  #
1805
1830
  # You must supply administrator authentication credentials to use this API.
1806
1831
  # This API requires the Auth Role to be enabled.
@@ -2169,6 +2194,33 @@ module Comet
2169
2194
  ret
2170
2195
  end
2171
2196
 
2197
+ # AdminDispatcherTestSmbAuth
2198
+ #
2199
+ # Test a set of Windows SMB credentials.
2200
+ #
2201
+ # You must supply administrator authentication credentials to use this API.
2202
+ # This API requires the Auth Role to be enabled.
2203
+ #
2204
+ # @param [String] target_id The live connection GUID
2205
+ # @param [Comet::WinSMBAuth] wsa The target credentials to test
2206
+ # @return [Comet::CometAPIResponseMessage]
2207
+ def admin_dispatcher_test_smb_auth(target_id, wsa)
2208
+ submit_params = {}
2209
+ raise TypeError, "'target_id' expected String, got #{target_id.class}" unless target_id.is_a? String
2210
+
2211
+ submit_params['TargetID'] = target_id
2212
+ raise TypeError, "'wsa' expected Comet::WinSMBAuth, got #{wsa.class}" unless wsa.is_a? Comet::WinSMBAuth
2213
+
2214
+ submit_params['Wsa'] = wsa.to_json
2215
+
2216
+ body = perform_request('api/v1/admin/dispatcher/test-smb-auth', submit_params)
2217
+ json_body = JSON.parse body
2218
+ check_status json_body
2219
+ ret = Comet::CometAPIResponseMessage.new
2220
+ ret.from_hash(json_body)
2221
+ ret
2222
+ end
2223
+
2172
2224
  # AdminDispatcherUninstallSoftware
2173
2225
  #
2174
2226
  # Instruct a live connected device to self-uninstall the software.
@@ -3223,12 +3275,18 @@ module Comet
3223
3275
  # Access to this API may be prevented on a per-administrator basis.
3224
3276
  #
3225
3277
  # @param [Array<Comet::RemoteStorageOption>] remote_storage_options Updated configuration content
3278
+ # @param [String] replacement_auto_vault_id (Optional) Replacement Storage Template ID for auto Storage Vault configurations that use deleted Storage Templates
3226
3279
  # @return [Comet::CometAPIResponseMessage]
3227
- def admin_meta_remote_storage_vault_set(remote_storage_options)
3280
+ def admin_meta_remote_storage_vault_set(remote_storage_options, replacement_auto_vault_id = nil)
3228
3281
  submit_params = {}
3229
3282
  raise TypeError, "'remote_storage_options' expected Array, got #{remote_storage_options.class}" unless remote_storage_options.is_a? Array
3230
3283
 
3231
3284
  submit_params['RemoteStorageOptions'] = remote_storage_options.to_json
3285
+ unless replacement_auto_vault_id.nil?
3286
+ raise TypeError, "'replacement_auto_vault_id' expected String, got #{replacement_auto_vault_id.class}" unless replacement_auto_vault_id.is_a? String
3287
+
3288
+ submit_params['ReplacementAutoVaultID'] = replacement_auto_vault_id
3289
+ end
3232
3290
 
3233
3291
  body = perform_request('api/v1/admin/meta/remote-storage-vault/set', submit_params)
3234
3292
  json_body = JSON.parse body
@@ -4010,8 +4068,9 @@ module Comet
4010
4068
  # @param [String] target_user The user to receive the new Storage Vault
4011
4069
  # @param [String] storage_provider ID for the storage template destination
4012
4070
  # @param [String] self_address (Optional) The external URL for this server. Used to resolve conflicts
4071
+ # @param [String] device_id (Optional) The ID of the device to be added as a associated device of the Storage Vault
4013
4072
  # @return [Comet::RequestStorageVaultResponseMessage]
4014
- def admin_request_storage_vault(target_user, storage_provider, self_address = nil)
4073
+ def admin_request_storage_vault(target_user, storage_provider, self_address = nil, device_id = nil)
4015
4074
  submit_params = {}
4016
4075
  raise TypeError, "'target_user' expected String, got #{target_user.class}" unless target_user.is_a? String
4017
4076
 
@@ -4026,6 +4085,11 @@ module Comet
4026
4085
 
4027
4086
  submit_params['SelfAddress'] = self_address
4028
4087
  end
4088
+ unless device_id.nil?
4089
+ raise TypeError, "'device_id' expected String, got #{device_id.class}" unless device_id.is_a? String
4090
+
4091
+ submit_params['DeviceID'] = device_id
4092
+ end
4029
4093
 
4030
4094
  body = perform_request('api/v1/admin/request-storage-vault', submit_params)
4031
4095
  json_body = JSON.parse body
@@ -4425,6 +4489,208 @@ module Comet
4425
4489
  ret
4426
4490
  end
4427
4491
 
4492
+ # AdminUserGroupsDelete
4493
+ #
4494
+ # Delete an existing user group object.
4495
+ #
4496
+ # You must supply administrator authentication credentials to use this API.
4497
+ # This API requires the Auth Role to be enabled.
4498
+ #
4499
+ # @param [String] group_id The user group ID to delete
4500
+ # @return [Comet::CometAPIResponseMessage]
4501
+ def admin_user_groups_delete(group_id)
4502
+ submit_params = {}
4503
+ raise TypeError, "'group_id' expected String, got #{group_id.class}" unless group_id.is_a? String
4504
+
4505
+ submit_params['GroupID'] = group_id
4506
+
4507
+ body = perform_request('api/v1/admin/user-groups/delete', submit_params)
4508
+ json_body = JSON.parse body
4509
+ check_status json_body
4510
+ ret = Comet::CometAPIResponseMessage.new
4511
+ ret.from_hash(json_body)
4512
+ ret
4513
+ end
4514
+
4515
+ # AdminUserGroupsGet
4516
+ #
4517
+ # Retrieve a single user group object.
4518
+ #
4519
+ # You must supply administrator authentication credentials to use this API.
4520
+ # This API requires the Auth Role to be enabled.
4521
+ #
4522
+ # @param [String] group_id The user group ID to retrieve
4523
+ # @param [Boolean] include_users (Optional) If present, includes the users array in the response.
4524
+ # @return [Comet::GetUserGroupWithUsersResponse]
4525
+ def admin_user_groups_get(group_id, include_users = nil)
4526
+ submit_params = {}
4527
+ raise TypeError, "'group_id' expected String, got #{group_id.class}" unless group_id.is_a? String
4528
+
4529
+ submit_params['GroupID'] = group_id
4530
+ unless include_users.nil?
4531
+ submit_params['IncludeUsers'] = (include_users ? 1 : 0)
4532
+ end
4533
+
4534
+ body = perform_request('api/v1/admin/user-groups/get', submit_params)
4535
+ json_body = JSON.parse body
4536
+ check_status json_body
4537
+ ret = Comet::GetUserGroupWithUsersResponse.new
4538
+ ret.from_hash(json_body)
4539
+ ret
4540
+ end
4541
+
4542
+ # AdminUserGroupsList
4543
+ #
4544
+ # List all user group names.
4545
+ # For the top-level organization, the API result includes all user groups for all organizations, unless the TargetOrganization parameter is present.
4546
+ #
4547
+ # You must supply administrator authentication credentials to use this API.
4548
+ # This API requires the Auth Role to be enabled.
4549
+ #
4550
+ # @param [String] target_organization (Optional) If present, list the user groups belonging to another organization. Only allowed for administrator accounts in the top-level organization.
4551
+ # @return [Hash{String => String}]
4552
+ def admin_user_groups_list(target_organization = nil)
4553
+ submit_params = {}
4554
+ unless target_organization.nil?
4555
+ raise TypeError, "'target_organization' expected String, got #{target_organization.class}" unless target_organization.is_a? String
4556
+
4557
+ submit_params['TargetOrganization'] = target_organization
4558
+ end
4559
+
4560
+ body = perform_request('api/v1/admin/user-groups/list', submit_params)
4561
+ json_body = JSON.parse body
4562
+ check_status json_body
4563
+ ret = {}
4564
+ if json_body.nil?
4565
+ ret = {}
4566
+ else
4567
+ json_body.each do |k, v|
4568
+ raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
4569
+
4570
+ ret[k] = v
4571
+ end
4572
+ end
4573
+ ret
4574
+ end
4575
+
4576
+ # AdminUserGroupsListFull
4577
+ #
4578
+ # Get all user group objects.
4579
+ # For the top-level organization, the API result includes all user groups for all organizations, unless the TargetOrganization parameter is present.
4580
+ #
4581
+ # You must supply administrator authentication credentials to use this API.
4582
+ # This API requires the Auth Role to be enabled.
4583
+ #
4584
+ # @param [String] target_organization (Optional) If present, list the user groups belonging to the specified organization. Only allowed for administrator accounts in the top-level organization.
4585
+ # @return [Hash{String => Comet::UserGroup}]
4586
+ def admin_user_groups_list_full(target_organization = nil)
4587
+ submit_params = {}
4588
+ unless target_organization.nil?
4589
+ raise TypeError, "'target_organization' expected String, got #{target_organization.class}" unless target_organization.is_a? String
4590
+
4591
+ submit_params['TargetOrganization'] = target_organization
4592
+ end
4593
+
4594
+ body = perform_request('api/v1/admin/user-groups/list-full', submit_params)
4595
+ json_body = JSON.parse body
4596
+ check_status json_body
4597
+ ret = {}
4598
+ if json_body.nil?
4599
+ ret = {}
4600
+ else
4601
+ json_body.each do |k, v|
4602
+ ret[k] = Comet::UserGroup.new
4603
+ ret[k].from_hash(v)
4604
+ end
4605
+ end
4606
+ ret
4607
+ end
4608
+
4609
+ # AdminUserGroupsNew
4610
+ #
4611
+ # Create a new user group object.
4612
+ #
4613
+ # You must supply administrator authentication credentials to use this API.
4614
+ # This API requires the Auth Role to be enabled.
4615
+ #
4616
+ # @param [String] name this is the name of the group.
4617
+ # @param [String] target_organization (Optional) If present, list the policies belonging to another organization. Only allowed for administrator accounts in the top-level organization.
4618
+ # @return [Comet::CreateUserGroupResponse]
4619
+ def admin_user_groups_new(name, target_organization = nil)
4620
+ submit_params = {}
4621
+ raise TypeError, "'name' expected String, got #{name.class}" unless name.is_a? String
4622
+
4623
+ submit_params['Name'] = name
4624
+ unless target_organization.nil?
4625
+ raise TypeError, "'target_organization' expected String, got #{target_organization.class}" unless target_organization.is_a? String
4626
+
4627
+ submit_params['TargetOrganization'] = target_organization
4628
+ end
4629
+
4630
+ body = perform_request('api/v1/admin/user-groups/new', submit_params)
4631
+ json_body = JSON.parse body
4632
+ check_status json_body
4633
+ ret = Comet::CreateUserGroupResponse.new
4634
+ ret.from_hash(json_body)
4635
+ ret
4636
+ end
4637
+
4638
+ # AdminUserGroupsSet
4639
+ #
4640
+ # Update an existing user group or create a new user group.
4641
+ #
4642
+ # You must supply administrator authentication credentials to use this API.
4643
+ # This API requires the Auth Role to be enabled.
4644
+ #
4645
+ # @param [String] group_id The user group ID to update or create
4646
+ # @param [Comet::UserGroup] group The user group data
4647
+ # @return [Comet::CometAPIResponseMessage]
4648
+ def admin_user_groups_set(group_id, group)
4649
+ submit_params = {}
4650
+ raise TypeError, "'group_id' expected String, got #{group_id.class}" unless group_id.is_a? String
4651
+
4652
+ submit_params['GroupID'] = group_id
4653
+ raise TypeError, "'group' expected Comet::UserGroup, got #{group.class}" unless group.is_a? Comet::UserGroup
4654
+
4655
+ submit_params['Group'] = group.to_json
4656
+
4657
+ body = perform_request('api/v1/admin/user-groups/set', submit_params)
4658
+ json_body = JSON.parse body
4659
+ check_status json_body
4660
+ ret = Comet::CometAPIResponseMessage.new
4661
+ ret.from_hash(json_body)
4662
+ ret
4663
+ end
4664
+
4665
+ # AdminUserGroupsSetUsersForGroup
4666
+ #
4667
+ # Update the users in the specified group.
4668
+ # The provided list of users will be moved into the specified group, and any users
4669
+ # already in the group who are not in the list of usernames will be removed.
4670
+ #
4671
+ # You must supply administrator authentication credentials to use this API.
4672
+ # This API requires the Auth Role to be enabled.
4673
+ #
4674
+ # @param [String] group_id The user group ID to update
4675
+ # @param [Array<String>] users An array of usernames.
4676
+ # @return [Comet::CometAPIResponseMessage]
4677
+ def admin_user_groups_set_users_for_group(group_id, users)
4678
+ submit_params = {}
4679
+ raise TypeError, "'group_id' expected String, got #{group_id.class}" unless group_id.is_a? String
4680
+
4681
+ submit_params['GroupID'] = group_id
4682
+ raise TypeError, "'users' expected Array, got #{users.class}" unless users.is_a? Array
4683
+
4684
+ submit_params['Users'] = users.to_json
4685
+
4686
+ body = perform_request('api/v1/admin/user-groups/set-users-for-group', submit_params)
4687
+ json_body = JSON.parse body
4688
+ check_status json_body
4689
+ ret = Comet::CometAPIResponseMessage.new
4690
+ ret.from_hash(json_body)
4691
+ ret
4692
+ end
4693
+
4428
4694
  # HybridSessionStart
4429
4695
  #
4430
4696
  # Generate a session key (log in).
@@ -1,19 +1,19 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # Copyright (c) 2020-2024 Comet Licensing Ltd.
3
+ # Copyright (c) 2020-2025 Comet Licensing Ltd.
4
4
  # Please see the LICENSE file for usage information.
5
5
  #
6
6
  # SPDX-License-Identifier: MIT
7
7
 
8
8
  module Comet
9
9
 
10
- APPLICATION_VERSION = '24.9.1'
10
+ APPLICATION_VERSION = '24.12.2'
11
11
 
12
12
  APPLICATION_VERSION_MAJOR = 24
13
13
 
14
- APPLICATION_VERSION_MINOR = 9
14
+ APPLICATION_VERSION_MINOR = 12
15
15
 
16
- APPLICATION_VERSION_REVISION = 1
16
+ APPLICATION_VERSION_REVISION = 2
17
17
 
18
18
  # AutoRetentionLevel: The system will automatically choose how often to run an automatic Retention Pass after each backup job.
19
19
  BACKUPJOBAUTORETENTION_AUTOMATIC = 0
@@ -212,7 +212,7 @@ module Comet
212
212
  # Microsoft SQL Server
213
213
  ENGINE_BUILTIN_MSSQL = 'engine1/mssql'
214
214
 
215
- # Windows System Backup
215
+ # Windows System Backup, deprecated from version 24.12.2
216
216
  ENGINE_BUILTIN_WINDOWSSYSTEM = 'engine1/windowssystem'
217
217
 
218
218
  # Microsoft Exchange Server
@@ -405,6 +405,15 @@ module Comet
405
405
  # MSSQLRestoreOpt
406
406
  MSSQL_RESTORE_NORECOVERY = 'NO_RECOVERY'
407
407
 
408
+ # Used in policy to define that the automatic Storage Vaults for new devices is not enforced by the policy
409
+ NEW_STORAGE_VAULT_MODE_USER = 'user_controlled'
410
+
411
+ # No Storage Vault will be created when a new device is added
412
+ NEW_STORAGE_VAULT_MODE_NONE = 'none'
413
+
414
+ # When a new device is added, a Storage Vault will be created using the servers default Storage Template
415
+ NEW_STORAGE_VAULT_MODE_SERVER = 'server_controlled'
416
+
408
417
  # Enable Object Lock capability if the corresponding Days field is greater than zero.
409
418
  New code should explicitly use OBJECT_LOCK_ON / OBJECT_LOCK_OFF instead.
410
419
  # @deprecated This const has been deprecated since Comet version 23.x.x
@@ -585,6 +594,9 @@ New code should explicitly use OBJECT_LOCK_ON / OBJECT_LOCK_OFF instead.
585
594
  # RestoreType: Restore disk image backup as VMware-compatible virtual disks
586
595
  RESTORETYPE_WINDISK_ESXI = 12
587
596
 
597
+ # RestoreType: Restore disk image backup as Hyper-V-compatible virtual disks (.vhdx format)
598
+ RESTORETYPE_WINDISK_VHDX = 13
599
+
588
600
  # RestoreType: Legacy name alias - Prefer to use RESTORETYPE_PROCESS_ARCHIVE since multiple archive file formats are supported within this single RESTORETYPE_
589
601
  RESTORETYPE_PROCESS_TARBALL = 3
590
602
 
@@ -909,6 +921,15 @@ New code should explicitly use OBJECT_LOCK_ON / OBJECT_LOCK_OFF instead.
909
921
  # StreamableEventType: Device disconnected from registration lobby
910
922
  SEVT_DEVICE_LOBBY_DISCONNECT = 4705
911
923
 
924
+ # StreamableEventType: UserGroup created.
925
+ SEVT_USERGROUP_NEW = 4800
926
+
927
+ # StreamableEventType: UserGroup deleted
928
+ SEVT_USERGROUP_REMOVED = 4801
929
+
930
+ # StreamableEventType: UserGroup updated.
931
+ SEVT_USERGROUP_UPDATED = 4802
932
+
912
933
  # StreamableEventType
913
934
  SEVT__MAX = 4999
914
935
 
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # Copyright (c) 2020-2024 Comet Licensing Ltd.
3
+ # Copyright (c) 2020-2025 Comet Licensing Ltd.
4
4
  # Please see the LICENSE file for usage information.
5
5
  #
6
6
  # SPDX-License-Identifier: MIT
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # Copyright (c) 2020-2024 Comet Licensing Ltd.
3
+ # Copyright (c) 2020-2025 Comet Licensing Ltd.
4
4
  # Please see the LICENSE file for usage information.
5
5
  #
6
6
  # SPDX-License-Identifier: MIT
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # Copyright (c) 2020-2024 Comet Licensing Ltd.
3
+ # Copyright (c) 2020-2025 Comet Licensing Ltd.
4
4
  # Please see the LICENSE file for usage information.
5
5
  #
6
6
  # SPDX-License-Identifier: MIT
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # Copyright (c) 2020-2024 Comet Licensing Ltd.
3
+ # Copyright (c) 2020-2025 Comet Licensing Ltd.
4
4
  # Please see the LICENSE file for usage information.
5
5
  #
6
6
  # SPDX-License-Identifier: MIT
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # Copyright (c) 2020-2024 Comet Licensing Ltd.
3
+ # Copyright (c) 2020-2025 Comet Licensing Ltd.
4
4
  # Please see the LICENSE file for usage information.
5
5
  #
6
6
  # SPDX-License-Identifier: MIT
@@ -39,6 +39,10 @@ module Comet
39
39
  # @type [Array<Comet::AdminWebAuthnRegistration>] web_authn_registrations
40
40
  attr_accessor :web_authn_registrations
41
41
 
42
+ # This field is available in Comet 24.12.0 and later.
43
+ # @type [Boolean] require_password_change
44
+ attr_accessor :require_password_change
45
+
42
46
  # One of the ENCRYPTIONMETHOD_ constants
43
47
  # @type [Number] totpkey_encryption_format
44
48
  attr_accessor :totpkey_encryption_format
@@ -118,6 +122,8 @@ module Comet
118
122
  @web_authn_registrations[i1].from_hash(v1)
119
123
  end
120
124
  end
125
+ when 'RequirePasswordChange'
126
+ @require_password_change = v
121
127
  when 'TOTPKeyEncryptionFormat'
122
128
  raise TypeError, "'v' expected Numeric, got #{v.class}" unless v.is_a? Numeric
123
129
 
@@ -151,6 +157,7 @@ module Comet
151
157
  unless @web_authn_registrations.nil?
152
158
  ret['WebAuthnRegistrations'] = @web_authn_registrations
153
159
  end
160
+ ret['RequirePasswordChange'] = @require_password_change
154
161
  unless @totpkey_encryption_format.nil?
155
162
  ret['TOTPKeyEncryptionFormat'] = @totpkey_encryption_format
156
163
  end
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # Copyright (c) 2020-2024 Comet Licensing Ltd.
3
+ # Copyright (c) 2020-2025 Comet Licensing Ltd.
4
4
  # Please see the LICENSE file for usage information.
5
5
  #
6
6
  # SPDX-License-Identifier: MIT
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # Copyright (c) 2020-2024 Comet Licensing Ltd.
3
+ # Copyright (c) 2020-2025 Comet Licensing Ltd.
4
4
  # Please see the LICENSE file for usage information.
5
5
  #
6
6
  # SPDX-License-Identifier: MIT
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # Copyright (c) 2020-2024 Comet Licensing Ltd.
3
+ # Copyright (c) 2020-2025 Comet Licensing Ltd.
4
4
  # Please see the LICENSE file for usage information.
5
5
  #
6
6
  # SPDX-License-Identifier: MIT
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # Copyright (c) 2020-2024 Comet Licensing Ltd.
3
+ # Copyright (c) 2020-2025 Comet Licensing Ltd.
4
4
  # Please see the LICENSE file for usage information.
5
5
  #
6
6
  # SPDX-License-Identifier: MIT
@@ -48,6 +48,10 @@ module Comet
48
48
  # @type [Array<Comet::AdminWebAuthnRegistration>] web_authn_registrations
49
49
  attr_accessor :web_authn_registrations
50
50
 
51
+ # This field is available in Comet 24.12.0 and later.
52
+ # @type [Boolean] require_password_change
53
+ attr_accessor :require_password_change
54
+
51
55
  # One of the ENCRYPTIONMETHOD_ constants
52
56
  # @type [Number] totpkey_encryption_format
53
57
  attr_accessor :totpkey_encryption_format
@@ -146,6 +150,8 @@ module Comet
146
150
  @web_authn_registrations[i1].from_hash(v1)
147
151
  end
148
152
  end
153
+ when 'RequirePasswordChange'
154
+ @require_password_change = v
149
155
  when 'TOTPKeyEncryptionFormat'
150
156
  raise TypeError, "'v' expected Numeric, got #{v.class}" unless v.is_a? Numeric
151
157
 
@@ -187,6 +193,7 @@ module Comet
187
193
  unless @web_authn_registrations.nil?
188
194
  ret['WebAuthnRegistrations'] = @web_authn_registrations
189
195
  end
196
+ ret['RequirePasswordChange'] = @require_password_change
190
197
  unless @totpkey_encryption_format.nil?
191
198
  ret['TOTPKeyEncryptionFormat'] = @totpkey_encryption_format
192
199
  end
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # Copyright (c) 2020-2024 Comet Licensing Ltd.
3
+ # Copyright (c) 2020-2025 Comet Licensing Ltd.
4
4
  # Please see the LICENSE file for usage information.
5
5
  #
6
6
  # SPDX-License-Identifier: MIT
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # Copyright (c) 2020-2024 Comet Licensing Ltd.
3
+ # Copyright (c) 2020-2025 Comet Licensing Ltd.
4
4
  # Please see the LICENSE file for usage information.
5
5
  #
6
6
  # SPDX-License-Identifier: MIT
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # Copyright (c) 2020-2024 Comet Licensing Ltd.
3
+ # Copyright (c) 2020-2025 Comet Licensing Ltd.
4
4
  # Please see the LICENSE file for usage information.
5
5
  #
6
6
  # SPDX-License-Identifier: MIT
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # Copyright (c) 2020-2024 Comet Licensing Ltd.
3
+ # Copyright (c) 2020-2025 Comet Licensing Ltd.
4
4
  # Please see the LICENSE file for usage information.
5
5
  #
6
6
  # SPDX-License-Identifier: MIT
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # Copyright (c) 2020-2024 Comet Licensing Ltd.
3
+ # Copyright (c) 2020-2025 Comet Licensing Ltd.
4
4
  # Please see the LICENSE file for usage information.
5
5
  #
6
6
  # SPDX-License-Identifier: MIT
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # Copyright (c) 2020-2024 Comet Licensing Ltd.
3
+ # Copyright (c) 2020-2025 Comet Licensing Ltd.
4
4
  # Please see the LICENSE file for usage information.
5
5
  #
6
6
  # SPDX-License-Identifier: MIT
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # Copyright (c) 2020-2024 Comet Licensing Ltd.
3
+ # Copyright (c) 2020-2025 Comet Licensing Ltd.
4
4
  # Please see the LICENSE file for usage information.
5
5
  #
6
6
  # SPDX-License-Identifier: MIT