comet_backup_ruby_sdk 2.41.0 → 2.43.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 (46) 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 +253 -12
  6. data/lib/comet/definitions.rb +51 -7
  7. data/lib/comet/models/backup_job_advanced_options.rb +10 -0
  8. data/lib/comet/models/backup_job_detail.rb +12 -0
  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/browse_proxmox_nodes_response.rb +99 -0
  13. data/lib/comet/models/browse_proxmox_response.rb +98 -0
  14. data/lib/comet/models/browse_proxmox_storage_response.rb +98 -0
  15. data/lib/comet/models/dispatch_with_job_idresponse.rb +94 -0
  16. data/lib/comet/models/external_authentication_source.rb +3 -3
  17. data/lib/comet/models/office_365custom_setting_v2.rb +16 -5
  18. data/lib/comet/models/partition.rb +20 -0
  19. data/lib/comet/models/private_branding_properties.rb +30 -0
  20. data/lib/comet/models/protected_item_with_backup_rules_response.rb +119 -0
  21. data/lib/comet/models/proxmox_connection.rb +72 -0
  22. data/lib/comet/models/proxmox_restore_target_options.rb +92 -0
  23. data/lib/comet/models/pvebackup_disk.rb +92 -0
  24. data/lib/comet/models/pvebackup_node.rb +105 -0
  25. data/lib/comet/models/pvebackup_vm.rb +128 -0
  26. data/lib/comet/models/pvedisk.rb +138 -0
  27. data/lib/comet/models/pveparams.rb +140 -0
  28. data/lib/comet/models/pvestorage_name.rb +83 -0
  29. data/lib/comet/models/pvevm.rb +150 -0
  30. data/lib/comet/models/registration_lobby_connection.rb +11 -0
  31. data/lib/comet/models/remote_server_address.rb +3 -3
  32. data/lib/comet/models/remote_storage_option.rb +3 -3
  33. data/lib/comet/models/replica_server.rb +3 -3
  34. data/lib/comet/models/request_storage_vault_response_message.rb +17 -0
  35. data/lib/comet/models/restore_job_advanced_options.rb +11 -0
  36. data/lib/comet/models/retention_range.rb +18 -0
  37. data/lib/comet/models/schedule_config.rb +18 -0
  38. data/lib/comet/models/self_backup_export_options.rb +2 -2
  39. data/lib/comet/models/self_backup_target.rb +2 -2
  40. data/lib/comet/models/source_config.rb +7 -0
  41. data/lib/comet/models/user_policy.rb +11 -0
  42. data/lib/comet/models/user_profile_config.rb +8 -0
  43. data/lib/comet/models/vault_snapshot.rb +19 -0
  44. data/lib/comet/models/windows_code_sign_properties.rb +30 -0
  45. data/lib/comet_backup_ruby_sdk.rb +14 -1
  46. metadata +16 -2
@@ -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|
@@ -149,6 +149,18 @@ module Comet
149
149
  # @type [String] windows_code_sign_azure_tenant_id
150
150
  attr_accessor :windows_code_sign_azure_tenant_id
151
151
 
152
+ # URL of the SAS Relic server, with protocol (https://) and trailing slash
153
+ # @type [String] windows_code_sign_relic_server_url
154
+ attr_accessor :windows_code_sign_relic_server_url
155
+
156
+ # The SAS Relic client keypair in PEM format
157
+ # @type [String] windows_code_sign_relic_keypair_file
158
+ attr_accessor :windows_code_sign_relic_keypair_file
159
+
160
+ # The name of the key to select on the remote SAS Relic server
161
+ # @type [String] windows_code_sign_relic_key_name
162
+ attr_accessor :windows_code_sign_relic_key_name
163
+
152
164
  # @type [Comet::MacOSCodeSignProperties] mac_oscode_sign
153
165
  attr_accessor :mac_oscode_sign
154
166
 
@@ -198,6 +210,9 @@ module Comet
198
210
  @windows_code_sign_azure_app_secret_format = 0
199
211
  @windows_code_sign_azure_app_secret = ''
200
212
  @windows_code_sign_azure_tenant_id = ''
213
+ @windows_code_sign_relic_server_url = ''
214
+ @windows_code_sign_relic_keypair_file = ''
215
+ @windows_code_sign_relic_key_name = ''
201
216
  @mac_oscode_sign = Comet::MacOSCodeSignProperties.new
