pub struct Indicator {
pub kind: String,
pub value: String,
pub context: Option<String>,
pub first_seen: Option<String>,
}Expand description
An indicator of compromise. kind is an open vocabulary so plugins can
emit kinds the SDK doesn’t know about yet; the frontend renders any kind.
Common values: sha256, md5, sha1, ipv4, ipv6, domain, url,
email, mutex, registry, filepath, yara_rule.
Fields§
§kind: StringIOC type (e.g. "sha256", "ipv4", "domain", "mutex").
value: StringThe indicator value itself (a hash, IP, URL, etc.).
context: Option<String>Optional context describing where or how this IOC was observed.
first_seen: Option<String>Optional ISO-8601 timestamp of when the IOC was first seen.
Implementations§
Source§impl Indicator
impl Indicator
Sourcepub fn new(kind: impl Into<String>, value: impl Into<String>) -> Self
pub fn new(kind: impl Into<String>, value: impl Into<String>) -> Self
Create an indicator with a type and value (e.g. "sha256", "abcd1234...").
Sourcepub fn context(self, context: impl Into<String>) -> Self
pub fn context(self, context: impl Into<String>) -> Self
Attach context describing where this IOC was observed.
Sourcepub fn first_seen(self, ts: impl Into<String>) -> Self
pub fn first_seen(self, ts: impl Into<String>) -> Self
Set the timestamp when this IOC was first observed.
Trait Implementations§
Source§impl<'de> Deserialize<'de> for Indicator
impl<'de> Deserialize<'de> for Indicator
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
impl Eq for Indicator
impl StructuralPartialEq for Indicator
Auto Trait Implementations§
impl Freeze for Indicator
impl RefUnwindSafe for Indicator
impl Send for Indicator
impl Sync for Indicator
impl Unpin for Indicator
impl UnsafeUnpin for Indicator
impl UnwindSafe for Indicator
Blanket Implementations§
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
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Checks if this value is equivalent to the given key. Read more
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.§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>
§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a tonic::Request§impl<L> LayerExt<L> for L
impl<L> LayerExt<L> for L
§fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
Applies the layer to a service and wraps it in [
Layered].