5 Cloud Library Data Model for REST & GraphQL Interface

The following diagram describes the class hierarchy of the NameSpace query for the GraphQL interface. It is also used for uploading and downloading NameSpaces via the REST interface.

5.1 Organization

The Organization Definition represents an organization which may contribute Companion Specifications to the UA Companion Specification Cloud Library.

Table 1 – Organization Definition
PropertyDescriptionTypeRequired
NameName of this organizationStringMandatory
DescriptionDescription of this organizationStringOptional
LogoUrlURL providing the Logo for this organizationStringOptional
ContactEmailE-Mail address to contact this organizationStringOptional
WebSiteURL to the organization websiteStringOptional

5.2 Category

The Category describes a collection of NameSpaces, for example all companion specifications released by the VDMA. Each NameSpace is assigned to one Category.

Table 2 – Category Definition
PropertyDescriptionTypeRequired
NameName of this categoryStringMandatory
DescriptionDescription of this categoryStringOptional
IconUrlURL to a ICON for this category StringOptional

5.3 License

The License enumeration defines some predefined well known license types which are available for contributors of NameSpaces to use or select Custom as the enumeration value and provide a LicenseUrl where the consumer may find detailed license information.

Table 3 – License Definition
Enumeration ValueDescription
MITUsage is covered by the MIT License. See https://tldrlegal.com/license/mit-license
ApacheLicense2Usage is covered by the Apache License 2.0. See https://tldrlegal.com/license/apache-license-2.0-(apache-2.0)
CustomCustom license provided by the NameSpace contributor, see the provided information under the given LicenseUrl.

5.4 NodeSet2

The NodeSet2 holds the OPC UA NodeSet for the related NameSpace. Access to this entity should only be provided to users allowed to download the NodeSet file.

Table 4 – NodeSet2 Definition
PropertyDescriptionTypeRequired
NodeSetXMLXML providing the OPC UA NodeSet for related NameSpaceStringMandatory
PublicationDateDate and time the NodeSet was publishedDateTimeMandatory (retrieved from nodeset file)
LastModifiedDateDate and time the NodeSet was last modifiedDateTime

Mandatory

(retrieved from nodeset file)

5.5 NameSpace

The NameSpace contains meta data describing the NodeSet2 to provide relevant and searchable information. The NameSpace must contain a NodeSet2.

Table 5 – NameSpace Definition
PropertyDescriptionTypeRequired
TitleTitle of the NameSpaceStringMandatory
VersionVersion of the NameSpaceStringMandatory
LicenseLicense for the usage of this NameSpaceLicenseMandatory
ContributorContributing organization OrganizationMandatory
DescriptionDescription of the NameSpaceStringOptional
CategoryCategory of the NameSpaceCategoryMandatory
NodeSetReference to the NodeSet entry of the NameSpaceNodeSet2Mandatory for storage, only filled if user has access
OPCFDocumentNumberIf the NameSpace is a official UA Information Model this refers to the OPC XYZ number of the published document. E.g. “OPC 40001-1” for the “UA CS for Machinery Part 1 - Basic Building Blocks”StringOptional
IconUrlURL to a ICON for this NameSpaceStringOptional
LicenseUrlA URL providing the custom license informationStringOptional
KeyWordsString[]Mandatory
PurchaseInformationUrlA URL providing optional purchase information for this model. StringOptional

5.6 UANodesetResult

The UANodesetResult contains identification and other meta data for a search result for a given array of search strings.

Table 6 – UANodesetResult Definition
PropertyDescriptionTypeRequired
IdA unique identifier for the UANodesetResultUIntMandatory
TitleTitle of the UANodesetResultStringMandatory
ContributorContributing organizationStringMandatory
LicenseLicense for the usage of the UANodesetResultStringMandatory
VersionVersion of the UANodesetResultStringMandatory
CreationTimeDate and time the UANodesetResult entry was createdDateTimeOptional

5.7 Testing

The OpenAPI REST interface may be tested using existing tools available online, e.g. “Swagger Inspector”.

DotNet unit tests shall be added, allowing private implementations of the UA Cloud Library verify the behaviour according to specification.