Generated Definitions

The following definitions are auto-generated from XML files that are part of the OPC UA standard.

Generated Data Types

Every type is assigned an index in an array containing the type descriptions. These descriptions are used during type handling (copying, deletion, binary encoding, …).

#define UA_TYPES_COUNT 191
extern const UA_DataType UA_TYPES[UA_TYPES_COUNT];

Boolean

#define UA_TYPES_BOOLEAN 0

SByte

#define UA_TYPES_SBYTE 1

Byte

#define UA_TYPES_BYTE 2

Int16

#define UA_TYPES_INT16 3

UInt16

#define UA_TYPES_UINT16 4

Int32

#define UA_TYPES_INT32 5

UInt32

#define UA_TYPES_UINT32 6

Int64

#define UA_TYPES_INT64 7

UInt64

#define UA_TYPES_UINT64 8

Float

#define UA_TYPES_FLOAT 9

Double

#define UA_TYPES_DOUBLE 10

String

#define UA_TYPES_STRING 11

DateTime

#define UA_TYPES_DATETIME 12

Guid

#define UA_TYPES_GUID 13

ByteString

#define UA_TYPES_BYTESTRING 14

XmlElement

#define UA_TYPES_XMLELEMENT 15

NodeId

#define UA_TYPES_NODEID 16

ExpandedNodeId

#define UA_TYPES_EXPANDEDNODEID 17

StatusCode

#define UA_TYPES_STATUSCODE 18

QualifiedName

#define UA_TYPES_QUALIFIEDNAME 19

LocalizedText

#define UA_TYPES_LOCALIZEDTEXT 20

ExtensionObject

#define UA_TYPES_EXTENSIONOBJECT 21

DataValue

#define UA_TYPES_DATAVALUE 22

Variant

#define UA_TYPES_VARIANT 23

DiagnosticInfo

#define UA_TYPES_DIAGNOSTICINFO 24

KeyValuePair

typedef struct {
    UA_QualifiedName key;
    UA_Variant value;
} UA_KeyValuePair;

#define UA_TYPES_KEYVALUEPAIR 25

NodeClass

typedef enum {
    UA_NODECLASS_UNSPECIFIED = 0,
    UA_NODECLASS_OBJECT = 1,
    UA_NODECLASS_VARIABLE = 2,
    UA_NODECLASS_METHOD = 4,
    UA_NODECLASS_OBJECTTYPE = 8,
    UA_NODECLASS_VARIABLETYPE = 16,
    UA_NODECLASS_REFERENCETYPE = 32,
    UA_NODECLASS_DATATYPE = 64,
    UA_NODECLASS_VIEW = 128,
    __UA_NODECLASS_FORCE32BIT = 0x7fffffff
} UA_NodeClass;
UA_STATIC_ASSERT(sizeof(UA_NodeClass) == sizeof(UA_Int32), enum_must_be_32bit);

#define UA_TYPES_NODECLASS 26

StructureType

typedef enum {
    UA_STRUCTURETYPE_STRUCTURE = 0,
    UA_STRUCTURETYPE_STRUCTUREWITHOPTIONALFIELDS = 1,
    UA_STRUCTURETYPE_UNION = 2,
    UA_STRUCTURETYPE_STRUCTUREWITHSUBTYPEDVALUES = 3,
    UA_STRUCTURETYPE_UNIONWITHSUBTYPEDVALUES = 4,
    __UA_STRUCTURETYPE_FORCE32BIT = 0x7fffffff
} UA_StructureType;
UA_STATIC_ASSERT(sizeof(UA_StructureType) == sizeof(UA_Int32), enum_must_be_32bit);

#define UA_TYPES_STRUCTURETYPE 27

StructureField

typedef struct {
    UA_String name;
    UA_LocalizedText description;
    UA_NodeId dataType;
    UA_Int32 valueRank;
    size_t arrayDimensionsSize;
    UA_UInt32 *arrayDimensions;
    UA_UInt32 maxStringLength;
    UA_Boolean isOptional;
} UA_StructureField;

#define UA_TYPES_STRUCTUREFIELD 28

StructureDefinition

typedef struct {
    UA_NodeId defaultEncodingId;
    UA_NodeId baseDataType;
    UA_StructureType structureType;
    size_t fieldsSize;
    UA_StructureField *fields;
} UA_StructureDefinition;

#define UA_TYPES_STRUCTUREDEFINITION 29

Argument

typedef struct {
    UA_String name;
    UA_NodeId dataType;
    UA_Int32 valueRank;
    size_t arrayDimensionsSize;
    UA_UInt32 *arrayDimensions;
    UA_LocalizedText description;
} UA_Argument;

#define UA_TYPES_ARGUMENT 30

EnumValueType

typedef struct {
    UA_Int64 value;
    UA_LocalizedText displayName;
    UA_LocalizedText description;
} UA_EnumValueType;

#define UA_TYPES_ENUMVALUETYPE 31

EnumField

typedef struct {
    UA_Int64 value;
    UA_LocalizedText displayName;
    UA_LocalizedText description;
    UA_String name;
} UA_EnumField;

#define UA_TYPES_ENUMFIELD 32

Duration

typedef UA_Double UA_Duration;

#define UA_TYPES_DURATION 33

UtcTime

typedef UA_DateTime UA_UtcTime;

#define UA_TYPES_UTCTIME 34

LocaleId

typedef UA_String UA_LocaleId;

#define UA_TYPES_LOCALEID 35

TimeZoneDataType

typedef struct {
    UA_Int16 offset;
    UA_Boolean daylightSavingInOffset;
} UA_TimeZoneDataType;

#define UA_TYPES_TIMEZONEDATATYPE 36

ApplicationType

typedef enum {
    UA_APPLICATIONTYPE_SERVER = 0,
    UA_APPLICATIONTYPE_CLIENT = 1,
    UA_APPLICATIONTYPE_CLIENTANDSERVER = 2,
    UA_APPLICATIONTYPE_DISCOVERYSERVER = 3,
    __UA_APPLICATIONTYPE_FORCE32BIT = 0x7fffffff
} UA_ApplicationType;
UA_STATIC_ASSERT(sizeof(UA_ApplicationType) == sizeof(UA_Int32), enum_must_be_32bit);

#define UA_TYPES_APPLICATIONTYPE 37

ApplicationDescription

typedef struct {
    UA_String applicationUri;
    UA_String productUri;
    UA_LocalizedText applicationName;
    UA_ApplicationType applicationType;
    UA_String gatewayServerUri;
    UA_String discoveryProfileUri;
    size_t discoveryUrlsSize;
    UA_String *discoveryUrls;
} UA_ApplicationDescription;

#define UA_TYPES_APPLICATIONDESCRIPTION 38

RequestHeader

typedef struct {
    UA_NodeId authenticationToken;
    UA_DateTime timestamp;
    UA_UInt32 requestHandle;
    UA_UInt32 returnDiagnostics;
    UA_String auditEntryId;
    UA_UInt32 timeoutHint;
    UA_ExtensionObject additionalHeader;
} UA_RequestHeader;

#define UA_TYPES_REQUESTHEADER 39

ResponseHeader

typedef struct {
    UA_DateTime timestamp;
    UA_UInt32 requestHandle;
    UA_StatusCode serviceResult;
    UA_DiagnosticInfo serviceDiagnostics;
    size_t stringTableSize;
    UA_String *stringTable;
    UA_ExtensionObject additionalHeader;
} UA_ResponseHeader;

#define UA_TYPES_RESPONSEHEADER 40

ServiceFault

typedef struct {
    UA_ResponseHeader responseHeader;
} UA_ServiceFault;

#define UA_TYPES_SERVICEFAULT 41

FindServersRequest

typedef struct {
    UA_RequestHeader requestHeader;
    UA_String endpointUrl;
    size_t localeIdsSize;
    UA_String *localeIds;
    size_t serverUrisSize;
    UA_String *serverUris;
} UA_FindServersRequest;

#define UA_TYPES_FINDSERVERSREQUEST 42

FindServersResponse

typedef struct {
    UA_ResponseHeader responseHeader;
    size_t serversSize;
    UA_ApplicationDescription *servers;
} UA_FindServersResponse;

#define UA_TYPES_FINDSERVERSRESPONSE 43

MessageSecurityMode

typedef enum {
    UA_MESSAGESECURITYMODE_INVALID = 0,
    UA_MESSAGESECURITYMODE_NONE = 1,
    UA_MESSAGESECURITYMODE_SIGN = 2,
    UA_MESSAGESECURITYMODE_SIGNANDENCRYPT = 3,
    __UA_MESSAGESECURITYMODE_FORCE32BIT = 0x7fffffff
} UA_MessageSecurityMode;
UA_STATIC_ASSERT(sizeof(UA_MessageSecurityMode) == sizeof(UA_Int32), enum_must_be_32bit);

#define UA_TYPES_MESSAGESECURITYMODE 44

UserTokenType

typedef enum {
    UA_USERTOKENTYPE_ANONYMOUS = 0,
    UA_USERTOKENTYPE_USERNAME = 1,
    UA_USERTOKENTYPE_CERTIFICATE = 2,
    UA_USERTOKENTYPE_ISSUEDTOKEN = 3,
    __UA_USERTOKENTYPE_FORCE32BIT = 0x7fffffff
} UA_UserTokenType;
UA_STATIC_ASSERT(sizeof(UA_UserTokenType) == sizeof(UA_Int32), enum_must_be_32bit);

#define UA_TYPES_USERTOKENTYPE 45

UserTokenPolicy

typedef struct {
    UA_String policyId;
    UA_UserTokenType tokenType;
    UA_String issuedTokenType;
    UA_String issuerEndpointUrl;
    UA_String securityPolicyUri;
} UA_UserTokenPolicy;

#define UA_TYPES_USERTOKENPOLICY 46

EndpointDescription

typedef struct {
    UA_String endpointUrl;
    UA_ApplicationDescription server;
    UA_ByteString serverCertificate;
    UA_MessageSecurityMode securityMode;
    UA_String securityPolicyUri;
    size_t userIdentityTokensSize;
    UA_UserTokenPolicy *userIdentityTokens;
    UA_String transportProfileUri;
    UA_Byte securityLevel;
} UA_EndpointDescription;

#define UA_TYPES_ENDPOINTDESCRIPTION 47

GetEndpointsRequest

typedef struct {
    UA_RequestHeader requestHeader;
    UA_String endpointUrl;
    size_t localeIdsSize;
    UA_String *localeIds;
    size_t profileUrisSize;
    UA_String *profileUris;
} UA_GetEndpointsRequest;

#define UA_TYPES_GETENDPOINTSREQUEST 48

GetEndpointsResponse

typedef struct {
    UA_ResponseHeader responseHeader;
    size_t endpointsSize;
    UA_EndpointDescription *endpoints;
} UA_GetEndpointsResponse;

#define UA_TYPES_GETENDPOINTSRESPONSE 49

SecurityTokenRequestType

typedef enum {
    UA_SECURITYTOKENREQUESTTYPE_ISSUE = 0,
    UA_SECURITYTOKENREQUESTTYPE_RENEW = 1,
    __UA_SECURITYTOKENREQUESTTYPE_FORCE32BIT = 0x7fffffff
} UA_SecurityTokenRequestType;
UA_STATIC_ASSERT(sizeof(UA_SecurityTokenRequestType) == sizeof(UA_Int32), enum_must_be_32bit);

#define UA_TYPES_SECURITYTOKENREQUESTTYPE 50

ChannelSecurityToken

typedef struct {
    UA_UInt32 channelId;
    UA_UInt32 tokenId;
    UA_DateTime createdAt;
    UA_UInt32 revisedLifetime;
} UA_ChannelSecurityToken;

#define UA_TYPES_CHANNELSECURITYTOKEN 51

OpenSecureChannelRequest

typedef struct {
    UA_RequestHeader requestHeader;
    UA_UInt32 clientProtocolVersion;
    UA_SecurityTokenRequestType requestType;
    UA_MessageSecurityMode securityMode;
    UA_ByteString clientNonce;
    UA_UInt32 requestedLifetime;
} UA_OpenSecureChannelRequest;

#define UA_TYPES_OPENSECURECHANNELREQUEST 52

OpenSecureChannelResponse

typedef struct {
    UA_ResponseHeader responseHeader;
    UA_UInt32 serverProtocolVersion;
    UA_ChannelSecurityToken securityToken;
    UA_ByteString serverNonce;
} UA_OpenSecureChannelResponse;

#define UA_TYPES_OPENSECURECHANNELRESPONSE 53

CloseSecureChannelRequest

