packages feed

opc-xml-da-client-0.1: protocol/types.domain.yaml

# XML-DA base types

GetStatus:
  product:
    localeId: Maybe Text
    clientRequestHandle: Maybe Text

GetStatusResponse:
  product:
    result: Maybe ReplyBase
    status: Maybe ServerStatus

ReplyBase:
  product:
    rcvTime: UTCTime
    replyTime: UTCTime
    clientRequestHandle: Maybe Text
    revisedLocaleId: Maybe Text
    serverState: ServerState

ServerState:
  enum:
    - running
    - failed
    - noConfig
    - suspended
    - test
    - commFault

ServerStatus:
  product:
    statusInfo: Maybe Text
    vendorInfo: Maybe Text
    supportedLocaleIds: Vector Text
    supportedInterfaceVersions: Vector Text
    startTime: UTCTime
    productVersion: Maybe Text

Read:
  product:
    options: Maybe RequestOptions
    itemList: Maybe ReadRequestItemList

RequestOptions:
  product:
    returnErrorText: Bool
    returnDiagnosticInfo: Bool
    returnItemTime: Bool
    returnItemPath: Bool
    returnItemName: Bool
    requestDeadline: Maybe UTCTime
    clientRequestHandle: Maybe Text
    localeId: Maybe Text

ReadRequestItemList:
  product:
    items: Vector ReadRequestItem
    itemPath: Maybe Text
    reqType: Maybe QName
    maxAge: Maybe Int32

ReadRequestItem:
  product:
    itemPath: Maybe Text
    reqType: Maybe QName
    itemName: Maybe Text
    clientItemHandle: Maybe Text
    maxAge: Maybe Int32

ReadResponse:
  product:
    readResult: Maybe ReplyBase
    rItemList: Maybe ReplyItemList
    errors: Vector OpcError

ReplyItemList:
  product:
    items: Vector ItemValue
    reserved: Maybe Text

ItemValue:
  product:
    diagnosticInfo: Maybe Text
    value: Maybe Value
    quality: Maybe OpcQuality
    valueTypeQualifier: Maybe QName
    itemPath: Maybe Text
    itemName: Maybe Text
    clientItemHandle: Maybe Text
    timestamp: Maybe UTCTime
    resultId: Maybe QName

OpcQuality:
  product:
    qualityField: QualityBits
    limitField: LimitBits
    vendorField: Word8

QualityBits:
  enum:
    - bad
    - badConfigurationError
    - badNotConnected
    - badDeviceFailure
    - badSensorFailure
    - badLastKnownValue
    - badCommFailure
    - badOutOfService
    - badWaitingForInitialData
    - uncertain
    - uncertainLastUsableValue
    - uncertainSensorNotAccurate
    - uncertainEUExceeded
    - uncertainSubNormal
    - good
    - goodLocalOverride

LimitBits:
  enum:
    - none
    - low
    - high
    - constant

OpcError:
  product:
    text: Maybe Text
    id: QName

Write:
  product:
    options: Maybe RequestOptions
    itemList: Maybe WriteRequestItemList
    returnValuesOnReply: Bool

WriteRequestItemList:
  product:
    items: Vector ItemValue
    itemPath: Maybe Text

WriteResponse:
  product:
    writeResult: Maybe ReplyBase
    rItemList: Maybe ReplyItemList
    errors: Vector OpcError

Subscribe:
  product:
    options: Maybe RequestOptions
    itemList: Maybe SubscribeRequestItemList
    returnValuesOnReply: Bool
    subscriptionPingRate: Maybe Int32

SubscribeRequestItemList:
  product:
    items: Vector SubscribeRequestItem
    itemPath: Maybe Text
    reqType: Maybe QName
    deadband: Maybe Float
    requestedSamplingRate: Maybe Int32
    enableBuffering: Maybe Bool

SubscribeRequestItem:
  product:
    itemPath: Maybe Text
    reqType: Maybe QName
    itemName: Maybe Text
    clientItemHandle: Maybe Text
    deadband: Maybe Float
    requestedSamplingRate: Maybe Int32
    enableBuffering: Maybe Bool

SubscribeReplyItemList:
  product:
    items: Vector SubscribeItemValue
    revisedSamplingRate: Maybe Int32

