pub struct AppBuilderAPI { /* private fields */ }
Expand description
Datadog App Builder provides a low-code solution to rapidly develop and integrate secure, customized applications into your monitoring stack that are built to accelerate remediation at scale. These API endpoints allow you to create, read, update, delete, and publish apps.
Implementations§
Source§impl AppBuilderAPI
impl AppBuilderAPI
pub fn new() -> Self
Sourcepub fn with_config(config: Configuration) -> Self
pub fn with_config(config: Configuration) -> Self
Examples found in repository?
More examples
6async fn main() {
7 // there is a valid "app" in the system
8 let app_data_id =
9 uuid::Uuid::parse_str(&std::env::var("APP_DATA_ID").unwrap()).expect("Invalid UUID");
10 let configuration = datadog::Configuration::new();
11 let api = AppBuilderAPI::with_config(configuration);
12 let resp = api.delete_app(app_data_id.clone()).await;
13 if let Ok(value) = resp {
14 println!("{:#?}", value);
15 } else {
16 println!("{:#?}", resp.unwrap_err());
17 }
18}
6async fn main() {
7 // there is a valid "app" in the system
8 let app_data_id =
9 uuid::Uuid::parse_str(&std::env::var("APP_DATA_ID").unwrap()).expect("Invalid UUID");
10 let configuration = datadog::Configuration::new();
11 let api = AppBuilderAPI::with_config(configuration);
12 let resp = api.publish_app(app_data_id.clone()).await;
13 if let Ok(value) = resp {
14 println!("{:#?}", value);
15 } else {
16 println!("{:#?}", resp.unwrap_err());
17 }
18}
6async fn main() {
7 // there is a valid "app" in the system
8 let app_data_id =
9 uuid::Uuid::parse_str(&std::env::var("APP_DATA_ID").unwrap()).expect("Invalid UUID");
10 let configuration = datadog::Configuration::new();
11 let api = AppBuilderAPI::with_config(configuration);
12 let resp = api.unpublish_app(app_data_id.clone()).await;
13 if let Ok(value) = resp {
14 println!("{:#?}", value);
15 } else {
16 println!("{:#?}", resp.unwrap_err());
17 }
18}
7async fn main() {
8 // there is a valid "app" in the system
9 let app_data_id =
10 uuid::Uuid::parse_str(&std::env::var("APP_DATA_ID").unwrap()).expect("Invalid UUID");
11 let configuration = datadog::Configuration::new();
12 let api = AppBuilderAPI::with_config(configuration);
13 let resp = api
14 .get_app(app_data_id.clone(), GetAppOptionalParams::default())
15 .await;
16 if let Ok(value) = resp {
17 println!("{:#?}", value);
18 } else {
19 println!("{:#?}", resp.unwrap_err());
20 }
21}
9async fn main() {
10 // there is a valid "app" in the system
11 let app_data_id =
12 uuid::Uuid::parse_str(&std::env::var("APP_DATA_ID").unwrap()).expect("Invalid UUID");
13 let body = DeleteAppsRequest::new().data(vec![DeleteAppsRequestDataItems::new(
14 app_data_id.clone(),
15 AppDefinitionType::APPDEFINITIONS,
16 )]);
17 let configuration = datadog::Configuration::new();
18 let api = AppBuilderAPI::with_config(configuration);
19 let resp = api.delete_apps(body).await;
20 if let Ok(value) = resp {
21 println!("{:#?}", value);
22 } else {
23 println!("{:#?}", resp.unwrap_err());
24 }
25}
pub fn with_client_and_config( config: Configuration, client: ClientWithMiddleware, ) -> Self
Sourcepub async fn create_app(
&self,
body: CreateAppRequest,
) -> Result<CreateAppResponse, Error<CreateAppError>>
pub async fn create_app( &self, body: CreateAppRequest, ) -> Result<CreateAppResponse, Error<CreateAppError>>
Create a new app, returning the app ID. This API requires a registered application key.
Examples found in repository?
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 async fn create_app_with_http_info(
&self,
body: CreateAppRequest,
) -> Result<ResponseContent<CreateAppResponse>, Error<CreateAppError>>
pub async fn create_app_with_http_info( &self, body: CreateAppRequest, ) -> Result<ResponseContent<CreateAppResponse>, Error<CreateAppError>>
Create a new app, returning the app ID. This API requires a registered application key.
Sourcepub async fn delete_app(
&self,
app_id: Uuid,
) -> Result<DeleteAppResponse, Error<DeleteAppError>>
pub async fn delete_app( &self, app_id: Uuid, ) -> Result<DeleteAppResponse, Error<DeleteAppError>>
Delete a single app. This API requires a registered application key.
Examples found in repository?
6async fn main() {
7 // there is a valid "app" in the system
8 let app_data_id =
9 uuid::Uuid::parse_str(&std::env::var("APP_DATA_ID").unwrap()).expect("Invalid UUID");
10 let configuration = datadog::Configuration::new();
11 let api = AppBuilderAPI::with_config(configuration);
12 let resp = api.delete_app(app_data_id.clone()).await;
13 if let Ok(value) = resp {
14 println!("{:#?}", value);
15 } else {
16 println!("{:#?}", resp.unwrap_err());
17 }
18}
Sourcepub async fn delete_app_with_http_info(
&self,
app_id: Uuid,
) -> Result<ResponseContent<DeleteAppResponse>, Error<DeleteAppError>>
pub async fn delete_app_with_http_info( &self, app_id: Uuid, ) -> Result<ResponseContent<DeleteAppResponse>, Error<DeleteAppError>>
Delete a single app. This API requires a registered application key.
Sourcepub async fn delete_apps(
&self,
body: DeleteAppsRequest,
) -> Result<DeleteAppsResponse, Error<DeleteAppsError>>
pub async fn delete_apps( &self, body: DeleteAppsRequest, ) -> Result<DeleteAppsResponse, Error<DeleteAppsError>>
Delete multiple apps in a single request from a list of app IDs. This API requires a registered application key.
Examples found in repository?
9async fn main() {
10 // there is a valid "app" in the system
11 let app_data_id =
12 uuid::Uuid::parse_str(&std::env::var("APP_DATA_ID").unwrap()).expect("Invalid UUID");
13 let body = DeleteAppsRequest::new().data(vec![DeleteAppsRequestDataItems::new(
14 app_data_id.clone(),
15 AppDefinitionType::APPDEFINITIONS,
16 )]);
17 let configuration = datadog::Configuration::new();
18 let api = AppBuilderAPI::with_config(configuration);
19 let resp = api.delete_apps(body).await;
20 if let Ok(value) = resp {
21 println!("{:#?}", value);
22 } else {
23 println!("{:#?}", resp.unwrap_err());
24 }
25}
Sourcepub async fn delete_apps_with_http_info(
&self,
body: DeleteAppsRequest,
) -> Result<ResponseContent<DeleteAppsResponse>, Error<DeleteAppsError>>
pub async fn delete_apps_with_http_info( &self, body: DeleteAppsRequest, ) -> Result<ResponseContent<DeleteAppsResponse>, Error<DeleteAppsError>>
Delete multiple apps in a single request from a list of app IDs. This API requires a registered application key.
Sourcepub async fn get_app(
&self,
app_id: Uuid,
params: GetAppOptionalParams,
) -> Result<GetAppResponse, Error<GetAppError>>
pub async fn get_app( &self, app_id: Uuid, params: GetAppOptionalParams, ) -> Result<GetAppResponse, Error<GetAppError>>
Get the full definition of an app. This API requires a registered application key.
Examples found in repository?
7async fn main() {
8 // there is a valid "app" in the system
9 let app_data_id =
10 uuid::Uuid::parse_str(&std::env::var("APP_DATA_ID").unwrap()).expect("Invalid UUID");
11 let configuration = datadog::Configuration::new();
12 let api = AppBuilderAPI::with_config(configuration);
13 let resp = api
14 .get_app(app_data_id.clone(), GetAppOptionalParams::default())
15 .await;
16 if let Ok(value) = resp {
17 println!("{:#?}", value);
18 } else {
19 println!("{:#?}", resp.unwrap_err());
20 }
21}
Sourcepub async fn get_app_with_http_info(
&self,
app_id: Uuid,
params: GetAppOptionalParams,
) -> Result<ResponseContent<GetAppResponse>, Error<GetAppError>>
pub async fn get_app_with_http_info( &self, app_id: Uuid, params: GetAppOptionalParams, ) -> Result<ResponseContent<GetAppResponse>, Error<GetAppError>>
Get the full definition of an app. This API requires a registered application key.
Sourcepub async fn list_apps(
&self,
params: ListAppsOptionalParams,
) -> Result<ListAppsResponse, Error<ListAppsError>>
pub async fn list_apps( &self, params: ListAppsOptionalParams, ) -> Result<ListAppsResponse, Error<ListAppsError>>
List all apps, with optional filters and sorting. This endpoint is paginated. Only basic app information such as the app ID, name, and description is returned by this endpoint. This API requires a registered application key.
Sourcepub async fn list_apps_with_http_info(
&self,
params: ListAppsOptionalParams,
) -> Result<ResponseContent<ListAppsResponse>, Error<ListAppsError>>
pub async fn list_apps_with_http_info( &self, params: ListAppsOptionalParams, ) -> Result<ResponseContent<ListAppsResponse>, Error<ListAppsError>>
List all apps, with optional filters and sorting. This endpoint is paginated. Only basic app information such as the app ID, name, and description is returned by this endpoint. This API requires a registered application key.
Sourcepub async fn publish_app(
&self,
app_id: Uuid,
) -> Result<PublishAppResponse, Error<PublishAppError>>
pub async fn publish_app( &self, app_id: Uuid, ) -> Result<PublishAppResponse, Error<PublishAppError>>
Publish an app for use by other users. To ensure the app is accessible to the correct users, you also need to set a Restriction Policy on the app if a policy does not yet exist. This API requires a registered application key.
Examples found in repository?
6async fn main() {
7 // there is a valid "app" in the system
8 let app_data_id =
9 uuid::Uuid::parse_str(&std::env::var("APP_DATA_ID").unwrap()).expect("Invalid UUID");
10 let configuration = datadog::Configuration::new();
11 let api = AppBuilderAPI::with_config(configuration);
12 let resp = api.publish_app(app_data_id.clone()).await;
13 if let Ok(value) = resp {
14 println!("{:#?}", value);
15 } else {
16 println!("{:#?}", resp.unwrap_err());
17 }
18}
Sourcepub async fn publish_app_with_http_info(
&self,
app_id: Uuid,
) -> Result<ResponseContent<PublishAppResponse>, Error<PublishAppError>>
pub async fn publish_app_with_http_info( &self, app_id: Uuid, ) -> Result<ResponseContent<PublishAppResponse>, Error<PublishAppError>>
Publish an app for use by other users. To ensure the app is accessible to the correct users, you also need to set a Restriction Policy on the app if a policy does not yet exist. This API requires a registered application key.
Sourcepub async fn unpublish_app(
&self,
app_id: Uuid,
) -> Result<UnpublishAppResponse, Error<UnpublishAppError>>
pub async fn unpublish_app( &self, app_id: Uuid, ) -> Result<UnpublishAppResponse, Error<UnpublishAppError>>
Unpublish an app, removing the live version of the app. Unpublishing creates a new instance of a deployment
object on the app, with a nil app_version_id
(00000000-0000-0000-0000-000000000000
). The app can still be updated and published again in the future. This API requires a registered application key.
Examples found in repository?
6async fn main() {
7 // there is a valid "app" in the system
8 let app_data_id =
9 uuid::Uuid::parse_str(&std::env::var("APP_DATA_ID").unwrap()).expect("Invalid UUID");
10 let configuration = datadog::Configuration::new();
11 let api = AppBuilderAPI::with_config(configuration);
12 let resp = api.unpublish_app(app_data_id.clone()).await;
13 if let Ok(value) = resp {
14 println!("{:#?}", value);
15 } else {
16 println!("{:#?}", resp.unwrap_err());
17 }
18}
Sourcepub async fn unpublish_app_with_http_info(
&self,
app_id: Uuid,
) -> Result<ResponseContent<UnpublishAppResponse>, Error<UnpublishAppError>>
pub async fn unpublish_app_with_http_info( &self, app_id: Uuid, ) -> Result<ResponseContent<UnpublishAppResponse>, Error<UnpublishAppError>>
Unpublish an app, removing the live version of the app. Unpublishing creates a new instance of a deployment
object on the app, with a nil app_version_id
(00000000-0000-0000-0000-000000000000
). The app can still be updated and published again in the future. This API requires a registered application key.
Sourcepub async fn update_app(
&self,
app_id: Uuid,
body: UpdateAppRequest,
) -> Result<UpdateAppResponse, Error<UpdateAppError>>
pub async fn update_app( &self, app_id: Uuid, body: UpdateAppRequest, ) -> Result<UpdateAppResponse, Error<UpdateAppError>>
Update an existing app. This creates a new version of the app. This API requires a registered application key.
Examples found in repository?
10async fn main() {
11 // there is a valid "app" in the system
12 let app_data_id =
13 uuid::Uuid::parse_str(&std::env::var("APP_DATA_ID").unwrap()).expect("Invalid UUID");
14 let body = UpdateAppRequest::new().data(
15 UpdateAppRequestData::new(AppDefinitionType::APPDEFINITIONS)
16 .attributes(
17 UpdateAppRequestDataAttributes::new()
18 .name("Updated Name".to_string())
19 .root_instance_name("grid0".to_string()),
20 )
21 .id(app_data_id.clone()),
22 );
23 let configuration = datadog::Configuration::new();
24 let api = AppBuilderAPI::with_config(configuration);
25 let resp = api.update_app(app_data_id.clone(), body).await;
26 if let Ok(value) = resp {
27 println!("{:#?}", value);
28 } else {
29 println!("{:#?}", resp.unwrap_err());
30 }
31}
Sourcepub async fn update_app_with_http_info(
&self,
app_id: Uuid,
body: UpdateAppRequest,
) -> Result<ResponseContent<UpdateAppResponse>, Error<UpdateAppError>>
pub async fn update_app_with_http_info( &self, app_id: Uuid, body: UpdateAppRequest, ) -> Result<ResponseContent<UpdateAppResponse>, Error<UpdateAppError>>
Update an existing app. This creates a new version of the app. This API requires a registered application key.
Trait Implementations§
Source§impl Clone for AppBuilderAPI
impl Clone for AppBuilderAPI
Source§fn clone(&self) -> AppBuilderAPI
fn clone(&self) -> AppBuilderAPI
1.0.0 · Source§const fn clone_from(&mut self, source: &Self)
const fn clone_from(&mut self, source: &Self)
source
. Read more