typedef struct {
    UA_RequestHeader requestHeader;
} UA_CloseSecureChannelRequest;

#define UA_TYPES_CLOSESECURECHANNELREQUEST 54

CloseSecureChannelResponse

typedef struct {
    UA_ResponseHeader responseHeader;
} UA_CloseSecureChannelResponse;

#define UA_TYPES_CLOSESECURECHANNELRESPONSE 55

SignedSoftwareCertificate

typedef struct {
    UA_ByteString certificateData;
    UA_ByteString signature;
} UA_SignedSoftwareCertificate;

#define UA_TYPES_SIGNEDSOFTWARECERTIFICATE 56

SignatureData

typedef struct {
    UA_String algorithm;
    UA_ByteString signature;
} UA_SignatureData;

#define UA_TYPES_SIGNATUREDATA 57

CreateSessionRequest

typedef struct {
    UA_RequestHeader requestHeader;
    UA_ApplicationDescription clientDescription;
    UA_String serverUri;
    UA_String endpointUrl;
    UA_String sessionName;
    UA_ByteString clientNonce;
    UA_ByteString clientCertificate;
    UA_Double requestedSessionTimeout;
    UA_UInt32 maxResponseMessageSize;
} UA_CreateSessionRequest;

#define UA_TYPES_CREATESESSIONREQUEST 58

CreateSessionResponse

typedef struct {
    UA_ResponseHeader responseHeader;
    UA_NodeId sessionId;
    UA_NodeId authenticationToken;
    UA_Double revisedSessionTimeout;
    UA_ByteString serverNonce;
    UA_ByteString serverCertificate;
    size_t serverEndpointsSize;
    UA_EndpointDescription *serverEndpoints;
    size_t serverSoftwareCertificatesSize;
    UA_SignedSoftwareCertificate *serverSoftwareCertificates;
    UA_SignatureData serverSignature;
    UA_UInt32 maxRequestMessageSize;
} UA_CreateSessionResponse;

#define UA_TYPES_CREATESESSIONRESPONSE 59

UserIdentityToken

typedef struct {
    UA_String policyId;
} UA_UserIdentityToken;

#define UA_TYPES_USERIDENTITYTOKEN 60

AnonymousIdentityToken

typedef struct {
    UA_String policyId;
} UA_AnonymousIdentityToken;

#define UA_TYPES_ANONYMOUSIDENTITYTOKEN 61

UserNameIdentityToken

typedef struct {
    UA_String policyId;
    UA_String userName;
    UA_ByteString password;
    UA_String encryptionAlgorithm;
} UA_UserNameIdentityToken;

#define UA_TYPES_USERNAMEIDENTITYTOKEN 62

X509IdentityToken

typedef struct {
    UA_String policyId;
    UA_ByteString certificateData;
} UA_X509IdentityToken;

#define UA_TYPES_X509IDENTITYTOKEN 63

IssuedIdentityToken

typedef struct {
    UA_String policyId;
    UA_ByteString tokenData;
    UA_String encryptionAlgorithm;
} UA_IssuedIdentityToken;

#define UA_TYPES_ISSUEDIDENTITYTOKEN 64

ActivateSessionRequest

typedef struct {
    UA_RequestHeader requestHeader;
    UA_SignatureData clientSignature;
    size_t clientSoftwareCertificatesSize;
    UA_SignedSoftwareCertificate *clientSoftwareCertificates;
    size_t localeIdsSize;
    UA_String *localeIds;
    UA_ExtensionObject userIdentityToken;
    UA_SignatureData userTokenSignature;
} UA_ActivateSessionRequest;

#define UA_TYPES_ACTIVATESESSIONREQUEST 65

ActivateSessionResponse

typedef struct {
    UA_ResponseHeader responseHeader;
    UA_ByteString serverNonce;
    size_t resultsSize;
    UA_StatusCode *results;
    size_t diagnosticInfosSize;
    UA_DiagnosticInfo *diagnosticInfos;
} UA_ActivateSessionResponse;

#define UA_TYPES_ACTIVATESESSIONRESPONSE 66

CloseSessionRequest

typedef struct {
    UA_RequestHeader requestHeader;
    UA_Boolean deleteSubscriptions;
} UA_CloseSessionRequest;

#define UA_TYPES_CLOSESESSIONREQUEST 67

CloseSessionResponse

typedef struct {
    UA_ResponseHeader responseHeader;
} UA_CloseSessionResponse;

#define UA_TYPES_CLOSESESSIONRESPONSE 68

NodeAttributesMask

typedef enum {
    UA_NODEATTRIBUTESMASK_NONE = 0,
    UA_NODEATTRIBUTESMASK_ACCESSLEVEL = 1,
    UA_NODEATTRIBUTESMASK_ARRAYDIMENSIONS = 2,
    UA_NODEATTRIBUTESMASK_BROWSENAME = 4,
    UA_NODEATTRIBUTESMASK_CONTAINSNOLOOPS = 8,
    UA_NODEATTRIBUTESMASK_DATATYPE = 16,
    UA_NODEATTRIBUTESMASK_DESCRIPTION = 32,
    UA_NODEATTRIBUTESMASK_DISPLAYNAME = 64,
    UA_NODEATTRIBUTESMASK_EVENTNOTIFIER = 128,
    UA_NODEATTRIBUTESMASK_EXECUTABLE = 256,
    UA_NODEATTRIBUTESMASK_HISTORIZING = 512,
    UA_NODEATTRIBUTESMASK_INVERSENAME = 1024,
    UA_NODEATTRIBUTESMASK_ISABSTRACT = 2048,
    UA_NODEATTRIBUTESMASK_MINIMUMSAMPLINGINTERVAL = 4096,
    UA_NODEATTRIBUTESMASK_NODECLASS = 8192,
    UA_NODEATTRIBUTESMASK_NODEID = 16384,
    UA_NODEATTRIBUTESMASK_SYMMETRIC = 32768,
    UA_NODEATTRIBUTESMASK_USERACCESSLEVEL = 65536,
    UA_NODEATTRIBUTESMASK_USEREXECUTABLE = 131072,
    UA_NODEATTRIBUTESMASK_USERWRITEMASK = 262144,
    UA_NODEATTRIBUTESMASK_VALUERANK = 524288,
    UA_NODEATTRIBUTESMASK_WRITEMASK = 1048576,
    UA_NODEATTRIBUTESMASK_VALUE = 2097152,
    UA_NODEATTRIBUTESMASK_DATATYPEDEFINITION = 4194304,
    UA_NODEATTRIBUTESMASK_ROLEPERMISSIONS = 8388608,
    UA_NODEATTRIBUTESMASK_ACCESSRESTRICTIONS = 16777216,
    UA_NODEATTRIBUTESMASK_ALL = 33554431,
    UA_NODEATTRIBUTESMASK_BASENODE = 26501220,
    UA_NODEATTRIBUTESMASK_OBJECT = 26501348,
    UA_NODEATTRIBUTESMASK_OBJECTTYPE = 26503268,
    UA_NODEATTRIBUTESMASK_VARIABLE = 26571383,
    UA_NODEATTRIBUTESMASK_VARIABLETYPE = 28600438,
    UA_NODEATTRIBUTESMASK_METHOD = 26632548,
    UA_NODEATTRIBUTESMASK_REFERENCETYPE = 26537060,
    UA_NODEATTRIBUTESMASK_VIEW = 26501356,
    __UA_NODEATTRIBUTESMASK_FORCE32BIT = 0x7fffffff
} UA_NodeAttributesMask;
UA_STATIC_ASSERT(sizeof(UA_NodeAttributesMask) == sizeof(UA_Int32), enum_must_be_32bit);

#define UA_TYPES_NODEATTRIBUTESMASK 69

NodeAttributes

typedef struct {
    UA_UInt32 specifiedAttributes;
    UA_LocalizedText displayName;
    UA_LocalizedText description;
    UA_UInt32 writeMask;
    UA_UInt32 userWriteMask;
} UA_NodeAttributes;

#define UA_TYPES_NODEATTRIBUTES 70

ObjectAttributes

typedef struct {
    UA_UInt32 specifiedAttributes;
    UA_LocalizedText displayName;
    UA_LocalizedText description;
    UA_UInt32 writeMask;
    UA_UInt32 userWriteMask;
    UA_Byte eventNotifier;
} UA_ObjectAttributes;

#define UA_TYPES_OBJECTATTRIBUTES 71

VariableAttributes

typedef struct {
    UA_UInt32 specifiedAttributes;
    UA_LocalizedText displayName;
    UA_LocalizedText description;
    UA_UInt32 writeMask;
    UA_UInt32 userWriteMask;
    UA_Variant value;
    UA_NodeId dataType;
    UA_Int32 valueRank;
    size_t arrayDimensionsSize;
    UA_UInt32 *arrayDimensions;
    UA_Byte accessLevel;
    UA_Byte userAccessLevel;
    UA_Double minimumSamplingInterval;
    UA_Boolean historizing;
} UA_VariableAttributes;

#define UA_TYPES_VARIABLEATTRIBUTES 72

MethodAttributes

typedef struct {
    UA_UInt32 specifiedAttributes;
    UA_LocalizedText displayName;
    UA_LocalizedText description;
    UA_UInt32 writeMask;
    UA_UInt32 userWriteMask;
    UA_Boolean executable;
    UA_Boolean userExecutable;
} UA_MethodAttributes;

#define UA_TYPES_METHODATTRIBUTES 73

ObjectTypeAttributes

typedef struct {
    UA_UInt32 specifiedAttributes;
    UA_LocalizedText displayName;
    UA_LocalizedText description;
    UA_UInt32 writeMask;
    UA_UInt32 userWriteMask;
    UA_Boolean isAbstract;
} UA_ObjectTypeAttributes;

#define UA_TYPES_OBJECTTYPEATTRIBUTES 74

VariableTypeAttributes

typedef struct {
    UA_UInt32 specifiedAttributes;
    UA_LocalizedText displayName;
    UA_LocalizedText description;
    UA_UInt32 writeMask;
    UA_UInt32 userWriteMask;
    UA_Variant value;
    UA_NodeId dataType;
    UA_Int32 valueRank;
    size_t arrayDimensionsSize;
    UA_UInt32 *arrayDimensions;
    UA_Boolean isAbstract;
} UA_VariableTypeAttributes;

#define UA_TYPES_VARIABLETYPEATTRIBUTES 75

ReferenceTypeAttributes

typedef struct {
    UA_UInt32 specifiedAttributes;
    UA_LocalizedText displayName;
    UA_LocalizedText description;
    UA_UInt32 writeMask;
    UA_UInt32 userWriteMask;
    UA_Boolean isAbstract;
    UA_Boolean symmetric;
    UA_LocalizedText inverseName;
} UA_ReferenceTypeAttributes;

#define UA_TYPES_REFERENCETYPEATTRIBUTES 76

DataTypeAttributes

typedef struct {
    UA_UInt32 specifiedAttributes;
    UA_LocalizedText displayName;
    UA_LocalizedText description;
    UA_UInt32 writeMask;
    UA_UInt32 userWriteMask;
    UA_Boolean isAbstract;
} UA_DataTypeAttributes;

#define UA_TYPES_DATATYPEATTRIBUTES 77

ViewAttributes

typedef struct {
    UA_UInt32 specifiedAttributes;
    UA_LocalizedText displayName;
    UA_LocalizedText description;
    UA_UInt32 writeMask;
    UA_UInt32 userWriteMask;
    UA_Boolean containsNoLoops;
    UA_Byte eventNotifier;
} UA_ViewAttributes;

#define UA_TYPES_VIEWATTRIBUTES 78

AddNodesItem

typedef struct {
    UA_ExpandedNodeId parentNodeId;
    UA_NodeId referenceTypeId;
    UA_ExpandedNodeId requestedNewNodeId;
    UA_QualifiedName browseName;
    UA_NodeClass nodeClass;
    UA_ExtensionObject nodeAttributes;
    UA_ExpandedNodeId typeDefinition;
} UA_AddNodesItem;

#define UA_TYPES_ADDNODESITEM 79

AddNodesResult

typedef struct {
    UA_StatusCode statusCode;
    UA_NodeId addedNodeId;
} UA_AddNodesResult;

#define UA_TYPES_ADDNODESRESULT 80

AddNodesRequest

typedef struct {
    UA_RequestHeader requestHeader;
    size_t nodesToAddSize;
    UA_AddNodesItem *nodesToAdd;
} UA_AddNodesRequest;

#define UA_TYPES_ADDNODESREQUEST 81

AddNodesResponse

