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    #[serde(default, skip_serializing_if = "String::is_empty")]
28    pub version: String,
29
30    /// Human-readable timestamp at which the provider was built.
31    ///
32    /// Only used for diagnostics.
33    #[serde(default, skip_serializing_if = "String::is_empty")]
34    pub built_at: String,
35}