// Copyright 2021 Converter Systems LLC. All rights reserved.

// Code generated by go generate; DO NOT EDIT.

package ua

const (
    // An unexpected error occurred.
    BadUnexpectedError    StatusCode = 0x80010000
    // An internal error occurred as a result of a programming or configuration error.
    BadInternalError    StatusCode = 0x80020000
    // Not enough memory to complete the operation.
    BadOutOfMemory    StatusCode = 0x80030000
    // An operating system resource is not available.
    BadResourceUnavailable    StatusCode = 0x80040000
    // A low level communication error occurred.
    BadCommunicationError    StatusCode = 0x80050000
    // Encoding halted because of invalid data in the objects being serialized.
    BadEncodingError    StatusCode = 0x80060000
    // Decoding halted because of invalid data in the stream.
    BadDecodingError    StatusCode = 0x80070000
    // The message encoding/decoding limits imposed by the stack have been exceeded.
    BadEncodingLimitsExceeded    StatusCode = 0x80080000
    // The request message size exceeds limits set by the server.
    BadRequestTooLarge    StatusCode = 0x80B80000
    // The response message size exceeds limits set by the client.
    BadResponseTooLarge    StatusCode = 0x80B90000
    // An unrecognized response was received from the server.
    BadUnknownResponse    StatusCode = 0x80090000
    // The operation timed out.
    BadTimeout    StatusCode = 0x800A0000
    // The server does not support the requested service.
    BadServiceUnsupported    StatusCode = 0x800B0000
    // The operation was cancelled because the application is shutting down.
    BadShutdown    StatusCode = 0x800C0000
    // The operation could not complete because the client is not connected to the server.
    BadServerNotConnected    StatusCode = 0x800D0000
    // The server has stopped and cannot process any requests.
    BadServerHalted    StatusCode = 0x800E0000
    // There was nothing to do because the client passed a list of operations with no elements.
    BadNothingToDo    StatusCode = 0x800F0000
    // The request could not be processed because it specified too many operations.
    BadTooManyOperations    StatusCode = 0x80100000
    // The request could not be processed because there are too many monitored items in the subscription.
    BadTooManyMonitoredItems    StatusCode = 0x80DB0000
    // The extension object cannot be (de)serialized because the data type id is not recognized.
    BadDataTypeIDUnknown    StatusCode = 0x80110000
    // The certificate provided as a parameter is not valid.
    BadCertificateInvalid    StatusCode = 0x80120000
    // An error occurred verifying security.
    BadSecurityChecksFailed    StatusCode = 0x80130000
    // The certificate does not meet the requirements of the security policy.
    BadCertificatePolicyCheckFailed    StatusCode = 0x81140000
    // The certificate has expired or is not yet valid.
    BadCertificateTimeInvalid    StatusCode = 0x80140000
    // An issuer certificate has expired or is not yet valid.
    BadCertificateIssuerTimeInvalid    StatusCode = 0x80150000
    // The HostName used to connect to a server does not match a HostName in the certificate.
    BadCertificateHostNameInvalid    StatusCode = 0x80160000
    // The URI specified in the ApplicationDescription does not match the URI in the certificate.
    BadCertificateURIInvalid    StatusCode = 0x80170000
    // The certificate may not be used for the requested operation.
    BadCertificateUseNotAllowed    StatusCode = 0x80180000
    // The issuer certificate may not be used for the requested operation.
    BadCertificateIssuerUseNotAllowed    StatusCode = 0x80190000
    // The certificate is not trusted.
    BadCertificateUntrusted    StatusCode = 0x801A0000
    // It was not possible to determine if the certificate has been revoked.
    BadCertificateRevocationUnknown    StatusCode = 0x801B0000
    // It was not possible to determine if the issuer certificate has been revoked.
    BadCertificateIssuerRevocationUnknown    StatusCode = 0x801C0000
    // The certificate has been revoked.
    BadCertificateRevoked    StatusCode = 0x801D0000
    // The issuer certificate has been revoked.
    BadCertificateIssuerRevoked    StatusCode = 0x801E0000
    // The certificate chain is incomplete.
    BadCertificateChainIncomplete    StatusCode = 0x810D0000
    // User does not have permission to perform the requested operation.
    BadUserAccessDenied    StatusCode = 0x801F0000
    // The user identity token is not valid.
    BadIdentityTokenInvalid    StatusCode = 0x80200000
    // The user identity token is valid but the server has rejected it.
    BadIdentityTokenRejected    StatusCode = 0x80210000
    // The specified secure channel is no longer valid.
    BadSecureChannelIDInvalid    StatusCode = 0x80220000
    // The timestamp is outside the range allowed by the server.
    BadInvalidTimestamp    StatusCode = 0x80230000
    // The nonce does appear to be not a random value or it is not the correct length.
    BadNonceInvalid    StatusCode = 0x80240000
    // The session id is not valid.
    BadSessionIDInvalid    StatusCode = 0x80250000
    // The session was closed by the client.
    BadSessionClosed    StatusCode = 0x80260000
    // The session cannot be used because ActivateSession has not been called.
    BadSessionNotActivated    StatusCode = 0x80270000
    // The subscription id is not valid.
    BadSubscriptionIDInvalid    StatusCode = 0x80280000
    // The header for the request is missing or invalid.
    BadRequestHeaderInvalid    StatusCode = 0x802A0000
    // The timestamps to return parameter is invalid.
    BadTimestampsToReturnInvalid    StatusCode = 0x802B0000
    // The request was cancelled by the client.
    BadRequestCancelledByClient    StatusCode = 0x802C0000
    // Too many arguments were provided.
    BadTooManyArguments    StatusCode = 0x80E50000
    // The server requires a license to operate in general or to perform a service or operation, but existing license is expired.
    BadLicenseExpired    StatusCode = 0x810E0000
    // The server has limits on number of allowed operations / objects, based on installed licenses, and these limits where exceeded.
    BadLicenseLimitsExceeded    StatusCode = 0x810F0000
    // The server does not have a license which is required to operate in general or to perform a service or operation.
    BadLicenseNotAvailable    StatusCode = 0x81100000
    // The subscription was transferred to another session.
    GoodSubscriptionTransferred    StatusCode = 0x002D0000
    // The processing will complete asynchronously.
    GoodCompletesAsynchronously    StatusCode = 0x002E0000
    // Sampling has slowed down due to resource limitations.
    GoodOverload    StatusCode = 0x002F0000
    // The value written was accepted but was clamped.
    GoodClamped    StatusCode = 0x00300000
    // Communication with the data source is defined, but not established, and there is no last known value available.
    BadNoCommunication    StatusCode = 0x80310000
    // Waiting for the server to obtain values from the underlying data source.
    BadWaitingForInitialData    StatusCode = 0x80320000
    // The syntax of the node id is not valid.
    BadNodeIDInvalid    StatusCode = 0x80330000
    // The node id refers to a node that does not exist in the server address space.
    BadNodeIDUnknown    StatusCode = 0x80340000
    // The attribute is not supported for the specified Node.
    BadAttributeIDInvalid    StatusCode = 0x80350000
    // The syntax of the index range parameter is invalid.
    BadIndexRangeInvalid    StatusCode = 0x80360000
    // No data exists within the range of indexes specified.
    BadIndexRangeNoData    StatusCode = 0x80370000
    // The data encoding is invalid.
    BadDataEncodingInvalid    StatusCode = 0x80380000
    // The server does not support the requested data encoding for the node.
    BadDataEncodingUnsupported    StatusCode = 0x80390000
    // The access level does not allow reading or subscribing to the Node.
    BadNotReadable    StatusCode = 0x803A0000
    // The access level does not allow writing to the Node.
    BadNotWritable    StatusCode = 0x803B0000
    // The value was out of range.
    BadOutOfRange    StatusCode = 0x803C0000
    // The requested operation is not supported.
    BadNotSupported    StatusCode = 0x803D0000
    // A requested item was not found or a search operation ended without success.
    BadNotFound    StatusCode = 0x803E0000
    // The object cannot be used because it has been deleted.
    BadObjectDeleted    StatusCode = 0x803F0000
    // Requested operation is not implemented.
    BadNotImplemented    StatusCode = 0x80400000
    // The monitoring mode is invalid.
    BadMonitoringModeInvalid    StatusCode = 0x80410000
    // The monitoring item id does not refer to a valid monitored item.
    BadMonitoredItemIDInvalid    StatusCode = 0x80420000
    // The monitored item filter parameter is not valid.
    BadMonitoredItemFilterInvalid    StatusCode = 0x80430000
    // The server does not support the requested monitored item filter.
    BadMonitoredItemFilterUnsupported    StatusCode = 0x80440000
    // A monitoring filter cannot be used in combination with the attribute specified.
    BadFilterNotAllowed    StatusCode = 0x80450000
    // A mandatory structured parameter was missing or null.
    BadStructureMissing    StatusCode = 0x80460000
    // The event filter is not valid.
    BadEventFilterInvalid    StatusCode = 0x80470000
    // The content filter is not valid.
    BadContentFilterInvalid    StatusCode = 0x80480000
    // An unrecognized operator was provided in a filter.
    BadFilterOperatorInvalid    StatusCode = 0x80C10000
    // A valid operator was provided, but the server does not provide support for this filter operator.
    BadFilterOperatorUnsupported    StatusCode = 0x80C20000
    // The number of operands provided for the filter operator was less then expected for the operand provided.
    BadFilterOperandCountMismatch    StatusCode = 0x80C30000
    // The operand used in a content filter is not valid.
    BadFilterOperandInvalid    StatusCode = 0x80490000
    // The referenced element is not a valid element in the content filter.
    BadFilterElementInvalid    StatusCode = 0x80C40000
    // The referenced literal is not a valid value.
    BadFilterLiteralInvalid    StatusCode = 0x80C50000
    // The continuation point provide is longer valid.
    BadContinuationPointInvalid    StatusCode = 0x804A0000
    // The operation could not be processed because all continuation points have been allocated.
    BadNoContinuationPoints    StatusCode = 0x804B0000
    // The reference type id does not refer to a valid reference type node.
    BadReferenceTypeIDInvalid    StatusCode = 0x804C0000
    // The browse direction is not valid.
    BadBrowseDirectionInvalid    StatusCode = 0x804D0000
    // The node is not part of the view.
    BadNodeNotInView    StatusCode = 0x804E0000
    // The number was not accepted because of a numeric overflow.
    BadNumericOverflow    StatusCode = 0x81120000
    // The ServerUri is not a valid URI.
    BadServerURIInvalid    StatusCode = 0x804F0000
    // No ServerName was specified.
    BadServerNameMissing    StatusCode = 0x80500000
    // No DiscoveryUrl was specified.
    BadDiscoveryURLMissing    StatusCode = 0x80510000
    // The semaphore file specified by the client is not valid.
    BadSempahoreFileMissing    StatusCode = 0x80520000
    // The security token request type is not valid.
    BadRequestTypeInvalid    StatusCode = 0x80530000
    // The security mode does not meet the requirements set by the server.
    BadSecurityModeRejected    StatusCode = 0x80540000
    // The security policy does not meet the requirements set by the server.
    BadSecurityPolicyRejected    StatusCode = 0x80550000
    // The server has reached its maximum number of sessions.
    BadTooManySessions    StatusCode = 0x80560000
    // The user token signature is missing or invalid.
    BadUserSignatureInvalid    StatusCode = 0x80570000
    // The signature generated with the client certificate is missing or invalid.
    BadApplicationSignatureInvalid    StatusCode = 0x80580000
    // The client did not provide at least one software certificate that is valid and meets the profile requirements for the server.
    BadNoValidCertificates    StatusCode = 0x80590000
    // The server does not support changing the user identity assigned to the session.
    BadIdentityChangeNotSupported    StatusCode = 0x80C60000
    // The request was cancelled by the client with the Cancel service.
    BadRequestCancelledByRequest    StatusCode = 0x805A0000
    // The parent node id does not to refer to a valid node.
    BadParentNodeIDInvalid    StatusCode = 0x805B0000
    // The reference could not be created because it violates constraints imposed by the data model.
    BadReferenceNotAllowed    StatusCode = 0x805C0000
    // The requested node id was reject because it was either invalid or server does not allow node ids to be specified by the client.
    BadNodeIDRejected    StatusCode = 0x805D0000
    // The requested node id is already used by another node.
    BadNodeIDExists    StatusCode = 0x805E0000
    // The node class is not valid.
    BadNodeClassInvalid    StatusCode = 0x805F0000
    // The browse name is invalid.
    BadBrowseNameInvalid    StatusCode = 0x80600000
    // The browse name is not unique among nodes that share the same relationship with the parent.
    BadBrowseNameDuplicated    StatusCode = 0x80610000
    // The node attributes are not valid for the node class.
    BadNodeAttributesInvalid    StatusCode = 0x80620000
    // The type definition node id does not reference an appropriate type node.
    BadTypeDefinitionInvalid    StatusCode = 0x80630000
    // The source node id does not reference a valid node.
    BadSourceNodeIDInvalid    StatusCode = 0x80640000
    // The target node id does not reference a valid node.
    BadTargetNodeIDInvalid    StatusCode = 0x80650000
    // The reference type between the nodes is already defined.
    BadDuplicateReferenceNotAllowed    StatusCode = 0x80660000
    // The server does not allow this type of self reference on this node.
    BadInvalidSelfReference    StatusCode = 0x80670000
    // The reference type is not valid for a reference to a remote server.
    BadReferenceLocalOnly    StatusCode = 0x80680000
    // The server will not allow the node to be deleted.
    BadNoDeleteRights    StatusCode = 0x80690000
    // The server was not able to delete all target references.
    UncertainReferenceNotDeleted    StatusCode = 0x40BC0000
    // The server index is not valid.
    BadServerIndexInvalid    StatusCode = 0x806A0000
    // The view id does not refer to a valid view node.
    BadViewIDUnknown    StatusCode = 0x806B0000
    // The view timestamp is not available or not supported.
    BadViewTimestampInvalid    StatusCode = 0x80C90000
    // The view parameters are not consistent with each other.
    BadViewParameterMismatch    StatusCode = 0x80CA0000
    // The view version is not available or not supported.
    BadViewVersionInvalid    StatusCode = 0x80CB0000
    // The list of references may not be complete because the underlying system is not available.
    UncertainNotAllNodesAvailable    StatusCode = 0x40C00000
    // The server should have followed a reference to a node in a remote server but did not. The result set may be incomplete.
    GoodResultsMayBeIncomplete    StatusCode = 0x00BA0000
    // The provided Nodeid was not a type definition nodeid.
    BadNotTypeDefinition    StatusCode = 0x80C80000
    // One of the references to follow in the relative path references to a node in the address space in another server.
    UncertainReferenceOutOfServer    StatusCode = 0x406C0000
    // The requested operation has too many matches to return.
    BadTooManyMatches    StatusCode = 0x806D0000
    // The requested operation requires too many resources in the server.
    BadQueryTooComplex    StatusCode = 0x806E0000
    // The requested operation has no match to return.
    BadNoMatch    StatusCode = 0x806F0000
    // The max age parameter is invalid.
    BadMaxAgeInvalid    StatusCode = 0x80700000
    // The operation is not permitted over the current secure channel.
    BadSecurityModeInsufficient    StatusCode = 0x80E60000
    // The history details parameter is not valid.
    BadHistoryOperationInvalid    StatusCode = 0x80710000
    // The server does not support the requested operation.
    BadHistoryOperationUnsupported    StatusCode = 0x80720000
    // The defined timestamp to return was invalid.
    BadInvalidTimestampArgument    StatusCode = 0x80BD0000
    // The server does not support writing the combination of value, status and timestamps provided.
    BadWriteNotSupported    StatusCode = 0x80730000
    // The value supplied for the attribute is not of the same type as the attribute's value.
    BadTypeMismatch    StatusCode = 0x80740000
    // The method id does not refer to a method for the specified object.
    BadMethodInvalid    StatusCode = 0x80750000
    // The client did not specify all of the input arguments for the method.
    BadArgumentsMissing    StatusCode = 0x80760000
    // The executable attribute does not allow the execution of the method.
    BadNotExecutable    StatusCode = 0x81110000
    // The server has reached its maximum number of subscriptions.
    BadTooManySubscriptions    StatusCode = 0x80770000
    // The server has reached the maximum number of queued publish requests.
    BadTooManyPublishRequests    StatusCode = 0x80780000
    // There is no subscription available for this session.
    BadNoSubscription    StatusCode = 0x80790000
    // The sequence number is unknown to the server.
    BadSequenceNumberUnknown    StatusCode = 0x807A0000
    // The requested notification message is no longer available.
    BadMessageNotAvailable    StatusCode = 0x807B0000
    // The client of the current session does not support one or more Profiles that are necessary for the subscription.
    BadInsufficientClientProfile    StatusCode = 0x807C0000
    // The sub-state machine is not currently active.
    BadStateNotActive    StatusCode = 0x80BF0000
    // An equivalent rule already exists.
    BadAlreadyExists    StatusCode = 0x81150000
    // The server cannot process the request because it is too busy.
    BadTCPServerTooBusy    StatusCode = 0x807D0000
    // The type of the message specified in the header invalid.
    BadTCPMessageTypeInvalid    StatusCode = 0x807E0000
    // The SecureChannelId and/or TokenId are not currently in use.
    BadTCPSecureChannelUnknown    StatusCode = 0x807F0000
    // The size of the message specified in the header is too large.
    BadTCPMessageTooLarge    StatusCode = 0x80800000
    // There are not enough resources to process the request.
    BadTCPNotEnoughResources    StatusCode = 0x80810000
    // An internal error occurred.
    BadTCPInternalError    StatusCode = 0x80820000
    // The server does not recognize the QueryString specified.
    BadTCPEndpointURLInvalid    StatusCode = 0x80830000
    // The request could not be sent because of a network interruption.
    BadRequestInterrupted    StatusCode = 0x80840000
    // Timeout occurred while processing the request.
    BadRequestTimeout    StatusCode = 0x80850000
    // The secure channel has been closed.
    BadSecureChannelClosed    StatusCode = 0x80860000
    // The token has expired or is not recognized.
    BadSecureChannelTokenUnknown    StatusCode = 0x80870000
    // The sequence number is not valid.
    BadSequenceNumberInvalid    StatusCode = 0x80880000
    // The applications do not have compatible protocol versions.
    BadProtocolVersionUnsupported    StatusCode = 0x80BE0000
    // There is a problem with the configuration that affects the usefulness of the value.
    BadConfigurationError    StatusCode = 0x80890000
    // The variable should receive its value from another variable, but has never been configured to do so.
    BadNotConnected    StatusCode = 0x808A0000
    // There has been a failure in the device/data source that generates the value that has affected the value.
    BadDeviceFailure    StatusCode = 0x808B0000
    // There has been a failure in the sensor from which the value is derived by the device/data source.
    BadSensorFailure    StatusCode = 0x808C0000
    // The source of the data is not operational.
    BadOutOfService    StatusCode = 0x808D0000
    // The deadband filter is not valid.
    BadDeadbandFilterInvalid    StatusCode = 0x808E0000
    // Communication to the data source has failed. The variable value is the last value that had a good quality.
    UncertainNoCommunicationLastUsableValue    StatusCode = 0x408F0000
    // Whatever was updating this value has stopped doing so.
    UncertainLastUsableValue    StatusCode = 0x40900000
    // The value is an operational value that was manually overwritten.
    UncertainSubstituteValue    StatusCode = 0x40910000
    // The value is an initial value for a variable that normally receives its value from another variable.
    UncertainInitialValue    StatusCode = 0x40920000
    // The value is at one of the sensor limits.
    UncertainSensorNotAccurate    StatusCode = 0x40930000
    // The value is outside of the range of values defined for this parameter.
    UncertainEngineeringUnitsExceeded    StatusCode = 0x40940000
    // The value is derived from multiple sources and has less than the required number of Good sources.
    UncertainSubNormal    StatusCode = 0x40950000
    // The value has been overridden.
    GoodLocalOverride    StatusCode = 0x00960000
    // This Condition refresh failed, a Condition refresh operation is already in progress.
    BadRefreshInProgress    StatusCode = 0x80970000
    // This condition has already been disabled.
    BadConditionAlreadyDisabled    StatusCode = 0x80980000
    // This condition has already been enabled.
    BadConditionAlreadyEnabled    StatusCode = 0x80CC0000
    // Property not available, this condition is disabled.
    BadConditionDisabled    StatusCode = 0x80990000
    // The specified event id is not recognized.
    BadEventIDUnknown    StatusCode = 0x809A0000
    // The event cannot be acknowledged.
    BadEventNotAcknowledgeable    StatusCode = 0x80BB0000
    // The dialog condition is not active.
    BadDialogNotActive    StatusCode = 0x80CD0000
    // The response is not valid for the dialog.
    BadDialogResponseInvalid    StatusCode = 0x80CE0000
    // The condition branch has already been acknowledged.
    BadConditionBranchAlreadyAcked    StatusCode = 0x80CF0000
    // The condition branch has already been confirmed.
    BadConditionBranchAlreadyConfirmed    StatusCode = 0x80D00000
    // The condition has already been shelved.
    BadConditionAlreadyShelved    StatusCode = 0x80D10000
    // The condition is not currently shelved.
    BadConditionNotShelved    StatusCode = 0x80D20000
    // The shelving time not within an acceptable range.
    BadShelvingTimeOutOfRange    StatusCode = 0x80D30000
    // No data exists for the requested time range or event filter.
    BadNoData    StatusCode = 0x809B0000
    // No data found to provide upper or lower bound value.
    BadBoundNotFound    StatusCode = 0x80D70000
    // The server cannot retrieve a bound for the variable.
    BadBoundNotSupported    StatusCode = 0x80D80000
    // Data is missing due to collection started/stopped/lost.
    BadDataLost    StatusCode = 0x809D0000
    // Expected data is unavailable for the requested time range due to an un-mounted volume, an off-line archive or tape, or similar reason for temporary unavailability.
    BadDataUnavailable    StatusCode = 0x809E0000
    // The data or event was not successfully inserted because a matching entry exists.
    BadEntryExists    StatusCode = 0x809F0000
    // The data or event was not successfully updated because no matching entry exists.
    BadNoEntryExists    StatusCode = 0x80A00000
    // The client requested history using a timestamp format the server does not support (i.e requested ServerTimestamp when server only supports SourceTimestamp).
    BadTimestampNotSupported    StatusCode = 0x80A10000
    // The data or event was successfully inserted into the historical database.
    GoodEntryInserted    StatusCode = 0x00A20000
    // The data or event field was successfully replaced in the historical database.
    GoodEntryReplaced    StatusCode = 0x00A30000
    // The value is derived from multiple values and has less than the required number of Good values.
    UncertainDataSubNormal    StatusCode = 0x40A40000
    // No data exists for the requested time range or event filter.
    GoodNoData    StatusCode = 0x00A50000
    // The data or event field was successfully replaced in the historical database.
    GoodMoreData    StatusCode = 0x00A60000
    // The requested number of Aggregates does not match the requested number of NodeIds.
    BadAggregateListMismatch    StatusCode = 0x80D40000
    // The requested Aggregate is not support by the server.
    BadAggregateNotSupported    StatusCode = 0x80D50000
    // The aggregate value could not be derived due to invalid data inputs.
    BadAggregateInvalidInputs    StatusCode = 0x80D60000
    // The aggregate configuration is not valid for specified node.
    BadAggregateConfigurationRejected    StatusCode = 0x80DA0000
    // The request specifies fields which are not valid for the EventType or cannot be saved by the historian.
    GoodDataIgnored    StatusCode = 0x00D90000
    // The request was rejected by the server because it did not meet the criteria set by the server.
    BadRequestNotAllowed    StatusCode = 0x80E40000
    // The request has not been processed by the server yet.
    BadRequestNotComplete    StatusCode = 0x81130000
    // The value does not come from the real source and has been edited by the server.
    GoodEdited    StatusCode = 0x00DC0000
    // There was an error in execution of these post-actions.
    GoodPostActionFailed    StatusCode = 0x00DD0000
    // The related EngineeringUnit has been changed but the Variable Value is still provided based on the previous unit.
    UncertainDominantValueChanged    StatusCode = 0x40DE0000
    // A dependent value has been changed but the change has not been applied to the device.
    GoodDependentValueChanged    StatusCode = 0x00E00000
    // The related EngineeringUnit has been changed but this change has not been applied to the device. The Variable Value is still dependent on the previous unit but its status is currently Bad.
    BadDominantValueChanged    StatusCode = 0x80E10000
    // A dependent value has been changed but the change has not been applied to the device. The quality of the dominant variable is uncertain.
    UncertainDependentValueChanged    StatusCode = 0x40E20000
    // A dependent value has been changed but the change has not been applied to the device. The quality of the dominant variable is Bad.
    BadDependentValueChanged    StatusCode = 0x80E30000
    // It is delivered with a dominant Variable value when a dependent Variable has changed but the change has not been applied.
    GoodEditedDependentValueChanged    StatusCode = 0x01160000
    // It is delivered with a dependent Variable value when a dominant Variable has changed but the change has not been applied.
    GoodEditedDominantValueChanged    StatusCode = 0x01170000
    // It is delivered with a dependent Variable value when a dominant or dependent Variable has changed but change has not been applied.
    GoodEditedDominantValueChangedDependentValueChanged    StatusCode = 0x01180000
    // It is delivered with a Variable value when Variable has changed but the value is not legal.
    BadEditedOutOfRange    StatusCode = 0x81190000
    // It is delivered with a Variable value when a source Variable has changed but the value is not legal.
    BadInitialValueOutOfRange    StatusCode = 0x811A0000
    // It is delivered with a dependent Variable value when a dominant Variable has changed and the value is not legal.
    BadOutOfRangeDominantValueChanged    StatusCode = 0x811B0000
    // It is delivered with a dependent Variable value when a dominant Variable has changed, the value is not legal and the change has not been applied.
    BadEditedOutOfRangeDominantValueChanged    StatusCode = 0x811C0000
    // It is delivered with a dependent Variable value when a dominant or dependent Variable has changed and the value is not legal.
    BadOutOfRangeDominantValueChangedDependentValueChanged    StatusCode = 0x811D0000
    // It is delivered with a dependent Variable value when a dominant or dependent Variable has changed, the value is not legal and the change has not been applied.
    BadEditedOutOfRangeDominantValueChangedDependentValueChanged    StatusCode = 0x811E0000
    // The communication layer has raised an event.
    GoodCommunicationEvent    StatusCode = 0x00A70000
    // The system is shutting down.
    GoodShutdownEvent    StatusCode = 0x00A80000
    // The operation is not finished and needs to be called again.
    GoodCallAgain    StatusCode = 0x00A90000
    // A non-critical timeout occurred.
    GoodNonCriticalTimeout    StatusCode = 0x00AA0000
    // One or more arguments are invalid.
    BadInvalidArgument    StatusCode = 0x80AB0000
    // Could not establish a network connection to remote server.
    BadConnectionRejected    StatusCode = 0x80AC0000
    // The server has disconnected from the client.
    BadDisconnect    StatusCode = 0x80AD0000
    // The network connection has been closed.
    BadConnectionClosed    StatusCode = 0x80AE0000
    // The operation cannot be completed because the object is closed, uninitialized or in some other invalid state.
    BadInvalidState    StatusCode = 0x80AF0000
    // Cannot move beyond end of the stream.
    BadEndOfStream    StatusCode = 0x80B00000
    // No data is currently available for reading from a non-blocking stream.
    BadNoDataAvailable    StatusCode = 0x80B10000
    // The asynchronous operation is waiting for a response.
    BadWaitingForResponse    StatusCode = 0x80B20000
    // The asynchronous operation was abandoned by the caller.
    BadOperationAbandoned    StatusCode = 0x80B30000
    // The stream did not return all data requested (possibly because it is a non-blocking stream).
    BadExpectedStreamToBlock    StatusCode = 0x80B40000
    // Non blocking behaviour is required and the operation would block.
    BadWouldBlock    StatusCode = 0x80B50000
    // A value had an invalid syntax.
    BadSyntaxError    StatusCode = 0x80B60000
    // The operation could not be finished because all available connections are in use.
    BadMaxConnectionsReached    StatusCode = 0x80B70000
)

