use crate::serde_helpers::double_option;
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct MetadataTaxonomies {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub limit: Option<i64>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub next_marker: Option<Option<String>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub prev_marker: Option<Option<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub entries: Option<Vec<MetadataTaxonomy>>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct MetadataTaxonomy {
pub id: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub key: Option<String>,
#[serde(rename = "displayName")]
pub display_name: String,
pub namespace: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub levels: Option<Vec<MetadataTaxonomyLevel>>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct MetadataTaxonomyAncestor {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub id: Option<String>,
#[serde(
rename = "displayName",
default,
skip_serializing_if = "Option::is_none"
)]
pub display_name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub level: Option<i64>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct MetadataTaxonomyLevel {
#[serde(
rename = "displayName",
default,
skip_serializing_if = "Option::is_none"
)]
pub display_name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub level: Option<i64>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct MetadataTaxonomyLevels {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub entries: Option<Vec<MetadataTaxonomyLevel>>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct MetadataTaxonomyNode {
pub id: String,
#[serde(rename = "displayName")]
pub display_name: String,
pub level: i64,
#[serde(rename = "parentId", default, skip_serializing_if = "Option::is_none")]
pub parent_id: Option<String>,
#[serde(rename = "nodePath", default, skip_serializing_if = "Option::is_none")]
pub node_path: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub ancestors: Option<Vec<MetadataTaxonomyAncestor>>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct MetadataTaxonomyNodes {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub limit: Option<i64>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub next_marker: Option<Option<String>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub prev_marker: Option<Option<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub entries: Option<Vec<MetadataTaxonomyNode>>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct CreateMetadataTaxonomyRequest {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub key: Option<String>,
#[serde(rename = "displayName")]
pub display_name: String,
pub namespace: String,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct UpdateMetadataTaxonomyRequest {
#[serde(rename = "displayName")]
pub display_name: String,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct UpdateLevelRequest {
#[serde(rename = "displayName")]
pub display_name: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct CreateNodesRequest {
#[serde(rename = "displayName")]
pub display_name: String,
pub level: i64,
#[serde(rename = "parentId", default, skip_serializing_if = "Option::is_none")]
pub parent_id: Option<String>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct UpdateNodeRequest {
#[serde(
rename = "displayName",
default,
skip_serializing_if = "Option::is_none"
)]
pub display_name: Option<String>,
}