#[non_exhaustive]pub struct ComponentProperties {
pub children: Option<Vec<Component>>,
pub is_visible: Option<ComponentPropertiesIsVisible>,
pub additional_properties: BTreeMap<String, Value>,
/* private fields */
}
Expand description
Properties of a UI component. Different component types can have their own additional unique properties. See the components documentation for more detail on each component type and its properties.
Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Non-exhaustive structs could have additional fields added in future. Therefore, non-exhaustive structs cannot be constructed in external crates using the traditional
Struct { .. }
syntax; cannot be matched against without a wildcard ..
; and struct update syntax will not work.children: Option<Vec<Component>>
The child components of the UI component.
is_visible: Option<ComponentPropertiesIsVisible>
Whether the UI component is visible. If this is a string, it must be a valid JavaScript expression that evaluates to a boolean.
additional_properties: BTreeMap<String, Value>
Implementations§
Source§impl ComponentProperties
impl ComponentProperties
Sourcepub fn new() -> ComponentProperties
pub fn new() -> ComponentProperties
Examples found in repository?
examples/v2_app-builder_CreateApp.rs (line 54)
36async fn main() {
37 let body =
38 CreateAppRequest
39 ::new().data(
40 CreateAppRequestData::new(
41 AppDefinitionType::APPDEFINITIONS,
42 ).attributes(
43 CreateAppRequestDataAttributes::new()
44 .components(
45 vec![
46 ComponentGrid::new(
47 "grid0".to_string(),
48 ComponentGridProperties::new()
49 .background_color("default".to_string())
50 .children(
51 vec![
52 Component::new(
53 "gridCell0".to_string(),
54 ComponentProperties::new()
55 .children(
56 vec![
57 Component::new(
58 "text0".to_string(),
59 ComponentProperties
60 ::new().is_visible(
61 ComponentPropertiesIsVisible::Bool(true),
62 ),
63 ComponentType::TEXT,
64 ).events(vec![])
65 ],
66 )
67 .is_visible(
68 ComponentPropertiesIsVisible::String("true".to_string()),
69 ),
70 ComponentType::GRIDCELL,
71 ).events(vec![]),
72 Component::new(
73 "gridCell2".to_string(),
74 ComponentProperties::new()
75 .children(
76 vec![
77 Component::new(
78 "table0".to_string(),
79 ComponentProperties
80 ::new().is_visible(
81 ComponentPropertiesIsVisible::Bool(true),
82 ),
83 ComponentType::TABLE,
84 ).events(vec![])
85 ],
86 )
87 .is_visible(
88 ComponentPropertiesIsVisible::String("true".to_string()),
89 ),
90 ComponentType::GRIDCELL,
91 ).events(vec![]),
92 Component::new(
93 "gridCell1".to_string(),
94 ComponentProperties::new()
95 .children(
96 vec![
97 Component::new(
98 "text1".to_string(),
99 ComponentProperties
100 ::new().is_visible(
101 ComponentPropertiesIsVisible::Bool(true),
102 ),
103 ComponentType::TEXT,
104 ).events(vec![])
105 ],
106 )
107 .is_visible(
108 ComponentPropertiesIsVisible::String("true".to_string()),
109 ),
110 ComponentType::GRIDCELL,
111 ).events(vec![]),
112 Component::new(
113 "gridCell3".to_string(),
114 ComponentProperties::new()
115 .children(
116 vec![
117 Component::new(
118 "button0".to_string(),
119 ComponentProperties
120 ::new().is_visible(
121 ComponentPropertiesIsVisible::Bool(true),
122 ),
123 ComponentType::BUTTON,
124 ).events(
125 vec![
126 AppBuilderEvent::new()
127 .name(AppBuilderEventName::CLICK)
128 .type_(
129 AppBuilderEventType::SETSTATEVARIABLEVALUE,
130 )
131 ],
132 )
133 ],
134 )
135 .is_visible(
136 ComponentPropertiesIsVisible::String("true".to_string()),
137 ),
138 ComponentType::GRIDCELL,
139 ).events(vec![]),
140 Component::new(
141 "gridCell4".to_string(),
142 ComponentProperties::new()
143 .children(
144 vec![
145 Component::new(
146 "button1".to_string(),
147 ComponentProperties
148 ::new().is_visible(
149 ComponentPropertiesIsVisible::Bool(true),
150 ),
151 ComponentType::BUTTON,
152 ).events(
153 vec![
154 AppBuilderEvent::new()
155 .name(AppBuilderEventName::CLICK)
156 .type_(
157 AppBuilderEventType::SETSTATEVARIABLEVALUE,
158 )
159 ],
160 )
161 ],
162 )
163 .is_visible(
164 ComponentPropertiesIsVisible::String("true".to_string()),
165 ),
166 ComponentType::GRIDCELL,
167 ).events(vec![])
168 ],
169 ),
170 ComponentGridType::GRID,
171 ).events(vec![])
172 ],
173 )
174 .description(
175 "This is a slightly complicated example app that fetches and displays cat facts".to_string(),
176 )
177 .name("Example Cat Facts Viewer".to_string())
178 .queries(
179 vec![
180 Query::ActionQuery(
181 Box::new(
182 ActionQuery::new(
183 Uuid::parse_str(
184 "92ff0bb8-553b-4f31-87c7-ef5bd16d47d5",
185 ).expect("invalid UUID"),
186 "fetchFacts".to_string(),
187 ActionQueryProperties::new(
188 ActionQuerySpec::ActionQuerySpecObject(
189 Box::new(
190 ActionQuerySpecObject::new(
191 "com.datadoghq.http.request".to_string(),
192 )
193 .connection_id(
194 "5e63f4a8-4ce6-47de-ba11-f6617c1d54f3".to_string(),
195 )
196 .inputs(
197 ActionQuerySpecInputs::ActionQuerySpecInput(
198 BTreeMap::from(
199 [
200 ("verb".to_string(), Value::from("GET")),
201 (
202 "url".to_string(),
203 Value::from(
204 "https://catfact.ninja/facts",
205 ),
206 ),
207 ],
208 ),
209 ),
210 ),
211 ),
212 ),
213 ),
214 ActionQueryType::ACTION,
215 ).events(vec![]),
216 ),
217 ),
218 Query::StateVariable(
219 Box::new(
220 StateVariable::new(
221 Uuid::parse_str(
222 "afd03c81-4075-4432-8618-ba09d52d2f2d",
223 ).expect("invalid UUID"),
224 "pageSize".to_string(),
225 StateVariableProperties::new().default_value(Value::from("${20}")),
226 StateVariableType::STATEVARIABLE,
227 ),
228 ),
229 ),
230 Query::DataTransform(
231 Box::new(
232 DataTransform::new(
233 Uuid::parse_str(
234 "0fb22859-47dc-4137-9e41-7b67d04c525c",
235 ).expect("invalid UUID"),
236 "randomFact".to_string(),
237 DataTransformProperties
238 ::new().outputs(
239 r#"${(() => {const facts = fetchFacts.outputs.body.data
240return facts[Math.floor(Math.random()*facts.length)]
241})()}"#.to_string(),
242 ),
243 DataTransformType::DATATRANSFORM,
244 ),
245 ),
246 )
247 ],
248 )
249 .root_instance_name("grid0".to_string()),
250 ),
251 );
252 let configuration = datadog::Configuration::new();
253 let api = AppBuilderAPI::with_config(configuration);
254 let resp = api.create_app(body).await;
255 if let Ok(value) = resp {
256 println!("{:#?}", value);
257 } else {
258 println!("{:#?}", resp.unwrap_err());
259 }
260}
Sourcepub fn children(self, value: Vec<Component>) -> Self
pub fn children(self, value: Vec<Component>) -> Self
Examples found in repository?
examples/v2_app-builder_CreateApp.rs (lines 55-66)
36async fn main() {
37 let body =
38 CreateAppRequest
39 ::new().data(
40 CreateAppRequestData::new(
41 AppDefinitionType::APPDEFINITIONS,
42 ).attributes(
43 CreateAppRequestDataAttributes::new()
44 .components(
45 vec![
46 ComponentGrid::new(
47 "grid0".to_string(),
48 ComponentGridProperties::new()
49 .background_color("default".to_string())
50 .children(
51 vec![
52 Component::new(
53 "gridCell0".to_string(),
54 ComponentProperties::new()
55 .children(
56 vec![
57 Component::new(
58 "text0".to_string(),
59 ComponentProperties
60 ::new().is_visible(
61 ComponentPropertiesIsVisible::Bool(true),
62 ),
63 ComponentType::TEXT,
64 ).events(vec![])
65 ],
66 )
67 .is_visible(
68 ComponentPropertiesIsVisible::String("true".to_string()),
69 ),
70 ComponentType::GRIDCELL,
71 ).events(vec![]),
72 Component::new(
73 "gridCell2".to_string(),
74 ComponentProperties::new()
75 .children(
76 vec![
77 Component::new(
78 "table0".to_string(),
79 ComponentProperties
80 ::new().is_visible(
81 ComponentPropertiesIsVisible::Bool(true),
82 ),
83 ComponentType::TABLE,
84 ).events(vec![])
85 ],
86 )
87 .is_visible(
88 ComponentPropertiesIsVisible::String("true".to_string()),
89 ),
90 ComponentType::GRIDCELL,
91 ).events(vec![]),
92 Component::new(
93 "gridCell1".to_string(),
94 ComponentProperties::new()
95 .children(
96 vec![
97 Component::new(
98 "text1".to_string(),
99 ComponentProperties
100 ::new().is_visible(
101 ComponentPropertiesIsVisible::Bool(true),
102 ),
103 ComponentType::TEXT,
104 ).events(vec![])
105 ],
106 )
107 .is_visible(
108 ComponentPropertiesIsVisible::String("true".to_string()),
109 ),
110 ComponentType::GRIDCELL,
111 ).events(vec![]),
112 Component::new(
113 "gridCell3".to_string(),
114 ComponentProperties::new()
115 .children(
116 vec![
117 Component::new(
118 "button0".to_string(),
119 ComponentProperties
120 ::new().is_visible(
121 ComponentPropertiesIsVisible::Bool(true),
122 ),
123 ComponentType::BUTTON,
124 ).events(
125 vec![
126 AppBuilderEvent::new()
127 .name(AppBuilderEventName::CLICK)
128 .type_(
129 AppBuilderEventType::SETSTATEVARIABLEVALUE,
130 )
131 ],
132 )
133 ],
134 )
135 .is_visible(
136 ComponentPropertiesIsVisible::String("true".to_string()),
137 ),
138 ComponentType::GRIDCELL,
139 ).events(vec![]),
140 Component::new(
141 "gridCell4".to_string(),
142 ComponentProperties::new()
143 .children(
144 vec![
145 Component::new(
146 "button1".to_string(),
147 ComponentProperties
148 ::new().is_visible(
149 ComponentPropertiesIsVisible::Bool(true),
150 ),
151 ComponentType::BUTTON,
152 ).events(
153 vec![
154 AppBuilderEvent::new()
155 .name(AppBuilderEventName::CLICK)
156 .type_(
157 AppBuilderEventType::SETSTATEVARIABLEVALUE,
158 )
159 ],
160 )
161 ],
162 )
163 .is_visible(
164 ComponentPropertiesIsVisible::String("true".to_string()),
165 ),
166 ComponentType::GRIDCELL,
167 ).events(vec![])
168 ],
169 ),
170 ComponentGridType::GRID,
171 ).events(vec![])
172 ],
173 )
174 .description(
175 "This is a slightly complicated example app that fetches and displays cat facts".to_string(),
176 )
177 .name("Example Cat Facts Viewer".to_string())
178 .queries(
179 vec![
180 Query::ActionQuery(
181 Box::new(
182 ActionQuery::new(
183 Uuid::parse_str(
184 "92ff0bb8-553b-4f31-87c7-ef5bd16d47d5",
185 ).expect("invalid UUID"),
186 "fetchFacts".to_string(),
187 ActionQueryProperties::new(
188 ActionQuerySpec::ActionQuerySpecObject(
189 Box::new(
190 ActionQuerySpecObject::new(
191 "com.datadoghq.http.request".to_string(),
192 )
193 .connection_id(
194 "5e63f4a8-4ce6-47de-ba11-f6617c1d54f3".to_string(),
195 )
196 .inputs(
197 ActionQuerySpecInputs::ActionQuerySpecInput(
198 BTreeMap::from(
199 [
200 ("verb".to_string(), Value::from("GET")),
201 (
202 "url".to_string(),
203 Value::from(
204 "https://catfact.ninja/facts",
205 ),
206 ),
207 ],
208 ),
209 ),
210 ),
211 ),
212 ),
213 ),
214 ActionQueryType::ACTION,
215 ).events(vec![]),
216 ),
217 ),
218 Query::StateVariable(
219 Box::new(
220 StateVariable::new(
221 Uuid::parse_str(
222 "afd03c81-4075-4432-8618-ba09d52d2f2d",
223 ).expect("invalid UUID"),
224 "pageSize".to_string(),
225 StateVariableProperties::new().default_value(Value::from("${20}")),
226 StateVariableType::STATEVARIABLE,
227 ),
228 ),
229 ),
230 Query::DataTransform(
231 Box::new(
232 DataTransform::new(
233 Uuid::parse_str(
234 "0fb22859-47dc-4137-9e41-7b67d04c525c",
235 ).expect("invalid UUID"),
236 "randomFact".to_string(),
237 DataTransformProperties
238 ::new().outputs(
239 r#"${(() => {const facts = fetchFacts.outputs.body.data
240return facts[Math.floor(Math.random()*facts.length)]
241})()}"#.to_string(),
242 ),
243 DataTransformType::DATATRANSFORM,
244 ),
245 ),
246 )
247 ],
248 )
249 .root_instance_name("grid0".to_string()),
250 ),
251 );
252 let configuration = datadog::Configuration::new();
253 let api = AppBuilderAPI::with_config(configuration);
254 let resp = api.create_app(body).await;
255 if let Ok(value) = resp {
256 println!("{:#?}", value);
257 } else {
258 println!("{:#?}", resp.unwrap_err());
259 }
260}
Sourcepub fn is_visible(self, value: ComponentPropertiesIsVisible) -> Self
pub fn is_visible(self, value: ComponentPropertiesIsVisible) -> Self
Examples found in repository?
examples/v2_app-builder_CreateApp.rs (lines 60-62)
36async fn main() {
37 let body =
38 CreateAppRequest
39 ::new().data(
40 CreateAppRequestData::new(
41 AppDefinitionType::APPDEFINITIONS,
42 ).attributes(
43 CreateAppRequestDataAttributes::new()
44 .components(
45 vec![
46 ComponentGrid::new(
47 "grid0".to_string(),
48 ComponentGridProperties::new()
49 .background_color("default".to_string())
50 .children(
51 vec![
52 Component::new(
53 "gridCell0".to_string(),
54 ComponentProperties::new()
55 .children(
56 vec![
57 Component::new(
58 "text0".to_string(),
59 ComponentProperties
60 ::new().is_visible(
61 ComponentPropertiesIsVisible::Bool(true),
62 ),
63 ComponentType::TEXT,
64 ).events(vec![])
65 ],
66 )
67 .is_visible(
68 ComponentPropertiesIsVisible::String("true".to_string()),
69 ),
70 ComponentType::GRIDCELL,
71 ).events(vec![]),
72 Component::new(
73 "gridCell2".to_string(),
74 ComponentProperties::new()
75 .children(
76 vec![
77 Component::new(
78 "table0".to_string(),
79 ComponentProperties
80 ::new().is_visible(
81 ComponentPropertiesIsVisible::Bool(true),
82 ),
83 ComponentType::TABLE,
84 ).events(vec![])
85 ],
86 )
87 .is_visible(
88 ComponentPropertiesIsVisible::String("true".to_string()),
89 ),
90 ComponentType::GRIDCELL,
91 ).events(vec![]),
92 Component::new(
93 "gridCell1".to_string(),
94 ComponentProperties::new()
95 .children(
96 vec![
97 Component::new(
98 "text1".to_string(),
99 ComponentProperties
100 ::new().is_visible(
101 ComponentPropertiesIsVisible::Bool(true),
102 ),
103 ComponentType::TEXT,
104 ).events(vec![])
105 ],
106 )
107 .is_visible(
108 ComponentPropertiesIsVisible::String("true".to_string()),
109 ),
110 ComponentType::GRIDCELL,
111 ).events(vec![]),
112 Component::new(
113 "gridCell3".to_string(),
114 ComponentProperties::new()
115 .children(
116 vec![
117 Component::new(
118 "button0".to_string(),
119 ComponentProperties
120 ::new().is_visible(
121 ComponentPropertiesIsVisible::Bool(true),
122 ),
123 ComponentType::BUTTON,
124 ).events(
125 vec![
126 AppBuilderEvent::new()
127 .name(AppBuilderEventName::CLICK)
128 .type_(
129 AppBuilderEventType::SETSTATEVARIABLEVALUE,
130 )
131 ],
132 )
133 ],
134 )
135 .is_visible(
136 ComponentPropertiesIsVisible::String("true".to_string()),
137 ),
138 ComponentType::GRIDCELL,
139 ).events(vec![]),
140 Component::new(
141 "gridCell4".to_string(),
142 ComponentProperties::new()
143 .children(
144 vec![
145 Component::new(
146 "button1".to_string(),
147 ComponentProperties
148 ::new().is_visible(
149 ComponentPropertiesIsVisible::Bool(true),
150 ),
151 ComponentType::BUTTON,
152 ).events(
153 vec![
154 AppBuilderEvent::new()
155 .name(AppBuilderEventName::CLICK)
156 .type_(
157 AppBuilderEventType::SETSTATEVARIABLEVALUE,
158 )
159 ],
160 )
161 ],
162 )
163 .is_visible(
164 ComponentPropertiesIsVisible::String("true".to_string()),
165 ),
166 ComponentType::GRIDCELL,
167 ).events(vec![])
168 ],
169 ),
170 ComponentGridType::GRID,
171 ).events(vec![])
172 ],
173 )
174 .description(
175 "This is a slightly complicated example app that fetches and displays cat facts".to_string(),
176 )
177 .name("Example Cat Facts Viewer".to_string())
178 .queries(
179 vec![
180 Query::ActionQuery(
181 Box::new(
182 ActionQuery::new(
183 Uuid::parse_str(
184 "92ff0bb8-553b-4f31-87c7-ef5bd16d47d5",
185 ).expect("invalid UUID"),
186 "fetchFacts".to_string(),
187 ActionQueryProperties::new(
188 ActionQuerySpec::ActionQuerySpecObject(
189 Box::new(
190 ActionQuerySpecObject::new(
191 "com.datadoghq.http.request".to_string(),
192 )
193 .connection_id(
194 "5e63f4a8-4ce6-47de-ba11-f6617c1d54f3".to_string(),
195 )
196 .inputs(
197 ActionQuerySpecInputs::ActionQuerySpecInput(
198 BTreeMap::from(
199 [
200 ("verb".to_string(), Value::from("GET")),
201 (
202 "url".to_string(),
203 Value::from(
204 "https://catfact.ninja/facts",
205 ),
206 ),
207 ],
208 ),
209 ),
210 ),
211 ),
212 ),
213 ),
214 ActionQueryType::ACTION,
215 ).events(vec![]),
216 ),
217 ),
218 Query::StateVariable(
219 Box::new(
220 StateVariable::new(
221 Uuid::parse_str(
222 "afd03c81-4075-4432-8618-ba09d52d2f2d",
223 ).expect("invalid UUID"),
224 "pageSize".to_string(),
225 StateVariableProperties::new().default_value(Value::from("${20}")),
226 StateVariableType::STATEVARIABLE,
227 ),
228 ),
229 ),
230 Query::DataTransform(
231 Box::new(
232 DataTransform::new(
233 Uuid::parse_str(
234 "0fb22859-47dc-4137-9e41-7b67d04c525c",
235 ).expect("invalid UUID"),
236 "randomFact".to_string(),
237 DataTransformProperties
238 ::new().outputs(
239 r#"${(() => {const facts = fetchFacts.outputs.body.data
240return facts[Math.floor(Math.random()*facts.length)]
241})()}"#.to_string(),
242 ),
243 DataTransformType::DATATRANSFORM,
244 ),
245 ),
246 )
247 ],
248 )
249 .root_instance_name("grid0".to_string()),
250 ),
251 );
252 let configuration = datadog::Configuration::new();
253 let api = AppBuilderAPI::with_config(configuration);
254 let resp = api.create_app(body).await;
255 if let Ok(value) = resp {
256 println!("{:#?}", value);
257 } else {
258 println!("{:#?}", resp.unwrap_err());
259 }
260}
pub fn additional_properties(self, value: BTreeMap<String, Value>) -> Self
Trait Implementations§
Source§impl Clone for ComponentProperties
impl Clone for ComponentProperties
Source§fn clone(&self) -> ComponentProperties
fn clone(&self) -> ComponentProperties
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moreSource§impl Debug for ComponentProperties
impl Debug for ComponentProperties
Source§impl Default for ComponentProperties
impl Default for ComponentProperties
Source§impl<'de> Deserialize<'de> for ComponentProperties
impl<'de> Deserialize<'de> for ComponentProperties
Source§fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>where
D: Deserializer<'de>,
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>where
D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl PartialEq for ComponentProperties
impl PartialEq for ComponentProperties
Source§impl Serialize for ComponentProperties
impl Serialize for ComponentProperties
impl StructuralPartialEq for ComponentProperties
Auto Trait Implementations§
impl Freeze for ComponentProperties
impl RefUnwindSafe for ComponentProperties
impl Send for ComponentProperties
impl Sync for ComponentProperties
impl Unpin for ComponentProperties
impl UnwindSafe for ComponentProperties
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more