Skip to main content

ServiceSettingsPayload

Struct ServiceSettingsPayload 

Source
#[non_exhaustive]
pub struct ServiceSettingsPayload { pub renewal_window_hours: u16, pub ca_bundle_hash: String, pub capabilities: BTreeSet<Capability>, pub report_page_limits: ReportPageLimits, pub shutdown_timeout: Option<Duration>, pub ping_interval: Duration, pub tenant_id: Option<Uuid>, pub trust_domain: String, }
Expand description

Payload for service runtime settings pushed by the controller.

Used for both agents and MQTT services. shutdown_timeout is present for agents and None for MQTT services.

Fields (Non-exhaustive)§

This struct is marked as non-exhaustive
Non-exhaustive structs could have additional fields added in future. Therefore, non-exhaustive structs cannot be constructed in external crates using the traditional Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.
§renewal_window_hours: u16§ca_bundle_hash: String§capabilities: BTreeSet<Capability>

Capabilities advertised by the controller.

The service computes the agreed set as the intersection of this set with its own capabilities, considering only typed (known) variants.

§report_page_limits: ReportPageLimits

Per-page item-count limits for paginated service-to-controller reports.

Services must honor these limits when splitting large report_hosts, discovery_results, version_check_results, and batch_update_result payloads across pages.

§shutdown_timeout: Option<Duration>

Maximum time to wait for in-flight operations during shutdown. Present for agents, absent for MQTT services.

Wire field name: shutdown_timeout_seconds (kept for backward compatibility).

§ping_interval: Duration

How often the service should send ping messages. Controller-managed; derived from per-service DB override or service-type default.

§tenant_id: Option<Uuid>

Tenant UUID that this service belongs to.

None for system services (MQTT, scheduler) which are not tenant-scoped. Present for tenant-scoped agents so they can include the tenant identity in external provisioning operations (e.g. PVE API credential naming).

§trust_domain: String

SPIFFE trust domain for Service identity URIs.

Empty string when the Controller has no trust domain configured. Agent falls back to the dialed hostname for SPIFFE SAN generation.

Implementations§

Source§

impl ServiceSettingsPayload

Source

pub fn new(renewal_window_hours: u16, ping_interval: Duration) -> Self

Creates a new ServiceSettingsPayload with the required fields.

Optional fields default to: ca_bundle_hash = empty, capabilities = empty, report_page_limits = default, shutdown_timeout = None, tenant_id = None, trust_domain = empty.

Source

pub fn with_ca_bundle_hash(self, ca_bundle_hash: String) -> Self

Sets the CA bundle hash.

Source

pub fn with_capabilities( self, capabilities: impl IntoIterator<Item = Capability>, ) -> Self

Sets the controller capability set.

Source

pub fn with_report_page_limits( self, report_page_limits: ReportPageLimits, ) -> Self

Sets the report page limits.

Source

pub fn with_shutdown_timeout(self, shutdown_timeout: Duration) -> Self

Sets the graceful-shutdown timeout for agent services.

Source

pub fn with_tenant_id(self, tenant_id: Uuid) -> Self

Sets the tenant UUID for tenant-scoped services.

Source

pub fn with_trust_domain(self, trust_domain: String) -> Self

Sets the SPIFFE trust domain advertised to connecting services.

Trait Implementations§

Source§

impl Clone for ServiceSettingsPayload

Source§

fn clone(&self) -> ServiceSettingsPayload

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for ServiceSettingsPayload

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<'de> Deserialize<'de> for ServiceSettingsPayload

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl Eq for ServiceSettingsPayload

Source§

impl PartialEq for ServiceSettingsPayload

Source§

fn eq(&self, other: &ServiceSettingsPayload) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Serialize for ServiceSettingsPayload

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
Source§

impl StructuralPartialEq for ServiceSettingsPayload

Source§

impl WireValidate for ServiceSettingsPayload

Source§

fn wire_validate(&self) -> Result<(), WireValidationError>

Validate that all fields are within wire protocol size limits.

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more