typedef struct {
    UA_ResponseHeader responseHeader;
    size_t resultsSize;
    UA_AddNodesResult *results;
    size_t diagnosticInfosSize;
    UA_DiagnosticInfo *diagnosticInfos;
} UA_AddNodesResponse;

#define UA_TYPES_ADDNODESRESPONSE 82

AddReferencesItem

typedef struct {
    UA_NodeId sourceNodeId;
    UA_NodeId referenceTypeId;
    UA_Boolean isForward;
    UA_String targetServerUri;
    UA_ExpandedNodeId targetNodeId;
    UA_NodeClass targetNodeClass;
} UA_AddReferencesItem;

#define UA_TYPES_ADDREFERENCESITEM 83

AddReferencesRequest

typedef struct {
    UA_RequestHeader requestHeader;
    size_t referencesToAddSize;
    UA_AddReferencesItem *referencesToAdd;
} UA_AddReferencesRequest;

#define UA_TYPES_ADDREFERENCESREQUEST 84

AddReferencesResponse

typedef struct {
    UA_ResponseHeader responseHeader;
    size_t resultsSize;
    UA_StatusCode *results;
    size_t diagnosticInfosSize;
    UA_DiagnosticInfo *diagnosticInfos;
} UA_AddReferencesResponse;

#define UA_TYPES_ADDREFERENCESRESPONSE 85

DeleteNodesItem

typedef struct {
    UA_NodeId nodeId;
    UA_Boolean deleteTargetReferences;
} UA_DeleteNodesItem;

#define UA_TYPES_DELETENODESITEM 86

DeleteNodesRequest

typedef struct {
    UA_RequestHeader requestHeader;
    size_t nodesToDeleteSize;
    UA_DeleteNodesItem *nodesToDelete;
} UA_DeleteNodesRequest;

#define UA_TYPES_DELETENODESREQUEST 87

DeleteNodesResponse

typedef struct {
    UA_ResponseHeader responseHeader;
    size_t resultsSize;
    UA_StatusCode *results;
    size_t diagnosticInfosSize;
    UA_DiagnosticInfo *diagnosticInfos;
} UA_DeleteNodesResponse;

#define UA_TYPES_DELETENODESRESPONSE 88

DeleteReferencesItem

typedef struct {
    UA_NodeId sourceNodeId;
    UA_NodeId referenceTypeId;
    UA_Boolean isForward;
    UA_ExpandedNodeId targetNodeId;
    UA_Boolean deleteBidirectional;
} UA_DeleteReferencesItem;

#define UA_TYPES_DELETEREFERENCESITEM 89

DeleteReferencesRequest

typedef struct {
    UA_RequestHeader requestHeader;
    size_t referencesToDeleteSize;
    UA_DeleteReferencesItem *referencesToDelete;
} UA_DeleteReferencesRequest;

#define UA_TYPES_DELETEREFERENCESREQUEST 90

DeleteReferencesResponse

typedef struct {
    UA_ResponseHeader responseHeader;
    size_t resultsSize;
    UA_StatusCode *results;
    size_t diagnosticInfosSize;
    UA_DiagnosticInfo *diagnosticInfos;
} UA_DeleteReferencesResponse;

#define UA_TYPES_DELETEREFERENCESRESPONSE 91

BrowseDirection

typedef enum {
    UA_BROWSEDIRECTION_FORWARD = 0,
    UA_BROWSEDIRECTION_INVERSE = 1,
    UA_BROWSEDIRECTION_BOTH = 2,
    UA_BROWSEDIRECTION_INVALID = 3,
    __UA_BROWSEDIRECTION_FORCE32BIT = 0x7fffffff
} UA_BrowseDirection;
UA_STATIC_ASSERT(sizeof(UA_BrowseDirection) == sizeof(UA_Int32), enum_must_be_32bit);

#define UA_TYPES_BROWSEDIRECTION 92

ViewDescription

typedef struct {
    UA_NodeId viewId;
    UA_DateTime timestamp;
    UA_UInt32 viewVersion;
} UA_ViewDescription;

#define UA_TYPES_VIEWDESCRIPTION 93

BrowseDescription

typedef struct {
    UA_NodeId nodeId;
    UA_BrowseDirection browseDirection;
    UA_NodeId referenceTypeId;
    UA_Boolean includeSubtypes;
    UA_UInt32 nodeClassMask;
    UA_UInt32 resultMask;
} UA_BrowseDescription;

#define UA_TYPES_BROWSEDESCRIPTION 94

BrowseResultMask

typedef enum {
    UA_BROWSERESULTMASK_NONE = 0,
    UA_BROWSERESULTMASK_REFERENCETYPEID = 1,
    UA_BROWSERESULTMASK_ISFORWARD = 2,
    UA_BROWSERESULTMASK_NODECLASS = 4,
    UA_BROWSERESULTMASK_BROWSENAME = 8,
    UA_BROWSERESULTMASK_DISPLAYNAME = 16,
    UA_BROWSERESULTMASK_TYPEDEFINITION = 32,
    UA_BROWSERESULTMASK_ALL = 63,
    UA_BROWSERESULTMASK_REFERENCETYPEINFO = 3,
    UA_BROWSERESULTMASK_TARGETINFO = 60,
    __UA_BROWSERESULTMASK_FORCE32BIT = 0x7fffffff
} UA_BrowseResultMask;
UA_STATIC_ASSERT(sizeof(UA_BrowseResultMask) == sizeof(UA_Int32), enum_must_be_32bit);

#define UA_TYPES_BROWSERESULTMASK 95

ReferenceDescription

typedef struct {
    UA_NodeId referenceTypeId;
    UA_Boolean isForward;
    UA_ExpandedNodeId nodeId;
    UA_QualifiedName browseName;
    UA_LocalizedText displayName;
    UA_NodeClass nodeClass;
    UA_ExpandedNodeId typeDefinition;
} UA_ReferenceDescription;

#define UA_TYPES_REFERENCEDESCRIPTION 96

BrowseResult

typedef struct {
    UA_StatusCode statusCode;
    UA_ByteString continuationPoint;
    size_t referencesSize;
    UA_ReferenceDescription *references;
} UA_BrowseResult;

#define UA_TYPES_BROWSERESULT 97

BrowseRequest

typedef struct {
    UA_RequestHeader requestHeader;
    UA_ViewDescription view;
    UA_UInt32 requestedMaxReferencesPerNode;
    size_t nodesToBrowseSize;
    UA_BrowseDescription *nodesToBrowse;
} UA_BrowseRequest;

#define UA_TYPES_BROWSEREQUEST 98

BrowseResponse

typedef struct {
    UA_ResponseHeader responseHeader;
    size_t resultsSize;
    UA_BrowseResult *results;
    size_t diagnosticInfosSize;
    UA_DiagnosticInfo *diagnosticInfos;
} UA_BrowseResponse;

#define UA_TYPES_BROWSERESPONSE 99

BrowseNextRequest

typedef struct {
    UA_RequestHeader requestHeader;
    UA_Boolean releaseContinuationPoints;
    size_t continuationPointsSize;
    UA_ByteString *continuationPoints;
} UA_BrowseNextRequest;

#define UA_TYPES_BROWSENEXTREQUEST 100

BrowseNextResponse

typedef struct {
    UA_ResponseHeader responseHeader;
    size_t resultsSize;
    UA_BrowseResult *results;
    size_t diagnosticInfosSize;
    UA_DiagnosticInfo *diagnosticInfos;
} UA_BrowseNextResponse;

#define UA_TYPES_BROWSENEXTRESPONSE 101

RelativePathElement

typedef struct {
    UA_NodeId referenceTypeId;
    UA_Boolean isInverse;
    UA_Boolean includeSubtypes;
    UA_QualifiedName targetName;
} UA_RelativePathElement;

#define UA_TYPES_RELATIVEPATHELEMENT 102

RelativePath

typedef struct {
    size_t elementsSize;
    UA_RelativePathElement *elements;
} UA_RelativePath;

#define UA_TYPES_RELATIVEPATH 103

BrowsePath

typedef struct {
    UA_NodeId startingNode;
    UA_RelativePath relativePath;
} UA_BrowsePath;

#define UA_TYPES_BROWSEPATH 104

BrowsePathTarget

typedef struct {
    UA_ExpandedNodeId targetId;
    UA_UInt32 remainingPathIndex;
} UA_BrowsePathTarget;

#define UA_TYPES_BROWSEPATHTARGET 105

BrowsePathResult

typedef struct {
    UA_StatusCode statusCode;
    size_t targetsSize;
    UA_BrowsePathTarget *targets;
} UA_BrowsePathResult;

#define UA_TYPES_BROWSEPATHRESULT 106

TranslateBrowsePathsToNodeIdsRequest

typedef struct {
    UA_RequestHeader requestHeader;
    size_t browsePathsSize;
    UA_BrowsePath *browsePaths;
} UA_TranslateBrowsePathsToNodeIdsRequest;

#define UA_TYPES_TRANSLATEBROWSEPATHSTONODEIDSREQUEST 107

TranslateBrowsePathsToNodeIdsResponse

typedef struct {
    UA_ResponseHeader responseHeader;
    size_t resultsSize;
    UA_BrowsePathResult *results;
    size_t diagnosticInfosSize;
    UA_DiagnosticInfo *diagnosticInfos;
} UA_TranslateBrowsePathsToNodeIdsResponse;

#define UA_TYPES_TRANSLATEBROWSEPATHSTONODEIDSRESPONSE 108

RegisterNodesRequest

typedef struct {
    UA_RequestHeader requestHeader;
    size_t nodesToRegisterSize;
    UA_NodeId *nodesToRegister;
} UA_RegisterNodesRequest;

#define UA_TYPES_REGISTERNODESREQUEST 109

RegisterNodesResponse

typedef struct {
    UA_ResponseHeader responseHeader;
    size_t registeredNodeIdsSize;
    UA_NodeId *registeredNodeIds;
} UA_RegisterNodesResponse;

#define UA_TYPES_REGISTERNODESRESPONSE 110

UnregisterNodesRequest

typedef struct {
    UA_RequestHeader requestHeader;
    size_t nodesToUnregisterSize;
    UA_NodeId *nodesToUnregister;
} UA_UnregisterNodesRequest;

#define UA_TYPES_UNREGISTERNODESREQUEST 111

UnregisterNodesResponse

typedef struct {
    UA_ResponseHeader responseHeader;
} UA_UnregisterNodesResponse;

#define UA_TYPES_UNREGISTERNODESRESPONSE 112

FilterOperator

typedef enum {
    UA_FILTEROPERATOR_EQUALS = 0,
    UA_FILTEROPERATOR_ISNULL = 1,
    UA_FILTEROPERATOR_GREATERTHAN = 2,
    UA_FILTEROPERATOR_LESSTHAN = 3,
    UA_FILTEROPERATOR_GREATERTHANOREQUAL = 4,
    UA_FILTEROPERATOR_LESSTHANOREQUAL = 5,
    UA_FILTEROPERATOR_LIKE = 6,
    UA_FILTEROPERATOR_NOT = 7,
    UA_FILTEROPERATOR_BETWEEN = 8,
    UA_FILTEROPERATOR_INLIST = 9,
    UA_FILTEROPERATOR_AND = 10,
    UA_FILTEROPERATOR_OR = 11,
    UA_FILTEROPERATOR_CAST = 12,
    UA_FILTEROPERATOR_INVIEW = 13,
    UA_FILTEROPERATOR_OFTYPE = 14,
    UA_FILTEROPERATOR_RELATEDTO = 15,
    UA_FILTEROPERATOR_BITWISEAND = 16,
    UA_FILTEROPERATOR_BITWISEOR = 17,
    __UA_FILTEROPERATOR_FORCE32BIT = 0x7fffffff
} UA_FilterOperator;
UA_STATIC_ASSERT(sizeof(UA_FilterOperator) == sizeof(UA_Int32), enum_must_be_32bit);

#define UA_TYPES_FILTEROPERATOR 113

ContentFilterElement

typedef struct {
    UA_FilterOperator filterOperator;
    size_t filterOperandsSize;
    UA_ExtensionObject *filterOperands;
} UA_ContentFilterElement;

#define UA_TYPES_CONTENTFILTERELEMENT 114

ContentFilter

typedef struct {
    size_t elementsSize;
    UA_ContentFilterElement *elements;
} UA_ContentFilter;

#define UA_TYPES_CONTENTFILTER 115

ElementOperand

typedef struct {
    UA_UInt32 index;
} UA_ElementOperand;

#define UA_TYPES_ELEMENTOPERAND 116

LiteralOperand

typedef struct {
    UA_Variant value;
} UA_LiteralOperand;

