pub struct ReviseSpoolRequest {
pub client_operation_id: String,
pub spool: Option<SpoolRef>,
pub expected_version: Vec<u8>,
pub name: String,
pub settings: Option<SpoolSettings>,
pub slug: Option<String>,
pub settings_mask: Option<FieldMask>,
}Expand description
Compare and replace display name and patch selected settings atomically. The stable UUID, parent, and immutable owner genesis are unchanged. Owner signature is not a prerequisite. The mere existence of a signed-policy tip does not block this RPC (independent CAS from expected_head). settings.audience / default_state_audience are bounded by the standing inherited max_audience (this spool and ancestors). Exceeding it is PERMISSION_DENIED.
Fields§
§client_operation_id: String§spool: Option<SpoolRef>§expected_version: Vec<u8>§name: String§settings: Option<SpoolSettings>§slug: Option<String>Optional new single address segment. Omission retains the current slug. Rename updates descendant addresses in the same transaction and preserves UUID-based references, grants and ownership. Empty is invalid when present.
settings_mask: Option<FieldMask>Paths relative to settings: only the ten top-level SpoolSettings field names are valid. Nested paths, wildcards, unknown and duplicate paths are INVALID_ARGUMENT. Omitted/empty mask leaves every setting unchanged; settings values outside the mask are ignored, even on a filtered overview. A selected path sets its supplied value, including false/empty/UNSPECIFIED. An absent selected message explicitly clears it (settings may be absent). Clears/reset-to-default require permission to read AND clear the current value. Replacing default_thread or default_review_policy also removes the current caller-filtered reference and requires that permission; setting an equal reference does not. Independently validate permission for the new target. Deny atomically with PERMISSION_DENIED and no hidden-value details. Bind the stored-value check and update to the same expected_version and recheck live authorization at commit. Validate resulting audience/policy together; no partial apply. There is no complete-record mode.
Implementations§
Trait Implementations§
Source§impl Clone for ReviseSpoolRequest
impl Clone for ReviseSpoolRequest
Source§fn clone(&self) -> ReviseSpoolRequest
fn clone(&self) -> ReviseSpoolRequest
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 ReviseSpoolRequest
impl Debug for ReviseSpoolRequest
Source§impl Default for ReviseSpoolRequest
impl Default for ReviseSpoolRequest
Source§fn default() -> ReviseSpoolRequest
fn default() -> ReviseSpoolRequest
impl Eq for ReviseSpoolRequest
Source§impl Hash for ReviseSpoolRequest
impl Hash for ReviseSpoolRequest
Source§impl Message for ReviseSpoolRequest
impl Message for ReviseSpoolRequest
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 ReviseSpoolRequest
impl PartialEq for ReviseSpoolRequest
impl StructuralPartialEq for ReviseSpoolRequest
Auto Trait Implementations§
impl Freeze for ReviseSpoolRequest
impl RefUnwindSafe for ReviseSpoolRequest
impl Send for ReviseSpoolRequest
impl Sync for ReviseSpoolRequest
impl Unpin for ReviseSpoolRequest
impl UnsafeUnpin for ReviseSpoolRequest
impl UnwindSafe for ReviseSpoolRequest
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