#[non_exhaustive]pub struct ActionQuerySpecObject {
pub connection_group: Option<ActionQuerySpecConnectionGroup>,
pub connection_id: Option<String>,
pub fqn: String,
pub inputs: Option<ActionQuerySpecInputs>,
pub additional_properties: BTreeMap<String, Value>,
/* private fields */
}
Expand description
The action query spec object.
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.connection_group: Option<ActionQuerySpecConnectionGroup>
The connection group to use for an action query.
connection_id: Option<String>
The ID of the custom connection to use for this action query.
fqn: String
The fully qualified name of the action type.
inputs: Option<ActionQuerySpecInputs>
The inputs to the action query. These are the values that are passed to the action when it is triggered.
additional_properties: BTreeMap<String, Value>
Implementations§
Source§impl ActionQuerySpecObject
impl ActionQuerySpecObject
Sourcepub fn new(fqn: String) -> ActionQuerySpecObject
pub fn new(fqn: String) -> ActionQuerySpecObject
Examples found in repository?
examples/v2_app-builder_CreateApp.rs (lines 190-192)
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 connection_group(self, value: ActionQuerySpecConnectionGroup) -> Self
Sourcepub fn connection_id(self, value: String) -> Self
pub fn connection_id(self, value: String) -> Self
Examples found in repository?
examples/v2_app-builder_CreateApp.rs (lines 193-195)
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 inputs(self, value: ActionQuerySpecInputs) -> Self
pub fn inputs(self, value: ActionQuerySpecInputs) -> Self
Examples found in repository?
examples/v2_app-builder_CreateApp.rs (lines 196-210)
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 ActionQuerySpecObject
impl Clone for ActionQuerySpecObject
Source§fn clone(&self) -> ActionQuerySpecObject
fn clone(&self) -> ActionQuerySpecObject
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 ActionQuerySpecObject
impl Debug for ActionQuerySpecObject
Source§impl<'de> Deserialize<'de> for ActionQuerySpecObject
impl<'de> Deserialize<'de> for ActionQuerySpecObject
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 ActionQuerySpecObject
impl PartialEq for ActionQuerySpecObject
Source§impl Serialize for ActionQuerySpecObject
impl Serialize for ActionQuerySpecObject
impl StructuralPartialEq for ActionQuerySpecObject
Auto Trait Implementations§
impl Freeze for ActionQuerySpecObject
impl RefUnwindSafe for ActionQuerySpecObject
impl Send for ActionQuerySpecObject
impl Sync for ActionQuerySpecObject
impl Unpin for ActionQuerySpecObject
impl UnwindSafe for ActionQuerySpecObject
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