Struct vector_core::schema::Definition
source · pub struct Definition { /* private fields */ }
Expand description
The definition of a schema.
This struct contains all the information needed to inspect the schema of an event emitted by a source/transform.
Implementations§
source§impl Definition
impl Definition
sourcepub fn any() -> Self
pub fn any() -> Self
The most general possible definition. The Kind
is any
, and all log_namespaces
are enabled.
sourcepub fn new_with_default_metadata(
event_kind: Kind,
log_namespaces: impl Into<BTreeSet<LogNamespace>>,
) -> Self
pub fn new_with_default_metadata( event_kind: Kind, log_namespaces: impl Into<BTreeSet<LogNamespace>>, ) -> Self
Creates a new definition that is of the event kind specified, and an empty object for metadata.
There are no meanings.
The log_namespaces
are used to list the possible namespaces the schema is for.
sourcepub fn new(
event_kind: Kind,
metadata_kind: Kind,
log_namespaces: impl Into<BTreeSet<LogNamespace>>,
) -> Self
pub fn new( event_kind: Kind, metadata_kind: Kind, log_namespaces: impl Into<BTreeSet<LogNamespace>>, ) -> Self
Creates a new definition, specifying both the event and metadata kind.
There are no meanings.
The log_namespaces
are used to list the possible namespaces the schema is for.
sourcepub fn default_legacy_namespace() -> Self
pub fn default_legacy_namespace() -> Self
An object with any fields, and the Legacy
namespace.
This is the default schema for a source that does not explicitly provide one yet.
sourcepub fn empty_legacy_namespace() -> Self
pub fn empty_legacy_namespace() -> Self
An object with no fields, and the Legacy
namespace.
This is what most sources use for the legacy namespace.
sourcepub fn default_for_namespace(log_namespaces: &BTreeSet<LogNamespace>) -> Self
pub fn default_for_namespace(log_namespaces: &BTreeSet<LogNamespace>) -> Self
Returns the source schema for a source that produce the listed log namespaces, but an explicit schema was not provided.
sourcepub fn log_namespaces(&self) -> &BTreeSet<LogNamespace>
pub fn log_namespaces(&self) -> &BTreeSet<LogNamespace>
The set of possible log namespaces that events can use. When merged, this is the union of all inputs.
sourcepub fn with_standard_vector_source_metadata(self) -> Self
pub fn with_standard_vector_source_metadata(self) -> Self
Adds the source_type
and ingest_timestamp
metadata fields, which are added to every Vector source.
This function should be called in the same order as the values are actually inserted into the event.
sourcepub fn with_source_metadata(
self,
source_name: &str,
legacy_path: Option<LegacyKey<OwnedValuePath>>,
vector_path: &OwnedValuePath,
kind: Kind,
meaning: Option<&str>,
) -> Self
pub fn with_source_metadata( self, source_name: &str, legacy_path: Option<LegacyKey<OwnedValuePath>>, vector_path: &OwnedValuePath, kind: Kind, meaning: Option<&str>, ) -> Self
This should be used wherever LogNamespace::insert_source_metadata
is used to insert metadata.
This automatically detects which log namespaces are used, and also automatically
determines if there are possible conflicts from existing field names (usually from the selected decoder).
This function should be called in the same order as the values are actually inserted into the event.
sourcepub fn with_vector_metadata(
self,
legacy_path: Option<&OwnedValuePath>,
vector_path: &OwnedValuePath,
kind: Kind,
meaning: Option<&str>,
) -> Self
pub fn with_vector_metadata( self, legacy_path: Option<&OwnedValuePath>, vector_path: &OwnedValuePath, kind: Kind, meaning: Option<&str>, ) -> Self
This should be used wherever LogNamespace::insert_vector_metadata
is used to insert metadata.
This automatically detects which log namespaces are used, and also automatically
determines if there are possible conflicts from existing field names (usually from the selected decoder).
This function should be called in the same order as the values are actually inserted into the event.
sourcepub fn with_field(
self,
target_path: &OwnedTargetPath,
kind: Kind,
meaning: Option<&str>,
) -> Self
pub fn with_field( self, target_path: &OwnedTargetPath, kind: Kind, meaning: Option<&str>, ) -> Self
Add type information for an event or metadata field. A non-root required field means the root type must be an object, so the type will be automatically restricted to an object.
§Panics
- If the path is not root, and the definition does not allow the type to be an object.
sourcepub fn with_event_field(
self,
path: &OwnedValuePath,
kind: Kind,
meaning: Option<&str>,
) -> Self
pub fn with_event_field( self, path: &OwnedValuePath, kind: Kind, meaning: Option<&str>, ) -> Self
Add type information for an event field. A non-root required field means the root type must be an object, so the type will be automatically restricted to an object.
§Panics
- If the path is not root, and the definition does not allow the type to be an object.
- Provided path has one or more coalesced segments (e.g.
.(foo | bar)
).
sourcepub fn try_with_field(
self,
path: &OwnedValuePath,
kind: Kind,
meaning: Option<&str>,
) -> Self
pub fn try_with_field( self, path: &OwnedValuePath, kind: Kind, meaning: Option<&str>, ) -> Self
Add type information for an event field.
This inserts type information similar to LogEvent::try_insert
.
sourcepub fn with_metadata_field(
self,
path: &OwnedValuePath,
kind: Kind,
meaning: Option<&str>,
) -> Self
pub fn with_metadata_field( self, path: &OwnedValuePath, kind: Kind, meaning: Option<&str>, ) -> Self
Add type information for an event field. A non-root required field means the root type must be an object, so the type will be automatically restricted to an object.
§Panics
- If the path is not root, and the definition does not allow the type to be an object
- Provided path has one or more coalesced segments (e.g.
.(foo | bar)
).
sourcepub fn optional_field(
self,
path: &OwnedValuePath,
kind: Kind,
meaning: Option<&str>,
) -> Self
pub fn optional_field( self, path: &OwnedValuePath, kind: Kind, meaning: Option<&str>, ) -> Self
sourcepub fn with_meaning(self, target_path: OwnedTargetPath, meaning: &str) -> Self
pub fn with_meaning(self, target_path: OwnedTargetPath, meaning: &str) -> Self
Register a semantic meaning for the definition.
§Panics
This method panics if the provided path points to an unknown location in the collection.
sourcepub fn add_meaning(&mut self, target_path: OwnedTargetPath, meaning: &str)
pub fn add_meaning(&mut self, target_path: OwnedTargetPath, meaning: &str)
Adds the meaning pointing to the given path to our list of meanings.
§Panics
This method panics if the provided path points to an unknown location in the collection.
sourcepub fn try_with_meaning(
&mut self,
target_path: OwnedTargetPath,
meaning: &str,
) -> Result<(), &'static str>
pub fn try_with_meaning( &mut self, target_path: OwnedTargetPath, meaning: &str, ) -> Result<(), &'static str>
Register a semantic meaning for the definition.
§Errors
Returns an error if the provided path points to an unknown location in the collection.
sourcepub fn unknown_fields(self, unknown: impl Into<Kind>) -> Self
pub fn unknown_fields(self, unknown: impl Into<Kind>) -> Self
Set the kind for all unknown fields.
sourcepub fn merge(self, other: Self) -> Self
pub fn merge(self, other: Self) -> Self
Merge other
definition into self
.
This just takes the union of both definitions.
sourcepub fn combine_log_namespaces(
log_namespaces: &BTreeSet<LogNamespace>,
legacy: Self,
vector: Self,
) -> Self
pub fn combine_log_namespaces( log_namespaces: &BTreeSet<LogNamespace>, legacy: Self, vector: Self, ) -> Self
If the schema definition depends on the LogNamespace
, this combines the individual
definitions for each LogNamespace
.
sourcepub fn meaning_path(&self, meaning: &str) -> Option<&OwnedTargetPath>
pub fn meaning_path(&self, meaning: &str) -> Option<&OwnedTargetPath>
Returns an OwnedTargetPath
into an event, based on the provided meaning
, if the meaning exists.
pub fn invalid_meaning( &self, meaning: &str, ) -> Option<&BTreeSet<OwnedTargetPath>>
pub fn meanings(&self) -> impl Iterator<Item = (&String, &OwnedTargetPath)>
sourcepub fn add_meanings<'a>(
&'a mut self,
meanings: impl Iterator<Item = (&'a String, &'a OwnedTargetPath)>,
)
pub fn add_meanings<'a>( &'a mut self, meanings: impl Iterator<Item = (&'a String, &'a OwnedTargetPath)>, )
Adds the meanings provided by an iterator over the given meanings.
§Panics
This method panics if the provided path from any of the incoming meanings point to an unknown location in the collection.
pub fn event_kind(&self) -> &Kind
pub fn event_kind_mut(&mut self) -> &mut Kind
pub fn metadata_kind(&self) -> &Kind
pub fn kind_at<'a>(&self, target_path: impl TargetPath<'a>) -> Kind
Trait Implementations§
source§impl Clone for Definition
impl Clone for Definition
source§fn clone(&self) -> Definition
fn clone(&self) -> Definition
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl Debug for Definition
impl Debug for Definition
source§impl PartialEq for Definition
impl PartialEq for Definition
source§fn eq(&self, other: &Definition) -> bool
fn eq(&self, other: &Definition) -> bool
self
and other
values to be equal, and is used
by ==
.source§impl PartialOrd for Definition
impl PartialOrd for Definition
source§fn partial_cmp(&self, other: &Definition) -> Option<Ordering>
fn partial_cmp(&self, other: &Definition) -> Option<Ordering>
1.0.0 · source§fn le(&self, other: &Rhs) -> bool
fn le(&self, other: &Rhs) -> bool
self
and other
) and is used by the <=
operator. Read moreimpl StructuralPartialEq for Definition
Auto Trait Implementations§
impl Freeze for Definition
impl RefUnwindSafe for Definition
impl Send for Definition
impl Sync for Definition
impl Unpin for Definition
impl UnwindSafe for Definition
Blanket Implementations§
§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
§type ArchivedMetadata = ()
type ArchivedMetadata = ()
§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§default unsafe fn clone_to_uninit(&self, dst: *mut T)
default unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)§impl<F, W, T, D> Deserialize<With<T, W>, D> for F
impl<F, W, T, D> Deserialize<With<T, W>, D> for F
§fn deserialize(
&self,
deserializer: &mut D,
) -> Result<With<T, W>, <D as Fallible>::Error>
fn deserialize( &self, deserializer: &mut D, ) -> Result<With<T, W>, <D as Fallible>::Error>
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
source§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T
in a tonic::Request
§impl<T> LayoutRaw for T
impl<T> LayoutRaw for T
§fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
§impl<Source, Target> OctetsInto<Target> for Sourcewhere
Target: OctetsFrom<Source>,
impl<Source, Target> OctetsInto<Target> for Sourcewhere
Target: OctetsFrom<Source>,
type Error = <Target as OctetsFrom<Source>>::Error
§fn try_octets_into(
self,
) -> Result<Target, <Source as OctetsInto<Target>>::Error>
fn try_octets_into( self, ) -> Result<Target, <Source as OctetsInto<Target>>::Error>
§fn octets_into(self) -> Targetwhere
Self::Error: Into<Infallible>,
fn octets_into(self) -> Targetwhere
Self::Error: Into<Infallible>,
§impl<D> OwoColorize for D
impl<D> OwoColorize for D
§fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
§fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
§fn on_yellow<'a>(&'a self) -> BgColorDisplay<'a, Yellow, Self>
fn on_yellow<'a>(&'a self) -> BgColorDisplay<'a, Yellow, Self>
§fn magenta<'a>(&'a self) -> FgColorDisplay<'a, Magenta, Self>
fn magenta<'a>(&'a self) -> FgColorDisplay<'a, Magenta, Self>
§fn on_magenta<'a>(&'a self) -> BgColorDisplay<'a, Magenta, Self>
fn on_magenta<'a>(&'a self) -> BgColorDisplay<'a, Magenta, Self>
§fn on_purple<'a>(&'a self) -> BgColorDisplay<'a, Magenta, Self>
fn on_purple<'a>(&'a self) -> BgColorDisplay<'a, Magenta, Self>
§fn default_color<'a>(&'a self) -> FgColorDisplay<'a, Default, Self>
fn default_color<'a>(&'a self) -> FgColorDisplay<'a, Default, Self>
§fn on_default_color<'a>(&'a self) -> BgColorDisplay<'a, Default, Self>
fn on_default_color<'a>(&'a self) -> BgColorDisplay<'a, Default, Self>
§fn bright_black<'a>(&'a self) -> FgColorDisplay<'a, BrightBlack, Self>
fn bright_black<'a>(&'a self) -> FgColorDisplay<'a, BrightBlack, Self>
§fn on_bright_black<'a>(&'a self) -> BgColorDisplay<'a, BrightBlack, Self>
fn on_bright_black<'a>(&'a self) -> BgColorDisplay<'a, BrightBlack, Self>
§fn bright_red<'a>(&'a self) -> FgColorDisplay<'a, BrightRed, Self>
fn bright_red<'a>(&'a self) -> FgColorDisplay<'a, BrightRed, Self>
§fn on_bright_red<'a>(&'a self) -> BgColorDisplay<'a, BrightRed, Self>
fn on_bright_red<'a>(&'a self) -> BgColorDisplay<'a, BrightRed, Self>
§fn bright_green<'a>(&'a self) -> FgColorDisplay<'a, BrightGreen, Self>
fn bright_green<'a>(&'a self) -> FgColorDisplay<'a, BrightGreen, Self>
§fn on_bright_green<'a>(&'a self) -> BgColorDisplay<'a, BrightGreen, Self>
fn on_bright_green<'a>(&'a self) -> BgColorDisplay<'a, BrightGreen, Self>
§fn bright_yellow<'a>(&'a self) -> FgColorDisplay<'a, BrightYellow, Self>
fn bright_yellow<'a>(&'a self) -> FgColorDisplay<'a, BrightYellow, Self>
§fn on_bright_yellow<'a>(&'a self) -> BgColorDisplay<'a, BrightYellow, Self>
fn on_bright_yellow<'a>(&'a self) -> BgColorDisplay<'a, BrightYellow, Self>
§fn bright_blue<'a>(&'a self) -> FgColorDisplay<'a, BrightBlue, Self>
fn bright_blue<'a>(&'a self) -> FgColorDisplay<'a, BrightBlue, Self>
§fn on_bright_blue<'a>(&'a self) -> BgColorDisplay<'a, BrightBlue, Self>
fn on_bright_blue<'a>(&'a self) -> BgColorDisplay<'a, BrightBlue, Self>
§fn bright_magenta<'a>(&'a self) -> FgColorDisplay<'a, BrightMagenta, Self>
fn bright_magenta<'a>(&'a self) -> FgColorDisplay<'a, BrightMagenta, Self>
§fn on_bright_magenta<'a>(&'a self) -> BgColorDisplay<'a, BrightMagenta, Self>
fn on_bright_magenta<'a>(&'a self) -> BgColorDisplay<'a, BrightMagenta, Self>
§fn bright_purple<'a>(&'a self) -> FgColorDisplay<'a, BrightMagenta, Self>
fn bright_purple<'a>(&'a self) -> FgColorDisplay<'a, BrightMagenta, Self>
§fn on_bright_purple<'a>(&'a self) -> BgColorDisplay<'a, BrightMagenta, Self>
fn on_bright_purple<'a>(&'a self) -> BgColorDisplay<'a, BrightMagenta, Self>
§fn bright_cyan<'a>(&'a self) -> FgColorDisplay<'a, BrightCyan, Self>
fn bright_cyan<'a>(&'a self) -> FgColorDisplay<'a, BrightCyan, Self>
§fn on_bright_cyan<'a>(&'a self) -> BgColorDisplay<'a, BrightCyan, Self>
fn on_bright_cyan<'a>(&'a self) -> BgColorDisplay<'a, BrightCyan, Self>
§fn bright_white<'a>(&'a self) -> FgColorDisplay<'a, BrightWhite, Self>
fn bright_white<'a>(&'a self) -> FgColorDisplay<'a, BrightWhite, Self>
§fn on_bright_white<'a>(&'a self) -> BgColorDisplay<'a, BrightWhite, Self>
fn on_bright_white<'a>(&'a self) -> BgColorDisplay<'a, BrightWhite, Self>
§fn blink_fast<'a>(&'a self) -> BlinkFastDisplay<'a, Self>
fn blink_fast<'a>(&'a self) -> BlinkFastDisplay<'a, Self>
§fn strikethrough<'a>(&'a self) -> StrikeThroughDisplay<'a, Self>
fn strikethrough<'a>(&'a self) -> StrikeThroughDisplay<'a, Self>
§fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
OwoColorize::fg
or
a color-specific method, such as OwoColorize::green
, Read more§fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
OwoColorize::bg
or
a color-specific method, such as OwoColorize::on_yellow
, Read more