Legrand / Raritan Xerus™ JSON-RPC API for Remote Access Devices like KX4-101, KX3G2

Loading...
Searching...
No Matches
User.idl
1/* SPDX-License-Identifier: BSD-3-Clause */
2/*
3 * Copyright 2009 Raritan Inc. All rights reserved.
4 */
5
6#include "Role.idl"
7
8/**
9 * %User Management
10 */
11module usermgmt {
12
13 /** SNMPv3 security level */
14 enumeration SnmpV3SecLevel {
15 NO_AUTH_NO_PRIV, ///< No authentication and no privacy protocol
16 AUTH_NO_PRIV, ///< Use authentication but no privacy protocol
17 AUTH_PRIV ///< Use both, authentication and privacy protocol
18 };
19
20 /** SNMPv3 authentication protocol */
21 enumeration SnmpV3AuthProto {
22 MD5, ///< Use HMAC-MD5-96 for authentication
23 SHA1, ///< Use HMAC-SHA1-96 for authentication
24 SHA224, ///< Use HMAC-SHA224-128 for authentication
25 SHA256, ///< Use HMAC-SHA256-160 for authentication
26 SHA384, ///< Use HMAC-SHA384-256 for authentication
27 SHA512 ///< Use HMAC-SHA512-384 for authentication
28 };
29
30 /** SNMPv3 privacy protocol */
31 enumeration SnmpV3PrivProto {
32 DES, ///< Use DES encryption
33 AES128, ///< Use AES128 encryption
34 AES192, ///< Use AES192 encryption with Blumenthal key extension algorithm
35 AES256, ///< Use AES256 encryption with Blumenthal key extension algorithm
36 AES192_3DES, ///< Use AES192 encryption with 3DES/Reeder key extension algorithm
37 AES256_3DES ///< Use AES256 encryption with 3DES/Reeder key extension algorithm
38 };
39
40 /** SNMPv3 settings */
41 structure SnmpV3Settings {
42 boolean enabled; ///< SNMPv3 enabled
43 SnmpV3SecLevel secLevel; ///< Security level
44 SnmpV3AuthProto authProtocol; ///< Authentication protocol
45 boolean usePasswordAsAuthPassphrase; ///< Use account password for SNMPv3 authentication
46 boolean haveAuthPassphrase; ///< Authentication passphrase present
47 string authPassphrase; ///< Authentication passphrase; cannot be read back
48 SnmpV3PrivProto privProtocol; ///< Privacy protocol
49 boolean useAuthPassphraseAsPrivPassphrase; ///< Use authentication passphrase as privacy passphrase
50 boolean havePrivPassphrase; ///< Privacy passphrase present
51 string privPassphrase; ///< Privacy passphrase; cannot be read back
52 };
53
54 /** Auxiliary user information */
55 structure AuxInfo {
56 string fullname; ///< Full name
57 string telephone; ///< Telephone number
58 string eMail; ///< Email address
59 };
60
61 /** Preferred display unit for temperature sensors */
62 enumeration TemperatureEnum {
63 DEG_C, ///< Degrees Celsius
64 DEG_F ///< Degrees Fahrenheit
65 };
66
67 /** Preferred display unit for length measurements, e.g. device altitude */
68 enumeration LengthEnum {
69 METER, ///< Meters
70 FEET ///< Feet
71 };
72
73 /** Preferred display unit for (air) pressure sensors */
74 enumeration PressureEnum {
75 PASCAL, ///< Pascal
76 PSI ///< pound-force per square inch
77 };
78
79 /** %User preferences */
80 structure Preferences {
81 TemperatureEnum temperatureUnit; ///< Display unit for temperature sensors
82 LengthEnum lengthUnit; ///< Display unit for length measurements
83 PressureEnum pressureUnit; ///< Display unit for pressure sensors
84 };
85
86 /** %User information */
87 structure UserInfo {
88 boolean enabled; ///< \c true if the account is enabled
89 boolean locked; ///< \c true if the account cannot be deleted
90 boolean blocked; ///< \c true if the account is blocked due to failed logins
91 boolean needPasswordChange; ///< \c true to force a password change on the next login
92 AuxInfo auxInfo; ///< Auxiliary user information
93 SnmpV3Settings snmpV3Settings; ///< SNMPv3 settings
94 string sshPublicKey; ///< Public key for SSH access
95 Preferences preferences; ///< %User preferences
96 vector<int> roleIds; ///< List of role ids for this account
97 };
98
99 /**
100 * %User Capabilities
101 * Describe if certain operations can be performed for user.
102 * May require according privileges.
103 */
104 structure UserCapabilities {
105 boolean canSetPassword; ///< User password is modifyable
106 boolean canSetPreferences; ///< User preferences are modifyable
107 };
108
109 /** %User interface */
110 interface User {
111
112 constant int ERR_PASSWORD_UNCHANGED = 1; ///< The new password must differ from the old password
113 constant int ERR_PASSWORD_EMPTY = 2; ///< The password must not be empty
114 constant int ERR_PASSWORD_TOO_SHORT = 3; ///< The password is too short
115 constant int ERR_PASSWORD_TOO_LONG = 4; ///< The password is too long
116 constant int ERR_PASSWORD_CTRL_CHARS = 5; ///< The password must not contain control characters
117 constant int ERR_PASSWORD_NEED_LOWER = 6; ///< The password must contain at least one lower-case character
118 constant int ERR_PASSWORD_NEED_UPPER = 7; ///< The password must contain at least one upper-case character
119 constant int ERR_PASSWORD_NEED_NUMERIC = 8; ///< The password must contain at least one numeric character
120 constant int ERR_PASSWORD_NEED_SPECIAL = 9; ///< The password must contain at least one special character
121 constant int ERR_PASSWORD_IN_HISTORY = 10; ///< The password is already in the password history
122 constant int ERR_PASSWORD_TOO_SHORT_FOR_SNMP = 11; ///< The password is too short to be used as SNMPv3 passphrase
123 constant int ERR_INVALID_ARGUMENT = 12; ///< Invalid arguments
124 constant int ERR_WRONG_PASSWORD = 13; ///< The passed-in password was wrong
125 constant int ERR_SSH_PUBKEY_DATA_TOO_LARGE = 14; ///< The ssh public key data is too large.
126 constant int ERR_SSH_PUBKEY_INVALID = 15; ///< The ssh public key is invalid.
127 constant int ERR_SSH_PUBKEY_NOT_SUPPORTED = 16; ///< The ssh public key is not supported.
128 constant int ERR_SSH_RSA_PUBKEY_TOO_SHORT = 17; ///< The ssh RSA public key is too short.
129
130 /**
131 * Get user information.
132 *
133 * @return %User information
134 */
135 UserInfo getInfo();
136
137 /**
138 * Set the account password.
139 *
140 * @param password The new password
141 *
142 * @return 0 OK
143 * @return 1 The new password has to differ from old password.
144 * @return 2 The password must not be empty.
145 * @return 3 The password is too short.
146 * @return 4 The password is too long.
147 * @return 5 The password must not contain control characters.
148 * @return 6 The password has to contain at least one lower case
149 * character.
150 * @return 7 The password has to contain at least one upper case
151 * character.
152 * @return 8 The password has to contain at least one numeric
153 * character.
154 * @return 9 The password has to contain at least one printable
155 * special character.
156 * @return 10 The password already is in history.
157 * @return 11 SNMPv3 USM is activated for the user and the
158 * password shall be used as auth passphrase. For this
159 * case, the password is too short (must be at least 8
160 * characters).
161 */
162 int setAccountPassword(in string password);
163
164 /**
165 * Update user information.
166 *
167 * @param password The new password; empty to leave unchanged
168 * @param info The new user information
169 *
170 * @return 0 OK
171 * @return 1 The new password has to differ from old password.
172 * @return 3 The password is too short.
173 * @return 4 The password is too long.
174 * @return 5 The password must not contain control characters.
175 * @return 6 The password has to contain at least one lower case
176 * character.
177 * @return 7 The password has to contain at least one upper case
178 * character.
179 * @return 8 The password has to contain at least one numeric
180 * character.
181 * @return 9 The password has to contain at least one printable
182 * special character.
183 * @return 10 The password already is in history.
184 * @return 11 SNMPv3 USM is activated for the user and the
185 * password shall be used as auth passphrase. For this
186 * case, the password is too short (must be at least 8
187 * characters).
188 * @return 12 An argument is invalid or out of range
189 * @return 13 The password passed in as SNMPv3 authentication pass
190 * phrase was wrong.
191 * @return 14 The ssh public key data is too large.
192 * @return 15 The ssh public key is invalid.
193 * @return 16 The ssh public key is not supported.
194 * @return 17 The ssh RSA public key is too short.
195 */
196 int updateAccountFull(in string password, in UserInfo info);
197
198 /**
199 * Get information and a list of granted privileges for a user.
200 *
201 * @param info %User information
202 * @param privileges List of granted privileges
203 */
204 void getInfoAndPrivileges(out UserInfo info,
205 out vector<Role.Privilege> privileges);
206
207 /**
208 * Sets the user preferences.
209 *
210 * @param prefs User Preferences
211 *
212 * @return 0 OK
213 * @return ERR_INVALID_ARGUMENT An argument is invalid or out of range
214 */
215 int setPreferences(in Preferences prefs);
216
217 /**
218 * Gets the user capabilities.
219 *
220 * @return capabilities
221 */
222 UserCapabilities getCapabilities();
223 };
224
225}
usermgmt::User
User interface
Definition User.idl:110
usermgmt::User::getInfo
UserInfo getInfo()
Get user information.
usermgmt::User::ERR_SSH_PUBKEY_DATA_TOO_LARGE
constant int ERR_SSH_PUBKEY_DATA_TOO_LARGE
The ssh public key data is too large.
Definition User.idl:125
usermgmt::User::ERR_PASSWORD_NEED_NUMERIC
constant int ERR_PASSWORD_NEED_NUMERIC
The password must contain at least one numeric character.
Definition User.idl:119
usermgmt::User::ERR_SSH_PUBKEY_NOT_SUPPORTED
constant int ERR_SSH_PUBKEY_NOT_SUPPORTED
The ssh public key is not supported.
Definition User.idl:127
usermgmt::User::ERR_WRONG_PASSWORD
constant int ERR_WRONG_PASSWORD
The passed-in password was wrong.
Definition User.idl:124
usermgmt::User::ERR_PASSWORD_TOO_SHORT
constant int ERR_PASSWORD_TOO_SHORT
The password is too short.
Definition User.idl:114
usermgmt::User::ERR_PASSWORD_TOO_SHORT_FOR_SNMP
constant int ERR_PASSWORD_TOO_SHORT_FOR_SNMP
The password is too short to be used as SNMPv3 passphrase.
Definition User.idl:122
usermgmt::User::ERR_PASSWORD_UNCHANGED
constant int ERR_PASSWORD_UNCHANGED
The new password must differ from the old password.
Definition User.idl:112
usermgmt::User::getInfoAndPrivileges
void getInfoAndPrivileges(out UserInfo info, out vector< Role::Privilege > privileges)
Get information and a list of granted privileges for a user.
usermgmt::User::ERR_PASSWORD_NEED_LOWER
constant int ERR_PASSWORD_NEED_LOWER
The password must contain at least one lower-case character.
Definition User.idl:117
usermgmt::User::ERR_PASSWORD_TOO_LONG
constant int ERR_PASSWORD_TOO_LONG
The password is too long.
Definition User.idl:115
usermgmt::User::ERR_PASSWORD_IN_HISTORY
constant int ERR_PASSWORD_IN_HISTORY
The password is already in the password history.
Definition User.idl:121
usermgmt::User::ERR_PASSWORD_EMPTY
constant int ERR_PASSWORD_EMPTY
The password must not be empty.
Definition User.idl:113
usermgmt::User::ERR_PASSWORD_NEED_UPPER
constant int ERR_PASSWORD_NEED_UPPER
The password must contain at least one upper-case character.
Definition User.idl:118
usermgmt::User::ERR_SSH_RSA_PUBKEY_TOO_SHORT
constant int ERR_SSH_RSA_PUBKEY_TOO_SHORT
The ssh RSA public key is too short.
Definition User.idl:128
usermgmt::User::ERR_SSH_PUBKEY_INVALID
constant int ERR_SSH_PUBKEY_INVALID
The ssh public key is invalid.
Definition User.idl:126
usermgmt::User::ERR_PASSWORD_CTRL_CHARS
constant int ERR_PASSWORD_CTRL_CHARS
The password must not contain control characters.
Definition User.idl:116
usermgmt::User::updateAccountFull
int updateAccountFull(in string password, in UserInfo info)
Update user information.
usermgmt::User::setAccountPassword
int setAccountPassword(in string password)
Set the account password.
usermgmt::User::ERR_PASSWORD_NEED_SPECIAL
constant int ERR_PASSWORD_NEED_SPECIAL
The password must contain at least one special character.
Definition User.idl:120
usermgmt::User::ERR_INVALID_ARGUMENT
constant int ERR_INVALID_ARGUMENT
Invalid arguments.
Definition User.idl:123
usermgmt::User::setPreferences
int setPreferences(in Preferences prefs)
Sets the user preferences.
usermgmt::User::getCapabilities
UserCapabilities getCapabilities()
Gets the user capabilities.
usermgmt
User Management
Definition Role.idl:12
usermgmt::PressureEnum
PressureEnum
Preferred display unit for (air) pressure sensors.
Definition User.idl:74
usermgmt::PASCAL
@ PASCAL
Pascal.
Definition User.idl:75
usermgmt::PSI
@ PSI
pound-force per square inch
Definition User.idl:76
usermgmt::SnmpV3PrivProto
SnmpV3PrivProto
SNMPv3 privacy protocol.
Definition User.idl:31
usermgmt::AES256_3DES
@ AES256_3DES
Use AES256 encryption with 3DES/Reeder key extension algorithm.
Definition User.idl:37
usermgmt::AES128
@ AES128
Use AES128 encryption.
Definition User.idl:33
usermgmt::AES192_3DES
@ AES192_3DES
Use AES192 encryption with 3DES/Reeder key extension algorithm.
Definition User.idl:36
usermgmt::AES192
@ AES192
Use AES192 encryption with Blumenthal key extension algorithm.
Definition User.idl:34
usermgmt::AES256
@ AES256
Use AES256 encryption with Blumenthal key extension algorithm.
Definition User.idl:35
usermgmt::DES
@ DES
Use DES encryption.
Definition User.idl:32
usermgmt::SnmpV3AuthProto
SnmpV3AuthProto
SNMPv3 authentication protocol.
Definition User.idl:21
usermgmt::SHA224
@ SHA224
Use HMAC-SHA224-128 for authentication.
Definition User.idl:24
usermgmt::SHA384
@ SHA384
Use HMAC-SHA384-256 for authentication.
Definition User.idl:26
usermgmt::SHA256
@ SHA256
Use HMAC-SHA256-160 for authentication.
Definition User.idl:25
usermgmt::SHA1
@ SHA1
Use HMAC-SHA1-96 for authentication.
Definition User.idl:23
usermgmt::SHA512
@ SHA512
Use HMAC-SHA512-384 for authentication.
Definition User.idl:27
usermgmt::MD5
@ MD5
Use HMAC-MD5-96 for authentication.
Definition User.idl:22
usermgmt::TemperatureEnum
TemperatureEnum
Preferred display unit for temperature sensors.
Definition User.idl:62
usermgmt::DEG_F
@ DEG_F
Degrees Fahrenheit.
Definition User.idl:64
usermgmt::DEG_C
@ DEG_C
Degrees Celsius.
Definition User.idl:63
usermgmt::LengthEnum
LengthEnum
Preferred display unit for length measurements, e.g.
Definition User.idl:68
usermgmt::FEET
@ FEET
Feet.
Definition User.idl:70
usermgmt::METER
@ METER
Meters.
Definition User.idl:69
usermgmt::SnmpV3SecLevel
SnmpV3SecLevel
SNMPv3 security level.
Definition User.idl:14
usermgmt::NO_AUTH_NO_PRIV
@ NO_AUTH_NO_PRIV
No authentication and no privacy protocol.
Definition User.idl:15
usermgmt::AUTH_PRIV
@ AUTH_PRIV
Use both, authentication and privacy protocol.
Definition User.idl:17
usermgmt::AUTH_NO_PRIV
@ AUTH_NO_PRIV
Use authentication but no privacy protocol.
Definition User.idl:16
usermgmt::AuxInfo
Auxiliary user information.
Definition User.idl:55
usermgmt::AuxInfo::fullname
string fullname
Full name.
Definition User.idl:56
usermgmt::AuxInfo::telephone
string telephone
Telephone number.
Definition User.idl:57
usermgmt::AuxInfo::eMail
string eMail
Email address.
Definition User.idl:58
usermgmt::Preferences
User preferences
Definition User.idl:80
usermgmt::Preferences::pressureUnit
PressureEnum pressureUnit
Display unit for pressure sensors.
Definition User.idl:83
usermgmt::Preferences::temperatureUnit
TemperatureEnum temperatureUnit
Display unit for temperature sensors.
Definition User.idl:81
usermgmt::Preferences::lengthUnit
LengthEnum lengthUnit
Display unit for length measurements.
Definition User.idl:82
usermgmt::SnmpV3Settings
SNMPv3 settings.
Definition User.idl:41
usermgmt::SnmpV3Settings::haveAuthPassphrase
boolean haveAuthPassphrase
Authentication passphrase present.
Definition User.idl:46
usermgmt::SnmpV3Settings::enabled
boolean enabled
SNMPv3 enabled.
Definition User.idl:42
usermgmt::SnmpV3Settings::authProtocol
SnmpV3AuthProto authProtocol
Authentication protocol.
Definition User.idl:44
usermgmt::SnmpV3Settings::privPassphrase
string privPassphrase
Privacy passphrase; cannot be read back.
Definition User.idl:51
usermgmt::SnmpV3Settings::secLevel
SnmpV3SecLevel secLevel
Security level.
Definition User.idl:43
usermgmt::SnmpV3Settings::useAuthPassphraseAsPrivPassphrase
boolean useAuthPassphraseAsPrivPassphrase
Use authentication passphrase as privacy passphrase.
Definition User.idl:49
usermgmt::SnmpV3Settings::authPassphrase
string authPassphrase
Authentication passphrase; cannot be read back.
Definition User.idl:47
usermgmt::SnmpV3Settings::privProtocol
SnmpV3PrivProto privProtocol
Privacy protocol.
Definition User.idl:48
usermgmt::SnmpV3Settings::usePasswordAsAuthPassphrase
boolean usePasswordAsAuthPassphrase
Use account password for SNMPv3 authentication.
Definition User.idl:45
usermgmt::SnmpV3Settings::havePrivPassphrase
boolean havePrivPassphrase
Privacy passphrase present.
Definition User.idl:50
usermgmt::UserCapabilities
User Capabilities Describe if certain operations can be performed for user.
Definition User.idl:104
usermgmt::UserCapabilities::canSetPreferences
boolean canSetPreferences
User preferences are modifyable.
Definition User.idl:106
usermgmt::UserCapabilities::canSetPassword
boolean canSetPassword
User password is modifyable.
Definition User.idl:105
usermgmt::UserInfo
User information
Definition User.idl:87
usermgmt::UserInfo::auxInfo
AuxInfo auxInfo
Auxiliary user information.
Definition User.idl:92
usermgmt::UserInfo::enabled
boolean enabled
true if the account is enabled
Definition User.idl:88
usermgmt::UserInfo::locked
boolean locked
true if the account cannot be deleted
Definition User.idl:89
usermgmt::UserInfo::needPasswordChange
boolean needPasswordChange
true to force a password change on the next login
Definition User.idl:91
usermgmt::UserInfo::blocked
boolean blocked
true if the account is blocked due to failed logins
Definition User.idl:90
usermgmt::UserInfo::preferences
Preferences preferences
User preferences
Definition User.idl:95
usermgmt::UserInfo::roleIds
vector< int > roleIds
List of role ids for this account.
Definition User.idl:96
usermgmt::UserInfo::sshPublicKey
string sshPublicKey
Public key for SSH access.
Definition User.idl:94
usermgmt::UserInfo::snmpV3Settings
SnmpV3Settings snmpV3Settings
SNMPv3 settings.
Definition User.idl:93