202
217
  @unknown_json_fields = {}
203
218
  end
@@ -377,6 +392,18 @@ module Comet
377
392
  raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
378
393
 
379
394
  @windows_code_sign_azure_tenant_id = v
395
+ when 'WindowsCodeSignRelicServerURL'
396
+ raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
397
+
398
+ @windows_code_sign_relic_server_url = v
399
+ when 'WindowsCodeSignRelicKeypairFile'
400
+ raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
401
+
402
+ @windows_code_sign_relic_keypair_file = v
403
+ when 'WindowsCodeSignRelicKeyName'
404
+ raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
405
+
406
+ @windows_code_sign_relic_key_name = v
380
407
  when 'MacOSCodeSign'
381
408
  @mac_oscode_sign = Comet::MacOSCodeSignProperties.new
382
409
  @mac_oscode_sign.from_hash(v)
@@ -432,6 +459,9 @@ module Comet
432
459
  ret['WindowsCodeSignAzureAppSecretFormat'] = @windows_code_sign_azure_app_secret_format
433
460
  ret['WindowsCodeSignAzureAppSecret'] = @windows_code_sign_azure_app_secret
434
461
  ret['WindowsCodeSignAzureTenantID'] = @windows_code_sign_azure_tenant_id
462
+ ret['WindowsCodeSignRelicServerURL'] = @windows_code_sign_relic_server_url
463
+ ret['WindowsCodeSignRelicKeypairFile'] = @windows_code_sign_relic_keypair_file
464
+ ret['WindowsCodeSignRelicKeyName'] = @windows_code_sign_relic_key_name
435
465
  ret['MacOSCodeSign'] = @mac_oscode_sign
436
466
  @unknown_json_fields.each do |k, v|
437
467
  ret[k] = v
@@ -126,6 +126,18 @@ module Comet
126
126
  # @type [String] windows_code_sign_azure_tenant_id
127
127
  attr_accessor :windows_code_sign_azure_tenant_id
128
128
 
129
+ # URL of the SAS Relic server, with protocol (https://) and trailing slash
130
+ # @type [String] windows_code_sign_relic_server_url
131
+ attr_accessor :windows_code_sign_relic_server_url
132
+
133
+ # The SAS Relic client keypair in PEM format
134
+ # @type [String] windows_code_sign_relic_keypair_file
135
+ attr_accessor :windows_code_sign_relic_keypair_file
136
+
137
+ # The name of the key to select on the remote SAS Relic server
138
+ # @type [String] windows_code_sign_relic_key_name
139
+ attr_accessor :windows_code_sign_relic_key_name
140
+
129
141
  # @type [Comet::MacOSCodeSignProperties] mac_oscode_sign
130
142
  attr_accessor :mac_oscode_sign
131
143
 
@@ -169,6 +181,9 @@ module Comet
169
181
  @windows_code_sign_azure_app_secret_format = 0
170
182
  @windows_code_sign_azure_app_secret = ''
171
183
  @windows_code_sign_azure_tenant_id = ''
184
+ @windows_code_sign_relic_server_url = ''
185
+ @windows_code_sign_relic_keypair_file = ''
186
+ @windows_code_sign_relic_key_name = ''
172
187
  @mac_oscode_sign = Comet::MacOSCodeSignProperties.new
173
188
  @unknown_json_fields = {}
174
189
  end
@@ -322,6 +337,18 @@ module Comet
322
337
  raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
323
338
 
324
339
  @windows_code_sign_azure_tenant_id = v
340
+ when 'WindowsCodeSignRelicServerURL'
341
+ raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
342
+
343
+ @windows_code_sign_relic_server_url = v
344
+ when 'WindowsCodeSignRelicKeypairFile'
345
+ raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
346
+
347
+ @windows_code_sign_relic_keypair_file = v
348
+ when 'WindowsCodeSignRelicKeyName'
349
+ raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
350
+
351
+ @windows_code_sign_relic_key_name = v
325
352
  when 'MacOSCodeSign'
326
353
  @mac_oscode_sign = Comet::MacOSCodeSignProperties.new
327
354
  @mac_oscode_sign.from_hash(v)
@@ -370,6 +397,9 @@ module Comet
370
397
  ret['WindowsCodeSignAzureAppSecretFormat'] = @windows_code_sign_azure_app_secret_format
