comet_backup_ruby_sdk 2.37.0 → 2.39.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 +14 -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 +244 -4
  7. data/lib/comet/definitions.rb +26 -8
  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 +1 -1
  27. data/lib/comet/models/backup_job_progress.rb +1 -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 +22 -1
  31. data/lib/comet/models/branding_properties.rb +22 -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 +1 -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 +22 -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 +33 -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: 1c01a7f3572cedb42436655e3c78edad5a23839bf1a761e7f05cb498d0af549b
4
- data.tar.gz: c878557323cd9c3c7af6079b1c926af9f50612bbdc3d3d1993db474c7b0325be
3
+ metadata.gz: c379b7def07b03e07c18a521eef121e41caf0345f93e5eaffdbd1e67b9437050
4
+ data.tar.gz: f8203be9a7dd67eb5593303c39ea5908faf159bb4fdcecf20a5c862daaebb34d
5
5
  SHA512:
6
- metadata.gz: ea48fbee3a53dde34f0093288a1ad9d0fef767baef9bf40b8133d26a2c4e738529e7276da17acb1c66c27ac997a292f97ecb717d2e37626dd18d5d1afb2883b3
7
- data.tar.gz: 9d2527444570ecaf3b04c1b289def0d50f687930c77166cfed0df8e2b2e935a671529cfdbd10173aeea5496821dfd8c442f034c2c55a33e43b0fc936f053f182
6
+ metadata.gz: c17a5c885eec7f4a23c4e48aa4e4d1233533b2d5cf1de66e097f89c051866d919946884979c6bf7347f89c04f21a2142239fd7aba09ef6136634b2fde4a611b4
7
+ data.tar.gz: 127f864dfd67247b3d6552c154c49c18cd791134abe2871d5a89d63791071de32343bac486faa25bc215ccc9400ed41730078d42d41aed499cf8d03de047190b
data/CHANGELOG.md CHANGED
@@ -1,5 +1,19 @@
1
1
  # CHANGELOG
2
2
 
3
+ ## 2025-01-22 v2.39.0
4
+
5
+ - Based on Comet 24.12.3
6
+ - Additional properties for BrandingOptions, BrandingProperties and ServerMetaBrandingProperties
7
+
8
+ ## 2025-01-15 v2.38.0
9
+
10
+ - Based on Comet 24.12.2
11
+ - Support new Login Protection feature
12
+ - Support requiring password changes for admin accounts
13
+ - Support new user grouping functionality
14
+ - Support creating a first admin account on empty servers
15
+ - Support vault-device associations and automatic vault creation
16
+
3
17
  ## 2024-10-29 v2.37.0
4
18
 
