comet_backup_ruby_sdk 2.42.0 → 2.44.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 (32) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +19 -0
  3. data/Gemfile.lock +1 -1
  4. data/comet_backup_ruby_sdk.gemspec +1 -1
  5. data/lib/comet/comet_server.rb +259 -9
  6. data/lib/comet/definitions.rb +21 -2
  7. data/lib/comet/models/backup_job_advanced_options.rb +10 -0
  8. data/lib/comet/models/backup_job_detail.rb +12 -12
  9. data/lib/comet/models/backup_rule_config.rb +10 -0
  10. data/lib/comet/models/branding_options.rb +30 -0
  11. data/lib/comet/models/branding_properties.rb +30 -0
  12. data/lib/comet/models/destination_config.rb +11 -0
  13. data/lib/comet/models/{pverestore_selection.rb → dispatch_with_job_idresponse.rb} +24 -24
  14. data/lib/comet/models/get_shared_storage_quota_response.rb +110 -0
  15. data/lib/comet/models/list_shared_storage_quota_response.rb +98 -0
  16. data/lib/comet/models/private_branding_properties.rb +30 -0
  17. data/lib/comet/models/protected_item_with_backup_rules_response.rb +119 -0
  18. data/lib/comet/models/pvebackup_disk.rb +6 -0
  19. data/lib/comet/models/pvebackup_node.rb +5 -0
  20. data/lib/comet/models/pvebackup_vm.rb +6 -0
  21. data/lib/comet/models/pvedisk.rb +4 -3
  22. data/lib/comet/models/pveparams.rb +13 -11
  23. data/lib/comet/models/pvestorage_name.rb +16 -0
  24. data/lib/comet/models/pvevm.rb +2 -0
  25. data/lib/comet/models/{block_info.rb → set_shared_storage_quota_response.rb} +24 -14
  26. data/lib/comet/models/shared_storage_quota.rb +94 -0
  27. data/lib/comet/models/source_config.rb +7 -0
  28. data/lib/comet/models/user_profile_config.rb +8 -0
  29. data/lib/comet/models/vault_snapshot.rb +19 -0
  30. data/lib/comet/models/windows_code_sign_properties.rb +30 -0
  31. data/lib/comet_backup_ruby_sdk.rb +6 -5
  32. metadata +8 -4
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b1ce12d259b4709b8f945a3ab03c5aaa3affa2bf686d8db13a579efa734352ca
4
- data.tar.gz: dccfbf9c48da859196a0ea45fd546e48869c696860b19b9e0e17275a9ad00ff1
3
+ metadata.gz: 8f8bcc1711bb036830fb9143b2737e8981d2d6ac6dd33a3044f0071b0bbdaef5
4
+ data.tar.gz: a4238194d53bfc536198a86beb9c373d32b5503975cca6379174efe94ff9c1f8
5
5
  SHA512:
6
- metadata.gz: ca9afca76f9b80e1f66e22c05bacd2615be2f644f8b3d6db2caf5eb8f25736bb2e4afa73648dd6eaae0985ec2a92626edbba4a523edc43a410733ae7c2ab7f17
7
- data.tar.gz: 9e6c3ce78d176e8c37966a00e2a33e835da5ed4e32295223d8e4fb9a07530d4a593288732b2a2c714690948ea3a3c4d5f7bf13455abce00ed2f791766e0cd825
6
+ metadata.gz: ac782041cd6dbdedfd201782c173e87d5e58694b6ea5af3776740f7c4f782784dc14ebcdc3af9f7227ccc6bce8a59f1ebf202b1eb50f48b2b7a332b25958c00e
7
+ data.tar.gz: 4331c52faa2185690f4f6831a35bd3aee82b7f8b476f70075dce9cbb63eb57a0c1b61b724cedaccde95b0eaaf4a052d7b4ab8707fb58811de6a463ccc0fd89b5
data/CHANGELOG.md CHANGED
@@ -1,5 +1,24 @@
1
1
  # CHANGELOG
2
2
 