SubscribeItemValue:
  product:
    # We're avoiding a Maybe here, since the spec says that it has minOccurs set to 0
    # only to satisfy the needs of some codegen tools.
    # See Section 3.5.2 of the spec.
    itemValue: ItemValue
    revisedSamplingRate: Maybe Int

SubscribeResponse:
  product:
    subscribeResult: Maybe ReplyBase
    rItemList: Maybe SubscribeReplyItemList
    errors: Vector OpcError
    serverSubHandle: Maybe Text

SubscriptionPolledRefresh:
  product:
    options: Maybe RequestOptions
    serverSubHandles: Vector Text
    holdTime: Maybe UTCTime
    waitTime: Int32
    returnAllItems: Bool

SubscribePolledRefreshReplyItemList:
  product:
    items: Vector ItemValue
    subscriptionHandle: Maybe Text

SubscriptionPolledRefreshResponse:
  product:
    subscriptionPolledRefreshResult: Maybe ReplyBase
    invalidServerSubHandles: Vector Text
    rItemList: Vector SubscribePolledRefreshReplyItemList
    errors: Vector OpcError
    dataBufferOverflow: Bool

SubscriptionCancel:
  product:
    serverSubHandle: Maybe Text
    clientRequestHandle: Maybe Text

SubscriptionCancelResponse:
  product:
    clientRequestHandle: Maybe Text

Browse:
  product:
    propertyNames: Vector QName
    localeId: Maybe Text
    clientRequestHandle: Maybe Text
    itemPath: Maybe Text
    itemName: Maybe Text
    continuationPoint: Maybe Text
    maxElementsReturned: Int32
    browseFilter: BrowseFilter
    elementNameFilter: Maybe Text
    vendorFilter: Maybe Text
    returnAllProperties: Bool
    returnAllPropertyValues: Bool
    returnErrorText: Bool

BrowseFilter:
  enum:
    - all
    - branch
    - item

BrowseElement:
  product:
    properties: Vector ItemProperty
    name: Maybe Text
    itemPath: Maybe Text
    itemName: Maybe Text
    isItem: Bool
    hasChildren: Bool

ItemProperty:
  product:
    value: Maybe Value
    name: QName
    description: Maybe Text
    itemPath: Maybe Text
    itemName: Maybe Text
    resultId: Maybe QName

BrowseResponse:
  product:
    browseResult: Maybe ReplyBase
    elements: Vector BrowseElement
    errors: Vector OpcError
    continuationPoint: Maybe Text
    moreElements: Bool

GetProperties:
  product:
    itemIds: Vector ItemIdentifier
    propertyNames: Vector QName
    localeId: Maybe Text
    clientRequestHandle: Maybe Text
    itemPath: Maybe Text
    returnAllProperties: Bool
    returnPropertyValues: Bool
    returnErrorText: Bool

ItemIdentifier:
  product:
    itemPath: Maybe Text
    itemName: Maybe Text

PropertyReplyList:
  product:
    properties: Vector ItemProperty
    itemPath: Maybe Text
    itemName: Maybe Text
    resultId: Maybe QName

GetPropertiesResponse:
  product:
    getPropertiesResult: Maybe ReplyBase
    propertyLists: Vector PropertyReplyList
    errors: Vector OpcError

