Skip to main content

hanzo_client/models/
starter_kit.rs

1/*
2 * Hanzo Cloud API
3 *
4 * The Hanzo Cloud API as a customer calls it: every operation under /v1/ except the operator's admin product, relay routes, legacy spellings and capabilities still reached by flag. Tagged by product: the first path segment after /v1/.
5 *
6 * The version of the OpenAPI document: v1
7 * 
8 * Generated by: https://openapi-generator.tech
9 */
10
11use crate::models;
12use serde::{Deserialize, Serialize};
13
14#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
15pub struct StarterKit {
16    /// groups the kit in the gallery browser (\"Portfolio\", \"SaaS\")
17    #[serde(rename = "category", skip_serializing_if = "Option::is_none")]
18    pub category: Option<String>,
19    /// live demo (<slug>.hanzo.app), when deployed
20    #[serde(rename = "demo", skip_serializing_if = "Option::is_none")]
21    pub demo: Option<String>,
22    /// the browse-card blurb
23    #[serde(rename = "description", skip_serializing_if = "Option::is_none")]
24    pub description: Option<String>,
25    /// the highlights the card lists, at most 32
26    #[serde(rename = "features", skip_serializing_if = "Option::is_none")]
27    pub features: Option<Vec<String>>,
28    /// the stack the kit is built on (\"Next.js 14.2 + TS\")
29    #[serde(rename = "framework", skip_serializing_if = "Option::is_none")]
30    pub framework: Option<String>,
31    /// owner of a PRIVATE template; empty in the public catalog
32    #[serde(rename = "org", skip_serializing_if = "Option::is_none")]
33    pub org: Option<String>,
34    /// the still image the browse card renders
35    #[serde(rename = "preview", skip_serializing_if = "Option::is_none")]
36    pub preview: Option<String>,
37    /// Rating is public-gallery curation, on the same terms as Tier: catalog-only, never accepted from a request, absent on a customer's own kit.
38    #[serde(rename = "rating", skip_serializing_if = "Option::is_none")]
39    pub rating: Option<f64>,
40    /// the kit's identity — lowercase alphanumeric with dashes, max 40
41    #[serde(rename = "slug", skip_serializing_if = "Option::is_none")]
42    pub slug: Option<String>,
43    /// the repository the kit is forked from
44    #[serde(rename = "source", skip_serializing_if = "Option::is_none")]
45    pub source: Option<String>,
46    /// Tier is public-gallery curation, carried verbatim from the embedded catalog. No request can set it — neither write body has the field and neither builds a kit carrying one — so it is absent on every customer-published kit.
47    #[serde(rename = "tier", skip_serializing_if = "Option::is_none")]
48    pub tier: Option<i32>,
49    /// display name
50    #[serde(rename = "title", skip_serializing_if = "Option::is_none")]
51    pub title: Option<String>,
52    /// what the kit is for, in a phrase
53    #[serde(rename = "useCase", skip_serializing_if = "Option::is_none")]
54    pub use_case: Option<String>,
55    /// the shapes this template ships in
56    #[serde(rename = "variants", skip_serializing_if = "Option::is_none")]
57    pub variants: Option<Vec<models::Variant>>,
58}
59
60impl StarterKit {
61    pub fn new() -> StarterKit {
62        StarterKit {
63            category: None,
64            demo: None,
65            description: None,
66            features: None,
67            framework: None,
68            org: None,
69            preview: None,
70            rating: None,
71            slug: None,
72            source: None,
73            tier: None,
74            title: None,
75            use_case: None,
76            variants: None,
77        }
78    }
79}
80