#define UA_TYPES_LITERALOPERAND 117

AttributeOperand

typedef struct {
    UA_NodeId nodeId;
    UA_String alias;
    UA_RelativePath browsePath;
    UA_UInt32 attributeId;
    UA_String indexRange;
} UA_AttributeOperand;

#define UA_TYPES_ATTRIBUTEOPERAND 118

SimpleAttributeOperand

typedef struct {
    UA_NodeId typeDefinitionId;
    size_t browsePathSize;
    UA_QualifiedName *browsePath;
    UA_UInt32 attributeId;
    UA_String indexRange;
} UA_SimpleAttributeOperand;

#define UA_TYPES_SIMPLEATTRIBUTEOPERAND 119

ContentFilterElementResult

typedef struct {
    UA_StatusCode statusCode;
    size_t operandStatusCodesSize;
    UA_StatusCode *operandStatusCodes;
    size_t operandDiagnosticInfosSize;
    UA_DiagnosticInfo *operandDiagnosticInfos;
} UA_ContentFilterElementResult;

#define UA_TYPES_CONTENTFILTERELEMENTRESULT 120

ContentFilterResult

typedef struct {
    size_t elementResultsSize;
    UA_ContentFilterElementResult *elementResults;
    size_t elementDiagnosticInfosSize;
    UA_DiagnosticInfo *elementDiagnosticInfos;
} UA_ContentFilterResult;

#define UA_TYPES_CONTENTFILTERRESULT 121

TimestampsToReturn

typedef enum {
    UA_TIMESTAMPSTORETURN_SOURCE = 0,
    UA_TIMESTAMPSTORETURN_SERVER = 1,
    UA_TIMESTAMPSTORETURN_BOTH = 2,
    UA_TIMESTAMPSTORETURN_NEITHER = 3,
    UA_TIMESTAMPSTORETURN_INVALID = 4,
    __UA_TIMESTAMPSTORETURN_FORCE32BIT = 0x7fffffff
} UA_TimestampsToReturn;
UA_STATIC_ASSERT(sizeof(UA_TimestampsToReturn) == sizeof(UA_Int32), enum_must_be_32bit);

#define UA_TYPES_TIMESTAMPSTORETURN 122

ReadValueId

typedef struct {
    UA_NodeId nodeId;
    UA_UInt32 attributeId;
    UA_String indexRange;
    UA_QualifiedName dataEncoding;
} UA_ReadValueId;

#define UA_TYPES_READVALUEID 123

ReadRequest

typedef struct {
    UA_RequestHeader requestHeader;
    UA_Double maxAge;
    UA_TimestampsToReturn timestampsToReturn;
    size_t nodesToReadSize;
    UA_ReadValueId *nodesToRead;
} UA_ReadRequest;

#define UA_TYPES_READREQUEST 124

ReadResponse

typedef struct {
    UA_ResponseHeader responseHeader;
    size_t resultsSize;
    UA_DataValue *results;
    size_t diagnosticInfosSize;
    UA_DiagnosticInfo *diagnosticInfos;
} UA_ReadResponse;

#define UA_TYPES_READRESPONSE 125

WriteValue

typedef struct {
    UA_NodeId nodeId;
    UA_UInt32 attributeId;
    UA_String indexRange;
    UA_DataValue value;
} UA_WriteValue;

#define UA_TYPES_WRITEVALUE 126

WriteRequest

typedef struct {
    UA_RequestHeader requestHeader;
    size_t nodesToWriteSize;
    UA_WriteValue *nodesToWrite;
} UA_WriteRequest;

#define UA_TYPES_WRITEREQUEST 127

WriteResponse

typedef struct {
    UA_ResponseHeader responseHeader;
    size_t resultsSize;
    UA_StatusCode *results;
    size_t diagnosticInfosSize;
    UA_DiagnosticInfo *diagnosticInfos;
} UA_WriteResponse;

#define UA_TYPES_WRITERESPONSE 128

CallMethodRequest

typedef struct {
    UA_NodeId objectId;
    UA_NodeId methodId;
    size_t inputArgumentsSize;
    UA_Variant *inputArguments;
} UA_CallMethodRequest;

#define UA_TYPES_CALLMETHODREQUEST 129

CallMethodResult

typedef struct {
    UA_StatusCode statusCode;
    size_t inputArgumentResultsSize;
    UA_StatusCode *inputArgumentResults;
    size_t inputArgumentDiagnosticInfosSize;
    UA_DiagnosticInfo *inputArgumentDiagnosticInfos;
    size_t outputArgumentsSize;
    UA_Variant *outputArguments;
} UA_CallMethodResult;

#define UA_TYPES_CALLMETHODRESULT 130

CallRequest

typedef struct {
    UA_RequestHeader requestHeader;
    size_t methodsToCallSize;
    UA_CallMethodRequest *methodsToCall;
} UA_CallRequest;

#define UA_TYPES_CALLREQUEST 131

CallResponse

typedef struct {
    UA_ResponseHeader responseHeader;
    size_t resultsSize;
    UA_CallMethodResult *results;
    size_t diagnosticInfosSize;
    UA_DiagnosticInfo *diagnosticInfos;
} UA_CallResponse;

#define UA_TYPES_CALLRESPONSE 132

MonitoringMode

typedef enum {
    UA_MONITORINGMODE_DISABLED = 0,
    UA_MONITORINGMODE_SAMPLING = 1,
    UA_MONITORINGMODE_REPORTING = 2,
    __UA_MONITORINGMODE_FORCE32BIT = 0x7fffffff
} UA_MonitoringMode;
UA_STATIC_ASSERT(sizeof(UA_MonitoringMode) == sizeof(UA_Int32), enum_must_be_32bit);

#define UA_TYPES_MONITORINGMODE 133

DataChangeTrigger

typedef enum {
    UA_DATACHANGETRIGGER_STATUS = 0,
    UA_DATACHANGETRIGGER_STATUSVALUE = 1,
    UA_DATACHANGETRIGGER_STATUSVALUETIMESTAMP = 2,
    __UA_DATACHANGETRIGGER_FORCE32BIT = 0x7fffffff
} UA_DataChangeTrigger;
UA_STATIC_ASSERT(sizeof(UA_DataChangeTrigger) == sizeof(UA_Int32), enum_must_be_32bit);

#define UA_TYPES_DATACHANGETRIGGER 134

DeadbandType

typedef enum {
    UA_DEADBANDTYPE_NONE = 0,
    UA_DEADBANDTYPE_ABSOLUTE = 1,
    UA_DEADBANDTYPE_PERCENT = 2,
    __UA_DEADBANDTYPE_FORCE32BIT = 0x7fffffff
} UA_DeadbandType;
UA_STATIC_ASSERT(sizeof(UA_DeadbandType) == sizeof(UA_Int32), enum_must_be_32bit);

#define UA_TYPES_DEADBANDTYPE 135

DataChangeFilter

typedef struct {
    UA_DataChangeTrigger trigger;
    UA_UInt32 deadbandType;
    UA_Double deadbandValue;
} UA_DataChangeFilter;

#define UA_TYPES_DATACHANGEFILTER 136

EventFilter

typedef struct {
    size_t selectClausesSize;
    UA_SimpleAttributeOperand *selectClauses;
    UA_ContentFilter whereClause;
} UA_EventFilter;

#define UA_TYPES_EVENTFILTER 137

AggregateConfiguration

typedef struct {
    UA_Boolean useServerCapabilitiesDefaults;
    UA_Boolean treatUncertainAsBad;
    UA_Byte percentDataBad;
    UA_Byte percentDataGood;
    UA_Boolean useSlopedExtrapolation;
} UA_AggregateConfiguration;

#define UA_TYPES_AGGREGATECONFIGURATION 138

AggregateFilter

typedef struct {
    UA_DateTime startTime;
    UA_NodeId aggregateType;
    UA_Double processingInterval;
    UA_AggregateConfiguration aggregateConfiguration;
} UA_AggregateFilter;

#define UA_TYPES_AGGREGATEFILTER 139

EventFilterResult

typedef struct {
    size_t selectClauseResultsSize;
    UA_StatusCode *selectClauseResults;
    size_t selectClauseDiagnosticInfosSize;
    UA_DiagnosticInfo *selectClauseDiagnosticInfos;
    UA_ContentFilterResult whereClauseResult;
} UA_EventFilterResult;

#define UA_TYPES_EVENTFILTERRESULT 140

MonitoringParameters

typedef struct {
    UA_UInt32 clientHandle;
    UA_Double samplingInterval;
    UA_ExtensionObject filter;
    UA_UInt32 queueSize;
    UA_Boolean discardOldest;
} UA_MonitoringParameters;

#define UA_TYPES_MONITORINGPARAMETERS 141

MonitoredItemCreateRequest

typedef struct {
    UA_ReadValueId itemToMonitor;
    UA_MonitoringMode monitoringMode;
    UA_MonitoringParameters requestedParameters;
} UA_MonitoredItemCreateRequest;

#define UA_TYPES_MONITOREDITEMCREATEREQUEST 142

MonitoredItemCreateResult

typedef struct {
    UA_StatusCode statusCode;
    UA_UInt32 monitoredItemId;
    UA_Double revisedSamplingInterval;
    UA_UInt32 revisedQueueSize;
    UA_ExtensionObject filterResult;
} UA_MonitoredItemCreateResult;

#define UA_TYPES_MONITOREDITEMCREATERESULT 143

CreateMonitoredItemsRequest

typedef struct {
    UA_RequestHeader requestHeader;
    UA_UInt32 subscriptionId;
    UA_TimestampsToReturn timestampsToReturn;
    size_t itemsToCreateSize;
    UA_MonitoredItemCreateRequest *itemsToCreate;
} UA_CreateMonitoredItemsRequest;

#define UA_TYPES_CREATEMONITOREDITEMSREQUEST 144

CreateMonitoredItemsResponse

typedef struct {
    UA_ResponseHeader responseHeader;
    size_t resultsSize;
    UA_MonitoredItemCreateResult *results;
    size_t diagnosticInfosSize;
    UA_DiagnosticInfo *diagnosticInfos;
} UA_CreateMonitoredItemsResponse;

#define UA_TYPES_CREATEMONITOREDITEMSRESPONSE 145

MonitoredItemModifyRequest

typedef struct {
    UA_UInt32 monitoredItemId;
    UA_MonitoringParameters requestedParameters;
} UA_MonitoredItemModifyRequest;

#define UA_TYPES_MONITOREDITEMMODIFYREQUEST 146

MonitoredItemModifyResult

typedef struct {
    UA_StatusCode statusCode;
    UA_Double revisedSamplingInterval;
    UA_UInt32 revisedQueueSize;
    UA_ExtensionObject filterResult;
} UA_MonitoredItemModifyResult;

#define UA_TYPES_MONITOREDITEMMODIFYRESULT 147

ModifyMonitoredItemsRequest

typedef struct {
    UA_RequestHeader requestHeader;
    UA_UInt32 subscriptionId;
    UA_TimestampsToReturn timestampsToReturn;
    size_t itemsToModifySize;
    UA_MonitoredItemModifyRequest *itemsToModify;
} UA_ModifyMonitoredItemsRequest;

#define UA_TYPES_MODIFYMONITOREDITEMSREQUEST 148

ModifyMonitoredItemsResponse

typedef struct {
    UA_ResponseHeader responseHeader;
    size_t resultsSize;
    UA_MonitoredItemModifyResult *results;
    size_t diagnosticInfosSize;
    UA_DiagnosticInfo *diagnosticInfos;
} UA_ModifyMonitoredItemsResponse;

#define UA_TYPES_MODIFYMONITOREDITEMSRESPONSE 149

SetMonitoringModeRequest

typedef struct {
    UA_RequestHeader requestHeader;
    UA_UInt32 subscriptionId;
    UA_MonitoringMode monitoringMode;
    size_t monitoredItemIdsSize;
    UA_UInt32 *monitoredItemIds;
} UA_SetMonitoringModeRequest;

#define UA_TYPES_SETMONITORINGMODEREQUEST 150

SetMonitoringModeResponse

typedef struct {
    UA_ResponseHeader responseHeader;
    size_t resultsSize;
    UA_StatusCode *results;
    size_t diagnosticInfosSize;
    UA_DiagnosticInfo *diagnosticInfos;
} UA_SetMonitoringModeResponse;

#define UA_TYPES_SETMONITORINGMODERESPONSE 151

SetTriggeringRequest