371
398
  ret['WindowsCodeSignAzureAppSecret'] = @windows_code_sign_azure_app_secret
372
399
  ret['WindowsCodeSignAzureTenantID'] = @windows_code_sign_azure_tenant_id
400
+ ret['WindowsCodeSignRelicServerURL'] = @windows_code_sign_relic_server_url
401
+ ret['WindowsCodeSignRelicKeypairFile'] = @windows_code_sign_relic_keypair_file
402
+ ret['WindowsCodeSignRelicKeyName'] = @windows_code_sign_relic_key_name
373
403
  ret['MacOSCodeSign'] = @mac_oscode_sign
374
404
  @unknown_json_fields.each do |k, v|
375
405
  ret[k] = v
@@ -0,0 +1,99 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Copyright (c) 2020-2025 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
+ # BrowseProxmoxNodesResponse is a typed class wrapper around the underlying Comet Server API data structure.
13
+ class BrowseProxmoxNodesResponse
14
+
15
+ # If the operation was successful, the status will be in the 200-299 range.
16
+ # @type [Number] status
17
+ attr_accessor :status
18
+
19
+ # @type [String] message
20
+ attr_accessor :message
21
+
22
+ # @type [Array<String>] nodes
23
+ attr_accessor :nodes
24
+
25
+ # @type [Hash] Hidden storage to preserve future properties for non-destructive roundtrip operations
26
+ attr_accessor :unknown_json_fields
27
+
28
+ def initialize
29
+ clear
30
+ end
31
+
32
+ def clear
33
+ @status = 0
34
+ @message = ''
35
+ @nodes = []
36
+ @unknown_json_fields = {}
37
+ end
38
+
39
+ # @param [String] json_string The complete object in JSON format
40
+ def from_json(json_string)
41
+ raise TypeError, "'json_string' expected String, got #{json_string.class}" unless json_string.is_a? String
42
+
43
+ from_hash(JSON.parse(json_string))
44
+ end
45
+
46
+ # @param [Hash] obj The complete object as a Ruby hash
47
+ def from_hash(obj)
48
+ raise TypeError, "'obj' expected Hash, got #{obj.class}" unless obj.is_a? Hash
49
+
50
+ obj.each do |k, v|
51
+ case k
52
+ when 'Status'
53
+ raise TypeError, "'v' expected Numeric, got #{v.class}" unless v.is_a? Numeric
54
+
55
+ @status = v
56
+ when 'Message'
57
+ raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
58
+
59
+ @message = v
60
+ when 'Nodes'
61
+ if v.nil?
62
+ @nodes = []
63
+ else
64
+ @nodes = Array.new(v.length)
65
+ v.each_with_index do |v1, i1|
66
+ raise TypeError, "'v1' expected String, got #{v1.class}" unless v1.is_a? String
67
+
68
+ @nodes[i1] = v1
69
+ end
70
+ end
71
+ else
72
+ @unknown_json_fields[k] = v
73
+ end
74
+ end
75
+ end
76
+
77
+ # @return [Hash] The complete object as a Ruby hash
78
+ def to_hash
79
+ ret = {}
80
+ ret['Status'] = @status
81
+ ret['Message'] = @message
82
+ ret['Nodes'] = @nodes
83
+ @unknown_json_fields.each do |k, v|
84
+ ret[k] = v
85
+ end
86
+ ret
87
+ end
88
+
89
+ # @return [Hash] The complete object as a Ruby hash
90
+ def to_h
91
+ to_hash
92
+ end
93
+
94
+ # @return [String] The complete object as a JSON string
95
+ def to_json(options = {})
96
+ to_hash.to_json(options)
97
+ end
98
+ end
99
+ end
@@ -0,0 +1,98 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Copyright (c) 2020-2025 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
+ # BrowseProxmoxResponse is a typed class wrapper around the underlying Comet Server API data structure.
13
+ class BrowseProxmoxResponse
14
+
15
+ # If the operation was successful, the status will be in the 200-299 range.
16
+ # @type [Number] status
17
+ attr_accessor :status
18
+
19
+ # @type [String] message
20
+ attr_accessor :message
21
+
22
+ # @type [Array<Comet::PVEVM>] vms
23
+ attr_accessor :vms
24
+
25
+ # @type [Hash] Hidden storage to preserve future properties for non-destructive roundtrip operations
26
+ attr_accessor :unknown_json_fields
27
+
28
+ def initialize
29
+ clear
30
+ end
31
+
32
+ def clear
33
+ @status = 0
34
+ @message = ''
35
+ @vms = []
36
+ @unknown_json_fields = {}
37
+ end
38
+
39
+ # @param [String] json_string The complete object in JSON format
40
+ def from_json(json_string)
41
+ raise TypeError, "'json_string' expected String, got #{json_string.class}" unless json_string.is_a? String
42
+
43
+ from_hash(JSON.parse(json_string))
44
+ end
45
+
46
+ # @param [Hash] obj The complete object as a Ruby hash
47
+ def from_hash(obj)
48
+ raise TypeError, "'obj' expected Hash, got #{obj.class}" unless obj.is_a? Hash
49
+
50
+ obj.each do |k, v|
51
+ case k
52
+ when 'Status'
53
+ raise TypeError, "'v' expected Numeric, got #{v.class}" unless v.is_a? Numeric
54
+
55
+ @status = v
56
+ when 'Message'
57
+ raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
58
+
59
+ @message = v
60
+ when 'VMs'
61
+ if v.nil?
62
+ @vms = []
63
+ else
64
+ @vms = Array.new(v.length)
65
+ v.each_with_index do |v1, i1|
66
+ @vms[i1] = Comet::PVEVM.new
67
+ @vms[i1].from_hash(v1)
68
+ end
69
+ end
70
+ else
71
+ @unknown_json_fields[k] = v
72
+ end
73
+ end
74
+ end
75
+
76
+ # @return [Hash] The complete object as a Ruby hash
77
+ def to_hash
78
+ ret = {}
79
+ ret['Status'] = @status
80
+ ret['Message'] = @message
81
+ ret['VMs'] = @vms
82
+ @unknown_json_fields.each do |k, v|
83
+ ret[k] = v
84
+ end
85
+ ret
86
+ end
87
+
88
+ # @return [Hash] The complete object as a Ruby hash
89
+ def to_h
90
+ to_hash
91
+ end
92
+
93
+ # @return [String] The complete object as a JSON string
94
+ def to_json(options = {})
95
+ to_hash.to_json(options)
96
+ end
97
+ end
98
+ end
@@ -0,0 +1,98 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Copyright (c) 2020-2025 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
+ # BrowseProxmoxStorageResponse is a typed class wrapper around the underlying Comet Server API data structure.
13
+ class BrowseProxmoxStorageResponse
14
+
15
+ # If the operation was successful, the status will be in the 200-299 range.
16
+ # @type [Number] status
17
+ attr_accessor :status
18
+
19
+ # @type [String] message
20
+ attr_accessor :message
21
+
22
+ # @type [Array<Comet::PVEStorageName>] storage
23
+ attr_accessor :storage
24
+
25
+ # @type [Hash] Hidden storage to preserve future properties for non-destructive roundtrip operations
26
+ attr_accessor :unknown_json_fields
27
+
28
+ def initialize
29
+ clear
30
+ end
31
+
32
+ def clear
33
+ @status = 0
34
+ @message = ''
35
+ @storage = []
36
+ @unknown_json_fields = {}
37
+ end
38
+
39
+ # @param [String] json_string The complete object in JSON format
40
+ def from_json(json_string)
41
+ raise TypeError, "'json_string' expected String, got #{json_string.class}" unless json_string.is_a? String
42
+
43
+ from_hash(JSON.parse(json_string))
44
+ end
45
+
46
+ # @param [Hash] obj The complete object as a Ruby hash
47
+ def from_hash(obj)
48
+ raise TypeError, "'obj' expected Hash, got #{obj.class}" unless obj.is_a? Hash
49
+
50
+ obj.each do |k, v|
51
+ case k
52
+ when 'Status'
53
+ raise TypeError, "'v' expected Numeric, got #{v.class}" unless v.is_a? Numeric
54
+
55
+ @status = v
56
+ when 'Message'
57
+ raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
58
+
59
+ @message = v
60
+ when 'Storage'
61
+ if v.nil?
62
+ @storage = []
63
+ else
64
+ @storage = Array.new(v.length)
65
+ v.each_with_index do |v1, i1|
66
+ @storage[i1] = Comet::PVEStorageName.new
67
+ @storage[i1].from_hash(v1)
68
+ end
69
+ end
70
+ else
71
+ @unknown_json_fields[k] = v
72
+ end
73
+ end
74
+ end
75
+
76
+ # @return [Hash] The complete object as a Ruby hash
77
+ def to_hash
78
+ ret = {}
79
+ ret['Status'] = @status
80
+ ret['Message'] = @message
81
+ ret['Storage'] = @storage
82
+ @unknown_json_fields.each do |k, v|
83
+ ret[k] = v
84
+ end
85
+ ret
86
+ end
87
+
88
+ # @return [Hash] The complete object as a Ruby hash
89
+ def to_h
90
+ to_hash
91
+ end
92
+
93
+ # @return [String] The complete object as a JSON string
94
+ def to_json(options = {})
95
+ to_hash.to_json(options)
96
+ end
97
+ end
98
+ end
@@ -0,0 +1,94 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Copyright (c) 2020-2025 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
+ # DispatchWithJobIDResponse is a typed class wrapper around the underlying Comet Server API data structure.
13
+ class DispatchWithJobIDResponse
14
+
15
+ # If the operation was successful, the status will be in the 200-299 range.
16
+ # @type [Number] status
17
+ attr_accessor :status
18
+
19
+ # @type [String] message
20
+ attr_accessor :message
21
+
22
+ # @type [String] job_id
23
+ attr_accessor :job_id
24
+
25
+ # @type [Hash] Hidden storage to preserve future properties for non-destructive roundtrip operations
26
+ attr_accessor :unknown_json_fields
27
+
28
+ def initialize
29
+ clear
30
+ end
31
+
32
+ def clear
33
+ @status = 0
34
+ @message = ''
35
+ @job_id = ''
36
+ @unknown_json_fields = {}
37
+ end
38
+
39
+ # @param [String] json_string The complete object in JSON format
40
+ def from_json(json_string)
41
+ raise TypeError, "'json_string' expected String, got #{json_string.class}" unless json_string.is_a? String
42
+
43
+ from_hash(JSON.parse(json_string))
44
+ end
45
+
46
+ # @param [Hash] obj The complete object as a Ruby hash
47
+ def from_hash(obj)
48
+ raise TypeError, "'obj' expected Hash, got #{obj.class}" unless obj.is_a? Hash
49
+
50
+ obj.each do |k, v|
51
+ case k
52
+ when 'Status'
53
+ raise TypeError, "'v' expected Numeric, got #{v.class}" unless v.is_a? Numeric
54
+
55
+ @status = v
56
+ when 'Message'
57
+ raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
58
+
59
+ @message = v
60
+ when 'JobID'
61
+ raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
62
+
63
+ @job_id = v
64
+ else
65
+ @unknown_json_fields[k] = v
66
+ end
67
+ end
68
+ end
69
+
70
+ # @return [Hash] The complete object as a Ruby hash
71
+ def to_hash
72
+ ret = {}
73
+ ret['Status'] = @status
74
+ ret['Message'] = @message
75
+ unless @job_id.nil?
76
+ ret['JobID'] = @job_id
77
+ end
78
+ @unknown_json_fields.each do |k, v|
79
+ ret[k] = v
80
+ end
81
+ ret
82
+ end
83
+
84
+ # @return [Hash] The complete object as a Ruby hash
85
+ def to_h
86
+ to_hash
87
+ end
88
+
89
+ # @return [String] The complete object as a JSON string
90
+ def to_json(options = {})
91
+ to_hash.to_json(options)
92
+ end
93
+ end
94
+ end
@@ -18,15 +18,15 @@ module Comet
18
18
  # @type [String] description
