comet_backup_ruby_sdk 2.12.0 → 2.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 3e58708772fc811caf320d5e37daead88298a9ef573d721055a3970bcf31d3bc
4
- data.tar.gz: 70167999c8a0622c11845204871ef6c36679f73b506dc1b260fd0006a71a07ae
3
+ metadata.gz: 5595c2c9458e40b3d6c0bd1289e9f2c3e42c7b6b76877047dea9a626648808bc
4
+ data.tar.gz: bec6a1ecdc82849345abf3e1d3a7f58fbfafcc1a46a02e1596e3c9dec16e8e15
5
5
  SHA512:
6
- metadata.gz: 9c13573fc5191bcba1631a35a0a6b55ab1d8543cbe14c3260eda4991c5432c23a3613d7af77ecee2fe6e789c91b08d949cd61fe924f7521b9ac9778d14b62a07
7
- data.tar.gz: 2a59d690d766d51a456d6cbf833287483c58630967f120433d1990afa7eeafb331e027ea7f0ae8b1e3ccd5572e7c3af5b0dd8d5d52a76e2c097c9d9900ca1814
6
+ metadata.gz: 60823a0d07939472f63562529d631036306fcdfea97b1419cd80798361cb500ae30a297a22286825dd023a699e4aaed3f4ff3138a6b4c7c1dc5d747f89b6d264
7
+ data.tar.gz: 2dd9f6f226e55b48d8e65217124ac84a502293b64c1cc6a538ece2cd1de5401bd0acc820c31c2f3ba3b0521307875c23f60fc5b570f1d93c1534164221634c38
data/CHANGELOG.md CHANGED
@@ -1,5 +1,23 @@
1
1
  # CHANGELOG
2
2
 
3
+ ## 2023-09-19 v2.14.0
4
+
5
+ - Based on Comet 23.9.2
6
+ - 'UseObjectLock' for S3 compatible storage settings deprecated. Replaced by 'ObjectLockMode'
7
+ - New Streamable event SEVT_DEVICE_LOBBY_CONNECT and SEVT_DEVICE_LOBBY_DISCONNECT
8
+ - Added 'TOTPCode' to 'InstallCreds' used for device registration.
9
+ - 'GroupedBy' added to 'PSAConfig' for grouping statistics.
10
+ - New APIs
11
+ - AdminInstallationDispatchDropConnection
12
+ - AdminInstallationDispatchRegisterDevice
13
+ - AdminInstallationListActive
14
+ - AdminJobAbandon
15
+
16
+ ## 2023-08-29 v2.13.0
17
+
18
+ - Based on Comet 23.8.0
19
+ - Improve documentation of JobStatus constants
20
+
3
21
  ## 2023-08-09 v2.12.0
4
22
 
