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
@@ -0,0 +1,138 @@
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
+ # PVEDisk is a typed class wrapper around the underlying Comet Server API data structure.
13
+ class PVEDisk
14
+
15
+ # @type [String] device
16
+ attr_accessor :device
17
+
18
+ # @type [Number] device_num
19
+ attr_accessor :device_num
20
+
21
+ # @type [String] storage_id
22
+ attr_accessor :storage_id
23
+
24
+ # @type [String] volume
25
+ attr_accessor :volume
26
+
27
+ # Bytes
28
+ # @type [Number] size
29
+ attr_accessor :size
30
+
31
+ # @type [String] format
32
+ attr_accessor :format
33
+
34
+ # @type [String] options
35
+ attr_accessor :options
36
+
37
+ # @type [Hash] Hidden storage to preserve future properties for non-destructive roundtrip operations
38
+ attr_accessor :unknown_json_fields
39
+
40
+ def initialize
41
+ clear
42
+ end
43
+
44
+ def clear
45
+ @device = ''
46
+ @device_num = 0
47
+ @storage_id = ''
48
+ @volume = ''
49
+ @size = 0
50
+ @format = ''
51
+ @options = ''
52
+ @unknown_json_fields = {}
53
+ end
54
+
55
+ # @param [String] json_string The complete object in JSON format
56
+ def from_json(json_string)
57
+ raise TypeError, "'json_string' expected String, got #{json_string.class}" unless json_string.is_a? String
58
+
59
+ from_hash(JSON.parse(json_string))
60
+ end
61
+
62
+ # @param [Hash] obj The complete object as a Ruby hash
63
+ def from_hash(obj)
64
+ raise TypeError, "'obj' expected Hash, got #{obj.class}" unless obj.is_a? Hash
65
+
66
+ obj.each do |k, v|
67
+ case k
68
+ when 'Device'
69
+ raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
70
+
71
+ @device = v
72
+ when 'DeviceNum'
73
+ raise TypeError, "'v' expected Numeric, got #{v.class}" unless v.is_a? Numeric
74
+
75
+ @device_num = v
76
+ when 'StorageID'
77
+ raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
78
+
79
+ @storage_id = v
80
+ when 'Volume'
81
+ raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
82
+
83
+ @volume = v
84
+ when 'Size'
85
+ raise TypeError, "'v' expected Numeric, got #{v.class}" unless v.is_a? Numeric
86
+
87
+ @size = v
88
+ when 'Format'
89
+ raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
90
+
91
+ @format = v
92
+ when 'Options'
93
+ raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
94
+
95
+ @options = v
96
+ else
97
+ @unknown_json_fields[k] = v
98
+ end
99
+ end
100
+ end
101
+
102
+ # @return [Hash] The complete object as a Ruby hash
103
+ def to_hash
104
+ ret = {}
105
+ ret['Device'] = @device
106
+ ret['DeviceNum'] = @device_num
107
+ unless @storage_id.nil?
108
+ ret['StorageID'] = @storage_id
109
+ end
110
+ unless @volume.nil?
111
+ ret['Volume'] = @volume
112
+ end
113
+ unless @size.nil?
114
+ ret['Size'] = @size
115
+ end
116
+ unless @format.nil?
117
+ ret['Format'] = @format
118
+ end
119
+ unless @options.nil?
120
+ ret['Options'] = @options
121
+ end
122
+ @unknown_json_fields.each do |k, v|
123
+ ret[k] = v
124
+ end
125
+ ret
126
+ end
127
+
128
+ # @return [Hash] The complete object as a Ruby hash
129
+ def to_h
130
+ to_hash
131
+ end
132
+
133
+ # @return [String] The complete object as a JSON string
134
+ def to_json(options = {})
135
+ to_hash.to_json(options)
136
+ end
137
+ end
138
+ end
@@ -0,0 +1,140 @@
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
+ # PVEParams is a typed class wrapper around the underlying Comet Server API data structure.
13
+ # This type is used in the EngineProps for an "engine1/proxmox" Protected Item. It represents the
14
+ # entire Protected Item configuration. It is expected to be user-configurable.
15
+ # This type is available in Comet 25.8.0 and later.
16
+ class PVEParams
17
+
18
+ # @type [Boolean] everything
19
+ attr_accessor :everything
20
+
21
+ # @type [Array<Comet::PVEBackupNode>] exclusions
22
+ attr_accessor :exclusions
23
+
24
+ # One of the PVE_BACKUP_METHOD constants
25
+ # @type [String] method
26
+ attr_accessor :method
27
+
28
+ # Primary node URL + SSH credentials
29
+ # @type [Comet::SSHConnection] sshconnection
30
+ attr_accessor :sshconnection
31
+
32
+ # @type [Array<Comet::PVEBackupNode>] selections
33
+ attr_accessor :selections
34
+
35
+ # @type [Boolean] use_cbt
36
+ attr_accessor :use_cbt
37
+
38
+ # @type [Hash] Hidden storage to preserve future properties for non-destructive roundtrip operations
39
+ attr_accessor :unknown_json_fields
40
+
41
+ def initialize
42
+ clear
43
+ end
44
+
45
+ def clear
46
+ @exclusions = []
47
+ @method = ''
48
+ @sshconnection = Comet::SSHConnection.new
49
+ @selections = []
50
+ @unknown_json_fields = {}
51
+ end
52
+
53
+ # @param [String] json_string The complete object in JSON format
54
+ def from_json(json_string)
55
+ raise TypeError, "'json_string' expected String, got #{json_string.class}" unless json_string.is_a? String
56
+
57
+ from_hash(JSON.parse(json_string))
58
+ end
59
+
60
+ # @param [Hash] obj The complete object as a Ruby hash
61
+ def from_hash(obj)
62
+ raise TypeError, "'obj' expected Hash, got #{obj.class}" unless obj.is_a? Hash
63
+
64
+ obj.each do |k, v|
65
+ case k
66
+ when 'Everything'
67
+ @everything = v
68
+ when 'Exclusions'
69
+ if v.nil?
70
+ @exclusions = []
71
+ else
72
+ @exclusions = Array.new(v.length)
73
+ v.each_with_index do |v1, i1|
74
+ @exclusions[i1] = Comet::PVEBackupNode.new
75
+ @exclusions[i1].from_hash(v1)
76
+ end
77
+ end
78
+ when 'Method'
79
+ raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
80
+
81
+ @method = v
82
+ when 'SSHConnection'
83
+ @sshconnection = Comet::SSHConnection.new
84
+ @sshconnection.from_hash(v)
85
+ when 'Selections'
86
+ if v.nil?
87
+ @selections = []
88
+ else
89
+ @selections = Array.new(v.length)
90
+ v.each_with_index do |v1, i1|
91
+ @selections[i1] = Comet::PVEBackupNode.new
92
+ @selections[i1].from_hash(v1)
93
+ end
94
+ end
95
+ when 'UseCBT'
96
+ @use_cbt = v
97
+ else
98
+ @unknown_json_fields[k] = v
99
+ end
100
+ end
101
+ end
102
+
103
+ # @return [Hash] The complete object as a Ruby hash
104
+ def to_hash
105
+ ret = {}
106
+ unless @everything.nil?
107
+ ret['Everything'] = @everything
108
+ end
109
+ unless @exclusions.nil?
110
+ ret['Exclusions'] = @exclusions
111
+ end
112
+ unless @method.nil?
113
+ ret['Method'] = @method
114
+ end
115
+ unless @sshconnection.nil?
116
+ ret['SSHConnection'] = @sshconnection
117
+ end
118
+ unless @selections.nil?
119
+ ret['Selections'] = @selections
120
+ end
121
+ unless @use_cbt.nil?
122
+ ret['UseCBT'] = @use_cbt
123
+ end
124
+ @unknown_json_fields.each do |k, v|
125
+ ret[k] = v
126
+ end
127
+ ret
128
+ end
129
+
130
+ # @return [Hash] The complete object as a Ruby hash
131
+ def to_h
132
+ to_hash
133
+ end
134
+
135
+ # @return [String] The complete object as a JSON string
136
+ def to_json(options = {})
137
+ to_hash.to_json(options)
138
+ end
139
+ end
140
+ end
@@ -0,0 +1,83 @@
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
+ # PVEStorageName is a typed class wrapper around the underlying Comet Server API data structure.
13
+ # PVEStorageName contains the name and type of storage configured on a Proxmox Cluster
14
+ class PVEStorageName
15
+
16
+ # @type [String] name
17
+ attr_accessor :name
18
+
19
+ # @type [String] type
20
+ attr_accessor :type
21
+
22
+ # @type [Hash] Hidden storage to preserve future properties for non-destructive roundtrip operations
23
+ attr_accessor :unknown_json_fields
24
+
25
+ def initialize
26
+ clear
27
+ end
28
+
29
+ def clear
30
+ @name = ''
31
+ @type = ''
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 'Name'
49
+ raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
50
+
51
+ @name = v
52
+ when 'Type'
53
+ raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
54
+
55
+ @type = v
56
+ else
57
+ @unknown_json_fields[k] = v
58
+ end
59
+ end
60
+ end
61
+
62
+ # @return [Hash] The complete object as a Ruby hash
63
+ def to_hash
64
+ ret = {}
65
+ ret['Name'] = @name
66
+ ret['Type'] = @type
67
+ @unknown_json_fields.each do |k, v|
68
+ ret[k] = v
69
+ end
70
+ ret
71
+ end
72
+
73
+ # @return [Hash] The complete object as a Ruby hash
74
+ def to_h
75
+ to_hash
76
+ end
77
+
78
+ # @return [String] The complete object as a JSON string
79
+ def to_json(options = {})
80
+ to_hash.to_json(options)
81
+ end
82
+ end
83
+ end
@@ -0,0 +1,150 @@
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
+ # PVEVM is a typed class wrapper around the underlying Comet Server API data structure.
13
+ # PVEVM describes a single Proxmox virtual machine or container.
14
+ class PVEVM
15
+
16
+ # @type [String] cpu
17
+ attr_accessor :cpu
18
+
19
+ # @type [Array<Comet::PVEDisk>] disks
20
+ attr_accessor :disks
21
+
22
+ # @type [String] memory
23
+ attr_accessor :memory
24
+
25
+ # @type [String] name
26
+ attr_accessor :name
27
+
28
+ # @type [String] node
29
+ attr_accessor :node
30
+
31
+ # @type [String] ostype
32
+ attr_accessor :ostype
33
+
34
+ # @type [Boolean] running
35
+ attr_accessor :running
36
+
37
+ # @type [String] type
38
+ attr_accessor :type
39
+
40
+ # String type, but always contains an integer value
41
+ # @type [String] vmid
42
+ attr_accessor :vmid
43
+
44
+ # @type [Hash] Hidden storage to preserve future properties for non-destructive roundtrip operations
45
+ attr_accessor :unknown_json_fields
46
+
47
+ def initialize
48
+ clear
49
+ end
50
+
51
+ def clear
52
+ @cpu = ''
53
+ @disks = []
54
+ @memory = ''
55
+ @name = ''
56
+ @node = ''
57
+ @ostype = ''
58
+ @type = ''
59
+ @vmid = ''
60
+ @unknown_json_fields = {}
61
+ end
62
+
63
+ # @param [String] json_string The complete object in JSON format
64
+ def from_json(json_string)
65
+ raise TypeError, "'json_string' expected String, got #{json_string.class}" unless json_string.is_a? String
66
+
67
+ from_hash(JSON.parse(json_string))
68
+ end
69
+
70
+ # @param [Hash] obj The complete object as a Ruby hash
71
+ def from_hash(obj)
72
+ raise TypeError, "'obj' expected Hash, got #{obj.class}" unless obj.is_a? Hash
73
+
74
+ obj.each do |k, v|
75
+ case k
76
+ when 'CPU'
77
+ raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
78
+
79
+ @cpu = v
80
+ when 'Disks'
81
+ if v.nil?
82
+ @disks = []
83
+ else
84
+ @disks = Array.new(v.length)
85
+ v.each_with_index do |v1, i1|
86
+ @disks[i1] = Comet::PVEDisk.new
87
+ @disks[i1].from_hash(v1)
88
+ end
89
+ end
90
+ when 'Memory'
91
+ raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
92
+
93
+ @memory = v
94
+ when 'Name'
95
+ raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
96
+
97
+ @name = v
98
+ when 'Node'
99
+ raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
100
+
101
+ @node = v
102
+ when 'OSType'
103
+ raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
104
+
105
+ @ostype = v
106
+ when 'Running'
107
+ @running = v
108
+ when 'Type'
109
+ raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
110
+
111
+ @type = v
112
+ when 'VMID'
113
+ raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
114
+
115
+ @vmid = v
116
+ else
117
+ @unknown_json_fields[k] = v
118
+ end
119
+ end
120
+ end
121
+
122
+ # @return [Hash] The complete object as a Ruby hash
123
+ def to_hash
124
+ ret = {}
125
+ ret['CPU'] = @cpu
126
+ ret['Disks'] = @disks
127
+ ret['Memory'] = @memory
128
+ ret['Name'] = @name
129
+ ret['Node'] = @node
130
+ ret['OSType'] = @ostype
131
+ ret['Running'] = @running
132
+ ret['Type'] = @type
133
+ ret['VMID'] = @vmid
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
@@ -36,6 +36,9 @@ module Comet
36
36
  # @type [String] ipaddress
