netbox_openapi/models/
circuit.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.4.2-Docker-3.4.1 (4.4)
7 *
8 * Generated by: https://openapi-generator.tech
9 */
10
11/// Circuit : Adds support for custom fields and tags.
12
13#[derive(Clone, Debug, PartialEq, Default, Serialize, Deserialize)]
14pub struct Circuit {
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    /// Unique circuit ID
24    #[serde(rename = "cid")]
25    pub cid: String,
26    #[serde(rename = "provider")]
27    pub provider: Box<crate::models::BriefProvider>,
28    #[serde(
29        rename = "provider_account",
30        default,
31        with = "::serde_with::rust::double_option",
32        skip_serializing_if = "Option::is_none"
33    )]
34    pub provider_account: Option<Option<Box<crate::models::BriefProviderAccount>>>,
35    #[serde(rename = "type")]
36    pub r#type: Box<crate::models::BriefCircuitType>,
37    #[serde(rename = "status", skip_serializing_if = "Option::is_none")]
38    pub status: Option<Box<crate::models::CircuitStatus>>,
39    #[serde(
40        rename = "tenant",
41        default,
42        with = "::serde_with::rust::double_option",
43        skip_serializing_if = "Option::is_none"
44    )]
45    pub tenant: Option<Option<Box<crate::models::BriefTenant>>>,
46    #[serde(
47        rename = "install_date",
48        default,
49        with = "::serde_with::rust::double_option",
50        skip_serializing_if = "Option::is_none"
51    )]
52    pub install_date: Option<Option<String>>,
53    #[serde(
54        rename = "termination_date",
55        default,
56        with = "::serde_with::rust::double_option",
57        skip_serializing_if = "Option::is_none"
58    )]
59    pub termination_date: Option<Option<String>>,
60    /// Committed rate
61    #[serde(
62        rename = "commit_rate",
63        default,
64        with = "::serde_with::rust::double_option",
65        skip_serializing_if = "Option::is_none"
66    )]
67    pub commit_rate: Option<Option<i32>>,
68    #[serde(rename = "description", skip_serializing_if = "Option::is_none")]
69    pub description: Option<String>,
70    #[serde(
71        rename = "distance",
72        default,
73        with = "::serde_with::rust::double_option",
74        skip_serializing_if = "Option::is_none"
75    )]
76    pub distance: Option<Option<f64>>,
77    #[serde(
78        rename = "distance_unit",
79        default,
80        with = "::serde_with::rust::double_option",
81        skip_serializing_if = "Option::is_none"
82    )]
83    pub distance_unit: Option<Option<Box<crate::models::CircuitDistanceUnit>>>,
84    #[serde(
85        rename = "termination_a",
86        default,
87        with = "::serde_with::rust::double_option",
88        skip_serializing_if = "Option::is_none"
89    )]
90    pub termination_a: Option<Option<Box<crate::models::CircuitCircuitTermination>>>,
91    #[serde(
92        rename = "termination_z",
93        default,
94        with = "::serde_with::rust::double_option",
95        skip_serializing_if = "Option::is_none"
96    )]
97    pub termination_z: Option<Option<Box<crate::models::CircuitCircuitTermination>>>,
98    #[serde(rename = "comments", skip_serializing_if = "Option::is_none")]
99    pub comments: Option<String>,
100    #[serde(rename = "tags", skip_serializing_if = "Option::is_none")]
101    pub tags: Option<Vec<crate::models::NestedTag>>,
102    #[serde(rename = "custom_fields", skip_serializing_if = "Option::is_none")]
103    pub custom_fields: Option<::std::collections::HashMap<String, serde_json::Value>>,
104    #[serde(
105        rename = "created",
106        default,
107        with = "::serde_with::rust::double_option",
108        skip_serializing_if = "Option::is_none"
109    )]
110    pub created: Option<Option<String>>,
111    #[serde(
112        rename = "last_updated",
113        default,
114        with = "::serde_with::rust::double_option",
115        skip_serializing_if = "Option::is_none"
116    )]
117    pub last_updated: Option<Option<String>>,
118    #[serde(rename = "assignments", skip_serializing_if = "Option::is_none")]
119    pub assignments: Option<Vec<crate::models::BriefCircuitGroupAssignmentSerializer>>,
120}
121
122impl Circuit {
123    /// Adds support for custom fields and tags.
124    pub fn new(
125        cid: String,
126        provider: crate::models::BriefProvider,
127        r#type: crate::models::BriefCircuitType,
128    ) -> Circuit {
129        Circuit {
130            id: None,
131            url: None,
132            display_url: None,
133            display: None,
134            cid,
135            provider: Box::new(provider),
136            provider_account: None,
137            r#type: Box::new(r#type),
138            status: None,
139            tenant: None,
140            install_date: None,
141            termination_date: None,
142            commit_rate: None,
143            description: None,
144            distance: None,
145            distance_unit: None,
146            termination_a: None,
147            termination_z: None,
148            comments: None,
149            tags: None,
150            custom_fields: None,
151            created: None,
152            last_updated: None,
153            assignments: None,
154        }
155    }
156}