pub struct SetNotificationPreferencesRequest {
pub client_operation_id: String,
pub preferences: Option<NotificationPreferences>,
pub expected_version: Vec<u8>,
pub clear_unreadable_scopes: bool,
}Expand description
Atomic settings replacement under expected_version. Read-only projection fields (effective_delivery and next_digest_at, including overrides) are ignored and recomputed, never persisted or used as authority. The server MUST validate every rule and digest interval before writing; invalid delivery or cadence rejects the whole request. Portable helpers complement remaining host validation of timezone, selectors, duplicate overrides and input budgets.
Fields§
§client_operation_id: String§preferences: Option<NotificationPreferences>§expected_version: Vec<u8>§clear_unreadable_scopes: boolDefault false: preserve existing rules AND digest overrides on scopes the caller cannot currently read. Replace only account/currently readable scopes. True explicitly clears ALL unreadable scopes without disclosing their IDs. New unreadable selectors are rejected. Resolve readability transactionally with expected_version; preserve hidden state before checking storage budgets.
Trait Implementations§
Source§impl Message for SetNotificationPreferencesRequest
impl Message for SetNotificationPreferencesRequest
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.