comet_backup_ruby_sdk 2.35.0 → 2.37.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: 5515ec0d67e0e3f5933187f1b9abd01390de257f15acebbac6b02f1f6b323eda
4
- data.tar.gz: f73f2bbcbcdacbf88dbc5f22d09eec1e15305dd88cdafeedbed3cba80394da1b
3
+ metadata.gz: 1c01a7f3572cedb42436655e3c78edad5a23839bf1a761e7f05cb498d0af549b
4
+ data.tar.gz: c878557323cd9c3c7af6079b1c926af9f50612bbdc3d3d1993db474c7b0325be
5
5
  SHA512:
6
- metadata.gz: 64170e8dc7026e1ab4f50e3fa2f435d222e2502223d690ae57357b647b3c91c0ab7f3d7324c4de198423930e8d7379709fd9ceb905663374633e48ca4b54a242
7
- data.tar.gz: dddc00508aae6f6543337f6157b586a6086173e5fe690823462625256b332e73fc084eb74a93002ecebb927df9b526efbad91701978cc5b5eb6a28b495e7d625
6
+ metadata.gz: ea48fbee3a53dde34f0093288a1ad9d0fef767baef9bf40b8133d26a2c4e738529e7276da17acb1c66c27ac997a292f97ecb717d2e37626dd18d5d1afb2883b3
7
+ data.tar.gz: 9d2527444570ecaf3b04c1b289def0d50f687930c77166cfed0df8e2b2e935a671529cfdbd10173aeea5496821dfd8c442f034c2c55a33e43b0fc936f053f182
data/CHANGELOG.md CHANGED
@@ -1,5 +1,22 @@
1
1
  # CHANGELOG
2
2
 
3
+ ## 2024-10-29 v2.37.0
4
+
5
+ - Based on Comet 24.9.6
6
+ - New API AdminDispatcherTestSmbAuth to instruct a device to test Windows SMB credentials
7
+ - New RESTORETYPE_WINDISK_VHDX to restore Disk Image backup as Hyper-V VHDX format
8
+ - BackupJobDetail supports ConflictingJobID field to indicate conflicting job if a lock error occurred
9
+ - BackupJobProgress can report the total number of items for progress visualization
10
+ - DiskDrive adds information about parent disks on Linux
11
+
12
+ ## 2024-09-17 v2.36.0
13
+
14
+ - Based on Comet 24.9.1
15
+ - Added Hyper-V Guest limits per user
16
+ - Added VMware Guest limits per user
17
+ - Added protected item type (engine) to protected item class
18
+ - Added Force Overwrite Restore permissions
19
+
3
20
  ## 2024-08-01 v2.35.0
4
21
 
