Skip to main content

netbox_openapi/models/
circuits_circuit_terminations_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 CircuitsCircuitTerminationsCreateRequest {
13    #[serde(rename = "circuit")]
14    pub circuit: Box<crate::models::CircuitTerminationRequestCircuit>,
15    /// * `A` - A * `Z` - Z
16    #[serde(rename = "term_side")]
17    pub term_side: TermSide,
18    #[serde(
19        rename = "termination_type",
20        default,
21        with = "::serde_with::rust::double_option",
22        skip_serializing_if = "Option::is_none"
23    )]
24    pub termination_type: Option<Option<String>>,
25    #[serde(
26        rename = "termination_id",
27        default,
28        with = "::serde_with::rust::double_option",
29        skip_serializing_if = "Option::is_none"
30    )]
31    pub termination_id: Option<Option<i32>>,
32    /// Physical circuit speed
33    #[serde(
34        rename = "port_speed",
35        default,
36        with = "::serde_with::rust::double_option",
37        skip_serializing_if = "Option::is_none"
38    )]
39    pub port_speed: Option<Option<i32>>,
40    /// Upstream speed, if different from port speed
41    #[serde(
42        rename = "upstream_speed",
43        default,
44        with = "::serde_with::rust::double_option",
45        skip_serializing_if = "Option::is_none"
46    )]
47    pub upstream_speed: Option<Option<i32>>,
48    /// ID of the local cross-connect
49    #[serde(rename = "xconnect_id", skip_serializing_if = "Option::is_none")]
50    pub xconnect_id: Option<String>,
51    /// Patch panel ID and port number(s)
52    #[serde(rename = "pp_info", skip_serializing_if = "Option::is_none")]
53    pub pp_info: Option<String>,
54    #[serde(rename = "description", skip_serializing_if = "Option::is_none")]
55    pub description: Option<String>,
56    /// Treat as if a cable is connected
57    #[serde(rename = "mark_connected", skip_serializing_if = "Option::is_none")]
58    pub mark_connected: Option<bool>,
59    #[serde(rename = "tags", skip_serializing_if = "Option::is_none")]
60    pub tags: Option<Vec<crate::models::NestedTagRequest>>,
61    #[serde(rename = "custom_fields", skip_serializing_if = "Option::is_none")]
62    pub custom_fields: Option<::std::collections::HashMap<String, serde_json::Value>>,
63}
64
65impl CircuitsCircuitTerminationsCreateRequest {
66    pub fn new(
67        circuit: crate::models::CircuitTerminationRequestCircuit,
68        term_side: TermSide,
69    ) -> CircuitsCircuitTerminationsCreateRequest {
70        CircuitsCircuitTerminationsCreateRequest {
71            circuit: Box::new(circuit),
72            term_side,
73            termination_type: None,
74            termination_id: None,
75            port_speed: None,
76            upstream_speed: None,
77            xconnect_id: None,
78            pp_info: None,
79            description: None,
80            mark_connected: None,
81            tags: None,
82            custom_fields: None,
83        }
84    }
85}
86
87/// * `A` - A * `Z` - Z
88#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
89pub enum TermSide {
90    #[serde(rename = "A")]
91    A,
92    #[serde(rename = "Z")]
93    Z,
94}
95
96impl Default for TermSide {
97    fn default() -> TermSide {
98        Self::A
99    }
100}