#![cfg(feature = "docker_version")]
#![allow(clippy::too_many_arguments, clippy::type_complexity)]
#![allow(
clippy::missing_errors_doc,
clippy::doc_markdown,
clippy::useless_format
)]
#![allow(unused_imports)]
use foundation_macros::JsonHash;
use foundation_netio::shared::client::http_client::HttpClient;
use foundation_netio::{DynNetClient, PreparedRequestBuilder};
use serde::{Deserialize, Serialize};
use super::shared::ApiResponse;
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct SystemVersion {
#[serde(rename = "ApiVersion")]
pub api_version: Option<String>,
#[serde(rename = "Arch")]
pub arch: Option<String>,
#[serde(rename = "BuildTime")]
pub build_time: Option<String>,
#[serde(rename = "Components")]
pub components: Option<Vec<std::collections::HashMap<String, serde_json::Value>>>,
#[serde(rename = "Experimental")]
pub experimental: Option<bool>,
#[serde(rename = "GitCommit")]
pub git_commit: Option<String>,
#[serde(rename = "GoVersion")]
pub go_version: Option<String>,
#[serde(rename = "KernelVersion")]
pub kernel_version: Option<String>,
#[serde(rename = "MinAPIVersion")]
pub min_api_version: Option<String>,
#[serde(rename = "Os")]
pub os: Option<String>,
#[serde(rename = "Platform")]
pub platform: Option<std::collections::HashMap<String, serde_json::Value>>,
#[serde(rename = "Version")]
pub version: Option<String>,
}
pub type SystemVersionArgs = super::shared::EmptyArgs;
pub async fn system_version_request<F>(
client: impl Into<super::shared::ApiClient>,
_args: &SystemVersionArgs,
base_url: &str,
builder_mod: Option<F>,
) -> Result<ApiResponse<SystemVersion>, super::shared::ApiError>
where
F: FnOnce(&mut PreparedRequestBuilder),
{
let path = format!("/version",);
let endpoint_url = format!("{}{}", base_url, path);
let mut builder = PreparedRequestBuilder::get(&endpoint_url)
.map_err(|e| super::shared::ApiError::RequestBuildFailed(e.to_string()))?;
if let Some(f) = builder_mod {
f(&mut builder);
}
super::shared::send_json(client.into(), builder.build()).await
}