5
23
  - Based on Comet 23.6.9
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- comet_backup_ruby_sdk (2.12.0)
4
+ comet_backup_ruby_sdk (2.14.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.12.0'
15
+ spec.version = '2.14.0'
16
16
  spec.authors = ['Comet Licensing Ltd.']
17
17
  spec.email = ['hello@cometbackup.com']
18
18
 
@@ -2617,6 +2617,121 @@ module Comet
2617
2617
  ret
2618
2618
  end
2619
2619
 
2620
+ # AdminInstallationDispatchDropConnection
2621
+ #
2622
+ # Instruct a live connected device to disconnect.
2623
+ # The device will terminate its live-connection process and will not reconnect.
2624
+ #
2625
+ # You must supply administrator authentication credentials to use this API.
2626
+ # This API requires the Auth Role to be enabled.
2627
+ #
2628
+ # @param [String] device_id The live connection Device GUID
2629
+ # @return [Comet::CometAPIResponseMessage]
2630
+ def admin_installation_dispatch_drop_connection(device_id)
2631
+ submit_params = {}
2632
+ raise TypeError, "'device_id' expected String, got #{device_id.class}" unless device_id.is_a? String
2633
+
2634
+ submit_params['DeviceID'] = device_id
2635
+
2636
+ body = perform_request('api/v1/admin/installation/dispatch/drop-connection', submit_params)
2637
+ json_body = JSON.parse body
2638
+ check_status json_body
2639
+ ret = Comet::CometAPIResponseMessage.new
2640
+ ret.from_hash(json_body)
2641
+ ret
2642
+ end
2643
+
2644
+ # AdminInstallationDispatchRegisterDevice
2645
+ #
2646
+ # Instruct an unregistered device to authenticate with a given user.
2647
+ #
2648
+ # You must supply administrator authentication credentials to use this API.
2649
+ # This API requires the Auth Role to be enabled.
2650
+ #
2651
+ # @param [String] device_id The live connection Device GUID
2652
+ # @param [String] target_user Selected account username
2653
+ # @param [String] target_password Selected account password
2654
+ # @param [String] target_totpcode (Optional) Selected account TOTP code
2655
+ # @return [String]
2656
+ def admin_installation_dispatch_register_device(device_id, target_user, target_password, target_totpcode = nil)
2657
+ submit_params = {}
2658
+ raise TypeError, "'device_id' expected String, got #{device_id.class}" unless device_id.is_a? String
2659
+
2660
+ submit_params['DeviceID'] = device_id
2661
+ raise TypeError, "'target_user' expected String, got #{target_user.class}" unless target_user.is_a? String
2662
+
2663
+ submit_params['TargetUser'] = target_user
2664
+ raise TypeError, "'target_password' expected String, got #{target_password.class}" unless target_password.is_a? String
2665
+
2666
+ submit_params['TargetPassword'] = target_password
2667
+ unless target_totpcode.nil?
2668
+ raise TypeError, "'target_totpcode' expected String, got #{target_totpcode.class}" unless target_totpcode.is_a? String
2669
+
2670
+ submit_params['TargetTOTPCode'] = target_totpcode
2671
+ end
2672
+
2673
+ body = perform_request('api/v1/admin/installation/dispatch/register-device', submit_params)
2674
+ json_body = JSON.parse body
2675
+ check_status json_body
2676
+ raise TypeError, "'json_body' expected String, got #{json_body.class}" unless json_body.is_a? String
2677
+
2678
+ ret = json_body
2679
+ ret
2680
+ end
2681
+
2682
+ # AdminInstallationListActive
2683
+ #
2684
+ # List live connected devices in lobby mode.
2685
+ #
2686
+ # You must supply administrator authentication credentials to use this API.
2687
+ # This API requires the Auth Role to be enabled.
2688
+ #
2689
+ # @return [Hash{String => Comet::RegistrationLobbyConnection}]
2690
+ def admin_installation_list_active
2691
+ body = perform_request('api/v1/admin/installation/list-active')
2692
+ json_body = JSON.parse body
2693
+ check_status json_body
2694
+ ret = {}
2695
+ if json_body.nil?
2696
+ ret = {}
2697
+ else
2698
+ json_body.each do |k, v|
2699
+ ret[k] = Comet::RegistrationLobbyConnection.new
2700
+ ret[k].from_hash(v)
2701
+ end
2702
+ end
2703
+ ret
2704
+ end
2705
+
2706
+ # AdminJobAbandon
2707
+ #
2708
+ # Mark a running job as abandoned.
2709
+ # This will change the status of a running job to abandoned.
2710
+ # This is intended to be used on jobs which are definitely no longer running but are stuck in the running state; it will not attempt to cancel the job. If the job is detected to still be running after being marked as abandoned, it will be revived.
2711
+ #
2712
+ # You must supply administrator authentication credentials to use this API.
2713
+ # This API requires the Auth Role to be enabled.
2714
+ #
2715
+ # @param [String] target_user Username
2716
+ # @param [String] job_id Job ID
2717
+ # @return [Comet::CometAPIResponseMessage]
2718
+ def admin_job_abandon(target_user, job_id)
2719
+ submit_params = {}
2720
+ raise TypeError, "'target_user' expected String, got #{target_user.class}" unless target_user.is_a? String
2721
+
2722
+ submit_params['TargetUser'] = target_user
2723
+ raise TypeError, "'job_id' expected String, got #{job_id.class}" unless job_id.is_a? String
2724
+
2725
+ submit_params['JobID'] = job_id
2726
+
2727
+ body = perform_request('api/v1/admin/job/abandon', submit_params)
2728
+ json_body = JSON.parse body
2729
+ check_status json_body
2730
+ ret = Comet::CometAPIResponseMessage.new
2731
+ ret.from_hash(json_body)
2732
+ ret
2733
+ end
2734
+
2620
2735
  # AdminJobCancel
2621
2736
  #
2622
2737
  # Cancel a running job.
@@ -7,13 +7,13 @@
7
7
 
8
8
  module Comet
9
9
 
10
- APPLICATION_VERSION = '23.6.9'
10
+ APPLICATION_VERSION = '23.9.2'
11
11
 
12
12
  APPLICATION_VERSION_MAJOR = 23
13
13
 
14
- APPLICATION_VERSION_MINOR = 6
14
+ APPLICATION_VERSION_MINOR = 9
15
15
 
16
- APPLICATION_VERSION_REVISION = 9
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
@@ -264,7 +264,7 @@ module Comet
264
264
  # JobStatus: If the BackupJobDetail.Status field is a 5xxx code, the job has stopped for a successful reason.
265
265
  JOB_STATUS_STOP_SUCCESS__MIN = 5000
266
266
 
267
- # JobStatus
267
+ # JobStatus: The job is complete and was successful.
268
268
  JOB_STATUS_STOP_SUCCESS = 5000
269
269
 
270
270
  # JobStatus
@@ -276,10 +276,10 @@ module Comet
276
276
  # JobStatus: Unused
277
277
  JOB_STATUS_RUNNING_INDETERMINATE = 6000
278
278
 
279
- # JobStatus
279
+ # JobStatus: The last information the server received from the device is that the job is currently running.
280
280
  JOB_STATUS_RUNNING_ACTIVE = 6001
281
281
 
282
- # JobStatus: A backup job that was marked as stopped or abandoned, but has somehow continued to run
282
+ # JobStatus: The job was thought to have been in an Abandoned state but updated the Comet Server with a running status.
283
283
  JOB_STATUS_RUNNING_REVIVED = 6002
284
284
 
285
285
  # JobStatus
@@ -291,25 +291,25 @@ module Comet
291
291
  # JobStatus
292
292
  JOB_STATUS_FAILED_TIMEOUT = 7000
293
293
 
294
- # JobStatus
294
+ # JobStatus: The job is complete but there was a problem that may have resulted in issues with the expected result.
295
295
  JOB_STATUS_FAILED_WARNING = 7001
296
296
 
297
- # JobStatus
297
+ # JobStatus: There was an error during the job and it did not fully complete.
298
298
  JOB_STATUS_FAILED_ERROR = 7002
299
299
 
300
- # JobStatus
300
+ # JobStatus: During a backup job either the "All protected items" quota or "Storage Vault" quota was exceeded.
301
301
  JOB_STATUS_FAILED_QUOTA = 7003
302
302
 
303
- # JobStatus
303
+ # JobStatus: The job did not start at its scheduled time.
304
304
  JOB_STATUS_FAILED_SCHEDULEMISSED = 7004
305
305
 
306
- # JobStatus
306
+ # JobStatus: The job was cancelled manually, a device shutdown was detected, or the backup time limit was reached.
307
307
  JOB_STATUS_FAILED_CANCELLED = 7005
308
308
 
309
- # JobStatus
309
+ # JobStatus: The backup job was skipped as there was already a backup running and the "Skip if already running" option was enabled.
310
310
  JOB_STATUS_FAILED_SKIPALREADYRUNNING = 7006
311
311
 
312
- # JobStatus
312
+ # JobStatus: The job has stopped unexpectedly or has been manually marked as abandoned by an admin.
313
313
  JOB_STATUS_FAILED_ABANDONED = 7007
314
314
 
315
315
  # JobStatus
@@ -361,6 +361,12 @@ module Comet
361
361
  # MSSQLRestoreOpt
362
362
  MSSQL_RESTORE_NORECOVERY = 'NO_RECOVERY'
363
363
 
364
+ OBJECT_LOCK_LEGACY = 0
365
+
366
+ OBJECT_LOCK_ON = 1
367
+
368
+ OBJECT_LOCK_OFF = 2
369
+
364
370
  OFFICE365_REGION_PUBLIC = 'GlobalPublicCloud'
365
371
 
366
372
  OFFICE365_REGION_CHINA = 'ChinaCloud'
@@ -829,6 +835,12 @@ module Comet
829
835
  # StreamableEventType: Device live connection ended
830
836
  SEVT_DEVICE_LIVE_DISCONNECT = 4703
831
837
 
838
+ # StreamableEventType: Device connected to registration lobby
839
+ SEVT_DEVICE_LOBBY_CONNECT = 4704
840
+
841
+ # StreamableEventType: Device disconnected from registration lobby
842
+ SEVT_DEVICE_LOBBY_DISCONNECT = 4705
843
+
832
844
  # StreamableEventType
833
845
  SEVT__MAX = 4999
834
846
 
@@ -958,6 +970,8 @@ module Comet
958
970
  # UpdateStatus: The device has successfully updated to the target version.
959
971
  UPDATESTATUS_UPDATE_CONFIRMED = 5
960
972
 
973
+ USERNAME_MAX_LENGTH = 255
974
+
961
975
  # If an API response returns in failure, but it includes this value in the CometAPIResponseMessage->Message parameter, it indicates that the specified Device ID was invalid or not found.
962
976
  UNKNOWN_DEVICE_ERROR = 'ERR_UNKNOWN_DEVICE'
963
977
 
@@ -21,8 +21,11 @@ module Comet
21
21
  # @type [String] secret_key
22
22
  attr_accessor :secret_key
23
23
 
24
- # @type [Boolean] use_object_lock
25
- attr_accessor :use_object_lock
24
+ # @type [Boolean] use_object_lock__legacy__do_not_use
25
+ attr_accessor :use_object_lock__legacy__do_not_use
26
+
27
+ # @type [Number] object_lock_mode
28
+ attr_accessor :object_lock_mode
26
29
 
27
30
  # @type [Number] object_lock_days
28
31
  attr_accessor :object_lock_days
@@ -41,6 +44,7 @@ module Comet
41
44
  @master_bucket = ''
42
45
  @access_key = ''
43
46
  @secret_key = ''
47
+ @object_lock_mode = 0
44
48
  @object_lock_days = 0
45
49
  @unknown_json_fields = {}
46
50
  end
@@ -71,7 +75,11 @@ module Comet
71
75
 
72
76
  @secret_key = v
73
77
  when 'UseObjectLock'
74
- @use_object_lock = v
78
+ @use_object_lock__legacy__do_not_use = v
79
+ when 'ObjectLockMode'
80
+ raise TypeError, "'v' expected Numeric, got #{v.class}" unless v.is_a? Numeric
81
+
82
+ @object_lock_mode = v
75
83
  when 'ObjectLockDays'
76
84
  raise TypeError, "'v' expected Numeric, got #{v.class}" unless v.is_a? Numeric
77
85
 
@@ -90,7 +98,8 @@ module Comet
90
98
  ret['MasterBucket'] = @master_bucket
91
99
  ret['AccessKey'] = @access_key
92
100
  ret['SecretKey'] = @secret_key
93
- ret['UseObjectLock'] = @use_object_lock
101
+ ret['UseObjectLock'] = @use_object_lock__legacy__do_not_use
102
+ ret['ObjectLockMode'] = @object_lock_mode
94
103
  ret['ObjectLockDays'] = @object_lock_days
95
104
  ret['RemoveDeleted'] = @remove_deleted
96
105
  @unknown_json_fields.each do |k, v|
@@ -77,6 +77,9 @@ module Comet
77
77
  # @type [Boolean] s3remove_deleted
78
78
  attr_accessor :s3remove_deleted
79
79
 
80
+ # @type [Number] s3object_lock_mode
81
+ attr_accessor :s3object_lock_mode
82
+
80
83
  # @type [Number] s3object_lock_days
81
84
  attr_accessor :s3object_lock_days
82
85
 
@@ -264,6 +267,7 @@ module Comet
264
267
  @s3bucket_name = ''
265
268
  @s3subdir = ''
266
269
  @s3custom_region = ''
270
+ @s3object_lock_mode = 0
267
271
  @s3object_lock_days = 0
268
272
  @sftpserver = ''
269
273
  @sftpusername = ''
@@ -406,6 +410,10 @@ module Comet
406
410
  @s3uses_v2signing = v
407
411
  when 'S3RemoveDeleted'
408
412
  @s3remove_deleted = v
413
+ when 'S3ObjectLockMode'
414
+ raise TypeError, "'v' expected Numeric, got #{v.class}" unless v.is_a? Numeric
415
+
416
+ @s3object_lock_mode = v
409
417
  when 'S3ObjectLockDays'
410
418
  raise TypeError, "'v' expected Numeric, got #{v.class}" unless v.is_a? Numeric
411
419
 
@@ -586,6 +594,7 @@ module Comet
586
594
  ret['S3CustomRegion'] = @s3custom_region
587
595
  ret['S3UsesV2Signing'] = @s3uses_v2signing
588
596
  ret['S3RemoveDeleted'] = @s3remove_deleted
597
+ ret['S3ObjectLockMode'] = @s3object_lock_mode
589
598
  ret['S3ObjectLockDays'] = @s3object_lock_days
590
599
  ret['SFTPServer'] = @sftpserver
591
600
  ret['SFTPUsername'] = @sftpusername
@@ -57,6 +57,9 @@ module Comet
57
57
  # @type [Boolean] s3remove_deleted
58
58
  attr_accessor :s3remove_deleted
59
59
 
60
+ # @type [Number] s3object_lock_mode
61
+ attr_accessor :s3object_lock_mode
62
+
60
63
  # @type [Number] s3object_lock_days
61
64
  attr_accessor :s3object_lock_days
62
65
 
@@ -205,6 +208,7 @@ module Comet
205
208
  @s3bucket_name = ''
206
209
  @s3subdir = ''
207
210
  @s3custom_region = ''
211
+ @s3object_lock_mode = 0
208
212
  @s3object_lock_days = 0
209
213
  @sftpserver = ''
210
214
  @sftpusername = ''
@@ -296,6 +300,10 @@ module Comet
296
300
  @s3uses_v2signing = v
297
301
  when 'S3RemoveDeleted'
298
302
  @s3remove_deleted = v
303
+ when 'S3ObjectLockMode'
304
+ raise TypeError, "'v' expected Numeric, got #{v.class}" unless v.is_a? Numeric
305
+
306
+ @s3object_lock_mode = v
299
307
  when 'S3ObjectLockDays'
300
308
  raise TypeError, "'v' expected Numeric, got #{v.class}" unless v.is_a? Numeric
301
309
 
@@ -444,6 +452,7 @@ module Comet
444
452
  ret['S3CustomRegion'] = @s3custom_region
445
453
  ret['S3UsesV2Signing'] = @s3uses_v2signing
446
454
  ret['S3RemoveDeleted'] = @s3remove_deleted
455
+ ret['S3ObjectLockMode'] = @s3object_lock_mode
447
456
  ret['S3ObjectLockDays'] = @s3object_lock_days
448
457
  ret['SFTPServer'] = @sftpserver
449
458
  ret['SFTPUsername'] = @sftpusername
@@ -18,6 +18,9 @@ module Comet
18
18
  # @type [String] password
19
19
  attr_accessor :password
20
20
 
21
+ # @type [String] totpcode
22
+ attr_accessor :totpcode
23
+
21
24
  # @type [String] server
22
25
  attr_accessor :server
23
26
 
@@ -34,6 +37,7 @@ module Comet
34
37
  def clear
35
38
  @username = ''
36
39
  @password = ''
40
+ @totpcode = ''
37
41
  @server = ''
38
42
  @unknown_json_fields = {}
39
43
  end
@@ -59,6 +63,10 @@ module Comet
59
63
  raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
60
64
 
61
65
  @password = v
66
+ when 'TOTPCode'
67
+ raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
68
+
69
+ @totpcode = v
62
70
  when 'Server'
63
71
  raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
64
72
 
@@ -76,6 +84,7 @@ module Comet
76
84
  ret = {}
77
85
  ret['Username'] = @username
78
86
  ret['Password'] = @password
87
+ ret['TOTPCode'] = @totpcode
79
88
  ret['Server'] = @server
80
89
  ret['AutoLogin'] = @auto_login
81
90
  @unknown_json_fields.each do |k, v|
@@ -31,6 +31,9 @@ module Comet
31
31
  # @type [String] url
32
32
  attr_accessor :url
33
33
 
34
+ # @type [Comet::PSAGroupedBy] grouped_by
35
+ attr_accessor :grouped_by
36
+
34
37
  # @type [Hash] Hidden storage to preserve future properties for non-destructive roundtrip operations
35
38
  attr_accessor :unknown_json_fields
36
39
 
@@ -43,6 +46,7 @@ module Comet
43
46
  @partner_key = ''
44
47
  @type = 0
45
48
  @url = ''
49
+ @grouped_by = Comet::PSAGroupedBy.new
46
50
  @unknown_json_fields = {}
47
51
  end
48
52
 
@@ -84,6 +88,9 @@ module Comet
84
88
  raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
85
89
 
86
90
  @url = v
91
+ when 'GroupedBy'
92
+ @grouped_by = Comet::PSAGroupedBy.new
93
+ @grouped_by.from_hash(v)
87
94
  else
88
95
  @unknown_json_fields[k] = v
89
96
  end
@@ -102,6 +109,7 @@ module Comet
102
109
  end
103
110
  ret['Type'] = @type
104
111
  ret['URL'] = @url
112
+ ret['GroupedBy'] = @grouped_by
105
113
  @unknown_json_fields.each do |k, v|
106
114
  ret[k] = v
107
115
  end
@@ -0,0 +1,82 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Copyright (c) 2020-2023 Comet Licensing Ltd.
4
+ # Please see the LICENSE file for usage information.
5
+ #
6
+ # SPDX-License-Identifier: MIT
7
+
8
+ require 'json'
9
+
10
+ module Comet
11
+
12
+ # PSAGroupedBy is a typed class wrapper around the underlying Comet Server API data structure.
13
+ class PSAGroupedBy
14
+
15
+ # @type [Boolean] users
16
+ attr_accessor :users
17
+
18
+ # @type [Boolean] tenants
19
+ attr_accessor :tenants
20
+
21
+ # @type [Boolean] account_name
22
+ attr_accessor :account_name
23
+
24
+ # @type [Hash] Hidden storage to preserve future properties for non-destructive roundtrip operations
25
+ attr_accessor :unknown_json_fields
26
+
27
+ def initialize
28
+ clear
29
+ end
30
+
31
+ def clear
32
+ @unknown_json_fields = {}
33
+ end
34
+
35
+ # @param [String] json_string The complete object in JSON format
36
+ def from_json(json_string)
37
+ raise TypeError, "'json_string' expected String, got #{json_string.class}" unless json_string.is_a? String
38
+
39
+ from_hash(JSON.parse(json_string))
40
+ end
41
+
42
+ # @param [Hash] obj The complete object as a Ruby hash
43
+ def from_hash(obj)
44
+ raise TypeError, "'obj' expected Hash, got #{obj.class}" unless obj.is_a? Hash
45
+
46
+ obj.each do |k, v|
47
+ case k
48
+ when 'Users'
49
+ @users = v
50
+ when 'Tenants'
51
+ @tenants = v
52
+ when 'AccountName'
53
+ @account_name = v
54
+ else
55
+ @unknown_json_fields[k] = v
56
+ end
57
+ end
58
+ end
59
+
60
+ # @return [Hash] The complete object as a Ruby hash
61
+ def to_hash
62
+ ret = {}
63
+ ret['Users'] = @users
64
+ ret['Tenants'] = @tenants
65
+ ret['AccountName'] = @account_name
66
+ @unknown_json_fields.each do |k, v|
67
+ ret[k] = v
68
+ end
69
+ ret
70
+ end
71
+
72
+ # @return [Hash] The complete object as a Ruby hash
73
+ def to_h
74
+ to_hash
75
+ end
76
+
77
+ # @return [String] The complete object as a JSON string
78
+ def to_json(options = {})
79
+ to_hash.to_json(options)
80
+ end
81
+ end
82
+ end
@@ -0,0 +1,150 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Copyright (c) 2020-2023 Comet Licensing Ltd.
4
+ # Please see the LICENSE file for usage information.
5
+ #
6
+ # SPDX-License-Identifier: MIT
7
+
8
+ require 'json'
9
+
10
+ module Comet
11
+
12
+ # RegistrationLobbyConnection is a typed class wrapper around the underlying Comet Server API data structure.
13
+ class RegistrationLobbyConnection
14
+
15
+ # @type [String] device_id
16
+ attr_accessor :device_id
17
+
18
+ # @type [String] organization_id
19
+ attr_accessor :organization_id
20
+
21
+ # @type [String] friendly_name
22
+ attr_accessor :friendly_name
23
+
24
+ # @type [String] reported_version
25
+ attr_accessor :reported_version
26
+
27
+ # @type [String] reported_platform
28
+ attr_accessor :reported_platform
29
+
30
+ # @type [Comet::OSInfo] reported_platform_version
31
+ attr_accessor :reported_platform_version
32
+
33
+ # @type [String] device_time_zone
34
+ attr_accessor :device_time_zone
35
+
36
+ # @type [String] ipaddress
37
+ attr_accessor :ipaddress
38
+
39
+ # @type [Number] connection_time
40
+ attr_accessor :connection_time
41
+
42
+ # @type [Hash] Hidden storage to preserve future properties for non-destructive roundtrip operations
43
+ attr_accessor :unknown_json_fields
44
+
45
+ def initialize
46
+ clear
47
+ end
48
+
49
+ def clear
50
+ @device_id = ''
51
+ @organization_id = ''
52
+ @friendly_name = ''
53
+ @reported_version = ''
54
+ @reported_platform = ''
55
+ @reported_platform_version = Comet::OSInfo.new
56
+ @device_time_zone = ''
57
+ @ipaddress = ''
58
+ @connection_time = 0
59
+ @unknown_json_fields = {}
60
+ end
61
+
62
+ # @param [String] json_string The complete object in JSON format
63
+ def from_json(json_string)
64
+ raise TypeError, "'json_string' expected String, got #{json_string.class}" unless json_string.is_a? String
65
+
66
+ from_hash(JSON.parse(json_string))
67
+ end
68
+
69
+ # @param [Hash] obj The complete object as a Ruby hash
70
+ def from_hash(obj)
71
+ raise TypeError, "'obj' expected Hash, got #{obj.class}" unless obj.is_a? Hash
72
+
73
+ obj.each do |k, v|
74
+ case k
75
+ when 'DeviceID'
76
+ raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
77
+
78
+ @device_id = v
79
+ when 'OrganizationID'
80
+ raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
81
+
82
+ @organization_id = v
83
+ when 'FriendlyName'
84
+ raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
85
+
86
+ @friendly_name = v
87
+ when 'ReportedVersion'
88
+ raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
89
+
90
+ @reported_version = v
91
+ when 'ReportedPlatform'
92
+ raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
93
+
94
+ @reported_platform = v
95
+ when 'ReportedPlatformVersion'
96
+ @reported_platform_version = Comet::OSInfo.new
97
+ @reported_platform_version.from_hash(v)
98
+ when 'DeviceTimeZone'
99
+ raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
100
+
101
+ @device_time_zone = v
102
+ when 'IPAddress'
103
+ raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
104
+
105
+ @ipaddress = v
106
+ when 'ConnectionTime'
107
+ raise TypeError, "'v' expected Numeric, got #{v.class}" unless v.is_a? Numeric
108
+
109
+ @connection_time = v
110
+ else
111
+ @unknown_json_fields[k] = v
112
+ end
113
+ end
114
+ end
115
+
116
+ # @return [Hash] The complete object as a Ruby hash
117
+ def to_hash
118
+ ret = {}
119
+ ret['DeviceID'] = @device_id
120
+ ret['OrganizationID'] = @organization_id
121
+ ret['FriendlyName'] = @friendly_name
122
+ ret['ReportedVersion'] = @reported_version
123
+ ret['ReportedPlatform'] = @reported_platform
124
+ unless @reported_platform_version.nil?
125
+ ret['ReportedPlatformVersion'] = @reported_platform_version
126
+ end
127
+ unless @device_time_zone.nil?
128
+ ret['DeviceTimeZone'] = @device_time_zone
129
+ end
130
+ unless @ipaddress.nil?
131
+ ret['IPAddress'] = @ipaddress
132
+ end
133
+ ret['ConnectionTime'] = @connection_time
134
+ @unknown_json_fields.each do |k, v|
135
+ ret[k] = v
136
+ end
137
+ ret
138
+ end
139
+
140
+ # @return [Hash] The complete object as a Ruby hash
141
+ def to_h
142
+ to_hash
143
+ end
144
+
145
+ # @return [String] The complete object as a JSON string
146
+ def to_json(options = {})
147
+ to_hash.to_json(options)
148
+ end
149
+ end
150
+ end
@@ -40,6 +40,9 @@ module Comet
40
40
  # @type [Boolean] s3remove_deleted
41
41
  attr_accessor :s3remove_deleted
42
42
 
43
+ # @type [Number] s3object_lock_mode
44
+ attr_accessor :s3object_lock_mode
45
+
43
46
  # @type [Number] s3object_lock_days
44
47
  attr_accessor :s3object_lock_days
45
48
 
@@ -57,6 +60,7 @@ module Comet
57
60
  @s3bucket_name = ''
58
61
  @s3subdir = ''
59
62
  @s3custom_region = ''
63
+ @s3object_lock_mode = 0
60
64
  @s3object_lock_days = 0
61
65
  @unknown_json_fields = {}
62
66
  end
@@ -104,6 +108,10 @@ module Comet
104
108
  @s3uses_v2signing = v
105
109
  when 'S3RemoveDeleted'
106
110
  @s3remove_deleted = v
111
+ when 'S3ObjectLockMode'
112
+ raise TypeError, "'v' expected Numeric, got #{v.class}" unless v.is_a? Numeric
113
+
114
+ @s3object_lock_mode = v
107
115
  when 'S3ObjectLockDays'
108
116
  raise TypeError, "'v' expected Numeric, got #{v.class}" unless v.is_a? Numeric
109
117
 
@@ -126,6 +134,7 @@ module Comet
126
134
  ret['S3CustomRegion'] = @s3custom_region
127
135
  ret['S3UsesV2Signing'] = @s3uses_v2signing
128
136
  ret['S3RemoveDeleted'] = @s3remove_deleted
137
+ ret['S3ObjectLockMode'] = @s3object_lock_mode
129
138
  ret['S3ObjectLockDays'] = @s3object_lock_days
130
139
  @unknown_json_fields.each do |k, v|
131
140
  ret[k] = v
@@ -27,8 +27,11 @@ module Comet
27
27
  # @type [String] secret_key
28
28
  attr_accessor :secret_key
29
29
 
30
- # @type [Boolean] use_object_lock
31
- attr_accessor :use_object_lock
30
+ # @type [Boolean] use_object_lock__legacy__do_not_use
31
+ attr_accessor :use_object_lock__legacy__do_not_use
32
+
33
+ # @type [Number] object_lock_mode
34
+ attr_accessor :object_lock_mode
32
35
 
33
36
  # @type [Number] object_lock_days
34
37
  attr_accessor :object_lock_days
@@ -49,6 +52,7 @@ module Comet
49
52
  @master_bucket = ''
50
53
  @access_key = ''
51
54
  @secret_key = ''
55
+ @object_lock_mode = 0
52
56
  @object_lock_days = 0
53
57
  @unknown_json_fields = {}
54
58
  end
@@ -87,7 +91,11 @@ module Comet
87
91
 
88
92
  @secret_key = v
89
93
  when 'UseObjectLock'
90
- @use_object_lock = v
94
+ @use_object_lock__legacy__do_not_use = v
95
+ when 'ObjectLockMode'
96
+ raise TypeError, "'v' expected Numeric, got #{v.class}" unless v.is_a? Numeric
97
+
98
+ @object_lock_mode = v
91
99
  when 'ObjectLockDays'
92
100
  raise TypeError, "'v' expected Numeric, got #{v.class}" unless v.is_a? Numeric
93
101
 
@@ -108,7 +116,8 @@ module Comet
108
116
  ret['MasterBucket'] = @master_bucket
109
117
  ret['AccessKey'] = @access_key
110
118
  ret['SecretKey'] = @secret_key
111
- ret['UseObjectLock'] = @use_object_lock
119
+ ret['UseObjectLock'] = @use_object_lock__legacy__do_not_use
120
+ ret['ObjectLockMode'] = @object_lock_mode
112
121
  ret['ObjectLockDays'] = @object_lock_days
113
122
  ret['RemoveDeleted'] = @remove_deleted
114
123
  @unknown_json_fields.each do |k, v|
@@ -21,8 +21,11 @@ module Comet
21
21
  # @type [String] secret_key
22
22
  attr_accessor :secret_key
23
23
 
24
- # @type [Boolean] use_object_lock
25
- attr_accessor :use_object_lock
24
+ # @type [Boolean] use_object_lock__legacy__do_not_use
25
+ attr_accessor :use_object_lock__legacy__do_not_use
26
+
27
+ # @type [Number] object_lock_mode
28
+ attr_accessor :object_lock_mode
26
29
 
27
30
  # @type [Number] object_lock_days
28
31
  attr_accessor :object_lock_days
@@ -41,6 +44,7 @@ module Comet
41
44
  @master_bucket = ''
42
45
  @access_key = ''
43
46
  @secret_key = ''
47
+ @object_lock_mode = 0
44
48
  @object_lock_days = 0
45
49
  @unknown_json_fields = {}
46
50
  end
@@ -71,7 +75,11 @@ module Comet
71
75
 
72
76
  @secret_key = v
73
77
  when 'UseObjectLock'
74
- @use_object_lock = v
78
+ @use_object_lock__legacy__do_not_use = v
79
+ when 'ObjectLockMode'
80
+ raise TypeError, "'v' expected Numeric, got #{v.class}" unless v.is_a? Numeric
81
+
82
+ @object_lock_mode = v
75
83
  when 'ObjectLockDays'
76
84
  raise TypeError, "'v' expected Numeric, got #{v.class}" unless v.is_a? Numeric
77
85
 
@@ -90,7 +98,8 @@ module Comet
90
98
  ret['MasterBucket'] = @master_bucket
91
99
  ret['AccessKey'] = @access_key
92
100
  ret['SecretKey'] = @secret_key
93
- ret['UseObjectLock'] = @use_object_lock
101
+ ret['UseObjectLock'] = @use_object_lock__legacy__do_not_use
102
+ ret['ObjectLockMode'] = @object_lock_mode
94
103
  ret['ObjectLockDays'] = @object_lock_days
95
104
  ret['RemoveDeleted'] = @remove_deleted
96
105
  @unknown_json_fields.each do |k, v|
@@ -116,11 +116,13 @@ require_relative 'comet/models/partition'
116
116
  require_relative 'comet/models/private_branding_properties'
117
117
  require_relative 'comet/models/protected_item_engine_type_policy'
118
118
  require_relative 'comet/models/psaconfig'
119
+ require_relative 'comet/models/psagrouped_by'
119
120
  require_relative 'comet/models/public_branding_properties'
120
121
  require_relative 'comet/models/ratelimit_options'
121
122
  require_relative 'comet/models/ratelimit_rule'
122
123
  require_relative 'comet/models/register_office_application_begin_response'
123
124
  require_relative 'comet/models/register_office_application_check_response'
125
+ require_relative 'comet/models/registration_lobby_connection'
124
126
  require_relative 'comet/models/remote_server_address'
125
127
  require_relative 'comet/models/remote_storage_option'
126
128
  require_relative 'comet/models/replica_server'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: comet_backup_ruby_sdk
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.12.0
4
+ version: 2.14.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Comet Licensing Ltd.
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-08-09 00:00:00.000000000 Z
11
+ date: 2023-09-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -194,11 +194,13 @@ files:
194
194
  - lib/comet/models/private_branding_properties.rb
195
195
  - lib/comet/models/protected_item_engine_type_policy.rb
196
196
  - lib/comet/models/psaconfig.rb
197
+ - lib/comet/models/psagrouped_by.rb
197
198
  - lib/comet/models/public_branding_properties.rb
198
199
  - lib/comet/models/ratelimit_options.rb
199
200
  - lib/comet/models/ratelimit_rule.rb
200
201
  - lib/comet/models/register_office_application_begin_response.rb
201
202
  - lib/comet/models/register_office_application_check_response.rb
203
+ - lib/comet/models/registration_lobby_connection.rb
202
204
  - lib/comet/models/remote_server_address.rb
203
205
  - lib/comet/models/remote_storage_option.rb
204
206
  - lib/comet/models/replica_server.rb