3.3.2 Record: ServerCapabilities

Topic Version1Published10/31/2016
For StandardETP v1.1

Record describing the capabilities of a server. This record, though described in Avro, is not part of any ETP message. It simply describes the content of the JSON object that is used for pre-session server discovery.

Avro Schema

{

      "type": "record",

      "namespace": "Energistics.Datatypes",

      "name": "ServerCapabilities",

      "fields":

     [

         { "name": "applicationName", "type": "string" },

         { "name": "applicationVersion", "type": "string" },

         {

          "name": "supportedProtocols",

          "type": { "type": "array", "items": "Energistics.Datatypes.SupportedProtocol" }

     },

         {

          "name": "supportedObjects",

          "type": { "type": "array", "items": "string" }

     },

         { "name": "contactInformation", "type": "Energistics.Datatypes.Contact" },

         { "name": "supportedEncodings", "type": "string" }

     ]

}

Attribute

Description

Data Type

Min

Max

applicationName

The string by which the server identifies itself. This MAY or MAY NOT include a version, and is entirely application dependent. Vendors are encouraged to identify their company name as part of this string.

string

1

1

applicationVersion

 

string

1

1

supportedProtocols

An array of identifiers of the subprotocols supported by the server.

SupportedProtocol

1

n

supportedObjects

A list of objects that are supported for any of the object protocols (discovery, store, etc.) supported by this server. The form of the list is an array of strings, where each value is a contentType as described in the Energistics Identifier Specification (and serialized as JSON). For example:  

"supportedObjects": [

"application/x-witsml+xml;version=2.0;type=Well",

"application/x-witsml+xml;version=2.0;type=Wellbore",

"application/x-witsml+xml;version=2.0;type=Channel",

"application/x-witsml+xml;version=2.0;type=Trajectory",

"application/x-witsml+xml;version=2.0;type=part_TrajectoryStation",

"application/x-prodml+xml;version=2.0;type=WellTest",

"application/x-resqml+xml;version=2.0;type=TectonicBoundaryFeature"

],

Note that the Identifier Specification states: the contentType specifies both the schema family and version. If multiple versions are supported by the server, it includes a list of contentTypes for each version. As a special case, type=* can be used to specify that an entire schema release is supported. The following are examples of Well and Wellbore objects from WITSML v1.4.1.1 and WITSML v2.0; the WellTest object from PRODML v2.0; all objects in RESQML v2.0.1; and a TLO (an activity) from Energistics common v2.1.

"supportedObjects": [

"application/x-witsml+xml;version=1.4.1.1;type=well",

"application/x-witsml+xml;version=1.4.1.1;type=wellbore",

"application/x-witsml+xml;version=2.0;type=Well",

"application/x-witsml+xml;version=2.0;type=Wellbore",

"application/x-prodml+xml;version=2.0;type=WellTest",

"application/x-resqml+xml;version=2.0.1;type=*"

]

"application/x-eml+xml;version=2.1;type=Activity”

string

1

n

contactInformation

Contact information for this server.

Contact

1

1

supportedEncodings

Supported encodings for the server can be:

  • binary
  • JSON
  • binary;JSON

string

1

1