5
22
  - Based on Comet 24.6.6
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- comet_backup_ruby_sdk (2.35.0)
4
+ comet_backup_ruby_sdk (2.37.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.35.0'
15
+ spec.version = '2.37.0'
16
16
  spec.authors = ['Comet Licensing Ltd.']
17
17
  spec.email = ['hello@cometbackup.com']
18
18
 
@@ -2169,6 +2169,33 @@ module Comet
2169
2169
  ret
2170
2170
  end
2171
2171
 
2172
+ # AdminDispatcherTestSmbAuth
2173
+ #
2174
+ # Test a set of Windows SMB credentials.
2175
+ #
2176
+ # You must supply administrator authentication credentials to use this API.
2177
+ # This API requires the Auth Role to be enabled.
2178
+ #
2179
+ # @param [String] target_id The live connection GUID
2180
+ # @param [Comet::WinSMBAuth] wsa The target credentials to test
2181
+ # @return [Comet::CometAPIResponseMessage]
2182
+ def admin_dispatcher_test_smb_auth(target_id, wsa)
2183
+ submit_params = {}
2184
+ raise TypeError, "'target_id' expected String, got #{target_id.class}" unless target_id.is_a? String
2185
+
2186
+ submit_params['TargetID'] = target_id
2187
+ raise TypeError, "'wsa' expected Comet::WinSMBAuth, got #{wsa.class}" unless wsa.is_a? Comet::WinSMBAuth
2188
+
2189
+ submit_params['Wsa'] = wsa.to_json
2190
+
2191
+ body = perform_request('api/v1/admin/dispatcher/test-smb-auth', submit_params)
2192
+ json_body = JSON.parse body
2193
+ check_status json_body
2194
+ ret = Comet::CometAPIResponseMessage.new
2195
+ ret.from_hash(json_body)
2196
+ ret
2197
+ end
2198
+
2172
2199
  # AdminDispatcherUninstallSoftware
2173
2200
  #
2174
2201
  # Instruct a live connected device to self-uninstall the software.
@@ -7,11 +7,11 @@
7
7
 
8
8
  module Comet
9
9
 
10
- APPLICATION_VERSION = '24.6.6'
10
+ APPLICATION_VERSION = '24.9.6'
11
11
 
12
12
  APPLICATION_VERSION_MAJOR = 24
13
13
 
14
- APPLICATION_VERSION_MINOR = 6
14
+ APPLICATION_VERSION_MINOR = 9
15
15
 
16
16
  APPLICATION_VERSION_REVISION = 6
17
17
 
@@ -585,6 +585,9 @@ New code should explicitly use OBJECT_LOCK_ON / OBJECT_LOCK_OFF instead.
585
585
  # RestoreType: Restore disk image backup as VMware-compatible virtual disks
586
586
  RESTORETYPE_WINDISK_ESXI = 12
587
587
 
588
+ # RestoreType: Restore disk image backup as Hyper-V-compatible virtual disks (.vhdx format)
589
+ RESTORETYPE_WINDISK_VHDX = 13
590
+
588
591
  # RestoreType: Legacy name alias - Prefer to use RESTORETYPE_PROCESS_ARCHIVE since multiple archive file formats are supported within this single RESTORETYPE_
589
592
  RESTORETYPE_PROCESS_TARBALL = 3
590
593
 
@@ -99,6 +99,12 @@ module Comet
99
99
  # @type [Number] total_unlicensed_mails_count
100
100
  attr_accessor :total_unlicensed_mails_count
101
101
 
102
+ # If this field is present, this job did not perform some work because the Storage Vault is
103
+ # currently busy.
104
+ # This field is available in Comet 24.9.2 and later.
105
+ # @type [String] conflicting_job_id
106
+ attr_accessor :conflicting_job_id
107
+
102
108
  # If this field is present, it is possible to request cancellation of this job via the API.
103
109
  # @type [String] cancellation_id
104
110
  attr_accessor :cancellation_id
@@ -149,6 +155,7 @@ module Comet
149
155
  @total_accounts_count = 0
150
156
  @total_licensed_mails_count = 0
151
157
  @total_unlicensed_mails_count = 0
158
+ @conflicting_job_id = ''
152
159
  @cancellation_id = ''
153
160
  @progress = Comet::BackupJobProgress.new
154
161
  @destination_size_start = Comet::SizeMeasurement.new
@@ -269,6 +276,10 @@ module Comet
269
276
  raise TypeError, "'v' expected Numeric, got #{v.class}" unless v.is_a? Numeric
270
277
 
271
278
  @total_unlicensed_mails_count = v
279
+ when 'ConflictingJobID'
280
+ raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
281
+
282
+ @conflicting_job_id = v
272
283
  when 'CancellationID'
273
284
  raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
274
285
 
@@ -332,6 +343,9 @@ module Comet
332
343
  unless @total_unlicensed_mails_count.nil?
333
344
  ret['TotalUnlicensedMailsCount'] = @total_unlicensed_mails_count
334
345
  end
346
+ unless @conflicting_job_id.nil?
347
+ ret['ConflictingJobID'] = @conflicting_job_id
348
+ end
335
349
  unless @cancellation_id.nil?
336
350
  ret['CancellationID'] = @cancellation_id
337
351
  end
@@ -31,6 +31,9 @@ module Comet
31
31
  # @type [Number] items_done
32
32
  attr_accessor :items_done
33
33
 
34
+ # @type [Number] items_total
35
+ attr_accessor :items_total
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
 
@@ -44,6 +47,7 @@ module Comet
44
47
  @recieved_time = 0
45
48
  @bytes_done = 0
46
49
  @items_done = 0
50
+ @items_total = 0
47
51
  @unknown_json_fields = {}
48
52
  end
49
53
 
@@ -80,6 +84,10 @@ module Comet
80
84
  raise TypeError, "'v' expected Numeric, got #{v.class}" unless v.is_a? Numeric
81
85
 
82
86
  @items_done = v
87
+ when 'ItemsTotal'
88
+ raise TypeError, "'v' expected Numeric, got #{v.class}" unless v.is_a? Numeric
89
+
90
+ @items_total = v
83
91
  else
84
92
  @unknown_json_fields[k] = v
85
93
  end
@@ -94,6 +102,7 @@ module Comet
94
102
  ret['RecievedTime'] = @recieved_time
95
103
  ret['BytesDone'] = @bytes_done
96
104
  ret['ItemsDone'] = @items_done
105
+ ret['ItemsTotal'] = @items_total
97
106
  @unknown_json_fields.each do |k, v|
98
107
  ret[k] = v
99
108
  end
@@ -27,22 +27,33 @@ module Comet
27
27
  # @type [String] serial_number
28
28
  attr_accessor :serial_number
29
29
 
30
+ # Bytes
30
31
  # @type [Number] size
31
32
  attr_accessor :size
32
33
 
33
34
  # @type [Array<Comet::Partition>] partitions
34
35
  attr_accessor :partitions
35
36
 
37
+ # For physical disks, this array will be empty. For virtual disks, RAID devices or Linux DM devices,
38
+ # this array may contain the DeviceName of the parent device.
39
+ # This field is available in Comet 24.6.x and later.
40
+ # @type [Array<String>] device_parents
41
+ attr_accessor :device_parents
42
+
43
+ # See WINDISKFLAG_ constants
36
44
  # @type [Number] flags
37
45
  attr_accessor :flags
38
46
 
39
47
  # @type [Number] cylinders
48
+ # @deprecated This member has been deprecated since Comet version 24.6.x This value is reported from the disk driver if available. Otherwise emulates a value based on modern LBA addressing. The field value is not used.
40
49
  attr_accessor :cylinders
41
50
 
42
51
  # @type [Number] heads
52
+ # @deprecated This member has been deprecated since Comet version 24.6.x This value is reported from the disk driver if available. Otherwise emulates a value based on modern LBA addressing. The field value is not used.
43
53
  attr_accessor :heads
44
54
 
45
55
  # @type [Number] sectors
56
+ # @deprecated This member has been deprecated since Comet version 24.6.x This value is reported from the disk driver if available. Otherwise emulates a value based on modern LBA addressing. The field value is not used.
46
57
  attr_accessor :sectors
47
58
 
48
59
  # @type [Number] sector_size
@@ -63,6 +74,7 @@ module Comet
63
74
  @serial_number = ''
64
75
  @size = 0
65
76
  @partitions = []
77
+ @device_parents = []
66
78
  @flags = 0
67
79
  @cylinders = 0
68
80
  @heads = 0
@@ -118,6 +130,17 @@ module Comet
118
130
  @partitions[i1].from_hash(v1)
119
131
  end
120
132
  end
133
+ when 'DeviceParents'
134
+ if v.nil?
135
+ @device_parents = []
136
+ else
137
+ @device_parents = Array.new(v.length)
138
+ v.each_with_index do |v1, i1|
139
+ raise TypeError, "'v1' expected String, got #{v1.class}" unless v1.is_a? String
140
+
141
+ @device_parents[i1] = v1
142
+ end
143
+ end
121
144
  when 'Flags'
122
145
  raise TypeError, "'v' expected Numeric, got #{v.class}" unless v.is_a? Numeric
123
146
 
@@ -154,6 +177,7 @@ module Comet
154
177
  ret['SerialNumber'] = @serial_number
155
178
  ret['Size'] = @size
156
179
  ret['Partitions'] = @partitions
180
+ ret['DeviceParents'] = @device_parents
157
181
  ret['Flags'] = @flags
158
182
  ret['Cylinders'] = @cylinders
159
183
  ret['Heads'] = @heads
@@ -28,6 +28,11 @@ module Comet
28
28
  # @type [Boolean] overwrite_if_different_content
29
29
  attr_accessor :overwrite_if_different_content
30
30
 
31
+ # For RESTORETYPE_FILE. If set, OverwriteExistingFiles must be true. This can be set in combination
32
+ # with other OverwriteIf options.
33
+ # @type [Boolean] overwrite_force_permissions
34
+ attr_accessor :overwrite_force_permissions
35
+
31
36
  # For RESTORETYPE_FILE. If set, DestPath must be blank
32
37
  # @type [Boolean] dest_is_original_location
33
38
  attr_accessor :dest_is_original_location
@@ -149,6 +154,8 @@ module Comet
149
154
  @overwrite_if_newer = v
150
155
  when 'OverwriteIfDifferentContent'
151
156
  @overwrite_if_different_content = v
157
+ when 'OverwriteForcePermissions'
158
+ @overwrite_force_permissions = v
152
159
  when 'DestIsOriginalLocation'
153
160
  @dest_is_original_location = v
154
161
  when 'DestPath'
@@ -225,6 +232,7 @@ module Comet
225
232
  ret['OverwriteExistingFiles'] = @overwrite_existing_files
226
233
  ret['OverwriteIfNewer'] = @overwrite_if_newer
227
234
  ret['OverwriteIfDifferentContent'] = @overwrite_if_different_content
235
+ ret['OverwriteForcePermissions'] = @overwrite_force_permissions
228
236
  ret['DestIsOriginalLocation'] = @dest_is_original_location
229
237
  ret['DestPath'] = @dest_path
230
238
  ret['ExactDestPaths'] = @exact_dest_paths
@@ -14,12 +14,18 @@ module Comet
14
14
  # Protected Items, in order to safely perform retention passes on their behalf.
15
15
  class SourceBasicInfo
16
16
 
17
+ # @type [String] engine
18
+ attr_accessor :engine
19
+
17
20
  # @type [String] description
18
21
  attr_accessor :description
19
22
 
20
23
  # @type [Number] o365account_count
21
24
  attr_accessor :o365account_count
22
25
 
26
+ # @type [Number] total_vm_count
27
+ attr_accessor :total_vm_count
28
+
23
29
  # Bytes
24
30
  # @type [Number] size
25
31
  attr_accessor :size
@@ -35,8 +41,10 @@ module Comet
35
41
  end
36
42
 
37
43
  def clear
44
+ @engine = ''
38
45
  @description = ''
39
46
  @o365account_count = 0
47
+ @total_vm_count = 0
40
48
  @size = 0
41
49
  @override_destination_retention = {}
42
50
  @unknown_json_fields = {}
@@ -55,6 +63,10 @@ module Comet
55
63
 
56
64
  obj.each do |k, v|
57
65
  case k
66
+ when 'Engine'
67
+ raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
68
+
69
+ @engine = v
58
70
  when 'Description'
59
71
  raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
60
72
 
@@ -63,6 +75,10 @@ module Comet
63
75
  raise TypeError, "'v' expected Numeric, got #{v.class}" unless v.is_a? Numeric
64
76
 
65
77
  @o365account_count = v
78
+ when 'TotalVmCount'
79
+ raise TypeError, "'v' expected Numeric, got #{v.class}" unless v.is_a? Numeric
80
+
81
+ @total_vm_count = v
66
82
  when 'Size'
67
83
  raise TypeError, "'v' expected Numeric, got #{v.class}" unless v.is_a? Numeric
68
84
 
@@ -86,8 +102,10 @@ module Comet
86
102
  # @return [Hash] The complete object as a Ruby hash
87
103
  def to_hash
88
104
  ret = {}
105
+ ret['Engine'] = @engine
89
106
  ret['Description'] = @description
90
107
  ret['O365AccountCount'] = @o365account_count
108
+ ret['TotalVmCount'] = @total_vm_count
91
109
  ret['Size'] = @size
92
110
  unless @override_destination_retention.nil?
93
111
  ret['OverrideDestinationRetention'] = @override_destination_retention
@@ -101,6 +101,16 @@ module Comet
101
101
  # @type [Number] quota_office_365protected_accounts
102
102
  attr_accessor :quota_office_365protected_accounts
103
103
 
104
+ # A limit on the total number of Hyper-V guests across all Hyper-V Protected Items in this account.
105
+ # Set to zero to allow unlimited Office 365 Protected Accounts.
106
+ # @type [Number] quota_hyper_vguests
107
+ attr_accessor :quota_hyper_vguests
108
+
109
+ # A limit on the total number of VMware guests across all VMware Protected Items in this account.
110
+ # Set to zero to allow unlimited Office 365 Protected Accounts.
111
+ # @type [Number] quota_vmware_guests
112
+ attr_accessor :quota_vmware_guests
113
+
104
114
  # If the PolicyID field is set to a non-empty string, the Comet Server will enforce the contents of
105
115
  # the Policy field based on the matching server's policy. Otherwise if the PolicyID field is set to
106
116
  # an empty string, the administrator may configure any custom values in the Policy field.
@@ -182,6 +192,8 @@ module Comet
182
192
  @all_protected_items_quota_bytes = 0
183
193
  @maximum_devices = 0
184
194
  @quota_office_365protected_accounts = 0
195
+ @quota_hyper_vguests = 0
196
+ @quota_vmware_guests = 0
185
197
  @policy_id = ''
186
198
  @policy = Comet::UserPolicy.new
187
199
  @password_format = 0
@@ -311,6 +323,14 @@ module Comet
311
323
  raise TypeError, "'v' expected Numeric, got #{v.class}" unless v.is_a? Numeric
312
324
 
313
325
  @quota_office_365protected_accounts = v
326
+ when 'QuotaHyperVGuests'
327
+ raise TypeError, "'v' expected Numeric, got #{v.class}" unless v.is_a? Numeric
328
+
329
+ @quota_hyper_vguests = v
330
+ when 'QuotaVMwareGuests'
331
+ raise TypeError, "'v' expected Numeric, got #{v.class}" unless v.is_a? Numeric
332
+
333
+ @quota_vmware_guests = v
314
334
  when 'PolicyID'
315
335
  raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
316
336
 
@@ -386,6 +406,8 @@ module Comet
386
406
  ret['AllProtectedItemsQuotaBytes'] = @all_protected_items_quota_bytes
387
407
  ret['MaximumDevices'] = @maximum_devices
388
408
  ret['QuotaOffice365ProtectedAccounts'] = @quota_office_365protected_accounts
409
+ ret['QuotaHyperVGuests'] = @quota_hyper_vguests
410
+ ret['QuotaVMwareGuests'] = @quota_vmware_guests
389
411
  ret['PolicyID'] = @policy_id
390
412
  ret['Policy'] = @policy
391
413
  ret['PasswordFormat'] = @password_format
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.35.0
4
+ version: 2.37.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: 2024-08-01 00:00:00.000000000 Z
11
+ date: 2024-10-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler