Skip to main content

netbox_openapi/models/
data_source.rs

1/*
2 * NetBox REST API
3 *
4 * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
5 *
6 * The version of the OpenAPI document: 4.6.0 (4.6)
7 *
8 * Generated by: https://openapi-generator.tech
9 */
10
11/// DataSource : Base serializer class for models inheriting from PrimaryModel.
12
13#[derive(Clone, Debug, PartialEq, Default, Serialize, Deserialize)]
14pub struct DataSource {
15    #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
16    pub id: Option<i32>,
17    #[serde(rename = "url", skip_serializing_if = "Option::is_none")]
18    pub url: Option<String>,
19    #[serde(rename = "display_url", skip_serializing_if = "Option::is_none")]
20    pub display_url: Option<String>,
21    #[serde(rename = "display", skip_serializing_if = "Option::is_none")]
22    pub display: Option<String>,
23    #[serde(rename = "name")]
24    pub name: String,
25    #[serde(rename = "type")]
26    pub r#type: Box<crate::models::DataSourceType>,
27    #[serde(rename = "source_url")]
28    pub source_url: String,
29    #[serde(rename = "enabled", skip_serializing_if = "Option::is_none")]
30    pub enabled: Option<bool>,
31    #[serde(rename = "status", skip_serializing_if = "Option::is_none")]
32    pub status: Option<Box<crate::models::DataSourceStatus>>,
33    #[serde(rename = "description", skip_serializing_if = "Option::is_none")]
34    pub description: Option<String>,
35    /// * `1` - Minutely * `60` - Hourly * `720` - 12 hours * `1440` - Daily * `10080` - Weekly * `43200` - 30 days
36    #[serde(
37        rename = "sync_interval",
38        default,
39        with = "::serde_with::rust::double_option",
40        skip_serializing_if = "Option::is_none"
41    )]
42    pub sync_interval: Option<Option<SyncInterval>>,
43    #[serde(
44        rename = "parameters",
45        default,
46        with = "::serde_with::rust::double_option",
47        skip_serializing_if = "Option::is_none"
48    )]
49    pub parameters: Option<Option<serde_json::Value>>,
50    /// Patterns (one per line) matching files or paths to ignore when syncing
51    #[serde(rename = "ignore_rules", skip_serializing_if = "Option::is_none")]
52    pub ignore_rules: Option<String>,
53    #[serde(
54        rename = "owner",
55        default,
56        with = "::serde_with::rust::double_option",
57        skip_serializing_if = "Option::is_none"
58    )]
59    pub owner: Option<Option<Box<crate::models::BriefOwner>>>,
60    #[serde(rename = "comments", skip_serializing_if = "Option::is_none")]
61    pub comments: Option<String>,
62    #[serde(rename = "custom_fields", skip_serializing_if = "Option::is_none")]
63    pub custom_fields: Option<::std::collections::HashMap<String, serde_json::Value>>,
64    #[serde(
65        rename = "created",
66        default,
67        with = "::serde_with::rust::double_option",
68        skip_serializing_if = "Option::is_none"
69    )]
70    pub created: Option<Option<String>>,
71    #[serde(
72        rename = "last_updated",
73        default,
74        with = "::serde_with::rust::double_option",
75        skip_serializing_if = "Option::is_none"
76    )]
77    pub last_updated: Option<Option<String>>,
78    #[serde(
79        rename = "last_synced",
80        default,
81        with = "::serde_with::rust::double_option",
82        skip_serializing_if = "Option::is_none"
83    )]
84    pub last_synced: Option<Option<String>>,
85    #[serde(rename = "file_count", skip_serializing_if = "Option::is_none")]
86    pub file_count: Option<i64>,
87}
88
89impl DataSource {
90    /// Base serializer class for models inheriting from PrimaryModel.
91    pub fn new(
92        name: String,
93        r#type: crate::models::DataSourceType,
94        source_url: String,
95    ) -> DataSource {
96        DataSource {
97            id: None,
98            url: None,
99            display_url: None,
100            display: None,
101            name,
102            r#type: Box::new(r#type),
103            source_url,
104            enabled: None,
105            status: None,
106            description: None,
107            sync_interval: None,
108            parameters: None,
109            ignore_rules: None,
110            owner: None,
111            comments: None,
112            custom_fields: None,
113            created: None,
114            last_updated: None,
115            last_synced: None,
116            file_count: None,
117        }
118    }
119}
120
121/// * `1` - Minutely * `60` - Hourly * `720` - 12 hours * `1440` - Daily * `10080` - Weekly * `43200` - 30 days
122#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
123pub enum SyncInterval {
124    #[serde(rename = "1")]
125    Variant1,
126    #[serde(rename = "60")]
127    Variant60,
128    #[serde(rename = "720")]
129    Variant720,
130    #[serde(rename = "1440")]
131    Variant1440,
132    #[serde(rename = "10080")]
133    Variant10080,
134    #[serde(rename = "43200")]
135    Variant43200,
136    #[serde(rename = "null")]
137    Null,
138}
139
140impl Default for SyncInterval {
141    fn default() -> SyncInterval {
142        Self::Variant1
143    }
144}