// Error returns the StatusCode message.
func (c StatusCode) Error() string {
    switch c {
    case Good:
        return "The operation completed successfully."
    case BadUnexpectedError:
        return "An unexpected error occurred."
    case BadInternalError:
        return "An internal error occurred as a result of a programming or configuration error."
    case BadOutOfMemory:
        return "Not enough memory to complete the operation."
    case BadResourceUnavailable:
        return "An operating system resource is not available."
    case BadCommunicationError:
        return "A low level communication error occurred."
    case BadEncodingError:
        return "Encoding halted because of invalid data in the objects being serialized."
    case BadDecodingError:
        return "Decoding halted because of invalid data in the stream."
    case BadEncodingLimitsExceeded:
        return "The message encoding/decoding limits imposed by the stack have been exceeded."
    case BadRequestTooLarge:
        return "The request message size exceeds limits set by the server."
    case BadResponseTooLarge:
        return "The response message size exceeds limits set by the client."
    case BadUnknownResponse:
        return "An unrecognized response was received from the server."
    case BadTimeout:
        return "The operation timed out."
    case BadServiceUnsupported:
        return "The server does not support the requested service."
    case BadShutdown:
        return "The operation was cancelled because the application is shutting down."
    case BadServerNotConnected:
        return "The operation could not complete because the client is not connected to the server."
    case BadServerHalted:
        return "The server has stopped and cannot process any requests."
    case BadNothingToDo:
        return "There was nothing to do because the client passed a list of operations with no elements."
    case BadTooManyOperations:
        return "The request could not be processed because it specified too many operations."
    case BadTooManyMonitoredItems:
        return "The request could not be processed because there are too many monitored items in the subscription."
    case BadDataTypeIDUnknown:
        return "The extension object cannot be (de)serialized because the data type id is not recognized."
    case BadCertificateInvalid:
        return "The certificate provided as a parameter is not valid."
    case BadSecurityChecksFailed:
        return "An error occurred verifying security."
    case BadCertificatePolicyCheckFailed:
        return "The certificate does not meet the requirements of the security policy."
    case BadCertificateTimeInvalid:
        return "The certificate has expired or is not yet valid."
    case BadCertificateIssuerTimeInvalid:
        return "An issuer certificate has expired or is not yet valid."
    case BadCertificateHostNameInvalid:
        return "The HostName used to connect to a server does not match a HostName in the certificate."
    case BadCertificateURIInvalid:
        return "The URI specified in the ApplicationDescription does not match the URI in the certificate."
    case BadCertificateUseNotAllowed:
        return "The certificate may not be used for the requested operation."
    case BadCertificateIssuerUseNotAllowed:
        return "The issuer certificate may not be used for the requested operation."
    case BadCertificateUntrusted:
        return "The certificate is not trusted."
    case BadCertificateRevocationUnknown:
        return "It was not possible to determine if the certificate has been revoked."
    case BadCertificateIssuerRevocationUnknown:
        return "It was not possible to determine if the issuer certificate has been revoked."
    case BadCertificateRevoked:
        return "The certificate has been revoked."
    case BadCertificateIssuerRevoked:
        return "The issuer certificate has been revoked."
    case BadCertificateChainIncomplete:
        return "The certificate chain is incomplete."
    case BadUserAccessDenied:
        return "User does not have permission to perform the requested operation."
    case BadIdentityTokenInvalid:
        return "The user identity token is not valid."
    case BadIdentityTokenRejected:
        return "The user identity token is valid but the server has rejected it."
    case BadSecureChannelIDInvalid:
        return "The specified secure channel is no longer valid."
    case BadInvalidTimestamp:
        return "The timestamp is outside the range allowed by the server."
    case BadNonceInvalid:
        return "The nonce does appear to be not a random value or it is not the correct length."
    case BadSessionIDInvalid:
        return "The session id is not valid."
    case BadSessionClosed:
        return "The session was closed by the client."
    case BadSessionNotActivated:
        return "The session cannot be used because ActivateSession has not been called."
    case BadSubscriptionIDInvalid:
        return "The subscription id is not valid."
    case BadRequestHeaderInvalid:
        return "The header for the request is missing or invalid."
    case BadTimestampsToReturnInvalid:
        return "The timestamps to return parameter is invalid."
    case BadRequestCancelledByClient:
        return "The request was cancelled by the client."
    case BadTooManyArguments:
        return "Too many arguments were provided."
    case BadLicenseExpired:
        return "The server requires a license to operate in general or to perform a service or operation, but existing license is expired."
    case BadLicenseLimitsExceeded:
        return "The server has limits on number of allowed operations / objects, based on installed licenses, and these limits where exceeded."
    case BadLicenseNotAvailable:
        return "The server does not have a license which is required to operate in general or to perform a service or operation."
    case GoodSubscriptionTransferred:
        return "The subscription was transferred to another session."
    case GoodCompletesAsynchronously:
        return "The processing will complete asynchronously."
    case GoodOverload:
        return "Sampling has slowed down due to resource limitations."
    case GoodClamped:
        return "The value written was accepted but was clamped."
    case BadNoCommunication:
        return "Communication with the data source is defined, but not established, and there is no last known value available."
    case BadWaitingForInitialData:
        return "Waiting for the server to obtain values from the underlying data source."
    case BadNodeIDInvalid:
        return "The syntax of the node id is not valid."
    case BadNodeIDUnknown:
        return "The node id refers to a node that does not exist in the server address space."
    case BadAttributeIDInvalid:
        return "The attribute is not supported for the specified Node."
    case BadIndexRangeInvalid:
        return "The syntax of the index range parameter is invalid."
    case BadIndexRangeNoData:
        return "No data exists within the range of indexes specified."
    case BadDataEncodingInvalid:
        return "The data encoding is invalid."
    case BadDataEncodingUnsupported:
        return "The server does not support the requested data encoding for the node."
    case BadNotReadable:
        return "The access level does not allow reading or subscribing to the Node."
    case BadNotWritable:
        return "The access level does not allow writing to the Node."
    case BadOutOfRange:
        return "The value was out of range."
    case BadNotSupported:
        return "The requested operation is not supported."
    case BadNotFound:
        return "A requested item was not found or a search operation ended without success."
    case BadObjectDeleted:
        return "The object cannot be used because it has been deleted."
    case BadNotImplemented:
        return "Requested operation is not implemented."
    case BadMonitoringModeInvalid:
        return "The monitoring mode is invalid."
    case BadMonitoredItemIDInvalid:
        return "The monitoring item id does not refer to a valid monitored item."
    case BadMonitoredItemFilterInvalid:
        return "The monitored item filter parameter is not valid."
    case BadMonitoredItemFilterUnsupported:
        return "The server does not support the requested monitored item filter."
    case BadFilterNotAllowed:
        return "A monitoring filter cannot be used in combination with the attribute specified."
    case BadStructureMissing:
        return "A mandatory structured parameter was missing or null."
    case BadEventFilterInvalid:
        return "The event filter is not valid."
    case BadContentFilterInvalid:
        return "The content filter is not valid."
    case BadFilterOperatorInvalid:
        return "An unrecognized operator was provided in a filter."
    case BadFilterOperatorUnsupported:
        return "A valid operator was provided, but the server does not provide support for this filter operator."
    case BadFilterOperandCountMismatch:
        return "The number of operands provided for the filter operator was less then expected for the operand provided."
    case BadFilterOperandInvalid:
        return "The operand used in a content filter is not valid."
    case BadFilterElementInvalid:
        return "The referenced element is not a valid element in the content filter."
    case BadFilterLiteralInvalid:
        return "The referenced literal is not a valid value."
    case BadContinuationPointInvalid:
        return "The continuation point provide is longer valid."
    case BadNoContinuationPoints:
        return "The operation could not be processed because all continuation points have been allocated."
    case BadReferenceTypeIDInvalid:
        return "The reference type id does not refer to a valid reference type node."
    case BadBrowseDirectionInvalid:
        return "The browse direction is not valid."
    case BadNodeNotInView:
        return "The node is not part of the view."
    case BadNumericOverflow:
        return "The number was not accepted because of a numeric overflow."
    case BadServerURIInvalid:
        return "The ServerUri is not a valid URI."
    case BadServerNameMissing:
        return "No ServerName was specified."
    case BadDiscoveryURLMissing:
        return "No DiscoveryUrl was specified."
    case BadSempahoreFileMissing:
        return "The semaphore file specified by the client is not valid."
    case BadRequestTypeInvalid:
        return "The security token request type is not valid."
    case BadSecurityModeRejected:
        return "The security mode does not meet the requirements set by the server."
    case BadSecurityPolicyRejected:
        return "The security policy does not meet the requirements set by the server."
    case BadTooManySessions:
        return "The server has reached its maximum number of sessions."
    case BadUserSignatureInvalid:
        return "The user token signature is missing or invalid."
    case BadApplicationSignatureInvalid:
        return "The signature generated with the client certificate is missing or invalid."
    case BadNoValidCertificates:
        return "The client did not provide at least one software certificate that is valid and meets the profile requirements for the server."
    case BadIdentityChangeNotSupported:
        return "The server does not support changing the user identity assigned to the session."
    case BadRequestCancelledByRequest:
        return "The request was cancelled by the client with the Cancel service."
    case BadParentNodeIDInvalid:
        return "The parent node id does not to refer to a valid node."
    case BadReferenceNotAllowed:
        return "The reference could not be created because it violates constraints imposed by the data model."
    case BadNodeIDRejected:
        return "The requested node id was reject because it was either invalid or server does not allow node ids to be specified by the client."
    case BadNodeIDExists:
        return "The requested node id is already used by another node."
    case BadNodeClassInvalid:
        return "The node class is not valid."
    case BadBrowseNameInvalid:
        return "The browse name is invalid."
    case BadBrowseNameDuplicated:
        return "The browse name is not unique among nodes that share the same relationship with the parent."
    case BadNodeAttributesInvalid:
        return "The node attributes are not valid for the node class."
    case BadTypeDefinitionInvalid:
        return "The type definition node id does not reference an appropriate type node."
    case BadSourceNodeIDInvalid:
        return "The source node id does not reference a valid node."
    case BadTargetNodeIDInvalid:
        return "The target node id does not reference a valid node."
    case BadDuplicateReferenceNotAllowed:
        return "The reference type between the nodes is already defined."
    case BadInvalidSelfReference:
        return "The server does not allow this type of self reference on this node."
    case BadReferenceLocalOnly:
        return "The reference type is not valid for a reference to a remote server."
    case BadNoDeleteRights:
        return "The server will not allow the node to be deleted."
    case UncertainReferenceNotDeleted:
        return "The server was not able to delete all target references."
    case BadServerIndexInvalid:
        return "The server index is not valid."
    case BadViewIDUnknown:
        return "The view id does not refer to a valid view node."
    case BadViewTimestampInvalid:
        return "The view timestamp is not available or not supported."
    case BadViewParameterMismatch:
        return "The view parameters are not consistent with each other."
    case BadViewVersionInvalid:
        return "The view version is not available or not supported."
    case UncertainNotAllNodesAvailable:
        return "The list of references may not be complete because the underlying system is not available."
    case GoodResultsMayBeIncomplete:
        return "The server should have followed a reference to a node in a remote server but did not. The result set may be incomplete."
    case BadNotTypeDefinition:
        return "The provided Nodeid was not a type definition nodeid."
    case UncertainReferenceOutOfServer:
        return "One of the references to follow in the relative path references to a node in the address space in another server."
    case BadTooManyMatches:
        return "The requested operation has too many matches to return."
    case BadQueryTooComplex:
        return "The requested operation requires too many resources in the server."
    case BadNoMatch:
        return "The requested operation has no match to return."
    case BadMaxAgeInvalid:
        return "The max age parameter is invalid."
    case BadSecurityModeInsufficient:
        return "The operation is not permitted over the current secure channel."
    case BadHistoryOperationInvalid:
        return "The history details parameter is not valid."
    case BadHistoryOperationUnsupported:
        return "The server does not support the requested operation."
    case BadInvalidTimestampArgument:
        return "The defined timestamp to return was invalid."
    case BadWriteNotSupported:
        return "The server does not support writing the combination of value, status and timestamps provided."
    case BadTypeMismatch:
        return "The value supplied for the attribute is not of the same type as the attribute's value."
    case BadMethodInvalid:
        return "The method id does not refer to a method for the specified object."
    case BadArgumentsMissing:
        return "The client did not specify all of the input arguments for the method."
    case BadNotExecutable:
        return "The executable attribute does not allow the execution of the method."
    case BadTooManySubscriptions:
        return "The server has reached its maximum number of subscriptions."
    case BadTooManyPublishRequests:
        return "The server has reached the maximum number of queued publish requests."
    case BadNoSubscription:
        return "There is no subscription available for this session."
    case BadSequenceNumberUnknown:
        return "The sequence number is unknown to the server."
    case BadMessageNotAvailable:
        return "The requested notification message is no longer available."
    case BadInsufficientClientProfile:
        return "The client of the current session does not support one or more Profiles that are necessary for the subscription."
    case BadStateNotActive:
        return "The sub-state machine is not currently active."
    case BadAlreadyExists:
        return "An equivalent rule already exists."
    case BadTCPServerTooBusy:
        return "The server cannot process the request because it is too busy."
    case BadTCPMessageTypeInvalid:
        return "The type of the message specified in the header invalid."
    case BadTCPSecureChannelUnknown:
        return "The SecureChannelId and/or TokenId are not currently in use."
    case BadTCPMessageTooLarge:
        return "The size of the message specified in the header is too large."
    case BadTCPNotEnoughResources:
        return "There are not enough resources to process the request."
    case BadTCPInternalError:
        return "An internal error occurred."
    case BadTCPEndpointURLInvalid:
        return "The server does not recognize the QueryString specified."
    case BadRequestInterrupted:
        return "The request could not be sent because of a network interruption."
    case BadRequestTimeout:
        return "Timeout occurred while processing the request."
    case BadSecureChannelClosed:
        return "The secure channel has been closed."
    case BadSecureChannelTokenUnknown:
        return "The token has expired or is not recognized."
    case BadSequenceNumberInvalid:
        return "The sequence number is not valid."
    case BadProtocolVersionUnsupported:
        return "The applications do not have compatible protocol versions."
    case BadConfigurationError:
        return "There is a problem with the configuration that affects the usefulness of the value."
    case BadNotConnected:
        return "The variable should receive its value from another variable, but has never been configured to do so."
    case BadDeviceFailure:
        return "There has been a failure in the device/data source that generates the value that has affected the value."
    case BadSensorFailure:
        return "There has been a failure in the sensor from which the value is derived by the device/data source."
    case BadOutOfService:
        return "The source of the data is not operational."
    case BadDeadbandFilterInvalid:
        return "The deadband filter is not valid."
    case UncertainNoCommunicationLastUsableValue:
        return "Communication to the data source has failed. The variable value is the last value that had a good quality."
    case UncertainLastUsableValue:
        return "Whatever was updating this value has stopped doing so."
    case UncertainSubstituteValue:
        return "The value is an operational value that was manually overwritten."
    case UncertainInitialValue:
        return "The value is an initial value for a variable that normally receives its value from another variable."
    case UncertainSensorNotAccurate:
        return "The value is at one of the sensor limits."
    case UncertainEngineeringUnitsExceeded:
        return "The value is outside of the range of values defined for this parameter."
    case UncertainSubNormal:
        return "The value is derived from multiple sources and has less than the required number of Good sources."
    case GoodLocalOverride:
        return "The value has been overridden."
    case BadRefreshInProgress:
        return "This Condition refresh failed, a Condition refresh operation is already in progress."
    case BadConditionAlreadyDisabled:
        return "This condition has already been disabled."
    case BadConditionAlreadyEnabled:
        return "This condition has already been enabled."
    case BadConditionDisabled:
        return "Property not available, this condition is disabled."
    case BadEventIDUnknown:
        return "The specified event id is not recognized."
    case BadEventNotAcknowledgeable:
        return "The event cannot be acknowledged."
    case BadDialogNotActive:
        return "The dialog condition is not active."
    case BadDialogResponseInvalid:
        return "The response is not valid for the dialog."
    case BadConditionBranchAlreadyAcked:
        return "The condition branch has already been acknowledged."
    case BadConditionBranchAlreadyConfirmed:
        return "The condition branch has already been confirmed."
    case BadConditionAlreadyShelved:
        return "The condition has already been shelved."
    case BadConditionNotShelved:
        return "The condition is not currently shelved."
    case BadShelvingTimeOutOfRange:
        return "The shelving time not within an acceptable range."
    case BadNoData:
        return "No data exists for the requested time range or event filter."
    case BadBoundNotFound:
        return "No data found to provide upper or lower bound value."
    case BadBoundNotSupported:
        return "The server cannot retrieve a bound for the variable."
    case BadDataLost:
        return "Data is missing due to collection started/stopped/lost."
    case BadDataUnavailable:
        return "Expected data is unavailable for the requested time range due to an un-mounted volume, an off-line archive or tape, or similar reason for temporary unavailability."
    case BadEntryExists:
        return "The data or event was not successfully inserted because a matching entry exists."
    case BadNoEntryExists:
        return "The data or event was not successfully updated because no matching entry exists."
    case BadTimestampNotSupported:
        return "The client requested history using a timestamp format the server does not support (i.e requested ServerTimestamp when server only supports SourceTimestamp)."
    case GoodEntryInserted:
        return "The data or event was successfully inserted into the historical database."
    case GoodEntryReplaced:
        return "The data or event field was successfully replaced in the historical database."
    case UncertainDataSubNormal:
        return "The value is derived from multiple values and has less than the required number of Good values."
    case GoodNoData:
        return "No data exists for the requested time range or event filter."
    case GoodMoreData:
        return "The data or event field was successfully replaced in the historical database."
    case BadAggregateListMismatch:
        return "The requested number of Aggregates does not match the requested number of NodeIds."
    case BadAggregateNotSupported:
        return "The requested Aggregate is not support by the server."
    case BadAggregateInvalidInputs:
        return "The aggregate value could not be derived due to invalid data inputs."
    case BadAggregateConfigurationRejected:
        return "The aggregate configuration is not valid for specified node."
    case GoodDataIgnored:
        return "The request specifies fields which are not valid for the EventType or cannot be saved by the historian."
    case BadRequestNotAllowed:
        return "The request was rejected by the server because it did not meet the criteria set by the server."
    case BadRequestNotComplete:
        return "The request has not been processed by the server yet."
    case GoodEdited:
        return "The value does not come from the real source and has been edited by the server."
    case GoodPostActionFailed:
        return "There was an error in execution of these post-actions."
    case UncertainDominantValueChanged:
        return "The related EngineeringUnit has been changed but the Variable Value is still provided based on the previous unit."
    case GoodDependentValueChanged:
        return "A dependent value has been changed but the change has not been applied to the device."
    case BadDominantValueChanged:
        return "The related EngineeringUnit has been changed but this change has not been applied to the device. The Variable Value is still dependent on the previous unit but its status is currently Bad."
    case UncertainDependentValueChanged:
        return "A dependent value has been changed but the change has not been applied to the device. The quality of the dominant variable is uncertain."
    case BadDependentValueChanged:
        return "A dependent value has been changed but the change has not been applied to the device. The quality of the dominant variable is Bad."
    case GoodEditedDependentValueChanged:
        return "It is delivered with a dominant Variable value when a dependent Variable has changed but the change has not been applied."
    case GoodEditedDominantValueChanged:
        return "It is delivered with a dependent Variable value when a dominant Variable has changed but the change has not been applied."
    case GoodEditedDominantValueChangedDependentValueChanged:
        return "It is delivered with a dependent Variable value when a dominant or dependent Variable has changed but change has not been applied."
    case BadEditedOutOfRange:
        return "It is delivered with a Variable value when Variable has changed but the value is not legal."
    case BadInitialValueOutOfRange:
        return "It is delivered with a Variable value when a source Variable has changed but the value is not legal."
    case BadOutOfRangeDominantValueChanged:
        return "It is delivered with a dependent Variable value when a dominant Variable has changed and the value is not legal."
    case BadEditedOutOfRangeDominantValueChanged:
        return "It is delivered with a dependent Variable value when a dominant Variable has changed, the value is not legal and the change has not been applied."
    case BadOutOfRangeDominantValueChangedDependentValueChanged:
        return "It is delivered with a dependent Variable value when a dominant or dependent Variable has changed and the value is not legal."
    case BadEditedOutOfRangeDominantValueChangedDependentValueChanged:
        return "It is delivered with a dependent Variable value when a dominant or dependent Variable has changed, the value is not legal and the change has not been applied."
    case GoodCommunicationEvent:
        return "The communication layer has raised an event."
    case GoodShutdownEvent:
        return "The system is shutting down."
    case GoodCallAgain:
        return "The operation is not finished and needs to be called again."
    case GoodNonCriticalTimeout:
        return "A non-critical timeout occurred."
    case BadInvalidArgument:
        return "One or more arguments are invalid."
    case BadConnectionRejected:
        return "Could not establish a network connection to remote server."
    case BadDisconnect:
        return "The server has disconnected from the client."
    case BadConnectionClosed:
        return "The network connection has been closed."
    case BadInvalidState:
        return "The operation cannot be completed because the object is closed, uninitialized or in some other invalid state."
    case BadEndOfStream:
        return "Cannot move beyond end of the stream."
    case BadNoDataAvailable:
        return "No data is currently available for reading from a non-blocking stream."
    case BadWaitingForResponse:
        return "The asynchronous operation is waiting for a response."
    case BadOperationAbandoned:
        return "The asynchronous operation was abandoned by the caller."
    case BadExpectedStreamToBlock:
        return "The stream did not return all data requested (possibly because it is a non-blocking stream)."
    case BadWouldBlock:
        return "Non blocking behaviour is required and the operation would block."
    case BadSyntaxError:
        return "A value had an invalid syntax."
    case BadMaxConnectionsReached:
        return "The operation could not be finished because all available connections are in use."
    default:
        return "An unknown error occurred."
    }
}
