v2_events_CreateEvent/
v2_events_CreateEvent.rs1use datadog_api_client::datadog;
3use datadog_api_client::datadogV2::api_events::EventsAPI;
4use datadog_api_client::datadogV2::model::ChangeEventCustomAttributes;
5use datadog_api_client::datadogV2::model::ChangeEventCustomAttributesAuthor;
6use datadog_api_client::datadogV2::model::ChangeEventCustomAttributesAuthorType;
7use datadog_api_client::datadogV2::model::ChangeEventCustomAttributesChangedResource;
8use datadog_api_client::datadogV2::model::ChangeEventCustomAttributesChangedResourceType;
9use datadog_api_client::datadogV2::model::ChangeEventCustomAttributesImpactedResourcesItems;
10use datadog_api_client::datadogV2::model::ChangeEventCustomAttributesImpactedResourcesItemsType;
11use datadog_api_client::datadogV2::model::EventCategory;
12use datadog_api_client::datadogV2::model::EventCreateRequest;
13use datadog_api_client::datadogV2::model::EventCreateRequestPayload;
14use datadog_api_client::datadogV2::model::EventCreateRequestType;
15use datadog_api_client::datadogV2::model::EventPayload;
16use datadog_api_client::datadogV2::model::EventPayloadAttributes;
17use datadog_api_client::datadogV2::model::EventPayloadIntegrationId;
18use serde_json::Value;
19use std::collections::BTreeMap;
20
21#[tokio::main]
22async fn main() {
23 let body = EventCreateRequestPayload::new(EventCreateRequest::new(
24 EventPayload::new(
25 EventPayloadAttributes::ChangeEventCustomAttributes(Box::new(
26 ChangeEventCustomAttributes::new(ChangeEventCustomAttributesChangedResource::new(
27 "fallback_payments_test".to_string(),
28 ChangeEventCustomAttributesChangedResourceType::FEATURE_FLAG,
29 ))
30 .author(ChangeEventCustomAttributesAuthor::new(
31 "example@datadog.com".to_string(),
32 ChangeEventCustomAttributesAuthorType::USER,
33 ))
34 .change_metadata(BTreeMap::from([(
35 "resource_link".to_string(),
36 Value::from("datadog.com/feature/fallback_payments_test"),
37 )]))
38 .impacted_resources(vec![
39 ChangeEventCustomAttributesImpactedResourcesItems::new(
40 "payments_api".to_string(),
41 ChangeEventCustomAttributesImpactedResourcesItemsType::SERVICE,
42 ),
43 ])
44 .new_value(BTreeMap::from([
45 ("enabled".to_string(), Value::from("True")),
46 ("percentage".to_string(), Value::from("50%")),
47 ]))
48 .prev_value(BTreeMap::from([
49 ("enabled".to_string(), Value::from("True")),
50 ("percentage".to_string(), Value::from("10%")),
51 ])),
52 )),
53 EventCategory::CHANGE,
54 "payment_processed feature flag updated".to_string(),
55 )
56 .aggregation_key("aggregation_key_123".to_string())
57 .integration_id(EventPayloadIntegrationId::CUSTOM_EVENTS)
58 .message("payment_processed feature flag has been enabled".to_string())
59 .tags(vec!["env:api_client_test".to_string()]),
60 EventCreateRequestType::EVENT,
61 ));
62 let configuration = datadog::Configuration::new();
63 let api = EventsAPI::with_config(configuration);
64 let resp = api.create_event(body).await;
65 if let Ok(value) = resp {
66 println!("{:#?}", value);
67 } else {
68 println!("{:#?}", resp.unwrap_err());
69 }
70}