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 */
49 structure VirtualMediaShare {
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
73 structure CimUpdateHistoryEntry {
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 */
88 KvmDevice getKvmDevice();
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 */
109 PowerDeviceManager getPowerDeviceManager();
110
111 /**
112 * Get serial device (DSAM) manager
113 *
114 * @return DSAM manager (if supported by device)
115 */
116 DsamDeviceManager getDsamDeviceManager();
117
118 /**
119 * Get port group manager
120 *
121 * @return Port group manager (if supported by device)
122 */
123 PortGroupManager getPortGroupManager();
124
125 /**
126 * Get key set manager
127 *
128 * @return Key set manager
129 */
130 KeySetManager getKeySetManager();
131
132 /**
133 * Get auto scan instance
134 *
135 * @return Auto scan instance (if supported by device)
136 */
137 AutoScan getAutoScan();
138
139 /**
140 * Get device security settings
141 *
142 * @return Security settings
143 */
144 SecuritySettings getSecuritySettings();
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 */
154 int setSecuritySettings(in SecuritySettings settings);
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 */
194 KvmAccessFlags getKvmAccessMode();
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 */
241 valueobject CimFirmwareUpdateStartedEvent extends CimFirmwareUpdateEvent {};
242
243 /** Event: CIM firmware updated successfully */
244 valueobject CimFirmwareUpdateCompletedEvent extends CimFirmwareUpdateEvent {};
245 };
246}
247
248#endif //__RADM_KVM_MANAGER_IDL__
radm::AutoScan
Definition AutoScan.idl:8
radm::DsamDeviceManager
Definition DsamDeviceManager.idl:9
radm::KeySetManager
Definition KeySetManager.idl:8
radm::KvmDevice
Definition KvmDevice.idl:14
radm::KvmManager
Definition KvmManager.idl:18
radm::KvmManager::ResetPinMode
ResetPinMode
Definition KvmManager.idl:23
radm::KvmManager::FACTORY_RESET
@ FACTORY_RESET
Trigger a factory reset.
Definition KvmManager.idl:24
radm::KvmManager::ADMIN_PASSWORD_RESET
@ ADMIN_PASSWORD_RESET
Trigger a reset of the admin password.
Definition KvmManager.idl:25
radm::KvmManager::DISABLE_ALL_RESET
@ DISABLE_ALL_RESET
Disable local reset.
Definition KvmManager.idl:26
radm::KvmManager::getPowerDeviceManager
PowerDeviceManager getPowerDeviceManager()
Get power device (PDU) manager.
radm::KvmManager::getDsamDeviceManager
DsamDeviceManager getDsamDeviceManager()
Get serial device (DSAM) manager.
radm::KvmManager::getAvailableCimFirmwareVersions
vector< CimFirmwareInfo > getAvailableCimFirmwareVersions()
Get information about available CIM firmwares.
radm::KvmManager::getKvmChannels
vector< KvmChannel > getKvmChannels()
Get KVM channels.
radm::KvmManager::getAutoScan
AutoScan getAutoScan()
Get auto scan instance.
radm::KvmManager::getCimUpdateHistory
vector< CimUpdateHistoryEntry > getCimUpdateHistory()
Fetch the CIM firmware update history.
radm::KvmManager::getPortGroupManager
PortGroupManager getPortGroupManager()
Get port group manager.
radm::KvmManager::ControlPriority
ControlPriority
Definition KvmManager.idl:29
radm::KvmManager::PRIORITY_REMOTE
@ PRIORITY_REMOTE
Prioritize operation via remote KVM client.
Definition KvmManager.idl:32
radm::KvmManager::PRIORITY_NONE
@ PRIORITY_NONE
No prioritization, first operator gets control.
Definition KvmManager.idl:30
radm::KvmManager::PRIORITY_LOCAL
@ PRIORITY_LOCAL
Prioritize operation via locally attached input device.
Definition KvmManager.idl:31
radm::KvmManager::getSecuritySettings
SecuritySettings getSecuritySettings()
Get device security settings.
radm::KvmManager::getKvmDevice
KvmDevice getKvmDevice()
Get KVM device.
radm::KvmManager::testVirtualMediaShare
int testVirtualMediaShare(in VirtualMediaShare share, in string username, in string password, out string errorDetails)
Test a virtual media share.
radm::KvmManager::setVirtualMediaShares
int setVirtualMediaShares(in vector< VirtualMediaShare > shares)
Configure virtual media shares.
radm::KvmManager::startCimUpdate
void startCimUpdate(in vector< KvmPort > ports)
Start CIM firmware update for selected CIMs.
radm::KvmManager::setSecuritySettings
int setSecuritySettings(in SecuritySettings settings)
Set device security settings.
radm::KvmManager::getKeySetManager
KeySetManager getKeySetManager()
Get key set manager.
radm::KvmManager::getPowerSupplies
vector< PowerSupply > getPowerSupplies()
Get power supplies.
radm::KvmManager::getVirtualMediaShares
vector< VirtualMediaShare > getVirtualMediaShares()
Get configured virtual media shares.
radm::KvmManager::getKvmAccessMode
KvmAccessFlags getKvmAccessMode()
Get current KVM access modes.
radm::KvmManager::KvmAccessMode
KvmAccessMode
Definition KvmManager.idl:56
radm::KvmManager::DENY
@ DENY
Neither viewing nor control are possible.
Definition KvmManager.idl:59
radm::KvmManager::FULL_ACCESS
@ FULL_ACCESS
Both viewing and control are possible.
Definition KvmManager.idl:57
radm::KvmManager::VIEW_ONLY
@ VIEW_ONLY
Only viewing is possible.
Definition KvmManager.idl:58
radm::PortGroupManager
Definition PortGroupManager.idl:10
radm::PowerDeviceManager
Definition PowerDeviceManager.idl:9
idl
Basic IDL definitions.
Definition Event.idl:10
radm
Radm Model.
Definition AccessPort.idl:8
idl::Event
Common base for all events.
Definition Event.idl:13
radm::KvmManager::CimFirmwareInfo
Definition KvmManager.idl:67
radm::KvmManager::CimFirmwareUpdateCompletedEvent
Event: CIM firmware updated successfully.
Definition KvmManager.idl:244
radm::KvmManager::CimFirmwareUpdateEvent
Event: Firmware update base event.
Definition KvmManager.idl:235
radm::KvmManager::CimFirmwareUpdateEvent::oldVersion
string oldVersion
Firmware version the device is being upgraded from.
Definition KvmManager.idl:236
radm::KvmManager::CimFirmwareUpdateEvent::newVersion
string newVersion
Firmware version the device is being upgraded to.
Definition KvmManager.idl:237
radm::KvmManager::CimFirmwareUpdateStartedEvent
Event: CIM firmware update started.
Definition KvmManager.idl:241
radm::KvmManager::CimUpdateHistoryEntry
Definition KvmManager.idl:73
radm::KvmManager::CimUpdateHistoryEntry::port
int port
CIM connected port.
Definition KvmManager.idl:74
radm::KvmManager::CimUpdateHistoryEntry::imageVersion
string imageVersion
Firmware version of update image.
Definition KvmManager.idl:79
radm::KvmManager::CimUpdateHistoryEntry::oldVersion
string oldVersion
Previous firmware version.
Definition KvmManager.idl:78
radm::KvmManager::CimUpdateHistoryEntry::successful
boolean successful
Whether update was successful.
Definition KvmManager.idl:80
radm::KvmManager::CimUpdateHistoryEntry::type
string type
CIM type.
Definition KvmManager.idl:76
radm::KvmManager::CimUpdateHistoryEntry::name
string name
CIM name.
Definition KvmManager.idl:75
radm::KvmManager::CimUpdateHistoryEntry::timestamp
time timestamp
Timestamp when the update was started.
Definition KvmManager.idl:77
radm::KvmManager::KvmAccessFlags
Definition KvmManager.idl:62
radm::KvmManager::KvmAccessFlags::remoteAccess
KvmAccessMode remoteAccess
Access mode for remote operation.
Definition KvmManager.idl:64
radm::KvmManager::KvmAccessFlags::localAccess
KvmAccessMode localAccess
Access mode for local operation.
Definition KvmManager.idl:63
radm::KvmManager::KvmAccessModeChangedEvent
Event: Access mode flags have changed.
Definition KvmManager.idl:229
radm::KvmManager::KvmAccessModeChangedEvent::newAccessFlags
KvmAccessFlags newAccessFlags
Access modes after change.
Definition KvmManager.idl:231
radm::KvmManager::KvmAccessModeChangedEvent::oldAccessFlags
KvmAccessFlags oldAccessFlags
Access modes before change.
Definition KvmManager.idl:230
radm::KvmManager::KvmSecuritySettingsChangedEvent
Event: The KVM security settings have changed.
Definition KvmManager.idl:218
radm::KvmManager::KvmSecuritySettingsChangedEvent::oldSettings
SecuritySettings oldSettings
Settings before change.
Definition KvmManager.idl:219
radm::KvmManager::KvmSecuritySettingsChangedEvent::newSettings
SecuritySettings newSettings
Settings after change.
Definition KvmManager.idl:220
radm::KvmManager::SecuritySettings
Definition KvmManager.idl:35
radm::KvmManager::SecuritySettings::kvmEncryption
boolean kvmEncryption
Whether or not KVM client traffic is encrypted.
Definition KvmManager.idl:39
radm::KvmManager::SecuritySettings::resetPinMode
ResetPinMode resetPinMode
Handling of pin-hole reset on device.
Definition KvmManager.idl:42
radm::KvmManager::SecuritySettings::vmShare
boolean vmShare
Whether virtual media sharing is enabled.
Definition KvmManager.idl:38
radm::KvmManager::SecuritySettings::disableLocalPortOutput
boolean disableLocalPortOutput
Disable video output of locally attached monitors.
Definition KvmManager.idl:40
radm::KvmManager::SecuritySettings::urlDpa
boolean urlDpa
Whether direct KVM port access via URL is allowed.
Definition KvmManager.idl:44
radm::KvmManager::SecuritySettings::pcShareIdleTimeout
int pcShareIdleTimeout
PC share idle timeout (in seconds)
Definition KvmManager.idl:37
radm::KvmManager::SecuritySettings::pcShare
boolean pcShare
Whether PC sharing is enabled.
Definition KvmManager.idl:36
radm::KvmManager::SecuritySettings::sshDpa
boolean sshDpa
Whether SSH direct port access is enabled.
Definition KvmManager.idl:43
radm::KvmManager::SecuritySettings::controlPriority
ControlPriority controlPriority
Priority handling for simultaneous keyboard/mouse operation.
Definition KvmManager.idl:41
radm::KvmManager::SecuritySettings::allowIFrame
boolean allowIFrame
Allow embedding KVM GUI and HKC client as iframe in other web pages.
Definition KvmManager.idl:45
radm::KvmManager::VirtualMediaShare
Data structure for a preconfigured virtual media ISO file on an SMB share.
Definition KvmManager.idl:49
radm::KvmManager::VirtualMediaShare::host
string host
SMB server host name.
Definition KvmManager.idl:50
radm::KvmManager::VirtualMediaShare::shareName
string shareName
SMB share name.
Definition KvmManager.idl:51
radm::KvmManager::VirtualMediaShare::imagePath
string imagePath
Path of ISO image on the SMB share.
Definition KvmManager.idl:52
radm::KvmManager::VirtualMediaShare::enableSMBv1
boolean enableSMBv1
Whether to allow SMBv1.
Definition KvmManager.idl:53
radm::KvmManager::VirtualMediaSharesChangedEvent
Event: The list of configured virtual media shares has changed.
Definition KvmManager.idl:224
radm::KvmManager::VirtualMediaSharesChangedEvent::newShares
vector< VirtualMediaShare > newShares
Virtual media shares after change.
Definition KvmManager.idl:225