3
+ ## 2025-12-04 v2.44.0
4
+
5
+ - Based on Comet 25.9.8
6
+ - Add support for shared quota management APIs
7
+ - Add Proxmox API parameter
8
+
9
+ ## 2025-11-14 v2.43.0
10
+
11
+ - Based on Comet 25.9.6
12
+ - Add new API methods for getting, setting, and deleting Protected Items and
13
+ their associated schedules
14
+ - Add new API methods for live connection credential/session management
15
+ - Add JobID field to API response when starting jobs via the dispatcher on
16
+ devices running Comet 25.9.6 or newer
17
+ - Add support for custom tags on backup jobs to allow grouping of
18
+ snapshots/jobs
19
+ - Add support SAS Relic codesigning
20
+ - Improve documentation for Proxmox API types
21
+
3
22
  ## 2025-08-15 v2.42.0
4
23
 
5
24
  - Based on Comet 25.6.8
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- comet_backup_ruby_sdk (2.42.0)
4
+ comet_backup_ruby_sdk (2.44.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.42.0'
15
+ spec.version = '2.44.0'
16
16
  spec.authors = ['Comet Licensing Ltd.']
17
17
  spec.email = ['hello@cometbackup.com']
18
18
 
@@ -1059,6 +1059,33 @@ module Comet
1059
1059
  ret
1060
1060
  end
1061
1061
 
1062
+ # AdminDeleteProtectedItem
1063
+ #
1064
+ # Delete a Protected Item.
1065
+ #
1066
+ # You must supply administrator authentication credentials to use this API.
1067
+ # This API requires the Auth Role to be enabled.
1068
+ #
1069
+ # @param [String] target_user Selected account username
1070
+ # @param [String] source_id Selected Protected Item GUID
1071
+ # @return [Comet::CometAPIResponseMessage]
1072
+ def admin_delete_protected_item(target_user, source_id)
1073
+ submit_params = {}
1074
+ raise TypeError, "'target_user' expected String, got #{target_user.class}" unless target_user.is_a? String
1075
+
1076
+ submit_params['TargetUser'] = target_user
1077
+ raise TypeError, "'source_id' expected String, got #{source_id.class}" unless source_id.is_a? String
1078
+
1079
+ submit_params['SourceID'] = source_id
1080
+
1081
+ body = perform_request('api/v1/admin/delete-protected-item', submit_params)
1082
+ json_body = JSON.parse body
1083
+ check_status json_body
1084
+ ret = Comet::CometAPIResponseMessage.new
1085
+ ret.from_hash(json_body)
1086
+ ret
1087
+ end
1088
+
1062
1089
  # AdminDeleteUser
1063
1090
  #
1064
1091
  # Delete user account.
@@ -1325,6 +1352,30 @@ module Comet
1325
1352
  ret
1326
1353
  end
1327
1354
 
1355
+ # AdminDispatcherForceLogin
1356
+ #
1357
+ # Instruct a live connected device to re-enter login credentials.
1358
+ # The device will terminate its live-connection process and will not reconnect.
1359
+ #
1360
+ # You must supply administrator authentication credentials to use this API.
1361
+ # This API requires the Auth Role to be enabled.
1362
+ #
1363
+ # @param [String] target_id The live connection GUID
1364
+ # @return [Comet::CometAPIResponseMessage]
1365
+ def admin_dispatcher_force_login(target_id)
1366
+ submit_params = {}
1367
+ raise TypeError, "'target_id' expected String, got #{target_id.class}" unless target_id.is_a? String
1368
+
1369
+ submit_params['TargetID'] = target_id
1370
+
1371
+ body = perform_request('api/v1/admin/dispatcher/force-login', submit_params)
1372
+ json_body = JSON.parse body
1373
+ check_status json_body
1374
+ ret = Comet::CometAPIResponseMessage.new
1375
+ ret.from_hash(json_body)
1376
+ ret
1377
+ end
1378
+
1328
1379
  # AdminDispatcherGetDefaultLoginUrl
1329
1380
  #
1330
1381
  # Get the default login URL for a tenant.
@@ -1812,8 +1863,9 @@ module Comet
1812
1863
  #
1813
1864
  # @param [String] target_id The live connection GUID
1814
1865
  # @param [Comet::SSHConnection] credentials The SSH connection settings
1866
+ # @param [String] node The target node
1815
1867
  # @return [Comet::BrowseProxmoxStorageResponse]
1816
- def admin_dispatcher_request_browse_proxmox_storage(target_id, credentials)
1868
+ def admin_dispatcher_request_browse_proxmox_storage(target_id, credentials, node)
1817
1869
  submit_params = {}
1818
1870
  raise TypeError, "'target_id' expected String, got #{target_id.class}" unless target_id.is_a? String
1819
1871
 
@@ -1821,6 +1873,9 @@ module Comet
1821
1873
  raise TypeError, "'credentials' expected Comet::SSHConnection, got #{credentials.class}" unless credentials.is_a? Comet::SSHConnection
1822
1874
 
1823
1875
  submit_params['Credentials'] = credentials.to_json
1876
+ raise TypeError, "'node' expected String, got #{node.class}" unless node.is_a? String
1877
+
1878
+ submit_params['Node'] = node
1824
1879
 
1825
1880
  body = perform_request('api/v1/admin/dispatcher/request-browse-proxmox/storage', submit_params)
1826
1881
  json_body = JSON.parse body
@@ -2227,7 +2282,7 @@ module Comet
2227
2282
  #
2228
2283
  # @param [String] target_id The live connection GUID
2229
2284
  # @param [String] backup_rule The schedule GUID
2230
- # @return [Comet::CometAPIResponseMessage]
2285
+ # @return [Comet::DispatchWithJobIDResponse]
2231
2286
  def admin_dispatcher_run_backup(target_id, backup_rule)
2232
2287
  submit_params = {}
2233
2288
  raise TypeError, "'target_id' expected String, got #{target_id.class}" unless target_id.is_a? String
@@ -2240,7 +2295,7 @@ module Comet
2240
2295
  body = perform_request('api/v1/admin/dispatcher/run-backup', submit_params)
2241
2296
  json_body = JSON.parse body
2242
2297
  check_status json_body
2243
- ret = Comet::CometAPIResponseMessage.new
2298
+ ret = Comet::DispatchWithJobIDResponse.new
2244
2299
  ret.from_hash(json_body)
2245
2300
  ret
2246
2301
  end
@@ -2256,7 +2311,7 @@ module Comet
2256
2311
  # @param [String] source The Protected Item GUID
2257
2312
  # @param [String] destination The Storage Vault GUID
2258
2313
  # @param [Comet::BackupJobAdvancedOptions] options (Optional) Extra job parameters (>= 19.3.6)
2259
- # @return [Comet::CometAPIResponseMessage]
2314
+ # @return [Comet::DispatchWithJobIDResponse]
2260
2315
  def admin_dispatcher_run_backup_custom(target_id, source, destination, options = nil)
2261
2316
  submit_params = {}
2262
2317
  raise TypeError, "'target_id' expected String, got #{target_id.class}" unless target_id.is_a? String
@@ -2277,7 +2332,7 @@ module Comet
2277
2332
  body = perform_request('api/v1/admin/dispatcher/run-backup-custom', submit_params)
2278
2333
  json_body = JSON.parse body
2279
2334
  check_status json_body
2280
- ret = Comet::CometAPIResponseMessage.new
2335
+ ret = Comet::DispatchWithJobIDResponse.new
2281
2336
  ret.from_hash(json_body)
2282
2337
  ret
2283
2338
  end
@@ -2296,7 +2351,7 @@ module Comet
2296
2351
  # @param [String] destination The Storage Vault ID
2297
2352
  # @param [String] snapshot (Optional) If present, restore a specific snapshot. Otherwise, restore the latest snapshot for the selected Protected Item + Storage Vault pair
2298
2353
  # @param [Array<String>] paths (Optional) If present, restore these paths only. Otherwise, restore all data (>= 19.3.0)
2299
- # @return [Comet::CometAPIResponseMessage]
2354
+ # @return [Comet::DispatchWithJobIDResponse]
2300
2355
  def admin_dispatcher_run_restore(target_id, path, source, destination, snapshot = nil, paths = nil)
2301
2356
  submit_params = {}
2302
2357
  raise TypeError, "'target_id' expected String, got #{target_id.class}" unless target_id.is_a? String
@@ -2325,7 +2380,7 @@ module Comet
2325
2380
  body = perform_request('api/v1/admin/dispatcher/run-restore', submit_params)
2326
2381
  json_body = JSON.parse body
2327
2382
  check_status json_body
2328
- ret = Comet::CometAPIResponseMessage.new
2383
+ ret = Comet::DispatchWithJobIDResponse.new
2329
2384
  ret.from_hash(json_body)
2330
2385
  ret
2331
2386
  end
@@ -2347,7 +2402,7 @@ module Comet
2347
2402
  # @param [Number] known_file_count (Optional) The number of files to restore, if known. Supplying this means we don't need to walk the entire tree just to find the file count and will speed up the restoration process.
2348
2403
  # @param [Number] known_byte_count (Optional) The total size in bytes of files to restore, if known. Supplying this means we don't need to walk the entire tree just to find the total file size and will speed up the restoration process.
2349
2404
  # @param [Number] known_dir_count (Optional) The number of directories to restore, if known. Supplying this means we don't need to walk the entire tree just to find the number of directories and will speed up the restoration process.
2350
- # @return [Comet::CometAPIResponseMessage]
2405
+ # @return [Comet::DispatchWithJobIDResponse]
2351
2406
  def admin_dispatcher_run_restore_custom(target_id, source, destination, options, snapshot = nil, paths = nil, known_file_count = nil, known_byte_count = nil, known_dir_count = nil)
2352
2407
  submit_params = {}
2353
2408
  raise TypeError, "'target_id' expected String, got #{target_id.class}" unless target_id.is_a? String
@@ -2391,7 +2446,7 @@ module Comet
2391
2446
  body = perform_request('api/v1/admin/dispatcher/run-restore-custom', submit_params)
2392
2447
  json_body = JSON.parse body
2393
2448
  check_status json_body
2394
- ret = Comet::CometAPIResponseMessage.new
2449
+ ret = Comet::DispatchWithJobIDResponse.new
2395
2450
  ret.from_hash(json_body)
2396
2451
  ret
2397
2452
  end
@@ -2516,6 +2571,33 @@ module Comet
2516
2571
  ret
2517
2572
  end
2518
2573
 
2574
+ # AdminDispatcherUpdateLoginPassword
2575
+ #
2576
+ # Instruct a live connected device to update its login password.
2577
+ #
2578
+ # You must supply administrator authentication credentials to use this API.
2579
+ # This API requires the Auth Role to be enabled.
2580
+ #
2581
+ # @param [String] target_id The live connection GUID
2582
+ # @param [String] new_password The new password of this user
2583
+ # @return [Comet::CometAPIResponseMessage]
2584
+ def admin_dispatcher_update_login_password(target_id, new_password)
2585
+ submit_params = {}
2586
+ raise TypeError, "'target_id' expected String, got #{target_id.class}" unless target_id.is_a? String
2587
+
2588
+ submit_params['TargetID'] = target_id
2589
+ raise TypeError, "'new_password' expected String, got #{new_password.class}" unless new_password.is_a? String
2590
+
2591
+ submit_params['NewPassword'] = new_password
2592
+
2593
+ body = perform_request('api/v1/admin/dispatcher/update-login-password', submit_params)
2594
+ json_body = JSON.parse body
2595
+ check_status json_body
2596
+ ret = Comet::CometAPIResponseMessage.new
2597
+ ret.from_hash(json_body)
2598
+ ret
2599
+ end
2600
+
2519
2601
  # AdminDispatcherUpdateLoginUrl
2520
2602
  #
2521
2603
  # Instruct a live connected device to update its login server URL.
@@ -2914,6 +2996,33 @@ module Comet
2914
2996
  ret
2915
2997
  end
2916
2998
 
2999
+ # AdminGetProtectedItemWithBackupRules
3000
+ #
3001
+ # Get a Protected Item with its backup rules.
3002
+ #
3003
+ # You must supply administrator authentication credentials to use this API.
3004
+ # This API requires the Auth Role to be enabled.
3005
+ #
3006
+ # @param [String] target_user Selected account username
3007
+ # @param [String] source_id Selected Protected Item GUID
3008
+ # @return [Comet::ProtectedItemWithBackupRulesResponse]
3009
+ def admin_get_protected_item_with_backup_rules(target_user, source_id)
3010
+ submit_params = {}
3011
+ raise TypeError, "'target_user' expected String, got #{target_user.class}" unless target_user.is_a? String
3012
+
3013
+ submit_params['TargetUser'] = target_user
3014
+ raise TypeError, "'source_id' expected String, got #{source_id.class}" unless source_id.is_a? String
3015
+
3016
+ submit_params['SourceID'] = source_id
3017
+
3018
+ body = perform_request('api/v1/admin/get-protected-item-with-backup-rules', submit_params)
3019
+ json_body = JSON.parse body
3020
+ check_status json_body
3021
+ ret = Comet::ProtectedItemWithBackupRulesResponse.new
3022
+ ret.from_hash(json_body)
3023
+ ret
3024
+ end
3025
+
2917
3026
  # AdminGetUserProfile
2918
3027
  #
2919
3028
  # Get user account profile.
@@ -4464,6 +4573,51 @@ module Comet
4464
4573
  ret
4465
4574
  end
4466
4575
 
4576
+ # AdminSetProtectedItemWithBackupRules
4577
+ #
4578
+ # Add or update a Protected Item with its backup rules.
4579
+ #
4580
+ # You must supply administrator authentication credentials to use this API.
4581
+ # This API requires the Auth Role to be enabled.
4582
+ #
4583
+ # @param [String] target_user Selected account username
4584
+ # @param [String] source_id Selected Protected Item GUID
4585
+ # @param [String] require_hash (Optional) Previous account profile hash
4586
+ # @param [Comet::SourceConfig] source (Optional) Optional Protected Item to create or update
4587
+ # @param [Hash{String => Comet::BackupRuleConfig}] backup_rules (Optional) Optional backup rules for the Protected Item
4588
+ # @return [Comet::CometAPIResponseMessage]
4589
+ def admin_set_protected_item_with_backup_rules(target_user, source_id, require_hash = nil, source = nil, backup_rules = nil)
4590
+ submit_params = {}
4591
+ raise TypeError, "'target_user' expected String, got #{target_user.class}" unless target_user.is_a? String
4592
+
4593
+ submit_params['TargetUser'] = target_user
4594
+ raise TypeError, "'source_id' expected String, got #{source_id.class}" unless source_id.is_a? String
4595
+
4596
+ submit_params['SourceID'] = source_id
4597
+ unless require_hash.nil?
4598
+ raise TypeError, "'require_hash' expected String, got #{require_hash.class}" unless require_hash.is_a? String
4599
+
4600
+ submit_params['RequireHash'] = require_hash
4601
+ end
4602
+ unless source.nil?
4603
+ raise TypeError, "'source' expected Comet::SourceConfig, got #{source.class}" unless source.is_a? Comet::SourceConfig
4604
+
4605
+ submit_params['Source'] = source.to_json
4606
+ end
4607
+ unless backup_rules.nil?
4608
+ raise TypeError, "'backup_rules' expected Hash, got #{backup_rules.class}" unless backup_rules.is_a? Hash
4609
+
4610
+ submit_params['BackupRules'] = backup_rules.to_json
4611
+ end
4612
+
4613
+ body = perform_request('api/v1/admin/set-protected-item-with-backup-rules', submit_params)
4614
+ json_body = JSON.parse body
4615
+ check_status json_body
4616
+ ret = Comet::CometAPIResponseMessage.new
4617
+ ret.from_hash(json_body)
4618
+ ret
4619
+ end
4620
+
4467
4621
  # AdminSetUserProfile
4468
4622
  #
4469
4623
  # Modify user account profile.
@@ -4530,6 +4684,102 @@ module Comet
4530
4684
  ret
4531
4685
  end
4532
4686
 
4687
+ # AdminSquotaDelete
4688
+ #
4689
+ # Delete a shared storage quota and detach all users.
4690
+ #
4691
+ # You must supply administrator authentication credentials to use this API.
4692
+ # This API requires the Auth Role to be enabled.
4693
+ #
4694
+ # @param [String] shared_storage_quota_id (No description available)
4695
+ # @return [Comet::CometAPIResponseMessage]
4696
+ def admin_squota_delete(shared_storage_quota_id)
4697
+ submit_params = {}
4698
+ raise TypeError, "'shared_storage_quota_id' expected String, got #{shared_storage_quota_id.class}" unless shared_storage_quota_id.is_a? String
4699
+
4700
+ submit_params['SharedStorageQuotaID'] = shared_storage_quota_id
4701
+
4702
+ body = perform_request('api/v1/admin/squota/delete', submit_params)
4703
+ json_body = JSON.parse body
4704
+ check_status json_body
4705
+ ret = Comet::CometAPIResponseMessage.new
4706
+ ret.from_hash(json_body)
4707
+ ret
4708
+ end
4709
+
4710
+ # AdminSquotaGetWithHash
4711
+ #
4712
+ # Get properties for a shared storage quota.
4713
+ #
4714
+ # You must supply administrator authentication credentials to use this API.
4715
+ # This API requires the Auth Role to be enabled.
4716
+ #
4717
+ # @param [String] shared_storage_quota_id (No description available)
4718
+ # @return [Comet::GetSharedStorageQuotaResponse]
4719
+ def admin_squota_get_with_hash(shared_storage_quota_id)
4720
+ submit_params = {}
4721
+ raise TypeError, "'shared_storage_quota_id' expected String, got #{shared_storage_quota_id.class}" unless shared_storage_quota_id.is_a? String
4722
+
4723
+ submit_params['SharedStorageQuotaID'] = shared_storage_quota_id
4724
+
4725
+ body = perform_request('api/v1/admin/squota/get-with-hash', submit_params)
4726
+ json_body = JSON.parse body
4727
+ check_status json_body
4728
+ ret = Comet::GetSharedStorageQuotaResponse.new
4729
+ ret.from_hash(json_body)
4730
+ ret
4731
+ end
4732
+
4733
+ # AdminSquotaListAll
4734
+ #
4735
+ # List available shared storage quota objects.
4736
+ #
4737
+ # You must supply administrator authentication credentials to use this API.
4738
+ # This API requires the Auth Role to be enabled.
4739
+ #
4740
+ # @return [Comet::ListSharedStorageQuotaResponse]
4741
+ def admin_squota_list_all
4742
+ body = perform_request('api/v1/admin/squota/list-all')
4743
+ json_body = JSON.parse body
4744
+ check_status json_body
4745
+ ret = Comet::ListSharedStorageQuotaResponse.new
4746
+ ret.from_hash(json_body)
4747
+ ret
4748
+ end
4749
+
4750
+ # AdminSquotaSetWithHash
4751
+ #
4752
+ # Create or update a shared storage quota.
4753
+ #
4754
+ # You must supply administrator authentication credentials to use this API.
4755
+ # This API requires the Auth Role to be enabled.
4756
+ #
4757
+ # @param [String] shared_storage_quota_id (No description available)
4758
+ # @param [Comet::SharedStorageQuota] shared_storage_quota (No description available)
4759
+ # @param [String] check_hash (Optional) If supplied, validate the change against this hash. Omit to forcibly apply changes.
4760
+ # @return [Comet::SetSharedStorageQuotaResponse]
4761
+ def admin_squota_set_with_hash(shared_storage_quota_id, shared_storage_quota, check_hash = nil)
4762
+ submit_params = {}
4763
+ raise TypeError, "'shared_storage_quota_id' expected String, got #{shared_storage_quota_id.class}" unless shared_storage_quota_id.is_a? String
4764
+
4765
+ submit_params['SharedStorageQuotaID'] = shared_storage_quota_id
4766
+ raise TypeError, "'shared_storage_quota' expected Comet::SharedStorageQuota, got #{shared_storage_quota.class}" unless shared_storage_quota.is_a? Comet::SharedStorageQuota
4767
+
4768
+ submit_params['SharedStorageQuota'] = shared_storage_quota.to_json
4769
+ unless check_hash.nil?
4770
+ raise TypeError, "'check_hash' expected String, got #{check_hash.class}" unless check_hash.is_a? String
4771
+
4772
+ submit_params['CheckHash'] = check_hash
4773
+ end
4774
+
4775
+ body = perform_request('api/v1/admin/squota/set-with-hash', submit_params)
4776
+ json_body = JSON.parse body
4777
+ check_status json_body
4778
+ ret = Comet::SetSharedStorageQuotaResponse.new
4779
+ ret.from_hash(json_body)
4780
+ ret
4781
+ end
4782
+
4533
4783
  # AdminStorageBucketProperties
4534
4784
  #
4535
4785
  # Retrieve properties for a single bucket.
@@ -7,11 +7,11 @@
7
7
 
8
8
  module Comet
9
9
 
10
- APPLICATION_VERSION = '25.6.8'
10
+ APPLICATION_VERSION = '25.9.8'
11
11
 
12
12
  APPLICATION_VERSION_MAJOR = 25
13
13
 
14
- APPLICATION_VERSION_MINOR = 6
14
+ APPLICATION_VERSION_MINOR = 9
15
15
 
16
16
  APPLICATION_VERSION_REVISION = 8
17
17
 
@@ -328,6 +328,9 @@ module Comet
328
328
  # JobStatus: The job has encountered an error and will wait to retry.
329
329
  JOB_STATUS_RUNNING_TRYAGAIN = 6003
330
330
 
331
+ # JobStatus: The job has been created by the server but has not yet been initialized by the client.
332
+ JOB_STATUS_NOT_YET_STARTED = 6004
333
+
331
334
  # JobStatus
332
335
  JOB_STATUS_RUNNING__MAX = 6999
333
336
 
@@ -487,12 +490,16 @@ New code should explicitly use OBJECT_LOCK_ON / OBJECT_LOCK_OFF instead.
487
490
  # PSAType
488
491
  PSA_TYPE_SYNCRO = 2
489
492
 
493
+ # PveBackupMethod
490
494
  PVE_BACKUP_METHOD_STOP = 'stop'
491
495
 
496
+ # PveBackupMethod
492
497
  PVE_BACKUP_METHOD_SUSPEND = 'suspend'
493
498
 
499
+ # PveBackupMethod
494
500
  PVE_BACKUP_METHOD_SNAPSHOT = 'snapshot'
495
501
 
502
+ # PveBackupMethod
496
503
  PVE_BACKUP_METHOD_DEFAULT = PVE_BACKUP_METHOD_SNAPSHOT
497
504
 
498
505
  RELEASE_CODENAME = 'Voyager'
@@ -965,6 +972,15 @@ New code should explicitly use OBJECT_LOCK_ON / OBJECT_LOCK_OFF instead.
965
972
  # StreamableEventType: UserGroup updated.
966
973
  SEVT_USERGROUP_UPDATED = 4802
967
974
 
975
+ # StreamableEventType
976
+ SEVT_SQUOTA_NEW = 4803
977
+
978
+ # StreamableEventType
979
+ SEVT_SQUOTA_REMOVED = 4804
980
+
981
+ # StreamableEventType
982
+ SEVT_SQUOTA_UPDATED = 4805
983
+
968
984
  # StreamableEventType
969
985
  SEVT__MAX = 4999
970
986
 
@@ -1177,4 +1193,7 @@ New code should explicitly use OBJECT_LOCK_ON / OBJECT_LOCK_OFF instead.
1177
1193
  # WindowsCodesignMethod: Use a configured Azure Key Vault for Authenticode codesigning
1178
1194
  WINDOWSCODESIGN_METHOD_AZUREKEYVAULT = 4
1179
1195
 
1196
+ # WindowsCodesignMethod: Use a configured SAS Relic server for Authenticode codesigning
1197
+ WINDOWSCODESIGN_METHOD_RELICSERVER = 5
1198
+
1180
1199
  end
@@ -50,6 +50,10 @@ module Comet
50
50
  # @type [String] log_level
51
51
  attr_accessor :log_level
52
52
 
53
+ # Default disabled
54
+ # @type [String] tags
55
+ attr_accessor :tags
56
+
53
57
  # @type [Hash] Hidden storage to preserve future properties for non-destructive roundtrip operations
54
58
  attr_accessor :unknown_json_fields
55
59
 
@@ -63,6 +67,7 @@ module Comet
63
67
  @auto_retention_level = 0
64
68
  @concurrency_count = 0
65
69
  @log_level = ''
70
+ @tags = ''
66
71
  @unknown_json_fields = {}
67
72
  end
68
73
 
@@ -107,6 +112,10 @@ module Comet
107
112
  raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
108
113
 
109
114
  @log_level = v
115
+ when 'Tags'
116
+ raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
117
+
118
+ @tags = v
110
119
  else
111
120
  @unknown_json_fields[k] = v
112
121
  end
@@ -125,6 +134,7 @@ module Comet
125
134
  ret['AutoRetentionLevel'] = @auto_retention_level
126
135
  ret['ConcurrencyCount'] = @concurrency_count
127
136
  ret['LogLevel'] = @log_level
137
+ ret['Tags'] = @tags
128
138
  @unknown_json_fields.each do |k, v|
129
139
  ret[k] = v
130
140
  end
@@ -99,10 +99,6 @@ module Comet
99
99
  # @type [Number] total_unlicensed_mails_count
100
100
  attr_accessor :total_unlicensed_mails_count
101
101
 
102
- # The CRC32 of the billing data for this job.
103
- # @type [Number] billing_crc_32
104
- attr_accessor :billing_crc_32
105
-
106
102
  # If this field is present, this job did not perform some work because the Storage Vault is
107
103
  # currently busy.
108
104
  # This field is available in Comet 24.9.2 and later.
@@ -126,6 +122,10 @@ module Comet
126
122
  # @type [Comet::SizeMeasurement] destination_size_end
127
123
  attr_accessor :destination_size_end
128
124
 
125
+ # The tags sent as BackupJobOptions, Useful for Groupings
126
+ # @type [String] tags
127
+ attr_accessor :tags
128
+
129
129
  # @type [Hash] Hidden storage to preserve future properties for non-destructive roundtrip operations
130
130
  attr_accessor :unknown_json_fields
131
131
 
@@ -159,12 +159,12 @@ module Comet
159
159
  @total_accounts_count = 0
160
160
  @total_licensed_mails_count = 0
161
161
  @total_unlicensed_mails_count = 0
162
- @billing_crc_32 = 0
163
162
  @conflicting_job_id = ''
164
163
  @cancellation_id = ''
165
164
  @progress = Comet::BackupJobProgress.new
166
165
  @destination_size_start = Comet::SizeMeasurement.new
167
166
  @destination_size_end = Comet::SizeMeasurement.new
167
+ @tags = ''
168
168
  @unknown_json_fields = {}
169
169
  end
170
170
 
@@ -281,10 +281,6 @@ module Comet
281
281
  raise TypeError, "'v' expected Numeric, got #{v.class}" unless v.is_a? Numeric
282
282
 
283
283
  @total_unlicensed_mails_count = v
284
- when 'BillingCrc32'
285
- raise TypeError, "'v' expected Numeric, got #{v.class}" unless v.is_a? Numeric
286
-
287
- @billing_crc_32 = v
288
284
  when 'ConflictingJobID'
289
285
  raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
290
286
 
@@ -302,6 +298,10 @@ module Comet
302
298
  when 'DestinationSizeEnd'
303
299
  @destination_size_end = Comet::SizeMeasurement.new
304
300
  @destination_size_end.from_hash(v)
301
+ when 'Tags'
302
+ raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
303
+
304
+ @tags = v
305
305
  else
306
306
  @unknown_json_fields[k] = v
307
307
  end
@@ -352,9 +352,6 @@ module Comet
352
352
  unless @total_unlicensed_mails_count.nil?
353
353
  ret['TotalUnlicensedMailsCount'] = @total_unlicensed_mails_count
354
354
  end
355
- unless @billing_crc_32.nil?
356
- ret['BillingCrc32'] = @billing_crc_32
357
- end
358
355
  unless @conflicting_job_id.nil?
359
356
  ret['ConflictingJobID'] = @conflicting_job_id
360
357
  end
@@ -370,6 +367,9 @@ module Comet
370
367
  unless @destination_size_end.nil?
371
368
  ret['DestinationSizeEnd'] = @destination_size_end
372
369
  end
370
+ unless @tags.nil?
371
+ ret['Tags'] = @tags
372
+ end
373
373
  @unknown_json_fields.each do |k, v|
374
374
  ret[k] = v
375
375
  end
@@ -80,6 +80,10 @@ module Comet
80
80
  # @type [String] log_level
81
81
  attr_accessor :log_level
82
82
 
83
+ # Default disabled
84
+ # @type [String] tags
85
+ attr_accessor :tags
86
+
83
87
  # Scheduled start times
84
88
  # @type [Array<Comet::ScheduleConfig>] schedules
85
89
  attr_accessor :schedules
@@ -109,6 +113,7 @@ module Comet
109
113
  @auto_retention_level = 0
110
114
  @concurrency_count = 0
111
115
  @log_level = ''
116
+ @tags = ''
112
117
  @schedules = []
113
118
  @event_triggers = Comet::BackupRuleEventTriggers.new
114
119
  @unknown_json_fields = {}
@@ -208,6 +213,10 @@ module Comet
208
213
  raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
209
214
 
210
215
  @log_level = v
216
+ when 'Tags'
217
+ raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
218
+
219
+ @tags = v
211
220
  when 'Schedules'
212
221
  if v.nil?
213
222
  @schedules = []
@@ -247,6 +256,7 @@ module Comet
247
256
  ret['AutoRetentionLevel'] = @auto_retention_level
248
257
  ret['ConcurrencyCount'] = @concurrency_count
249
258
  ret['LogLevel'] = @log_level
259
+ ret['Tags'] = @tags
250
260
  ret['Schedules'] = @schedules
251
261
  ret['EventTriggers'] = @event_triggers
252
262
  @unknown_json_fields.each do |k, v|