Legrand / Raritan Xerus™ JSON-RPC API for Remote Access Devices like KX4-101, KX3G2
Loading...
Searching...
No Matches
KvmManager.idl
1#ifndef __RADM_KVM_MANAGER_IDL__
2#define __RADM_KVM_MANAGER_IDL__
3
4#include <UserEvent.idl>
5#include <DsamDeviceManager.idl>
6#include <KeySetManager.idl>
7#include <KvmDevice.idl>
8#include <KvmPort.idl>
9#include <KvmChannel.idl>
10#include <PowerDeviceManager.idl>
11#include <PortGroupManager.idl>
12#include <AutoScan.idl>
13#include <PowerSupply.idl>
14#include <LocalPort.idl>
15
16module radm {
17
18 interface KvmManager {
19 constant int ERR_INVALID_ARGUMENT = 1;
20 constant int ERR_VM_SHARE_INACCESSIBLE = 2;
21 constant int ERR_IMAGE_NOT_USABLE = 3;
22
23 enumeration ResetPinMode {
24 FACTORY_RESET, ///< Trigger a factory reset
25 ADMIN_PASSWORD_RESET, ///< Trigger a reset of the admin password
26 DISABLE_ALL_RESET ///< Disable local reset
27 };
28
29 enumeration ControlPriority {
30 PRIORITY_NONE, ///< No prioritization, first operator gets control
31 PRIORITY_LOCAL, ///< Prioritize operation via locally attached input device
32 PRIORITY_REMOTE ///< Prioritize operation via remote KVM client
33 };
34
35 structure SecuritySettings {
36 boolean pcShare; ///< Whether PC sharing is enabled
37 int pcShareIdleTimeout; ///< PC share idle timeout (in seconds)
38 boolean vmShare; ///< Whether virtual media sharing is enabled
39 boolean kvmEncryption; ///< Whether or not KVM client traffic is encrypted
40 boolean disableLocalPortOutput; ///< Disable video output of locally attached monitors
41 ControlPriority controlPriority; ///< Priority handling for simultaneous keyboard/mouse operation
42 ResetPinMode resetPinMode; ///< Handling of pin-hole reset on device
43 boolean sshDpa; ///< Whether SSH direct port access is enabled
44 boolean urlDpa; ///< Whether direct KVM port access via URL is allowed
45 boolean allowIFrame; ///< Allow embedding KVM GUI and HKC client as iframe in other web pages
46 };
47
48 /** Data structure for a preconfigured virtual media ISO file on an SMB share */
50 string host; ///< SMB server host name
51 string shareName; ///< SMB share name
52 string imagePath; ///< Path of ISO image on the SMB share
53 boolean enableSMBv1; ///< Whether to allow SMBv1
54 };
55
56 enumeration KvmAccessMode {
57 FULL_ACCESS, ///< Both viewing and control are possible
58 VIEW_ONLY, ///< Only viewing is possible
59 DENY ///< Neither viewing nor control are possible
60 };
61
62 structure KvmAccessFlags {
63 KvmAccessMode localAccess; ///< Access mode for local operation
64 KvmAccessMode remoteAccess; ///< Access mode for remote operation
65 };
66
67 structure CimFirmwareInfo {
68 string cimType; // matches CimInfo.cimType
69 string hwVersion; // matches CimInfo.hwVersion
70 string fwVersion; // 'output value': FW version for combination above
71 };
72
74 int port; ///< CIM connected port
75 string name; ///< CIM name
76 string type; ///< CIM type
77 time timestamp; ///< Timestamp when the update was started
78 string oldVersion; ///< Previous firmware version
79 string imageVersion; ///< Firmware version of update image
80 boolean successful; ///< Whether update was successful
81 };
82
83 /**
84 * Get KVM device
85 *
86 * @return KVM device
87 */
89
90 /**
91 * Get KVM channels
92 *
93 * @return List of available KVM channels
94 */
95 vector<KvmChannel> getKvmChannels();
96
97 /**
98 * Get power supplies
99 *
100 * @return List of power supplies, or empty list in case power supply monitoring is not supported
101 */
102 vector<PowerSupply> getPowerSupplies();
103
104 /**
105 * Get power device (PDU) manager
106 *
107 * @return PDU manager (if supported by device)
108 */
110
111 /**
112 * Get serial device (DSAM) manager
113 *
114 * @return DSAM manager (if supported by device)
115 */
117
118 /**
119 * Get port group manager
120 *
121 * @return Port group manager (if supported by device)
122 */
124
125 /**
126 * Get key set manager
127 *
128 * @return Key set manager
129 */
131
132 /**
133 * Get auto scan instance
134 *
135 * @return Auto scan instance (if supported by device)
136 */
138
139 /**
140 * Get device security settings
141 *
142 * @return Security settings
143 */
145
146 /**
147 * Set device security settings
148 *
149 * @param settings New security settings
150 *
151 * @return 0 on success
152 * @return 1 if any setting was invalid
153 */
155
156 /**
157 * Get configured virtual media shares
158 *
159 * @return list of configured virtual media shares
160 */
161 vector<VirtualMediaShare> getVirtualMediaShares();
162
163 /**
164 * Configure virtual media shares
165 *
166 * Note: At most 10 shares can be configured
167 *
168 * @param shares New list of shares to be sent to KVM clients
169 *
170 * @return 0 on success
171 * @return 1 in case either the list was too long, or any value was invalid
172 */
173 int setVirtualMediaShares(in vector<VirtualMediaShare> shares);
174
175 /**
176 * Test a virtual media share
177 *
178 * @param share Configuration of the share
179 * @param username User name for accessing the share
180 * @param password Password for accessing the share
181 * @param errorDetails Additional error details in case of inaccessible VM share
182 *
183 * @return 0 on success
184 * @return 2 if SMB share can not be accessed
185 * @return 3 if image path does not exist on the share or is not a valid image
186 */
187 int testVirtualMediaShare(in VirtualMediaShare share, in string username, in string password, out string errorDetails);
188
189 /**
190 * Get current KVM access modes
191 *
192 * @return Access modes for local and remote operation
193 */
195
196 /**
197 * Get information about available CIM firmwares
198 *
199 * @return CIM firmware information
200 */
201 vector<CimFirmwareInfo> getAvailableCimFirmwareVersions();
202
203 /**
204 * Fetch the CIM firmware update history.
205 *
206 * @return List of CIM firmware update history entries
207 */
208 vector<CimUpdateHistoryEntry> getCimUpdateHistory();
209
210 /**
211 * Start CIM firmware update for selected CIMs
212 *
213 * @param ports List of ports to which the CIMs to be updated are connected
214 */
215 void startCimUpdate(in vector<KvmPort> ports);
216
217 /** Event: The KVM security settings have changed */
218 valueobject KvmSecuritySettingsChangedEvent extends event.UserEvent {
219 SecuritySettings oldSettings; ///< Settings before change
220 SecuritySettings newSettings; ///< Settings after change
221 };
222
223 /** Event: The list of configured virtual media shares has changed */
224 valueobject VirtualMediaSharesChangedEvent extends event.UserEvent {
225 vector<VirtualMediaShare> newShares; ///< Virtual media shares after change
226 };
227
228 /** Event: Access mode flags have changed */
229 valueobject KvmAccessModeChangedEvent extends idl.Event {
230 KvmAccessFlags oldAccessFlags; ///< Access modes before change
231 KvmAccessFlags newAccessFlags; ///< Access modes after change
232 };
233
234 /** Event: Firmware update base event */
235 valueobject CimFirmwareUpdateEvent extends event.UserEvent {
236 string oldVersion; ///< Firmware version the device is being upgraded from
237 string newVersion; ///< Firmware version the device is being upgraded to
238 };
239
240 /** Event: CIM firmware update started */
242
243 /** Event: CIM firmware updated successfully */
245 };
246}
247
248#endif //__RADM_KVM_MANAGER_IDL__
@ FACTORY_RESET
Trigger a factory reset.
@ ADMIN_PASSWORD_RESET
Trigger a reset of the admin password.
@ DISABLE_ALL_RESET
Disable local reset.
PowerDeviceManager getPowerDeviceManager()
Get power device (PDU) manager.
DsamDeviceManager getDsamDeviceManager()
Get serial device (DSAM) manager.
vector< CimFirmwareInfo > getAvailableCimFirmwareVersions()
Get information about available CIM firmwares.
vector< KvmChannel > getKvmChannels()
Get KVM channels.
AutoScan getAutoScan()
Get auto scan instance.
vector< CimUpdateHistoryEntry > getCimUpdateHistory()
Fetch the CIM firmware update history.
PortGroupManager getPortGroupManager()
Get port group manager.
@ PRIORITY_REMOTE
Prioritize operation via remote KVM client.
@ PRIORITY_NONE
No prioritization, first operator gets control.
@ PRIORITY_LOCAL
Prioritize operation via locally attached input device.
SecuritySettings getSecuritySettings()
Get device security settings.
KvmDevice getKvmDevice()
Get KVM device.
int testVirtualMediaShare(in VirtualMediaShare share, in string username, in string password, out string errorDetails)
Test a virtual media share.
int setVirtualMediaShares(in vector< VirtualMediaShare > shares)
Configure virtual media shares.
void startCimUpdate(in vector< KvmPort > ports)
Start CIM firmware update for selected CIMs.
int setSecuritySettings(in SecuritySettings settings)
Set device security settings.
KeySetManager getKeySetManager()
Get key set manager.
vector< PowerSupply > getPowerSupplies()
Get power supplies.
vector< VirtualMediaShare > getVirtualMediaShares()
Get configured virtual media shares.
KvmAccessFlags getKvmAccessMode()
Get current KVM access modes.
@ DENY
Neither viewing nor control are possible.
@ FULL_ACCESS
Both viewing and control are possible.
@ VIEW_ONLY
Only viewing is possible.
Basic IDL definitions.
Definition Event.idl:10
Radm Model.
Definition AccessPort.idl:8
Common base for all events.
Definition Event.idl:13
Event: CIM firmware updated successfully.
Event: Firmware update base event.
string oldVersion
Firmware version the device is being upgraded from.
string newVersion
Firmware version the device is being upgraded to.
Event: CIM firmware update started.
string imageVersion
Firmware version of update image.
string oldVersion
Previous firmware version.
boolean successful
Whether update was successful.
time timestamp
Timestamp when the update was started.
KvmAccessMode remoteAccess
Access mode for remote operation.
KvmAccessMode localAccess
Access mode for local operation.
Event: Access mode flags have changed.
KvmAccessFlags newAccessFlags
Access modes after change.
KvmAccessFlags oldAccessFlags
Access modes before change.
Event: The KVM security settings have changed.
SecuritySettings oldSettings
Settings before change.
SecuritySettings newSettings
Settings after change.
boolean kvmEncryption
Whether or not KVM client traffic is encrypted.
ResetPinMode resetPinMode
Handling of pin-hole reset on device.
boolean vmShare
Whether virtual media sharing is enabled.
boolean disableLocalPortOutput
Disable video output of locally attached monitors.
boolean urlDpa
Whether direct KVM port access via URL is allowed.
int pcShareIdleTimeout
PC share idle timeout (in seconds)
boolean pcShare
Whether PC sharing is enabled.
boolean sshDpa
Whether SSH direct port access is enabled.
ControlPriority controlPriority
Priority handling for simultaneous keyboard/mouse operation.
boolean allowIFrame
Allow embedding KVM GUI and HKC client as iframe in other web pages.
Data structure for a preconfigured virtual media ISO file on an SMB share.
string host
SMB server host name.
string shareName
SMB share name.
string imagePath
Path of ISO image on the SMB share.
boolean enableSMBv1
Whether to allow SMBv1.
Event: The list of configured virtual media shares has changed.
vector< VirtualMediaShare > newShares
Virtual media shares after change.