typedef struct {
    UA_RequestHeader requestHeader;
    UA_UInt32 subscriptionId;
    UA_UInt32 triggeringItemId;
    size_t linksToAddSize;
    UA_UInt32 *linksToAdd;
    size_t linksToRemoveSize;
    UA_UInt32 *linksToRemove;
} UA_SetTriggeringRequest;

#define UA_TYPES_SETTRIGGERINGREQUEST 152

SetTriggeringResponse

typedef struct {
    UA_ResponseHeader responseHeader;
    size_t addResultsSize;
    UA_StatusCode *addResults;
    size_t addDiagnosticInfosSize;
    UA_DiagnosticInfo *addDiagnosticInfos;
    size_t removeResultsSize;
    UA_StatusCode *removeResults;
    size_t removeDiagnosticInfosSize;
    UA_DiagnosticInfo *removeDiagnosticInfos;
} UA_SetTriggeringResponse;

#define UA_TYPES_SETTRIGGERINGRESPONSE 153

DeleteMonitoredItemsRequest

typedef struct {
    UA_RequestHeader requestHeader;
    UA_UInt32 subscriptionId;
    size_t monitoredItemIdsSize;
    UA_UInt32 *monitoredItemIds;
} UA_DeleteMonitoredItemsRequest;

#define UA_TYPES_DELETEMONITOREDITEMSREQUEST 154

DeleteMonitoredItemsResponse

typedef struct {
    UA_ResponseHeader responseHeader;
    size_t resultsSize;
    UA_StatusCode *results;
    size_t diagnosticInfosSize;
    UA_DiagnosticInfo *diagnosticInfos;
} UA_DeleteMonitoredItemsResponse;

#define UA_TYPES_DELETEMONITOREDITEMSRESPONSE 155

CreateSubscriptionRequest

typedef struct {
    UA_RequestHeader requestHeader;
    UA_Double requestedPublishingInterval;
    UA_UInt32 requestedLifetimeCount;
    UA_UInt32 requestedMaxKeepAliveCount;
    UA_UInt32 maxNotificationsPerPublish;
    UA_Boolean publishingEnabled;
    UA_Byte priority;
} UA_CreateSubscriptionRequest;

#define UA_TYPES_CREATESUBSCRIPTIONREQUEST 156

CreateSubscriptionResponse

typedef struct {
    UA_ResponseHeader responseHeader;
    UA_UInt32 subscriptionId;
    UA_Double revisedPublishingInterval;
    UA_UInt32 revisedLifetimeCount;
    UA_UInt32 revisedMaxKeepAliveCount;
} UA_CreateSubscriptionResponse;

#define UA_TYPES_CREATESUBSCRIPTIONRESPONSE 157

ModifySubscriptionRequest

typedef struct {
    UA_RequestHeader requestHeader;
    UA_UInt32 subscriptionId;
    UA_Double requestedPublishingInterval;
    UA_UInt32 requestedLifetimeCount;
    UA_UInt32 requestedMaxKeepAliveCount;
    UA_UInt32 maxNotificationsPerPublish;
    UA_Byte priority;
} UA_ModifySubscriptionRequest;

#define UA_TYPES_MODIFYSUBSCRIPTIONREQUEST 158

ModifySubscriptionResponse

typedef struct {
    UA_ResponseHeader responseHeader;
    UA_Double revisedPublishingInterval;
    UA_UInt32 revisedLifetimeCount;
    UA_UInt32 revisedMaxKeepAliveCount;
} UA_ModifySubscriptionResponse;

#define UA_TYPES_MODIFYSUBSCRIPTIONRESPONSE 159

SetPublishingModeRequest

typedef struct {
    UA_RequestHeader requestHeader;
    UA_Boolean publishingEnabled;
    size_t subscriptionIdsSize;
    UA_UInt32 *subscriptionIds;
} UA_SetPublishingModeRequest;

#define UA_TYPES_SETPUBLISHINGMODEREQUEST 160

SetPublishingModeResponse

typedef struct {
    UA_ResponseHeader responseHeader;
    size_t resultsSize;
    UA_StatusCode *results;
    size_t diagnosticInfosSize;
    UA_DiagnosticInfo *diagnosticInfos;
} UA_SetPublishingModeResponse;

#define UA_TYPES_SETPUBLISHINGMODERESPONSE 161

NotificationMessage

typedef struct {
    UA_UInt32 sequenceNumber;
    UA_DateTime publishTime;
    size_t notificationDataSize;
    UA_ExtensionObject *notificationData;
} UA_NotificationMessage;

#define UA_TYPES_NOTIFICATIONMESSAGE 162

MonitoredItemNotification

typedef struct {
    UA_UInt32 clientHandle;
    UA_DataValue value;
} UA_MonitoredItemNotification;

#define UA_TYPES_MONITOREDITEMNOTIFICATION 163

EventFieldList

typedef struct {
    UA_UInt32 clientHandle;
    size_t eventFieldsSize;
    UA_Variant *eventFields;
} UA_EventFieldList;

#define UA_TYPES_EVENTFIELDLIST 164

StatusChangeNotification

typedef struct {
    UA_StatusCode status;
    UA_DiagnosticInfo diagnosticInfo;
} UA_StatusChangeNotification;

#define UA_TYPES_STATUSCHANGENOTIFICATION 165

SubscriptionAcknowledgement

typedef struct {
    UA_UInt32 subscriptionId;
    UA_UInt32 sequenceNumber;
} UA_SubscriptionAcknowledgement;

#define UA_TYPES_SUBSCRIPTIONACKNOWLEDGEMENT 166

PublishRequest

typedef struct {
    UA_RequestHeader requestHeader;
    size_t subscriptionAcknowledgementsSize;
    UA_SubscriptionAcknowledgement *subscriptionAcknowledgements;
} UA_PublishRequest;

#define UA_TYPES_PUBLISHREQUEST 167

PublishResponse

typedef struct {
    UA_ResponseHeader responseHeader;
    UA_UInt32 subscriptionId;
    size_t availableSequenceNumbersSize;
    UA_UInt32 *availableSequenceNumbers;
    UA_Boolean moreNotifications;
    UA_NotificationMessage notificationMessage;
    size_t resultsSize;
    UA_StatusCode *results;
    size_t diagnosticInfosSize;
    UA_DiagnosticInfo *diagnosticInfos;
} UA_PublishResponse;

#define UA_TYPES_PUBLISHRESPONSE 168

RepublishRequest

typedef struct {
    UA_RequestHeader requestHeader;
    UA_UInt32 subscriptionId;
    UA_UInt32 retransmitSequenceNumber;
} UA_RepublishRequest;

#define UA_TYPES_REPUBLISHREQUEST 169

RepublishResponse

typedef struct {
    UA_ResponseHeader responseHeader;
    UA_NotificationMessage notificationMessage;
} UA_RepublishResponse;

#define UA_TYPES_REPUBLISHRESPONSE 170

TransferResult

typedef struct {
    UA_StatusCode statusCode;
    size_t availableSequenceNumbersSize;
    UA_UInt32 *availableSequenceNumbers;
} UA_TransferResult;

#define UA_TYPES_TRANSFERRESULT 171

TransferSubscriptionsRequest

typedef struct {
    UA_RequestHeader requestHeader;
    size_t subscriptionIdsSize;
    UA_UInt32 *subscriptionIds;
    UA_Boolean sendInitialValues;
} UA_TransferSubscriptionsRequest;

#define UA_TYPES_TRANSFERSUBSCRIPTIONSREQUEST 172

TransferSubscriptionsResponse

typedef struct {
    UA_ResponseHeader responseHeader;
    size_t resultsSize;
    UA_TransferResult *results;
    size_t diagnosticInfosSize;
    UA_DiagnosticInfo *diagnosticInfos;
} UA_TransferSubscriptionsResponse;

#define UA_TYPES_TRANSFERSUBSCRIPTIONSRESPONSE 173

DeleteSubscriptionsRequest

typedef struct {
    UA_RequestHeader requestHeader;
    size_t subscriptionIdsSize;
    UA_UInt32 *subscriptionIds;
} UA_DeleteSubscriptionsRequest;

#define UA_TYPES_DELETESUBSCRIPTIONSREQUEST 174

DeleteSubscriptionsResponse

typedef struct {
    UA_ResponseHeader responseHeader;
    size_t resultsSize;
    UA_StatusCode *results;
    size_t diagnosticInfosSize;
    UA_DiagnosticInfo *diagnosticInfos;
} UA_DeleteSubscriptionsResponse;

#define UA_TYPES_DELETESUBSCRIPTIONSRESPONSE 175

BuildInfo

typedef struct {
    UA_String productUri;
    UA_String manufacturerName;
    UA_String productName;
    UA_String softwareVersion;
    UA_String buildNumber;
    UA_DateTime buildDate;
} UA_BuildInfo;

#define UA_TYPES_BUILDINFO 176

RedundancySupport

typedef enum {
    UA_REDUNDANCYSUPPORT_NONE = 0,
    UA_REDUNDANCYSUPPORT_COLD = 1,
    UA_REDUNDANCYSUPPORT_WARM = 2,
    UA_REDUNDANCYSUPPORT_HOT = 3,
    UA_REDUNDANCYSUPPORT_TRANSPARENT = 4,
    UA_REDUNDANCYSUPPORT_HOTANDMIRRORED = 5,
    __UA_REDUNDANCYSUPPORT_FORCE32BIT = 0x7fffffff
} UA_RedundancySupport;
UA_STATIC_ASSERT(sizeof(UA_RedundancySupport) == sizeof(UA_Int32), enum_must_be_32bit);

#define UA_TYPES_REDUNDANCYSUPPORT 177

ServerState

typedef enum {
    UA_SERVERSTATE_RUNNING = 0,
    UA_SERVERSTATE_FAILED = 1,
    UA_SERVERSTATE_NOCONFIGURATION = 2,
    UA_SERVERSTATE_SUSPENDED = 3,
    UA_SERVERSTATE_SHUTDOWN = 4,
    UA_SERVERSTATE_TEST = 5,
    UA_SERVERSTATE_COMMUNICATIONFAULT = 6,
    UA_SERVERSTATE_UNKNOWN = 7,
    __UA_SERVERSTATE_FORCE32BIT = 0x7fffffff
} UA_ServerState;
UA_STATIC_ASSERT(sizeof(UA_ServerState) == sizeof(UA_Int32), enum_must_be_32bit);

#define UA_TYPES_SERVERSTATE 178

ServerDiagnosticsSummaryDataType

typedef struct {
    UA_UInt32 serverViewCount;
    UA_UInt32 currentSessionCount;
    UA_UInt32 cumulatedSessionCount;
    UA_UInt32 securityRejectedSessionCount;
    UA_UInt32 rejectedSessionCount;
    UA_UInt32 sessionTimeoutCount;
    UA_UInt32 sessionAbortCount;
    UA_UInt32 currentSubscriptionCount;
    UA_UInt32 cumulatedSubscriptionCount;
    UA_UInt32 publishingIntervalCount;
    UA_UInt32 securityRejectedRequestsCount;
    UA_UInt32 rejectedRequestsCount;
} UA_ServerDiagnosticsSummaryDataType;

#define UA_TYPES_SERVERDIAGNOSTICSSUMMARYDATATYPE 179

ServerStatusDataType

typedef struct {
    UA_DateTime startTime;
    UA_DateTime currentTime;
    UA_ServerState state;
    UA_BuildInfo buildInfo;
    UA_UInt32 secondsTillShutdown;
    UA_LocalizedText shutdownReason;
} UA_ServerStatusDataType;

#define UA_TYPES_SERVERSTATUSDATATYPE 180

Range

typedef struct {
    UA_Double low;
    UA_Double high;
} UA_Range;

#define UA_TYPES_RANGE 181

EUInformation

typedef struct {
    UA_String namespaceUri;
    UA_Int32 unitId;
    UA_LocalizedText displayName;
    UA_LocalizedText description;
} UA_EUInformation;

#define UA_TYPES_EUINFORMATION 182

AxisScaleEnumeration

typedef enum {
    UA_AXISSCALEENUMERATION_LINEAR = 0,
    UA_AXISSCALEENUMERATION_LOG = 1,
    UA_AXISSCALEENUMERATION_LN = 2,
    __UA_AXISSCALEENUMERATION_FORCE32BIT = 0x7fffffff
} UA_AxisScaleEnumeration;
UA_STATIC_ASSERT(sizeof(UA_AxisScaleEnumeration) == sizeof(UA_Int32), enum_must_be_32bit);

#define UA_TYPES_AXISSCALEENUMERATION 183

ComplexNumberType

typedef struct {
    UA_Float real;
    UA_Float imaginary;
} UA_ComplexNumberType;

#define UA_TYPES_COMPLEXNUMBERTYPE 184

