1#[derive(Clone, Debug, PartialEq, Default, Serialize, Deserialize)]
14pub struct CustomFieldRequest {
15 #[serde(rename = "object_types")]
16 pub object_types: Vec<String>,
17 #[serde(rename = "type")]
19 pub r#type: RHashType,
20 #[serde(
21 rename = "related_object_type",
22 default,
23 with = "::serde_with::rust::double_option",
24 skip_serializing_if = "Option::is_none"
25 )]
26 pub related_object_type: Option<Option<String>>,
27 #[serde(rename = "name")]
29 pub name: String,
30 #[serde(rename = "label", skip_serializing_if = "Option::is_none")]
32 pub label: Option<String>,
33 #[serde(rename = "group_name", skip_serializing_if = "Option::is_none")]
35 pub group_name: Option<String>,
36 #[serde(rename = "description", skip_serializing_if = "Option::is_none")]
37 pub description: Option<String>,
38 #[serde(rename = "required", skip_serializing_if = "Option::is_none")]
40 pub required: Option<bool>,
41 #[serde(rename = "unique", skip_serializing_if = "Option::is_none")]
43 pub unique: Option<bool>,
44 #[serde(rename = "search_weight", skip_serializing_if = "Option::is_none")]
46 pub search_weight: Option<i32>,
47 #[serde(rename = "filter_logic", skip_serializing_if = "Option::is_none")]
49 pub filter_logic: Option<FilterLogic>,
50 #[serde(rename = "ui_visible", skip_serializing_if = "Option::is_none")]
52 pub ui_visible: Option<UiVisible>,
53 #[serde(rename = "ui_editable", skip_serializing_if = "Option::is_none")]
55 pub ui_editable: Option<UiEditable>,
56 #[serde(rename = "is_cloneable", skip_serializing_if = "Option::is_none")]
58 pub is_cloneable: Option<bool>,
59 #[serde(
61 rename = "default",
62 default,
63 with = "::serde_with::rust::double_option",
64 skip_serializing_if = "Option::is_none"
65 )]
66 pub default: Option<Option<serde_json::Value>>,
67 #[serde(
69 rename = "related_object_filter",
70 default,
71 with = "::serde_with::rust::double_option",
72 skip_serializing_if = "Option::is_none"
73 )]
74 pub related_object_filter: Option<Option<serde_json::Value>>,
75 #[serde(rename = "weight", skip_serializing_if = "Option::is_none")]
77 pub weight: Option<i32>,
78 #[serde(
80 rename = "validation_minimum",
81 default,
82 with = "::serde_with::rust::double_option",
83 skip_serializing_if = "Option::is_none"
84 )]
85 pub validation_minimum: Option<Option<f64>>,
86 #[serde(
88 rename = "validation_maximum",
89 default,
90 with = "::serde_with::rust::double_option",
91 skip_serializing_if = "Option::is_none"
92 )]
93 pub validation_maximum: Option<Option<f64>>,
94 #[serde(rename = "validation_regex", skip_serializing_if = "Option::is_none")]
96 pub validation_regex: Option<String>,
97 #[serde(
99 rename = "validation_schema",
100 default,
101 with = "::serde_with::rust::double_option",
102 skip_serializing_if = "Option::is_none"
103 )]
104 pub validation_schema: Option<Option<serde_json::Value>>,
105 #[serde(
106 rename = "choice_set",
107 default,
108 with = "::serde_with::rust::double_option",
109 skip_serializing_if = "Option::is_none"
110 )]
111 pub choice_set: Option<Option<Box<crate::models::CustomFieldRequestChoiceSet>>>,
112 #[serde(
113 rename = "owner",
114 default,
115 with = "::serde_with::rust::double_option",
116 skip_serializing_if = "Option::is_none"
117 )]
118 pub owner: Option<Option<Box<crate::models::AsnRangeRequestOwner>>>,
119 #[serde(rename = "comments", skip_serializing_if = "Option::is_none")]
120 pub comments: Option<String>,
121}
122
123impl CustomFieldRequest {
124 pub fn new(object_types: Vec<String>, r#type: RHashType, name: String) -> CustomFieldRequest {
126 CustomFieldRequest {
127 object_types,
128 r#type,
129 related_object_type: None,
130 name,
131 label: None,
132 group_name: None,
133 description: None,
134 required: None,
135 unique: None,
136 search_weight: None,
137 filter_logic: None,
138 ui_visible: None,
139 ui_editable: None,
140 is_cloneable: None,
141 default: None,
142 related_object_filter: None,
143 weight: None,
144 validation_minimum: None,
145 validation_maximum: None,
146 validation_regex: None,
147 validation_schema: None,
148 choice_set: None,
149 owner: None,
150 comments: None,
151 }
152 }
153}
154
155#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
157pub enum RHashType {
158 #[serde(rename = "text")]
159 Text,
160 #[serde(rename = "longtext")]
161 Longtext,
162 #[serde(rename = "integer")]
163 Integer,
164 #[serde(rename = "decimal")]
165 Decimal,
166 #[serde(rename = "boolean")]
167 Boolean,
168 #[serde(rename = "date")]
169 Date,
170 #[serde(rename = "datetime")]
171 Datetime,
172 #[serde(rename = "url")]
173 Url,
174 #[serde(rename = "json")]
175 Json,
176 #[serde(rename = "select")]
177 Select,
178 #[serde(rename = "multiselect")]
179 Multiselect,
180 #[serde(rename = "object")]
181 Object,
182 #[serde(rename = "multiobject")]
183 Multiobject,
184}
185
186impl Default for RHashType {
187 fn default() -> RHashType {
188 Self::Text
189 }
190}
191#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
193pub enum FilterLogic {
194 #[serde(rename = "disabled")]
195 Disabled,
196 #[serde(rename = "loose")]
197 Loose,
198 #[serde(rename = "exact")]
199 Exact,
200}
201
202impl Default for FilterLogic {
203 fn default() -> FilterLogic {
204 Self::Disabled
205 }
206}
207#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
209pub enum UiVisible {
210 #[serde(rename = "always")]
211 Always,
212 #[serde(rename = "if-set")]
213 IfSet,
214 #[serde(rename = "hidden")]
215 Hidden,
216}
217
218impl Default for UiVisible {
219 fn default() -> UiVisible {
220 Self::Always
221 }
222}
223#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
225pub enum UiEditable {
226 #[serde(rename = "yes")]
227 Yes,
228 #[serde(rename = "no")]
229 No,
230 #[serde(rename = "hidden")]
231 Hidden,
232}
233
234impl Default for UiEditable {
235 fn default() -> UiEditable {
236 Self::Yes
237 }
238}