pub struct CloudEvent {
pub id: String,
pub source: String,
pub spec_version: String,
pub event_type: String,
pub subject: Option<String>,
pub data_schema: Option<String>,
pub data_content_type: Option<String>,
pub time: Option<DateTime<Utc>>,
/* private fields */
}
Expand description
Cloud Event struct used by the Receiver
.
Implements the cloud event spec 1.0 for the telemetry receiver. See CloudEvents Spec.
Fields§
§id: String
Identifies the event. Producers MUST ensure that source + id is unique for each distinct event. If a duplicate event is re-sent (e.g. due to a network error) it MAY have the same id. Consumers MAY assume that Events with identical source and id are duplicates.
source: String
Identifies the context in which an event happened. Often this will include information such as the type of the event source, the organization publishing the event or the process that produced the event. The exact syntax and semantics behind the data encoded in the URI is defined by the event producer.
spec_version: String
The version of the cloud events specification which the event uses. This enables the interpretation of the context. Compliant event producers MUST use a value of 1.0 when referring to this version of the specification.
event_type: String
Contains a value describing the type of event related to the originating occurrence. Often this attribute is used for routing, observability, policy enforcement, etc. The format of this is producer defined and might include information such as the version of the type.
subject: Option<String>
Identifies the subject of the event in the context of the event producer (identified by source). In publish-subscribe scenarios, a subscriber will typically subscribe to events emitted by a source, but the source identifier alone might not be sufficient as a qualifier for any specific event if the source context has internal sub-structure.
data_schema: Option<String>
Identifies the schema that data adheres to. Incompatible changes to the schema SHOULD be reflected by a different URI.
data_content_type: Option<String>
Content type of data value. This attribute enables data to carry any type of content, whereby format and encoding might differ from that of the chosen event format.
time: Option<DateTime<Utc>>
Timestamp of when the occurrence happened. If the time of the occurrence cannot be determined then this attribute MAY be set to some other time (such as the current time) by the cloud event producer, however all producers for the same source MUST be consistent in this respect. In other words, either they all use the actual time of the occurrence or they all use the same algorithm to determine the value used.
Implementations§
Source§impl CloudEvent
impl CloudEvent
Sourcepub fn from_telemetry<T: PayloadSerialize>(
telemetry: &Message<T>,
) -> Result<Self, CloudEventBuilderError>
pub fn from_telemetry<T: PayloadSerialize>( telemetry: &Message<T>, ) -> Result<Self, CloudEventBuilderError>
Parse a CloudEvent
from a Message
.
Note that this will return an error if the Message
does not contain the required fields for a CloudEvent
.
§Errors
CloudEventBuilderError::UninitializedField
if the Message
does not contain the required fields for a CloudEvent
.
CloudEventBuilderError::ValidationError
if any of the field values are not valid for a CloudEvent
.
Trait Implementations§
Source§impl Clone for CloudEvent
impl Clone for CloudEvent
Source§fn clone(&self) -> CloudEvent
fn clone(&self) -> CloudEvent
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read more