DoubleComplexNumberType

typedef struct {
    UA_Double real;
    UA_Double imaginary;
} UA_DoubleComplexNumberType;

#define UA_TYPES_DOUBLECOMPLEXNUMBERTYPE 185

AxisInformation

typedef struct {
    UA_EUInformation engineeringUnits;
    UA_Range eURange;
    UA_LocalizedText title;
    UA_AxisScaleEnumeration axisScaleType;
    size_t axisStepsSize;
    UA_Double *axisSteps;
} UA_AxisInformation;

#define UA_TYPES_AXISINFORMATION 186

XVType

typedef struct {
    UA_Double x;
    UA_Float value;
} UA_XVType;

#define UA_TYPES_XVTYPE 187

EnumDefinition

typedef struct {
    size_t fieldsSize;
    UA_EnumField *fields;
} UA_EnumDefinition;

#define UA_TYPES_ENUMDEFINITION 188

DataChangeNotification

typedef struct {
    size_t monitoredItemsSize;
    UA_MonitoredItemNotification *monitoredItems;
    size_t diagnosticInfosSize;
    UA_DiagnosticInfo *diagnosticInfos;
} UA_DataChangeNotification;

#define UA_TYPES_DATACHANGENOTIFICATION 189

EventNotificationList

typedef struct {
    size_t eventsSize;
    UA_EventFieldList *events;
} UA_EventNotificationList;

#define UA_TYPES_EVENTNOTIFICATIONLIST 190

StatusCodes

StatusCodes are extensively used in the OPC UA protocol and in the open62541 API. They are represented by the StatusCode data type. The following definitions are autogenerated from the Opc.Ua.StatusCodes.csv file provided with the OPC UA standard.

/* These StatusCodes are manually generated. */
#define UA_STATUSCODE_INFOTYPE_DATAVALUE 0x00000400
#define UA_STATUSCODE_INFOBITS_OVERFLOW 0x00000080

/* "The operation succeeded." */
#define UA_STATUSCODE_GOOD 0x00000000

/* "The operation was uncertain." */
#define UA_STATUSCODE_UNCERTAIN 0x40000000

/* "The operation failed." */
#define UA_STATUSCODE_BAD 0x80000000

/* "An unexpected error occurred." */
#define UA_STATUSCODE_BADUNEXPECTEDERROR 0x80010000

/* "An internal error occurred as a result of a programming or configuration error." */
#define UA_STATUSCODE_BADINTERNALERROR 0x80020000

/* "Not enough memory to complete the operation." */
#define UA_STATUSCODE_BADOUTOFMEMORY 0x80030000

/* "An operating system resource is not available." */
#define UA_STATUSCODE_BADRESOURCEUNAVAILABLE 0x80040000

/* "A low level communication error occurred." */
#define UA_STATUSCODE_BADCOMMUNICATIONERROR 0x80050000

/* "Encoding halted because of invalid data in the objects being serialized." */
#define UA_STATUSCODE_BADENCODINGERROR 0x80060000

/* "Decoding halted because of invalid data in the stream." */
#define UA_STATUSCODE_BADDECODINGERROR 0x80070000

/* "The message encoding/decoding limits imposed by the stack have been exceeded." */
#define UA_STATUSCODE_BADENCODINGLIMITSEXCEEDED 0x80080000

/* "The request message size exceeds limits set by the server." */
#define UA_STATUSCODE_BADREQUESTTOOLARGE 0x80B80000

/* "The response message size exceeds limits set by the client." */
#define UA_STATUSCODE_BADRESPONSETOOLARGE 0x80B90000

/* "An unrecognized response was received from the server." */
#define UA_STATUSCODE_BADUNKNOWNRESPONSE 0x80090000

/* "The operation timed out." */
#define UA_STATUSCODE_BADTIMEOUT 0x800A0000

/* "The server does not support the requested service." */
#define UA_STATUSCODE_BADSERVICEUNSUPPORTED 0x800B0000

/* "The operation was cancelled because the application is shutting down." */
#define UA_STATUSCODE_BADSHUTDOWN 0x800C0000

/* "The operation could not complete because the client is not connected to the server." */
#define UA_STATUSCODE_BADSERVERNOTCONNECTED 0x800D0000

/* "The server has stopped and cannot process any requests." */
#define UA_STATUSCODE_BADSERVERHALTED 0x800E0000

/* "There was nothing to do because the client passed a list of operations with no elements." */
#define UA_STATUSCODE_BADNOTHINGTODO 0x800F0000

/* "The request could not be processed because it specified too many operations." */
#define UA_STATUSCODE_BADTOOMANYOPERATIONS 0x80100000

/* "The request could not be processed because there are too many monitored items in the subscription." */
#define UA_STATUSCODE_BADTOOMANYMONITOREDITEMS 0x80DB0000

/* "The extension object cannot be (de)serialized because the data type id is not recognized." */
#define UA_STATUSCODE_BADDATATYPEIDUNKNOWN 0x80110000

/* "The certificate provided as a parameter is not valid." */
#define UA_STATUSCODE_BADCERTIFICATEINVALID 0x80120000

/* "An error occurred verifying security." */
#define UA_STATUSCODE_BADSECURITYCHECKSFAILED 0x80130000

/* "The certificate does not meet the requirements of the security policy." */
#define UA_STATUSCODE_BADCERTIFICATEPOLICYCHECKFAILED 0x81140000

/* "The certificate has expired or is not yet valid." */
#define UA_STATUSCODE_BADCERTIFICATETIMEINVALID 0x80140000

/* "An issuer certificate has expired or is not yet valid." */
#define UA_STATUSCODE_BADCERTIFICATEISSUERTIMEINVALID 0x80150000

/* "The HostName used to connect to a server does not match a HostName in the certificate." */
#define UA_STATUSCODE_BADCERTIFICATEHOSTNAMEINVALID 0x80160000

/* "The URI specified in the ApplicationDescription does not match the URI in the certificate." */
#define UA_STATUSCODE_BADCERTIFICATEURIINVALID 0x80170000

/* "The certificate may not be used for the requested operation." */
#define UA_STATUSCODE_BADCERTIFICATEUSENOTALLOWED 0x80180000

/* "The issuer certificate may not be used for the requested operation." */
#define UA_STATUSCODE_BADCERTIFICATEISSUERUSENOTALLOWED 0x80190000

/* "The certificate is not trusted." */
#define UA_STATUSCODE_BADCERTIFICATEUNTRUSTED 0x801A0000

/* "It was not possible to determine if the certificate has been revoked." */
#define UA_STATUSCODE_BADCERTIFICATEREVOCATIONUNKNOWN 0x801B0000

/* "It was not possible to determine if the issuer certificate has been revoked." */
#define UA_STATUSCODE_BADCERTIFICATEISSUERREVOCATIONUNKNOWN 0x801C0000

/* "The certificate has been revoked." */
#define UA_STATUSCODE_BADCERTIFICATEREVOKED 0x801D0000

/* "The issuer certificate has been revoked." */
#define UA_STATUSCODE_BADCERTIFICATEISSUERREVOKED 0x801E0000

/* "The certificate chain is incomplete." */
#define UA_STATUSCODE_BADCERTIFICATECHAININCOMPLETE 0x810D0000

/* "User does not have permission to perform the requested operation." */
#define UA_STATUSCODE_BADUSERACCESSDENIED 0x801F0000

/* "The user identity token is not valid." */
#define UA_STATUSCODE_BADIDENTITYTOKENINVALID 0x80200000

/* "The user identity token is valid but the server has rejected it." */
#define UA_STATUSCODE_BADIDENTITYTOKENREJECTED 0x80210000

/* "The specified secure channel is no longer valid." */
#define UA_STATUSCODE_BADSECURECHANNELIDINVALID 0x80220000

/* "The timestamp is outside the range allowed by the server." */
#define UA_STATUSCODE_BADINVALIDTIMESTAMP 0x80230000

/* "The nonce does appear to be not a random value or it is not the correct length." */
#define UA_STATUSCODE_BADNONCEINVALID 0x80240000

/* "The session id is not valid." */
#define UA_STATUSCODE_BADSESSIONIDINVALID 0x80250000

/* "The session was closed by the client." */
#define UA_STATUSCODE_BADSESSIONCLOSED 0x80260000

/* "The session cannot be used because ActivateSession has not been called." */
#define UA_STATUSCODE_BADSESSIONNOTACTIVATED 0x80270000

/* "The subscription id is not valid." */
#define UA_STATUSCODE_BADSUBSCRIPTIONIDINVALID 0x80280000

/* "The header for the request is missing or invalid." */
#define UA_STATUSCODE_BADREQUESTHEADERINVALID 0x802A0000

/* "The timestamps to return parameter is invalid." */
#define UA_STATUSCODE_BADTIMESTAMPSTORETURNINVALID 0x802B0000

/* "The request was cancelled by the client." */
#define UA_STATUSCODE_BADREQUESTCANCELLEDBYCLIENT 0x802C0000

/* "Too many arguments were provided." */
#define UA_STATUSCODE_BADTOOMANYARGUMENTS 0x80E50000

/* "The server requires a license to operate in general or to perform a service or operation */
#define UA_STATUSCODE_BADLICENSEEXPIRED 0x810E0000

/* "The server has limits on number of allowed operations / objects */
#define UA_STATUSCODE_BADLICENSELIMITSEXCEEDED 0x810F0000

/* "The server does not have a license which is required to operate in general or to perform a service or operation." */
#define UA_STATUSCODE_BADLICENSENOTAVAILABLE 0x81100000

/* "The subscription was transferred to another session." */
#define UA_STATUSCODE_GOODSUBSCRIPTIONTRANSFERRED 0x002D0000

/* "The processing will complete asynchronously." */
#define UA_STATUSCODE_GOODCOMPLETESASYNCHRONOUSLY 0x002E0000

/* "Sampling has slowed down due to resource limitations." */
#define UA_STATUSCODE_GOODOVERLOAD 0x002F0000

/* "The value written was accepted but was clamped." */
#define UA_STATUSCODE_GOODCLAMPED 0x00300000

/* "Communication with the data source is defined */
#define UA_STATUSCODE_BADNOCOMMUNICATION 0x80310000

/* "Waiting for the server to obtain values from the underlying data source." */
#define UA_STATUSCODE_BADWAITINGFORINITIALDATA 0x80320000

/* "The syntax of the node id is not valid." */
#define UA_STATUSCODE_BADNODEIDINVALID 0x80330000

/* "The node id refers to a node that does not exist in the server address space." */
#define UA_STATUSCODE_BADNODEIDUNKNOWN 0x80340000

/* "The attribute is not supported for the specified Node." */
#define UA_STATUSCODE_BADATTRIBUTEIDINVALID 0x80350000

/* "The syntax of the index range parameter is invalid." */
#define UA_STATUSCODE_BADINDEXRANGEINVALID 0x80360000

/* "No data exists within the range of indexes specified." */
#define UA_STATUSCODE_BADINDEXRANGENODATA 0x80370000

/* "The data encoding is invalid." */
#define UA_STATUSCODE_BADDATAENCODINGINVALID 0x80380000

/* "The server does not support the requested data encoding for the node." */
#define UA_STATUSCODE_BADDATAENCODINGUNSUPPORTED 0x80390000

/* "The access level does not allow reading or subscribing to the Node." */
#define UA_STATUSCODE_BADNOTREADABLE 0x803A0000

/* "The access level does not allow writing to the Node." */
#define UA_STATUSCODE_BADNOTWRITABLE 0x803B0000

/* "The value was out of range." */
#define UA_STATUSCODE_BADOUTOFRANGE 0x803C0000

/* "The requested operation is not supported." */
#define UA_STATUSCODE_BADNOTSUPPORTED 0x803D0000

/* "A requested item was not found or a search operation ended without success." */
#define UA_STATUSCODE_BADNOTFOUND 0x803E0000

/* "The object cannot be used because it has been deleted." */
#define UA_STATUSCODE_BADOBJECTDELETED 0x803F0000

/* "Requested operation is not implemented." */
#define UA_STATUSCODE_BADNOTIMPLEMENTED 0x80400000

/* "The monitoring mode is invalid." */
#define UA_STATUSCODE_BADMONITORINGMODEINVALID 0x80410000

/* "The monitoring item id does not refer to a valid monitored item." */
#define UA_STATUSCODE_BADMONITOREDITEMIDINVALID 0x80420000

/* "The monitored item filter parameter is not valid." */
#define UA_STATUSCODE_BADMONITOREDITEMFILTERINVALID 0x80430000

