Skip to main content

fiberplane_models/providers/
status.rs

1use super::Error;
2#[cfg(feature = "fp-bindgen")]
3use fp_bindgen::prelude::Serializable;
4use serde::{Deserialize, Serialize};
5use typed_builder::TypedBuilder;
6
7/// Response type for status requests.
8///
9/// To be serialized using the `application/vnd.fiberplane.provider-status`
10/// MIME type.
11#[derive(Clone, Debug, Deserialize, PartialEq, Serialize, TypedBuilder)]
12#[cfg_attr(
13    feature = "fp-bindgen",
14    derive(Serializable),
15    fp(rust_module = "fiberplane_models::providers")
16)]
17#[non_exhaustive]
18#[serde(rename_all = "camelCase")]
19pub struct ProviderStatus {
20    /// Indicates whether the provider is available to be queried.
21    pub status: Result<(), Error>,
22
23    /// Version string of the provider.
24    ///
25    /// Arbitrary strings may be used, such as commit hashes, but release
26    /// versions of providers are expected to report semver versions.
27    #[builder(setter(into))]
28    #[serde(default, skip_serializing_if = "String::is_empty")]
29    pub version: String,
30
31    /// Human-readable timestamp at which the provider was built.
32    ///
33    /// Only used for diagnostics.
34    #[builder(default, setter(into))]
35    #[serde(default, skip_serializing_if = "String::is_empty")]
36    pub built_at: String,
37}