19
19
  attr_accessor :description
20
20
 
21
- # For use with Comet Server (Storage Role / Auth Role)
21
+ # For use with Comet Server (Storage Gateway / Management Console)
22
22
  # @type [String] remote_address
23
23
  attr_accessor :remote_address
24
24
 
25
- # For use with Comet Server (Storage Role / Auth Role)
25
+ # For use with Comet Server (Storage Gateway / Management Console)
26
26
  # @type [String] username
27
27
  attr_accessor :username
28
28
 
29
- # For use with Comet Server (Storage Role / Auth Role)
29
+ # For use with Comet Server (Storage Gateway / Management Console)
30
30
  # @type [String] password
31
31
  attr_accessor :password
32
32
 
@@ -24,23 +24,27 @@ module Comet
24
24
  # @type [Boolean] filter_mode
25
25
  attr_accessor :filter_mode
26
26
 
27
+ # If true, backup everything, ignoring selection and filter options
28
+ # @type [Boolean] whole_org
29
+ attr_accessor :whole_org
30
+
27
31
  # Key is the ID of User, Group, or Site
28
- # Value is a bitset of the SERVICE_ constants, to select which services to back up for members
32
+ # Value is a bitset of the SERVICE_ constants, to select which services to backup for accounts
29
33
  # @type [Hash{String => Number}] backup_options