/* "The server does not support the requested monitored item filter." */
#define UA_STATUSCODE_BADMONITOREDITEMFILTERUNSUPPORTED 0x80440000

/* "A monitoring filter cannot be used in combination with the attribute specified." */
#define UA_STATUSCODE_BADFILTERNOTALLOWED 0x80450000

/* "A mandatory structured parameter was missing or null." */
#define UA_STATUSCODE_BADSTRUCTUREMISSING 0x80460000

/* "The event filter is not valid." */
#define UA_STATUSCODE_BADEVENTFILTERINVALID 0x80470000

/* "The content filter is not valid." */
#define UA_STATUSCODE_BADCONTENTFILTERINVALID 0x80480000

/* "An unrecognized operator was provided in a filter." */
#define UA_STATUSCODE_BADFILTEROPERATORINVALID 0x80C10000

/* "A valid operator was provided */
#define UA_STATUSCODE_BADFILTEROPERATORUNSUPPORTED 0x80C20000

/* "The number of operands provided for the filter operator was less then expected for the operand provided." */
#define UA_STATUSCODE_BADFILTEROPERANDCOUNTMISMATCH 0x80C30000

/* "The operand used in a content filter is not valid." */
#define UA_STATUSCODE_BADFILTEROPERANDINVALID 0x80490000

/* "The referenced element is not a valid element in the content filter." */
#define UA_STATUSCODE_BADFILTERELEMENTINVALID 0x80C40000

/* "The referenced literal is not a valid value." */
#define UA_STATUSCODE_BADFILTERLITERALINVALID 0x80C50000

/* "The continuation point provide is longer valid." */
#define UA_STATUSCODE_BADCONTINUATIONPOINTINVALID 0x804A0000

/* "The operation could not be processed because all continuation points have been allocated." */
#define UA_STATUSCODE_BADNOCONTINUATIONPOINTS 0x804B0000

/* "The reference type id does not refer to a valid reference type node." */
#define UA_STATUSCODE_BADREFERENCETYPEIDINVALID 0x804C0000

/* "The browse direction is not valid." */
#define UA_STATUSCODE_BADBROWSEDIRECTIONINVALID 0x804D0000

/* "The node is not part of the view." */
#define UA_STATUSCODE_BADNODENOTINVIEW 0x804E0000

/* "The number was not accepted because of a numeric overflow." */
#define UA_STATUSCODE_BADNUMERICOVERFLOW 0x81120000

/* "The ServerUri is not a valid URI." */
#define UA_STATUSCODE_BADSERVERURIINVALID 0x804F0000

/* "No ServerName was specified." */
#define UA_STATUSCODE_BADSERVERNAMEMISSING 0x80500000

/* "No DiscoveryUrl was specified." */
#define UA_STATUSCODE_BADDISCOVERYURLMISSING 0x80510000

/* "The semaphore file specified by the client is not valid." */
#define UA_STATUSCODE_BADSEMPAHOREFILEMISSING 0x80520000

/* "The security token request type is not valid." */
#define UA_STATUSCODE_BADREQUESTTYPEINVALID 0x80530000

/* "The security mode does not meet the requirements set by the server." */
#define UA_STATUSCODE_BADSECURITYMODEREJECTED 0x80540000

/* "The security policy does not meet the requirements set by the server." */
#define UA_STATUSCODE_BADSECURITYPOLICYREJECTED 0x80550000

/* "The server has reached its maximum number of sessions." */
#define UA_STATUSCODE_BADTOOMANYSESSIONS 0x80560000

/* "The user token signature is missing or invalid." */
#define UA_STATUSCODE_BADUSERSIGNATUREINVALID 0x80570000

/* "The signature generated with the client certificate is missing or invalid." */
#define UA_STATUSCODE_BADAPPLICATIONSIGNATUREINVALID 0x80580000

/* "The client did not provide at least one software certificate that is valid and meets the profile requirements for the server." */
#define UA_STATUSCODE_BADNOVALIDCERTIFICATES 0x80590000

/* "The server does not support changing the user identity assigned to the session." */
#define UA_STATUSCODE_BADIDENTITYCHANGENOTSUPPORTED 0x80C60000

/* "The request was cancelled by the client with the Cancel service." */
#define UA_STATUSCODE_BADREQUESTCANCELLEDBYREQUEST 0x805A0000

/* "The parent node id does not to refer to a valid node." */
#define UA_STATUSCODE_BADPARENTNODEIDINVALID 0x805B0000

/* "The reference could not be created because it violates constraints imposed by the data model." */
#define UA_STATUSCODE_BADREFERENCENOTALLOWED 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." */
#define UA_STATUSCODE_BADNODEIDREJECTED 0x805D0000

/* "The requested node id is already used by another node." */
#define UA_STATUSCODE_BADNODEIDEXISTS 0x805E0000

/* "The node class is not valid." */
#define UA_STATUSCODE_BADNODECLASSINVALID 0x805F0000

/* "The browse name is invalid." */
#define UA_STATUSCODE_BADBROWSENAMEINVALID 0x80600000

/* "The browse name is not unique among nodes that share the same relationship with the parent." */
#define UA_STATUSCODE_BADBROWSENAMEDUPLICATED 0x80610000

/* "The node attributes are not valid for the node class." */
#define UA_STATUSCODE_BADNODEATTRIBUTESINVALID 0x80620000

/* "The type definition node id does not reference an appropriate type node." */
#define UA_STATUSCODE_BADTYPEDEFINITIONINVALID 0x80630000

/* "The source node id does not reference a valid node." */
#define UA_STATUSCODE_BADSOURCENODEIDINVALID 0x80640000

/* "The target node id does not reference a valid node." */
#define UA_STATUSCODE_BADTARGETNODEIDINVALID 0x80650000

/* "The reference type between the nodes is already defined." */
#define UA_STATUSCODE_BADDUPLICATEREFERENCENOTALLOWED 0x80660000

/* "The server does not allow this type of self reference on this node." */
#define UA_STATUSCODE_BADINVALIDSELFREFERENCE 0x80670000

/* "The reference type is not valid for a reference to a remote server." */
#define UA_STATUSCODE_BADREFERENCELOCALONLY 0x80680000

/* "The server will not allow the node to be deleted." */
#define UA_STATUSCODE_BADNODELETERIGHTS 0x80690000

/* "The server was not able to delete all target references." */
#define UA_STATUSCODE_UNCERTAINREFERENCENOTDELETED 0x40BC0000

/* "The server index is not valid." */
#define UA_STATUSCODE_BADSERVERINDEXINVALID 0x806A0000

/* "The view id does not refer to a valid view node." */
#define UA_STATUSCODE_BADVIEWIDUNKNOWN 0x806B0000

/* "The view timestamp is not available or not supported." */
#define UA_STATUSCODE_BADVIEWTIMESTAMPINVALID 0x80C90000

/* "The view parameters are not consistent with each other." */
#define UA_STATUSCODE_BADVIEWPARAMETERMISMATCH 0x80CA0000

/* "The view version is not available or not supported." */
#define UA_STATUSCODE_BADVIEWVERSIONINVALID 0x80CB0000

/* "The list of references may not be complete because the underlying system is not available." */
#define UA_STATUSCODE_UNCERTAINNOTALLNODESAVAILABLE 0x40C00000

/* "The server should have followed a reference to a node in a remote server but did not. The result set may be incomplete." */
#define UA_STATUSCODE_GOODRESULTSMAYBEINCOMPLETE 0x00BA0000

/* "The provided Nodeid was not a type definition nodeid." */
#define UA_STATUSCODE_BADNOTTYPEDEFINITION 0x80C80000

/* "One of the references to follow in the relative path references to a node in the address space in another server." */
#define UA_STATUSCODE_UNCERTAINREFERENCEOUTOFSERVER 0x406C0000

/* "The requested operation has too many matches to return." */
#define UA_STATUSCODE_BADTOOMANYMATCHES 0x806D0000

/* "The requested operation requires too many resources in the server." */
#define UA_STATUSCODE_BADQUERYTOOCOMPLEX 0x806E0000

/* "The requested operation has no match to return." */
#define UA_STATUSCODE_BADNOMATCH 0x806F0000

/* "The max age parameter is invalid." */
#define UA_STATUSCODE_BADMAXAGEINVALID 0x80700000

/* "The operation is not permitted over the current secure channel." */
#define UA_STATUSCODE_BADSECURITYMODEINSUFFICIENT 0x80E60000

/* "The history details parameter is not valid." */
#define UA_STATUSCODE_BADHISTORYOPERATIONINVALID 0x80710000

/* "The server does not support the requested operation." */
#define UA_STATUSCODE_BADHISTORYOPERATIONUNSUPPORTED 0x80720000

/* "The defined timestamp to return was invalid." */
#define UA_STATUSCODE_BADINVALIDTIMESTAMPARGUMENT 0x80BD0000

/* "The server does not support writing the combination of value */
#define UA_STATUSCODE_BADWRITENOTSUPPORTED 0x80730000

/* "The value supplied for the attribute is not of the same type as the attribute's value." */
#define UA_STATUSCODE_BADTYPEMISMATCH 0x80740000

/* "The method id does not refer to a method for the specified object." */
#define UA_STATUSCODE_BADMETHODINVALID 0x80750000

/* "The client did not specify all of the input arguments for the method." */
#define UA_STATUSCODE_BADARGUMENTSMISSING 0x80760000

/* "The executable attribute does not allow the execution of the method." */
#define UA_STATUSCODE_BADNOTEXECUTABLE 0x81110000

/* "The server has reached its maximum number of subscriptions." */
#define UA_STATUSCODE_BADTOOMANYSUBSCRIPTIONS 0x80770000

/* "The server has reached the maximum number of queued publish requests." */
#define UA_STATUSCODE_BADTOOMANYPUBLISHREQUESTS 0x80780000

/* "There is no subscription available for this session." */
#define UA_STATUSCODE_BADNOSUBSCRIPTION 0x80790000

/* "The sequence number is unknown to the server." */
#define UA_STATUSCODE_BADSEQUENCENUMBERUNKNOWN 0x807A0000

/* "The Server does not support retransmission queue and acknowledgement of sequence numbers is not available." */
#define UA_STATUSCODE_GOODRETRANSMISSIONQUEUENOTSUPPORTED 0x00DF0000

/* "The requested notification message is no longer available." */
#define UA_STATUSCODE_BADMESSAGENOTAVAILABLE 0x807B0000

/* "The client of the current session does not support one or more Profiles that are necessary for the subscription." */
#define UA_STATUSCODE_BADINSUFFICIENTCLIENTPROFILE 0x807C0000

/* "The sub-state machine is not currently active." */
#define UA_STATUSCODE_BADSTATENOTACTIVE 0x80BF0000

/* "An equivalent rule already exists." */
#define UA_STATUSCODE_BADALREADYEXISTS 0x81150000

/* "The server cannot process the request because it is too busy." */
#define UA_STATUSCODE_BADTCPSERVERTOOBUSY 0x807D0000

/* "The type of the message specified in the header invalid." */
#define UA_STATUSCODE_BADTCPMESSAGETYPEINVALID 0x807E0000

/* "The SecureChannelId and/or TokenId are not currently in use." */
#define UA_STATUSCODE_BADTCPSECURECHANNELUNKNOWN 0x807F0000

/* "The size of the message chunk specified in the header is too large." */
#define UA_STATUSCODE_BADTCPMESSAGETOOLARGE 0x80800000

/* "There are not enough resources to process the request." */
#define UA_STATUSCODE_BADTCPNOTENOUGHRESOURCES 0x80810000

/* "An internal error occurred." */
#define UA_STATUSCODE_BADTCPINTERNALERROR 0x80820000

/* "The server does not recognize the QueryString specified." */
#define UA_STATUSCODE_BADTCPENDPOINTURLINVALID 0x80830000

/* "The request could not be sent because of a network interruption." */
#define UA_STATUSCODE_BADREQUESTINTERRUPTED 0x80840000

/* "Timeout occurred while processing the request." */
#define UA_STATUSCODE_BADREQUESTTIMEOUT 0x80850000

/* "The secure channel has been closed." */
#define UA_STATUSCODE_BADSECURECHANNELCLOSED 0x80860000

/* "The token has expired or is not recognized." */
#define UA_STATUSCODE_BADSECURECHANNELTOKENUNKNOWN 0x80870000

/* "The sequence number is not valid." */
#define UA_STATUSCODE_BADSEQUENCENUMBERINVALID 0x80880000

/* "The applications do not have compatible protocol versions." */
#define UA_STATUSCODE_BADPROTOCOLVERSIONUNSUPPORTED 0x80BE0000

