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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +19 -0
- data/Gemfile.lock +1 -1
- data/comet_backup_ruby_sdk.gemspec +1 -1
- data/lib/comet/comet_server.rb +253 -12
- data/lib/comet/definitions.rb +51 -7
- data/lib/comet/models/backup_job_advanced_options.rb +10 -0
- data/lib/comet/models/backup_job_detail.rb +12 -0
- data/lib/comet/models/backup_rule_config.rb +10 -0
- data/lib/comet/models/branding_options.rb +30 -0
- data/lib/comet/models/branding_properties.rb +30 -0
- data/lib/comet/models/browse_proxmox_nodes_response.rb +99 -0
- data/lib/comet/models/browse_proxmox_response.rb +98 -0
- data/lib/comet/models/browse_proxmox_storage_response.rb +98 -0
- data/lib/comet/models/dispatch_with_job_idresponse.rb +94 -0
- data/lib/comet/models/external_authentication_source.rb +3 -3
- data/lib/comet/models/office_365custom_setting_v2.rb +16 -5
- data/lib/comet/models/partition.rb +20 -0
- data/lib/comet/models/private_branding_properties.rb +30 -0
- data/lib/comet/models/protected_item_with_backup_rules_response.rb +119 -0
- data/lib/comet/models/proxmox_connection.rb +72 -0
- data/lib/comet/models/proxmox_restore_target_options.rb +92 -0
- data/lib/comet/models/pvebackup_disk.rb +92 -0
- data/lib/comet/models/pvebackup_node.rb +105 -0
- data/lib/comet/models/pvebackup_vm.rb +128 -0
- data/lib/comet/models/pvedisk.rb +138 -0
- data/lib/comet/models/pveparams.rb +140 -0
- data/lib/comet/models/pvestorage_name.rb +83 -0
- data/lib/comet/models/pvevm.rb +150 -0
- data/lib/comet/models/registration_lobby_connection.rb +11 -0
- data/lib/comet/models/remote_server_address.rb +3 -3
- data/lib/comet/models/remote_storage_option.rb +3 -3
- data/lib/comet/models/replica_server.rb +3 -3
- data/lib/comet/models/request_storage_vault_response_message.rb +17 -0
- data/lib/comet/models/restore_job_advanced_options.rb +11 -0
- data/lib/comet/models/retention_range.rb +18 -0
- data/lib/comet/models/schedule_config.rb +18 -0
- data/lib/comet/models/self_backup_export_options.rb +2 -2
- data/lib/comet/models/self_backup_target.rb +2 -2
- data/lib/comet/models/source_config.rb +7 -0
- data/lib/comet/models/user_policy.rb +11 -0
- data/lib/comet/models/user_profile_config.rb +8 -0
- data/lib/comet/models/vault_snapshot.rb +19 -0
- data/lib/comet/models/windows_code_sign_properties.rb +30 -0
- data/lib/comet_backup_ruby_sdk.rb +14 -1
- 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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
-
|
|
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
|