netbox_openapi/models/
data_source_request.rs1#[derive(Clone, Debug, PartialEq, Default, Serialize, Deserialize)]
14pub struct DataSourceRequest {
15 #[serde(rename = "name")]
16 pub name: String,
17 #[serde(rename = "type")]
19 pub r#type: RHashType,
20 #[serde(rename = "source_url")]
21 pub source_url: String,
22 #[serde(rename = "enabled", skip_serializing_if = "Option::is_none")]
23 pub enabled: Option<bool>,
24 #[serde(rename = "description", skip_serializing_if = "Option::is_none")]
25 pub description: Option<String>,
26 #[serde(
28 rename = "sync_interval",
29 default,
30 with = "::serde_with::rust::double_option",
31 skip_serializing_if = "Option::is_none"
32 )]
33 pub sync_interval: Option<Option<SyncInterval>>,
34 #[serde(
35 rename = "parameters",
36 default,
37 with = "::serde_with::rust::double_option",
38 skip_serializing_if = "Option::is_none"
39 )]
40 pub parameters: Option<Option<serde_json::Value>>,
41 #[serde(rename = "ignore_rules", skip_serializing_if = "Option::is_none")]
43 pub ignore_rules: Option<String>,
44 #[serde(rename = "comments", skip_serializing_if = "Option::is_none")]
45 pub comments: Option<String>,
46 #[serde(rename = "custom_fields", skip_serializing_if = "Option::is_none")]
47 pub custom_fields: Option<::std::collections::HashMap<String, serde_json::Value>>,
48}
49
50impl DataSourceRequest {
51 pub fn new(name: String, r#type: RHashType, source_url: String) -> DataSourceRequest {
53 DataSourceRequest {
54 name,
55 r#type,
56 source_url,
57 enabled: None,
58 description: None,
59 sync_interval: None,
60 parameters: None,
61 ignore_rules: None,
62 comments: None,
63 custom_fields: None,
64 }
65 }
66}
67
68#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
70pub enum RHashType {
71 #[serde(rename = "null")]
72 Null,
73 #[serde(rename = "local")]
74 Local,
75 #[serde(rename = "git")]
76 Git,
77 #[serde(rename = "amazon-s3")]
78 AmazonS3,
79}
80
81impl Default for RHashType {
82 fn default() -> RHashType {
83 Self::Null
84 }
85}
86#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
88pub enum SyncInterval {
89 #[serde(rename = "1")]
90 Variant1,
91 #[serde(rename = "60")]
92 Variant60,
93 #[serde(rename = "720")]
94 Variant720,
95 #[serde(rename = "1440")]
96 Variant1440,
97 #[serde(rename = "10080")]
98 Variant10080,
99 #[serde(rename = "43200")]
100 Variant43200,
101 #[serde(rename = "null")]
102 Null,
103}
104
105impl Default for SyncInterval {
106 fn default() -> SyncInterval {
107 Self::Variant1
108 }
109}