use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct ActionParameter {
#[serde(rename = "key", skip_serializing_if = "Option::is_none")]
pub key: Option<String>,
#[serde(rename = "required", skip_serializing_if = "Option::is_none")]
pub required: Option<bool>,
#[serde(rename = "value", skip_serializing_if = "Option::is_none")]
pub value: Option<String>,
#[serde(rename = "parameterType", skip_serializing_if = "Option::is_none")]
pub parameter_type: Option<ParameterType>,
#[serde(rename = "description", skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
#[serde(rename = "options", skip_serializing_if = "Option::is_none")]
pub options: Option<std::collections::HashMap<String, String>>,
}
impl ActionParameter {
pub fn new() -> ActionParameter {
ActionParameter {
key: None,
required: None,
value: None,
parameter_type: None,
description: None,
options: None,
}
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum ParameterType {
#[serde(rename = "INTEGER")]
Integer,
#[serde(rename = "LONG")]
Long,
#[serde(rename = "STRING")]
String,
#[serde(rename = "BOOLEAN")]
Boolean,
#[serde(rename = "DOUBLE")]
Double,
#[serde(rename = "BIG_DECIMAL")]
BigDecimal,
#[serde(rename = "BIGINTEGER")]
Biginteger,
#[serde(rename = "DATE")]
Date,
#[serde(rename = "DATE_STRING")]
DateString,
#[serde(rename = "OPTION")]
Option,
}
impl Default for ParameterType {
fn default() -> ParameterType {
Self::Integer
}
}