blob: 67871ddd483643db5993b33497090bb1400fd672 [file] [log] [blame]
/////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2000-2019 Ericsson Telecom AB AB
// All rights reserved. This program and the accompanying materials
// are made available under the terms of the Eclipse Public License v2.0
// which accompanies this distribution, and is available at
// https://www.eclipse.org/org/documents/epl-2.0/EPL-2.0.html
/////////////////////////////////////////////////////////////////////////////////////
// Contributors:
// Akos Makovics
//
// File: OpcUa_Types_JSON_Reversible.ttcn
// Rev: R1A
// Prodnr: CNL
/////////////////////////////////////////////////////////////////////////////////////
module OpcUa_Types_JSON_Reversible
{
/////////////////////////////////////////////////////////////
// //
// Encoders and Decoders //
// //
/////////////////////////////////////////////////////////////
external function enc_MessageTypes (in MessageTypes msg) return octetstring
with { extension "prototype(convert) encode(JSON)" }
external function dec_MessageTypes (in octetstring p_oct, out MessageTypes msg) return integer
with {extension "prototype(backtrack) decode (JSON) errorbehavior(ALL:WARNING)"}
/////////////////////////////////////////////////////////////
// //
// Constant Values //
// //
/////////////////////////////////////////////////////////////
const integer Null_Value := -2147483647;
const integer HelloHeaderMsgType := 4998472;
const integer AckHeaderMsgType := 4932417;
const integer ErrorHeaderMsgType := 5395013;
const integer ReverseHelloHeaderMsgType := 4540498;
const integer OpenSecureChannelMsgType := 5132367;
const integer CloseSecureChannelMsgType := 5196867;
const integer ServicesMsgType := 4674381;
const integer FindServiceRequestNodeId := 0; //No data in XML
const integer FindServiceResponseNodeId := 1; //No data in XML
const integer CloseSecureChannelRequestNodeId := 450;
const integer CloseSecureChannelResponseNodeId := 453;
const integer OpenSecureChannelRequestNodeId := 444;
const integer OpenSecureChannelResponseNodeId := 447;
const integer FindServersOnNetworkRequestNodeId := 12208;
const integer FindServersOnNetworkResponseNodeId := 12209;
const integer GetEndpointsRequestNodeId := 426;
const integer GetEndpointsResponseNodeId := 429;
const integer RegisterServerRequestNodeId := 435;
const integer RegisterServerResponseNodeId := 438;
const integer RegisterServer2RequestNodeId := 12211;
const integer RegisterServer2ResponseNodeId := 12212;
const integer CreateSessionRequestNodeId := 459;
const integer CreateSessionResponseNodeId := 462;
const integer ActivateSessionRequestNodeId := 465;
const integer ActivateSessionResponseNodeId := 468;
const integer CloseSessionRequestNodeId := 471;
const integer CloseSessionResponseNodeId := 474;
const integer CancelRequestRequestNodeId := 477;
const integer CancelRequestResponseNodeId := 480;
const integer AddNodesRequestNodeId := 486;
const integer AddNodesResponseNodeId := 489;
const integer AddReferencesRequestNodeId := 492;
const integer AddReferencesResponseNodeId := 495;
const integer DeleteNodesRequestNodeId := 488;
const integer DeleteNodesResponseNodeId := 501;
const integer DeleteReferencesRequestNodeId := 504;
const integer DeleteReferencesResponseNodeId := 507;
const integer BrowseRequestNodeId := 525;
const integer BrowseResponseNodeId := 528;
const integer BrowseNextRequestNodeId := 531;
const integer BrowseNextResponseNodeId := 534;
const integer TranslateBrowsePathsToNodeIdsRequestNodeId := 552;
const integer TranslateBrowsePathsToNodeIdsResponseNodeId := 555;
const integer RegisterNodesRequestNodeId := 558;
const integer RegisterNodesResponseNodeId := 561;
const integer UnregisterNodesRequestNodeId := 564;
const integer UnregisterNodesResponseNodeId := 567;
const integer QueryFirstRequestNodeId := 613;
const integer QueryFirstResponseNodeId := 616;
const integer QueryNextRequestNodeId := 619;
const integer QueryNextResponseNodeId := 622;
const integer ReadRequestNodeId := 629;
const integer ReadResponseNodeId := 632;
const integer HistoryReadRequestNodeId := 662;
const integer HistoryReadResponseNodeId := 665;
const integer WriteRequestNodeId := 671;
const integer WriteResponseNodeId := 675;
const integer HistoryUpdateRequestNodeId := 698;
const integer HistoryUpdateResponseNodeId := 701;
const integer CallRequestNodeId := 710;
const integer CallResponseNodeId := 713;
const integer CreateMonitoredItemsRequestNodeId := 749;
const integer CreateMonitoredItemsResponseNodeId := 752;
const integer ModifyMonitoredItemsRequestNodeId := 761;
const integer ModifyMonitoredItemsResponseNodeId := 764;
const integer SetMonitoringModeRequestNodeId := 767;
const integer SetMonitoringModeResponseNodeId := 770;
const integer SetTriggeringRequestNodeId := 773;
const integer SetTriggeringResponseNodeId := 776;
const integer DeleteMonitoredItemsRequestNodeId := 779;
const integer DeleteMonitoredItemsResponseNodeId := 782;
const integer CreateSubscriptionRequestNodeId := 785;
const integer CreateSubscriptionResponseNodeId := 789;
const integer ModifySubscriptionRequestNodeId := 791;
const integer ModifySubscriptionResponseNodeId := 794;
const integer SetPublishingModeRequestNodeId := 797;
const integer SetPublishingModeResponseNodeId := 800;
const integer PublishRequestNodeId := 824;
const integer PublishResponseNodeId := 827;
const integer RepublishRequestNodeId := 830;
const integer RepublishResponseNodeId := 833;
const integer TransferSubscriptionsRequestNodeId := 839;
const integer TransferSubscriptionsResponseNodeId := 842;
const integer DeleteSubscriptionsRequestNodeId := 845;
const integer DeleteSubscriptionsResponseNodeId := 848;
const integer FinalChunk := 70;
const integer IntermediateChunk := 67;
const integer ErrorChunk := 65;
/////////////////////////////////////////////////////////////
// //
// Enumerations //
// //
/////////////////////////////////////////////////////////////
type enumerated MessageSecurityMode {
INVALID_0,
NONE_1,
SIGN_2,
SIGNANDENCRYPT_3
} with {
variant "JSON: as number"
}
type enumerated SecurityTokenRequestType {
ISSUE_0,
RENEW_1
} with {
variant "JSON: as number"
}
type enumerated NodeClass
{
UNSPECIFIED_0(0),
OBJECT_1(1),
VARIABLE_2(2),
METHOD_4(4),
OBJECT_TYPE_8(8),
VARIABLE_TYPE_16(16),
REFERENCE_TYPE_32(32),
DATA_TYPE_64(64),
VIEW_128(128)
} with {
variant "JSON: as number"
}
type enumerated StructureType {
STRUCTURE_0,
STRUCTURE_WITH_OPTIONAL_FIELDS_1,
UNION_2
} with {
variant "JSON: as number"
}
type enumerated ApplicationType {
SERVER_0,
CLIENT_1,
CLIENTANDSERVER_2,
DISCOVERYSERVER_3
} with {
variant "JSON: as number"
}
type enumerated DataChangeTrigger {
STATUS_0,
STATUS_VALUE_1,
STATUS_VALUE_TIMESTAMP_2
} with {
variant "JSON: as number"
}
type enumerated MonitoringMode {
DISABLED_0,
SAMPLING_1,
REPORTING_2
} with {
variant "JSON: as number"
}
type enumerated BrowseDirection {
FORWARD_0,
INVERSE_1,
BOTH_2
} with {
variant "JSON: as number"
}
type enumerated TimestampsToReturn {
SOURCE_0,
SERVER_1,
BOTH_2,
NEITHER_3
} with {
variant "JSON: as number"
}
type enumerated UserIdentityTokenType {
ANONYMOUS_0,
USERNAME_1,
CERTIFICATE_2,
ISSUEDTOKEN_3
} with {
variant "JSON: as number"
}
type enumerated PerformUpdateType {
INSERT_1(1),
REPLACE_2(2),
UPDATE_3(3)
} with {
variant "JSON: as number"
}
type enumerated PerformUpdateTypeExtended {
INSERT_1(1),
REPLACE_2(2),
UPDATE_3(3),
REMOVE_4(4)
} with {
variant "JSON: as number"
}
type enumerated IdType
{
NUMERIC_0,
STRING_1,
GUID_2,
OPAQUE_3
} with {
variant "JSON: as number"
}
type enumerated FilterOperator {
Equals_0,
IsNull_1,
GreaterThan_2,
LessThan_3,
GreaterThanOrEqual_4,
LessThanOrEqual_5,
Like_6,
Not_7,
Between_8,
InList_9,
And_10,
Or_11,
Cast_12,
InView_13,
OfType_14,
RelatedTo_15,
BitwiseAnd_16,
BitwiseOr_17
} with {
variant "JSON: as number"
}
type enumerated OpenFileMode
{
READ_1(1),
WRITE_2(2),
ERASE_EXISTING_4(4),
APPEND_8(8)
} with {
variant "JSON: as number"
}
type enumerated TrustListMasks
{
none_0(0),
trustedCertificates_1(1),
trustedCrls_2(2),
issuerCertificates_4(4),
issuerCrls_8(8),
all_15(15)
} with {
variant "JSON: as number"
}
/////////////////////////////////////////////////////////////
// //
// Base Types //
// //
/////////////////////////////////////////////////////////////
//Encoded as the JSON literal ‘true’ or ‘false’.
type boolean Boolean;
//An integer value between -128 and 127 inclusive.
type integer SByte with { variant "FIELDLENGTH(8), COMP(signbit), FIELDORDER(lsb)" };
//An integer value between 0 and 255 inclusive.
type integer Byte with { variant "FIELDLENGTH(8), COMP(nosign), FIELDORDER(lsb)" };
//An integer value between -32 768 and 32 767 inclusive.
type integer Int16 with { variant "FIELDLENGTH(16), COMP(signbit), FIELDORDER(lsb)" };
//An integer value between 0 and 65 535 inclusive.
type integer UInt16 with { variant "FIELDLENGTH(16), COMP(nosign), FIELDORDER(lsb)" };
//An integer value between 0 and 16 777 215
type integer UInt24 with { variant "FIELDLENGTH(24), COMP(nosign), FIELDORDER(lsb)" }
//An integer value between -2 147 483 648 and 2 147 483 647 inclusive.
type integer Int32 with { variant "FIELDLENGTH(32), COMP(signbit), FIELDORDER(lsb)" };
//An integer value between 0 and 4 294 967 295 inclusive.
type integer UInt32 with { variant "FIELDLENGTH(32), COMP(nosign), FIELDORDER(lsb)" };
//An integer value between -9 223 372 036 854 775 808 and 9 223 372 036 854 775 807 inclusive.
type charstring Int64 with { variant "FIELDLENGTH(64), COMP(signbit), FIELDORDER(lsb)" };
//An integer value between 0 and 18 446 744 073 709 551 615 inclusive.
type charstring UInt64 with { variant "FIELDLENGTH(64), COMP(nosign), FIELDORDER(lsb)" };
//An IEEE single precision (32 bit) floating point value.
type float Float with { variant "FORMAT(IEEE754 float), FIELDLENGTH(32), FIELDORDER(lsb)"};
//An IEEE double precision (64 bit) floating point value.
type float Double with { variant "FORMAT(IEEE754 double), FIELDLENGTH(64), FIELDORDER(lsb)"};
//Defines an interval of time in milliseconds
type Double Duration;
//Number of 100 nanosecond intervals since January 1, 1601
type charstring DateTime with { variant "FIELDLENGTH(64), COMP(signbit), BYTEORDER(first)"};
//Define Coordinated Universal Time (UTC) values.
type DateTime UtcTime;
//Represents the time in seconds since the year 2000. It is used as version number based on the last change time.
type UInt32 VersionTime;
//Represents the value of a counter
type UInt32 Counter;
//Identifies an element of an array
type UInt32 Index;
//Used as an identifier, such as a handle. All values, except for 0, are valid.
type UInt32 IntegerId;
//Representing an image.
type octetstring Image;
//Representing an image in BMP format.
type octetstring ImageBMP;
//Representing an image in GIF format.
type octetstring ImageGIF;
//Representing an image in JPG format.
type octetstring ImageJPG;
//Representing an image in PNG format.
type octetstring ImagePNG;
//Representing audio data. It can be any number of audio formats.
type ByteString AudioData;
//A string that is composed of a language component and a country/region component
type String LocaleId;
//Used to pause a Browse or QueryFirst operation
type ByteString ContinuationPoint;
//Used for indexing a range within an array
type String NumericRange;
//An opaque identifier that is used to identify requests associated with a particular Session.
type NodeId SessionAuthenticationToken;
//Sequence of UTF-8 characters without a null terminator and preceded by the length in bytes.
type charstring String;
//A 16-byte value that can be used as a globally unique identifier.
type charstring Guid;
//Sequence of bytes preceded by its length in bytes
type charstring ByteString
//An XML element, as an XML fragment serialized as UTF-8 string
type charstring XmlElement;
//A StatusCode of Good (0) is treated like a NULL and not encoded. If it is an element of an JSON array it is encoded as the JSON literal ‘null’
type integer StatusCode;
type Int32 DataType;
type Variant BaseDataType;
/////////////////////////////////////////////////////////////
// //
// Complex Types //
// //
/////////////////////////////////////////////////////////////
//An identifier for a node in the address space of an OPC UA Server.
type record NodeId {
Byte IdType optional,
NodeIdType Id,
integer Namespace optional
} with {
variant (Id) "chosen (StringNodeId, IdType = 1;
GuidNodeId, IdType = 2;
ByteStringNodeId, IdType = 3;
UInt32NodeId, otherwise;)"
variant(IdType) "JSON : default (0)"
}
//Helper type, contains the possible body types for NodeId
type union NodeIdType {
UInt32 UInt32NodeId,
String StringNodeId,
Guid GuidNodeId,
ByteString ByteStringNodeId
} with {
variant "JSON: as value"
}
type record ExpandedNodeId {
Byte IdType optional,
NodeIdType Id,
integer Namespace optional,
integer ServerURI optional
} with {
variant (Id) "chosen (StringNodeId, IdType = 1;
GuidNodeId, IdType = 2;
ByteStringNodeId, IdType = 3;
UInt32NodeId, otherwise;)"
variant(IdType) "JSON : default (0)"
}
type record DiagnosticInfo {
Int32 SymbolicId,
Int32 NamespaceUri,
Int32 Locale,
Int32 LocalizedText,
String AdditionalInfo,
StatusCode InnerStatusCode optional,
DiagnosticInfo InnerDiagnosticInfo optional
}
//A name qualified by a namespace.
type record QualifiedName {
UInt16 namespaceIndex,
String name
}
//Human readable text with an optional locale identifier.
type record LocalizedText {
String locale,
String text
}
//A structure that contains an application specific data type that may not be recognized by the receiver
type record ExtensionObject {
NodeId typeId,
Byte encoding optional,
ExtensionObjectBody body optional
} with {
variant (body)"chosen( structure, encoding = 0;
byteString, encoding = 1;
xmlElement, encoding = 2)";
}
type union ExtensionObjectBody {
octetstring structure,
String byteString,
String xmlElement
}
type record Variant {
integer Type,
VariantBody Body optional,
ListOfInteger Dimensions optional
}
type union VariantBody {
Boolean bool,
SByte sbyte,
Byte byte,
Int16 int16,
UInt16 uint16,
Int32 int32,
UInt32 uint32,
Int64 int64,
UInt64 uint64,
Float Float,
Double double,
String string,
DateTime datetime,
Guid guid,
ByteString bytestring,
XmlElement xmlelement,
NodeId nodeid,
ExpandedNodeId expandednodeid,
StatusCode statuscode,
QualifiedName qualifiedname,
LocalizedText localizedtext,
ExtensionObject extensionobject,
DataValue datavalue,
ListOfVariant listofvariant,
DiagnosticInfo diagnosticinfo,
ListOfBoolean listOfBool,
ListOfSByte listOfSbyte,
ListOfByte listOfByte,
ListOfInt16 listOfInt16,
ListOfUInt16 listOfUint16,
ListOfInt32 listOfInt32,
ListOfUInt32 listOfUint32,
ListOfInt64 listOfInt64,
ListOfUInt64 listOfUint64,
ListOfFloat listOfFloatValue,
ListOfDouble listOfDouble,
ListOfString listOfString,
ListOfDateTime listOfDatetime,
ListOfGuid listOfGuid,
ListOfByteString listOfBytestring,
ListOfXmlElement listOfXmlelement,
ListOfNodeId listOfNodeid,
ListOfExpandedNodeId listOfExpandednodeid,
ListOfStatusCode listOfStatuscode,
ListOfQualifiedName listOfQualifiedname,
ListOfLocalizedText listOfLocalizedtext,
ListOfExtensionObject listOfExtensionobject,
ListOfDataValue listOfDatavalue,
ListOfVariant listOfListofvariant,
ListOfDiagnosticInfo listOfDiagnosticinfo
}
type record DataValue {
integer EncodingMask,
Variant Value optional,
StatusCode Status optional,
DateTime SourceTimeStamp optional,
UInt16 SourcePicoSecond optional,
DateTime ServerTimestamp optional,
UInt16 ServerPicoSeconds optional
}
type record Decimal {
integer Scale,
String Value
}
//Represent a human-readable representation of an Enumeration.
type record EnumValueType {
Int64 Value,
LocalizedText displayName,
LocalizedText description
}
//Base DataType for all DataTypes representing a bit mask.
type record OptionSet {
ByteString Value,
ByteString validBits
}
//Provides the meta data for a custom Structure DataType.
type record StructureDefinition {
NodeId defaultEncodingId,
NodeId baseDataType,
StructureType structureType,
ListOfStructureField fields
}
//Provides the metadata for a custom Enumeration or OptionSet DataType.
type record EnumDefinition {
ListOfEnumField fields
}
//Provides the metadata for a field of a custom Enumeration or OptionSet DataType.
type record EnumField {
String name
}
//Provides the metadata for a field of a custom Structure DataType.
type record StructureField {
String name,
LocalizedText description,
NodeId dataType,
Int32 valueRank,
Boolean isOptional
}
//Implementation of the Extension Object for the Extensible Parameter types
type record ExtensibleParameter {
NodeId parameterTypeId,
ExtensibleParameterBody extensibleParameterBody optional
}
//Possible extension types
type union ExtensibleParameterBody {
ElementOperand elementOperand,
LiteralOperand literalOperand,
AttributeOperand attributeOperand,
SimpleAttributeOperand simpleAttributeOperand,
DataChangeFilter dataChangeFilter,
EventFilter eventFilter,
AggregateFilter aggregateFilter,
EventFilterResult eventFilterResult,
AggregateFilterResult aggregateFilterResult,
ObjectAttributes objectAttributes,
VariableAttributes variableAttributes,
MethodAttributes methodAttributes,
ObjectTypeAttributes objectTypeAttributes,
VariableTypeAttributes variableTypeAttributes,
ReferenceTypeAttributes referenceTypeAttributes,
DataTypeAttributes dataTypeAttributes,
ViewAttributes viewAttributes,
GenericAttributes genericAttributes,
UserNameIdentityToken userNameIdentityToken,
X509IdentityToken x509IdentityToken,
IssuedIdentityToken issuedIdentityToken,
AnonymousIdentityToken anonymousIdentityToken,
MdnsDiscoveryConfiguration mdnsDiscoveryConfiguration,
ReadEventDetails readEventDetails,
ReadRawModifiedDetails readRawModifiedDetails,
ReadProcessedDetails readProcessedDetails,
ReadAtTimeDetails readAtTimeDetails,
ListOfDataValue dataValues,
UpdateDataDetails updateDataDetails,
UpdateStructureDataDetails updateStructureDataDetails,
UpdateEventDetails updateEventDetails,
DeleteRawModifiedDetails deleteRawModifiedDetails,
DeleteAtTimeDetails deleteAtTimeDetails,
DeleteEventDetails deleteEventDetails,
DataChangeNotification dataChangeNotification,
EventNotificationList eventNotificationList,
StatusChangeNotification statusChangeNotification
} with {
variant "";
}
/////////////////////////////////////////////////////////////
// //
// Lists and Arrays //
// //
/////////////////////////////////////////////////////////////
//Arrays of types. Used in lists, and in templates for lists
type record of Boolean ListOfBoolean;
type record of integer ListOfInteger;
type record of SByte ListOfSByte;
type record of Byte ListOfByte;
type record of Int16 ListOfInt16;
type record of UInt16 ListOfUInt16;
type record of Int32 ListOfInt32;
type record of UInt32 ListOfUInt32;
type record of Int64 ListOfInt64;
type record of UInt64 ListOfUInt64;
type record of Float ListOfFloat;
type record of Double ListOfDouble;
type record of DateTime ListOfDateTime;
type record of UtcTime ListOfUtcTime;
type record of Counter ListOfCounter;
type record of IntegerId ListOfIntegerId;
type record of LocaleId ListOfLocaleId;
type record of ContinuationPoint ListOfContinuationPoint;
type record of String ListOfString;
type record of Guid ListOfGuid;
type record of ByteString ListOfByteString;
type record of XmlElement ListOfXmlElement;
type record of NodeId ListOfNodeId;
type record of ExpandedNodeId ListOfExpandedNodeId;
type record of StatusCode ListOfStatusCode;
type record of DiagnosticInfo ListOfDiagnosticInfo;
type record of QualifiedName ListOfQualifiedName;
type record of LocalizedText ListOfLocalizedText;
type record of ExtensionObject ListOfExtensionObject;
type record of Variant ListOfVariant;
type record of DataValue ListOfDataValue;
type record of Decimal ListOfDecimal;
type record of EnumValueType ListOfEnumValueType;
type record of EnumField ListOfEnumField;
type record of StructureField ListOfStructureField;
type record of ExtensibleParameter ListOfExtensibleParameter;
type record of ApplicationDescription ListOfApplicationDescription;
type record of BrowseResult ListOfBrowseResult;
type record of ContentFilterElement ListOfContentFilterElement;
type record of ContentFilterElementResult ListOfContentFilterElementResult;
type record of SimpleAttributeOperand ListOfSimpleAttributeOperand;
type record of EndpointDescription ListOfEndpointDescription;
type record of MonitoringParameters ListOfMonitoringParameters;
type record of GenericAttributeValue ListOfGenericAttributeValue;
type record of MonitoredItemNotification ListOfMonitoredItemNotification;
type record of EventFieldList ListOfEventFieldList;
type record of QueryDataSet ListOfQueryDataSet;
type record of ReadValueId ListOfReadValueId;
type record of ReferenceDescription ListOfReferenceDescription;
type record of RelativePathElement ListOfRelativePathElement;
type record of ApplicationInstanceCertificate ListOfApplicationInstanceCertificate;
type record of ChannelSecurityToken ListOfChannelSecurityToken;
type record of UserTokenPolicy ListOfUserTokenPolicy;
type record of ServerOnNetwork ListOfServerOnNetwork;
type record of AddNodesItem ListOfAddNodesItem;
type record of AddNodesResult ListOfAddNodesResult;
type record of AddReferencesItem ListOfAddReferencesItem;
type record of DeleteNodesItem ListOfDeleteNodesItem;
type record of DeleteReferencesItem ListOfDeleteReferencesItem;
type record of SignedSoftwareCertificate ListOfSignedSoftwareCertificate;
type record of BrowseDescription ListOfBrowseDescription;
type record of BrowsePath ListOfBrowsePath;
type record of BrowsePathResult ListOfBrowsePathResult;
type record of BrowsePathTarget ListOfBrowsePathTarget;
type record of NodeTypeDescription ListOfNodeTypeDescription;
type record of QueryDataDescription ListOfQueryDataDescription;
type record of ParsingResult ListOfParsingResult;
type record of HistoryReadValueId ListOfHistoryReadValueId;
type record of HistoryReadResult ListOfHistoryReadResult;
type record of WriteValue ListOfWriteValue;
type record of HistoryUpdateResult ListOfHistoryUpdateResult;
type record of CallMethodRequest ListOfCallMethodRequest;
type record of CallMethodResult ListOfCallMethodResult;
type record of MonitoredItemCreateRequest ListOfMonitoredItemCreateRequest;
type record of MonitoredItemCreateResult ListOfMonitoredItemCreateResult;
type record of MonitoredItemModifyRequest ListOfMonitoredItemModifyRequest;
type record of MonitoredItemModifyResult ListOfMonitoredItemModifyResult;
type record of SubscriptionAcknowledgement ListOfSubscriptionAcknowledgement;
type record of TransferResult ListOfTransferResult;
type record of BaseDataType ListOfBaseDataType;
/////////////////////////////////////////////////////////////
// //
// Common Parameters //
// //
/////////////////////////////////////////////////////////////
//Information that describes an application.
type record ApplicationDescription {
String applicationUri,
String productUri,
LocalizedText applicationName,
ApplicationType applicationType,
String gatewayServerUri,
String discoveryProfileUri,
ListOfString discoveryUrls
}
//Information that identified an application instance
type record ApplicationInstanceSubjectIdentifier {
String name
}
//Information that identified the issuer of an application instance
type record ApplicationInstanceIssuerIdentifier {
String productName ,
String organisation
}
type record BrowseResult {
StatusCode statusCode optional,
ContinuationPoint continuationPoint,
ListOfReferenceDescription References
}
type record ContentFilter {
ListOfContentFilterElement elements
}
type record ContentFilterElement {
FilterOperator filterOperator,
ListOfExtensibleParameter filterOperands
}
type record ContentFilterResult {
ListOfContentFilterElementResult elementResults,
ListOfDiagnosticInfo elementDiagnosticInfos
}
type record ContentFilterElementResult {
StatusCode statusCode optional,
ListOfStatusCode operandStatusCodes,
ListOfDiagnosticInfo operandDiagnosticInfos
}
type record ElementOperand {
UInt32 index
}
type record LiteralOperand {
BaseDataType Value
}
type record AttributeOperand {
NodeId nodeId,
String alias,
RelativePath browsePath,
IntegerId attributeId,
NumericRange indexRange
}
type record SimpleAttributeOperand {
NodeId typeId,
ListOfQualifiedName browsePath,
IntegerId attributeId,
NumericRange indexRange
}
type record MdnsDiscoveryConfiguration {
String mdnsServerName,
ListOfString serverCapabilities
}
type record EndpointDescription {
String endpointUrl,
ApplicationDescription server,
ByteString serverCertificate,
MessageSecurityMode securityMode,
String securityPolicyUri,
ListOfUserTokenPolicy userIdentityTokens,
String transportProfileUri,
Byte securityLevel
}
type record MonitoringParameters {
IntegerId clientHandle,
Duration samplingInterval,
ExtensibleParameter filter,
Counter queueSize,
Boolean discardOldest
}
type record DataChangeFilter {
DataChangeTrigger Trigger,
UInt32 deadbandType,
Double deadbandValue
}
type record EventFilter {
ListOfSimpleAttributeOperand selectClauses,
ContentFilter whereClause
}
type record EventFilterResult {
ListOfStatusCode selectClauseResults,
ListOfDiagnosticInfo selectClauseDiagnosticInfos,
ContentFilterResult whereClauseResult
}
type record AggregateFilter {
UtcTime startTime,
NodeId aggregateType,
Duration processingInterval,
AggregateConfiguration aggregateConfiguration,
Boolean useServerCapabilitiesDefaults,
Boolean treatUncertainAsBad,
Byte percentDataBad,
Byte percentDataGood,
Boolean useSlopedExtrapolation
}
type record AggregateConfiguration {
Boolean TreatUncertainAsBad,
Boolean useSeverCapabilitiesDefaults,
Byte PercentDataBad,
Byte PercentDataGood,
Boolean UseSlopedExtrapolation
}
type record AggregateFilterResult {
UtcTime revisedStartTime,
Duration revisedProcessingInterval
}
type record ObjectAttributes {
integer EncodingMask,
LocalizedText displayName optional,
LocalizedText description optional,
Byte eventNotifier optional,
UInt32 writeMask optional,
UInt32 userWriteMask optional
}
type record VariableAttributes {
integer EncodingMask,
LocalizedText displayName optional,
LocalizedText description optional,
DataType Value optional,
NodeId dataType optional,
Int32 valueRank optional,
ListOfUInt32 arrayDimensions optional,
Byte accessLevel optional,
Byte userAccessLevel optional,
Duration minimumSamplingInterval optional,
Boolean historizing optional,
UInt32 writeMask optional,
UInt32 userWriteMask optional
}
type record MethodAttributes {
integer EncodingMask,
LocalizedText displayName optional,
LocalizedText description optional,
Boolean executable optional,
Boolean userExecutable optional,
UInt32 writeMask optional,
UInt32 userWriteMask optional
}
type record ObjectTypeAttributes {
integer EncodingMask,
LocalizedText displayName optional,
LocalizedText description optional,
Boolean isAbstract optional,
UInt32 writeMask optional,
UInt32 userWriteMask optional
}
type record VariableTypeAttributes {
integer EncodingMask,
LocalizedText displayName optional,
LocalizedText description optional,
DataType Value optional,
NodeId dataType optional,
Int32 valueRank optional,
ListOfUInt32 arrayDimensions optional,
Boolean isAbstract optional,
UInt32 writeMask optional,
UInt32 userWriteMask optional
}
type record ReferenceTypeAttributes {
integer EncodingMask,
LocalizedText displayName optional,
LocalizedText description optional,
Boolean isAbstract optional,
Boolean symmetric optional,
LocalizedText inverseName optional,
UInt32 writeMask optional,
UInt32 userWriteMask optional
}
type record DataTypeAttributes {
integer EncodingMask,
LocalizedText displayName optional,
LocalizedText description optional,
Boolean isAbstract optional,
UInt32 writeMask optional,
UInt32 userWriteMask optional
}
type record ViewAttributes {
integer EncodingMask,
LocalizedText displayName optional,
LocalizedText description optional,
Boolean containsNoLoops optional,
Byte eventNotifier optional,
UInt32 writeMask optional,
UInt32 userWriteMask optional
}
type record GenericAttributes {
ListOfGenericAttributeValue attributeValues
}
type record GenericAttributeValue {
IntegerId attributeId,
BaseDataType Value
}
type record DataChangeNotification {
ListOfMonitoredItemNotification monitoredItems,
ListOfDiagnosticInfo diagnosticInfos
}
type record MonitoredItemNotification {
IntegerId clientHandle,
DataValue Value
}
type record EventNotificationList {
ListOfEventFieldList events
}
type record EventFieldList {
IntegerId clientHandle,
ListOfBaseDataType eventFields
}
type record StatusChangeNotification {
StatusCode status optional,
DiagnosticInfo diagnosticInfo
}
type record NotificationMessage {
Counter sequenceNumber,
UtcTime publishTime,
ListOfExtensibleParameter notificationData
}
type record QueryDataSet {
ExpandedNodeId nodeId,
ExpandedNodeId typeDefinitionNode,
ListOfBaseDataType values
}
type record ReadValueId {
NodeId nodeId,
IntegerId attributeId,
NumericRange indexRange,
QualifiedName dataEncoding
}
type record ReferenceDescription {
NodeId referenceTypeId,
Boolean isForward,
ExpandedNodeId nodeId,
QualifiedName browseName,
LocalizedText displayName,
NodeClass nodeClass,
ExpandedNodeId typeDefinition
}
type record RelativePath {
ListOfRelativePathElement elements
}
type record RelativePathElement {
NodeId referenceTypeId,
Boolean isInverse,
Boolean includeSubtypes,
QualifiedName targetName
}
type record RegisteredServer {
String serverUri,
String productUri,
ListOfLocalizedText serverNames,
ApplicationType serverType,
String gatewayServerUri,
ListOfString discoveryUrls,
String semaphoreFilePath,
Boolean isOnline
}
/////////////////////////////////////////////////////////////
// //
// Structures for Security (Incomplete) //
// //
/////////////////////////////////////////////////////////////
type record ApplicationInstanceCertificate {
String version,
ByteString serialNumber,
String signatureAlgorithm,
ByteString Signature,
ApplicationInstanceIssuerIdentifier issuer,
UtcTime validFrom,
UtcTime validTo,
ApplicationInstanceSubjectIdentifier subject,
String applicationUri,
ListOfString hostnames,
ByteString publicKey,
ListOfString keyUsage
}
type record ChannelSecurityToken {
UInt32 channelId,
UInt32 tokenId,
UtcTime createdAt,
UInt32 revisedLifetime
}
type record EncryptedSecret {
NodeId TypeId,
Byte EncodingMask,
UInt32 Length,
String SecurityPolicyUri,
ByteString EncryptingCertificate,
DateTime SigningTime,
UInt16 PolicyHeaderLength,
ByteString SigningKey,
ByteString EncryptingKey,
ByteString InitializationVector,
ByteString Nonce,
Byte PolicyHeaderPadding optional,
UInt16 PolicyHeaderPaddingSize,
ByteString Secret,
Byte PayloadPadding optional,
UInt16 PayloadPaddingSize,
Byte Signature optional
}
type record RsaEncryptedSecret {
NodeId TypeId,
Byte EncodingMask,
UInt32 Length,
String SecurityPolicyUri,
ByteString EncryptingCertificate,
DateTime SigningTime,
UInt16 PolicyHeaderLength,
ByteString SigningKey,
ByteString EncryptingKey,
ByteString InitializationVector,
ByteString Nonce,
Byte PolicyHeaderPadding optional,
UInt16 PolicyHeaderPaddingSize,
ByteString Secret,
Byte PayloadPadding optional,
UInt16 PayloadPaddingSize,
Byte Signature optional
}
type record AnonymousIdentityToken {
String policyId
}
type record UserNameIdentityToken {
String policyId,
String userName,
ByteString password,
String encryptionAlgorithm
}
type record X509IdentityToken {
String policyId,
ByteString certificateData
}
type record IssuedIdentityToken {
String policyId,
ByteString tokenData,
String encryptionAlgorithm
}
type record UserTokenPolicy {
String policyId,
UserIdentityTokenType tokenType,
String issuedTokenType,
String issuerEndpointUrl,
String securityPolicyUri
}
/////////////////////////////////////////////////////////////
// //
// Structures for Services //
// //
/////////////////////////////////////////////////////////////
type record ViewDescription {
NodeId viewId,
UtcTime timestamp,
UInt32 viewVersion
}
type record TrustListDataType {
TrustListMasks specifiedLists,
ListOfByteString trustedCertificates,
ListOfByteString trustedCrls,
ListOfByteString issuerCertificates,
ListOfByteString issuerCrls
}
type record ServerOnNetwork {
UInt32 recordId,
String serverName,
String discoveryUrl,
ListOfString serverCapabilities
}
type record AddNodesItem {
ExpandedNodeId parentNodeId,
NodeId referenceTypeId,
QualifiedName browseName,
NodeClass nodeClass,
ExtensibleParameter nodeAttributes,
ExpandedNodeId typeDefinition
}
type record AddNodesResult {
StatusCode statusCode optional,
NodeId addedNodeId,
ListOfDiagnosticInfo diagnosticInfos
}
type record AddReferencesItem {
NodeId sourceNodeId,
NodeId referenceTypeId,
Boolean isForward,
String targetServerUri,
ExpandedNodeId targetNodeId,
NodeClass targetNodeClass
}
type record DeleteNodesItem {
NodeId nodeId,
Boolean deleteTargetReferences
}
type record DeleteReferencesItem {
NodeId sourceNodeId,
NodeId referenceTypeId,
Boolean isForward,
ExpandedNodeId targetNodeId,
Boolean deleteBidirectional
}
type record BrowseDescription {
NodeId nodeId,
BrowseDirection browseDirection,
NodeId referenceTypeId,
Boolean includeSubtypes,
UInt32 nodeClassMask,
UInt32 resultMask
}
type record SignatureData {
String algorithm,
ByteString Signature
}
type record SignedSoftwareCertificate {
ByteString certificateData,
ByteString Signature
}
type record BrowsePath {
NodeId startingNode,
RelativePath relativePath
}
type record BrowsePathResult {
StatusCode statusCode optional,
ListOfBrowsePathTarget targets
}
type record BrowsePathTarget {
ExpandedNodeId targetId,
Index remainingPathIndex
}
type record NodeTypeDescription {
ExpandedNodeId typeDefinitionNode,
Boolean includeSubtypes,
ListOfQueryDataDescription dataToReturn
}
type record QueryDataDescription {
RelativePath relativePath,
IntegerId attributeId,
NumericRange indexRange
}
type record ParsingResult {
StatusCode statusCode optional,
ListOfStatusCode dataStatusCodes,
ListOfDiagnosticInfo dataDiagnosticInfos
}
type record ReadEventDetails {
Counter numValuesPerNode,
UtcTime startTime,
UtcTime endTime,
EventFilter Filter
}
type record ReadRawModifiedDetails {
Boolean isReadModified ,
UtcTime startTime,
UtcTime endTime,
Counter numValuesPerNode,
Boolean returnBounds
}
type record ReadProcessedDetails {
UtcTime startTime,
UtcTime endTime,
Duration ProcessingInterval,
ListOfNodeId aggregateType,
AggregateConfiguration aggregateConfiguration
}
type record ReadAtTimeDetails {
ListOfUtcTime reqTimes,
Boolean useSimpleBounds
}
type record HistoryReadValueId {
NodeId nodeId,
NumericRange indexRange,
QualifiedName dataEncoding,
ByteString continuationPoint
}
type record HistoryReadResult {
StatusCode statusCode optional,
ByteString continuationPoint,
ExtensibleParameter historyData
}
type record WriteValue {
NodeId nodeId,
IntegerId attributeId,
NumericRange indexRange,
DataValue datavalue
}
type record UpdateDataDetails {
NodeId nodeId,
PerformUpdateType performInsertReplace,
ListOfDataValue updateValues
}
type record UpdateStructureDataDetails {
NodeId nodeId,
PerformUpdateTypeExtended performInsertReplace,
ListOfDataValue updateValues
}
type record UpdateEventDetails {
NodeId nodeId,
PerformUpdateType performInsertReplace,
EventFilter filter,
ListOfDataValue updateValues
}
type record DeleteRawModifiedDetails {
NodeId nodeId,
Boolean isDeleteModified,
UtcTime startTime,
UtcTime endTime
}
type record DeleteAtTimeDetails {
NodeId nodeId,
ListOfUtcTime reqTimes
}
type record DeleteEventDetails {
NodeId nodeId,
ListOfByteString eventId
}
type record HistoryUpdateResult {
StatusCode statusCode optional,
ListOfStatusCode operationResults,
ListOfDiagnosticInfo diagnosticInfos
}
type record CallMethodRequest {
NodeId objectId,
NodeId methodId,
ListOfVariant inputArguments
}
type record CallMethodResult {
StatusCode statusCode optional,
ListOfStatusCode inputArgumentResults,
ListOfDiagnosticInfo inputArgumentDiagnosticInfos,
ListOfVariant outputArguments
}
type record MonitoredItemCreateRequest {
ReadValueId itemToMonitor,
MonitoringMode monitoringMode,
MonitoringParameters requestedParameters
}
type record MonitoredItemCreateResult {
StatusCode statusCode optional,
IntegerId monitoredItemId,
Duration revisedSamplingInterval,
Counter revisedQueueSize,
ExtensibleParameter filterResult
}
type record MonitoredItemModifyRequest {
IntegerId monitoredItemId,
MonitoringParameters requestedParameters
}
type record MonitoredItemModifyResult {
StatusCode statusCode optional,
Duration revisedSamplingInterval,
Counter revisedQueueSize,
ExtensibleParameter filterResult
}
type record SubscriptionAcknowledgement {
IntegerId subscriptionId,
Counter sequenceNumber
}
type record TransferResult {
StatusCode statusCode optional,
ListOfCounter availableSequenceNumbers
}
/////////////////////////////////////////////////////////////
// //
// Headers //
// //
/////////////////////////////////////////////////////////////
type record MessageHeader {
UInt24 messageType,
Byte chunkType,
UInt32 messageSize
}
type union SecurityHeader {
AsymmetricSecurityHeader asymmetricSecurityHeader,
SymmetricSecurityHeader symmetricSecurityHeader
}
type record SequenceHeader {
UInt32 SequenceNumber,
UInt32 RequestId
}
type record AsymmetricSecurityHeader {
Int32 SecurityPolicyUriLength,
ListOfByte SecurityPolicyUri,
Int32 SenderCertificateLength,
ListOfByte SenderCertificate,
Int32 ReceiverCertificateThumbprintLength,
ListOfByte ReceiverCertificateThumbprint
}
type record SymmetricSecurityHeader {
UInt32 TokenId
}
type record MessageFooter {
integer EncodingMask,
Byte PaddingSize optional,
ListOfByte Padding optional,
Byte ExtraPaddingSize optional,
ListOfByte Signature optional
}
type record AdditionalHeader {
ExpandedNodeId typeId,
Byte Value
}
type record RequestHeader {
SessionAuthenticationToken authenticationToken,
UtcTime timestamp,
IntegerId requestHandle,
UInt32 returnDiagnostics,
String auditEntryId,
UInt32 timeoutHint,
AdditionalHeader additionalHeader
}
type record ResponseHeader {
UtcTime timestamp,
IntegerId requestHandle,
StatusCode serviceResult optional,
DiagnosticInfo serviceDiagnostics,
ListOfString stringTable,
AdditionalHeader additionalHeader
}
type record ServiceFault {
ResponseHeader responseHeader
}
/////////////////////////////////////////////////////////////
// //
// Basic Messages //
// //
/////////////////////////////////////////////////////////////
type record HelloMessage {
//Message header
UInt24 messageType,
Byte chunkType,
UInt32 messageSize,
//Message Body
UInt32 version,
UInt32 receiveBufferSize,
UInt32 sendBufferSize,
UInt32 maxMessageSize,
UInt32 maxChunkCount,
String endPointUrl
}
type record AckMessage {
//Message header
UInt24 messageType,
Byte chunkType,
UInt32 messageSize,
//Message Body
UInt32 version,
UInt32 receiveBufferSize,
UInt32 sendBufferSize,
UInt32 maxMessageSize,
UInt32 maxChunkCount
}
type record ErrorMessage {
//Message header
UInt24 messageType,
Byte chunkType,
UInt32 messageSize,
//Message Body
UInt32 errorCode,
String reason
}
type record ReverseHelloMessage {
//Message header
UInt24 messageType,
Byte chunkType,
UInt32 messageSize,
//Message Body
String serverUri,
String endPointUrl
}
/////////////////////////////////////////////////////////////
// //
// Discovery Service Sets //
// //
/////////////////////////////////////////////////////////////
type record FindServiceRequest {
//Message header
UInt24 messageType,
Byte chunkType,
UInt32 messageSize,
//Message Body
UInt32 securityChannelId,
UInt32 securityTokenId,
SequenceHeader sequenceHeader,
//Service Header
Byte encodingByte,
Byte namespaceIndex,
UInt16 nodeValue,
//Service Body
RequestHeader requestHeader,
String endpointUrl,
ListOfLocaleId localeIds,
ListOfString serverUris
}
type record FindServiceResponse {
//Message header
UInt24 messageType,
Byte chunkType,
UInt32 messageSize,
//Message Body
UInt32 securityChannelId,
UInt32 securityTokenId,
SequenceHeader sequenceHeader,
//Service Header
Byte encodingByte,
Byte namespaceIndex,
UInt16 nodeValue,
//Service Body
ResponseHeader responseHeader,
ListOfApplicationDescription servers
}
type record FindServersOnNetworkRequest {
//Message header
UInt24 messageType,
Byte chunkType,
UInt32 messageSize,
//Message Body
UInt32 securityChannelId,
UInt32 securityTokenId,
SequenceHeader sequenceHeader,
//Service Header
Byte encodingByte,
Byte namespaceIndex,
UInt16 nodeValue,
//Service Body
RequestHeader requestHeader,
Counter startingRecordId,
UInt32 maxRecordsToReturn,
ListOfString serverCapabilityFilter
}
type record FindServersOnNetworkResponse {
//Message header
UInt24 messageType,
Byte chunkType,
UInt32 messageSize,
//Message Body
UInt32 securityChannelId,
UInt32 securityTokenId,
SequenceHeader sequenceHeader,
//Service Header
Byte encodingByte,
Byte namespaceIndex,
UInt16 nodeValue,
//Service Body
ResponseHeader responseHeader,
UtcTime lastCounterResetTime,
ListOfServerOnNetwork servers
}
type record GetEndpointsRequest {
//Message header
UInt24 messageType,
Byte chunkType,
UInt32 messageSize,
//Message Body
UInt32 securityChannelId,
UInt32 securityTokenId,
SequenceHeader sequenceHeader,
//Service Header
Byte encodingByte,
Byte namespaceIndex,
UInt16 nodeValue,
//Service Body
RequestHeader requestHeader,
String endpointUrl,
ListOfLocaleId localeIds,
ListOfString profileUris
}
type record GetEndpointsResponse {
//Message header
UInt24 messageType,
Byte chunkType,
UInt32 messageSize,
//Message Body
UInt32 securityChannelId,
UInt32 securityTokenId,
SequenceHeader sequenceHeader,
//Service Header
Byte encodingByte,
Byte namespaceIndex,
UInt16 nodeValue,
//Service Body
ResponseHeader responseHeader,
ListOfEndpointDescription Endpoints
}
type record RegisterServerRequest {
//Message header
UInt24 messageType,
Byte chunkType,
UInt32 messageSize,
//Message Body
UInt32 securityChannelId,
UInt32 securityTokenId,
SequenceHeader sequenceHeader,
//Service Header
Byte encodingByte,
Byte namespaceIndex,
UInt16 nodeValue,
//Service Body
RequestHeader requestHeader,
RegisteredServer server
}
type record RegisterServerResponse {
//Message header
UInt24 messageType,
Byte chunkType,
UInt32 messageSize,
//Message Body
UInt32 securityChannelId,
UInt32 securityTokenId,
SequenceHeader sequenceHeader,
//Service Header
Byte encodingByte,
Byte namespaceIndex,
UInt16 nodeValue,
//Service Body
ResponseHeader responseHeader
}
type record RegisterServer2Request {
//Message header
UInt24 messageType,
Byte chunkType,
UInt32 messageSize,
//Message Body
UInt32 securityChannelId,
UInt32 securityTokenId,
SequenceHeader sequenceHeader,
//Service Header
Byte encodingByte,
Byte namespaceIndex,
UInt16 nodeValue,
//Service Body
RequestHeader requestHeader,
RegisteredServer server,
ListOfExtensibleParameter discoveryConfiguration
}
type record RegisterServer2Response {
//Message header
UInt24 messageType,
Byte chunkType,
UInt32 messageSize,
//Message Body
UInt32 securityChannelId,
UInt32 securityTokenId,
SequenceHeader sequenceHeader,
//Service Header
Byte encodingByte,
Byte namespaceIndex,
UInt16 nodeValue,
//Service Body
ResponseHeader responseHeader,
ListOfStatusCode configurationResults,
ListOfDiagnosticInfo diagnosticInfos
}
/////////////////////////////////////////////////////////////
// //
// SecureChannel Service Sets //
// //
/////////////////////////////////////////////////////////////
type record OpenSecureChannelRequest {
//Message header
UInt24 messageType,
Byte chunkType,
UInt32 messageSize,
//Message Body
UInt32 securityChannelId,
ListOfByte securePolicyUri,
ListOfByte senderCertificate,
ListOfByte receiverCertificateThumbprint,
SequenceHeader sequenceHeader,
//Service Header
Byte encodingByte,
Byte namespaceIndex,
UInt16 nodeValue,
//Service Body
RequestHeader requestHeader,
UInt32 clientProtocolVersion,
SecurityTokenRequestType requestType,
MessageSecurityMode securityMode,
ByteString clientNonce,
UInt32 requestedLifetime
}
type record OpenSecureChannelResponse {
//Message header
UInt24 messageType,
Byte chunkType,
UInt32 messageSize,
//Message Body
UInt32 securityChannelId,
ListOfByte securePolicyUri,
ListOfByte senderCertificate,
ListOfByte receiverCertificateThumbprint,
SequenceHeader sequenceHeader,
//Service Header
Byte encodingByte,
Byte namespaceIndex,
UInt16 nodeValue,
//Service Body
ResponseHeader responseHeader,
UInt32 serverProtocolVersion,
ChannelSecurityToken securityToken,
ByteString serverNonce
}
type record CloseSecureChannelRequest {
//Message header
UInt24 messageType,
Byte chunkType,
UInt32 messageSize,
//Message Body
UInt32 securityChannelId,
UInt32 securityTokenId,
//Service Header
Byte encodingByte,
Byte namespaceIndex,
UInt16 nodeValue,
//Service Body
RequestHeader requestHeader
}
type record CloseSecureChannelResponse {
//Message header
UInt24 messageType,
Byte chunkType,
UInt32 messageSize,
//Message Body
UInt32 securityChannelId,
UInt32 securityTokenId,
//Service Header
Byte encodingByte,
Byte namespaceIndex,
UInt16 nodeValue,
//Service Body
ResponseHeader responseHeader
}
/////////////////////////////////////////////////////////////
// //
// Session Service Sets //
// //
/////////////////////////////////////////////////////////////
type record CreateSessionRequest {
//Message header
UInt24 messageType,
Byte chunkType,
UInt32 messageSize,
//Message Body
UInt32 securityChannelId,
UInt32 securityTokenId,
SequenceHeader sequenceHeader,
//Service Header
Byte encodingByte,
Byte namespaceIndex,
UInt16 nodeValue,
//Service Body
RequestHeader requestHeader,
ApplicationDescription clientDescription,
String serverUri,
String endpointUrl,
String sessionName,
ByteString clientNonce,
ByteString clientCertificate,
Duration requestedSessionTimeout,
UInt32 maxResponseMessageSize
}
type record CreateSessionResponse {
//Message header
UInt24 messageType,
Byte chunkType,
UInt32 messageSize,
//Message Body
UInt32 securityChannelId,
UInt32 securityTokenId,
SequenceHeader sequenceHeader,
//Service Header
Byte encodingByte,
Byte namespaceIndex,
UInt16 nodeValue,
//Service Body
ResponseHeader responseHeader,
NodeId sessionId,
SessionAuthenticationToken authenticationToken,
Duration revisedSessionTimeout,
ByteString serverNonce,
ByteString serverCertificate,
ListOfEndpointDescription serverEndpoints,
ListOfSignedSoftwareCertificate serverSoftwareCertificates,
SignatureData serverSignature,
UInt32 maxRequestMessageSize
}
type record ActivateSessionRequest {
//Message header
UInt24 messageType,
Byte chunkType,
UInt32 messageSize,
//Message Body
UInt32 securityChannelId,
UInt32 securityTokenId,
SequenceHeader sequenceHeader,
//Service Header
Byte encodingByte,
Byte namespaceIndex,
UInt16 nodeValue,
//Service Body
RequestHeader requestHeader,
SignatureData clientSignature,
ListOfSignedSoftwareCertificate clientSoftwareCertificates,
ListOfLocaleId localeIds,
ExtensibleParameter userIdentityToken,
SignatureData userTokenSignature
}
type record ActivateSessionResponse {
//Message header
UInt24 messageType,
Byte chunkType,
UInt32 messageSize,
//Message Body
UInt32 securityChannelId,
UInt32 securityTokenId,
SequenceHeader sequenceHeader,
//Service Header
Byte encodingByte,
Byte namespaceIndex,
UInt16 nodeValue,
//Service Body
ResponseHeader responseHeader,
ByteString serverNonce,
ListOfStatusCode results,
ListOfDiagnosticInfo diagnosticInfos
}
type record CloseSessionRequest {
//Message header
UInt24 messageType,
Byte chunkType,
UInt32 messageSize,
//Message Body
UInt32 securityChannelId,
UInt32 securityTokenId,
SequenceHeader sequenceHeader,
//Service Header
Byte encodingByte,
Byte namespaceIndex,
UInt16 nodeValue,
//Service Body
RequestHeader requestHeader,
Boolean deleteSubscriptions
}
type record CloseSessionResponse {
//Message header
UInt24 messageType,
Byte chunkType,
UInt32 messageSize,
//Message Body
UInt32 securityChannelId,
UInt32 securityTokenId,
SequenceHeader sequenceHeader,
//Service Header
Byte encodingByte,
Byte namespaceIndex,
UInt16 nodeValue,
//Service Body
ResponseHeader responseHeader
}
type record CancelRequestRequest {
//Message header
UInt24 messageType,
Byte chunkType,
UInt32 messageSize,
//Message Body
UInt32 securityChannelId,
UInt32 securityTokenId,
SequenceHeader sequenceHeader,
//Service Header
Byte encodingByte,
Byte namespaceIndex,
UInt16 nodeValue,
//Service Body
RequestHeader requestHeader,
IntegerId requestHandle
}
type record CancelRequestResponse {
//Message header
UInt24 messageType,
Byte chunkType,
UInt32 messageSize,
//Message Body
UInt32 securityChannelId,
UInt32 securityTokenId,
SequenceHeader sequenceHeader,
//Service Header
Byte encodingByte,
Byte namespaceIndex,
UInt16 nodeValue,
//Service Body
ResponseHeader responseHeader,
UInt32 cancelCount
}
/////////////////////////////////////////////////////////////
// //
// NodeManagement Service Sets //
// //
/////////////////////////////////////////////////////////////
type record AddNodesRequest {
//Message header
UInt24 messageType,
Byte chunkType,
UInt32 messageSize,
//Message Body
UInt32 securityChannelId,
UInt32 securityTokenId,
SequenceHeader sequenceHeader,
//Service Header
Byte encodingByte,
Byte namespaceIndex,
UInt16 nodeValue,
//Service Body
RequestHeader requestHeader,
ListOfAddNodesItem nodesToAdd
}
type record AddNodesResponse {
//Message header
UInt24 messageType,
Byte chunkType,
UInt32 messageSize,
//Message Body
UInt32 securityChannelId,
UInt32 securityTokenId,
SequenceHeader sequenceHeader,
//Service Header
Byte encodingByte,
Byte namespaceIndex,
UInt16 nodeValue,
//Service Body
ResponseHeader responseHeader,
ListOfAddNodesResult results
}
type record AddReferencesRequest {
//Message header
UInt24 messageType,
Byte chunkType,
UInt32 messageSize,
//Message Body
UInt32 securityChannelId,
UInt32 securityTokenId,
SequenceHeader sequenceHeader,
//Service Header
Byte encodingByte,
Byte namespaceIndex,
UInt16 nodeValue,
//Service Body
RequestHeader requestHeader,
ListOfAddReferencesItem referencesToAdd
}
type record AddReferencesResponse {
//Message header
UInt24 messageType,
Byte chunkType,
UInt32 messageSize,
//Message Body
UInt32 securityChannelId,
UInt32 securityTokenId,
SequenceHeader sequenceHeader,
//Service Header
Byte encodingByte,
Byte namespaceIndex,
UInt16 nodeValue,
//Service Body
ResponseHeader responseHeader,
ListOfStatusCode results,
ListOfDiagnosticInfo diagnosticInfos
}
type record DeleteNodesRequest {
//Message header
UInt24 messageType,
Byte chunkType,
UInt32 messageSize,
//Message Body
UInt32 securityChannelId,
UInt32 securityTokenId,
SequenceHeader sequenceHeader,
//Service Header
Byte encodingByte,
Byte namespaceIndex,
UInt16 nodeValue,
//Service Body
RequestHeader requestHeader,
ListOfDeleteNodesItem nodesToDelete
}
type record DeleteNodesResponse {
//Message header
UInt24 messageType,
Byte chunkType,
UInt32 messageSize,
//Message Body
UInt32 securityChannelId,
UInt32 securityTokenId,
SequenceHeader sequenceHeader,
//Service Header
Byte encodingByte,
Byte namespaceIndex,
UInt16 nodeValue,
//Service Body
ResponseHeader responseHeader,
ListOfStatusCode results,
ListOfDiagnosticInfo diagnosticInfos
}
type record DeleteReferencesRequest {
//Message header
UInt24 messageType,
Byte chunkType,
UInt32 messageSize,
//Message Body
UInt32 securityChannelId,
UInt32 securityTokenId,
SequenceHeader sequenceHeader,
//Service Header
Byte encodingByte,
Byte namespaceIndex,
UInt16 nodeValue,
//Service Body
RequestHeader requestHeader,
ListOfDeleteReferencesItem referencesToDelete
}
type record DeleteReferencesResponse {
//Message header
UInt24 messageType,
Byte chunkType,
UInt32 messageSize,
//Message Body
UInt32 securityChannelId,
UInt32 securityTokenId,
SequenceHeader sequenceHeader,
//Service Header
Byte encodingByte,
Byte namespaceIndex,
UInt16 nodeValue,
//Service Body
ResponseHeader responseHeader,
ListOfStatusCode results,
ListOfDiagnosticInfo diagnosticInfos
}
/////////////////////////////////////////////////////////////
// //
// Browse Service Sets //
// //
/////////////////////////////////////////////////////////////
type record BrowseRequest {
//Message header
UInt24 messageType,
Byte chunkType,
UInt32 messageSize,
//Message Body
UInt32 securityChannelId,
UInt32 securityTokenId,
SequenceHeader sequenceHeader,
//Service Header
Byte encodingByte,
Byte namespaceIndex,
UInt16 nodeValue,
//Service Body
RequestHeader requestHeader,
ViewDescription view,
Counter requestedMaxReferencesPerNode,
ListOfBrowseDescription nodesToBrowse
}
type record BrowseResponse {
ResponseHeader responseHeader,
ListOfBrowseResult results,
ListOfDiagnosticInfo diagnosticInfos
}
type record BrowseNextRequest {
//Message header
UInt24 messageType,
Byte chunkType,
UInt32 messageSize,
//Message Body
UInt32 securityChannelId,
UInt32 securityTokenId,
SequenceHeader sequenceHeader,
//Service Header
Byte encodingByte,
Byte namespaceIndex,
UInt16 nodeValue,
//Service Body
RequestHeader requestHeader,
Boolean releaseContinuationPoints,
ListOfContinuationPoint continuationPoints
}
type record BrowseNextResponse {
//Message header
UInt24 messageType,
Byte chunkType,
UInt32 messageSize,
//Message Body
UInt32 securityChannelId,
UInt32 securityTokenId,
SequenceHeader sequenceHeader,
//Service Header
Byte encodingByte,
Byte namespaceIndex,
UInt16 nodeValue,
//Service Body
ResponseHeader responseHeader,
ListOfBrowseResult results,
ListOfDiagnosticInfo diagnosticInfos
}
type record TranslateBrowsePathsToNodeIdsRequest {
//Message header
UInt24 messageType,
Byte chunkType,
UInt32 messageSize,
//Message Body
UInt32 securityChannelId,
UInt32 securityTokenId,
SequenceHeader sequenceHeader,
//Service Header
Byte encodingByte,
Byte namespaceIndex,
UInt16 nodeValue,
//Service Body
RequestHeader requestHeader,
ListOfBrowsePath browsePaths
}
type record TranslateBrowsePathsToNodeIdsResponse {
//Message header
UInt24 messageType,
Byte chunkType,
UInt32 messageSize,
//Message Body
UInt32 securityChannelId,
UInt32 securityTokenId,
SequenceHeader sequenceHeader,
//Service Header
Byte encodingByte,
Byte namespaceIndex,
UInt16 nodeValue,
//Service Body
ResponseHeader responseHeader,
ListOfBrowsePathResult results,
ListOfDiagnosticInfo diagnosticInfos
}
type record RegisterNodesRequest {
//Message header
UInt24 messageType,
Byte chunkType,
UInt32 messageSize,
//Message Body
UInt32 securityChannelId,
UInt32 securityTokenId,
SequenceHeader sequenceHeader,
//Service Header
Byte encodingByte,
Byte namespaceIndex,
UInt16 nodeValue,
//Service Body
RequestHeader requestHeader,
ListOfNodeId nodesToRegister
}
type record RegisterNodesResponse {
//Message header
UInt24 messageType,
Byte chunkType,
UInt32 messageSize,
//Message Body
UInt32 securityChannelId,
UInt32 securityTokenId,
SequenceHeader sequenceHeader,
//Service Header
Byte encodingByte,
Byte namespaceIndex,
UInt16 nodeValue,
//Service Body
ResponseHeader responseHeader,
ListOfNodeId registeredNodeIds
}
type record UnregisterNodesRequest {
//Message header
UInt24 messageType,
Byte chunkType,
UInt32 messageSize,
//Message Body
UInt32 securityChannelId,
UInt32 securityTokenId,
SequenceHeader sequenceHeader,
//Service Header
Byte encodingByte,
Byte namespaceIndex,
UInt16 nodeValue,
//Service Body
RequestHeader requestHeader,
ListOfNodeId nodesToUnregister
}
type record UnregisterNodesResponse {
//Message header
UInt24 messageType,
Byte chunkType,
UInt32 messageSize,
//Message Body
UInt32 securityChannelId,
UInt32 securityTokenId,
SequenceHeader sequenceHeader,
//Service Header
Byte encodingByte,
Byte namespaceIndex,
UInt16 nodeValue,
//Service Body
ResponseHeader responseHeader
}
/////////////////////////////////////////////////////////////
// //
// Query Service Set //
// //
/////////////////////////////////////////////////////////////
type record QueryFirstRequest {
//Message header
UInt24 messageType,
Byte chunkType,
UInt32 messageSize,
//Message Body
UInt32 securityChannelId,
UInt32 securityTokenId,
SequenceHeader sequenceHeader,
//Service Header
Byte encodingByte,
Byte namespaceIndex,
UInt16 nodeValue,
//Service Body
RequestHeader requestHeader,
ListOfNodeTypeDescription nodeTypes,
ContentFilter filter,
Counter maxDataSetsToReturn,
Counter maxReferencesToReturn
}
type record QueryFirstResponse {
//Message header
UInt24 messageType,
Byte chunkType,
UInt32 messageSize,
//Message Body
UInt32 securityChannelId,
UInt32 securityTokenId,
SequenceHeader sequenceHeader,
//Service Header
Byte encodingByte,
Byte namespaceIndex,
UInt16 nodeValue,
//Service Body
ResponseHeader responseHeader,
ListOfQueryDataSet queryDataSets,
ContinuationPoint continuationPoint,
ListOfParsingResult parsingResults,
ListOfDiagnosticInfo diagnosticInfos,
ContentFilterResult filterResult
}
type record QueryNextRequest {
//Message header
UInt24 messageType,
Byte chunkType,
UInt32 messageSize,
//Message Body
UInt32 securityChannelId,
UInt32 securityTokenId,
SequenceHeader sequenceHeader,
//Service Header
Byte encodingByte,
Byte namespaceIndex,
UInt16 nodeValue,
//Service Body
RequestHeader requestHeader,
Boolean releaseContinuationPoint,
ContinuationPoint continuationPoint
}
type record QueryNextResponse {
//Message header
UInt24 messageType,
Byte chunkType,
UInt32 messageSize,
//Message Body
UInt32 securityChannelId,
UInt32 securityTokenId,
SequenceHeader sequenceHeader,
//Service Header
Byte encodingByte,
Byte namespaceIndex,
UInt16 nodeValue,
//Service Body
ResponseHeader responseHeader,
ListOfQueryDataSet queryDataSets,
ContinuationPoint revisedContinuationPoint
}
/////////////////////////////////////////////////////////////
// //
// Attribute Service Set //
// //
/////////////////////////////////////////////////////////////
type record ReadRequest {
//Message header
UInt24 messageType,
Byte chunkType,
UInt32 messageSize,
//Message Body
UInt32 securityChannelId,
UInt32 securityTokenId,
SequenceHeader sequenceHeader,
//Service Header
Byte encodingByte,
Byte namespaceIndex,
UInt16 nodeValue,
//Service Body
RequestHeader requestHeader,
Duration maxAge,
TimestampsToReturn timestampsToReturn,
ListOfReadValueId nodesToRead
}
type record ReadResponse {
//Message header
UInt24 messageType,
Byte chunkType,
UInt32 messageSize,
//Message Body
UInt32 securityChannelId,
UInt32 securityTokenId,
SequenceHeader sequenceHeader,
//Service Header
Byte encodingByte,
Byte namespaceIndex,
UInt16 nodeValue,
//Service Body
ResponseHeader responseHeader,
ListOfDataValue results,
ListOfDiagnosticInfo diagnosticInfos
}
type record HistoryReadRequest {
//Message header
UInt24 messageType,
Byte chunkType,
UInt32 messageSize,
//Message Body
UInt32 securityChannelId,
UInt32 securityTokenId,
SequenceHeader sequenceHeader,
//Service Header
Byte encodingByte,
Byte namespaceIndex,
UInt16 nodeValue,
//Service Body
RequestHeader requestHeader,
ExtensibleParameter historyReadDetails,
TimestampsToReturn timestampsToReturn,
Boolean releaseContinuationPoints,
ListOfHistoryReadValueId nodesToRead
}
type record HistoryReadResponse {
//Message header
UInt24 messageType,
Byte chunkType,
UInt32 messageSize,
//Message Body
UInt32 securityChannelId,
UInt32 securityTokenId,
SequenceHeader sequenceHeader,
//Service Header
Byte encodingByte,
Byte namespaceIndex,
UInt16 nodeValue,
//Service Body
ResponseHeader responseHeader,
ListOfHistoryReadResult results,
ListOfDiagnosticInfo diagnosticInfos
}
type record WriteRequest {
//Message header
UInt24 messageType,
Byte chunkType,
UInt32 messageSize,
//Message Body
UInt32 securityChannelId,
UInt32 securityTokenId,
SequenceHeader sequenceHeader,
//Service Header
Byte encodingByte,
Byte namespaceIndex,
UInt16 nodeValue,
//Service Body
RequestHeader requestHeader,
ListOfWriteValue nodesToWrite
}
type record WriteResponse {
//Message header
UInt24 messageType,
Byte chunkType,
UInt32 messageSize,
//Message Body
UInt32 securityChannelId,
UInt32 securityTokenId,
SequenceHeader sequenceHeader,
//Service Header
Byte encodingByte,
Byte namespaceIndex,
UInt16 nodeValue,
//Service Body
ResponseHeader responseHeader,
ListOfDiagnosticInfo diagnosticInfos
}
type record HistoryUpdateRequest {
//Message header
UInt24 messageType,
Byte chunkType,
UInt32 messageSize,
//Message Body
UInt32 securityChannelId,
UInt32 securityTokenId,
SequenceHeader sequenceHeader,
//Service Header
Byte encodingByte,
Byte namespaceIndex,
UInt16 nodeValue,
//Service Body
RequestHeader requestHeader,
ListOfExtensibleParameter historyUpdateDetails
}
type record HistoryUpdateResponse {
//Message header
UInt24 messageType,
Byte chunkType,
UInt32 messageSize,
//Message Body
UInt32 securityChannelId,
UInt32 securityTokenId,
SequenceHeader sequenceHeader,
//Service Header
Byte encodingByte,
Byte namespaceIndex,
UInt16 nodeValue,
//Service Body
ResponseHeader responseHeader,
ListOfHistoryUpdateResult results,
ListOfDiagnosticInfo diagnosticInfos
}
/////////////////////////////////////////////////////////////
// //
// Method Service Set //
// //
/////////////////////////////////////////////////////////////
type record CallRequest {
//Message header
UInt24 messageType,
Byte chunkType,
UInt32 messageSize,
//Message Body
UInt32 securityChannelId,
UInt32 securityTokenId,
SequenceHeader sequenceHeader,
//Service Header
Byte encodingByte,
Byte namespaceIndex,
UInt16 nodeValue,
//Service Body
RequestHeader requestHeader,
ListOfCallMethodRequest methodsToCall
}
type record CallResponse {
//Message header
UInt24 messageType,
Byte chunkType,
UInt32 messageSize,
//Message Body
UInt32 securityChannelId,
UInt32 securityTokenId,
SequenceHeader sequenceHeader,
//Service Header
Byte encodingByte,
Byte namespaceIndex,
UInt16 nodeValue,
//Service Body
ResponseHeader responseHeader,
ListOfCallMethodResult results,
ListOfDiagnosticInfo diagnosticInfos
}
/////////////////////////////////////////////////////////////
// //
// MonitoredItem Service Set //
// //
/////////////////////////////////////////////////////////////
type record CreateMonitoredItemsRequest {
//Message header
UInt24 messageType,
Byte chunkType,
UInt32 messageSize,
//Message Body
UInt32 securityChannelId,
UInt32 securityTokenId,
SequenceHeader sequenceHeader,
//Service Header
Byte encodingByte,
Byte namespaceIndex,
UInt16 nodeValue,
//Service Body
RequestHeader requestHeader,
IntegerId subscriptionId,
TimestampsToReturn timestampsToReturn,
ListOfMonitoredItemCreateRequest itemsToCreate
}
type record CreateMonitoredItemsResponse {
//Message header
UInt24 messageType,
Byte chunkType,
UInt32 messageSize,
//Message Body
UInt32 securityChannelId,
UInt32 securityTokenId,
SequenceHeader sequenceHeader,
//Service Header
Byte encodingByte,
Byte namespaceIndex,
UInt16 nodeValue,
//Service Body
ResponseHeader responseHeader,
ListOfMonitoredItemCreateResult results,
ListOfDiagnosticInfo diagnosticInfos
}
type record ModifyMonitoredItemsRequest {
//Message header
UInt24 messageType,
Byte chunkType,
UInt32 messageSize,
//Message Body
UInt32 securityChannelId,
UInt32 securityTokenId,
SequenceHeader sequenceHeader,
//Service Header
Byte encodingByte,
Byte namespaceIndex,
UInt16 nodeValue,
//Service Body
RequestHeader requestHeader,
IntegerId subscriptionId,
TimestampsToReturn timestampsToReturn,
ListOfMonitoredItemModifyRequest itemsToModify
}
type record ModifyMonitoredItemsResponse {
//Message header
UInt24 messageType,
Byte chunkType,
UInt32 messageSize,
//Message Body
UInt32 securityChannelId,
UInt32 securityTokenId,
SequenceHeader sequenceHeader,
//Service Header
Byte encodingByte,
Byte namespaceIndex,
UInt16 nodeValue,
//Service Body
ResponseHeader responseHeader,
ListOfMonitoredItemModifyResult results,
ListOfDiagnosticInfo diagnosticInfos
}
type record SetMonitoringModeRequest {
//Message header
UInt24 messageType,
Byte chunkType,
UInt32 messageSize,
//Message Body
UInt32 securityChannelId,
UInt32 securityTokenId,
SequenceHeader sequenceHeader,
//Service Header
Byte encodingByte,
Byte namespaceIndex,
UInt16 nodeValue,
//Service Body
RequestHeader requestHeader,
IntegerId subscriptionId,
MonitoringMode monitoringMode,
ListOfIntegerId monitoredItemIds
}
type record SetMonitoringModeResponse {
//Message header
UInt24 messageType,
Byte chunkType,
UInt32 messageSize,
//Message Body
UInt32 securityChannelId,
UInt32 securityTokenId,
SequenceHeader sequenceHeader,
//Service Header
Byte encodingByte,
Byte namespaceIndex,
UInt16 nodeValue,
//Service Body
ResponseHeader responseHeader,
ListOfStatusCode results,
ListOfDiagnosticInfo diagnosticInfos
}
type record SetTriggeringRequest {
//Message header
UInt24 messageType,
Byte chunkType,
UInt32 messageSize,
//Message Body
UInt32 securityChannelId,
UInt32 securityTokenId,
SequenceHeader sequenceHeader,
//Service Header
Byte encodingByte,
Byte namespaceIndex,
UInt16 nodeValue,
//Service Body
RequestHeader requestHeader,
IntegerId subscriptionId,
IntegerId triggeringItemId,
ListOfIntegerId linksToAdd,
IntegerId linksToRemove
}
type record SetTriggeringResponse {
//Message header
UInt24 messageType,
Byte chunkType,
UInt32 messageSize,
//Message Body
UInt32 securityChannelId,
UInt32 securityTokenId,
SequenceHeader sequenceHeader,
//Service Header
Byte encodingByte,
Byte namespaceIndex,
UInt16 nodeValue,
//Service Body
ResponseHeader responseHeader,
ListOfStatusCode addResults,
ListOfDiagnosticInfo addDiagnosticInfos,
ListOfStatusCode removeResults,
ListOfDiagnosticInfo removeDiagnosticInfos
}
type record DeleteMonitoredItemsRequest {
//Message header
UInt24 messageType,
Byte chunkType,
UInt32 messageSize,
//Message Body
UInt32 securityChannelId,
UInt32 securityTokenId,
SequenceHeader sequenceHeader,
//Service Header
Byte encodingByte,
Byte namespaceIndex,
UInt16 nodeValue,
//Service Body
RequestHeader requestHeader,
IntegerId subscriptionId,
ListOfIntegerId monitoredItemIds
}
type record DeleteMonitoredItemsResponse {
//Message header
UInt24 messageType,
Byte chunkType,
UInt32 messageSize,
//Message Body
UInt32 securityChannelId,
UInt32 securityTokenId,
SequenceHeader sequenceHeader,
//Service Header
Byte encodingByte,
Byte namespaceIndex,
UInt16 nodeValue,
//Service Body
ResponseHeader responseHeader,
ListOfStatusCode results,
ListOfDiagnosticInfo diagnosticInfos
}
/////////////////////////////////////////////////////////////
// //
// Subscription Service Set //
// //
/////////////////////////////////////////////////////////////
type record CreateSubscriptionRequest {
//Message header
UInt24 messageType,
Byte chunkType,
UInt32 messageSize,
//Message Body
UInt32 securityChannelId,
UInt32 securityTokenId,
SequenceHeader sequenceHeader,
//Service Header
Byte encodingByte,
Byte namespaceIndex,
UInt16 nodeValue,
//Service Body
RequestHeader requestHeader,
Duration requestedPublishingInterval,
Counter requestedLifetimeCount,
Counter requestedMaxKeepAliveCount,
Counter maxNotificationsPerPublish,
Boolean publishingEnabled,
Byte priorityInt32
}
type record CreateSubscriptionResponse {
//Message header
UInt24 messageType,
Byte chunkType,
UInt32 messageSize,
//Message Body
UInt32 securityChannelId,
UInt32 securityTokenId,
SequenceHeader sequenceHeader,
//Service Header
Byte encodingByte,
Byte namespaceIndex,
UInt16 nodeValue,
//Service Body
ResponseHeader responseHeader,
IntegerId subscriptionId,
Duration revisedPublishingInterval,
Counter revisedLifetimeCount,
Counter revisedMaxKeepAliveCount
}
type record ModifySubscriptionRequest {
//Message header
UInt24 messageType,
Byte chunkType,
UInt32 messageSize,
//Message Body
UInt32 securityChannelId,
UInt32 securityTokenId,
SequenceHeader sequenceHeader,
//Service Header
Byte encodingByte,
Byte namespaceIndex,
UInt16 nodeValue,
//Service Body
RequestHeader requestHeader,
IntegerId subscriptionId,
Duration requestedPublishingInterval,
Counter requestedLifetimeCount,
Counter requestedMaxKeepAliveCount,
Counter maxNotificationsPerPublish,
Byte priority
}
type record ModifySubscriptionResponse {
//Message header
UInt24 messageType,
Byte chunkType,
UInt32 messageSize,
//Message Body
UInt32 securityChannelId,
UInt32 securityTokenId,
SequenceHeader sequenceHeader,
//Service Header
Byte encodingByte,
Byte namespaceIndex,
UInt16 nodeValue,
//Service Body
ResponseHeader responseHeader,
Duration revisedPublishingInterval,
Counter revisedLifetimeCount,
Counter revisedMaxKeepAliveCount
}
type record SetPublishingModeRequest {
//Message header
UInt24 messageType,
Byte chunkType,
UInt32 messageSize,
//Message Body
UInt32 securityChannelId,
UInt32 securityTokenId,
SequenceHeader sequenceHeader,
//Service Header
Byte encodingByte,
Byte namespaceIndex,
UInt16 nodeValue,
//Service Body
RequestHeader requestHeader,
Boolean publishingEnabled,
ListOfIntegerId subscriptionIds
}
type record SetPublishingModeResponse {
//Message header
UInt24 messageType,
Byte chunkType,
UInt32 messageSize,
//Message Body
UInt32 securityChannelId,
UInt32 securityTokenId,
SequenceHeader sequenceHeader,
//Service Header
Byte encodingByte,
Byte namespaceIndex,
UInt16 nodeValue,
//Service Body
ResponseHeader responseHeader,
ListOfStatusCode results,
ListOfDiagnosticInfo diagnosticInfos
}
type record PublishRequest {
//Message header
UInt24 messageType,
Byte chunkType,
UInt32 messageSize,
//Message Body
UInt32 securityChannelId,
UInt32 securityTokenId,
SequenceHeader sequenceHeader,
//Service Header
Byte encodingByte,
Byte namespaceIndex,
UInt16 nodeValue,
//Service Body
RequestHeader requestHeader,
ListOfSubscriptionAcknowledgement subscriptionAcknowledgements
}
type record PublishResponse {
//Message header
UInt24 messageType,
Byte chunkType,
UInt32 messageSize,
//Message Body
UInt32 securityChannelId,
UInt32 securityTokenId,
SequenceHeader sequenceHeader,
//Service Header
Byte encodingByte<