pub struct NotificationRule {
pub kind: String,
pub spool: Option<SpoolRef>,
pub actor_origin: String,
pub channel: i32,
pub delivery: i32,
}Expand description
Per-channel stored selector. Empty kind or “*” matches all kinds; empty or “any” actor_origin matches both “human” and “agent”. CHANNEL_UNSPECIFIED matches all channels. Spool rules take precedence over account rules; within a scope exact kind > exact channel > exact origin, with first rule winning ties. IN_APP and PUSH are on/off only (IMMEDIATE or DISABLED). First reject unknown channels/deliveries and UNSPECIFIED delivery with INVALID_ARGUMENT / FIELD_INVALID. Next check the email lock: an email rule matching account_security or security_surface must be IMMEDIATE, regardless of origin or Spool. Attempts to disable or digest their email, including wildcard rules and public unsubscribe, are rejected with FAILED_PRECONDITION / POLICY_DENIED before any write. This lock takes precedence over the email-only DIGEST check: other DIGEST rules on non-email or wildcard channels are rejected with INVALID_ARGUMENT / FIELD_INVALID.
Fields§
§kind: String§spool: Option<SpoolRef>§actor_origin: String§channel: i32§delivery: i32Implementations§
Source§impl NotificationRule
impl NotificationRule
Sourcepub fn channel(&self) -> Channel
pub fn channel(&self) -> Channel
Returns the enum value of channel, or the default if the field is set to an invalid enum value.
Sourcepub fn set_channel(&mut self, value: Channel)
pub fn set_channel(&mut self, value: Channel)
Sets channel to the provided enum value.
Sourcepub fn delivery(&self) -> Delivery
pub fn delivery(&self) -> Delivery
Returns the enum value of delivery, or the default if the field is set to an invalid enum value.
Sourcepub fn set_delivery(&mut self, value: Delivery)
pub fn set_delivery(&mut self, value: Delivery)
Sets delivery to the provided enum value.
Trait Implementations§
Source§impl Clone for NotificationRule
impl Clone for NotificationRule
Source§fn clone(&self) -> NotificationRule
fn clone(&self) -> NotificationRule
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for NotificationRule
impl Debug for NotificationRule
Source§impl Default for NotificationRule
impl Default for NotificationRule
Source§fn default() -> NotificationRule
fn default() -> NotificationRule
impl Eq for NotificationRule
Source§impl Hash for NotificationRule
impl Hash for NotificationRule
Source§impl Message for NotificationRule
impl Message for NotificationRule
Source§fn encoded_len(&self) -> usize
fn encoded_len(&self) -> usize
Source§fn encode(&self, buf: &mut impl BufMut) -> Result<(), EncodeError>where
Self: Sized,
fn encode(&self, buf: &mut impl BufMut) -> Result<(), EncodeError>where
Self: Sized,
Source§fn encode_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
fn encode_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
Source§fn encode_length_delimited(
&self,
buf: &mut impl BufMut,
) -> Result<(), EncodeError>where
Self: Sized,
fn encode_length_delimited(
&self,
buf: &mut impl BufMut,
) -> Result<(), EncodeError>where
Self: Sized,
Source§fn encode_length_delimited_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
fn encode_length_delimited_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
Source§fn decode(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
fn decode(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
Source§fn decode_length_delimited(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
fn decode_length_delimited(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
Source§fn merge(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
fn merge(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
self. Read moreSource§fn merge_length_delimited(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
fn merge_length_delimited(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
self.Source§impl PartialEq for NotificationRule
impl PartialEq for NotificationRule
impl StructuralPartialEq for NotificationRule
Auto Trait Implementations§
impl Freeze for NotificationRule
impl RefUnwindSafe for NotificationRule
impl Send for NotificationRule
impl Sync for NotificationRule
impl Unpin for NotificationRule
impl UnsafeUnpin for NotificationRule
impl UnwindSafe for NotificationRule
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more