{
"swagger": "2.0",
"info": {
"title": "OpcPublisher",
"description": "",
"contact": {
"url": "https://www.github.com/Azure/Industrial-IoT"
},
"license": {
"name": "MIT LICENSE",
"url": "https://opensource.org/licenses/MIT"
},
"version": "v2"
},
"host": "localhost:9071",
"schemes": [
"https",
"http"
],
"paths": {
"/v2/pki/{store}/certs": {
"get": {
"tags": [
"Certificates"
],
"summary": "ListCertificates",
"description": "Get the certificates in the specified certificate store",
"operationId": "ListCertificates",
"produces": [
"application/json",
"application/x-msgpack"
],
"parameters": [
{
"in": "path",
"name": "store",
"description": "The store to enumerate",
"required": true,
"type": "string"
}
],
"responses": {
"200": {
"description": "The operation was successful.",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/X509CertificateModel"
}
}
},
"400": {
"description": "The passed in information such as store name is invalid",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"404": {
"description": "Nothing could be found.",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"500": {
"description": "An internal error ocurred.",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"patch": {
"tags": [
"Certificates"
],
"summary": "AddCertificate",
"description": "Add a certificate to the specified store. The certificate is provided as a pfx/pkcs12 optionally password protected blob.",
"operationId": "AddCertificate",
"consumes": [
"application/json",
"application/x-msgpack"
],
"produces": [
"application/json",
"application/x-msgpack"
],
"parameters": [
{
"in": "path",
"name": "store",
"description": "The store to add the certificate to",
"required": true,
"type": "string"
},
{
"in": "query",
"name": "password",
"description": "The optional password of the pfx",
"type": "string"
},
{
"in": "body",
"name": "body",
"description": "The pfx encoded certificate.",
"required": true,
"schema": {
"format": "byte",
"type": "string"
}
}
],
"responses": {
"200": {
"description": "The operation was successful."
},
"400": {
"description": "The passed in information such as store name is invalid",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"500": {
"description": "An internal error ocurred.",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
}
},
"/v2/pki/{store}/crls": {
"get": {
"tags": [
"Certificates"
],
"summary": "ListCertificateRevocationLists",
"description": "Get the certificates in the specified certificated store",
"operationId": "ListCertificateRevocationLists",
"produces": [
"application/json",
"application/x-msgpack"
],
"parameters": [
{
"in": "path",
"name": "store",
"description": "The store to enumerate",
"required": true,
"type": "string"
}
],
"responses": {
"200": {
"description": "The operation was successful.",
"schema": {
"type": "array",
"items": {
"format": "byte",
"type": "string"
}
}
},
"400": {
"description": "The passed in information such as store name is invalid",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"404": {
"description": "Nothing could be found.",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"500": {
"description": "An internal error ocurred.",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"patch": {
"tags": [
"Certificates"
],
"summary": "AddCertificateRevocationList",
"description": "Add a certificate revocation list to the specified store. The certificate revocation list is provided as a der encoded blob.",
"operationId": "AddCertificateRevocationList",
"consumes": [
"application/json",
"application/x-msgpack"
],
"produces": [
"application/json",
"application/x-msgpack"
],
"parameters": [
{
"in": "path",
"name": "store",
"description": "The store to add the certificate to",
"required": true,
"type": "string"
},
{
"in": "body",
"name": "body",
"description": "The pfx encoded certificate.",
"required": true,
"schema": {
"format": "byte",
"type": "string"
}
}
],
"responses": {
"200": {
"description": "The operation was successful."
},
"400": {
"description": "The passed in information is invalid",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"500": {
"description": "An internal error ocurred.",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"delete": {
"tags": [
"Certificates"
],
"summary": "RemoveCertificateRevocationList",
"description": "Remove a certificate revocation list from the specified store.",
"operationId": "RemoveCertificateRevocationList",
"produces": [
"application/json",
"application/x-msgpack"
],
"parameters": [
{
"in": "path",
"name": "store",
"description": "The store to add the certificate to",
"required": true,
"type": "string"
}
],
"responses": {
"200": {
"description": "The operation was successful."
},
"400": {
"description": "The passed in information such store name is invalid",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"404": {
"description": "Nothing could be found.",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"500": {
"description": "An internal error ocurred.",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
}
},
"/v2/pki/trusted/certs": {
"post": {
"tags": [
"Certificates"
],
"summary": "AddCertificateChain",
"description": "Add a certificate chain to the specified store. The certificate is provided as a concatenated asn encoded set of certificates with the first the one to add, and the remainder the issuer chain.",
"operationId": "AddCertificateChain",
"consumes": [
"application/json",
"application/x-msgpack"
],
"produces": [
"application/json",
"application/x-msgpack"
],
"parameters": [
{
"in": "body",
"name": "body",
"description": "The certificate chain.",
"required": true,
"schema": {
"format": "byte",
"type": "string"
}
}
],
"responses": {
"200": {
"description": "The operation was successful."
},
"400": {
"description": "The passed in information is invalid",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"500": {
"description": "An internal error ocurred.",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
}
},
"/v2/pki/rejected/certs/{thumbprint}/approve": {
"post": {
"tags": [
"Certificates"
],
"summary": "ApproveRejectedCertificate",
"description": "Move a rejected certificate from the rejected folder to the trusted folder on the publisher.",
"operationId": "ApproveRejectedCertificate",
"produces": [
"application/json",
"application/x-msgpack"
],
"parameters": [
{
"in": "path",
"name": "thumbprint",
"description": "The thumbprint of the certificate to trust.",
"required": true,
"type": "string"
}
],
"responses": {
"200": {
"description": "The operation was successful."
},
"400": {
"description": "The passed in information is invalid",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"500": {
"description": "An internal error ocurred.",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
}
},
"/v2/pki/https/certs": {
"post": {
"tags": [
"Certificates"
],
"summary": "AddTrustedHttpsCertificateAsync",
"description": "Add a certificate chain to the trusted https store. The certificate is provided as a concatenated set of certificates with the first the one to add, and the remainder the issuer chain.",
"operationId": "AddTrustedHttpsCertificate",
"consumes": [
"application/json",
"application/x-msgpack"
],
"produces": [
"application/json",
"application/x-msgpack"
],
"parameters": [
{
"in": "body",
"name": "body",
"description": "The certificate chain.",
"required": true,
"schema": {
"format": "byte",
"type": "string"
}
}
],
"responses": {
"200": {
"description": "The operation was successful."
},
"400": {
"description": "The passed in information is invalid",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"500": {
"description": "An internal error ocurred.",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
}
},
"/v2/pki/{store}/certs/{thumbprint}": {
"delete": {
"tags": [
"Certificates"
],
"summary": "RemoveCertificate",
"description": "Remove a certificate with the provided thumbprint from the specified store.",
"operationId": "RemoveCertificate",
"produces": [
"application/json",
"application/x-msgpack"
],
"parameters": [
{
"in": "path",
"name": "store",
"description": "The store to add the certificate to",
"required": true,
"type": "string"
},
{
"in": "path",
"name": "thumbprint",
"description": "The thumbprint of the certificate to delete.",
"required": true,
"type": "string"
}
],
"responses": {
"200": {
"description": "The operation was successful."
},
"400": {
"description": "The passed in information such store name is invalid",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"404": {
"description": "Nothing could be found.",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"500": {
"description": "An internal error ocurred.",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
}
},
"/v2/pki/{store}": {
"delete": {
"tags": [
"Certificates"
],
"summary": "RemoveAll",
"description": "Remove all certificates and revocation lists from the specified store.",
"operationId": "RemoveAll",
"produces": [
"application/json",
"application/x-msgpack"
],
"parameters": [
{
"in": "path",
"name": "store",
"description": "The store to add the certificate to",
"required": true,
"type": "string"
}
],
"responses": {
"200": {
"description": "The operation was successful."
},
"400": {
"description": "The passed in information such store name is invalid",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"404": {
"description": "Nothing could be found.",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"500": {
"description": "An internal error ocurred.",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
}
},
"/v2/configuration/start": {
"post": {
"tags": [
"Configuration"
],
"summary": "PublishStart",
"description": "Start publishing values from a node on a server. The group field in the Connection Model can be used to specify a writer group identifier that will be used in the configuration entry that is created from it inside OPC Publisher.",
"operationId": "PublishStart",
"consumes": [
"application/json",
"application/x-msgpack"
],
"produces": [
"application/json",
"application/x-msgpack"
],
"parameters": [
{
"in": "body",
"name": "body",
"description": "The server and node to publish.",
"required": true,
"schema": {
"$ref": "#/definitions/PublishStartRequestModelRequestEnvelope"
}
}
],
"responses": {
"200": {
"description": "The operation was successful.",
"schema": {
"$ref": "#/definitions/PublishStartResponseModel"
}
},
"400": {
"description": "The passed in information is invalid",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"500": {
"description": "An unexpected error occurred",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
}
},
"/v2/configuration/stop": {
"post": {
"tags": [
"Configuration"
],
"summary": "PublishStop",
"description": "Stop publishing values from a node on the specified server. The group field that was used in the Connection Model to start publishing must also be specified in this connection model.",
"operationId": "PublishStop",
"consumes": [
"application/json",
"application/x-msgpack"
],
"produces": [
"application/json",
"application/x-msgpack"
],
"parameters": [
{
"in": "body",
"name": "body",
"description": "The node to stop publishing",
"required": true,
"schema": {
"$ref": "#/definitions/PublishStopRequestModelRequestEnvelope"
}
}
],
"responses": {
"200": {
"description": "The operation was successful.",
"schema": {
"$ref": "#/definitions/PublishStopResponseModel"
}
},
"404": {
"description": "The item could not be unpublished",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"408": {
"description": "The operation timed out.",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"500": {
"description": "An unexpected error occurred",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
}
},
"/v2/configuration/bulk": {
"post": {
"tags": [
"Configuration"
],
"summary": "PublishBulk",
"description": "Configure node values to publish and unpublish in bulk. The group field in the Connection Model can be used to specify a writer group identifier that will be used in the configuration entry that is created from it inside OPC Publisher.",
"operationId": "PublishBulk",
"consumes": [
"application/json",
"application/x-msgpack"
],
"produces": [
"application/json",
"application/x-msgpack"
],
"parameters": [
{
"in": "body",
"name": "body",
"description": "The nodes to publish or unpublish.",
"required": true,
"schema": {
"$ref": "#/definitions/PublishBulkRequestModelRequestEnvelope"
}
}
],
"responses": {
"200": {
"description": "The operation was successful.",
"schema": {
"$ref": "#/definitions/PublishBulkResponseModel"
}
},
"404": {
"description": "The item could not be unpublished",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"408": {
"description": "The operation timed out.",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"500": {
"description": "An unexpected error occurred",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
}
},
"/v2/configuration/list": {
"post": {
"tags": [
"Configuration"
],
"summary": "PublishList",
"description": "Get all published nodes for a server endpoint. The group field that was used in the Connection Model to start publishing must also be specified in this connection model.",
"operationId": "PublishList",
"consumes": [
"application/json",
"application/x-msgpack"
],
"produces": [
"application/json",
"application/x-msgpack"
],
"parameters": [
{
"in": "body",
"name": "body",
"description": "",
"required": true,
"schema": {
"$ref": "#/definitions/PublishedItemListRequestModelRequestEnvelope"
}
}
],
"responses": {
"200": {
"description": "The items were found and returned.",
"schema": {
"$ref": "#/definitions/PublishedItemListResponseModel"
}
},
"408": {
"description": "The operation timed out.",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"500": {
"description": "An unexpected error occurred",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
}
},
"/v2/configuration/nodes": {
"post": {
"tags": [
"Configuration"
],
"summary": "[PublishNodes](./directmethods.md#publishnodes_v1)",
"description": "PublishNodes enables a client to add a set of nodes to be published. Further information is provided in the OPC Publisher documentation.",
"operationId": "PublishNodes",
"consumes": [
"application/json",
"application/x-msgpack"
],
"produces": [
"application/json",
"application/x-msgpack"
],
"parameters": [
{
"in": "body",
"name": "body",
"description": "The request contains the nodes to publish.",
"required": true,
"schema": {
"$ref": "#/definitions/PublishedNodesEntryModel"
}
}
],
"responses": {
"200": {
"description": "The operation was successful.",
"schema": {
"$ref": "#/definitions/PublishedNodesResponseModel"
}
},
"408": {
"description": "The operation timed out.",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"500": {
"description": "An unexpected error occurred",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
}
},
"/v2/configuration/nodes/unpublish": {
"post": {
"tags": [
"Configuration"
],
"summary": "[UnpublishNodes](./directmethods.md#unpublishnodes_v1)",
"description": "UnpublishNodes method enables a client to remove nodes from a previously configured DataSetWriter. Further information is provided in the OPC Publisher documentation.",
"operationId": "UnpublishNodes",
"consumes": [
"application/json",
"application/x-msgpack"
],
"produces": [
"application/json",
"application/x-msgpack"
],
"parameters": [
{
"in": "body",
"name": "body",
"description": "The request payload specifying the nodes to unpublish.",
"required": true,
"schema": {
"$ref": "#/definitions/PublishedNodesEntryModel"
}
}
],
"responses": {
"200": {
"description": "The operation was successful.",
"schema": {
"$ref": "#/definitions/PublishedNodesResponseModel"
}
},
"404": {
"description": "The nodes could not be unpublished",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"408": {
"description": "The operation timed out.",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"500": {
"description": "An unexpected error occurred",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
}
},
"/v2/configuration/nodes/unpublish/all": {
"post": {
"tags": [
"Configuration"
],
"summary": "[UnpublishAllNodes](./directmethods.md#unpublishallnodes_v1)",
"description": "Unpublish all specified nodes or all nodes in the publisher configuration. Further information is provided in the OPC Publisher documentation.",
"operationId": "UnpublishAllNodes",
"consumes": [
"application/json",
"application/x-msgpack"
],
"produces": [
"application/json",
"application/x-msgpack"
],
"parameters": [
{
"in": "body",
"name": "body",
"description": "The request contains the parts of the configuration to remove.",
"schema": {
"$ref": "#/definitions/PublishedNodesEntryModel"
}
}
],
"responses": {
"200": {
"description": "The operation was successful.",
"schema": {
"$ref": "#/definitions/PublishedNodesResponseModel"
}
},
"404": {
"description": "The nodes could not be unpublished",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"408": {
"description": "The operation timed out.",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"500": {
"description": "An unexpected error occurred",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
}
},
"/v2/configuration": {
"patch": {
"tags": [
"Configuration"
],
"summary": "[AddOrUpdateEndpoints](./directmethods.md#addorupdateendpoints_v1)",
"description": "Add or update endpoint configuration and nodes on a server. Further information is provided in the OPC Publisher documentation.",
"operationId": "AddOrUpdateEndpoints",
"consumes": [
"application/json",
"application/x-msgpack"
],
"produces": [
"application/json",
"application/x-msgpack"
],
"parameters": [
{
"in": "body",
"name": "body",
"description": "The parts of the configuration to add or update.",
"required": true,
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/PublishedNodesEntryModel"
}
}
}
],
"responses": {
"200": {
"description": "The operation was successful.",
"schema": {
"$ref": "#/definitions/PublishedNodesResponseModel"
}
},
"404": {
"description": "The endpoint was not found to add to",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"408": {
"description": "The operation timed out.",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"500": {
"description": "An unexpected error occurred",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"get": {
"tags": [
"Configuration"
],
"summary": "[GetConfiguredEndpoints](./directmethods.md#getconfiguredendpoints_v1)",
"description": "Get a list of nodes under a configured endpoint in the configuration. Further information is provided in the OPC Publisher documentation. configuration.",
"operationId": "GetConfiguredEndpoints",
"produces": [
"application/json",
"application/x-msgpack"
],
"parameters": [
{
"in": "query",
"name": "IncludeNodes",
"description": "Include nodes that make up the configuration",
"type": "boolean"
}
],
"responses": {
"200": {
"description": "The data was retrieved.",
"schema": {
"$ref": "#/definitions/GetConfiguredEndpointsResponseModel"
}
},
"400": {
"description": "The passed in information is invalid",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"408": {
"description": "The operation timed out.",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"500": {
"description": "An unexpected error occurred",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"put": {
"tags": [
"Configuration"
],
"summary": "[SetConfiguredEndpoints](./directmethods.md#setconfiguredendpoints_v1)",
"description": "Enables clients to update the entire published nodes configuration in one call. This includes clearing the existing configuration. Further information is provided in the OPC Publisher documentation. configuration.",
"operationId": "SetConfiguredEndpoints",
"consumes": [
"application/json",
"application/x-msgpack"
],
"produces": [
"application/json",
"application/x-msgpack"
],
"parameters": [
{
"in": "body",
"name": "body",
"description": "The new published nodes configuration",
"required": true,
"schema": {
"$ref": "#/definitions/SetConfiguredEndpointsRequestModel"
}
}
],
"responses": {
"200": {
"description": "The operation was successful."
},
"400": {
"description": "The passed in information is invalid",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"408": {
"description": "The operation timed out.",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"500": {
"description": "An unexpected error occurred",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
}
},
"/v2/configuration/endpoints/list/nodes": {
"post": {
"tags": [
"Configuration"
],
"summary": "[GetConfiguredNodesOnEndpoint](./directmethods.md#getconfigurednodesonendpoint_v)",
"description": "Get the nodes of a published nodes entry object returned earlier from a call to GetConfiguredEndpoints. Further information is provided in the OPC Publisher documentation.",
"operationId": "GetConfiguredNodesOnEndpoint",
"consumes": [
"application/json",
"application/x-msgpack"
],
"produces": [
"application/json",
"application/x-msgpack"
],
"parameters": [
{
"in": "body",
"name": "body",
"description": "The entry model from a call to GetConfiguredEndpoints for which to gather the nodes.",
"required": true,
"schema": {
"$ref": "#/definitions/PublishedNodesEntryModel"
}
}
],
"responses": {
"200": {
"description": "The information was returned.",
"schema": {
"$ref": "#/definitions/GetConfiguredNodesOnEndpointResponseModel"
}
},
"400": {
"description": "The passed in information is invalid",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"404": {
"description": "The entry was not found.",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"408": {
"description": "The operation timed out.",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"500": {
"description": "An unexpected error occurred",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
}
},
"/v2/configuration/diagnostics": {
"post": {
"tags": [
"Configuration"
],
"summary": "[GetDiagnosticInfo](./directmethods.md#getdiagnosticinfo_v1)",
"description": "Get the list of diagnostics info for all dataset writers in the OPC Publisher at the point the call is received. Further information is provided in the OPC Publisher documentation.",
"operationId": "GetDiagnosticInfo",
"produces": [
"application/json",
"application/x-msgpack"
],
"responses": {
"200": {
"description": "The operation was successful.",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/PublishDiagnosticInfoModel"
}
}
},
"405": {
"description": "Call not supported or functionality disabled.",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"408": {
"description": "The operation timed out.",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"500": {
"description": "An unexpected error occurred",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
}
},
"/v2/reset": {
"get": {
"tags": [
"Diagnostics"
],
"summary": "ResetAllConnections",
"description": "Can be used to reset all established connections causing a full reconnect and recreate of all subscriptions.",
"operationId": "ResetAllConnections",
"produces": [
"application/json",
"application/x-msgpack"
],
"responses": {
"200": {
"description": "The operation was successful."
},
"408": {
"description": "The operation timed out.",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"500": {
"description": "An unexpected error occurred",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
}
},
"/v2/connections": {
"get": {
"tags": [
"Diagnostics"
],
"summary": "GetActiveConnections",
"description": "Get all active connections the publisher is currently managing.",
"operationId": "GetActiveConnections",
"produces": [
"application/json",
"application/x-msgpack"
],
"responses": {
"200": {
"description": "The operation was successful.",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/ConnectionModel"
}
}
},
"500": {
"description": "An unexpected error occurred",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
}
},
"/v2/diagnostics/connections": {
"get": {
"tags": [
"Diagnostics"
],
"summary": "GetConnectionDiagnostics",
"description": "Get diagnostics for all active clients including server and client session diagnostics.",
"operationId": "GetConnectionDiagnostics",
"produces": [
"application/json",
"application/x-msgpack"
],
"responses": {
"200": {
"description": "The operation was successful.",
"schema": {
"$ref": "#/definitions/ConnectionDiagnosticsModelIAsyncEnumerable"
}
},
"408": {
"description": "The operation timed out.",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"500": {
"description": "An unexpected error occurred",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
}
},
"/v2/diagnostics/channels": {
"get": {
"tags": [
"Diagnostics"
],
"summary": "GetChannelDiagnostics",
"description": "Get channel diagnostic information for all connections.",
"operationId": "GetChannelDiagnostics",
"produces": [
"application/json",
"application/x-msgpack"
],
"responses": {
"200": {
"description": "The operation was successful.",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/ChannelDiagnosticModel"
}
}
},
"500": {
"description": "An unexpected error occurred",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
}
},
"/v2/diagnostics/channels/watch": {
"get": {
"tags": [
"Diagnostics"
],
"summary": "WatchChannelDiagnostics",
"description": "Get channel diagnostic information for all connections. The first set of diagnostics are the diagnostics active for all connections, continue reading to get updates.",
"operationId": "WatchChannelDiagnostics",
"produces": [
"application/json",
"application/x-msgpack"
],
"responses": {
"200": {
"description": "The operation was successful.",
"schema": {
"$ref": "#/definitions/ChannelDiagnosticModelIAsyncEnumerable"
}
},
"500": {
"description": "An unexpected error occurred",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
}
},
"/v2/discovery/findserver": {
"post": {
"tags": [
"Discovery"
],
"summary": "FindServer",
"description": "Find servers matching the specified endpoint query spec.",
"operationId": "FindServer",
"consumes": [
"application/json",
"application/x-msgpack"
],
"produces": [
"application/json",
"application/x-msgpack"
],
"parameters": [
{
"in": "body",
"name": "body",
"description": "The endpoint query specifying the matching criteria for the discovered endpoints.",
"required": true,
"schema": {
"$ref": "#/definitions/ServerEndpointQueryModel"
}
}
],
"responses": {
"200": {
"description": "The operation was successful or the response payload contains relevant error information.",
"schema": {
"$ref": "#/definitions/ApplicationRegistrationModel"
}
},
"400": {
"description": "The passed in information is invalid",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"408": {
"description": "The operation timed out.",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"500": {
"description": "An unexpected error occurred",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
}
},
"/v2/discovery/register": {
"post": {
"tags": [
"Discovery"
],
"summary": "Register",
"description": "Start server registration. The results of the registration are published as events to the default event transport.",
"operationId": "Register",
"consumes": [
"application/json",
"application/x-msgpack"
],
"produces": [
"application/json",
"application/x-msgpack"
],
"parameters": [
{
"in": "body",
"name": "body",
"description": "Contains all information to perform the registration request including discovery url to use.",
"required": true,
"schema": {
"$ref": "#/definitions/ServerRegistrationRequestModel"
}
}
],
"responses": {
"200": {
"description": "The operation was successful or the response payload contains relevant error information.",
"schema": {
"type": "boolean"
}
},
"400": {
"description": "The passed in information is invalid",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"408": {
"description": "The operation timed out.",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"500": {
"description": "An unexpected error occurred",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
}
},
"/v2/discovery": {
"post": {
"tags": [
"Discovery"
],
"summary": "Discover",
"description": "Start network discovery using the provided discovery request configuration. The discovery results are published to the configured default event transport.",
"operationId": "Discover",
"consumes": [
"application/json",
"application/x-msgpack"
],
"produces": [
"application/json",
"application/x-msgpack"
],
"parameters": [
{
"in": "body",
"name": "body",
"description": "The discovery configuration to use during the discovery run.",
"required": true,
"schema": {
"$ref": "#/definitions/DiscoveryRequestModel"
}
}
],
"responses": {
"200": {
"description": "The operation was successful or the response payload contains relevant error information.",
"schema": {
"type": "boolean"
}
},
"400": {
"description": "The passed in information is invalid",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"408": {
"description": "The operation timed out.",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"500": {
"description": "An unexpected error occurred",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
}
},
"/v2/discovery/cancel": {
"post": {
"tags": [
"Discovery"
],
"summary": "Cancel",
"description": "Cancel a discovery run that is ongoing using the discovery request token specified in the discover operation.",
"operationId": "Cancel",
"consumes": [
"application/json",
"application/x-msgpack"
],
"produces": [
"application/json",
"application/x-msgpack"
],
"parameters": [
{
"in": "body",
"name": "body",
"description": "The information needed to cancel the discovery operation.",
"required": true,
"schema": {
"$ref": "#/definitions/DiscoveryCancelRequestModel"
}
}
],
"responses": {
"200": {
"description": "The operation was successful or the response payload contains relevant error information.",
"schema": {
"type": "boolean"
}
},
"400": {
"description": "The passed in information is invalid",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"408": {
"description": "The operation timed out.",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"500": {
"description": "An unexpected error occurred",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
}
},
"/v2/filesystem/list": {
"post": {
"tags": [
"FileSystem"
],
"summary": "GetFileSystems",
"description": "Gets all file systems of the server.",
"operationId": "GetFileSystems",
"consumes": [
"application/json",
"application/x-msgpack"
],
"produces": [
"application/json",
"application/x-msgpack"
],
"parameters": [
{
"in": "body",
"name": "body",
"description": "The connection information identifying the server to connect to perform the operation on.",
"required": true,
"schema": {
"$ref": "#/definitions/ConnectionModel"
}
}
],
"responses": {
"200": {
"description": "The operation was successful or the response payload contains relevant error information.",
"schema": {
"$ref": "#/definitions/FileSystemObjectModelServiceResponseIAsyncEnumerable"
}
},
"400": {
"description": "The passed in information is invalid",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"408": {
"description": "The operation timed out.",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"500": {
"description": "An unexpected error occurred",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
}
},
"/v2/filesystem/list/directories": {
"post": {
"tags": [
"FileSystem"
],
"summary": "GetDirectories",
"description": "Gets all directories in a directory or file system",
"operationId": "GetDirectories",
"consumes": [
"application/json",
"application/x-msgpack"
],
"produces": [
"application/json",
"application/x-msgpack"
],
"parameters": [
{
"in": "body",
"name": "body",
"description": "The directory or filesystem object and connection information identifying the server to connect to perform the operation on.",
"required": true,
"schema": {
"$ref": "#/definitions/FileSystemObjectModelRequestEnvelope"
}
}
],
"responses": {
"200": {
"description": "The operation was successful or the response payload contains relevant error information.",
"schema": {
"$ref": "#/definitions/FileSystemObjectModelIEnumerableServiceResponse"
}
},
"400": {
"description": "The passed in information is invalid",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"408": {
"description": "The operation timed out.",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"500": {
"description": "An unexpected error occurred",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
}
},
"/v2/filesystem/list/files": {
"post": {
"tags": [
"FileSystem"
],
"summary": "GetFiles",
"description": "Get files in a directory or file system on a server.",
"operationId": "GetFiles",
"consumes": [
"application/json",
"application/x-msgpack"
],
"produces": [
"application/json",
"application/x-msgpack"
],
"parameters": [
{
"in": "body",
"name": "body",
"description": "The directory or filesystem object and connection information identifying the server to connect to perform the operation on.",
"required": true,
"schema": {
"$ref": "#/definitions/FileSystemObjectModelRequestEnvelope"
}
}
],
"responses": {
"200": {
"description": "The operation was successful or the response payload contains relevant error information.",
"schema": {
"$ref": "#/definitions/FileSystemObjectModelIEnumerableServiceResponse"
}
},
"400": {
"description": "The passed in information is invalid",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"408": {
"description": "The operation timed out.",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"500": {
"description": "An unexpected error occurred",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
}
},
"/v2/filesystem/parent": {
"post": {
"tags": [
"FileSystem"
],
"summary": "GetParent",
"description": "Gets the parent directory or filesystem of a file or directory.",
"operationId": "GetParent",
"consumes": [
"application/json",
"application/x-msgpack"
],
"produces": [
"application/json",
"application/x-msgpack"
],
"parameters": [
{
"in": "body",
"name": "body",
"description": "The file or directory object and connection information identifying the server to connect to perform the operation on.",
"required": true,
"schema": {
"$ref": "#/definitions/FileSystemObjectModelRequestEnvelope"
}
}
],
"responses": {
"200": {
"description": "The operation was successful or the response payload contains relevant error information.",
"schema": {
"$ref": "#/definitions/FileSystemObjectModelServiceResponse"
}
},
"400": {
"description": "The passed in information is invalid",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"408": {
"description": "The operation timed out.",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"500": {
"description": "An unexpected error occurred",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
}
},
"/v2/filesystem/info/file": {
"post": {
"tags": [
"FileSystem"
],
"summary": "GetFileInfo",
"description": "Gets the file information for a file on the server.",
"operationId": "GetFileInfo",
"consumes": [
"application/json",
"application/x-msgpack"
],
"produces": [
"application/json",
"application/x-msgpack"
],
"parameters": [
{
"in": "body",
"name": "body",
"description": "The file object and connection information identifying the server to connect to perform the operation on.",
"required": true,
"schema": {
"$ref": "#/definitions/FileSystemObjectModelRequestEnvelope"
}
}
],
"responses": {
"200": {
"description": "The operation was successful or the response payload contains relevant error information.",
"schema": {
"$ref": "#/definitions/FileInfoModelServiceResponse"
}
},
"400": {
"description": "The passed in information is invalid",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"408": {
"description": "The operation timed out.",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"500": {
"description": "An unexpected error occurred",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
}
},
"/v2/filesystem/create/file/{name}": {
"post": {
"tags": [
"FileSystem"
],
"summary": "CreateFile",
"description": "Create a new file in a directory or file system on the server",
"operationId": "CreateFile",
"consumes": [
"application/json",
"application/x-msgpack"
],
"produces": [
"application/json",
"application/x-msgpack"
],
"parameters": [
{
"in": "path",
"name": "name",
"description": "The name of the file to create as child under the directory or filesystem provided",
"required": true,
"type": "string"
},
{
"in": "body",
"name": "body",
"description": "The file system or directory object to create the file in and the connection information identifying the server to connect to perform the operation on.",
"required": true,
"schema": {
"$ref": "#/definitions/FileSystemObjectModelRequestEnvelope"
}
}
],
"responses": {
"200": {
"description": "The operation was successful or the response payload contains relevant error information.",
"schema": {
"$ref": "#/definitions/FileSystemObjectModelServiceResponse"
}
},
"400": {
"description": "The passed in information is invalid",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"408": {
"description": "The operation timed out.",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"500": {
"description": "An unexpected error occurred",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
}
},
"/v2/filesystem/create/directory/{name}": {
"post": {
"tags": [
"FileSystem"
],
"summary": "CreateDirectory",
"description": "Create a new directory in an existing file system or directory on the server.",
"operationId": "CreateDirectory",
"consumes": [
"application/json",
"application/x-msgpack"
],
"produces": [
"application/json",
"application/x-msgpack"
],
"parameters": [
{
"in": "path",
"name": "name",
"description": "The name of the directory to create as child under the parent directory provided",
"required": true,
"type": "string"
},
{
"in": "body",
"name": "body",
"description": "The file system or directory object to create the directory in and the connection information identifying the server to connect to perform the operation on.",
"required": true,
"schema": {
"$ref": "#/definitions/FileSystemObjectModelRequestEnvelope"
}
}
],
"responses": {
"200": {
"description": "The operation was successful or the response payload contains relevant error information.",
"schema": {
"$ref": "#/definitions/FileSystemObjectModelServiceResponse"
}
},
"400": {
"description": "The passed in information is invalid",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"408": {
"description": "The operation timed out.",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"500": {
"description": "An unexpected error occurred",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
}
},
"/v2/filesystem/delete": {
"post": {
"tags": [
"FileSystem"
],
"summary": "DeleteFileSystemObject",
"description": "Delete a file or directory in an existing file system on the server.",
"operationId": "DeleteFileSystemObject",
"consumes": [
"application/json",
"application/x-msgpack"
],
"produces": [
"application/json",
"application/x-msgpack"
],
"parameters": [
{
"in": "body",
"name": "body",
"description": "The file or directory object to delete and the connection information identifying the server to connect to perform the operation on.",
"required": true,
"schema": {
"$ref": "#/definitions/FileSystemObjectModelRequestEnvelope"
}
}
],
"responses": {
"200": {
"description": "The operation was successful or the response payload contains relevant error information.",
"schema": {
"$ref": "#/definitions/ServiceResultModel"
}
},
"400": {
"description": "The passed in information is invalid",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"408": {
"description": "The operation timed out.",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"500": {
"description": "An unexpected error occurred",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
}
},
"/v2/filesystem/delete/{fileOrDirectoryNodeId}": {
"post": {
"tags": [
"FileSystem"
],
"summary": "DeleteFileOrDirectory",
"description": "Delete a file or directory in the specified directory or file system.",
"operationId": "DeleteFileOrDirectory",
"consumes": [
"application/json",
"application/x-msgpack"
],
"produces": [
"application/json",
"application/x-msgpack"
],
"parameters": [
{
"in": "path",
"name": "fileOrDirectoryNodeId",
"description": "The node id of the file or directory to delete",
"required": true,
"type": "string"
},
{
"in": "body",
"name": "body",
"description": "The filesystem or directory object in which to delete the specified file or directory and the connection to use for the operation.",
"required": true,
"schema": {
"$ref": "#/definitions/FileSystemObjectModelRequestEnvelope"
}
}
],
"responses": {
"200": {
"description": "The operation was successful or the response payload contains relevant error information.",
"schema": {
"$ref": "#/definitions/ServiceResultModel"
}
},
"400": {
"description": "The passed in information is invalid",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"408": {
"description": "The operation timed out.",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"500": {
"description": "An unexpected error occurred",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
}
},
"/v2/filesystem/download": {
"get": {
"tags": [
"FileSystem"
],
"summary": "Download",
"description": "Download a file from the server",
"operationId": "Download",
"produces": [
"application/json",
"application/x-msgpack"
],
"parameters": [
{
"in": "header",
"name": "x-ms-connection",
"description": "The connection information identifying the server to connect to perform the operation on. This is passed as json serialized via the header \"x-ms-connection\"",
"required": true,
"type": "string"
},
{
"in": "header",
"name": "x-ms-target",
"description": "The file object to upload. This is passed as json serialized via the header \"x-ms-target\"",
"required": true,
"type": "string"
}
],
"responses": {
"200": {
"description": "The operation was successful or the response payload contains relevant error information."
},
"400": {
"description": "The passed in information is invalid",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"408": {
"description": "The operation timed out.",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"500": {
"description": "An unexpected error occurred",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
}
},
"/v2/filesystem/upload": {
"post": {
"tags": [
"FileSystem"
],
"summary": "Upload",
"description": "Upload a file to the server.",
"operationId": "Upload",
"produces": [
"application/json",
"application/x-msgpack"
],
"parameters": [
{
"in": "header",
"name": "x-ms-connection",
"description": "The connection information identifying the server to connect to perform the operation on. This is passed as json serialized via the header \"x-ms-connection\"",
"required": true,
"type": "string"
},
{
"in": "header",
"name": "x-ms-target",
"description": "The file object to upload. This is passed as json serialized via the header \"x-ms-target\"",
"required": true,
"type": "string"
},
{
"in": "header",
"name": "x-ms-options",
"description": "The file write options to use passed as header \"x-ms-mode\"",
"required": true,
"type": "string"
}
],
"responses": {
"200": {
"description": "The operation was successful or the response payload contains relevant error information."
},
"400": {
"description": "The passed in information is invalid",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"408": {
"description": "The operation timed out.",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"500": {
"description": "An unexpected error occurred",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
}
},
"/v2/capabilities": {
"post": {
"tags": [
"General"
],
"summary": "GetServerCapabilities",
"description": "Get the capabilities of the server. The server capabilities are exposed as a property of the server object and this method provides a convinient way to retrieve them.",
"operationId": "GetServerCapabilities",
"consumes": [
"application/json",
"application/x-msgpack"
],
"produces": [
"application/json",
"application/x-msgpack"
],
"parameters": [
{
"in": "body",
"name": "body",
"description": "The request payload and connection information identifying the server to connect to perform the operation on.",
"required": true,
"schema": {
"$ref": "#/definitions/RequestHeaderModelRequestEnvelope"
}
}
],
"responses": {
"200": {
"description": "The operation was successful or the response payload contains relevant error information.",
"schema": {
"$ref": "#/definitions/ServerCapabilitiesModel"
}
},
"400": {
"description": "The passed in information is invalid",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"408": {
"description": "The operation timed out.",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"500": {
"description": "An unexpected error occurred",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
}
},
"/v2/browse/first": {
"post": {
"tags": [
"General"
],
"summary": "Browse",
"description": "Browse a a node to discover its references. For more information consult the relevant section of the OPC UA reference specification. The operation might return a continuation token. The continuation token can be used in the BrowseNext method call to retrieve the remainder of references or additional continuation tokens.",
"operationId": "Browse",
"consumes": [
"application/json",
"application/x-msgpack"
],
"produces": [
"application/json",
"application/x-msgpack"
],
"parameters": [
{
"in": "body",
"name": "body",
"description": "The request payload and connection information identifying the server to connect to perform the operation on.",
"required": true,
"schema": {
"$ref": "#/definitions/BrowseFirstRequestModelRequestEnvelope"
}
}
],
"responses": {
"200": {
"description": "The operation was successful or the response payload contains relevant error information.",
"schema": {
"$ref": "#/definitions/BrowseFirstResponseModel"
}
},
"400": {
"description": "The passed in information is invalid",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"408": {
"description": "The operation timed out.",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"500": {
"description": "An unexpected error occurred",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
}
},
"/v2/browse/next": {
"post": {
"tags": [
"General"
],
"summary": "BrowseNext",
"description": "Browse next",
"operationId": "BrowseNext",
"consumes": [
"application/json",
"application/x-msgpack"
],
"produces": [
"application/json",
"application/x-msgpack"
],
"parameters": [
{
"in": "body",
"name": "body",
"description": "The request payload and connection information identifying the server to connect to perform the operation on.",
"required": true,
"schema": {
"$ref": "#/definitions/BrowseNextRequestModelRequestEnvelope"
}
}
],
"responses": {
"200": {
"description": "The operation was successful or the response payload contains relevant error information.",
"schema": {
"$ref": "#/definitions/BrowseNextResponseModel"
}
},
"400": {
"description": "The passed in information is invalid",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"408": {
"description": "The operation timed out.",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"500": {
"description": "An unexpected error occurred",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
}
},
"/v2/browse": {
"post": {
"tags": [
"General"
],
"summary": "BrowseStream (only HTTP transport)",
"description": "Recursively browse a node to discover its references and nodes. The results are returned as a stream of nodes and references. Consult the relevant section of the OPC UA reference specification for more information.",
"operationId": "BrowseStream",
"consumes": [
"application/json",
"application/x-msgpack"
],
"produces": [
"application/json",
"application/x-msgpack"
],
"parameters": [
{
"in": "body",
"name": "body",
"description": "The request payload and connection information identifying the server to connect to perform the operation on.",
"required": true,
"schema": {
"$ref": "#/definitions/BrowseStreamRequestModelRequestEnvelope"
}
}
],
"responses": {
"200": {
"description": "The operation was successful or the response payload contains relevant error information.",
"schema": {
"$ref": "#/definitions/BrowseStreamChunkModelIAsyncEnumerable"
}
},
"400": {
"description": "The passed in information is invalid",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"408": {
"description": "The operation timed out.",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"500": {
"description": "An unexpected error occurred",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
}
},
"/v2/browse/path": {
"post": {
"tags": [
"General"
],
"summary": "BrowsePath",
"description": "Translate a start node and browse path into 0 or more target nodes. Allows programming aginst types in OPC UA. For more information consult the relevant section of the OPC UA reference specification.",
"operationId": "BrowsePath",
"consumes": [
"application/json",
"application/x-msgpack"
],
"produces": [
"application/json",
"application/x-msgpack"
],
"parameters": [
{
"in": "body",
"name": "body",
"description": "The request payload and connection information identifying the server to connect to perform the operation on.",
"required": true,
"schema": {
"$ref": "#/definitions/BrowsePathRequestModelRequestEnvelope"
}
}
],
"responses": {
"200": {
"description": "The operation was successful or the response payload contains relevant error information.",
"schema": {
"$ref": "#/definitions/BrowsePathResponseModel"
}
},
"400": {
"description": "The passed in information is invalid",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"408": {
"description": "The operation timed out.",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"500": {
"description": "An unexpected error occurred",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
}
},
"/v2/read": {
"post": {
"tags": [
"General"
],
"summary": "ValueRead",
"description": "Read the value of a variable node. This uses the service detailed in the relevant section of the OPC UA reference specification.",
"operationId": "ValueRead",
"consumes": [
"application/json",
"application/x-msgpack"
],
"produces": [
"application/json",
"application/x-msgpack"
],
"parameters": [
{
"in": "body",
"name": "body",
"description": "The request payload and connection information identifying the server to connect to perform the operation on.",
"required": true,
"schema": {
"$ref": "#/definitions/ValueReadRequestModelRequestEnvelope"
}
}
],
"responses": {
"200": {
"description": "The operation was successful or the response payload contains relevant error information.",
"schema": {
"$ref": "#/definitions/ValueReadResponseModel"
}
},
"400": {
"description": "The passed in information is invalid",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"408": {
"description": "The operation timed out.",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"500": {
"description": "An unexpected error occurred",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
}
},
"/v2/write": {
"post": {
"tags": [
"General"
],
"summary": "ValueWrite",
"description": "Write the value of a variable node. This uses the service detailed in the relevant section of the OPC UA reference specification.",
"operationId": "ValueWrite",
"consumes": [
"application/json",
"application/x-msgpack"
],
"produces": [
"application/json",
"application/x-msgpack"
],
"parameters": [
{
"in": "body",
"name": "body",
"description": "The request payload and connection information identifying the server to connect to perform the operation on.",
"required": true,
"schema": {
"$ref": "#/definitions/ValueWriteRequestModelRequestEnvelope"
}
}
],
"responses": {
"200": {
"description": "The operation was successful or the response payload contains relevant error information.",
"schema": {
"$ref": "#/definitions/ValueWriteResponseModel"
}
},
"400": {
"description": "The passed in information is invalid",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"408": {
"description": "The operation timed out.",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"500": {
"description": "An unexpected error occurred",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
}
},
"/v2/metadata": {
"post": {
"tags": [
"General"
],
"summary": "GetMetadata",
"description": "Get the type metadata for a any node. For data type nodes the response contains the data type metadata including fields. For method nodes the output and input arguments metadata is provided. For objects and object types the instance declaration is returned.",
"operationId": "GetMetadata",
"consumes": [
"application/json",
"application/x-msgpack"
],
"produces": [
"application/json",
"application/x-msgpack"
],
"parameters": [
{
"in": "body",
"name": "body",
"description": "The request payload and connection information identifying the server to connect to perform the operation on.",
"required": true,
"schema": {
"$ref": "#/definitions/NodeMetadataRequestModelRequestEnvelope"
}
}
],
"responses": {
"200": {
"description": "The operation was successful or the response payload contains relevant error information.",
"schema": {
"$ref": "#/definitions/NodeMetadataResponseModel"
}
},
"400": {
"description": "The passed in information is invalid",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"408": {
"description": "The operation timed out.",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"500": {
"description": "An unexpected error occurred",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
}
},
"/v2/query/compile": {
"post": {
"tags": [
"General"
],
"summary": "CompileQuery",
"description": "Compile a query string into a query spec that can be used when setting up event filters on monitored items that monitor events.",
"operationId": "CompileQuery",
"consumes": [
"application/json",
"application/x-msgpack"
],
"produces": [
"application/json",
"application/x-msgpack"
],
"parameters": [
{
"in": "body",
"name": "body",
"description": "The compilation request and connection information.",
"required": true,
"schema": {
"$ref": "#/definitions/QueryCompilationRequestModelRequestEnvelope"
}
}
],
"responses": {
"200": {
"description": "The operation was successful or the response payload contains relevant error information.",
"schema": {
"$ref": "#/definitions/QueryCompilationResponseModel"
}
},
"400": {
"description": "The passed in information is invalid",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"408": {
"description": "The operation timed out.",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"500": {
"description": "An unexpected error occurred",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
}
},
"/v2/call/$metadata": {
"post": {
"tags": [
"General"
],
"summary": "MethodMetadata",
"description": "Get the metadata for calling the method. This API is obsolete. Use the more powerful GetMetadata method instead.",
"operationId": "MethodMetadata",
"consumes": [
"application/json",
"application/x-msgpack"
],
"produces": [
"application/json",
"application/x-msgpack"
],
"parameters": [
{
"in": "body",
"name": "body",
"description": "The request payload and connection information identifying the server to connect to perform the operation on.",
"required": true,
"schema": {
"$ref": "#/definitions/MethodMetadataRequestModelRequestEnvelope"
}
}
],
"responses": {
"200": {
"description": "The operation was successful or the response payload contains relevant error information.",
"schema": {
"$ref": "#/definitions/MethodMetadataResponseModel"
}
},
"400": {
"description": "The passed in information is invalid",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"408": {
"description": "The operation timed out.",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"500": {
"description": "An unexpected error occurred",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
}
},
"/v2/call": {
"post": {
"tags": [
"General"
],
"summary": "MethodCall",
"description": "Call a method on the OPC UA server endpoint with the specified input arguments and received the result in the form of the method output arguments. See the relevant section of the OPC UA reference specification for more information.",
"operationId": "MethodCall",
"consumes": [
"application/json",
"application/x-msgpack"
],
"produces": [
"application/json",
"application/x-msgpack"
],
"parameters": [
{
"in": "body",
"name": "body",
"description": "The request payload and connection information identifying the server to connect to perform the operation on.",
"required": true,
"schema": {
"$ref": "#/definitions/MethodCallRequestModelRequestEnvelope"
}
}
],
"responses": {
"200": {
"description": "The operation was successful or the response payload contains relevant error information.",
"schema": {
"$ref": "#/definitions/MethodCallResponseModel"
}
},
"400": {
"description": "The passed in information is invalid",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"408": {
"description": "The operation timed out.",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"500": {
"description": "An unexpected error occurred",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
}
},
"/v2/read/attributes": {
"post": {
"tags": [
"General"
],
"summary": "NodeRead",
"description": "Read any writeable attribute of a specified node on the server. See the relevant section of the OPC UA reference specification for more information. The attributes supported by the node are dependend on the node class of the node.",
"operationId": "NodeRead",
"consumes": [
"application/json",
"application/x-msgpack"
],
"produces": [
"application/json",
"application/x-msgpack"
],
"parameters": [
{
"in": "body",
"name": "body",
"description": "The request payload and connection information identifying the server to connect to perform the operation on.",
"required": true,
"schema": {
"$ref": "#/definitions/ReadRequestModelRequestEnvelope"
}
}
],
"responses": {
"200": {
"description": "The operation was successful or the response payload contains relevant error information.",
"schema": {
"$ref": "#/definitions/ReadResponseModel"
}
},
"400": {
"description": "The passed in information is invalid",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"408": {
"description": "The operation timed out.",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"500": {
"description": "An unexpected error occurred",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
}
},
"/v2/write/attributes": {
"post": {
"tags": [
"General"
],
"summary": "NodeWrite",
"description": "Write any writeable attribute of a specified node on the server. See the relevant section of the OPC UA reference specification for more information. The attributes supported by the node are dependend on the node class of the node.",
"operationId": "NodeWrite",
"consumes": [
"application/json",
"application/x-msgpack"
],
"produces": [
"application/json",
"application/x-msgpack"
],
"parameters": [
{
"in": "body",
"name": "body",
"description": "The request payload and connection information identifying the server to connect to perform the operation on.",
"required": true,
"schema": {
"$ref": "#/definitions/WriteRequestModelRequestEnvelope"
}
}
],
"responses": {
"200": {
"description": "The operation was successful or the response payload contains relevant error information.",
"schema": {
"$ref": "#/definitions/WriteResponseModel"
}
},
"400": {
"description": "The passed in information is invalid",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"408": {
"description": "The operation timed out.",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"500": {
"description": "An unexpected error occurred",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
}
},
"/v2/historyread/first": {
"post": {
"tags": [
"General"
],
"summary": "HistoryRead",
"description": "Read the history using the respective OPC UA service call. See the relevant section of the OPC UA reference specification for more information. If continuation is returned the remaining results of the operation can be read using the HistoryReadNext method.",
"operationId": "HistoryRead",
"consumes": [
"application/json",
"application/x-msgpack"
],
"produces": [
"application/json",
"application/x-msgpack"
],
"parameters": [
{
"in": "body",
"name": "body",
"description": "The request payload and connection information identifying the server to connect to perform the operation on.",
"required": true,
"schema": {
"$ref": "#/definitions/VariantValueHistoryReadRequestModelRequestEnvelope"
}
}
],
"responses": {
"200": {
"description": "The operation was successful or the response payload contains relevant error information.",
"schema": {
"$ref": "#/definitions/VariantValueHistoryReadResponseModel"
}
},
"400": {
"description": "The passed in information is invalid",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"408": {
"description": "The operation timed out.",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"500": {
"description": "An unexpected error occurred",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
}
},
"/v2/historyread/next": {
"post": {
"tags": [
"General"
],
"summary": "HistoryReadNext",
"description": "Read next history using the respective OPC UA service call. See the relevant section of the OPC UA reference specification for more information.",
"operationId": "HistoryReadNext",
"consumes": [
"application/json",
"application/x-msgpack"
],
"produces": [
"application/json",
"application/x-msgpack"
],
"parameters": [
{
"in": "body",
"name": "body",
"description": "The request payload and connection information identifying the server to connect to perform the operation on.",
"required": true,
"schema": {
"$ref": "#/definitions/HistoryReadNextRequestModelRequestEnvelope"
}
}
],
"responses": {
"200": {
"description": "The operation was successful or the response payload contains relevant error information.",
"schema": {
"$ref": "#/definitions/VariantValueHistoryReadNextResponseModel"
}
},
"400": {
"description": "The passed in information is invalid",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"408": {
"description": "The operation timed out.",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"500": {
"description": "An unexpected error occurred",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
}
},
"/v2/historyupdate": {
"post": {
"tags": [
"General"
],
"summary": "HistoryUpdate",
"description": "Update history using the respective OPC UA service call. Consult the relevant section of the OPC UA reference specification for more information.",
"operationId": "HistoryUpdate",
"consumes": [
"application/json",
"application/x-msgpack"
],
"produces": [
"application/json",
"application/x-msgpack"
],
"parameters": [
{
"in": "body",
"name": "body",
"description": "The request payload and connection information identifying the server to connect to perform the operation on.",
"required": true,
"schema": {
"$ref": "#/definitions/VariantValueHistoryUpdateRequestModelRequestEnvelope"
}
}
],
"responses": {
"200": {
"description": "The operation was successful or the response payload contains relevant error information.",
"schema": {
"$ref": "#/definitions/HistoryUpdateResponseModel"
}
},
"400": {
"description": "The passed in information is invalid",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"408": {
"description": "The operation timed out.",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"500": {
"description": "An unexpected error occurred",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
}
},
"/v2/certificate": {
"post": {
"tags": [
"General"
],
"summary": "GetEndpointCertificate",
"description": "Get a server endpoint's certificate and certificate chain if available.",
"operationId": "GetEndpointCertificate",
"consumes": [
"application/json",
"application/x-msgpack"
],
"produces": [
"application/json",
"application/x-msgpack"
],
"parameters": [
{
"in": "body",
"name": "body",
"description": "The server endpoint to get the certificate for.",
"required": true,
"schema": {
"$ref": "#/definitions/EndpointModel"
}
}
],
"responses": {
"200": {
"description": "The operation was successful or the response payload contains relevant error information.",
"schema": {
"$ref": "#/definitions/X509CertificateChainModel"
}
},
"400": {
"description": "The passed in information is invalid",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"408": {
"description": "The operation timed out.",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"500": {
"description": "An unexpected error occurred",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
}
},
"/v2/history/capabilities": {
"post": {
"tags": [
"General"
],
"summary": "HistoryGetServerCapabilities",
"description": "Get the historian capabilities exposed as part of the OPC UA server server object.",
"operationId": "HistoryGetServerCapabilities",
"consumes": [
"application/json",
"application/x-msgpack"
],
"produces": [
"application/json",
"application/x-msgpack"
],
"parameters": [
{
"in": "body",
"name": "body",
"description": "The request payload and connection information identifying the server to connect to perform the operation on.",
"required": true,
"schema": {
"$ref": "#/definitions/RequestHeaderModelRequestEnvelope"
}
}
],
"responses": {
"200": {
"description": "The operation was successful or the response payload contains relevant error information.",
"schema": {
"$ref": "#/definitions/HistoryServerCapabilitiesModel"
}
},
"400": {
"description": "The passed in information is invalid",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"408": {
"description": "The operation timed out.",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"500": {
"description": "An unexpected error occurred",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
}
},
"/v2/history/configuration": {
"post": {
"tags": [
"General"
],
"summary": "HistoryGetConfiguration",
"description": "Get the historian configuration of a historizing node in the OPC UA server",
"operationId": "HistoryGetConfiguration",
"consumes": [
"application/json",
"application/x-msgpack"
],
"produces": [
"application/json",
"application/x-msgpack"
],
"parameters": [
{
"in": "body",
"name": "body",
"description": "The request payload and connection information identifying the server to connect to perform the operation on.",
"required": true,
"schema": {
"$ref": "#/definitions/HistoryConfigurationRequestModelRequestEnvelope"
}
}
],
"responses": {
"200": {
"description": "The operation was successful or the response payload contains relevant error information.",
"schema": {
"$ref": "#/definitions/HistoryConfigurationResponseModel"
}
},
"400": {
"description": "The passed in information is invalid",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"408": {
"description": "The operation timed out.",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"500": {
"description": "An unexpected error occurred",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
}
},
"/v2/test": {
"post": {
"tags": [
"General"
],
"summary": "TestConnection",
"description": "Test connection to an opc ua server. The call will not establish any persistent connection but will just allow a client to test that the server is available.",
"operationId": "TestConnection",
"consumes": [
"application/json",
"application/x-msgpack"
],
"produces": [
"application/json",
"application/x-msgpack"
],
"parameters": [
{
"in": "body",
"name": "body",
"description": "The request payload and connection information identifying the server to connect to perform the operation on.",
"required": true,
"schema": {
"$ref": "#/definitions/TestConnectionRequestModelRequestEnvelope"
}
}
],
"responses": {
"200": {
"description": "The operation was successful or the response payload contains relevant error information.",
"schema": {
"$ref": "#/definitions/TestConnectionResponseModel"
}
},
"400": {
"description": "The passed in information is invalid",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"408": {
"description": "The operation timed out.",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"500": {
"description": "An unexpected error occurred",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
}
},
"/v2/history/events/replace": {
"post": {
"tags": [
"History"
],
"summary": "HistoryReplaceEvents",
"description": "Replace events in a timeseries in the historian of the OPC UA server. See the relevant section of the OPC UA reference specification and respective service documentation for more information.",
"operationId": "HistoryReplaceEvents",
"consumes": [
"application/json",
"application/x-msgpack"
],
"produces": [
"application/json",
"application/x-msgpack"
],
"parameters": [
{
"in": "body",
"name": "body",
"description": "The events to replace with in the timeseries.",
"required": true,
"schema": {
"$ref": "#/definitions/UpdateEventsDetailsModelHistoryUpdateRequestModelRequestEnvelope"
}
}
],
"responses": {
"200": {
"description": "The operation was successful or the response payload contains relevant error information.",
"schema": {
"$ref": "#/definitions/HistoryUpdateResponseModel"
}
},
"400": {
"description": "The passed in information is invalid",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"408": {
"description": "The operation timed out.",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"500": {
"description": "An unexpected error occurred",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
}
},
"/v2/history/events/insert": {
"post": {
"tags": [
"History"
],
"summary": "HistoryInsertEvents",
"description": "Insert event entries into a specified timeseries of the historian. See the relevant section of the OPC UA reference specification and respective service documentation for more information.",
"operationId": "HistoryInsertEvents",
"consumes": [
"application/json",
"application/x-msgpack"
],
"produces": [
"application/json",
"application/x-msgpack"
],
"parameters": [
{
"in": "body",
"name": "body",
"description": "The events to insert into the timeseries.",
"required": true,
"schema": {
"$ref": "#/definitions/UpdateEventsDetailsModelHistoryUpdateRequestModelRequestEnvelope"
}
}
],
"responses": {
"200": {
"description": "The operation was successful or the response payload contains relevant error information.",
"schema": {
"$ref": "#/definitions/HistoryUpdateResponseModel"
}
},
"400": {
"description": "The passed in information is invalid",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"408": {
"description": "The operation timed out.",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"500": {
"description": "An unexpected error occurred",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
}
},
"/v2/history/events/upsert": {
"post": {
"tags": [
"History"
],
"summary": "HistoryUpsertEvents",
"description": "Upsert events into a time series of the opc server historian. See the relevant section of the OPC UA reference specification and respective service documentation for more information.",
"operationId": "HistoryUpsertEvents",
"consumes": [
"application/json",
"application/x-msgpack"
],
"produces": [
"application/json",
"application/x-msgpack"
],
"parameters": [
{
"in": "body",
"name": "body",
"description": "The events to upsert into the timeseries.",
"required": true,
"schema": {
"$ref": "#/definitions/UpdateEventsDetailsModelHistoryUpdateRequestModelRequestEnvelope"
}
}
],
"responses": {
"200": {
"description": "The operation was successful or the response payload contains relevant error information.",
"schema": {
"$ref": "#/definitions/HistoryUpdateResponseModel"
}
},
"400": {
"description": "The passed in information is invalid",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"408": {
"description": "The operation timed out.",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"500": {
"description": "An unexpected error occurred",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
}
},
"/v2/history/events/delete": {
"post": {
"tags": [
"History"
],
"summary": "HistoryDeleteEvents",
"description": "Delete event entries in a timeseries of the server historian. See the relevant section of the OPC UA reference specification and respective service documentation for more information.",
"operationId": "HistoryDeleteEvents",
"consumes": [
"application/json",
"application/x-msgpack"
],
"produces": [
"application/json",
"application/x-msgpack"
],
"parameters": [
{
"in": "body",
"name": "body",
"description": "The events to delete in the timeseries.",
"required": true,
"schema": {
"$ref": "#/definitions/DeleteEventsDetailsModelHistoryUpdateRequestModelRequestEnvelope"
}
}
],
"responses": {
"200": {
"description": "The operation was successful or the response payload contains relevant error information.",
"schema": {
"$ref": "#/definitions/HistoryUpdateResponseModel"
}
},
"400": {
"description": "The passed in information is invalid",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"408": {
"description": "The operation timed out.",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"500": {
"description": "An unexpected error occurred",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
}
},
"/v2/history/values/delete/attimes": {
"post": {
"tags": [
"History"
],
"summary": "HistoryDeleteValuesAtTimes",
"description": "Delete value change entries in a timeseries of the server historian. See the relevant section of the OPC UA reference specification and respective service documentation for more information.",
"operationId": "HistoryDeleteValuesAtTimes",
"consumes": [
"application/json",
"application/x-msgpack"
],
"produces": [
"application/json",
"application/x-msgpack"
],
"parameters": [
{
"in": "body",
"name": "body",
"description": "The values to delete in the timeseries.",
"required": true,
"schema": {
"$ref": "#/definitions/DeleteValuesAtTimesDetailsModelHistoryUpdateRequestModelRequestEnvelope"
}
}
],
"responses": {
"200": {
"description": "The operation was successful or the response payload contains relevant error information.",
"schema": {
"$ref": "#/definitions/HistoryUpdateResponseModel"
}
},
"400": {
"description": "The passed in information is invalid",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"408": {
"description": "The operation timed out.",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"500": {
"description": "An unexpected error occurred",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
}
},
"/v2/history/values/delete/modified": {
"post": {
"tags": [
"History"
],
"summary": "HistoryDeleteModifiedValues",
"description": "Delete value change entries in a timeseries of the server historian. See the relevant section of the OPC UA reference specification and respective service documentation for more information.",
"operationId": "HistoryDeleteModifiedValues",
"consumes": [
"application/json",
"application/x-msgpack"
],
"produces": [
"application/json",
"application/x-msgpack"
],
"parameters": [
{
"in": "body",
"name": "body",
"description": "The values to delete in the timeseries.",
"required": true,
"schema": {
"$ref": "#/definitions/DeleteValuesDetailsModelHistoryUpdateRequestModelRequestEnvelope"
}
}
],
"responses": {
"200": {
"description": "The operation was successful or the response payload contains relevant error information.",
"schema": {
"$ref": "#/definitions/HistoryUpdateResponseModel"
}
},
"400": {
"description": "The passed in information is invalid",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"408": {
"description": "The operation timed out.",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"500": {
"description": "An unexpected error occurred",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
}
},
"/v2/history/values/delete": {
"post": {
"tags": [
"History"
],
"summary": "HistoryDeleteValues",
"description": "Delete value change entries in a timeseries of the server historian. See the relevant section of the OPC UA reference specification and respective service documentation for more information.",
"operationId": "HistoryDeleteValues",
"consumes": [
"application/json",
"application/x-msgpack"
],
"produces": [
"application/json",
"application/x-msgpack"
],
"parameters": [
{
"in": "body",
"name": "body",
"description": "The values to delete in the timeseries.",
"required": true,
"schema": {
"$ref": "#/definitions/DeleteValuesDetailsModelHistoryUpdateRequestModelRequestEnvelope"
}
}
],
"responses": {
"200": {
"description": "The operation was successful or the response payload contains relevant error information.",
"schema": {
"$ref": "#/definitions/HistoryUpdateResponseModel"
}
},
"400": {
"description": "The passed in information is invalid",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"408": {
"description": "The operation timed out.",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"500": {
"description": "An unexpected error occurred",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
}
},
"/v2/history/values/replace": {
"post": {
"tags": [
"History"
],
"summary": "HistoryReplaceValues",
"description": "Replace value change entries in a timeseries of the server historian. See the relevant section of the OPC UA reference specification and respective service documentation for more information.",
"operationId": "HistoryReplaceValues",
"consumes": [
"application/json",
"application/x-msgpack"
],
"produces": [
"application/json",
"application/x-msgpack"
],
"parameters": [
{
"in": "body",
"name": "body",
"description": "The values to replace with in the timeseries.",
"required": true,
"schema": {
"$ref": "#/definitions/UpdateValuesDetailsModelHistoryUpdateRequestModelRequestEnvelope"
}
}
],
"responses": {
"200": {
"description": "The operation was successful or the response payload contains relevant error information.",
"schema": {
"$ref": "#/definitions/HistoryUpdateResponseModel"
}
},
"400": {
"description": "The passed in information is invalid",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"408": {
"description": "The operation timed out.",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"500": {
"description": "An unexpected error occurred",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
}
},
"/v2/history/values/insert": {
"post": {
"tags": [
"History"
],
"summary": "HistoryInsertValues",
"description": "Insert value change entries in a timeseries of the server historian. See the relevant section of the OPC UA reference specification and respective service documentation for more information.",
"operationId": "HistoryInsertValues",
"consumes": [
"application/json",
"application/x-msgpack"
],
"produces": [
"application/json",
"application/x-msgpack"
],
"parameters": [
{
"in": "body",
"name": "body",
"description": "The values to insert into the timeseries.",
"required": true,
"schema": {
"$ref": "#/definitions/UpdateValuesDetailsModelHistoryUpdateRequestModelRequestEnvelope"
}
}
],
"responses": {
"200": {
"description": "The operation was successful or the response payload contains relevant error information.",
"schema": {
"$ref": "#/definitions/HistoryUpdateResponseModel"
}
},
"400": {
"description": "The passed in information is invalid",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"408": {
"description": "The operation timed out.",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"500": {
"description": "An unexpected error occurred",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
}
},
"/v2/history/values/upsert": {
"post": {
"tags": [
"History"
],
"summary": "HistoryUpsertValues",
"description": "Upsert value change entries in a timeseries of the server historian. See the relevant section of the OPC UA reference specification and respective service documentation for more information.",
"operationId": "HistoryUpsertValues",
"consumes": [
"application/json",
"application/x-msgpack"
],
"produces": [
"application/json",
"application/x-msgpack"
],
"parameters": [
{
"in": "body",
"name": "body",
"description": "The values to upsert into the timeseries.",
"required": true,
"schema": {
"$ref": "#/definitions/UpdateValuesDetailsModelHistoryUpdateRequestModelRequestEnvelope"
}
}
],
"responses": {
"200": {
"description": "The operation was successful or the response payload contains relevant error information.",
"schema": {
"$ref": "#/definitions/HistoryUpdateResponseModel"
}
},
"400": {
"description": "The passed in information is invalid",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"408": {
"description": "The operation timed out.",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"500": {
"description": "An unexpected error occurred",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
}
},
"/v2/history/events/read/first": {
"post": {
"tags": [
"History"
],
"summary": "HistoryReadEvents",
"description": "Read an event timeseries inside the OPC UA server historian. See the relevant section of the OPC UA reference specification and respective service documentation for more information.",
"operationId": "HistoryReadEvents",
"consumes": [
"application/json",
"application/x-msgpack"
],
"produces": [
"application/json",
"application/x-msgpack"
],
"parameters": [
{
"in": "body",
"name": "body",
"description": "The events to read in the timeseries.",
"required": true,
"schema": {
"$ref": "#/definitions/ReadEventsDetailsModelHistoryReadRequestModelRequestEnvelope"
}
}
],
"responses": {
"200": {
"description": "The operation was successful or the response payload contains relevant error information.",
"schema": {
"$ref": "#/definitions/HistoricEventModelArrayHistoryReadResponseModel"
}
},
"400": {
"description": "The passed in information is invalid",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"408": {
"description": "The operation timed out.",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"500": {
"description": "An unexpected error occurred",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
}
},
"/v2/history/events/read/next": {
"post": {
"tags": [
"History"
],
"summary": "HistoryReadEventsNext",
"description": "Continue reading an event timeseries inside the OPC UA server historian. See the relevant section of the OPC UA reference specification and respective service documentation for more information.",
"operationId": "HistoryReadEventsNext",
"consumes": [
"application/json",
"application/x-msgpack"
],
"produces": [
"application/json",
"application/x-msgpack"
],
"parameters": [
{
"in": "body",
"name": "body",
"description": "The continuation from a previous read request.",
"required": true,
"schema": {
"$ref": "#/definitions/HistoryReadNextRequestModelRequestEnvelope"
}
}
],
"responses": {
"200": {
"description": "The operation was successful or the response payload contains relevant error information.",
"schema": {
"$ref": "#/definitions/HistoricEventModelArrayHistoryReadNextResponseModel"
}
},
"400": {
"description": "The passed in information is invalid",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"408": {
"description": "The operation timed out.",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"500": {
"description": "An unexpected error occurred",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
}
},
"/v2/history/values/read/first": {
"post": {
"tags": [
"History"
],
"summary": "HistoryReadValues",
"description": "Read a data change timeseries inside the OPC UA server historian. See the relevant section of the OPC UA reference specification and respective service documentation for more information.",
"operationId": "HistoryReadValues",
"consumes": [
"application/json",
"application/x-msgpack"
],
"produces": [
"application/json",
"application/x-msgpack"
],
"parameters": [
{
"in": "body",
"name": "body",
"description": "The values to read in the timeseries.",
"required": true,
"schema": {
"$ref": "#/definitions/ReadValuesDetailsModelHistoryReadRequestModelRequestEnvelope"
}
}
],
"responses": {
"200": {
"description": "The operation was successful or the response payload contains relevant error information.",
"schema": {
"$ref": "#/definitions/HistoricValueModelArrayHistoryReadResponseModel"
}
},
"400": {
"description": "The passed in information is invalid",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"408": {
"description": "The operation timed out.",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"500": {
"description": "An unexpected error occurred",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
}
},
"/v2/history/values/read/first/attimes": {
"post": {
"tags": [
"History"
],
"summary": "HistoryReadValuesAtTimes",
"description": "Read parts of a timeseries inside the OPC UA server historian. See the relevant section of the OPC UA reference specification and respective service documentation for more information.",
"operationId": "HistoryReadValuesAtTimes",
"consumes": [
"application/json",
"application/x-msgpack"
],
"produces": [
"application/json",
"application/x-msgpack"
],
"parameters": [
{
"in": "body",
"name": "body",
"description": "The values to read in the timeseries.",
"required": true,
"schema": {
"$ref": "#/definitions/ReadValuesAtTimesDetailsModelHistoryReadRequestModelRequestEnvelope"
}
}
],
"responses": {
"200": {
"description": "The operation was successful or the response payload contains relevant error information.",
"schema": {
"$ref": "#/definitions/HistoricValueModelArrayHistoryReadResponseModel"
}
},
"400": {
"description": "The passed in information is invalid",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"408": {
"description": "The operation timed out.",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"500": {
"description": "An unexpected error occurred",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
}
},
"/v2/history/values/read/first/processed": {
"post": {
"tags": [
"History"
],
"summary": "HistoryReadProcessedValues",
"description": "Read processed timeseries data inside the OPC UA server historian. See the relevant section of the OPC UA reference specification and respective service documentation for more information.",
"operationId": "HistoryReadProcessedValues",
"consumes": [
"application/json",
"application/x-msgpack"
],
"produces": [
"application/json",
"application/x-msgpack"
],
"parameters": [
{
"in": "body",
"name": "body",
"description": "The values to read in the timeseries.",
"required": true,
"schema": {
"$ref": "#/definitions/ReadProcessedValuesDetailsModelHistoryReadRequestModelRequestEnvelope"
}
}
],
"responses": {
"200": {
"description": "The operation was successful or the response payload contains relevant error information.",
"schema": {
"$ref": "#/definitions/HistoricValueModelArrayHistoryReadResponseModel"
}
},
"400": {
"description": "The passed in information is invalid",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"408": {
"description": "The operation timed out.",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"500": {
"description": "An unexpected error occurred",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
}
},
"/v2/history/values/read/first/modified": {
"post": {
"tags": [
"History"
],
"summary": "HistoryReadModifiedValues",
"description": "Read modified changes in a timeseries inside the OPC UA server historian. See the relevant section of the OPC UA reference specification and respective service documentation for more information.",
"operationId": "HistoryReadModifiedValues",
"consumes": [
"application/json",
"application/x-msgpack"
],
"produces": [
"application/json",
"application/x-msgpack"
],
"parameters": [
{
"in": "body",
"name": "body",
"description": "The values to read in the timeseries.",
"required": true,
"schema": {
"$ref": "#/definitions/ReadModifiedValuesDetailsModelHistoryReadRequestModelRequestEnvelope"
}
}
],
"responses": {
"200": {
"description": "The operation was successful or the response payload contains relevant error information.",
"schema": {
"$ref": "#/definitions/HistoricValueModelArrayHistoryReadResponseModel"
}
},
"400": {
"description": "The passed in information is invalid",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"408": {
"description": "The operation timed out.",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"500": {
"description": "An unexpected error occurred",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
}
},
"/v2/history/values/read/next": {
"post": {
"tags": [
"History"
],
"summary": "HistoryReadValuesNext",
"description": "Continue reading a timeseries inside the OPC UA server historian. See the relevant section of the OPC UA reference specification and respective service documentation for more information.",
"operationId": "HistoryReadValuesNext",
"consumes": [
"application/json",
"application/x-msgpack"
],
"produces": [
"application/json",
"application/x-msgpack"
],
"parameters": [
{
"in": "body",
"name": "body",
"description": "The continuation token from a previous read operation.",
"required": true,
"schema": {
"$ref": "#/definitions/HistoryReadNextRequestModelRequestEnvelope"
}
}
],
"responses": {
"200": {
"description": "The operation was successful or the response payload contains relevant error information.",
"schema": {
"$ref": "#/definitions/HistoricValueModelArrayHistoryReadNextResponseModel"
}
},
"400": {
"description": "The passed in information is invalid",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"408": {
"description": "The operation timed out.",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"500": {
"description": "An unexpected error occurred",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
}
},
"/v2/history/values/read": {
"post": {
"tags": [
"History"
],
"summary": "HistoryStreamValues (only HTTP transport)",
"description": "Read an entire timeseries from an OPC UA server historian as stream. See the relevant section of the OPC UA reference specification and respective service documentation for more information.",
"operationId": "HistoryStreamValues",
"consumes": [
"application/json",
"application/x-msgpack"
],
"produces": [
"application/json",
"application/x-msgpack"
],
"parameters": [
{
"in": "body",
"name": "body",
"description": "The values to read in the timeseries.",
"required": true,
"schema": {
"$ref": "#/definitions/ReadValuesDetailsModelHistoryReadRequestModelRequestEnvelope"
}
}
],
"responses": {
"200": {
"description": "The operation was successful or the response payload contains relevant error information.",
"schema": {
"$ref": "#/definitions/HistoricValueModelIAsyncEnumerable"
}
},
"400": {
"description": "The passed in information is invalid",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"408": {
"description": "The operation timed out.",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"500": {
"description": "An unexpected error occurred",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
}
},
"/v2/history/values/read/modified": {
"post": {
"tags": [
"History"
],
"summary": "HistoryStreamModifiedValues (only HTTP transport)",
"description": "Read an entire modified series from an OPC UA server historian as stream. See the relevant section of the OPC UA reference specification and respective service documentation for more information.",
"operationId": "HistoryStreamModifiedValues",
"consumes": [
"application/json",
"application/x-msgpack"
],
"produces": [
"application/json",
"application/x-msgpack"
],
"parameters": [
{
"in": "body",
"name": "body",
"description": "The values to read in the timeseries.",
"required": true,
"schema": {
"$ref": "#/definitions/ReadModifiedValuesDetailsModelHistoryReadRequestModelRequestEnvelope"
}
}
],
"responses": {
"200": {
"description": "The operation was successful or the response payload contains relevant error information.",
"schema": {
"$ref": "#/definitions/HistoricValueModelIAsyncEnumerable"
}
},
"400": {
"description": "The passed in information is invalid",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"408": {
"description": "The operation timed out.",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"500": {
"description": "An unexpected error occurred",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
}
},
"/v2/history/values/read/attimes": {
"post": {
"tags": [
"History"
],
"summary": "HistoryStreamValuesAtTimes (only HTTP transport)",
"description": "Read specific timeseries data from an OPC UA server historian as stream. See the relevant section of the OPC UA reference specification and respective service documentation for more information.",
"operationId": "HistoryStreamValuesAtTimes",
"consumes": [
"application/json",
"application/x-msgpack"
],
"produces": [
"application/json",
"application/x-msgpack"
],
"parameters": [
{
"in": "body",
"name": "body",
"description": "The values to read in the timeseries.",
"required": true,
"schema": {
"$ref": "#/definitions/ReadValuesAtTimesDetailsModelHistoryReadRequestModelRequestEnvelope"
}
}
],
"responses": {
"200": {
"description": "The operation was successful or the response payload contains relevant error information.",
"schema": {
"$ref": "#/definitions/HistoricValueModelIAsyncEnumerable"
}
},
"400": {
"description": "The passed in information is invalid",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"408": {
"description": "The operation timed out.",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"500": {
"description": "An unexpected error occurred",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
}
},
"/v2/history/values/read/processed": {
"post": {
"tags": [
"History"
],
"summary": "HistoryStreamProcessedValues (only HTTP transport)",
"description": "Read processed timeseries data from an OPC UA server historian as stream. See the relevant section of the OPC UA reference specification and respective service documentation for more information.",
"operationId": "HistoryStreamProcessedValues",
"consumes": [
"application/json",
"application/x-msgpack"
],
"produces": [
"application/json",
"application/x-msgpack"
],
"parameters": [
{
"in": "body",
"name": "body",
"description": "The values to read in the timeseries.",
"required": true,
"schema": {
"$ref": "#/definitions/ReadProcessedValuesDetailsModelHistoryReadRequestModelRequestEnvelope"
}
}
],
"responses": {
"200": {
"description": "The operation was successful or the response payload contains relevant error information.",
"schema": {
"$ref": "#/definitions/HistoricValueModelIAsyncEnumerable"
}
},
"400": {
"description": "The passed in information is invalid",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"408": {
"description": "The operation timed out.",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"500": {
"description": "An unexpected error occurred",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
}
},
"/v2/history/events/read": {
"post": {
"tags": [
"History"
],
"summary": "HistoryStreamEvents (only HTTP transport)",
"description": "Read an entire event timeseries from an OPC UA server historian as stream. See the relevant section of the OPC UA reference specification and respective service documentation for more information.",
"operationId": "HistoryStreamEvents",
"consumes": [
"application/json",
"application/x-msgpack"
],
"produces": [
"application/json",
"application/x-msgpack"
],
"parameters": [
{
"in": "body",
"name": "body",
"description": "The events to read in the timeseries.",
"required": true,
"schema": {
"$ref": "#/definitions/ReadEventsDetailsModelHistoryReadRequestModelRequestEnvelope"
}
}
],
"responses": {
"200": {
"description": "The operation was successful or the response payload contains relevant error information.",
"schema": {
"$ref": "#/definitions/HistoricEventModelIAsyncEnumerable"
}
},
"400": {
"description": "The passed in information is invalid",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"408": {
"description": "The operation timed out.",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"500": {
"description": "An unexpected error occurred",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
}
},
"/v2/writer": {
"put": {
"tags": [
"Writer"
],
"summary": "CreateOrUpdateDataSetWriterEntry",
"description": "Create a published nodes entry for a specific writer group and dataset writer. The entry must specify a unique writer group and dataset writer id. A null value is treated as empty string. If the entry is found it is replaced, if it is not found, it is created. If more than one entry is found with the same writer group and writer id an error is returned. The writer entry provided must include at least one node which will be the initial set. All nodes must specify a unique dataSetFieldId. A null value is treated as empty string. Publishing intervals at node level are also not supported and generate an error. Publishing intervals must be configured at the data set writer level.",
"operationId": "CreateOrUpdateDataSetWriterEntry",
"consumes": [
"application/json",
"application/x-msgpack"
],
"produces": [
"application/json",
"application/x-msgpack"
],
"parameters": [
{
"in": "body",
"name": "body",
"description": "The entry to create for the writer",
"required": true,
"schema": {
"$ref": "#/definitions/PublishedNodesEntryModel"
}
}
],
"responses": {
"200": {
"description": "The item was created"
},
"400": {
"description": "The passed in information is invalid",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"403": {
"description": "A unique item could not be found to update.",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"post": {
"tags": [
"Writer"
],
"summary": "ExpandAndCreateOrUpdateDataSetWriterEntries",
"description": "Create a series of published nodes entries using the provided entry as template. The entry is expanded using expansion configuration provided. Expanded entries are returned one by one with error information if any. The configuration is also saved in the local configuration store. The server must be online and accessible for the expansion to work.",
"operationId": "ExpandAndCreateOrUpdateDataSetWriterEntries",
"consumes": [
"application/json",
"application/x-msgpack"
],
"produces": [
"application/json",
"application/x-msgpack"
],
"parameters": [
{
"in": "body",
"name": "body",
"description": "The entry to create for the writer and node expansion configuration to use",
"required": true,
"schema": {
"$ref": "#/definitions/PublishedNodeExpansionModelPublishedNodesEntryRequestModel"
}
}
],
"responses": {
"200": {
"description": "The item was created",
"schema": {
"$ref": "#/definitions/PublishedNodesEntryModelServiceResponseIAsyncEnumerable"
}
},
"400": {
"description": "The passed in information is invalid",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"403": {
"description": "A unique item could not be found to update.",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"408": {
"description": "The operation timed out.",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"500": {
"description": "An unexpected error occurred",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
}
},
"/v2/writer/{dataSetWriterGroup}/{dataSetWriterId}": {
"get": {
"tags": [
"Writer"
],
"summary": "GetDataSetWriterEntry",
"description": "Get the published nodes entry for a specific writer group and dataset writer. Dedicated errors are returned if no, or no unique entry could be found. The entry does not contain the nodes. Nodes can be retrieved using the GetNodes API.",
"operationId": "GetDataSetWriterEntry",
"produces": [
"application/json",
"application/x-msgpack"
],
"parameters": [
{
"in": "path",
"name": "dataSetWriterGroup",
"description": "The writer group name of the entry",
"required": true,
"type": "string"
},
{
"in": "path",
"name": "dataSetWriterId",
"description": "The data set writer identifer of the entry",
"required": true,
"type": "string"
}
],
"responses": {
"200": {
"description": "The item was found",
"schema": {
"$ref": "#/definitions/PublishedNodesEntryModel"
}
},
"400": {
"description": "The passed in information is invalid",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"403": {
"description": "There is no unique item present.",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"404": {
"description": "The item was not found",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"put": {
"tags": [
"Writer"
],
"summary": "AddOrUpdateNode",
"description": "Add a node to a dedicated data set writer in a writer group. A node must have a unique DataSetFieldId. If the field already exists, the node is updated. If a node does not have a dataset field id an error is returned. Publishing intervals at node level are also not supported and generate an error. Publishing intervals must be configured at the data set writer level.",
"operationId": "AddOrUpdateNode",
"consumes": [
"application/json",
"application/x-msgpack"
],
"produces": [
"application/json",
"application/x-msgpack"
],
"parameters": [
{
"in": "path",
"name": "dataSetWriterGroup",
"description": "The writer group name of the entry",
"required": true,
"type": "string"
},
{
"in": "path",
"name": "dataSetWriterId",
"description": "The data set writer identifer of the entry",
"required": true,
"type": "string"
},
{
"in": "query",
"name": "insertAfterFieldId",
"description": "Field after which to insert the nodes. If not specified, nodes are added at the end of the entry",
"type": "string"
},
{
"in": "body",
"name": "body",
"description": "Node to add or update",
"required": true,
"schema": {
"$ref": "#/definitions/OpcNodeModel"
}
}
],
"responses": {
"200": {
"description": "The item was added"
},
"400": {
"description": "The passed in information is invalid",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"403": {
"description": "A unique item could not be found to update.",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"404": {
"description": "An entry was not found to add the node to",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"delete": {
"tags": [
"Writer"
],
"summary": "RemoveDataSetWriterEntry",
"description": "Remove the published nodes entry for a specific data set writer in a writer group. Dedicated errors are returned if no, or no unique entry could be found.",
"operationId": "RemoveDataSetWriterEntry",
"produces": [
"application/json",
"application/x-msgpack"
],
"parameters": [
{
"in": "path",
"name": "dataSetWriterGroup",
"description": "The writer group name of the entry",
"required": true,
"type": "string"
},
{
"in": "path",
"name": "dataSetWriterId",
"description": "The data set writer identifer of the entry",
"required": true,
"type": "string"
},
{
"in": "query",
"name": "force",
"description": "Force delete all writers even if more than one were found. Does not error when none were found.",
"type": "boolean",
"default": false
}
],
"responses": {
"200": {
"description": "The entry was removed"
},
"400": {
"description": "The passed in information is invalid",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"403": {
"description": "A unique item could not be found to remove.",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"404": {
"description": "The entry to remove was not found",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
}
},
"/v2/writer/{dataSetWriterGroup}/{dataSetWriterId}/add": {
"post": {
"tags": [
"Writer"
],
"summary": "AddOrUpdateNodes",
"description": "Add Nodes to a dedicated data set writer in a writer group. Each node must have a unique DataSetFieldId. If the field already exists, the node is updated. If a node does not have a dataset field id an error is returned. Publishing intervals at node level are also not supported and generate an error. Publishing intervals must be configured at the data set writer level.",
"operationId": "AddOrUpdateNodes",
"consumes": [
"application/json",
"application/x-msgpack"
],
"produces": [
"application/json",
"application/x-msgpack"
],
"parameters": [
{
"in": "path",
"name": "dataSetWriterGroup",
"description": "The writer group name of the entry",
"required": true,
"type": "string"
},
{
"in": "path",
"name": "dataSetWriterId",
"description": "The data set writer identifer of the entry",
"required": true,
"type": "string"
},
{
"in": "query",
"name": "insertAfterFieldId",
"description": "Field after which to insert the nodes. If not specified, nodes are added at the end of the entry",
"type": "string"
},
{
"in": "body",
"name": "body",
"description": "Nodes to add or update",
"required": true,
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/OpcNodeModel"
}
}
}
],
"responses": {
"200": {
"description": "The items were added"
},
"400": {
"description": "The passed in information is invalid",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"403": {
"description": "A unique entry could not be found to add to.",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"404": {
"description": "The entry was not found",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
}
},
"/v2/writer/{dataSetWriterGroup}/{dataSetWriterId}/remove": {
"post": {
"tags": [
"Writer"
],
"summary": "RemoveNodes",
"description": "Remove Nodes that match the provided data set field ids from a data set writer in a writer group. If one of the fields is not found, no error is returned, however, if all fields are not found an error is returned.",
"operationId": "RemoveNodes",
"consumes": [
"application/json",
"application/x-msgpack"
],
"produces": [
"application/json",
"application/x-msgpack"
],
"parameters": [
{
"in": "path",
"name": "dataSetWriterGroup",
"description": "The writer group name of the entry",
"required": true,
"type": "string"
},
{
"in": "path",
"name": "dataSetWriterId",
"description": "The data set writer identifer of the entry",
"required": true,
"type": "string"
},
{
"in": "body",
"name": "body",
"description": "The identifiers of the fields to remove",
"required": true,
"schema": {
"type": "array",
"items": {
"type": "string"
}
}
}
],
"responses": {
"200": {
"description": "Some or all items were removed"
},
"400": {
"description": "The passed in information is invalid",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"403": {
"description": "A unique item could not be found to remove from.",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"404": {
"description": "The entry or all items to remove were not found",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
}
},
"/v2/writer/{dataSetWriterGroup}/{dataSetWriterId}/{dataSetFieldId}": {
"delete": {
"tags": [
"Writer"
],
"summary": "RemoveNode",
"description": "Remove a node with the specified data set field id from a data set writer in a writer group. If the field is not found, an error is returned.",
"operationId": "RemoveNode",
"produces": [
"application/json",
"application/x-msgpack"
],
"parameters": [
{
"in": "path",
"name": "dataSetWriterGroup",
"description": "The writer group name of the entry",
"required": true,
"type": "string"
},
{
"in": "path",
"name": "dataSetWriterId",
"description": "The data set writer identifer of the entry",
"required": true,
"type": "string"
},
{
"in": "path",
"name": "dataSetFieldId",
"description": "Identifier of the field to remove",
"required": true,
"type": "string"
}
],
"responses": {
"200": {
"description": "The item was removed"
},
"400": {
"description": "The passed in information is invalid",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"403": {
"description": "A unique item could not be found to remove from.",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"404": {
"description": "The entry or item to remove was not found",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"get": {
"tags": [
"Writer"
],
"summary": "GetNode",
"description": "Get a node from a dataset in a writer group. Dedicated errors are returned if no, or no unique entry could be found, or the node does not exist.",
"operationId": "GetNode",
"produces": [
"application/json",
"application/x-msgpack"
],
"parameters": [
{
"in": "path",
"name": "dataSetWriterGroup",
"description": "The writer group name of the entry",
"required": true,
"type": "string"
},
{
"in": "path",
"name": "dataSetWriterId",
"description": "The data set writer identifer of the entry",
"required": true,
"type": "string"
},
{
"in": "path",
"name": "dataSetFieldId",
"description": "The data set field id of the node to return",
"required": true,
"type": "string"
}
],
"responses": {
"200": {
"description": "The item was retrieved",
"schema": {
"$ref": "#/definitions/OpcNodeModel"
}
},
"400": {
"description": "The passed in information is invalid",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"403": {
"description": "A unique item could not be found to get a node from.",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"404": {
"description": "The entry or item was not found",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
}
},
"/v2/writer/{dataSetWriterGroup}/{dataSetWriterId}/nodes": {
"get": {
"tags": [
"Writer"
],
"summary": "GetNodes",
"description": "Get Nodes from a data set writer in a writer group. The nodes can optionally be offset from a previous last node identified by the dataSetFieldId and pageanated by the pageSize. If the dataSetFieldId is not found, an empty list is returned. If the dataSetFieldId is not specified, the first page is returned.",
"operationId": "GetNodes",
"produces": [
"application/json",
"application/x-msgpack"
],
"parameters": [
{
"in": "path",
"name": "dataSetWriterGroup",
"description": "The writer group name of the entry",
"required": true,
"type": "string"
},
{
"in": "path",
"name": "dataSetWriterId",
"description": "The data set writer identifer of the entry",
"required": true,
"type": "string"
},
{
"in": "query",
"name": "lastDataSetFieldId",
"description": "the field id after which to start the page. If not specified, nodes from the beginning are returned.",
"type": "string"
},
{
"in": "query",
"name": "pageSize",
"description": "Number of nodes to return",
"type": "integer",
"format": "int32"
}
],
"responses": {
"200": {
"description": "The items were found",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/OpcNodeModel"
}
}
},
"400": {
"description": "The passed in information is invalid",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"403": {
"description": "A unique item could not be found to get nodes from.",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"404": {
"description": "The entry was not found",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
}
},
"x-ms-pageable": {
"nextLinkName": "lastDataSetFieldId"
}
}
},
"/v2/writer/expand": {
"post": {
"tags": [
"Writer"
],
"summary": "ExpandWriter",
"description": "Expands the provided nodes in the entry to a series of published node entries. The provided entry is used template. The entry is expanded using expansion configuration provided. Expanded entries are returned one by one with error information if any. The configuration is not updated but the resulting entries can be modified and later saved in the configuration using the configuration API. The server must be online and accessible for the expansion to work.",
"operationId": "ExpandWriter",
"consumes": [
"application/json",
"application/x-msgpack"
],
"produces": [
"application/json",
"application/x-msgpack"
],
"parameters": [
{
"in": "body",
"name": "body",
"description": "The entry to expand and the node expansion configuration to use. If no configuration is provided a default configuration is used which and no error entries are returned.",
"required": true,
"schema": {
"$ref": "#/definitions/PublishedNodeExpansionModelPublishedNodesEntryRequestModel"
}
}
],
"responses": {
"200": {
"description": "The item was created",
"schema": {
"$ref": "#/definitions/PublishedNodesEntryModelServiceResponseIAsyncEnumerable"
}
},
"400": {
"description": "The passed in information is invalid",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"403": {
"description": "A unique item could not be found to update.",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"408": {
"description": "The operation timed out.",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"500": {
"description": "An unexpected error occurred",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
}
},
"/v2/writer/assets/create": {
"post": {
"tags": [
"Writer"
],
"summary": "CreateOrUpdateAsset (With binary configuration)",
"description": "Creates an asset from the entry in the request and the configuration provided in the Web of Things Asset configuration byte buffer. The entry must contain a data set name which will be used as the asset name. The writer can stay empty. It will be set to the asset id on successful return. The server must support the WoT profile per . The asset will be created and the configuration updated to reference it. A wait time can be provided as optional query parameter to wait until the server has settled after uploading the configuration.",
"operationId": "CreateOrUpdateAsset2",
"consumes": [
"application/json",
"application/x-msgpack"
],
"produces": [
"application/json",
"application/x-msgpack"
],
"parameters": [
{
"in": "body",
"name": "body",
"description": "The contains the entry and WoT file to configure the server to expose the asset.",
"required": true,
"schema": {
"$ref": "#/definitions/ByteArrayPublishedNodeCreateAssetRequestModel"
}
}
],
"responses": {
"200": {
"description": "The asset was created",
"schema": {
"$ref": "#/definitions/PublishedNodesEntryModelServiceResponse"
}
},
"400": {
"description": "The passed in information is invalid",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"403": {
"description": "Forbidden",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"408": {
"description": "The operation timed out.",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"500": {
"description": "An unexpected error occurred",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
}
},
"/v2/writer/assets": {
"post": {
"tags": [
"Writer"
],
"summary": "CreateOrUpdateAsset",
"description": "Creates an asset from the entry in the request and the configuration provided in the Web of Things Asset json configuration property. The entry must contain a data set name which will be used as the asset name. The writer can stay empty. It will be set to the asset id on successful return. The server must support the WoT profile per . The asset will be created and the configuration updated to reference it. A wait time can be provided as optional query parameter to wait until the server has settled after uploading the configuration.",
"operationId": "CreateOrUpdateAsset",
"consumes": [
"application/json",
"application/x-msgpack"
],
"produces": [
"application/json",
"application/x-msgpack"
],
"parameters": [
{
"in": "body",
"name": "body",
"description": "The contains the entry and WoT file to configure the server to expose the asset.",
"required": true,
"schema": {
"$ref": "#/definitions/VariantValuePublishedNodeCreateAssetRequestModel"
}
}
],
"responses": {
"200": {
"description": "The asset was created",
"schema": {
"$ref": "#/definitions/PublishedNodesEntryModelServiceResponse"
}
},
"400": {
"description": "The passed in information is invalid",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"403": {
"description": "Forbidden",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"408": {
"description": "The operation timed out.",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"500": {
"description": "An unexpected error occurred",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
}
},
"/v2/writer/assets/list": {
"post": {
"tags": [
"Writer"
],
"summary": "GetAllAssets",
"description": "Get a list of entries representing the assets in the server. This will not touch the configuration, it will obtain the list from the server. If the server does not support the result will be empty.",
"operationId": "GetAllAssets",
"consumes": [
"application/json",
"application/x-msgpack"
],
"produces": [
"application/json",
"application/x-msgpack"
],
"parameters": [
{
"in": "body",
"name": "body",
"description": "The entry to use to list the assets with the optional header information used when invoking services on the server.",
"required": true,
"schema": {
"$ref": "#/definitions/RequestHeaderModelPublishedNodesEntryRequestModel"
}
}
],
"responses": {
"200": {
"description": "Successfully completed the listing",
"schema": {
"$ref": "#/definitions/PublishedNodesEntryModelServiceResponseIAsyncEnumerable"
}
},
"400": {
"description": "The passed in information is invalid",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"403": {
"description": "Forbidden",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"408": {
"description": "The operation timed out.",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"500": {
"description": "An unexpected error occurred",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
}
},
"/v2/writer/assets/delete": {
"post": {
"tags": [
"Writer"
],
"summary": "DeleteAsset",
"description": "Delete the asset referenced by the entry in the request. The entry must contain the asset id to delete. The asset id is the data set writer id. The entry must also contain the writer group id or deletion of the asset in the configuration will fail before the asset is deleted. The server must support WoT connectivity profile per . First the entry in the configuration will be deleted and then the asset on the server. If deletion of the asset in the configuration fails it will not be deleted in the server. An optional request option force can be used to force the deletion of the asset in the server regardless of the failure to delete the entry in the configuration.",
"operationId": "DeleteAsset",
"consumes": [
"application/json",
"application/x-msgpack"
],
"produces": [
"application/json",
"application/x-msgpack"
],
"parameters": [
{
"in": "body",
"name": "body",
"description": "Request that contains the entry of the asset that should be deleted.",
"required": true,
"schema": {
"$ref": "#/definitions/PublishedNodeDeleteAssetRequestModel"
}
}
],
"responses": {
"200": {
"description": "The asset was deleted successfully",
"schema": {
"$ref": "#/definitions/ServiceResultModel"
}
},
"400": {
"description": "The passed in information is invalid",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"403": {
"description": "Forbidden",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"408": {
"description": "The operation timed out.",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
},
"500": {
"description": "An unexpected error occurred",
"schema": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
}
}
},
"definitions": {
"AdditionalData": {
"description": "Flags that are set by the historian when\r\nreturning archived values.",
"enum": [
"None",
"Partial",
"ExtraData",
"MultipleValues"
],
"type": "string",
"x-ms-enum": {
"name": "AdditionalData",
"modelAsString": false
}
},
"AggregateConfigurationModel": {
"description": "Aggregate configuration",
"type": "object",
"properties": {
"treatUncertainAsBad": {
"description": "Whether to treat uncertain as bad",
"type": "boolean"
},
"percentDataBad": {
"format": "int32",
"description": "Percent of data that is bad",
"type": "integer"
},
"percentDataGood": {
"format": "int32",
"description": "Percent of data that is good",
"type": "integer"
},
"useSlopedExtrapolation": {
"description": "Whether to use sloped extrapolation.",
"type": "boolean"
}
},
"additionalProperties": false
},
"ApplicationInfoModel": {
"description": "Application info model",
"required": [
"applicationId",
"applicationUri"
],
"type": "object",
"properties": {
"applicationId": {
"description": "Unique application id",
"type": "string"
},
"applicationType": {
"$ref": "#/definitions/ApplicationType"
},
"applicationUri": {
"description": "Unique application uri",
"type": "string"
},
"productUri": {
"description": "Product uri",
"type": "string"
},
"applicationName": {
"description": "Default name of application",
"type": "string"
},
"locale": {
"description": "Locale of default name - defaults to \"en\"",
"type": "string"
},
"localizedNames": {
"description": "Localized Names of application keyed on locale",
"type": "object",
"additionalProperties": {
"type": "string"
}
},
"capabilities": {
"description": "The capabilities advertised by the server.",
"type": "array",
"items": {
"type": "string"
}
},
"discoveryUrls": {
"description": "Discovery urls of the server",
"type": "array",
"items": {
"type": "string"
}
},
"discoveryProfileUri": {
"description": "Discovery profile uri",
"type": "string"
},
"gatewayServerUri": {
"description": "Gateway server uri",
"type": "string"
},
"hostAddresses": {
"description": "Host addresses of server application or null",
"type": "array",
"items": {
"type": "string"
}
},
"siteId": {
"description": "Site of the application",
"type": "string",
"example": "productionlineA"
},
"discovererId": {
"description": "Discoverer that registered the application",
"type": "string"
},
"notSeenSince": {
"format": "date-time",
"description": "Last time application was seen if not visible",
"type": "string"
},
"created": {
"$ref": "#/definitions/OperationContextModel"
},
"updated": {
"$ref": "#/definitions/OperationContextModel"
}
},
"additionalProperties": false
},
"ApplicationRegistrationModel": {
"description": "Application with optional list of endpoints",
"required": [
"application"
],
"type": "object",
"properties": {
"application": {
"$ref": "#/definitions/ApplicationInfoModel"
},
"endpoints": {
"description": "List of endpoints for it",
"type": "array",
"items": {
"$ref": "#/definitions/EndpointRegistrationModel"
}
}
},
"additionalProperties": false
},
"ApplicationType": {
"description": "Application type",
"enum": [
"Server",
"Client",
"ClientAndServer",
"DiscoveryServer"
],
"type": "string",
"x-ms-enum": {
"name": "ApplicationType",
"modelAsString": false
}
},
"AttributeReadRequestModel": {
"description": "Attribute to read",
"required": [
"attribute",
"nodeId"
],
"type": "object",
"properties": {
"nodeId": {
"description": "Node to read from or write to (mandatory)",
"minLength": 1,
"type": "string"
},
"attribute": {
"$ref": "#/definitions/NodeAttribute"
}
},
"additionalProperties": false
},
"AttributeReadResponseModel": {
"description": "Attribute value read",
"required": [
"value"
],
"type": "object",
"properties": {
"value": {
"description": "Attribute value",
"type": "object"
},
"errorInfo": {
"$ref": "#/definitions/ServiceResultModel"
}
},
"additionalProperties": false
},
"AttributeWriteRequestModel": {
"description": "Attribute and value to write to it",
"required": [
"attribute",
"nodeId",
"value"
],
"type": "object",
"properties": {
"nodeId": {
"description": "Node to write to (mandatory)",
"minLength": 1,
"type": "string"
},
"attribute": {
"$ref": "#/definitions/NodeAttribute"
},
"value": {
"description": "Value to write (mandatory)",
"type": "object"
}
},
"additionalProperties": false
},
"AttributeWriteResponseModel": {
"description": "Attribute write result",
"type": "object",
"properties": {
"errorInfo": {
"$ref": "#/definitions/ServiceResultModel"
}
},
"additionalProperties": false
},
"AuthenticationMethodModel": {
"description": "Authentication Method model",
"required": [
"id"
],
"type": "object",
"properties": {
"id": {
"description": "Method id",
"minLength": 1,
"type": "string"
},
"credentialType": {
"$ref": "#/definitions/CredentialType"
},
"securityPolicy": {
"description": "Security policy to use when passing credential.",
"type": "string"
},
"configuration": {
"description": "Method specific configuration",
"type": "object"
}
},
"additionalProperties": false
},
"BrowseDirection": {
"description": "Direction to browse",
"enum": [
"Forward",
"Backward",
"Both"
],
"type": "string",
"x-ms-enum": {
"name": "BrowseDirection",
"modelAsString": false
}
},
"BrowseFirstRequestModel": {
"description": "Browse request model",
"type": "object",
"properties": {
"nodeId": {
"description": "Node to browse.\r\n(defaults to root folder).",
"type": "string"
},
"direction": {
"$ref": "#/definitions/BrowseDirection"
},
"view": {
"$ref": "#/definitions/BrowseViewModel"
},
"referenceTypeId": {
"description": "Reference types to browse.\r\n(default: hierarchical).",
"type": "string"
},
"noSubtypes": {
"description": "Whether to include subtypes of the reference type.\r\n(default is false)",
"type": "boolean"
},
"maxReferencesToReturn": {
"format": "int64",
"description": "Max number of references to return. There might\r\nbe less returned as this is up to the client\r\nrestrictions. Set to 0 to return no references\r\nor target nodes.\r\n(default is decided by client e.g. 60)",
"type": "integer"
},
"targetNodesOnly": {
"description": "Whether to collapse all references into a set of\r\nunique target nodes and not show reference\r\ninformation.\r\n(default is false)",
"type": "boolean"
},
"readVariableValues": {
"description": "Whether to read variable values on target nodes.\r\n(default is false)",
"type": "boolean"
},
"nodeClassFilter": {
"description": "Filter returned target nodes by only returning\r\nnodes that have classes defined in this array.\r\n(default: null - all targets are returned)",
"enum": [
"Object",
"Variable",
"Method",
"ObjectType",
"VariableType",
"ReferenceType",
"DataType",
"View"
],
"type": "string",
"items": {
"$ref": "#/definitions/NodeClass"
},
"x-ms-enum": {
"name": "NodeClass",
"modelAsString": false
}
},
"header": {
"$ref": "#/definitions/RequestHeaderModel"
},
"nodeIdsOnly": {
"description": "Whether to only return the raw node id\r\ninformation and not read the target node.\r\n(default is false)",
"type": "boolean"
}
},
"additionalProperties": false
},
"BrowseFirstRequestModelRequestEnvelope": {
"description": "Wraps a request and a connection to bind to a\r\nbody more easily for api that requires a\r\nconnection endpoint",
"required": [
"connection"
],
"type": "object",
"properties": {
"connection": {
"$ref": "#/definitions/ConnectionModel"
},
"request": {
"$ref": "#/definitions/BrowseFirstRequestModel"
}
},
"additionalProperties": false
},
"BrowseFirstResponseModel": {
"description": "Browse response model",
"required": [
"node",
"references"
],
"type": "object",
"properties": {
"node": {
"$ref": "#/definitions/NodeModel"
},
"references": {
"description": "References returned",
"type": "array",
"items": {
"$ref": "#/definitions/NodeReferenceModel"
}
},
"continuationToken": {
"description": "Continuation token if more results pending.",
"type": "string"
},
"errorInfo": {
"$ref": "#/definitions/ServiceResultModel"
}
},
"additionalProperties": false
},
"BrowseNextRequestModel": {
"description": "Request node browsing continuation",
"required": [
"continuationToken"
],
"type": "object",
"properties": {
"continuationToken": {
"description": "Continuation token from previews browse request.\r\n(mandatory)",
"minLength": 1,
"type": "string"
},
"abort": {
"description": "Whether to abort browse and release.\r\n(default: false)",
"type": "boolean"
},
"targetNodesOnly": {
"description": "Whether to collapse all references into a set of\r\nunique target nodes and not show reference\r\ninformation.\r\n(default is false)",
"type": "boolean"
},
"readVariableValues": {
"description": "Whether to read variable values on target nodes.\r\n(default is false)",
"type": "boolean"
},
"header": {
"$ref": "#/definitions/RequestHeaderModel"
},
"nodeIdsOnly": {
"description": "Whether to only return the raw node id\r\ninformation and not read the target node.\r\n(default is false)",
"type": "boolean"
}
},
"additionalProperties": false
},
"BrowseNextRequestModelRequestEnvelope": {
"description": "Wraps a request and a connection to bind to a\r\nbody more easily for api that requires a\r\nconnection endpoint",
"required": [
"connection"
],
"type": "object",
"properties": {
"connection": {
"$ref": "#/definitions/ConnectionModel"
},
"request": {
"$ref": "#/definitions/BrowseNextRequestModel"
}
},
"additionalProperties": false
},
"BrowseNextResponseModel": {
"description": "Result of node browse continuation",
"required": [
"references"
],
"type": "object",
"properties": {
"references": {
"description": "References returned",
"type": "array",
"items": {
"$ref": "#/definitions/NodeReferenceModel"
}
},
"continuationToken": {
"description": "Continuation token if more results pending.",
"type": "string"
},
"errorInfo": {
"$ref": "#/definitions/ServiceResultModel"
}
},
"additionalProperties": false
},
"BrowsePathRequestModel": {
"description": "Browse nodes by path",
"required": [
"browsePaths"
],
"type": "object",
"properties": {
"nodeId": {
"description": "Node to browse from (defaults to root folder).",
"type": "string"
},
"browsePaths": {
"description": "The paths to browse from node.\r\n(mandatory)",
"type": "array",
"items": {
"type": "array",
"items": {
"type": "string"
}
}
},
"readVariableValues": {
"description": "Whether to read variable values on target nodes.\r\n(default is false)",
"type": "boolean"
},
"header": {
"$ref": "#/definitions/RequestHeaderModel"
},
"nodeIdsOnly": {
"description": "Whether to only return the raw node id\r\ninformation and not read the target node.\r\n(default is false)",
"type": "boolean"
}
},
"additionalProperties": false
},
"BrowsePathRequestModelRequestEnvelope": {
"description": "Wraps a request and a connection to bind to a\r\nbody more easily for api that requires a\r\nconnection endpoint",
"required": [
"connection"
],
"type": "object",
"properties": {
"connection": {
"$ref": "#/definitions/ConnectionModel"
},
"request": {
"$ref": "#/definitions/BrowsePathRequestModel"
}
},
"additionalProperties": false
},
"BrowsePathResponseModel": {
"description": "Result of node browse continuation",
"type": "object",
"properties": {
"targets": {
"description": "Targets",
"type": "array",
"items": {
"$ref": "#/definitions/NodePathTargetModel"
}
},
"errorInfo": {
"$ref": "#/definitions/ServiceResultModel"
}
},
"additionalProperties": false
},
"BrowseStreamChunkModelIAsyncEnumerable": {
"type": "object",
"additionalProperties": false
},
"BrowseStreamRequestModel": {
"description": "Browse stream request model",
"type": "object",
"properties": {
"header": {
"$ref": "#/definitions/RequestHeaderModel"
},
"nodeId": {
"description": "Start nodes to browse.\r\n(defaults to root folder).",
"type": "array",
"items": {
"type": "string"
}
},
"direction": {
"$ref": "#/definitions/BrowseDirection"
},
"view": {
"$ref": "#/definitions/BrowseViewModel"
},
"referenceTypeId": {
"description": "Reference types to browse.\r\n(default: hierarchical).",
"type": "string"
},
"noSubtypes": {
"description": "Whether to include subtypes of the reference type.\r\n(default is false)",
"type": "boolean"
},
"readVariableValues": {
"description": "Whether to read variable values on source nodes.\r\n(default is false)",
"type": "boolean"
},
"noRecurse": {
"description": "Whether to not browse recursively\r\n(default is false)",
"type": "boolean"
},
"nodeClassFilter": {
"description": "Filter returned target nodes by only returning\r\nnodes that have classes defined in this array.\r\n(default: null - all targets are returned)",
"enum": [
"Object",
"Variable",
"Method",
"ObjectType",
"VariableType",
"ReferenceType",
"DataType",
"View"
],
"type": "string",
"items": {
"$ref": "#/definitions/NodeClass"
},
"x-ms-enum": {
"name": "NodeClass",
"modelAsString": false
}
}
},
"additionalProperties": false
},
"BrowseStreamRequestModelRequestEnvelope": {
"description": "Wraps a request and a connection to bind to a\r\nbody more easily for api that requires a\r\nconnection endpoint",
"required": [
"connection"
],
"type": "object",
"properties": {
"connection": {
"$ref": "#/definitions/ConnectionModel"
},
"request": {
"$ref": "#/definitions/BrowseStreamRequestModel"
}
},
"additionalProperties": false
},
"BrowseViewModel": {
"description": "View to browse",
"required": [
"viewId"
],
"type": "object",
"properties": {
"viewId": {
"description": "Node of the view to browse",
"minLength": 1,
"type": "string"
},
"version": {
"format": "int64",
"description": "Browses specific version of the view.",
"type": "integer"
},
"timestamp": {
"format": "date-time",
"description": "Browses at or before this timestamp.",
"type": "string"
}
},
"additionalProperties": false
},
"ByteArrayPublishedNodeCreateAssetRequestModel": {
"description": "Request to create an asset in the configuration api",
"required": [
"configuration",
"entry"
],
"type": "object",
"properties": {
"header": {
"$ref": "#/definitions/RequestHeaderModel"
},
"entry": {
"$ref": "#/definitions/PublishedNodesEntryModel"
},
"configuration": {
"format": "byte",
"description": "The asset configuration to use when creating the asset.",
"type": "string"
},
"waitTime": {
"format": "date-span",
"description": "Time to wait after the configuration is applied to perform\r\nthe configuration of the asset in the configuration api.\r\nThis is to let the server settle.",
"type": "string"
}
},
"additionalProperties": false
},
"ChannelDiagnosticModel": {
"description": "Channel diagnostics model",
"required": [
"connection",
"timeStamp"
],
"type": "object",
"properties": {
"timeStamp": {
"format": "date-time",
"description": "Timestamp of the diagnostic information",
"type": "string"
},
"sessionId": {
"description": "The session id if connected. Empty if disconnected.",
"type": "string"
},
"sessionCreated": {
"format": "date-time",
"description": "When the session was created.",
"type": "string"
},
"connection": {
"$ref": "#/definitions/ConnectionModel"
},
"remoteIpAddress": {
"description": "Effective remote ip address used for the\r\nconnection if connected. Empty if disconnected.",
"type": "string"
},
"remotePort": {
"format": "int32",
"description": "The effective remote port used when connected,\r\nnull if disconnected.",
"type": "integer"
},
"localIpAddress": {
"description": "Effective local ip address used for the connection\r\nif connected. Empty if disconnected.",
"type": "string"
},
"localPort": {
"format": "int32",
"description": "The effective local port used when connected,\r\nnull if disconnected.",
"type": "integer"
},
"channelId": {
"format": "int64",
"description": "The id assigned to the channel that the token\r\nbelongs to.",
"type": "integer"
},
"tokenId": {
"format": "int64",
"description": "The id assigned to the token.",
"type": "integer"
},
"createdAt": {
"format": "date-time",
"description": "When the token was created by the server\r\n(refers to the server's clock).",
"type": "string"
},
"lifetime": {
"format": "date-span",
"description": "The lifetime of the token",
"type": "string"
},
"client": {
"$ref": "#/definitions/ChannelKeyModel"
},
"server": {
"$ref": "#/definitions/ChannelKeyModel"
}
},
"additionalProperties": false
},
"ChannelDiagnosticModelIAsyncEnumerable": {
"type": "object",
"additionalProperties": false
},
"ChannelKeyModel": {
"description": "Channel token key model.",
"required": [
"iv",
"key",
"sigLen"
],
"type": "object",
"properties": {
"iv": {
"description": "Iv",
"type": "array",
"items": {
"format": "int32",
"type": "integer"
}
},
"key": {
"description": "Key",
"type": "array",
"items": {
"format": "int32",
"type": "integer"
}
},
"sigLen": {
"format": "int32",
"description": "Signature length",
"type": "integer"
}
},
"additionalProperties": false
},
"ConditionHandlingOptionsModel": {
"description": "Condition handling options model",
"type": "object",
"properties": {
"updateInterval": {
"format": "int32",
"description": "Time interval for sending pending interval updates in seconds.",
"type": "integer"
},
"snapshotInterval": {
"format": "int32",
"description": "Time interval for sending pending interval snapshot in seconds.",
"type": "integer"
},
"refreshRetainedConditionsOnStart": {
"description": "Issue a single ConditionRefresh when the event subscription is\n established (and again after a reconnect) so retained conditions\n already present on the server are delivered once as regular events.\n Unlike SnapshotInterval this does not cache conditions or\n periodically re-send snapshots. Ignored when SnapshotInterval is set.",
"type": "boolean"
}
},
"additionalProperties": false
},
"ConnectionDiagnosticsModelIAsyncEnumerable": {
"type": "object",
"additionalProperties": false
},
"ConnectionModel": {
"description": "Connection model",
"required": [
"endpoint"
],
"type": "object",
"properties": {
"endpoint": {
"$ref": "#/definitions/EndpointModel"
},
"user": {
"$ref": "#/definitions/CredentialModel"
},
"diagnostics": {
"$ref": "#/definitions/DiagnosticsModel"
},
"group": {
"description": "Connection group allows splitting connections\r\nper purpose.",
"type": "string"
},
"locales": {
"description": "Optional list of preferred locales in preference order.",
"type": "array",
"items": {
"type": "string"
}
},
"options": {
"$ref": "#/definitions/ConnectionOptions"
}
},
"additionalProperties": false
},
"ConnectionOptions": {
"description": "Options that can be applied to a connection",
"enum": [
"None",
"UseReverseConnect",
"NoComplexTypeSystem",
"NoSubscriptionTransfer",
"DumpDiagnostics"
],
"type": "string",
"x-ms-enum": {
"name": "ConnectionOptions",
"modelAsString": false
}
},
"ContentFilterElementModel": {
"description": "An expression element in the filter ast",
"type": "object",
"properties": {
"filterOperator": {
"$ref": "#/definitions/FilterOperatorType"
},
"filterOperands": {
"description": "The operands in the element for the operator",
"type": "array",
"items": {
"$ref": "#/definitions/FilterOperandModel"
}
}
},
"additionalProperties": false
},
"ContentFilterModel": {
"description": "Content filter",
"type": "object",
"properties": {
"elements": {
"description": "The flat list of elements in the filter AST",
"type": "array",
"items": {
"$ref": "#/definitions/ContentFilterElementModel"
}
}
},
"additionalProperties": false
},
"CredentialModel": {
"description": "Credential model. For backwards compatibility\r\nthe actual credentials to pass to the server is set\r\nthrough the value property.",
"type": "object",
"properties": {
"type": {
"$ref": "#/definitions/CredentialType"
},
"value": {
"$ref": "#/definitions/UserIdentityModel"
}
},
"additionalProperties": false
},
"CredentialType": {
"description": "Type of credentials to use for authentication",
"enum": [
"None",
"UserName",
"X509Certificate",
"JwtToken"
],
"type": "string",
"x-ms-enum": {
"name": "CredentialType",
"modelAsString": false
}
},
"DataChangeTriggerType": {
"description": "Data change trigger",
"enum": [
"Status",
"StatusValue",
"StatusValueTimestamp"
],
"type": "string",
"x-ms-enum": {
"name": "DataChangeTriggerType",
"modelAsString": false
}
},
"DataLocation": {
"description": "Indicate the data location",
"enum": [
"Raw",
"Calculated",
"Interpolated"
],
"type": "string",
"x-ms-enum": {
"name": "DataLocation",
"modelAsString": false
}
},
"DataSetRoutingMode": {
"description": "Specifies how OPC UA node paths are mapped to message routing paths/topics.\r\nControls automatic topic structure generation from OPC UA address space.\r\nUsed to create a unified namespace when publishing to message brokers\r\nthat support hierarchical routing like MQTT.",
"enum": [
"None",
"UseBrowseNames",
"UseBrowseNamesWithNamespaceIndex"
],
"type": "string",
"x-ms-enum": {
"name": "DataSetRoutingMode",
"modelAsString": false
}
},
"DataTypeMetadataModel": {
"description": "Data type metadata model",
"type": "object",
"properties": {
"dataType": {
"description": "The data type for the instance declaration.",
"type": "string"
}
},
"additionalProperties": false
},
"DeadbandType": {
"description": "Deadband type",
"enum": [
"Absolute",
"Percent"
],
"type": "string",
"x-ms-enum": {
"name": "DeadbandType",
"modelAsString": false
}
},
"DeleteEventsDetailsModel": {
"description": "The events to delete",
"required": [
"eventIds"
],
"type": "object",
"properties": {
"eventIds": {
"description": "Events to delete",
"type": "array",
"items": {
"format": "byte",
"type": "string"
}
}
},
"additionalProperties": false
},
"DeleteEventsDetailsModelHistoryUpdateRequestModel": {
"description": "Request node history update",
"required": [
"details"
],
"type": "object",
"properties": {
"nodeId": {
"description": "Node to update (mandatory without browse path)",
"type": "string"
},
"browsePath": {
"description": "An optional path from NodeId instance to\r\nthe actual node.",
"type": "array",
"items": {
"type": "string"
}
},
"details": {
"$ref": "#/definitions/DeleteEventsDetailsModel"
},
"header": {
"$ref": "#/definitions/RequestHeaderModel"
}
},
"additionalProperties": false
},
"DeleteEventsDetailsModelHistoryUpdateRequestModelRequestEnvelope": {
"description": "Wraps a request and a connection to bind to a\r\nbody more easily for api that requires a\r\nconnection endpoint",
"required": [
"connection"
],
"type": "object",
"properties": {
"connection": {
"$ref": "#/definitions/ConnectionModel"
},
"request": {
"$ref": "#/definitions/DeleteEventsDetailsModelHistoryUpdateRequestModel"
}
},
"additionalProperties": false
},
"DeleteValuesAtTimesDetailsModel": {
"description": "Deletes data at times",
"required": [
"reqTimes"
],
"type": "object",
"properties": {
"reqTimes": {
"description": "The timestamps to delete",
"type": "array",
"items": {
"format": "date-time",
"type": "string"
}
}
},
"additionalProperties": false
},
"DeleteValuesAtTimesDetailsModelHistoryUpdateRequestModel": {
"description": "Request node history update",
"required": [
"details"
],
"type": "object",
"properties": {
"nodeId": {
"description": "Node to update (mandatory without browse path)",
"type": "string"
},
"browsePath": {
"description": "An optional path from NodeId instance to\r\nthe actual node.",
"type": "array",
"items": {
"type": "string"
}
},
"details": {
"$ref": "#/definitions/DeleteValuesAtTimesDetailsModel"
},
"header": {
"$ref": "#/definitions/RequestHeaderModel"
}
},
"additionalProperties": false
},
"DeleteValuesAtTimesDetailsModelHistoryUpdateRequestModelRequestEnvelope": {
"description": "Wraps a request and a connection to bind to a\r\nbody more easily for api that requires a\r\nconnection endpoint",
"required": [
"connection"
],
"type": "object",
"properties": {
"connection": {
"$ref": "#/definitions/ConnectionModel"
},
"request": {
"$ref": "#/definitions/DeleteValuesAtTimesDetailsModelHistoryUpdateRequestModel"
}
},
"additionalProperties": false
},
"DeleteValuesDetailsModel": {
"description": "Delete values",
"type": "object",
"properties": {
"startTime": {
"format": "date-time",
"description": "Start time",
"type": "string"
},
"endTime": {
"format": "date-time",
"description": "End time to delete until",
"type": "string"
}
},
"additionalProperties": false
},
"DeleteValuesDetailsModelHistoryUpdateRequestModel": {
"description": "Request node history update",
"required": [
"details"
],
"type": "object",
"properties": {
"nodeId": {
"description": "Node to update (mandatory without browse path)",
"type": "string"
},
"browsePath": {
"description": "An optional path from NodeId instance to\r\nthe actual node.",
"type": "array",
"items": {
"type": "string"
}
},
"details": {
"$ref": "#/definitions/DeleteValuesDetailsModel"
},
"header": {
"$ref": "#/definitions/RequestHeaderModel"
}
},
"additionalProperties": false
},
"DeleteValuesDetailsModelHistoryUpdateRequestModelRequestEnvelope": {
"description": "Wraps a request and a connection to bind to a\r\nbody more easily for api that requires a\r\nconnection endpoint",
"required": [
"connection"
],
"type": "object",
"properties": {
"connection": {
"$ref": "#/definitions/ConnectionModel"
},
"request": {
"$ref": "#/definitions/DeleteValuesDetailsModelHistoryUpdateRequestModel"
}
},
"additionalProperties": false
},
"DiagnosticsLevel": {
"description": "Level of diagnostics requested in responses",
"enum": [
"None",
"Status",
"Information",
"Debug",
"Verbose"
],
"type": "string",
"x-ms-enum": {
"name": "DiagnosticsLevel",
"modelAsString": false
}
},
"DiagnosticsModel": {
"description": "Diagnostics configuration",
"type": "object",
"properties": {
"level": {
"$ref": "#/definitions/DiagnosticsLevel"
},
"auditId": {
"description": "Client audit log entry.\r\n(default: client generated)",
"type": "string"
},
"timeStamp": {
"format": "date-time",
"description": "Timestamp of request.\r\n(default: client generated)",
"type": "string"
}
},
"additionalProperties": false
},
"DiscoveryCancelRequestModel": {
"description": "Discovery cancel request",
"type": "object",
"properties": {
"id": {
"description": "Id of discovery request",
"type": "string"
},
"context": {
"$ref": "#/definitions/OperationContextModel"
}
},
"additionalProperties": false
},
"DiscoveryConfigModel": {
"description": "Discovery configuration api model",
"type": "object",
"properties": {
"addressRangesToScan": {
"description": "Address ranges to scan (null == all wired nics)",
"type": "string"
},
"networkProbeTimeout": {
"format": "date-span",
"description": "Network probe timeout",
"type": "string"
},
"maxNetworkProbes": {
"format": "int32",
"description": "Max network probes that should ever run.",
"type": "integer"
},
"portRangesToScan": {
"description": "Port ranges to scan (null == all unassigned)",
"type": "string"
},
"portProbeTimeout": {
"format": "date-span",
"description": "Port probe timeout",
"type": "string"
},
"maxPortProbes": {
"format": "int32",
"description": "Max port probes that should ever run.",
"type": "integer"
},
"minPortProbesPercent": {
"format": "int32",
"description": "Probes that must always be there as percent of max.",
"type": "integer"
},
"idleTimeBetweenScans": {
"format": "date-span",
"description": "Delay time between discovery sweeps",
"type": "string"
},
"discoveryUrls": {
"description": "List of preset discovery urls to use",
"type": "array",
"items": {
"type": "string"
}
},
"locales": {
"description": "List of locales to filter with during discovery",
"type": "array",
"items": {
"type": "string"
}
}
},
"additionalProperties": false
},
"DiscoveryMode": {
"description": "Discovery mode to use",
"enum": [
"Off",
"Local",
"Network",
"Fast",
"Scan"
],
"type": "string",
"x-ms-enum": {
"name": "DiscoveryMode",
"modelAsString": false
}
},
"DiscoveryRequestModel": {
"description": "Discovery request",
"type": "object",
"properties": {
"id": {
"description": "Id of discovery request",
"type": "string"
},
"discovery": {
"$ref": "#/definitions/DiscoveryMode"
},
"configuration": {
"$ref": "#/definitions/DiscoveryConfigModel"
},
"context": {
"$ref": "#/definitions/OperationContextModel"
}
},
"additionalProperties": false
},
"EndpointModel": {
"description": "Endpoint model",
"required": [
"url"
],
"type": "object",
"properties": {
"url": {
"description": "Endpoint url to use to connect with",
"minLength": 1,
"type": "string"
},
"alternativeUrls": {
"description": "Alternative endpoint urls that can be used for\r\naccessing and validating the server",
"type": "array",
"items": {
"type": "string"
}
},
"securityMode": {
"$ref": "#/definitions/SecurityMode"
},
"securityPolicy": {
"description": "Security policy uri to use for communication.\r\ndefault to best.",
"type": "string"
},
"certificate": {
"description": "Endpoint certificate thumbprint",
"type": "string"
}
},
"additionalProperties": false
},
"EndpointRegistrationModel": {
"description": "Endpoint registration",
"required": [
"id"
],
"type": "object",
"properties": {
"id": {
"description": "Endpoint identifier which is hashed from\r\nthe supervisor, site and url.",
"minLength": 1,
"type": "string"
},
"endpointUrl": {
"description": "Original endpoint url of the endpoint",
"type": "string"
},
"siteId": {
"description": "Registered site of the endpoint",
"type": "string"
},
"discovererId": {
"description": "Entity that registered and can access the endpoint",
"type": "string"
},
"endpoint": {
"$ref": "#/definitions/EndpointModel"
},
"securityLevel": {
"format": "int32",
"description": "Security level of the endpoint",
"type": "integer"
},
"authenticationMethods": {
"description": "Supported authentication methods that can be selected to\r\nobtain a credential and used to interact with the endpoint.",
"type": "array",
"items": {
"$ref": "#/definitions/AuthenticationMethodModel"
}
}
},
"additionalProperties": false
},
"EventFilterModel": {
"description": "Event filter",
"type": "object",
"properties": {
"selectClauses": {
"description": "Select clauses",
"type": "array",
"items": {
"$ref": "#/definitions/SimpleAttributeOperandModel"
}
},
"whereClause": {
"$ref": "#/definitions/ContentFilterModel"
},
"typeDefinitionId": {
"description": "Simple event Type definition node id",
"type": "string"
}
},
"additionalProperties": false
},
"ExceptionDeviationType": {
"description": "Exception deviation type",
"enum": [
"AbsoluteValue",
"PercentOfValue",
"PercentOfRange",
"PercentOfEURange"
],
"type": "string",
"x-ms-enum": {
"name": "ExceptionDeviationType",
"modelAsString": false
}
},
"FileInfoModel": {
"description": "File info",
"type": "object",
"properties": {
"size": {
"format": "int64",
"description": "The size of the file in Bytes. When a file is\r\ncurrently opened for write, the size might not be\r\naccurate or available.",
"type": "integer"
},
"writable": {
"description": "Whether the file is writable.",
"type": "boolean"
},
"openCount": {
"format": "int32",
"description": "The number of currently valid file handles on\r\nthe file.",
"type": "integer"
},
"mimeType": {
"description": "The media type of the file based on RFC 2046.",
"type": "string"
},
"maxBufferSize": {
"format": "int64",
"description": "The maximum number of bytes of\r\nthe read and write buffers.",
"type": "integer"
},
"lastModified": {
"format": "date-time",
"description": "The time the file was last modified.",
"type": "string"
}
},
"additionalProperties": false
},
"FileInfoModelServiceResponse": {
"description": "Response envelope",
"type": "object",
"properties": {
"result": {
"$ref": "#/definitions/FileInfoModel"
},
"errorInfo": {
"$ref": "#/definitions/ServiceResultModel"
}
},
"additionalProperties": false
},
"FileSystemObjectModel": {
"description": "File system object model",
"type": "object",
"properties": {
"nodeId": {
"description": "The node id of the filesystem object",
"type": "string"
},
"browsePath": {
"description": "The browse path to the filesystem object",
"type": "array",
"items": {
"type": "string"
}
},
"name": {
"description": "The name of the filesystem object",
"type": "string"
}
},
"additionalProperties": false
},
"FileSystemObjectModelIEnumerableServiceResponse": {
"description": "Response envelope",
"type": "object",
"properties": {
"result": {
"description": "Result",
"type": "array",
"items": {
"$ref": "#/definitions/FileSystemObjectModel"
}
},
"errorInfo": {
"$ref": "#/definitions/ServiceResultModel"
}
},
"additionalProperties": false
},
"FileSystemObjectModelRequestEnvelope": {
"description": "Wraps a request and a connection to bind to a\r\nbody more easily for api that requires a\r\nconnection endpoint",
"required": [
"connection"
],
"type": "object",
"properties": {
"connection": {
"$ref": "#/definitions/ConnectionModel"
},
"request": {
"$ref": "#/definitions/FileSystemObjectModel"
}
},
"additionalProperties": false
},
"FileSystemObjectModelServiceResponse": {
"description": "Response envelope",
"type": "object",
"properties": {
"result": {
"$ref": "#/definitions/FileSystemObjectModel"
},
"errorInfo": {
"$ref": "#/definitions/ServiceResultModel"
}
},
"additionalProperties": false
},
"FileSystemObjectModelServiceResponseIAsyncEnumerable": {
"type": "object",
"additionalProperties": false
},
"FilterOperandModel": {
"description": "Filter operand",
"type": "object",
"properties": {
"index": {
"format": "int64",
"description": "Element reference in the outer list if\r\noperand is an element operand",
"type": "integer"
},
"value": {
"description": "Variant value if operand is a literal",
"type": "object"
},
"nodeId": {
"description": "Type definition node id if operand is\r\nsimple or full attribute operand.",
"type": "string"
},
"browsePath": {
"description": "Browse path of attribute operand",
"type": "array",
"items": {
"type": "string"
}
},
"attributeId": {
"$ref": "#/definitions/NodeAttribute"
},
"indexRange": {
"description": "Index range of attribute operand",
"type": "string"
},
"alias": {
"description": "Optional alias to refer to it makeing it a\r\nfull blown attribute operand",
"type": "string"
},
"dataType": {
"description": "Data type if operand is a literal",
"type": "string"
}
},
"additionalProperties": false
},
"FilterOperatorType": {
"description": "Filter operator type",
"enum": [
"Equals",
"IsNull",
"GreaterThan",
"LessThan",
"GreaterThanOrEqual",
"LessThanOrEqual",
"Like",
"Not",
"Between",
"InList",
"And",
"Or",
"Cast",
"InView",
"OfType",
"RelatedTo",
"BitwiseAnd",
"BitwiseOr"
],
"type": "string",
"x-ms-enum": {
"name": "FilterOperatorType",
"modelAsString": false
}
},
"GetConfiguredEndpointsResponseModel": {
"description": "Result of GetConfiguredEndpoints method call",
"type": "object",
"properties": {
"endpoints": {
"description": "Collection of Endpoints in the configuration",
"type": "array",
"items": {
"$ref": "#/definitions/PublishedNodesEntryModel"
}
}
},
"additionalProperties": false
},
"GetConfiguredNodesOnEndpointResponseModel": {
"description": "Result of GetConfiguredNodesOnEndpoint method call",
"type": "object",
"properties": {
"opcNodes": {
"description": "Collection of Nodes configured for a particular endpoint",
"type": "array",
"items": {
"$ref": "#/definitions/OpcNodeModel"
}
}
},
"additionalProperties": false
},
"HeartbeatBehavior": {
"description": "Controls how heartbeat messages are handled for monitored items.\r\nHeartbeats help maintain awareness of node state and connection health\r\neven when values don't change. Can be configured globally via the\r\n--hbb command line option. Works with heartbeat interval settings.",
"enum": [
"WatchdogLKV",
"WatchdogLKG",
"PeriodicLKV",
"PeriodicLKG",
"WatchdogLKVWithUpdatedTimestamps",
"WatchdogLKVDiagnosticsOnly",
"Reserved",
"PeriodicLKVDropValue",
"PeriodicLKGDropValue"
],
"type": "string",
"x-ms-enum": {
"name": "HeartbeatBehavior",
"modelAsString": false
}
},
"HistoricEventModel": {
"description": "Historic event",
"required": [
"eventFields"
],
"type": "object",
"properties": {
"eventFields": {
"description": "The selected fields of the event",
"type": "object",
"items": {
"description": "A variant which can be represented by any value including null.",
"type": "object"
}
}
},
"additionalProperties": false
},
"HistoricEventModelArrayHistoryReadNextResponseModel": {
"description": "History read continuation result",
"required": [
"history"
],
"type": "object",
"properties": {
"history": {
"description": "History as json encoded extension object",
"type": "array",
"items": {
"$ref": "#/definitions/HistoricEventModel"
}
},
"continuationToken": {
"description": "Continuation token if more results pending.",
"type": "string"
},
"errorInfo": {
"$ref": "#/definitions/ServiceResultModel"
}
},
"additionalProperties": false
},
"HistoricEventModelArrayHistoryReadResponseModel": {
"description": "History read results",
"required": [
"history"
],
"type": "object",
"properties": {
"history": {
"description": "History as json encoded extension object",
"type": "array",
"items": {
"$ref": "#/definitions/HistoricEventModel"
}
},
"continuationToken": {
"description": "Continuation token if more results pending.",
"type": "string"
},
"errorInfo": {
"$ref": "#/definitions/ServiceResultModel"
}
},
"additionalProperties": false
},
"HistoricEventModelIAsyncEnumerable": {
"type": "object",
"additionalProperties": false
},
"HistoricValueModel": {
"description": "Historic data",
"type": "object",
"properties": {
"value": {
"description": "The value of data value.",
"type": "object"
},
"dataType": {
"description": "Built in data type of the updated values",
"type": "string"
},
"status": {
"$ref": "#/definitions/ServiceResultModel"
},
"sourceTimestamp": {
"format": "date-time",
"description": "The source timestamp associated with the value.",
"type": "string"
},
"sourcePicoseconds": {
"format": "int32",
"description": "Additional resolution for the source timestamp.",
"type": "integer"
},
"serverTimestamp": {
"format": "date-time",
"description": "The server timestamp associated with the value.",
"type": "string"
},
"serverPicoseconds": {
"format": "int32",
"description": "Additional resolution for the server timestamp.",
"type": "integer"
},
"dataLocation": {
"$ref": "#/definitions/DataLocation"
},
"modificationInfo": {
"$ref": "#/definitions/ModificationInfoModel"
},
"additionalData": {
"$ref": "#/definitions/AdditionalData"
}
},
"additionalProperties": false
},
"HistoricValueModelArrayHistoryReadNextResponseModel": {
"description": "History read continuation result",
"required": [
"history"
],
"type": "object",
"properties": {
"history": {
"description": "History as json encoded extension object",
"type": "array",
"items": {
"$ref": "#/definitions/HistoricValueModel"
}
},
"continuationToken": {
"description": "Continuation token if more results pending.",
"type": "string"
},
"errorInfo": {
"$ref": "#/definitions/ServiceResultModel"
}
},
"additionalProperties": false
},
"HistoricValueModelArrayHistoryReadResponseModel": {
"description": "History read results",
"required": [
"history"
],
"type": "object",
"properties": {
"history": {
"description": "History as json encoded extension object",
"type": "array",
"items": {
"$ref": "#/definitions/HistoricValueModel"
}
},
"continuationToken": {
"description": "Continuation token if more results pending.",
"type": "string"
},
"errorInfo": {
"$ref": "#/definitions/ServiceResultModel"
}
},
"additionalProperties": false
},
"HistoricValueModelIAsyncEnumerable": {
"type": "object",
"additionalProperties": false
},
"HistoryConfigurationModel": {
"description": "History configuration",
"type": "object",
"properties": {
"stepped": {
"description": "specifies whether the historical data was\r\ncollected in such a manner that it should\r\nbe displayed as SlopedInterpolation (sloped\r\nline between points) or as SteppedInterpolation\r\n(vertically-connected horizontal lines\r\nbetween points) when raw data is examined.\r\nThis Property also effects how some\r\nAggregates are calculated",
"type": "boolean"
},
"definition": {
"description": "Human readable string that specifies how\r\nthe value of this HistoricalDataNode is\r\ncalculated",
"type": "string"
},
"maxTimeInterval": {
"format": "date-span",
"description": "Specifies the maximum interval between data\r\npoints in the history repository\r\nregardless of their value change",
"type": "string"
},
"minTimeInterval": {
"format": "date-span",
"description": "Specifies the minimum interval between\r\ndata points in the history repository\r\nregardless of their value change",
"type": "string"
},
"exceptionDeviation": {
"format": "double",
"description": "Minimum amount that the data for the\r\nNode shall change in order for the change\r\nto be reported to the history database",
"type": "number"
},
"exceptionDeviationType": {
"$ref": "#/definitions/ExceptionDeviationType"
},
"startOfArchive": {
"format": "date-time",
"description": "The date before which there is no data in the\r\narchive either online or offline",
"type": "string"
},
"endOfArchive": {
"format": "date-time",
"description": "The last date of the archive",
"type": "string"
},
"startOfOnlineArchive": {
"format": "date-time",
"description": "Date of the earliest data in the online archive",
"type": "string"
},
"serverTimestampSupported": {
"description": "Server supports ServerTimestamps in addition\r\nto SourceTimestamp",
"type": "boolean"
},
"aggregateConfiguration": {
"$ref": "#/definitions/AggregateConfigurationModel"
},
"aggregateFunctions": {
"description": "Allowed aggregate functions",
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"additionalProperties": false
},
"HistoryConfigurationRequestModel": {
"description": "Request history configuration",
"required": [
"nodeId"
],
"type": "object",
"properties": {
"header": {
"$ref": "#/definitions/RequestHeaderModel"
},
"nodeId": {
"description": "Continuation token to continue reading more\r\nresults.",
"minLength": 1,
"type": "string"
}
},
"additionalProperties": false
},
"HistoryConfigurationRequestModelRequestEnvelope": {
"description": "Wraps a request and a connection to bind to a\r\nbody more easily for api that requires a\r\nconnection endpoint",
"required": [
"connection"
],
"type": "object",
"properties": {
"connection": {
"$ref": "#/definitions/ConnectionModel"
},
"request": {
"$ref": "#/definitions/HistoryConfigurationRequestModel"
}
},
"additionalProperties": false
},
"HistoryConfigurationResponseModel": {
"description": "Response with history configuration",
"type": "object",
"properties": {
"configuration": {
"$ref": "#/definitions/HistoryConfigurationModel"
},
"errorInfo": {
"$ref": "#/definitions/ServiceResultModel"
}
},
"additionalProperties": false
},
"HistoryReadNextRequestModel": {
"description": "Request node history read continuation",
"required": [
"continuationToken"
],
"type": "object",
"properties": {
"continuationToken": {
"description": "Continuation token to continue reading more\r\nresults.",
"minLength": 1,
"type": "string"
},
"abort": {
"description": "Abort reading after this read",
"type": "boolean"
},
"header": {
"$ref": "#/definitions/RequestHeaderModel"
}
},
"additionalProperties": false
},
"HistoryReadNextRequestModelRequestEnvelope": {
"description": "Wraps a request and a connection to bind to a\r\nbody more easily for api that requires a\r\nconnection endpoint",
"required": [
"connection"
],
"type": "object",
"properties": {
"connection": {
"$ref": "#/definitions/ConnectionModel"
},
"request": {
"$ref": "#/definitions/HistoryReadNextRequestModel"
}
},
"additionalProperties": false
},
"HistoryServerCapabilitiesModel": {
"description": "History Server capabilities",
"type": "object",
"properties": {
"supportsHistoricData": {
"description": "Server supports historic data access",
"type": "boolean"
},
"supportsHistoricEvents": {
"description": "Server supports historic event access",
"type": "boolean"
},
"maxReturnDataValues": {
"format": "int64",
"description": "Maximum number of historic data values that will\r\nbe returned in a single read.",
"type": "integer"
},
"maxReturnEventValues": {
"format": "int64",
"description": "Maximum number of events that will be returned\r\nin a single read.",
"type": "integer"
},
"insertDataCapability": {
"description": "Server supports inserting data",
"type": "boolean"
},
"replaceDataCapability": {
"description": "Server supports replacing historic data",
"type": "boolean"
},
"updateDataCapability": {
"description": "Server supports updating historic data",
"type": "boolean"
},
"deleteRawCapability": {
"description": "Server supports deleting raw data",
"type": "boolean"
},
"deleteAtTimeCapability": {
"description": "Server support deleting data at times",
"type": "boolean"
},
"insertEventCapability": {
"description": "Server supports inserting events",
"type": "boolean"
},
"replaceEventCapability": {
"description": "Server supports replacing events",
"type": "boolean"
},
"updateEventCapability": {
"description": "Server supports updating events",
"type": "boolean"
},
"deleteEventCapability": {
"description": "Server supports deleting events",
"type": "boolean"
},
"insertAnnotationCapability": {
"description": "Allows inserting annotations",
"type": "boolean"
},
"serverTimestampSupported": {
"description": "Server supports ServerTimestamps in addition\r\nto SourceTimestamp",
"type": "boolean"
},
"aggregateFunctions": {
"description": "Supported aggregate functions",
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"additionalProperties": false
},
"HistoryUpdateOperation": {
"description": "History update type",
"enum": [
"Insert",
"Replace",
"Update",
"Delete"
],
"type": "string",
"x-ms-enum": {
"name": "HistoryUpdateOperation",
"modelAsString": false
}
},
"HistoryUpdateResponseModel": {
"description": "History update results",
"type": "object",
"properties": {
"results": {
"description": "List of results from the update operation",
"type": "array",
"items": {
"$ref": "#/definitions/ServiceResultModel"
}
},
"errorInfo": {
"$ref": "#/definitions/ServiceResultModel"
}
},
"additionalProperties": false
},
"InstanceDeclarationModel": {
"description": "Instance declaration meta data",
"type": "object",
"properties": {
"rootTypeId": {
"description": "The type that the declaration belongs to.",
"type": "string"
},
"browsePath": {
"description": "The browse path",
"type": "array",
"items": {
"type": "string"
}
},
"displayPath": {
"description": "A localized path to the instance declaration.",
"type": "string"
},
"modellingRule": {
"description": "The modelling rule for the instance\r\ndeclaration (i.e. Mandatory or Optional).",
"type": "string"
},
"nodeId": {
"description": "The node id for the instance.",
"type": "string"
},
"nodeClass": {
"$ref": "#/definitions/NodeClass"
},
"browseName": {
"description": "The browse name for the instance declaration.",
"type": "string"
},
"displayName": {
"description": "The display name for the instance declaration.",
"type": "string"
},
"description": {
"description": "The description for the instance declaration.",
"type": "string"
},
"variable": {
"$ref": "#/definitions/VariableMetadataModel"
},
"method": {
"$ref": "#/definitions/MethodMetadataModel"
},
"overriddenDeclaration": {
"$ref": "#/definitions/InstanceDeclarationModel"
},
"modellingRuleId": {
"description": "The modelling rule node id.",
"type": "string"
}
},
"additionalProperties": false
},
"MessageEncoding": {
"description": "Specifies the encoding format for OPC UA Publisher messages.\r\nCan be combined with compression and reversibility flags to control\r\nmessage format characteristics.",
"enum": [
"Uadp",
"Json",
"Xml",
"Avro",
"IsReversible",
"JsonReversible",
"IsGzipCompressed",
"JsonGzip",
"AvroGzip",
"JsonReversibleGzip"
],
"type": "string",
"x-ms-enum": {
"name": "MessageEncoding",
"modelAsString": false
}
},
"MessagingMode": {
"description": "Defines how OPC UA Publisher formats and structures messages for transport.\r\nEach mode provides different trade-offs between message completeness,\r\nbandwidth efficiency, and compatibility with different message consumers.",
"enum": [
"PubSub",
"Samples",
"FullNetworkMessages",
"FullSamples",
"DataSetMessages",
"SingleDataSetMessage",
"DataSets",
"SingleDataSet",
"RawDataSets",
"SingleRawDataSet"
],
"type": "string",
"x-ms-enum": {
"name": "MessagingMode",
"modelAsString": false
}
},
"MethodCallArgumentModel": {
"description": "Method argument model",
"type": "object",
"properties": {
"value": {
"description": "Initial value or value to use",
"type": "object"
},
"dataType": {
"description": "Data type Id of the value (from meta data)",
"type": "string"
}
},
"additionalProperties": false
},
"MethodCallRequestModel": {
"description": "Call request model",
"type": "object",
"properties": {
"methodId": {
"description": "Method id of method to call.",
"type": "string"
},
"objectId": {
"description": "Context of the method, i.e. an object or object type\r\nnode. If null then the method is called in the context\r\nof the inverse HasComponent reference of the MethodId\r\nif it exists.",
"type": "string"
},
"arguments": {
"description": "Arguments for the method - null means no args",
"type": "array",
"items": {
"$ref": "#/definitions/MethodCallArgumentModel"
}
},
"methodBrowsePath": {
"description": "An optional component path from the node identified by\r\nMethodId or from a resolved objectId to the actual\r\nmethod node.",
"type": "array",
"items": {
"type": "string"
}
},
"objectBrowsePath": {
"description": "An optional component path from the node identified by\r\nObjectId to the actual object or objectType node.\r\nIf ObjectId is null, the root node (i=84) is used",
"type": "array",
"items": {
"type": "string"
}
},
"header": {
"$ref": "#/definitions/RequestHeaderModel"
}
},
"additionalProperties": false
},
"MethodCallRequestModelRequestEnvelope": {
"description": "Wraps a request and a connection to bind to a\r\nbody more easily for api that requires a\r\nconnection endpoint",
"required": [
"connection"
],
"type": "object",
"properties": {
"connection": {
"$ref": "#/definitions/ConnectionModel"
},
"request": {
"$ref": "#/definitions/MethodCallRequestModel"
}
},
"additionalProperties": false
},
"MethodCallResponseModel": {
"description": "Method call response model",
"required": [
"results"
],
"type": "object",
"properties": {
"results": {
"description": "Resulting output values of method call",
"type": "array",
"items": {
"$ref": "#/definitions/MethodCallArgumentModel"
}
},
"errorInfo": {
"$ref": "#/definitions/ServiceResultModel"
}
},
"additionalProperties": false
},
"MethodMetadataArgumentModel": {
"description": "Method argument metadata model",
"required": [
"name",
"type"
],
"type": "object",
"properties": {
"name": {
"description": "Name of the argument",
"type": "string"
},
"description": {
"description": "Optional description of argument",
"type": "string"
},
"type": {
"$ref": "#/definitions/NodeModel"
},
"defaultValue": {
"description": "Default value for the argument",
"type": "object"
},
"valueRank": {
"$ref": "#/definitions/NodeValueRank"
},
"arrayDimensions": {
"format": "int64",
"description": "Optional Array dimension of argument",
"type": "integer",
"items": {
"format": "int64",
"type": "integer"
}
},
"errorInfo": {
"$ref": "#/definitions/ServiceResultModel"
}
},
"additionalProperties": false
},
"MethodMetadataModel": {
"description": "Method metadata model",
"type": "object",
"properties": {
"objectId": {
"description": "Id of object that the method is a component of",
"type": "string"
},
"inputArguments": {
"description": "Input argument meta data",
"type": "array",
"items": {
"$ref": "#/definitions/MethodMetadataArgumentModel"
}
},
"outputArguments": {
"description": "output argument meta data",
"type": "array",
"items": {
"$ref": "#/definitions/MethodMetadataArgumentModel"
}
}
},
"additionalProperties": false
},
"MethodMetadataRequestModel": {
"description": "Method metadata request model",
"type": "object",
"properties": {
"methodId": {
"description": "Method id of method to call.\r\n(Required)",
"type": "string"
},
"methodBrowsePath": {
"description": "An optional component path from the node identified by\r\nMethodId to the actual method node.",
"type": "array",
"items": {
"type": "string"
}
},
"header": {
"$ref": "#/definitions/RequestHeaderModel"
}
},
"additionalProperties": false
},
"MethodMetadataRequestModelRequestEnvelope": {
"description": "Wraps a request and a connection to bind to a\r\nbody more easily for api that requires a\r\nconnection endpoint",
"required": [
"connection"
],
"type": "object",
"properties": {
"connection": {
"$ref": "#/definitions/ConnectionModel"
},
"request": {
"$ref": "#/definitions/MethodMetadataRequestModel"
}
},
"additionalProperties": false
},
"MethodMetadataResponseModel": {
"description": "Result of method metadata query",
"type": "object",
"properties": {
"objectId": {
"description": "Id of object that the method is a component of",
"type": "string"
},
"inputArguments": {
"description": "Input argument meta data",
"type": "array",
"items": {
"$ref": "#/definitions/MethodMetadataArgumentModel"
}
},
"outputArguments": {
"description": "output argument meta data",
"type": "array",
"items": {
"$ref": "#/definitions/MethodMetadataArgumentModel"
}
},
"errorInfo": {
"$ref": "#/definitions/ServiceResultModel"
}
},
"additionalProperties": false
},
"ModelChangeHandlingOptionsModel": {
"description": "Describes how model changes are published",
"type": "object",
"properties": {
"rebrowseIntervalTimespan": {
"format": "date-span",
"description": "Rebrowse period",
"type": "string"
}
},
"additionalProperties": false
},
"ModificationInfoModel": {
"description": "Modification information",
"type": "object",
"properties": {
"modificationTime": {
"format": "date-time",
"description": "Modification time",
"type": "string"
},
"updateType": {
"$ref": "#/definitions/HistoryUpdateOperation"
},
"userName": {
"description": "User who made the change",
"type": "string"
}
},
"additionalProperties": false
},
"MonitoredItemWatchdogCondition": {
"description": "Defines the conditions that trigger the subscription watchdog behavior.\r\nWorks in conjunction with OpcNodeWatchdogTimespan to determine when nodes\r\nare considered \"late\" and DataSetWriterWatchdogBehavior to define the response.\r\nCan be configured globally via the --mwc command line option.",
"enum": [
"WhenAllAreLate",
"WhenAnyIsLate"
],
"type": "string",
"x-ms-enum": {
"name": "MonitoredItemWatchdogCondition",
"modelAsString": false
}
},
"NamespaceFormat": {
"description": "Namespace serialization format for node ids\r\nand qualified names.",
"enum": [
"Uri",
"Index",
"Expanded",
"ExpandedWithNamespace0"
],
"type": "string",
"x-ms-enum": {
"name": "NamespaceFormat",
"modelAsString": false
}
},
"NodeAccessLevel": {
"description": "Flags that can be set for the AccessLevel attribute.",
"enum": [
"None",
"CurrentRead",
"CurrentWrite",
"HistoryRead",
"HistoryWrite",
"SemanticChange",
"StatusWrite",
"TimestampWrite",
"NonatomicRead",
"NonatomicWrite",
"WriteFullArrayOnly"
],
"type": "string",
"x-ms-enum": {
"name": "NodeAccessLevel",
"modelAsString": false
}
},
"NodeAccessRestrictions": {
"description": "Flags that can be read or written in the\r\nAccessRestrictions attribute.",
"enum": [
"None",
"SigningRequired",
"EncryptionRequired",
"SessionRequired"
],
"type": "string",
"x-ms-enum": {
"name": "NodeAccessRestrictions",
"modelAsString": false
}
},
"NodeAttribute": {
"description": "Node attribute identifiers",
"enum": [
"NodeId",
"NodeClass",
"BrowseName",
"DisplayName",
"Description",
"WriteMask",
"UserWriteMask",
"IsAbstract",
"Symmetric",
"InverseName",
"ContainsNoLoops",
"EventNotifier",
"Value",
"DataType",
"ValueRank",
"ArrayDimensions",
"AccessLevel",
"UserAccessLevel",
"MinimumSamplingInterval",
"Historizing",
"Executable",
"UserExecutable",
"DataTypeDefinition",
"RolePermissions",
"UserRolePermissions",
"AccessRestrictions"
],
"type": "string",
"x-ms-enum": {
"name": "NodeAttribute",
"modelAsString": false
}
},
"NodeClass": {
"description": "Node class",
"enum": [
"Object",
"Variable",
"Method",
"ObjectType",
"VariableType",
"ReferenceType",
"DataType",
"View"
],
"type": "string",
"x-ms-enum": {
"name": "NodeClass",
"modelAsString": false
}
},
"NodeEventNotifier": {
"description": "Flags that can be set for the EventNotifier attribute.",
"enum": [
"SubscribeToEvents",
"HistoryRead",
"HistoryWrite"
],
"type": "string",
"x-ms-enum": {
"name": "NodeEventNotifier",
"modelAsString": false
}
},
"NodeIdModel": {
"description": "Represents an OPC UA Node identifier in string format.\r\nUsed to identify nodes in the OPC UA address space for monitoring.\r\nSupports standard OPC UA node ID formats including:\r\n- Namespace index and identifier (ns=0;i=85)\r\n- String identifiers (ns=2;s=MyNode)\r\n- GUID identifiers (ns=3;g=8599E6C4-6667-4FB7-9EA9-C6896B31DB02)\r\n- Opaque/binary identifiers (ns=4;b=FA34E...)",
"type": "object",
"properties": {
"Identifier": {
"description": "The node identifier string in standard OPC UA notation.\r\nFormat: ns={namespace};{type}={value}\r\nExamples:\r\n- ns=0;i=85 (numeric identifier)\r\n- ns=2;s=MyNode (string identifier)\r\n- ns=3;g=8599E6C4-6667-4FB7-9EA9-C6896B31DB02 (GUID)\r\n- ns=4;b=FA34E... (binary/opaque)\r\nIf namespace index is omitted, ns=0 is assumed.",
"type": "string"
}
},
"additionalProperties": false
},
"NodeMetadataRequestModel": {
"description": "Node metadata request model",
"type": "object",
"properties": {
"header": {
"$ref": "#/definitions/RequestHeaderModel"
},
"nodeId": {
"description": "Node id of the type.\r\n(Required)",
"type": "string"
},
"browsePath": {
"description": "An optional component path from the node identified by\r\nNodeId to the actual node.",
"type": "array",
"items": {
"type": "string"
}
}
},
"additionalProperties": false
},
"NodeMetadataRequestModelRequestEnvelope": {
"description": "Wraps a request and a connection to bind to a\r\nbody more easily for api that requires a\r\nconnection endpoint",
"required": [
"connection"
],
"type": "object",
"properties": {
"connection": {
"$ref": "#/definitions/ConnectionModel"
},
"request": {
"$ref": "#/definitions/NodeMetadataRequestModel"
}
},
"additionalProperties": false
},
"NodeMetadataResponseModel": {
"description": "Node metadata model",
"type": "object",
"properties": {
"nodeId": {
"description": "The node id of the node",
"type": "string"
},
"nodeClass": {
"$ref": "#/definitions/NodeClass"
},
"displayName": {
"description": "The display name of the node.",
"type": "string"
},
"description": {
"description": "The description for the node.",
"type": "string"
},
"variableMetadata": {
"$ref": "#/definitions/VariableMetadataModel"
},
"dataTypeMetadata": {
"$ref": "#/definitions/DataTypeMetadataModel"
},
"nethodMetadata": {
"$ref": "#/definitions/MethodMetadataModel"
},
"typeDefinition": {
"$ref": "#/definitions/TypeDefinitionModel"
},
"errorInfo": {
"$ref": "#/definitions/ServiceResultModel"
}
},
"additionalProperties": false
},
"NodeModel": {
"description": "Node model",
"required": [
"nodeId"
],
"type": "object",
"properties": {
"nodeClass": {
"$ref": "#/definitions/NodeClass"
},
"displayName": {
"description": "Display name",
"type": "string"
},
"nodeId": {
"description": "Id of node.\r\n(Mandatory).",
"minLength": 1,
"type": "string"
},
"description": {
"description": "Description if any",
"type": "string"
},
"browseName": {
"description": "Browse name",
"type": "string"
},
"value": {
"description": "Value of variable or default value of the\r\nsubtyped variable in case node is a variable\r\ntype, otherwise null.",
"type": "object"
},
"sourcePicoseconds": {
"format": "int32",
"description": "Pico seconds part of when value was read at source.",
"type": "integer"
},
"sourceTimestamp": {
"format": "date-time",
"description": "Timestamp of when value was read at source.",
"type": "string"
},
"serverPicoseconds": {
"format": "int32",
"description": "Pico seconds part of when value was read at server.",
"type": "integer"
},
"serverTimestamp": {
"format": "date-time",
"description": "Timestamp of when value was read at server.",
"type": "string"
},
"errorInfo": {
"$ref": "#/definitions/ServiceResultModel"
},
"accessRestrictions": {
"$ref": "#/definitions/NodeAccessRestrictions"
},
"writeMask": {
"format": "int64",
"description": "Default write mask for the node\r\n(default: 0)",
"type": "integer"
},
"userWriteMask": {
"format": "int64",
"description": "User write mask for the node\r\n(default: 0)",
"type": "integer"
},
"isAbstract": {
"description": "Whether type is abstract, if type can\r\nbe abstract. Null if not type node.\r\n(default: false)",
"type": "boolean"
},
"containsNoLoops": {
"description": "Whether a view contains loops. Null if\r\nnot a view.",
"type": "boolean"
},
"eventNotifier": {
"$ref": "#/definitions/NodeEventNotifier"
},
"executable": {
"description": "If method node class, whether method can\r\nbe called.",
"type": "boolean"
},
"userExecutable": {
"description": "If method node class, whether method can\r\nbe called by current user.\r\n(default: false if not executable)",
"type": "boolean"
},
"dataTypeDefinition": {
"description": "Data type definition in case node is a\r\ndata type node and definition is available,\r\notherwise null.",
"type": "object"
},
"accessLevel": {
"$ref": "#/definitions/NodeAccessLevel"
},
"userAccessLevel": {
"$ref": "#/definitions/NodeAccessLevel"
},
"dataType": {
"description": "If variable the datatype of the variable.\r\n(default: null)",
"type": "string"
},
"valueRank": {
"$ref": "#/definitions/NodeValueRank"
},
"arrayDimensions": {
"format": "int64",
"description": "Array dimensions of variable or variable type.\r\n(default: empty array)",
"type": "integer",
"items": {
"format": "int64",
"type": "integer"
}
},
"historizing": {
"description": "Whether the value of a variable is historizing.\r\n(default: false)",
"type": "boolean"
},
"minimumSamplingInterval": {
"format": "double",
"description": "Minimum sampling interval for the variable\r\nvalue, otherwise null if not a variable node.\r\n(default: null)",
"type": "number"
},
"inverseName": {
"description": "Inverse name of the reference if the node is\r\na reference type, otherwise null.",
"type": "string"
},
"symmetric": {
"description": "Whether the reference is symmetric in case\r\nthe node is a reference type, otherwise\r\nnull.",
"type": "boolean"
},
"rolePermissions": {
"description": "Role permissions",
"type": "array",
"items": {
"$ref": "#/definitions/RolePermissionModel"
}
},
"userRolePermissions": {
"description": "User Role permissions",
"type": "array",
"items": {
"$ref": "#/definitions/RolePermissionModel"
}
},
"typeDefinitionId": {
"description": "Optional type definition of the node",
"type": "string"
},
"children": {
"description": "Whether node has children which are defined as\r\nany forward hierarchical references.\r\n(default: unknown)",
"type": "boolean"
}
},
"additionalProperties": false
},
"NodePathTargetModel": {
"description": "Node path target",
"required": [
"browsePath",
"target"
],
"type": "object",
"properties": {
"browsePath": {
"description": "The target browse path",
"type": "array",
"items": {
"type": "string"
}
},
"target": {
"$ref": "#/definitions/NodeModel"
},
"remainingPathIndex": {
"format": "int32",
"description": "Remaining index in path",
"type": "integer"
}
},
"additionalProperties": false
},
"NodeReferenceModel": {
"description": "Reference model",
"required": [
"target"
],
"type": "object",
"properties": {
"referenceTypeId": {
"description": "Reference Type id",
"type": "string"
},
"direction": {
"$ref": "#/definitions/BrowseDirection"
},
"target": {
"$ref": "#/definitions/NodeModel"
},
"errorInfo": {
"$ref": "#/definitions/ServiceResultModel"
}
},
"additionalProperties": false
},
"NodeType": {
"description": "The node type",
"enum": [
"Unknown",
"Variable",
"DataVariable",
"Property",
"DataType",
"View",
"Object",
"Event",
"Interface"
],
"type": "string",
"x-ms-enum": {
"name": "NodeType",
"modelAsString": false
}
},
"NodeValueRank": {
"description": "Constants defined for the ValueRank attribute.",
"enum": [
"OneOrMoreDimensions",
"OneDimension",
"TwoDimensions",
"ScalarOrOneDimension",
"Any",
"Scalar"
],
"type": "string",
"x-ms-enum": {
"name": "NodeValueRank",
"modelAsString": false
}
},
"OpcAuthenticationMode": {
"description": "Specifies the authentication method used to connect to OPC UA servers.\r\nThe chosen mode determines how the Publisher authenticates itself to servers.\r\nWhen using credentials or certificates, encrypted communication should be enabled\r\nvia UseSecurity or EndpointSecurityMode to protect authentication secrets.",
"enum": [
"Anonymous",
"UsernamePassword",
"Certificate"
],
"type": "string",
"x-ms-enum": {
"name": "OpcAuthenticationMode",
"modelAsString": false
}
},
"OpcNodeModel": {
"description": "Defines configuration for monitoring an OPC UA node.\r\nContains settings for sampling, filtering, publishing\r\nbehavior, and message routing. This model allows\r\nfine-grained control over how each node's data is collected\r\nand transmitted. Part of a PublishedNodesEntryModel's\r\nOpcNodes collection.",
"type": "object",
"properties": {
"Id": {
"description": "The OPC UA node identifier string in standard notation.\r\nFormat: ns={namespace};{type}={value} Required field that\r\nuniquely identifies the node to monitor. Examples:\r\n\"ns=2;s=MyTag\", \"ns=0;i=2258\" See OPC UA Part 3 for node\r\nID format specifications.",
"type": "string"
},
"OpcSamplingInterval": {
"format": "int32",
"description": "Server-side sampling rate in milliseconds. Determines how\r\noften the server checks for value changes. Default from\r\nDataSetSamplingInterval if not specified. Should be less\r\nthan or equal to OpcPublishingInterval for effective\r\nsampling. Ignored when OpcSamplingIntervalTimespan is\r\ndefined.",
"type": "integer"
},
"OpcSamplingIntervalTimespan": {
"format": "date-span",
"description": "Server-side sampling rate as a TimeSpan. Takes precedence\r\nover OpcSamplingInterval if both are defined. Provides\r\nmore precise control over timing than milliseconds.\r\nExample: \"00:00:00.100\" for 100ms sampling. Should be\r\nless than or equal to OpcPublishingIntervalTimespan for\r\neffective sampling.",
"type": "string"
},
"DataSetFieldId": {
"description": "Custom identifier for this node in dataset messages. Used\r\nas field name in message payloads if specified. Falls back\r\nto DisplayName if not provided. Helps correlate data with\r\nspecific measurements or tags. Must be unique within a\r\ndataset writer.",
"type": "string"
},
"DataSetClassFieldId": {
"format": "uuid",
"description": "Unique identifier for correlating fields with dataset\r\nclass metadata. Links monitored item data with dataset\r\nclass field definitions. Used to provide context and type\r\ninformation for the field. Must match corresponding field\r\nID in dataset class metadata. Important for proper message\r\ndecoding by subscribers.",
"type": "string"
},
"DisplayName": {
"description": "Human-readable name for the monitored item. Used as field\r\nidentifier if DataSetFieldId not specified. Can be\r\noverridden by actual node DisplayName if\r\nFetchDisplayName=true. Helps identify data sources in\r\nmessages and logs. Should be unique within a dataset for\r\nclear identification.",
"type": "string"
},
"QueueSize": {
"format": "int64",
"description": "Size of the server-side queue for this monitored item.\r\nControls how many values can be buffered during slow\r\nconnections. Values are discarded according to DiscardNew\r\nwhen queue is full. Default is 1 unless otherwise\r\nconfigured. Larger queues help prevent data loss but use\r\nmore server memory.",
"type": "integer"
},
"DiscardNew": {
"description": "Controls queue overflow behavior for monitored items.\r\nTrue: Discard newest values when queue is full (LIFO).\r\nFalse: Discard oldest values when queue is full (FIFO,\r\ndefault). Use True to preserve historical data during\r\nconnection issues. Use False to maintain current value\r\naccuracy.",
"type": "boolean"
},
"DataChangeTrigger": {
"$ref": "#/definitions/DataChangeTriggerType"
},
"DeadbandType": {
"$ref": "#/definitions/DeadbandType"
},
"DeadbandValue": {
"format": "double",
"description": "Deadband value of the data change filter to apply. Does\r\nnot apply to events",
"type": "number"
},
"EventFilter": {
"$ref": "#/definitions/EventFilterModel"
},
"ConditionHandling": {
"$ref": "#/definitions/ConditionHandlingOptionsModel"
},
"BrowsePath": {
"description": "Relative path through the address space to reach target\r\nnode. Sequence of browse names from starting node to\r\ntarget. Example: [\"Objects\", \"Server\", \"Data\",\r\n\"Dynamic\", \"Scalar\"]. Allows referencing nodes through\r\nhierarchical structure. Alternative to direct node ID\r\naddressing.",
"type": "array",
"items": {
"type": "string"
}
},
"AttributeId": {
"$ref": "#/definitions/NodeAttribute"
},
"IndexRange": {
"description": "Range specification for array or string values. Format:\r\n\"start:end\" or \"index\". Examples: \"0:3\" (first 4\r\nelements), \"7\" (8th element) Allows monitoring specific\r\narray elements. Default: null (entire value monitored)",
"type": "string"
},
"Topic": {
"description": "Custom routing topic/queue for this node's messages.\r\nOverrides writer and writer group queue settings. Enables\r\nnode-specific message routing patterns. Messages are split\r\ninto separate network messages when nodes have different\r\ntopics. Format depends on transport (e.g., MQTT topic\r\nsyntax).",
"type": "string"
},
"QualityOfService": {
"$ref": "#/definitions/QoS"
},
"HeartbeatBehavior": {
"$ref": "#/definitions/HeartbeatBehavior"
},
"HeartbeatInterval": {
"format": "int32",
"description": "Node-specific heartbeat interval in milliseconds.\r\nOverrides DefaultHeartbeatInterval from parent\r\nconfiguration. Controls how often heartbeat messages are\r\ngenerated. Set to 0 to disable heartbeats for this node.\r\nIgnored when HeartbeatIntervalTimespan is defined.",
"type": "integer"
},
"HeartbeatIntervalTimespan": {
"format": "date-span",
"description": "Node-specific heartbeat interval as TimeSpan. Takes\r\nprecedence over HeartbeatInterval if both defined.\r\nOverrides DefaultHeartbeatIntervalTimespan setting.\r\nProvides more precise control over timing. Example:\r\n\"00:00:10\" for 10-second interval.",
"type": "string"
},
"SkipFirst": {
"description": "Controls handling of initial value notification. True:\r\nSuppress first value from monitored item. False: Publish\r\ninitial value (default). Useful when only changes are\r\nrelevant. Server always sends initial value on creation.",
"type": "boolean"
},
"OpcPublishingInterval": {
"format": "int32",
"description": "Client-side publishing rate in milliseconds. Controls how\r\noften the server sends notifications. Must be >=\r\nOpcSamplingInterval for proper operation. Overrides\r\nDataSetPublishingInterval when specified. Ignored if\r\nOpcPublishingIntervalTimespan is defined.",
"type": "integer"
},
"OpcPublishingIntervalTimespan": {
"format": "date-span",
"description": "OpcPublishingInterval as TimeSpan.",
"type": "string"
},
"UseCyclicRead": {
"description": "Use periodic reads instead of monitored items. True: Sample\r\nusing CyclicRead service calls False: Use standard\r\nsubscription monitoring (default) Useful for nodes that\r\ndon't support monitoring or when consistent sampling\r\ntiming is required. Consider CyclicReadMaxAge when\r\nenabled.",
"type": "boolean"
},
"RegisterNode": {
"description": "Optimize node access using RegisterNodes service. True:\r\nRegister node for faster subsequent reads False: Use\r\ndirect node access (default) Can improve performance for\r\nfrequently accessed nodes. Server must support\r\nRegisterNodes service.",
"type": "boolean"
},
"FetchDisplayName": {
"description": "Retrieve node's DisplayName attribute on startup. True:\r\nQuery and use actual display name False: Use configured\r\nDisplayName (default) Overrides DataSetFetchDisplayNames\r\nsetting. Used for human-readable field identification.",
"type": "boolean"
},
"ModelChangeHandling": {
"$ref": "#/definitions/ModelChangeHandlingOptionsModel"
},
"TriggeredNodes": {
"description": "Collection of dependent nodes triggered by this node. Read\r\natomically when parent node changes. Limited to one level\r\nof triggering (no cascading). Useful for maintaining data\r\nconsistency between related measurements. Changes to\r\ntriggered nodes must be made through parent node's API\r\ncalls.",
"type": "array",
"items": {
"$ref": "#/definitions/OpcNodeModel"
}
},
"CyclicReadMaxAge": {
"format": "int32",
"description": "Maximum age for cached values in cyclic reads. Specified in\r\nmilliseconds. Default: 0 (no caching) Only applies when\r\nUseCyclicRead is true. Server may return cached value if\r\nwithin max age. Helps reduce server load in high-frequency\r\nreads. Ignored when CyclicReadMaxAgeTimespan is defined.",
"type": "integer"
},
"CyclicReadMaxAgeTimespan": {
"format": "date-span",
"description": "Maximum age for cached values in cyclic reads as TimeSpan.\r\nTakes precedence over CyclicReadMaxAge if both defined.\r\nOnly applies when UseCyclicRead is true. Default:\r\n\"00:00:00\" (no caching) Example: \"00:00:00.500\" for 500ms\r\nmax cache age. Helps optimize read performance vs data\r\nfreshness.",
"type": "string"
},
"TypeDefinitionId": {
"description": "A type definition id that references a well known opc ua\r\ntype definition node for the variable represented by this\r\nnode entry.",
"type": "string"
},
"MethodMetadata": {
"$ref": "#/definitions/MethodMetadataModel"
},
"ExpandedNodeId": {
"description": "Alternative node identifier with full namespace URI. Same\r\nas Id but uses complete namespace URI instead of index.\r\nFormat: \"nsu={uri};{type}={value}\" Example:\r\n\"nsu=http://opcfoundation.org/UA/;i=2258\" Provides more\r\nportable node identification across servers.",
"type": "string"
}
},
"additionalProperties": false
},
"OperationContextModel": {
"description": "Operation log model",
"type": "object",
"properties": {
"AuthorityId": {
"description": "User",
"type": "string"
},
"Time": {
"format": "date-time",
"description": "Operation time",
"type": "string"
}
},
"additionalProperties": false
},
"OperationLimitsModel": {
"description": "Server limits",
"type": "object",
"properties": {
"minSupportedSampleRate": {
"format": "double",
"description": "Min supported sampling rate",
"type": "number"
},
"maxBrowseContinuationPoints": {
"format": "int32",
"description": "Max browse continuation points",
"type": "integer"
},
"maxQueryContinuationPoints": {
"format": "int32",
"description": "Max query continuation points",
"type": "integer"
},
"maxHistoryContinuationPoints": {
"format": "int32",
"description": "Max history continuation points",
"type": "integer"
},
"maxArrayLength": {
"format": "int64",
"description": "Max array length supported",
"type": "integer"
},
"maxStringLength": {
"format": "int64",
"description": "Max string length supported",
"type": "integer"
},
"maxByteStringLength": {
"format": "int64",
"description": "Max byte buffer length supported",
"type": "integer"
},
"maxNodesPerBrowse": {
"format": "int64",
"description": "Max nodes that can be part of a single browse call.",
"type": "integer"
},
"maxNodesPerRead": {
"format": "int64",
"description": "Max nodes that can be read in single read call",
"type": "integer"
},
"maxNodesPerWrite": {
"format": "int64",
"description": "Max nodes that can be read in single write call",
"type": "integer"
},
"maxNodesPerMethodCall": {
"format": "int64",
"description": "Max nodes that can be read in single method call",
"type": "integer"
},
"maxNodesPerHistoryReadData": {
"format": "int64",
"description": "Number of nodes that can be in a History Read value call",
"type": "integer"
},
"maxNodesPerHistoryReadEvents": {
"format": "int64",
"description": "Number of nodes that can be in a History Read events call",
"type": "integer"
},
"maxNodesPerHistoryUpdateData": {
"format": "int64",
"description": "Number of nodes that can be in a History Update call",
"type": "integer"
},
"maxNodesPerHistoryUpdateEvents": {
"format": "int64",
"description": "Number of nodes that can be in a History events update call",
"type": "integer"
},
"maxNodesPerRegisterNodes": {
"format": "int64",
"description": "Max nodes that can be registered at once",
"type": "integer"
},
"maxNodesPerTranslatePathsToNodeIds": {
"format": "int64",
"description": "Max nodes that can be part of a browse path",
"type": "integer"
},
"maxNodesPerNodeManagement": {
"format": "int64",
"description": "Max nodes that can be added or removed in a single call.",
"type": "integer"
},
"maxMonitoredItemsPerCall": {
"format": "int64",
"description": "Max monitored items that can be updated at once.",
"type": "integer"
}
},
"additionalProperties": false
},
"ProblemDetails": {
"type": "object",
"properties": {
"type": {
"type": "string"
},
"title": {
"type": "string"
},
"status": {
"format": "int32",
"type": "integer"
},
"detail": {
"type": "string"
},
"instance": {
"type": "string"
}
},
"additionalProperties": { }
},
"PublishBulkRequestModel": {
"description": "Publish in bulk request",
"type": "object",
"properties": {
"nodesToAdd": {
"description": "Node to add",
"type": "array",
"items": {
"$ref": "#/definitions/PublishedItemModel"
}
},
"nodesToRemove": {
"description": "Node to remove",
"type": "array",
"items": {
"type": "string"
}
},
"header": {
"$ref": "#/definitions/RequestHeaderModel"
}
},
"additionalProperties": false
},
"PublishBulkRequestModelRequestEnvelope": {
"description": "Wraps a request and a connection to bind to a\r\nbody more easily for api that requires a\r\nconnection endpoint",
"required": [
"connection"
],
"type": "object",
"properties": {
"connection": {
"$ref": "#/definitions/ConnectionModel"
},
"request": {
"$ref": "#/definitions/PublishBulkRequestModel"
}
},
"additionalProperties": false
},
"PublishBulkResponseModel": {
"description": "Result of bulk request",
"type": "object",
"properties": {
"nodesToAdd": {
"description": "Node to add",
"type": "array",
"items": {
"$ref": "#/definitions/ServiceResultModel"
}
},
"nodesToRemove": {
"description": "Node to remove",
"type": "array",
"items": {
"$ref": "#/definitions/ServiceResultModel"
}
}
},
"additionalProperties": false
},
"PublishDiagnosticInfoModel": {
"description": "Model for a diagnostic info.",
"type": "object",
"properties": {
"endpoints": {
"description": "Endpoints covered by the diagnostics model.\r\nThe endpoints are all part of the same writer\r\ngroup. Specify",
"type": "array",
"items": {
"$ref": "#/definitions/PublishedNodesEntryModel"
}
},
"sentMessagesPerSec": {
"format": "double",
"description": "SentMessagesPerSec",
"type": "number"
},
"ingestionDuration": {
"format": "date-span",
"description": "IngestionDuration",
"type": "string"
},
"ingressDataChanges": {
"format": "int64",
"description": "IngressDataChanges",
"type": "integer"
},
"ingressValueChanges": {
"format": "int64",
"description": "IngressValueChanges",
"type": "integer"
},
"ingressBatchBlockBufferSize": {
"format": "int64",
"description": "IngressBatchBlockBufferSize",
"type": "integer"
},
"encodingBlockInputSize": {
"format": "int64",
"description": "EncodingBlockInputSize",
"type": "integer"
},
"encodingBlockOutputSize": {
"format": "int64",
"description": "EncodingBlockOutputSize",
"type": "integer"
},
"encoderNotificationsProcessed": {
"format": "int64",
"description": "EncoderNotificationsProcessed",
"type": "integer"
},
"encoderNotificationsDropped": {
"format": "int64",
"description": "EncoderNotificationsDropped",
"type": "integer"
},
"encoderIoTMessagesProcessed": {
"format": "int64",
"description": "EncoderIoTMessagesProcessed",
"type": "integer"
},
"encoderAvgNotificationsMessage": {
"format": "double",
"description": "EncoderAvgNotificationsMessage",
"type": "number"
},
"encoderAvgIoTMessageBodySize": {
"format": "double",
"description": "EncoderAvgIoTMessageBodySize",
"type": "number"
},
"encoderAvgIoTChunkUsage": {
"format": "double",
"description": "EncoderAvgIoTChunkUsage",
"type": "number"
},
"estimatedIoTChunksPerDay": {
"format": "double",
"description": "EstimatedIoTChunksPerDay",
"type": "number"
},
"outgressInputBufferCount": {
"format": "int64",
"description": "OutgressInputBufferCount",
"type": "integer"
},
"outgressInputBufferDropped": {
"format": "int64",
"description": "OutgressInputBufferDropped",
"type": "integer"
},
"outgressIoTMessageCount": {
"format": "int64",
"description": "OutgressIoTMessageCount",
"type": "integer"
},
"connectionRetries": {
"format": "int64",
"description": "ConnectionRetries",
"type": "integer"
},
"opcEndpointConnected": {
"description": "OpcEndpointConnected",
"type": "boolean"
},
"monitoredOpcNodesSucceededCount": {
"format": "int64",
"description": "MonitoredOpcNodesSucceededCount",
"type": "integer"
},
"monitoredOpcNodesFailedCount": {
"format": "int64",
"description": "MonitoredOpcNodesFailedCount",
"type": "integer"
},
"ingressEventNotifications": {
"format": "int64",
"description": "Number of incoming event notifications",
"type": "integer"
},
"ingressEvents": {
"format": "int64",
"description": "Total incoming events so far.",
"type": "integer"
},
"encoderMaxMessageSplitRatio": {
"format": "double",
"description": "Encoder max message split ratio",
"type": "number"
},
"ingressDataChangesInLastMinute": {
"format": "int64",
"description": "Data changes received in the last minute",
"type": "integer"
},
"ingressValueChangesInLastMinute": {
"format": "int64",
"description": "Value changes received in the last minute",
"type": "integer"
},
"ingressHeartbeats": {
"format": "int64",
"description": "Number of heartbeats of the total value changes",
"type": "integer"
},
"ingressCyclicReads": {
"format": "int64",
"description": "Number of cyclic reads of the total value changes",
"type": "integer"
}
},
"additionalProperties": false
},
"PublishStartRequestModel": {
"description": "Publish request",
"required": [
"item"
],
"type": "object",
"properties": {
"item": {
"$ref": "#/definitions/PublishedItemModel"
},
"header": {
"$ref": "#/definitions/RequestHeaderModel"
}
},
"additionalProperties": false
},
"PublishStartRequestModelRequestEnvelope": {
"description": "Wraps a request and a connection to bind to a\r\nbody more easily for api that requires a\r\nconnection endpoint",
"required": [
"connection"
],
"type": "object",
"properties": {
"connection": {
"$ref": "#/definitions/ConnectionModel"
},
"request": {
"$ref": "#/definitions/PublishStartRequestModel"
}
},
"additionalProperties": false
},
"PublishStartResponseModel": {
"description": "Result of publish request",
"type": "object",
"properties": {
"errorInfo": {
"$ref": "#/definitions/ServiceResultModel"
}
},
"additionalProperties": false
},
"PublishStopRequestModel": {
"description": "Unpublish request",
"required": [
"nodeId"
],
"type": "object",
"properties": {
"nodeId": {
"description": "Node of published item to unpublish",
"minLength": 1,
"type": "string"
},
"header": {
"$ref": "#/definitions/RequestHeaderModel"
}
},
"additionalProperties": false
},
"PublishStopRequestModelRequestEnvelope": {
"description": "Wraps a request and a connection to bind to a\r\nbody more easily for api that requires a\r\nconnection endpoint",
"required": [
"connection"
],
"type": "object",
"properties": {
"connection": {
"$ref": "#/definitions/ConnectionModel"
},
"request": {
"$ref": "#/definitions/PublishStopRequestModel"
}
},
"additionalProperties": false
},
"PublishStopResponseModel": {
"description": "Result of publish stop request",
"type": "object",
"properties": {
"errorInfo": {
"$ref": "#/definitions/ServiceResultModel"
}
},
"additionalProperties": false
},
"PublishedItemListRequestModel": {
"description": "Request list of published items",
"type": "object",
"properties": {
"continuationToken": {
"description": "Continuation token or null to start",
"type": "string"
},
"header": {
"$ref": "#/definitions/RequestHeaderModel"
}
},
"additionalProperties": false
},
"PublishedItemListRequestModelRequestEnvelope": {
"description": "Wraps a request and a connection to bind to a\r\nbody more easily for api that requires a\r\nconnection endpoint",
"required": [
"connection"
],
"type": "object",
"properties": {
"connection": {
"$ref": "#/definitions/ConnectionModel"
},
"request": {
"$ref": "#/definitions/PublishedItemListRequestModel"
}
},
"additionalProperties": false
},
"PublishedItemListResponseModel": {
"description": "List of published nodes",
"type": "object",
"properties": {
"items": {
"description": "Monitored items",
"type": "array",
"items": {
"$ref": "#/definitions/PublishedItemModel"
}
},
"continuationToken": {
"description": "Continuation or null if final",
"type": "string"
}
},
"additionalProperties": false
},
"PublishedItemModel": {
"description": "A monitored and published item",
"required": [
"nodeId"
],
"type": "object",
"properties": {
"nodeId": {
"description": "Variable node monitored",
"minLength": 1,
"type": "string"
},
"displayName": {
"description": "Display name of the variable node monitored",
"type": "string"
},
"publishingInterval": {
"format": "date-span",
"description": "Publishing interval to use",
"type": "string"
},
"samplingInterval": {
"format": "date-span",
"description": "Sampling interval to use",
"type": "string"
},
"heartbeatInterval": {
"format": "date-span",
"description": "Heartbeat interval to use",
"type": "string"
}
},
"additionalProperties": false
},
"PublishedNodeDeleteAssetRequestModel": {
"description": "Contains entry in the published nodes configuration representing\r\nthe asset as well as an optional request header.",
"required": [
"entry"
],
"type": "object",
"properties": {
"header": {
"$ref": "#/definitions/RequestHeaderModel"
},
"entry": {
"$ref": "#/definitions/PublishedNodesEntryModel"
},
"force": {
"description": "The asset on the server is deleted no matter whether\r\nthe removal in the publisher configuration was successful\r\nor not.",
"type": "boolean"
}
},
"additionalProperties": false
},
"PublishedNodeExpansionModel": {
"description": "\r\nNode expansion configuration. Configures how an entry should\r\n be expanded into configuration. If a node is an object it is\r\n expanded to all contained variables.\r\n\r\nIf a node is an object type, all objects of that type are\r\n searched from the object root node. These found objects are\r\n then expanded into their variables.\r\n\r\nIf the node is a variable, the variable is expanded to include\r\n all contained variables or properties. All entries will have\r\n the data set field id configured as data set class id.\r\n\r\nIf a node is a variable type, then all variables of this type\r\n are found and added to a single writer entry. Note: That by\r\n themselves these variables are no further expanded.",
"type": "object",
"properties": {
"header": {
"$ref": "#/definitions/RequestHeaderModel"
},
"createSingleWriter": {
"description": "By default the api will create a new distinct\r\nwriter per expanded object. Objects that cannot\r\nbe expanded are part of the originally provided\r\nwriter. The writer id is then post fixed with\r\nthe data set field id of the object node field.\r\nIf true, all variables of all expanded nodes are\r\nadded to the originally provided entry.",
"type": "boolean"
},
"maxLevelsToExpand": {
"format": "int64",
"description": "Max number of levels to expand an instance node\r\nsuch as an object or variable into resulting\r\nvariables.\r\nIf the node is a variable instance to start with\r\nbut the Azure.IIoT.OpcUa.Publisher.Models.PublishedNodeExpansionModel.ExcludeRootIfInstanceNode\r\nproperty is set to excluded it, then setting this\r\nvalue to 0 is equivalent to a value of 1 to get\r\nthe first level of variables contained in the\r\nvariable, but not the variable itself. Otherwise\r\nonly the variable itelf is returned. If the node\r\nis an object instance, 0 is equivalent to\r\ninfinite and all levels are expanded.",
"type": "integer"
},
"noSubTypesOfTypeNodes": {
"description": "Do not consider subtypes of an object type when\r\nsearching for instances of the type.",
"type": "boolean"
},
"excludeRootIfInstanceNode": {
"description": "If the node is an object or variable instance do\r\nnot include it but only the instances underneath\r\nthem.",
"type": "boolean"
},
"maxDepth": {
"format": "int64",
"description": "Max browse depth for object search operation or\r\nwhen searching for an instance of a type.\r\nTo only expand an object to its variables set\r\nthis value to 0. The depth of expansion of a\r\nvariable itself can be controlled via the\r\nAzure.IIoT.OpcUa.Publisher.Models.PublishedNodeExpansionModel.MaxLevelsToExpand\" property.\r\nIf the root object is excluded a value of 0 is\r\nequivalent to a value of 1 to get the first level\r\nof objects contained in the object but not the\r\nobject itself, e.g. a folder object.",
"type": "integer"
},
"flattenTypeInstance": {
"description": "If false, treats instance nodes found just like\r\nobjects that need to be expanded. In case of a\r\ncompanion spec object type this could be set to\r\ntrue, flattening the structure into a single\r\nwriter that represents the object in its entirety.\r\nHowever, when using generic interfaces that can\r\nbe implemented across objects in the address\r\nspace and only its variables are important, it\r\nmight be useful to set this to false.",
"type": "boolean"
},
"includeMethods": {
"description": "Include not just variables and events but also\r\nmethods when expanding an object.",
"type": "boolean"
},
"discardErrors": {
"description": "Errors are silently discarded and only\r\nsuccessfully expanded nodes are returned.",
"type": "boolean"
},
"useBrowseNameAsDisplayName": {
"description": "Use the browse name as display name for nodes. The\r\ndisplay name is rooted in the parent node from\r\nwhich browsing occurs, or just the browse name if\r\nthe browse root is not a parent.",
"type": "boolean"
}
},
"additionalProperties": false
},
"PublishedNodeExpansionModelPublishedNodesEntryRequestModel": {
"description": "Wraps a request and a published nodes entry to bind to a\r\nbody more easily for api that requires an entry and additional\r\nconfiguration",
"required": [
"entry"
],
"type": "object",
"properties": {
"entry": {
"$ref": "#/definitions/PublishedNodesEntryModel"
},
"request": {
"$ref": "#/definitions/PublishedNodeExpansionModel"
}
},
"additionalProperties": false
},
"PublishedNodesEntryModel": {
"description": "\r\nConfiguration model for OPC UA Publisher that defines how\r\n OPC UA nodes are published to messaging systems. Used to\r\n configure connections to OPC UA servers, setup node\r\n monitoring, and control message publishing.\r\n\r\nKey features:\r\n - Endpoint configuration and security settings\r\n - Writer group and dataset organization\r\n - Publishing intervals and sampling controls\r\n - Message batching and triggering\r\n - Subscription and monitoring options\r\n - Heartbeat and watchdog behaviors\r\n - Security modes and authentication\r\n\r\nFor detailed configuration options, see individual\r\n properties.",
"required": [
"EndpointUrl"
],
"type": "object",
"properties": {
"Version": {
"format": "int64",
"description": "A monotonically increasing number identifying the change\r\nversion. At this point the version number is informational\r\nonly, but should be provided in API requests if available.\r\nNot used inside file based configuration.",
"type": "integer"
},
"LastChangeDateTime": {
"format": "date-time",
"description": "The time the Publisher configuration was last updated.\r\nRead only and informational only.",
"type": "string"
},
"DataSetWriterId": {
"description": "The unique identifier for a data set writer used to collect\r\nOPC UA nodes to be semantically grouped and published with\r\nthe same publishing interval. When not specified, uses a\r\nstring representing the common publishing interval of the\r\nnodes in the data set collection. This attribute uniquely\r\nidentifies a data set within a DataSetWriterGroup. The\r\nuniqueness is determined using the provided DataSetWriterId\r\nand the publishing interval of the grouped OpcNodes.",
"type": "string"
},
"DataSetWriterGroup": {
"description": "The data set writer group collecting datasets defined for a\r\ncertain endpoint. This attribute is used to identify the\r\nsession opened into the server. The default value consists\r\nof the EndpointUrl string, followed by a deterministic hash\r\ncomposed of the EndpointUrl, UseSecurity,\r\nOpcAuthenticationMode, UserName and Password attributes.",
"type": "string"
},
"OpcNodes": {
"description": "The DataSet collection grouping the nodes to be published\r\nfor the specific DataSetWriter. Each node can specify\r\nmonitoring parameters including sampling intervals, deadband\r\nsettings, and event filtering options. Contains variable\r\nnodes or event notifiers to monitor.",
"type": "array",
"items": {
"$ref": "#/definitions/OpcNodeModel"
}
},
"DataSetClassId": {
"format": "uuid",
"description": "The optional dataset class id as it shall appear in dataset\r\nmessages and dataset metadata. Used to uniquely identify the\r\ntype of dataset being published. Default: Guid.Empty",
"type": "string"
},
"DataSetName": {
"description": "The optional name of the dataset as it will appear in the\r\ndataset metadata. Used for identification and organization\r\nof datasets.",
"type": "string"
},
"DataSetPublishingInterval": {
"format": "int32",
"description": "The publishing interval used for a grouped set of nodes\r\nunder a certain DataSetWriter, expressed in milliseconds.\r\nWhen a specific node underneath DataSetWriter defines\r\nOpcPublishingInterval (or Timespan), its value will\r\noverwrite this interval and potentially split the data set\r\nwriter into more than one subscription. Ignored when\r\nDataSetPublishingIntervalTimespan is present.",
"type": "integer"
},
"DataSetPublishingIntervalTimespan": {
"format": "date-span",
"description": "The publishing interval for a dataset writer, expressed as a\r\nTimeSpan value. Takes precedence over\r\nDataSetPublishingInterval if defined. Provides more precise\r\ncontrol over timing than milliseconds. When overridden by\r\nnode-specific intervals, the writer may split into multiple\r\nsubscriptions.",
"type": "string"
},
"DataSetKeyFrameCount": {
"format": "int64",
"description": "Controls key frame insertion frequency in the message\r\nstream. A key frame contains all current values, while\r\ndelta frames only contain changes. Setting this ensures\r\nperiodic complete state updates, useful for late-joining\r\nconsumers or state synchronization. Key frames can also\r\ninclude configured DataSetExtensionFields for additional\r\ncontext. Default: 0 (key frames disabled)",
"type": "integer"
},
"MetaDataUpdateTime": {
"format": "int32",
"description": "The interval in milliseconds at which metadata messages are\r\nsent, even when the metadata has not changed. Only applies\r\nwhen metadata messaging is supported or explicitly enabled.\r\nIgnored when MetaDataUpdateTimeTimespan is defined.",
"type": "integer"
},
"MetaDataUpdateTimeTimespan": {
"format": "date-span",
"description": "The interval as TimeSpan at which metadata messages are\r\nsent, even when metadata has not changed. Takes precedence\r\nover MetaDataUpdateTime if both are defined. Only applies\r\nwhen metadata messaging is supported or explicitly enabled.",
"type": "string"
},
"SendKeepAliveDataSetMessages": {
"description": "Controls whether to send keep alive messages for this\r\ndataset when a subscription keep alive notification is\r\nreceived. Keep alive messages help maintain connection\r\nstatus awareness. Only valid if the messaging mode supports\r\nkeep alive messages. Default: false",
"type": "boolean"
},
"EndpointUrl": {
"description": "The required OPC UA server endpoint URL to connect to. This\r\nis the only required field in the configuration. Format:\r\n\"opc.tcp://host:port/path\"",
"minLength": 1,
"type": "string"
},
"MaxKeepAliveCount": {
"format": "int64",
"description": "Defines how many publishing timer expirations to wait\r\nbefore sending a keep-alive message when no notifications\r\nare pending. Works with SendKeepAliveDataSetMessages to\r\nmaintain connection awareness. Keep-alive messages help\r\ndetect connection issues even when no data changes are\r\noccurring.",
"type": "integer"
},
"DataSetDescription": {
"description": "The optional description of the dataset.",
"type": "string"
},
"Priority": {
"format": "int32",
"description": "Priority of the writer subscription.",
"type": "integer"
},
"DataSetExtensionFields": {
"description": "Optional key-value pairs inserted into key frame and\r\nmetadata messages in the same data set. Values are\r\nformatted using OPC UA Variant JSON encoding. Used to add\r\ncontextual information to datasets.",
"type": "object",
"additionalProperties": {
"description": "A variant which can be represented by any value including null.",
"type": "object"
}
},
"EndpointSecurityMode": {
"$ref": "#/definitions/SecurityMode"
},
"EndpointSecurityPolicy": {
"description": "The security policy URI to use for the endpoint connection.\r\nOverrides UseSecurity setting and refines\r\nEndpointSecurityMode choice. Examples include\r\n\"http://opcfoundation.org/UA/SecurityPolicy#Basic256Sha256\".\r\nIf the specified policy is not available with the chosen\r\nsecurity mode, connectivity will fail. This allows enforcing\r\nspecific security requirements.",
"type": "string"
},
"MessagingMode": {
"$ref": "#/definitions/MessagingMode"
},
"MessageEncoding": {
"$ref": "#/definitions/MessageEncoding"
},
"BatchSize": {
"format": "int64",
"description": "The number of notifications that are queued before a\r\nnetwork message is generated. Controls message batching for\r\noptimizing network traffic vs latency. For historic reasons\r\nthe default value is 50 unless otherwise configured via the\r\n--bs command line option.",
"type": "integer"
},
"BatchTriggerInterval": {
"format": "int32",
"description": "The interval at which batched network messages are\r\npublished, in milliseconds. Messages are published when\r\nthis interval elapses or when BatchSize is reached. For\r\nhistoric reasons the default is 10 seconds unless\r\nconfigured via --bi. Ignored when\r\nBatchTriggerIntervalTimespan is specified. Used with\r\nBatchSize to optimize network traffic vs latency.",
"type": "integer"
},
"BatchTriggerIntervalTimespan": {
"format": "date-span",
"description": "The interval at which batched network messages are\r\npublished, as a TimeSpan. Takes precedence over\r\nBatchTriggerInterval if both are defined. Messages are\r\npublished when this interval elapses or when BatchSize is\r\nreached. Provides more precise control over publishing\r\ntiming than millisecond interval. Used with BatchSize to\r\noptimize network traffic vs latency.",
"type": "string"
},
"UseReverseConnect": {
"description": "Use reverse connect to connect ot the endpoint",
"type": "boolean"
},
"DataSetRouting": {
"$ref": "#/definitions/DataSetRoutingMode"
},
"WriterGroupQueueName": {
"description": "Overrides the default writer group topic template for\r\nmessage routing. Used to customize where messages from this\r\nwriter group are published. Particularly useful when\r\npublishing to MQTT topics or message queues where specific\r\nrouting patterns are needed.",
"type": "string"
},
"WriterGroupQualityOfService": {
"$ref": "#/definitions/QoS"
},
"WriterGroupTransport": {
"$ref": "#/definitions/WriterGroupTransport"
},
"UseSecurity": {
"description": "Controls whether to use a secure OPC UA transport mode to\r\nestablish a session. When true, defaults to\r\nSecurityMode.NotNone which requires signed or encrypted\r\ncommunication. When false, uses SecurityMode.None with no\r\nsecurity. Can be overridden by EndpointSecurityMode and\r\nEndpointSecurityPolicy settings. Use encrypted\r\ncommunication whenever possible to protect credentials and\r\ndata.",
"type": "boolean"
},
"OpcAuthenticationMode": {
"$ref": "#/definitions/OpcAuthenticationMode"
},
"EncryptedAuthUsername": {
"description": "The encrypted username for authentication when\r\nOpcAuthenticationMode is UsernamePassword. Encrypted\r\ncredentials at rest can be enforced using the --fce command\r\nline option. Version 2.6+ stores credentials in plain text\r\nby default, while 2.5 and below always encrypted them.",
"type": "string"
},
"EncryptedAuthPassword": {
"description": "The encrypted password for authentication when\r\nOpcAuthenticationMode is UsernamePassword. For certificate\r\nauthentication, contains the password to access the private\r\nkey. Encrypted credentials at rest can be enforced using\r\nthe --fce command line option. Version 2.6+ stores\r\ncredentials in plain text by default, while 2.5 and below\r\nalways encrypted them.",
"type": "string"
},
"OpcAuthenticationUsername": {
"description": "The plaintext username for UsernamePassword authentication,\r\nor the subject name of the certificate for Certificate\r\nauthentication. When using Certificate mode, this refers to\r\na certificate in the User certificate store of the PKI\r\nconfiguration.",
"type": "string"
},
"OpcAuthenticationPassword": {
"description": "The plaintext password for UsernamePassword authentication,\r\nor the password protecting the private key for Certificate\r\nauthentication. For Certificate mode, this must match the\r\npassword used when adding the certificate to the PKI store.",
"type": "string"
},
"QueueName": {
"description": "Overrides the writer group queue name at the individual\r\nwriter level. When specified, causes network messages to be\r\nsplit across different queues. The split also takes QoS\r\nsettings into account, allowing fine-grained control over\r\nmessage routing and delivery guarantees.",
"type": "string"
},
"MetaDataQueueName": {
"description": "The queue name to use for metadata messages from this\r\nwriter. Overrides the default metadata topic template.\r\nAllows routing metadata to specific destinations separate\r\nfrom data messages.",
"type": "string"
},
"QualityOfService": {
"$ref": "#/definitions/QoS"
},
"WriterGroupPartitions": {
"format": "int32",
"description": "Specifies how many partitions to split the writer group\r\ninto when publishing to target topics. Used to distribute\r\nmessage load and enable parallel processing by consumers.\r\nDefault is 1 partition. Particularly useful for\r\nhigh-throughput scenarios or when using partitioned\r\nqueues/topics in the messaging system.",
"type": "integer"
},
"DisableSubscriptionTransfer": {
"description": "Controls whether subscription transfer is disabled during\r\nreconnect. When false (default), attempts to transfer\r\nsubscriptions on reconnect to maintain data continuity. Set\r\nto true to fix interoperability issues with servers that\r\ndon't support subscription transfer. Can be configured\r\nglobally via command line options.",
"type": "boolean"
},
"RepublishAfterTransfer": {
"description": "Controls whether to republish missed values after a\r\nsubscription is transferred during reconnect handling. Only\r\napplies when DisableSubscriptionTransfer is false. Helps\r\nensure no data is lost during connection interruptions.\r\nDefault: true",
"type": "boolean"
},
"OpcNodeWatchdogTimespan": {
"format": "date-span",
"description": "The timeout duration used to monitor whether monitored\r\nitems in the subscription are continuously reporting fresh\r\ndata. This watchdog mechanism helps detect stale data or\r\nconnectivity issues. When this timeout expires, the\r\nconfigured DataSetWriterWatchdogBehavior is triggered based\r\non OpcNodeWatchdogCondition. Expressed as a TimeSpan value.",
"type": "string"
},
"DataSetWriterWatchdogBehavior": {
"$ref": "#/definitions/SubscriptionWatchdogBehavior"
},
"OpcNodeWatchdogCondition": {
"$ref": "#/definitions/MonitoredItemWatchdogCondition"
},
"DataSetSamplingInterval": {
"format": "int32",
"description": "Default sampling interval in milliseconds for all monitored\r\nitems in the dataset. Used if individual nodes don't\r\nspecify their own sampling interval. Follows OPC UA\r\nspecification for sampling behavior. Ignored when\r\nDataSetSamplingIntervalTimespan is present. Defaults to\r\nvalue configured via --oi command line option.",
"type": "integer"
},
"DataSetSamplingIntervalTimespan": {
"format": "date-span",
"description": "Default sampling interval as TimeSpan for all monitored\r\nitems in the dataset. Takes precedence over\r\nDataSetSamplingInterval if both are defined. Used if\r\nindividual nodes don't specify their own sampling interval.\r\nProvides more precise control over sampling timing. Follows\r\nOPC UA specification for sampling behavior.",
"type": "string"
},
"DataSetFetchDisplayNames": {
"description": "Controls whether to fetch display names of monitored\r\nvariable nodes and use those inside messages as field\r\nnames. When true, fetches display names for all nodes. If\r\nfalse, uses DisplayName value if provided; if not provided,\r\nuses the node id. Can be configured via --fd command line\r\noption.",
"type": "boolean"
},
"WriterGroupMessageTtlTimepan": {
"format": "date-span",
"description": "Time-to-live duration for messages sent through the writer\r\ngroup. Only applied if the transport technology supports\r\nmessage TTL. After this duration expires, messages may be\r\ndiscarded by the messaging system. Used to prevent stale\r\ndata from being processed by consumers.",
"type": "string"
},
"WriterGroupMessageRetention": {
"description": "Controls whether messages should be retained by the\r\nmessaging system. Only applied if the transport technology\r\nsupports message retention. When true, messages are kept by\r\nthe broker even after delivery. Useful for late-joining\r\nsubscribers to receive the last known values.",
"type": "boolean"
},
"MessageTtlTimespan": {
"format": "date-span",
"description": "Time-to-live duration for messages sent by this specific\r\nwriter. Overrides WriterGroupMessageTtlTimespan at the\r\nindividual writer level. Only applied if the transport\r\ntechnology supports message TTL. Allows different TTL\r\nsettings for different types of data.",
"type": "string"
},
"MessageRetention": {
"description": "Controls message retention for this specific writer.\r\nOverrides WriterGroupMessageRetention at the individual\r\nwriter level. Only applied if the transport technology\r\nsupports retention. Together with QueueName, allows\r\nsplitting messages across different queues with different\r\nretention policies.",
"type": "boolean"
},
"DefaultHeartbeatInterval": {
"format": "int32",
"description": "The interval in milliseconds at which to publish heartbeat\r\nmessages. Heartbeat acts like a watchdog that fires after\r\nthis interval has passed and no new value has been\r\nreceived. A value of 0 disables heartbeat. Ignored when\r\nDefaultHeartbeatIntervalTimespan is defined. See\r\nheartbeat.md for detailed behavior documentation.",
"type": "integer"
},
"DefaultHeartbeatIntervalTimespan": {
"format": "date-span",
"description": "The heartbeat interval as TimeSpan for all nodes in this\r\ndataset. Takes precedence over DefaultHeartbeatInterval if\r\ndefined. Controls how often heartbeat messages are\r\npublished when no value changes occur.",
"type": "string"
},
"DefaultHeartbeatBehavior": {
"$ref": "#/definitions/HeartbeatBehavior"
},
"DataSetSourceUri": {
"description": "Contains an uri identifier that allows correlation of the writer\r\ndata set source into other systems. Will be used as part of\r\ncloud events header if enabled.",
"type": "string"
},
"DataSetSubject": {
"description": "Contains an identifier that allows correlation of the writer\r\ngroup into other systems in the context of the source. Will be\r\nused as part of cloud events header if enabled.",
"type": "string"
},
"WriterGroupProperties": {
"description": "Additional properties of the writer group that should be retained\r\nwith the configuration.",
"type": "object",
"additionalProperties": {
"description": "A variant which can be represented by any value including null.",
"type": "object"
}
},
"DataSetType": {
"description": "A type definition id that references a well known opc ua type\r\ndefinition node for the dataset represented by this entry.\r\nIf set it is used in context of cloud events to specify a concrete\r\ntype of dataset message in the cloud events type header.",
"type": "string"
},
"DataSetRootNodeId": {
"description": "A root node that all nodes that use a non rooted browse paths in the\r\ndataset should start from.",
"type": "string"
},
"WriterGroupRootNodeId": {
"description": "A node that represents the writer group in the server address space.\r\nThis is the instance id of the root node from which all datasets\r\noriginate. It is informational only and would not need to be\r\nconfigured",
"type": "string"
},
"WriterGroupType": {
"description": "A type that is attached to the writer group and explains the shape\r\nof the writer group. It is the type definition id of the writer\r\ngroup root node id. It is informational only and would not need\r\nto be configured",
"type": "string"
},
"MetaDataRetention": {
"description": "Metadata retention setting for the dataset writer.",
"type": "boolean"
},
"MetaDataTtlTimespan": {
"format": "date-span",
"description": "Metadata time-to-live duration for the dataset writer.",
"type": "string"
},
"SendKeepAliveAsKeyFrameMessages": {
"description": "When sending of keep alive messages is enabled, this\r\nflag controls whether the keep alive messages are sent\r\nas key frames. Key frames contain all current values.",
"type": "boolean"
},
"PublisherId": {
"description": "Set a publisher id to use that is different form the\r\nglobal publisher identity.",
"type": "string"
},
"WriterGroupTransportConfiguration": {
"description": "Pass connection string for the transport layer. This works\r\nfor transports that support connection strings such as\r\nIoT Hub or Event Hubs. It enables overriding the default\r\nconnection string configured for the publisher. The transport\r\nmust be configured using the command line options first, and\r\ncan be overriden here. If it is not configured on the command\r\nline first, the setting here is ignored.",
"type": "string"
},
"DumpConnectionDiagnostics": {
"description": "Enables detailed server diagnostics logging for the\r\nconnection. When enabled, provides additional diagnostic\r\ninformation useful for troubleshooting connectivity,\r\nauthentication, and subscription issues. The diagnostics\r\ndata is included in the publisher's logs. Default: false",
"type": "boolean"
},
"NodeId": {
"$ref": "#/definitions/NodeIdModel"
}
},
"additionalProperties": false
},
"PublishedNodesEntryModelServiceResponse": {
"description": "Response envelope",
"type": "object",
"properties": {
"result": {
"$ref": "#/definitions/PublishedNodesEntryModel"
},
"errorInfo": {
"$ref": "#/definitions/ServiceResultModel"
}
},
"additionalProperties": false
},
"PublishedNodesEntryModelServiceResponseIAsyncEnumerable": {
"type": "object",
"additionalProperties": false
},
"PublishedNodesResponseModel": {
"description": "PublishNodes direct method response",
"type": "object",
"additionalProperties": false
},
"QoS": {
"enum": [
"AtMostOnce",
"AtLeastOnce",
"ExactlyOnce"
],
"type": "string",
"x-ms-enum": {
"name": "QoS",
"modelAsString": false
}
},
"QueryCompilationRequestModel": {
"description": "Query compiler request model",
"required": [
"query"
],
"type": "object",
"properties": {
"header": {
"$ref": "#/definitions/RequestHeaderModel"
},
"query": {
"description": "The query to compile.",
"minLength": 1,
"type": "string"
},
"queryType": {
"$ref": "#/definitions/QueryType"
}
},
"additionalProperties": false
},
"QueryCompilationRequestModelRequestEnvelope": {
"description": "Wraps a request and a connection to bind to a\r\nbody more easily for api that requires a\r\nconnection endpoint",
"required": [
"connection"
],
"type": "object",
"properties": {
"connection": {
"$ref": "#/definitions/ConnectionModel"
},
"request": {
"$ref": "#/definitions/QueryCompilationRequestModel"
}
},
"additionalProperties": false
},
"QueryCompilationResponseModel": {
"description": "Query compiler response model",
"type": "object",
"properties": {
"errorInfo": {
"$ref": "#/definitions/ServiceResultModel"
},
"eventFilter": {
"$ref": "#/definitions/EventFilterModel"
}
},
"additionalProperties": false
},
"QueryType": {
"description": "Query type",
"enum": [
"Event",
"Query"
],
"type": "string",
"x-ms-enum": {
"name": "QueryType",
"modelAsString": false
}
},
"ReadEventsDetailsModel": {
"description": "Read event data",
"type": "object",
"properties": {
"startTime": {
"format": "date-time",
"description": "Start time to read from",
"type": "string"
},
"endTime": {
"format": "date-time",
"description": "End time to read to",
"type": "string"
},
"numEvents": {
"format": "int64",
"description": "Number of events to read",
"type": "integer"
},
"filter": {
"$ref": "#/definitions/EventFilterModel"
}
},
"additionalProperties": false
},
"ReadEventsDetailsModelHistoryReadRequestModel": {
"description": "Request node history read",
"required": [
"details"
],
"type": "object",
"properties": {
"nodeId": {
"description": "Node to read from (mandatory without browse path)",
"type": "string"
},
"browsePath": {
"description": "An optional path from NodeId instance to\r\nthe actual node.",
"type": "array",
"items": {
"type": "string"
}
},
"details": {
"$ref": "#/definitions/ReadEventsDetailsModel"
},
"indexRange": {
"description": "Index range to read, e.g. 1:2,0:1 for 2 slices\r\nout of a matrix or 0:1 for the first item in\r\nan array, string or bytestring.\r\nSee 7.22 of part 4: NumericRange.",
"type": "string"
},
"header": {
"$ref": "#/definitions/RequestHeaderModel"
},
"timestampsToReturn": {
"$ref": "#/definitions/TimestampsToReturn"
}
},
"additionalProperties": false
},
"ReadEventsDetailsModelHistoryReadRequestModelRequestEnvelope": {
"description": "Wraps a request and a connection to bind to a\r\nbody more easily for api that requires a\r\nconnection endpoint",
"required": [
"connection"
],
"type": "object",
"properties": {
"connection": {
"$ref": "#/definitions/ConnectionModel"
},
"request": {
"$ref": "#/definitions/ReadEventsDetailsModelHistoryReadRequestModel"
}
},
"additionalProperties": false
},
"ReadModifiedValuesDetailsModel": {
"description": "Read modified data",
"type": "object",
"properties": {
"startTime": {
"format": "date-time",
"description": "The start time to read from",
"type": "string"
},
"endTime": {
"format": "date-time",
"description": "The end time to read to",
"type": "string"
},
"numValues": {
"format": "int64",
"description": "The number of values to read",
"type": "integer"
}
},
"additionalProperties": false
},
"ReadModifiedValuesDetailsModelHistoryReadRequestModel": {
"description": "Request node history read",
"required": [
"details"
],
"type": "object",
"properties": {
"nodeId": {
"description": "Node to read from (mandatory without browse path)",
"type": "string"
},
"browsePath": {
"description": "An optional path from NodeId instance to\r\nthe actual node.",
"type": "array",
"items": {
"type": "string"
}
},
"details": {
"$ref": "#/definitions/ReadModifiedValuesDetailsModel"
},
"indexRange": {
"description": "Index range to read, e.g. 1:2,0:1 for 2 slices\r\nout of a matrix or 0:1 for the first item in\r\nan array, string or bytestring.\r\nSee 7.22 of part 4: NumericRange.",
"type": "string"
},
"header": {
"$ref": "#/definitions/RequestHeaderModel"
},
"timestampsToReturn": {
"$ref": "#/definitions/TimestampsToReturn"
}
},
"additionalProperties": false
},
"ReadModifiedValuesDetailsModelHistoryReadRequestModelRequestEnvelope": {
"description": "Wraps a request and a connection to bind to a\r\nbody more easily for api that requires a\r\nconnection endpoint",
"required": [
"connection"
],
"type": "object",
"properties": {
"connection": {
"$ref": "#/definitions/ConnectionModel"
},
"request": {
"$ref": "#/definitions/ReadModifiedValuesDetailsModelHistoryReadRequestModel"
}
},
"additionalProperties": false
},
"ReadProcessedValuesDetailsModel": {
"description": "Read processed historic data",
"type": "object",
"properties": {
"startTime": {
"format": "date-time",
"description": "Start time to read from.",
"type": "string"
},
"endTime": {
"format": "date-time",
"description": "End time to read until",
"type": "string"
},
"processingInterval": {
"format": "date-span",
"description": "Interval to process",
"type": "string"
},
"aggregateType": {
"description": "The aggregate type to apply. Can be the name of\r\nthe aggregate if available in the history server\r\ncapabilities, or otherwise will be used as a node\r\nid referring to the aggregate.",
"type": "string"
},
"aggregateConfiguration": {
"$ref": "#/definitions/AggregateConfigurationModel"
}
},
"additionalProperties": false
},
"ReadProcessedValuesDetailsModelHistoryReadRequestModel": {
"description": "Request node history read",
"required": [
"details"
],
"type": "object",
"properties": {
"nodeId": {
"description": "Node to read from (mandatory without browse path)",
"type": "string"
},
"browsePath": {
"description": "An optional path from NodeId instance to\r\nthe actual node.",
"type": "array",
"items": {
"type": "string"
}
},
"details": {
"$ref": "#/definitions/ReadProcessedValuesDetailsModel"
},
"indexRange": {
"description": "Index range to read, e.g. 1:2,0:1 for 2 slices\r\nout of a matrix or 0:1 for the first item in\r\nan array, string or bytestring.\r\nSee 7.22 of part 4: NumericRange.",
"type": "string"
},
"header": {
"$ref": "#/definitions/RequestHeaderModel"
},
"timestampsToReturn": {
"$ref": "#/definitions/TimestampsToReturn"
}
},
"additionalProperties": false
},
"ReadProcessedValuesDetailsModelHistoryReadRequestModelRequestEnvelope": {
"description": "Wraps a request and a connection to bind to a\r\nbody more easily for api that requires a\r\nconnection endpoint",
"required": [
"connection"
],
"type": "object",
"properties": {
"connection": {
"$ref": "#/definitions/ConnectionModel"
},
"request": {
"$ref": "#/definitions/ReadProcessedValuesDetailsModelHistoryReadRequestModel"
}
},
"additionalProperties": false
},
"ReadRequestModel": {
"description": "Request node attribute read",
"required": [
"attributes"
],
"type": "object",
"properties": {
"attributes": {
"description": "Attributes to read",
"type": "array",
"items": {
"$ref": "#/definitions/AttributeReadRequestModel"
}
},
"header": {
"$ref": "#/definitions/RequestHeaderModel"
}
},
"additionalProperties": false
},
"ReadRequestModelRequestEnvelope": {
"description": "Wraps a request and a connection to bind to a\r\nbody more easily for api that requires a\r\nconnection endpoint",
"required": [
"connection"
],
"type": "object",
"properties": {
"connection": {
"$ref": "#/definitions/ConnectionModel"
},
"request": {
"$ref": "#/definitions/ReadRequestModel"
}
},
"additionalProperties": false
},
"ReadResponseModel": {
"description": "Result of attribute reads",
"required": [
"results"
],
"type": "object",
"properties": {
"results": {
"description": "All results of attribute reads",
"type": "array",
"items": {
"$ref": "#/definitions/AttributeReadResponseModel"
}
},
"errorInfo": {
"$ref": "#/definitions/ServiceResultModel"
}
},
"additionalProperties": false
},
"ReadValuesAtTimesDetailsModel": {
"description": "Read data at specified times",
"required": [
"reqTimes"
],
"type": "object",
"properties": {
"reqTimes": {
"description": "Requested datums",
"type": "array",
"items": {
"format": "date-time",
"type": "string"
}
},
"useSimpleBounds": {
"description": "Whether to use simple bounds",
"type": "boolean"
}
},
"additionalProperties": false
},
"ReadValuesAtTimesDetailsModelHistoryReadRequestModel": {
"description": "Request node history read",
"required": [
"details"
],
"type": "object",
"properties": {
"nodeId": {
"description": "Node to read from (mandatory without browse path)",
"type": "string"
},
"browsePath": {
"description": "An optional path from NodeId instance to\r\nthe actual node.",
"type": "array",
"items": {
"type": "string"
}
},
"details": {
"$ref": "#/definitions/ReadValuesAtTimesDetailsModel"
},
"indexRange": {
"description": "Index range to read, e.g. 1:2,0:1 for 2 slices\r\nout of a matrix or 0:1 for the first item in\r\nan array, string or bytestring.\r\nSee 7.22 of part 4: NumericRange.",
"type": "string"
},
"header": {
"$ref": "#/definitions/RequestHeaderModel"
},
"timestampsToReturn": {
"$ref": "#/definitions/TimestampsToReturn"
}
},
"additionalProperties": false
},
"ReadValuesAtTimesDetailsModelHistoryReadRequestModelRequestEnvelope": {
"description": "Wraps a request and a connection to bind to a\r\nbody more easily for api that requires a\r\nconnection endpoint",
"required": [
"connection"
],
"type": "object",
"properties": {
"connection": {
"$ref": "#/definitions/ConnectionModel"
},
"request": {
"$ref": "#/definitions/ReadValuesAtTimesDetailsModelHistoryReadRequestModel"
}
},
"additionalProperties": false
},
"ReadValuesDetailsModel": {
"description": "Read historic values",
"type": "object",
"properties": {
"startTime": {
"format": "date-time",
"description": "Beginning of period to read. Set to null\r\nif no specific start time is specified.",
"type": "string"
},
"endTime": {
"format": "date-time",
"description": "End of period to read. Set to null if no\r\nspecific end time is specified.",
"type": "string"
},
"numValues": {
"format": "int64",
"description": "The maximum number of values returned for any Node\r\nover the time range. If only one time is specified,\r\nthe time range shall extend to return this number\r\nof values. 0 or null indicates that there is no\r\nmaximum.",
"type": "integer"
},
"returnBounds": {
"description": "Whether to return the bounding values or not.",
"type": "boolean"
}
},
"additionalProperties": false
},
"ReadValuesDetailsModelHistoryReadRequestModel": {
"description": "Request node history read",
"required": [
"details"
],
"type": "object",
"properties": {
"nodeId": {
"description": "Node to read from (mandatory without browse path)",
"type": "string"
},
"browsePath": {
"description": "An optional path from NodeId instance to\r\nthe actual node.",
"type": "array",
"items": {
"type": "string"
}
},
"details": {
"$ref": "#/definitions/ReadValuesDetailsModel"
},
"indexRange": {
"description": "Index range to read, e.g. 1:2,0:1 for 2 slices\r\nout of a matrix or 0:1 for the first item in\r\nan array, string or bytestring.\r\nSee 7.22 of part 4: NumericRange.",
"type": "string"
},
"header": {
"$ref": "#/definitions/RequestHeaderModel"
},
"timestampsToReturn": {
"$ref": "#/definitions/TimestampsToReturn"
}
},
"additionalProperties": false
},
"ReadValuesDetailsModelHistoryReadRequestModelRequestEnvelope": {
"description": "Wraps a request and a connection to bind to a\r\nbody more easily for api that requires a\r\nconnection endpoint",
"required": [
"connection"
],
"type": "object",
"properties": {
"connection": {
"$ref": "#/definitions/ConnectionModel"
},
"request": {
"$ref": "#/definitions/ReadValuesDetailsModelHistoryReadRequestModel"
}
},
"additionalProperties": false
},
"RequestHeaderModel": {
"description": "Request header model",
"type": "object",
"properties": {
"elevation": {
"$ref": "#/definitions/CredentialModel"
},
"locales": {
"description": "Optional list of preferred locales in preference\r\norder to be used during connecting the session.\r\nWe suggest to use the connection object to set\r\nthe locales",
"type": "array",
"items": {
"type": "string"
}
},
"diagnostics": {
"$ref": "#/definitions/DiagnosticsModel"
},
"namespaceFormat": {
"$ref": "#/definitions/NamespaceFormat"
},
"operationTimeout": {
"format": "int32",
"description": "Operation timeout in ms. This applies to every\r\noperation that is invoked, not to the entire\r\ntransaction and overrides the configured operation\r\ntimeout.",
"type": "integer"
},
"serviceCallTimeout": {
"format": "int32",
"description": "Service call timeout in ms. As opposed to the\r\noperation timeout this terminates the entire\r\ntransaction if it takes longer than the timeout to\r\ncomplete. Note that a connect and reconnect during\r\nthe service call is gated by the connect timeout\r\nsetting. If a connect timeout is not specified\r\nthis timeout is used also for connect timeout.",
"type": "integer"
},
"connectTimeout": {
"format": "int32",
"description": "Connect timeout in ms. As opposed to the service call\r\ntimeout this terminates the entire transaction if\r\nit takes longer than the timeout to connect a session\r\nA connect and reconnect during the service call\r\nresets the timeout therefore the overall time for\r\nthe call to complete can be longer than specified.",
"type": "integer"
}
},
"additionalProperties": false
},
"RequestHeaderModelPublishedNodesEntryRequestModel": {
"description": "Wraps a request and a published nodes entry to bind to a\r\nbody more easily for api that requires an entry and additional\r\nconfiguration",
"required": [
"entry"
],
"type": "object",
"properties": {
"entry": {
"$ref": "#/definitions/PublishedNodesEntryModel"
},
"request": {
"$ref": "#/definitions/RequestHeaderModel"
}
},
"additionalProperties": false
},
"RequestHeaderModelRequestEnvelope": {
"description": "Wraps a request and a connection to bind to a\r\nbody more easily for api that requires a\r\nconnection endpoint",
"required": [
"connection"
],
"type": "object",
"properties": {
"connection": {
"$ref": "#/definitions/ConnectionModel"
},
"request": {
"$ref": "#/definitions/RequestHeaderModel"
}
},
"additionalProperties": false
},
"RolePermissionModel": {
"description": "Role permission model",
"required": [
"roleId"
],
"type": "object",
"properties": {
"roleId": {
"description": "Identifier of the role object.",
"minLength": 1,
"type": "string"
},
"permissions": {
"$ref": "#/definitions/RolePermissions"
}
},
"additionalProperties": false
},
"RolePermissions": {
"description": "Individual permissions assigned to a role",
"enum": [
"None",
"Browse",
"ReadRolePermissions",
"WriteAttribute",
"WriteRolePermissions",
"WriteHistorizing",
"Read",
"Write",
"ReadHistory",
"InsertHistory",
"ModifyHistory",
"DeleteHistory",
"ReceiveEvents",
"Call",
"AddReference",
"RemoveReference",
"DeleteNode",
"AddNode"
],
"type": "string",
"x-ms-enum": {
"name": "RolePermissions",
"modelAsString": false
}
},
"SecurityMode": {
"description": "Specifies the security mode for OPC UA endpoint connections.\r\nDetermines how messages are protected during transmission between\r\nthe Publisher and OPC UA servers. Proper security mode selection\r\nis crucial for protecting sensitive data and credentials.",
"enum": [
"Best",
"Sign",
"SignAndEncrypt",
"None",
"NotNone"
],
"type": "string",
"x-ms-enum": {
"name": "SecurityMode",
"modelAsString": false
}
},
"ServerCapabilitiesModel": {
"description": "Server capabilities",
"required": [
"operationLimits"
],
"type": "object",
"properties": {
"operationLimits": {
"$ref": "#/definitions/OperationLimitsModel"
},
"supportedLocales": {
"description": "Supported locales",
"type": "array",
"items": {
"type": "string"
}
},
"serverProfileArray": {
"description": "Server profiles",
"type": "array",
"items": {
"type": "string"
}
},
"modellingRules": {
"description": "Supported modelling rules",
"type": "object",
"additionalProperties": {
"type": "string"
}
},
"aggregateFunctions": {
"description": "Supported aggregate functions",
"type": "object",
"additionalProperties": {
"type": "string"
}
},
"MaxSessions": {
"format": "int64",
"description": "Supported aggregate functions",
"type": "integer"
},
"MaxSubscriptions": {
"format": "int64",
"description": "Supported aggregate functions",
"type": "integer"
},
"MaxMonitoredItems": {
"format": "int64",
"description": "Supported aggregate functions",
"type": "integer"
},
"MaxSubscriptionsPerSession": {
"format": "int64",
"description": "Supported aggregate functions",
"type": "integer"
},
"MaxMonitoredItemsPerSubscription": {
"format": "int64",
"description": "Supported aggregate functions",
"type": "integer"
},
"MaxSelectClauseParameters": {
"format": "int64",
"description": "Supported aggregate functions",
"type": "integer"
},
"MaxWhereClauseParameters": {
"format": "int64",
"description": "Supported aggregate functions",
"type": "integer"
},
"MaxMonitoredItemsQueueSize": {
"format": "int64",
"description": "Supported aggregate functions",
"type": "integer"
},
"conformanceUnits": {
"description": "Supported aggregate functions",
"type": "array",
"items": {
"type": "string"
}
}
},
"additionalProperties": false
},
"ServerEndpointQueryModel": {
"description": "Endpoint model",
"type": "object",
"properties": {
"discoveryUrl": {
"description": "Discovery url to use to query",
"type": "string"
},
"url": {
"description": "Endpoint url that should match the found endpoint",
"type": "string"
},
"securityMode": {
"$ref": "#/definitions/SecurityMode"
},
"securityPolicy": {
"description": "Endpoint must support this Security policy.",
"type": "string"
},
"certificate": {
"description": "Endpoint must match with this certificate thumbprint",
"type": "string"
}
},
"additionalProperties": false
},
"ServerRegistrationRequestModel": {
"description": "Server registration request",
"required": [
"discoveryUrl"
],
"type": "object",
"properties": {
"discoveryUrl": {
"description": "Discovery url to use for registration",
"minLength": 1,
"type": "string"
},
"id": {
"description": "User defined request id",
"type": "string"
},
"context": {
"$ref": "#/definitions/OperationContextModel"
}
},
"additionalProperties": false
},
"ServiceResultModel": {
"description": "Service result",
"type": "object",
"properties": {
"statusCode": {
"format": "int64",
"description": "Error code - if null operation succeeded.",
"type": "integer"
},
"errorMessage": {
"description": "Error message in case of error or null.",
"type": "string"
},
"symbolicId": {
"description": "Symbolic identifier",
"type": "string"
},
"locale": {
"description": "Locale of the error message",
"type": "string"
},
"additionalInfo": {
"description": "Additional information if available",
"type": "string"
},
"namespaceUri": {
"description": "Namespace uri",
"type": "string"
},
"inner": {
"$ref": "#/definitions/ServiceResultModel"
}
},
"additionalProperties": false
},
"SetConfiguredEndpointsRequestModel": {
"description": "Set configured endpoints request call",
"type": "object",
"properties": {
"endpoints": {
"description": "Endpoints and nodes that make up the configuration",
"type": "array",
"items": {
"$ref": "#/definitions/PublishedNodesEntryModel"
}
}
},
"additionalProperties": false
},
"SimpleAttributeOperandModel": {
"description": "Simple attribute operand model",
"type": "object",
"properties": {
"typeDefinitionId": {
"description": "Type definition node id if operand is\r\nsimple or full attribute operand.",
"type": "string"
},
"browsePath": {
"description": "Browse path of attribute operand",
"type": "array",
"items": {
"type": "string"
}
},
"attributeId": {
"$ref": "#/definitions/NodeAttribute"
},
"indexRange": {
"description": "Index range of attribute operand",
"type": "string"
},
"displayName": {
"description": "Optional display name",
"type": "string"
},
"dataSetClassFieldId": {
"format": "uuid",
"description": "Optional data set class field id (Publisher extension)",
"type": "string"
}
},
"additionalProperties": false
},
"SubscriptionWatchdogBehavior": {
"description": "Defines how the publisher responds when monitored items stop reporting data.\r\nThe watchdog triggers when items are late according to OpcNodeWatchdogTimespan\r\nand OpcNodeWatchdogCondition settings. Can be configured globally via the\r\n--dwb command line option.",
"enum": [
"Diagnostic",
"Reset",
"FailFast",
"ExitProcess"
],
"type": "string",
"x-ms-enum": {
"name": "SubscriptionWatchdogBehavior",
"modelAsString": false
}
},
"TestConnectionRequestModel": {
"description": "Test connection request",
"type": "object",
"properties": {
"header": {
"$ref": "#/definitions/RequestHeaderModel"
}
},
"additionalProperties": false
},
"TestConnectionRequestModelRequestEnvelope": {
"description": "Wraps a request and a connection to bind to a\r\nbody more easily for api that requires a\r\nconnection endpoint",
"required": [
"connection"
],
"type": "object",
"properties": {
"connection": {
"$ref": "#/definitions/ConnectionModel"
},
"request": {
"$ref": "#/definitions/TestConnectionRequestModel"
}
},
"additionalProperties": false
},
"TestConnectionResponseModel": {
"description": "Test connection response",
"type": "object",
"properties": {
"errorInfo": {
"$ref": "#/definitions/ServiceResultModel"
}
},
"additionalProperties": false
},
"TimestampsToReturn": {
"description": "Timestamps",
"enum": [
"Both",
"Source",
"Server",
"None"
],
"type": "string",
"x-ms-enum": {
"name": "TimestampsToReturn",
"modelAsString": false
}
},
"TypeDefinitionModel": {
"description": "Type definition",
"required": [
"typeDefinitionId"
],
"type": "object",
"properties": {
"typeDefinitionId": {
"description": "The node id of the type of the node",
"minLength": 1,
"type": "string"
},
"nodeType": {
"$ref": "#/definitions/NodeType"
},
"displayName": {
"description": "Display name",
"type": "string"
},
"browseName": {
"description": "Browse name",
"type": "string"
},
"description": {
"description": "Description if any",
"type": "string"
},
"typeHierarchy": {
"description": "Super types hierarchy starting from base type\r\nup to Azure.IIoT.OpcUa.Publisher.Models.TypeDefinitionModel.TypeDefinitionId which is\r\nnot included.",
"type": "array",
"items": {
"$ref": "#/definitions/NodeModel"
}
},
"typeMembers": {
"description": "Fully inherited instance declarations of the type\r\nof the node.",
"type": "array",
"items": {
"$ref": "#/definitions/InstanceDeclarationModel"
}
}
},
"additionalProperties": false
},
"UpdateEventsDetailsModel": {
"description": "Insert, upsert or replace historic events",
"required": [
"events"
],
"type": "object",
"properties": {
"filter": {
"$ref": "#/definitions/EventFilterModel"
},
"events": {
"description": "The new events to insert",
"type": "array",
"items": {
"$ref": "#/definitions/HistoricEventModel"
}
}
},
"additionalProperties": false
},
"UpdateEventsDetailsModelHistoryUpdateRequestModel": {
"description": "Request node history update",
"required": [
"details"
],
"type": "object",
"properties": {
"nodeId": {
"description": "Node to update (mandatory without browse path)",
"type": "string"
},
"browsePath": {
"description": "An optional path from NodeId instance to\r\nthe actual node.",
"type": "array",
"items": {
"type": "string"
}
},
"details": {
"$ref": "#/definitions/UpdateEventsDetailsModel"
},
"header": {
"$ref": "#/definitions/RequestHeaderModel"
}
},
"additionalProperties": false
},
"UpdateEventsDetailsModelHistoryUpdateRequestModelRequestEnvelope": {
"description": "Wraps a request and a connection to bind to a\r\nbody more easily for api that requires a\r\nconnection endpoint",
"required": [
"connection"
],
"type": "object",
"properties": {
"connection": {
"$ref": "#/definitions/ConnectionModel"
},
"request": {
"$ref": "#/definitions/UpdateEventsDetailsModelHistoryUpdateRequestModel"
}
},
"additionalProperties": false
},
"UpdateValuesDetailsModel": {
"description": "Insert, upsert, or update historic values",
"required": [
"values"
],
"type": "object",
"properties": {
"values": {
"description": "Values to insert",
"type": "array",
"items": {
"$ref": "#/definitions/HistoricValueModel"
}
}
},
"additionalProperties": false
},
"UpdateValuesDetailsModelHistoryUpdateRequestModel": {
"description": "Request node history update",
"required": [
"details"
],
"type": "object",
"properties": {
"nodeId": {
"description": "Node to update (mandatory without browse path)",
"type": "string"
},
"browsePath": {
"description": "An optional path from NodeId instance to\r\nthe actual node.",
"type": "array",
"items": {
"type": "string"
}
},
"details": {
"$ref": "#/definitions/UpdateValuesDetailsModel"
},
"header": {
"$ref": "#/definitions/RequestHeaderModel"
}
},
"additionalProperties": false
},
"UpdateValuesDetailsModelHistoryUpdateRequestModelRequestEnvelope": {
"description": "Wraps a request and a connection to bind to a\r\nbody more easily for api that requires a\r\nconnection endpoint",
"required": [
"connection"
],
"type": "object",
"properties": {
"connection": {
"$ref": "#/definitions/ConnectionModel"
},
"request": {
"$ref": "#/definitions/UpdateValuesDetailsModelHistoryUpdateRequestModel"
}
},
"additionalProperties": false
},
"UserIdentityModel": {
"description": "User identity model",
"type": "object",
"properties": {
"user": {
"description": "\r\nFor Azure.IIoT.OpcUa.Publisher.Models.CredentialType.UserName authentication\r\n this is the name of the user.\r\n\r\nFor Azure.IIoT.OpcUa.Publisher.Models.CredentialType.X509Certificate authentication\r\n this is the subject name of the certificate that has been\r\n configured.\r\n Either Azure.IIoT.OpcUa.Publisher.Models.UserIdentityModel.User or Azure.IIoT.OpcUa.Publisher.Models.UserIdentityModel.Thumbprint must be\r\n used to select the certificate in the user certificate store.\r\n\r\nNot used for the other authentication types.",
"type": "string"
},
"password": {
"description": "\r\nFor Azure.IIoT.OpcUa.Publisher.Models.CredentialType.UserName authentication\r\n this is the password of the user.\r\n\r\nFor Azure.IIoT.OpcUa.Publisher.Models.CredentialType.X509Certificate authentication\r\n this is the passcode to export the configured certificate's\r\n private key.\r\n\r\nNot used for the other authentication types.",
"type": "string"
},
"thumbprint": {
"description": "\r\nFor Azure.IIoT.OpcUa.Publisher.Models.CredentialType.X509Certificate authentication\r\n this is the thumbprint of the configured certificate to use.\r\n Either Azure.IIoT.OpcUa.Publisher.Models.UserIdentityModel.User or Azure.IIoT.OpcUa.Publisher.Models.UserIdentityModel.Thumbprint must be\r\n used to select the certificate in the user certificate store.\r\n\r\nNot used for the other authentication types.",
"type": "string"
}
},
"additionalProperties": false
},
"ValueEncoding": {
"description": "The OPC UA JSON encoding to use when serializing a value in\r\na response.",
"enum": [
"Reversible",
"NonReversible"
],
"type": "string",
"x-ms-enum": {
"name": "ValueEncoding",
"modelAsString": false
}
},
"ValueReadRequestModel": {
"description": "Request node value read",
"type": "object",
"properties": {
"nodeId": {
"description": "Node to read from (mandatory)",
"type": "string"
},
"browsePath": {
"description": "An optional path from NodeId instance to\r\nan actual node.",
"type": "array",
"items": {
"type": "string"
}
},
"indexRange": {
"description": "Index range to read, e.g. 1:2,0:1 for 2 slices\r\nout of a matrix or 0:1 for the first item in\r\nan array, string or bytestring.\r\nSee 7.22 of part 4: NumericRange.",
"type": "string"
},
"header": {
"$ref": "#/definitions/RequestHeaderModel"
},
"maxAge": {
"format": "date-span",
"description": "Maximum age of the value to be read in milliseconds.\r\nThe age of the value is based on the difference\r\nbetween the ServerTimestamp and the time when\r\nthe Server starts processing the request.\r\nIf not supplied, the Server shall attempt to read\r\na new value from the data source.",
"type": "string"
},
"timestampsToReturn": {
"$ref": "#/definitions/TimestampsToReturn"
},
"encoding": {
"$ref": "#/definitions/ValueEncoding"
}
},
"additionalProperties": false
},
"ValueReadRequestModelRequestEnvelope": {
"description": "Wraps a request and a connection to bind to a\r\nbody more easily for api that requires a\r\nconnection endpoint",
"required": [
"connection"
],
"type": "object",
"properties": {
"connection": {
"$ref": "#/definitions/ConnectionModel"
},
"request": {
"$ref": "#/definitions/ValueReadRequestModel"
}
},
"additionalProperties": false
},
"ValueReadResponseModel": {
"description": "Value read response model",
"type": "object",
"properties": {
"value": {
"description": "Value read",
"type": "object"
},
"dataType": {
"description": "Built in data type of the value read.",
"type": "string"
},
"sourcePicoseconds": {
"format": "int32",
"description": "Pico seconds part of when value was read at source.",
"type": "integer"
},
"sourceTimestamp": {
"format": "date-time",
"description": "Timestamp of when value was read at source.",
"type": "string"
},
"serverPicoseconds": {
"format": "int32",
"description": "Pico seconds part of when value was read at server.",
"type": "integer"
},
"serverTimestamp": {
"format": "date-time",
"description": "Timestamp of when value was read at server.",
"type": "string"
},
"errorInfo": {
"$ref": "#/definitions/ServiceResultModel"
}
},
"additionalProperties": false
},
"ValueWriteRequestModel": {
"description": "Value write request model",
"required": [
"value"
],
"type": "object",
"properties": {
"nodeId": {
"description": "Node id to write value to.",
"type": "string"
},
"browsePath": {
"description": "An optional path from NodeId instance to\r\nthe actual node.",
"type": "array",
"items": {
"type": "string"
}
},
"value": {
"description": "Value to write. The system tries to convert\r\nthe value according to the data type value,\r\ne.g. convert comma seperated value strings\r\ninto arrays. (Mandatory)",
"type": "object"
},
"dataType": {
"description": "A built in datatype for the value. This can\r\nbe a data type from browse, or a built in\r\ntype.\r\n(default: best effort)",
"type": "string"
},
"indexRange": {
"description": "Index range to write",
"type": "string"
},
"header": {
"$ref": "#/definitions/RequestHeaderModel"
}
},
"additionalProperties": false
},
"ValueWriteRequestModelRequestEnvelope": {
"description": "Wraps a request and a connection to bind to a\r\nbody more easily for api that requires a\r\nconnection endpoint",
"required": [
"connection"
],
"type": "object",
"properties": {
"connection": {
"$ref": "#/definitions/ConnectionModel"
},
"request": {
"$ref": "#/definitions/ValueWriteRequestModel"
}
},
"additionalProperties": false
},
"ValueWriteResponseModel": {
"description": "Value write response model",
"type": "object",
"properties": {
"errorInfo": {
"$ref": "#/definitions/ServiceResultModel"
}
},
"additionalProperties": false
},
"VariableMetadataModel": {
"description": "Variable metadata model",
"type": "object",
"properties": {
"dataType": {
"$ref": "#/definitions/DataTypeMetadataModel"
},
"valueRank": {
"$ref": "#/definitions/NodeValueRank"
},
"arrayDimensions": {
"format": "int64",
"description": "Array dimensions of the variable.",
"type": "integer",
"items": {
"format": "int64",
"type": "integer"
}
}
},
"additionalProperties": false
},
"VariantValueHistoryReadNextResponseModel": {
"description": "History read continuation result",
"required": [
"history"
],
"type": "object",
"properties": {
"history": {
"description": "History as json encoded extension object",
"type": "object"
},
"continuationToken": {
"description": "Continuation token if more results pending.",
"type": "string"
},
"errorInfo": {
"$ref": "#/definitions/ServiceResultModel"
}
},
"additionalProperties": false
},
"VariantValueHistoryReadRequestModel": {
"description": "Request node history read",
"required": [
"details"
],
"type": "object",
"properties": {
"nodeId": {
"description": "Node to read from (mandatory without browse path)",
"type": "string"
},
"browsePath": {
"description": "An optional path from NodeId instance to\r\nthe actual node.",
"type": "array",
"items": {
"type": "string"
}
},
"details": {
"description": "The HistoryReadDetailsType extension object\r\nencoded in json and containing the tunneled\r\nHistorian reader request.",
"type": "object"
},
"indexRange": {
"description": "Index range to read, e.g. 1:2,0:1 for 2 slices\r\nout of a matrix or 0:1 for the first item in\r\nan array, string or bytestring.\r\nSee 7.22 of part 4: NumericRange.",
"type": "string"
},
"header": {
"$ref": "#/definitions/RequestHeaderModel"
},
"timestampsToReturn": {
"$ref": "#/definitions/TimestampsToReturn"
}
},
"additionalProperties": false
},
"VariantValueHistoryReadRequestModelRequestEnvelope": {
"description": "Wraps a request and a connection to bind to a\r\nbody more easily for api that requires a\r\nconnection endpoint",
"required": [
"connection"
],
"type": "object",
"properties": {
"connection": {
"$ref": "#/definitions/ConnectionModel"
},
"request": {
"$ref": "#/definitions/VariantValueHistoryReadRequestModel"
}
},
"additionalProperties": false
},
"VariantValueHistoryReadResponseModel": {
"description": "History read results",
"required": [
"history"
],
"type": "object",
"properties": {
"history": {
"description": "History as json encoded extension object",
"type": "object"
},
"continuationToken": {
"description": "Continuation token if more results pending.",
"type": "string"
},
"errorInfo": {
"$ref": "#/definitions/ServiceResultModel"
}
},
"additionalProperties": false
},
"VariantValueHistoryUpdateRequestModel": {
"description": "Request node history update",
"required": [
"details"
],
"type": "object",
"properties": {
"nodeId": {
"description": "Node to update (mandatory without browse path)",
"type": "string"
},
"browsePath": {
"description": "An optional path from NodeId instance to\r\nthe actual node.",
"type": "array",
"items": {
"type": "string"
}
},
"details": {
"description": "The HistoryUpdateDetailsType extension object\r\nencoded as json Variant and containing the tunneled\r\nupdate request for the Historian server. The value\r\nis updated at edge using above node address.",
"type": "object"
},
"header": {
"$ref": "#/definitions/RequestHeaderModel"
}
},
"additionalProperties": false
},
"VariantValueHistoryUpdateRequestModelRequestEnvelope": {
"description": "Wraps a request and a connection to bind to a\r\nbody more easily for api that requires a\r\nconnection endpoint",
"required": [
"connection"
],
"type": "object",
"properties": {
"connection": {
"$ref": "#/definitions/ConnectionModel"
},
"request": {
"$ref": "#/definitions/VariantValueHistoryUpdateRequestModel"
}
},
"additionalProperties": false
},
"VariantValuePublishedNodeCreateAssetRequestModel": {
"description": "Request to create an asset in the configuration api",
"required": [
"configuration",
"entry"
],
"type": "object",
"properties": {
"header": {
"$ref": "#/definitions/RequestHeaderModel"
},
"entry": {
"$ref": "#/definitions/PublishedNodesEntryModel"
},
"configuration": {
"description": "The asset configuration to use when creating the asset.",
"type": "object"
},
"waitTime": {
"format": "date-span",
"description": "Time to wait after the configuration is applied to perform\r\nthe configuration of the asset in the configuration api.\r\nThis is to let the server settle.",
"type": "string"
}
},
"additionalProperties": false
},
"WriteRequestModel": {
"description": "Request node attribute write",
"required": [
"attributes"
],
"type": "object",
"properties": {
"attributes": {
"description": "Attributes to update",
"type": "array",
"items": {
"$ref": "#/definitions/AttributeWriteRequestModel"
}
},
"header": {
"$ref": "#/definitions/RequestHeaderModel"
}
},
"additionalProperties": false
},
"WriteRequestModelRequestEnvelope": {
"description": "Wraps a request and a connection to bind to a\r\nbody more easily for api that requires a\r\nconnection endpoint",
"required": [
"connection"
],
"type": "object",
"properties": {
"connection": {
"$ref": "#/definitions/ConnectionModel"
},
"request": {
"$ref": "#/definitions/WriteRequestModel"
}
},
"additionalProperties": false
},
"WriteResponseModel": {
"description": "Result of attribute write",
"required": [
"results"
],
"type": "object",
"properties": {
"results": {
"description": "All results of attribute writes",
"type": "array",
"items": {
"$ref": "#/definitions/AttributeWriteResponseModel"
}
},
"errorInfo": {
"$ref": "#/definitions/ServiceResultModel"
}
},
"additionalProperties": false
},
"WriterGroupTransport": {
"description": "Specifies the transport technology used to publish messages from OPC Publisher.\r\nEach transport offers different capabilities for message delivery, routing,\r\nand quality of service. The transport choice affects how messages are delivered\r\nand what features are available.",
"enum": [
"IoTHub",
"Mqtt",
"EventHub",
"Dapr",
"Http",
"FileSystem",
"AioMqtt",
"AioDss",
"Null"
],
"type": "string",
"x-ms-enum": {
"name": "WriterGroupTransport",
"modelAsString": false
}
},
"X509CertificateChainModel": {
"description": "Certificate chain",
"type": "object",
"properties": {
"chain": {
"description": "Chain",
"type": "array",
"items": {
"$ref": "#/definitions/X509CertificateModel"
}
},
"status": {
"description": "Chain validation status if validated",
"enum": [
"NotTimeValid",
"Revoked",
"NotSignatureValid",
"NotValidForUsage",
"UntrustedRoot",
"RevocationStatusUnknown",
"Cyclic",
"InvalidExtension",
"InvalidPolicyConstraints",
"InvalidBasicConstraints",
"InvalidNameConstraints",
"HasNotSupportedNameConstraint",
"HasNotDefinedNameConstraint",
"HasNotPermittedNameConstraint",
"HasExcludedNameConstraint",
"PartialChain",
"CtlNotTimeValid",
"CtlNotSignatureValid",
"CtlNotValidForUsage",
"HasWeakSignature",
"OfflineRevocation",
"NoIssuanceChainPolicy",
"ExplicitDistrust",
"HasNotSupportedCriticalExtension"
],
"type": "string",
"items": {
"$ref": "#/definitions/X509ChainStatus"
},
"x-ms-enum": {
"name": "X509ChainStatus",
"modelAsString": false
}
}
},
"additionalProperties": false
},
"X509CertificateModel": {
"description": "Certificate model",
"type": "object",
"properties": {
"subject": {
"description": "Subject",
"type": "string"
},
"thumbprint": {
"description": "Thumbprint",
"type": "string"
},
"serialNumber": {
"description": "Serial number",
"type": "string"
},
"notBeforeUtc": {
"format": "date-time",
"description": "Not before validity",
"type": "string"
},
"notAfterUtc": {
"format": "date-time",
"description": "Not after validity",
"type": "string"
},
"selfSigned": {
"description": "Self signed certificate",
"type": "boolean"
},
"pfx": {
"description": "Certificate as Pkcs12",
"type": "array",
"items": {
"format": "int32",
"type": "integer"
}
},
"hasPrivateKey": {
"description": "Contains private key",
"type": "boolean"
}
},
"additionalProperties": false
},
"X509ChainStatus": {
"description": "Status of x509 chain",
"enum": [
"NotTimeValid",
"Revoked",
"NotSignatureValid",
"NotValidForUsage",
"UntrustedRoot",
"RevocationStatusUnknown",
"Cyclic",
"InvalidExtension",
"InvalidPolicyConstraints",
"InvalidBasicConstraints",
"InvalidNameConstraints",
"HasNotSupportedNameConstraint",
"HasNotDefinedNameConstraint",
"HasNotPermittedNameConstraint",
"HasExcludedNameConstraint",
"PartialChain",
"CtlNotTimeValid",
"CtlNotSignatureValid",
"CtlNotValidForUsage",
"HasWeakSignature",
"OfflineRevocation",
"NoIssuanceChainPolicy",
"ExplicitDistrust",
"HasNotSupportedCriticalExtension"
],
"type": "string",
"x-ms-enum": {
"name": "X509ChainStatus",
"modelAsString": false
}
}
},
"tags": [
{
"name": "Certificates",
"description": "\r\nThis section lists the certificate APi provided by OPC Publisher providing\r\n all public and private key infrastructure (PKI) related API methods.\r\n\r\nThe method name for all transports other than HTTP (which uses the shown\r\n HTTP methods and resource uris) is the name of the subsection header.\r\n To use the version specific method append \"_V1\" or \"_V2\" to the method\r\n name."
},
{
"name": "Configuration",
"description": "\r\nThis section contains the API to configure OPC Publisher.\r\n\r\nThe method name for all transports other than HTTP (which uses the shown\r\n HTTP methods and resource uris) is the name of the subsection header.\r\n To use the version specific method append \"_V1\" or \"_V2\" to the method\r\n name."
},
{
"name": "Diagnostics",
"description": "\r\nThis section lists the diagnostics APi provided by OPC Publisher providing\r\n connection related diagnostics API methods.\r\n\r\nThe method name for all transports other than HTTP (which uses the shown\r\n HTTP methods and resource uris) is the name of the subsection header.\r\n To use the version specific method append \"_V1\" or \"_V2\" to the method\r\n name."
},
{
"name": "Discovery",
"description": "\r\nOPC UA and network discovery related API.\r\n\r\nThe method name for all transports other than HTTP (which uses the shown\r\n HTTP methods and resource uris) is the name of the subsection header.\r\n To use the version specific method append \"_V1\" or \"_V2\" to the method"
},
{
"name": "FileSystem",
"description": "\r\nThis section lists the file transfer API provided by OPC Publisher providing\r\n access to file transfer services to move files in and out of a server\r\n using the File transfer specification.\r\n\r\nThe method name for all transports other than HTTP (which uses the shown\r\n HTTP methods and resource uris) is the name of the subsection header.\r\n To use the version specific method append \"_V1\" or \"_V2\" to the method\r\n name."
},
{
"name": "General",
"description": "\r\nThis section lists the general APi provided by OPC Publisher providing\r\n all connection, endpoint and address space related API methods.\r\n\r\nThe method name for all transports other than HTTP (which uses the shown\r\n HTTP methods and resource uris) is the name of the subsection header.\r\n To use the version specific method append \"_V1\" or \"_V2\" to the method\r\n name."
},
{
"name": "History",
"description": "\r\nThis section lists all OPC UA HDA or Historian related API provided by\r\n OPC Publisher.\r\n\r\nThe method name for all transports other than HTTP (which uses the shown\r\n HTTP methods and resource uris) is the name of the subsection header.\r\n To use the version specific method append \"_V1\" or \"_V2\" to the method\r\n name."
},
{
"name": "Writer",
"description": "\r\nThis section contains the API to configure data set writers and writer\r\n groups inside OPC Publisher. It supersedes the configuration API.\r\n Applications should use one or the other, but not both at the same\r\n time.\r\n\r\nThe method name for all transports other than HTTP (which uses the shown\r\n HTTP methods and resource uris) is the name of the subsection header.\r\n To use the version specific method append \"_V1\" or \"_V2\" to the method\r\n name."
}
]
}