Pub/Sub messages schema
This guide shows some examples of output messages that Manufacturing Data Engine (MDE) publishes over Pub/Sub.
Protobuf Pub/Sub sink
The output messages that MDE publish over Pub/Sub have the following schema in Protobuf format.
syntax
=
"proto3"
;
package
google
.
cloud.mde.sink
;
option
java_package
=
"com.google.cloud.industry.manufacturing.mde.sink.pubsub"
;
option
java_multiple_files
=
true
;
message
MDETagStreamingObject
{
string
id
=
1
;
string
tag_name
=
2
;
int32
type_version
=
3
;
string
embedded_metadata
=
4
;
string
materialized_cloud_metadata
=
5
;
string
cloud_metadata_ref
=
6
;
int64
ingest_timestamp
=
7
;
string
source_message_id
=
8
;
TagStreamingTimestampObject
timestamps
=
9
;
TagStreamingDataObject
data
=
10
;
TagStreamingFormat
format
=
11
;
message
TagStreamingDataObject
{
oneof
data_values
{
double
numeric
=
1
;
string
complex
=
2
;
}
}
message
TagStreamingTimestampObject
{
oneof
timestamps
{
int64
event_timestamp
=
1
;
TagStreamingContinuousTimestampObject
continuous_timestamp
=
2
;
}
}
message
TagStreamingContinuousTimestampObject
{
int64
event_timestamp_start
=
1
;
int64
event_timestamp_end
=
2
;
}
enum
TagStreamingFormat
{
PROTO
=
0
;
JSON
=
1
;
}
}
JSON Pub/Sub sink
The output messages that MDE publish over Pub/Sub have the following schema in JSON format.
{
"$schema"
:
"https://json-schema.org/draft/2020-12/schema"
,
"title"
:
"JSON Pub/Sub sink"
,
"type"
:
"object"
,
"properties"
:
{
"id"
:
{
"type"
:
"string"
},
"tagName"
:
{
"type"
:
"string"
},
"typeVersion"
:
{
"type"
:
"number"
},
"embeddedMetadata"
:
{
"type"
:
"object"
},
"materialized_cloud_metadata"
:
{
"type"
:
"object"
,
"description"
:
"Keys are cloud metadata bucket bucket names"
,
"additionalProperties"
:
{
"type"
:
"object"
,
"description"
:
"Cloud metadata instance"
}
},
"cloud_metadata_ref"
:
{
"type"
:
"object"
,
"description"
:
"Keys are cloud metadata bucket bucket names"
,
"additionalProperties"
:
{
"type"
:
"object"
,
"properties"
:
{
"instance_id"
:
{
"type"
:
"string"
,
"description"
:
"Cloud metadata instance id"
,
"format"
:
"uuid"
}
}
}
},
"ingestTimestamp"
:
{
"type"
:
"number"
,
"description"
:
"Timestamp when message was published to the Pub/Sub sink topic"
,
"format"
:
"unix-epoch-millis"
},
"source_message_id"
:
{
"type"
:
"string"
,
"description"
:
"Pub/Sub source message id"
,
"format"
:
"uuid"
},
"timestamps"
:
{
"type"
:
"object"
,
"oneOf"
:
[
{
"type"
:
"object"
,
"properties"
:
{
"eventTimestamp"
:
{
"type"
:
"number"
,
"description"
:
"Event timestamp"
,
"format"
:
"unix-epoch-millis"
}
},
"required"
:
[
"eventTimestamp"
]
},
{
"type"
:
"object"
,
"properties"
:
{
"eventTimestampStart"
:
{
"type"
:
"number"
,
"description"
:
"Event timestamp"
,
"format"
:
"unix-epoch-millis"
},
"eventTimestampEnd"
:
{
"type"
:
"number"
,
"description"
:
"Event timestamp"
,
"format"
:
"unix-epoch-millis"
}
},
"required"
:
[
"eventTimestampStart"
,
"eventTimestampEnd"
]
}
]
},
"data"
:
{
"type"
:
"object"
,
"additionalProperties"
:
true
},
"format"
:
{
"type"
:
"number"
,
"enum"
:
[
0
,
1
]
}
},
"required"
:
[
"id"
,
"tagName"
,
"typeVersion"
,
"ingestTimestamp"
,
"source_message_id"
,
"timestamps"
,
"data"
,
"format"
]
}