5
19
  - Based on Comet 24.9.6
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- comet_backup_ruby_sdk (2.37.0)
4
+ comet_backup_ruby_sdk (2.39.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.37.0'
15
+ spec.version = '2.39.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
@@ -163,7 +163,8 @@ module Comet
163
163
  # Update settings for your own admin account.
164
164
  # Updating your account password requires you to supply your current password.
165
165
  # To set a new plaintext password, use a password format of 0 (PASSWORD_FORMAT_PLAINTEXT).
166
- # This API does not currently allow you to modify your TOTP secret or IP whitelist.
166
+ # This API does not currently allow you to modify your TOTP secret.
167
+ # In Comet 24.12.2 and later, this API can change the IPWhitelist field. Prior to this, changes to the IPWhitelist field were ignored.
167
168
  #
168
169
  # You must supply administrator authentication credentials to use this API.
169
170
  #
@@ -325,6 +326,30 @@ module Comet
325
326
  ret
326
327
  end
327
328
 
329
+ # AdminAddFirstAdminUser
330
+ #
331
+ # Add first admin user account on new server.
332
+ #
333
+ # @param [String] target_user the username for this new admin
334
+ # @param [String] target_password the password for this new admin user
335
+ # @return [Comet::CometAPIResponseMessage]
336
+ def admin_add_first_admin_user(target_user, target_password)
337
+ submit_params = {}
338
+ raise TypeError, "'target_user' expected String, got #{target_user.class}" unless target_user.is_a? String
339
+
340
+ submit_params['TargetUser'] = target_user
341
+ raise TypeError, "'target_password' expected String, got #{target_password.class}" unless target_password.is_a? String
342
+
343
+ submit_params['TargetPassword'] = target_password
344
+
345
+ body = perform_request('api/v1/admin/add-first-admin-user', submit_params)
346
+ json_body = JSON.parse body
347
+ check_status json_body
348
+ ret = Comet::CometAPIResponseMessage.new
349
+ ret.from_hash(json_body)
350
+ ret
351
+ end
352
+
328
353
  # AdminAddUser
329
354
  #
330
355
  # Add a new user account.
@@ -1801,6 +1826,7 @@ module Comet
1801
1826
  #
1802
1827
  # Request a list of Office365 mailbox accounts.
1803
1828
  # The remote device must have given consent for an MSP to browse their files.
1829
+ # This is primarily used for testing the connection to Graph API, not for actual listing
1804
1830
  #
1805
1831
  # You must supply administrator authentication credentials to use this API.
1806
1832
  # This API requires the Auth Role to be enabled.
@@ -3250,12 +3276,18 @@ module Comet
3250
3276
  # Access to this API may be prevented on a per-administrator basis.
3251
3277
  #
3252
3278
  # @param [Array<Comet::RemoteStorageOption>] remote_storage_options Updated configuration content
3279
+ # @param [String] replacement_auto_vault_id (Optional) Replacement Storage Template ID for auto Storage Vault configurations that use deleted Storage Templates
3253
3280
  # @return [Comet::CometAPIResponseMessage]
3254
- def admin_meta_remote_storage_vault_set(remote_storage_options)
3281
+ def admin_meta_remote_storage_vault_set(remote_storage_options, replacement_auto_vault_id = nil)
3255
3282
  submit_params = {}
3256
3283
  raise TypeError, "'remote_storage_options' expected Array, got #{remote_storage_options.class}" unless remote_storage_options.is_a? Array
3257
3284
 
3258
3285
  submit_params['RemoteStorageOptions'] = remote_storage_options.to_json
3286
+ unless replacement_auto_vault_id.nil?
3287
+ raise TypeError, "'replacement_auto_vault_id' expected String, got #{replacement_auto_vault_id.class}" unless replacement_auto_vault_id.is_a? String
3288
+
3289
+ submit_params['ReplacementAutoVaultID'] = replacement_auto_vault_id
3290
+ end
3259
3291
 
3260
3292
  body = perform_request('api/v1/admin/meta/remote-storage-vault/set', submit_params)
3261
3293
  json_body = JSON.parse body
@@ -4037,8 +4069,9 @@ module Comet
4037
4069
  # @param [String] target_user The user to receive the new Storage Vault
4038
4070
  # @param [String] storage_provider ID for the storage template destination
4039
4071
  # @param [String] self_address (Optional) The external URL for this server. Used to resolve conflicts
4072
+ # @param [String] device_id (Optional) The ID of the device to be added as a associated device of the Storage Vault
4040
4073
  # @return [Comet::RequestStorageVaultResponseMessage]
4041
- def admin_request_storage_vault(target_user, storage_provider, self_address = nil)
4074
+ def admin_request_storage_vault(target_user, storage_provider, self_address = nil, device_id = nil)
4042
4075
  submit_params = {}
4043
4076
  raise TypeError, "'target_user' expected String, got #{target_user.class}" unless target_user.is_a? String
4044
4077
 
@@ -4053,6 +4086,11 @@ module Comet
4053
4086
 
4054
4087
  submit_params['SelfAddress'] = self_address
4055
4088
  end
4089
+ unless device_id.nil?
4090
+ raise TypeError, "'device_id' expected String, got #{device_id.class}" unless device_id.is_a? String
4091
+
4092
+ submit_params['DeviceID'] = device_id
4093
+ end
4056
4094
 
4057
4095
  body = perform_request('api/v1/admin/request-storage-vault', submit_params)
4058
4096
  json_body = JSON.parse body
@@ -4452,6 +4490,208 @@ module Comet
4452
4490
  ret
4453
4491
  end
4454
4492
 
4493
+ # AdminUserGroupsDelete
4494
+ #
4495
+ # Delete an existing user group object.
4496
+ #
4497
+ # You must supply administrator authentication credentials to use this API.
4498
+ # This API requires the Auth Role to be enabled.
4499
+ #
4500
+ # @param [String] group_id The user group ID to delete
4501
+ # @return [Comet::CometAPIResponseMessage]
4502
+ def admin_user_groups_delete(group_id)
4503
+ submit_params = {}
4504
+ raise TypeError, "'group_id' expected String, got #{group_id.class}" unless group_id.is_a? String
4505
+
4506
+ submit_params['GroupID'] = group_id
4507
+
4508
+ body = perform_request('api/v1/admin/user-groups/delete', submit_params)
4509
+ json_body = JSON.parse body
4510
+ check_status json_body
4511
+ ret = Comet::CometAPIResponseMessage.new
4512
+ ret.from_hash(json_body)
4513
+ ret
4514
+ end
4515
+
4516
+ # AdminUserGroupsGet
4517
+ #
4518
+ # Retrieve a single user group object.
4519
+ #
4520
+ # You must supply administrator authentication credentials to use this API.
4521
+ # This API requires the Auth Role to be enabled.
4522
+ #
4523
+ # @param [String] group_id The user group ID to retrieve
4524
+ # @param [Boolean] include_users (Optional) If present, includes the users array in the response.
4525
+ # @return [Comet::GetUserGroupWithUsersResponse]
4526
+ def admin_user_groups_get(group_id, include_users = nil)
4527
+ submit_params = {}
4528
+ raise TypeError, "'group_id' expected String, got #{group_id.class}" unless group_id.is_a? String
4529
+
4530
+ submit_params['GroupID'] = group_id
4531
+ unless include_users.nil?
4532
+ submit_params['IncludeUsers'] = (include_users ? 1 : 0)
4533
+ end
4534
+
4535
+ body = perform_request('api/v1/admin/user-groups/get', submit_params)
4536
+ json_body = JSON.parse body
4537
+ check_status json_body
4538
+ ret = Comet::GetUserGroupWithUsersResponse.new
4539
+ ret.from_hash(json_body)
4540
+ ret
4541
+ end
4542
+
4543
+ # AdminUserGroupsList
4544
+ #
4545
+ # List all user group names.
4546
+ # For the top-level organization, the API result includes all user groups for all organizations, unless the TargetOrganization parameter is present.
4547
+ #
4548
+ # You must supply administrator authentication credentials to use this API.
4549
+ # This API requires the Auth Role to be enabled.
4550
+ #
4551
+ # @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.
4552
+ # @return [Hash{String => String}]
4553
+ def admin_user_groups_list(target_organization = nil)
4554
+ submit_params = {}
4555
+ unless target_organization.nil?
4556
+ raise TypeError, "'target_organization' expected String, got #{target_organization.class}" unless target_organization.is_a? String
4557
+
4558
+ submit_params['TargetOrganization'] = target_organization
4559
+ end
4560
+
4561
+ body = perform_request('api/v1/admin/user-groups/list', submit_params)
4562
+ json_body = JSON.parse body
4563
+ check_status json_body
4564
+ ret = {}
4565
+ if json_body.nil?
4566
+ ret = {}
4567
+ else
4568
+ json_body.each do |k, v|
4569
+ raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
4570
+
4571
+ ret[k] = v
4572
+ end
4573
+ end
4574
+ ret
4575
+ end
4576
+
4577
+ # AdminUserGroupsListFull
4578
+ #
4579
+ # Get all user group objects.
4580
+ # For the top-level organization, the API result includes all user groups for all organizations, unless the TargetOrganization parameter is present.
4581
+ #
4582
+ # You must supply administrator authentication credentials to use this API.
4583
+ # This API requires the Auth Role to be enabled.
4584
+ #
4585
+ # @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.
4586
+ # @return [Hash{String => Comet::UserGroup}]
4587
+ def admin_user_groups_list_full(target_organization = nil)
4588
+ submit_params = {}
4589
+ unless target_organization.nil?
4590
+ raise TypeError, "'target_organization' expected String, got #{target_organization.class}" unless target_organization.is_a? String
4591
+
4592
+ submit_params['TargetOrganization'] = target_organization
4593
+ end
4594
+
4595
+ body = perform_request('api/v1/admin/user-groups/list-full', submit_params)
4596
+ json_body = JSON.parse body
4597
+ check_status json_body
4598
+ ret = {}
4599
+ if json_body.nil?
4600
+ ret = {}
4601
+ else
4602
+ json_body.each do |k, v|
4603
+ ret[k] = Comet::UserGroup.new
4604
+ ret[k].from_hash(v)
4605
+ end
4606
+ end
4607
+ ret
4608
+ end
4609
+
4610
+ # AdminUserGroupsNew
4611
+ #
4612
+ # Create a new user group object.
4613
+ #
4614
+ # You must supply administrator authentication credentials to use this API.
4615
+ # This API requires the Auth Role to be enabled.
4616
+ #
4617
+ # @param [String] name this is the name of the group.
4618
+ # @param [String] target_organization (Optional) If present, list the policies belonging to another organization. Only allowed for administrator accounts in the top-level organization.
4619
+ # @return [Comet::CreateUserGroupResponse]
4620
+ def admin_user_groups_new(name, target_organization = nil)
4621
+ submit_params = {}
4622
+ raise TypeError, "'name' expected String, got #{name.class}" unless name.is_a? String
4623
+
4624
+ submit_params['Name'] = name
4625
+ unless target_organization.nil?
4626
+ raise TypeError, "'target_organization' expected String, got #{target_organization.class}" unless target_organization.is_a? String
4627
+
4628
+ submit_params['TargetOrganization'] = target_organization
4629
+ end
4630
+
4631
+ body = perform_request('api/v1/admin/user-groups/new', submit_params)
4632
+ json_body = JSON.parse body
4633
+ check_status json_body
4634
+ ret = Comet::CreateUserGroupResponse.new
4635
+ ret.from_hash(json_body)
4636
+ ret
4637
+ end
4638
+
4639
+ # AdminUserGroupsSet
4640
+ #
4641
+ # Update an existing user group or create a new user group.
4642
+ #
4643
+ # You must supply administrator authentication credentials to use this API.
4644
+ # This API requires the Auth Role to be enabled.
4645
+ #
4646
+ # @param [String] group_id The user group ID to update or create
4647
+ # @param [Comet::UserGroup] group The user group data
4648
+ # @return [Comet::CometAPIResponseMessage]
4649
+ def admin_user_groups_set(group_id, group)
4650
+ submit_params = {}
4651
+ raise TypeError, "'group_id' expected String, got #{group_id.class}" unless group_id.is_a? String
4652
+
4653
+ submit_params['GroupID'] = group_id
4654
+ raise TypeError, "'group' expected Comet::UserGroup, got #{group.class}" unless group.is_a? Comet::UserGroup
4655
+
4656
+ submit_params['Group'] = group.to_json
4657
+
4658
+ body = perform_request('api/v1/admin/user-groups/set', submit_params)
4659
+ json_body = JSON.parse body
4660
+ check_status json_body
4661
+ ret = Comet::CometAPIResponseMessage.new
4662
+ ret.from_hash(json_body)
4663
+ ret
4664
+ end
4665
+
4666
+ # AdminUserGroupsSetUsersForGroup
4667
+ #
4668
+ # Update the users in the specified group.
4669
+ # The provided list of users will be moved into the specified group, and any users
4670
+ # already in the group who are not in the list of usernames will be removed.
4671
+ #
4672
+ # You must supply administrator authentication credentials to use this API.
4673
+ # This API requires the Auth Role to be enabled.
4674
+ #
4675
+ # @param [String] group_id The user group ID to update
4676
+ # @param [Array<String>] users An array of usernames.
4677
+ # @return [Comet::CometAPIResponseMessage]
4678
+ def admin_user_groups_set_users_for_group(group_id, users)
4679
+ submit_params = {}
4680
+ raise TypeError, "'group_id' expected String, got #{group_id.class}" unless group_id.is_a? String
4681
+
4682
+ submit_params['GroupID'] = group_id
4683
+ raise TypeError, "'users' expected Array, got #{users.class}" unless users.is_a? Array
4684
+
4685
+ submit_params['Users'] = users.to_json
4686
+
4687
+ body = perform_request('api/v1/admin/user-groups/set-users-for-group', submit_params)
4688
+ json_body = JSON.parse body
4689
+ check_status json_body
4690
+ ret = Comet::CometAPIResponseMessage.new
4691
+ ret.from_hash(json_body)
4692
+ ret
4693
+ end
4694
+
4455
4695
  # HybridSessionStart
4456
4696
  #
4457
4697
  # 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.6'
10
+ APPLICATION_VERSION = '24.12.3'
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 = 6
16
+ APPLICATION_VERSION_REVISION = 3
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
@@ -245,14 +245,14 @@ module Comet
245
245
  # FtpsModeType: Use explicit FTPS, first creating an insecure connection and then upgrading to SSL/TLS using AUTH TLS (like STARTTLS).
246
246
  FTPS_MODE_EXPLICIT = 2
247
247
 
248
- # Back up Hyper-V virtual machines using VSS mode. This includes all previous snapshots.
248
+ # HypervMethod: Back up Hyper-V virtual machines using VSS mode. This includes all previous snapshots.
249
249
  HYPERV_METHOD_VSS = 'vss'
250
250
 
251
- # Back up Hyper-V virtual machines using WMI mode. This includes the latest snapshot data only.
251
+ # HypervMethod: Back up Hyper-V virtual machines using WMI mode. This includes the latest snapshot data only.
252
252
  # This const is available in Comet 23.9.8 and later.
253
253
  HYPERV_METHOD_WMI_COPY = 'copy'
254
254
 
255
- # Back up Hyper-V virtual machines using WMI mode with RCT acceleration. This includes the latest snapshot data only.
255
+ # HypervMethod: Back up Hyper-V virtual machines using WMI mode with RCT acceleration. This includes the latest snapshot data only.
256
256
  # This const is available in Comet 23.9.8 and later.
257
257
  HYPERV_METHOD_WMI_CBT = 'wmi'
258
258
 
@@ -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
@@ -912,6 +921,15 @@ New code should explicitly use OBJECT_LOCK_ON / OBJECT_LOCK_OFF instead.
912
921
  # StreamableEventType: Device disconnected from registration lobby
913
922
  SEVT_DEVICE_LOBBY_DISCONNECT = 4705
914
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
+
915
933
  # StreamableEventType
916
934
  SEVT__MAX = 4999
917
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
@@ -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