Full Code of Azure/iot-edge-opc-publisher for AI

release/2.9.15 ed10198e4d1a cached
1761 files
24.5 MB
6.5M tokens
11430 symbols
1 requests
Copy disabled (too large) Download .txt
Showing preview only (26,109K chars total). Download the full file to get everything.
Repository: Azure/iot-edge-opc-publisher
Branch: release/2.9.15
Commit: ed10198e4d1a
Files: 1761
Total size: 24.5 MB

Directory structure:
gitextract_707ivrax/

├── .editorconfig
├── .gdnbaselines
├── .gitattributes
├── .github/
│   ├── CODEOWNERS
│   ├── ISSUE_TEMPLATE/
│   │   ├── bug_report.md
│   │   └── feature_request.md
│   ├── dependabot.yml
│   └── workflows/
│       ├── codeql.yml
│       ├── dotnet.yml
│       └── test.yml
├── .gitignore
├── .mcp.json
├── .sscignore
├── CODEOWNERS
├── Industrial-IoT.slnx
├── LICENSE
├── NOTICE
├── Nuget.Config
├── SECURITY.md
├── azure-pipelines.yml
├── common.props
├── contributing.md
├── deploy/
│   ├── azuredeploy.json
│   ├── azuredeploy.parameters.json
│   ├── deploy.ps1
│   ├── docker/
│   │   ├── build.cmd
│   │   ├── dapr/
│   │   │   ├── pubsub.yaml
│   │   │   └── statestore.yaml
│   │   ├── docker-compose.yaml
│   │   ├── gcdump.ps1
│   │   ├── mosquitto/
│   │   │   ├── mosquitto.conf
│   │   │   └── settings.json
│   │   ├── opentelemetry/
│   │   │   ├── collector.yaml
│   │   │   ├── dashboards/
│   │   │   │   └── opc-publisher.json
│   │   │   ├── dashboards.yaml
│   │   │   ├── datasources.yaml
│   │   │   ├── prometheus.yml
│   │   │   └── tempo.yaml
│   │   ├── publisher_secrets.txt
│   │   ├── readme.md
│   │   ├── with-dapr.yaml
│   │   ├── with-limits.yaml
│   │   ├── with-localimage.yaml
│   │   ├── with-localvolume.yaml
│   │   ├── with-monitor.yaml
│   │   ├── with-mosquitto.yaml
│   │   ├── with-opentelemetry.yaml
│   │   └── with-pcap-capture.yaml
│   ├── iotedge/
│   │   ├── .gitignore
│   │   ├── arm/
│   │   │   ├── TLSSettings.ps1
│   │   │   ├── default.yml
│   │   │   ├── dps-enroll.ps1
│   │   │   ├── dsc-install.ps1
│   │   │   ├── edge-setup.ps1
│   │   │   ├── edge-setup.sh
│   │   │   ├── eflow-setup.ps1
│   │   │   ├── simulation.sh
│   │   │   └── testing.yml
│   │   ├── azuredeploy.json
│   │   ├── azuredeploy.parameters.json
│   │   ├── edgehubdev.cmd
│   │   ├── edgehubdev.json
│   │   ├── eflow-setup.json
│   │   ├── eflow-setup.ps1
│   │   └── readme.md
│   ├── kubernetes/
│   │   ├── cluster-setup.ps1
│   │   ├── common/
│   │   │   └── cluster-utils.psm1
│   │   ├── debug/
│   │   │   ├── Dockerfile
│   │   │   ├── build.ps1
│   │   │   ├── debug.json
│   │   │   ├── debug.ps1
│   │   │   ├── entrypoint.sh
│   │   │   └── forward-mq.ps1
│   │   ├── deploy.ps1
│   │   ├── iotops/
│   │   │   ├── adr-tool.ps1
│   │   │   ├── azure_iot_ops-2.0.0b4.dev1-py3-none-any.whl
│   │   │   ├── enable-preview.ps1
│   │   │   └── opc-publisher-connector-metadata.json
│   │   ├── readme.md
│   │   └── simulation/
│   │       ├── deploy.ps1
│   │       └── helm/
│   │           ├── opc-plc/
│   │           │   ├── Chart.yaml
│   │           │   ├── templates/
│   │           │   │   ├── _helpers.tpl
│   │           │   │   ├── opc-plc_configMap.yaml
│   │           │   │   ├── opc-plc_default_application_certificate.yaml
│   │           │   │   ├── opc-plc_deployment.yaml
│   │           │   │   └── opc-plc_service.yaml
│   │           │   └── values.yaml
│   │           ├── opc-test/
│   │           │   ├── Chart.yaml
│   │           │   ├── templates/
│   │           │   │   ├── _helpers.tpl
│   │           │   │   ├── opc-test_default_application_certificate.yaml
│   │           │   │   ├── opc-test_deployment.yaml
│   │           │   │   └── opc-test_service.yaml
│   │           │   └── values.yaml
│   │           ├── opc-umati/
│   │           │   └── templates/
│   │           │       └── umati_deployment.yaml
│   │           └── umati/
│   │               ├── Chart.yaml
│   │               ├── templates/
│   │               │   ├── _helpers.tpl
│   │               │   ├── umati_configMap.yaml
│   │               │   ├── umati_default_application_certificate.yaml
│   │               │   ├── umati_deployment.yaml
│   │               │   └── umati_service.yaml
│   │               └── values.yaml
│   └── readme.md
├── docs/
│   ├── _config.yml
│   ├── opc-publisher/
│   │   ├── api.md
│   │   ├── commandline.md
│   │   ├── definitions.md
│   │   ├── deployment.json
│   │   ├── directmethods.md
│   │   ├── features.md
│   │   ├── intfilesamples.md
│   │   ├── messageformats.md
│   │   ├── migrationpath.md
│   │   ├── observability.md
│   │   ├── openapi.json
│   │   ├── publishednodes_2.5.json
│   │   ├── publishednodes_2.8.json
│   │   ├── readme.md
│   │   ├── security.md
│   │   ├── transports.md
│   │   └── troubleshooting.md
│   ├── readme.md
│   └── release-announcement.md
├── e2e-tests/
│   ├── .gitignore
│   ├── Directory.Build.props
│   ├── IIoTPlatform-E2E-Tests.slnx
│   ├── OpcPublisher-E2E-Tests/
│   │   ├── Config/
│   │   │   ├── IContainerRegistryConfig.cs
│   │   │   ├── IDeviceConfig.cs
│   │   │   ├── IIoTEdgeConfig.cs
│   │   │   ├── IIoTHubConfig.cs
│   │   │   ├── IOpcPlcConfig.cs
│   │   │   └── ISshConfig.cs
│   │   ├── GlobalSuppressions.cs
│   │   ├── MessagingMode.cs
│   │   ├── OpcPublisher-AE-E2E-Tests.csproj
│   │   ├── Properties/
│   │   │   └── AssemblyInfo.cs
│   │   ├── PublishedNodesConfigurations.cs
│   │   ├── RegistryHelper.cs
│   │   ├── Standalone/
│   │   │   ├── C_EventNamespaceTestTheory.cs
│   │   │   ├── C_EventsStressTestTheory.cs
│   │   │   ├── C_PendingConditionsTestTheory.cs
│   │   │   ├── C_PublishConditionsTestTheory.cs
│   │   │   ├── C_WhereClauseTestTheory.cs
│   │   │   ├── D_AlarmDirectMethodTestTheory.cs
│   │   │   ├── D_EventDirectMethodTestTheory.cs
│   │   │   └── DynamicAciTestBase.cs
│   │   ├── TestConstants.cs
│   │   ├── TestExtensions/
│   │   │   ├── IIoTPlatformTestContext.cs
│   │   │   ├── IIoTStandaloneTestContext.cs
│   │   │   ├── PriorityOrderAttribute.cs
│   │   │   └── TestCaseOrderer.cs
│   │   ├── TestHelper.cs
│   │   ├── TestModels/
│   │   │   ├── BaseEventTypePayload.cs
│   │   │   ├── ConditionTypePayload.cs
│   │   │   ├── DataValueObject.cs
│   │   │   ├── EventData.cs
│   │   │   ├── PendingConditionEventData.cs
│   │   │   ├── SimpleEventsStep.cs
│   │   │   ├── SystemCycleStatusEventTypePayload.cs
│   │   │   └── SystemEventTypePayload.cs
│   │   ├── deploy/
│   │   │   ├── DeploymentConfiguration.cs
│   │   │   ├── IIoTHubEdgeDeployment.cs
│   │   │   ├── IoTHubEdgeBaseDeployment.cs
│   │   │   ├── IoTHubPublisherDeployment.cs
│   │   │   └── ModuleDeploymentConfiguration.cs
│   │   ├── opc-plc-files/
│   │   │   └── sc001.json
│   │   └── xunit.runner.json
│   └── readme.md
├── readme.md
├── samples/
│   ├── .gitignore
│   ├── Http/
│   │   ├── BrowseAll/
│   │   │   ├── BrowseAll.cs
│   │   │   └── BrowseAll.csproj
│   │   ├── GetConfiguration/
│   │   │   ├── GetConfiguration.cs
│   │   │   └── GetConfiguration.csproj
│   │   ├── GetDiagnostics/
│   │   │   ├── GetDiagnostics.cs
│   │   │   └── GetDiagnostics.csproj
│   │   ├── HttpSamples.slnx
│   │   ├── Parameters.cs
│   │   ├── ReadCurrentTime/
│   │   │   ├── ReadCurrentTime.cs
│   │   │   └── ReadCurrentTime.csproj
│   │   ├── SetConfiguration/
│   │   │   ├── SetConfiguration.cs
│   │   │   └── SetConfiguration.csproj
│   │   ├── WriteReadbackValue/
│   │   │   ├── WriteReadbackValue.cs
│   │   │   └── WriteReadbackValue.csproj
│   │   └── readme.md
│   ├── IoTHub/
│   │   ├── ApproveRejected/
│   │   │   ├── ApproveRejected.cs
│   │   │   └── ApproveRejected.csproj
│   │   ├── BrowseCertificates/
│   │   │   ├── BrowseCertificates.cs
│   │   │   └── BrowseCertificates.csproj
│   │   ├── GetCertificate/
│   │   │   ├── GetApplicationCert.cs
│   │   │   └── GetApplicationCert.csproj
│   │   ├── GetConfiguration/
│   │   │   ├── GetConfiguration.cs
│   │   │   └── GetConfiguration.csproj
│   │   ├── IoTHubSamples.slnx
│   │   ├── ManageWriter/
│   │   │   ├── ManageWriter.cs
│   │   │   └── ManageWriter.csproj
│   │   ├── MonitorMessages/
│   │   │   ├── MonitorMessages.cs
│   │   │   └── MonitorMessages.csproj
│   │   ├── Parameters.cs
│   │   ├── ReadCurrentTime/
│   │   │   ├── ReadCurrentTime.cs
│   │   │   └── ReadCurrentTime.csproj
│   │   ├── ResetClients/
│   │   │   ├── GetAndResetConnections.cs
│   │   │   └── GetAndResetConnections.csproj
│   │   ├── WriteReadbackValue/
│   │   │   ├── WriteReadbackValue.cs
│   │   │   └── WriteReadbackValue.csproj
│   │   └── readme.md
│   ├── Mqtt/
│   │   ├── GetConfiguration/
│   │   │   ├── GetConfiguration.cs
│   │   │   └── GetConfiguration.csproj
│   │   ├── ManageWriter/
│   │   │   ├── ManageWriter.cs
│   │   │   └── ManageWriter.csproj
│   │   ├── MonitorMessages/
│   │   │   ├── MonitorMessages.cs
│   │   │   └── MonitorMessages.csproj
│   │   ├── MqttSamples.slnx
│   │   ├── ReadAttributes/
│   │   │   ├── ReadAttributes.cs
│   │   │   └── ReadAttributes.csproj
│   │   ├── ReadCurrentTime/
│   │   │   ├── ReadCurrentTime.cs
│   │   │   └── ReadCurrentTime.csproj
│   │   ├── WriteReadbackValue/
│   │   │   ├── WriteReadbackValue.cs
│   │   │   └── WriteReadbackValue.csproj
│   │   └── readme.md
│   └── Netcap/
│       ├── Directory.Build.props
│       ├── Netcap.slnx
│       ├── build.sh
│       ├── readme.md
│       └── src/
│           ├── .dockerignore
│           ├── Dockerfile
│           ├── Extensions.cs
│           ├── Gateway.cs
│           ├── Netcap.cs
│           ├── Netcap.csproj
│           ├── Pcap.cs
│           ├── Program.cs
│           ├── Publisher.cs
│           └── Storage.cs
├── src/
│   ├── .gitignore
│   ├── Azure.IIoT.OpcUa/
│   │   ├── src/
│   │   │   ├── Azure.IIoT.OpcUa.csproj
│   │   │   ├── Encoders/
│   │   │   │   ├── AvroBinaryReader.cs
│   │   │   │   ├── AvroBinaryWriter.cs
│   │   │   │   ├── AvroDecoder.cs
│   │   │   │   ├── AvroEncoder.cs
│   │   │   │   ├── AvroFileReader.cs
│   │   │   │   ├── AvroFileWriter.cs
│   │   │   │   ├── AvroFileWriterOptions.cs
│   │   │   │   ├── AvroSchemaBuilder.cs
│   │   │   │   ├── AvroSchemaTraverser.cs
│   │   │   │   ├── BaseAvroDecoder.cs
│   │   │   │   ├── BaseAvroEncoder.cs
│   │   │   │   ├── ConsoleWriter.cs
│   │   │   │   ├── ConsoleWriterOptions.cs
│   │   │   │   ├── ContentType.cs
│   │   │   │   ├── DecodingException.cs
│   │   │   │   ├── EncodingException.cs
│   │   │   │   ├── Extensions/
│   │   │   │   │   ├── EncodeableEx.cs
│   │   │   │   │   ├── Extensions.cs
│   │   │   │   │   ├── JsonSerializerUtcEx.cs
│   │   │   │   │   ├── LocalizedTextEx.cs
│   │   │   │   │   ├── NodeIdEx.cs
│   │   │   │   │   ├── QualifiedNameEx.cs
│   │   │   │   │   ├── StatusCodeEx.cs
│   │   │   │   │   └── TypeInfoEx.cs
│   │   │   │   ├── Extensions.cs
│   │   │   │   ├── IVariantEncoder.cs
│   │   │   │   ├── JsonDecoderEx.cs
│   │   │   │   ├── JsonEncoderEx.cs
│   │   │   │   ├── JsonVariantEncoder.cs
│   │   │   │   ├── MessageSchemaTypes.cs
│   │   │   │   ├── Models/
│   │   │   │   │   ├── DataSet.cs
│   │   │   │   │   ├── EncodeableDictionary.cs
│   │   │   │   │   ├── EncodeableJToken.cs
│   │   │   │   │   ├── EncodeableVariantValue.cs
│   │   │   │   │   └── KeyDataValuePair.cs
│   │   │   │   ├── PubSub/
│   │   │   │   │   ├── AvroDataSetMessage.cs
│   │   │   │   │   ├── AvroNetworkMessage.cs
│   │   │   │   │   ├── BaseDataSetMessage.cs
│   │   │   │   │   ├── BaseNetworkMessage.cs
│   │   │   │   │   ├── EncoderExtensions.cs
│   │   │   │   │   ├── IDataSetMetaDataResolver.cs
│   │   │   │   │   ├── JsonDataSetMessage.cs
│   │   │   │   │   ├── JsonMetadataMessage.cs
│   │   │   │   │   ├── JsonNetworkMessage.cs
│   │   │   │   │   ├── MessageType.cs
│   │   │   │   │   ├── MonitoredItemMessage.cs
│   │   │   │   │   ├── PubSubMessage.cs
│   │   │   │   │   ├── StackExtensions.cs
│   │   │   │   │   ├── UadpDataSetMessage.cs
│   │   │   │   │   ├── UadpDiscoveryMessage.cs
│   │   │   │   │   ├── UadpMetadataMessage.cs
│   │   │   │   │   └── UadpNetworkMessage.cs
│   │   │   │   ├── Schemas/
│   │   │   │   │   ├── Avro/
│   │   │   │   │   │   ├── AvroBuiltInSchemas.cs
│   │   │   │   │   │   ├── AvroDataSet.cs
│   │   │   │   │   │   ├── AvroDataSetMessage.cs
│   │   │   │   │   │   ├── AvroNetworkMessage.cs
│   │   │   │   │   │   ├── AvroSchema.cs
│   │   │   │   │   │   ├── BaseDataSetMessage.cs
│   │   │   │   │   │   ├── BaseNetworkMessage.cs
│   │   │   │   │   │   ├── IAvroSchema.cs
│   │   │   │   │   │   ├── JsonBuiltInSchemas.cs
│   │   │   │   │   │   ├── JsonDataSet.cs
│   │   │   │   │   │   ├── JsonDataSetMessage.cs
│   │   │   │   │   │   ├── JsonNetworkMessage.cs
│   │   │   │   │   │   └── MonitoredItemMessage.cs
│   │   │   │   │   ├── BaseBuiltInSchemas.cs
│   │   │   │   │   ├── BaseDataSetSchema.cs
│   │   │   │   │   ├── Json/
│   │   │   │   │   │   ├── JsonBuiltInSchemas.cs
│   │   │   │   │   │   ├── JsonDataSet.cs
│   │   │   │   │   │   ├── JsonDataSetMessage.cs
│   │   │   │   │   │   ├── JsonNetworkMessage.cs
│   │   │   │   │   │   ├── JsonSchema.cs
│   │   │   │   │   │   ├── JsonSchemaExtensions.cs
│   │   │   │   │   │   ├── JsonSchemaVersion.cs
│   │   │   │   │   │   ├── JsonSchemaVocabulary.cs
│   │   │   │   │   │   ├── JsonSchemaWriter.cs
│   │   │   │   │   │   └── MonitoredItemMessage.cs
│   │   │   │   │   ├── SchemaOptions.cs
│   │   │   │   │   ├── SchemaRank.cs
│   │   │   │   │   ├── SchemaUtils.cs
│   │   │   │   │   └── Uadp/
│   │   │   │   │       └── UadpNetworkMessage.cs
│   │   │   │   ├── Utils/
│   │   │   │   │   └── TypeMaps.cs
│   │   │   │   ├── ZipFileReader.cs
│   │   │   │   └── ZipFileWriter.cs
│   │   │   ├── Exceptions/
│   │   │   │   ├── ConnectionException.cs
│   │   │   │   └── ServerBusyException.cs
│   │   │   ├── Extensions/
│   │   │   │   ├── LinqEx.cs
│   │   │   │   ├── StreamEx.cs
│   │   │   │   ├── StringEx.cs
│   │   │   │   └── TimerEx.cs
│   │   │   ├── IMetricsContext.cs
│   │   │   ├── Properties/
│   │   │   │   └── AssemblyInfo.cs
│   │   │   └── Publisher/
│   │   │       ├── Diagnostics.cs
│   │   │       ├── Extensions/
│   │   │       │   ├── AggregateConfigurationModelEx.cs
│   │   │       │   ├── AggregateFilterModelEx.cs
│   │   │       │   ├── ApplicationInfoModelEx.cs
│   │   │       │   ├── ApplicationRegistrationModelEx.cs
│   │   │       │   ├── AuthenticationMethodModelEx.cs
│   │   │       │   ├── ConditionHandlingOptionsModelEx.cs
│   │   │       │   ├── ConnectionModelEx.cs
│   │   │       │   ├── ContentFilterElementModelEx.cs
│   │   │       │   ├── ContentFilterModelEx.cs
│   │   │       │   ├── CredentialModelEx.cs
│   │   │       │   ├── DataChangeFilterModelEx.cs
│   │   │       │   ├── DataSetMetaDataModelEx.cs
│   │   │       │   ├── DataSetWriterModelEx.cs
│   │   │       │   ├── DiagnosticsModelEx.cs
│   │   │       │   ├── DiscoveryConfigModelEx.cs
│   │   │       │   ├── DiscoveryRequestModelEx.cs
│   │   │       │   ├── EndpointModelEx.cs
│   │   │       │   ├── EndpointRegistrationModelEx.cs
│   │   │       │   ├── EventFilterModelEx.cs
│   │   │       │   ├── FileSystemServicesEx.cs
│   │   │       │   ├── FilterOperandModelEx.cs
│   │   │       │   ├── ModelChangeHandlingOptionsModelEx.cs
│   │   │       │   ├── NodeServicesEx.cs
│   │   │       │   ├── OpcNodeModelEx.cs
│   │   │       │   ├── PublishedDataItemsModelEx.cs
│   │   │       │   ├── PublishedDataSetEventModelEx.cs
│   │   │       │   ├── PublishedDataSetModelEx.cs
│   │   │       │   ├── PublishedDataSetSettingsModelEx.cs
│   │   │       │   ├── PublishedDataSetSourceModelEx.cs
│   │   │       │   ├── PublishedDataSetTriggerModelEx.cs
│   │   │       │   ├── PublishedDataSetVariableModelEx.cs
│   │   │       │   ├── PublishedEventItemsModelEx.cs
│   │   │       │   ├── PublishedNodesEntryModelEx.cs
│   │   │       │   ├── RegistryOperationContextModelEx.cs
│   │   │       │   ├── SimpleAttributeOperandModelEx.cs
│   │   │       │   ├── UserIdentityModelEx.cs
│   │   │       │   ├── X509CertificateChainModelEx.cs
│   │   │       │   └── X509CertificateModelEx.cs
│   │   │       ├── ICertificateServices.cs
│   │   │       ├── IConnectionServices.cs
│   │   │       ├── IFileSystemServices.cs
│   │   │       ├── IHistoryServices.cs
│   │   │       ├── INetworkDiscovery.cs
│   │   │       ├── INodeServices.cs
│   │   │       ├── IPublishServices.cs
│   │   │       ├── IServerDiscovery.cs
│   │   │       └── Runtime.cs
│   │   └── tests/
│   │       ├── Azure.IIoT.OpcUa.Tests.csproj
│   │       ├── Encoders/
│   │       │   ├── AvroBaseTests.cs
│   │       │   ├── AvroDataSetTests.cs
│   │       │   ├── AvroEncoderTests.cs
│   │       │   ├── AvroFileWriterTests.cs
│   │       │   ├── Extensions/
│   │       │   │   ├── ExpandedNodeIdExTests.cs
│   │       │   │   ├── LocalizedTextExTests.cs
│   │       │   │   ├── NodeIdExTests.cs
│   │       │   │   ├── QualifiedNameExTests.cs
│   │       │   │   └── TypeInfoExTests.cs
│   │       │   ├── JsonDataSetTests.cs
│   │       │   ├── Models/
│   │       │   │   └── EncodeableDictionaryTests.cs
│   │       │   ├── PubSub/
│   │       │   │   ├── AvroNetworkMessageEncoderDecoderTests1.cs
│   │       │   │   ├── AvroNetworkMessageEncoderDecoderTests2.cs
│   │       │   │   ├── AvroNetworkMessageFileWriterReaderTests.cs
│   │       │   │   ├── JsonNetworkMessageEncoderDecoderTests.cs
│   │       │   │   ├── JsonNetworkMessageEncoderTests1.cs
│   │       │   │   ├── JsonNetworkMessageEncoderTests2.cs
│   │       │   │   ├── MonitoredItemMessageEncoderDecoderTests.cs
│   │       │   │   ├── PubSubMessageContentFlagHelper.cs
│   │       │   │   └── UadpNetworkMessageEncoderDecoderTests.cs
│   │       │   ├── SchemaUtilsTests.cs
│   │       │   ├── Schemas/
│   │       │   │   ├── AvroNetworkMessageAvroSchemaTests.cs
│   │       │   │   ├── AvroSchema/
│   │       │   │   │   ├── Default/
│   │       │   │   │   │   ├── CyclicReads.json
│   │       │   │   │   │   ├── KeepAlive.json
│   │       │   │   │   │   ├── KeyFrames.json
│   │       │   │   │   │   ├── PendingAlarms.json
│   │       │   │   │   │   ├── PlcSimulation.json
│   │       │   │   │   │   └── SimpleEvents.json
│   │       │   │   │   ├── Multiple/
│   │       │   │   │   │   ├── CyclicReads.json
│   │       │   │   │   │   ├── KeepAlive.json
│   │       │   │   │   │   ├── KeyFrames.json
│   │       │   │   │   │   ├── PendingAlarms.json
│   │       │   │   │   │   ├── PlcSimulation.json
│   │       │   │   │   │   └── SimpleEvents.json
│   │       │   │   │   ├── NetworkMessage/
│   │       │   │   │   │   ├── CyclicReads.json
│   │       │   │   │   │   ├── KeepAlive.json
│   │       │   │   │   │   ├── KeyFrames.json
│   │       │   │   │   │   ├── PendingAlarms.json
│   │       │   │   │   │   ├── PlcSimulation.json
│   │       │   │   │   │   └── SimpleEvents.json
│   │       │   │   │   ├── NetworkMessageDefault/
│   │       │   │   │   │   ├── CyclicReads.json
│   │       │   │   │   │   ├── KeepAlive.json
│   │       │   │   │   │   ├── KeyFrames.json
│   │       │   │   │   │   ├── PendingAlarms.json
│   │       │   │   │   │   ├── PlcSimulation.json
│   │       │   │   │   │   └── SimpleEvents.json
│   │       │   │   │   ├── Raw/
│   │       │   │   │   │   ├── CyclicReads.json
│   │       │   │   │   │   ├── KeepAlive.json
│   │       │   │   │   │   ├── KeyFrames.json
│   │       │   │   │   │   ├── PendingAlarms.json
│   │       │   │   │   │   ├── PlcSimulation.json
│   │       │   │   │   │   └── SimpleEvents.json
│   │       │   │   │   ├── RawReversible/
│   │       │   │   │   │   ├── CyclicReads.json
│   │       │   │   │   │   ├── KeepAlive.json
│   │       │   │   │   │   ├── KeyFrames.json
│   │       │   │   │   │   ├── PendingAlarms.json
│   │       │   │   │   │   ├── PlcSimulation.json
│   │       │   │   │   │   └── SimpleEvents.json
│   │       │   │   │   └── Single/
│   │       │   │   │       ├── CyclicReads.json
│   │       │   │   │       ├── KeepAlive.json
│   │       │   │   │       ├── KeyFrames.json
│   │       │   │   │       ├── PendingAlarms.json
│   │       │   │   │       ├── PlcSimulation.json
│   │       │   │   │       └── SimpleEvents.json
│   │       │   │   ├── JavroSchema/
│   │       │   │   │   ├── Default/
│   │       │   │   │   │   ├── CyclicReads.json
│   │       │   │   │   │   ├── KeepAlive.json
│   │       │   │   │   │   ├── KeyFrames.json
│   │       │   │   │   │   ├── PendingAlarms.json
│   │       │   │   │   │   ├── PlcSimulation.json
│   │       │   │   │   │   └── SimpleEvents.json
│   │       │   │   │   ├── Multiple/
│   │       │   │   │   │   ├── CyclicReads.json
│   │       │   │   │   │   ├── KeepAlive.json
│   │       │   │   │   │   ├── KeyFrames.json
│   │       │   │   │   │   ├── PendingAlarms.json
│   │       │   │   │   │   ├── PlcSimulation.json
│   │       │   │   │   │   └── SimpleEvents.json
│   │       │   │   │   ├── NetworkMessage/
│   │       │   │   │   │   ├── CyclicReads.json
│   │       │   │   │   │   ├── KeepAlive.json
│   │       │   │   │   │   ├── KeyFrames.json
│   │       │   │   │   │   ├── PendingAlarms.json
│   │       │   │   │   │   ├── PlcSimulation.json
│   │       │   │   │   │   └── SimpleEvents.json
│   │       │   │   │   ├── NetworkMessageDefault/
│   │       │   │   │   │   ├── CyclicReads.json
│   │       │   │   │   │   ├── KeepAlive.json
│   │       │   │   │   │   ├── KeyFrames.json
│   │       │   │   │   │   ├── PendingAlarms.json
│   │       │   │   │   │   ├── PlcSimulation.json
│   │       │   │   │   │   └── SimpleEvents.json
│   │       │   │   │   ├── Raw/
│   │       │   │   │   │   ├── CyclicReads.json
│   │       │   │   │   │   ├── KeepAlive.json
│   │       │   │   │   │   ├── KeyFrames.json
│   │       │   │   │   │   ├── PendingAlarms.json
│   │       │   │   │   │   ├── PlcSimulation.json
│   │       │   │   │   │   └── SimpleEvents.json
│   │       │   │   │   ├── RawReversible/
│   │       │   │   │   │   ├── CyclicReads.json
│   │       │   │   │   │   ├── KeepAlive.json
│   │       │   │   │   │   ├── KeyFrames.json
│   │       │   │   │   │   ├── PendingAlarms.json
│   │       │   │   │   │   ├── PlcSimulation.json
│   │       │   │   │   │   └── SimpleEvents.json
│   │       │   │   │   ├── Samples/
│   │       │   │   │   │   ├── CyclicReads.json
│   │       │   │   │   │   ├── KeepAlive.json
│   │       │   │   │   │   ├── KeyFrames.json
│   │       │   │   │   │   ├── PendingAlarms.json
│   │       │   │   │   │   ├── PlcSimulation.json
│   │       │   │   │   │   └── SimpleEvents.json
│   │       │   │   │   ├── SamplesRaw/
│   │       │   │   │   │   ├── CyclicReads.json
│   │       │   │   │   │   ├── KeepAlive.json
│   │       │   │   │   │   ├── KeyFrames.json
│   │       │   │   │   │   ├── PendingAlarms.json
│   │       │   │   │   │   ├── PlcSimulation.json
│   │       │   │   │   │   └── SimpleEvents.json
│   │       │   │   │   └── Single/
│   │       │   │   │       ├── CyclicReads.json
│   │       │   │   │       ├── KeepAlive.json
│   │       │   │   │       ├── KeyFrames.json
│   │       │   │   │       ├── PendingAlarms.json
│   │       │   │   │       ├── PlcSimulation.json
│   │       │   │   │       └── SimpleEvents.json
│   │       │   │   ├── JsonNetworkMessageAvroSchemaTests.cs
│   │       │   │   ├── JsonNetworkMessageJsonSchemaTests.cs
│   │       │   │   └── JsonSchema/
│   │       │   │       ├── Default/
│   │       │   │       │   ├── CyclicReads.json
│   │       │   │       │   ├── KeepAlive.json
│   │       │   │       │   ├── KeyFrames.json
│   │       │   │       │   ├── PendingAlarms.json
│   │       │   │       │   ├── PlcSimulation.json
│   │       │   │       │   └── SimpleEvents.json
│   │       │   │       ├── Multiple/
│   │       │   │       │   ├── CyclicReads.json
│   │       │   │       │   ├── KeepAlive.json
│   │       │   │       │   ├── KeyFrames.json
│   │       │   │       │   ├── PendingAlarms.json
│   │       │   │       │   ├── PlcSimulation.json
│   │       │   │       │   └── SimpleEvents.json
│   │       │   │       ├── NetworkMessage/
│   │       │   │       │   ├── CyclicReads.json
│   │       │   │       │   ├── KeepAlive.json
│   │       │   │       │   ├── KeyFrames.json
│   │       │   │       │   ├── PendingAlarms.json
│   │       │   │       │   ├── PlcSimulation.json
│   │       │   │       │   └── SimpleEvents.json
│   │       │   │       ├── NetworkMessageDefault/
│   │       │   │       │   ├── CyclicReads.json
│   │       │   │       │   ├── KeepAlive.json
│   │       │   │       │   ├── KeyFrames.json
│   │       │   │       │   ├── PendingAlarms.json
│   │       │   │       │   ├── PlcSimulation.json
│   │       │   │       │   └── SimpleEvents.json
│   │       │   │       ├── Raw/
│   │       │   │       │   ├── CyclicReads.json
│   │       │   │       │   ├── KeepAlive.json
│   │       │   │       │   ├── KeyFrames.json
│   │       │   │       │   ├── PendingAlarms.json
│   │       │   │       │   ├── PlcSimulation.json
│   │       │   │       │   └── SimpleEvents.json
│   │       │   │       ├── RawReversible/
│   │       │   │       │   ├── CyclicReads.json
│   │       │   │       │   ├── KeepAlive.json
│   │       │   │       │   ├── KeyFrames.json
│   │       │   │       │   ├── PendingAlarms.json
│   │       │   │       │   ├── PlcSimulation.json
│   │       │   │       │   └── SimpleEvents.json
│   │       │   │       ├── Samples/
│   │       │   │       │   ├── CyclicReads.json
│   │       │   │       │   ├── KeepAlive.json
│   │       │   │       │   ├── KeyFrames.json
│   │       │   │       │   ├── PendingAlarms.json
│   │       │   │       │   ├── PlcSimulation.json
│   │       │   │       │   └── SimpleEvents.json
│   │       │   │       ├── SamplesRaw/
│   │       │   │       │   ├── CyclicReads.json
│   │       │   │       │   ├── KeepAlive.json
│   │       │   │       │   ├── KeyFrames.json
│   │       │   │       │   ├── PendingAlarms.json
│   │       │   │       │   ├── PlcSimulation.json
│   │       │   │       │   └── SimpleEvents.json
│   │       │   │       └── Single/
│   │       │   │           ├── CyclicReads.json
│   │       │   │           ├── KeepAlive.json
│   │       │   │           ├── KeyFrames.json
│   │       │   │           ├── PendingAlarms.json
│   │       │   │           ├── PlcSimulation.json
│   │       │   │           └── SimpleEvents.json
│   │       │   ├── Services/
│   │       │   │   ├── VariantEncoderBooleanTests.cs
│   │       │   │   ├── VariantEncoderByteTests.cs
│   │       │   │   ├── VariantEncoderDoubleTests.cs
│   │       │   │   ├── VariantEncoderEx.cs
│   │       │   │   ├── VariantEncoderFloatTests.cs
│   │       │   │   ├── VariantEncoderInt16Tests.cs
│   │       │   │   ├── VariantEncoderInt32Tests.cs
│   │       │   │   ├── VariantEncoderInt64Tests.cs
│   │       │   │   ├── VariantEncoderMiscTests.cs
│   │       │   │   ├── VariantEncoderSByteTests.cs
│   │       │   │   ├── VariantEncoderStringTests.cs
│   │       │   │   ├── VariantEncoderUInt16Tests.cs
│   │       │   │   ├── VariantEncoderUInt32Tests.cs
│   │       │   │   └── VariantEncoderUInt64Tests.cs
│   │       │   ├── VariantVariants.cs
│   │       │   └── ZipFileWriterTests.cs
│   │       ├── GlobalSuppressions.cs
│   │       ├── Publisher/
│   │       │   ├── Extensions/
│   │       │   │   └── OpcNodeModelExTests.cs
│   │       │   └── Models/
│   │       │       └── PublishedNodesEntryModelTests.cs
│   │       └── Resources/
│   │           ├── CyclicReads.json
│   │           ├── KeepAlive.json
│   │           ├── KeyFrames.json
│   │           ├── PendingAlarms.json
│   │           ├── PlcSimulation.json
│   │           └── SimpleEvents.json
│   ├── Azure.IIoT.OpcUa.Publisher/
│   │   ├── src/
│   │   │   ├── Azure.IIoT.OpcUa.Publisher.csproj
│   │   │   ├── Constants.cs
│   │   │   ├── Discovery/
│   │   │   │   ├── NetworkDiscovery.cs
│   │   │   │   ├── ProgressLogger.cs
│   │   │   │   ├── ProgressPublisher.cs
│   │   │   │   └── ServerDiscovery.cs
│   │   │   ├── Extensions/
│   │   │   │   ├── ContainerBuilderEx.cs
│   │   │   │   ├── DataSetWriterModelEx.cs
│   │   │   │   ├── PublishedDataSetSourceModelEx.cs
│   │   │   │   └── RequestHeaderModelEx.cs
│   │   │   ├── IApiKeyProvider.cs
│   │   │   ├── IAssetConfiguration.cs
│   │   │   ├── IClientDiagnostics.cs
│   │   │   ├── IConfigurationServices.cs
│   │   │   ├── IDiagnosticCollector.cs
│   │   │   ├── IDiscoveryProgress.cs
│   │   │   ├── IDiscoveryServices.cs
│   │   │   ├── IMessageEncoder.cs
│   │   │   ├── IMessageSink.cs
│   │   │   ├── INodeServicesInternal.cs
│   │   │   ├── IProcessControl.cs
│   │   │   ├── IPublishedNodesServices.cs
│   │   │   ├── IPublisher.cs
│   │   │   ├── IRuntimeStateReporter.cs
│   │   │   ├── ISslCertProvider.cs
│   │   │   ├── IStorageProvider.cs
│   │   │   ├── IWriterGroupControl.cs
│   │   │   ├── IWriterGroupDiagnostics.cs
│   │   │   ├── IWriterGroupScope.cs
│   │   │   ├── IWriterGroupScopeFactory.cs
│   │   │   ├── Models/
│   │   │   │   ├── AssetDeviceConfiguration.cs
│   │   │   │   ├── DataSetWriterContext.cs
│   │   │   │   ├── DiscoveryRequest.cs
│   │   │   │   └── MessagingProfile.cs
│   │   │   ├── Parser/
│   │   │   │   ├── Extensions/
│   │   │   │   │   └── Extensions.cs
│   │   │   │   ├── FilterModelBuilder.cs
│   │   │   │   ├── FilterQueryGrammar.cs
│   │   │   │   ├── FilterQueryParser.cs
│   │   │   │   ├── IFilterParser.cs
│   │   │   │   ├── IFilterParserContext.cs
│   │   │   │   ├── ParserException.cs
│   │   │   │   ├── RelativePathParser.cs
│   │   │   │   └── SessionParserContext.cs
│   │   │   ├── Properties/
│   │   │   │   └── AssemblyInfo.cs
│   │   │   ├── Runtime/
│   │   │   │   ├── PublisherConfig.cs
│   │   │   │   ├── PublisherOptions.cs
│   │   │   │   ├── TopicBuilder.cs
│   │   │   │   └── TopicTemplatesOptions.cs
│   │   │   ├── Services/
│   │   │   │   ├── AssetDeviceIntegration.cs
│   │   │   │   ├── AsyncEnumerableBrowser.cs
│   │   │   │   ├── ConfigurationBrowser.cs
│   │   │   │   ├── ConfigurationServices.cs
│   │   │   │   ├── DataSetWriter.cs
│   │   │   │   ├── Extensions.cs
│   │   │   │   ├── FileSystemServices.cs
│   │   │   │   ├── HistoryServices.cs
│   │   │   │   ├── NetworkMessageEncoder.cs
│   │   │   │   ├── NetworkMessageSink.cs
│   │   │   │   ├── NodeServices.cs
│   │   │   │   ├── PublishedNodesJsonServices.cs
│   │   │   │   ├── PublisherDiagnosticCollector.cs
│   │   │   │   ├── PublisherModule.cs
│   │   │   │   ├── PublisherService.cs
│   │   │   │   ├── RollingAverage.cs
│   │   │   │   ├── RuntimeStateReporter.cs
│   │   │   │   ├── WriterGroupDataSource.cs
│   │   │   │   └── WriterGroupScopeFactory.cs
│   │   │   ├── Stack/
│   │   │   │   ├── AsyncEnumerableBase.cs
│   │   │   │   ├── AsyncEnumerableStack.cs
│   │   │   │   ├── Extensions/
│   │   │   │   │   ├── AssetsEx.cs
│   │   │   │   │   ├── CertificateStoreEx.cs
│   │   │   │   │   ├── CertificateTrustListEx.cs
│   │   │   │   │   ├── ContainerBuilderEx.cs
│   │   │   │   │   ├── DataValueEx.cs
│   │   │   │   │   ├── DiscoveredEndpointModelEx.cs
│   │   │   │   │   ├── DiscoveryClientEx.cs
│   │   │   │   │   ├── EndpointDescriptionEx.cs
│   │   │   │   │   ├── FileSystemEx.cs
│   │   │   │   │   ├── FilterEncoderEx.cs
│   │   │   │   │   ├── MonitoredItemEx.cs
│   │   │   │   │   ├── NodeStateEx.cs
│   │   │   │   │   ├── OperationLimitsEx.cs
│   │   │   │   │   ├── RelativePathEx.cs
│   │   │   │   │   ├── SequenceNumber.cs
│   │   │   │   │   ├── ServiceResponseEx.cs
│   │   │   │   │   ├── ServiceResultEx.cs
│   │   │   │   │   ├── SessionEx.cs
│   │   │   │   │   ├── StackModelsEx.cs
│   │   │   │   │   ├── StackTypesEx.cs
│   │   │   │   │   ├── SubscriptionModelEx.cs
│   │   │   │   │   └── VariantEncoderEx.cs
│   │   │   │   ├── IEndpointDiscovery.cs
│   │   │   │   ├── IOpcUaBrowser.cs
│   │   │   │   ├── IOpcUaCertificates.cs
│   │   │   │   ├── IOpcUaClientDiagnostics.cs
│   │   │   │   ├── IOpcUaClientManager.cs
│   │   │   │   ├── IOpcUaConfiguration.cs
│   │   │   │   ├── IOpcUaSession.cs
│   │   │   │   ├── ISessionHandle.cs
│   │   │   │   ├── ISessionServices.cs
│   │   │   │   ├── ISubscriber.cs
│   │   │   │   ├── ISubscription.cs
│   │   │   │   ├── ISubscriptionDiagnostics.cs
│   │   │   │   ├── Models/
│   │   │   │   │   ├── AttributeMap.cs
│   │   │   │   │   ├── BaseMonitoredItemModel.cs
│   │   │   │   │   ├── ConnectionIdentifier.cs
│   │   │   │   │   ├── DataMonitoredItemModel.cs
│   │   │   │   │   ├── DiscoveredEndpointModel.cs
│   │   │   │   │   ├── EndpointIdentifier.cs
│   │   │   │   │   ├── EventMonitoredItemModel.cs
│   │   │   │   │   ├── ImmutableRelativePath.cs
│   │   │   │   │   ├── MonitoredAddressSpaceModel.cs
│   │   │   │   │   ├── MonitoredItemNotificationModel.cs
│   │   │   │   │   ├── MonitoredItemSourceFlags.cs
│   │   │   │   │   ├── SampledDataValueModel.cs
│   │   │   │   │   ├── ServiceCallContext.cs
│   │   │   │   │   ├── ServiceResponse.cs
│   │   │   │   │   └── SubscriptionModel.cs
│   │   │   │   ├── Runtime/
│   │   │   │   │   ├── CertificateInfo.cs
│   │   │   │   │   ├── CertificateStore.cs
│   │   │   │   │   ├── FlatCertificateStore.cs
│   │   │   │   │   ├── OpcUaClientConfig.cs
│   │   │   │   │   ├── OpcUaClientOptions.cs
│   │   │   │   │   ├── OpcUaSubscriptionConfig.cs
│   │   │   │   │   ├── OpcUaSubscriptionOptions.cs
│   │   │   │   │   ├── SecurityOptions.cs
│   │   │   │   │   └── TransportOptions.cs
│   │   │   │   ├── Services/
│   │   │   │   │   ├── OpcUaApplication.cs
│   │   │   │   │   ├── OpcUaClient.Browser.cs
│   │   │   │   │   ├── OpcUaClient.Sampler.cs
│   │   │   │   │   ├── OpcUaClient.Subscription.cs
│   │   │   │   │   ├── OpcUaClient.cs
│   │   │   │   │   ├── OpcUaClientManager.cs
│   │   │   │   │   ├── OpcUaClientTagList.cs
│   │   │   │   │   ├── OpcUaMonitoredItem.Condition.cs
│   │   │   │   │   ├── OpcUaMonitoredItem.CyclicRead.cs
│   │   │   │   │   ├── OpcUaMonitoredItem.DataChange.cs
│   │   │   │   │   ├── OpcUaMonitoredItem.Event.cs
│   │   │   │   │   ├── OpcUaMonitoredItem.Heartbeat.cs
│   │   │   │   │   ├── OpcUaMonitoredItem.ModelChange.cs
│   │   │   │   │   ├── OpcUaMonitoredItem.cs
│   │   │   │   │   ├── OpcUaSession.cs
│   │   │   │   │   ├── OpcUaStack.cs
│   │   │   │   │   ├── OpcUaStackKeySetLogger.cs
│   │   │   │   │   ├── OpcUaSubscription.cs
│   │   │   │   │   └── OpcUaSubscriptionNotification.cs
│   │   │   │   ├── StackExtensions.cs
│   │   │   │   └── Transport/
│   │   │   │       ├── Extensions/
│   │   │   │       │   ├── EndPointEx.cs
│   │   │   │       │   ├── IPAddressEx.cs
│   │   │   │       │   ├── NetworkInformationEx.cs
│   │   │   │       │   └── PhysicalAddressEx.cs
│   │   │   │       ├── IAsyncProbe.cs
│   │   │   │       ├── IPortProbe.cs
│   │   │   │       ├── IScanner.cs
│   │   │   │       ├── Models/
│   │   │   │       │   ├── AddressRange.cs
│   │   │   │       │   ├── IPv4Address.cs
│   │   │   │       │   ├── NetInterface.cs
│   │   │   │       │   ├── NetworkClass.cs
│   │   │   │       │   └── PortRange.cs
│   │   │   │       ├── Probe/
│   │   │   │       │   └── ServerProbe.cs
│   │   │   │       └── Scanner/
│   │   │   │           ├── BaseConnectProbe.cs
│   │   │   │           ├── NetworkScanner.cs
│   │   │   │           └── PortScanner.cs
│   │   │   └── Storage/
│   │   │       ├── PhysicalFileProviderFactory.cs
│   │   │       ├── PublishedNodesConverter.cs
│   │   │       └── PublishedNodesProvider.cs
│   │   └── tests/
│   │       ├── Azure.IIoT.OpcUa.Publisher.Tests.csproj
│   │       ├── GlobalSuppressions.cs
│   │       ├── Logging.cs
│   │       ├── Model/
│   │       │   └── MonitoredItemModelTests.cs
│   │       ├── Parser/
│   │       │   ├── ContentFilterParserTests.cs
│   │       │   ├── EventFilterParserTests.cs
│   │       │   └── TestParserContext.cs
│   │       ├── Properties/
│   │       │   └── AssemblyInfo.cs
│   │       ├── Publisher/
│   │       │   ├── empty_pn.json
│   │       │   ├── pn_2.5_legacy.json
│   │       │   ├── pn_2.5_legacy_error.json
│   │       │   ├── pn_assets.json
│   │       │   ├── pn_assets_with_optional_fields.json
│   │       │   ├── pn_events.json
│   │       │   ├── pn_opc_nodes_empty.json
│   │       │   ├── pn_opc_nodes_empty_and_null.json
│   │       │   ├── pn_opc_nodes_null.json
│   │       │   ├── pn_pending_alarms.json
│   │       │   ├── publishednodes.json
│   │       │   ├── publishednodes_with_duplicates.json
│   │       │   └── publishednodeswithoptionalfields.json
│   │       ├── Runtime/
│   │       │   └── TopicBuilderTests.cs
│   │       ├── Services/
│   │       │   ├── Alarms/
│   │       │   │   └── NodeServicesTests.cs
│   │       │   ├── Asset/
│   │       │   │   ├── ConfigurationTest1.cs
│   │       │   │   ├── ConfigurationTest2.cs
│   │       │   │   ├── ConfigurationTest3.cs
│   │       │   │   ├── ConfigurationTest4.cs
│   │       │   │   ├── WriteCollection1.cs
│   │       │   │   ├── WriteCollection2.cs
│   │       │   │   ├── WriteCollection3.cs
│   │       │   │   └── WriteCollection4.cs
│   │       │   ├── AssetDeviceIntegrationTests.cs
│   │       │   ├── DeterministicAlarms/
│   │       │   │   ├── NodeServicesTests1.cs
│   │       │   │   └── NodeServicesTests2.cs
│   │       │   ├── Encoder/
│   │       │   │   ├── MonitoredItemMessageEncoderJsonGzipTests.cs
│   │       │   │   ├── MonitoredItemMessageEncoderJsonTests.cs
│   │       │   │   ├── NetworkMessage.cs
│   │       │   │   ├── NetworkMessageEncoderJsonGzipTests.cs
│   │       │   │   ├── NetworkMessageEncoderJsonTests.cs
│   │       │   │   ├── NetworkMessageEncoderLegacyTests.cs
│   │       │   │   └── NetworkMessageEncoderUadpTests.cs
│   │       │   ├── FileSystem/
│   │       │   │   ├── BrowseTests.cs
│   │       │   │   ├── FileCollection.cs
│   │       │   │   ├── OperationsTests.cs
│   │       │   │   ├── ReadTests.cs
│   │       │   │   └── WriteTests.cs
│   │       │   ├── HistoricalAccess/
│   │       │   │   ├── NodeServicesTests.cs
│   │       │   │   ├── ReadAtTimesTests.cs
│   │       │   │   ├── ReadCollection.cs
│   │       │   │   ├── ReadModifiedTests.cs
│   │       │   │   ├── ReadProcessedTests.cs
│   │       │   │   ├── ReadValuesTests.cs
│   │       │   │   └── UpdateValuesTests.cs
│   │       │   ├── HistoricalEvents/
│   │       │   │   ├── NodeServicesTests.cs
│   │       │   │   └── ReadCollection.cs
│   │       │   ├── Plc/
│   │       │   │   ├── NodeServicesTests1.cs
│   │       │   │   └── NodeServicesTests2.cs
│   │       │   ├── PublishedNodesJsonServicesTests.cs
│   │       │   ├── RuntimeStateReporterTests.cs
│   │       │   ├── SimpleEvents/
│   │       │   │   └── NodeServicesTests.cs
│   │       │   └── TestData/
│   │       │       ├── BrowsePathTests.cs
│   │       │       ├── BrowseStreamTests.cs
│   │       │       ├── BrowseTests.cs
│   │       │       ├── CallArrayTests.cs
│   │       │       ├── CallScalarTests.cs
│   │       │       ├── ExpandTests1.cs
│   │       │       ├── ExpandTests2.cs
│   │       │       ├── MetadataArrayTests.cs
│   │       │       ├── MetadataScalarTests.cs
│   │       │       ├── MetadataTests.cs
│   │       │       ├── ReadArrayTests.cs
│   │       │       ├── ReadCollection.cs
│   │       │       ├── ReadScalarTests.cs
│   │       │       ├── WriteArrayTests.cs
│   │       │       ├── WriteCollection.cs
│   │       │       └── WriteScalarTests.cs
│   │       ├── Stack/
│   │       │   ├── Extensions/
│   │       │   │   ├── RelativePathExTests.cs
│   │       │   │   └── SequenceNumberTests.cs
│   │       │   ├── GetBrowsePathsFromRootTests.cs
│   │       │   ├── GetSimpleEventFilterTests.cs
│   │       │   ├── OpcUaApplicationTests.cs
│   │       │   ├── OpcUaMonitoredItemTests.cs
│   │       │   ├── OpcUaMonitoredItemTestsBase.cs
│   │       │   └── Transport/
│   │       │       ├── Extensions/
│   │       │       │   └── NetworkInformationExTests.cs
│   │       │       └── Models/
│   │       │           ├── AddressRangeTests.cs
│   │       │           ├── IPv4AddressTests.cs
│   │       │           └── PortRangeTests.cs
│   │       ├── Storage/
│   │       │   └── PublishedNodesJobConverterTests.cs
│   │       └── Utils/
│   │           ├── TempFileProviderBase.cs
│   │           └── Utils.cs
│   ├── Azure.IIoT.OpcUa.Publisher.Models/
│   │   ├── src/
│   │   │   ├── AdditionalData.cs
│   │   │   ├── AggregateConfigurationModel.cs
│   │   │   ├── AggregateFilterModel.cs
│   │   │   ├── ApplicationInfoModel.cs
│   │   │   ├── ApplicationRegistrationModel.cs
│   │   │   ├── ApplicationType.cs
│   │   │   ├── AttributeReadRequestModel.cs
│   │   │   ├── AttributeReadResponseModel.cs
│   │   │   ├── AttributeWriteRequestModel.cs
│   │   │   ├── AttributeWriteResponseModel.cs
│   │   │   ├── AuthenticationMethodModel.cs
│   │   │   ├── Azure.IIoT.OpcUa.Publisher.Models.csproj
│   │   │   ├── BrowseDirection.cs
│   │   │   ├── BrowseFirstRequestModel.cs
│   │   │   ├── BrowseFirstResponseModel.cs
│   │   │   ├── BrowseNextRequestModel.cs
│   │   │   ├── BrowseNextResponseModel.cs
│   │   │   ├── BrowsePathRequestModel.cs
│   │   │   ├── BrowsePathResponseModel.cs
│   │   │   ├── BrowseStreamChunkModel.cs
│   │   │   ├── BrowseStreamRequestModel.cs
│   │   │   ├── BrowseViewModel.cs
│   │   │   ├── CertificateStoreName.cs
│   │   │   ├── ChannelDiagnosticModel.cs
│   │   │   ├── ChannelKeyModel.cs
│   │   │   ├── ConditionHandlingOptionsModel.cs
│   │   │   ├── ConnectionDiagnosticsModel.cs
│   │   │   ├── ConnectionModel.cs
│   │   │   ├── ConnectionOptions.cs
│   │   │   ├── Constants.cs
│   │   │   ├── ContentFilterElementModel.cs
│   │   │   ├── ContentFilterModel.cs
│   │   │   ├── CredentialModel.cs
│   │   │   ├── CredentialType.cs
│   │   │   ├── DataChangeFilterModel.cs
│   │   │   ├── DataChangeTriggerType.cs
│   │   │   ├── DataLocation.cs
│   │   │   ├── DataSetFieldContentFlags.cs
│   │   │   ├── DataSetMessageContentFlags.cs
│   │   │   ├── DataSetMetaDataModel.cs
│   │   │   ├── DataSetOrderingType.cs
│   │   │   ├── DataSetRoutingMode.cs
│   │   │   ├── DataSetWriterMessageSettingsModel.cs
│   │   │   ├── DataSetWriterModel.cs
│   │   │   ├── DataTypeMetadataModel.cs
│   │   │   ├── DeadbandType.cs
│   │   │   ├── DeleteEventsDetailsModel.cs
│   │   │   ├── DeleteValuesAtTimesDetailsModel.cs
│   │   │   ├── DeleteValuesDetailsModel.cs
│   │   │   ├── DiagnosticsLevel.cs
│   │   │   ├── DiagnosticsModel.cs
│   │   │   ├── DiscoveryCancelRequestModel.cs
│   │   │   ├── DiscoveryConfigModel.cs
│   │   │   ├── DiscoveryEventModel.cs
│   │   │   ├── DiscoveryMode.cs
│   │   │   ├── DiscoveryProgressModel.cs
│   │   │   ├── DiscoveryProgressType.cs
│   │   │   ├── DiscoveryRequestModel.cs
│   │   │   ├── DiscoveryResultModel.cs
│   │   │   ├── EndpointConnectivityState.cs
│   │   │   ├── EndpointEventModel.cs
│   │   │   ├── EndpointEventType.cs
│   │   │   ├── EndpointInfoModel.cs
│   │   │   ├── EndpointModel.cs
│   │   │   ├── EndpointRegistrationModel.cs
│   │   │   ├── EnumDescriptionModel.cs
│   │   │   ├── EnumFieldDescriptionModel.cs
│   │   │   ├── EventFilterModel.cs
│   │   │   ├── ExceptionDeviationType.cs
│   │   │   ├── ExtensionFieldModel.cs
│   │   │   ├── FileInfoModel.cs
│   │   │   ├── FileOpenWriteOptionsModel.cs
│   │   │   ├── FileSystemObjectModel.cs
│   │   │   ├── FileWriteMode.cs
│   │   │   ├── FilterOperandModel.cs
│   │   │   ├── FilterOperatorType.cs
│   │   │   ├── GetConfiguredEndpointsRequestModel.cs
│   │   │   ├── GetConfiguredEndpointsResponseModel.cs
│   │   │   ├── GetConfiguredNodesOnEndpointResponseModel.cs
│   │   │   ├── HeartbeatBehavior.cs
│   │   │   ├── HistoricEventModel.cs
│   │   │   ├── HistoricValueModel.cs
│   │   │   ├── HistoryConfigurationModel.cs
│   │   │   ├── HistoryConfigurationRequestModel.cs
│   │   │   ├── HistoryConfigurationResponseModel.cs
│   │   │   ├── HistoryReadNextRequestModel.cs
│   │   │   ├── HistoryReadNextResponseModel.cs
│   │   │   ├── HistoryReadRequestModel.cs
│   │   │   ├── HistoryReadResponseModel.cs
│   │   │   ├── HistoryServerCapabilitiesModel.cs
│   │   │   ├── HistoryUpdateOperation.cs
│   │   │   ├── HistoryUpdateRequestModel.cs
│   │   │   ├── HistoryUpdateResponseModel.cs
│   │   │   ├── InstanceDeclarationModel.cs
│   │   │   ├── LocalizedTextModel.cs
│   │   │   ├── MessageEncoding.cs
│   │   │   ├── MessageTimestamp.cs
│   │   │   ├── MessagingMode.cs
│   │   │   ├── MethodCallArgumentModel.cs
│   │   │   ├── MethodCallRequestModel.cs
│   │   │   ├── MethodCallResponseModel.cs
│   │   │   ├── MethodMetadataArgumentModel.cs
│   │   │   ├── MethodMetadataModel.cs
│   │   │   ├── MethodMetadataRequestModel.cs
│   │   │   ├── MethodMetadataResponseModel.cs
│   │   │   ├── ModelChangeHandlingOptionsModel.cs
│   │   │   ├── ModificationInfoModel.cs
│   │   │   ├── MonitoredItemWatchdogCondition.cs
│   │   │   ├── MonitoringItemMode.cs
│   │   │   ├── NamespaceFormat.cs
│   │   │   ├── NetworkMessageContentFlags.cs
│   │   │   ├── NodeAccessLevel.cs
│   │   │   ├── NodeAccessRestrictions.cs
│   │   │   ├── NodeAttribute.cs
│   │   │   ├── NodeClass.cs
│   │   │   ├── NodeEventNotifier.cs
│   │   │   ├── NodeIdModel.cs
│   │   │   ├── NodeMetadataRequestModel.cs
│   │   │   ├── NodeMetadataResponseModel.cs
│   │   │   ├── NodeModel.cs
│   │   │   ├── NodePathTargetModel.cs
│   │   │   ├── NodeReferenceModel.cs
│   │   │   ├── NodeType.cs
│   │   │   ├── NodeValueRank.cs
│   │   │   ├── OpcAuthenticationMode.cs
│   │   │   ├── OpcNodeModel.cs
│   │   │   ├── OperationContextModel.cs
│   │   │   ├── OperationLimitsModel.cs
│   │   │   ├── Properties/
│   │   │   │   └── AssemblyInfo.cs
│   │   │   ├── PublishBulkRequestModel.cs
│   │   │   ├── PublishBulkResponseModel.cs
│   │   │   ├── PublishDiagnosticInfoModel.cs
│   │   │   ├── PublishStartRequestModel.cs
│   │   │   ├── PublishStartResponseModel.cs
│   │   │   ├── PublishStopRequestModel.cs
│   │   │   ├── PublishStopResponseModel.cs
│   │   │   ├── PublishedDataItemsModel.cs
│   │   │   ├── PublishedDataSetEventModel.cs
│   │   │   ├── PublishedDataSetMessageSchemaModel.cs
│   │   │   ├── PublishedDataSetMetaDataModel.cs
│   │   │   ├── PublishedDataSetMethodModel.cs
│   │   │   ├── PublishedDataSetModel.cs
│   │   │   ├── PublishedDataSetSettingsModel.cs
│   │   │   ├── PublishedDataSetSourceModel.cs
│   │   │   ├── PublishedDataSetTriggerModel.cs
│   │   │   ├── PublishedDataSetVariableModel.cs
│   │   │   ├── PublishedEventItemsModel.cs
│   │   │   ├── PublishedFieldMetaDataModel.cs
│   │   │   ├── PublishedItemListRequestModel.cs
│   │   │   ├── PublishedItemListResponseModel.cs
│   │   │   ├── PublishedItemModel.cs
│   │   │   ├── PublishedMethodItemsModel.cs
│   │   │   ├── PublishedNetworkMessageSchemaModel.cs
│   │   │   ├── PublishedNodeCreateAssetRequestModel.cs
│   │   │   ├── PublishedNodeDeleteAssetRequestModel.cs
│   │   │   ├── PublishedNodeExpansionModel.cs
│   │   │   ├── PublishedNodesEntryModel.cs
│   │   │   ├── PublishedNodesEntryRequestModel.cs
│   │   │   ├── PublishedNodesResponseModel.cs
│   │   │   ├── PublisherDiagnosticTargetType.cs
│   │   │   ├── PublishingQueueSettingsModel.cs
│   │   │   ├── QueryCompilationRequestModel.cs
│   │   │   ├── QueryCompilationResponseModel.cs
│   │   │   ├── QueryType.cs
│   │   │   ├── ReadEventsDetailsModel.cs
│   │   │   ├── ReadModifiedValuesDetailsModel.cs
│   │   │   ├── ReadProcessedValuesDetailsModel.cs
│   │   │   ├── ReadRequestModel.cs
│   │   │   ├── ReadResponseModel.cs
│   │   │   ├── ReadValuesAtTimesDetailsModel.cs
│   │   │   ├── ReadValuesDetailsModel.cs
│   │   │   ├── RelativePathElementModel.cs
│   │   │   ├── RequestEnvelope.cs
│   │   │   ├── RequestHeaderModel.cs
│   │   │   ├── RolePermissionModel.cs
│   │   │   ├── RolePermissions.cs
│   │   │   ├── RuntimeStateEventModel.cs
│   │   │   ├── RuntimeStateEventType.cs
│   │   │   ├── SecurityMode.cs
│   │   │   ├── ServerCapabilitiesModel.cs
│   │   │   ├── ServerEndpointQueryModel.cs
│   │   │   ├── ServerRegistrationRequestModel.cs
│   │   │   ├── ServiceCounterModel.cs
│   │   │   ├── ServiceResponse.cs
│   │   │   ├── ServiceResultModel.cs
│   │   │   ├── SessionDiagnosticsModel.cs
│   │   │   ├── SetConfiguredEndpointsRequestModel.cs
│   │   │   ├── SimpleAttributeOperandModel.cs
│   │   │   ├── SimpleTypeDescriptionModel.cs
│   │   │   ├── SkipValidationAttribute.cs
│   │   │   ├── StructureDescriptionModel.cs
│   │   │   ├── StructureFieldDescriptionModel.cs
│   │   │   ├── StructureType.cs
│   │   │   ├── SubscriptionDiagnosticsModel.cs
│   │   │   ├── SubscriptionWatchdogBehavior.cs
│   │   │   ├── TestConnectionRequestModel.cs
│   │   │   ├── TestConnectionResponseModel.cs
│   │   │   ├── TimestampsToReturn.cs
│   │   │   ├── TypeDefinitionModel.cs
│   │   │   ├── UpdateEventsDetailsModel.cs
│   │   │   ├── UpdateValuesDetailsModel.cs
│   │   │   ├── UserIdentityModel.cs
│   │   │   ├── ValueReadRequestModel.cs
│   │   │   ├── ValueReadResponseModel.cs
│   │   │   ├── ValueWriteRequestModel.cs
│   │   │   ├── ValueWriteResponseModel.cs
│   │   │   ├── VariableMetadataModel.cs
│   │   │   ├── WriteRequestModel.cs
│   │   │   ├── WriteResponseModel.cs
│   │   │   ├── WriterGroupDiagnosticModel.cs
│   │   │   ├── WriterGroupMessageSettingsModel.cs
│   │   │   ├── WriterGroupModel.cs
│   │   │   ├── WriterGroupTransport.cs
│   │   │   ├── X509CertificateChainModel.cs
│   │   │   ├── X509CertificateModel.cs
│   │   │   └── X509ChainStatus.cs
│   │   └── tests/
│   │       ├── Azure.IIoT.OpcUa.Publisher.Models.Tests.csproj
│   │       ├── Fixtures/
│   │       │   └── TypeFixture.cs
│   │       ├── GlobalSuppressions.cs
│   │       ├── JsonSerializerTests.cs
│   │       ├── MsgPackSerializerTests.cs
│   │       ├── NewtonsoftSerializerTests.cs
│   │       └── PublishNodesEndpointApiModelTests.cs
│   ├── Azure.IIoT.OpcUa.Publisher.Module/
│   │   ├── cli/
│   │   │   ├── Azure.IIoT.OpcUa.Publisher.Module.Cli.csproj
│   │   │   ├── Initfiles/
│   │   │   │   ├── Kepserver.init
│   │   │   │   ├── MachineTools.init
│   │   │   │   ├── Machinery.init
│   │   │   │   ├── Objects.init
│   │   │   │   └── Variables.init
│   │   │   ├── Profiles/
│   │   │   │   ├── AllBad.json
│   │   │   │   ├── BrowsePath.json
│   │   │   │   ├── CyclicReads.json
│   │   │   │   ├── DataItems.json
│   │   │   │   ├── DataSetTopics.json
│   │   │   │   ├── Deadband.json
│   │   │   │   ├── Empty.json
│   │   │   │   ├── Extremes.json
│   │   │   │   ├── FastTime.json
│   │   │   │   ├── FixedAndData.json
│   │   │   │   ├── Fixedvalue.json
│   │   │   │   ├── Heartbeat.json
│   │   │   │   ├── Heartbeat2.json
│   │   │   │   ├── Heartbeat3.json
│   │   │   │   ├── Isa95Jobs.json
│   │   │   │   ├── KeepAlive.json
│   │   │   │   ├── KeyFrames.json
│   │   │   │   ├── ModelChanges.json
│   │   │   │   ├── MultiDataSetWriter.json
│   │   │   │   ├── MultiEndpoint.json
│   │   │   │   ├── MultiWriterGroup.json
│   │   │   │   ├── MultiWriterGroupFs.json
│   │   │   │   ├── NoNodes.json
│   │   │   │   ├── PendingAlarms.json
│   │   │   │   ├── PlcSimulation.json
│   │   │   │   ├── RegisteredRead.json
│   │   │   │   ├── SimpleEvents.json
│   │   │   │   ├── SlowSample.json
│   │   │   │   ├── SomeBad.json
│   │   │   │   ├── SubscribeErrors.json
│   │   │   │   ├── TopicPerNode.json
│   │   │   │   └── UnifiedNamespace.json
│   │   │   ├── Program.cs
│   │   │   ├── Properties/
│   │   │   │   └── AssemblyInfo.cs
│   │   │   └── publishednodes.json
│   │   ├── src/
│   │   │   ├── Azure.IIoT.OpcUa.Publisher.Module.csproj
│   │   │   ├── Controllers/
│   │   │   │   ├── CertificatesController.cs
│   │   │   │   ├── ConfigurationController.cs
│   │   │   │   ├── DiagnosticsController.cs
│   │   │   │   ├── DiscoveryController.cs
│   │   │   │   ├── FileSystemController.cs
│   │   │   │   ├── GeneralController.cs
│   │   │   │   ├── HistoryController.cs
│   │   │   │   ├── LegacyController.cs
│   │   │   │   ├── PublisherController.cs
│   │   │   │   └── WriterController.cs
│   │   │   ├── Filters/
│   │   │   │   ├── ControllerExceptionFilterAttribute.cs
│   │   │   │   └── RouterExceptionFilterAttribute.cs
│   │   │   ├── Program.cs
│   │   │   ├── Properties/
│   │   │   │   └── AssemblyInfo.cs
│   │   │   ├── Runtime/
│   │   │   │   ├── CommandLine.cs
│   │   │   │   ├── Configuration.cs
│   │   │   │   ├── Security.cs
│   │   │   │   └── Syslog.cs
│   │   │   └── Startup.cs
│   │   └── tests/
│   │       ├── Azure.IIoT.OpcUa.Publisher.Module.Tests.csproj
│   │       ├── Clients/
│   │       │   ├── Adapters/
│   │       │   │   ├── DiscoveryApiAdapter.cs
│   │       │   │   ├── HistoryApiAdapter.cs
│   │       │   │   ├── PublisherApiAdapter.cs
│   │       │   │   └── TwinApiAdapter.cs
│   │       │   ├── ConfigurationServicesRestClient.cs
│   │       │   ├── FileSystemServicesRestClient.cs
│   │       │   ├── HistoryServicesRestClient.cs
│   │       │   └── NodeServicesRestClient.cs
│   │       ├── Controller/
│   │       │   ├── Alarms/
│   │       │   │   ├── Json/
│   │       │   │   │   └── NodeServicesTests.cs
│   │       │   │   └── MsgPack/
│   │       │   │       └── NodeServicesTests.cs
│   │       │   ├── Asset/
│   │       │   │   ├── Json/
│   │       │   │   │   ├── ConfigurationTest1.cs
│   │       │   │   │   ├── ConfigurationTest2.cs
│   │       │   │   │   ├── ConfigurationTest3.cs
│   │       │   │   │   ├── ConfigurationTest4.cs
│   │       │   │   │   ├── WriteCollection1.cs
│   │       │   │   │   ├── WriteCollection2.cs
│   │       │   │   │   ├── WriteCollection3.cs
│   │       │   │   │   └── WriteCollection4.cs
│   │       │   │   └── MsgPack/
│   │       │   │       ├── ConfigurationTest1.cs
│   │       │   │       ├── ConfigurationTest2.cs
│   │       │   │       ├── ConfigurationTest3.cs
│   │       │   │       ├── ConfigurationTest4.cs
│   │       │   │       ├── WriteCollection1.cs
│   │       │   │       ├── WriteCollection2.cs
│   │       │   │       ├── WriteCollection3.cs
│   │       │   │       └── WriteCollection4.cs
│   │       │   ├── DeterministicAlarms/
│   │       │   │   ├── Json/
│   │       │   │   │   ├── NodeServicesTests1.cs
│   │       │   │   │   └── NodeServicesTests2.cs
│   │       │   │   └── MsgPack/
│   │       │   │       ├── NodeServicesTests1.cs
│   │       │   │       └── NodeServicesTests2.cs
│   │       │   ├── DmApiPublisherControllerTests.cs
│   │       │   ├── FileSystem/
│   │       │   │   ├── Json/
│   │       │   │   │   ├── BrowseTests.cs
│   │       │   │   │   ├── FileCollection.cs
│   │       │   │   │   ├── OperationsTests.cs
│   │       │   │   │   ├── ReadTests.cs
│   │       │   │   │   └── WriteTests.cs
│   │       │   │   └── MsgPack/
│   │       │   │       ├── BrowseTests.cs
│   │       │   │       ├── FileCollection.cs
│   │       │   │       ├── OperationsTests.cs
│   │       │   │       ├── ReadTests.cs
│   │       │   │       └── WriteTests.cs
│   │       │   ├── HistoricalAccess/
│   │       │   │   ├── Json/
│   │       │   │   │   ├── NodeServicesTests.cs
│   │       │   │   │   ├── ReadAtTimesTests.cs
│   │       │   │   │   ├── ReadCollection.cs
│   │       │   │   │   ├── ReadModifiedTests.cs
│   │       │   │   │   ├── ReadProcessedTests.cs
│   │       │   │   │   ├── ReadValuesTests.cs
│   │       │   │   │   └── UpdateValuesTests.cs
│   │       │   │   └── MsgPack/
│   │       │   │       ├── NodeServicesTests.cs
│   │       │   │       ├── ReadAtTimesTests.cs
│   │       │   │       ├── ReadCollection.cs
│   │       │   │       ├── ReadModifiedTests.cs
│   │       │   │       ├── ReadProcessedTests.cs
│   │       │   │       ├── ReadValuesTests.cs
│   │       │   │       └── UpdateValuesTests.cs
│   │       │   ├── HistoricalEvents/
│   │       │   │   ├── Json/
│   │       │   │   │   ├── NodeServicesTests.cs
│   │       │   │   │   └── ReadCollection.cs
│   │       │   │   └── MsgPack/
│   │       │   │       ├── NodeServicesTests.cs
│   │       │   │       └── ReadCollection.cs
│   │       │   ├── Plc/
│   │       │   │   ├── Json/
│   │       │   │   │   ├── NodeServicesTests1.cs
│   │       │   │   │   └── NodeServicesTests2.cs
│   │       │   │   └── MsgPack/
│   │       │   │       ├── NodeServicesTests1.cs
│   │       │   │       └── NodeServicesTests2.cs
│   │       │   ├── SimpleEvents/
│   │       │   │   ├── Json/
│   │       │   │   │   └── NodeServicesTests.cs
│   │       │   │   └── MsgPack/
│   │       │   │       └── NodeServicesTests.cs
│   │       │   └── TestData/
│   │       │       ├── Json/
│   │       │       │   ├── BrowsePathTests.cs
│   │       │       │   ├── BrowseStreamTests.cs
│   │       │       │   ├── BrowseTests.cs
│   │       │       │   ├── CallArrayTests.cs
│   │       │       │   ├── CallScalarTests.cs
│   │       │       │   ├── ExpandTests1.cs
│   │       │       │   ├── MetadataArrayTests.cs
│   │       │       │   ├── MetadataScalarTests.cs
│   │       │       │   ├── MetadataTests.cs
│   │       │       │   ├── ReadCollection.cs
│   │       │       │   ├── ValueReadArrayTests.cs
│   │       │       │   ├── ValueReadScalarTests.cs
│   │       │       │   ├── ValueWriteArrayTests.cs
│   │       │       │   ├── ValueWriteScalarTests.cs
│   │       │       │   └── WriteCollection.cs
│   │       │       └── MsgPack/
│   │       │           ├── BrowsePathTests.cs
│   │       │           ├── BrowseStreamTests.cs
│   │       │           ├── BrowseTests.cs
│   │       │           ├── CallArrayTests.cs
│   │       │           ├── CallScalarTests.cs
│   │       │           ├── ExpandTests1.cs
│   │       │           ├── MetadataArrayTests.cs
│   │       │           ├── MetadataScalarTests.cs
│   │       │           ├── MetadataTests.cs
│   │       │           ├── ReadCollection.cs
│   │       │           ├── ValueReadArrayTests.cs
│   │       │           ├── ValueReadScalarTests.cs
│   │       │           ├── ValueWriteArrayTests.cs
│   │       │           ├── ValueWriteScalarTests.cs
│   │       │           └── WriteCollection.cs
│   │       ├── Fixtures/
│   │       │   ├── PublisherIntegrationTestBase.cs
│   │       │   ├── PublisherModule.cs
│   │       │   ├── PublisherModuleFixture.cs
│   │       │   ├── ReferenceServerReadCollection.cs
│   │       │   ├── TempFileProviderBase.cs
│   │       │   ├── TestSerializerType.cs
│   │       │   └── TwinIntegrationTestBase.cs
│   │       ├── GlobalSuppressions.cs
│   │       ├── Logging.cs
│   │       ├── Mqtt/
│   │       │   ├── Alarms/
│   │       │   │   └── NodeServicesTests.cs
│   │       │   ├── DeterministicAlarms/
│   │       │   │   ├── NodeServicesTests1.cs
│   │       │   │   └── NodeServicesTests2.cs
│   │       │   ├── HistoricalAccess/
│   │       │   │   ├── NodeServicesTests.cs
│   │       │   │   ├── ReadAtTimesTests.cs
│   │       │   │   ├── ReadCollection.cs
│   │       │   │   ├── ReadModifiedTests.cs
│   │       │   │   ├── ReadProcessedTests.cs
│   │       │   │   ├── ReadValuesTests.cs
│   │       │   │   └── UpdateValuesTests.cs
│   │       │   ├── HistoricalEvents/
│   │       │   │   ├── NodeServicesTests.cs
│   │       │   │   └── ReadCollection.cs
│   │       │   ├── Plc/
│   │       │   │   ├── NodeServicesTests1.cs
│   │       │   │   └── NodeServicesTests2.cs
│   │       │   ├── ReferenceServer/
│   │       │   │   ├── MqttConfigurationIntegrationTests.cs
│   │       │   │   ├── MqttPubSubIntegrationTests.cs
│   │       │   │   └── MqttUnifiedNamespaceTests.cs
│   │       │   ├── SimpleEvents/
│   │       │   │   └── NodeServicesTests.cs
│   │       │   └── TestData/
│   │       │       ├── BrowsePathTests.cs
│   │       │       ├── BrowseStreamTests.cs
│   │       │       ├── BrowseTests.cs
│   │       │       ├── CallArrayTests.cs
│   │       │       ├── CallScalarTests.cs
│   │       │       ├── MetadataArrayTests.cs
│   │       │       ├── MetadataScalarTests.cs
│   │       │       ├── MetadataTests.cs
│   │       │       ├── ReadCollection.cs
│   │       │       ├── ValueReadArrayTests.cs
│   │       │       ├── ValueReadScalarTests.cs
│   │       │       ├── ValueWriteArrayTests.cs
│   │       │       ├── ValueWriteScalarTests.cs
│   │       │       └── WriteCollection.cs
│   │       ├── Properties/
│   │       │   └── AssemblyInfo.cs
│   │       ├── Resources/
│   │       │   ├── CyclicRead.json
│   │       │   ├── DataItems.json
│   │       │   ├── DataItems1.json
│   │       │   ├── DataItems2.json
│   │       │   ├── Deadband.json
│   │       │   ├── DmApiPayloadCollection.json
│   │       │   ├── DmApiPayloadTwoEndpoints.json
│   │       │   ├── ExtensionFields.json
│   │       │   ├── Fixedvalue.json
│   │       │   ├── Heartbeat.json
│   │       │   ├── Heartbeat2.json
│   │       │   ├── HeartbeatErrors.json
│   │       │   ├── Isa95Jobs.json
│   │       │   ├── KeepAlive.json
│   │       │   ├── KeyFrames.json
│   │       │   ├── ModelChanges.json
│   │       │   ├── PendingAlarms.json
│   │       │   ├── RegisteredRead.json
│   │       │   ├── SimpleEvents.json
│   │       │   ├── SimpleEvents2.json
│   │       │   ├── UnifiedNamespace.json
│   │       │   └── empty_pn.json
│   │       ├── Runtime/
│   │       │   ├── CommandLineTest.cs
│   │       │   ├── PublisherCliTests.cs
│   │       │   └── PublisherControllerTests.cs
│   │       ├── Sdk/
│   │       │   ├── Alarms/
│   │       │   │   └── NodeServicesTests.cs
│   │       │   ├── DeterministicAlarms/
│   │       │   │   ├── NodeServicesTests1.cs
│   │       │   │   └── NodeServicesTests2.cs
│   │       │   ├── HistoricalAccess/
│   │       │   │   ├── NodeServicesTests.cs
│   │       │   │   ├── ReadAtTimesTests.cs
│   │       │   │   ├── ReadCollection.cs
│   │       │   │   ├── ReadModifiedTests.cs
│   │       │   │   ├── ReadProcessedTests.cs
│   │       │   │   ├── ReadValuesTests.cs
│   │       │   │   └── UpdateValuesTests.cs
│   │       │   ├── HistoricalEvents/
│   │       │   │   ├── NodeServicesTests.cs
│   │       │   │   └── ReadCollection.cs
│   │       │   ├── Isa95Jobs/
│   │       │   │   └── BasicPubSubIntegrationTests.cs
│   │       │   ├── Plc/
│   │       │   │   ├── NodeServicesTests1.cs
│   │       │   │   └── NodeServicesTests2.cs
│   │       │   ├── ReferenceServer/
│   │       │   │   ├── AdvancedPubSubIntegrationTests.cs
│   │       │   │   ├── BasicPubSubIntegrationTests.cs
│   │       │   │   ├── BasicSamplesIntegrationTests.cs
│   │       │   │   └── ReverseConnectIntegrationTests.cs
│   │       │   ├── SimpleEvents/
│   │       │   │   └── NodeServicesTests.cs
│   │       │   └── TestData/
│   │       │       ├── BrowsePathTests.cs
│   │       │       ├── BrowseStreamTests.cs
│   │       │       ├── BrowseTests.cs
│   │       │       ├── CallArrayTests.cs
│   │       │       ├── CallScalarTests.cs
│   │       │       ├── MetadataArrayTests.cs
│   │       │       ├── MetadataScalarTests.cs
│   │       │       ├── MetadataTests.cs
│   │       │       ├── ReadCollection.cs
│   │       │       ├── ValueReadArrayTests.cs
│   │       │       ├── ValueReadScalarTests.cs
│   │       │       ├── ValueWriteArrayTests.cs
│   │       │       ├── ValueWriteScalarTests.cs
│   │       │       └── WriteCollection.cs
│   │       └── _dummy_.sln
│   ├── Azure.IIoT.OpcUa.Publisher.Sdk/
│   │   └── src/
│   │       ├── Azure.IIoT.OpcUa.Publisher.Sdk.csproj
│   │       ├── Clients/
│   │       │   ├── DiscoveryApiClient.cs
│   │       │   ├── Extensions.cs
│   │       │   ├── HistoryApiClient.cs
│   │       │   ├── PublisherApiClient.cs
│   │       │   └── TwinApiClient.cs
│   │       ├── IDiscoveryApi.cs
│   │       ├── IHistoryApi.cs
│   │       ├── IPublisherApi.cs
│   │       ├── ITwinApi.cs
│   │       ├── Properties/
│   │       │   └── AssemblyInfo.cs
│   │       └── SdkOptions.cs
│   ├── Azure.IIoT.OpcUa.Publisher.Testing/
│   │   ├── cli/
│   │   │   ├── Azure.IIoT.OpcUa.Publisher.Testing.Cli.csproj
│   │   │   ├── FlatCertificateStore.cs
│   │   │   ├── Program.cs
│   │   │   ├── Properties/
│   │   │   │   └── AssemblyInfo.cs
│   │   │   └── TestServerFactory.cs
│   │   ├── src/
│   │   │   ├── Alarms/
│   │   │   │   ├── AlarmConditionNodeManager.cs
│   │   │   │   ├── AlarmConditionServer.cs
│   │   │   │   ├── AlarmConditionServerConfiguration.cs
│   │   │   │   ├── AreaState.cs
│   │   │   │   ├── ModelUtils.cs
│   │   │   │   ├── Namespaces.cs
│   │   │   │   ├── SourceState.cs
│   │   │   │   ├── UnderlyingSystem.cs
│   │   │   │   ├── UnderlyingSystemAlarm.cs
│   │   │   │   ├── UnderlyingSystemAlarmStates.cs
│   │   │   │   └── UnderlyingSystemSource.cs
│   │   │   ├── Asset/
│   │   │   │   ├── AssetNodeManager.cs
│   │   │   │   ├── AssetServer.cs
│   │   │   │   ├── AssetTag.cs
│   │   │   │   ├── FileManager.cs
│   │   │   │   ├── IAsset.cs
│   │   │   │   ├── ModbusBinding.cs
│   │   │   │   ├── ModbusFormExtension.cs
│   │   │   │   ├── ModbusProtocol.cs
│   │   │   │   ├── ModbusTcpAsset.cs
│   │   │   │   ├── Namespaces.cs
│   │   │   │   ├── Samples/
│   │   │   │   │   └── SimulatedAsset.td.jsonld
│   │   │   │   ├── SimulatedAsset.cs
│   │   │   │   ├── SimulatedBinding.cs
│   │   │   │   ├── SimulatedFormExtension.cs
│   │   │   │   └── ThingDescription.cs
│   │   │   ├── Azure.IIoT.OpcUa.Publisher.Testing.Servers.csproj
│   │   │   ├── Boiler/
│   │   │   │   ├── BoilerNodeManager.cs
│   │   │   │   ├── BoilerServer.cs
│   │   │   │   ├── BoilerState.cs
│   │   │   │   ├── BoilerStateMachineState.cs
│   │   │   │   └── GenericController.cs
│   │   │   ├── Common/
│   │   │   │   ├── DataChangeMonitoredItem.cs
│   │   │   │   ├── FolderConfiguration.cs
│   │   │   │   ├── MonitoredNode.cs
│   │   │   │   └── SampleNodeManager.cs
│   │   │   ├── DataAccess/
│   │   │   │   ├── BlockState.cs
│   │   │   │   ├── DataAccessNodeManager.cs
│   │   │   │   ├── DataAccessServer.cs
│   │   │   │   ├── DataAccessServerConfiguration.cs
│   │   │   │   ├── ModelUtils.cs
│   │   │   │   ├── Namespaces.cs
│   │   │   │   ├── SegmentBrowser.cs
│   │   │   │   ├── SegmentState.cs
│   │   │   │   ├── UnderlyingSystem.cs
│   │   │   │   ├── UnderlyingSystemBlock.cs
│   │   │   │   ├── UnderlyingSystemDataType.cs
│   │   │   │   ├── UnderlyingSystemSegment.cs
│   │   │   │   ├── UnderlyingSystemTag.cs
│   │   │   │   └── UnderlyingSystemTagType.cs
│   │   │   ├── DeterministicAlarms/
│   │   │   │   ├── Configuration/
│   │   │   │   │   ├── Alarm.cs
│   │   │   │   │   ├── AlarmObjectStates.cs
│   │   │   │   │   ├── AlarmsConfiguration.cs
│   │   │   │   │   ├── ConditionStates.cs
│   │   │   │   │   ├── Event.cs
│   │   │   │   │   ├── Folder.cs
│   │   │   │   │   ├── Script.cs
│   │   │   │   │   ├── ScriptException.cs
│   │   │   │   │   ├── Source.cs
│   │   │   │   │   ├── StateChange.cs
│   │   │   │   │   └── Step.cs
│   │   │   │   ├── DeterministicAlarmsNodeManager.cs
│   │   │   │   ├── DeterministicAlarmsServer.cs
│   │   │   │   ├── Model/
│   │   │   │   │   ├── SimConditionStatesEnum.cs
│   │   │   │   │   ├── SimFolderState.cs
│   │   │   │   │   └── SimSourceNodeState.cs
│   │   │   │   ├── Namespaces.cs
│   │   │   │   ├── ScriptEngine.cs
│   │   │   │   ├── SimBackend/
│   │   │   │   │   ├── SimAlarmStateBackend.cs
│   │   │   │   │   ├── SimBackendService.cs
│   │   │   │   │   └── SimSourceNodeBackend.cs
│   │   │   │   └── readme.md
│   │   │   ├── FileSystem/
│   │   │   │   ├── DirectoryBrowser.cs
│   │   │   │   ├── DirectoryObjectState.cs
│   │   │   │   ├── FileHandle.cs
│   │   │   │   ├── FileObjectState.cs
│   │   │   │   ├── FileSystem.cs
│   │   │   │   ├── FileSystemNodeManager.cs
│   │   │   │   ├── FileSystemServer.cs
│   │   │   │   ├── FileSystemServerConfiguration.cs
│   │   │   │   ├── ModelUtils.cs
│   │   │   │   └── Namespaces.cs
│   │   │   ├── Generated/
│   │   │   │   ├── Asset/
│   │   │   │   │   └── Design/
│   │   │   │   │       ├── Asset.Classes.cs
│   │   │   │   │       ├── Asset.Constants.cs
│   │   │   │   │       └── Asset.NodeSet2.xml
│   │   │   │   ├── Boiler/
│   │   │   │   │   └── Design/
│   │   │   │   │       ├── Boiler.Classes.cs
│   │   │   │   │       ├── Boiler.Constants.cs
│   │   │   │   │       ├── Boiler.NodeIds.csv
│   │   │   │   │       ├── Boiler.NodeSet.xml
│   │   │   │   │       ├── Boiler.NodeSet2.xml
│   │   │   │   │       ├── Boiler.PredefinedNodes.uanodes
│   │   │   │   │       ├── Boiler.PredefinedNodes.xml
│   │   │   │   │       ├── Boiler.Types.bsd
│   │   │   │   │       ├── Boiler.Types.xsd
│   │   │   │   │       ├── BoilerDesign.csv
│   │   │   │   │       └── BoilerDesign.xml
│   │   │   │   ├── BuildDesigns.bat
│   │   │   │   ├── BuildNodesets.bat
│   │   │   │   ├── HistoricalEvents/
│   │   │   │   │   └── Design/
│   │   │   │   │       ├── HistoricalEvents.Classes.cs
│   │   │   │   │       ├── HistoricalEvents.Constants.cs
│   │   │   │   │       ├── HistoricalEvents.NodeIds.csv
│   │   │   │   │       ├── HistoricalEvents.NodeSet.xml
│   │   │   │   │       ├── HistoricalEvents.NodeSet2.xml
│   │   │   │   │       ├── HistoricalEvents.PredefinedNodes.uanodes
│   │   │   │   │       ├── HistoricalEvents.PredefinedNodes.xml
│   │   │   │   │       ├── HistoricalEvents.Types.bsd
│   │   │   │   │       ├── HistoricalEvents.Types.xsd
│   │   │   │   │       ├── ModelDesign.csv
│   │   │   │   │       └── ModelDesign.xml
│   │   │   │   ├── Isa95Jobs/
│   │   │   │   │   ├── Design/
│   │   │   │   │   │   ├── UAModel.ISA95_JOBCONTROL_V2.Classes.cs
│   │   │   │   │   │   ├── UAModel.ISA95_JOBCONTROL_V2.Constants.cs
│   │   │   │   │   │   ├── UAModel.ISA95_JOBCONTROL_V2.DataTypes.cs
│   │   │   │   │   │   ├── UAModel.ISA95_JOBCONTROL_V2.NodeIds.csv
│   │   │   │   │   │   ├── UAModel.ISA95_JOBCONTROL_V2.NodeIds.permissions.csv
│   │   │   │   │   │   ├── UAModel.ISA95_JOBCONTROL_V2.NodeSet.xml
│   │   │   │   │   │   ├── UAModel.ISA95_JOBCONTROL_V2.NodeSet2.documentation.csv
│   │   │   │   │   │   ├── UAModel.ISA95_JOBCONTROL_V2.NodeSet2.xml
│   │   │   │   │   │   ├── UAModel.ISA95_JOBCONTROL_V2.PredefinedNodes.uanodes
│   │   │   │   │   │   ├── UAModel.ISA95_JOBCONTROL_V2.PredefinedNodes.xml
│   │   │   │   │   │   ├── UAModel.ISA95_JOBCONTROL_V2.Types.bsd
│   │   │   │   │   │   └── UAModel.ISA95_JOBCONTROL_V2.Types.xsd
│   │   │   │   │   └── Nodesets/
│   │   │   │   │       ├── opc.ua.isa95-jobcontrol.nodeids.csv
│   │   │   │   │       ├── opc.ua.isa95-jobcontrol.nodeset2.documentation.csv
│   │   │   │   │       ├── opc.ua.isa95-jobcontrol.nodeset2.xml
│   │   │   │   │       ├── opc.ua.isa95-jobcontrol.types.bsd
│   │   │   │   │       └── opc.ua.isa95-jobcontrol.types.xsd
│   │   │   │   ├── MemoryBuffer/
│   │   │   │   │   └── Design/
│   │   │   │   │       ├── MemoryBuffer.Classes.cs
│   │   │   │   │       ├── MemoryBuffer.Constants.cs
│   │   │   │   │       ├── MemoryBuffer.NodeIds.csv
│   │   │   │   │       ├── MemoryBuffer.NodeSet.xml
│   │   │   │   │       ├── MemoryBuffer.NodeSet2.xml
│   │   │   │   │       ├── MemoryBuffer.PredefinedNodes.uanodes
│   │   │   │   │       ├── MemoryBuffer.PredefinedNodes.xml
│   │   │   │   │       ├── MemoryBuffer.Types.bsd
│   │   │   │   │       ├── MemoryBuffer.Types.xsd
│   │   │   │   │       ├── MemoryBufferDesign.csv
│   │   │   │   │       └── MemoryBufferDesign.xml
│   │   │   │   ├── Plc/
│   │   │   │   │   └── Design/
│   │   │   │   │       ├── ModelDesign.csv
│   │   │   │   │       ├── ModelDesign.xml
│   │   │   │   │       ├── PlcModel.Classes.cs
│   │   │   │   │       ├── PlcModel.Constants.cs
│   │   │   │   │       ├── PlcModel.DataTypes.cs
│   │   │   │   │       ├── PlcModel.NodeIds.csv
│   │   │   │   │       ├── PlcModel.NodeSet.xml
│   │   │   │   │       ├── PlcModel.NodeSet2.xml
│   │   │   │   │       ├── PlcModel.PredefinedNodes.uanodes
│   │   │   │   │       ├── PlcModel.PredefinedNodes.xml
│   │   │   │   │       ├── PlcModel.Types.bsd
│   │   │   │   │       └── PlcModel.Types.xsd
│   │   │   │   ├── SimpleEvents/
│   │   │   │   │   └── Design/
│   │   │   │   │       ├── ModelDesign.csv
│   │   │   │   │       ├── ModelDesign.xml
│   │   │   │   │       ├── SimpleEvents.Classes.cs
│   │   │   │   │       ├── SimpleEvents.Constants.cs
│   │   │   │   │       ├── SimpleEvents.DataTypes.cs
│   │   │   │   │       ├── SimpleEvents.NodeIds.csv
│   │   │   │   │       ├── SimpleEvents.NodeSet.xml
│   │   │   │   │       ├── SimpleEvents.NodeSet2.xml
│   │   │   │   │       ├── SimpleEvents.PredefinedNodes.uanodes
│   │   │   │   │       ├── SimpleEvents.PredefinedNodes.xml
│   │   │   │   │       ├── SimpleEvents.Types.bsd
│   │   │   │   │       └── SimpleEvents.Types.xsd
│   │   │   │   ├── TestData/
│   │   │   │   │   └── Design/
│   │   │   │   │       ├── TestData.Classes.cs
│   │   │   │   │       ├── TestData.Constants.cs
│   │   │   │   │       ├── TestData.DataTypes.cs
│   │   │   │   │       ├── TestData.NodeIds.csv
│   │   │   │   │       ├── TestData.NodeSet.xml
│   │   │   │   │       ├── TestData.NodeSet2.xml
│   │   │   │   │       ├── TestData.PredefinedNodes.uanodes
│   │   │   │   │       ├── TestData.PredefinedNodes.xml
│   │   │   │   │       ├── TestData.Types.bsd
│   │   │   │   │       ├── TestData.Types.xsd
│   │   │   │   │       ├── TestDataDesign.csv
│   │   │   │   │       └── TestDataDesign.xml
│   │   │   │   ├── Vehicles/
│   │   │   │   │   └── Design/
│   │   │   │   │       ├── ModelDesign1.csv
│   │   │   │   │       ├── ModelDesign1.xml
│   │   │   │   │       ├── ModelDesign2.csv
│   │   │   │   │       ├── ModelDesign2.xml
│   │   │   │   │       ├── Vehicles.Instances.Constants.cs
│   │   │   │   │       ├── Vehicles.Instances.DataTypes.cs
│   │   │   │   │       ├── Vehicles.Instances.NodeIds.csv
│   │   │   │   │       ├── Vehicles.Instances.NodeSet.xml
│   │   │   │   │       ├── Vehicles.Instances.NodeSet2.xml
│   │   │   │   │       ├── Vehicles.Instances.PredefinedNodes.uanodes
│   │   │   │   │       ├── Vehicles.Instances.PredefinedNodes.xml
│   │   │   │   │       ├── Vehicles.Instances.Types.bsd
│   │   │   │   │       ├── Vehicles.Instances.Types.xsd
│   │   │   │   │       ├── Vehicles.Types.Classes.cs
│   │   │   │   │       ├── Vehicles.Types.Constants.cs
│   │   │   │   │       ├── Vehicles.Types.DataTypes.cs
│   │   │   │   │       ├── Vehicles.Types.NodeIds.csv
│   │   │   │   │       ├── Vehicles.Types.NodeSet.xml
│   │   │   │   │       ├── Vehicles.Types.NodeSet2.xml
│   │   │   │   │       ├── Vehicles.Types.PredefinedNodes.uanodes
│   │   │   │   │       ├── Vehicles.Types.PredefinedNodes.xml
│   │   │   │   │       ├── Vehicles.Types.Types.bsd
│   │   │   │   │       └── Vehicles.Types.Types.xsd
│   │   │   │   └── Views/
│   │   │   │       └── Design/
│   │   │   │           ├── Engineering.Constants.cs
│   │   │   │           ├── Engineering.NodeIds.csv
│   │   │   │           ├── Engineering.NodeSet.xml
│   │   │   │           ├── Engineering.NodeSet2.xml
│   │   │   │           ├── Engineering.PredefinedNodes.uanodes
│   │   │   │           ├── Engineering.PredefinedNodes.xml
│   │   │   │           ├── Engineering.Types.bsd
│   │   │   │           ├── Engineering.Types.xsd
│   │   │   │           ├── EngineeringDesign.csv
│   │   │   │           ├── EngineeringDesign.xml
│   │   │   │           ├── Model.Classes.cs
│   │   │   │           ├── Model.Constants.cs
│   │   │   │           ├── Model.NodeIds.csv
│   │   │   │           ├── Model.NodeSet.xml
│   │   │   │           ├── Model.NodeSet2.xml
│   │   │   │           ├── Model.PredefinedNodes.uanodes
│   │   │   │           ├── Model.PredefinedNodes.xml
│   │   │   │           ├── Model.Types.bsd
│   │   │   │           ├── Model.Types.xsd
│   │   │   │           ├── ModelDesign.csv
│   │   │   │           ├── ModelDesign.xml
│   │   │   │           ├── Operations.Constants.cs
│   │   │   │           ├── Operations.NodeIds.csv
│   │   │   │           ├── Operations.NodeSet.xml
│   │   │   │           ├── Operations.NodeSet2.xml
│   │   │   │           ├── Operations.PredefinedNodes.uanodes
│   │   │   │           ├── Operations.PredefinedNodes.xml
│   │   │   │           ├── Operations.Types.bsd
│   │   │   │           ├── Operations.Types.xsd
│   │   │   │           ├── OperationsDesign.csv
│   │   │   │           └── OperationsDesign.xml
│   │   │   ├── GlobalSuppressions.cs
│   │   │   ├── HistoricalAccess/
│   │   │   │   ├── ArchiveFolder.cs
│   │   │   │   ├── ArchiveFolderBrowser.cs
│   │   │   │   ├── ArchiveFolderState.cs
│   │   │   │   ├── ArchiveItem.cs
│   │   │   │   ├── ArchiveItemState.cs
│   │   │   │   ├── Data/
│   │   │   │   │   ├── Dynamic/
│   │   │   │   │   │   ├── Boolean.txt
│   │   │   │   │   │   ├── Byte.txt
│   │   │   │   │   │   ├── DateTime.txt
│   │   │   │   │   │   ├── Double.txt
│   │   │   │   │   │   ├── Float.txt
│   │   │   │   │   │   ├── Int16.txt
│   │   │   │   │   │   ├── Int32.txt
│   │   │   │   │   │   ├── Int64.txt
│   │   │   │   │   │   ├── SByte.txt
│   │   │   │   │   │   ├── String.txt
│   │   │   │   │   │   ├── UInt16.txt
│   │   │   │   │   │   ├── UInt32.txt
│   │   │   │   │   │   └── UInt64.txt
│   │   │   │   │   └── Sample/
│   │   │   │   │       ├── Boolean.txt
│   │   │   │   │       ├── Byte.txt
│   │   │   │   │       ├── ByteString.txt
│   │   │   │   │       ├── DateTime.txt
│   │   │   │   │       ├── Double.txt
│   │   │   │   │       ├── Float.txt
│   │   │   │   │       ├── Historian1.xlsx
│   │   │   │   │       ├── Historian1ExpectedData.csv
│   │   │   │   │       ├── Historian2ExpectedData.csv
│   │   │   │   │       ├── Historian3ExpectedData.csv
│   │   │   │   │       ├── Int16.txt
│   │   │   │   │       ├── Int32.txt
│   │   │   │   │       ├── Int64.txt
│   │   │   │   │       ├── SByte.txt
│   │   │   │   │       ├── String.txt
│   │   │   │   │       ├── UInt16.txt
│   │   │   │   │       ├── UInt32.txt
│   │   │   │   │       └── UInt64.txt
│   │   │   │   ├── DataFileReader.cs
│   │   │   │   ├── HistoricalAccessNodeManager.cs
│   │   │   │   ├── HistoricalAccessServer.cs
│   │   │   │   ├── HistoricalAccessServerConfiguration.cs
│   │   │   │   ├── Namespaces.cs
│   │   │   │   ├── NodeTypes.cs
│   │   │   │   └── UnderlyingSystem.cs
│   │   │   ├── HistoricalEvents/
│   │   │   │   ├── HistoricalEventsNodeManager.cs
│   │   │   │   ├── HistoricalEventsServer.cs
│   │   │   │   ├── HistoricalEventsServerConfiguration.cs
│   │   │   │   └── ReportGenerator.cs
│   │   │   ├── IServerFactory.cs
│   │   │   ├── IServerHost.cs
│   │   │   ├── ITestServer.cs
│   │   │   ├── Isa95Jobs/
│   │   │   │   ├── Isa95JobControlNodeManager.cs
│   │   │   │   ├── Isa95JobControlServer.cs
│   │   │   │   └── Isa95JobControlServerConfiguration.cs
│   │   │   ├── MemoryBuffer/
│   │   │   │   ├── MemoryBufferBrowser.cs
│   │   │   │   ├── MemoryBufferConfiguration.cs
│   │   │   │   ├── MemoryBufferMonitoredItem.cs
│   │   │   │   ├── MemoryBufferNodeManager.cs
│   │   │   │   ├── MemoryBufferServer.cs
│   │   │   │   ├── MemoryBufferState.cs
│   │   │   │   └── MemoryTagState.cs
│   │   │   ├── PerfTest/
│   │   │   │   ├── MemoryRegisterState.cs
│   │   │   │   ├── Namespaces.cs
│   │   │   │   ├── PerfTestNodeManager.cs
│   │   │   │   ├── PerfTestServer.cs
│   │   │   │   ├── PerfTestServerConfiguration.cs
│   │   │   │   └── UnderlyingSystem.cs
│   │   │   ├── Plc/
│   │   │   │   ├── Models/
│   │   │   │   │   ├── BaseDataVariableStateExtended.cs
│   │   │   │   │   ├── IPluginNodes.cs
│   │   │   │   │   ├── NodeWithIntervals.cs
│   │   │   │   │   └── SimulatedVariableNode.cs
│   │   │   │   ├── NamespaceType.cs
│   │   │   │   ├── Namespaces.cs
│   │   │   │   ├── PlcNodeManager.cs
│   │   │   │   ├── PlcServer.cs
│   │   │   │   ├── PlcSimulation.cs
│   │   │   │   └── PluginNodes/
│   │   │   │       ├── ComplexTypePluginNode.cs
│   │   │   │       ├── DataPluginNodes.cs
│   │   │   │       ├── DeterministicGuidPluginNodes.cs
│   │   │   │       ├── DipPluginNode.cs
│   │   │   │       ├── FastPluginNodes.cs
│   │   │   │       ├── FastRandomPluginNodes.cs
│   │   │   │       ├── LongIdPluginNode.cs
│   │   │   │       ├── LongStringPluginNodes.cs
│   │   │   │       ├── NegTrendPluginNode.cs
│   │   │   │       ├── NodeType.cs
│   │   │   │       ├── PosTrendPluginNode.cs
│   │   │   │       ├── SlowFastCommon.cs
│   │   │   │       ├── SlowPluginNodes.cs
│   │   │   │       ├── SlowRandomPluginNodes.cs
│   │   │   │       ├── SpecialCharNamePluginNode.cs
│   │   │   │       └── SpikePluginNode.cs
│   │   │   ├── Properties/
│   │   │   │   └── AssemblyInfo.cs
│   │   │   ├── Reference/
│   │   │   │   ├── Namespaces.cs
│   │   │   │   ├── ReferenceNodeManager.cs
│   │   │   │   ├── ReferenceServer.cs
│   │   │   │   └── ReferenceServerConfiguration.cs
│   │   │   ├── ServerConsoleHost.cs
│   │   │   ├── ServerFactory.cs
│   │   │   ├── SimpleEvents/
│   │   │   │   ├── SimpleEventsNodeManager.cs
│   │   │   │   ├── SimpleEventsServer.cs
│   │   │   │   └── SimpleEventsServerConfiguration.cs
│   │   │   ├── TestData/
│   │   │   │   ├── AnalogArrayValueObjectState.cs
│   │   │   │   ├── AnalogScalarValueObjectState.cs
│   │   │   │   ├── ArrayValueObjectState.cs
│   │   │   │   ├── HistoryArchive.cs
│   │   │   │   ├── MethodTestState.cs
│   │   │   │   ├── ScalarValueObjectState.cs
│   │   │   │   ├── TestDataNodeManager.cs
│   │   │   │   ├── TestDataNodeManagerConfiguration.cs
│   │   │   │   ├── TestDataObjectState.cs
│   │   │   │   ├── TestDataServer.cs
│   │   │   │   ├── TestDataSystem.cs
│   │   │   │   ├── TestSystemConditionState.cs
│   │   │   │   ├── UserArrayValueObjectState.cs
│   │   │   │   └── UserScalarValueObjectState.cs
│   │   │   ├── Utils/
│   │   │   │   ├── DeterministicGuid.cs
│   │   │   │   ├── FastTimer.cs
│   │   │   │   ├── FastTimerElapsedEventArgs.cs
│   │   │   │   ├── ITimer.cs
│   │   │   │   ├── TestDataGenerator.cs
│   │   │   │   └── TimeService.cs
│   │   │   ├── Vehicles/
│   │   │   │   ├── Namespaces.cs
│   │   │   │   ├── VehiclesNodeManager.cs
│   │   │   │   ├── VehiclesServer.cs
│   │   │   │   └── VehiclesServerConfiguration.cs
│   │   │   └── Views/
│   │   │       ├── ViewsNodeManager.cs
│   │   │       ├── ViewsServer.cs
│   │   │       └── ViewsServerConfiguration.cs
│   │   └── tests/
│   │       ├── Azure.IIoT.OpcUa.Publisher.Testing.csproj
│   │       ├── Extensions/
│   │       │   └── OpcUaClientManagerEx.cs
│   │       ├── Fixtures/
│   │       │   ├── AlarmsServer.cs
│   │       │   ├── AssetServer.cs
│   │       │   ├── BaseServerFixture.cs
│   │       │   ├── DeterministicAlarmsServer1.cs
│   │       │   ├── DeterministicAlarmsServer2.cs
│   │       │   ├── FileSystemServer.cs
│   │       │   ├── HistoricalAccessServer.cs
│   │       │   ├── HistoricalEventsServer.cs
│   │       │   ├── Isa95JobsServer.cs
│   │       │   ├── PlcServer.cs
│   │       │   ├── ReferenceServer.cs
│   │       │   ├── SimpleEventsServer.cs
│   │       │   └── TestDataServer.cs
│   │       ├── Properties/
│   │       │   └── AssemblyInfo.cs
│   │       ├── Runtime/
│   │       │   └── TestClientConfig.cs
│   │       └── Tests/
│   │           ├── Alarms/
│   │           │   └── AlarmServerTests.cs
│   │           ├── Asset/
│   │           │   ├── AssetTests1.cs
│   │           │   ├── AssetTests2.cs
│   │           │   ├── AssetTests3.cs
│   │           │   └── AssetTests4.cs
│   │           ├── DeterministicAlarms/
│   │           │   ├── DeterministicAlarmsTests1.cs
│   │           │   ├── DeterministicAlarmsTests2.cs
│   │           │   └── Extensions/
│   │           │       └── Extensions.cs
│   │           ├── FileSystem/
│   │           │   ├── BrowseTests.cs
│   │           │   ├── OperationsTests.cs
│   │           │   ├── ReadTests.cs
│   │           │   └── WriteTests.cs
│   │           ├── HistoricalAccess/
│   │           │   ├── HistoryReadValuesAtTimes.cs
│   │           │   ├── HistoryReadValuesModified.cs
│   │           │   ├── HistoryReadValuesProcessed.cs
│   │           │   ├── HistoryReadValuesTests.cs
│   │           │   ├── HistoryUpdateValuesTests.cs
│   │           │   └── NodeHistoricalAccessTests.cs
│   │           ├── HistoricalEvents/
│   │           │   └── NodeHistoricalEventsTests.cs
│   │           ├── Isa95Jobs/
│   │           │   └── Isa95JobsServerTests.cs
│   │           ├── Plc/
│   │           │   ├── PlcModelComplexTypeTests.cs
│   │           │   └── SimulatorNodesTests.cs
│   │           ├── SimpleEvents/
│   │           │   └── SimpleEventsServerTests.cs
│   │           └── TestData/
│   │               ├── BrowsePathTests.cs
│   │               ├── BrowseServicesTests.cs
│   │               ├── BrowseStreamTests.cs
│   │               ├── CallArrayMethodTests.cs
│   │               ├── CallScalarMethodTests.cs
│   │               ├── ConfigurationTests1.cs
│   │               ├── ConfigurationTests2.cs
│   │               ├── NodeMetadataTests.cs
│   │               ├── ReadArrayValueTests.cs
│   │               ├── ReadScalarValueTests.cs
│   │               ├── WriteArrayValueTests.cs
│   │               └── WriteScalarValueTests.cs
│   └── Directory.Build.props
├── testenvironments.json
├── tools/
│   ├── checkdocs.cmd
│   ├── clean.sh
│   ├── codecoverage.cmd
│   ├── docgen.cmd
│   ├── e2etesting/
│   │   ├── DeployAKS.ps1
│   │   ├── DeployEdge.ps1
│   │   ├── DeployPLCs.ps1
│   │   ├── DeployStandalone.ps1
│   │   ├── DeployTestResources.ps1
│   │   ├── DetermineKeyVaultName.ps1
│   │   ├── GetSecrets.ps1
│   │   ├── SetKeyVaultPermissions.ps1
│   │   ├── SetKeyVaultSecrets.ps1
│   │   ├── SetTestVariables.ps1
│   │   ├── SetVariables.ps1
│   │   └── steps/
│   │       ├── cleanup.yml
│   │       ├── deploystandalone.yml
│   │       ├── deploytestresources.yml
│   │       └── runtests.yml
│   └── swagger.cmd
└── version.json

================================================
FILE CONTENTS
================================================

================================================
FILE: .editorconfig
================================================
# Remove the line below if you want to inherit .editorconfig settings from higher directories
root = true

# JSON files, shell scripts
[*.{json,sh}]

# New line preferences
end_of_line = lf
insert_final_newline = true

# C# files
[*.cs]
dotnet_diagnostic.IDE0055.severity = none

#### Core EditorConfig Options ####

# Indentation and spacing
indent_size = 4
indent_style = space
tab_width = 4

# New line preferences
end_of_line = crlf
insert_final_newline =true

# Organize usings
dotnet_separate_import_directive_groups = false
dotnet_sort_system_directives_first = false
file_header_template = unset

# this. and Me. preferences
dotnet_style_qualification_for_event = false:suggestion
dotnet_style_qualification_for_field = false:suggestion
dotnet_style_qualification_for_method = false:suggestion
dotnet_style_qualification_for_property = false:suggestion

# Language keywords vs BCL types preferences
dotnet_style_predefined_type_for_locals_parameters_members = true:suggestion
dotnet_style_predefined_type_for_member_access = true:suggestion

# Parentheses preferences
dotnet_style_parentheses_in_arithmetic_binary_operators = always_for_clarity:suggestion
dotnet_style_parentheses_in_other_binary_operators = always_for_clarity:suggestion
dotnet_style_parentheses_in_other_operators = never_if_unnecessary:suggestion
dotnet_style_parentheses_in_relational_binary_operators = always_for_clarity:suggestion

# Modifier preferences
dotnet_style_require_accessibility_modifiers = for_non_interface_members:silent

# Expression-level preferences
dotnet_style_coalesce_expression = true:suggestion
dotnet_style_collection_initializer = true:suggestion
dotnet_style_explicit_tuple_names = true:suggestion
dotnet_style_null_propagation = true:suggestion
dotnet_style_object_initializer = true:suggestion
dotnet_style_operator_placement_when_wrapping = beginning_of_line
dotnet_style_prefer_auto_properties = true:suggestion
dotnet_style_prefer_compound_assignment = true:suggestion
dotnet_style_prefer_conditional_expression_over_assignment = true:silent
dotnet_style_prefer_conditional_expression_over_return = true:silent
dotnet_style_prefer_inferred_anonymous_type_member_names = true:suggestion
dotnet_style_prefer_inferred_tuple_names = true:suggestion
dotnet_style_prefer_is_null_check_over_reference_equality_method = true:suggestion
dotnet_style_prefer_simplified_boolean_expressions = true:suggestion
dotnet_style_prefer_simplified_interpolation = true:suggestion

# Field preferences
dotnet_style_readonly_field = true:warning

# Parameter preferences
dotnet_code_quality_unused_parameters = all:suggestion

# Suppression preferences
dotnet_remove_unnecessary_suppression_exclusions = none

#### C# Coding Conventions ####
dotnet_style_operator_placement_when_wrapping = beginning_of_line
dotnet_style_coalesce_expression = true:suggestion
dotnet_style_null_propagation = true:suggestion
dotnet_style_prefer_is_null_check_over_reference_equality_method = true:suggestion
dotnet_style_prefer_auto_properties = true:silent
dotnet_style_object_initializer = true:suggestion
dotnet_style_collection_initializer = true:suggestion
dotnet_style_prefer_simplified_boolean_expressions = true:suggestion
dotnet_style_prefer_conditional_expression_over_assignment = true:silent
dotnet_style_prefer_conditional_expression_over_return = true:silent
dotnet_style_explicit_tuple_names = true:suggestion
dotnet_style_prefer_inferred_tuple_names = true:suggestion
dotnet_style_prefer_inferred_anonymous_type_member_names = true:suggestion
dotnet_style_prefer_compound_assignment = true:suggestion
dotnet_style_prefer_simplified_interpolation = true:suggestion
dotnet_style_namespace_match_folder = true:suggestion
dotnet_style_readonly_field = true:warning
dotnet_style_predefined_type_for_locals_parameters_members = true:suggestion
dotnet_style_predefined_type_for_member_access = true:suggestion
dotnet_style_require_accessibility_modifiers = for_non_interface_members:silent
dotnet_style_allow_multiple_blank_lines_experimental = true:silent
dotnet_style_allow_statement_immediately_after_block_experimental = true:silent
dotnet_style_parentheses_in_arithmetic_binary_operators = always_for_clarity:suggestion
dotnet_style_parentheses_in_other_binary_operators = always_for_clarity:suggestion
dotnet_style_parentheses_in_relational_binary_operators = always_for_clarity:suggestion
dotnet_style_parentheses_in_other_operators = never_if_unnecessary:suggestion
dotnet_style_qualification_for_field = false:suggestion
dotnet_style_qualification_for_property = false:suggestion
dotnet_style_qualification_for_method = false:suggestion
dotnet_style_qualification_for_event = false:suggestion

# var preferences
csharp_style_var_elsewhere = true:suggestion
csharp_style_var_for_built_in_types = true:suggestion
csharp_style_var_when_type_is_apparent = true:suggestion

# Expression-bodied members
csharp_style_expression_bodied_accessors = when_on_single_line:silent
csharp_style_expression_bodied_constructors = false:suggestion
csharp_style_expression_bodied_indexers = when_on_single_line:silent
csharp_style_expression_bodied_lambdas = when_on_single_line:silent
csharp_style_expression_bodied_local_functions = when_on_single_line:silent
csharp_style_expression_bodied_methods = false:suggestion
csharp_style_expression_bodied_operators = when_on_single_line:silent
csharp_style_expression_bodied_properties = when_on_single_line:silent

# Pattern matching preferences
csharp_style_pattern_matching_over_as_with_null_check = true:suggestion
csharp_style_pattern_matching_over_is_with_cast_check = true:suggestion
csharp_style_prefer_not_pattern = true:suggestion
csharp_style_prefer_pattern_matching = true:none
csharp_style_prefer_switch_expression = false:suggestion

csharp_style_prefer_method_group_conversion = true:silent
csharp_style_prefer_top_level_statements = true:silent
csharp_style_prefer_null_check_over_type_check = true:suggestion
csharp_style_prefer_local_over_anonymous_function = true:suggestion
csharp_style_implicit_object_creation_when_type_is_apparent = true:suggestion
csharp_style_prefer_tuple_swap = true:suggestion
csharp_style_prefer_utf8_string_literals = true:suggestion
csharp_style_allow_embedded_statements_on_same_line_experimental = true:silent
csharp_style_allow_blank_lines_between_consecutive_braces_experimental = true:silent
csharp_style_allow_blank_line_after_colon_in_constructor_initializer_experimental = true:silent
csharp_style_prefer_extended_property_pattern = true:suggestion

# Null-checking preferences
csharp_style_conditional_delegate_call = true:suggestion

# Modifier preferences
csharp_prefer_static_local_function = true:warning
csharp_preferred_modifier_order = public,private,protected,internal,static,extern,new,virtual,abstract,sealed,override,readonly,unsafe,volatile,async:silent

# Code-block preferences
csharp_prefer_braces = true:suggestion
csharp_prefer_simple_using_statement = true:silent

# Expression-level preferences
csharp_prefer_simple_default_expression = true:suggestion
csharp_style_deconstructed_variable_declaration = true:suggestion
csharp_style_inlined_variable_declaration = true:suggestion
csharp_style_pattern_local_over_anonymous_function = true:suggestion
csharp_style_prefer_index_operator = true:suggestion
csharp_style_prefer_range_operator = true:suggestion
csharp_style_throw_expression = true:suggestion
csharp_style_unused_value_assignment_preference = discard_variable:silent
csharp_style_unused_value_expression_statement_preference = discard_variable:none

# 'using' directive preferences
csharp_using_directive_placement = inside_namespace:suggestion

#### C# Formatting Rules ####

# New line preferences
csharp_new_line_before_catch = true
csharp_new_line_before_else = true
csharp_new_line_before_finally = true
csharp_new_line_before_members_in_anonymous_types = true
csharp_new_line_before_members_in_object_initializers = true
csharp_new_line_before_open_brace = all
csharp_new_line_between_query_expression_clauses = true

# Indentation preferences
csharp_indent_block_contents = true
csharp_indent_braces = false
csharp_indent_case_contents = true
csharp_indent_case_contents_when_block = true
csharp_indent_labels = one_less_than_current
csharp_indent_switch_labels = true

# Space preferences
csharp_space_after_cast = false
csharp_space_after_colon_in_inheritance_clause = true
csharp_space_after_comma = true
csharp_space_after_dot = false
csharp_space_after_keywords_in_control_flow_statements = true
csharp_space_after_semicolon_in_for_statement = true
csharp_space_around_binary_operators = before_and_after
csharp_space_around_declaration_statements = false
csharp_space_before_colon_in_inheritance_clause = true
csharp_space_before_comma = false
csharp_space_before_dot = false
csharp_space_before_open_square_brackets = false
csharp_space_before_semicolon_in_for_statement = false
csharp_space_between_empty_square_brackets = false
csharp_space_between_method_call_empty_parameter_list_parentheses = false
csharp_space_between_method_call_name_and_opening_parenthesis = false
csharp_space_between_method_call_parameter_list_parentheses = false
csharp_space_between_method_declaration_empty_parameter_list_parentheses = false
csharp_space_between_method_declaration_name_and_open_parenthesis = false
csharp_space_between_method_declaration_parameter_list_parentheses = false
csharp_space_between_parentheses = false
csharp_space_between_square_brackets = false

# Wrapping preferences
csharp_preserve_single_line_blocks = true
csharp_preserve_single_line_statements = true

#### Naming styles ####

# Naming rules

dotnet_naming_rule.interface_should_be_begins_with_i.severity = suggestion
dotnet_naming_rule.interface_should_be_begins_with_i.symbols = interface
dotnet_naming_rule.interface_should_be_begins_with_i.style = begins_with_i

dotnet_naming_rule.types_should_be_pascal_case.severity = suggestion
dotnet_naming_rule.types_should_be_pascal_case.symbols = types
dotnet_naming_rule.types_should_be_pascal_case.style = pascal_case

dotnet_naming_rule.non_field_members_should_be_pascal_case.severity = suggestion
dotnet_naming_rule.non_field_members_should_be_pascal_case.symbols = non_field_members
dotnet_naming_rule.non_field_members_should_be_pascal_case.style = pascal_case

dotnet_naming_rule.async_method_should_be_ends_in_async.severity = suggestion
dotnet_naming_rule.async_method_should_be_ends_in_async.symbols = async_method
dotnet_naming_rule.async_method_should_be_ends_in_async.style = ends_in_async

dotnet_naming_rule.public_const_field_should_be_pascal_case.severity = suggestion
dotnet_naming_rule.public_const_field_should_be_pascal_case.symbols = public_const_field
dotnet_naming_rule.public_const_field_should_be_pascal_case.style = pascal_case

dotnet_naming_rule.public_static_readonly_field_should_be_pascal_case.severity = suggestion
dotnet_naming_rule.public_static_readonly_field_should_be_pascal_case.symbols = public_static_readonly_field
dotnet_naming_rule.public_static_readonly_field_should_be_pascal_case.style = pascal_case

dotnet_naming_rule.private_or_protected_const_field_should_be_begins_with_k.severity = suggestion
dotnet_naming_rule.private_or_protected_const_field_should_be_begins_with_k.symbols = private_or_protected_const_field
dotnet_naming_rule.private_or_protected_const_field_should_be_begins_with_k.style = begins_with_k

dotnet_naming_rule.private_or_protected_static_readonly_field_should_be_begins_with_k.severity = suggestion
dotnet_naming_rule.private_or_protected_static_readonly_field_should_be_begins_with_k.symbols = private_or_protected_static_readonly_field
dotnet_naming_rule.private_or_protected_static_readonly_field_should_be_begins_with_k.style = begins_with_k

dotnet_naming_rule.public_or_protected_field_should_be_begins_with__.severity = suggestion
dotnet_naming_rule.public_or_protected_field_should_be_begins_with__.symbols = public_or_protected_field
dotnet_naming_rule.public_or_protected_field_should_be_begins_with__.style = begins_with__

dotnet_naming_rule.private_or_internal_field_should_be_begins_with__.severity = suggestion
dotnet_naming_rule.private_or_internal_field_should_be_begins_with__.symbols = private_or_internal_field
dotnet_naming_rule.private_or_internal_field_should_be_begins_with__.style = begins_with__

dotnet_naming_rule.private_or_internal_static_field_should_be_begins_with__.severity = suggestion
dotnet_naming_rule.private_or_internal_static_field_should_be_begins_with__.symbols = private_or_internal_static_field
dotnet_naming_rule.private_or_internal_static_field_should_be_begins_with__.style = begins_with__

# Symbol specifications

dotnet_naming_symbols.interface.applicable_kinds = interface
dotnet_naming_symbols.interface.applicable_accessibilities = public, internal, private, protected, protected_internal
dotnet_naming_symbols.interface.required_modifiers =

dotnet_naming_symbols.public_or_protected_field.applicable_kinds = field
dotnet_naming_symbols.public_or_protected_field.applicable_accessibilities = public, protected
dotnet_naming_symbols.public_or_protected_field.required_modifiers =

dotnet_naming_symbols.private_or_internal_field.applicable_kinds = field
dotnet_naming_symbols.private_or_internal_field.applicable_accessibilities = internal, private
dotnet_naming_symbols.private_or_internal_field.required_modifiers =

dotnet_naming_symbols.private_or_internal_static_field.applicable_kinds = field
dotnet_naming_symbols.private_or_internal_static_field.applicable_accessibilities = internal, private
dotnet_naming_symbols.private_or_internal_static_field.required_modifiers = static

dotnet_naming_symbols.types.applicable_kinds = class, struct, interface, enum
dotnet_naming_symbols.types.applicable_accessibilities = public, internal, private, protected, protected_internal
dotnet_naming_symbols.types.required_modifiers =

dotnet_naming_symbols.non_field_members.applicable_kinds = property, event, method
dotnet_naming_symbols.non_field_members.applicable_accessibilities = public, internal, private, protected, protected_internal
dotnet_naming_symbols.non_field_members.required_modifiers =

dotnet_naming_symbols.async_method.applicable_kinds = method
dotnet_naming_symbols.async_method.applicable_accessibilities = *
dotnet_naming_symbols.async_method.required_modifiers = async

dotnet_naming_symbols.private_or_protected_const_field.applicable_kinds = field
dotnet_naming_symbols.private_or_protected_const_field.applicable_accessibilities = private, protected, protected_internal, private_protected, local
dotnet_naming_symbols.private_or_protected_const_field.required_modifiers = const

dotnet_naming_symbols.private_or_protected_static_readonly_field.applicable_kinds = field
dotnet_naming_symbols.private_or_protected_static_readonly_field.applicable_accessibilities = private, protected, protected_internal, private_protected, local
dotnet_naming_symbols.private_or_protected_static_readonly_field.required_modifiers = readonly, static

dotnet_naming_symbols.public_const_field.applicable_kinds = field
dotnet_naming_symbols.public_const_field.applicable_accessibilities = public, internal
dotnet_naming_symbols.public_const_field.required_modifiers = const

dotnet_naming_symbols.public_static_readonly_field.applicable_kinds = field
dotnet_naming_symbols.public_static_readonly_field.applicable_accessibilities = public, internal
dotnet_naming_symbols.public_static_readonly_field.required_modifiers = readonly

# Naming styles

dotnet_naming_style.pascal_case.required_prefix =
dotnet_naming_style.pascal_case.required_suffix =
dotnet_naming_style.pascal_case.word_separator =
dotnet_naming_style.pascal_case.capitalization = pascal_case

dotnet_naming_style.begins_with_i.required_prefix = I
dotnet_naming_style.begins_with_i.required_suffix =
dotnet_naming_style.begins_with_i.word_separator =
dotnet_naming_style.begins_with_i.capitalization = pascal_case

dotnet_naming_style.begins_with__.required_prefix = _
dotnet_naming_style.begins_with__.required_suffix =
dotnet_naming_style.begins_with__.word_separator =
dotnet_naming_style.begins_with__.capitalization = camel_case

dotnet_naming_style.ends_in_async.required_prefix =
dotnet_naming_style.ends_in_async.required_suffix = Async
dotnet_naming_style.ends_in_async.word_separator =
dotnet_naming_style.ends_in_async.capitalization = pascal_case

dotnet_naming_style.begins_with_k.required_prefix = k
dotnet_naming_style.begins_with_k.required_suffix =
dotnet_naming_style.begins_with_k.word_separator =
dotnet_naming_style.begins_with_k.capitalization = pascal_case

csharp_style_namespace_declarations= block_scoped:warning

# IDE0046: Convert to conditional expression
dotnet_diagnostic.IDE0046.severity = silent
# IDE0045: Convert to conditional expression
dotnet_diagnostic.IDE0045.severity = silent
# IDE0130: Namespace does not match folder structure
dotnet_diagnostic.IDE0130.severity = none
# IDE0010: Add missing cases
dotnet_diagnostic.IDE0010.severity = silent
# IDE0072: Add missing cases
dotnet_diagnostic.IDE0072.severity = silent

# RCS1138: Add summary to documentation comment.
dotnet_diagnostic.RCS1138.severity = suggestion
# RCS1163: Unused parameter
dotnet_diagnostic.RCS1163.severity = silent
# RCS1180: Inline lazy initialization
dotnet_diagnostic.RCS1180.severity = silent
# RCS1194: Implement exception constructors.
dotnet_diagnostic.RCS1194.severity = silent
# RCS1073: Convert 'if' to 'return' statement.
dotnet_diagnostic.RCS1073.severity = silent
# RCS1112: Combine 'Enumerable.Where' method chain.
dotnet_diagnostic.RCS1112.severity = silent
# RCS1237: Use bit shift operator.
dotnet_diagnostic.RCS1237.severity = silent
# RCS1135: Declare enum member with zero value (when enum has FlagsAttribute).
dotnet_diagnostic.RCS1135.severity = silent
# RCS1079: Throwing of new NotImplementedException.
dotnet_diagnostic.RCS1079.severity = silent
# RCS1238: Avoid nested ?: operators.
dotnet_diagnostic.RCS1238.severity = silent

# CA1062: Variant value validation
dotnet_code_quality.CA1062.null_check_validation_methods = IsNull|CheckNull

# Default severity for analyzer diagnostics with category 'Naming'
dotnet_analyzer_diagnostic.category-Naming.severity = suggestion
# Default severity for analyzer diagnostics with category 'Performance'
dotnet_analyzer_diagnostic.category-Performance.severity = suggestion

# CA1303: Do not pass literals as localized parameters
dotnet_diagnostic.CA1303.severity = none
# CA1031: Do not catch general exception types
dotnet_diagnostic.CA1031.severity = none
# CA1062: Validate arguments of public methods
dotnet_diagnostic.CA1062.severity = silent
# CA1711: Identifiers should not have incorrect suffix
dotnet_diagnostic.CA1711.severity = silent
# CA2225: Operator overloads have named alternates
dotnet_diagnostic.CA2225.severity = silent
# CA1848: Use the LoggerMessage delegates
dotnet_diagnostic.CA1848.severity = silent
# CA1819: Properties should not return arrays
dotnet_diagnostic.CA1819.severity = silent
# CA1055: URI-like return values should not be strings
dotnet_diagnostic.CA1055.severity = silent
# CA1056: URI-like properties should not be strings
dotnet_diagnostic.CA1056.severity = silent
# CA1054: URI-like parameters should not be strings
dotnet_diagnostic.CA1054.severity = silent
dotnet_diagnostic.CA1309.severity=suggestion
# CA1810: Initialize reference type static fields inline
dotnet_diagnostic.CA1810.severity = none
dotnet_diagnostic.CA1032.severity= silent
dotnet_diagnostic.CA1304.severity=suggestion
dotnet_diagnostic.CA1305.severity=suggestion
dotnet_diagnostic.CA1307.severity=suggestion
dotnet_diagnostic.CA1310.severity=warning
dotnet_diagnostic.CA1727.severity=warning
dotnet_diagnostic.CA2201.severity=warning
dotnet_diagnostic.CA2215.severity=warning
dotnet_diagnostic.CA5351.severity=warning
dotnet_diagnostic.CA5350.severity=warning
dotnet_diagnostic.CA5360.severity=error
dotnet_diagnostic.CA5359.severity=warning
dotnet_diagnostic.CA5363.severity=warning
dotnet_diagnostic.CA5364.severity=warning
dotnet_diagnostic.CA5365.severity=warning
dotnet_diagnostic.CA5366.severity=warning
dotnet_diagnostic.CA5373.severity=warning
dotnet_diagnostic.CA5379.severity=warning
dotnet_diagnostic.CA5385.severity=warning
dotnet_diagnostic.CA5384.severity=warning
dotnet_diagnostic.CA5397.severity=warning
dotnet_diagnostic.CA5394.severity=suggestion
# IDE0066: Convert switch statement to expression
dotnet_diagnostic.IDE0066.severity = suggestion
dotnet_diagnostic.CA1200.severity = suggestion
dotnet_diagnostic.CA1848.severity = suggestion
dotnet_diagnostic.CA2011.severity = warning
dotnet_diagnostic.CA2009.severity = warning
dotnet_diagnostic.CA1001.severity = warning
dotnet_diagnostic.CA1311.severity = suggestion

# Default severity for analyzer diagnostics with category 'Style'
dotnet_analyzer_diagnostic.category-Style.severity = silent
dotnet_code_quality_unused_parameters = all:suggestion
dotnet_diagnostic.RCS1090.severity = warning
dotnet_diagnostic.RCS1035.severity = suggestion
dotnet_diagnostic.RCS1034.severity = suggestion
dotnet_diagnostic.RCS1040.severity = suggestion
dotnet_diagnostic.RCS1042.severity = suggestion
dotnet_diagnostic.RCS1043.severity = suggestion
dotnet_diagnostic.RCS1061.severity = suggestion
dotnet_diagnostic.RCS1066.severity = suggestion
dotnet_diagnostic.RCS1069.severity = suggestion
dotnet_diagnostic.RCS1071.severity = suggestion
dotnet_diagnostic.RCS1091.severity = suggestion
dotnet_diagnostic.RCS1124.severity = suggestion
dotnet_diagnostic.RCS1129.severity = suggestion
dotnet_diagnostic.RCS1136.severity = suggestion
dotnet_diagnostic.RCS1141.severity = suggestion
dotnet_diagnostic.RCS1140.severity = suggestion
dotnet_diagnostic.RCS1142.severity = suggestion
dotnet_diagnostic.RCS1145.severity = suggestion
dotnet_diagnostic.RCS1143.severity = suggestion
dotnet_diagnostic.RCS1151.severity = suggestion
dotnet_diagnostic.RCS1165.severity = suggestion
dotnet_diagnostic.RCS1188.severity = suggestion
dotnet_diagnostic.RCS1181.severity = suggestion
dotnet_diagnostic.RCS1182.severity = suggestion
dotnet_diagnostic.RCS1201.severity = suggestion
dotnet_diagnostic.RCS1211.severity = suggestion
dotnet_diagnostic.RCS1228.severity = none
dotnet_diagnostic.RCS1229.severity = warning
dotnet_diagnostic.RCS1244.severity = suggestion

# xUnit1033: Test classes decorated with 'Xunit.IClassFixture<TFixture>' or 'Xunit.ICollectionFixture<TFixture>' should add a constructor argument of type TFixture
dotnet_diagnostic.xUnit1033.severity = silent
# xUnit1044: The type argument is not serializable, which will cause Test Explorer to not enumerate individual data rows. Consider using a type that is known to be serializable.
dotnet_diagnostic.xUnit1044.severity = silent

# CA1716: Identifiers should not match keywords
dotnet_diagnostic.CA1716.severity = none
csharp_style_prefer_primary_constructors = false:suggestion

# CA1861: Avoid constant arrays as arguments
dotnet_diagnostic.CA1861.severity = silent

# CA1724: Type names should not match namespaces
dotnet_diagnostic.CA1724.severity = silent

# CA1812: Avoid uninstantiated internal classes
dotnet_diagnostic.CA1812.severity = silent

# CA1003: Use generic event handler instances
dotnet_diagnostic.CA1003.severity = silent

# CA1008: Enums should have zero value
dotnet_diagnostic.CA1008.severity = silent
csharp_style_prefer_readonly_struct = true:suggestion
csharp_style_prefer_readonly_struct_member = true:suggestion
csharp_style_allow_blank_line_after_token_in_conditional_expression_experimental = true:silent
csharp_style_allow_blank_line_after_token_in_arrow_expression_clause_experimental = true:silent
dotnet_diagnostic.RCS1055.severity = suggestion
dotnet_diagnostic.RCS1039.severity = suggestion
csharp_prefer_static_anonymous_function = true:suggestion
csharp_prefer_system_threading_lock = true:suggestion

# IDE0058: Expression value is never used
dotnet_diagnostic.IDE0058.severity = none

# IDE0078: Use pattern matching
dotnet_diagnostic.IDE0078.severity = none

[*.{cs,vb}]
dotnet_style_coalesce_expression = true:silent
dotnet_style_null_propagation = true:suggestion
dotnet_style_prefer_is_null_check_over_reference_equality_method = true:suggestion
dotnet_style_prefer_auto_properties = true:silent
dotnet_style_operator_placement_when_wrapping = beginning_of_line
tab_width = 4
indent_size = 4
end_of_line = crlf
dotnet_style_object_initializer = true:suggestion
dotnet_style_namespace_match_folder = false:silent

dotnet_diagnostic.CA2007.severity = warning
dotnet_diagnostic.CA1848.severity = silent
dotnet_diagnostic.CA1036.severity = suggestion
dotnet_diagnostic.CA1051.severity = silent
dotnet_diagnostic.CA1711.severity = silent
dotnet_diagnostic.CA1819.severity = suggestion
dotnet_diagnostic.CA3061.severity = suggestion
dotnet_diagnostic.CA3075.severity = suggestion
dotnet_diagnostic.CA3076.severity = suggestion
dotnet_diagnostic.CA3077.severity = suggestion
dotnet_diagnostic.CA3147.severity = suggestion
dotnet_diagnostic.CA5369.severity = suggestion
dotnet_diagnostic.CA5371.severity = suggestion
dotnet_diagnostic.CA5370.severity = suggestion
dotnet_diagnostic.CA5372.severity = suggestion
dotnet_diagnostic.CA5374.severity = warning
dotnet_diagnostic.CA2251.severity = suggestion
dotnet_style_prefer_collection_expression = when_types_exactly_match:suggestion
dotnet_style_collection_initializer = true:suggestion
dotnet_style_prefer_simplified_boolean_expressions = true:suggestion
dotnet_style_prefer_conditional_expression_over_assignment = true:silent

# IDE0270: Use coalesce expression
dotnet_diagnostic.IDE0270.severity = silent
# IDE0130: Namespace does not correspond to file location
dotnet_diagnostic.IDE0130.severity = silent
dotnet_diagnostic.CA1031.severity = silent
dotnet_style_prefer_conditional_expression_over_return = true:silent
dotnet_style_explicit_tuple_names = true:suggestion
dotnet_style_prefer_inferred_tuple_names = true:suggestion
dotnet_style_prefer_inferred_anonymous_type_member_names = true:suggestion
dotnet_style_prefer_compound_assignment = true:suggestion
dotnet_style_prefer_simplified_interpolation = true:suggestion
dotnet_style_namespace_match_folder = false:suggestion
dotnet_style_readonly_field = true:warning
dotnet_style_predefined_type_for_locals_parameters_members = true:suggestion
dotnet_style_predefined_type_for_member_access = true:suggestion
dotnet_style_require_accessibility_modifiers = for_non_interface_members:silent
dotnet_style_allow_multiple_blank_lines_experimental = true:silent
dotnet_style_allow_statement_immediately_after_block_experimental = true:silent
dotnet_code_quality_unused_parameters = all:suggestion
dotnet_style_parentheses_in_arithmetic_binary_operators = always_for_clarity:suggestion
dotnet_style_parentheses_in_other_binary_operators = always_for_clarity:suggestion
dotnet_style_parentheses_in_relational_binary_operators = always_for_clarity:suggestion
dotnet_style_parentheses_in_other_operators = never_if_unnecessary:suggestion
dotnet_style_qualification_for_field = false:suggestion
dotnet_style_qualification_for_property = false:suggestion
dotnet_style_qualification_for_method = false:suggestion
dotnet_style_qualification_for_event = false:suggestion


================================================
FILE: .gdnbaselines
================================================
{
  "hydrated": false,
  "properties": {
    "helpUri": "https://eng.ms/docs/microsoft-security/security/azure-security/cloudai-security-fundamentals-engineering/security-integration/guardian-wiki/microsoft-guardian/general/baselines"
  },
  "version": "1.0.0",
  "baselines": {
    "default": {
      "name": "default",
      "createdDate": "2025-08-08 15:38:41Z",
      "lastUpdatedDate": "2025-08-08 15:38:41Z"
    }
  },
  "results": {
    "6509bdf379f034da9286d6a99b43a48c28d25e6ed7a27498cdd040ca8d2716e3": {
      "signature": "6509bdf379f034da9286d6a99b43a48c28d25e6ed7a27498cdd040ca8d2716e3",
      "alternativeSignatures": [
        "f6b70eed777a2be53d74c33c31bb729cfa646ab63add95fc1c0fa9af2498a78c"
      ],
      "memberOf": [
        "default"
      ],
      "createdDate": "2025-08-08 15:38:41Z"
    },
    "58ae6a48f45ca345b98cdda729972ce4308cf93c8efb96deb348e3e91598cc0d": {
      "signature": "58ae6a48f45ca345b98cdda729972ce4308cf93c8efb96deb348e3e91598cc0d",
      "alternativeSignatures": [
        "647af3f9494531075db1bd4924b6bccf8508acc3de6c32eb8d41b905f0b0d1e0"
      ],
      "memberOf": [
        "default"
      ],
      "createdDate": "2025-08-08 15:38:41Z"
    }
  }
}

================================================
FILE: .gitattributes
================================================
# Default behavior: if Git thinks a file is text (as opposed to binary), it
# will normalize line endings to LF in the repository, but convert to your
# platform's native line endings on checkout (e.g., CRLF for Windows).
* text=auto

# Explicitly declare text files you want to always be normalized and converted
# to native line endings on checkout. E.g.,
#*.c text

# Declare files that will always have LF line endings on checkout. E.g.,
*.sh text eol=lf
*.json text eol=lf
*.rb text eol=lf
*.go text eol=lf
*.java text eol=lf
*.ts text eol=lf
*.js text eol=lf
*.py text eol=lf

# Denote all files that should not have line endings normalized, should not be
# merged, and should not show in a textual diff.
*.docm binary
*.docx binary
*.ico binary
*.lib binary
*.png binary
*.pptx binary
*.snk binary
*.vsdx binary
*.xps binary
*.dll binary
*.exe binary


================================================
FILE: .github/CODEOWNERS
================================================
* @Azure/azure-industrial-iot

================================================
FILE: .github/ISSUE_TEMPLATE/bug_report.md
================================================
---
name: Bug report
about: Create a report to help us improve
title: ''
labels: ''
assignees: ''

---

**Describe the bug**
A clear and concise description of what the bug is.

**To Reproduce**
Steps to reproduce the behavior:
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error

**Expected behavior**
A clear and concise description of what you expected to happen.

**Screenshots**
If applicable, add screenshots to help explain your problem.

**Desktop (please complete the following information):**
 - OS: [e.g. iOS]
 - Browser [e.g. chrome, safari]
 - Version [e.g. 22]

**Smartphone (please complete the following information):**
 - Device: [e.g. iPhone6]
 - OS: [e.g. iOS8.1]
 - Browser [e.g. stock browser, safari]
 - Version [e.g. 22]

**Additional context**
Add any other context about the problem here.


================================================
FILE: .github/ISSUE_TEMPLATE/feature_request.md
================================================
---
name: Feature request
about: Suggest an idea for this project
title: ''
labels: ''
assignees: ''

---

**Is your feature request related to a problem? Please describe.**
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]

**Describe the solution you'd like**
A clear and concise description of what you want to happen.

**Describe alternatives you've considered**
A clear and concise description of any alternative solutions or features you've considered.

**Additional context**
Add any other context or screenshots about the feature request here.


================================================
FILE: .github/dependabot.yml
================================================
# To get started with Dependabot version updates, you'll need to specify which
# package ecosystems to update and where the package manifests are located.
# Please see the documentation for all configuration options:
# https://help.github.com/github/administering-a-repository/configuration-options-for-dependency-updates

version: 2
updates:
  - package-ecosystem: "nuget"
    directory: "/" # Location of package manifests
    schedule:
      interval: "daily"
    open-pull-requests-limit: 25
    # Raise pull requests in worker branch nuget
    target-branch: "main"


================================================
FILE: .github/workflows/codeql.yml
================================================
name: "CodeQL"

on:
  push:
    branches: [ "latest", "main", "release/*" ]
  pull_request:
    branches: [ "latest", "main", "release/*" ]
  schedule:
    - cron: '37 9 * * 5'

jobs:
  analyze:
    name: Analyze (${{ matrix.language }})
    runs-on: ${{ (matrix.language == 'swift' && 'macos-latest') || 'ubuntu-latest' }}
    timeout-minutes: ${{ (matrix.language == 'swift' && 120) || 360 }}
    permissions:
      security-events: write
      packages: read
      actions: read
      contents: read

    strategy:
      fail-fast: false
      matrix:
        include:
        - language: csharp
          build-mode: autobuild
    steps:
    - name: Setup .NET
      uses: actions/setup-dotnet@v3
      with:
        dotnet-version: 9.0.x
    - name: Checkout repository
      uses: actions/checkout@v4
      with:
        fetch-depth: 0
    - name: Cleanup Nuget.Config
      run: |
        find . -name "Nuget.Config" -type f -delete
    - name: Initialize CodeQL
      uses: github/codeql-action/init@v3
      with:
        languages: ${{ matrix.language }}
        build-mode: ${{ matrix.build-mode }}
      # queries: security-extended,security-and-quality
    - name: Perform CodeQL Analysis
      uses: github/codeql-action/analyze@v3
      with:
        category: "/language:${{matrix.language}}"


================================================
FILE: .github/workflows/dotnet.yml
================================================
name: Build Solutions
on:
  push:
    branches: [ "latest", "main" ]
  pull_request:
    branches: [ "latest", "main" ]
jobs:
  build:
    runs-on: ubuntu-latest
    strategy:
      matrix:
        solution:
          - '**/*.slnx'
    steps:
    - name: Checkout repository
      uses: actions/checkout@v4
      with:
        fetch-depth: 0
    - name: Setup .NET
      uses: actions/setup-dotnet@v3
      with:
        dotnet-version: 9.0.x
    - name: Restore dependencies
      run: dotnet restore ${{ matrix.solution }} -s https://api.nuget.org/v3/index.json
    - name: Build
      run: dotnet build ${{ matrix.solution }} --configuration Release --no-restore


================================================
FILE: .github/workflows/test.yml
================================================
name: Build and Test
on:
  push:
    branches: [ "latest", "main" ]
  pull_request:
    branches: [ "latest", "main" ]
jobs:
  build:
    runs-on: ${{ matrix.os }}
    strategy:
      matrix:
        os: [ubuntu-latest, windows-latest]
    steps:
    - uses: actions/checkout@v4
      with:
        fetch-depth: 0
    - name: Setup .NET
      uses: actions/setup-dotnet@v4
      with:
        dotnet-version: 9.0.x
    - name: Restore dependencies
      run: dotnet restore -s https://api.nuget.org/v3/index.json
    - name: Build
      run: dotnet build --no-restore
    - name: Test
      run: dotnet test --no-build --verbosity normal


================================================
FILE: .gitignore
================================================
/**/*.user
/**/*.cache
/**/*.user.json
/**/*.nupkg
/**/obj/**
/**/.vs
/**/bin/**
/**/pki/**
/**/csx/**
/**/ecf/**
/**/*.log
/**/*.err
/**/*.sdf
/**/*.rsa
/**/*.opendb
/**/*.opensdf
/**/*.vc.db
/.vscode/**
/build/**
*.sarif
*.dll
*.so
*.pdb
*.der
*.pfx
*.exe
/src/out
/src/Logs
/_tmpout/**
/TestResults/**
/**/TestResults/**
/**/packages/**
/**/appsettings.*.json
.env
*.crt
*.key
*.user
*.cache
CodeCoverage
coverage.cobertura.xml
/api/csharp-api/api/*.yml
/api/csharp-api/api/*.manifest
/api/csharp-api/_site
node_modules
.sonarqube/**


================================================
FILE: .mcp.json
================================================
{
    "inputs": [
        {
            "id": "github_pat",
            "description": "GitHub personal access token",
            "type": "promptString",
            "password": true
        }
    ],
    "servers": {
        "microsoft.docs.mcp": {
            "type": "http",
            "url": "https://learn.microsoft.com/api/mcp"
        },
        "github": {
            "type": "stdio",
            "command": "docker",
            "args": [
                "run",
                "-i",
                "--rm",
                "-e",
                "GITHUB_PERSONAL_ACCESS_TOKEN",
                "ghcr.io/github/github-mcp-server"
            ],
            "env": {
                "GITHUB_PERSONAL_ACCESS_TOKEN": "${input:github_pat}"
            }
        }
    }
}


================================================
FILE: .sscignore
================================================
{ "cfs": ["CFS0001", "CFS0013"] }

================================================
FILE: CODEOWNERS
================================================
# Always ensure to include industrial-iot-pr for every item that follows.
* @Azure/industrial-iot-pr

# Only exception is doc updates
/docs/ @Azure/azure-industrial-iot


================================================
FILE: Industrial-IoT.slnx
================================================
<Solution>
  <Configurations>
    <Platform Name="Any CPU" />
    <Platform Name="x64" />
  </Configurations>
  <Folder Name="/Solution Items/">
    <File Path=".editorconfig" />
  </Folder>
  <Folder Name="/src/">
    <Project Path="src/Azure.IIoT.OpcUa.Publisher.Models/src/Azure.IIoT.OpcUa.Publisher.Models.csproj" />
    <Project Path="src/Azure.IIoT.OpcUa.Publisher.Module/src/Azure.IIoT.OpcUa.Publisher.Module.csproj" />
    <Project Path="src/Azure.IIoT.OpcUa.Publisher.Sdk/src/Azure.IIoT.OpcUa.Publisher.Sdk.csproj" />
    <Project Path="src/Azure.IIoT.OpcUa.Publisher.Testing/src/Azure.IIoT.OpcUa.Publisher.Testing.Servers.csproj" />
    <Project Path="src/Azure.IIoT.OpcUa.Publisher.Testing/tests/Azure.IIoT.OpcUa.Publisher.Testing.csproj" />
    <Project Path="src/Azure.IIoT.OpcUa.Publisher/src/Azure.IIoT.OpcUa.Publisher.csproj" />
    <Project Path="src/Azure.IIoT.OpcUa/src/Azure.IIoT.OpcUa.csproj" />
  </Folder>
  <Folder Name="/tests/">
    <Project Path="src/Azure.IIoT.OpcUa.Publisher.Models/tests/Azure.IIoT.OpcUa.Publisher.Models.Tests.csproj" />
    <Project Path="src/Azure.IIoT.OpcUa.Publisher.Module/tests/Azure.IIoT.OpcUa.Publisher.Module.Tests.csproj" />
    <Project Path="src/Azure.IIoT.OpcUa.Publisher/tests/Azure.IIoT.OpcUa.Publisher.Tests.csproj" />
    <Project Path="src/Azure.IIoT.OpcUa/tests/Azure.IIoT.OpcUa.Tests.csproj" />
  </Folder>
  <Folder Name="/tools/">
    <Project Path="src/Azure.IIoT.OpcUa.Publisher.Module/cli/Azure.IIoT.OpcUa.Publisher.Module.Cli.csproj" />
    <Project Path="src/Azure.IIoT.OpcUa.Publisher.Testing/cli/Azure.IIoT.OpcUa.Publisher.Testing.Cli.csproj" />
  </Folder>
</Solution>


================================================
FILE: LICENSE
================================================
    MIT License

    Copyright (c) Microsoft Corporation. All rights reserved.

    Permission is hereby granted, free of charge, to any person obtaining a copy
    of this software and associated documentation files (the "Software"), to deal
    in the Software without restriction, including without limitation the rights
    to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
    copies of the Software, and to permit persons to whom the Software is
    furnished to do so, subject to the following conditions:

    The above copyright notice and this permission notice shall be included in all
    copies or substantial portions of the Software.

    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
    IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
    FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
    AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
    LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
    OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
    SOFTWARE


================================================
FILE: NOTICE
================================================
NOTICES AND INFORMATION
Do Not Translate or Localize

This software incorporates material from third parties.
Microsoft makes certain open source code available at https://3rdpartysource.microsoft.com,
or you may send a check or money order for US $5.00, including the product name,
the open source component name, platform, and version number, to:

Source Code Compliance Team
Microsoft Corporation
One Microsoft Way
Redmond, WA 98052
USA

Notwithstanding any other terms, you may reverse engineer this software to the extent
required to debug changes to any libraries licensed under the GNU Lesser General Public License.

---------------------------------------------------------

As an OPC Foundation Corporate Member, Microsoft distributes any code dual licensed under the RCL or GPLv2 license, under the RCL license.

---------------------------------------------------------

OPCFoundation.NetStandard.Opc.Ua.Core 1.4.368.58 - OTHER


https://opcfoundation.org/license/redistributables/1.3/

Copyright, OPC Foundation

OPC REDISTRIBUTABLES Agreement of Use
Version 1.3, February 06, 2017, OPC Foundation
The terms and conditions of the Agreement apply to the Software Deliverables including without limitation any OPC Foundation: 
updates,
supplements
Internet-based services, and
support services
for the Software Deliverables, unless OPC Foundation specifies that any other terms accompany such items, in which case the alternate terms specified by OPC Foundation would apply.

BY USING THE SOURCE DELIVERABLES, YOU ACCEPT THE TERMS OF THIS AGREEMENT. IF YOU DO NOT ACCEPT THE TERMS OF THIS AGREEMENT, DO NOT USE THE SOFTWARE DELIVERABLES.
If you comply with this Agreement, you have the rights below.
1. INSTALLATION AND USE RIGHTS.
You may install and use any number of copies of the Software Deliverables.
2. ADDITIONAL LICENSING REQUIREMENTS AND/OR USE RIGHTS.
Distributable Code. The Software Deliverables contain compiled code that you are permitted to distribute with programs you develop if you comply with the terms below.
Right to Use and Distribute.
You may copy and distribute all files that are part of this Software Deliverables.
Third Party Distribution. You may permit distributors of your programs to copy and distribute the Software Deliverables as part of those programs.
Distribution Requirements. For any Software Deliverables you distribute, you must:
add significant primary functionality to it in your programs;
require distributors and external end users to agree to terms that protect it at least as much as this Agreement;
display your valid copyright notice on your programs; and
indemnify, defend, and hold harmless the OPC Foundation from any claims, including attorneys’ fees, related to the distribution or use of your programs.
Distribution Restrictions. You may not:
alter any copyright, trademark or patent notice in the Software Deliverables;
use the OPC Foundation’s trademarks in your programs’ names or in a way that suggests your programs come from or are endorsed by the OPC Foundation;
include Software Deliverables in malicious, deceptive or unlawful programs;
modify or distribute the source code of any Software Deliverables so that any part of it becomes subject to an Excluded License. An Excluded License is one that requires, as a condition of use, modification or distribution, that (1). the code be disclosed or distributed in source code form; or (2) permit or otherwise allow others to have the right to modify such Software Deliverables; or
create additional software components that directly link or directly load the Software Deliverables without accepting the corresponding source license for that Software Deliverable.
3. SCOPE OF LICENSE.
The Software Deliverables are licensed, not sold. This Agreement only gives you some rights to use the Software Deliverables. The OPC Foundation reserves all other rights. Unless applicable law gives you more rights despite this limitation, you may use the software only as expressly permitted in this Agreement. In doing so, you must comply with any technical limitations in the Software Deliverables that only allow you to use it in certain ways. You may not:
disclose the results of any benchmark tests of the Software Deliverables to any third party without OPC Foundation’s prior written approval;
work around any technical limitations in the Software Deliverables;
reverse engineer, decompile or disassemble the Software Deliverables, except and only to the extent that applicable law expressly permits, despite this limitation;
make more copies of the Software Deliverables than specified in this Agreement or allowed by applicable law, despite this limitation;
publish the Software Deliverables for others to copy; or
rent, lease or lend the Software Deliverables.
4. BACKUP COPY.
You may make one backup copy of the Software Deliverables. You may use such copy only to reinstall the Software.
5. DOCUMENTATION.
Any person that has valid access to your computer or internal network may copy and use the documentation related to the Software Deliverables for your internal reference purposes.
6. EXPORT RESTRICTIONS.
The Software Deliverables are subject to United States export laws and regulations. You must comply with all domestic and international export laws and regulations that apply to the Software Deliverables. These laws include restrictions on destinations, end users and end use.
7. SUPPORT SERVICES.
Because you accept the Software3 Deliverables from OPC Foundation “as is,” OPC Foundation may not provide support services for it.
8. ENTIRE AGREEMENT.
This Agreement, and the terms for supplements, updates, Internet-based services and support services that you use, are the entire Agreement for the Software Deliverables and support services.
10. LEGAL EFFECT
This Agreement describes certain legal rights. You may have other rights under the laws of your country. This Agreement does not change your rights under the laws of your country if the laws of your country do not permit it to do so.
11. DISCLAIMER OF WARRANTY.
THE SOFTWARE DELIVERABLES ARE LICENSED “AS-IS.” YOU BEAR THE RISK OF USING THE SPECIFICATIONS. THE OPC FOUNDATION MAKES NO WARRANTY OF ANY KIND, EXPRESSED OR IMPLIED, WITH REGARD TO THE SOFTWARE DELIVERABLES, INCLUDING BUT NOT LIMITED TO ANY WARRANTY OF TITLE OR OWNERSHIP, IMPLIED WARRANTY OF MERCHANTABILITY, OR WARRANTY OF FITNESS FOR A PARTICULAR PURPOSE OR USE.YOU MAY HAVE ADDITIONAL CONSUMER RIGHTS UNDER YOUR LOCAL LAWS THAT THIS AGREEMENT CANNOT CHANGE. TO THE EXTENT PERMITTED UNDER YOUR LOCAL LAWS, THE OPC FOUNDATION EXCLUDES THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
IN NO EVENT SHALL THE OPC FOUNDATION BE LIABLE FOR ERRORS CONTAINED IN THE SOURCE DELIVERABLES OR FOR DIRECT, INDIRECT, INCIDENTAL, SPECIAL, CONSEQUENTIAL, RELIANCE OR COVER DAMAGES, INCLUDING LOSS OF PROFITS, REVENUE, DATA, OR USE, INCURRED BY ANY USER OR ANY THIRD PARTY IN CONNECTION WITH THE FURNISHING, PERFORMANCE, OR USE OF THE SOFTWARE DELIVERABLES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE USING THE SOFTWARE DELIVERABLES IS BORNE BY YOU AND/OR THE USER.

---------------------------------------------------------

https://opcfoundation.org/license/source/1.11/index.html


      License information for OPC Source Deliverables


        A. Introduction

The OPC Foundation provides source code as sample code/reference
implementation. The source code is provided as-is, with no warranty,
support, or misrepresentation of the quality of code.

The OPC Foundation provides communication stacks, sample libraries,
sample applications and utilities. All sources are available either as a
downloadable ZIP file or in a repository on github
(https://github.com/OPCFoundation/ <https://github.com/OPCFoundation/>).


        B. License models

The OPC Foundation provides different licenses depending on the
component and on the membership status of the user of the sources. A
single ZIP file or a single repository can contain multiple components
where the sources have different license models. The valid license is in
the header of each source file.

Following are basic rules on how the OPC Foundation licenses the
different components:

 1. OPC UA core components (OPC UA Stacks, OPC UA Local Discovery Server
    - LDS) follow a dual-license model:
      * *OPC Foundation Corporate Members*: RCL
        <https://opcfoundation.org/license/rcl.html>
        enables OPC Foundation corporate members to deploy their
        applications using the core component sources without being
        required to disclose the application code.
         
      * *Users that are not OPC Foundation corporate-members*: GPL 2.0
        <https://opcfoundation.org/license/gpl.html>
        Based on the GPL 2.0 license terms these users must disclose
        their application code when using the core component sources.
         
 2. Samples and Utilities:
    All samples and most of the utilities are provided under the MIT
    license <https://opcfoundation.org/license/mit.html> for OPC
    Foundation Members and Non-Members.

---------------------------------------------------------

https://opcfoundation.org/license/rcl.html

      RCL License

Reciprocal Community License 1.00 (RCL1.00)
Version 1.00, June 24, 2009
Copyright (C) 2008,2009 OPC Foundation, Inc., All Rights Reserved.

PREAMBLE

The Reciprocal Community License (RCL) is based on the concept of
reciprocity or, if you prefer, fairness.

The RCL is adapted from the Open Source Reciprocal Public License (RPL)
where the “Public” in the Open Source RPL license is replaced by the
“Community” in the RCL License. In short, the RPL license grew out of a
desire to close loopholes in previous open source licenses, loopholes
that allowed parties to acquire open source software and derive
financial benefit from it without having to release their improvements
or derivatives to the community which enabled them. This occurred any
time an entity did not release their application to a "third party".
While there is a certain freedom in this model of licensing, it struck
the authors of the RPL as being unfair to the open source community at
large and to the original authors of the works in particular. After all,
bug fixes, extensions, and meaningful and valuable derivatives were not
consistently faster, growth and expansion of the overall open source
software base.

While you should clearly read and understand the entire license, the
essence of the RCL is found in two definitions: "Deploy" and "Required
Components".

Regarding deployment, under the RCL your changes, bug fixes, extensions,
etc. must be made available to the community when you Deploy in any form
-- either internally or to an outside party.

Once you start running the software you have to start sharing the
software. Further, under the RCL all derivative work components you
author including schemas, scripts, source code, documentation, etc. --
must be shared. You have to share the whole pie, not an isolated slice
of it. The authored components you must share are confined to the
original module licensed (e.g. SDK, stack, wrapper, proxy, utility,
etc.). You do not need to share any additional authored components that
you create that utilize the licensed component. This license is meant to
be friendly to commercial software vendors that must protect the IP in
their code. You are not expected to share your proprietary source code
that makes use of the module(s) licensed under this agreement.

The specific terms and conditions of the license are defined in the
remainder of this document.

1 LICENSE TERMS
1.1 General; Applicability & Definitions. This Reciprocal Community
License Version 1.00 ("License") applies to any programs or other works
as well as any and all updates or maintenance releases of said programs
or works ("Software") not already covered by this License which the
Software copyright holder ("Licensor") makes available containing a
License Notice (hereinafter defined) from the Licensor specifying or
allowing use or distribution under the terms of this License. As used in
this License:
1.2 "Contributor" means any person or entity who created or contributed
to the creation of an Extension.
1.3 "Deploy" means to use, Serve, sublicense or distribute Licensed
Software other than for Your internal Research and/or Personal Use, and
includes without limitation, any and all internal use or distribution of
Licensed Software within Your business or organization other than for
Research and/or Personal Use, as well as direct or indirect sublicensing
or distribution of Licensed Software by You to any third party.
1.4 "Derivative Works" as used in this License is defined under U.S.
copyright law.
1.5 "Extensions" means any Modifications, Derivative Works, or Required
Components as those terms are defined in this License.
1.6 "License" means this Reciprocal Community License.
1.7 "License Notice" means any notice contained in EXHIBIT A.
1.8 "Licensed Software" means any Software licensed pursuant to this
License. Licensed Software also includes all previous Extensions from
any Contributor that You receive.
1.9 "Licensor" means the copyright holder of any Software previously not
covered by this License who releases the Software under the terms of
this License.
1.10 "Modifications" means any additions to or deletions from the
substance or structure of (i) a file containing Licensed Software, or
(ii) any new file that contains any part of Licensed Software.
1.11 "Original Licensor" means the Licensor that is the copyright holder
of the original work. For this license the Original Licensor is always
the OPC Foundation.
1.12 "Personal Use" means use of Licensed Software by an individual
solely for his or her personal, private and non-commercial purposes.
An individual's use of Licensed Software in his or her capacity as an
officer, employee, member, independent contractor or agent of a
corporation, business or organization (commercial or non-commercial)
does not qualify as Personal Use.
1.13 "Required Components" means any text, programs, scripts, schema,
interface definitions, control files, or other works created by You
which are required by a third party of average skill to successfully
install and run Licensed Software containing Your Modifications, or to
install and run Your Derivative Works. Required Components by this
definition are the supporting works that are necessary to utilize your
Modifications and Derivative Works. This does not include your
applications and supporting works that utilize the Licensed Software.
1.14 "Research" means investigation or experimentation for the purpose
of understanding the nature and limits of the Licensed Software and its
potential uses.
1.15 "Serve" means to deliver Licensed Software and/or Your Extensions
by means of a computer network to one or more computers for purposes of
execution of Licensed Software and/or Your Extensions.
1.16 "Software" means any computer programs or other works as well as
any updates or maintenance releases of those programs or works which are
distributed publicly by Licensor.
1.17 "Source Code" means the preferred form for making modifications to
the Licensed Software and/or Your Extensions, including all modules
contained therein, plus any associated text, interface definition files,
scripts used to control compilation and installation of an executable
program or other components required by a third party of average skill
to build a running version of the Licensed Software or Your Extensions.
1.18 "User-Visible Attribution Notice" means any notice contained in
EXHIBIT B.
1.19 "You" or "Your" means an individual or a legal entity exercising
rights under this License. For legal entities, "You" or "Your" includes
any entity which controls, is controlled by, or is under common control
with, You, where "control" means (a) the power, direct or indirect, to
cause the direction or management of such entity, whether by contract or
otherwise, or (b) ownership of fifty percent (50%) or more of the
outstanding shares or beneficial ownership of such entity.

2.0 Acceptance Of License. You are not required to accept this License
since you have not signed it, however nothing else grants you permission
to use, copy, distribute, modify, or create derivatives of either the
Software or any Extensions created by a Contributor. These actions are
prohibited by law if you do not accept this License. Therefore, by
performing any of these actions You indicate Your acceptance of this
License and Your agreement to be bound by all its terms and conditions.
IF YOU DO NOT AGREE WITH ALL THE TERMS AND CONDITIONS OF THIS LICENSE DO
NOT USE, MODIFY, CREATE DERIVATIVES, OR DISTRIBUTE THE SOFTWARE. IF IT
IS IMPOSSIBLE FOR YOU TO COMPLY WITH ALL THE TERMS AND CONDITIONS OF
THIS LICENSE THEN YOU CAN NOT USE, MODIFY, CREATE DERIVATIVES, OR
DISTRIBUTE THE SOFTWARE.

3.0 Grant of License From Licensor. Subject to the terms and conditions
of this License, Licensor hereby grants You a world-wide, royalty-free,
non- exclusive license, subject to Licensor's intellectual property
rights, and any third party intellectual property claims derived from
the Licensed Software under this License, to do the following:

3.1 Use, reproduce, modify, display, and perform Licensed Software and
Your Extensions in both Source Code form or as an executable program.
You may also sublicense and distribute Licensed Software and Your
Extensions as an executable program. OPC Foundation Corporate Members
may also sublicense and distribute Licensed Software and Your Extensions
in Source Code form.

3.2 Create Derivative Works (as that term is defined under U.S.
copyright law) of Licensed Software.

3.3 Under claims of patents now or hereafter owned or controlled by
Licensor, to make, use, have made, and/or otherwise dispose of Licensed
Software or portions thereof, but solely to the extent that any such
claim is necessary to enable You to make, use, have made, and/or
otherwise dispose of Licensed Software or portions thereof.

3.4 Licensor reserves the right to release new versions of the Software
with different features, specifications, capabilities, functions,
licensing terms, general availability or other characteristics. Title,
ownership rights, and intellectual property rights in and to the
Licensed Software shall remain in Licensor and/or its Contributors.

4.0 Grant of License From Contributor. By application of the provisions
in Section 6 below, each Contributor hereby grants You a world-wide,
royalty- free, non-exclusive license, subject to said Contributor's
intellectual property rights, and any third party intellectual property
claims derived from the Licensed Software under this License, to do the
following:

4.1 Use, reproduce, modify, display and perform any Extensions Deployed
by such Contributor or portions thereof, in both Source Code form or as
an executable program, either on an unmodified basis or as part of
Derivative Works. You may also sublicense and distribute Extensions
Deployed by such Contributor or portions thereof, as an executable
program. OPC Foundation Corporate Members may also sublicense and
distribute Extensions Deployed by such Contributor or portions
thereof,in Source Code form.

4.2 Under claims of patents now or hereafter owned or controlled by
Contributor, to make, use, have made, and/or otherwise dispose of
Extensions or portions thereof, but solely to the extent that any such
claim is necessary to enable You to make, use, have made, and/or
otherwise dispose of Licensed Software or portions thereof.

5.0 Exclusions From License Grant. Nothing in this License shall be
deemed to grant any rights to trademarks, copyrights, patents, trade
secrets or any other intellectual property of Licensor or any
Contributor except as expressly stated herein. Except as expressly
stated in Sections 3 and 4, no other patent rights, express or implied,
are granted herein. Your Extensions may require additional patent
licenses from Licensor or Contributors which each may grant in its sole
discretion. No right is granted to the trademarks of Licensor or any
Contributor even if such marks are included in the Licensed Software.
Nothing in this License shall be interpreted to prohibit Licensor from
licensing under different terms from this License any code that Licensor
otherwise would have a right to license.

5.1 You expressly acknowledge and agree that although Licensor and each
Contributor grants the licenses to their respective portions of the
Licensed Software set forth herein, no assurances are provided by
Licensor or any Contributor that the Licensed Software does not infringe
the patent or other intellectual property rights of any other entity.
Licensor and each Contributor disclaim any liability to You for claims
brought by any other entity based on infringement of intellectual
property rights or otherwise. As a condition to exercising the rights
and licenses granted hereunder, You hereby assume sole responsibility to
secure any other intellectual property rights needed, if any. For
example, if a third party patent license is required to allow You to
distribute the Licensed Software, it is Your responsibility to acquire
that license before distributing the Licensed Software.

6.0 Your Obligations And Grants. In consideration of, and as an express
condition to, the licenses granted to You under this License You hereby
agree that any Modifications, Derivative Works, or Required Components
(collectively Extensions) that You create or to which You contribute are
governed by the terms of this License including, without limitation,
Section 4. Any Extensions that You create or to which You contribute
must be Deployed under the terms of this License or a future version of
this License released under Section 7. You hereby grant to Licensor and
all third parties a world-wide, non-exclusive, royalty-free license
under those intellectual property rights You own or control to use,
reproduce, display, perform, modify, create derivatives, sublicense, and
distribute Licensed Software, in any form. Any Extensions You make and
Deploy must have a distinct title so as to readily tell any subsequent
user or Contributor that the Extensions are by You. You must include a
copy of this License or directions on how to obtain a copy with every
copy of the Extensions You distribute. You agree not to offer or impose
any terms on any Source Code or executable version of the Licensed
Software, or its Extensions that alter or restrict the applicable
version of this License or the recipients' rights hereunder.
Additionally, you herby grant to the Original Licensor the right to use,
reproduce, display, perform, modify, create derivatives, sublicense, and
distribute Licensed Software, in any form, under the terms of this
license and/or any other license terms it sees fit.

6.1 Availability of Source Code. You must make available, under the
terms of this License, the Source Code of any Extensions that You
Deploy, by uploading the Source Code directly to the website of the
Original Licensor. The Source Code for any version that You Deploy must
be made available within one (1) month of when you Deploy. You may not
charge a fee for any copy of the Source Code distributed under this
Section. At the sole discretion of the Original Licensor, some or all of
Your contributed Source Code may be included in a future baseline
version released by the Original Licensor.

6.2 Description of Modifications. You must cause any Modifications that
You create or to which You contribute to be documented in the Source
Code, clearly describing the additions, changes or deletions You made.
You must include a prominent statement that the Modifications are
derived, directly or indirectly, from the Licensed Software and include
the names of the Licensor and any Contributor to the Licensed Software
in (i) the Source Code and (ii) in any notice displayed by the Licensed
Software You distribute or in related documentation in which You
describe the origin or ownership of the Licensed Software. You may not
modify or delete any pre-existing copyright notices, change notices or
License text in the Licensed Software without written permission of the
respective Licensor or Contributor.

6.3 Intellectual Property Matters.
a. Third Party Claims. If You have knowledge that a license to a third
party's intellectual property right is required to exercise the rights
granted by this License, You must include a human-readable file with
Your distribution that describes the claim and the party making the
claim in sufficient detail that a recipient will know whom to contact.
b. Contributor APIs. If Your Extensions include an application
programming interface ("API") and You have knowledge of patent licenses
that are reasonably necessary to implement that API, You must also
include this information in a human-readable file supplied with Your
distribution.
c. Representations. You represent that, except as disclosed pursuant to
6.3(a) above, You believe that any Extensions You distribute are Your
original creations and that You have sufficient rights to grant the
rights conveyed by this License.

6.4 Required Notices.

a. License Text. You must duplicate this License or instructions on how
to acquire a copy in any documentation You provide along with the Source
Code of any Extensions You create or to which You contribute, wherever
You describe recipients' rights relating to Licensed Software.

b. License Notice. You must duplicate any notice contained in EXHIBIT A
(the "License Notice") in each file of the Source Code of any copy You
distribute of the Licensed Software and Your Extensions. If You create
an Extension, You may add Your name as a Contributor to the Source Code
and accompanying documentation along with a description of the
contribution. If it is not possible to put the License Notice in a
particular Source Code file due to its structure, then You must include
such License Notice in a location where a user would be likely to look
for such a notice.

c. User-Visible Attribution. You must duplicate any notice contained in
EXHIBIT B (the "User-Visible Attribution Notice") in each user-visible
display of the Licensed Software and Your Extensions which delineates
copyright, ownership, or similar attribution information. If You create
an Extension, You may add Your name as a Contributor, and add Your
attribution notice, as an equally visible and functional element of any
User-Visible Attribution Notice content. To ensure proper attribution,
You must also include such User-Visible Attribution Notice in at least
one location in the Software documentation where a user would be likely
to look for such notice.

6.5 Additional Terms. You may choose to offer, and charge a fee for,
warranty, support, indemnity or liability obligations to one or more
recipients of Licensed Software. However, You may do so only on Your own
behalf, and not on behalf of the Licensor or any Contributor except as
permitted under other agreements between you and Licensor or
Contributor. You must make it clear that any such warranty, support,
indemnity or liability obligation is offered by You alone, and You
hereby agree to indemnify the Licensor and every Contributor for any
liability plus attorney fees, costs, and related expenses due to any
such action or claim incurred by the Licensor or such Contributor as a
result of warranty, support, indemnity or liability terms You offer.

6.6 Conflicts With Other Licenses. Where any portion of Your Extensions,
by virtue of being Derivative Works of another product or similar
circumstance, fall under the terms of another license, the terms of that
license should be honored however You must also make Your Extensions
available under this License. If the terms of this License continue to
conflict with the terms of the other license you may write the Licensor
for permission to resolve the conflict in a fashion that remains
consistent with the intent of this License. Such permission will be
granted at the sole discretion of the Licensor.

7.0 Versions of This License. Licensor may publish from time to time
revised versions of the License. Once Licensed Software has been
published under a particular version of the License, You may always
continue to use it under the terms of that version. You may also choose
to use such Licensed Software under the terms of any subsequent version
of the License published by Licensor. No one other than Licensor has the
right to modify the terms applicable to Licensed Software created under
this License.

7.1 If You create or use a modified version of this License, which You
may do only in order to apply it to software that is not already
Licensed Software under this License, You must rename Your license so
that it is not confusingly similar to this License, and must make it
clear that Your license contains terms that differ from this License. In
so naming Your license, You may not use any trademark of Licensor or of
any Contributor. Should Your modifications to this License be limited to
alteration of a) Section 13.8 solely to modify the legal Jurisdiction or
Venue for disputes, b) EXHIBIT A solely to define License Notice text,
or c) to EXHIBIT B solely to define a User-Visible Attribution Notice,
You may continue to refer to Your License as the Reciprocal Community
License or simply the RCL.

8.0 Disclaimer of Warranty. LICENSED SOFTWARE IS PROVIDED UNDER THIS
LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTY OF ANY KIND, EITHER
EXPRESS OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT THE
LICENSED SOFTWARE IS FREE OF DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR
PURPOSE OR NON-INFRINGING. FURTHER THERE IS NO WARRANTY MADE AND ALL
IMPLIED WARRANTIES ARE DISCLAIMED THAT THE LICENSED SOFTWARE MEETS OR
COMPLIES WITH ANY DESCRIPTION OF PERFORMANCE OR OPERATION, SAID
COMPATIBILITY AND SUITABILITY BEING YOUR RESPONSIBILITY. LICENSOR
DISCLAIMS ANY WARRANTY, IMPLIED OREXPRESSED,THAT ANY CONTRIBUTOR'S
EXTENSIONS MEET ANY STANDARD OF COMPATIBILITY OR DESCRIPTION OF
PERFORMANCE. THE ENTIRE RISK AS TO THE QUALITY ANDPERFORMANCE OF THE
LICENSED SOFTWARE IS WITH YOU. SHOULD LICENSED SOFTWARE PROVE DEFECTIVE
IN ANY RESPECT, YOU (AND NOT THE LICENSOR OR ANY OTHER CONTRIBUTOR)
ASSUME THE COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. UNDER
THE TERMS OF THIS LICENSOR WILL NOT SUPPORT THIS SOFTWARE AND IS UNDER
NO OBLIGATION TO ISSUE UPDATES TO THIS SOFTWARE. LICENSOR HAS NO
KNOWLEDGE OF ERRANT CODE OR VIRUS IN THIS SOFTWARE, BUT DOES NOT WARRANT
THAT THE SOFTWARE IS FREE FROM SUCH ERRORS OR VIRUSES. THIS DISCLAIMER
OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF
LICENSED SOFTWARE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER.

9.0 Limitation of Liability. UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL
THEORY, WHETHER TORT (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE,
SHALL THE LICENSOR, ANY CONTRIBUTOR, OR ANY DISTRIBUTOR OF LICENSED
SOFTWARE, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY
PERSON FOR ANY INDIRECT,SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF
ANY CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF
GOODWILL, WORK STOPPAGE, COMPUTERFAILURE OR MALFUNCTION, OR ANY AND ALL
OTHER COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN
INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF
LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY
RESULTING FROM SUCH PARTY'S NEGLIGENCE TO THE EXTENTAPPLICABLE LAW
PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION
OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THISEXCLUSION
AND LIMITATION MAY NOT APPLY TO YOU.

10.0 Restricted Rights Legend. This Specification is provided with
Restricted Rights. Use, duplication or disclosure by the U.S. government
is subject to restrictions as set forth in (a) this Agreement pursuant
to DFARs 227.7202-3(a); (b) subparagraph (c)(1)(i) of the Rights in
Technical Data and Computer Software clause at DFARs 252.227-7013; or
(c) the Commercial Computer Software Restricted Rights clause at FAR
52.227-19 subdivision (c)(1) and (2), as applicable. Contractor /
manufacturer are the OPC Foundation,. 16101 N. 82nd Street, Suite 3B,
Scottsdale, AZ, 85260-1830 11.0 Responsibility for Claims. As between
Licensor and Contributors, each party is responsible for claims and
damages arising, directly or indirectly, out of its utilization of
rights under this License which specifically disclaims warranties and
limits any liability of the Licensor. This paragraph is to be used in
conjunction with and controlled by the Disclaimer Of Warranties of
Section 8, the Limitation Of Damages in Section 9, and the disclaimer
against use for High Risk Activities in Section 10. The Licensor has
thereby disclaimed all warranties and limited any damages that it is or
may be liable for. You agree to work with Licensor and Contributors to
distribute such responsibility on an equitable basis consistent with the
terms of this License including Sections 8, 9, and 10. Nothing herein is
intended or shall be deemed to constitute any admission of liability.

12.0 Termination. This License and all rights granted hereunder will
terminate immediately in the event of the circumstances described in
Section 136 or if applicable law prohibits or restricts You from fully
and or specifically complying with Sections 3, 4 and/or 6, or prevents
the enforceability of any of those Sections, and You must immediately
discontinue any use of Licensed Software.

12.1 Automatic Termination Upon Breach. This License and the rights
granted hereunder will terminate automatically if You fail to comply
with the terms herein and fail to cure such breach within thirty (30)
days of becoming aware of the breach. All sublicenses to the Licensed
Software that are properly granted shall survive any termination of this
License. Provisions that, by their nature, must remain in effect beyond
the termination of this License, shall survive.

12.2 Termination Upon Assertion of Patent Infringement. If You initiate
litigation by asserting a patent infringement claim (excluding
declaratory judgment actions) against Licensor or a Contributor
(Licensor or Contributor against whom You file such an action is
referred to herein as "Respondent") alleging that Licensed Software
directly or indirectly infringes any patent, then any and all rights
granted by such Respondent to You under Sections 3 or 4 of this License
shall terminate prospectively upon sixty (60) days notice from
Respondent (the "Notice Period") unless within that Notice Period You
either agree in writing (i) to pay Respondent a mutually agreeable
reasonably royalty for Your past or future use of Licensed Software made
by such Respondent, or (ii) withdraw Your litigation claim with respect
to Licensed Software against such Respondent. If within said Notice
Period a reasonable royalty and payment arrangement are not mutually
agreed upon in writing by the parties or the litigation claim is not
withdrawn, the rights granted by Licensor to You under Sections 3 and 4
automatically terminate at the expiration of said Notice Period.

12.3 Reasonable Value of This License. If You assert a patent
infringement claim against Respondent alleging that Licensed Software
directly or indirectly infringes any patent where such claim is resolved
(such as by license or settlement) prior to the initiation of patent
infringement litigation, then the reasonable value of the licenses
granted by said Respondent under Sections 3 and 4 shall be taken into
account in determining the amount or value of any payment or license.

12.4 No Retroactive Effect of Termination. In the event of termination
under this Section all end user license agreements (excluding licenses
to distributors and resellers) that have been validly granted by You or
any distributor hereunder prior to termination shall survive termination.

13.0 Miscellaneous.

13.1 U.S. Government End Users. The Licensed Software is a "commercial
item," as that term is defined in 48 C.F.R. 2.101 (Oct. 1995),
consisting of "commercial computer software" and "commercial computer
software documentation," as such terms are used in 48 C.F.R. 12.212
(Sept. 1995). Consistent with 48 C.F.R. 12.212 and 48 C.F.R. 227.7202-1
through 227.7202-4 (June 1995), all U.S. Government End Users acquire
Licensed Software with only those rights set forth herein.

13.2 Relationship of Parties. This License will not be construed as
creating an agency, partnership, joint venture, or any other form of
legal association between or among You, Licensor, or any Contributor,
and You will not represent to the contrary, whether expressly, by
implication, appearance, or otherwise.

13.3 Independent Development. Nothing in this License will impair
Licensor's right to acquire, license, develop, subcontract, market, or
distribute technology or products that perform the same or similar
functions as, or otherwise compete with, Extensions that You may
develop, produce, market, or distribute.

13.4 Consent To Breach Not Waiver. Failure by Licensor or Contributor to
enforce any provision of this License will not be deemed a waiver of
future enforcement of that or any other provision.

13.5 Severability. This License represents the complete agreement
concerning the subject matter hereof. If any provision of this License
is held to be unenforceable, such provision shall be reformed only to
the extent necessary to make it enforceable.

13.6 Inability to Comply Due to Statute or Regulation. If it is
impossible for You to comply with any of the terms of this License with
respect to some or all of the Licensed Software due to statute, judicial
order, or regulation, then You cannot use, modify, or distribute the
software.

13.7 Export Restrictions. You may be restricted with respect to
downloading or otherwise acquiring, exporting, or reexporting the
Licensed Software or any underlying information or technology by United
States and other applicable laws and regulations. By downloading or by
otherwise obtaining the Licensed Software, You are agreeing to be
responsible for compliance with all applicable laws and regulations.

13.8 Arbitration, Jurisdiction & Venue. This License shall be governed
by Minnesota law provisions (except to the extent applicable law, if
any, provides otherwise), excluding its conflict-of-law provisions. You
expressly agree that any dispute relating to this License shall be
submitted to binding arbitration under the rules then prevailing of the
American Arbitration Association. You further agree that Minnesota USA
is proper venue and grant such arbitration proceeding jurisdiction as
may be appropriate for purposes of resolving any dispute under this
License. Judgment upon any award made in arbitration may be entered and
enforced in any court of competent jurisdiction. The arbitrator shall
award attorney's fees and costs of arbitration to the prevailing party.
Should either party find it necessary to enforce its arbitration award
or seek specific performance of such award in a civil court of competent
jurisdiction, the prevailing party shall be entitled to reasonable
attorney's fees and costs. The application of the United Nations
Convention on Contracts for the International Sale of Goods is expressly
excluded. You and Licensor expressly waive any rights to a jury trial in
any litigation concerning Licensed Software or this License. Any law or
regulation that provides that the language of a contract shall be
construed against the drafter shall not apply to this License.

13.9 Entire Agreement. This License constitutes the entire agreement
between the parties with respect to the subject matter hereof.

EXHIBIT A

The License Notice below must appear in each file of the Source Code of
any copy You distribute of the Licensed Software or any Extensions thereto:

Unless explicitly acquired and licensed from Licensor under another
license, the contents of this file are subject to the Reciprocal
Community License ("RCL") Version 0.9, or subsequent versions as allowed
by the RCL, and You may not copy or use this file in either source code
or executable form, except in compliance with the terms and conditions
of the RCL.

All software distributed under the RCL is provided strictly on an "AS
IS" basis, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, AND
LICENSOR HEREBY DISCLAIMS ALL SUCH WARRANTIES, INCLUDING WITHOUT
LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
PURPOSE, QUIET ENJOYMENT, OR NON-INFRINGEMENT. See the RCL for specific
language governing rights and limitations under the RCL.

EXHIBIT B

The User-Visible Attribution Notice below, when provided, must appear in
each user-visible display as defined in Section 6.4 (c): “Portions
copyright © by OPC Foundation, Inc. and licensed under the Reciprocal
Community License (RCL)

---------------------------------------------------------

https://opcfoundation.org/license/gpl.html

                    GNU GENERAL PUBLIC LICENSE
                       Version 2, June 1991

 Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
 Everyone is permitted to copy and distribute verbatim copies
 of this license document, but changing it is not allowed.

                            Preamble

  The licenses for most software are designed to take away your
freedom to share and change it.  By contrast, the GNU General Public
License is intended to guarantee your freedom to share and change free
software--to make sure the software is free for all its users.  This
General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to
using it.  (Some other Free Software Foundation software is covered by
the GNU Lesser General Public License instead.)  You can apply it to
your programs, too.

  When we speak of free software, we are referring to freedom, not
price.  Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
this service if you wish), that you receive source code or can get it
if you want it, that you can change the software or use pieces of it
in new free programs; and that you know you can do these things.

  To protect your rights, we need to make restrictions that forbid
anyone to deny you these rights or to ask you to surrender the rights.
These restrictions translate to certain responsibilities for you if you
distribute copies of the software, or if you modify it.

  For example, if you distribute copies of such a program, whether
gratis or for a fee, you must give the recipients all the rights that
you have.  You must make sure that they, too, receive or can get the
source code.  And you must show them these terms so they know their
rights.

  We protect your rights with two steps: (1) copyright the software, and
(2) offer you this license which gives you legal permission to copy,
distribute and/or modify the software.

  Also, for each author's protection and ours, we want to make certain
that everyone understands that there is no warranty for this free
software.  If the software is modified by someone else and passed on, we
want its recipients to know that what they have is not the original, so
that any problems introduced by others will not reflect on the original
authors' reputations.

  Finally, any free program is threatened constantly by software
patents.  We wish to avoid the danger that redistributors of a free
program will individually obtain patent licenses, in effect making the
program proprietary.  To prevent this, we have made it clear that any
patent must be licensed for everyone's free use or not licensed at all.

  The precise terms and conditions for copying, distribution and
modification follow.

                    GNU GENERAL PUBLIC LICENSE
   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION

  0. This License applies to any program or other work which contains
a notice placed by the copyright holder saying it may be distributed
under the terms of this General Public License.  The "Program", below,
refers to any such program or work, and a "work based on the Program"
means either the Program or any derivative work under copyright law:
that is to say, a work containing the Program or a portion of it,
either verbatim or with modifications and/or translated into another
language.  (Hereinafter, translation is included without limitation in
the term "modification".)  Each licensee is addressed as "you".

Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope.  The act of
running the Program is not restricted, and the output from the Program
is covered only if its contents constitute a work based on the
Program (independent of having been made by running the Program).
Whether that is true depends on what the Program does.

  1. You may copy and distribute verbatim copies of the Program's
source code as you receive it, in any medium, provided that you
conspicuously and appropriately publish on each copy an appropriate
copyright notice and disclaimer of warranty; keep intact all the
notices that refer to this License and to the absence of any warranty;
and give any other recipients of the Program a copy of this License
along with the Program.

You may charge a fee for the physical act of transferring a copy, and
you may at your option offer warranty protection in exchange for a fee.

  2. You may modify your copy or copies of the Program or any portion
of it, thus forming a work based on the Program, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:

    a) You must cause the modified files to carry prominent notices
    stating that you changed the files and the date of any change.

    b) You must cause any work that you distribute or publish, that in
    whole or in part contains or is derived from the Program or any
    part thereof, to be licensed as a whole at no charge to all third
    parties under the terms of this License.

    c) If the modified program normally reads commands interactively
    when run, you must cause it, when started running for such
    interactive use in the most ordinary way, to print or display an
    announcement including an appropriate copyright notice and a
    notice that there is no warranty (or else, saying that you provide
    a warranty) and that users may redistribute the program under
    these conditions, and telling the user how to view a copy of this
    License.  (Exception: if the Program itself is interactive but
    does not normally print such an announcement, your work based on
    the Program is not required to print an announcement.)

These requirements apply to the modified work as a whole.  If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works.  But when you
distribute the same sections as part of a whole which is a work based
on the Program, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote it.

Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Program.

In addition, mere aggregation of another work not based on the Program
with the Program (or with a work based on the Program) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.

  3. You may copy and distribute the Program (or a work based on it,
under Section 2) in object code or executable form under the terms of
Sections 1 and 2 above provided that you also do one of the following:

    a) Accompany it with the complete corresponding machine-readable
    source code, which must be distributed under the terms of Sections
    1 and 2 above on a medium customarily used for software interchange; or,

    b) Accompany it with a written offer, valid for at least three
    years, to give any third party, for a charge no more than your
    cost of physically performing source distribution, a complete
    machine-readable copy of the corresponding source code, to be
    distributed under the terms of Sections 1 and 2 above on a medium
    customarily used for software interchange; or,

    c) Accompany it with the information you received as to the offer
    to distribute corresponding source code.  (This alternative is
    allowed only for noncommercial distribution and only if you
    received the program in object code or executable form with such
    an offer, in accord with Subsection b above.)

The source code for a work means the preferred form of the work for
making modifications to it.  For an executable work, complete source
code means all the source code for all modules it contains, plus any
associated interface definition files, plus the scripts used to
control compilation and installation of the executable.  However, as a
special exception, the source code distributed need not include
anything that is normally distributed (in either source or binary
form) with the major components (compiler, kernel, and so on) of the
operating system on which the executable runs, unless that component
itself accompanies the executable.

If distribution of executable or object code is made by offering
access to copy from a designated place, then offering equivalent
access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not
compelled to copy the source along with the object code.

  4. You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License.  Any attempt
otherwise to copy, modify, sublicense or distribute the Program is
void, and will automatically terminate your rights under this License.
However, parties who have received copies, or rights, from you under
this License will not have their licenses terminated so long as such
parties remain in full compliance.

  5. You are not required to accept this License, since you have not
signed it.  However, nothing else grants you permission to modify or
distribute the Program or its derivative works.  These actions are
prohibited by law if you do not accept this License.  Therefore, by
modifying or distributing the Program (or any work based on the
Program), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Program or works based on it.

  6. Each time you redistribute the Program (or any work based on the
Program), the recipient automatically receives a license from the
original licensor to copy, distribute or modify the Program subject to
these terms and conditions.  You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties to
this License.

  7. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License.  If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Program at all.  For example, if a patent
license would not permit royalty-free redistribution of the Program by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Program.

If any portion of this section is held invalid or unenforceable under
any particular circumstance, the balance of the section is intended to
apply and the section as a whole is intended to apply in other
circumstances.

It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system, which is
implemented by public license practices.  Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.

This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.

  8. If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program under this License
may add an explicit geographical distribution limitation excluding
those countries, so that distribution is permitted only in or among
countries not thus excluded.  In such case, this License incorporates
the limitation as if written in the body of this License.

  9. The Free Software Foundation may publish revised and/or new versions
of the General Public License from time to time.  Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.

Each version is given a distinguishing version number.  If the Program
specifies a version number of this License which applies to it and "any
later version", you have the option of following the terms and conditions
either of that version or of any later version published by the Free
Software Foundation.  If the Program does not specify a version number of
this License, you may choose any version ever published by the Free Software
Foundation.

  10. If you wish to incorporate parts of the Program into other free
programs whose distribution conditions are different, write to the author
to ask for permission.  For software which is copyrighted by the Free
Software Foundation, write to the Free Software Foundation; we sometimes
make exceptions for this.  Our decision will be guided by the two goals
of preserving the free status of all derivatives of our free software and
of promoting the sharing and reuse of software generally.

                            NO WARRANTY

  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
REPAIR OR CORRECTION.

  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.

                     END OF TERMS AND CONDITIONS

---------------------------------------------------------

https://opcfoundation.org/license/mit.html

MIT License

OPC Foundation MIT License 1.00

Copyright (c) 2008-2022 OPC Foundation, Inc. Permission is hereby granted, 
free of charge, to any person obtaining a copy of this software and associated 
documentation files (the "Software"), to deal in the Software without 
restriction, including without limitation the rights to use, copy, modify, 
merge, publish, distribute, sublicense, and/or sell copies of the Software, 
and to permit persons to whom the Software is furnished to do so, subject to 
the following conditions:

The above copyright notice and this permission notice shall be included in all 
copies or substantial portions of the Software. 

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 
SOFTWARE.

---------------------------------------------------------

---------------------------------------------------------

OPCFoundation.NetStandard.Opc.Ua.Client 1.4.368.58 - MIT



MIT License

Copyright (c) <year> <copyright holders>

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

---------------------------------------------------------

---------------------------------------------------------

OPCFoundation.NetStandard.Opc.Ua.Client.ComplexTypes 1.4.368.58 - MIT



MIT License

Copyright (c) <year> <copyright holders>

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

---------------------------------------------------------

---------------------------------------------------------

OPCFoundation.NetStandard.Opc.Ua.Configuration 1.4.368.58 - MIT



MIT License

Copyright (c) <year> <copyright holders>

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

---------------------------------------------------------

---------------------------------------------------------

OPCFoundation.NetStandard.Opc.Ua.Security.Certificates 1.4.368.58 - MIT



MIT License

Copyright (c) <year> <copyright holders>

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

---------------------------------------------------------

---------------------------------------------------------

OPCFoundation.NetStandard.Opc.Ua.Server 1.4.368.58 - MIT



MIT License

Copyright (c) <year> <copyright holders>

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

---------------------------------------------------------

---------------------------------------------------------

BuildBundlerMinifier 3.2.449 - Apache-2.0


Copyright 2017
Copyright James Newton-King 2008

Apache License

Version 2.0, January 2004

http://www.apache.org/licenses/ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION

   1. Definitions.

      

      "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document.

      

      "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License.

      

      "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity.

      

      "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License.

      

      "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files.

      

      "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types.

      

      "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below).

      

      "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof.

      

      "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution."

      

      "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work.

   2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form.

   3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed.

   4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions:

      (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and

      (b) You must cause any modified files to carry prominent notices stating that You changed the files; and

      (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and

      (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License.

      You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License.

   5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions.

   6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file.

   7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License.

   8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages.

   9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. END OF TERMS AND CONDITIONS

APPENDIX: How to apply the Apache License to your work.

To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "[]" replaced with your own identifying information. (Don't include the brackets!) The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives.

Copyright [yyyy] [name of copyright owner]

Licensed under the Apache License, Version 2.0 (the "License");

you may not use this file except in compliance with the License.

You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software

distributed under the License is distributed on an "AS IS" BASIS,

WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

See the License for the specific language governing permissions and

limitations under the License.

---------------------------------------------------------

---------------------------------------------------------

Castle.Core 5.1.0 - Apache-2.0


(c) 2004-2022 Castle Project - http://www.castleproject.org
Copyright 2004-2021 Castle Project - http://www.castleproject.org
Copyright (c) 2004-2022 Castle Project - http://www.castleproject.org

Copyright 2004-2021 Castle Project - http://www.castleproject.org/

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

     http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

---------------------------------------------------------

---------------------------------------------------------

FluentAssertions 6.7.0 - Apache-2.0



Apache License

Version 2.0, January 2004

http://www.apache.org/licenses/ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION

   1. Definitions.

      

      "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document.

      

      "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License.

      

      "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity.

      

      "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License.

      

      "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files.

      

      "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types.

      

      "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below).

      

      "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof.

      

      "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution."

      

      "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work.

   2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form.

   3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed.

   4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions:

      (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and

      (b) You must cause any modified files to carry prominent notices stating that You changed the files; and

      (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and

      (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License.

      You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License.

   5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions.

   6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file.

   7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License.

   8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages.

   9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. END OF TERMS AND CONDITIONS

APPENDIX: How to apply the Apache License to your work.

To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "[]" replaced with your own identifying information. (Don't include the brackets!) The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives.

Copyright [yyyy] [name of copyright owner]

Licensed under the Apache License, Version 2.0 (the "License");

you may not use this file except in compliance with the License.

You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software

distributed under the License is distributed on an "AS IS" BASIS,

WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

See the License for the specific language governing permissions and

limitations under the License.

---------------------------------------------------------

---------------------------------------------------------

FluentValidation 11.2.2 - Apache-2.0


(c) Jeremy Skinner, .NET Foundation, and contributors 2008-2022
Copyright (c) Jeremy Skinner, .NET Foundation, and contributors 2008-2022

Apache License

Version 2.0, January 2004

http://www.apache.org/licenses/ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION

   1. Definitions.

      

      "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document.

      

      "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License.

      

      "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity.

      

      "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License.

      

      "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files.

      

      "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types.

      

      "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below).

      

      "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof.

      

      "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution."

      

      "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work.

   2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form.

   3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed.

   4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions:

      (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and

      (b) You must cause any modified files to carry prominent notices stating that You changed the files; and

      (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and

      (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License.

      You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License.

   5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions.

   6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file.

   7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License.

   8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages.

   9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. END OF TERMS AND CONDITIONS

APPENDIX: How to apply the Apache License to your work.

To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "[]" replaced with your own identifying information. (Don't include the brackets!) The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives.

Copyright [yyyy] [name of copyright owner]

Licensed under the Apache License, Version 2.0 (the "License");

you may not use this file except in compliance with the License.

You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software

distributed under the License is distributed on an "AS IS" BASIS,

WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

See the License for the specific language governing permissions and

limitations under the License.

---------------------------------------------------------

---------------------------------------------------------

FluentValidation.DependencyInjectionExtensions 11.2.2 - Apache-2.0


(c) Jeremy Skinner, .NET Foundation, and contributors 2008-2022
Copyright (c) Jeremy Skinner, .NET Foundation, and contributors 2008-2022

Apache License

Version 2.0, January 2004

http://www.apache.org/licenses/ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION

   1. Definitions.

      

      "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document.

      

      "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License.

      

      "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity.

      

      "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License.

      

      "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files.

      

      "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types.

      

      "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below).

      

      "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof.

      

      "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution."

      

      "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work.

   2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form.

   3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed.

   4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions:

      (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and

      (b) You must cause any modified files to carry prominent notices stating that You changed the files; and

      (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and

      (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License.

      You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License.

   5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions.

   6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file.

   7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License.

   8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages.

   9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. END OF TERMS AND CONDITIONS

APPENDIX: How to apply the Apache License to your work.

To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "[]" replaced with your own identifying information. (Don't include the brackets!) The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives.

Copyright [yyyy] [name of copyright owner]

Licensed under the Apache License, Version 2.0 (the "License");

you may not use this file except in compliance with the License.

You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software

distributed under the License is distributed on an "AS IS" BASIS,

WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

See the License for the specific language governing permissions and

limitations under the License.

---------------------------------------------------------

---------------------------------------------------------

IdentityModel 6.0.0 - Apache-2.0



Apache License

Version 2.0, January 2004

http://www.apache.org/licenses/ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION

   1. Definitions.

      

      "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document.

      

      "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License.

      

      "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity.

      

      "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License.

      

      "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files.

      

      "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types.

      

      "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below).

      

      "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof.

      

      "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution."

      

      "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work.

   2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form.

   3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed.

   4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions:

      (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and

      (b) You must cause any modified files to carry prominent notices stating that You changed the files; and

      (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and

      (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License.

      You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License.

   5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions.

   6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file.

   7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License.

   8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages.

   9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. END OF TERMS AND CONDITIONS

APPENDIX: How to apply the Apache License to your work.

To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "[]" replaced with your own identifying information. (Don't include the brackets!) The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives.

Copyright [yyyy] [name of copyright owner]

Licensed under the Apache License, Version 2.0 (the "License");

you may not use this file except in compliance with the License.

You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software

distributed under the License is distributed on an "AS IS" BASIS,

WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

See the License for the specific language governing permissions and

limitations under the License.

---------------------------------------------------------

---------------------------------------------------------

IdentityModel.OidcClient 3.1.2 - Apache-2.0



Apache License

Version 2.0, January 2004

http://www.apache.org/licenses/ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION

   1. Definitions.

      

      "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document.

      

      "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License.

      

      "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity.

      

      "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License.

      

      "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files.

      

      "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types.

      

      "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below).

      

      "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof.

      

      "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution."

      

      "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work.

   2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form.

   3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed.

   4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions:

      (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and

      (b) You must cause any modified files to carry prominent notices stating that You changed the files; and

      (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and

      (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License.

      You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License.

   5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions.

   6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file.

   7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License.

   8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages.

   9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. END OF TERMS AND CONDITIONS

APPENDIX: How to apply the Apache License to your work.

To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "[]" replaced with your own identifying information. (Don't include the brackets!) The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives.

Copyright [yyyy] [name of copyright owner]

Licensed under the Apache License, Version 2.0 (the "License");

you may not use this file except in compliance with the License.

You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software

distributed under the License is distributed on an "AS IS" BASIS,

WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

See the License for the specific language governing permissions and

limitations under the License.

---------------------------------------------------------

---------------------------------------------------------

Microsoft.AspNetCore.Authentication.Abstractions 2.2.0 - Apache-2.0


(c) Microsoft Corporation.

Apache License

Version 2.0, January 2004

http://www.apache.org/licenses/ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION

   1. Definitions.

      

      "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document.

      

      "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License.

      

      "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity.

      

      "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License.

      

      "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files.

      

      "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types.

      

      "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below).

      

      "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof.

      

      "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution."

      

      "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work.

   2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form.

   3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed.

   4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions:

      (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and

      (b) You must cause any modified files to carry prominent notices stating that You changed the files; and

      (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and

      (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License.

      You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License.

   5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions.

   6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file.

   7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License.

   8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages.

   9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. END OF TERMS AND CONDITIONS

APPENDIX: How to apply the Apache License to your work.

To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "[]" replaced with your own identifying information. (Don't include the brackets!) The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives.

Copyright [yyyy] [name of copyright owner]

Licensed under the Apache License, Version 2.0 (the "License");

you may not use this file except in compliance with the License.

You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software

distributed under the License is distributed on an "AS IS" BASIS,

WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

See the License for the specific language governing permissions and

limitations under the License.

---------------------------------------------------------

---------------------------------------------------------

Microsoft.AspNetCore.Authorization 2.2.0 - Apache-2.0


(c) Microsoft Corporation.

Apache License

Version 2.0, January 2004

http://www.apache.org/licenses/ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION

   1. Definitions.

      

      "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document.

      

      "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License.

      

      "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity.

      

      "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License.

      

      "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files.

      

      "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types.

      

      "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below).

      

      "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof.

      

      "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution."

      

      "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work.

   2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form.

   3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed.

   4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions:

      (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and

      (b) You must cause any modified files to carry prominent notices stating that You changed the files; and

      (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and

      (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License.

      You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License.

   5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions.

   6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file.

   7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License.

   8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages.

   9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. END OF TERMS AND CONDITIONS

APPENDIX: How to apply the Apache License to your work.

To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "[]" replaced with your own identifying information. (Don't include the brackets!) The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives.

Copyright [yyyy] [name of copyright owner]

Licensed under the Apache License, Version 2.0 (the "License");

you may not use this file except in compliance with the License.

You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software

distributed under the License is distributed on an "AS IS" BASIS,

WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

See the License for the specific language governing permissions and

limitations under the License.

---------------------------------------------------------

---------------------------------------------------------

Microsoft.AspNetCore.Authorization.Policy 2.2.0 - Apache-2.0


(c) Microsoft Corporation.

Apache License

Version 2.0, January 2004

http://www.apache.org/licenses/ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION

   1. Definitions.

      

      "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document.

      

      "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License.

      

      "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity.

      

      "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License.

      

      "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files.

      

      "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types.

      

      "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below).

      

      "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof.

      

      "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution."

      

      "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work.

   2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form.

   3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed.

   4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions:

      (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and

      (b) You must cause any modified files to carry prominent notices stating that You changed the files; and

      (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and

      (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License.

      You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License.

   5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions.

   6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file.

   7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License.

   8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages.

   9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only
Download .txt
gitextract_707ivrax/

├── .editorconfig
├── .gdnbaselines
├── .gitattributes
├── .github/
│   ├── CODEOWNERS
│   ├── ISSUE_TEMPLATE/
│   │   ├── bug_report.md
│   │   └── feature_request.md
│   ├── dependabot.yml
│   └── workflows/
│       ├── codeql.yml
│       ├── dotnet.yml
│       └── test.yml
├── .gitignore
├── .mcp.json
├── .sscignore
├── CODEOWNERS
├── Industrial-IoT.slnx
├── LICENSE
├── NOTICE
├── Nuget.Config
├── SECURITY.md
├── azure-pipelines.yml
├── common.props
├── contributing.md
├── deploy/
│   ├── azuredeploy.json
│   ├── azuredeploy.parameters.json
│   ├── deploy.ps1
│   ├── docker/
│   │   ├── build.cmd
│   │   ├── dapr/
│   │   │   ├── pubsub.yaml
│   │   │   └── statestore.yaml
│   │   ├── docker-compose.yaml
│   │   ├── gcdump.ps1
│   │   ├── mosquitto/
│   │   │   ├── mosquitto.conf
│   │   │   └── settings.json
│   │   ├── opentelemetry/
│   │   │   ├── collector.yaml
│   │   │   ├── dashboards/
│   │   │   │   └── opc-publisher.json
│   │   │   ├── dashboards.yaml
│   │   │   ├── datasources.yaml
│   │   │   ├── prometheus.yml
│   │   │   └── tempo.yaml
│   │   ├── publisher_secrets.txt
│   │   ├── readme.md
│   │   ├── with-dapr.yaml
│   │   ├── with-limits.yaml
│   │   ├── with-localimage.yaml
│   │   ├── with-localvolume.yaml
│   │   ├── with-monitor.yaml
│   │   ├── with-mosquitto.yaml
│   │   ├── with-opentelemetry.yaml
│   │   └── with-pcap-capture.yaml
│   ├── iotedge/
│   │   ├── .gitignore
│   │   ├── arm/
│   │   │   ├── TLSSettings.ps1
│   │   │   ├── default.yml
│   │   │   ├── dps-enroll.ps1
│   │   │   ├── dsc-install.ps1
│   │   │   ├── edge-setup.ps1
│   │   │   ├── edge-setup.sh
│   │   │   ├── eflow-setup.ps1
│   │   │   ├── simulation.sh
│   │   │   └── testing.yml
│   │   ├── azuredeploy.json
│   │   ├── azuredeploy.parameters.json
│   │   ├── edgehubdev.cmd
│   │   ├── edgehubdev.json
│   │   ├── eflow-setup.json
│   │   ├── eflow-setup.ps1
│   │   └── readme.md
│   ├── kubernetes/
│   │   ├── cluster-setup.ps1
│   │   ├── common/
│   │   │   └── cluster-utils.psm1
│   │   ├── debug/
│   │   │   ├── Dockerfile
│   │   │   ├── build.ps1
│   │   │   ├── debug.json
│   │   │   ├── debug.ps1
│   │   │   ├── entrypoint.sh
│   │   │   └── forward-mq.ps1
│   │   ├── deploy.ps1
│   │   ├── iotops/
│   │   │   ├── adr-tool.ps1
│   │   │   ├── azure_iot_ops-2.0.0b4.dev1-py3-none-any.whl
│   │   │   ├── enable-preview.ps1
│   │   │   └── opc-publisher-connector-metadata.json
│   │   ├── readme.md
│   │   └── simulation/
│   │       ├── deploy.ps1
│   │       └── helm/
│   │           ├── opc-plc/
│   │           │   ├── Chart.yaml
│   │           │   ├── templates/
│   │           │   │   ├── _helpers.tpl
│   │           │   │   ├── opc-plc_configMap.yaml
│   │           │   │   ├── opc-plc_default_application_certificate.yaml
│   │           │   │   ├── opc-plc_deployment.yaml
│   │           │   │   └── opc-plc_service.yaml
│   │           │   └── values.yaml
│   │           ├── opc-test/
│   │           │   ├── Chart.yaml
│   │           │   ├── templates/
│   │           │   │   ├── _helpers.tpl
│   │           │   │   ├── opc-test_default_application_certificate.yaml
│   │           │   │   ├── opc-test_deployment.yaml
│   │           │   │   └── opc-test_service.yaml
│   │           │   └── values.yaml
│   │           ├── opc-umati/
│   │           │   └── templates/
│   │           │       └── umati_deployment.yaml
│   │           └── umati/
│   │               ├── Chart.yaml
│   │               ├── templates/
│   │               │   ├── _helpers.tpl
│   │               │   ├── umati_configMap.yaml
│   │               │   ├── umati_default_application_certificate.yaml
│   │               │   ├── umati_deployment.yaml
│   │               │   └── umati_service.yaml
│   │               └── values.yaml
│   └── readme.md
├── docs/
│   ├── _config.yml
│   ├── opc-publisher/
│   │   ├── api.md
│   │   ├── commandline.md
│   │   ├── definitions.md
│   │   ├── deployment.json
│   │   ├── directmethods.md
│   │   ├── features.md
│   │   ├── intfilesamples.md
│   │   ├── messageformats.md
│   │   ├── migrationpath.md
│   │   ├── observability.md
│   │   ├── openapi.json
│   │   ├── publishednodes_2.5.json
│   │   ├── publishednodes_2.8.json
│   │   ├── readme.md
│   │   ├── security.md
│   │   ├── transports.md
│   │   └── troubleshooting.md
│   ├── readme.md
│   └── release-announcement.md
├── e2e-tests/
│   ├── .gitignore
│   ├── Directory.Build.props
│   ├── IIoTPlatform-E2E-Tests.slnx
│   ├── OpcPublisher-E2E-Tests/
│   │   ├── Config/
│   │   │   ├── IContainerRegistryConfig.cs
│   │   │   ├── IDeviceConfig.cs
│   │   │   ├── IIoTEdgeConfig.cs
│   │   │   ├── IIoTHubConfig.cs
│   │   │   ├── IOpcPlcConfig.cs
│   │   │   └── ISshConfig.cs
│   │   ├── GlobalSuppressions.cs
│   │   ├── MessagingMode.cs
│   │   ├── OpcPublisher-AE-E2E-Tests.csproj
│   │   ├── Properties/
│   │   │   └── AssemblyInfo.cs
│   │   ├── PublishedNodesConfigurations.cs
│   │   ├── RegistryHelper.cs
│   │   ├── Standalone/
│   │   │   ├── C_EventNamespaceTestTheory.cs
│   │   │   ├── C_EventsStressTestTheory.cs
│   │   │   ├── C_PendingConditionsTestTheory.cs
│   │   │   ├── C_PublishConditionsTestTheory.cs
│   │   │   ├── C_WhereClauseTestTheory.cs
│   │   │   ├── D_AlarmDirectMethodTestTheory.cs
│   │   │   ├── D_EventDirectMethodTestTheory.cs
│   │   │   └── DynamicAciTestBase.cs
│   │   ├── TestConstants.cs
│   │   ├── TestExtensions/
│   │   │   ├── IIoTPlatformTestContext.cs
│   │   │   ├── IIoTStandaloneTestContext.cs
│   │   │   ├── PriorityOrderAttribute.cs
│   │   │   └── TestCaseOrderer.cs
│   │   ├── TestHelper.cs
│   │   ├── TestModels/
│   │   │   ├── BaseEventTypePayload.cs
│   │   │   ├── ConditionTypePayload.cs
│   │   │   ├── DataValueObject.cs
│   │   │   ├── EventData.cs
│   │   │   ├── PendingConditionEventData.cs
│   │   │   ├── SimpleEventsStep.cs
│   │   │   ├── SystemCycleStatusEventTypePayload.cs
│   │   │   └── SystemEventTypePayload.cs
│   │   ├── deploy/
│   │   │   ├── DeploymentConfiguration.cs
│   │   │   ├── IIoTHubEdgeDeployment.cs
│   │   │   ├── IoTHubEdgeBaseDeployment.cs
│   │   │   ├── IoTHubPublisherDeployment.cs
│   │   │   └── ModuleDeploymentConfiguration.cs
│   │   ├── opc-plc-files/
│   │   │   └── sc001.json
│   │   └── xunit.runner.json
│   └── readme.md
├── readme.md
├── samples/
│   ├── .gitignore
│   ├── Http/
│   │   ├── BrowseAll/
│   │   │   ├── BrowseAll.cs
│   │   │   └── BrowseAll.csproj
│   │   ├── GetConfiguration/
│   │   │   ├── GetConfiguration.cs
│   │   │   └── GetConfiguration.csproj
│   │   ├── GetDiagnostics/
│   │   │   ├── GetDiagnostics.cs
│   │   │   └── GetDiagnostics.csproj
│   │   ├── HttpSamples.slnx
│   │   ├── Parameters.cs
│   │   ├── ReadCurrentTime/
│   │   │   ├── ReadCurrentTime.cs
│   │   │   └── ReadCurrentTime.csproj
│   │   ├── SetConfiguration/
│   │   │   ├── SetConfiguration.cs
│   │   │   └── SetConfiguration.csproj
│   │   ├── WriteReadbackValue/
│   │   │   ├── WriteReadbackValue.cs
│   │   │   └── WriteReadbackValue.csproj
│   │   └── readme.md
│   ├── IoTHub/
│   │   ├── ApproveRejected/
│   │   │   ├── ApproveRejected.cs
│   │   │   └── ApproveRejected.csproj
│   │   ├── BrowseCertificates/
│   │   │   ├── BrowseCertificates.cs
│   │   │   └── BrowseCertificates.csproj
│   │   ├── GetCertificate/
│   │   │   ├── GetApplicationCert.cs
│   │   │   └── GetApplicationCert.csproj
│   │   ├── GetConfiguration/
│   │   │   ├── GetConfiguration.cs
│   │   │   └── GetConfiguration.csproj
│   │   ├── IoTHubSamples.slnx
│   │   ├── ManageWriter/
│   │   │   ├── ManageWriter.cs
│   │   │   └── ManageWriter.csproj
│   │   ├── MonitorMessages/
│   │   │   ├── MonitorMessages.cs
│   │   │   └── MonitorMessages.csproj
│   │   ├── Parameters.cs
│   │   ├── ReadCurrentTime/
│   │   │   ├── ReadCurrentTime.cs
│   │   │   └── ReadCurrentTime.csproj
│   │   ├── ResetClients/
│   │   │   ├── GetAndResetConnections.cs
│   │   │   └── GetAndResetConnections.csproj
│   │   ├── WriteReadbackValue/
│   │   │   ├── WriteReadbackValue.cs
│   │   │   └── WriteReadbackValue.csproj
│   │   └── readme.md
│   ├── Mqtt/
│   │   ├── GetConfiguration/
│   │   │   ├── GetConfiguration.cs
│   │   │   └── GetConfiguration.csproj
│   │   ├── ManageWriter/
│   │   │   ├── ManageWriter.cs
│   │   │   └── ManageWriter.csproj
│   │   ├── MonitorMessages/
│   │   │   ├── MonitorMessages.cs
│   │   │   └── MonitorMessages.csproj
│   │   ├── MqttSamples.slnx
│   │   ├── ReadAttributes/
│   │   │   ├── ReadAttributes.cs
│   │   │   └── ReadAttributes.csproj
│   │   ├── ReadCurrentTime/
│   │   │   ├── ReadCurrentTime.cs
│   │   │   └── ReadCurrentTime.csproj
│   │   ├── WriteReadbackValue/
│   │   │   ├── WriteReadbackValue.cs
│   │   │   └── WriteReadbackValue.csproj
│   │   └── readme.md
│   └── Netcap/
│       ├── Directory.Build.props
│       ├── Netcap.slnx
│       ├── build.sh
│       ├── readme.md
│       └── src/
│           ├── .dockerignore
│           ├── Dockerfile
│           ├── Extensions.cs
│           ├── Gateway.cs
│           ├── Netcap.cs
│           ├── Netcap.csproj
│           ├── Pcap.cs
│           ├── Program.cs
│           ├── Publisher.cs
│           └── Storage.cs
├── src/
│   ├── .gitignore
│   ├── Azure.IIoT.OpcUa/
│   │   ├── src/
│   │   │   ├── Azure.IIoT.OpcUa.csproj
│   │   │   ├── Encoders/
│   │   │   │   ├── AvroBinaryReader.cs
│   │   │   │   ├── AvroBinaryWriter.cs
│   │   │   │   ├── AvroDecoder.cs
│   │   │   │   ├── AvroEncoder.cs
│   │   │   │   ├── AvroFileReader.cs
│   │   │   │   ├── AvroFileWriter.cs
│   │   │   │   ├── AvroFileWriterOptions.cs
│   │   │   │   ├── AvroSchemaBuilder.cs
│   │   │   │   ├── AvroSchemaTraverser.cs
│   │   │   │   ├── BaseAvroDecoder.cs
│   │   │   │   ├── BaseAvroEncoder.cs
│   │   │   │   ├── ConsoleWriter.cs
│   │   │   │   ├── ConsoleWriterOptions.cs
│   │   │   │   ├── ContentType.cs
│   │   │   │   ├── DecodingException.cs
│   │   │   │   ├── EncodingException.cs
│   │   │   │   ├── Extensions/
│   │   │   │   │   ├── EncodeableEx.cs
│   │   │   │   │   ├── Extensions.cs
│   │   │   │   │   ├── JsonSerializerUtcEx.cs
│   │   │   │   │   ├── LocalizedTextEx.cs
│   │   │   │   │   ├── NodeIdEx.cs
│   │   │   │   │   ├── QualifiedNameEx.cs
│   │   │   │   │   ├── StatusCodeEx.cs
│   │   │   │   │   └── TypeInfoEx.cs
│   │   │   │   ├── Extensions.cs
│   │   │   │   ├── IVariantEncoder.cs
│   │   │   │   ├── JsonDecoderEx.cs
│   │   │   │   ├── JsonEncoderEx.cs
│   │   │   │   ├── JsonVariantEncoder.cs
│   │   │   │   ├── MessageSchemaTypes.cs
│   │   │   │   ├── Models/
│   │   │   │   │   ├── DataSet.cs
│   │   │   │   │   ├── EncodeableDictionary.cs
│   │   │   │   │   ├── EncodeableJToken.cs
│   │   │   │   │   ├── EncodeableVariantValue.cs
│   │   │   │   │   └── KeyDataValuePair.cs
│   │   │   │   ├── PubSub/
│   │   │   │   │   ├── AvroDataSetMessage.cs
│   │   │   │   │   ├── AvroNetworkMessage.cs
│   │   │   │   │   ├── BaseDataSetMessage.cs
│   │   │   │   │   ├── BaseNetworkMessage.cs
│   │   │   │   │   ├── EncoderExtensions.cs
│   │   │   │   │   ├── IDataSetMetaDataResolver.cs
│   │   │   │   │   ├── JsonDataSetMessage.cs
│   │   │   │   │   ├── JsonMetadataMessage.cs
│   │   │   │   │   ├── JsonNetworkMessage.cs
│   │   │   │   │   ├── MessageType.cs
│   │   │   │   │   ├── MonitoredItemMessage.cs
│   │   │   │   │   ├── PubSubMessage.cs
│   │   │   │   │   ├── StackExtensions.cs
│   │   │   │   │   ├── UadpDataSetMessage.cs
│   │   │   │   │   ├── UadpDiscoveryMessage.cs
│   │   │   │   │   ├── UadpMetadataMessage.cs
│   │   │   │   │   └── UadpNetworkMessage.cs
│   │   │   │   ├── Schemas/
│   │   │   │   │   ├── Avro/
│   │   │   │   │   │   ├── AvroBuiltInSchemas.cs
│   │   │   │   │   │   ├── AvroDataSet.cs
│   │   │   │   │   │   ├── AvroDataSetMessage.cs
│   │   │   │   │   │   ├── AvroNetworkMessage.cs
│   │   │   │   │   │   ├── AvroSchema.cs
│   │   │   │   │   │   ├── BaseDataSetMessage.cs
│   │   │   │   │   │   ├── BaseNetworkMessage.cs
│   │   │   │   │   │   ├── IAvroSchema.cs
│   │   │   │   │   │   ├── JsonBuiltInSchemas.cs
│   │   │   │   │   │   ├── JsonDataSet.cs
│   │   │   │   │   │   ├── JsonDataSetMessage.cs
│   │   │   │   │   │   ├── JsonNetworkMessage.cs
│   │   │   │   │   │   └── MonitoredItemMessage.cs
│   │   │   │   │   ├── BaseBuiltInSchemas.cs
│   │   │   │   │   ├── BaseDataSetSchema.cs
│   │   │   │   │   ├── Json/
│   │   │   │   │   │   ├── JsonBuiltInSchemas.cs
│   │   │   │   │   │   ├── JsonDataSet.cs
│   │   │   │   │   │   ├── JsonDataSetMessage.cs
│   │   │   │   │   │   ├── JsonNetworkMessage.cs
│   │   │   │   │   │   ├── JsonSchema.cs
│   │   │   │   │   │   ├── JsonSchemaExtensions.cs
│   │   │   │   │   │   ├── JsonSchemaVersion.cs
│   │   │   │   │   │   ├── JsonSchemaVocabulary.cs
│   │   │   │   │   │   ├── JsonSchemaWriter.cs
│   │   │   │   │   │   └── MonitoredItemMessage.cs
│   │   │   │   │   ├── SchemaOptions.cs
│   │   │   │   │   ├── SchemaRank.cs
│   │   │   │   │   ├── SchemaUtils.cs
│   │   │   │   │   └── Uadp/
│   │   │   │   │       └── UadpNetworkMessage.cs
│   │   │   │   ├── Utils/
│   │   │   │   │   └── TypeMaps.cs
│   │   │   │   ├── ZipFileReader.cs
│   │   │   │   └── ZipFileWriter.cs
│   │   │   ├── Exceptions/
│   │   │   │   ├── ConnectionException.cs
│   │   │   │   └── ServerBusyException.cs
│   │   │   ├── Extensions/
│   │   │   │   ├── LinqEx.cs
│   │   │   │   ├── StreamEx.cs
│   │   │   │   ├── StringEx.cs
│   │   │   │   └── TimerEx.cs
│   │   │   ├── IMetricsContext.cs
│   │   │   ├── Properties/
│   │   │   │   └── AssemblyInfo.cs
│   │   │   └── Publisher/
│   │   │       ├── Diagnostics.cs
│   │   │       ├── Extensions/
│   │   │       │   ├── AggregateConfigurationModelEx.cs
│   │   │       │   ├── AggregateFilterModelEx.cs
│   │   │       │   ├── ApplicationInfoModelEx.cs
│   │   │       │   ├── ApplicationRegistrationModelEx.cs
│   │   │       │   ├── AuthenticationMethodModelEx.cs
│   │   │       │   ├── ConditionHandlingOptionsModelEx.cs
│   │   │       │   ├── ConnectionModelEx.cs
│   │   │       │   ├── ContentFilterElementModelEx.cs
│   │   │       │   ├── ContentFilterModelEx.cs
│   │   │       │   ├── CredentialModelEx.cs
│   │   │       │   ├── DataChangeFilterModelEx.cs
│   │   │       │   ├── DataSetMetaDataModelEx.cs
│   │   │       │   ├── DataSetWriterModelEx.cs
│   │   │       │   ├── DiagnosticsModelEx.cs
│   │   │       │   ├── DiscoveryConfigModelEx.cs
│   │   │       │   ├── DiscoveryRequestModelEx.cs
│   │   │       │   ├── EndpointModelEx.cs
│   │   │       │   ├── EndpointRegistrationModelEx.cs
│   │   │       │   ├── EventFilterModelEx.cs
│   │   │       │   ├── FileSystemServicesEx.cs
│   │   │       │   ├── FilterOperandModelEx.cs
│   │   │       │   ├── ModelChangeHandlingOptionsModelEx.cs
│   │   │       │   ├── NodeServicesEx.cs
│   │   │       │   ├── OpcNodeModelEx.cs
│   │   │       │   ├── PublishedDataItemsModelEx.cs
│   │   │       │   ├── PublishedDataSetEventModelEx.cs
│   │   │       │   ├── PublishedDataSetModelEx.cs
│   │   │       │   ├── PublishedDataSetSettingsModelEx.cs
│   │   │       │   ├── PublishedDataSetSourceModelEx.cs
│   │   │       │   ├── PublishedDataSetTriggerModelEx.cs
│   │   │       │   ├── PublishedDataSetVariableModelEx.cs
│   │   │       │   ├── PublishedEventItemsModelEx.cs
│   │   │       │   ├── PublishedNodesEntryModelEx.cs
│   │   │       │   ├── RegistryOperationContextModelEx.cs
│   │   │       │   ├── SimpleAttributeOperandModelEx.cs
│   │   │       │   ├── UserIdentityModelEx.cs
│   │   │       │   ├── X509CertificateChainModelEx.cs
│   │   │       │   └── X509CertificateModelEx.cs
│   │   │       ├── ICertificateServices.cs
│   │   │       ├── IConnectionServices.cs
│   │   │       ├── IFileSystemServices.cs
│   │   │       ├── IHistoryServices.cs
│   │   │       ├── INetworkDiscovery.cs
│   │   │       ├── INodeServices.cs
│   │   │       ├── IPublishServices.cs
│   │   │       ├── IServerDiscovery.cs
│   │   │       └── Runtime.cs
│   │   └── tests/
│   │       ├── Azure.IIoT.OpcUa.Tests.csproj
│   │       ├── Encoders/
│   │       │   ├── AvroBaseTests.cs
│   │       │   ├── AvroDataSetTests.cs
│   │       │   ├── AvroEncoderTests.cs
│   │       │   ├── AvroFileWriterTests.cs
│   │       │   ├── Extensions/
│   │       │   │   ├── ExpandedNodeIdExTests.cs
│   │       │   │   ├── LocalizedTextExTests.cs
│   │       │   │   ├── NodeIdExTests.cs
│   │       │   │   ├── QualifiedNameExTests.cs
│   │       │   │   └── TypeInfoExTests.cs
│   │       │   ├── JsonDataSetTests.cs
│   │       │   ├── Models/
│   │       │   │   └── EncodeableDictionaryTests.cs
│   │       │   ├── PubSub/
│   │       │   │   ├── AvroNetworkMessageEncoderDecoderTests1.cs
│   │       │   │   ├── AvroNetworkMessageEncoderDecoderTests2.cs
│   │       │   │   ├── AvroNetworkMessageFileWriterReaderTests.cs
│   │       │   │   ├── JsonNetworkMessageEncoderDecoderTests.cs
│   │       │   │   ├── JsonNetworkMessageEncoderTests1.cs
│   │       │   │   ├── JsonNetworkMessageEncoderTests2.cs
│   │       │   │   ├── MonitoredItemMessageEncoderDecoderTests.cs
│   │       │   │   ├── PubSubMessageContentFlagHelper.cs
│   │       │   │   └── UadpNetworkMessageEncoderDecoderTests.cs
│   │       │   ├── SchemaUtilsTests.cs
│   │       │   ├── Schemas/
│   │       │   │   ├── AvroNetworkMessageAvroSchemaTests.cs
│   │       │   │   ├── AvroSchema/
│   │       │   │   │   ├── Default/
│   │       │   │   │   │   ├── CyclicReads.json
│   │       │   │   │   │   ├── KeepAlive.json
│   │       │   │   │   │   ├── KeyFrames.json
│   │       │   │   │   │   ├── PendingAlarms.json
│   │       │   │   │   │   ├── PlcSimulation.json
│   │       │   │   │   │   └── SimpleEvents.json
│   │       │   │   │   ├── Multiple/
│   │       │   │   │   │   ├── CyclicReads.json
│   │       │   │   │   │   ├── KeepAlive.json
│   │       │   │   │   │   ├── KeyFrames.json
│   │       │   │   │   │   ├── PendingAlarms.json
│   │       │   │   │   │   ├── PlcSimulation.json
│   │       │   │   │   │   └── SimpleEvents.json
│   │       │   │   │   ├── NetworkMessage/
│   │       │   │   │   │   ├── CyclicReads.json
│   │       │   │   │   │   ├── KeepAlive.json
│   │       │   │   │   │   ├── KeyFrames.json
│   │       │   │   │   │   ├── PendingAlarms.json
│   │       │   │   │   │   ├── PlcSimulation.json
│   │       │   │   │   │   └── SimpleEvents.json
│   │       │   │   │   ├── NetworkMessageDefault/
│   │       │   │   │   │   ├── CyclicReads.json
│   │       │   │   │   │   ├── KeepAlive.json
│   │       │   │   │   │   ├── KeyFrames.json
│   │       │   │   │   │   ├── PendingAlarms.json
│   │       │   │   │   │   ├── PlcSimulation.json
│   │       │   │   │   │   └── SimpleEvents.json
│   │       │   │   │   ├── Raw/
│   │       │   │   │   │   ├── CyclicReads.json
│   │       │   │   │   │   ├── KeepAlive.json
│   │       │   │   │   │   ├── KeyFrames.json
│   │       │   │   │   │   ├── PendingAlarms.json
│   │       │   │   │   │   ├── PlcSimulation.json
│   │       │   │   │   │   └── SimpleEvents.json
│   │       │   │   │   ├── RawReversible/
│   │       │   │   │   │   ├── CyclicReads.json
│   │       │   │   │   │   ├── KeepAlive.json
│   │       │   │   │   │   ├── KeyFrames.json
│   │       │   │   │   │   ├── PendingAlarms.json
│   │       │   │   │   │   ├── PlcSimulation.json
│   │       │   │   │   │   └── SimpleEvents.json
│   │       │   │   │   └── Single/
│   │       │   │   │       ├── CyclicReads.json
│   │       │   │   │       ├── KeepAlive.json
│   │       │   │   │       ├── KeyFrames.json
│   │       │   │   │       ├── PendingAlarms.json
│   │       │   │   │       ├── PlcSimulation.json
│   │       │   │   │       └── SimpleEvents.json
│   │       │   │   ├── JavroSchema/
│   │       │   │   │   ├── Default/
│   │       │   │   │   │   ├── CyclicReads.json
│   │       │   │   │   │   ├── KeepAlive.json
│   │       │   │   │   │   ├── KeyFrames.json
│   │       │   │   │   │   ├── PendingAlarms.json
│   │       │   │   │   │   ├── PlcSimulation.json
│   │       │   │   │   │   └── SimpleEvents.json
│   │       │   │   │   ├── Multiple/
│   │       │   │   │   │   ├── CyclicReads.json
│   │       │   │   │   │   ├── KeepAlive.json
│   │       │   │   │   │   ├── KeyFrames.json
│   │       │   │   │   │   ├── PendingAlarms.json
│   │       │   │   │   │   ├── PlcSimulation.json
│   │       │   │   │   │   └── SimpleEvents.json
│   │       │   │   │   ├── NetworkMessage/
│   │       │   │   │   │   ├── CyclicReads.json
│   │       │   │   │   │   ├── KeepAlive.json
│   │       │   │   │   │   ├── KeyFrames.json
│   │       │   │   │   │   ├── PendingAlarms.json
│   │       │   │   │   │   ├── PlcSimulation.json
│   │       │   │   │   │   └── SimpleEvents.json
│   │       │   │   │   ├── NetworkMessageDefault/
│   │       │   │   │   │   ├── CyclicReads.json
│   │       │   │   │   │   ├── KeepAlive.json
│   │       │   │   │   │   ├── KeyFrames.json
│   │       │   │   │   │   ├── PendingAlarms.json
│   │       │   │   │   │   ├── PlcSimulation.json
│   │       │   │   │   │   └── SimpleEvents.json
│   │       │   │   │   ├── Raw/
│   │       │   │   │   │   ├── CyclicReads.json
│   │       │   │   │   │   ├── KeepAlive.json
│   │       │   │   │   │   ├── KeyFrames.json
│   │       │   │   │   │   ├── PendingAlarms.json
│   │       │   │   │   │   ├── PlcSimulation.json
│   │       │   │   │   │   └── SimpleEvents.json
│   │       │   │   │   ├── RawReversible/
│   │       │   │   │   │   ├── CyclicReads.json
│   │       │   │   │   │   ├── KeepAlive.json
│   │       │   │   │   │   ├── KeyFrames.json
│   │       │   │   │   │   ├── PendingAlarms.json
│   │       │   │   │   │   ├── PlcSimulation.json
│   │       │   │   │   │   └── SimpleEvents.json
│   │       │   │   │   ├── Samples/
│   │       │   │   │   │   ├── CyclicReads.json
│   │       │   │   │   │   ├── KeepAlive.json
│   │       │   │   │   │   ├── KeyFrames.json
│   │       │   │   │   │   ├── PendingAlarms.json
│   │       │   │   │   │   ├── PlcSimulation.json
│   │       │   │   │   │   └── SimpleEvents.json
│   │       │   │   │   ├── SamplesRaw/
│   │       │   │   │   │   ├── CyclicReads.json
│   │       │   │   │   │   ├── KeepAlive.json
│   │       │   │   │   │   ├── KeyFrames.json
│   │       │   │   │   │   ├── PendingAlarms.json
│   │       │   │   │   │   ├── PlcSimulation.json
│   │       │   │   │   │   └── SimpleEvents.json
│   │       │   │   │   └── Single/
│   │       │   │   │       ├── CyclicReads.json
│   │       │   │   │       ├── KeepAlive.json
│   │       │   │   │       ├── KeyFrames.json
│   │       │   │   │       ├── PendingAlarms.json
│   │       │   │   │       ├── PlcSimulation.json
│   │       │   │   │       └── SimpleEvents.json
│   │       │   │   ├── JsonNetworkMessageAvroSchemaTests.cs
│   │       │   │   ├── JsonNetworkMessageJsonSchemaTests.cs
│   │       │   │   └── JsonSchema/
│   │       │   │       ├── Default/
│   │       │   │       │   ├── CyclicReads.json
│   │       │   │       │   ├── KeepAlive.json
│   │       │   │       │   ├── KeyFrames.json
│   │       │   │       │   ├── PendingAlarms.json
│   │       │   │       │   ├── PlcSimulation.json
│   │       │   │       │   └── SimpleEvents.json
│   │       │   │       ├── Multiple/
│   │       │   │       │   ├── CyclicReads.json
│   │       │   │       │   ├── KeepAlive.json
│   │       │   │       │   ├── KeyFrames.json
│   │       │   │       │   ├── PendingAlarms.json
│   │       │   │       │   ├── PlcSimulation.json
│   │       │   │       │   └── SimpleEvents.json
│   │       │   │       ├── NetworkMessage/
│   │       │   │       │   ├── CyclicReads.json
│   │       │   │       │   ├── KeepAlive.json
│   │       │   │       │   ├── KeyFrames.json
│   │       │   │       │   ├── PendingAlarms.json
│   │       │   │       │   ├── PlcSimulation.json
│   │       │   │       │   └── SimpleEvents.json
│   │       │   │       ├── NetworkMessageDefault/
│   │       │   │       │   ├── CyclicReads.json
│   │       │   │       │   ├── KeepAlive.json
│   │       │   │       │   ├── KeyFrames.json
│   │       │   │       │   ├── PendingAlarms.json
│   │       │   │       │   ├── PlcSimulation.json
│   │       │   │       │   └── SimpleEvents.json
│   │       │   │       ├── Raw/
│   │       │   │       │   ├── CyclicReads.json
│   │       │   │       │   ├── KeepAlive.json
│   │       │   │       │   ├── KeyFrames.json
│   │       │   │       │   ├── PendingAlarms.json
│   │       │   │       │   ├── PlcSimulation.json
│   │       │   │       │   └── SimpleEvents.json
│   │       │   │       ├── RawReversible/
│   │       │   │       │   ├── CyclicReads.json
│   │       │   │       │   ├── KeepAlive.json
│   │       │   │       │   ├── KeyFrames.json
│   │       │   │       │   ├── PendingAlarms.json
│   │       │   │       │   ├── PlcSimulation.json
│   │       │   │       │   └── SimpleEvents.json
│   │       │   │       ├── Samples/
│   │       │   │       │   ├── CyclicReads.json
│   │       │   │       │   ├── KeepAlive.json
│   │       │   │       │   ├── KeyFrames.json
│   │       │   │       │   ├── PendingAlarms.json
│   │       │   │       │   ├── PlcSimulation.json
│   │       │   │       │   └── SimpleEvents.json
│   │       │   │       ├── SamplesRaw/
│   │       │   │       │   ├── CyclicReads.json
│   │       │   │       │   ├── KeepAlive.json
│   │       │   │       │   ├── KeyFrames.json
│   │       │   │       │   ├── PendingAlarms.json
│   │       │   │       │   ├── PlcSimulation.json
│   │       │   │       │   └── SimpleEvents.json
│   │       │   │       └── Single/
│   │       │   │           ├── CyclicReads.json
│   │       │   │           ├── KeepAlive.json
│   │       │   │           ├── KeyFrames.json
│   │       │   │           ├── PendingAlarms.json
│   │       │   │           ├── PlcSimulation.json
│   │       │   │           └── SimpleEvents.json
│   │       │   ├── Services/
│   │       │   │   ├── VariantEncoderBooleanTests.cs
│   │       │   │   ├── VariantEncoderByteTests.cs
│   │       │   │   ├── VariantEncoderDoubleTests.cs
│   │       │   │   ├── VariantEncoderEx.cs
│   │       │   │   ├── VariantEncoderFloatTests.cs
│   │       │   │   ├── VariantEncoderInt16Tests.cs
│   │       │   │   ├── VariantEncoderInt32Tests.cs
│   │       │   │   ├── VariantEncoderInt64Tests.cs
│   │       │   │   ├── VariantEncoderMiscTests.cs
│   │       │   │   ├── VariantEncoderSByteTests.cs
│   │       │   │   ├── VariantEncoderStringTests.cs
│   │       │   │   ├── VariantEncoderUInt16Tests.cs
│   │       │   │   ├── VariantEncoderUInt32Tests.cs
│   │       │   │   └── VariantEncoderUInt64Tests.cs
│   │       │   ├── VariantVariants.cs
│   │       │   └── ZipFileWriterTests.cs
│   │       ├── GlobalSuppressions.cs
│   │       ├── Publisher/
│   │       │   ├── Extensions/
│   │       │   │   └── OpcNodeModelExTests.cs
│   │       │   └── Models/
│   │       │       └── PublishedNodesEntryModelTests.cs
│   │       └── Resources/
│   │           ├── CyclicReads.json
│   │           ├── KeepAlive.json
│   │           ├── KeyFrames.json
│   │           ├── PendingAlarms.json
│   │           ├── PlcSimulation.json
│   │           └── SimpleEvents.json
│   ├── Azure.IIoT.OpcUa.Publisher/
│   │   ├── src/
│   │   │   ├── Azure.IIoT.OpcUa.Publisher.csproj
│   │   │   ├── Constants.cs
│   │   │   ├── Discovery/
│   │   │   │   ├── NetworkDiscovery.cs
│   │   │   │   ├── ProgressLogger.cs
│   │   │   │   ├── ProgressPublisher.cs
│   │   │   │   └── ServerDiscovery.cs
│   │   │   ├── Extensions/
│   │   │   │   ├── ContainerBuilderEx.cs
│   │   │   │   ├── DataSetWriterModelEx.cs
│   │   │   │   ├── PublishedDataSetSourceModelEx.cs
│   │   │   │   └── RequestHeaderModelEx.cs
│   │   │   ├── IApiKeyProvider.cs
│   │   │   ├── IAssetConfiguration.cs
│   │   │   ├── IClientDiagnostics.cs
│   │   │   ├── IConfigurationServices.cs
│   │   │   ├── IDiagnosticCollector.cs
│   │   │   ├── IDiscoveryProgress.cs
│   │   │   ├── IDiscoveryServices.cs
│   │   │   ├── IMessageEncoder.cs
│   │   │   ├── IMessageSink.cs
│   │   │   ├── INodeServicesInternal.cs
│   │   │   ├── IProcessControl.cs
│   │   │   ├── IPublishedNodesServices.cs
│   │   │   ├── IPublisher.cs
│   │   │   ├── IRuntimeStateReporter.cs
│   │   │   ├── ISslCertProvider.cs
│   │   │   ├── IStorageProvider.cs
│   │   │   ├── IWriterGroupControl.cs
│   │   │   ├── IWriterGroupDiagnostics.cs
│   │   │   ├── IWriterGroupScope.cs
│   │   │   ├── IWriterGroupScopeFactory.cs
│   │   │   ├── Models/
│   │   │   │   ├── AssetDeviceConfiguration.cs
│   │   │   │   ├── DataSetWriterContext.cs
│   │   │   │   ├── DiscoveryRequest.cs
│   │   │   │   └── MessagingProfile.cs
│   │   │   ├── Parser/
│   │   │   │   ├── Extensions/
│   │   │   │   │   └── Extensions.cs
│   │   │   │   ├── FilterModelBuilder.cs
│   │   │   │   ├── FilterQueryGrammar.cs
│   │   │   │   ├── FilterQueryParser.cs
│   │   │   │   ├── IFilterParser.cs
│   │   │   │   ├── IFilterParserContext.cs
│   │   │   │   ├── ParserException.cs
│   │   │   │   ├── RelativePathParser.cs
│   │   │   │   └── SessionParserContext.cs
│   │   │   ├── Properties/
│   │   │   │   └── AssemblyInfo.cs
│   │   │   ├── Runtime/
│   │   │   │   ├── PublisherConfig.cs
│   │   │   │   ├── PublisherOptions.cs
│   │   │   │   ├── TopicBuilder.cs
│   │   │   │   └── TopicTemplatesOptions.cs
│   │   │   ├── Services/
│   │   │   │   ├── AssetDeviceIntegration.cs
│   │   │   │   ├── AsyncEnumerableBrowser.cs
│   │   │   │   ├── ConfigurationBrowser.cs
│   │   │   │   ├── ConfigurationServices.cs
│   │   │   │   ├── DataSetWriter.cs
│   │   │   │   ├── Extensions.cs
│   │   │   │   ├── FileSystemServices.cs
│   │   │   │   ├── HistoryServices.cs
│   │   │   │   ├── NetworkMessageEncoder.cs
│   │   │   │   ├── NetworkMessageSink.cs
│   │   │   │   ├── NodeServices.cs
│   │   │   │   ├── PublishedNodesJsonServices.cs
│   │   │   │   ├── PublisherDiagnosticCollector.cs
│   │   │   │   ├── PublisherModule.cs
│   │   │   │   ├── PublisherService.cs
│   │   │   │   ├── RollingAverage.cs
│   │   │   │   ├── RuntimeStateReporter.cs
│   │   │   │   ├── WriterGroupDataSource.cs
│   │   │   │   └── WriterGroupScopeFactory.cs
│   │   │   ├── Stack/
│   │   │   │   ├── AsyncEnumerableBase.cs
│   │   │   │   ├── AsyncEnumerableStack.cs
│   │   │   │   ├── Extensions/
│   │   │   │   │   ├── AssetsEx.cs
│   │   │   │   │   ├── CertificateStoreEx.cs
│   │   │   │   │   ├── CertificateTrustListEx.cs
│   │   │   │   │   ├── ContainerBuilderEx.cs
│   │   │   │   │   ├── DataValueEx.cs
│   │   │   │   │   ├── DiscoveredEndpointModelEx.cs
│   │   │   │   │   ├── DiscoveryClientEx.cs
│   │   │   │   │   ├── EndpointDescriptionEx.cs
│   │   │   │   │   ├── FileSystemEx.cs
│   │   │   │   │   ├── FilterEncoderEx.cs
│   │   │   │   │   ├── MonitoredItemEx.cs
│   │   │   │   │   ├── NodeStateEx.cs
│   │   │   │   │   ├── OperationLimitsEx.cs
│   │   │   │   │   ├── RelativePathEx.cs
│   │   │   │   │   ├── SequenceNumber.cs
│   │   │   │   │   ├── ServiceResponseEx.cs
│   │   │   │   │   ├── ServiceResultEx.cs
│   │   │   │   │   ├── SessionEx.cs
│   │   │   │   │   ├── StackModelsEx.cs
│   │   │   │   │   ├── StackTypesEx.cs
│   │   │   │   │   ├── SubscriptionModelEx.cs
│   │   │   │   │   └── VariantEncoderEx.cs
│   │   │   │   ├── IEndpointDiscovery.cs
│   │   │   │   ├── IOpcUaBrowser.cs
│   │   │   │   ├── IOpcUaCertificates.cs
│   │   │   │   ├── IOpcUaClientDiagnostics.cs
│   │   │   │   ├── IOpcUaClientManager.cs
│   │   │   │   ├── IOpcUaConfiguration.cs
│   │   │   │   ├── IOpcUaSession.cs
│   │   │   │   ├── ISessionHandle.cs
│   │   │   │   ├── ISessionServices.cs
│   │   │   │   ├── ISubscriber.cs
│   │   │   │   ├── ISubscription.cs
│   │   │   │   ├── ISubscriptionDiagnostics.cs
│   │   │   │   ├── Models/
│   │   │   │   │   ├── AttributeMap.cs
│   │   │   │   │   ├── BaseMonitoredItemModel.cs
│   │   │   │   │   ├── ConnectionIdentifier.cs
│   │   │   │   │   ├── DataMonitoredItemModel.cs
│   │   │   │   │   ├── DiscoveredEndpointModel.cs
│   │   │   │   │   ├── EndpointIdentifier.cs
│   │   │   │   │   ├── EventMonitoredItemModel.cs
│   │   │   │   │   ├── ImmutableRelativePath.cs
│   │   │   │   │   ├── MonitoredAddressSpaceModel.cs
│   │   │   │   │   ├── MonitoredItemNotificationModel.cs
│   │   │   │   │   ├── MonitoredItemSourceFlags.cs
│   │   │   │   │   ├── SampledDataValueModel.cs
│   │   │   │   │   ├── ServiceCallContext.cs
│   │   │   │   │   ├── ServiceResponse.cs
│   │   │   │   │   └── SubscriptionModel.cs
│   │   │   │   ├── Runtime/
│   │   │   │   │   ├── CertificateInfo.cs
│   │   │   │   │   ├── CertificateStore.cs
│   │   │   │   │   ├── FlatCertificateStore.cs
│   │   │   │   │   ├── OpcUaClientConfig.cs
│   │   │   │   │   ├── OpcUaClientOptions.cs
│   │   │   │   │   ├── OpcUaSubscriptionConfig.cs
│   │   │   │   │   ├── OpcUaSubscriptionOptions.cs
│   │   │   │   │   ├── SecurityOptions.cs
│   │   │   │   │   └── TransportOptions.cs
│   │   │   │   ├── Services/
│   │   │   │   │   ├── OpcUaApplication.cs
│   │   │   │   │   ├── OpcUaClient.Browser.cs
│   │   │   │   │   ├── OpcUaClient.Sampler.cs
│   │   │   │   │   ├── OpcUaClient.Subscription.cs
│   │   │   │   │   ├── OpcUaClient.cs
│   │   │   │   │   ├── OpcUaClientManager.cs
│   │   │   │   │   ├── OpcUaClientTagList.cs
│   │   │   │   │   ├── OpcUaMonitoredItem.Condition.cs
│   │   │   │   │   ├── OpcUaMonitoredItem.CyclicRead.cs
│   │   │   │   │   ├── OpcUaMonitoredItem.DataChange.cs
│   │   │   │   │   ├── OpcUaMonitoredItem.Event.cs
│   │   │   │   │   ├── OpcUaMonitoredItem.Heartbeat.cs
│   │   │   │   │   ├── OpcUaMonitoredItem.ModelChange.cs
│   │   │   │   │   ├── OpcUaMonitoredItem.cs
│   │   │   │   │   ├── OpcUaSession.cs
│   │   │   │   │   ├── OpcUaStack.cs
│   │   │   │   │   ├── OpcUaStackKeySetLogger.cs
│   │   │   │   │   ├── OpcUaSubscription.cs
│   │   │   │   │   └── OpcUaSubscriptionNotification.cs
│   │   │   │   ├── StackExtensions.cs
│   │   │   │   └── Transport/
│   │   │   │       ├── Extensions/
│   │   │   │       │   ├── EndPointEx.cs
│   │   │   │       │   ├── IPAddressEx.cs
│   │   │   │       │   ├── NetworkInformationEx.cs
│   │   │   │       │   └── PhysicalAddressEx.cs
│   │   │   │       ├── IAsyncProbe.cs
│   │   │   │       ├── IPortProbe.cs
│   │   │   │       ├── IScanner.cs
│   │   │   │       ├── Models/
│   │   │   │       │   ├── AddressRange.cs
│   │   │   │       │   ├── IPv4Address.cs
│   │   │   │       │   ├── NetInterface.cs
│   │   │   │       │   ├── NetworkClass.cs
│   │   │   │       │   └── PortRange.cs
│   │   │   │       ├── Probe/
│   │   │   │       │   └── ServerProbe.cs
│   │   │   │       └── Scanner/
│   │   │   │           ├── BaseConnectProbe.cs
│   │   │   │           ├── NetworkScanner.cs
│   │   │   │           └── PortScanner.cs
│   │   │   └── Storage/
│   │   │       ├── PhysicalFileProviderFactory.cs
│   │   │       ├── PublishedNodesConverter.cs
│   │   │       └── PublishedNodesProvider.cs
│   │   └── tests/
│   │       ├── Azure.IIoT.OpcUa.Publisher.Tests.csproj
│   │       ├── GlobalSuppressions.cs
│   │       ├── Logging.cs
│   │       ├── Model/
│   │       │   └── MonitoredItemModelTests.cs
│   │       ├── Parser/
│   │       │   ├── ContentFilterParserTests.cs
│   │       │   ├── EventFilterParserTests.cs
│   │       │   └── TestParserContext.cs
│   │       ├── Properties/
│   │       │   └── AssemblyInfo.cs
│   │       ├── Publisher/
│   │       │   ├── empty_pn.json
│   │       │   ├── pn_2.5_legacy.json
│   │       │   ├── pn_2.5_legacy_error.json
│   │       │   ├── pn_assets.json
│   │       │   ├── pn_assets_with_optional_fields.json
│   │       │   ├── pn_events.json
│   │       │   ├── pn_opc_nodes_empty.json
│   │       │   ├── pn_opc_nodes_empty_and_null.json
│   │       │   ├── pn_opc_nodes_null.json
│   │       │   ├── pn_pending_alarms.json
│   │       │   ├── publishednodes.json
│   │       │   ├── publishednodes_with_duplicates.json
│   │       │   └── publishednodeswithoptionalfields.json
│   │       ├── Runtime/
│   │       │   └── TopicBuilderTests.cs
│   │       ├── Services/
│   │       │   ├── Alarms/
│   │       │   │   └── NodeServicesTests.cs
│   │       │   ├── Asset/
│   │       │   │   ├── ConfigurationTest1.cs
│   │       │   │   ├── ConfigurationTest2.cs
│   │       │   │   ├── ConfigurationTest3.cs
│   │       │   │   ├── ConfigurationTest4.cs
│   │       │   │   ├── WriteCollection1.cs
│   │       │   │   ├── WriteCollection2.cs
│   │       │   │   ├── WriteCollection3.cs
│   │       │   │   └── WriteCollection4.cs
│   │       │   ├── AssetDeviceIntegrationTests.cs
│   │       │   ├── DeterministicAlarms/
│   │       │   │   ├── NodeServicesTests1.cs
│   │       │   │   └── NodeServicesTests2.cs
│   │       │   ├── Encoder/
│   │       │   │   ├── MonitoredItemMessageEncoderJsonGzipTests.cs
│   │       │   │   ├── MonitoredItemMessageEncoderJsonTests.cs
│   │       │   │   ├── NetworkMessage.cs
│   │       │   │   ├── NetworkMessageEncoderJsonGzipTests.cs
│   │       │   │   ├── NetworkMessageEncoderJsonTests.cs
│   │       │   │   ├── NetworkMessageEncoderLegacyTests.cs
│   │       │   │   └── NetworkMessageEncoderUadpTests.cs
│   │       │   ├── FileSystem/
│   │       │   │   ├── BrowseTests.cs
│   │       │   │   ├── FileCollection.cs
│   │       │   │   ├── OperationsTests.cs
│   │       │   │   ├── ReadTests.cs
│   │       │   │   └── WriteTests.cs
│   │       │   ├── HistoricalAccess/
│   │       │   │   ├── NodeServicesTests.cs
│   │       │   │   ├── ReadAtTimesTests.cs
│   │       │   │   ├── ReadCollection.cs
│   │       │   │   ├── ReadModifiedTests.cs
│   │       │   │   ├── ReadProcessedTests.cs
│   │       │   │   ├── ReadValuesTests.cs
│   │       │   │   └── UpdateValuesTests.cs
│   │       │   ├── HistoricalEvents/
│   │       │   │   ├── NodeServicesTests.cs
│   │       │   │   └── ReadCollection.cs
│   │       │   ├── Plc/
│   │       │   │   ├── NodeServicesTests1.cs
│   │       │   │   └── NodeServicesTests2.cs
│   │       │   ├── PublishedNodesJsonServicesTests.cs
│   │       │   ├── RuntimeStateReporterTests.cs
│   │       │   ├── SimpleEvents/
│   │       │   │   └── NodeServicesTests.cs
│   │       │   └── TestData/
│   │       │       ├── BrowsePathTests.cs
│   │       │       ├── BrowseStreamTests.cs
│   │       │       ├── BrowseTests.cs
│   │       │       ├── CallArrayTests.cs
│   │       │       ├── CallScalarTests.cs
│   │       │       ├── ExpandTests1.cs
│   │       │       ├── ExpandTests2.cs
│   │       │       ├── MetadataArrayTests.cs
│   │       │       ├── MetadataScalarTests.cs
│   │       │       ├── MetadataTests.cs
│   │       │       ├── ReadArrayTests.cs
│   │       │       ├── ReadCollection.cs
│   │       │       ├── ReadScalarTests.cs
│   │       │       ├── WriteArrayTests.cs
│   │       │       ├── WriteCollection.cs
│   │       │       └── WriteScalarTests.cs
│   │       ├── Stack/
│   │       │   ├── Extensions/
│   │       │   │   ├── RelativePathExTests.cs
│   │       │   │   └── SequenceNumberTests.cs
│   │       │   ├── GetBrowsePathsFromRootTests.cs
│   │       │   ├── GetSimpleEventFilterTests.cs
│   │       │   ├── OpcUaApplicationTests.cs
│   │       │   ├── OpcUaMonitoredItemTests.cs
│   │       │   ├── OpcUaMonitoredItemTestsBase.cs
│   │       │   └── Transport/
│   │       │       ├── Extensions/
│   │       │       │   └── NetworkInformationExTests.cs
│   │       │       └── Models/
│   │       │           ├── AddressRangeTests.cs
│   │       │           ├── IPv4AddressTests.cs
│   │       │           └── PortRangeTests.cs
│   │       ├── Storage/
│   │       │   └── PublishedNodesJobConverterTests.cs
│   │       └── Utils/
│   │           ├── TempFileProviderBase.cs
│   │           └── Utils.cs
│   ├── Azure.IIoT.OpcUa.Publisher.Models/
│   │   ├── src/
│   │   │   ├── AdditionalData.cs
│   │   │   ├── AggregateConfigurationModel.cs
│   │   │   ├── AggregateFilterModel.cs
│   │   │   ├── ApplicationInfoModel.cs
│   │   │   ├── ApplicationRegistrationModel.cs
│   │   │   ├── ApplicationType.cs
│   │   │   ├── AttributeReadRequestModel.cs
│   │   │   ├── AttributeReadResponseModel.cs
│   │   │   ├── AttributeWriteRequestModel.cs
│   │   │   ├── AttributeWriteResponseModel.cs
│   │   │   ├── AuthenticationMethodModel.cs
│   │   │   ├── Azure.IIoT.OpcUa.Publisher.Models.csproj
│   │   │   ├── BrowseDirection.cs
│   │   │   ├── BrowseFirstRequestModel.cs
│   │   │   ├── BrowseFirstResponseModel.cs
│   │   │   ├── BrowseNextRequestModel.cs
│   │   │   ├── BrowseNextResponseModel.cs
│   │   │   ├── BrowsePathRequestModel.cs
│   │   │   ├── BrowsePathResponseModel.cs
│   │   │   ├── BrowseStreamChunkModel.cs
│   │   │   ├── BrowseStreamRequestModel.cs
│   │   │   ├── BrowseViewModel.cs
│   │   │   ├── CertificateStoreName.cs
│   │   │   ├── ChannelDiagnosticModel.cs
│   │   │   ├── ChannelKeyModel.cs
│   │   │   ├── ConditionHandlingOptionsModel.cs
│   │   │   ├── ConnectionDiagnosticsModel.cs
│   │   │   ├── ConnectionModel.cs
│   │   │   ├── ConnectionOptions.cs
│   │   │   ├── Constants.cs
│   │   │   ├── ContentFilterElementModel.cs
│   │   │   ├── ContentFilterModel.cs
│   │   │   ├── CredentialModel.cs
│   │   │   ├── CredentialType.cs
│   │   │   ├── DataChangeFilterModel.cs
│   │   │   ├── DataChangeTriggerType.cs
│   │   │   ├── DataLocation.cs
│   │   │   ├── DataSetFieldContentFlags.cs
│   │   │   ├── DataSetMessageContentFlags.cs
│   │   │   ├── DataSetMetaDataModel.cs
│   │   │   ├── DataSetOrderingType.cs
│   │   │   ├── DataSetRoutingMode.cs
│   │   │   ├── DataSetWriterMessageSettingsModel.cs
│   │   │   ├── DataSetWriterModel.cs
│   │   │   ├── DataTypeMetadataModel.cs
│   │   │   ├── DeadbandType.cs
│   │   │   ├── DeleteEventsDetailsModel.cs
│   │   │   ├── DeleteValuesAtTimesDetailsModel.cs
│   │   │   ├── DeleteValuesDetailsModel.cs
│   │   │   ├── DiagnosticsLevel.cs
│   │   │   ├── DiagnosticsModel.cs
│   │   │   ├── DiscoveryCancelRequestModel.cs
│   │   │   ├── DiscoveryConfigModel.cs
│   │   │   ├── DiscoveryEventModel.cs
│   │   │   ├── DiscoveryMode.cs
│   │   │   ├── DiscoveryProgressModel.cs
│   │   │   ├── DiscoveryProgressType.cs
│   │   │   ├── DiscoveryRequestModel.cs
│   │   │   ├── DiscoveryResultModel.cs
│   │   │   ├── EndpointConnectivityState.cs
│   │   │   ├── EndpointEventModel.cs
│   │   │   ├── EndpointEventType.cs
│   │   │   ├── EndpointInfoModel.cs
│   │   │   ├── EndpointModel.cs
│   │   │   ├── EndpointRegistrationModel.cs
│   │   │   ├── EnumDescriptionModel.cs
│   │   │   ├── EnumFieldDescriptionModel.cs
│   │   │   ├── EventFilterModel.cs
│   │   │   ├── ExceptionDeviationType.cs
│   │   │   ├── ExtensionFieldModel.cs
│   │   │   ├── FileInfoModel.cs
│   │   │   ├── FileOpenWriteOptionsModel.cs
│   │   │   ├── FileSystemObjectModel.cs
│   │   │   ├── FileWriteMode.cs
│   │   │   ├── FilterOperandModel.cs
│   │   │   ├── FilterOperatorType.cs
│   │   │   ├── GetConfiguredEndpointsRequestModel.cs
│   │   │   ├── GetConfiguredEndpointsResponseModel.cs
│   │   │   ├── GetConfiguredNodesOnEndpointResponseModel.cs
│   │   │   ├── HeartbeatBehavior.cs
│   │   │   ├── HistoricEventModel.cs
│   │   │   ├── HistoricValueModel.cs
│   │   │   ├── HistoryConfigurationModel.cs
│   │   │   ├── HistoryConfigurationRequestModel.cs
│   │   │   ├── HistoryConfigurationResponseModel.cs
│   │   │   ├── HistoryReadNextRequestModel.cs
│   │   │   ├── HistoryReadNextResponseModel.cs
│   │   │   ├── HistoryReadRequestModel.cs
│   │   │   ├── HistoryReadResponseModel.cs
│   │   │   ├── HistoryServerCapabilitiesModel.cs
│   │   │   ├── HistoryUpdateOperation.cs
│   │   │   ├── HistoryUpdateRequestModel.cs
│   │   │   ├── HistoryUpdateResponseModel.cs
│   │   │   ├── InstanceDeclarationModel.cs
│   │   │   ├── LocalizedTextModel.cs
│   │   │   ├── MessageEncoding.cs
│   │   │   ├── MessageTimestamp.cs
│   │   │   ├── MessagingMode.cs
│   │   │   ├── MethodCallArgumentModel.cs
│   │   │   ├── MethodCallRequestModel.cs
│   │   │   ├── MethodCallResponseModel.cs
│   │   │   ├── MethodMetadataArgumentModel.cs
│   │   │   ├── MethodMetadataModel.cs
│   │   │   ├── MethodMetadataRequestModel.cs
│   │   │   ├── MethodMetadataResponseModel.cs
│   │   │   ├── ModelChangeHandlingOptionsModel.cs
│   │   │   ├── ModificationInfoModel.cs
│   │   │   ├── MonitoredItemWatchdogCondition.cs
│   │   │   ├── MonitoringItemMode.cs
│   │   │   ├── NamespaceFormat.cs
│   │   │   ├── NetworkMessageContentFlags.cs
│   │   │   ├── NodeAccessLevel.cs
│   │   │   ├── NodeAccessRestrictions.cs
│   │   │   ├── NodeAttribute.cs
│   │   │   ├── NodeClass.cs
│   │   │   ├── NodeEventNotifier.cs
│   │   │   ├── NodeIdModel.cs
│   │   │   ├── NodeMetadataRequestModel.cs
│   │   │   ├── NodeMetadataResponseModel.cs
│   │   │   ├── NodeModel.cs
│   │   │   ├── NodePathTargetModel.cs
│   │   │   ├── NodeReferenceModel.cs
│   │   │   ├── NodeType.cs
│   │   │   ├── NodeValueRank.cs
│   │   │   ├── OpcAuthenticationMode.cs
│   │   │   ├── OpcNodeModel.cs
│   │   │   ├── OperationContextModel.cs
│   │   │   ├── OperationLimitsModel.cs
│   │   │   ├── Properties/
│   │   │   │   └── AssemblyInfo.cs
│   │   │   ├── PublishBulkRequestModel.cs
│   │   │   ├── PublishBulkResponseModel.cs
│   │   │   ├── PublishDiagnosticInfoModel.cs
│   │   │   ├── PublishStartRequestModel.cs
│   │   │   ├── PublishStartResponseModel.cs
│   │   │   ├── PublishStopRequestModel.cs
│   │   │   ├── PublishStopResponseModel.cs
│   │   │   ├── PublishedDataItemsModel.cs
│   │   │   ├── PublishedDataSetEventModel.cs
│   │   │   ├── PublishedDataSetMessageSchemaModel.cs
│   │   │   ├── PublishedDataSetMetaDataModel.cs
│   │   │   ├── PublishedDataSetMethodModel.cs
│   │   │   ├── PublishedDataSetModel.cs
│   │   │   ├── PublishedDataSetSettingsModel.cs
│   │   │   ├── PublishedDataSetSourceModel.cs
│   │   │   ├── PublishedDataSetTriggerModel.cs
│   │   │   ├── PublishedDataSetVariableModel.cs
│   │   │   ├── PublishedEventItemsModel.cs
│   │   │   ├── PublishedFieldMetaDataModel.cs
│   │   │   ├── PublishedItemListRequestModel.cs
│   │   │   ├── PublishedItemListResponseModel.cs
│   │   │   ├── PublishedItemModel.cs
│   │   │   ├── PublishedMethodItemsModel.cs
│   │   │   ├── PublishedNetworkMessageSchemaModel.cs
│   │   │   ├── PublishedNodeCreateAssetRequestModel.cs
│   │   │   ├── PublishedNodeDeleteAssetRequestModel.cs
│   │   │   ├── PublishedNodeExpansionModel.cs
│   │   │   ├── PublishedNodesEntryModel.cs
│   │   │   ├── PublishedNodesEntryRequestModel.cs
│   │   │   ├── PublishedNodesResponseModel.cs
│   │   │   ├── PublisherDiagnosticTargetType.cs
│   │   │   ├── PublishingQueueSettingsModel.cs
│   │   │   ├── QueryCompilationRequestModel.cs
│   │   │   ├── QueryCompilationResponseModel.cs
│   │   │   ├── QueryType.cs
│   │   │   ├── ReadEventsDetailsModel.cs
│   │   │   ├── ReadModifiedValuesDetailsModel.cs
│   │   │   ├── ReadProcessedValuesDetailsModel.cs
│   │   │   ├── ReadRequestModel.cs
│   │   │   ├── ReadResponseModel.cs
│   │   │   ├── ReadValuesAtTimesDetailsModel.cs
│   │   │   ├── ReadValuesDetailsModel.cs
│   │   │   ├── RelativePathElementModel.cs
│   │   │   ├── RequestEnvelope.cs
│   │   │   ├── RequestHeaderModel.cs
│   │   │   ├── RolePermissionModel.cs
│   │   │   ├── RolePermissions.cs
│   │   │   ├── RuntimeStateEventModel.cs
│   │   │   ├── RuntimeStateEventType.cs
│   │   │   ├── SecurityMode.cs
│   │   │   ├── ServerCapabilitiesModel.cs
│   │   │   ├── ServerEndpointQueryModel.cs
│   │   │   ├── ServerRegistrationRequestModel.cs
│   │   │   ├── ServiceCounterModel.cs
│   │   │   ├── ServiceResponse.cs
│   │   │   ├── ServiceResultModel.cs
│   │   │   ├── SessionDiagnosticsModel.cs
│   │   │   ├── SetConfiguredEndpointsRequestModel.cs
│   │   │   ├── SimpleAttributeOperandModel.cs
│   │   │   ├── SimpleTypeDescriptionModel.cs
│   │   │   ├── SkipValidationAttribute.cs
│   │   │   ├── StructureDescriptionModel.cs
│   │   │   ├── StructureFieldDescriptionModel.cs
│   │   │   ├── StructureType.cs
│   │   │   ├── SubscriptionDiagnosticsModel.cs
│   │   │   ├── SubscriptionWatchdogBehavior.cs
│   │   │   ├── TestConnectionRequestModel.cs
│   │   │   ├── TestConnectionResponseModel.cs
│   │   │   ├── TimestampsToReturn.cs
│   │   │   ├── TypeDefinitionModel.cs
│   │   │   ├── UpdateEventsDetailsModel.cs
│   │   │   ├── UpdateValuesDetailsModel.cs
│   │   │   ├── UserIdentityModel.cs
│   │   │   ├── ValueReadRequestModel.cs
│   │   │   ├── ValueReadResponseModel.cs
│   │   │   ├── ValueWriteRequestModel.cs
│   │   │   ├── ValueWriteResponseModel.cs
│   │   │   ├── VariableMetadataModel.cs
│   │   │   ├── WriteRequestModel.cs
│   │   │   ├── WriteResponseModel.cs
│   │   │   ├── WriterGroupDiagnosticModel.cs
│   │   │   ├── WriterGroupMessageSettingsModel.cs
│   │   │   ├── WriterGroupModel.cs
│   │   │   ├── WriterGroupTransport.cs
│   │   │   ├── X509CertificateChainModel.cs
│   │   │   ├── X509CertificateModel.cs
│   │   │   └── X509ChainStatus.cs
│   │   └── tests/
│   │       ├── Azure.IIoT.OpcUa.Publisher.Models.Tests.csproj
│   │       ├── Fixtures/
│   │       │   └── TypeFixture.cs
│   │       ├── GlobalSuppressions.cs
│   │       ├── JsonSerializerTests.cs
│   │       ├── MsgPackSerializerTests.cs
│   │       ├── NewtonsoftSerializerTests.cs
│   │       └── PublishNodesEndpointApiModelTests.cs
│   ├── Azure.IIoT.OpcUa.Publisher.Module/
│   │   ├── cli/
│   │   │   ├── Azure.IIoT.OpcUa.Publisher.Module.Cli.csproj
│   │   │   ├── Initfiles/
│   │   │   │   ├── Kepserver.init
│   │   │   │   ├── MachineTools.init
│   │   │   │   ├── Machinery.init
│   │   │   │   ├── Objects.init
│   │   │   │   └── Variables.init
│   │   │   ├── Profiles/
│   │   │   │   ├── AllBad.json
│   │   │   │   ├── BrowsePath.json
│   │   │   │   ├── CyclicReads.json
│   │   │   │   ├── DataItems.json
│   │   │   │   ├── DataSetTopics.json
│   │   │   │   ├── Deadband.json
│   │   │   │   ├── Empty.json
│   │   │   │   ├── Extremes.json
│   │   │   │   ├── FastTime.json
│   │   │   │   ├── FixedAndData.json
│   │   │   │   ├── Fixedvalue.json
│   │   │   │   ├── Heartbeat.json
│   │   │   │   ├── Heartbeat2.json
│   │   │   │   ├── Heartbeat3.json
│   │   │   │   ├── Isa95Jobs.json
│   │   │   │   ├── KeepAlive.json
│   │   │   │   ├── KeyFrames.json
│   │   │   │   ├── ModelChanges.json
│   │   │   │   ├── MultiDataSetWriter.json
│   │   │   │   ├── MultiEndpoint.json
│   │   │   │   ├── MultiWriterGroup.json
│   │   │   │   ├── MultiWriterGroupFs.json
│   │   │   │   ├── NoNodes.json
│   │   │   │   ├── PendingAlarms.json
│   │   │   │   ├── PlcSimulation.json
│   │   │   │   ├── RegisteredRead.json
│   │   │   │   ├── SimpleEvents.json
│   │   │   │   ├── SlowSample.json
│   │   │   │   ├── SomeBad.json
│   │   │   │   ├── SubscribeErrors.json
│   │   │   │   ├── TopicPerNode.json
│   │   │   │   └── UnifiedNamespace.json
│   │   │   ├── Program.cs
│   │   │   ├── Properties/
│   │   │   │   └── AssemblyInfo.cs
│   │   │   └── publishednodes.json
│   │   ├── src/
│   │   │   ├── Azure.IIoT.OpcUa.Publisher.Module.csproj
│   │   │   ├── Controllers/
│   │   │   │   ├── CertificatesController.cs
│   │   │   │   ├── ConfigurationController.cs
│   │   │   │   ├── DiagnosticsController.cs
│   │   │   │   ├── DiscoveryController.cs
│   │   │   │   ├── FileSystemController.cs
│   │   │   │   ├── GeneralController.cs
│   │   │   │   ├── HistoryController.cs
│   │   │   │   ├── LegacyController.cs
│   │   │   │   ├── PublisherController.cs
│   │   │   │   └── WriterController.cs
│   │   │   ├── Filters/
│   │   │   │   ├── ControllerExceptionFilterAttribute.cs
│   │   │   │   └── RouterExceptionFilterAttribute.cs
│   │   │   ├── Program.cs
│   │   │   ├── Properties/
│   │   │   │   └── AssemblyInfo.cs
│   │   │   ├── Runtime/
│   │   │   │   ├── CommandLine.cs
│   │   │   │   ├── Configuration.cs
│   │   │   │   ├── Security.cs
│   │   │   │   └── Syslog.cs
│   │   │   └── Startup.cs
│   │   └── tests/
│   │       ├── Azure.IIoT.OpcUa.Publisher.Module.Tests.csproj
│   │       ├── Clients/
│   │       │   ├── Adapters/
│   │       │   │   ├── DiscoveryApiAdapter.cs
│   │       │   │   ├── HistoryApiAdapter.cs
│   │       │   │   ├── PublisherApiAdapter.cs
│   │       │   │   └── TwinApiAdapter.cs
│   │       │   ├── ConfigurationServicesRestClient.cs
│   │       │   ├── FileSystemServicesRestClient.cs
│   │       │   ├── HistoryServicesRestClient.cs
│   │       │   └── NodeServicesRestClient.cs
│   │       ├── Controller/
│   │       │   ├── Alarms/
│   │       │   │   ├── Json/
│   │       │   │   │   └── NodeServicesTests.cs
│   │       │   │   └── MsgPack/
│   │       │   │       └── NodeServicesTests.cs
│   │       │   ├── Asset/
│   │       │   │   ├── Json/
│   │       │   │   │   ├── ConfigurationTest1.cs
│   │       │   │   │   ├── ConfigurationTest2.cs
│   │       │   │   │   ├── ConfigurationTest3.cs
│   │       │   │   │   ├── ConfigurationTest4.cs
│   │       │   │   │   ├── WriteCollection1.cs
│   │       │   │   │   ├── WriteCollection2.cs
│   │       │   │   │   ├── WriteCollection3.cs
│   │       │   │   │   └── WriteCollection4.cs
│   │       │   │   └── MsgPack/
│   │       │   │       ├── ConfigurationTest1.cs
│   │       │   │       ├── ConfigurationTest2.cs
│   │       │   │       ├── ConfigurationTest3.cs
│   │       │   │       ├── ConfigurationTest4.cs
│   │       │   │       ├── WriteCollection1.cs
│   │       │   │       ├── WriteCollection2.cs
│   │       │   │       ├── WriteCollection3.cs
│   │       │   │       └── WriteCollection4.cs
│   │       │   ├── DeterministicAlarms/
│   │       │   │   ├── Json/
│   │       │   │   │   ├── NodeServicesTests1.cs
│   │       │   │   │   └── NodeServicesTests2.cs
│   │       │   │   └── MsgPack/
│   │       │   │       ├── NodeServicesTests1.cs
│   │       │   │       └── NodeServicesTests2.cs
│   │       │   ├── DmApiPublisherControllerTests.cs
│   │       │   ├── FileSystem/
│   │       │   │   ├── Json/
│   │       │   │   │   ├── BrowseTests.cs
│   │       │   │   │   ├── FileCollection.cs
│   │       │   │   │   ├── OperationsTests.cs
│   │       │   │   │   ├── ReadTests.cs
│   │       │   │   │   └── WriteTests.cs
│   │       │   │   └── MsgPack/
│   │       │   │       ├── BrowseTests.cs
│   │       │   │       ├── FileCollection.cs
│   │       │   │       ├── OperationsTests.cs
│   │       │   │       ├── ReadTests.cs
│   │       │   │       └── WriteTests.cs
│   │       │   ├── HistoricalAccess/
│   │       │   │   ├── Json/
│   │       │   │   │   ├── NodeServicesTests.cs
│   │       │   │   │   ├── ReadAtTimesTests.cs
│   │       │   │   │   ├── ReadCollection.cs
│   │       │   │   │   ├── ReadModifiedTests.cs
│   │       │   │   │   ├── ReadProcessedTests.cs
│   │       │   │   │   ├── ReadValuesTests.cs
│   │       │   │   │   └── UpdateValuesTests.cs
│   │       │   │   └── MsgPack/
│   │       │   │       ├── NodeServicesTests.cs
│   │       │   │       ├── ReadAtTimesTests.cs
│   │       │   │       ├── ReadCollection.cs
│   │       │   │       ├── ReadModifiedTests.cs
│   │       │   │       ├── ReadProcessedTests.cs
│   │       │   │       ├── ReadValuesTests.cs
│   │       │   │       └── UpdateValuesTests.cs
│   │       │   ├── HistoricalEvents/
│   │       │   │   ├── Json/
│   │       │   │   │   ├── NodeServicesTests.cs
│   │       │   │   │   └── ReadCollection.cs
│   │       │   │   └── MsgPack/
│   │       │   │       ├── NodeServicesTests.cs
│   │       │   │       └── ReadCollection.cs
│   │       │   ├── Plc/
│   │       │   │   ├── Json/
│   │       │   │   │   ├── NodeServicesTests1.cs
│   │       │   │   │   └── NodeServicesTests2.cs
│   │       │   │   └── MsgPack/
│   │       │   │       ├── NodeServicesTests1.cs
│   │       │   │       └── NodeServicesTests2.cs
│   │       │   ├── SimpleEvents/
│   │       │   │   ├── Json/
│   │       │   │   │   └── NodeServicesTests.cs
│   │       │   │   └── MsgPack/
│   │       │   │       └── NodeServicesTests.cs
│   │       │   └── TestData/
│   │       │       ├── Json/
│   │       │       │   ├── BrowsePathTests.cs
│   │       │       │   ├── BrowseStreamTests.cs
│   │       │       │   ├── BrowseTests.cs
│   │       │       │   ├── CallArrayTests.cs
│   │       │       │   ├── CallScalarTests.cs
│   │       │       │   ├── ExpandTests1.cs
│   │       │       │   ├── MetadataArrayTests.cs
│   │       │       │   ├── MetadataScalarTests.cs
│   │       │       │   ├── MetadataTests.cs
│   │       │       │   ├── ReadCollection.cs
│   │       │       │   ├── ValueReadArrayTests.cs
│   │       │       │   ├── ValueReadScalarTests.cs
│   │       │       │   ├── ValueWriteArrayTests.cs
│   │       │       │   ├── ValueWriteScalarTests.cs
│   │       │       │   └── WriteCollection.cs
│   │       │       └── MsgPack/
│   │       │           ├── BrowsePathTests.cs
│   │       │           ├── BrowseStreamTests.cs
│   │       │           ├── BrowseTests.cs
│   │       │           ├── CallArrayTests.cs
│   │       │           ├── CallScalarTests.cs
│   │       │           ├── ExpandTests1.cs
│   │       │           ├── MetadataArrayTests.cs
│   │       │           ├── MetadataScalarTests.cs
│   │       │           ├── MetadataTests.cs
│   │       │           ├── ReadCollection.cs
│   │       │           ├── ValueReadArrayTests.cs
│   │       │           ├── ValueReadScalarTests.cs
│   │       │           ├── ValueWriteArrayTests.cs
│   │       │           ├── ValueWriteScalarTests.cs
│   │       │           └── WriteCollection.cs
│   │       ├── Fixtures/
│   │       │   ├── PublisherIntegrationTestBase.cs
│   │       │   ├── PublisherModule.cs
│   │       │   ├── PublisherModuleFixture.cs
│   │       │   ├── ReferenceServerReadCollection.cs
│   │       │   ├── TempFileProviderBase.cs
│   │       │   ├── TestSerializerType.cs
│   │       │   └── TwinIntegrationTestBase.cs
│   │       ├── GlobalSuppressions.cs
│   │       ├── Logging.cs
│   │       ├── Mqtt/
│   │       │   ├── Alarms/
│   │       │   │   └── NodeServicesTests.cs
│   │       │   ├── DeterministicAlarms/
│   │       │   │   ├── NodeServicesTests1.cs
│   │       │   │   └── NodeServicesTests2.cs
│   │       │   ├── HistoricalAccess/
│   │       │   │   ├── NodeServicesTests.cs
│   │       │   │   ├── ReadAtTimesTests.cs
│   │       │   │   ├── ReadCollection.cs
│   │       │   │   ├── ReadModifiedTests.cs
│   │       │   │   ├── ReadProcessedTests.cs
│   │       │   │   ├── ReadValuesTests.cs
│   │       │   │   └── UpdateValuesTests.cs
│   │       │   ├── HistoricalEvents/
│   │       │   │   ├── NodeServicesTests.cs
│   │       │   │   └── ReadCollection.cs
│   │       │   ├── Plc/
│   │       │   │   ├── NodeServicesTests1.cs
│   │       │   │   └── NodeServicesTests2.cs
│   │       │   ├── ReferenceServer/
│   │       │   │   ├── MqttConfigurationIntegrationTests.cs
│   │       │   │   ├── MqttPubSubIntegrationTests.cs
│   │       │   │   └── MqttUnifiedNamespaceTests.cs
│   │       │   ├── SimpleEvents/
│   │       │   │   └── NodeServicesTests.cs
│   │       │   └── TestData/
│   │       │       ├── BrowsePathTests.cs
│   │       │       ├── BrowseStreamTests.cs
│   │       │       ├── BrowseTests.cs
│   │       │       ├── CallArrayTests.cs
│   │       │       ├── CallScalarTests.cs
│   │       │       ├── MetadataArrayTests.cs
│   │       │       ├── MetadataScalarTests.cs
│   │       │       ├── MetadataTests.cs
│   │       │       ├── ReadCollection.cs
│   │       │       ├── ValueReadArrayTests.cs
│   │       │       ├── ValueReadScalarTests.cs
│   │       │       ├── ValueWriteArrayTests.cs
│   │       │       ├── ValueWriteScalarTests.cs
│   │       │       └── WriteCollection.cs
│   │       ├── Properties/
│   │       │   └── AssemblyInfo.cs
│   │       ├── Resources/
│   │       │   ├── CyclicRead.json
│   │       │   ├── DataItems.json
│   │       │   ├── DataItems1.json
│   │       │   ├── DataItems2.json
│   │       │   ├── Deadband.json
│   │       │   ├── DmApiPayloadCollection.json
│   │       │   ├── DmApiPayloadTwoEndpoints.json
│   │       │   ├── ExtensionFields.json
│   │       │   ├── Fixedvalue.json
│   │       │   ├── Heartbeat.json
│   │       │   ├── Heartbeat2.json
│   │       │   ├── HeartbeatErrors.json
│   │       │   ├── Isa95Jobs.json
│   │       │   ├── KeepAlive.json
│   │       │   ├── KeyFrames.json
│   │       │   ├── ModelChanges.json
│   │       │   ├── PendingAlarms.json
│   │       │   ├── RegisteredRead.json
│   │       │   ├── SimpleEvents.json
│   │       │   ├── SimpleEvents2.json
│   │       │   ├── UnifiedNamespace.json
│   │       │   └── empty_pn.json
│   │       ├── Runtime/
│   │       │   ├── CommandLineTest.cs
│   │       │   ├── PublisherCliTests.cs
│   │       │   └── PublisherControllerTests.cs
│   │       ├── Sdk/
│   │       │   ├── Alarms/
│   │       │   │   └── NodeServicesTests.cs
│   │       │   ├── DeterministicAlarms/
│   │       │   │   ├── NodeServicesTests1.cs
│   │       │   │   └── NodeServicesTests2.cs
│   │       │   ├── HistoricalAccess/
│   │       │   │   ├── NodeServicesTests.cs
│   │       │   │   ├── ReadAtTimesTests.cs
│   │       │   │   ├── ReadCollection.cs
│   │       │   │   ├── ReadModifiedTests.cs
│   │       │   │   ├── ReadProcessedTests.cs
│   │       │   │   ├── ReadValuesTests.cs
│   │       │   │   └── UpdateValuesTests.cs
│   │       │   ├── HistoricalEvents/
│   │       │   │   ├── NodeServicesTests.cs
│   │       │   │   └── ReadCollection.cs
│   │       │   ├── Isa95Jobs/
│   │       │   │   └── BasicPubSubIntegrationTests.cs
│   │       │   ├── Plc/
│   │       │   │   ├── NodeServicesTests1.cs
│   │       │   │   └── NodeServicesTests2.cs
│   │       │   ├── ReferenceServer/
│   │       │   │   ├── AdvancedPubSubIntegrationTests.cs
│   │       │   │   ├── BasicPubSubIntegrationTests.cs
│   │       │   │   ├── BasicSamplesIntegrationTests.cs
│   │       │   │   └── ReverseConnectIntegrationTests.cs
│   │       │   ├── SimpleEvents/
│   │       │   │   └── NodeServicesTests.cs
│   │       │   └── TestData/
│   │       │       ├── BrowsePathTests.cs
│   │       │       ├── BrowseStreamTests.cs
│   │       │       ├── BrowseTests.cs
│   │       │       ├── CallArrayTests.cs
│   │       │       ├── CallScalarTests.cs
│   │       │       ├── MetadataArrayTests.cs
│   │       │       ├── MetadataScalarTests.cs
│   │       │       ├── MetadataTests.cs
│   │       │       ├── ReadCollection.cs
│   │       │       ├── ValueReadArrayTests.cs
│   │       │       ├── ValueReadScalarTests.cs
│   │       │       ├── ValueWriteArrayTests.cs
│   │       │       ├── ValueWriteScalarTests.cs
│   │       │       └── WriteCollection.cs
│   │       └── _dummy_.sln
│   ├── Azure.IIoT.OpcUa.Publisher.Sdk/
│   │   └── src/
│   │       ├── Azure.IIoT.OpcUa.Publisher.Sdk.csproj
│   │       ├── Clients/
│   │       │   ├── DiscoveryApiClient.cs
│   │       │   ├── Extensions.cs
│   │       │   ├── HistoryApiClient.cs
│   │       │   ├── PublisherApiClient.cs
│   │       │   └── TwinApiClient.cs
│   │       ├── IDiscoveryApi.cs
│   │       ├── IHistoryApi.cs
│   │       ├── IPublisherApi.cs
│   │       ├── ITwinApi.cs
│   │       ├── Properties/
│   │       │   └── AssemblyInfo.cs
│   │       └── SdkOptions.cs
│   ├── Azure.IIoT.OpcUa.Publisher.Testing/
│   │   ├── cli/
│   │   │   ├── Azure.IIoT.OpcUa.Publisher.Testing.Cli.csproj
│   │   │   ├── FlatCertificateStore.cs
│   │   │   ├── Program.cs
│   │   │   ├── Properties/
│   │   │   │   └── AssemblyInfo.cs
│   │   │   └── TestServerFactory.cs
│   │   ├── src/
│   │   │   ├── Alarms/
│   │   │   │   ├── AlarmConditionNodeManager.cs
│   │   │   │   ├── AlarmConditionServer.cs
│   │   │   │   ├── AlarmConditionServerConfiguration.cs
│   │   │   │   ├── AreaState.cs
│   │   │   │   ├── ModelUtils.cs
│   │   │   │   ├── Namespaces.cs
│   │   │   │   ├── SourceState.cs
│   │   │   │   ├── UnderlyingSystem.cs
│   │   │   │   ├── UnderlyingSystemAlarm.cs
│   │   │   │   ├── UnderlyingSystemAlarmStates.cs
│   │   │   │   └── UnderlyingSystemSource.cs
│   │   │   ├── Asset/
│   │   │   │   ├── AssetNodeManager.cs
│   │   │   │   ├── AssetServer.cs
│   │   │   │   ├── AssetTag.cs
│   │   │   │   ├── FileManager.cs
│   │   │   │   ├── IAsset.cs
│   │   │   │   ├── ModbusBinding.cs
│   │   │   │   ├── ModbusFormExtension.cs
│   │   │   │   ├── ModbusProtocol.cs
│   │   │   │   ├── ModbusTcpAsset.cs
│   │   │   │   ├── Namespaces.cs
│   │   │   │   ├── Samples/
│   │   │   │   │   └── SimulatedAsset.td.jsonld
│   │   │   │   ├── SimulatedAsset.cs
│   │   │   │   ├── SimulatedBinding.cs
│   │   │   │   ├── SimulatedFormExtension.cs
│   │   │   │   └── ThingDescription.cs
│   │   │   ├── Azure.IIoT.OpcUa.Publisher.Testing.Servers.csproj
│   │   │   ├── Boiler/
│   │   │   │   ├── BoilerNodeManager.cs
│   │   │   │   ├── BoilerServer.cs
│   │   │   │   ├── BoilerState.cs
│   │   │   │   ├── BoilerStateMachineState.cs
│   │   │   │   └── GenericController.cs
│   │   │   ├── Common/
│   │   │   │   ├── DataChangeMonitoredItem.cs
│   │   │   │   ├── FolderConfiguration.cs
│   │   │   │   ├── MonitoredNode.cs
│   │   │   │   └── SampleNodeManager.cs
│   │   │   ├── DataAccess/
│   │   │   │   ├── BlockState.cs
│   │   │   │   ├── DataAccessNodeManager.cs
│   │   │   │   ├── DataAccessServer.cs
│   │   │   │   ├── DataAccessServerConfiguration.cs
│   │   │   │   ├── ModelUtils.cs
│   │   │   │   ├── Namespaces.cs
│   │   │   │   ├── SegmentBrowser.cs
│   │   │   │   ├── SegmentState.cs
│   │   │   │   ├── UnderlyingSystem.cs
│   │   │   │   ├── UnderlyingSystemBlock.cs
│   │   │   │   ├── UnderlyingSystemDataType.cs
│   │   │   │   ├── UnderlyingSystemSegment.cs
│   │   │   │   ├── UnderlyingSystemTag.cs
│   │   │   │   └── UnderlyingSystemTagType.cs
│   │   │   ├── DeterministicAlarms/
│   │   │   │   ├── Configuration/
│   │   │   │   │   ├── Alarm.cs
│   │   │   │   │   ├── AlarmObjectStates.cs
│   │   │   │   │   ├── AlarmsConfiguration.cs
│   │   │   │   │   ├── ConditionStates.cs
│   │   │   │   │   ├── Event.cs
│   │   │   │   │   ├── Folder.cs
│   │   │   │   │   ├── Script.cs
│   │   │   │   │   ├── ScriptException.cs
│   │   │   │   │   ├── Source.cs
│   │   │   │   │   ├── StateChange.cs
│   │   │   │   │   └── Step.cs
│   │   │   │   ├── DeterministicAlarmsNodeManager.cs
│   │   │   │   ├── DeterministicAlarmsServer.cs
│   │   │   │   ├── Model/
│   │   │   │   │   ├── SimConditionStatesEnum.cs
│   │   │   │   │   ├── SimFolderState.cs
│   │   │   │   │   └── SimSourceNodeState.cs
│   │   │   │   ├── Namespaces.cs
│   │   │   │   ├── ScriptEngine.cs
│   │   │   │   ├── SimBackend/
│   │   │   │   │   ├── SimAlarmStateBackend.cs
│   │   │   │   │   ├── SimBackendService.cs
│   │   │   │   │   └── SimSourceNodeBackend.cs
│   │   │   │   └── readme.md
│   │   │   ├── FileSystem/
│   │   │   │   ├── DirectoryBrowser.cs
│   │   │   │   ├── DirectoryObjectState.cs
│   │   │   │   ├── FileHandle.cs
│   │   │   │   ├── FileObjectState.cs
│   │   │   │   ├── FileSystem.cs
│   │   │   │   ├── FileSystemNodeManager.cs
│   │   │   │   ├── FileSystemServer.cs
│   │   │   │   ├── FileSystemServerConfiguration.cs
│   │   │   │   ├── ModelUtils.cs
│   │   │   │   └── Namespaces.cs
│   │   │   ├── Generated/
│   │   │   │   ├── Asset/
│   │   │   │   │   └── Design/
│   │   │   │   │       ├── Asset.Classes.cs
│   │   │   │   │       ├── Asset.Constants.cs
│   │   │   │   │       └── Asset.NodeSet2.xml
│   │   │   │   ├── Boiler/
│   │   │   │   │   └── Design/
│   │   │   │   │       ├── Boiler.Classes.cs
│   │   │   │   │       ├── Boiler.Constants.cs
│   │   │   │   │       ├── Boiler.NodeIds.csv
│   │   │   │   │       ├── Boiler.NodeSet.xml
│   │   │   │   │       ├── Boiler.NodeSet2.xml
│   │   │   │   │       ├── Boiler.PredefinedNodes.uanodes
│   │   │   │   │       ├── Boiler.PredefinedNodes.xml
│   │   │   │   │       ├── Boiler.Types.bsd
│   │   │   │   │       ├── Boiler.Types.xsd
│   │   │   │   │       ├── BoilerDesign.csv
│   │   │   │   │       └── BoilerDesign.xml
│   │   │   │   ├── BuildDesigns.bat
│   │   │   │   ├── BuildNodesets.bat
│   │   │   │   ├── HistoricalEvents/
│   │   │   │   │   └── Design/
│   │   │   │   │       ├── HistoricalEvents.Classes.cs
│   │   │   │   │       ├── HistoricalEvents.Constants.cs
│   │   │   │   │       ├── HistoricalEvents.NodeIds.csv
│   │   │   │   │       ├── HistoricalEvents.NodeSet.xml
│   │   │   │   │       ├── HistoricalEvents.NodeSet2.xml
│   │   │   │   │       ├── HistoricalEvents.PredefinedNodes.uanodes
│   │   │   │   │       ├── HistoricalEvents.PredefinedNodes.xml
│   │   │   │   │       ├── HistoricalEvents.Types.bsd
│   │   │   │   │       ├── HistoricalEvents.Types.xsd
│   │   │   │   │       ├── ModelDesign.csv
│   │   │   │   │       └── ModelDesign.xml
│   │   │   │   ├── Isa95Jobs/
│   │   │   │   │   ├── Design/
│   │   │   │   │   │   ├── UAModel.ISA95_JOBCONTROL_V2.Classes.cs
│   │   │   │   │   │   ├── UAModel.ISA95_JOBCONTROL_V2.Constants.cs
│   │   │   │   │   │   ├── UAModel.ISA95_JOBCONTROL_V2.DataTypes.cs
│   │   │   │   │   │   ├── UAModel.ISA95_JOBCONTROL_V2.NodeIds.csv
│   │   │   │   │   │   ├── UAModel.ISA95_JOBCONTROL_V2.NodeIds.permissions.csv
│   │   │   │   │   │   ├── UAModel.ISA95_JOBCONTROL_V2.NodeSet.xml
│   │   │   │   │   │   ├── UAModel.ISA95_JOBCONTROL_V2.NodeSet2.documentation.csv
│   │   │   │   │   │   ├── UAModel.ISA95_JOBCONTROL_V2.NodeSet2.xml
│   │   │   │   │   │   ├── UAModel.ISA95_JOBCONTROL_V2.PredefinedNodes.uanodes
│   │   │   │   │   │   ├── UAModel.ISA95_JOBCONTROL_V2.PredefinedNodes.xml
│   │   │   │   │   │   ├── UAModel.ISA95_JOBCONTROL_V2.Types.bsd
│   │   │   │   │   │   └── UAModel.ISA95_JOBCONTROL_V2.Types.xsd
│   │   │   │   │   └── Nodesets/
│   │   │   │   │       ├── opc.ua.isa95-jobcontrol.nodeids.csv
│   │   │   │   │       ├── opc.ua.isa95-jobcontrol.nodeset2.documentation.csv
│   │   │   │   │       ├── opc.ua.isa95-jobcontrol.nodeset2.xml
│   │   │   │   │       ├── opc.ua.isa95-jobcontrol.types.bsd
│   │   │   │   │       └── opc.ua.isa95-jobcontrol.types.xsd
│   │   │   │   ├── MemoryBuffer/
│   │   │   │   │   └── Design/
│   │   │   │   │       ├── MemoryBuffer.Classes.cs
│   │   │   │   │       ├── MemoryBuffer.Constants.cs
│   │   │   │   │       ├── MemoryBuffer.NodeIds.csv
│   │   │   │   │       ├── MemoryBuffer.NodeSet.xml
│   │   │   │   │       ├── MemoryBuffer.NodeSet2.xml
│   │   │   │   │       ├── MemoryBuffer.PredefinedNodes.uanodes
│   │   │   │   │       ├── MemoryBuffer.PredefinedNodes.xml
│   │   │   │   │       ├── MemoryBuffer.Types.bsd
│   │   │   │   │       ├── MemoryBuffer.Types.xsd
│   │   │   │   │       ├── MemoryBufferDesign.csv
│   │   │   │   │       └── MemoryBufferDesign.xml
│   │   │   │   ├── Plc/
│   │   │   │   │   └── Design/
│   │   │   │   │       ├── ModelDesign.csv
│   │   │   │   │       ├── ModelDesign.xml
│   │   │   │   │       ├── PlcModel.Classes.cs
│   │   │   │   │       ├── PlcModel.Constants.cs
│   │   │   │   │       ├── PlcModel.DataTypes.cs
│   │   │   │   │       ├── PlcModel.NodeIds.csv
│   │   │   │   │       ├── PlcModel.NodeSet.xml
│   │   │   │   │       ├── PlcModel.NodeSet2.xml
│   │   │   │   │       ├── PlcModel.PredefinedNodes.uanodes
│   │   │   │   │       ├── PlcModel.PredefinedNodes.xml
│   │   │   │   │       ├── PlcModel.Types.bsd
│   │   │   │   │       └── PlcModel.Types.xsd
│   │   │   │   ├── SimpleEvents/
│   │   │   │   │   └── Design/
│   │   │   │   │       ├── ModelDesign.csv
│   │   │   │   │       ├── ModelDesign.xml
│   │   │   │   │       ├── SimpleEvents.Classes.cs
│   │   │   │   │       ├── SimpleEvents.Constants.cs
│   │   │   │   │       ├── SimpleEvents.DataTypes.cs
│   │   │   │   │       ├── SimpleEvents.NodeIds.csv
│   │   │   │   │       ├── SimpleEvents.NodeSet.xml
│   │   │   │   │       ├── SimpleEvents.NodeSet2.xml
│   │   │   │   │       ├── SimpleEvents.PredefinedNodes.uanodes
│   │   │   │   │       ├── SimpleEvents.PredefinedNodes.xml
│   │   │   │   │       ├── SimpleEvents.Types.bsd
│   │   │   │   │       └── SimpleEvents.Types.xsd
│   │   │   │   ├── TestData/
│   │   │   │   │   └── Design/
│   │   │   │   │       ├── TestData.Classes.cs
│   │   │   │   │       ├── TestData.Constants.cs
│   │   │   │   │       ├── TestData.DataTypes.cs
│   │   │   │   │       ├── TestData.NodeIds.csv
│   │   │   │   │       ├── TestData.NodeSet.xml
│   │   │   │   │       ├── TestData.NodeSet2.xml
│   │   │   │   │       ├── TestData.PredefinedNodes.uanodes
│   │   │   │   │       ├── TestData.PredefinedNodes.xml
│   │   │   │   │       ├── TestData.Types.bsd
│   │   │   │   │       ├── TestData.Types.xsd
│   │   │   │   │       ├── TestDataDesign.csv
│   │   │   │   │       └── TestDataDesign.xml
│   │   │   │   ├── Vehicles/
│   │   │   │   │   └── Design/
│   │   │   │   │       ├── ModelDesign1.csv
│   │   │   │   │       ├── ModelDesign1.xml
│   │   │   │   │       ├── ModelDesign2.csv
│   │   │   │   │       ├── ModelDesign2.xml
│   │   │   │   │       ├── Vehicles.Instances.Constants.cs
│   │   │   │   │       ├── Vehicles.Instances.DataTypes.cs
│   │   │   │   │       ├── Vehicles.Instances.NodeIds.csv
│   │   │   │   │       ├── Vehicles.Instances.NodeSet.xml
│   │   │   │   │       ├── Vehicles.Instances.NodeSet2.xml
│   │   │   │   │       ├── Vehicles.Instances.PredefinedNodes.uanodes
│   │   │   │   │       ├── Vehicles.Instances.PredefinedNodes.xml
│   │   │   │   │       ├── Vehicles.Instances.Types.bsd
│   │   │   │   │       ├── Vehicles.Instances.Types.xsd
│   │   │   │   │       ├── Vehicles.Types.Classes.cs
│   │   │   │   │       ├── Vehicles.Types.Constants.cs
│   │   │   │   │       ├── Vehicles.Types.DataTypes.cs
│   │   │   │   │       ├── Vehicles.Types.NodeIds.csv
│   │   │   │   │       ├── Vehicles.Types.NodeSet.xml
│   │   │   │   │       ├── Vehicles.Types.NodeSet2.xml
│   │   │   │   │       ├── Vehicles.Types.PredefinedNodes.uanodes
│   │   │   │   │       ├── Vehicles.Types.PredefinedNodes.xml
│   │   │   │   │       ├── Vehicles.Types.Types.bsd
│   │   │   │   │       └── Vehicles.Types.Types.xsd
│   │   │   │   └── Views/
│   │   │   │       └── Design/
│   │   │   │           ├── Engineering.Constants.cs
│   │   │   │           ├── Engineering.NodeIds.csv
│   │   │   │           ├── Engineering.NodeSet.xml
│   │   │   │           ├── Engineering.NodeSet2.xml
│   │   │   │           ├── Engineering.PredefinedNodes.uanodes
│   │   │   │           ├── Engineering.PredefinedNodes.xml
│   │   │   │           ├── Engineering.Types.bsd
│   │   │   │           ├── Engineering.Types.xsd
│   │   │   │           ├── EngineeringDesign.csv
│   │   │   │           ├── EngineeringDesign.xml
│   │   │   │           ├── Model.Classes.cs
│   │   │   │           ├── Model.Constants.cs
│   │   │   │           ├── Model.NodeIds.csv
│   │   │   │           ├── Model.NodeSet.xml
│   │   │   │           ├── Model.NodeSet2.xml
│   │   │   │           ├── Model.PredefinedNodes.uanodes
│   │   │   │           ├── Model.PredefinedNodes.xml
│   │   │   │           ├── Model.Types.bsd
│   │   │   │           ├── Model.Types.xsd
│   │   │   │           ├── ModelDesign.csv
│   │   │   │           ├── ModelDesign.xml
│   │   │   │           ├── Operations.Constants.cs
│   │   │   │           ├── Operations.NodeIds.csv
│   │   │   │           ├── Operations.NodeSet.xml
│   │   │   │           ├── Operations.NodeSet2.xml
│   │   │   │           ├── Operations.PredefinedNodes.uanodes
│   │   │   │           ├── Operations.PredefinedNodes.xml
│   │   │   │           ├── Operations.Types.bsd
│   │   │   │           ├── Operations.Types.xsd
│   │   │   │           ├── OperationsDesign.csv
│   │   │   │           └── OperationsDesign.xml
│   │   │   ├── GlobalSuppressions.cs
│   │   │   ├── HistoricalAccess/
│   │   │   │   ├── ArchiveFolder.cs
│   │   │   │   ├── ArchiveFolderBrowser.cs
│   │   │   │   ├── ArchiveFolderState.cs
│   │   │   │   ├── ArchiveItem.cs
│   │   │   │   ├── ArchiveItemState.cs
│   │   │   │   ├── Data/
│   │   │   │   │   ├── Dynamic/
│   │   │   │   │   │   ├── Boolean.txt
│   │   │   │   │   │   ├── Byte.txt
│   │   │   │   │   │   ├── DateTime.txt
│   │   │   │   │   │   ├── Double.txt
│   │   │   │   │   │   ├── Float.txt
│   │   │   │   │   │   ├── Int16.txt
│   │   │   │   │   │   ├── Int32.txt
│   │   │   │   │   │   ├── Int64.txt
│   │   │   │   │   │   ├── SByte.txt
│   │   │   │   │   │   ├── String.txt
│   │   │   │   │   │   ├── UInt16.txt
│   │   │   │   │   │   ├── UInt32.txt
│   │   │   │   │   │   └── UInt64.txt
│   │   │   │   │   └── Sample/
│   │   │   │   │       ├── Boolean.txt
│   │   │   │   │       ├── Byte.txt
│   │   │   │   │       ├── ByteString.txt
│   │   │   │   │       ├── DateTime.txt
│   │   │   │   │       ├── Double.txt
│   │   │   │   │       ├── Float.txt
│   │   │   │   │       ├── Historian1.xlsx
│   │   │   │   │       ├── Historian1ExpectedData.csv
│   │   │   │   │       ├── Historian2ExpectedData.csv
│   │   │   │   │       ├── Historian3ExpectedData.csv
│   │   │   │   │       ├── Int16.txt
│   │   │   │   │       ├── Int32.txt
│   │   │   │   │       ├── Int64.txt
│   │   │   │   │       ├── SByte.txt
│   │   │   │   │       ├── String.txt
│   │   │   │   │       ├── UInt16.txt
│   │   │   │   │       ├── UInt32.txt
│   │   │   │   │       └── UInt64.txt
│   │   │   │   ├── DataFileReader.cs
│   │   │   │   ├── HistoricalAccessNodeManager.cs
│   │   │   │   ├── HistoricalAccessServer.cs
│   │   │   │   ├── HistoricalAccessServerConfiguration.cs
│   │   │   │   ├── Namespaces.cs
│   │   │   │   ├── NodeTypes.cs
│   │   │   │   └── UnderlyingSystem.cs
│   │   │   ├── HistoricalEvents/
│   │   │   │   ├── HistoricalEventsNodeManager.cs
│   │   │   │   ├── HistoricalEventsServer.cs
│   │   │   │   ├── HistoricalEventsServerConfiguration.cs
│   │   │   │   └── ReportGenerator.cs
│   │   │   ├── IServerFactory.cs
│   │   │   ├── IServerHost.cs
│   │   │   ├── ITestServer.cs
│   │   │   ├── Isa95Jobs/
│   │   │   │   ├── Isa95JobControlNodeManager.cs
│   │   │   │   ├── Isa95JobControlServer.cs
│   │   │   │   └── Isa95JobControlServerConfiguration.cs
│   │   │   ├── MemoryBuffer/
│   │   │   │   ├── MemoryBufferBrowser.cs
│   │   │   │   ├── MemoryBufferConfiguration.cs
│   │   │   │   ├── MemoryBufferMonitoredItem.cs
│   │   │   │   ├── MemoryBufferNodeManager.cs
│   │   │   │   ├── MemoryBufferServer.cs
│   │   │   │   ├── MemoryBufferState.cs
│   │   │   │   └── MemoryTagState.cs
│   │   │   ├── PerfTest/
│   │   │   │   ├── MemoryRegisterState.cs
│   │   │   │   ├── Namespaces.cs
│   │   │   │   ├── PerfTestNodeManager.cs
│   │   │   │   ├── PerfTestServer.cs
│   │   │   │   ├── PerfTestServerConfiguration.cs
│   │   │   │   └── UnderlyingSystem.cs
│   │   │   ├── Plc/
│   │   │   │   ├── Models/
│   │   │   │   │   ├── BaseDataVariableStateExtended.cs
│   │   │   │   │   ├── IPluginNodes.cs
│   │   │   │   │   ├── NodeWithIntervals.cs
│   │   │   │   │   └── SimulatedVariableNode.cs
│   │   │   │   ├── NamespaceType.cs
│   │   │   │   ├── Namespaces.cs
│   │   │   │   ├── PlcNodeManager.cs
│   │   │   │   ├── PlcServer.cs
│   │   │   │   ├── PlcSimulation.cs
│   │   │   │   └── PluginNodes/
│   │   │   │       ├── ComplexTypePluginNode.cs
│   │   │   │       ├── DataPluginNodes.cs
│   │   │   │       ├── DeterministicGuidPluginNodes.cs
│   │   │   │       ├── DipPluginNode.cs
│   │   │   │       ├── FastPluginNodes.cs
│   │   │   │       ├── FastRandomPluginNodes.cs
│   │   │   │       ├── LongIdPluginNode.cs
│   │   │   │       ├── LongStringPluginNodes.cs
│   │   │   │       ├── NegTrendPluginNode.cs
│   │   │   │       ├── NodeType.cs
│   │   │   │       ├── PosTrendPluginNode.cs
│   │   │   │       ├── SlowFastCommon.cs
│   │   │   │       ├── SlowPluginNodes.cs
│   │   │   │       ├── SlowRandomPluginNodes.cs
│   │   │   │       ├── SpecialCharNamePluginNode.cs
│   │   │   │       └── SpikePluginNode.cs
│   │   │   ├── Properties/
│   │   │   │   └── AssemblyInfo.cs
│   │   │   ├── Reference/
│   │   │   │   ├── Namespaces.cs
│   │   │   │   ├── ReferenceNodeManager.cs
│   │   │   │   ├── ReferenceServer.cs
│   │   │   │   └── ReferenceServerConfiguration.cs
│   │   │   ├── ServerConsoleHost.cs
│   │   │   ├── ServerFactory.cs
│   │   │   ├── SimpleEvents/
│   │   │   │   ├── SimpleEventsNodeManager.cs
│   │   │   │   ├── SimpleEventsServer.cs
│   │   │   │   └── SimpleEventsServerConfiguration.cs
│   │   │   ├── TestData/
│   │   │   │   ├── AnalogArrayValueObjectState.cs
│   │   │   │   ├── AnalogScalarValueObjectState.cs
│   │   │   │   ├── ArrayValueObjectState.cs
│   │   │   │   ├── HistoryArchive.cs
│   │   │   │   ├── MethodTestState.cs
│   │   │   │   ├── ScalarValueObjectState.cs
│   │   │   │   ├── TestDataNodeManager.cs
│   │   │   │   ├── TestDataNodeManagerConfiguration.cs
│   │   │   │   ├── TestDataObjectState.cs
│   │   │   │   ├── TestDataServer.cs
│   │   │   │   ├── TestDataSystem.cs
│   │   │   │   ├── TestSystemConditionState.cs
│   │   │   │   ├── UserArrayValueObjectState.cs
│   │   │   │   └── UserScalarValueObjectState.cs
│   │   │   ├── Utils/
│   │   │   │   ├── DeterministicGuid.cs
│   │   │   │   ├── FastTimer.cs
│   │   │   │   ├── FastTimerElapsedEventArgs.cs
│   │   │   │   ├── ITimer.cs
│   │   │   │   ├── TestDataGenerator.cs
│   │   │   │   └── TimeService.cs
│   │   │   ├── Vehicles/
│   │   │   │   ├── Namespaces.cs
│   │   │   │   ├── VehiclesNodeManager.cs
│   │   │   │   ├── VehiclesServer.cs
│   │   │   │   └── VehiclesServerConfiguration.cs
│   │   │   └── Views/
│   │   │       ├── ViewsNodeManager.cs
│   │   │       ├── ViewsServer.cs
│   │   │       └── ViewsServerConfiguration.cs
│   │   └── tests/
│   │       ├── Azure.IIoT.OpcUa.Publisher.Testing.csproj
│   │       ├── Extensions/
│   │       │   └── OpcUaClientManagerEx.cs
│   │       ├── Fixtures/
│   │       │   ├── AlarmsServer.cs
│   │       │   ├── AssetServer.cs
│   │       │   ├── BaseServerFixture.cs
│   │       │   ├── DeterministicAlarmsServer1.cs
│   │       │   ├── DeterministicAlarmsServer2.cs
│   │       │   ├── FileSystemServer.cs
│   │       │   ├── HistoricalAccessServer.cs
│   │       │   ├── HistoricalEventsServer.cs
│   │       │   ├── Isa95JobsServer.cs
│   │       │   ├── PlcServer.cs
│   │       │   ├── ReferenceServer.cs
│   │       │   ├── SimpleEventsServer.cs
│   │       │   └── TestDataServer.cs
│   │       ├── Properties/
│   │       │   └── AssemblyInfo.cs
│   │       ├── Runtime/
│   │       │   └── TestClientConfig.cs
│   │       └── Tests/
│   │           ├── Alarms/
│   │           │   └── AlarmServerTests.cs
│   │           ├── Asset/
│   │           │   ├── AssetTests1.cs
│   │           │   ├── AssetTests2.cs
│   │           │   ├── AssetTests3.cs
│   │           │   └── AssetTests4.cs
│   │           ├── DeterministicAlarms/
│   │           │   ├── DeterministicAlarmsTests1.cs
│   │           │   ├── DeterministicAlarmsTests2.cs
│   │           │   └── Extensions/
│   │           │       └── Extensions.cs
│   │           ├── FileSystem/
│   │           │   ├── BrowseTests.cs
│   │           │   ├── OperationsTests.cs
│   │           │   ├── ReadTests.cs
│   │           │   └── WriteTests.cs
│   │           ├── HistoricalAccess/
│   │           │   ├── HistoryReadValuesAtTimes.cs
│   │           │   ├── HistoryReadValuesModified.cs
│   │           │   ├── HistoryReadValuesProcessed.cs
│   │           │   ├── HistoryReadValuesTests.cs
│   │           │   ├── HistoryUpdateValuesTests.cs
│   │           │   └── NodeHistoricalAccessTests.cs
│   │           ├── HistoricalEvents/
│   │           │   └── NodeHistoricalEventsTests.cs
│   │           ├── Isa95Jobs/
│   │           │   └── Isa95JobsServerTests.cs
│   │           ├── Plc/
│   │           │   ├── PlcModelComplexTypeTests.cs
│   │           │   └── SimulatorNodesTests.cs
│   │           ├── SimpleEvents/
│   │           │   └── SimpleEventsServerTests.cs
│   │           └── TestData/
│   │               ├── BrowsePathTests.cs
│   │               ├── BrowseServicesTests.cs
│   │               ├── BrowseStreamTests.cs
│   │               ├── CallArrayMethodTests.cs
│   │               ├── CallScalarMethodTests.cs
│   │               ├── ConfigurationTests1.cs
│   │               ├── ConfigurationTests2.cs
│   │               ├── NodeMetadataTests.cs
│   │               ├── ReadArrayValueTests.cs
│   │               ├── ReadScalarValueTests.cs
│   │               ├── WriteArrayValueTests.cs
│   │               └── WriteScalarValueTests.cs
│   └── Directory.Build.props
├── testenvironments.json
├── tools/
│   ├── checkdocs.cmd
│   ├── clean.sh
│   ├── codecoverage.cmd
│   ├── docgen.cmd
│   ├── e2etesting/
│   │   ├── DeployAKS.ps1
│   │   ├── DeployEdge.ps1
│   │   ├── DeployPLCs.ps1
│   │   ├── DeployStandalone.ps1
│   │   ├── DeployTestResources.ps1
│   │   ├── DetermineKeyVaultName.ps1
│   │   ├── GetSecrets.ps1
│   │   ├── SetKeyVaultPermissions.ps1
│   │   ├── SetKeyVaultSecrets.ps1
│   │   ├── SetTestVariables.ps1
│   │   ├── SetVariables.ps1
│   │   └── steps/
│   │       ├── cleanup.yml
│   │       ├── deploystandalone.yml
│   │       ├── deploytestresources.yml
│   │       └── runtests.yml
│   └── swagger.cmd
└── version.json
Download .txt
Showing preview only (1,138K chars total). Download the full file or copy to clipboard to get everything.
SYMBOL INDEX (11430 symbols across 1146 files)

FILE: e2e-tests/OpcPublisher-E2E-Tests/Config/IContainerRegistryConfig.cs
  type IContainerRegistryConfig (line 11) | public interface IContainerRegistryConfig

FILE: e2e-tests/OpcPublisher-E2E-Tests/Config/IDeviceConfig.cs
  type IDeviceConfig (line 11) | public interface IDeviceConfig

FILE: e2e-tests/OpcPublisher-E2E-Tests/Config/IIoTEdgeConfig.cs
  type IIoTEdgeConfig (line 11) | public interface IIoTEdgeConfig

FILE: e2e-tests/OpcPublisher-E2E-Tests/Config/IIoTHubConfig.cs
  type IIoTHubConfig (line 11) | public interface IIoTHubConfig

FILE: e2e-tests/OpcPublisher-E2E-Tests/Config/IOpcPlcConfig.cs
  type IOpcPlcConfig (line 8) | public interface IOpcPlcConfig

FILE: e2e-tests/OpcPublisher-E2E-Tests/Config/ISshConfig.cs
  type ISshConfig (line 8) | public interface ISshConfig

FILE: e2e-tests/OpcPublisher-E2E-Tests/MessagingMode.cs
  type MessagingMode (line 11) | public enum MessagingMode

FILE: e2e-tests/OpcPublisher-E2E-Tests/PublishedNodesConfigurations.cs
  class TestConstants (line 10) | internal static partial class TestConstants
    class PublishedNodesConfigurations (line 12) | internal static class PublishedNodesConfigurations
      method SimpleEvents (line 14) | public static string SimpleEvents(string host, uint port, string wri...
      method SimpleEventFilter (line 75) | public static JArray SimpleEventFilter(
      method PendingConditionForAlarmsView (line 86) | public static JArray PendingConditionForAlarmsView()

FILE: e2e-tests/OpcPublisher-E2E-Tests/RegistryHelper.cs
  class RegistryHelper (line 25) | public sealed class RegistryHelper : IDisposable
    method RegistryHelper (line 31) | public RegistryHelper(IIoTPlatformTestContext context)
    method WaitForIIoTModulesConnectedAsync (line 45) | public async Task WaitForIIoTModulesConnectedAsync(
    method WaitForIIoTModulesRemovedAsync (line 94) | public async Task WaitForIIoTModulesRemovedAsync(
    method RestartStandalonePublisherAsync (line 139) | public async Task RestartStandalonePublisherAsync(
    method DeployStandalonePublisherAsync (line 166) | public async Task<string> DeployStandalonePublisherAsync(
    method WaitForSuccessfulDeploymentAsync (line 208) | public async Task WaitForSuccessfulDeploymentAsync(
    method DeleteConfigurationAsync (line 262) | public async Task DeleteConfigurationAsync(string configurationId, Can...
    method CreateOrUpdateConfigurationAsync (line 288) | public async Task<Configuration> CreateOrUpdateConfigurationAsync(
    method Equals (line 337) | public static bool Equals(Configuration c0, Configuration c1)
    method Dispose (line 391) | public void Dispose()

FILE: e2e-tests/OpcPublisher-E2E-Tests/Standalone/C_EventNamespaceTestTheory.cs
  class CEventNamespaceTestTheory (line 19) | [TestCaseOrderer(TestCaseOrderer.FullName, TestConstants.TestAssemblyName)]
    method CEventNamespaceTestTheory (line 23) | public CEventNamespaceTestTheory(IIoTStandaloneTestContext context, IT...
    method TestDeployAci (line 28) | [Fact, PriorityOrder(10)]
    method TestVerifyIntegerNamespaceExpectSimpleEventsInHub (line 34) | [Fact, PriorityOrder(11)]
    method TestVerifyStringNamespaceExpectSimpleEventsInHub (line 55) | [Fact, PriorityOrder(12)]
    method TestVerifyIntegerNamespaceExpectFilteredSimpleEventsInHub (line 76) | [Fact, PriorityOrder(13)]
    method TestVerifyStringNamespaceExpectFilteredSimpleEventsInHub (line 95) | [Fact, PriorityOrder(14)]

FILE: e2e-tests/OpcPublisher-E2E-Tests/Standalone/C_EventsStressTestTheory.cs
  class CEventsStressTestTheory (line 22) | [TestCaseOrderer(TestCaseOrderer.FullName, TestConstants.TestAssemblyName)]
    method CEventsStressTestTheory (line 26) | public CEventsStressTestTheory(IIoTStandaloneTestContext context, ITes...
    method TestACIVerifyEnd2EndThroughputAndLatency (line 31) | [Fact, PriorityOrder(10)]
    method DescriptiveStats (line 109) | private static (double average, double stDev) DescriptiveStats(IReadOn...

FILE: e2e-tests/OpcPublisher-E2E-Tests/Standalone/C_PendingConditionsTestTheory.cs
  class CPendingConditionsTestTheory (line 19) | [TestCaseOrderer(TestCaseOrderer.FullName, TestConstants.TestAssemblyName)]
    method CPendingConditionsTestTheory (line 23) | public CPendingConditionsTestTheory(IIoTStandaloneTestContext context,...
    method TestVerifyDataAvailableAtIoTHubExpectPendingAlarmsView (line 28) | [Fact, PriorityOrder(10)]

FILE: e2e-tests/OpcPublisher-E2E-Tests/Standalone/C_PublishConditionsTestTheory.cs
  class CPublishConditionsTestTheory (line 22) | [TestCaseOrderer(TestCaseOrderer.FullName, TestConstants.TestAssemblyName)]
    method CPublishConditionsTestTheory (line 28) | public CPublishConditionsTestTheory(IIoTStandaloneTestContext context,...
    method TestACIVerifyDataAvailableAtIoTHubExpectNumberOfEventsGreaterThanZero (line 33) | [Fact, PriorityOrder(11)]
    method VerifyPayload (line 154) | private static void VerifyPayload(IReadOnlyList<ConditionTypePayload> ...

FILE: e2e-tests/OpcPublisher-E2E-Tests/Standalone/C_WhereClauseTestTheory.cs
  class CWhereClauseTestTheory (line 20) | [TestCaseOrderer(TestCaseOrderer.FullName, TestConstants.TestAssemblyName)]
    method CWhereClauseTestTheory (line 24) | public CWhereClauseTestTheory(IIoTStandaloneTestContext context, ITest...
    method TestVerifyDataAvailableAtIoTHubExpectFieldsToMatchSimpleFilter (line 29) | [Fact, PriorityOrder(10)]
    method TestVerifyDataAvailableAtIoTHubExpectFieldsToMatchEventFilter (line 53) | [Fact, PriorityOrder(11)]
    method TestVerifyDataAvailableAtIoTHubExpectFieldsToSimpleEvents (line 77) | [Fact, PriorityOrder(12)]
    method ValidateBaseEventTypeFields (line 100) | private static void ValidateBaseEventTypeFields(JObject ev)
    method ValidateSimpleEventFields (line 120) | private static void ValidateSimpleEventFields(JObject ev)

FILE: e2e-tests/OpcPublisher-E2E-Tests/Standalone/D_AlarmDirectMethodTestTheory.cs
  class DAlarmDirectMethodTestTheory (line 19) | [TestCaseOrderer(TestCaseOrderer.FullName, TestConstants.TestAssemblyName)]
    method DAlarmDirectMethodTestTheory (line 23) | public DAlarmDirectMethodTestTheory(IIoTStandaloneTestContext context,...
    method TestVerifyDataAvailableAtIoTHubExpectPendingConditionsView (line 28) | [Fact, PriorityOrder(10)]

FILE: e2e-tests/OpcPublisher-E2E-Tests/Standalone/D_EventDirectMethodTestTheory.cs
  class DEventDirectMethodTestTheory (line 19) | [TestCaseOrderer(TestCaseOrderer.FullName, TestConstants.TestAssemblyName)]
    method DEventDirectMethodTestTheory (line 23) | public DEventDirectMethodTestTheory(IIoTStandaloneTestContext context,...
    method TestDeployAci (line 28) | [Fact, PriorityOrder(10)]
    method TestVerifyIntegerNamespaceExpectSimpleEventsInHub (line 34) | [Fact, PriorityOrder(11)]
    method TestVerifyStringNamespaceExpectSimpleEventsInHub (line 56) | [Fact, PriorityOrder(12)]
    method TestVerifyIntegerNamespaceExpectFilteredSimpleEventsInHub (line 78) | [Fact, PriorityOrder(13)]
    method TestVerifyStringNamespaceExpectFilteredSimpleEventsInHub (line 98) | [Fact, PriorityOrder(14)]

FILE: e2e-tests/OpcPublisher-E2E-Tests/Standalone/DynamicAciTestBase.cs
  class DynamicAciTestBase (line 28) | [TestCaseOrderer(TestCaseOrderer.FullName, TestConstants.TestAssemblyName)]
    method DynamicAciTestBase (line 42) | protected DynamicAciTestBase(IIoTStandaloneTestContext context, ITestO...
    method Dispose (line 61) | protected virtual void Dispose(bool disposing)
    method Dispose (line 76) | public void Dispose()
    method TestDeployStandalonePublisher (line 82) | [Fact, PriorityOrder(1)]
    method TestRestartStandalonePublisher (line 89) | [Fact, PriorityOrder(998)]
    method TestDeleteAci (line 96) | [Fact, PriorityOrder(999)]
    method CallMethodAsync (line 108) | protected async Task<MethodResultModel> CallMethodAsync(
    method PublishNodesAsync (line 123) | protected async Task PublishNodesAsync(string json, CancellationToken ct)
    method UnpublishAllNodesAsync (line 155) | protected async Task UnpublishAllNodesAsync(CancellationToken ct = def...
    method SimpleEvents (line 195) | protected string SimpleEvents(string messageTypeDefinitionId, string m...
    method VerifyPayloads (line 225) | protected static void VerifyPayloads(IEnumerable<SystemCycleStatusEven...
    method ValidatePendingConditionsView (line 234) | protected static void ValidatePendingConditionsView(IEnumerable<Condit...

FILE: e2e-tests/OpcPublisher-E2E-Tests/TestConstants.cs
  class TestConstants (line 11) | internal static partial class TestConstants
    class OpcSimulation (line 67) | internal static class OpcSimulation
    class EnvironmentVariablesNames (line 99) | internal static class EnvironmentVariablesNames
    class TraitConstants (line 205) | internal static class TraitConstants
    class DirectMethodNames (line 226) | internal static class DirectMethodNames

FILE: e2e-tests/OpcPublisher-E2E-Tests/TestExtensions/IIoTPlatformTestContext.cs
  class IIoTPlatformTestContext (line 20) | public class IIoTPlatformTestContext : IDisposable, IDeviceConfig, IIoTH...
    method IIoTPlatformTestContext (line 30) | public IIoTPlatformTestContext()
    method SetOutputHelper (line 45) | public void SetOutputHelper(ITestOutputHelper output)
    method CreateLogger (line 55) | public ILogger<T> CreateLogger<T>()
    class DummyOutput (line 60) | private sealed class DummyOutput : ITestOutputHelper
      method WriteLine (line 62) | public void WriteLine(string message) { Console.WriteLine(message); }
      method WriteLine (line 63) | public void WriteLine(string format, params object[] args) { Console...
    method Dispose (line 132) | public void Dispose()
    method Dispose (line 142) | protected virtual void Dispose(bool disposing)
    method GetStringOrDefault (line 157) | private string GetStringOrDefault(string key, Func<string> defaultValue)
    method GetConfiguration (line 174) | private static IConfigurationRoot GetConfiguration()
    method LogEnvironment (line 235) | public void LogEnvironment(ITestOutputHelper output)

FILE: e2e-tests/OpcPublisher-E2E-Tests/TestExtensions/IIoTStandaloneTestContext.cs
  class IIoTStandaloneTestContext (line 13) | public class IIoTStandaloneTestContext : IIoTPlatformTestContext
    method IIoTStandaloneTestContext (line 28) | public IIoTStandaloneTestContext()

FILE: e2e-tests/OpcPublisher-E2E-Tests/TestExtensions/PriorityOrderAttribute.cs
  class PriorityOrderAttribute (line 13) | [AttributeUsage(AttributeTargets.Method, AllowMultiple = false)]
    method PriorityOrderAttribute (line 20) | public PriorityOrderAttribute(uint order)

FILE: e2e-tests/OpcPublisher-E2E-Tests/TestExtensions/TestCaseOrderer.cs
  class TestCaseOrderer (line 17) | public class TestCaseOrderer : ITestCaseOrderer
    method OrderTestCases (line 25) | public IEnumerable<TTestCase> OrderTestCases<TTestCase>(IEnumerable<TT...
    method GetOrCreate (line 51) | private static TValue GetOrCreate<TKey, TValue>(SortedDictionary<TKey,...

FILE: e2e-tests/OpcPublisher-E2E-Tests/TestHelper.cs
  type MethodResultModel (line 41) | public record class MethodResultModel(string JsonPayload, int Status);
  type MethodParameterModel (line 42) | public record class MethodParameterModel
  class TestHelper (line 48) | internal static class TestHelper
    method UpdateTagAsync (line 56) | public static async Task UpdateTagAsync(
    method SwitchToStandaloneModeAndPublishNodesAsync (line 73) | public static async Task SwitchToStandaloneModeAndPublishNodesAsync(
    method PublishNodesAsync (line 91) | public static async Task PublishNodesAsync(
    method CleanPublishedNodesJsonFilesAsync (line 122) | public static async Task CleanPublishedNodesJsonFilesAsync(IIoTPlatfor...
    method SwitchToStandaloneModeAsync (line 152) | public static async Task SwitchToStandaloneModeAsync(
    method CreateSshClientAndConnectAsync (line 173) | private static async Task<SshClient> CreateSshClientAndConnectAsync(II...
    method CreateScpClientAndConnectAsync (line 211) | private static async Task<ScpClient> CreateScpClientAndConnectAsync(II...
    method GetPrivateSshKey (line 250) | private static PrivateKeyFile GetPrivateSshKey(IIoTPlatformTestContext...
    method DeleteFileOnEdgeVMAsync (line 264) | public static async Task DeleteFileOnEdgeVMAsync(string fileName, IIoT...
    method CreateFolderOnEdgeVMAsync (line 286) | private static async Task CreateFolderOnEdgeVMAsync(string folderPath,...
    method PublishedNodesJson (line 311) | public static string PublishedNodesJson(this IIoTStandaloneTestContext...
    method CreateSimulationContainerAsync (line 332) | public static async Task CreateSimulationContainerAsync(IIoTPlatformTe...
    method UploadFileToStorageAccountAsync (line 360) | private async static Task UploadFileToStorageAccountAsync(IIoTPlatform...
    method CreatePlcContainerGroupAsync (line 407) | private static async Task<string> CreatePlcContainerGroupAsync(Resourc...
    method DeleteSimulationContainerAsync (line 446) | public static async Task DeleteSimulationContainerAsync(IIoTPlatformTe...
    method GetResourceGroupAsync (line 470) | internal async static Task<ResourceGroupResource> GetResourceGroupAsyn...
    method GetArmClientAsync (line 530) | private static async Task<ArmClient> GetArmClientAsync(IIoTPlatformTes...
    method Validate (line 585) | private static T Validate<T>(IIoTPlatformTestContext context, Response...
    method Validate (line 595) | private static T Validate<T>(IIoTPlatformTestContext context, Operatio...
    method DeserializeJson (line 612) | public static T DeserializeJson<T>(this PartitionEvent partitionEvent)
    method GetEventHubConsumerClient (line 624) | public static EventHubConsumerClient GetEventHubConsumerClient(this II...
    method ReadMessagesFromWriterIdAsync (line 653) | public static IAsyncEnumerable<EventData<T>> ReadMessagesFromWriterIdA...
    method ReadConditionMessagesFromWriterIdAsync (line 688) | public static IAsyncEnumerable<PendingConditionEventData<T>> ReadCondi...
    method ReadMessagesFromWriterIdAsync (line 722) | public static async IAsyncEnumerable<(DateTime enqueuedTime, string wr...
    method TakeWhile (line 812) | private static IAsyncEnumerable<TSource> TakeWhile<TSource>(this IAsyn...
    method SkipUntilDistinctCountReached (line 836) | private static IAsyncEnumerable<TSource> SkipUntilDistinctCountReached...
    method TakeWhile (line 877) | private static IAsyncEnumerable<TSource> TakeWhile<TSource>(
    method TakeWhile (line 906) | public static IAsyncEnumerable<EventData<TPayload>> TakeWhile<TPayload>(
    method Truncate (line 920) | public static DateTime Truncate(this DateTime dateTime, TimeSpan timeS...
    method DeviceServiceClient (line 941) | public static ServiceClient DeviceServiceClient(
    method RestartAsync (line 964) | public static async Task RestartAsync(IIoTPlatformTestContext context,...
    method PrettyPrintException (line 983) | private static void PrettyPrintException(Exception e, ITestOutputHelpe...
    method CallMethodAsync (line 1004) | public static async Task<MethodResultModel> CallMethodAsync(ServiceCli...

FILE: e2e-tests/OpcPublisher-E2E-Tests/TestModels/BaseEventTypePayload.cs
  class BaseEventTypePayload (line 12) | public class BaseEventTypePayload

FILE: e2e-tests/OpcPublisher-E2E-Tests/TestModels/ConditionTypePayload.cs
  class ConditionTypePayload (line 12) | public class ConditionTypePayload : BaseEventTypePayload

FILE: e2e-tests/OpcPublisher-E2E-Tests/TestModels/DataValueObject.cs
  class DataValueObject (line 11) | public static class DataValueObject
    method Create (line 13) | public static DataValueObject<T> Create<T>(T value)
  class DataValueObject (line 19) | public class DataValueObject<T>
    method Create (line 13) | public static DataValueObject<T> Create<T>(T value)

FILE: e2e-tests/OpcPublisher-E2E-Tests/TestModels/EventData.cs
  class EventData (line 12) | public class EventData<T> where T : BaseEventTypePayload

FILE: e2e-tests/OpcPublisher-E2E-Tests/TestModels/PendingConditionEventData.cs
  class PendingConditionEventData (line 8) | public class PendingConditionEventData<T> where T : BaseEventTypePayload

FILE: e2e-tests/OpcPublisher-E2E-Tests/TestModels/SimpleEventsStep.cs
  class SimpleEventsStep (line 9) | public class SimpleEventsStep

FILE: e2e-tests/OpcPublisher-E2E-Tests/TestModels/SystemCycleStatusEventTypePayload.cs
  class SystemCycleStatusEventTypePayload (line 11) | public class SystemCycleStatusEventTypePayload : SystemEventTypePayload

FILE: e2e-tests/OpcPublisher-E2E-Tests/TestModels/SystemEventTypePayload.cs
  class SystemEventTypePayload (line 12) | public class SystemEventTypePayload : BaseEventTypePayload

FILE: e2e-tests/OpcPublisher-E2E-Tests/deploy/DeploymentConfiguration.cs
  class DeploymentConfiguration (line 15) | public abstract class DeploymentConfiguration : IIoTHubEdgeDeployment
    method DeploymentConfiguration (line 17) | protected DeploymentConfiguration(IIoTPlatformTestContext context)
    method CreateOrUpdateLayeredDeploymentAsync (line 23) | public async Task<bool> CreateOrUpdateLayeredDeploymentAsync(Cancellat...
    method DeleteLayeredDeploymentAsync (line 35) | public async Task DeleteLayeredDeploymentAsync(CancellationToken token)
    method GetDeploymentConfiguration (line 44) | public Configuration GetDeploymentConfiguration()
    method CreateDeploymentModules (line 62) | protected abstract IDictionary<string, IDictionary<string, object>> Cr...

FILE: e2e-tests/OpcPublisher-E2E-Tests/deploy/IIoTHubEdgeDeployment.cs
  type IIoTHubEdgeDeployment (line 12) | public interface IIoTHubEdgeDeployment
    method CreateOrUpdateLayeredDeploymentAsync (line 19) | Task<bool> CreateOrUpdateLayeredDeploymentAsync(CancellationToken token);
    method GetDeploymentConfiguration (line 24) | Configuration GetDeploymentConfiguration();

FILE: e2e-tests/OpcPublisher-E2E-Tests/deploy/IoTHubEdgeBaseDeployment.cs
  class IoTHubEdgeBaseDeployment (line 17) | public sealed class IoTHubEdgeBaseDeployment : DeploymentConfiguration
    method IoTHubEdgeBaseDeployment (line 23) | public IoTHubEdgeBaseDeployment(IIoTPlatformTestContext context) : bas...
    method CreateDeploymentModules (line 37) | protected override IDictionary<string, IDictionary<string, object>> Cr...

FILE: e2e-tests/OpcPublisher-E2E-Tests/deploy/IoTHubPublisherDeployment.cs
  class IoTHubPublisherDeployment (line 14) | public sealed class IoTHubPublisherDeployment : ModuleDeploymentConfigur...
    method IoTHubPublisherDeployment (line 26) | public IoTHubPublisherDeployment(IIoTPlatformTestContext context, Mess...
    method CreateDeploymentModules (line 44) | protected override IDictionary<string, IDictionary<string, object>> Cr...

FILE: e2e-tests/OpcPublisher-E2E-Tests/deploy/ModuleDeploymentConfiguration.cs
  class ModuleDeploymentConfiguration (line 13) | public abstract class ModuleDeploymentConfiguration : DeploymentConfigur...
    method ModuleDeploymentConfiguration (line 24) | protected ModuleDeploymentConfiguration(IIoTPlatformTestContext context)

FILE: samples/Http/Parameters.cs
  class Parameters (line 16) | internal sealed class Parameters : IDisposable
    method CreateHttpClientWithAuth (line 63) | public HttpClient CreateHttpClientWithAuth()
    method Dispose (line 79) | public void Dispose()
    method Parse (line 90) | public static async Task<Parameters> Parse(string[] args)

FILE: samples/IoTHub/MonitorMessages/MonitorMessages.cs
  class Parameters (line 106) | internal sealed class Parameters
    method GetEventHubConnectionString (line 132) | internal string GetEventHubConnectionString()

FILE: samples/IoTHub/Parameters.cs
  class Parameters (line 15) | internal sealed class Parameters
    method ValidateConnectionStrings (line 35) | public static void ValidateConnectionStrings(string? hubConnectionStri...

FILE: samples/Mqtt/GetConfiguration/GetConfiguration.cs
  class PublisherTopicGenerationStrategy (line 46) | public sealed class PublisherTopicGenerationStrategy : IMqttRpcClientTop...
    method CreateRpcTopics (line 50) | public MqttRpcTopicPair CreateRpcTopics(TopicGenerationContext context)

FILE: samples/Mqtt/ManageWriter/ManageWriter.cs
  class PublisherTopicGenerationStrategy (line 107) | public sealed class PublisherTopicGenerationStrategy : IMqttRpcClientTop...
    method CreateRpcTopics (line 111) | public MqttRpcTopicPair CreateRpcTopics(TopicGenerationContext context)

FILE: samples/Mqtt/ReadAttributes/ReadAttributes.cs
  class PublisherTopicGenerationStrategy (line 92) | public sealed class PublisherTopicGenerationStrategy : IMqttRpcClientTop...
    method CreateRpcTopics (line 96) | public MqttRpcTopicPair CreateRpcTopics(TopicGenerationContext context)

FILE: samples/Mqtt/ReadCurrentTime/ReadCurrentTime.cs
  class PublisherTopicGenerationStrategy (line 47) | public sealed class PublisherTopicGenerationStrategy : IMqttRpcClientTop...
    method CreateRpcTopics (line 51) | public MqttRpcTopicPair CreateRpcTopics(TopicGenerationContext context)

FILE: samples/Mqtt/WriteReadbackValue/WriteReadbackValue.cs
  class PublisherTopicGenerationStrategy (line 91) | public sealed class PublisherTopicGenerationStrategy : IMqttRpcClientTop...
    method CreateRpcTopics (line 95) | public MqttRpcTopicPair CreateRpcTopics(TopicGenerationContext context)

FILE: samples/Netcap/src/Extensions.cs
  class Extensions (line 18) | internal static partial class Extensions
    method GetProperty (line 28) | [return: NotNullIfNotNull(nameof(defaultValue))]
    method GetTag (line 53) | [return: NotNullIfNotNull(nameof(defaultValue))]
    method TryGetBytes (line 76) | public static bool TryGetBytes(this JsonElement elem,
    method FixUpResourceName (line 97) | public static string FixUpResourceName(string name)
    method GetVersion (line 111) | public static string GetVersion(this Assembly assembly)
    method FixFileName (line 132) | public static string FixFileName(string name)
    method FixFolderName (line 143) | public static string FixFolderName(string name)
    method FixUpStorageName (line 154) | public static string FixUpStorageName(string name)
    method CopyAsync (line 181) | public static async Task<int> CopyAsync(this Stream source, Stream des...
    method IsRunningInContainer (line 212) | public static bool IsRunningInContainer()
    method AlphaNumAndDashOnly (line 219) | [GeneratedRegex("[^a-zA-Z0-9-]")]
    method AlphaNumOnly (line 221) | [GeneratedRegex("[^a-zA-Z0-9]")]

FILE: samples/Netcap/src/Gateway.cs
  type Gateway (line 32) | internal sealed record class Gateway

FILE: samples/Netcap/src/Netcap.cs
  class NetcapException (line 31) | public class NetcapException : Exception
    method NetcapException (line 33) | public NetcapException(string message) : base(message)
    method NetcapException (line 37) | public NetcapException(string message, Exception innerException)
  class App (line 46) | internal sealed class App : IDisposable
    class RunOptions (line 48) | [Verb("run", isDefault: true, HelpText = "Run netcap to capture diagno...
      method RunOptions (line 111) | public RunOptions()
      method ConfigureFromTwin (line 122) | public void ConfigureFromTwin(Twin twin)
    class SidecarOptions (line 156) | [Verb("sidecar", HelpText = "Run netcap as capture host.")]
    class InstallOptions (line 159) | [Verb("install", HelpText = "Install netcap into a publisher.")]
    class UninstallOptions (line 187) | [Verb("uninstall", HelpText = "Uninstall netcap from one or all publis...
    method App (line 209) | public App()
    method Dispose (line 217) | public void Dispose()
    method RunAsync (line 232) | public static async ValueTask<App> RunAsync(string[] args,
    method ParseAsync (line 246) | private async ValueTask ParseAsync(string[] args, CancellationToken ct...
    method RunAsync (line 293) | private async Task RunAsync(CancellationToken ct = default)
    method InstallAsync (line 352) | private async Task InstallAsync(CancellationToken ct = default)
    method UninstallAsync (line 428) | private async Task UninstallAsync(CancellationToken ct = default)
    method RunAsModuleAsync (line 471) | private async ValueTask RunAsModuleAsync(CancellationToken ct = default)
    method RunAsSidecarModuleAsync (line 543) | private async Task RunAsSidecarModuleAsync(CancellationToken ct = defa...
    method RunAsIoTHubConnectedModuleAsync (line 635) | private async ValueTask RunAsIoTHubConnectedModuleAsync(
    method CreateSidecarHttpClientIfRequired (line 752) | private void CreateSidecarHttpClientIfRequired()
    method CreatePublisherHttpClientAsync (line 792) | private async ValueTask CreatePublisherHttpClientAsync()
    method UpdateLogger (line 884) | private ILogger UpdateLogger()
    method CreateModuleClientAsync (line 896) | private static async ValueTask<ModuleClient> CreateModuleClientAsync()
    type ApiKeyProvider (line 912) | public sealed record class ApiKeyProvider(string ApiKey);
    class ApiKeyHandler (line 925) | internal sealed class ApiKeyHandler(IOptionsMonitor<AuthenticationSche...
      method HandleAuthenticateAsync (line 933) | protected override Task<AuthenticateResult> HandleAuthenticateAsync()
    method GetAzureCredentials (line 981) | private static TokenCredential GetAzureCredentials(string? tenantId,

FILE: samples/Netcap/src/Pcap.cs
  class Pcap (line 19) | internal abstract class Pcap
    type CaptureConfiguration (line 28) | public sealed record class CaptureConfiguration(
    type InterfaceType (line 32) | public enum InterfaceType
    method Capture (line 47) | public static IDisposable Capture(CaptureConfiguration configuration,
    method Merge (line 62) | public static void Merge(string folder, string outputFile)
    method GetFilePath (line 99) | private static string GetFilePath(string folder, int index)
    class Base (line 107) | internal abstract class Base : IDisposable
      method Base (line 124) | protected Base(ILogger logger, CaptureConfiguration configuration)
      method Dispose (line 257) | public void Dispose()
      method Dispose (line 267) | protected virtual void Dispose(bool disposing)
      method StopCapture (line 291) | protected void StopCapture()
      method WritePacket (line 326) | private void WritePacket(object sender, PacketCapture e)
      method UpdateWriter (line 341) | private void UpdateWriter()
      method CreateWriter (line 366) | private CaptureFileWriterDevice CreateWriter(int index)
    class Local (line 399) | internal sealed class Local : Base
      method Local (line 407) | public Local(ILogger logger, CaptureConfiguration configuration,
      method Dispose (line 416) | protected override void Dispose(bool disposing)
      method RunAsync (line 440) | private async Task RunAsync(CancellationToken ct = default)
    class Remote (line 457) | private sealed class Remote : IDisposable
      method Remote (line 466) | public Remote(ILogger logger, CaptureConfiguration configuration,
      method Dispose (line 480) | public void Dispose()
      method StartAsync (line 506) | private async Task<int> StartAsync(CaptureConfiguration configuration,
      method RunAsync (line 521) | private async Task RunAsync(CancellationToken ct)
      method StopAsync (line 556) | public async Task StopAsync(CancellationToken ct = default)
    type Server (line 575) | public sealed record Server : IDisposable

FILE: samples/Netcap/src/Publisher.cs
  class Publisher (line 17) | internal sealed class Publisher : IDisposable
    method Publisher (line 35) | public Publisher(HttpClient httpClient, string? publisherIpAddresses, ...
    method Dispose (line 56) | public void Dispose()
    method GetCaptureConfiguration (line 68) | public Pcap.CaptureConfiguration GetCaptureConfiguration(
    method UploadChannelLogsAsync (line 97) | public async ValueTask UploadChannelLogsAsync(Storage storage, Cancell...
    method TryUploadEndpointsAsync (line 136) | public async ValueTask<bool> TryUploadEndpointsAsync(Storage storage,
    method UploadSessionKeysFromDiagnosticsAsync (line 186) | private async Task UploadSessionKeysFromDiagnosticsAsync(Storage storage,

FILE: samples/Netcap/src/Storage.cs
  class Storage (line 30) | internal sealed class Storage(string deviceId, string moduleId, string c...
    method DownloadAsync (line 39) | public async Task DownloadAsync(string path, CancellationToken ct = de...
    method UploadAsync (line 134) | public async ValueTask UploadAsync(string file, CancellationToken ct =...
    method DeleteAsync (line 188) | public async Task DeleteAsync(CancellationToken ct)
    method EnsureQueueAsync (line 214) | private async Task EnsureQueueAsync(QueueClient queueClient, Cancellat...
    method GetClientMetadata (line 232) | private Dictionary<string, string> GetClientMetadata()
    type ProgressLogger (line 241) | private sealed record class ProgressLogger(ILogger Logger, string Blob...
    type Notification (line 257) | internal sealed record class Notification(Uri ContainerUri, Uri BlobUri,

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/AdditionalData.cs
  type AdditionalData (line 15) | [Flags]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/AggregateConfigurationModel.cs
  type AggregateConfigurationModel (line 13) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/AggregateFilterModel.cs
  type AggregateFilterModel (line 14) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/ApplicationInfoModel.cs
  type ApplicationInfoModel (line 15) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/ApplicationRegistrationModel.cs
  type ApplicationRegistrationModel (line 15) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/ApplicationType.cs
  type ApplicationType (line 13) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/AttributeReadRequestModel.cs
  type AttributeReadRequestModel (line 14) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/AttributeReadResponseModel.cs
  type AttributeReadResponseModel (line 15) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/AttributeWriteRequestModel.cs
  type AttributeWriteRequestModel (line 15) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/AttributeWriteResponseModel.cs
  type AttributeWriteResponseModel (line 13) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/AuthenticationMethodModel.cs
  type AuthenticationMethodModel (line 15) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/BrowseDirection.cs
  type BrowseDirection (line 13) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/BrowseFirstRequestModel.cs
  type BrowseFirstRequestModel (line 14) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/BrowseFirstResponseModel.cs
  type BrowseFirstResponseModel (line 14) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/BrowseNextRequestModel.cs
  type BrowseNextRequestModel (line 14) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/BrowseNextResponseModel.cs
  type BrowseNextResponseModel (line 14) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/BrowsePathRequestModel.cs
  type BrowsePathRequestModel (line 15) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/BrowsePathResponseModel.cs
  type BrowsePathResponseModel (line 14) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/BrowseStreamChunkModel.cs
  type BrowseStreamChunkModel (line 13) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/BrowseStreamRequestModel.cs
  type BrowseStreamRequestModel (line 14) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/BrowseViewModel.cs
  type BrowseViewModel (line 15) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/CertificateStoreName.cs
  type CertificateStoreName (line 13) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/ChannelDiagnosticModel.cs
  type ChannelDiagnosticModel (line 14) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/ChannelKeyModel.cs
  type ChannelKeyModel (line 14) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/ConditionHandlingOptionsModel.cs
  type ConditionHandlingOptionsModel (line 13) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/ConnectionDiagnosticsModel.cs
  type ConnectionDiagnosticsModel (line 13) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/ConnectionModel.cs
  type ConnectionModel (line 15) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/ConnectionOptions.cs
  type ConnectionOptions (line 14) | [Flags]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/Constants.cs
  class Constants (line 11) | public static class Constants

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/ContentFilterElementModel.cs
  type ContentFilterElementModel (line 14) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/ContentFilterModel.cs
  type ContentFilterModel (line 14) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/CredentialModel.cs
  type CredentialModel (line 15) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/CredentialType.cs
  type CredentialType (line 13) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/DataChangeFilterModel.cs
  type DataChangeFilterModel (line 13) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/DataChangeTriggerType.cs
  type DataChangeTriggerType (line 13) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/DataLocation.cs
  type DataLocation (line 13) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/DataSetFieldContentFlags.cs
  type DataSetFieldContentFlags (line 14) | [Flags]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/DataSetMessageContentFlags.cs
  type DataSetMessageContentFlags (line 14) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/DataSetMetaDataModel.cs
  type DataSetMetaDataModel (line 14) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/DataSetOrderingType.cs
  type DataSetOrderingType (line 13) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/DataSetRoutingMode.cs
  type DataSetRoutingMode (line 16) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/DataSetWriterMessageSettingsModel.cs
  type DataSetWriterMessageSettingsModel (line 13) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/DataSetWriterModel.cs
  type DataSetWriterModel (line 14) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/DataTypeMetadataModel.cs
  type DataTypeMetadataModel (line 13) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/DeadbandType.cs
  type DeadbandType (line 13) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/DeleteEventsDetailsModel.cs
  type DeleteEventsDetailsModel (line 15) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/DeleteValuesAtTimesDetailsModel.cs
  type DeleteValuesAtTimesDetailsModel (line 16) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/DeleteValuesDetailsModel.cs
  type DeleteValuesDetailsModel (line 14) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/DiagnosticsLevel.cs
  type DiagnosticsLevel (line 13) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/DiagnosticsModel.cs
  type DiagnosticsModel (line 14) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/DiscoveryCancelRequestModel.cs
  type DiscoveryCancelRequestModel (line 13) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/DiscoveryConfigModel.cs
  type DiscoveryConfigModel (line 15) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/DiscoveryEventModel.cs
  type DiscoveryEventModel (line 13) | public sealed record class DiscoveryEventModel

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/DiscoveryMode.cs
  type DiscoveryMode (line 13) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/DiscoveryProgressModel.cs
  type DiscoveryProgressModel (line 15) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/DiscoveryProgressType.cs
  type DiscoveryProgressType (line 13) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/DiscoveryRequestModel.cs
  type DiscoveryRequestModel (line 13) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/DiscoveryResultModel.cs
  type DiscoveryResultModel (line 16) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/EndpointConnectivityState.cs
  type EndpointConnectivityState (line 13) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/EndpointEventModel.cs
  type EndpointEventModel (line 13) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/EndpointEventType.cs
  type EndpointEventType (line 13) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/EndpointInfoModel.cs
  type EndpointInfoModel (line 15) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/EndpointModel.cs
  type EndpointModel (line 15) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/EndpointRegistrationModel.cs
  type EndpointRegistrationModel (line 15) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/EnumDescriptionModel.cs
  type EnumDescriptionModel (line 14) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/EnumFieldDescriptionModel.cs
  type EnumFieldDescriptionModel (line 13) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/EventFilterModel.cs
  type EventFilterModel (line 14) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/ExceptionDeviationType.cs
  type ExceptionDeviationType (line 13) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/ExtensionFieldModel.cs
  type ExtensionFieldModel (line 16) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/FileInfoModel.cs
  type FileInfoModel (line 14) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/FileOpenWriteOptionsModel.cs
  type FileOpenWriteOptionsModel (line 13) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/FileSystemObjectModel.cs
  type FileSystemObjectModel (line 14) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/FileWriteMode.cs
  type FileWriteMode (line 13) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/FilterOperandModel.cs
  type FilterOperandModel (line 16) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/FilterOperatorType.cs
  type FilterOperatorType (line 13) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/GetConfiguredEndpointsRequestModel.cs
  type GetConfiguredEndpointsRequestModel (line 13) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/GetConfiguredEndpointsResponseModel.cs
  type GetConfiguredEndpointsResponseModel (line 14) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/GetConfiguredNodesOnEndpointResponseModel.cs
  type GetConfiguredNodesOnEndpointResponseModel (line 14) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/HeartbeatBehavior.cs
  type HeartbeatBehavior (line 17) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/HistoricEventModel.cs
  type HistoricEventModel (line 16) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/HistoricValueModel.cs
  type HistoricValueModel (line 16) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/HistoryConfigurationModel.cs
  type HistoryConfigurationModel (line 15) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/HistoryConfigurationRequestModel.cs
  type HistoryConfigurationRequestModel (line 14) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/HistoryConfigurationResponseModel.cs
  type HistoryConfigurationResponseModel (line 13) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/HistoryReadNextRequestModel.cs
  type HistoryReadNextRequestModel (line 14) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/HistoryReadNextResponseModel.cs
  type HistoryReadNextResponseModel (line 14) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/HistoryReadRequestModel.cs
  type HistoryReadRequestModel (line 16) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/HistoryReadResponseModel.cs
  type HistoryReadResponseModel (line 14) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/HistoryServerCapabilitiesModel.cs
  type HistoryServerCapabilitiesModel (line 14) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/HistoryUpdateOperation.cs
  type HistoryUpdateOperation (line 13) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/HistoryUpdateRequestModel.cs
  type HistoryUpdateRequestModel (line 16) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/HistoryUpdateResponseModel.cs
  type HistoryUpdateResponseModel (line 14) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/InstanceDeclarationModel.cs
  type InstanceDeclarationModel (line 14) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/LocalizedTextModel.cs
  type LocalizedTextModel (line 13) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/MessageEncoding.cs
  type MessageEncoding (line 16) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/MessageTimestamp.cs
  type MessageTimestamp (line 13) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/MessagingMode.cs
  type MessagingMode (line 15) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/MethodCallArgumentModel.cs
  type MethodCallArgumentModel (line 15) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/MethodCallRequestModel.cs
  type MethodCallRequestModel (line 29) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/MethodCallResponseModel.cs
  type MethodCallResponseModel (line 14) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/MethodMetadataArgumentModel.cs
  type MethodMetadataArgumentModel (line 16) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/MethodMetadataModel.cs
  type MethodMetadataModel (line 14) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/MethodMetadataRequestModel.cs
  type MethodMetadataRequestModel (line 14) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/MethodMetadataResponseModel.cs
  type MethodMetadataResponseModel (line 13) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/ModelChangeHandlingOptionsModel.cs
  type ModelChangeHandlingOptionsModel (line 14) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/ModificationInfoModel.cs
  type ModificationInfoModel (line 14) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/MonitoredItemWatchdogCondition.cs
  type MonitoredItemWatchdogCondition (line 17) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/MonitoringItemMode.cs
  type MonitoringMode (line 13) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/NamespaceFormat.cs
  type NamespaceFormat (line 14) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/NetworkMessageContentFlags.cs
  type NetworkMessageContentFlags (line 14) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/NodeAccessLevel.cs
  type NodeAccessLevel (line 14) | [Flags]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/NodeAccessRestrictions.cs
  type NodeAccessRestrictions (line 15) | [Flags]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/NodeAttribute.cs
  type NodeAttribute (line 13) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/NodeClass.cs
  type NodeClass (line 13) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/NodeEventNotifier.cs
  type NodeEventNotifier (line 14) | [Flags]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/NodeIdModel.cs
  type NodeIdModel (line 19) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/NodeMetadataRequestModel.cs
  type NodeMetadataRequestModel (line 14) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/NodeMetadataResponseModel.cs
  type NodeMetadataResponseModel (line 13) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/NodeModel.cs
  type NodeModel (line 17) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/NodePathTargetModel.cs
  type NodePathTargetModel (line 14) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/NodeReferenceModel.cs
  type NodeReferenceModel (line 14) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/NodeType.cs
  type NodeType (line 13) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/NodeValueRank.cs
  type NodeValueRank (line 14) | [Flags]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/OpcAuthenticationMode.cs
  type OpcAuthenticationMode (line 16) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/OpcNodeModel.cs
  type OpcNodeModel (line 21) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/OperationContextModel.cs
  type OperationContextModel (line 14) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/OperationLimitsModel.cs
  type OperationLimitsModel (line 13) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/PublishBulkRequestModel.cs
  type PublishBulkRequestModel (line 14) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/PublishBulkResponseModel.cs
  type PublishBulkResponseModel (line 14) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/PublishDiagnosticInfoModel.cs
  type PublishDiagnosticInfoModel (line 15) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/PublishStartRequestModel.cs
  type PublishStartRequestModel (line 14) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/PublishStartResponseModel.cs
  type PublishStartResponseModel (line 13) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/PublishStopRequestModel.cs
  type PublishStopRequestModel (line 14) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/PublishStopResponseModel.cs
  type PublishStopResponseModel (line 13) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/PublishedDataItemsModel.cs
  type PublishedDataItemsModel (line 14) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/PublishedDataSetEventModel.cs
  type PublishedDataSetEventModel (line 14) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/PublishedDataSetMessageSchemaModel.cs
  type PublishedDataSetMessageSchemaModel (line 13) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/PublishedDataSetMetaDataModel.cs
  type PublishedDataSetMetaDataModel (line 14) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/PublishedDataSetMethodModel.cs
  type PublishedDataSetMethodModel (line 14) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/PublishedDataSetModel.cs
  type PublishedDataSetModel (line 14) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/PublishedDataSetSettingsModel.cs
  type PublishedDataSetSettingsModel (line 14) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/PublishedDataSetSourceModel.cs
  type PublishedDataSetSourceModel (line 14) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/PublishedDataSetTriggerModel.cs
  type PublishedDataSetTriggerModel (line 13) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/PublishedDataSetVariableModel.cs
  type PublishedDataSetVariableModel (line 17) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/PublishedEventItemsModel.cs
  type PublishedEventItemsModel (line 14) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/PublishedFieldMetaDataModel.cs
  type PublishedFieldMetaDataModel (line 16) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/PublishedItemListRequestModel.cs
  type PublishedItemListRequestModel (line 13) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/PublishedItemListResponseModel.cs
  type PublishedItemListResponseModel (line 14) | [DataContract]
  type SetEndpointConfigurationRequestModel (line 34) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/PublishedItemModel.cs
  type PublishedItemModel (line 15) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/PublishedMethodItemsModel.cs
  type PublishedMethodItemsModel (line 14) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/PublishedNetworkMessageSchemaModel.cs
  type PublishedNetworkMessageSchemaModel (line 14) | public sealed record class PublishedNetworkMessageSchemaModel

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/PublishedNodeCreateAssetRequestModel.cs
  type PublishedNodeCreateAssetRequestModel (line 16) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/PublishedNodeDeleteAssetRequestModel.cs
  type PublishedNodeDeleteAssetRequestModel (line 15) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/PublishedNodeExpansionModel.cs
  type PublishedNodeExpansionModel (line 32) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/PublishedNodesEntryModel.cs
  type PublishedNodesEntryModel (line 37) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/PublishedNodesEntryRequestModel.cs
  type PublishedNodesEntryRequestModel (line 17) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/PublishedNodesResponseModel.cs
  type PublishedNodesResponseModel (line 11) | public sealed record class PublishedNodesResponseModel

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/PublisherDiagnosticTargetType.cs
  type PublisherDiagnosticTargetType (line 13) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/PublishingQueueSettingsModel.cs
  type PublishingQueueSettingsModel (line 15) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/QueryCompilationRequestModel.cs
  type QueryCompilationRequestModel (line 14) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/QueryCompilationResponseModel.cs
  type QueryCompilationResponseModel (line 13) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/QueryType.cs
  type QueryType (line 13) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/ReadEventsDetailsModel.cs
  type ReadEventsDetailsModel (line 14) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/ReadModifiedValuesDetailsModel.cs
  type ReadModifiedValuesDetailsModel (line 14) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/ReadProcessedValuesDetailsModel.cs
  type ReadProcessedValuesDetailsModel (line 14) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/ReadRequestModel.cs
  type ReadRequestModel (line 15) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/ReadResponseModel.cs
  type ReadResponseModel (line 14) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/ReadValuesAtTimesDetailsModel.cs
  type ReadValuesAtTimesDetailsModel (line 16) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/ReadValuesDetailsModel.cs
  type ReadValuesDetailsModel (line 14) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/RelativePathElementModel.cs
  type RelativePathElementModel (line 13) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/RequestEnvelope.cs
  type RequestEnvelope (line 17) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/RequestHeaderModel.cs
  type RequestHeaderModel (line 14) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/RolePermissionModel.cs
  type RolePermissionModel (line 14) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/RolePermissions.cs
  type RolePermissions (line 14) | [Flags]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/RuntimeStateEventModel.cs
  class RuntimeStateEventModel (line 14) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/RuntimeStateEventType.cs
  type RuntimeStateEventType (line 13) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/SecurityMode.cs
  type SecurityMode (line 17) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/ServerCapabilitiesModel.cs
  type ServerCapabilitiesModel (line 14) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/ServerEndpointQueryModel.cs
  type ServerEndpointQueryModel (line 13) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/ServerRegistrationRequestModel.cs
  type ServerRegistrationRequestModel (line 14) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/ServiceCounterModel.cs
  type ServiceCounterModel (line 13) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/ServiceResponse.cs
  type ServiceResponse (line 14) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/ServiceResultModel.cs
  type ServiceResultModel (line 13) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/SessionDiagnosticsModel.cs
  type SessionDiagnosticsModel (line 15) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/SetConfiguredEndpointsRequestModel.cs
  type SetConfiguredEndpointsRequestModel (line 14) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/SimpleAttributeOperandModel.cs
  type SimpleAttributeOperandModel (line 15) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/SimpleTypeDescriptionModel.cs
  type SimpleTypeDescriptionModel (line 13) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/SkipValidationAttribute.cs
  class SkipValidationAttribute (line 11) | [AttributeUsage(AttributeTargets.All, AllowMultiple = false)]
    method IsValid (line 15) | public override bool IsValid(object? value)

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/StructureDescriptionModel.cs
  type StructureDescriptionModel (line 14) | public record class StructureDescriptionModel

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/StructureFieldDescriptionModel.cs
  type StructureFieldDescriptionModel (line 14) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/StructureType.cs
  type StructureType (line 13) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/SubscriptionDiagnosticsModel.cs
  type SubscriptionDiagnosticsModel (line 13) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/SubscriptionWatchdogBehavior.cs
  type SubscriptionWatchdogBehavior (line 17) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/TestConnectionRequestModel.cs
  type TestConnectionRequestModel (line 13) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/TestConnectionResponseModel.cs
  type TestConnectionResponseModel (line 13) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/TimestampsToReturn.cs
  type TimestampsToReturn (line 13) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/TypeDefinitionModel.cs
  type TypeDefinitionModel (line 15) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/UpdateEventsDetailsModel.cs
  type UpdateEventsDetailsModel (line 15) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/UpdateValuesDetailsModel.cs
  type UpdateValuesDetailsModel (line 15) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/UserIdentityModel.cs
  type UserIdentityModel (line 13) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/ValueReadRequestModel.cs
  type ValueReadRequestModel (line 15) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/ValueReadResponseModel.cs
  type ValueReadResponseModel (line 16) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/ValueWriteRequestModel.cs
  type ValueWriteRequestModel (line 16) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/ValueWriteResponseModel.cs
  type ValueWriteResponseModel (line 13) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/VariableMetadataModel.cs
  type VariableMetadataModel (line 14) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/WriteRequestModel.cs
  type WriteRequestModel (line 15) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/WriteResponseModel.cs
  type WriteResponseModel (line 14) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/WriterGroupDiagnosticModel.cs
  type WriterGroupDiagnosticModel (line 14) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/WriterGroupMessageSettingsModel.cs
  type WriterGroupMessageSettingsModel (line 14) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/WriterGroupModel.cs
  type WriterGroupModel (line 17) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/WriterGroupTransport.cs
  type WriterGroupTransport (line 16) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/X509CertificateChainModel.cs
  type X509CertificateChainModel (line 14) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/X509CertificateModel.cs
  type X509CertificateModel (line 15) | [DataContract]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/src/X509ChainStatus.cs
  type X509ChainStatus (line 14) | [Flags]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/tests/Fixtures/TypeFixture.cs
  class TypeFixture (line 17) | public static class TypeFixture
    method GetDataContractTypes (line 19) | public static IEnumerable<object[]> GetDataContractTypes()
    method GetAllModelTypes (line 26) | public static IEnumerable<Type> GetAllModelTypes<T>()

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/tests/JsonSerializerTests.cs
  class JsonSerializerTests (line 19) | public class JsonSerializerTests
    method SerializerDeserializeScalarTypeToBuffer (line 21) | [Theory]
    method SerializerDeserializeScalarTypeToString (line 33) | [Theory]
    method SerializerDeserializeScalarTypeToBufferWithFixture (line 47) | [Theory]
    method SerializerDeserializeArrayTypeToBufferWithFixture (line 74) | [Theory]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/tests/MsgPackSerializerTests.cs
  class MsgPackSerializerTests (line 18) | public class MsgPackSerializerTests
    method SerializerDeserializeScalarTypeToBuffer (line 20) | [Theory]
    method SerializerDeserializeScalarTypeToBufferWithFixture (line 32) | [Theory]
    method SerializerDeserializeArrayTypeToBufferWithFixture (line 59) | [Theory]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/tests/NewtonsoftSerializerTests.cs
  class NewtonsoftSerializerTests (line 19) | public class NewtonsoftSerializerTests
    method SerializerDeserializeScalarTypeToBuffer (line 21) | [Theory]
    method SerializerDeserializeScalarTypeToString (line 33) | [Theory]
    method SerializerDeserializeScalarTypeToBufferWithFixture (line 47) | [Theory]
    method SerializerDeserializeArrayTypeToBufferWithFixture (line 74) | [Theory]

FILE: src/Azure.IIoT.OpcUa.Publisher.Models/tests/PublishNodesEndpointApiModelTests.cs
  class PublishedNodesEntryModelTests (line 13) | public class PublishedNodesEntryModelTests
    method UseSecurityDeserializationTest (line 15) | [Fact]
    method UseSecuritySerializationTest (line 64) | [Fact]
    method OpcAuthenticationModeDeserializationTest (line 111) | [Fact]
    method OpcAuthenticationModeSerializationTest (line 161) | [Fact]

FILE: src/Azure.IIoT.OpcUa.Publisher.Module/cli/Program.cs
  class Program (line 36) | public static class Program
    method Main (line 43) | public static void Main(string[] args)
    method HostAsync (line 368) | private static async Task HostAsync(string? connectionString, ILoggerF...
    method WithServerAsync (line 474) | private static async Task WithServerAsync(string? connectionString, IL...
    method DumpMessagesAsync (line 517) | private static async Task DumpMessagesAsync(string messageMode, string...
    method LoadPnJsonAsync (line 666) | private static async Task<string?> LoadPnJsonAsync(ServerWrapper serve...
    method CopyProfileToPnJsonAsync (line 690) | private static async Task CopyProfileToPnJsonAsync(string publishProfi...
    method LoadInitFileAsync (line 706) | private static async Task<string?> LoadInitFileAsync(string? initProfi...
    method AddOrGetAsync (line 734) | private static async Task<ConnectionString> AddOrGetAsync(string conne...
    class ServerWrapper (line 788) | private sealed class ServerWrapper : IDisposable
      method ServerWrapper (line 801) | public ServerWrapper(uint scaleunits, int errorRate, ILoggerFactory ...
      method Dispose (line 808) | public void Dispose()
      method RunSampleServerAsync (line 824) | private async Task RunSampleServerAsync(uint scaleunits, int errorRate,
    method ReplacePropertyValue (line 881) | public static string ReplacePropertyValue(string json, string property...
  class ProgramLogging (line 892) | internal static partial class ProgramLogging
    method PublisherModuleInit (line 896) | [LoggerMessage(EventId = EventClass + 1, Level = LogLevel.Information,
    method MissingConnectionString (line 900) | [LoggerMessage(EventId = EventClass + 2, Level = LogLevel.Information,
    method UsingDeviceId (line 904) | [LoggerMessage(EventId = EventClass + 3, Level = LogLevel.Information,
    method UsingModuleId (line 908) | [LoggerMessage(EventId = EventClass + 4, Level = LogLevel.Information,
    method UnhandledException (line 912) | [LoggerMessage(EventId = EventClass + 5, Level = LogLevel.Error,
    method ConnectionStringStart (line 916) | [LoggerMessage(EventId = EventClass + 6, Level = LogLevel.Information,
    method ConnectionStringRetrieved (line 920) | [LoggerMessage(EventId = EventClass + 7, Level = LogLevel.Information,
    method ConnectionStringFailed (line 924) | [LoggerMessage(EventId = EventClass + 8, Level = LogLevel.Error,
    method PublisherModuleStarting (line 928) | [LoggerMessage(EventId = EventClass + 9, Level = LogLevel.Information,
    method PublisherModuleExited (line 932) | [LoggerMessage(EventId = EventClass + 10, Level = LogLevel.Information,
    method IotEdgeDeviceExists (line 936) | [LoggerMessage(EventId = EventClass + 11, Level = LogLevel.Information,
    method PublisherExists (line 940) | [LoggerMessage(EventId = EventClass + 12, Level = LogLevel.Information,
    method ServerRestarting (line 944) | [LoggerMessage(EventId = EventClass + 13, Level = LogLevel.Information,
    method ServerRestarted (line 948) | [LoggerMessage(EventId = EventClass + 14, Level = LogLevel.Information,
    method ReverseConnectToClient (line 952) | [LoggerMessage(EventId = EventClass + 15, Level = LogLevel.Information,
    method StoppingServer (line 956) | [LoggerMessage(EventId = EventClass + 16, Level = LogLevel.Information,
    method ServerStopped (line 960) | [LoggerMessage(EventId = EventClass + 17, Level = LogLevel.Information,
    method WaitingToRestartServer (line 964) | [LoggerMessage(EventId = EventClass + 18, Level = LogLevel.Information,
    method ServerException (line 968) | [LoggerMessage(EventId = EventClass + 19, Level = LogLevel.Error,
    method ServerExited (line 972) | [LoggerMessage(EventId = EventClass + 20, Level = LogLevel.Information,

FILE: src/Azure.IIoT.OpcUa.Publisher.Module/src/Controllers/CertificatesController.cs
  class CertificatesController (line 35) | [Version("_V1")]
    method CertificatesController (line 52) | public CertificatesController(IOpcUaCertificates certificates)
    method ListCertificatesAsync (line 73) | [ProducesResponseType(StatusCodes.Status200OK)]
    method ListCertificateRevocationListsAsync (line 105) | [ProducesResponseType(StatusCodes.Status200OK)]
    method AddCertificateAsync (line 139) | [ProducesResponseType(StatusCodes.Status200OK)]
    method AddCertificateRevocationListAsync (line 172) | [ProducesResponseType(StatusCodes.Status200OK)]
    method AddCertificateChainAsync (line 203) | [ProducesResponseType(StatusCodes.Status200OK)]
    method ApproveRejectedCertificateAsync (line 227) | [ProducesResponseType(StatusCodes.Status200OK)]
    method AddTrustedHttpsCertificateAsync (line 253) | [ProducesResponseType(StatusCodes.Status200OK)]
    method RemoveCertificateAsync (line 280) | [ProducesResponseType(StatusCodes.Status200OK)]
    method RemoveCertificateRevocationListAsync (line 310) | [ProducesResponseType(StatusCodes.Status200OK)]
    method RemoveAllAsync (line 340) | [ProducesResponseType(StatusCodes.Status200OK)]

FILE: src/Azure.IIoT.OpcUa.Publisher.Module/src/Controllers/ConfigurationController.cs
  class ConfigurationController (line 33) | [Version("_V2")]
    method ConfigurationController (line 50) | public ConfigurationController(IPublishedNodesServices configServices)
    method PublishStartAsync (line 70) | [ProducesResponseType(StatusCodes.Status200OK)]
    method PublishStopAsync (line 100) | [ProducesResponseType(StatusCodes.Status200OK)]
    method PublishBulkAsync (line 132) | [ProducesResponseType(StatusCodes.Status200OK)]
    method PublishListAsync (line 162) | [ProducesResponseType(StatusCodes.Status200OK)]
    method PublishNodesAsync (line 191) | [ProducesResponseType(StatusCodes.Status200OK)]
    method UnpublishNodesAsync (line 221) | [ProducesResponseType(StatusCodes.Status200OK)]
    method UnpublishAllNodesAsync (line 250) | [ProducesResponseType(StatusCodes.Status200OK)]
    method AddOrUpdateEndpointsAsync (line 279) | [ProducesResponseType(StatusCodes.Status200OK)]
    method GetConfiguredEndpointsAsync (line 309) | [ProducesResponseType(StatusCodes.Status200OK)]
    method SetConfiguredEndpointsAsync (line 344) | [ProducesResponseType(StatusCodes.Status200OK)]
    method GetConfiguredNodesOnEndpointAsync (line 378) | [ProducesResponseType(StatusCodes.Status200OK)]
    method GetDiagnosticInfoAsync (line 410) | [ProducesResponseType(StatusCodes.Status200OK)]

FILE: src/Azure.IIoT.OpcUa.Publisher.Module/src/Controllers/DiagnosticsController.cs
  class DiagnosticsController (line 33) | [Version("_V1")]
    method DiagnosticsController (line 50) | public DiagnosticsController(IClientDiagnostics diagnostics)
    method ResetAllConnectionsAsync (line 67) | [ProducesResponseType(StatusCodes.Status200OK)]
    method GetActiveConnectionsAsync (line 85) | [ProducesResponseType(StatusCodes.Status200OK)]
    method GetConnectionDiagnosticsAsync (line 106) | [ProducesResponseType(StatusCodes.Status200OK)]
    method GetChannelDiagnosticsAsync (line 125) | [ProducesResponseType(StatusCodes.Status200OK)]
    method WatchChannelDiagnosticsAsync (line 146) | [ProducesResponseType(StatusCodes.Status200OK)]

FILE: src/Azure.IIoT.OpcUa.Publisher.Module/src/Controllers/DiscoveryController.cs
  class DiscoveryController (line 31) | [Version("_V1")]
    method DiscoveryController (line 49) | public DiscoveryController(INetworkDiscovery discover,
    method FindServerAsync (line 77) | [ProducesResponseType(StatusCodes.Status200OK)]
    method RegisterAsync (line 108) | [ProducesResponseType(StatusCodes.Status200OK)]
    method DiscoverAsync (line 142) | [ProducesResponseType(StatusCodes.Status200OK)]
    method CancelAsync (line 175) | [ProducesResponseType(StatusCodes.Status200OK)]

FILE: src/Azure.IIoT.OpcUa.Publisher.Module/src/Controllers/FileSystemController.cs
  class FileSystemController (line 37) | [Version("_V1")]
    method FileSystemController (line 55) | public FileSystemController(IFileSystemServices<ConnectionModel> files,
    method GetFileSystemsAsync (line 79) | [ProducesResponseType(StatusCodes.Status200OK)]
    method GetDirectoriesAsync (line 110) | [ProducesResponseType(StatusCodes.Status200OK)]
    method GetFilesAsync (line 144) | [ProducesResponseType(StatusCodes.Status200OK)]
    method GetParentAsync (line 177) | [ProducesResponseType(StatusCodes.Status200OK)]
    method GetFileInfoAsync (line 210) | [ProducesResponseType(StatusCodes.Status200OK)]
    method CreateFileAsync (line 246) | [ProducesResponseType(StatusCodes.Status200OK)]
    method CreateDirectoryAsync (line 283) | [ProducesResponseType(StatusCodes.Status200OK)]
    method DeleteFileSystemObjectAsync (line 318) | [ProducesResponseType(StatusCodes.Status200OK)]
    method DeleteFileOrDirectoryAsync (line 354) | [ProducesResponseType(StatusCodes.Status200OK)]
    method DownloadAsync (line 398) | [ProducesResponseType(StatusCodes.Status200OK)]
    method UploadAsync (line 462) | [ProducesResponseType(StatusCodes.Status200OK)]

FILE: src/Azure.IIoT.OpcUa.Publisher.Module/src/Controllers/GeneralController.cs
  class GeneralController (line 35) | [Version("_V1")]
    method GeneralController (line 54) | public GeneralController(IConnectionServices<ConnectionModel> endpoints,
    method GetServerCapabilitiesAsync (line 85) | [ProducesResponseType(StatusCodes.Status200OK)]
    method BrowseAsync (line 122) | [ProducesResponseType(StatusCodes.Status200OK)]
    method BrowseNextAsync (line 155) | [ProducesResponseType(StatusCodes.Status200OK)]
    method BrowseStreamAsync (line 192) | [ProducesResponseType(StatusCodes.Status200OK)]
    method BrowsePathAsync (line 227) | [ProducesResponseType(StatusCodes.Status200OK)]
    method ValueReadAsync (line 262) | [ProducesResponseType(StatusCodes.Status200OK)]
    method ValueWriteAsync (line 297) | [ProducesResponseType(StatusCodes.Status200OK)]
    method GetMetadataAsync (line 334) | [ProducesResponseType(StatusCodes.Status200OK)]
    method CompileQueryAsync (line 366) | [ProducesResponseType(StatusCodes.Status200OK)]
    method MethodMetadataAsync (line 401) | [ProducesResponseType(StatusCodes.Status200OK)]
    method MethodCallAsync (line 439) | [ProducesResponseType(StatusCodes.Status200OK)]
    method NodeReadAsync (line 477) | [ProducesResponseType(StatusCodes.Status200OK)]
    method NodeWriteAsync (line 515) | [ProducesResponseType(StatusCodes.Status200OK)]
    method HistoryReadAsync (line 552) | [ProducesResponseType(StatusCodes.Status200OK)]
    method HistoryReadNextAsync (line 588) | [ProducesResponseType(StatusCodes.Status200OK)]
    method HistoryUpdateAsync (line 624) | [ProducesResponseType(StatusCodes.Status200OK)]
    method GetEndpointCertificateAsync (line 658) | [ProducesResponseType(StatusCodes.Status200OK)]
    method HistoryGetServerCapabilitiesAsync (line 689) | [ProducesResponseType(StatusCodes.Status200OK)]
    method HistoryGetConfigurationAsync (line 721) | [ProducesResponseType(StatusCodes.Status200OK)]
    method TestConnectionAsync (line 756) | [ProducesResponseType(StatusCodes.Status200OK)]

FILE: src/Azure.IIoT.OpcUa.Publisher.Module/src/Controllers/HistoryController.cs
  class HistoryController (line 34) | [Version("_V1")]
    method HistoryController (line 51) | public HistoryController(IHistoryServices<ConnectionModel> historian)
    method HistoryReplaceEventsAsync (line 76) | [ProducesResponseType(StatusCodes.Status200OK)]
    method HistoryInsertEventsAsync (line 112) | [ProducesResponseType(StatusCodes.Status200OK)]
    method HistoryUpsertEventsAsync (line 148) | [ProducesResponseType(StatusCodes.Status200OK)]
    method HistoryDeleteEventsAsync (line 184) | [ProducesResponseType(StatusCodes.Status200OK)]
    method HistoryDeleteValuesAtTimesAsync (line 220) | [ProducesResponseType(StatusCodes.Status200OK)]
    method HistoryDeleteModifiedValuesAsync (line 256) | [ProducesResponseType(StatusCodes.Status200OK)]
    method HistoryDeleteValuesAsync (line 292) | [ProducesResponseType(StatusCodes.Status200OK)]
    method HistoryReplaceValuesAsync (line 328) | [ProducesResponseType(StatusCodes.Status200OK)]
    method HistoryInsertValuesAsync (line 364) | [ProducesResponseType(StatusCodes.Status200OK)]
    method HistoryUpsertValuesAsync (line 400) | [ProducesResponseType(StatusCodes.Status200OK)]
    method HistoryReadEventsAsync (line 436) | [ProducesResponseType(StatusCodes.Status200OK)]
    method HistoryReadEventsNextAsync (line 472) | [ProducesResponseType(StatusCodes.Status200OK)]
    method HistoryReadValuesAsync (line 507) | [ProducesResponseType(StatusCodes.Status200OK)]
    method HistoryReadValuesAtTimesAsync (line 543) | [ProducesResponseType(StatusCodes.Status200OK)]
    method HistoryReadProcessedValuesAsync (line 579) | [ProducesResponseType(StatusCodes.Status200OK)]
    method HistoryReadModifiedValuesAsync (line 615) | [ProducesResponseType(StatusCodes.Status200OK)]
    method HistoryReadValuesNextAsync (line 651) | [ProducesResponseType(StatusCodes.Status200OK)]
    method HistoryStreamValuesAsync (line 686) | [ProducesResponseType(StatusCodes.Status200OK)]
    method HistoryStreamModifiedValuesAsync (line 721) | [ProducesResponseType(StatusCodes.Status200OK)]
    method HistoryStreamValuesAtTimesAsync (line 756) | [ProducesResponseType(StatusCodes.Status200OK)]
    method HistoryStreamProcessedValuesAsync (line 791) | [ProducesResponseType(StatusCodes.Status200OK)]
    method HistoryStreamEventsAsync (line 826) | [ProducesResponseType(StatusCodes.Status200OK)]

FILE: src/Azure.IIoT.OpcUa.Publisher.Module/src/Controllers/LegacyController.cs
  class LegacyController (line 16) | [Version("_V2")]
    method GetInfoAsync (line 27) | public Task GetInfoAsync()
    method GetDiagnosticLogAsync (line 39) | public Task GetDiagnosticLogAsync()
    method GetDiagnosticStartupLogAsync (line 51) | public Task GetDiagnosticStartupLogAsync()

FILE: src/Azure.IIoT.OpcUa.Publisher.Module/src/Controllers/PublisherController.cs
  class PublisherController (line 16) | [Version("_V2")]
    method PublisherController (line 27) | public PublisherController(IProcessControl process, IApiKeyProvider ap...
    method GetApiKeyAsync (line 39) | public Task<string?> GetApiKeyAsync()
    method GetServerCertificateAsync (line 48) | public Task<string?> GetServerCertificateAsync()
    method ShutdownAsync (line 59) | public async Task ShutdownAsync(bool failFast = false)
    method ExitApplicationAsync (line 73) | public Task ExitApplicationAsync()

FILE: src/Azure.IIoT.OpcUa.Publisher.Module/src/Controllers/WriterController.cs
  class WriterController (line 41) | [Version("_V2")]
    method WriterController (line 61) | public WriterController(IPublishedNodesServices publisher,
    method CreateOrUpdateDataSetWriterEntryAsync (line 92) | [ProducesResponseType(StatusCodes.Status200OK)]
    method GetDataSetWriterEntryAsync (line 126) | [ProducesResponseType(StatusCodes.Status200OK)]
    method AddOrUpdateNodesAsync (line 166) | [ProducesResponseType(StatusCodes.Status200OK)]
    method AddOrUpdateNodeAsync (line 208) | [ProducesResponseType(StatusCodes.Status200OK)]
    method RemoveNodesAsync (line 246) | [ProducesResponseType(StatusCodes.Status200OK)]
    method RemoveNodeAsync (line 283) | [ProducesResponseType(StatusCodes.Status200OK)]
    method GetNodeAsync (line 321) | [ProducesResponseType(StatusCodes.Status200OK)]
    method GetNodesAsync (line 361) | [ProducesResponseType(StatusCodes.Status200OK)]
    method RemoveDataSetWriterEntryAsync (line 410) | [ProducesResponseType(StatusCodes.Status200OK)]
    method ExpandWriterAsync (line 447) | [ProducesResponseType(StatusCodes.Status200OK)]
    method ExpandAndCreateOrUpdateDataSetWriterEntriesAsync (line 483) | [ProducesResponseType(StatusCodes.Status200OK)]
    method CreateOrUpdateAsset2Async (line 521) | [ProducesResponseType(StatusCodes.Status200OK)]
    method CreateOrUpdateAssetAsync (line 558) | [ProducesResponseType(StatusCodes.Status200OK)]
    method GetAllAssetsAsync (line 596) | [ProducesResponseType(StatusCodes.Status200OK)]
    method DeleteAssetAsync (line 635) | [ProducesResponseType(StatusCodes.Status200OK)]

FILE: src/Azure.IIoT.OpcUa.Publisher.Module/src/Filters/ControllerExceptionFilterAttribute.cs
  class ControllerExceptionFilterAttribute (line 31) | public sealed class ControllerExceptionFilterAttribute : ExceptionFilter...
    method OnException (line 34) | public override void OnException(ExceptionContext context)
    method OnExceptionAsync (line 144) | public override Task OnExceptionAsync(ExceptionContext context)
    method GetResponse (line 164) | private static ObjectResult GetResponse(HttpStatusCode code, Exception...

FILE: src/Azure.IIoT.OpcUa.Publisher.Module/src/Filters/RouterExceptionFilterAttribute.cs
  class RouterExceptionFilterAttribute (line 22) | public sealed class RouterExceptionFilterAttribute : ExceptionFilterAttr...
    method Filter (line 25) | public override Exception Filter(Exception exception, out int status)

FILE: src/Azure.IIoT.OpcUa.Publisher.Module/src/Program.cs
  class Program (line 25) | public static class Program
    method LogLogo (line 31) | private static void LogLogo(string userString)
    method Main (line 49) | public static void Main(string[] args)
    method RunAsync (line 75) | public static async Task RunAsync(string[] args, CancellationToken ct)
    method CreateHostBuilder (line 102) | public static IHostBuilder CreateHostBuilder(string[] args)
    method IsWriteable (line 127) | private static bool IsWriteable(string path)

FILE: src/Azure.IIoT.OpcUa.Publisher.Module/src/Runtime/CommandLine.cs
  class CommandLine (line 29) | public sealed class CommandLine : Dictionary<string, string?>
    method CommandLine (line 34) | public CommandLine()
    type HelpType (line 39) | internal enum HelpType
    method CommandLine (line 52) | public CommandLine(string[] args, CommandLineLogger? logger = null)
  class CommandLineLogger (line 793) | public class CommandLineLogger
    method ExitProcess (line 799) | public virtual void ExitProcess(int exitCode)
    method Warning (line 808) | public virtual void Warning(string messageTemplate)
    method Warning (line 819) | public virtual void Warning<T0>(string messageTemplate,

FILE: src/Azure.IIoT.OpcUa.Publisher.Module/src/Runtime/Configuration.cs
  class Configuration (line 51) | public static class Configuration
    method AddPublisherServices (line 57) | public static void AddPublisherServices(this ContainerBuilder builder)
    method AddResourceMonitoring (line 112) | public static void AddResourceMonitoring(this IServiceCollection servi...
    method AddMqttClient (line 127) | public static void AddMqttClient(this ContainerBuilder builder,
    method AddIoTEdgeServices (line 147) | public static void AddIoTEdgeServices(this ContainerBuilder builder,
    method AddIoTOperationsServices (line 166) | public static void AddIoTOperationsServices(this ContainerBuilder buil...
    method AddEventHubsClient (line 204) | public static void AddEventHubsClient(this ContainerBuilder builder,
    method AddFileSystemEventClient (line 223) | public static void AddFileSystemEventClient(this ContainerBuilder buil...
    method AddFileSystemRpcServer (line 245) | public static void AddFileSystemRpcServer(this ContainerBuilder builder,
    method AddHttpEventClient (line 263) | public static void AddHttpEventClient(this ContainerBuilder builder,
    method AddDaprPubSubClient (line 281) | public static void AddDaprPubSubClient(this ContainerBuilder builder,
    method AddDaprStateStoreClient (line 299) | public static void AddDaprStateStoreClient(this ContainerBuilder builder,
    method UseOpenTelemetryPrometheusEndpoint (line 317) | public static IApplicationBuilder UseOpenTelemetryPrometheusEndpoint(t...
    method AddOpenApi (line 330) | public static IServiceCollection AddOpenApi(this IServiceCollection se...
    method UseOpenApi (line 342) | public static IApplicationBuilder UseOpenApi(this IApplicationBuilder ...
    method AddOpenTelemetry (line 358) | public static ILoggingBuilder AddOpenTelemetry(this ILoggingBuilder bu...
    method WithTracing (line 381) | public static OpenTelemetryBuilder WithTracing(this OpenTelemetryBuild...
    method WithMetrics (line 410) | public static OpenTelemetryBuilder WithMetrics(this OpenTelemetryBuild...
    method AddSecrets (line 471) | public static IConfigurationBuilder AddSecrets(this IConfigurationBuil...
    method AddConnectorAdditionalConfiguration (line 490) | public static IConfigurationBuilder AddConnectorAdditionalConfiguration(
    method AddOtel (line 517) | private static IServiceCollection AddOtel(this IServiceCollection serv...
    class Otel (line 531) | internal sealed class Otel : ConfigureOptionBase<MetricReaderOptions>
      method Configure (line 617) | public void Configure(string? name, OtlpExporterOptions options)
      method Configure (line 637) | public override void Configure(string? name, MetricReaderOptions opt...
      method Otel (line 653) | public Otel(IConfiguration configuration)
    class Kestrel (line 662) | internal sealed class Kestrel : ConfigureOptionBase<KestrelServerOptions>
      method Kestrel (line 670) | public Kestrel(ISslCertProvider certificates, IOptions<PublisherOpti...
      method Configure (line 679) | public override void Configure(string? name, KestrelServerOptions op...
    class LoggingLevel (line 701) | internal sealed class LoggingLevel : ConfigureOptionBase<LoggerFilterO...
      method Configure (line 709) | public override void Configure(string? name, LoggerFilterOptions opt...
      method LoggingLevel (line 773) | public LoggingLevel(IConfiguration configuration) : base(configuration)
    class LoggingFormat (line 781) | internal class LoggingFormat : PostConfigureOptionBase<ConsoleLoggerOp...
      method PostConfigure (line 804) | public override void PostConfigure(string? name, ConsoleLoggerOption...
      method LoggingFormat (line 827) | public LoggingFormat(IConfiguration configuration) : base(configurat...
    class ConsoleLogging (line 836) | internal sealed class ConsoleLogging<T> : LoggingFormat,
      method Configure (line 840) | public void Configure(string? name, T options)
      method Configure (line 848) | public void Configure(T options)
      method ConsoleLogging (line 857) | public ConsoleLogging(IConfiguration configuration) : base(configura...
    class Router (line 865) | internal sealed class Router : PostConfigureOptionBase<RouterOptions>
      method Router (line 872) | public Router(IConfiguration configuration,
      method PostConfigure (line 879) | public override void PostConfigure(string? name, RouterOptions options)
    class Dapr (line 890) | internal sealed class Dapr : ConfigureOptionBase<DaprOptions>
      method Configure (line 902) | public override void Configure(string? name, DaprOptions options)
      method Dapr (line 967) | public Dapr(IConfiguration configuration)
    class Http (line 976) | internal sealed class Http : ConfigureOptionBase<HttpEventClientOptions>
      method Configure (line 986) | public override void Configure(string? name, HttpEventClientOptions ...
      method Http (line 1033) | public Http(IConfiguration configuration)
    class OpenApi (line 1042) | internal sealed class OpenApi : ConfigureOptionBase<OpenApiOptions>
      method Configure (line 1047) | public override void Configure(string? name, OpenApiOptions options)
      method OpenApi (line 1062) | public OpenApi(IConfiguration configuration)
    class FileSystem (line 1071) | internal sealed class FileSystem : ConfigureOptionBase<FileSystemEvent...
      method Configure (line 1080) | public void Configure(FileSystemRpcServerOptions options)
      method Configure (line 1086) | public void Configure(string? name, FileSystemRpcServerOptions options)
      method Configure (line 1131) | public override void Configure(string? name, FileSystemEventClientOp...
      method FileSystem (line 1140) | public FileSystem(IConfiguration configuration)
    class MqttBroker (line 1149) | internal sealed class MqttBroker : ConfigureOptionBase<MqttOptions>
      method Configure (line 1166) | public override void Configure(string? name, MqttOptions options)
      method MqttBroker (line 1247) | public MqttBroker(IConfiguration configuration)
    class AvroWriter (line 1256) | internal sealed class AvroWriter : ConfigureOptionBase<AvroFileWriterO...
      method Configure (line 1260) | public override void Configure(string? name, AvroFileWriterOptions o...
      method AvroWriter (line 1269) | public AvroWriter(IConfiguration configuration)
    class ConsoleWriter (line 1278) | internal sealed class ConsoleWriter : ConfigureOptionBase<ConsoleWrite...
      method Configure (line 1282) | public override void Configure(string? name, ConsoleWriterOptions op...
      method ConsoleWriter (line 1291) | public ConsoleWriter(IConfiguration configuration)
    class SchemaTopicBuilder (line 1300) | internal sealed class SchemaTopicBuilder : ConfigureOptionBase<MqttOpt...
      method Configure (line 1303) | public override void Configure(string? name, MqttOptions options)
      method SchemaTopicBuilder (line 1325) | public SchemaTopicBuilder(IConfiguration configuration,
    class IoTEdge (line 1338) | internal sealed class IoTEdge : ConfigureOptionBase<IoTEdgeClientOptions>
      method Configure (line 1348) | public override void Configure(string? name, IoTEdgeClientOptions op...
      method IoTEdge (line 1376) | public IoTEdge(IConfiguration configuration)
    class Aio (line 1385) | internal sealed class Aio : ConfigureOptionBase<PublisherOptions>
      method Configure (line 1415) | public override void Configure(string? name, PublisherOptions options)
      method Aio (line 1470) | public Aio(IConfiguration configuration)
    class EventHubs (line 1479) | internal sealed class EventHubs : ConfigureOptionBase<EventHubsClientO...
      method Configure (line 1488) | public override void Configure(string? name, EventHubsClientOptions ...
      method EventHubs (line 1511) | public EventHubs(IConfiguration configuration)
    method ToDictionary (line 1526) | private static Dictionary<string, string> ToDictionary(string valuePai...

FILE: src/Azure.IIoT.OpcUa.Publisher.Module/src/Runtime/Security.cs
  class Security (line 22) | internal static class Security
    method UsingConfiguredApiKey (line 34) | public static AuthenticationBuilder UsingConfiguredApiKey(this Authent...
    class ApiKeyHandler (line 45) | internal sealed class ApiKeyHandler : AuthenticationHandler<Authentica...
      method ApiKeyHandler (line 55) | public ApiKeyHandler(IOptionsMonitor<AuthenticationSchemeOptions> op...
      method HandleAuthenticateAsync (line 65) | protected override Task<AuthenticateResult> HandleAuthenticateAsync()

FILE: src/Azure.IIoT.OpcUa.Publisher.Module/src/Runtime/Syslog.cs
  class Syslog (line 20) | public sealed class Syslog : ConsoleFormatter, IDisposable
    method Syslog (line 36) | public Syslog(IOptionsMonitor<ConsoleFormatterOptions> options)
    method Write (line 51) | public override void Write<TState>(in LogEntry<TState> logEntry,
    method Dispose (line 79) | public void Dispose()

FILE: src/Azure.IIoT.OpcUa.Publisher.Module/src/Startup.cs
  class Startup (line 26) | public class Startup
    method Startup (line 37) | public Startup(IConfiguration configuration)
    method ConfigureServices (line 58) | public void ConfigureServices(IServiceCollection services)
    method Configure (line 121) | public void Configure(IApplicationBuilder app, IHostApplicationLifetim...
    method ConfigureContainer (line 149) | public virtual void ConfigureContainer(ContainerBuilder builder)

FILE: src/Azure.IIoT.OpcUa.Publisher.Module/tests/Clients/Adapters/DiscoveryApiAdapter.cs
  class DiscoveryApiAdapter (line 17) | public sealed class DiscoveryApiAdapter : INetworkDiscovery, IServerDisc...
    method DiscoveryApiAdapter (line 23) | public DiscoveryApiAdapter(IDiscoveryApi client)
    method RegisterAsync (line 29) | public async Task RegisterAsync(ServerRegistrationRequestModel request,
    method DiscoverAsync (line 36) | public async Task DiscoverAsync(DiscoveryRequestModel request,
    method CancelAsync (line 43) | public async Task CancelAsync(DiscoveryCancelRequestModel request,
    method FindServerAsync (line 50) | public async Task<ApplicationRegistrationModel> FindServerAsync(

FILE: src/Azure.IIoT.OpcUa.Publisher.Module/tests/Clients/Adapters/HistoryApiAdapter.cs
  class HistoryApiAdapter (line 18) | public sealed class HistoryApiAdapter : IHistoryServices<ConnectionModel>
    method HistoryApiAdapter (line 24) | public HistoryApiAdapter(IHistoryApi client)
    method HistoryDeleteEventsAsync (line 30) | public Task<HistoryUpdateResponseModel> HistoryDeleteEventsAsync(Conne...
    method HistoryDeleteValuesAtTimesAsync (line 37) | public Task<HistoryUpdateResponseModel> HistoryDeleteValuesAtTimesAsync(
    method HistoryDeleteModifiedValuesAsync (line 45) | public Task<HistoryUpdateResponseModel> HistoryDeleteModifiedValuesAsync(
    method HistoryDeleteValuesAsync (line 53) | public Task<HistoryUpdateResponseModel> HistoryDeleteValuesAsync(
    method HistoryReplaceEventsAsync (line 61) | public Task<HistoryUpdateResponseModel> HistoryReplaceEventsAsync(
    method HistoryReplaceValuesAsync (line 69) | public Task<HistoryUpdateResponseModel> HistoryReplaceValuesAsync(
    method HistoryInsertEventsAsync (line 77) | public Task<HistoryUpdateResponseModel> HistoryInsertEventsAsync(
    method HistoryInsertValuesAsync (line 85) | public Task<HistoryUpdateResponseModel> HistoryInsertValuesAsync(
    method HistoryUpsertEventsAsync (line 93) | public Task<HistoryUpdateResponseModel> HistoryUpsertEventsAsync(
    method HistoryUpsertValuesAsync (line 101) | public Task<HistoryUpdateResponseModel> HistoryUpsertValuesAsync(
    method HistoryReadEventsAsync (line 109) | public async Task<HistoryReadResponseModel<HistoricEventModel[]>> Hist...
    method HistoryReadEventsNextAsync (line 117) | public async Task<HistoryReadNextResponseModel<HistoricEventModel[]>> ...
    method HistoryReadValuesAsync (line 124) | public async Task<HistoryReadResponseModel<HistoricValueModel[]>> Hist...
    method HistoryReadValuesAtTimesAsync (line 132) | public async Task<HistoryReadResponseModel<HistoricValueModel[]>> Hist...
    method HistoryReadProcessedValuesAsync (line 140) | public async Task<HistoryReadResponseModel<HistoricValueModel[]>> Hist...
    method HistoryReadModifiedValuesAsync (line 148) | public async Task<HistoryReadResponseModel<HistoricValueModel[]>> Hist...
    method HistoryReadValuesNextAsync (line 156) | public async Task<HistoryReadNextResponseModel<HistoricValueModel[]>> ...
    method HistoryStreamValuesAsync (line 163) | public IAsyncEnumerable<HistoricValueModel> HistoryStreamValuesAsync(C...
    method HistoryStreamModifiedValuesAsync (line 171) | public IAsyncEnumerable<HistoricValueModel> HistoryStreamModifiedValue...
    method HistoryStreamValuesAtTimesAsync (line 179) | public IAsyncEnumerable<HistoricValueModel> HistoryStreamValuesAtTimes...
    method HistoryStreamProcessedValuesAsync (line 187) | public IAsyncEnumerable<HistoricValueModel> HistoryStreamProcessedValu...
    method HistoryStreamEventsAsync (line 195) | public IAsyncEnumerable<HistoricEventModel> HistoryStreamEventsAsync(C...

FILE: src/Azure.IIoT.OpcUa.Publisher.Module/tests/Clients/Adapters/PublisherApiAdapter.cs
  class PublisherApiAdapter (line 17) | public sealed class PublisherApiAdapter : ICertificateServices<EndpointM...
    method PublisherApiAdapter (line 23) | public PublisherApiAdapter(IDiscoveryApi client)
    method GetEndpointCertificateAsync (line 29) | public async Task<X509CertificateChainModel> GetEndpointCertificateAsync(

FILE: src/Azure.IIoT.OpcUa.Publisher.Module/tests/Clients/Adapters/TwinApiAdapter.cs
  class TwinApiAdapter (line 19) | public sealed class TwinApiAdapter : INodeServices<ConnectionModel>
    method TwinApiAdapter (line 25) | public TwinApiAdapter(ITwinApi client)
    method BrowseFirstAsync (line 31) | public async Task<BrowseFirstResponseModel> BrowseFirstAsync(Connectio...
    method BrowseNextAsync (line 38) | public async Task<BrowseNextResponseModel> BrowseNextAsync(ConnectionM...
    method BrowseAsync (line 45) | public IAsyncEnumerable<BrowseStreamChunkModel> BrowseAsync(Connection...
    method BrowsePathAsync (line 53) | public async Task<BrowsePathResponseModel> BrowsePathAsync(ConnectionM...
    method ValueReadAsync (line 60) | public async Task<ValueReadResponseModel> ValueReadAsync(ConnectionMod...
    method ValueWriteAsync (line 67) | public async Task<ValueWriteResponseModel> ValueWriteAsync(ConnectionM...
    method GetMethodMetadataAsync (line 74) | public async Task<MethodMetadataResponseModel> GetMethodMetadataAsync(...
    method MethodCallAsync (line 81) | public async Task<MethodCallResponseModel> MethodCallAsync(ConnectionM...
    method ReadAsync (line 88) | public async Task<ReadResponseModel> ReadAsync(ConnectionModel endpoint,
    method WriteAsync (line 95) | public async Task<WriteResponseModel> WriteAsync(ConnectionModel endpo...
    method GetServerCapabilitiesAsync (line 102) | public async Task<ServerCapabilitiesModel> GetServerCapabilitiesAsync(...
    method GetMetadataAsync (line 109) | public async Task<NodeMetadataResponseModel> GetMetadataAsync(Connecti...
    method CompileQueryAsync (line 116) | public async Task<QueryCompilationResponseModel> CompileQueryAsync(Con...
    method HistoryGetServerCapabilitiesAsync (line 123) | public async Task<HistoryServerCapabilitiesModel> HistoryGetServerCapa...
    method HistoryGetConfigurationAsync (line 130) | public async Task<HistoryConfigurationResponseModel> HistoryGetConfigu...
    method HistoryReadAsync (line 137) | public async Task<HistoryReadResponseModel<VariantValue>> HistoryReadA...
    method HistoryReadNextAsync (line 145) | public async Task<HistoryReadNextResponseModel<VariantValue>> HistoryR...
    method HistoryUpdateAsync (line 153) | public async Task<HistoryUpdateResponseModel> HistoryUpdateAsync(

FILE: src/Azure.IIoT.OpcUa.Publisher.Module/tests/Clients/ConfigurationServicesRestClient.cs
  class ConfigurationServicesRestClient (line 23) | public sealed class ConfigurationServicesRestClient : IConfigurationServ...
    method ConfigurationServicesRestClient (line 33) | public ConfigurationServicesRestClient(IHttpClientFactory httpClient,
    method ConfigurationServicesRestClient (line 45) | public ConfigurationServicesRestClient(IHttpClientFactory httpClient, ...
    method ExpandAsync (line 59) | public IAsyncEnumerable<ServiceResponse<PublishedNodesEntryModel>> Exp...
    method CreateOrUpdateAsync (line 69) | public IAsyncEnumerable<ServiceResponse<PublishedNodesEntryModel>> Cre...
    method CreateOrUpdateAssetAsync (line 79) | public async Task<ServiceResponse<PublishedNodesEntryModel>> CreateOrU...
    method CreateOrUpdateAssetAsync (line 100) | public async Task<ServiceResponse<PublishedNodesEntryModel>> CreateOrU...
    method CreateOrUpdateAssetAsync (line 113) | public async Task<ServiceResponse<PublishedNodesEntryModel>> CreateOrU...
    method GetAllAssetsAsync (line 127) | public IAsyncEnumerable<ServiceResponse<PublishedNodesEntryModel>> Get...
    method DeleteAssetAsync (line 137) | public async Task<ServiceResultModel> DeleteAssetAsync(
    method RequestBody (line 156) | private static PublishedNodesEntryRequestModel<T> RequestBody<T>(Publi...

FILE: src/Azure.IIoT.OpcUa.Publisher.Module/tests/Clients/FileSystemServicesRestClient.cs
  class FileSystemServicesRestClient (line 27) | public sealed class FileSystemServicesRestClient : IFileSystemServices<C...
    method FileSystemServicesRestClient (line 35) | public FileSystemServicesRestClient(IHttpClientFactory httpClient,
    method FileSystemServicesRestClient (line 47) | public FileSystemServicesRestClient(IHttpClientFactory httpClient, str...
    method GetFileSystemsAsync (line 61) | public IAsyncEnumerable<ServiceResponse<FileSystemObjectModel>> GetFil...
    method GetDirectoriesAsync (line 71) | public async Task<ServiceResponse<IEnumerable<FileSystemObjectModel>>>...
    method GetFilesAsync (line 82) | public async Task<ServiceResponse<IEnumerable<FileSystemObjectModel>>>...
    method GetParentAsync (line 93) | public async Task<ServiceResponse<FileSystemObjectModel>> GetParentAsy...
    method GetFileInfoAsync (line 104) | public async Task<ServiceResponse<FileInfoModel>> GetFileInfoAsync(Con...
    method OpenReadAsync (line 115) | public async Task<ServiceResponse<Stream>> OpenReadAsync(ConnectionMod...
    method OpenWriteAsync (line 124) | public Task<ServiceResponse<Stream>> OpenWriteAsync(ConnectionModel en...
    method CreateDirectoryAsync (line 134) | public async Task<ServiceResponse<FileSystemObjectModel>> CreateDirect...
    method CreateFileAsync (line 146) | public async Task<ServiceResponse<FileSystemObjectModel>> CreateFileAs...
    method DeleteFileSystemObjectAsync (line 158) | public async Task<ServiceResultModel> DeleteFileSystemObjectAsync(Conn...
    method RequestBody (line 189) | private static RequestEnvelope<T> RequestBody<T>(ConnectionModel conne...
    class DownloadStream (line 197) | internal sealed class DownloadStream : Stream
      method DownloadStream (line 220) | private DownloadStream(HttpClient httpClient, HttpRequestMessage req...
      method CreateAsync (line 228) | public static async Task<ServiceResponse<Stream>> CreateAsync(FileSy...
      method Dispose (line 277) | protected override void Dispose(bool disposing)
      method Flush (line 289) | public override void Flush()
      method Read (line 295) | public override int Read(byte[] buffer, int offset, int count)
      method Seek (line 301) | public override long Seek(long offset, SeekOrigin origin)
      method SetLength (line 307) | public override void SetLength(long value)
      method Write (line 313) | public override void Write(byte[] buffer, int offset, int count)
    class UploadStream (line 326) | internal sealed class UploadStream : Stream
      method UploadStream (line 351) | public UploadStream(HttpClient httpClient,
      method Create (line 362) | public static ServiceResponse<Stream> Create(FileSystemServicesRestC...
      method Flush (line 384) | public override void Flush()
      method Seek (line 389) | public override long Seek(long offset, SeekOrigin origin)
      method SetLength (line 395) | public override void SetLength(long value)
      method Read (line 401) | public override int Read(byte[] buffer, int offset, int count)
      method Write (line 407) | public override void Write(byte[] buffer, int offset, int count)
      method DisposeAsync (line 414) | public override async ValueTask DisposeAsync()
      method Dispose (line 438) | protected override void Dispose(bool disposing)
      method StartAsync (line 453) | private async Task StartAsync(CancellationToken ct)

FILE: src/Azure.IIoT.OpcUa.Publisher.Module/tests/Clients/HistoryServicesRestClient.cs
  class HistoryServicesRestClient (line 22) | public sealed class HistoryServicesRestClient : IHistoryServices<Connect...
    method HistoryServicesRestClient (line 30) | public HistoryServicesRestClient(IHttpClientFactory httpClient,
    method HistoryServicesRestClient (line 42) | public HistoryServicesRestClient(IHttpClientFactory httpClient, string...
    method HistoryReadValuesAsync (line 56) | public async Task<HistoryReadResponseModel<HistoricValueModel[]>> Hist...
    method HistoryReadModifiedValuesAsync (line 68) | public async Task<HistoryReadResponseModel<HistoricValueModel[]>> Hist...
    method HistoryReadValuesAtTimesAsync (line 80) | public async Task<HistoryReadResponseModel<HistoricValueModel[]>> Hist...
    method HistoryReadProcessedValuesAsync (line 92) | public async Task<HistoryReadResponseModel<HistoricValueModel[]>> Hist...
    method HistoryReadValuesNextAsync (line 104) | public async Task<HistoryReadNextResponseModel<HistoricValueModel[]>> ...
    method HistoryReadEventsAsync (line 119) | public async Task<HistoryReadResponseModel<HistoricEventModel[]>> Hist...
    method HistoryReadEventsNextAsync (line 131) | public async Task<HistoryReadNextResponseModel<HistoricEventModel[]>> ...
    method HistoryReplaceValuesAsync (line 146) | public async Task<HistoryUpdateResponseModel> HistoryReplaceValuesAsyn...
    method HistoryReplaceEventsAsync (line 157) | public async Task<HistoryUpdateResponseModel> HistoryReplaceEventsAsyn...
    method HistoryInsertValuesAsync (line 168) | public async Task<HistoryUpdateResponseModel> HistoryInsertValuesAsync...
    method HistoryUpsertValuesAsync (line 179) | public async Task<HistoryUpdateResponseModel> HistoryUpsertValuesAsync...
    method HistoryInsertEventsAsync (line 190) | public async Task<HistoryUpdateResponseModel> HistoryInsertEventsAsync...
    method HistoryUpsertEventsAsync (line 201) | public async Task<HistoryUpdateResponseModel> HistoryUpsertEventsAsync...
    method HistoryDeleteValuesAsync (line 212) | public async Task<HistoryUpdateResponseModel> HistoryDeleteValuesAsync...
    method HistoryDeleteValuesAtTimesAsync (line 223) | public async Task<HistoryUpdateResponseModel> HistoryDeleteValuesAtTim...
    method HistoryDeleteModifiedValuesAsync (line 234) | public async Task<HistoryUpdateResponseModel> HistoryDeleteModifiedVal...
    method HistoryDeleteEventsAsync (line 245) | public async Task<HistoryUpdateResponseModel> HistoryDeleteEventsAsync...
    method HistoryStreamValuesAsync (line 255) | public IAsyncEnumerable<HistoricValueModel> HistoryStreamValuesAsync(C...
    method HistoryStreamModifiedValuesAsync (line 265) | public IAsyncEnumerable<HistoricValueModel> HistoryStreamModifiedValue...
    method HistoryStreamValuesAtTimesAsync (line 275) | public IAsyncEnumerable<HistoricValueModel> HistoryStreamValuesAtTimes...
    method HistoryStreamProcessedValuesAsync (line 285) | public IAsyncEnumerable<HistoricValueModel> HistoryStreamProcessedValu...
    method HistoryStreamEventsAsync (line 295) | public IAsyncEnumerable<HistoricEventModel> HistoryStreamEventsAsync(C...
    method RequestBody (line 312) | private static RequestEnvelope<T> RequestBody<T>(ConnectionModel conne...

FILE: src/Azure.IIoT.OpcUa.Publisher.Module/tests/Clients/NodeServicesRestClient.cs
  class NodeServicesRestClient (line 23) | public sealed class NodeServicesRestClient : INodeServices<ConnectionModel>
    method NodeServicesRestClient (line 31) | public NodeServicesRestClient(IHttpClientFactory httpClient,
    method NodeServicesRestClient (line 43) | public NodeServicesRestClient(IHttpClientFactory httpClient, string se...
    method BrowseAsync (line 57) | public IAsyncEnumerable<BrowseStreamChunkModel> BrowseAsync(Connection...
    method BrowseFirstAsync (line 68) | public async Task<BrowseFirstResponseModel> BrowseFirstAsync(Connectio...
    method BrowseNextAsync (line 79) | public async Task<BrowseNextResponseModel> BrowseNextAsync(ConnectionM...
    method BrowsePathAsync (line 94) | public async Task<BrowsePathResponseModel> BrowsePathAsync(ConnectionM...
    method ReadAsync (line 110) | public async Task<ReadResponseModel> ReadAsync(ConnectionModel endpoint,
    method WriteAsync (line 125) | public async Task<WriteResponseModel> WriteAsync(ConnectionModel endpo...
    method ValueReadAsync (line 140) | public async Task<ValueReadResponseModel> ValueReadAsync(ConnectionMod...
    method ValueWriteAsync (line 151) | public async Task<ValueWriteResponseModel> ValueWriteAsync(ConnectionM...
    method GetMethodMetadataAsync (line 166) | public async Task<MethodMetadataResponseModel> GetMethodMetadataAsync(
    method MethodCallAsync (line 177) | public async Task<MethodCallResponseModel> MethodCallAsync(
    method GetMetadataAsync (line 188) | public async Task<NodeMetadataResponseModel> GetMetadataAsync(Connecti...
    method CompileQueryAsync (line 199) | public async Task<QueryCompilationResponseModel> CompileQueryAsync(Con...
    method GetServerCapabilitiesAsync (line 210) | public async Task<ServerCapabilitiesModel> GetServerCapabilitiesAsync(...
    method HistoryGetServerCapabilitiesAsync (line 220) | public async Task<HistoryServerCapabilitiesModel> HistoryGetServerCapa...
    method HistoryGetConfigurationAsync (line 230) | public async Task<HistoryConfigurationResponseModel> HistoryGetConfigu...
    method HistoryReadAsync (line 245) | public async Task<HistoryReadResponseModel<VariantValue>> HistoryReadA...
    method HistoryReadNextAsync (line 260) | public async Task<HistoryReadNextResponseModel<VariantValue>> HistoryR...
    method HistoryUpdateAsync (line 275) | public async Task<HistoryUpdateResponseModel> HistoryUpdateAsync(
    method RequestBody (line 296) | private static RequestEnvelope<T> RequestBody<T>(ConnectionModel conne...

FILE: src/Azure.IIoT.OpcUa.Publisher.Module/tests/Controller/Alarms/Json/NodeServicesTests.cs
  class NodeServicesTests (line 18) | public sealed class NodeServicesTests : IClassFixture<AlarmsServer>, ICl...
    method NodeServicesTests (line 20) | public NodeServicesTests(AlarmsServer server, PublisherModuleFixture m...
    method Dispose (line 26) | public void Dispose()
    method GetTests (line 31) | private AlarmServerTests<ConnectionModel> GetTests()
    method BrowseAreaPathTestAsync (line 41) | [Fact]
    method BrowseMetalsSouthMotorTestAsync (line 47) | [Fact]
    method BrowseColoursEastTankTestAsync (line 53) | [Fact]
    method CompileAlarmQueryTest1Async (line 59) | [Fact]
    method CompileAlarmQueryTest2Async (line 65) | [Fact]
    method CompileSimpleBaseEventQueryTestAsync (line 71) | [Fact]
    method CompileSimpleTripAlarmQueryTestAsync (line 77) | [Fact]

FILE: src/Azure.IIoT.OpcUa.Publisher.Module/tests/Controller/Alarms/MsgPack/NodeServicesTests.cs
  class NodeServicesTests (line 18) | public sealed class NodeServicesTests : IClassFixture<AlarmsServer>, ICl...
    method NodeServicesTests (line 20) | public NodeServicesTests(AlarmsServer server, PublisherModuleFixture m...
    method Dispose (line 26) | public void Dispose()
    method GetTests (line 31) | private AlarmServerTests<ConnectionModel> GetTests()
    method BrowseAreaPathTestAsync (line 41) | [Fact]
    method BrowseMetalsSouthMotorTestAsync (line 47) | [Fact]
    method BrowseColoursEastTankTestAsync (line 53) | [Fact]
    method CompileAlarmQueryTest1Async (line 59) | [Fact]
    method CompileAlarmQueryTest2Async (line 65) | [Fact]
    method CompileSimpleBaseEventQueryTestAsync (line 71) | [Fact]
    method CompileSimpleTripAlarmQueryTestAsync (line 77) | [Fact]

FILE: src/Azure.IIoT.OpcUa.Publisher.Module/tests/Controller/Asset/Json/ConfigurationTest1.cs
  class ConfigurationTest1 (line 18) | [Collection(WriteCollection1.Name)]
    method ConfigurationTest1 (line 21) | public ConfigurationTest1(AssetServer server, PublisherModuleFixture m...
    method Dispose (line 27) | public void Dispose()
    method GetTests (line 32) | private AssetTests1 GetTests()
    method ConfigureAndDeleteAssetsAsync (line 43) | [Fact]

FILE: src/Azure.IIoT.OpcUa.Publisher.Module/tests/Controller/Asset/Json/ConfigurationTest2.cs
  class ConfigurationTest2 (line 18) | [Collection(WriteCollection2.Name)]
    method ConfigurationTest2 (line 21) | public ConfigurationTest2(AssetServer server, PublisherModuleFixture m...
    method Dispose (line 27) | public void Dispose()
    method GetTests (line 32) | private AssetTests2 GetTests()
    method ConfigureAsset1Async (line 43) | [Fact]
    method ConfigureAsset2Async (line 49) | [Fact]
    method ConfigureAsset3Async (line 55) | [Fact]

FILE: src/Azure.IIoT.OpcUa.Publisher.Module/tests/Controller/Asset/Json/ConfigurationTest3.cs
  class ConfigurationTest3 (line 17) | [Collection(WriteCollection3.Name)]
    method ConfigurationTest3 (line 20) | public ConfigurationTest3(AssetServer server, PublisherModuleFixture m...
    method Dispose (line 26) | public void Dispose()
    method GetTests (line 31) | private AssetTests3 GetTests()
    method ConfigureAsset1Async (line 42) | [Fact]
    method ConfigureAsset2Async (line 48) | [Fact]
    method ConfigureAsset3Async (line 54) | [Fact]

FILE: src/Azure.IIoT.OpcUa.Publisher.Module/tests/Controller/Asset/Json/ConfigurationTest4.cs
  class ConfigurationTest4 (line 18) | [Collection(WriteCollection4.Name)]
    method ConfigurationTest4 (line 21) | public ConfigurationTest4(AssetServer server, PublisherModuleFixture m...
    method Dispose (line 27) | public void Dispose()
    method GetTests (line 32) | private AssetTests4 GetTests()
    method ConfigureDuplicateAssetFailsAsync (line 43) | [Fact]
    method ConfigureAssetFails1Async (line 49) | [SkippableFact]
    method ConfigureWithBadStreamFails1Async (line 56) | [SkippableFact]
    method ConfigureWithBadStreamFails2Async (line 63) | [SkippableFact]
    method ConfigureWithBadStreamFails3Async (line 70) | [SkippableFact]

FILE: src/Azure.IIoT.OpcUa.Publisher.Module/tests/Controller/Asset/Json/WriteCollection1.cs
  class WriteCollection1 (line 11) | [CollectionDefinition(Name)]

FILE: src/Azure.IIoT.OpcUa.Publisher.Module/tests/Controller/Asset/Json/WriteCollection2.cs
  class WriteCollection2 (line 11) | [CollectionDefinition(Name)]

FILE: src/Azure.IIoT.OpcUa.Publisher.Module/tests/Controller/Asset/Json/WriteCollection3.cs
  class WriteCollection3 (line 11) | [CollectionDefinition(Name)]

FILE: src/Azure.IIoT.OpcUa.Publisher.Module/tests/Controller/Asset/Json/WriteCollection4.cs
  class WriteCollection4 (line 11) | [CollectionDefinition(Name)]

FILE: src/Azure.IIoT.OpcUa.Publisher.Module/tests/Controller/Asset/MsgPack/ConfigurationTest1.cs
  class ConfigurationTest1 (line 18) | [Collection(WriteCollection1.Name)]
    method ConfigurationTest1 (line 21) | public ConfigurationTest1(AssetServer server, PublisherModuleFixture m...
    method Dispose (line 27) | public void Dispose()
    method GetTests (line 32) | private AssetTests1 GetTests()
    method ConfigureAndDeleteAssetsAsync (line 43) | [Fact]

FILE: src/Azure.IIoT.OpcUa.Publisher.Module/tests/Controller/Asset/MsgPack/ConfigurationTest2.cs
  class ConfigurationTest2 (line 18) | [Collection(WriteCollection2.Name)]
    method ConfigurationTest2 (line 21) | public ConfigurationTest2(AssetServer server, PublisherModuleFixture m...
    method Dispose (line 27) | public void Dispose()
    method GetTests (line 32) | private AssetTests2 GetTests()
    method ConfigureAsset1Async (line 43) | [Fact]
    method ConfigureAsset2Async (line 49) | [Fact]
    method ConfigureAsset3Async (line 55) | [Fact]

FILE: src/Azure.IIoT.OpcUa.Publisher.Module/tests/Controller/Asset/MsgPack/ConfigurationTest3.cs
  class ConfigurationTest3 (line 17) | [Collection(WriteCollection3.Name)]
    method ConfigurationTest3 (line 20) | public ConfigurationTest3(AssetServer server, PublisherModuleFixture m...
    method Dispose (line 26) | public void Dispose()
    method GetTests (line 31) | private AssetTests3 GetTests()
    method ConfigureAsset1Async (line 42) | [Fact]
    method ConfigureAsset2Async (line 48) | [Fact]
    method ConfigureAsset3Async (line 54) | [Fact]

FILE: src/Azure.IIoT.OpcUa.Publisher.Module/tests/Controller/Asset/MsgPack/ConfigurationTest4.cs
  class ConfigurationTest4 (line 18) | [Collection(WriteCollection4.Name)]
    method ConfigurationTest4 (line 21) | public ConfigurationTest4(AssetServer server, PublisherModuleFixture m...
    method Dispose (line 27) | public void Dispose()
    method GetTests (line 32) | private AssetTests4 GetTests()
    method ConfigureDuplicateAssetFailsAsync (line 43) | [Fact]
    method ConfigureAssetFails1Async (line 49) | [SkippableFact]
    method ConfigureWithBadStreamFails1Async (line 56) | [SkippableFact]
    method ConfigureWithBadStreamFails2Async (line 63) | [SkippableFact]
    method ConfigureWithBadStreamFails3Async (line 70) | [SkippableFact]

FILE: src/Azure.IIoT.OpcUa.Publisher.Module/tests/Controller/Asset/MsgPack/WriteCollection1.cs
  class WriteCollection1 (line 11) | [CollectionDefinition(Name)]

FILE: src/Azure.IIoT.OpcUa.Publisher.Module/tests/Controller/Asset/MsgPack/WriteCollection2.cs
  class WriteCollection2 (line 11) | [CollectionDefinition(Name)]

FILE: src/Azure.IIoT.OpcUa.Publisher.Module/tests/Controller/Asset/MsgPack/WriteCollection3.cs
  class WriteCollection3 (line 11) | [CollectionDefinition(Name)]

FILE: src/Azure.IIoT.OpcUa.Publisher.Module/tests/Controller/Asset/MsgPack/WriteCollection4.cs
  class WriteCollection4 (line 11) | [CollectionDefinition(Name)]

FILE: src/Azure.IIoT.OpcUa.Publisher.Module/tests/Controller/DeterministicAlarms/Json/NodeServicesTests1.cs
  class NodeServicesTests1 (line 18) | public sealed class NodeServicesTests1 : IClassFixture<DeterministicAlar...
    method NodeServicesTests1 (line 20) | public NodeServicesTests1(DeterministicAlarmsServer1 server, Publisher...
    method Dispose (line 26) | public void Dispose()
    method GetTests (line 31) | private DeterministicAlarmsTests1<ConnectionModel> GetTests()
    method BrowseAreaPathVendingMachine1TemperatureHighTestAsync (line 41) | [Fact]
    method BrowseAreaPathVendingMachine2LightOffTestAsync (line 47) | [Fact]
    method BrowseAreaPathVendingMachine1DoorOpenTestAsync (line 53) | [Fact]
    method BrowseAreaPathVendingMachine2DoorOpenTestAsync (line 59) | [Fact]

FILE: src/Azure.IIoT.OpcUa.Publisher.Module/tests/Controller/DeterministicAlarms/Json/NodeServicesTests2.cs
  class NodeServicesTests2 (line 18) | public sealed class NodeServicesTests2 : IClassFixture<DeterministicAlar...
    method NodeServicesTests2 (line 20) | public NodeServicesTests2(DeterministicAlarmsServer2 server, Publisher...
    method Dispose (line 26) | public void Dispose()
    method GetTests (line 31) | private DeterministicAlarmsTests2<ConnectionModel> GetTests()
    method BrowseAreaPathVendingMachine1DoorOpenTestAsync (line 41) | [Fact]

FILE: src/Azure.IIoT.OpcUa.Publisher.Module/tests/Controller/DeterministicAlarms/MsgPack/NodeServicesTests1.cs
  class NodeServicesTests1 (line 18) | public sealed class NodeServicesTests1 : IClassFixture<DeterministicAlar...
    method NodeServicesTests1 (line 20) | public NodeServicesTests1(DeterministicAlarmsServer1 server, Publisher...
    method Dispose (line 26) | public void Dispose()
    method GetTests (line 31) | private DeterministicAlarmsTests1<ConnectionModel> GetTests()
    method BrowseAreaPathVendingMachine1TemperatureHighTestAsync (line 41) | [Fact]
    method BrowseAreaPathVendingMachine2LightOffTestAsync (line 47) | [Fact]
    method BrowseAreaPathVendingMachine1DoorOpenTestAsync (line 53) | [Fact]
    method BrowseAreaPathVendingMachine2DoorOpenTestAsync (line 59) | [Fact]

FILE: src/Azure.IIoT.OpcUa.Publisher.Module/tests/Controller/DeterministicAlarms/MsgPack/NodeServicesTests2.cs
  class NodeServicesTests2 (line 18) | public sealed class NodeServicesTests2 : IClassFixture<DeterministicAlar...
    method NodeServicesTests2 (line 20) | public NodeServicesTests2(DeterministicAlarmsServer2 server, Publisher...
    method Dispose (line 26) | public void Dispose()
    method GetTests (line 31) | private DeterministicAlarmsTests2<ConnectionModel> GetTests()
    method BrowseAreaPathVendingMachine1DoorOpenTestAsync (line 41) | [Fact]

FILE: src/Azure.IIoT.OpcUa.Publisher.Module/tests/Controller/DmApiPublisherControllerTests.cs
  class DmApiPublisherControllerTests (line 36) | public sealed class DmApiPublisherControllerTests : TempFileProviderBase
    method DmApiPublisherControllerTests (line 42) | public DmApiPublisherControllerTests(ITestOutputHelper output)
    method Dispose (line 77) | protected override void Dispose(bool disposing)
    method InitPublisherConfigService (line 90) | private PublishedNodesJsonServices InitPublisherConfigService()
    method DmApiPublishUnpublishNodesTestAsync (line 104) | [Fact]
    method DmApiPublishUnpublishAllNodesTestAsync (line 163) | [Fact]
    method DmApiPublishNodesToJobTestAsync (line 220) | [Fact]
    method DmApiGetConfiguredNodesOnEndpointAsyncTestAsync (line 259) | [Fact]
    method DmApiGetConfiguredNodesOnEndpointAsyncDataSetWriterGroupTestAsync (line 288) | [Fact]
    method DmApiGetConfiguredNodesOnEndpointAsyncDataSetWriterIdTestAsync (line 327) | [Fact]
    method DmApiGetConfiguredNodesOnEndpointAsyncUseSecurityTestAsync (line 376) | [Fact]
    method DmApiGetConfiguredNodesOnEndpointAsyncOpcAuthenticationModeTestAsync (line 405) | [Fact]
    method DmApiGetConfiguredNodesOnEndpointAsyncUsernamePasswordTestAsync (line 443) | [Fact]
    method PublishNodeAsync (line 484) | private async Task<(PublishedNodesJsonServices, ConfigurationControlle...
    method DmApiGetConfiguredEndpointsTestAsync (line 507) | [Theory]
    method DmApiGetDiagnosticInfoTestAsync (line 557) | [Fact]
    method CopyContent (line 581) | private static void CopyContent(string sourcePath, string destinationP...

FILE: src/Azure.IIoT.OpcUa.Publisher.Module/tests/Controller/FileSystem/Json/BrowseTests.cs
  class BrowseTests (line 18) | [Collection(FileCollection.Name)]
    method BrowseTests (line 21) | public BrowseTests(FileSystemServer server, PublisherModuleFixture mod...
    method Dispose (line 27) | public void Dispose()
    method GetTests (line 32) | private BrowseTests<ConnectionModel> GetTests()
    method GetFileSystemsTest1Async (line 42) | [Fact]
    method GetDirectoriesTest1Async (line 48) | [Fact]
    method GetDirectoriesTest2Async (line 54) | [Fact]
    method GetDirectoriesTest3Async (line 60) | [Fact]
    method GetDirectoriesTest4Async (line 66) | [Fact]
    method GetDirectoriesTest5Async (line 72) | [Fact]
    method GetDirectoriesTest6Async (line 78) | [Fact]
    method GetFilesTest1Async (line 84) | [Fact]
    method GetFilesTest2Async (line 90) | [Fact]
    method GetFilesTest3Async (line 96) | [Fact]
    method GetFilesTest4Async (line 102) | [Fact]
    method GetFilesTest5Async (line 108) | [Fact]
    method GetFilesTest6Async (line 114) | [Fact]

FILE: src/Azure.IIoT.OpcUa.Publisher.Module/tests/Controller/FileSystem/Json/FileCollection.cs
  class FileCollection (line 11) | [CollectionDefinition(Name)]

FILE: src/Azure.IIoT.OpcUa.Publisher.Module/tests/Controller/FileSystem/Json/OperationsTests.cs
  class OperationsTests (line 18) | [Collection(FileCollection.Name)]
    method OperationsTests (line 21) | public OperationsTests(FileSystemServer server, PublisherModuleFixture...
    method Dispose (line 27) | public void Dispose()
    method GetTests (line 32) | private OperationsTests<ConnectionModel> GetTests()
    method CreateDirectoryTest1Async (line 42) | [Fact]
    method CreateDirectoryTest2Async (line 48) | [Fact]
    method CreateDirectoryTest3Async (line 54) | [Fact]
    method CreateDirectoryTest4Async (line 60) | [Fact]
    method DeleteDirectoryTest1Async (line 66) | [SkippableFact]
    method DeleteDirectoryTest2Async (line 73) | [Fact]
    method DeleteDirectoryTest3Async (line 79) | [Fact]
    method CreateFileTest1Async (line 85) | [Fact]
    method CreateFileTest2Async (line 91) | [Fact]
    method CreateFileTest3Async (line 97) | [Fact]
    method CreateFileTest4Async (line 103) | [Fact]
    method GetFileInfoTest1Async (line 109) | [Fact]
    method GetFileInfoTest2Async (line 115) | [Fact]
    method GetFileInfoTest3Async (line 121) | [Fact]
    method DeleteFileTest1Async (line 127) | [Fact]
    method DeleteFileTest2Async (line 133) | [SkippableFact]
    method DeleteFileTest3Async (line 140) | [Fact]
    method DeleteFileTest4Async (line 146) | [Fact]
    method DeleteFileTest5Async (line 152) | [Fact]

FILE: src/Azure.IIoT.OpcUa.Publisher.Module/tests/Controller/FileSystem/Json/ReadTests.cs
  class ReadTests (line 18) | [Collection(FileCollection.Name)]
    method ReadTests (line 21) | public ReadTests(FileSystemServer server, PublisherModuleFixture modul...
    method Dispose (line 27) | public void Dispose()
    method GetTests (line 32) | private ReadTests<ConnectionModel> GetTests()
    method ReadFileTest0Async (line 42) | [Fact]
    method ReadFileTest1Async (line 48) | [SkippableFact]
    method ReadFileTest2Async (line 55) | [SkippableFact]
    method ReadFileTest3Async (line 62) | [SkippableFact]
    method ReadFileTest4Async (line 69) | [SkippableFact]

FILE: src/Azure.IIoT.OpcUa.Publisher.Module/tests/Controller/FileSystem/Json/WriteTests.cs
  class WriteTests (line 18) | [Collection(FileCollection.Name)]
    method WriteTests (line 21) | public WriteTests(FileSystemServer server, PublisherModuleFixture modu...
    method Dispose (line 27) | public void Dispose()
    method GetTests (line 32) | private WriteTests<ConnectionModel> GetTests()
    method WriteFileTest0Async (line 42) | [Fact]
    method WriteFileTest1Async (line 48) | [SkippableFact]
    method WriteFileTest2Async (line 55) | [SkippableFact]
    method AppendFileTest0Async (line 62) | [Fact]
    method AppendFileTest1Async (line 68) | [SkippableFact]
    method AppendFileTest2Async (line 75) | [Fact]

FILE: src/Azure.IIoT.OpcUa.Publisher.Module/tests/Controller/FileSystem/MsgPack/BrowseTests.cs
  class BrowseTests (line 18) | [Collection(FileCollection.Name)]
    method BrowseTests (line 21) | public BrowseTests(FileSystemServer server, PublisherModuleFixture mod...
    method Dispose (line 27) | public void Dispose()
    method GetTests (line 32) | private BrowseTests<ConnectionModel> GetTests()
    method GetFileSystemsTest1Async (line 42) | [Fact]
    method GetDirectoriesTest1Async (line 48) | [Fact]
    method GetDirectoriesTest2Async (line 54) | [Fact]
    method GetDirectoriesTest3Async (line 60) | [Fact]
    method GetDirectoriesTest4Async (line 66) | [Fact]
    method GetDirectoriesTest5Async (line 72) | [Fact]
    method GetDirectoriesTest6Async (line 78) | [Fact]
    method GetFilesTest1Async (line 84) | [Fact]
    method GetFilesTest2Async (line 90) | [Fact]
    method GetFilesTest3Async (line 96) | [Fact]
    method GetFilesTest4Async (line 102) | [Fact]
    method GetFilesTest5Async (line 108) | [Fact]
    method GetFilesTest6Async (line 114) | [Fact]

FILE: src/Azure.IIoT.OpcUa.Publisher.Module/tests/Controller/FileSystem/MsgPack/FileCollection.cs
  class FileCollection (line 11) | [CollectionDefinition(Name)]

FILE: src/Azure.IIoT.OpcUa.Publisher.Module/tests/Controller/FileSystem/MsgPack/OperationsTests.cs
  class OperationsTests (line 18) | [Collection(FileCollection.Name)]
    method OperationsTests (line 21) | public OperationsTests(FileSystemServer server, PublisherModuleFixture...
    method Dispose (line 27) | public void Dispose()
    method GetTests (line 32) | private OperationsTests<ConnectionModel> GetTests()
    method CreateDirectoryTest1Async (line 42) | [Fact]
    method CreateDirectoryTest2Async (line 48) | [Fact]
    method CreateDirectoryTest3Async (line 54) | [Fact]
    method CreateDirectoryTest4Async (line 60) | [Fact]
    method DeleteDirectoryTest1Async (line 66) | [SkippableFact]
    method DeleteDirectoryTest2Async (line 73) | [Fact]
    method DeleteDirectoryTest3Async (line 79) | [Fact]
    method CreateFileTest1Async (line 85) | [Fact]
    method CreateFileTest2Async (line 91) | [Fact]
    method CreateFileTest3Async (line 97) | [Fact]
    method CreateFileTest4Async (line 103) | [Fact]
    method GetFileInfoTest1Async (line 109) | [Fact]
    method GetFileInfoTest2Async (line 115) | [Fact]
    method GetFileInfoTest3Async (line 121) | [Fact]
    method DeleteFileTest1Async (line 127) | [Fact]
    method DeleteFileTest2Async (line 133) | [SkippableFact]
    method DeleteFileTest3Async (line 140) | [Fact]
    method DeleteFileTest4Async (line 146) | [Fact]
    method DeleteFileTest5Async (line 152) | [Fact]

FILE: src/Azure.IIoT.OpcUa.Publisher.Module/tests/Controller/FileSystem/MsgPack/ReadTests.cs
  class ReadTests (line 18) | [Collection(FileCollection.Name)]
    method ReadTests (line 21) | public ReadTests(FileSystemServer server, PublisherModuleFixture modul...
    method Dispose (line 27) | public void Dispose()
    method GetTests (line 32) | private ReadTests<ConnectionModel> GetTests()
    method ReadFileTest0Async (line 42) | [Fact]
    method ReadFileTest1Async (line 48) | [SkippableFact]
    method ReadFileTest2Async (line 55) | [SkippableFact]
    method ReadFileTest3Async (line 62) | [SkippableFact]
    method ReadFileTest4Async (line 69) | [SkippableFact]

FILE: src/Azure.IIoT.OpcUa.Publisher.Module/tests/Controller/FileSystem/MsgPack/WriteTests.cs
  class WriteTests (line 18) | [Collection(FileCollection.Name)]
    method WriteTests (line 21) | public WriteTests(FileSystemServer server, PublisherModuleFixture modu...
    method Dispose (line 27) | public void Dispose()
    method GetTests (line 32) | private WriteTests<ConnectionModel> GetTests()
    method WriteFileTest0Async (line 42) | [Fact]
    method WriteFileTest1Async (line 48) | [SkippableFact]
    method WriteFileTest2Async (line 55) | [SkippableFact]
    method AppendFileTest0Async (line 62) | [Fact]
    method AppendFileTest1Async (line 68) | [SkippableFact]
    method AppendFileTest2Async (line 75) | [Fact]

FILE: src/Azure.IIoT.OpcUa.Publisher.Module/tests/Controller/HistoricalAccess/Json/NodeServicesTests.cs
  class NodeServicesTests (line 18) | [Collection(ReadCollection.Name)]
    method NodeServicesTests (line 21) | public NodeServicesTests(HistoricalAccessServer server, PublisherModul...
    method Dispose (line 27) | public void Dispose()
    method GetTests (line 32) | private NodeHistoricalAccessTests<ConnectionModel> GetTests()
    method GetServerCapabilitiesTestAsync (line 42) | [Fact]
    method HistoryGetServerCapabilitiesTestAsync (line 48) | [Fact]
    method HistoryGetInt16NodeHistoryConfiguration (line 54) | [Fact]
    method HistoryGetInt64NodeHistoryConfigurationAsync (line 60) | [Fact]
    method HistoryGetNodeHistoryConfigurationFromBadNode (line 66) | [Fact]

FILE: src/Azure.IIoT.OpcUa.Publisher.Module/tests/Controller/HistoricalAccess/Json/ReadAtTimesTests.cs
  class ReadAtTimesTests (line 18) | [Collection(ReadCollection.Name)]
    method ReadAtTimesTests (line 21) | public ReadAtTimesTests(HistoricalAccessServer server, PublisherModule...
    method Dispose (line 27) | public void Dispose()
    method GetTests (line 32) | private HistoryReadValuesAtTimesTests<ConnectionModel> GetTests()
    method HistoryReadInt32ValuesAtTimesTest1Async (line 42) | [Fact]
    method HistoryReadInt32ValuesAtTimesTest2Async (line 48) | [Fact]
    method HistoryReadInt32ValuesAtTimesTest3Async (line 54) | [Fact]
    method HistoryReadInt32ValuesAtTimesTest4Async (line 60) | [Fact]
    method HistoryStreamInt32ValuesAtTimesTest1Async (line 66) | [Fact]
    method HistoryStreamInt32ValuesAtTimesTest2Async (line 72) | [Fact]

FILE: src/Azure.IIoT.OpcUa.Publisher.Module/tests/Controller/HistoricalAccess/Json/ReadCollection.cs
  class ReadCollection (line 11) | [CollectionDefinition(Name)]

FILE: src/Azure.IIoT.OpcUa.Publisher.Module/tests/Controller/HistoricalAccess/Json/ReadModifiedTests.cs
  class ReadModifiedTests (line 18) | [Collection(ReadCollection.Name)]
    method ReadModifiedTests (line 21) | public ReadModifiedTests(HistoricalAccessServer server, PublisherModul...
    method Dispose (line 27) | public void Dispose()
    method GetTests (line 32) | private HistoryReadValuesModifiedTests<ConnectionModel> GetTests()
    method HistoryReadInt16ValuesModifiedTestAsync (line 42) | [Fact]
    method HistoryStreamInt16ValuesModifiedTestAsync (line 48) | [Fact]

FILE: src/Azure.IIoT.OpcUa.Publisher.Module/tests/Controller/HistoricalAccess/Json/ReadProcessedTests.cs
  class ReadProcessedTests (line 18) | [Collection(ReadCollection.Name)]
    method ReadProcessedTests (line 21) | public ReadProcessedTests(HistoricalAccessServer server, PublisherModu...
    method Dispose (line 27) | public void Dispose()
    method GetTests (line 32) | private HistoryReadValuesProcessedTests<ConnectionModel> GetTests()
    method HistoryReadUInt64ProcessedValuesTest1Async (line 42) | [Fact]
    method HistoryReadUInt64ProcessedValuesTest2Async (line 48) | [Fact]
    method HistoryReadUInt64ProcessedValuesTest3Async (line 54) | [Fact]
    method HistoryStreamUInt64ProcessedValuesTest1Async (line 60) | [Fact]
    method HistoryStreamUInt64ProcessedValuesTest2Async (line 66) | [Fact]
    method HistoryStreamUInt64ProcessedValuesTest3Async (line 72) | [Fact]

FILE: src/Azure.IIoT.OpcUa.Publisher.Module/tests/Controller/HistoricalAccess/Json/ReadValuesTests.cs
  class ReadValuesTests (line 18) | [Collection(ReadCollection.Name)]
    method ReadValuesTests (line 21) | public ReadValuesTests(HistoricalAccessServer server, PublisherModuleF...
    method Dispose (line 27) | public void Dispose()
    method GetTests (line 32) | private HistoryReadValuesTests<ConnectionModel> GetTests()
    method HistoryReadInt64ValuesTest1Async (line 42) | [Fact]
    method HistoryReadInt64ValuesTest2Async (line 48) | [Fact]
    method HistoryReadInt64ValuesTest3Async (line 54) | [Fact]
    method HistoryReadInt64ValuesTest4Async (line 60) | [Fact]
    method HistoryStreamInt64ValuesTest1Async (line 66) | [Fact]
    method HistoryStreamInt64ValuesTest2Async (line 72) | [Fact]
    method HistoryStreamInt64ValuesTest3Async (line 78) | [Fact]
    method HistoryStreamInt64ValuesTest4Async (line 84) | [Fact]

FILE: src/Azure.IIoT.OpcUa.Publisher.Module/tests/Controller/HistoricalAccess/Json/UpdateValuesTests.cs
  class UpdateValuesTests (line 18) | [Collection(ReadCollection.Name)]
    method UpdateValuesTests (line 21) | public UpdateValuesTests(HistoricalAccessServer server, PublisherModul...
    method Dispose (line 27) | public void Dispose()
    method GetTests (line 32) | private HistoryUpdateValuesTests<ConnectionModel> GetTests()
    method HistoryUpsertUInt32ValuesTest1Async (line 42) | [Fact]
    method HistoryUpsertUInt32ValuesTest2Async (line 48) | [Fact]
    method HistoryInsertUInt32ValuesTest1Async (line 54) | [Fact]
    method HistoryInsertUInt32ValuesTest2Async (line 60) | [Fact]
    method HistoryReplaceUInt32ValuesTest1Async (line 66) | [Fact]
    method HistoryReplaceUInt32ValuesTest2Async (line 72) | [Fact]
    method HistoryInsertDeleteUInt32ValuesTest1Async (line 78) | [Fact]
    method HistoryInsertDeleteUInt32ValuesTest2Async (line 84) | [Fact]
    method HistoryInsertDeleteUInt32ValuesTest3Async (line 90) | [Fact]
    method HistoryInsertDeleteUInt32ValuesTest4Async (line 96) | [Fact]
    method HistoryDeleteUInt32ValuesTest1Async (line 102) | [Fact]

FILE: src/Azure.IIoT.OpcUa.Publisher.Module/tests/Controller/HistoricalAccess/MsgPack/NodeServicesTests.cs
  class NodeServicesTests (line 18) | [Collection(ReadCollection.Name)]
    method NodeServicesTests (line 21) | public NodeServicesTests(HistoricalAccessServer server, PublisherModul...
    method Dispose (line 27) | public void Dispose()
    method GetTests (line 32) | private NodeHistoricalAccessTests<ConnectionModel> GetTests()
    method GetServerCapabilitiesTestAsync (line 42) | [Fact]
    method HistoryGetServerCapabilitiesTestAsync (line 48) | [Fact]
    method HistoryGetInt16NodeHistoryConfiguration (line 54) | [Fact]
    method HistoryGetInt64NodeHistoryConfigurationAsync (line 60) | [Fact]
    method HistoryGetNodeHistoryConfigurationFromBadNode (line 66) | [Fact]

FILE: src/Azure.IIoT.OpcUa.Publisher.Module/tests/Controller/HistoricalAccess/MsgPack/ReadAtTimesTests.cs
  class ReadAtTimesTests (line 18) | [Collection(ReadCollection.Name)]
    method ReadAtTimesTests (line 21) | public ReadAtTimesTests(HistoricalAccessServer server, PublisherModule...
    method Dispose (line 27) | public void Dispose()
    method GetTests (line 32) | private HistoryReadValuesAtTimesTests<ConnectionModel> GetTests()
    method HistoryReadInt32ValuesAtTimesTest1Async (line 42) | [Fact]
    method HistoryReadInt32ValuesAtTimesTest2Async (line 48) | [Fact]
    method HistoryReadInt32ValuesAtTimesTest3Async (line 54) | [Fact]
    method HistoryReadInt32ValuesAtTimesTest4Async (line 60) | [Fact]
    method HistoryStreamInt32ValuesAtTimesTest1Async (line 66) | [SkippableFact]
    method HistoryStreamInt32ValuesAtTimesTest2Async (line 73) | [SkippableFact]

FILE: src/Azure.IIoT.OpcUa.Publisher.Module/tests/Controller/HistoricalAccess/MsgPack/ReadCollection.cs
  class ReadCollection (line 11) | [CollectionDefinition(Name)]

FILE: src/Azure.IIoT.OpcUa.Publisher.Module/tests/Controller/HistoricalAccess/MsgPack/ReadModifiedTests.cs
  class ReadModifiedTests (line 18) | [Collection(ReadCollection.Name)]
    method ReadModifiedTests (line 21) | public ReadModifiedTests(HistoricalAccessServer server, PublisherModul...
    method Dispose (line 27) | public void Dispose()
    method GetTests (line 32) | private HistoryReadValuesModifiedTests<ConnectionModel> GetTests()
    method HistoryReadInt16ValuesModifiedTestAsync (line 42) | [Fact]
    method HistoryStreamInt16ValuesModifiedTestAsync (line 48) | [SkippableFact]

FILE: src/Azure.IIoT.OpcUa.Publisher.Module/tests/Controller/HistoricalAccess/MsgPack/ReadProcessedTests.cs
  class ReadProcessedTests (line 18) | [Collection(ReadCollection.Name)]
    method ReadProcessedTests (line 21) | public ReadProcessedTests(HistoricalAccessServer server, PublisherModu...
    method Dispose (line 27) | public void Dispose()
    method GetTests (line 32) | private HistoryReadValuesProcessedTests<ConnectionModel> GetTests()
    method HistoryReadUInt64ProcessedValuesTest1Async (line 42) | [Fact]
    method HistoryReadUInt64ProcessedValuesTest2Async (line 48) | [Fact]
    method HistoryReadUInt64ProcessedValuesTest3Async (line 54) | [SkippableFact]
    method HistoryStreamUInt64ProcessedValuesTest1Async (line 60) | [SkippableFact]
    method HistoryStreamUInt64ProcessedValuesTest2Async (line 66) | [SkippableFact]
    method HistoryStreamUInt64ProcessedValuesTest3Async (line 72) | [SkippableFact]

FILE: src/Azure.IIoT.OpcUa.Publisher.Module/tests/Controller/HistoricalAccess/MsgPack/ReadValuesTests.cs
  class ReadValuesTests (line 18) | [Collection(ReadCollection.Name)]
    method ReadValuesTests (line 21) | public ReadValuesTests(HistoricalAccessServer server, PublisherModuleF...
    method Dispose (line 27) | public void Dispose()
    method GetTests (line 32) | private HistoryReadValuesTests<ConnectionModel> GetTests()
    method HistoryReadInt64ValuesTest1Async (line 42) | [Fact]
    method HistoryReadInt64ValuesTest2Async (line 48) | [Fact]
    method HistoryReadInt64ValuesTest3Async (line 54) | [Fact]
    method HistoryReadInt64ValuesTest4Async (line 60) | [Fact]
    method HistoryStreamInt64ValuesTest1Async (line 66) | [SkippableFact]
    method HistoryStreamInt64ValuesTest2Async (line 72) | [SkippableFact]
    method HistoryStreamInt64ValuesTest3Async (line 78) | [SkippableFact]
    method HistoryStreamInt64ValuesTest4Async (line 84) | [SkippableFact]

FILE: src/Azure.IIoT.OpcUa.Publisher.Module/tests/Controller/HistoricalAccess/MsgPack/UpdateValuesTests.cs
  class UpdateValuesTests (line 18) | [Collection(ReadCollection.Name)]
    method UpdateValuesTests (line 21) | public UpdateValuesTests(HistoricalAccessServer server, PublisherModul...
    method Dispose (line 27) | public void Dispose()
    method GetTests (line 32) | private HistoryUpdateValuesTests<ConnectionModel> GetTests()
    method HistoryUpsertUInt32ValuesTest1Async (line 42) | [Fact]
    method HistoryUpsertUInt32ValuesTest2Async (line 48) | [Fact]
    method HistoryInsertUInt32ValuesTest1Async (line 54) | [Fact]
    method HistoryInsertUInt32ValuesTest2Async (line 60) | [Fact]
    method HistoryReplaceUInt32ValuesTest1Async (line 66) | [Fact]
    method HistoryReplaceUInt32ValuesTest2Async (line 72) | [Fact]
    method HistoryInsertDeleteUInt32ValuesTest1Async (line 78) | [Fact]
    method HistoryInsertDeleteUInt32ValuesTest2Async (line 84) | [Fact]
    method HistoryInsertDeleteUInt32ValuesTest3Async (line 90) | [Fact]
    method HistoryInsertDeleteUInt32ValuesTest4Async (line 96) | [Fact]
    method HistoryDeleteUInt32ValuesTest1Async (line 102) | [Fact]

FILE: src/Azure.IIoT.OpcUa.Publisher.Module/tests/Controller/HistoricalEvents/Json/NodeServicesTests.cs
  class NodeServicesTests (line 18) | [Collection(ReadCollection.Name)]
    method NodeServicesTests (line 21) | public NodeServicesTests(HistoricalEventsServer server, PublisherModul...
    method Dispose (line 27) | public void Dispose()
    method GetTests (line 32) | private NodeHistoricalEventsTests<ConnectionModel> GetTests()
    method GetServerCapabilitiesTestAsync (line 42) | [Fact]
    method HistoryGetServerCapabilitiesTestAsync (line 48) | [Fact]

FILE: src/Azure.IIoT.OpcUa.Publisher.Module/tests/Controller/HistoricalEvents/Json/ReadCollection.cs
  class ReadCollection (line 11) | [CollectionDefinition(Name)]

FILE: src/Azure.IIoT.OpcUa.Publisher.Module/tests/Controller/HistoricalEvents/MsgPack/NodeServicesTests.cs
  class NodeServicesTests (line 18) | [Collection(ReadCollection.Name)]
    method NodeServicesTests (line 21) | public NodeServicesTests(HistoricalEventsServer server, PublisherModul...
    method Dispose (line 27) | public void Dispose()
    method GetTests (line 32) | private NodeHistoricalEventsTests<ConnectionModel> GetTests()
    method GetServerCapabilitiesTestAsync (line 42) | [Fact]
    method HistoryGetServerCapabilitiesTestAsync (line 48) | [Fact]

FILE: src/Azure.IIoT.OpcUa.Publisher.Module/tests/Controller/HistoricalEvents/MsgPack/ReadCollection.cs
  class ReadCollection (line 11) | [CollectionDefinition(Name)]

FILE: src/Azure.IIoT.OpcUa.Publisher.Module/tests/Controller/Plc/Json/NodeServicesTests1.cs
  class NodeServicesTests1 (line 18) | public sealed class NodeServicesTests1 : IClassFixture<PlcServer>, IClas...
    method NodeServicesTests1 (line 20) | public NodeServicesTests1(PlcServer server, PublisherModuleFixture mod...
    method Dispose (line 26) | public void Dispose()
    method GetTests (line 31) | private SimulatorNodesTests<ConnectionModel> GetTests()
    method AlternatingBooleanTelemetryChangesWithPeriodAsync (line 41) | [Fact]
    method BadNodeHasAlternatingStatusCodeAsync (line 47) | [Fact]
    method FastLimitNumberOfUpdatesStopsUpdatingAfterLimitAsync (line 53) | [Fact]
    method FastUIntScalar1TelemetryChangesWithPeriodAsync (line 59) | [Fact]
    method NegativeTrendDataNodeHasValueWithTrendAsync (line 65) | [Fact]
    method NegativeTrendDataTelemetryChangesWithPeriodAsync (line 71) | [Fact]
    method PositiveTrendDataNodeHasValueWithTrendAsync (line 77) | [Fact]
    method PositiveTrendDataTelemetryChangesWithPeriodAsync (line 83) | [Fact]
    method RandomSignedInt32TelemetryChangesWithPeriodAsync (line 89) | [Fact]
    method RandomUnsignedInt32TelemetryChangesWithPeriodAsync (line 95) | [Fact]
    method SlowLimitNumberOfUpdatesStopsUpdatingAfterLimitAsync (line 101) | [Fact]
    method SlowUIntScalar1TelemetryChangesWithPeriodAsync (line 107) | [Fact]
    method TelemetryContainsOutlierInDipDataAsync (line 113) | [Fact]
    method TelemetryContainsOutlierInSpikeDataAsync (line 119) | [Fact]
    method TelemetryFastNodeTestAsync (line 125) | [Fact]
    method TelemetryStepUpTestAsync (line 131) | [Fact]

FILE: src/Azure.IIoT.OpcUa.Publisher.Module/tests/Controller/Plc/Json/NodeServicesTests2.cs
  class NodeServicesTests2 (line 18) | public sealed class NodeServicesTests2 : IClassFixture<PlcServer>, IClas...
    method NodeServicesTests2 (line 20) | public NodeServicesTests2(PlcServer server, PublisherModuleFixture mod...
    method Dispose (line 26) | public void Dispose()
    method GetTests (line 31) | private PlcModelComplexTypeTests<ConnectionModel> GetTests()
    method PlcModelHeaterTestsAsync (line 41) | [Fact]

FILE: src/Azure.IIoT.OpcUa.Publisher.Module/tests/Controller/Plc/MsgPack/NodeServicesTests1.cs
  class NodeServicesTests1 (line 18) | public sealed class NodeServicesTests1 : IClassFixture<PlcServer>, IClas...
    method NodeServicesTests1 (line 20) | public NodeServicesTests1(PlcServer server, PublisherModuleFixture mod...
    method Dispose (line 26) | public void Dispose()
    method GetTests (line 31) | private SimulatorNodesTests<ConnectionModel> GetTests()
    method AlternatingBooleanTelemetryChangesWithPeriodAsync (line 41) | [Fact]
    method BadNodeHasAlternatingStatusCodeAsync (line 47) | [Fact]
    method FastLimitNumberOfUpdatesStopsUpdatingAfterLimitAsync (line 53) | [Fact]
    method FastUIntScalar1TelemetryChangesWithPeriodAsync (line 59) | [Fact]
    method NegativeTrendDataNodeHasValueWithTrendAsync (line 65) | [Fact]
    method NegativeTrendDataTelemetryChangesWithPeriodAsync (line 71) | [Fact]
    method PositiveTrendDataNodeHasValueWithTrendAsync (line 77) | [Fact]
    method PositiveTrendDataTelemetryChangesWithPeriodAsync (line 83) | [Fact]
    method RandomSignedInt32TelemetryChangesWithPeriodAsync (line 89) | [Fact]
    method RandomUnsignedInt32TelemetryChangesWithPeriodAsync (line 95) | [Fact]
    method SlowLimitNumberOfUpdatesStopsUpdatingAfterLimitAsync (line 101) | [Fact]
    method SlowUIntScalar1TelemetryChangesWithPeriodAsync (line 107) | [Fact]
    method TelemetryContainsOutlierInDipDataAsync (line 113) | [Fact]
    method TelemetryContainsOutlierInSpikeDataAsync (line 119) | [Fact]
    method TelemetryFastNodeTestAsync (line 125) | [Fact]
    method TelemetryStepUpTestAsync (line 131) | [Fact]

FILE: src/Azure.IIoT.OpcUa.Publisher.Module/tests/Controller/Plc/MsgPack/NodeServicesTests2.cs
  class NodeServicesTests2 (line 18) | public sealed class NodeServicesTests2 : IClassFixture<PlcServer>, IClas...
    method NodeServicesTests2 (line 20) | public NodeServicesTests2(PlcServer server, PublisherModuleFixture mod...
    method Dispose (line 26) | public void Dispose()
    method GetTests (line 31) | private PlcModelComplexTypeTests<ConnectionModel> GetTests()
    method PlcModelHeaterTestsAsync (line 41) | [Fact]

FILE: src/Azure.IIoT.OpcUa.Publisher.Module/tests/Controller/SimpleEvents/Json/NodeServicesTests.cs
  class NodeServicesTests (line 18) | public sealed class NodeServicesTests : IClassFixture<SimpleEventsServer...
    method NodeServicesTests (line 20) | public NodeServicesTests(SimpleEventsServer server,
    method Dispose (line 27) | public void Dispose()
    method GetTests (line 32) | private SimpleEventsServerTests<ConnectionModel> GetTests()
    method CompileSimpleBaseEventQueryTestAsync (line 42) | [Fact]
    method CompileSimpleEventsQueryTestAsync (line 48) | [Fact]

FILE: src/Azure.IIoT.OpcUa.Publisher.Module/tests/Controller/SimpleEvents/MsgPack/NodeServicesTests.cs
  class NodeServicesTests (line 18) | public sealed class NodeServicesTests : IClassFixture<SimpleEventsServer...
    method NodeServicesTests (line 20) | public NodeServicesTests(SimpleEventsServer server,
    method Dispose (line 27) | public void Dispose()
    method GetTests (line 32) | private SimpleEventsServerTests<ConnectionModel> GetTests()
    method CompileSimpleBaseEventQueryTestAsync (line 42) | [Fact]
    method CompileSimpleEventsQueryTestAsync (line 48) | [Fact]

FILE: src/Azure.IIoT.OpcUa.Publisher.Module/tests/Controller/TestData/Json/BrowsePathTests.cs
  class BrowsePathTests (line 18) | [Collection(ReadCollection.Name)]
    method BrowsePathTests (line 21) | public BrowsePathTests(TestDataServer server, PublisherModuleFixture m...
    method Dispose (line 27) | public void Dispose()
    method GetTests (line 32) | private BrowsePathTests<ConnectionModel> GetTests()
    method NodeBrowsePathStaticScalarMethod3Test1Async (line 42) | [Fact]
    method NodeBrowsePathStaticScalarMethod3Test2Async (line 48) | [Fact]
    method NodeBrowsePathStaticScalarMethod3Test3Async (line 54) | [Fact]
    method NodeBrowsePathStaticScalarMethodsTestAsync (line 60) | [Fact]

FILE: src/Azure.IIoT.OpcUa.Publisher.Module/tests/Controller/TestData/Json/BrowseStreamTests.cs
  class BrowseStreamTests (line 18) | [Collection(ReadCollection.Name)]
    method BrowseStreamTests (line 21) | public BrowseStreamTests(TestDataServer server, PublisherModuleFixture...
    method Dispose (line 27) | public void Dispose()
    method GetTests (line 32) | private BrowseStreamTests<ConnectionModel> GetTests()
    method NodeBrowseInRootTest1Async (line 42) | [Fact]
    method NodeBrowseInRootTest2Async (line 48) | [Fact]
    method NodeBrowseBoilersObjectsTest1Async (line 54) | [Fact]
    method NodeBrowseDataAccessObjectsTest1Async (line 60) | [Fact]
    method NodeBrowseStaticScalarVariablesTestAsync (line 66) | [Fact]
    method NodeBrowseStaticArrayVariablesTestAsync (line 72) | [Fact]
    method NodeBrowseStaticScalarVariablesTestWithFilter1Async (line 78) | [Fact]
    method NodeBrowseStaticScalarVariablesTestWithFilter2Async (line 84) | [Fact]
    method NodeBrowseStaticScalarVariablesTestWithFilter3Async (line 90) | [Fact]
    method NodeBrowseStaticScalarVariablesTestWithFilter4Async (line 96) | [Fact]
    method NodeBrowseStaticScalarVariablesTestWithFilter5Async (line 102) | [Fact]
    method NodeBrowseDiagnosticsNoneTestAsync (line 108) | [Fact]
    method NodeBrowseDiagnosticsStatusTestAsync (line 114) | [Fact]
    method NodeBrowseDiagnosticsOperationsTestAsync (line 120) | [Fact]
    method NodeBrowseDiagnosticsVerboseTestAsync (line 126) | [Fact]

FILE: src/Azure.IIoT.OpcUa.Publisher.Module/tests/Controller/TestData/Json/BrowseTests.cs
  class BrowseTests (line 18) | [Collection(ReadCollection.Name)]
    method BrowseTests (line 21) | public BrowseTests(TestDataServer server, PublisherModuleFixture modul...
    method Dispose (line 27) | public void Dispose()
    method GetTests (line 32) | private BrowseServicesTests<ConnectionModel> GetTests()
    method NodeBrowseInRootTest1Async (line 42) | [Fact]
    method NodeBrowseInRootTest2Async (line 48) | [Fact]
    method NodeBrowseFirstInRootTest1Async (line 54) | [Fact]
    method NodeBrowseFirstInRootTest2Async (line 60) | [Fact]
    method NodeBrowseBoilersObjectsTest1Async (line 66) | [Fact]
    method NodeBrowseBoilersObjectsTest2Async (line 72) | [Fact]
    method NodeBrowseDataAccessObjectsTest1Async (line 78) | [Fact]
    method NodeBrowseDataAccessObjectsTest2Async (line 84) | [Fact]
    method NodeBrowseDataAccessObjectsTest3Async (line 90) | [Fact]
    method NodeBrowseDataAccessObjectsTest4Async (line 96) | [Fact]
    method NodeBrowseDataAccessFC1001Test1Async (line 102) | [Fact]
    method NodeBrowseDataAccessFC1001Test2Async (line 108) | [Fact]
    method NodeBrowseStaticScalarVariablesTestAsync (line 114) | [Fact]
    method NodeBrowseStaticArrayVariablesTestAsync (line 120) | [Fact]
    method NodeBrowseStaticScalarVariablesTestWithFilter1Async (line 126) | [Fact]
    method NodeBrowseStaticScalarVariablesTestWithFilter2Async (line 132) | [Fact]
    method NodeBrowseStaticArrayVariablesWithValuesTestAsync (line 138) | [Fact]
    method NodeBrowseStaticArrayVariablesRawModeTestAsync (line 144) | [Fact]
    method NodeBrowseContinuationTest1Async (line 150) | [Fact]
    method NodeBrowseContinuationTest2Async (line 156) | [Fact]
    method NodeBrowseContinuationTest3Async (line 162) | [Fact]
    method NodeBrowseContinuationTest4Async (line 168) | [Fact]
    method NodeBrowseDiagnosticsNoneTestAsync (line 174) | [Fact]
    method NodeBrowseDiagnosticsStatusTestAsync (line 180) | [Fact]
    method NodeBrowseDiagnosticsInfoTestAsync (line 186) | [Fact]
    method NodeBrowseDiagnosticsVerboseTestAsync (line 192) | [Fact]

FILE: src/Azure.IIoT.OpcUa.Publisher.Module/tests/Controller/TestData/Json/CallArrayTests.cs
  class CallArrayTests (line 18) | [Collection(WriteCollection.Name)]
    method CallArrayTests (line 21) | public CallArrayTests(TestDataServer server, PublisherModuleFixture mo...
    method Dispose (line 27) | public void Dispose()
    method GetTests (line 32) | private CallArrayMethodTests<ConnectionModel> GetTests()
    method NodeMethodMetadataStaticArrayMethod1TestAsync (line 42) | [Fact]
    method NodeMethodMetadataStaticArrayMethod2TestAsync (line 48) | [Fact]
    method NodeMethodMetadataStaticArrayMethod3TestAsync (line 54) | [Fact]
    method NodeMethodCallStaticArrayMethod1Test1Async (line 60) | [Fact]
    method NodeMethodCallStaticArrayMethod1Test2Async (line 66) | [Fact]
    method NodeMethodCallStaticArrayMethod1Test3Async (line 72) | [Fact]
    method NodeMethodCallStaticArrayMethod1Test4Async (line 78) | [Fact]
    method NodeMethodCallStaticArrayMethod1Test5Async (line 84) | [Fact]
    method NodeMethodCallStaticArrayMethod2Test1Async (line 90) | [Fact]
    method NodeMethodCallStaticArrayMethod2Test2Async (line 96) | [Fact]
    method NodeMethodCallStaticArrayMethod2Test3Async (line 102) | [Fact]
    method NodeMethodCallStaticArrayMethod2Test4Async (line 108) | [Fact]
    method NodeMethodCallStaticArrayMethod3Test1Async (line 114) | [Fact]
    method NodeMethodCallStaticArrayMethod3Test2Async (line 120) | [Fact]
    method NodeMethodCallStaticArrayMethod3Test3Async (line 126) | [Fact]

FILE: src/Azure.IIoT.OpcUa.Publisher.Module/tests/Controller/TestData/Json/CallScalarTests.cs
  class CallScalarTests (line 18) | [Collection(WriteCollection.Name)]
    method CallScalarTests (line 21) | public CallScalarTests(TestDataServer server, PublisherModuleFixture m...
    method Dispose (line 27) | public void Dispose()
    method GetTests (line 32) | private CallScalarMethodTests<ConnectionModel> GetTests()
    method NodeMethodMetadataStaticScalarMethod1TestAsync (line 42) | [Fact]
    method NodeMethodMetadataStaticScalarMethod2TestAsync (line 48) | [Fact]
    method NodeMethodMetadataStaticScalarMethod3TestAsync (line 54) | [Fact]
    method NodeMethodMetadataStaticScalarMethod3WithBrowsePathTest1Async (line 60) | [Fact]
    method NodeMethodMetadataStaticScalarMethod3WithBrowsePathTest2Async (line 66) | [Fact]
    method NodeMethodCallStaticScalarMethod1Test1Async (line 72) | [Fact]
    method NodeMethodCallStaticScalarMethod1Test2Async (line 78) | [Fact]
    method NodeMethodCallStaticScalarMethod1Test3Async (line 84) | [Fact]
    method NodeMethodCallStaticScalarMethod1Test4Async (line 90) | [Fact]
    method NodeMethodCallStaticScalarMethod1Test5Async (line 96) | [Fact]
    method NodeMethodCallStaticScalarMethod2Test1Async (line 102) | [Fact]
    method NodeMethodCallStaticScalarMethod2Test2Async (line 108) | [Fact]
    method NodeMethodCallStaticScalarMethod3Test1Async (line 114) | [Fact]
    method NodeMethodCallStaticScalarMethod3Test2Async (line 120) | [Fact]
    method NodeMethodCallStaticScalarMethod3WithBrowsePathNoIdsTestAsync (line 126) | [Fact]
    method NodeMethodCallStaticScalarMethod3WithObjectIdAndBrowsePathTestAsync (line 132) | [Fact]
    method NodeMethodCallStaticScalarMethod3WithObjectIdAndMethodIdAndBrowsePathTestAsync (line 138) | [Fact]
    method NodeMethodCallStaticScalarMethod3WithObjectPathAndMethodIdAndBrowsePathTestAsync (line 144) | [Fact]
    method NodeMethodCallStaticScalarMethod3WithObjectIdAndPathAndMethodIdAndPathTestAsync (line 150) | [Fact]
    method NodeMethodCallBoiler2ResetTestAsync (line 156) | [Fact]
    method NodeMethodCallBoiler1ResetTestAsync (line 162) | [Fact]

FILE: src/Azure.IIoT.OpcUa.Publisher.Module/tests/Controller/TestData/Json/ExpandTests1.cs
  class ExpandTests1 (line 17) | [Collection(ReadCollection.Name)]
    method ExpandTests1 (line 20) | public ExpandTests1(TestDataServer server, PublisherModuleFixture modu...
    method Dispose (line 26) | public void Dispose()
    method GetTests (line 31) | private ConfigurationTests1 GetTests()
    method ExpandObjectWithBrowsePathTest1Async (line 40) | [Fact]
    method ExpandObjectWithBrowsePathTest2Async (line 46) | [Fact]
    method ExpandObjectTest1Async (line 52) | [Fact]
    method ExpandObjectTest2Async (line 58) | [Fact]
    method ExpandServerObjectTest1Async (line 64) | [Fact]
    method ExpandServerObjectTest2Async (line 70) | [Fact]
    method ExpandServerObjectTest3Async (line 76) | [Fact]
    method ExpandServerObjectTest4Async (line 82) | [Fact]
    method ExpandServerObjectTest5Async (line 88) | [Fact]
    method ExpandBaseObjectTypeTest1Async (line 94) | [Fact]
    method ExpandBaseObjectTypeTest2Async (line 100) | [Fact]
    method ExpandBaseObjectsAndObjectTypesTestAsync (line 106) | [Fact]
    method ExpandBoilerTypeTestAsync (line 112) | [Fact]
    method ExpandBoilerDrumTypeTestAsync (line 118) | [Fact]
    method ExpandBoilerDrumAndValveTypeTestAsync (line 124) | [Fact]
    method ExpandValveTypeTestAsync (line 130) | [Fact]
    method ExpandTestDataObjectTypeTestAsync (line 136) | [Fact]
    method ExpandServerTypeTestAsync (line 142) | [Fact]
    method ExpandServerTypeWithMethodsTestAsync (line 148) | [Fact]
    method ExpandPublishSubscribeTestAsync (line 154) | [Fact]
    method ExpandVariablesTest1Async (line 160) | [Fact]
    method ExpandVariablesAndObjectsTest1Async (line 166) | [Fact]
    method ExpandVariableTypesTest1Async (line 172) | [Fact]
    method ExpandVariableTypesTest2Async (line 178) | [Fact]
    method ExpandVariableTypesTest3Async (line 184) | [Fact]
    method ExpandObjectWithNoObjectsTest1Async (line 190) | [Fact]
    method ExpandObjectWithNoObjectsTest2Async (line 196) | [Fact]
    method ExpandEmptyEntryTest1Async (line 202) | [Fact]
    method ExpandEmptyEntryTest2Async (line 208) | [Fact]
    method ExpandBadNodeIdTest1Async (line 214) | [Fact]
    method ExpandBadNodeIdTest2Async (line 220) | [Fact]
    method ExpandBadNodeIdTest3Async (line 226) | [Fact]

FILE: src/Azure.IIoT.OpcUa.Publisher.Module/tests/Controller/TestData/Json/MetadataArrayTests.cs
  class MetadataArrayTests (line 18) | [Collection(ReadCollection.Name)]
    method MetadataArrayTests (line 21) | public MetadataArrayTests(TestDataServer server, PublisherModuleFixtur...
    method Dispose (line 27) | public void Dispose()
    method GetTests (line 32) | private CallArrayMethodTests<ConnectionModel> GetTests()
    method NodeMethodMetadataStaticArrayMethod1TestAsync (line 42) | [Fact]
    method NodeMethodMetadataStaticArrayMethod2TestAsync (line 48) | [Fact]
    method NodeMethodMetadataStaticArrayMethod3TestAsync (line 54) | [Fact]

FILE: src/Azure.IIoT.OpcUa.Publisher.Module/tests/Controller/TestData/Json/MetadataScalarTests.cs
  class MetadataScalarTests (line 18) | [Collection(ReadCollection.Name)]
    method MetadataScalarTests (line 21) | public MetadataScalarTests(TestDataServer server, PublisherModuleFixtu...
    method Dispose (line 27) | public void Dispose()
    method GetTests (line 32) | private CallScalarMethodTests<ConnectionModel> GetTests()
    method NodeMethodMetadataStaticScalarMethod1TestAsync (line 42) | [Fact]
    method NodeMethodMetadataStaticScalarMethod2TestAsync (line 48) | [Fact]
    method NodeMethodMetadataStaticScalarMethod3TestAsync (line 54) | [Fact]
    method NodeMethodMetadataStaticScalarMethod3WithBrowsePathTest1Async (line 60) | [Fact]
    method NodeMethodMetadataStaticScalarMethod3WithBrowsePathTest2Async (line 66) | [Fact]

FILE: src/Azure.IIoT.OpcUa.Publisher.Module/tests/Controller/TestData/Json/MetadataTests.cs
  class MetadataTests (line 18) | [Collection(ReadCollection.Name)]
    method MetadataTests (line 21) | public MetadataTests(TestDataServer server, PublisherModuleFixture mod...
    method Dispose (line 27) | public void Dispose()
    method GetTests (line 32) | private NodeMetadataTests<ConnectionModel> GetTests()
    method GetServerCapabilitiesTestAsync (line 42) | [Fact]
    method HistoryGetServerCapabilitiesTestAsync (line 48) | [Fact]
    method NodeGetMetadataForFolderTypeTestAsync (line 54) | [Fact]
    method NodeGetMetadataForServerObjectTestAsync (line 60) | [Fact]
    method NodeGetMetadataForConditionTypeTestAsync (line 66) | [Fact]
    method NodeGetMetadataTestForBaseEventTypeTestAsync (line 72) | [Fact]
    method NodeGetMetadataForBaseInterfaceTypeTestAsync (line 78) | [Fact]
    method NodeGetMetadataForBaseDataVariableTypeTestAsync (line 84) | [Fact]
    method NodeGetMetadataForPropertyTypeTestAsync (line 90) | [Fact]
    method NodeGetMetadataForAudioVariableTypeTestAsync (line 96) | [Fact]
    method NodeGetMetadataForServerStatusVariableTestAsync (line 102) | [Fact]
    method NodeGetMetadataForRedundancySupportPropertyTestAsync (line 108) | [Fact]

FILE: src/Azure.IIoT.OpcUa.Publisher.Module/tests/Controller/TestData/Json/ReadCollection.cs
  class ReadCollection (line 11) | [CollectionDefinition(Name)]

FILE: src/Azure.IIoT.OpcUa.Publisher.Module/tests/Controller/TestData/Json/ValueReadArrayTests.cs
  class ValueReadArrayTests (line 19) | [Collection(ReadCollection.Name)]
    method ValueReadArrayTests (line 22) | public ValueReadArrayTests(TestDataServer server, PublisherModuleFixtu...
    method Dispose (line 28) | public void Dispose()
    method GetTests (line 33) | private ReadArrayValueTests<ConnectionModel> GetTests()
    method NodeReadAllStaticArrayVariableNodeClassTest1Async (line 50) | [Fact]
    method NodeReadAllStaticArrayVariableAccessLevelTest1Async (line 56) | [Fact]
    method NodeReadAllStaticArrayVariableWriteMaskTest1Async (line 62) | [Fact]
    method NodeReadAllStaticArrayVariableWriteMaskTest2Async (line 68) | [Fact]
    method NodeReadStaticArrayBooleanValueVariableTestAsync (line 74) | [Fact]
    method NodeReadStaticArraySByteValueVariableTestAsync (line 80) | [Fact]
    method NodeReadStaticArrayByteValueVariableTestAsync (line 86) | [Fact]
    method NodeReadStaticArrayInt16ValueVariableTestAsync (line 92) | [Fact]
    method NodeReadStaticArrayUInt16ValueVariableTestAsync (line 98) | [Fact]
    method NodeReadStaticArrayInt32ValueVariableTestAsync (line 104) | [Fact]
    method NodeReadStaticArrayUInt32ValueVariableTestAsync (line 110) | [Fact]
    method NodeReadStaticArrayInt64ValueVariableTestAsync (line 116) | [Fact]
    method NodeReadStaticArrayUInt64ValueVariableTestAsync (line 122) | [Fact]
    method NodeReadStaticArrayFloatValueVariableTestAsync (line 128) | [Fact]
    method NodeReadStaticArrayDoubleValueVariableTestAsync (line 134) | [Fact]
    method NodeReadStaticArrayStringValueVariableTestAsync (line 140) | [Fact]
    method NodeReadStaticArrayDateTimeValueVariableTestAsync (line 146) | [Fact]
    method NodeReadStaticArrayGuidValueVariableTestAsync (line 152) | [Fact]
    method NodeReadStaticArrayByteStringValueVariableTestAsync (line 158) | [Fact]
    method NodeReadStaticArrayXmlElementValueVariableTestAsync (line 164) | [Fact]
    method NodeReadStaticArrayNodeIdValueVariableTestAsync (line 170) | [Fact]
    method NodeReadStaticArrayExpandedNodeIdValueVariableTestAsync (line 176) | [Fact]
    method NodeReadStaticArrayQualifiedNameValueVariableTestAsync (line 182) | [Fact]
    method NodeReadStaticArrayLocalizedTextValueVariableTestAsync (line 188) | [Fact]
    method NodeReadStaticArrayStatusCodeValueVariableTestAsync (line 194) | [Fact]
    method NodeReadStaticArrayVariantValueVariableTestAsync (line 200) | [Fact]
    method NodeReadStaticArrayEnumerationValueVariableTestAsync (line 206) | [Fact]
    method NodeReadStaticArrayStructureValueVariableTestAsync (line 212) | [Fact]
    method NodeReadStaticArrayNumberValueVariableTestAsync (line 218) | [Fact]
    method NodeReadStaticArrayIntegerValueVariableTestAsync (line 224) | [Fact]
    method NodeReadStaticArrayUIntegerValueVariableTestAsync (line 230) | [Fact]

FILE: src/Azure.IIoT.OpcUa.Publisher.Module/tests/Controller/TestData/Json/ValueReadScalarTests.cs
  class ValueReadScalarTests (line 19) | [Collection(ReadCollection.Name)]
    method ValueReadScalarTests (line 22) | public ValueReadScalarTests(TestDataServer server, PublisherModuleFixt...
    method Dispose (line 28) | public void Dispose()
    method GetTests (line 33) | private ReadScalarValueTests<ConnectionModel> GetTests()
    method NodeReadAllStaticScalarVariableNodeClassTest1Async (line 50) | [Fact]
    method NodeReadAllStaticScalarVariableAccessLevelTest1Async (line 56) | [Fact]
    method NodeReadAllStaticScalarVariableWriteMaskTest1Async (line 62) | [Fact]
    method NodeReadAllStaticScalarVariableWriteMaskTest2Async (line 68) | [Fact]
    method NodeReadStaticScalarBooleanValueVariableTestAsync (line 74) | [Fact]
    method NodeReadStaticScalarBooleanValueVariableWithBrowsePathTest1Async (line 80) | [Fact]
    method NodeReadStaticScalarBooleanValueVariableWithBrowsePathTest2Async (line 86) | [Fact]
    method NodeReadStaticScalarBooleanValueVariableWithBrowsePathTest3Async (line 92) | [Fact]
    method NodeReadStaticScalarSByteValueVariableTestAsync (line 98) | [Fact]
    method NodeReadStaticScalarByteValueVariableTestAsync (line 104) | [Fact]
    method NodeReadStaticScalarInt16ValueVariableTestAsync (line 110) | [Fact]
    method NodeReadStaticScalarUInt16ValueVariableTestAsync (line 116) | [Fact]
    method NodeReadStaticScalarInt32ValueVariableTestAsync (line 122) | [Fact]
    method NodeReadStaticScalarUInt32ValueVariableTestAsync (line 128) | [Fact]
    method NodeReadStaticScalarInt64ValueVariableTestAsync (line 134) | [Fact]
    method NodeReadStaticScalarUInt64ValueVariableTestAsync (line 140) | [Fact]
    method NodeReadStaticScalarFloatValueVariableTestAsync (line 146) | [Fact]
    method NodeReadStaticScalarDoubleValueVariableTestAsync (line 152) | [Fact]
    method NodeReadStaticScalarStringValueVariableTestAsync (line 158) | [Fact]
    method NodeReadStaticScalarDateTimeValueVariableTestAsync (line 164) | [Fact]
    method NodeReadStaticScalarGuidValueVariableTestAsync (line 170) | [Fact]
    method NodeReadStaticScalarByteStringValueVariableTestAsync (line 176) | [Fact]
    method NodeReadStaticScalarXmlElementValueVariableTestAsync (line 182) | [Fact]
    method NodeReadStaticScalarNodeIdValueVariableTestAsync (line 188) | [Fact]
    method NodeReadStaticScalarExpandedNodeIdValueVariableTestAsync (line 194) | [Fact]
    method NodeReadStaticScalarQualifiedNameValueVariableTestAsync (line 200) | [Fact]
    method NodeReadStaticScalarLocalizedTextValueVariableTestAsync (line 206) | [Fact]
    method NodeReadStaticScalarStatusCodeValueVariableTestAsync (line 212) | [Fact]
    method NodeReadStaticScalarVariantValueVariableTestAsync (line 218) | [Fact]
    method NodeReadStaticScalarEnumerationValueVariableTestAsync (line 224) | [Fact]
    method NodeReadStaticScalarStructuredValueVariableTestAsync (line 230) | [Fact]
    method NodeReadStaticScalarNumberValueVariableTestAsync (line 236) | [Fact]
    method NodeReadStaticScalarIntegerValueVariableTestAsync (line 242) | [Fact]
    method NodeReadStaticScalarUIntegerValueVariableTestAsync (line 248) | [Fact]
    method NodeReadDataAccessMeasurementFloatValueTestAsync (line 254) | [Fact]
    method NodeReadDiagnosticsNoneTestAsync (line 260) | [Fact]
    method NodeReadDiagnosticsStatusTestAsync (line 266) | [Fact]
    method NodeReadDiagnosticsDebugTestAsync (line 272) | [Fact]
    method NodeReadDiagnosticsVerboseTestAsync (line 278) | [Fact]

FILE: src/Azure.IIoT.OpcUa.Publisher.Module/tests/Controller/TestData/Json/ValueWriteArrayTests.cs
  class ValueWriteArrayTests (line 19) | [Collection(WriteCollection.Name)]
    method ValueWriteArrayTests (line 22) | public ValueWriteArrayTests(TestDataServer server, PublisherModuleFixt...
    method Dispose (line 28) | public void Dispose()
    method GetTests (line 33) | private WriteArrayValueTests<ConnectionModel> GetTests()
    method NodeWriteStaticArrayBooleanValueVariableTestAsync (line 50) | [Fact]
    method NodeWriteStaticArraySByteValueVariableTestAsync (line 56) | [Fact]
    method NodeWriteStaticArrayByteValueVariableTestAsync (line 62) | [Fact]
    method NodeWriteStaticArrayInt16ValueVariableTestAsync (line 68) | [Fact]
    method NodeWriteStaticArrayUInt16ValueVariableTestAsync (line 74) | [Fact]
    method NodeWriteStaticArrayInt32ValueVariableTestAsync (line 80) | [Fact]
    method NodeWriteStaticArrayUInt32ValueVariableTestAsync (line 86) | [Fact]
    method NodeWriteStaticArrayInt64ValueVariableTestAsync (line 92) | [Fact]
    method NodeWriteStaticArrayUInt64ValueVariableTestAsync (line 98) | [Fact]
    method NodeWriteStaticArrayFloatValueVariableTestAsync (line 104) | [Fact]
    method NodeWriteStaticArrayDoubleValueVariableTestAsync (line 110) | [Fact]
    method NodeWriteStaticArrayStringValueVariableTest1Async (line 116) | [Fact]
    method NodeWriteStaticArrayStringValueVariableTest2Async (line 122) | [Fact]
    method NodeWriteStaticArrayDateTimeValueVariableTestAsync (line 128) | [Fact]
    method NodeWriteStaticArrayGuidValueVariableTestAsync (line 134) | [Fact]
    method NodeWriteStaticArrayByteStringValueVariableTestAsync (line 140) | [Fact]
    method NodeWriteStaticArrayXmlElementValueVariableTestAsync (line 146) | [Fact]
    method NodeWriteStaticArrayNodeIdValueVariableTestAsync (line 152) | [Fact]
    method NodeWriteStaticArrayExpandedNodeIdValueVariableTestAsync (line 158) | [Fact]
    method NodeWriteStaticArrayQualifiedNameValueVariableTestAsync (line 164) | [Fact]
    method NodeWriteStaticArrayLocalizedTextValueVariableTestAsync (line 170) | [Fact]
    method NodeWriteStaticArrayStatusCodeValueVariableTestAsync (line 176) | [Fact]
    method NodeWriteStaticArrayVariantValueVariableTest1Async (line 182) | [Fact]
    method NodeWriteStaticArrayEnumerationValueVariableTestAsync (line 188) | [Fact]
    method NodeWriteStaticArrayStructureValueVariableTestAsync (line 194) | [Fact]
    method NodeWriteStaticArrayNumberValueVariableTest1Async (line 200) | [Fact]
    method NodeWriteStaticArrayNumberValueVariableTest2Async (line 206) | [Fact]
    method NodeWriteStaticArrayIntegerValueVariableTest1Async (line 212) | [Fact]
    method NodeWriteStaticArrayIntegerValueVariableTest2Async (line 218) | [Fact]
    method NodeWriteStaticArrayUIntegerValueVariableTest1Async (line 224) | [Fact]
    method NodeWriteStaticArrayUIntegerValueVariableTest2Async (line 230) | [Fact]

FILE: src/Azure.IIoT.OpcUa.Publisher.Module/tests/Controller/TestData/Json/ValueWriteScalarTests.cs
  class ValueWriteScalarTests (line 19) | [Collection(WriteCollection.Name)]
    method ValueWriteScalarTests (line 22) | public ValueWriteScalarTests(TestDataServer server, PublisherModuleFix...
    method Dispose (line 28) | public void Dispose()
    method GetTests (line 33) | private WriteScalarValueTests<ConnectionModel> GetTests()
    method NodeWriteStaticScalarBooleanValueVariableTestAsync (line 50) | [Fact]
    method NodeWriteStaticScalarBooleanValueVariableWithBrowsePathTest1Async (line 56) | [Fact]
    method NodeWriteStaticScalarBooleanValueVariableWithBrowsePathTest2Async (line 62) | [Fact]
    method NodeWriteStaticScalarBooleanValueVariableWithBrowsePathTest3Async (line 68) | [Fact]
    method NodeWriteStaticScalarSByteValueVariableTestAsync (line 74) | [Fact]
    method NodeWriteStaticScalarByteValueVariableTestAsync (line 80) | [Fact]
    method NodeWriteStaticScalarInt16ValueVariableTestAsync (line 86) | [Fact]
    method NodeWriteStaticScalarUInt16ValueVariableTestAsync (line 92) | [Fact]
    method NodeWriteStaticScalarInt32ValueVariableTestAsync (line 98) | [Fact]
    method NodeWriteStaticScalarUInt32ValueVariableTestAsync (line 104) | [Fact]
    method NodeWriteStaticScalarInt64ValueVariableTestAsync (line 110) | [Fact]
    method NodeWriteStaticScalarUInt64ValueVariableTestAsync (line 116) | [Fact]
    method NodeWriteStaticScalarFloatValueVariableTestAsync (line 122) | [Fact]
    method NodeWriteStaticScalarDoubleValueVariableTestAsync (line 128) | [Fact]
    method NodeWriteStaticScalarStringValueVariableTestAsync (line 134) | [Fact]
    method NodeWriteStaticScalarDateTimeValueVariableTestAsync (line 140) | [Fact]
    method NodeWriteStaticScalarGuidValueVariableTestAsync (line 146) | [Fact]
    method NodeWriteStaticScalarByteStringValueVariableTestAsync (line 152) | [Fact]
    method NodeWriteStaticScalarXmlElementValueVariableTestAsync (line 158) | [Fact]
    method NodeWriteStaticScalarNodeIdValueVariableTestAsync (line 164) | [Fact]
    method NodeWriteStaticScalarExpandedNodeIdValueVariableTestAsync (line 170) | [Fact]
    method NodeWriteStaticScalarQualifiedNameValueVariableTestAsync (line 176) | [Fact]
    method NodeWriteStaticScalarLocalizedTextValueVariableTestAsync (line 182) | [Fact]
    method NodeWriteStaticScalarStatusCodeValueVariableTestAsync (line 188) | [Fact]
    method NodeWriteStaticScalarVariantValueVariableTestAsync (line 194) | [Fact]
    method NodeWriteStaticScalarEnumerationValueVariableTestAsync (line 200) | [Fact]
    method NodeWriteStaticScalarStructuredValueVariableTestAsync (line 206) | [Fact]
    method NodeWriteStaticScalarNumberValueVariableTestAsync (line 212) | [Fact]
    method NodeWriteStaticScalarIntegerValueVariableTestAsync (line 218) | [Fact]
    method NodeWriteStaticScalarUIntegerValueVariableTestAsync (line 224) | [Fact]

FILE: src/Azure.IIoT.OpcUa.Publisher.Module/tests/Controller/TestData/Json/WriteCollection.cs
  class WriteCollection (line 11) | [CollectionDefinition(Name)]

FILE: src/Azure.IIoT.OpcUa.Publisher.Module/tests/Controller/TestData/MsgPack/BrowsePathTests.cs
  class BrowsePathTests (line 18) | [Collection(ReadCollection.Name)]
    method BrowsePathTests (line 21) | public BrowsePathTests(TestDataServer server, PublisherModuleFixture m...
    method Dispose (line 27) | public void Dispose()
    method GetTests (line 32) | private BrowsePathTests<ConnectionModel> GetTests()
    method NodeBrowsePathStaticScalarMethod3Test1Async (line 42) | [Fact]
    method NodeBrowsePathStaticScalarMethod3Test2Async (line 48) | [Fact]
    method NodeBrowsePathStaticScalarMethod3Test3Async (line 54) | [Fact]
    method NodeBrowsePathStaticScalarMethodsTestAsync (line 60) | [Fact]

FILE: src/Azure.IIoT.OpcUa.Publisher.Module/tests/Controller/TestData/MsgPack/BrowseStreamTests.cs
  class BrowseStreamTests (line 18) | [Collection(ReadCollection.Name)]
    method BrowseStreamTests (line 21) | public BrowseStreamTests(TestDataServer server, PublisherModuleFixture...
    method Dispose (line 27) | public void Dispose()
    method GetTests (line 32) | private BrowseStreamTests<ConnectionModel> GetTests()
    method NodeBrowseInRootTest1Async (line 42) | [Fact]
    method NodeBrowseInRootTest2Async (line 48) | [Fact]
    method NodeBrowseBoilersObjectsTest1Async (line 54) | [Fact]
    method NodeBrowseDataAccessObjectsTest1Async (line 60) | [Fact]
    method NodeBrowseStaticScalarVariablesTestAsync (line 66) | [Fact]
    method NodeBrowseStaticArrayVariablesTestAsync (line 72) | [Fact]
    method NodeBrowseStaticScalarVariablesTestWithFilter1Async (line 78) | [Fact]
    method NodeBrowseStaticScalarVariablesTestWithFilter2Async (line 84) | [Fact]
    method NodeBrowseStaticScalarVariablesTestWithFilter3Async (line 90) | [Fact]
    method NodeBrowseStaticScalarVariablesTestWithFilter4Async (line 96) | [Fact]
    method NodeBrowseStaticScalarVariablesTestWithFilter5Async (line 102) | [Fact]
    method NodeBrowseDiagnosticsNoneTestAsync (line 108) | [Fact]
    method NodeBrowseDiagnosticsStatusTestAsync (line 114) | [Fact]
    method NodeBrowseDiagnosticsOperationsTestAsync (line 120) | [Fact]
    method NodeBrowseDiagnosticsVerboseTestAsync (line 126) | [Fact]

FILE: src/Azure.IIoT.OpcUa.Publisher.Module/tests/Controller/TestData/MsgPack/BrowseTests.cs
  class BrowseTests (line 18) | [Collection(ReadCollection.Name)]
    method BrowseTests (line 21) | public BrowseTests(TestDataServer server, PublisherModuleFixture modul...
    method Dispose (line 27) | public void Dispose()
    method GetTests (line 32) | private BrowseServicesTests<ConnectionModel> GetTests()
    method NodeBrowseInRootTest1Async (line 42) | [Fact]
    method NodeBrowseInRootTest2Async (line 48) | [Fact]
    method NodeBrowseFirstInRootTest1Async (line 54) | [Fact]
    method NodeBrowseFirstInRootTest2Async (line 60) | [Fact]
    method NodeBrowseBoilersObjectsTest1Async (line 66) | [Fact]
    method NodeBrowseBoilersObjectsTest2Async (line 72) | [Fact]
    method NodeBrowseDataAccessObjectsTest1Async (line 78) | [Fact]
    method NodeBrowseDataAccessObjectsTest2Async (line 84) | [Fact]
    method NodeBrowseDataAccessObjectsTest3Async (line 90) | [Fact]
    method NodeBrowseDataAccessObjectsTest4Async (line 96) | [Fact]
    method NodeBrowseDataAccessFC1001Test1Async (line 102) | [Fact]
    method NodeBrowseDataAccessFC1001Test2Async (line 108) | [Fact]
    method NodeBrowseStaticScalarVariablesTestAsync (line 114) | [Fact]
    method NodeBrowseStaticArrayVariablesTestAsync (line 120) | [Fact]
    method NodeBrowseStaticScalarVariablesTestWithFilter1Async (line 126) | [Fact]
    method NodeBrowseStaticScalarVariablesTestWithFilter2Async (line 132) | [Fact]
    method NodeBrowseStaticArrayVariablesWithValuesTestAsync (line 138) | [Fact]
    method NodeBrowseStaticArrayVariablesRawModeTestAsync (line 144) | [Fact]
    method NodeBrowseContinuationTest1Async (line 150) | [Fact]
    method NodeBrowseContinuationTest2Async (line 156) | [Fact]
    method NodeBrowseContinuationTest3Async (line 162) | [Fact]
    method NodeBrowseContinuationTest4Async (line 168) | [Fact]
    method NodeBrowseDiagnosticsNoneTestAsync (line 174) | [Fact]
    method NodeBrowseDiagnosticsStatusTestAsync (line 180) | [Fact]
    method NodeBrowseDiagnosticsInfoTestAsync (line 186) | [Fact]
    method NodeBrowseDiagnosticsVerboseTestAsync (line 192) | [Fact]

FILE: src/Azure.IIoT.OpcUa.Publisher.Module/tests/Controller/TestData/MsgPack/CallArrayTests.cs
  class CallArrayTests (line 18) | [Collection(WriteCollection.Name)]
    method CallArrayTests (line 21) | public CallArrayTests(TestDataServer server, PublisherModuleFixture mo...
    method Dispose (line 27) | public void Dispose()
    method GetTests (line 32) | private CallArrayMethodTests<ConnectionModel> GetTests()
    method NodeMethodMetadataStaticArrayMethod1TestAsync (line 42) | [Fact]
    method NodeMethodMetadataStaticArrayMethod2TestAsync (line 48) | [Fact]
    method NodeMethodMetadataStaticArrayMethod3TestAsync (line 54) | [Fact]
    method NodeMethodCallStaticArrayMethod1Test1Async (line 60) | [Fact]
    method NodeMethodCallStaticArrayMethod1Test2Async (line 66) | [Fact]
    method NodeMethodCallStaticArrayMethod1Test3Async (line 72) | [Fact]
    method NodeMethodCallStaticArrayMethod1Test4Async (line 78) | [Fact]
    method NodeMethodCallStaticArrayMethod1Test5Async (line 84) | [Fact]
    method NodeMethodCallStaticArrayMethod2Test1Async (line 90) | [Fact]
    method NodeMethodCallStaticArrayMethod2Test2Async (line 96) | [Fact]
    method NodeMethodCallStaticArrayMethod2Test3Async (line 102) | [Fact]
    method NodeMethodCallStaticArrayMethod2Test4Async (line 108) | [Fact]
    method NodeMethodCallStaticArrayMethod3Test1Async (line 114) | [Fact]
    method NodeMethodCallStaticArrayMethod3Test2Async (line 120) | [Fact]
    method NodeMethodCallStaticArrayMethod3Test3Async (line 126) | [Fact]

FILE: src/Azure.IIoT.OpcUa.Publisher.Module/tests/Controller/TestData/MsgPack/CallScalarTests.cs
  class CallScalarTests (line 18) | [Collection(WriteCollection.Name)]
    method CallScalarTests (line 21) | public CallScalarTests(TestDataServer server, PublisherModuleFixture m...
    method Dispose (line 27) | public void Dispose()
    method GetTests (line 32) | private CallScalarMethodTests<ConnectionModel> GetTests()
    method NodeMethodMetadataStaticScalarMethod1TestAsync (line 42) | [Fact]
    method NodeMethodMetadataStaticScalarMethod2TestAsync (line 48) | [Fact]
    method NodeMethodMetadataStaticScalarMethod3TestAsync (line 54) | [Fact]
    method NodeMethodMetadataStaticScalarMethod3WithBrowsePathTest1Async (line 60) | [Fact]
    method NodeMethodMetadataStaticScalarMethod3WithBrowsePathTest2Async (line 66) | [Fact]
    method NodeMethodCallStaticScalarMethod1Test1Async (line 72) | [Fact]
    method NodeMethodCallStaticScalarMethod1Test2Async (line 78) | [Fact]
    method NodeMethodCallStaticScalarMethod1Test3Async (line 84) | [Fact]
    method NodeMethodCallStaticScalarMethod1Test4Async (line 90) | [Fact]
    method NodeMethodCallStaticScalarMethod1Test5Async (line 96) | [Fact]
    method NodeMethodCallStaticScalarMethod2Test1Async (line 102) | [Fact]
    method NodeMethodCallStaticScalarMethod2Test2Async (line 108) | [Fact]
    method NodeMethodCallStaticScalarMethod3Test1Async (line 114) | [Fact]
    method NodeMethodCallStaticScalarMethod3Test2Async (line 120) | [Fact]
    method NodeMethodCallStaticScalarMethod3WithBrowsePathNoIdsTestAsync (line 126) | [Fact]
    method NodeMethodCallStaticScalarMethod3WithObjectIdAndBrowsePathTestAsync (line 132) | [Fact]
    method NodeMethodCallStaticScalarMethod3WithObjectIdAndMethodIdAndBrowsePathTestAsync (line 138) | [Fact]
    method NodeMethodCallStaticScalarMethod3WithObjectPathAndMethodIdAndBrowsePathTestAsync (line 144) | [Fact]
    method NodeMethodCallStaticScalarMethod3WithObjectIdAndPathAndMethodIdAndPathTestAsync (line 150) | [Fact]
    method NodeMethodCallBoiler2ResetTestAsync (line 156) | [Fact]
    method NodeMethodCallBoiler1ResetTestAsync (line 162) | [Fact]

FILE: src/Azure.IIoT.OpcUa.Publisher.Module/tests/Controller/TestData/MsgPack/ExpandTests1.cs
  class ExpandTests1 (line 17) | [Collection(ReadCollection.Name)]
    method ExpandTests1 (line 20) | public ExpandTests1(TestDataServer server, PublisherModuleFixture modu...
    method Dispose (line 26) | public void Dispose()
    method GetTests (line 31) | private ConfigurationTests1 GetTests()
    method ExpandObjectWithBrowsePathTest1Async (line 40) | [Fact]
    method ExpandObjectWithBrowsePathTest2Async (line 46) | [Fact]
    method ExpandObjectTest1Async (line 52) | [Fact]
    method ExpandObjectTest2Async (line 58) | [Fact]
    method ExpandServerObjectTest1Async (line 64) | [Fact]
    method ExpandServerObjectTest2Async (line 70) | [Fact]
    method ExpandServerObjectTest3Async (line 76) | [Fact]
    method ExpandServerObjectTest4Async (line 82) | [Fact]
    method ExpandServerObjectTest5Async (line 88) | [Fact]
    method ExpandBaseObjectTypeTest1Async (line 94) | [Fact]
    method ExpandBaseObjectTypeTest2Async (line 100) | [Fact]
    method ExpandBaseObjectsAndObjectTypesTestAsync (line 106) | [Fact]
    method ExpandBoilerTypeTestAsync (line 112) | [Fact]
    method ExpandBoilerDrumTypeTestAsync (line 118) | [Fact]
    method ExpandBoilerDrumAndValveTypeTestAsync (line 124) | [Fact]
    method ExpandValveTypeTestAsync (line 130) | [Fact]
    method ExpandTestDataObjectTypeTestAsync (line 136) | [Fact]
    method ExpandServerTypeTestAsync (line 142) | [Fact]
    method ExpandServerTypeWithMethodsTestAsync (line 148) | [Fact]
    method ExpandPublishSubscribeTestAsync (line 154) | [Fact]
    method ExpandVariablesTest1Async (line 160) | [Fact]
    method ExpandVariablesAndObjectsTest1Async (line 166) | [Fact]
    method ExpandVariableTypesTest1Async (line 172) | [Fact]
    method ExpandVariableTypesTest2Async (line 178) | [Fact]
    method ExpandVariableTypesTest3Async (line 184) | [Fact]
    method ExpandObjectWithNoObjectsTest1Async (line 190) | [Fact]
    method ExpandObjectWithNoObjectsTest2Async (line 196) | [Fact]
    method ExpandEmptyEntryTest1Async (line 202) | [Fact]
    method ExpandEmptyEntryTest2Async (line 208) | [Fact]
    method ExpandBadNodeIdTest1Async (line 214) | [Fact]
    method ExpandBadNodeIdTest2Async (line 220) | [Fact]
    method ExpandBadNodeIdTest3Async (line 226) | [Fact]

FILE: src/Azure.IIoT.OpcUa.Publisher.Module/tests/Controller/TestData/MsgPack/MetadataArrayTests.cs
  class MetadataArrayTests (line 18) | [Collection(ReadCollection.Name)]
    method MetadataArrayTests (line 21) | public MetadataArrayTests(TestDataServer server, PublisherModuleFixtur...
    method Dispose (line 27) | public void Dispose()
    method GetTests (line 32) | private CallArrayMethodTests<ConnectionModel> GetTests()
    method NodeMethodMetadataStaticArrayMethod1TestAsync (line 42) | [Fact]
    method NodeMethodMetadataStaticArrayMethod2TestAsync (line 48) | [Fact]
    method NodeMethodMetadataStaticArrayMethod3TestAsync (line 54) | [Fact]

FILE: src/Azure.IIoT.OpcUa.Publisher.Module/tests/Controller/TestData/MsgPack/MetadataScalarTests.cs
  class MetadataScalarTests (line 18) | [Collection(ReadCollection.Name)]
    method MetadataScalarTests (line 21) | public MetadataScalarTests(TestDataServer server, PublisherModuleFixtu...
    method Dispose (line 27) | public void Dispose()
    method GetTests (line 32) | private CallScalarMethodTests<ConnectionModel> GetTests()
    method NodeMethodMetadataStaticScalarMethod1TestAsync (line 42) | [Fact]
    method NodeMethodMetadataStaticScalarMethod2TestAsync (line 48) | [Fact]
    method NodeMethodMetadataStaticScalarMethod3TestAsync (line 54) | [Fact]
    method NodeMethodMetadataStaticScalarMethod3WithBrowsePathTest1Async (line 60) | [Fact]
    method NodeMethodMetadataStaticScalarMethod3WithBrowsePathTest2Async (line 66) | [Fact]

FILE: src/Azure.IIoT.OpcUa.Publisher.Module/tests/Controller/TestData/MsgPack/MetadataTests.cs
  class MetadataTests (line 18) | [Collection(ReadCollection.Name)]
    method MetadataTests (line 21) | public MetadataTests(TestDataServer server, PublisherModuleFixture mod...
    method Dispose (line 27) | public void Dispose()
    method GetTests (line 32) | private NodeMetadataTests<ConnectionModel> GetTests()
    method GetServerCapabilitiesTestAsync (line 42) | [Fact]
    method HistoryGetServerCapabilitiesTestAsync (line 48) | [Fact]
    method NodeGetMetadataForFolderTypeTestAsync (line 54) | [Fact]
    method NodeGetMetadataForServerObjectTestAsync (line 60) | [Fact]
    method NodeGetMetadataForConditionTypeTestAsync (line 66) | [Fact]
    method NodeGetMetadataTestForBaseEventTypeTestAsync (line 72) | [Fact]
    method NodeGetMetadataForBaseInterfaceTypeTestAsync (line 78) | [Fact]
    method NodeGetMetadataForBaseDataVariableTypeTestAsync (line 84) | [Fact]
    method NodeGetMetadataForPropertyTypeTestAsync (line 90) | [Fact]
    method NodeGetMetadataForAudioVariableTypeTestAsync (line 96) | [Fact]
    method NodeGetMetadataForServerStatusVariableTestAsync (line 102) | [Fact]
    method NodeGetMetadataForRedundancySupportPropertyTestAsync (line 108) | [Fact]

FILE: src/Azure.IIoT.OpcUa.Publisher.Module/tests/Controller/TestData/MsgPack/ReadCollection.cs
  class ReadCollection (line 11) | [CollectionDefinition(Name)]

FILE: src/Azure.IIoT.OpcUa.Publisher.Module/tests/Controller/TestData/MsgPack/ValueReadArrayTests.cs
  class ValueReadArrayTests (line 19) | [Collection(ReadCollection.Name)]
    method ValueReadArrayTests (line 22) | public ValueReadArrayTests(TestDataServer server, PublisherModuleFixtu...
    method Dispose (line 28) | public void Dispose()
    method GetTests (line 33) | private ReadArrayValueTests<ConnectionModel> GetTests()
    method NodeReadAllStaticArrayVariableNodeClassTest1Async (line 50) | [Fact]
    method NodeReadAllStaticArrayVariableAccessLevelTest1Async (line 56) | [Fact]
    method NodeReadAllStaticArrayVariableWriteMaskTest1Async (line 62) | [Fact]
    method NodeReadAllStaticArrayVariableWriteMaskTest2Async (line 68) | [Fact]
    method NodeReadStaticArrayBooleanValueVariableTestAsync (line 74) | [Fact]
    method NodeReadStaticArraySByteValueVariableTestAsync (line 80) | [Fact]
    method NodeReadStaticArrayByteValueVariableTestAsync (line 86) | [Fact]
    method NodeReadStaticArrayInt16ValueVariableTestAsync (line 92) | [Fact]
    method NodeReadStaticArrayUInt16ValueVariableTestAsync (line 98) | [Fact]
    method NodeReadStaticArrayInt32ValueVariableTestAsync (line 104) | [Fact]
    method NodeReadStaticArrayUInt32ValueVariableTestAsync (line 110) | [Fact]
    method NodeReadStaticArrayInt64ValueVariableTestAsync (line 116) | [Fact]
    method NodeReadStaticArrayUInt64ValueVariableTestAsync (line 122) | [Fact]
    method NodeReadStaticArrayFloatValueVariableTestAsync (line 128) | [Fact]
    method NodeReadStaticArrayDoubleValueVariableTestAsync (line 134) | [Fact]
    method NodeReadStaticArrayStringValueVariableTestAsync (line 140) | [Fact]
    method NodeReadStaticArrayDateTimeValueVariableTestAsync (line 146) | [Fact]
    method NodeReadStaticArrayGuidValueVariableTestAsync (line 152) | [Fact]
    method NodeReadStaticArrayByteStringValueVariableTestAsync (line 158) | [Fact]
    method NodeReadStaticArrayXmlElementValueVariableTestAsync (line 164) | [Fact]
    method NodeReadStaticArrayNodeIdValueVariableTestAsync (line 170) | [Fact]
    method NodeReadStaticArrayExpandedNodeIdValueVariableTestAsync (line 176) | [Fact]
    method NodeReadStaticArrayQualifiedNameValueVariableTestAsync (line 182) | [Fact]
    method NodeReadStaticArrayLocalizedTextValueVariableTestAsync (line 188) | [Fact]
    method NodeReadStaticArrayStatusCodeValueVariableTestAsync (line 194) | [Fact]
    method NodeReadStaticArrayVariantValueVariableTestAsync (line 200) | [Fact]
    method NodeReadStaticArrayEnumerationValueVariableTestAsync (line 206) | [Fact]
    method NodeReadStaticArrayStructureValueVariableTestAsync (line 212) | [Fact]
    method NodeReadStaticArrayNumberValueVariableTestAsync (line 218) | [Fact]
    method NodeReadStaticArrayIntegerValueVariableTestAsync (line 224) | [Fact]
    method NodeReadStaticArrayUIntegerValueVariableTestAsync (line 230) | [Fact]

FILE: src/Azure.IIoT.OpcUa.Publisher.Module/tests/Controller/TestData/MsgPack/ValueReadScalarTests.cs
  class ValueReadScalarTests (line 19) | [Collection(ReadCollection.Name)]
    method ValueReadScalarTests (line 22) | public ValueReadScalarTests(TestDataServer server, PublisherModuleFixt...
    method Dispose (line 28) | public void Dispose()
    method GetTests (line 33) | private ReadScalarValueTests<ConnectionModel> GetTests()
    method NodeReadAllStaticScalarVariableNodeClassTest1Async (line 50) | [Fact]
    method NodeReadAllStaticScalarVariableAccessLevelTest1Async (line 56) | [Fact]
    method NodeReadAllStaticScalarVariableWriteMaskTest1Async (line 62) | [Fact]
    method NodeReadAllStaticScalarVariableWriteMaskTest2Async (line 68) | [Fact]
    method NodeReadStaticScalarBooleanValueVariableTestAsync (line 74) | [Fact]
    method NodeReadStaticScalarBooleanValueVariableWithBrowsePathTest1Async (line 80) | [Fact]
    method NodeReadStaticScalarBooleanValueVariableWithBrowsePathTest2Async (line 86) | [Fact]
    method NodeReadStaticScalarBooleanValueVariableWithBrowsePathTest3Async (line 92) | [Fact]
    method NodeReadStaticScalarSByteValueVariableTestAsync (line 98) | [Fact]
    method NodeReadStaticScalarByteValueVariableTestAsync (line 104) | [Fact]
    method NodeReadStaticScalarInt16ValueVariableTestAsync (line 110) | [Fact]
    method NodeReadStaticScalarUInt16ValueVariableTestAsync (line 116) | [Fact]
    method NodeReadStaticScalarInt32ValueVariableTestAsync (line 122) | [Fact]
    method NodeReadStaticScalarUInt32ValueVariableTestAsync (line 128) | [Fact]
    method NodeReadStaticScalarInt64ValueVariableTestAsync (line 134) | [Fact]
    method NodeReadStaticScalarUInt64ValueVariableTestAsync (line 140) | [Fact]
    method NodeReadStaticScalarFloatValueVariableTestAsync (line 146) | [Fact]
    method NodeReadStaticScalarDoubleValueVariableTestAsync (line 152) | [Fact]
    method NodeReadStaticScalarStringValueVariableTestAsync (line 158) | [Fact]
    method NodeReadStaticScalarDateTimeValueVariableTestAsync (line 164) | [Fact]
    method NodeReadStaticScalarGuidValueVariableTestAsync (line 170) | [Fact]
    method NodeReadStaticScalarByteStringValueVariableTestAsync (line 176) | [Fact]
    method NodeReadStaticScalarXmlElementValueVariableTestAsync (line 182) | [Fact]
    method NodeReadStaticScalarNodeIdValueVariableTestAsync (line 188) | [Fact]
    method NodeReadStaticScalarExpandedNodeIdValueVariableTestAsync (line 194) | [Fact]
    method NodeReadStaticScalarQualifiedNameValueVariableTestAsync (line 200) | [Fact]
    method NodeReadStaticScalarLocalizedTextValueVariableTestAsync (line 206) | [Fact]
    method NodeReadStaticScalarStatusCodeValueVariableTestAsync (line 212) | [Fact]
    method NodeReadStaticScalarVariantValueVariableTestAsync (line 218) | [Fact]
    method NodeReadStaticScalarEnumerationValueVariableTestAsync (line 224) | [Fact]
    method NodeReadStaticScalarStructuredValueVariableTestAsync (line 230) | [Fact]
    method NodeReadStaticScalarNumberValueVariableTestAsync (line 236) | [Fact]
    method NodeReadStaticScalarIntegerValueVariableTestAsync (line 242) | [Fact]
    method NodeReadStaticScalarUIntegerValueVariableTestAsync (line 248) | [Fact]
    method NodeReadDataAccessMeasurementFloatValueTestAsync (line 254) | [Fact]
    method NodeReadDiagnosticsNoneTestAsync (line 260) | [Fact]
    method NodeReadDiagnosticsStatusTestAsync (line 266) | [Fact]
    method NodeReadDiagnosticsDebugTestAsync (line 272) | [Fact]
    method NodeReadDiagnosticsVerboseTestAsync (line 278) | [Fact]

FILE: src/Azure.IIoT.OpcUa.Publisher.Module/tests/Controller/TestData/MsgPack/ValueWriteArrayTests.cs
  class ValueWriteArrayTests (line 19) | [Collection(WriteCollection.Name)]
    method ValueWriteArrayTests (line 22) | public ValueWriteArrayTests(TestDataServer server, PublisherModuleFixt...
    method Dispose (line 28) | public void Dispose()
    method GetTests (line 33) | private WriteArrayValueTests<ConnectionModel> GetTests()
    method NodeWriteStaticArrayBooleanValueVariableTestAsync (line 50) | [Fact]
    method NodeWriteStaticArraySByteValueVariableTestAsync (line 56) | [Fact]
    method NodeWriteStaticArrayByteValueVariableTestAsync (line 62) | [Fact]
    method NodeWriteStaticArrayInt16ValueVariableTestAsync (line 68) | [Fact]
    method NodeWriteStaticArrayUInt16ValueVariableTestAsync (line 74) | [Fact]
    method NodeWriteStaticArrayInt32ValueVariableTestAsync (line 80) | [Fact]
    method NodeWriteStaticArrayUInt32ValueVariableTestAsync (line 86) | [Fact]
    method NodeWriteStaticArrayInt64ValueVariableTestAsync (line 92) | [Fact]
    method NodeWriteStaticArrayUInt64ValueVariableTestAsync (line 98) | [Fact]
    method NodeWriteStaticArrayFloatValueVariableTestAsync (line 104) | [Fact]
    method NodeWriteStaticArrayDoubleValueVariableTestAsync (line 110) | [Fact]
    method NodeWriteStaticArrayStringValueVariableTest1Async (line 116) | [Fact]
    method NodeWriteStaticArrayStringValueVariableTest2Async (line 122) | [Fact]
    method NodeWriteStaticArrayDateTimeValueVariableTestAsync (line 128) | [Fact]
    method NodeWriteStaticArrayGuidValueVariableTestAsync (line 134) | [Fact]
    method NodeWriteStaticArrayByteStringValueVariableTestAsync (line 140) | [Fact]
    method NodeWriteStaticArrayXmlElementValueVariableTestAsync (line 146) | [Fact]
    method NodeWriteStaticArrayNodeIdValueVariableTestAsync (line 152) | [Fact]
    method NodeWriteStaticArrayExpandedNodeIdValueVariableTestAsync (line 158) | [Fact]
    method NodeWriteStaticArrayQualifiedNameValueVariableTestAsync (line 164) | [Fact]
    method NodeWriteStaticArrayLocalizedTextValueVariableTestAsync (line 170) | [Fact]
    method NodeWriteStaticArrayStatusCodeValueVariableTestAsync (line 176) | [Fact]
    method NodeWriteStaticArrayVariantValueVariableTest1Async (line 182) | [Fact]
    method NodeWriteStaticArrayEnumerationValueVariableTestAsync (line 188) | [Fact]
    method NodeWriteStaticArrayStructureValueVariableTestAsync (line 194) | [Fact]
    method NodeWriteStaticArrayNumberValueVariableTest1Async (line 200) | [Fact]
    method NodeWriteStaticArrayNumberValueVariableTest2Async (line 206) | [Fact]
    method NodeWriteStaticArrayIntegerValueVariableTest1Async (line 212) | [Fact]
    method NodeWriteStaticArrayIntegerValueVariableTest2Async (line 218) | [Fact]
    method NodeWriteStaticArrayUIntegerValueVariableTest1Async (line 224) | [Fact]
    method NodeWriteStaticArrayUIntegerValueVariableTest2Async (line 230) | [Fact]

FILE: src/Azure.IIoT.OpcUa.Publisher.Module/tests/Controller/TestData/MsgPack/ValueWriteScalarTests.cs
  class ValueWriteScalarTests (line 19) | [Collection(WriteCollection.Name)]
    method ValueWriteScalarTests (line 22) | public ValueWriteScalarTests(TestDataServer server, PublisherModuleFix...
    method Dispose (line 28) | public void Dispose()
    method GetTests (line 33) | private WriteScalarValueTests<ConnectionModel> GetTests()
    method NodeWriteStaticScalarBooleanValueVariableTestAsync (line 50) | [Fact]
    method NodeWriteStaticScalarBooleanValueVariableWithBrowsePathTest1Async (line 56) | [Fact]
    method NodeWriteStaticScalarBooleanValueVariableWithBrowsePathTest2Async (line 62) | [Fact]
    method NodeWriteStaticScalarBooleanValueVariableWithBrowsePathTest3Async (line 68) | [Fact]
    method NodeWriteStaticScalarSByteValueVariableTestAsync (line 74) | [Fact]
    method NodeWriteStaticScalarByteValueVariableTestAsync (line 80) | [Fact]
    method NodeWriteStaticScalarInt16ValueVariableTestAsync (line 86) | [Fact]
    method NodeWriteStaticScalarUInt16ValueVariableTestAsync (line 92) | [Fact]
    method NodeWriteStaticScalarInt32ValueVariableTestAsync (line 98) | [Fact]
    method NodeWriteStaticScalarUInt32ValueVariableTestAsync (line 104) | [Fact]
    method NodeWriteStaticScalarInt64ValueVariableTestAsync (line 110) | [Fact]
    method NodeWriteStaticScalarUInt64ValueVariableTestAsync (line 116) | [Fact]
    method NodeWriteStaticScalarFloatValueVariableTestAsync (line 122) | [Fact]
    method NodeWriteStaticScalarDoubleValueVariableTestAsync (line 128) | [Fact]
    method NodeWriteStaticScalarStringValueVariableTestAsync (line 134) | [Fact]
    method NodeWriteStaticScalarDateTimeValueVariableTestAsync (line 140) | [Fact]
    method NodeWriteStaticScalarGuidValueVariableTestAsync (line 146) | [Fact]
    method NodeWriteStaticScalarByteStringValueVariableTestAsync (line 152) | [Fact]
    method NodeWriteStaticScalarXmlElementValueVariableTestAsync (line 158) | [Fact]
    method NodeWriteStaticScalarNodeIdValueVariableTestAsync (line 164) | [Fact]
    method NodeWriteStaticScalarExpandedNodeIdValueVariableTestAsync (line 170) | [Fact]
    method NodeWriteStaticScalarQualifiedNameValueVariableTestAsync (line 176) | [Fact]
    method NodeWriteStaticScalarLocalizedTextValueVariableTestAsync (line 182) | [Fact]
    method NodeWriteStaticScalarStatusCodeValueVariableTestAsync (line 188) | [Fact]
    method NodeWriteStaticScalarVariantValueVariableTestAsync (line 194) | [Fact]
    method NodeWriteStaticScalarEnumerationValueVariableTestAsync (line 200) | [Fact]
    method NodeWriteStaticScalarStructuredValueVariableTestAsync (line 206) | [Fact]
    method NodeWriteStaticScalarNumberValueVariableTestAsync (line 212) | [Fact]
    method NodeWriteStaticScalarIntegerValueVariableTestAsync (line 218) | [Fact]
    method NodeWriteStaticScalarUIntegerValueVariableTestAsync (line 224) | [Fact]

FILE: src/Azure.IIoT.OpcUa.Publisher.Module/tests/Controller/TestData/MsgPack/WriteCollection.cs
  class WriteCollection (line 11) | [CollectionDefinition(Name)]

FILE: src/Azure.IIoT.OpcUa.Publisher.Module/tests/Fixtures/PublisherIntegrationTestBase.cs
  type JsonMessage (line 36) | public readonly record struct JsonMessage(string Topic, JsonElement Mess...
  class PublisherIntegrationTestBase (line 42) | public class PublisherIntegrationTestBase : IDisposable
    method PublisherIntegrationTestBase (line 53) | public PublisherIntegrationTestBase(ITestOutputHelper testOutputHelper,
    method Dispose (line 66) | protected virtual void Dispose(bool disposing)
    method Dispose (line 88) | public void Dispose()
    method ProcessMessagesAsync (line 103) | protected Task<List<JsonMessage>> ProcessMessagesAsync(string test, st...
    method ProcessMessagesAndMetadataAsync (line 122) | protected Task<(JsonMessage? Metadata, List<JsonMessage> Messages)> Pr...
    method ProcessMessagesAsync (line 142) | protected async Task<List<JsonMessage>> ProcessMessagesAsync(string te...
    method ProcessMessagesAndMetadataAsync (line 163) | protected async Task<(JsonMessage? Metadata, List<JsonMessage> Message...
    method WaitForMessagesAsync (line 185) | protected Task<List<JsonMessage>> WaitForMessagesAsync(
    method WaitForMessagesAsync (line 199) | protected async Task<List<JsonMessage>> WaitForMessagesAsync(TimeSpan ...
    method WaitForMessagesAndMetadataAsync (line 215) | protected async Task<(JsonMessage? Metadata, List<JsonMessage> Message...
    method StartPublisher (line 318) | protected void StartPublisher(string test, string publishedNodesFile =...
    method WritePublishedNodes (line 367) | protected void WritePublishedNodes(string test, string publishedNodesF...
    method StopPublisherAsync (line 389) | protected async Task StopPublisherAsync()
    method GetEndpointsFromFile (line 414) | protected PublishedNodesEntryModel[] GetEndpointsFromFile(string test,...
  class PublisherIntegrationTestLogging (line 441) | internal static partial class PublisherIntegrationTestLogging
    method TestTimeout (line 445) | [LoggerMessage(EventId = EventClass + 1, Level = LogLevel.Error,
    method MessagesReceived (line 449) | [LoggerMessage(EventId = EventClass + 2, Level = LogLevel.Information,
    method PublisherStarted (line 453) | [LoggerMessage(EventId = EventClass + 3, Level = LogLevel.Information,
    method PublisherStopped (line 457) | [LoggerMessage(EventId = EventClass + 4, Level = LogLevel.Information,

FILE: src/Azure.IIoT.OpcUa.Publisher.Module/tests/Fixtures/PublisherModule.cs
  type PublisherTelemetry (line 61) | public sealed record class PublisherTelemetry(string DeviceId, string Mo...
  class PublisherModule (line 68) | public sealed class PublisherModule : WebApplicationFactory<ModuleStartu...
    method PublisherModule (line 106) | public PublisherModule(IMessageSink messageSink, IEnumerable<DeviceTwi...
    method CreateHostBuilder (line 229) | protected override IHostBuilder CreateHostBuilder()
    method ConfigureWebHost (line 235) | protected override void ConfigureWebHost(IWebHostBuilder builder)
    method CreateHost (line 250) | protected override IHost CreateHost(IHostBuilder builder)
    method CreateClient (line 260) | public HttpClient CreateClient(string name)
    method ConfigureClient (line 269) | protected override void ConfigureClient(HttpClient client)
    method Resolve (line 283) | public T Resolve<T>()
    method ReadTelemetryAsync (line 294) | public IAsyncEnumerable<PublisherTelemetry> ReadTelemetryAsync(Cancell...
    method DisposeAsync (line 311) | public override async ValueTask DisposeAsync()
    class IoTEdgeMockIdentity (line 337) | internal sealed class IoTEdgeMockIdentity : IIoTEdgeDeviceIdentity
    method ConfigureContainer (line 346) | public void ConfigureContainer(ContainerBuilder builder)
    method CreateClientScope (line 389) | public IContainer CreateClientScope(ITestOutputHelper output,
    method CreateIoTHubSdkClientContainer (line 440) | private IContainer CreateIoTHubSdkClientContainer(IMessageSink message...
    class ExitOverride (line 529) | internal sealed class ExitOverride : IProcessControl
      method Shutdown (line 531) | public bool Shutdown(bool failFast)
    class IoTHubTelemetryHandler (line 540) | internal sealed class IoTHubTelemetryHandler : IIoTHubTelemetryHandler
      method IoTHubTelemetryHandler (line 544) | internal IoTHubTelemetryHandler()
      method HandleAsync (line 549) | public ValueTask HandleAsync(string deviceId, string moduleId, strin...
    class EventConsumer (line 564) | internal sealed class EventConsumer : IEventConsumer
      method EventConsumer (line 568) | internal EventConsumer()
      method HandleAsync (line 573) | public async Task HandleAsync(string topic, ReadOnlySequence<byte> d...
  class ModuleStartup (line 597) | public class ModuleStartup : Startup
    method ModuleStartup (line 599) | public
Copy disabled (too large) Download .json
Condensed preview — 1761 files, each showing path, character count, and a content snippet. Download the .json file for the full structured content (26,817K chars).
[
  {
    "path": ".editorconfig",
    "chars": 27225,
    "preview": "# Remove the line below if you want to inherit .editorconfig settings from higher directories\nroot = true\n\n# JSON files,"
  },
  {
    "path": ".gdnbaselines",
    "chars": 1196,
    "preview": "{\n  \"hydrated\": false,\n  \"properties\": {\n    \"helpUri\": \"https://eng.ms/docs/microsoft-security/security/azure-security/"
  },
  {
    "path": ".gitattributes",
    "chars": 858,
    "preview": "# Default behavior: if Git thinks a file is text (as opposed to binary), it\n# will normalize line endings to LF in the r"
  },
  {
    "path": ".github/CODEOWNERS",
    "chars": 29,
    "preview": "* @Azure/azure-industrial-iot"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/bug_report.md",
    "chars": 834,
    "preview": "---\nname: Bug report\nabout: Create a report to help us improve\ntitle: ''\nlabels: ''\nassignees: ''\n\n---\n\n**Describe the b"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/feature_request.md",
    "chars": 595,
    "preview": "---\nname: Feature request\nabout: Suggest an idea for this project\ntitle: ''\nlabels: ''\nassignees: ''\n\n---\n\n**Is your fea"
  },
  {
    "path": ".github/dependabot.yml",
    "chars": 571,
    "preview": "# To get started with Dependabot version updates, you'll need to specify which\n# package ecosystems to update and where "
  },
  {
    "path": ".github/workflows/codeql.yml",
    "chars": 1309,
    "preview": "name: \"CodeQL\"\n\non:\n  push:\n    branches: [ \"latest\", \"main\", \"release/*\" ]\n  pull_request:\n    branches: [ \"latest\", \"m"
  },
  {
    "path": ".github/workflows/dotnet.yml",
    "chars": 666,
    "preview": "name: Build Solutions\non:\n  push:\n    branches: [ \"latest\", \"main\" ]\n  pull_request:\n    branches: [ \"latest\", \"main\" ]\n"
  },
  {
    "path": ".github/workflows/test.yml",
    "chars": 638,
    "preview": "name: Build and Test\non:\n  push:\n    branches: [ \"latest\", \"main\" ]\n  pull_request:\n    branches: [ \"latest\", \"main\" ]\nj"
  },
  {
    "path": ".gitignore",
    "chars": 537,
    "preview": "/**/*.user\n/**/*.cache\n/**/*.user.json\n/**/*.nupkg\n/**/obj/**\n/**/.vs\n/**/bin/**\n/**/pki/**\n/**/csx/**\n/**/ecf/**\n/**/*."
  },
  {
    "path": ".mcp.json",
    "chars": 778,
    "preview": "{\n    \"inputs\": [\n        {\n            \"id\": \"github_pat\",\n            \"description\": \"GitHub personal access token\",\n "
  },
  {
    "path": ".sscignore",
    "chars": 33,
    "preview": "{ \"cfs\": [\"CFS0001\", \"CFS0013\"] }"
  },
  {
    "path": "CODEOWNERS",
    "chars": 169,
    "preview": "# Always ensure to include industrial-iot-pr for every item that follows.\n* @Azure/industrial-iot-pr\n\n# Only exception i"
  },
  {
    "path": "Industrial-IoT.slnx",
    "chars": 1647,
    "preview": "<Solution>\n  <Configurations>\n    <Platform Name=\"Any CPU\" />\n    <Platform Name=\"x64\" />\n  </Configurations>\n  <Folder "
  },
  {
    "path": "LICENSE",
    "chars": 1183,
    "preview": "    MIT License\r\n\r\n    Copyright (c) Microsoft Corporation. All rights reserved.\r\n\r\n    Permission is hereby granted, fr"
  },
  {
    "path": "NOTICE",
    "chars": 1802076,
    "preview": "NOTICES AND INFORMATION\nDo Not Translate or Localize\n\nThis software incorporates material from third parties.\nMicrosoft "
  },
  {
    "path": "Nuget.Config",
    "chars": 250,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<configuration>\n  <packageSources>\n    <clear />\n    <add key=\"Industrial-IoT\" va"
  },
  {
    "path": "SECURITY.md",
    "chars": 2757,
    "preview": "<!-- BEGIN MICROSOFT SECURITY.MD V0.0.7 BLOCK -->\n\n## Security\n\nMicrosoft takes the security of our software products an"
  },
  {
    "path": "azure-pipelines.yml",
    "chars": 3973,
    "preview": "pr:\n  autoCancel: 'true'\n  drafts: 'true'\n  branches:\n    include:\n    - '*'\ntrigger:\n  batch: 'true'\n  branches:\n    in"
  },
  {
    "path": "common.props",
    "chars": 3000,
    "preview": "<Project>\n  <PropertyGroup>\n    <Product>Azure Industrial IoT Platform</Product>\n    <RepositoryUrl>https://github.com/A"
  },
  {
    "path": "contributing.md",
    "chars": 2260,
    "preview": "We'll be glad to accept patches and contributions to the project. There are just few guidelines we ask to follow.\n\nContr"
  },
  {
    "path": "deploy/azuredeploy.json",
    "chars": 17824,
    "preview": "{\n    \"$schema\": \"https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#\",\n    \"contentVersion\""
  },
  {
    "path": "deploy/azuredeploy.parameters.json",
    "chars": 3155,
    "preview": "{\n    \"$schema\": \"https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#\",\n    \"contentVersio"
  },
  {
    "path": "deploy/deploy.ps1",
    "chars": 7085,
    "preview": "<#\n    .SYNOPSIS\n        Deploys Azure services required for the Industrial IoT solution.\n    .DESCRIPTION\n        Depl"
  },
  {
    "path": "deploy/docker/build.cmd",
    "chars": 399,
    "preview": "@echo off\nsetlocal\n\nset CMDLINE=--self-contained false /t:PublishContainer -r linux-x64\nset PROJECT=../../src/Azure.IIoT"
  },
  {
    "path": "deploy/docker/dapr/pubsub.yaml",
    "chars": 170,
    "preview": "apiVersion: dapr.io/v1alpha1\nkind: Component\nmetadata:\n  name: redis-pubsub\nspec:\n  type: pubsub.redis\n  version: v1\n  m"
  },
  {
    "path": "deploy/docker/dapr/statestore.yaml",
    "chars": 250,
    "preview": "apiVersion: dapr.io/v1alpha1\nkind: Component\nmetadata:\n  name: statestore\nspec:\n  type: state.redis\n  version: v1\n  meta"
  },
  {
    "path": "deploy/docker/docker-compose.yaml",
    "chars": 1402,
    "preview": "services:\n  ############################\n  # OPC PLC Simulation\n  ############################\n  opcplc:\n    container_n"
  },
  {
    "path": "deploy/docker/gcdump.ps1",
    "chars": 865,
    "preview": "<#\n .SYNOPSIS\n    Create gc dump files periodically\n\n .PARAMETER WaitSeconds\n    The number of seconds to wait in betwee"
  },
  {
    "path": "deploy/docker/mosquitto/mosquitto.conf",
    "chars": 1030,
    "preview": "# from https://mosquitto.org/man/mosquitto-conf-5.html\n\nallow_anonymous true\nlistener 1883\npersistence false\n#persistenc"
  },
  {
    "path": "deploy/docker/mosquitto/settings.json",
    "chars": 528,
    "preview": "{\n  \"ConnectionManager_connections\": {\n    \"mosquitto\": {\n      \"configVersion\": 1,\n      \"certValidation\": false,\n     "
  },
  {
    "path": "deploy/docker/opentelemetry/collector.yaml",
    "chars": 580,
    "preview": "receivers:\n  otlp:\n    protocols:\n      grpc:\n      http:\nexporters:\n  prometheus:\n    endpoint: 0.0.0.0:8889\n  otlp:\n  "
  },
  {
    "path": "deploy/docker/opentelemetry/dashboards/opc-publisher.json",
    "chars": 13644,
    "preview": "{\n  \"annotations\": {\n    \"list\": [\n      {\n        \"builtIn\": 1,\n        \"datasource\": \"-- Grafana --\",\n        \"enable\""
  },
  {
    "path": "deploy/docker/opentelemetry/dashboards.yaml",
    "chars": 139,
    "preview": "apiVersion: 1\nproviders:\n  - name: dashboards\n    type: file\n    options:\n      path: /etc/dashboards\n      foldersFromF"
  },
  {
    "path": "deploy/docker/opentelemetry/datasources.yaml",
    "chars": 784,
    "preview": "apiVersion: 1\ndatasources:\n  - name: Prometheus\n    type: prometheus\n    access: proxy\n    orgId: 1\n    uid: PBFA97CFB59"
  },
  {
    "path": "deploy/docker/opentelemetry/prometheus.yml",
    "chars": 524,
    "preview": "global:\n  scrape_interval:     5s # Set the scrape interval to every 5 seconds. Default is every 1 minute.\n  evaluation"
  },
  {
    "path": "deploy/docker/opentelemetry/tempo.yaml",
    "chars": 191,
    "preview": "server:\n  http_listen_port: 3200\ndistributor:\n  receivers:\n    otlp:\n      protocols:\n        http:\n        grpc:\nstorag"
  },
  {
    "path": "deploy/docker/publisher_secrets.txt",
    "chars": 13,
    "preview": "ApiKey=myKey1"
  },
  {
    "path": "deploy/docker/readme.md",
    "chars": 4377,
    "preview": "# Deploy in docker compose <!-- omit in toc -->\n\n> IMPORTANT: Docker compose based hosting is experimental and only supp"
  },
  {
    "path": "deploy/docker/with-dapr.yaml",
    "chars": 1319,
    "preview": "services:\n  ############################\n  # OPC Publisher\n  ############################\n  publisher:\n    environment:\n"
  },
  {
    "path": "deploy/docker/with-limits.yaml",
    "chars": 704,
    "preview": "services:\n  ############################\n  # OPC PLC Simulation\n  ############################\n  opcplc:\n    command: [\n"
  },
  {
    "path": "deploy/docker/with-localimage.yaml",
    "chars": 85,
    "preview": "services:\n  publisher:\n    image: iotedge/opc-publisher:${OPC_PUBLISHER_TAG:-latest}\n"
  },
  {
    "path": "deploy/docker/with-localvolume.yaml",
    "chars": 262,
    "preview": "services:\n  publisher:\n    environment:\n      PublishedNodesFile: /shared/pn.json\n      UseFileChangePolling: True\n    v"
  },
  {
    "path": "deploy/docker/with-monitor.yaml",
    "chars": 943,
    "preview": "services:\n  ############################\n  # OPC PLC Simulation\n  ############################\n  # opcplc:\n  #  environm"
  },
  {
    "path": "deploy/docker/with-mosquitto.yaml",
    "chars": 1871,
    "preview": "services:\n  ############################\n  # OPC Publisher\n  ############################\n  publisher:\n    environment:\n"
  },
  {
    "path": "deploy/docker/with-opentelemetry.yaml",
    "chars": 1998,
    "preview": "services:\n  ############################\n  # OPC Publisher\n  ############################\n  publisher:\n    environment:\n"
  },
  {
    "path": "deploy/docker/with-pcap-capture.yaml",
    "chars": 677,
    "preview": "services:\n  ############################\n  # OPC PLC Simulation\n  ############################\n  opcplc:\n    command: [\n"
  },
  {
    "path": "deploy/iotedge/.gitignore",
    "chars": 19,
    "preview": "eflow-setup/*\n*.log"
  },
  {
    "path": "deploy/iotedge/arm/TLSSettings.ps1",
    "chars": 23047,
    "preview": "#***************************************************************************************************************\n# This"
  },
  {
    "path": "deploy/iotedge/arm/default.yml",
    "chars": 548,
    "preview": "version: '3'\nservices:\n  opcserver0:\n    image: mcr.microsoft.com/iotedge/opc-plc:latest\n    restart: always\n    command"
  },
  {
    "path": "deploy/iotedge/arm/dps-enroll.ps1",
    "chars": 3108,
    "preview": "<#\n .SYNOPSIS\n    Creates a new enrollment in dps\n\n .DESCRIPTION\n    Creates a new random enrollment in dps and returns "
  },
  {
    "path": "deploy/iotedge/arm/dsc-install.ps1",
    "chars": 2013,
    "preview": "Configuration InstallWindowsFeatures {\n\n    Import-DscResource -ModuleName PsDesiredStateConfiguration\n\n    Node \"localh"
  },
  {
    "path": "deploy/iotedge/arm/edge-setup.ps1",
    "chars": 2562,
    "preview": "<#\n .SYNOPSIS\n    Configure IoT edge\n\n .DESCRIPTION\n    Configure IoT edge on linux vm to use DPS.\n\n .PARAMETER dpsConnS"
  },
  {
    "path": "deploy/iotedge/arm/edge-setup.sh",
    "chars": 1354,
    "preview": "#!/bin/bash -e\n\nwhile [ \"$#\" -gt 0 ]; do\n    case \"$1\" in\n        --dpsConnString)                  dpsConnString=\"$2\" ;"
  },
  {
    "path": "deploy/iotedge/arm/eflow-setup.ps1",
    "chars": 3745,
    "preview": "\n<#\n .SYNOPSIS\n    Setup Eflow IoT edge\n\n .DESCRIPTION\n    Setup Eflow IoT edge on windows vm to use DPS using DSC.\n\n .P"
  },
  {
    "path": "deploy/iotedge/arm/simulation.sh",
    "chars": 2830,
    "preview": "#!/bin/bash -ex\n\nADMIN=$USER\nIMAGES_NAMESPACE=\nIMAGES_TAG=\nDOCKER_SERVER=\nDOCKER_USER=\nDOCKER_PASSWORD=\nDOCKER_COMPOSE_F"
  },
  {
    "path": "deploy/iotedge/arm/testing.yml",
    "chars": 1983,
    "preview": "version: '3'\nservices:\n  opcserver0:\n    image: ${REPOSITORY:-mcr.microsoft.com}/iot/opc-ua-test-server:${VERSION:-lates"
  },
  {
    "path": "deploy/iotedge/azuredeploy.json",
    "chars": 24936,
    "preview": "{\n    \"$schema\": \"https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#\",\n    \"contentVersion\""
  },
  {
    "path": "deploy/iotedge/azuredeploy.parameters.json",
    "chars": 950,
    "preview": "{\n    \"$schema\": \"https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#\",\n    \"contentVersio"
  },
  {
    "path": "deploy/iotedge/edgehubdev.cmd",
    "chars": 4302,
    "preview": "@REM Copyright (c) Microsoft. All rights reserved.\n@REM Licensed under the MIT license. See LICENSE file in the project "
  },
  {
    "path": "deploy/iotedge/edgehubdev.json",
    "chars": 3458,
    "preview": "{\n    \"modulesContent\": {\n        \"$edgeAgent\": {\n            \"properties.desired\": {\n                \"schemaVersion\": \""
  },
  {
    "path": "deploy/iotedge/eflow-setup.json",
    "chars": 3046,
    "preview": "{\n    \"$edgeAgent\": {\n        \"properties.desired\": {\n            \"schemaVersion\": \"1.1\",\n            \"runtime\": {\n     "
  },
  {
    "path": "deploy/iotedge/eflow-setup.ps1",
    "chars": 12196,
    "preview": "<#\n   .SYNOPSIS\n      Setup Eflow IoT edge (must run as admin)\n   .DESCRIPTION\n      Setup Eflow IoT edge on the device."
  },
  {
    "path": "deploy/iotedge/readme.md",
    "chars": 4037,
    "preview": "# IoT Edge deployment scripts <!-- omit in toc -->\n\n> DO NOT USE FOR PRODUCTION SYSTEMS. The scripts here are intended f"
  },
  {
    "path": "deploy/kubernetes/cluster-setup.ps1",
    "chars": 43605,
    "preview": "\n<#\n    .SYNOPSIS\n        Setup local AIO cluster and connect to Arc (must run as admin)\n    .DESCRIPTION\n        Setup "
  },
  {
    "path": "deploy/kubernetes/common/cluster-utils.psm1",
    "chars": 1981,
    "preview": "# Common utilities\n\n<#\n    .SYNOPSIS\n        Imports a container image into a Kubernetes cluster.\n    .DESCRIPTION\n     "
  },
  {
    "path": "deploy/kubernetes/debug/Dockerfile",
    "chars": 1330,
    "preview": "FROM mcr.microsoft.com/dotnet/runtime-deps\n#FROM mcr.microsoft.com/dotnet/sdk:latest AS base\nUSER root\nWORKDIR /app\n\n###"
  },
  {
    "path": "deploy/kubernetes/debug/build.ps1",
    "chars": 1874,
    "preview": "<#\n    .SYNOPSIS\n        Build a debug version of OPC Publisher and make it available\n        in the local AIO cluster.\n"
  },
  {
    "path": "deploy/kubernetes/debug/debug.json",
    "chars": 140,
    "preview": "{\n  \"securityContext\": {\n    \"runAsNonRoot\": false,\n    \"runAsUser\": 0,\n    \"runAsGroup\": 0,\n    \"fsGroup\": 0,\n    \"priv"
  },
  {
    "path": "deploy/kubernetes/debug/debug.ps1",
    "chars": 12366,
    "preview": "<#\n    .SYNOPSIS\n        Make a pod debuggable by attaching a debugger container to it.\n    .DESCRIPTION\n        This sc"
  },
  {
    "path": "deploy/kubernetes/debug/entrypoint.sh",
    "chars": 2401,
    "preview": "#!/bin/bash\n\n#\n# Start ssh server to accept incoming debugger connections on port 22.\n#\necho \"Starting SSH server...\"\n/u"
  },
  {
    "path": "deploy/kubernetes/debug/forward-mq.ps1",
    "chars": 392,
    "preview": "<#\n    This script forwards the MQTT port of the aio-broker-insecure\n    service in the specified namespace.\n    It is i"
  },
  {
    "path": "deploy/kubernetes/deploy.ps1",
    "chars": 16105,
    "preview": "\n<#\n    .SYNOPSIS\n        Setup local AIO cluster and connect to Arc (must run as admin)\n    .DESCRIPTION\n        Setup "
  },
  {
    "path": "deploy/kubernetes/iotops/adr-tool.ps1",
    "chars": 16106,
    "preview": "<#\n    .SYNOPSIS\n        Enables onboarding and cleanup of namespace resources in\n        Azure Device Registry.\n    .DE"
  },
  {
    "path": "deploy/kubernetes/iotops/enable-preview.ps1",
    "chars": 664,
    "preview": "\n<#\nThis script enables the Azure IoT Operations Private Preview feature and installs \nthe necessary extension.\nIt requi"
  },
  {
    "path": "deploy/kubernetes/iotops/opc-publisher-connector-metadata.json",
    "chars": 81889,
    "preview": "{\n    \"$schema\": \"https://raw.githubusercontent.com/Azure/iot-operations-sdks/refs/heads/main/doc/akri_connector/connect"
  },
  {
    "path": "deploy/kubernetes/readme.md",
    "chars": 8391,
    "preview": "# Azure IoT Operations Development Environment Setup\n\nThis guide explains how to set up a local development environment "
  },
  {
    "path": "deploy/kubernetes/simulation/deploy.ps1",
    "chars": 12327,
    "preview": "<#\n    .SYNOPSIS\n        Deploys OPC UA simulation servers in a Kubernetes cluster\n        and registers them with Azure"
  },
  {
    "path": "deploy/kubernetes/simulation/helm/opc-plc/Chart.yaml",
    "chars": 169,
    "preview": "apiVersion: v2\nname: microsoft-opc-plc\ndescription: A Helm chart for Kubernetes that deploys the OPC PLC.\ntype: applicat"
  },
  {
    "path": "deploy/kubernetes/simulation/helm/opc-plc/templates/_helpers.tpl",
    "chars": 1063,
    "preview": "{{/*\nExpand the name of the chart.\n*/}}\n{{- define \"simulation.name\" -}}\n{{- default .Chart.Name .Values.nameOverride | "
  },
  {
    "path": "deploy/kubernetes/simulation/helm/opc-plc/templates/opc-plc_configMap.yaml",
    "chars": 526,
    "preview": "apiVersion: v1\nkind: ConfigMap\nmetadata:\n  name: {{ include \"simulation.configmap\" . }}\n  namespace: {{ .Release.Namespa"
  },
  {
    "path": "deploy/kubernetes/simulation/helm/opc-plc/templates/opc-plc_default_application_certificate.yaml",
    "chars": 1687,
    "preview": "{{- $simulationLabels := include \"simulation.labels\" . -}}\n{{- $releaseName := .Release.Name -}}\n\n{{ range $i := until ("
  },
  {
    "path": "deploy/kubernetes/simulation/helm/opc-plc/templates/opc-plc_deployment.yaml",
    "chars": 4198,
    "preview": "{{- $simulationLabels := include \"simulation.labels\" . -}}\n{{- $simulationSelectorLabels := include \"simulation.selector"
  },
  {
    "path": "deploy/kubernetes/simulation/helm/opc-plc/templates/opc-plc_service.yaml",
    "chars": 714,
    "preview": "{{- $simulationLabels := include \"simulation.labels\" . -}}\n{{- $simulationSelectorLabels := include \"simulation.selector"
  },
  {
    "path": "deploy/kubernetes/simulation/helm/opc-plc/values.yaml",
    "chars": 1325,
    "preview": "image: mcr.microsoft.com/iotedge/opc-plc\ntag: latest\npullPolicy: Always\npullSecrets: []\n# Controls number of OPC PLCs th"
  },
  {
    "path": "deploy/kubernetes/simulation/helm/opc-test/Chart.yaml",
    "chars": 188,
    "preview": "apiVersion: v2\nname: microsoft-opc-test\ndescription: A Helm chart for Kubernetes that deploys the OPC UA test servers.\nt"
  },
  {
    "path": "deploy/kubernetes/simulation/helm/opc-test/templates/_helpers.tpl",
    "chars": 872,
    "preview": "{{/*\nExpand the name of the chart.\n*/}}\n{{- define \"simulation.name\" -}}\n{{- default .Chart.Name .Values.nameOverride | "
  },
  {
    "path": "deploy/kubernetes/simulation/helm/opc-test/templates/opc-test_default_application_certificate.yaml",
    "chars": 1698,
    "preview": "{{- $simulationLabels := include \"simulation.labels\" . -}}\n{{- $releaseName := .Release.Name -}}\n\n{{ range $i := until ("
  },
  {
    "path": "deploy/kubernetes/simulation/helm/opc-test/templates/opc-test_deployment.yaml",
    "chars": 2932,
    "preview": "{{- $simulationLabels := include \"simulation.labels\" . -}}\n{{- $simulationSelectorLabels := include \"simulation.selector"
  },
  {
    "path": "deploy/kubernetes/simulation/helm/opc-test/templates/opc-test_service.yaml",
    "chars": 717,
    "preview": "{{- $simulationLabels := include \"simulation.labels\" . -}}\n{{- $simulationSelectorLabels := include \"simulation.selector"
  },
  {
    "path": "deploy/kubernetes/simulation/helm/opc-test/values.yaml",
    "chars": 797,
    "preview": "image: mcr.microsoft.com/iot/opc-ua-test-server\ntag: 2.9.15\npullPolicy: Always\npullSecrets: []\n# Controls number of OPC "
  },
  {
    "path": "deploy/kubernetes/simulation/helm/opc-umati/templates/umati_deployment.yaml",
    "chars": 2587,
    "preview": "{{- $simulationLabels := include \"simulation.labels\" . -}}\n{{- $simulationSelectorLabels := include \"simulation.selector"
  },
  {
    "path": "deploy/kubernetes/simulation/helm/umati/Chart.yaml",
    "chars": 183,
    "preview": "apiVersion: v2\nname: umati-sample-server\ndescription: A Helm chart for Kubernetes that deploys the Umati sample server.\n"
  },
  {
    "path": "deploy/kubernetes/simulation/helm/umati/templates/_helpers.tpl",
    "chars": 872,
    "preview": "{{/*\nExpand the name of the chart.\n*/}}\n{{- define \"simulation.name\" -}}\n{{- default .Chart.Name .Values.nameOverride | "
  },
  {
    "path": "deploy/kubernetes/simulation/helm/umati/templates/umati_configMap.yaml",
    "chars": 793,
    "preview": "{{- $simulationLabels := include \"simulation.labels\" . -}}\n{{- $releaseName := .Release.Name -}}\n{{ range $i := until (."
  },
  {
    "path": "deploy/kubernetes/simulation/helm/umati/templates/umati_default_application_certificate.yaml",
    "chars": 1718,
    "preview": "{{- $simulationLabels := include \"simulation.labels\" . -}}\n{{- $releaseName := .Release.Name -}}\n\n{{ range $i := until ("
  },
  {
    "path": "deploy/kubernetes/simulation/helm/umati/templates/umati_deployment.yaml",
    "chars": 2623,
    "preview": "{{- $simulationLabels := include \"simulation.labels\" . -}}\n{{- $simulationSelectorLabels := include \"simulation.selector"
  },
  {
    "path": "deploy/kubernetes/simulation/helm/umati/templates/umati_service.yaml",
    "chars": 708,
    "preview": "{{- $simulationLabels := include \"simulation.labels\" . -}}\n{{- $simulationSelectorLabels := include \"simulation.selector"
  },
  {
    "path": "deploy/kubernetes/simulation/helm/umati/values.yaml",
    "chars": 779,
    "preview": "image: ghcr.io/umati/sample-server\ntag: develop\npullPolicy: Always\npullSecrets: []\n# Controls number of OPC PLCs that sh"
  },
  {
    "path": "deploy/readme.md",
    "chars": 499,
    "preview": "# Deploy IoT services\n\n[![Deploy to Azure](https://aka.ms/deploytoazurebutton)](https://portal.azure.com/#create/Microso"
  },
  {
    "path": "docs/_config.yml",
    "chars": 45,
    "preview": "remote_theme: MicrosoftLearning/Jekyll-Theme\n"
  },
  {
    "path": "docs/opc-publisher/api.md",
    "chars": 122596,
    "preview": "\n<a name=\"paths\"></a>\n## Resources\n\n<a name=\"certificates_resource\"></a>\n### Certificates\nThis section lists the certifi"
  },
  {
    "path": "docs/opc-publisher/commandline.md",
    "chars": 77567,
    "preview": "# OPC Publisher configuration via command line options and environment variables\n\n[Home](./readme.md)\n\n> This documentat"
  },
  {
    "path": "docs/opc-publisher/definitions.md",
    "chars": 140735,
    "preview": "\n<a name=\"definitions\"></a>\n## Definitions\n\n<a name=\"additionaldata\"></a>\n### AdditionalData\nFlags that are set by the h"
  },
  {
    "path": "docs/opc-publisher/deployment.json",
    "chars": 2149,
    "preview": "{\n    \"modulesContent\": {\n      \"$edgeAgent\": {\n        \"properties.desired\": {\n          \"schemaVersion\": \"1.1\",\n      "
  },
  {
    "path": "docs/opc-publisher/directmethods.md",
    "chars": 17236,
    "preview": "# Configuration API <!-- omit in toc -->\n\n[Home](./readme.md)\n\nFor large-scale deployments, automating the configuration"
  },
  {
    "path": "docs/opc-publisher/features.md",
    "chars": 10012,
    "preview": "# Features\n\n[Home](./readme.md)\n\nThe following table shows the supported features of OPC Publisher and planned feature a"
  },
  {
    "path": "docs/opc-publisher/intfilesamples.md",
    "chars": 8086,
    "preview": "# Init file samples <!-- omit in toc -->\n\n[Home](./readme.md#configuration-via-init-file)\n\nYou find here examples that l"
  },
  {
    "path": "docs/opc-publisher/messageformats.md",
    "chars": 47092,
    "preview": "# Telemetry Message Formats <!-- omit in toc -->\n\n[Home](./readme.md)\n\n> This documentation applies to version 2.9\n\n## T"
  },
  {
    "path": "docs/opc-publisher/migrationpath.md",
    "chars": 28616,
    "preview": "# Migrate from previous versions of OPC Publisher to 2.9 and higher  <!-- omit in toc -->\n\n[Home](./readme.md)\n\n## Table"
  },
  {
    "path": "docs/opc-publisher/observability.md",
    "chars": 22929,
    "preview": "# Observability <!-- omit in toc -->\n\n[Home](./readme.md)\n\n## Table Of Contents <!-- omit in toc -->\n\n- [Logging](#loggi"
  },
  {
    "path": "docs/opc-publisher/openapi.json",
    "chars": 378018,
    "preview": "{\n  \"swagger\": \"2.0\",\n  \"info\": {\n    \"title\": \"OpcPublisher\",\n    \"description\": \"\",\n    \"contact\": {\n      \"url\": \"htt"
  },
  {
    "path": "docs/opc-publisher/publishednodes_2.5.json",
    "chars": 6374,
    "preview": "// ------------------------------------------------------------\n//  Copyright (c) Microsoft Corporation.  All rights res"
  },
  {
    "path": "docs/opc-publisher/publishednodes_2.8.json",
    "chars": 8310,
    "preview": "// ------------------------------------------------------------\n//  Copyright (c) Microsoft Corporation.  All rights res"
  },
  {
    "path": "docs/opc-publisher/readme.md",
    "chars": 119738,
    "preview": "# Microsoft OPC Publisher <!-- omit in toc -->\n\n[Home](../readme.md)\n\nOPC Publisher is a module that runs on [Azure IoT "
  },
  {
    "path": "docs/opc-publisher/security.md",
    "chars": 142,
    "preview": "\n<a name=\"securityscheme\"></a>\n## Security\n\n<a name=\"oauth2\"></a>\n### oauth2\nImplicit oauth2 token flow.\n\n*Type* : oauth"
  },
  {
    "path": "docs/opc-publisher/transports.md",
    "chars": 12729,
    "preview": "# OPC Publisher Transports <!-- omit in toc -->\n\n[Home](./readme.md)\n\nOPC Publisher translates these northbound transpor"
  },
  {
    "path": "docs/opc-publisher/troubleshooting.md",
    "chars": 19916,
    "preview": "# Troubleshooting OPC Publisher <!-- omit in toc -->\n\n[Home](./readme.md)\n\nIn this document you find information about\n\n"
  },
  {
    "path": "docs/readme.md",
    "chars": 4912,
    "preview": "# Azure Industrial IoT <!-- omit in toc -->\n\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](http"
  },
  {
    "path": "docs/release-announcement.md",
    "chars": 47877,
    "preview": "# Release announcement <!-- omit in toc -->\n\n## Table Of Contents <!-- omit in toc -->\n\n- [Azure Industrial IoT OPC Publ"
  },
  {
    "path": "e2e-tests/.gitignore",
    "chars": 4,
    "preview": ".env"
  },
  {
    "path": "e2e-tests/Directory.Build.props",
    "chars": 197,
    "preview": "<Project>\n  <Import Project=\"$([MSBuild]::GetPathOfFileAbove(common.props))\" Condition=\"'$([MSBuild]::GetDirectoryNameO"
  },
  {
    "path": "e2e-tests/IIoTPlatform-E2E-Tests.slnx",
    "chars": 622,
    "preview": "<Solution>\n  <Configurations>\n    <Platform Name=\"Any CPU\" />\n    <Platform Name=\"x64\" />\n  </Configurations>\n  <Folder "
  },
  {
    "path": "e2e-tests/OpcPublisher-E2E-Tests/Config/IContainerRegistryConfig.cs",
    "chars": 1030,
    "preview": "// ------------------------------------------------------------\n//  Copyright (c) Microsoft Corporation.  All rights re"
  },
  {
    "path": "e2e-tests/OpcPublisher-E2E-Tests/Config/IDeviceConfig.cs",
    "chars": 568,
    "preview": "// ------------------------------------------------------------\n//  Copyright (c) Microsoft Corporation.  All rights re"
  },
  {
    "path": "e2e-tests/OpcPublisher-E2E-Tests/Config/IIoTEdgeConfig.cs",
    "chars": 563,
    "preview": "// ------------------------------------------------------------\n//  Copyright (c) Microsoft Corporation.  All rights re"
  },
  {
    "path": "e2e-tests/OpcPublisher-E2E-Tests/Config/IIoTHubConfig.cs",
    "chars": 766,
    "preview": "// ------------------------------------------------------------\n//  Copyright (c) Microsoft Corporation.  All rights re"
  },
  {
    "path": "e2e-tests/OpcPublisher-E2E-Tests/Config/IOpcPlcConfig.cs",
    "chars": 1008,
    "preview": "// ------------------------------------------------------------\n//  Copyright (c) Microsoft Corporation.  All rights re"
  },
  {
    "path": "e2e-tests/OpcPublisher-E2E-Tests/Config/ISshConfig.cs",
    "chars": 896,
    "preview": "// ------------------------------------------------------------\n//  Copyright (c) Microsoft Corporation.  All rights re"
  },
  {
    "path": "e2e-tests/OpcPublisher-E2E-Tests/GlobalSuppressions.cs",
    "chars": 418,
    "preview": "// This file is used by Code Analysis to maintain SuppressMessage\n// attributes that are applied to this project.\n// Pr"
  },
  {
    "path": "e2e-tests/OpcPublisher-E2E-Tests/MessagingMode.cs",
    "chars": 640,
    "preview": "// ------------------------------------------------------------\n//  Copyright (c) Microsoft Corporation.  All rights re"
  },
  {
    "path": "e2e-tests/OpcPublisher-E2E-Tests/OpcPublisher-AE-E2E-Tests.csproj",
    "chars": 2494,
    "preview": "<Project Sdk=\"Microsoft.NET.Sdk\">\n  <PropertyGroup>\n    <TargetFramework>net9.0</TargetFramework>\n    <RootNamespace>Op"
  },
  {
    "path": "e2e-tests/OpcPublisher-E2E-Tests/Properties/AssemblyInfo.cs",
    "chars": 888,
    "preview": "using System.Runtime.InteropServices;\nusing Xunit;\n\n// In SDK-style projects such as this one, several assembly attribut"
  },
  {
    "path": "e2e-tests/OpcPublisher-E2E-Tests/PublishedNodesConfigurations.cs",
    "chars": 4661,
    "preview": "// ------------------------------------------------------------\n//  Copyright (c) Microsoft Corporation.  All rights re"
  },
  {
    "path": "e2e-tests/OpcPublisher-E2E-Tests/RegistryHelper.cs",
    "chars": 17664,
    "preview": "// ------------------------------------------------------------\n//  Copyright (c) Microsoft Corporation.  All rights res"
  },
  {
    "path": "e2e-tests/OpcPublisher-E2E-Tests/Standalone/C_EventNamespaceTestTheory.cs",
    "chars": 4637,
    "preview": "// ------------------------------------------------------------\n//  Copyright (c) Microsoft Corporation.  All rights re"
  },
  {
    "path": "e2e-tests/OpcPublisher-E2E-Tests/Standalone/C_EventsStressTestTheory.cs",
    "chars": 5497,
    "preview": "// ------------------------------------------------------------\n//  Copyright (c) Microsoft Corporation.  All rights re"
  },
  {
    "path": "e2e-tests/OpcPublisher-E2E-Tests/Standalone/C_PendingConditionsTestTheory.cs",
    "chars": 2202,
    "preview": "// ------------------------------------------------------------\n//  Copyright (c) Microsoft Corporation.  All rights re"
  },
  {
    "path": "e2e-tests/OpcPublisher-E2E-Tests/Standalone/C_PublishConditionsTestTheory.cs",
    "chars": 9744,
    "preview": "// ------------------------------------------------------------\n//  Copyright (c) Microsoft Corporation.  All rights re"
  },
  {
    "path": "e2e-tests/OpcPublisher-E2E-Tests/Standalone/C_WhereClauseTestTheory.cs",
    "chars": 6444,
    "preview": "// ------------------------------------------------------------\n//  Copyright (c) Microsoft Corporation.  All rights re"
  },
  {
    "path": "e2e-tests/OpcPublisher-E2E-Tests/Standalone/D_AlarmDirectMethodTestTheory.cs",
    "chars": 2235,
    "preview": "// ------------------------------------------------------------\n//  Copyright (c) Microsoft Corporation.  All rights re"
  },
  {
    "path": "e2e-tests/OpcPublisher-E2E-Tests/Standalone/D_EventDirectMethodTestTheory.cs",
    "chars": 4687,
    "preview": "// ------------------------------------------------------------\n//  Copyright (c) Microsoft Corporation.  All rights re"
  },
  {
    "path": "e2e-tests/OpcPublisher-E2E-Tests/Standalone/DynamicAciTestBase.cs",
    "chars": 10216,
    "preview": "// ------------------------------------------------------------\n//  Copyright (c) Microsoft Corporation.  All rights re"
  },
  {
    "path": "e2e-tests/OpcPublisher-E2E-Tests/TestConstants.cs",
    "chars": 9419,
    "preview": "// ------------------------------------------------------------\n//  Copyright (c) Microsoft Corporation.  All rights re"
  },
  {
    "path": "e2e-tests/OpcPublisher-E2E-Tests/TestExtensions/IIoTPlatformTestContext.cs",
    "chars": 10423,
    "preview": "// ------------------------------------------------------------\n//  Copyright (c) Microsoft Corporation.  All rights re"
  },
  {
    "path": "e2e-tests/OpcPublisher-E2E-Tests/TestExtensions/IIoTStandaloneTestContext.cs",
    "chars": 1315,
    "preview": "// ------------------------------------------------------------\n//  Copyright (c) Microsoft Corporation.  All rights re"
  },
  {
    "path": "e2e-tests/OpcPublisher-E2E-Tests/TestExtensions/PriorityOrderAttribute.cs",
    "chars": 992,
    "preview": "// ------------------------------------------------------------\n//  Copyright (c) Microsoft Corporation.  All rights re"
  },
  {
    "path": "e2e-tests/OpcPublisher-E2E-Tests/TestExtensions/TestCaseOrderer.cs",
    "chars": 2321,
    "preview": "// ------------------------------------------------------------\n//  Copyright (c) Microsoft Corporation.  All rights re"
  },
  {
    "path": "e2e-tests/OpcPublisher-E2E-Tests/TestHelper.cs",
    "chars": 51971,
    "preview": "// ------------------------------------------------------------\n//  Copyright (c) Microsoft Corporation.  All rights re"
  },
  {
    "path": "e2e-tests/OpcPublisher-E2E-Tests/TestModels/BaseEventTypePayload.cs",
    "chars": 2231,
    "preview": "// ------------------------------------------------------------\n//  Copyright (c) Microsoft Corporation.  All rights re"
  },
  {
    "path": "e2e-tests/OpcPublisher-E2E-Tests/TestModels/ConditionTypePayload.cs",
    "chars": 3053,
    "preview": "// ------------------------------------------------------------\n//  Copyright (c) Microsoft Corporation.  All rights re"
  },
  {
    "path": "e2e-tests/OpcPublisher-E2E-Tests/TestModels/DataValueObject.cs",
    "chars": 893,
    "preview": "// ------------------------------------------------------------\n//  Copyright (c) Microsoft Corporation.  All rights re"
  },
  {
    "path": "e2e-tests/OpcPublisher-E2E-Tests/TestModels/EventData.cs",
    "chars": 865,
    "preview": "// ------------------------------------------------------------\n//  Copyright (c) Microsoft Corporation.  All rights re"
  },
  {
    "path": "e2e-tests/OpcPublisher-E2E-Tests/TestModels/PendingConditionEventData.cs",
    "chars": 523,
    "preview": "// ------------------------------------------------------------\n//  Copyright (c) Microsoft Corporation.  All rights re"
  },
  {
    "path": "e2e-tests/OpcPublisher-E2E-Tests/TestModels/SimpleEventsStep.cs",
    "chars": 735,
    "preview": "// ------------------------------------------------------------\n//  Copyright (c) Microsoft Corporation.  All rights re"
  },
  {
    "path": "e2e-tests/OpcPublisher-E2E-Tests/TestModels/SystemCycleStatusEventTypePayload.cs",
    "chars": 968,
    "preview": "// ------------------------------------------------------------\n//  Copyright (c) Microsoft Corporation.  All rights re"
  },
  {
    "path": "e2e-tests/OpcPublisher-E2E-Tests/TestModels/SystemEventTypePayload.cs",
    "chars": 676,
    "preview": "// ------------------------------------------------------------\n//  Copyright (c) Microsoft Corporation.  All rights re"
  },
  {
    "path": "e2e-tests/OpcPublisher-E2E-Tests/deploy/DeploymentConfiguration.cs",
    "chars": 2762,
    "preview": "// ------------------------------------------------------------\n//  Copyright (c) Microsoft Corporation.  All rights res"
  },
  {
    "path": "e2e-tests/OpcPublisher-E2E-Tests/deploy/IIoTHubEdgeDeployment.cs",
    "chars": 990,
    "preview": "// ------------------------------------------------------------\n//  Copyright (c) Microsoft Corporation.  All rights re"
  },
  {
    "path": "e2e-tests/OpcPublisher-E2E-Tests/deploy/IoTHubEdgeBaseDeployment.cs",
    "chars": 5396,
    "preview": "// ------------------------------------------------------------\n//  Copyright (c) Microsoft Corporation.  All rights res"
  },
  {
    "path": "e2e-tests/OpcPublisher-E2E-Tests/deploy/IoTHubPublisherDeployment.cs",
    "chars": 5955,
    "preview": "// ------------------------------------------------------------\n//  Copyright (c) Microsoft Corporation.  All rights re"
  },
  {
    "path": "e2e-tests/OpcPublisher-E2E-Tests/deploy/ModuleDeploymentConfiguration.cs",
    "chars": 1009,
    "preview": "// ------------------------------------------------------------\n//  Copyright (c) Microsoft Corporation.  All rights re"
  },
  {
    "path": "e2e-tests/OpcPublisher-E2E-Tests/opc-plc-files/sc001.json",
    "chars": 3693,
    "preview": "{\n    \"folders\": [\n      {\n        \"name\": \"VendingMachines\",\n        \"sources\": [\n          {\n            \"objectType\":"
  },
  {
    "path": "e2e-tests/OpcPublisher-E2E-Tests/xunit.runner.json",
    "chars": 42,
    "preview": "{\n  \"parallelizeTestCollections\": false\n}\n"
  },
  {
    "path": "e2e-tests/readme.md",
    "chars": 3923,
    "preview": "# E2E test\n\n## Background\nPoperties of E2E tests:\n* black-box\n* end-to-end\n* high cost tests (long preparation / executi"
  },
  {
    "path": "readme.md",
    "chars": 5945,
    "preview": "# Microsoft OPC Publisher Edge Module\n\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://op"
  },
  {
    "path": "samples/.gitignore",
    "chars": 23,
    "preview": "/**/launchSettings.json"
  },
  {
    "path": "samples/Http/BrowseAll/BrowseAll.cs",
    "chars": 1488,
    "preview": "// ------------------------------------------------------------\n//  Copyright (c) Microsoft Corporation.  All rights re"
  },
  {
    "path": "samples/Http/BrowseAll/BrowseAll.csproj",
    "chars": 484,
    "preview": "<Project Sdk=\"Microsoft.NET.Sdk\">\n  <PropertyGroup>\n    <OutputType>Exe</OutputType>\n    <TargetFramework>net9.0</Targe"
  },
  {
    "path": "samples/Http/GetConfiguration/GetConfiguration.cs",
    "chars": 1494,
    "preview": "// ------------------------------------------------------------\n//  Copyright (c) Microsoft Corporation.  All rights re"
  },
  {
    "path": "samples/Http/GetConfiguration/GetConfiguration.csproj",
    "chars": 484,
    "preview": "<Project Sdk=\"Microsoft.NET.Sdk\">\n  <PropertyGroup>\n    <OutputType>Exe</OutputType>\n    <TargetFramework>net9.0</Targe"
  },
  {
    "path": "samples/Http/GetDiagnostics/GetDiagnostics.cs",
    "chars": 1312,
    "preview": "// ------------------------------------------------------------\n//  Copyright (c) Microsoft Corporation.  All rights re"
  },
  {
    "path": "samples/Http/GetDiagnostics/GetDiagnostics.csproj",
    "chars": 484,
    "preview": "<Project Sdk=\"Microsoft.NET.Sdk\">\n  <PropertyGroup>\n    <OutputType>Exe</OutputType>\n    <TargetFramework>net9.0</Targe"
  },
  {
    "path": "samples/Http/HttpSamples.slnx",
    "chars": 379,
    "preview": "<Solution>\n  <Project Path=\"BrowseAll/BrowseAll.csproj\" />\n  <Project Path=\"GetConfiguration/GetConfiguration.csproj\" />"
  },
  {
    "path": "samples/Http/Parameters.cs",
    "chars": 4787,
    "preview": "// ------------------------------------------------------------\n//  Copyright (c) Microsoft Corporation.  All rights res"
  },
  {
    "path": "samples/Http/ReadCurrentTime/ReadCurrentTime.cs",
    "chars": 1394,
    "preview": "// ------------------------------------------------------------\n//  Copyright (c) Microsoft Corporation.  All rights re"
  },
  {
    "path": "samples/Http/ReadCurrentTime/ReadCurrentTime.csproj",
    "chars": 484,
    "preview": "<Project Sdk=\"Microsoft.NET.Sdk\">\n  <PropertyGroup>\n    <OutputType>Exe</OutputType>\n    <TargetFramework>net9.0</Targe"
  },
  {
    "path": "samples/Http/SetConfiguration/SetConfiguration.cs",
    "chars": 3775,
    "preview": "// ------------------------------------------------------------\n//  Copyright (c) Microsoft Corporation.  All rights re"
  },
  {
    "path": "samples/Http/SetConfiguration/SetConfiguration.csproj",
    "chars": 484,
    "preview": "<Project Sdk=\"Microsoft.NET.Sdk\">\n  <PropertyGroup>\n    <OutputType>Exe</OutputType>\n    <TargetFramework>net9.0</Targe"
  },
  {
    "path": "samples/Http/WriteReadbackValue/WriteReadbackValue.cs",
    "chars": 2955,
    "preview": "// ------------------------------------------------------------\n//  Copyright (c) Microsoft Corporation.  All rights re"
  },
  {
    "path": "samples/Http/WriteReadbackValue/WriteReadbackValue.csproj",
    "chars": 484,
    "preview": "<Project Sdk=\"Microsoft.NET.Sdk\">\n  <PropertyGroup>\n    <OutputType>Exe</OutputType>\n    <TargetFramework>net9.0</Targe"
  },
  {
    "path": "samples/Http/readme.md",
    "chars": 1731,
    "preview": "# HTTP REST Samples\n\nThis folder contains several samples that show how to interact with the OPC Publisher over HTTPS. T"
  },
  {
    "path": "samples/IoTHub/ApproveRejected/ApproveRejected.cs",
    "chars": 2264,
    "preview": "// ------------------------------------------------------------\n//  Copyright (c) Microsoft Corporation.  All rights re"
  },
  {
    "path": "samples/IoTHub/ApproveRejected/ApproveRejected.csproj",
    "chars": 484,
    "preview": "<Project Sdk=\"Microsoft.NET.Sdk\">\n  <PropertyGroup>\n    <OutputType>Exe</OutputType>\n    <TargetFramework>net9.0</Targe"
  },
  {
    "path": "samples/IoTHub/BrowseCertificates/BrowseCertificates.cs",
    "chars": 2554,
    "preview": "// ------------------------------------------------------------\n//  Copyright (c) Microsoft Corporation.  All rights re"
  },
  {
    "path": "samples/IoTHub/BrowseCertificates/BrowseCertificates.csproj",
    "chars": 484,
    "preview": "<Project Sdk=\"Microsoft.NET.Sdk\">\n  <PropertyGroup>\n    <OutputType>Exe</OutputType>\n    <TargetFramework>net9.0</Targe"
  },
  {
    "path": "samples/IoTHub/GetCertificate/GetApplicationCert.cs",
    "chars": 1759,
    "preview": "// ------------------------------------------------------------\n//  Copyright (c) Microsoft Corporation.  All rights re"
  },
  {
    "path": "samples/IoTHub/GetCertificate/GetApplicationCert.csproj",
    "chars": 484,
    "preview": "<Project Sdk=\"Microsoft.NET.Sdk\">\n  <PropertyGroup>\n    <OutputType>Exe</OutputType>\n    <TargetFramework>net9.0</Targe"
  },
  {
    "path": "samples/IoTHub/GetConfiguration/GetConfiguration.cs",
    "chars": 2226,
    "preview": "// ------------------------------------------------------------\n//  Copyright (c) Microsoft Corporation.  All rights re"
  },
  {
    "path": "samples/IoTHub/GetConfiguration/GetConfiguration.csproj",
    "chars": 484,
    "preview": "<Project Sdk=\"Microsoft.NET.Sdk\">\n  <PropertyGroup>\n    <OutputType>Exe</OutputType>\n    <TargetFramework>net9.0</Targe"
  },
  {
    "path": "samples/IoTHub/IoTHubSamples.slnx",
    "chars": 577,
    "preview": "<Solution>\n  <Project Path=\"ApproveRejected/ApproveRejected.csproj\" />\n  <Project Path=\"BrowseCertificates/BrowseCertifi"
  },
  {
    "path": "samples/IoTHub/ManageWriter/ManageWriter.cs",
    "chars": 3017,
    "preview": "// ------------------------------------------------------------\n//  Copyright (c) Microsoft Corporation.  All rights re"
  },
  {
    "path": "samples/IoTHub/ManageWriter/ManageWriter.csproj",
    "chars": 484,
    "preview": "<Project Sdk=\"Microsoft.NET.Sdk\">\n  <PropertyGroup>\n    <OutputType>Exe</OutputType>\n    <TargetFramework>net9.0</Targe"
  },
  {
    "path": "samples/IoTHub/MonitorMessages/MonitorMessages.cs",
    "chars": 6425,
    "preview": "// ------------------------------------------------------------\n//  Copyright (c) Microsoft Corporation.  All rights re"
  },
  {
    "path": "samples/IoTHub/MonitorMessages/MonitorMessages.csproj",
    "chars": 490,
    "preview": "<Project Sdk=\"Microsoft.NET.Sdk\">\n  <PropertyGroup>\n    <OutputType>Exe</OutputType>\n    <TargetFramework>net9.0</Targe"
  },
  {
    "path": "samples/IoTHub/Parameters.cs",
    "chars": 2662,
    "preview": "// ------------------------------------------------------------\n//  Copyright (c) Microsoft Corporation.  All rights res"
  },
  {
    "path": "samples/IoTHub/ReadCurrentTime/ReadCurrentTime.cs",
    "chars": 1864,
    "preview": "// ------------------------------------------------------------\n//  Copyright (c) Microsoft Corporation.  All rights re"
  },
  {
    "path": "samples/IoTHub/ReadCurrentTime/ReadCurrentTime.csproj",
    "chars": 484,
    "preview": "<Project Sdk=\"Microsoft.NET.Sdk\">\n  <PropertyGroup>\n    <OutputType>Exe</OutputType>\n    <TargetFramework>net9.0</Targe"
  },
  {
    "path": "samples/IoTHub/ResetClients/GetAndResetConnections.cs",
    "chars": 1857,
    "preview": "// ------------------------------------------------------------\n//  Copyright (c) Microsoft Corporation.  All rights re"
  }
]

// ... and 1561 more files (download for full content)

About this extraction

This page contains the full source code of the Azure/iot-edge-opc-publisher GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 1761 files (24.5 MB), approximately 6.5M tokens, and a symbol index with 11430 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!