# Standard OPC result code as per the definition in the 3.1.9 section of the spec.
ResultCode:
  enum:
    ## Success
    # The value written was accepted but the output was clamped.
    # S_CLAMP
    - clamp
    # Not every detected change has been returned since the server's buffer reached its limit and had to purge out the oldest data.
    # S_DATAQUEUEOVERFLOW
    - dataQueueOverflow
    # The server does not support the requested rate but will use the closest available rate.
    # S_UNSUPPORTEDRATE
    - unsupportedRate
    ## Failure
    # The server denies access (read and/or write) to the specified item. This error is typically caused by Web Service security (e.g. globally disabled write capabilities).
    # E_ACCESS_DENIED
    - accessDenied
    # The server is currenly processing another polled refresh for one or more of the subscriptions.
    # E_BUSY
    - busy
    # Unspecified error.
    # E_FAIL
    - fail
    # The continuation point is not valid.
    # E_INVALIDCONTINUATIONPOINT
    - invalidContinuationPoint
    # The filter string is not valid.
    # E_INVALIDFILTER
    - invalidFilter
    # The hold time is too long (determined by server).
    # E_INVALIDHOLDTIME
    - invalidHoldTime
    # The item name does not conform the server’s syntax.
    # E_INVALIDITEMNAME
    - invalidItemName
    # The item path does not conform the server’s syntax.
    # E_INVALIDITEMPATH
    - invalidItemPath
    # The property id is not valid for the item.
    # E_INVALIDPID
    - invalidPid
    # An invalid set of subscription handles was passed to the request.
    # E_NOSUBSCRIPTION
    - noSubscription
    # The server does not support writing to the quality and/or timestamp.
    # E_NOTSUPPORTED
    - notSupported
    # Ran out of memory.
    # E_OUTOFMEMORY
    - outOfMemory
    # The value was out of range.
    # E_RANGE
    - range
    # The value is read only and may not be written to.
    # E_READONLY
    - readOnly
    # The operation could not complete due to an abnormal server state.
    # E_SERVERSTATE
    - serverState
    # The operation took too long to complete (determined by server).
    # E_TIMEDOUT
    - timedOut
    # The item name is no longer available in the server address space.
    # E_UNKNOWNITEMNAME
    - unknownItemName
    # The item path is no longer available in the server address space.
    # E_UNKNOWNITEMPATH
    - unknownItemPath
    # The value is write-only and may not be read from or returned as part of a write response.
    # E_WRITEONLY
    - writeOnly

QName:
  sum:
    namespaced:
      - Text
      - Text
    unnamespaced: Text

Value:
  sum:
    string: Text
    boolean: Bool
    float: Float
    double: Double
    decimal: Scientific
    long: Int64
    int: Int32
    short: Int16
    byte: Int8
    unsignedLong: Word64
    unsignedInt: Word32
    unsignedShort: Word16
    unsignedByte: Word8
    base64Binary: ByteString
    dateTime: UTCTime
    time: Time
    date: Date
    duration: Duration
    qName: QName
    arrayOfByte: Uv.Vector Int8
    arrayOfShort: Uv.Vector Int16
    arrayOfUnsignedShort: Uv.Vector Word16
    arrayOfInt: Uv.Vector Int32
    arrayOfUnsignedInt: Uv.Vector Word32
    arrayOfLong: Uv.Vector Int64
    arrayOfUnsignedLong: Uv.Vector Word64
    arrayOfFloat: Uv.Vector Float
    arrayOfDecimal: Vector Scientific
    arrayOfDouble: Uv.Vector Double
    arrayOfBoolean: Uv.Vector Bool
    arrayOfString: Vector Text
    arrayOfDateTime: Vector UTCTime
    arrayOfAnyType: Vector (Maybe Value)
    opcQuality: OpcQuality
    nonStandard:
      product:
        type: QName
        xml: "[Xml.Node]"

SoapFault:
  product:
    code: SoapFaultCode
    reason: Text

SoapFaultCode:
  sum:
    std: StdSoapFaultCode
    custom: QName

# https://www.w3.org/TR/soap12-part1/#faultcodes
StdSoapFaultCode:
  enum:
    # The faulting node found an invalid element information item instead of the expected Envelope element information item. The namespace, local name or both did not match the Envelope element information item required by this recommendation (see 2.8 SOAP Versioning Model and 5.4.7 VersionMismatch Faults)
    - versionMismatch
    # An immediate child element information item of the SOAP Header element information item targeted at the faulting node that was not understood by the faulting node contained a SOAP mustUnderstand attribute information item with a value of "true" (see 5.2.3 SOAP mustUnderstand Attribute and 5.4.8 SOAP mustUnderstand Faults)
    - mustUnderstand
    # A SOAP header block or SOAP body child element information item targeted at the faulting SOAP node is scoped (see 5.1.1 SOAP encodingStyle Attribute) with a data encoding that the faulting node does not support.
    - dataEncodingUnknown
    # The message was incorrectly formed or did not contain the appropriate information in order to succeed. For example, the message could lack the proper authentication or payment information. It is generally an indication that the message is not to be resent without change (see also 5.4 SOAP Fault for a description of the SOAP fault detail sub-element).
    - sender
    # The message could not be processed for reasons attributable to the processing of the message rather than to the contents of the message itself. For example, processing could include communicating with an upstream SOAP node, which did not respond. The message could succeed if resent at a later point in time (see also 5.4 SOAP Fault for a description of the SOAP fault detail sub-element).
    - receiver