/* "There is a problem with the configuration that affects the usefulness of the value." */
#define UA_STATUSCODE_BADCONFIGURATIONERROR 0x80890000

/* "The variable should receive its value from another variable */
#define UA_STATUSCODE_BADNOTCONNECTED 0x808A0000

/* "There has been a failure in the device/data source that generates the value that has affected the value." */
#define UA_STATUSCODE_BADDEVICEFAILURE 0x808B0000

/* "There has been a failure in the sensor from which the value is derived by the device/data source." */
#define UA_STATUSCODE_BADSENSORFAILURE 0x808C0000

/* "The source of the data is not operational." */
#define UA_STATUSCODE_BADOUTOFSERVICE 0x808D0000

/* "The deadband filter is not valid." */
#define UA_STATUSCODE_BADDEADBANDFILTERINVALID 0x808E0000

/* "Communication to the data source has failed. The variable value is the last value that had a good quality." */
#define UA_STATUSCODE_UNCERTAINNOCOMMUNICATIONLASTUSABLEVALUE 0x408F0000

/* "Whatever was updating this value has stopped doing so." */
#define UA_STATUSCODE_UNCERTAINLASTUSABLEVALUE 0x40900000

/* "The value is an operational value that was manually overwritten." */
#define UA_STATUSCODE_UNCERTAINSUBSTITUTEVALUE 0x40910000

/* "The value is an initial value for a variable that normally receives its value from another variable." */
#define UA_STATUSCODE_UNCERTAININITIALVALUE 0x40920000

/* "The value is at one of the sensor limits." */
#define UA_STATUSCODE_UNCERTAINSENSORNOTACCURATE 0x40930000

/* "The value is outside of the range of values defined for this parameter." */
#define UA_STATUSCODE_UNCERTAINENGINEERINGUNITSEXCEEDED 0x40940000

/* "The value is derived from multiple sources and has less than the required number of Good sources." */
#define UA_STATUSCODE_UNCERTAINSUBNORMAL 0x40950000

/* "The value has been overridden." */
#define UA_STATUSCODE_GOODLOCALOVERRIDE 0x00960000

/* "This Condition refresh failed */
#define UA_STATUSCODE_BADREFRESHINPROGRESS 0x80970000

/* "This condition has already been disabled." */
#define UA_STATUSCODE_BADCONDITIONALREADYDISABLED 0x80980000

/* "This condition has already been enabled." */
#define UA_STATUSCODE_BADCONDITIONALREADYENABLED 0x80CC0000

/* "Property not available */
#define UA_STATUSCODE_BADCONDITIONDISABLED 0x80990000

/* "The specified event id is not recognized." */
#define UA_STATUSCODE_BADEVENTIDUNKNOWN 0x809A0000

/* "The event cannot be acknowledged." */
#define UA_STATUSCODE_BADEVENTNOTACKNOWLEDGEABLE 0x80BB0000

/* "The dialog condition is not active." */
#define UA_STATUSCODE_BADDIALOGNOTACTIVE 0x80CD0000

/* "The response is not valid for the dialog." */
#define UA_STATUSCODE_BADDIALOGRESPONSEINVALID 0x80CE0000

/* "The condition branch has already been acknowledged." */
#define UA_STATUSCODE_BADCONDITIONBRANCHALREADYACKED 0x80CF0000

/* "The condition branch has already been confirmed." */
#define UA_STATUSCODE_BADCONDITIONBRANCHALREADYCONFIRMED 0x80D00000

/* "The condition has already been shelved." */
#define UA_STATUSCODE_BADCONDITIONALREADYSHELVED 0x80D10000

/* "The condition is not currently shelved." */
#define UA_STATUSCODE_BADCONDITIONNOTSHELVED 0x80D20000

/* "The shelving time not within an acceptable range." */
#define UA_STATUSCODE_BADSHELVINGTIMEOUTOFRANGE 0x80D30000

/* "No data exists for the requested time range or event filter." */
#define UA_STATUSCODE_BADNODATA 0x809B0000

/* "No data found to provide upper or lower bound value." */
#define UA_STATUSCODE_BADBOUNDNOTFOUND 0x80D70000

/* "The server cannot retrieve a bound for the variable." */
#define UA_STATUSCODE_BADBOUNDNOTSUPPORTED 0x80D80000

/* "Data is missing due to collection started/stopped/lost." */
#define UA_STATUSCODE_BADDATALOST 0x809D0000

/* "Expected data is unavailable for the requested time range due to an un-mounted volume */
#define UA_STATUSCODE_BADDATAUNAVAILABLE 0x809E0000

/* "The data or event was not successfully inserted because a matching entry exists." */
#define UA_STATUSCODE_BADENTRYEXISTS 0x809F0000

/* "The data or event was not successfully updated because no matching entry exists." */
#define UA_STATUSCODE_BADNOENTRYEXISTS 0x80A00000

/* "The client requested history using a timestamp format the server does not support (i.e requested ServerTimestamp when server only supports SourceTimestamp)." */
#define UA_STATUSCODE_BADTIMESTAMPNOTSUPPORTED 0x80A10000

/* "The data or event was successfully inserted into the historical database." */
#define UA_STATUSCODE_GOODENTRYINSERTED 0x00A20000

/* "The data or event field was successfully replaced in the historical database." */
#define UA_STATUSCODE_GOODENTRYREPLACED 0x00A30000

/* "The value is derived from multiple values and has less than the required number of Good values." */
#define UA_STATUSCODE_UNCERTAINDATASUBNORMAL 0x40A40000

/* "No data exists for the requested time range or event filter." */
#define UA_STATUSCODE_GOODNODATA 0x00A50000

/* "The data or event field was successfully replaced in the historical database." */
#define UA_STATUSCODE_GOODMOREDATA 0x00A60000

/* "The requested number of Aggregates does not match the requested number of NodeIds." */
#define UA_STATUSCODE_BADAGGREGATELISTMISMATCH 0x80D40000

/* "The requested Aggregate is not support by the server." */
#define UA_STATUSCODE_BADAGGREGATENOTSUPPORTED 0x80D50000

/* "The aggregate value could not be derived due to invalid data inputs." */
#define UA_STATUSCODE_BADAGGREGATEINVALIDINPUTS 0x80D60000

/* "The aggregate configuration is not valid for specified node." */
#define UA_STATUSCODE_BADAGGREGATECONFIGURATIONREJECTED 0x80DA0000

/* "The request specifies fields which are not valid for the EventType or cannot be saved by the historian." */
#define UA_STATUSCODE_GOODDATAIGNORED 0x00D90000

/* "The request was rejected by the server because it did not meet the criteria set by the server." */
#define UA_STATUSCODE_BADREQUESTNOTALLOWED 0x80E40000

/* "The request has not been processed by the server yet." */
#define UA_STATUSCODE_BADREQUESTNOTCOMPLETE 0x81130000

/* "The device identity needs a ticket before it can be accepted." */
#define UA_STATUSCODE_BADTICKETREQUIRED 0x811F0000

/* "The device identity needs a ticket before it can be accepted." */
#define UA_STATUSCODE_BADTICKETINVALID 0x81200000

/* "The value does not come from the real source and has been edited by the server." */
#define UA_STATUSCODE_GOODEDITED 0x00DC0000

/* "There was an error in execution of these post-actions." */
#define UA_STATUSCODE_GOODPOSTACTIONFAILED 0x00DD0000

/* "The related EngineeringUnit has been changed but the Variable Value is still provided based on the previous unit." */
#define UA_STATUSCODE_UNCERTAINDOMINANTVALUECHANGED 0x40DE0000

/* "A dependent value has been changed but the change has not been applied to the device." */
#define UA_STATUSCODE_GOODDEPENDENTVALUECHANGED 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." */
#define UA_STATUSCODE_BADDOMINANTVALUECHANGED 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." */
#define UA_STATUSCODE_UNCERTAINDEPENDENTVALUECHANGED 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." */
#define UA_STATUSCODE_BADDEPENDENTVALUECHANGED 0x80E30000

/* "It is delivered with a dominant Variable value when a dependent Variable has changed but the change has not been applied." */
#define UA_STATUSCODE_GOODEDITED_DEPENDENTVALUECHANGED 0x01160000

/* "It is delivered with a dependent Variable value when a dominant Variable has changed but the change has not been applied." */
#define UA_STATUSCODE_GOODEDITED_DOMINANTVALUECHANGED 0x01170000

/* "It is delivered with a dependent Variable value when a dominant or dependent Variable has changed but change has not been applied." */
#define UA_STATUSCODE_GOODEDITED_DOMINANTVALUECHANGED_DEPENDENTVALUECHANGED 0x01180000

/* "It is delivered with a Variable value when Variable has changed but the value is not legal." */
#define UA_STATUSCODE_BADEDITED_OUTOFRANGE 0x81190000

/* "It is delivered with a Variable value when a source Variable has changed but the value is not legal." */
#define UA_STATUSCODE_BADINITIALVALUE_OUTOFRANGE 0x811A0000

/* "It is delivered with a dependent Variable value when a dominant Variable has changed and the value is not legal." */
#define UA_STATUSCODE_BADOUTOFRANGE_DOMINANTVALUECHANGED 0x811B0000

/* "It is delivered with a dependent Variable value when a dominant Variable has changed */
#define UA_STATUSCODE_BADEDITED_OUTOFRANGE_DOMINANTVALUECHANGED 0x811C0000

/* "It is delivered with a dependent Variable value when a dominant or dependent Variable has changed and the value is not legal." */
#define UA_STATUSCODE_BADOUTOFRANGE_DOMINANTVALUECHANGED_DEPENDENTVALUECHANGED 0x811D0000

/* "It is delivered with a dependent Variable value when a dominant or dependent Variable has changed */
#define UA_STATUSCODE_BADEDITED_OUTOFRANGE_DOMINANTVALUECHANGED_DEPENDENTVALUECHANGED 0x811E0000

/* "The communication layer has raised an event." */
#define UA_STATUSCODE_GOODCOMMUNICATIONEVENT 0x00A70000

/* "The system is shutting down." */
#define UA_STATUSCODE_GOODSHUTDOWNEVENT 0x00A80000

/* "The operation is not finished and needs to be called again." */
#define UA_STATUSCODE_GOODCALLAGAIN 0x00A90000

/* "A non-critical timeout occurred." */
#define UA_STATUSCODE_GOODNONCRITICALTIMEOUT 0x00AA0000

/* "One or more arguments are invalid." */
#define UA_STATUSCODE_BADINVALIDARGUMENT 0x80AB0000

/* "Could not establish a network connection to remote server." */
#define UA_STATUSCODE_BADCONNECTIONREJECTED 0x80AC0000

/* "The server has disconnected from the client." */
#define UA_STATUSCODE_BADDISCONNECT 0x80AD0000

/* "The network connection has been closed." */
#define UA_STATUSCODE_BADCONNECTIONCLOSED 0x80AE0000

/* "The operation cannot be completed because the object is closed */
#define UA_STATUSCODE_BADINVALIDSTATE 0x80AF0000

/* "Cannot move beyond end of the stream." */
#define UA_STATUSCODE_BADENDOFSTREAM 0x80B00000

/* "No data is currently available for reading from a non-blocking stream." */
#define UA_STATUSCODE_BADNODATAAVAILABLE 0x80B10000

/* "The asynchronous operation is waiting for a response." */
#define UA_STATUSCODE_BADWAITINGFORRESPONSE 0x80B20000

/* "The asynchronous operation was abandoned by the caller." */
#define UA_STATUSCODE_BADOPERATIONABANDONED 0x80B30000

/* "The stream did not return all data requested (possibly because it is a non-blocking stream)." */
#define UA_STATUSCODE_BADEXPECTEDSTREAMTOBLOCK 0x80B40000

/* "Non blocking behaviour is required and the operation would block." */
#define UA_STATUSCODE_BADWOULDBLOCK 0x80B50000

/* "A value had an invalid syntax." */
#define UA_STATUSCODE_BADSYNTAXERROR 0x80B60000

/* "The operation could not be finished because all available connections are in use." */
#define UA_STATUSCODE_BADMAXCONNECTIONSREACHED 0x80B70000

/* Depending on the version of the schema, the following might be already defined: */
#ifndef UA_STATUSCODE_GOOD
# define UA_STATUSCODE_GOOD 0x00000000
#endif
#ifndef UA_STATUSCODE_UNCERTAIN
# define UA_STATUSCODE_UNCERTAIN 0x40000000
#endif
#ifndef UA_STATUSCODE_BAD
# define UA_STATUSCODE_BAD 0x80000000
#endif