37
37
  attr_accessor :ipaddress
38
38
 
39
+ # @type [String] host
40
+ attr_accessor :host
41
+
39
42
  # @type [Number] connection_time
40
43
  attr_accessor :connection_time
41
44
 
@@ -55,6 +58,7 @@ module Comet
55
58
  @reported_platform_version = Comet::OSInfo.new
56
59
  @device_time_zone = ''
57
60
  @ipaddress = ''
61
+ @host = ''
58
62
  @connection_time = 0
59
63
  @unknown_json_fields = {}
60
64
  end
@@ -103,6 +107,10 @@ module Comet
103
107
  raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
104
108
 
105
109
  @ipaddress = v
110
+ when 'Host'
111
+ raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
112
+
113
+ @host = v
106
114
  when 'ConnectionTime'
107
115
  raise TypeError, "'v' expected Numeric, got #{v.class}" unless v.is_a? Numeric
108
116
 
@@ -130,6 +138,9 @@ module Comet
130
138
  unless @ipaddress.nil?
131
139
  ret['IPAddress'] = @ipaddress
132
140
  end
141
+ unless @host.nil?
142
+ ret['Host'] = @host
143
+ end
133
144
  ret['ConnectionTime'] = @connection_time
134
145
  @unknown_json_fields.each do |k, v|
