ApiBase.xid.xml 3.88 KB
<?xml version="1.0" encoding="UTF-8" ?>

<specification xmlns="https://xid.location.studio/schema/V1.0.0/XtensibleInterfaceDefinition.xsd"
               xmlns:xid="https://xid.location.studio/schema/V1.0.0/XtensibleInterfaceDefinition.xsd"
               xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
               xsi:schemaLocation="https://xid.location.studio/schema/V1.0.0/XtensibleInterfaceDefinition.xsd XtensibleInterfaceDefinition.xsd"
               identity="ApiBase.xid.xml">

  <title>Tensor Microservices API Base Definitions</title>
  <comment>
    This document defines the common types API service interface (input and output base structures) for the Tensor microservices definitions.  
  </comment>
  <import ref="https://xid.location.studio/Tensor/V1.0.0/Common.xid.xml" local="Common.xid.xml" />  

  <namespace name="Tensor">

    <!--
      *******************************
      *InputBase Type Definition
      *******************************
      -->
    <struct name="InputBase" >
      <comment>Base input fields for operations supporting asynchronous transaction information.</comment>
      <elem name="devid" multiplicity="0..1" type="string" ord="64">
        <comment>
          Optional device identifier, that provides a consistent multi-transaction identifier
          for a device or equivalent (e.g. service identifier)  providing the data.  Any errors or issues resulting from processing the data will include this identifier
          in the system logs, providing traceability.  Identifier should be unique.
        </comment>
      </elem>
      <elem name="etid" multiplicity="0..1" type="string" ord="65">
        <comment>
          Optional external transaction identifier for the caller to uniquely identify and track
          the transaction and corresponding results.   These identifiers will appear in the
          service logs for traceability analysis.  The format of the transaction identifier is up to the caller
          and can be anything: e.g. [uuid], [id1.subid0], [numerical], etc.  This data is never interpreted by
          the service.
        </comment>
      </elem>
      <elem name="directive" multiplicity="0..*" type="NameValue" ord="66">
        <comment>
          A set of directives to influence processing.
        </comment>
      </elem>
    </struct>


    <!-- 
      *******************************
      *OutputBase Type Definition 
      *******************************
      -->
    <struct name="OutputBase" >
      <comment>Base output fields common to operations supporting asynchronous returning transaction information.</comment>
      <elem name="devid" multiplicity="0..1" type="string" ord="64">
        <comment>
          Device identifier provided at operation input, provides a consistent identifier
          for a device or equivalent (e.g. service identifier) providing the data.  Any errors or issues resulting from processing the data will include this identifier
          in the service logs, providing traceability.
        </comment>
      </elem>

      <elem name="etid" multiplicity="0..1" type="string" ord="65">
        <comment>
          Optional external transaction identifier for the caller to uniquely identify and track
          the transaction and corresponding results.   These identifiers appear in the
          ILP system logs for traceability analysis.  The format of the transaction identifier is up to the caller
          and can be anything: e.g. [uuid], [id1.subid0], [numerical], etc.  This data is never interpreted by
          the ILP system.
        </comment>

      </elem>

      <elem name="resultcode" type="ResultCode" multiplicity="1" ord="66">
        <comment>Result of the operation.</comment>
      </elem>

      <elem name="errinfo" type="Tensor.string" multiplicity="0..1" ord="67">
        <comment>Error information if result was not success.</comment>
      </elem>

    </struct>

  </namespace>
</specification>