// https://github.com/cloudevents/spec/blob/main/cloudevents/formats/cloudevents.proto /** * CloudEvent Protobuf Format * * - Required context attributes are explicitly represented. * - Optional and Extension context attributes are carried in a map structure. * - Data may be represented as binary, text, or protobuf messages. */ syntax = "proto3"; package io.cloudevents.v1; import "google/protobuf/any.proto"; import "google/protobuf/timestamp.proto"; option csharp_namespace = "Microsoft.AutoGen.Contracts"; 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 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; } } }