platz_sdk/resources/
deployment_kinds.rs

1use crate::client::PlatzClient;
2use anyhow::Result;
3use chrono::prelude::*;
4use kv_derive::{prelude::*, IntoVec};
5use serde::Deserialize;
6use uuid::Uuid;
7
8#[derive(Debug, Deserialize, Clone)]
9pub struct DeploymentKind {
10    pub id: Uuid,
11    pub created_at: DateTime<Utc>,
12    pub name: String,
13}
14
15#[derive(Default, IntoVec)]
16pub struct DeploymentKindFilters {
17    #[kv(optional)]
18    pub name: Option<String>,
19}
20
21impl PlatzClient {
22    pub async fn deployment_kinds(
23        &self,
24        filters: DeploymentKindFilters,
25    ) -> Result<Vec<DeploymentKind>> {
26        Ok(self
27            .request(reqwest::Method::GET, "/api/v2/deployment-kinds")
28            .add_to_query(filters.into_vec())
29            .paginated()
30            .await?)
31    }
32
33    pub async fn deployment_kind(&self, deployment_kind_id: Uuid) -> Result<DeploymentKind> {
34        Ok(self
35            .request(
36                reqwest::Method::GET,
37                format!("/api/v2/deployment-kinds/{deployment_kind_id}"),
38            )
39            .send()
40            .await?)
41    }
42}