Skip to main content

netbox_openapi/models/
circuits_circuits_create_request.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.2 (4.6)
7 *
8 * Generated by: https://openapi-generator.tech
9 */
10
11#[derive(Clone, Debug, PartialEq, Default, Serialize, Deserialize)]
12pub struct CircuitsCircuitsCreateRequest {
13    /// Unique circuit ID
14    #[serde(rename = "cid")]
15    pub cid: String,
16    #[serde(rename = "provider")]
17    pub provider: Box<crate::models::BriefCircuitRequestProvider>,
18    #[serde(
19        rename = "provider_account",
20        default,
21        with = "::serde_with::rust::double_option",
22        skip_serializing_if = "Option::is_none"
23    )]
24    pub provider_account: Option<Option<Box<crate::models::CircuitRequestProviderAccount>>>,
25    #[serde(rename = "type")]
26    pub r#type: Box<crate::models::CircuitRequestType>,
27    /// * `planned` - Planned * `provisioning` - Provisioning * `active` - Active * `offline` - Offline * `deprovisioning` - Deprovisioning * `decommissioned` - Decommissioned
28    #[serde(rename = "status", skip_serializing_if = "Option::is_none")]
29    pub status: Option<Status>,
30    #[serde(
31        rename = "tenant",
32        default,
33        with = "::serde_with::rust::double_option",
34        skip_serializing_if = "Option::is_none"
35    )]
36    pub tenant: Option<Option<Box<crate::models::AsnRangeRequestTenant>>>,
37    #[serde(
38        rename = "install_date",
39        default,
40        with = "::serde_with::rust::double_option",
41        skip_serializing_if = "Option::is_none"
42    )]
43    pub install_date: Option<Option<String>>,
44    #[serde(
45        rename = "termination_date",
46        default,
47        with = "::serde_with::rust::double_option",
48        skip_serializing_if = "Option::is_none"
49    )]
50    pub termination_date: Option<Option<String>>,
51    /// Committed rate
52    #[serde(
53        rename = "commit_rate",
54        default,
55        with = "::serde_with::rust::double_option",
56        skip_serializing_if = "Option::is_none"
57    )]
58    pub commit_rate: Option<Option<i32>>,
59    #[serde(rename = "description", skip_serializing_if = "Option::is_none")]
60    pub description: Option<String>,
61    #[serde(
62        rename = "distance",
63        default,
64        with = "::serde_with::rust::double_option",
65        skip_serializing_if = "Option::is_none"
66    )]
67    pub distance: Option<Option<f64>>,
68    /// * `km` - Kilometers * `m` - Meters * `mi` - Miles * `ft` - Feet
69    #[serde(
70        rename = "distance_unit",
71        default,
72        with = "::serde_with::rust::double_option",
73        skip_serializing_if = "Option::is_none"
74    )]
75    pub distance_unit: Option<Option<DistanceUnit>>,
76    #[serde(
77        rename = "owner",
78        default,
79        with = "::serde_with::rust::double_option",
80        skip_serializing_if = "Option::is_none"
81    )]
82    pub owner: Option<Option<Box<crate::models::AsnRangeRequestOwner>>>,
83    #[serde(rename = "comments", skip_serializing_if = "Option::is_none")]
84    pub comments: Option<String>,
85    #[serde(rename = "tags", skip_serializing_if = "Option::is_none")]
86    pub tags: Option<Vec<crate::models::NestedTagRequest>>,
87    #[serde(rename = "custom_fields", skip_serializing_if = "Option::is_none")]
88    pub custom_fields: Option<::std::collections::HashMap<String, serde_json::Value>>,
89    #[serde(rename = "assignments", skip_serializing_if = "Option::is_none")]
90    pub assignments: Option<Vec<crate::models::BriefCircuitGroupAssignmentSerializerRequest>>,
91}
92
93impl CircuitsCircuitsCreateRequest {
94    pub fn new(
95        cid: String,
96        provider: crate::models::BriefCircuitRequestProvider,
97        r#type: crate::models::CircuitRequestType,
98    ) -> CircuitsCircuitsCreateRequest {
99        CircuitsCircuitsCreateRequest {
100            cid,
101            provider: Box::new(provider),
102            provider_account: None,
103            r#type: Box::new(r#type),
104            status: None,
105            tenant: None,
106            install_date: None,
107            termination_date: None,
108            commit_rate: None,
109            description: None,
110            distance: None,
111            distance_unit: None,
112            owner: None,
113            comments: None,
114            tags: None,
115            custom_fields: None,
116            assignments: None,
117        }
118    }
119}
120
121/// * `planned` - Planned * `provisioning` - Provisioning * `active` - Active * `offline` - Offline * `deprovisioning` - Deprovisioning * `decommissioned` - Decommissioned
122#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
123pub enum Status {
124    #[serde(rename = "planned")]
125    Planned,
126    #[serde(rename = "provisioning")]
127    Provisioning,
128    #[serde(rename = "active")]
129    Active,
130    #[serde(rename = "offline")]
131    Offline,
132    #[serde(rename = "deprovisioning")]
133    Deprovisioning,
134    #[serde(rename = "decommissioned")]
135    Decommissioned,
136}
137
138impl Default for Status {
139    fn default() -> Status {
140        Self::Planned
141    }
142}
143/// * `km` - Kilometers * `m` - Meters * `mi` - Miles * `ft` - Feet
144#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
145pub enum DistanceUnit {
146    #[serde(rename = "km")]
147    Km,
148    #[serde(rename = "m")]
149    M,
150    #[serde(rename = "mi")]
151    Mi,
152    #[serde(rename = "ft")]
153    Ft,
154    #[serde(rename = "")]
155    Empty,
156    #[serde(rename = "null")]
157    Null,
158}
159
160impl Default for DistanceUnit {
161    fn default() -> DistanceUnit {
162        Self::Km
163    }
164}