Loading...
Searching...
No Matches
User.idl
/* SPDX-License-Identifier: BSD-3-Clause */
/*
* Copyright 2009 Raritan Inc. All rights reserved.
*/
#include "Role.idl"
/**
* %User Management
*/
module usermgmt {
/** SNMPv3 security level */
enumeration SnmpV3SecLevel {
NO_AUTH_NO_PRIV, ///< No authentication and no privacy protocol
AUTH_NO_PRIV, ///< Use authentication but no privacy protocol
AUTH_PRIV ///< Use both, authentication and privacy protocol
};
/** SNMPv3 authentication protocol */
enumeration SnmpV3AuthProto {
MD5, ///< Use HMAC-MD5-96 for authentication
SHA1, ///< Use HMAC-SHA1-96 for authentication
SHA224, ///< Use HMAC-SHA224-128 for authentication
SHA256, ///< Use HMAC-SHA256-160 for authentication
SHA384, ///< Use HMAC-SHA384-256 for authentication
SHA512 ///< Use HMAC-SHA512-384 for authentication
};
/** SNMPv3 privacy protocol */
enumeration SnmpV3PrivProto {
DES, ///< Use DES encryption
AES128, ///< Use AES128 encryption
AES192, ///< Use AES192 encryption with Blumenthal key extension algorithm
AES256, ///< Use AES256 encryption with Blumenthal key extension algorithm
AES192_3DES, ///< Use AES192 encryption with 3DES/Reeder key extension algorithm
AES256_3DES ///< Use AES256 encryption with 3DES/Reeder key extension algorithm
};
/** SNMPv3 settings */
structure SnmpV3Settings {
boolean enabled; ///< SNMPv3 enabled
SnmpV3SecLevel secLevel; ///< Security level
SnmpV3AuthProto authProtocol; ///< Authentication protocol
boolean usePasswordAsAuthPassphrase; ///< Use account password for SNMPv3 authentication
boolean haveAuthPassphrase; ///< Authentication passphrase present
string authPassphrase; ///< Authentication passphrase; cannot be read back
SnmpV3PrivProto privProtocol; ///< Privacy protocol
boolean useAuthPassphraseAsPrivPassphrase; ///< Use authentication passphrase as privacy passphrase
boolean havePrivPassphrase; ///< Privacy passphrase present
string privPassphrase; ///< Privacy passphrase; cannot be read back
};
/** Auxiliary user information */
structure AuxInfo {
string fullname; ///< Full name
string telephone; ///< Telephone number
string eMail; ///< Email address
};
/** Preferred display unit for temperature sensors */
enumeration TemperatureEnum {
DEG_C, ///< Degrees Celsius
DEG_F ///< Degrees Fahrenheit
};
/** Preferred display unit for length measurements, e.g. device altitude */
enumeration LengthEnum {
METER, ///< Meters
FEET ///< Feet
};
/** Preferred display unit for (air) pressure sensors */
enumeration PressureEnum {
PASCAL, ///< Pascal
PSI ///< pound-force per square inch
};
/** %User preferences */
structure Preferences {
TemperatureEnum temperatureUnit; ///< Display unit for temperature sensors
LengthEnum lengthUnit; ///< Display unit for length measurements
PressureEnum pressureUnit; ///< Display unit for pressure sensors
};
/** %User information */
structure UserInfo {
boolean enabled; ///< \c true if the account is enabled
boolean locked; ///< \c true if the account cannot be deleted
boolean blocked; ///< \c true if the account is blocked due to failed logins
boolean needPasswordChange; ///< \c true to force a password change on the next login
AuxInfo auxInfo; ///< Auxiliary user information
SnmpV3Settings snmpV3Settings; ///< SNMPv3 settings
string sshPublicKey; ///< Public key for SSH access
Preferences preferences; ///< %User preferences
vector<int> roleIds; ///< List of role ids for this account
};
/**
* %User Capabilities
* Describe if certain operations can be performed for user.
* May require according privileges.
*/
structure UserCapabilities {
boolean canSetPassword; ///< User password is modifyable
boolean canSetPreferences; ///< User preferences are modifyable
};
/** %User interface */
interface User {
constant int ERR_PASSWORD_UNCHANGED = 1; ///< The new password must differ from the old password
constant int ERR_PASSWORD_EMPTY = 2; ///< The password must not be empty
constant int ERR_PASSWORD_TOO_SHORT = 3; ///< The password is too short
constant int ERR_PASSWORD_TOO_LONG = 4; ///< The password is too long
constant int ERR_PASSWORD_CTRL_CHARS = 5; ///< The password must not contain control characters
constant int ERR_PASSWORD_NEED_LOWER = 6; ///< The password must contain at least one lower-case character
constant int ERR_PASSWORD_NEED_UPPER = 7; ///< The password must contain at least one upper-case character
constant int ERR_PASSWORD_NEED_NUMERIC = 8; ///< The password must contain at least one numeric character
constant int ERR_PASSWORD_NEED_SPECIAL = 9; ///< The password must contain at least one special character
constant int ERR_PASSWORD_IN_HISTORY = 10; ///< The password is already in the password history
constant int ERR_PASSWORD_TOO_SHORT_FOR_SNMP = 11; ///< The password is too short to be used as SNMPv3 passphrase
constant int ERR_INVALID_ARGUMENT = 12; ///< Invalid arguments
constant int ERR_WRONG_PASSWORD = 13; ///< The passed-in password was wrong
constant int ERR_SSH_PUBKEY_DATA_TOO_LARGE = 14; ///< The ssh public key data is too large.
constant int ERR_SSH_PUBKEY_INVALID = 15; ///< The ssh public key is invalid.
constant int ERR_SSH_PUBKEY_NOT_SUPPORTED = 16; ///< The ssh public key is not supported.
constant int ERR_SSH_RSA_PUBKEY_TOO_SHORT = 17; ///< The ssh RSA public key is too short.
/**
* Get user information.
*
* @return %User information
*/
UserInfo getInfo();
/**
* Set the account password.
*
* @param password The new password
*
* @return 0 OK
* @return 1 The new password has to differ from old password.
* @return 2 The password must not be empty.
* @return 3 The password is too short.
* @return 4 The password is too long.
* @return 5 The password must not contain control characters.
* @return 6 The password has to contain at least one lower case
* character.
* @return 7 The password has to contain at least one upper case
* character.
* @return 8 The password has to contain at least one numeric
* character.
* @return 9 The password has to contain at least one printable
* special character.
* @return 10 The password already is in history.
* @return 11 SNMPv3 USM is activated for the user and the
* password shall be used as auth passphrase. For this
* case, the password is too short (must be at least 8
* characters).
*/
int setAccountPassword(in string password);
/**
* Update user information.
*
* @param password The new password; empty to leave unchanged
* @param info The new user information
*
* @return 0 OK
* @return 1 The new password has to differ from old password.
* @return 3 The password is too short.
* @return 4 The password is too long.
* @return 5 The password must not contain control characters.
* @return 6 The password has to contain at least one lower case
* character.
* @return 7 The password has to contain at least one upper case
* character.
* @return 8 The password has to contain at least one numeric
* character.
* @return 9 The password has to contain at least one printable
* special character.
* @return 10 The password already is in history.
* @return 11 SNMPv3 USM is activated for the user and the
* password shall be used as auth passphrase. For this
* case, the password is too short (must be at least 8
* characters).
* @return 12 An argument is invalid or out of range
* @return 13 The password passed in as SNMPv3 authentication pass
* phrase was wrong.
* @return 14 The ssh public key data is too large.
* @return 15 The ssh public key is invalid.
* @return 16 The ssh public key is not supported.
* @return 17 The ssh RSA public key is too short.
*/
int updateAccountFull(in string password, in UserInfo info);
/**
* Get information and a list of granted privileges for a user.
*
* @param info %User information
* @param privileges List of granted privileges
*/
void getInfoAndPrivileges(out UserInfo info,
out vector<Role.Privilege> privileges);
/**
* Sets the user preferences.
*
* @param prefs User Preferences
*
* @return 0 OK
* @return ERR_INVALID_ARGUMENT An argument is invalid or out of range
*/
int setPreferences(in Preferences prefs);
/**
* Gets the user capabilities.
*
* @return capabilities
*/
UserCapabilities getCapabilities();
};
}
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