135
146
  ret[k] = v
@@ -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
 
@@ -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
 
@@ -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
 
@@ -22,6 +22,12 @@ module Comet
22
22
  # @type [String] destination_id
23
23
  attr_accessor :destination_id
24
24
 
25
+ # @type [String] profile_hash
26
+ attr_accessor :profile_hash
27
+
28
+ # @type [Comet::UserProfileConfig] profile
29
+ attr_accessor :profile
30
+
25
31
  # @type [Hash] Hidden storage to preserve future properties for non-destructive roundtrip operations
26
32
  attr_accessor :unknown_json_fields
27
33
 
@@ -33,6 +39,8 @@ module Comet
33
39
  @status = 0
34
40
  @message = ''
35
41
  @destination_id = ''
42
+ @profile_hash = ''
43
+ @profile = Comet::UserProfileConfig.new
36
44
  @unknown_json_fields = {}
37
45
  end
38
46
 
@@ -61,6 +69,13 @@ module Comet
61
69
  raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
62
70
 
63
71
  @destination_id = v
72
+ when 'ProfileHash'
73
+ raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
74
+
75
+ @profile_hash = v
76
+ when 'Profile'
77
+ @profile = Comet::UserProfileConfig.new
78
+ @profile.from_hash(v)
64
79
  else