30
34
  attr_accessor :backup_options
31
35
 
32
36
  # Key is the ID of a Group or Team Site
33
- # Value is a bitset of the SERVICE_ constants, to select which services to back up for members
37
+ # Value is a bitset of the SERVICE_ constants, to select which services to backup for members
34
38
  # @type [Hash{String => Number}] member_backup_options
35
39
  attr_accessor :member_backup_options
36
40
 
37
41
  # Key is the ID of a User, Group, or Site
38
- # Value is a bitset of the SERVICE_ constants, to select which services to back up for members
42
+ # Value is a bitset of the SERVICE_ constants, to select which services to not backup for accounts
39
43
  # @type [Hash{String => Number}] filter_options
40
44
  attr_accessor :filter_options
41
45
 
42
46
  # Key is the ID of a Group or Team Site
43
- # Value is a bitset of the SERVICE_ constants, to select which services to back up for members
47
+ # Value is a bitset of the SERVICE_ constants, to select which services to not backup for members
44
48
  # @type [Hash{String => Number}] filter_member_options
45
49
  attr_accessor :filter_member_options
46
50
 
@@ -76,6 +80,8 @@ module Comet
76
80
  @organization = v
77
81
  when 'FilterMode'
78
82
  @filter_mode = v
83
+ when 'WholeOrg'
84
+ @whole_org = v
79
85
  when 'BackupOptions'
