namespace Unosquare.Swan.Networking.Ldap {
///
/// LDAP Connection Status Code.
///
public enum LdapStatusCode {
///
/// Indicates the requested client operation completed successfully.
/// SUCCESS = 0
///
Success = 0,
///
/// Indicates an internal error.
/// The server is unable to respond with a more specific error and is
/// also unable to properly respond to a request. It does not indicate
/// that the client has sent an erroneous message.
/// OPERATIONS_ERROR = 1
///
OperationsError = 1,
///
/// Indicates that the server has received an invalid or malformed request
/// from the client.
/// PROTOCOL_ERROR = 2
///
ProtocolError = 2,
///
/// Indicates that the operation's time limit specified by either the
/// client or the server has been exceeded.
/// On search operations, incomplete results are returned.
/// TIME_LIMIT_EXCEEDED = 3
///
TimeLimitExceeded = 3,
///
/// Indicates that in a search operation, the size limit specified by
/// the client or the server has been exceeded. Incomplete results are
/// returned.
/// SIZE_LIMIT_EXCEEDED = 4
///
SizeLimitExceeded = 4,
///
/// Does not indicate an error condition. Indicates that the results of
/// a compare operation are false.
/// COMPARE_FALSE = 5
///
CompareFalse = 5,
///
/// Does not indicate an error condition. Indicates that the results of a
/// compare operation are true.
/// COMPARE_TRUE = 6
///
CompareTrue = 6,
///
/// Indicates that during a bind operation the client requested an
/// authentication method not supported by the Ldap server.
/// AUTH_METHOD_NOT_SUPPORTED = 7
///
AuthMethodNotSupported = 7,
///
/// Indicates a problem with the level of authentication.
/// One of the following has occurred:
/// -
/// In bind requests, the Ldap server accepts only strong
/// authentication.
///
-
/// In a client request, the client requested an operation such as delete
/// that requires strong authentication.
///
-
/// In an unsolicited notice of disconnection, the Ldap server discovers
/// the security protecting the communication between the client and
/// server has unexpectedly failed or been compromised.
///
/// STRONG_AUTH_REQUIRED = 8
///
StrongAuthRequired = 8,
///
/// Returned by some Ldap servers to Ldapv2 clients to indicate that a referral
/// has been returned in the error string.
/// Ldap_PARTIAL_RESULTS = 9
///
LdapPartialResults = 9,
///
/// Does not indicate an error condition. In Ldapv3, indicates that the server
/// does not hold the target entry of the request, but that the servers in the
/// referral field may.
/// REFERRAL = 10
///
Referral = 10,
///
/// Indicates that an Ldap server limit set by an administrative authority
/// has been exceeded.
/// ADMIN_LIMIT_EXCEEDED = 11
///
AdminLimitExceeded = 11,
///
/// Indicates that the Ldap server was unable to satisfy a request because
/// one or more critical extensions were not available.
/// Either the server does not support the control or the control is not
/// appropriate for the operation type.
/// UNAVAILABLE_CRITICAL_EXTENSION = 12
///
UnavailableCriticalExtension = 12,
///
/// Indicates that the session is not protected by a protocol such as
/// Transport Layer Security (TLS), which provides session confidentiality.
/// CONFIDENTIALITY_REQUIRED = 13
///
ConfidentialityRequired = 13,
///
/// Does not indicate an error condition, but indicates that the server is
/// ready for the next step in the process. The client must send the server
/// the same SASL mechanism to continue the process.
/// SASL_BIND_IN_PROGRESS = 14
///
SaslBindInProgress = 14,
///
/// Indicates that the attribute specified in the modify or compare
/// operation does not exist in the entry.
/// NO_SUCH_ATTRIBUTE = 16
///
NoSuchAttribute = 16,
///
/// Indicates that the attribute specified in the modify or add operation
/// does not exist in the Ldap server's schema.
/// UNDEFINED_ATTRIBUTE_TYPE = 17
///
UndefinedAttributeType = 17,
///
/// Indicates that the matching rule specified in the search filter does
/// not match a rule defined for the attribute's syntax.
/// INAPPROPRIATE_MATCHING = 18
///
InappropriateMatching = 18,
///
/// Indicates that the attribute value specified in a modify, add, or
/// modify DN operation violates constraints placed on the attribute. The
/// constraint can be one of size or content (for example, string only,
/// no binary data).
/// CONSTRAINT_VIOLATION = 19
///
ConstraintViolation = 19,
///
/// Indicates that the attribute value specified in a modify or add
/// operation already exists as a value for that attribute.
/// ATTRIBUTE_OR_VALUE_EXISTS = 20
///
AttributeOrValueExists = 20,
///
/// Indicates that the attribute value specified in an add, compare, or
/// modify operation is an unrecognized or invalid syntax for the attribute.
/// INVALID_ATTRIBUTE_SYNTAX = 21
///
InvalidAttributeSyntax = 21,
///
/// Indicates the target object cannot be found.
/// This code is not returned on the following operations:
///
/// -
/// Search operations that find the search base but cannot find any
/// entries that match the search filter.
///
/// - Bind operations.
///
/// NO_SUCH_OBJECT = 32
///
NoSuchObject = 32,
///
/// Indicates that an error occurred when an alias was dereferenced.
/// ALIAS_PROBLEM = 33
///
AliasProblem = 33,
///
/// Indicates that the syntax of the DN is incorrect.
/// If the DN syntax is correct, but the Ldap server's structure
/// rules do not permit the operation, the server returns
/// Ldap_UNWILLING_TO_PERFORM.
/// INVALID_DN_SYNTAX = 34
///
InvalidDnSyntax = 34,
///
/// Indicates that the specified operation cannot be performed on a
/// leaf entry.
/// This code is not currently in the Ldap specifications, but is
/// reserved for this constant.
/// IS_LEAF = 35
///
IsLeaf = 35,
///
/// Indicates that during a search operation, either the client does not
/// have access rights to read the aliased object's name or dereferencing
/// is not allowed.
/// ALIAS_DEREFERENCING_PROBLEM = 36
///
AliasDereferencingProblem = 36,
///
/// Indicates that during a bind operation, the client is attempting to use
/// an authentication method that the client cannot use correctly.
/// For example, either of the following cause this error:
///
/// -
/// The client returns simple credentials when strong credentials are
/// required.
///
/// -
/// The client returns a DN and a password for a simple bind when the
/// entry does not have a password defined.
///
///
/// INAPPROPRIATE_AUTHENTICATION = 48
///
InappropriateAuthentication = 48,
///
/// Indicates that invalid information was passed during a bind operation.
/// One of the following occurred:
///
/// - The client passed either an incorrect DN or password.
/// -
/// The password is incorrect because it has expired, intruder detection
/// has locked the account, or some other similar reason.
///
///
/// INVALID_CREDENTIALS = 49
///
InvalidCredentials = 49,
///
/// Indicates that the caller does not have sufficient rights to perform
/// the requested operation.
/// INSUFFICIENT_ACCESS_RIGHTS = 50
///
InsufficientAccessRights = 50,
///
/// Indicates that the Ldap server is too busy to process the client request
/// at this time, but if the client waits and resubmits the request, the
/// server may be able to process it then.
/// BUSY = 51
///
Busy = 51,
///
/// Indicates that the Ldap server cannot process the client's bind
/// request, usually because it is shutting down.
/// UNAVAILABLE = 52
///
Unavailable = 52,
///
/// Indicates that the Ldap server cannot process the request because of
/// server-defined restrictions.
/// This error is returned for the following reasons:
///
/// - The add entry request violates the server's structure rules.
/// -
/// The modify attribute request specifies attributes that users
/// cannot modify.
///
///
/// UNWILLING_TO_PERFORM = 53
///
UnwillingToPerform = 53,
///
/// Indicates that the client discovered an alias or referral loop,
/// and is thus unable to complete this request.
/// LOOP_DETECT = 54
///
LoopDetect = 54,
///
/// Indicates that the add or modify DN operation violates the schema's
/// structure rules.
/// For example,
///
/// - The request places the entry subordinate to an alias.
/// -
/// The request places the entry subordinate to a container that
/// is forbidden by the containment rules.
///
/// - The RDN for the entry uses a forbidden attribute type.
///
/// NAMING_VIOLATION = 64
///
NamingViolation = 64,
///
/// Indicates that the add, modify, or modify DN operation violates the
/// object class rules for the entry.
/// For example, the following types of request return this error:
///
/// -
/// The add or modify operation tries to add an entry without a value
/// for a required attribute.
///
/// -
/// The add or modify operation tries to add an entry with a value for
/// an attribute which the class definition does not contain.
///
/// -
/// The modify operation tries to remove a required attribute without
/// removing the auxiliary class that defines the attribute as required.
///
///
/// OBJECT_CLASS_VIOLATION = 65
///
ObjectClassViolation = 65,
///
/// Indicates that the requested operation is permitted only on leaf entries.
/// For example, the following types of requests return this error:
///
/// - The client requests a delete operation on a parent entry.
/// - The client request a modify DN operation on a parent entry.
///
/// NOT_ALLOWED_ON_NONLEAF = 66
///
NotAllowedOnNonleaf = 66,
///
/// Indicates that the modify operation attempted to remove an attribute
/// value that forms the entry's relative distinguished name.
/// NOT_ALLOWED_ON_RDN = 67
///
NotAllowedOnRdn = 67,
///
/// Indicates that the add operation attempted to add an entry that already
/// exists, or that the modify operation attempted to rename an entry to the
/// name of an entry that already exists.
/// ENTRY_ALREADY_EXISTS = 68
///
EntryAlreadyExists = 68,
///
/// Indicates that the modify operation attempted to modify the structure
/// rules of an object class.
/// OBJECT_CLASS_MODS_PROHIBITED = 69
///
ObjectClassModsProhibited = 69,
///
/// Indicates that the modify DN operation moves the entry from one Ldap
/// server to another and thus requires more than one Ldap server.
/// AFFECTS_MULTIPLE_DSAS = 71
///
AffectsMultipleDsas = 71,
///
/// Indicates an unknown error condition.
/// OTHER = 80
///
Other = 80,
/////////////////////////////////////////////////////////////////////////////
// Local Errors, resulting from actions other than an operation on a server
/////////////////////////////////////////////////////////////////////////////
///
/// Indicates that the Ldap libraries cannot establish an initial connection
/// with the Ldap server. Either the Ldap server is down or the specified
/// host name or port number is incorrect.
/// SERVER_DOWN = 81
///
ServerDown = 81,
///
/// Indicates that the Ldap client has an error. This is usually a failed
/// dynamic memory allocation error.
/// LOCAL_ERROR = 82
///
LocalError = 82,
///
/// Indicates that the Ldap client encountered errors when encoding an
/// Ldap request intended for the Ldap server.
/// ENCODING_ERROR = 83
///
EncodingError = 83,
///
/// Indicates that the Ldap client encountered errors when decoding an
/// Ldap response from the Ldap server.
/// DECODING_ERROR = 84
///
DecodingError = 84,
///
/// Indicates that the time limit of the Ldap client was exceeded while
/// waiting for a result.
/// Ldap_TIMEOUT = 85
///
LdapTimeout = 85,
///
/// Indicates that a bind method was called with an unknown
/// authentication method.
/// AUTH_UNKNOWN = 86
///
AuthUnknown = 86,
///
/// Indicates that the search method was called with an invalid
/// search filter.
/// FILTER_ERROR = 87
///
FilterError = 87,
///
/// Indicates that the user cancelled the Ldap operation.
/// USER_CANCELLED = 88
///
UserCancelled = 88,
///
/// Indicates that a dynamic memory allocation method failed when calling
/// an Ldap method.
/// NO_MEMORY = 90
///
NoMemory = 90,
///
/// Indicates that the Ldap client has lost either its connection or
/// cannot establish a connection to the Ldap server.
/// CONNECT_ERROR = 91
///
ConnectError = 91,
///
/// Indicates that the requested functionality is not supported by the
/// client. For example, if the Ldap client is established as an Ldapv2
/// client, the libraries set this error code when the client requests
/// Ldapv3 functionality.
/// Ldap_NOT_SUPPORTED = 92
///
LdapNotSupported = 92,
///
/// Indicates that the client requested a control that the libraries
/// cannot find in the list of supported controls sent by the Ldap server.
/// CONTROL_NOT_FOUND = 93
///
ControlNotFound = 93,
///
/// Indicates that the Ldap server sent no results.
/// NO_RESULTS_RETURNED = 94
///
NoResultsReturned = 94,
///
/// Indicates that more results are chained in the result message.
/// MORE_RESULTS_TO_RETURN = 95
///
MoreResultsToReturn = 95,
///
/// Indicates the Ldap libraries detected a loop. Usually this happens
/// when following referrals.
/// CLIENT_LOOP = 96
///
ClientLoop = 96,
///
/// Indicates that the referral exceeds the hop limit. The default hop
/// limit is ten.
/// The hop limit determines how many servers the client can hop through
/// to retrieve data. For example, suppose the following conditions:
///
/// - Suppose the hop limit is two.
/// -
/// If the referral is to server D which can be contacted only through
/// server B (1 hop) which contacts server C (2 hops) which contacts
/// server D (3 hops).
///
///
/// With these conditions, the hop limit is exceeded and the Ldap
/// libraries set this code.
/// REFERRAL_LIMIT_EXCEEDED = 97
///
ReferralLimitExceeded = 97,
///
/// Indicates that the server response to a request is invalid.
/// INVALID_RESPONSE = 100
///
InvalidResponse = 100,
///
/// Indicates that the server response to a request is ambiguous.
/// AMBIGUOUS_RESPONSE = 101
///
AmbiguousResponse = 101,
///
/// Indicates that TLS is not supported on the server.
/// TLS_NOT_SUPPORTED = 112
///
TlsNotSupported = 112,
///
/// Indicates that SSL Handshake could not succeed.
/// SSL_HANDSHAKE_FAILED = 113
///
SslHandshakeFailed = 113,
///
/// Indicates that SSL Provider could not be found.
/// SSL_PROVIDER_NOT_FOUND = 114
///
SslProviderNotFound = 114,
}
}