1#[derive(Clone, Debug, PartialEq, Default, Serialize, Deserialize)]
14pub struct ConfigContext {
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 = "weight", skip_serializing_if = "Option::is_none")]
26 pub weight: Option<i32>,
27 #[serde(
28 rename = "profile",
29 default,
30 with = "::serde_with::rust::double_option",
31 skip_serializing_if = "Option::is_none"
32 )]
33 pub profile: Option<Option<Box<crate::models::BriefConfigContextProfile>>>,
34 #[serde(rename = "description", skip_serializing_if = "Option::is_none")]
35 pub description: Option<String>,
36 #[serde(rename = "is_active", skip_serializing_if = "Option::is_none")]
37 pub is_active: Option<bool>,
38 #[serde(rename = "regions", skip_serializing_if = "Option::is_none")]
39 pub regions: Option<Vec<crate::models::Region>>,
40 #[serde(rename = "site_groups", skip_serializing_if = "Option::is_none")]
41 pub site_groups: Option<Vec<crate::models::SiteGroup>>,
42 #[serde(rename = "sites", skip_serializing_if = "Option::is_none")]
43 pub sites: Option<Vec<crate::models::Site>>,
44 #[serde(rename = "locations", skip_serializing_if = "Option::is_none")]
45 pub locations: Option<Vec<crate::models::Location>>,
46 #[serde(rename = "device_types", skip_serializing_if = "Option::is_none")]
47 pub device_types: Option<Vec<crate::models::DeviceType>>,
48 #[serde(rename = "roles", skip_serializing_if = "Option::is_none")]
49 pub roles: Option<Vec<crate::models::DeviceRole>>,
50 #[serde(rename = "platforms", skip_serializing_if = "Option::is_none")]
51 pub platforms: Option<Vec<crate::models::Platform>>,
52 #[serde(rename = "cluster_types", skip_serializing_if = "Option::is_none")]
53 pub cluster_types: Option<Vec<crate::models::ClusterType>>,
54 #[serde(rename = "cluster_groups", skip_serializing_if = "Option::is_none")]
55 pub cluster_groups: Option<Vec<crate::models::ClusterGroup>>,
56 #[serde(rename = "clusters", skip_serializing_if = "Option::is_none")]
57 pub clusters: Option<Vec<crate::models::Cluster>>,
58 #[serde(rename = "tenant_groups", skip_serializing_if = "Option::is_none")]
59 pub tenant_groups: Option<Vec<crate::models::TenantGroup>>,
60 #[serde(rename = "tenants", skip_serializing_if = "Option::is_none")]
61 pub tenants: Option<Vec<crate::models::Tenant>>,
62 #[serde(rename = "tags", skip_serializing_if = "Option::is_none")]
63 pub tags: Option<Vec<String>>,
64 #[serde(rename = "data_source", skip_serializing_if = "Option::is_none")]
65 pub data_source: Option<Box<crate::models::BriefDataSource>>,
66 #[serde(rename = "data_path", skip_serializing_if = "Option::is_none")]
68 pub data_path: Option<String>,
69 #[serde(rename = "data_file", skip_serializing_if = "Option::is_none")]
70 pub data_file: Option<Box<crate::models::BriefDataFile>>,
71 #[serde(
72 rename = "data_synced",
73 default,
74 with = "::serde_with::rust::double_option",
75 skip_serializing_if = "Option::is_none"
76 )]
77 pub data_synced: Option<Option<String>>,
78 #[serde(rename = "data", deserialize_with = "Option::deserialize")]
79 pub data: Option<serde_json::Value>,
80 #[serde(
81 rename = "created",
82 default,
83 with = "::serde_with::rust::double_option",
84 skip_serializing_if = "Option::is_none"
85 )]
86 pub created: Option<Option<String>>,
87 #[serde(
88 rename = "last_updated",
89 default,
90 with = "::serde_with::rust::double_option",
91 skip_serializing_if = "Option::is_none"
92 )]
93 pub last_updated: Option<Option<String>>,
94}
95
96impl ConfigContext {
97 pub fn new(name: String, data: Option<serde_json::Value>) -> ConfigContext {
99 ConfigContext {
100 id: None,
101 url: None,
102 display_url: None,
103 display: None,
104 name,
105 weight: None,
106 profile: None,
107 description: None,
108 is_active: None,
109 regions: None,
110 site_groups: None,
111 sites: None,
112 locations: None,
113 device_types: None,
114 roles: None,
115 platforms: None,
116 cluster_types: None,
117 cluster_groups: None,
118 clusters: None,
119 tenant_groups: None,
120 tenants: None,
121 tags: None,
122 data_source: None,
123 data_path: None,
124 data_file: None,
125 data_synced: None,
126 data,
127 created: None,
128 last_updated: None,
129 }
130 }
131}