65
80
  @unknown_json_fields[k] = v
66
81
  end
@@ -73,6 +88,8 @@ module Comet
73
88
  ret['Status'] = @status
74
89
  ret['Message'] = @message
75
90
  ret['DestinationID'] = @destination_id
91
+ ret['ProfileHash'] = @profile_hash
92
+ ret['Profile'] = @profile
76
93
  @unknown_json_fields.each do |k, v|
77
94
  ret[k] = v
78
95
  end
@@ -117,6 +117,10 @@ module Comet
117
117
  # @type [Comet::HyperVRestoreTargetOptions] hyper_vconnection
118
118
  attr_accessor :hyper_vconnection
119
119
 
120
+ # For RESTORETYPE_VMHOST
121
+ # @type [Comet::ProxmoxRestoreTargetOptions] proxmox_connection
122
+ attr_accessor :proxmox_connection
123
+
120
124
  # @type [Hash] Hidden storage to preserve future properties for non-destructive roundtrip operations
121
125
  attr_accessor :unknown_json_fields
122
126
 
@@ -140,6 +144,7 @@ module Comet
140
144
  @ms_sql_connection = Comet::MSSQLLoginArgs.new
141
145
  @vmware_connection = Comet::VMwareRestoreTargetOptions.new
142
146
  @hyper_vconnection = Comet::HyperVRestoreTargetOptions.new
147
+ @proxmox_connection = Comet::ProxmoxRestoreTargetOptions.new
143
148
  @unknown_json_fields = {}
144
149
  end
145
150
 
@@ -237,6 +242,9 @@ module Comet
237
242
  when 'HyperVConnection'
238
243
  @hyper_vconnection = Comet::HyperVRestoreTargetOptions.new
239
244
  @hyper_vconnection.from_hash(v)
245
+ when 'ProxmoxConnection'
246
+ @proxmox_connection = Comet::ProxmoxRestoreTargetOptions.new
247
+ @proxmox_connection.from_hash(v)
240
248
  else
241
249
  @unknown_json_fields[k] = v
242
250
  end
@@ -278,6 +286,9 @@ module Comet
278
286
  unless @hyper_vconnection.nil?
279
287
  ret['HyperVConnection'] = @hyper_vconnection
280
288
  end
289
+ unless @proxmox_connection.nil?
290
+ ret['ProxmoxConnection'] = @proxmox_connection
291
+ end
281
292
  @unknown_json_fields.each do |k, v|
282
293
  ret[k] = v
283
294
  end