80
86
  @backup_options = {}
81
87
  if v.nil?
@@ -130,7 +136,12 @@ module Comet
130
136
  def to_hash
131
137
  ret = {}
132
138
  ret['Organization'] = @organization
133
- ret['FilterMode'] = @filter_mode
139
+ unless @filter_mode.nil?
140
+ ret['FilterMode'] = @filter_mode
141
+ end
142
+ unless @whole_org.nil?
143
+ ret['WholeOrg'] = @whole_org
144
+ end
134
145
  unless @backup_options.nil?
135
146
  ret['BackupOptions'] = @backup_options
136
147
  end
@@ -15,6 +15,14 @@ module Comet
15
15
  # @type [String] device_name
16
16
  attr_accessor :device_name
17
17
 
18
+ # The partition's MBR or GPT id, if any
19
+ # @type [String] partition_guid
20
+ attr_accessor :partition_guid
21
+
22
+ # The partition's offset within the physical disk
23
+ # @type [Number] partition_offset
24
+ attr_accessor :partition_offset
25
+
18
26
  # The name of the filesystem used on this partition (e.g. "NTFS")
19
27
  # @type [String] filesystem
20
28
  attr_accessor :filesystem
@@ -59,6 +67,8 @@ module Comet
59
67
 
60
68
  def clear
61
69
  @device_name = ''
70
+ @partition_guid = ''
71
+ @partition_offset = 0
62
72
  @filesystem = ''
63
73
  @volume_name = ''
64
74
  @volume_guid = ''
@@ -89,6 +99,14 @@ module Comet
89
99
  raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
90
100
 
91
101
  @device_name = v
102
+ when 'PartitionGuid'
103
+ raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
104
+
105
+ @partition_guid = v
106
+ when 'PartitionOffset'
107
+ raise TypeError, "'v' expected Numeric, got #{v.class}" unless v.is_a? Numeric
108
+
109
+ @partition_offset = v
92
110
  when 'Filesystem'
93
111
  raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
94
112
 
@@ -146,6 +164,8 @@ module Comet
146
164
  def to_hash
147
165
  ret = {}
148
166
  ret['DeviceName'] = @device_name
167
+ ret['PartitionGuid'] = @partition_guid
168
+ ret['PartitionOffset'] = @partition_offset
149
169
  ret['Filesystem'] = @filesystem
150
170
  ret['VolumeName'] = @volume_name
151
171
  ret['VolumeGuid'] = @volume_guid