#[derive(Clone, Debug, PartialEq, Default, Serialize, Deserialize)]
pub struct ExtrasCustomFieldsCreateRequest {
#[serde(rename = "object_types")]
pub object_types: Vec<String>,
#[serde(rename = "type", skip_serializing_if = "Option::is_none")]
pub r#type: Option<RHashType>,
#[serde(
rename = "related_object_type",
default,
with = "::serde_with::rust::double_option",
skip_serializing_if = "Option::is_none"
)]
pub related_object_type: Option<Option<String>>,
#[serde(rename = "name")]
pub name: String,
#[serde(rename = "label", skip_serializing_if = "Option::is_none")]
pub label: Option<String>,
#[serde(rename = "group_name", skip_serializing_if = "Option::is_none")]
pub group_name: Option<String>,
#[serde(rename = "description", skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
#[serde(rename = "required", skip_serializing_if = "Option::is_none")]
pub required: Option<bool>,
#[serde(rename = "unique", skip_serializing_if = "Option::is_none")]
pub unique: Option<bool>,
#[serde(rename = "search_weight", skip_serializing_if = "Option::is_none")]
pub search_weight: Option<i32>,
#[serde(rename = "filter_logic", skip_serializing_if = "Option::is_none")]
pub filter_logic: Option<FilterLogic>,
#[serde(rename = "ui_visible", skip_serializing_if = "Option::is_none")]
pub ui_visible: Option<UiVisible>,
#[serde(rename = "ui_editable", skip_serializing_if = "Option::is_none")]
pub ui_editable: Option<UiEditable>,
#[serde(rename = "is_cloneable", skip_serializing_if = "Option::is_none")]
pub is_cloneable: Option<bool>,
#[serde(
rename = "default",
default,
with = "::serde_with::rust::double_option",
skip_serializing_if = "Option::is_none"
)]
pub default: Option<Option<serde_json::Value>>,
#[serde(
rename = "related_object_filter",
default,
with = "::serde_with::rust::double_option",
skip_serializing_if = "Option::is_none"
)]
pub related_object_filter: Option<Option<serde_json::Value>>,
#[serde(rename = "weight", skip_serializing_if = "Option::is_none")]
pub weight: Option<i32>,
#[serde(
rename = "validation_minimum",
default,
with = "::serde_with::rust::double_option",
skip_serializing_if = "Option::is_none"
)]
pub validation_minimum: Option<Option<f64>>,
#[serde(
rename = "validation_maximum",
default,
with = "::serde_with::rust::double_option",
skip_serializing_if = "Option::is_none"
)]
pub validation_maximum: Option<Option<f64>>,
#[serde(rename = "validation_regex", skip_serializing_if = "Option::is_none")]
pub validation_regex: Option<String>,
#[serde(
rename = "validation_schema",
default,
with = "::serde_with::rust::double_option",
skip_serializing_if = "Option::is_none"
)]
pub validation_schema: Option<Option<serde_json::Value>>,
#[serde(
rename = "choice_set",
default,
with = "::serde_with::rust::double_option",
skip_serializing_if = "Option::is_none"
)]
pub choice_set: Option<Option<Box<crate::models::CustomFieldRequestChoiceSet>>>,
#[serde(
rename = "owner",
default,
with = "::serde_with::rust::double_option",
skip_serializing_if = "Option::is_none"
)]
pub owner: Option<Option<Box<crate::models::AsnRangeRequestOwner>>>,
#[serde(rename = "comments", skip_serializing_if = "Option::is_none")]
pub comments: Option<String>,
}
impl ExtrasCustomFieldsCreateRequest {
pub fn new(object_types: Vec<String>, name: String) -> ExtrasCustomFieldsCreateRequest {
ExtrasCustomFieldsCreateRequest {
object_types,
r#type: None,
related_object_type: None,
name,
label: None,
group_name: None,
description: None,
required: None,
unique: None,
search_weight: None,
filter_logic: None,
ui_visible: None,
ui_editable: None,
is_cloneable: None,
default: None,
related_object_filter: None,
weight: None,
validation_minimum: None,
validation_maximum: None,
validation_regex: None,
validation_schema: None,
choice_set: None,
owner: None,
comments: None,
}
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum RHashType {
#[serde(rename = "text")]
Text,
#[serde(rename = "longtext")]
Longtext,
#[serde(rename = "integer")]
Integer,
#[serde(rename = "decimal")]
Decimal,
#[serde(rename = "boolean")]
Boolean,
#[serde(rename = "date")]
Date,
#[serde(rename = "datetime")]
Datetime,
#[serde(rename = "url")]
Url,
#[serde(rename = "json")]
Json,
#[serde(rename = "select")]
Select,
#[serde(rename = "multiselect")]
Multiselect,
#[serde(rename = "object")]
Object,
#[serde(rename = "multiobject")]
Multiobject,
}
impl Default for RHashType {
fn default() -> RHashType {
Self::Text
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum FilterLogic {
#[serde(rename = "disabled")]
Disabled,
#[serde(rename = "loose")]
Loose,
#[serde(rename = "exact")]
Exact,
}
impl Default for FilterLogic {
fn default() -> FilterLogic {
Self::Disabled
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum UiVisible {
#[serde(rename = "always")]
Always,
#[serde(rename = "if-set")]
IfSet,
#[serde(rename = "hidden")]
Hidden,
}
impl Default for UiVisible {
fn default() -> UiVisible {
Self::Always
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum UiEditable {
#[serde(rename = "yes")]
Yes,
#[serde(rename = "no")]
No,
#[serde(rename = "hidden")]
Hidden,
}
impl Default for UiEditable {
fn default() -> UiEditable {
Self::Yes
}
}