GH-750 Add support for pluggable protobufs
This initial support adds plugin extension to support CloudEvent proto as well as the example Additional plugins could be provided in the same ay as CloudEvent plugin extension Resolves #750
This commit is contained in:
@@ -0,0 +1,49 @@
|
||||
syntax = "proto3";
|
||||
|
||||
package io.cloudevents.v1;
|
||||
|
||||
import "google/protobuf/any.proto";
|
||||
import "google/protobuf/timestamp.proto";
|
||||
|
||||
option go_package = "cloudevents.io/genproto/v1";
|
||||
option java_package = "io.cloudevents.v1.proto";
|
||||
option java_multiple_files = true;
|
||||
|
||||
message CloudEvent {
|
||||
|
||||
// -- CloudEvent Context Attributes
|
||||
|
||||
// Required Attributes
|
||||
string id = 1;
|
||||
string source = 2; // URI-reference
|
||||
string spec_version = 3;
|
||||
string type = 4;
|
||||
|
||||
// Optional & Extension Attributes
|
||||
map<string, CloudEventAttributeValue> attributes = 5;
|
||||
|
||||
// -- CloudEvent Data (Bytes, Text, or Proto)
|
||||
oneof data {
|
||||
bytes binary_data = 6;
|
||||
string text_data = 7;
|
||||
google.protobuf.Any proto_data = 8;
|
||||
}
|
||||
|
||||
/**
|
||||
* The CloudEvent specification defines
|
||||
* seven attribute value types...
|
||||
*/
|
||||
|
||||
message CloudEventAttributeValue {
|
||||
|
||||
oneof attr {
|
||||
bool ce_boolean = 1;
|
||||
int32 ce_integer = 2;
|
||||
string ce_string = 3;
|
||||
bytes ce_bytes = 4;
|
||||
string ce_uri = 5;
|
||||
string ce_uri_ref = 6;
|
||||
google.protobuf.Timestamp ce_timestamp = 7;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
syntax = "proto3";
|
||||
|
||||
package io.cloudevents.v1;
|
||||
|
||||
import "google/protobuf/any.proto";
|
||||
import "google/protobuf/timestamp.proto";
|
||||
import "CloudEvent.proto";
|
||||
|
||||
service CloudEventService {
|
||||
rpc biStream(stream io.cloudevents.v1.CloudEvent) returns (stream io.cloudevents.v1.CloudEvent);
|
||||
|
||||
rpc clientStream(stream io.cloudevents.v1.CloudEvent) returns (io.cloudevents.v1.CloudEvent);
|
||||
|
||||
rpc serverStream(io.cloudevents.v1.CloudEvent) returns (stream io.cloudevents.v1.CloudEvent);
|
||||
|
||||
rpc requestReply(io.cloudevents.v1.CloudEvent) returns (io.cloudevents.v1.CloudEvent);
|
||||
}
|
||||
Reference in New Issue
Block a user