#[non_exhaustive]pub struct ServiceResponse {Show 17 fields
pub id: Uuid,
pub capabilities: Vec<String>,
pub service_label: String,
pub hostname: String,
pub friendly_name: String,
pub is_embedded: bool,
pub ip_address: Option<String>,
pub status: ServiceStatus,
pub client_version: Option<String>,
pub last_seen_at: Option<OffsetDateTime>,
pub created_at: OffsetDateTime,
pub updated_at: OffsetDateTime,
pub ping_interval_seconds: Option<u32>,
pub cert_lifetime_hours: Option<u32>,
pub yielded_to: Option<Vec<Uuid>>,
pub spiffe_id: Option<String>,
pub cert_serial_number: Option<String>,
}Expand description
Unified response for any service (agent or MQTT).
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.id: Uuid§capabilities: Vec<String>§service_label: String§hostname: String§friendly_name: String§is_embedded: bool§ip_address: Option<String>§status: ServiceStatus§client_version: Option<String>§last_seen_at: Option<OffsetDateTime>§created_at: OffsetDateTime§updated_at: OffsetDateTime§ping_interval_seconds: Option<u32>Custom ping interval override in seconds. None means the
service-profile default is used.
cert_lifetime_hours: Option<u32>Per-service certificate lifetime override in hours. None means the
global default is used.
yielded_to: Option<Vec<Uuid>>External service IDs currently causing this embedded service to yield.
spiffe_id: Option<String>SPIFFE identity URI from the service’s current certificate.
Present only when the controller has a trust domain configured and the service certificate contains a SPIFFE URI SAN.
cert_serial_number: Option<String>Serial number of the most recent non-revoked service certificate.
Populated only on the detail endpoint (GET /api/v1/services/{id}).
Absent (None) on the list endpoint to avoid N+1 queries.
Implementations§
Source§impl ServiceResponse
impl ServiceResponse
pub fn new( id: Uuid, capabilities: Vec<String>, service_label: String, hostname: String, friendly_name: String, is_embedded: bool, ip_address: Option<String>, status: ServiceStatus, client_version: Option<String>, last_seen_at: Option<OffsetDateTime>, created_at: OffsetDateTime, updated_at: OffsetDateTime, ping_interval_seconds: Option<u32>, cert_lifetime_hours: Option<u32>, yielded_to: Option<Vec<Uuid>>, spiffe_id: Option<String>, cert_serial_number: Option<String>, ) -> Self
Trait Implementations§
Source§impl Debug for ServiceResponse
impl Debug for ServiceResponse
Source§impl<'de> Deserialize<'de> for ServiceResponse
impl<'de> Deserialize<'de> for ServiceResponse
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
Auto Trait Implementations§
impl Freeze for ServiceResponse
impl RefUnwindSafe for ServiceResponse
impl Send for ServiceResponse
impl Sync for ServiceResponse
impl Unpin for ServiceResponse
impl UnsafeUnpin for ServiceResponse
impl UnwindSafe for ServiceResponse
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
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
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> ⓘ
Converts
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> ⓘ
Converts
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