Skip to main content

hanzo_client/models/
projects_fork.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 ProjectsFork {
16    /// target project name (optional; defaults to the parent's title)
17    #[serde(rename = "name", skip_serializing_if = "Option::is_none")]
18    pub name: Option<String>,
19    /// parent slug to fork — catalog template or published project (required)
20    #[serde(rename = "slug", skip_serializing_if = "Option::is_none")]
21    pub slug: Option<String>,
22    /// Target overrides the derived project slug (optional; defaults to the parent slug). Kept distinct from Slug so callers can rename on fork.
23    #[serde(rename = "target", skip_serializing_if = "Option::is_none")]
24    pub target: Option<String>,
25    /// Variant picks a template's format/page/theme (optional; defaults to the template's first shape). This is the axis the catalog used to spend sibling slugs on, so it is expressed here, where the user's preference is.
26    #[serde(rename = "variant", skip_serializing_if = "Option::is_none")]
27    pub variant: Option<String>,
28}
29
30impl ProjectsFork {
31    pub fn new() -> ProjectsFork {
32        ProjectsFork {
33            name: None,
34            slug: None,
35            target: None,
36            variant: None,
37        }
38    }
39}
40