mcai_models/common/
start_parameter_type.rs1use schemars::JsonSchema;
2use serde::{Deserialize, Serialize};
3
4use crate::ListItem;
5
6#[derive(Clone, Debug, Deserialize, JsonSchema, PartialEq, Serialize)]
7#[serde(tag = "type", rename_all = "snake_case", rename = "type")]
8pub enum StartParameterType {
9 File {
10 #[serde(default, skip_serializing_if = "Option::is_none")]
11 default: Option<String>,
12 #[serde(default, skip_serializing_if = "Option::is_none")]
13 value: Option<String>,
14 },
15 Choice {
16 #[serde(default, skip_serializing_if = "Option::is_none")]
17 default: Option<String>,
18 #[serde(default, skip_serializing_if = "Option::is_none")]
19 value: Option<String>,
20 #[serde(default, skip_serializing_if = "Vec::is_empty")]
21 items: Vec<ListItem>,
22 },
23 String {
24 #[serde(default, skip_serializing_if = "Option::is_none")]
25 default: Option<String>,
26 #[serde(default, skip_serializing_if = "Option::is_none")]
27 value: Option<String>,
28 },
29 Number {
30 #[serde(default, skip_serializing_if = "Option::is_none")]
31 default: Option<f64>,
32 #[serde(default, skip_serializing_if = "Option::is_none")]
33 value: Option<f64>,
34 },
35}