v2_incidents_UpdateIncidentNotificationRule/
v2_incidents_UpdateIncidentNotificationRule.rs1use datadog_api_client::datadog;
3use datadog_api_client::datadogV2::api_incidents::IncidentsAPI;
4use datadog_api_client::datadogV2::api_incidents::UpdateIncidentNotificationRuleOptionalParams;
5use datadog_api_client::datadogV2::model::IncidentNotificationRuleConditionsItems;
6use datadog_api_client::datadogV2::model::IncidentNotificationRuleCreateAttributes;
7use datadog_api_client::datadogV2::model::IncidentNotificationRuleCreateAttributesVisibility;
8use datadog_api_client::datadogV2::model::IncidentNotificationRuleCreateDataRelationships;
9use datadog_api_client::datadogV2::model::IncidentNotificationRuleType;
10use datadog_api_client::datadogV2::model::IncidentNotificationRuleUpdateData;
11use datadog_api_client::datadogV2::model::IncidentNotificationTemplateType;
12use datadog_api_client::datadogV2::model::IncidentTypeType;
13use datadog_api_client::datadogV2::model::PutIncidentNotificationRuleRequest;
14use datadog_api_client::datadogV2::model::RelationshipToIncidentNotificationTemplate;
15use datadog_api_client::datadogV2::model::RelationshipToIncidentNotificationTemplateData;
16use datadog_api_client::datadogV2::model::RelationshipToIncidentType;
17use datadog_api_client::datadogV2::model::RelationshipToIncidentTypeData;
18use uuid::Uuid;
19
20#[tokio::main]
21async fn main() {
22 let body = PutIncidentNotificationRuleRequest::new(
23 IncidentNotificationRuleUpdateData::new(
24 IncidentNotificationRuleCreateAttributes::new(
25 vec![IncidentNotificationRuleConditionsItems::new(
26 "severity".to_string(),
27 vec!["SEV-1".to_string(), "SEV-2".to_string()],
28 )],
29 vec![
30 "@team-email@company.com".to_string(),
31 "@slack-channel".to_string(),
32 ],
33 "incident_created_trigger".to_string(),
34 )
35 .enabled(true)
36 .renotify_on(vec!["status".to_string(), "severity".to_string()])
37 .visibility(IncidentNotificationRuleCreateAttributesVisibility::ORGANIZATION),
38 Uuid::parse_str("00000000-0000-0000-0000-000000000001").expect("invalid UUID"),
39 IncidentNotificationRuleType::INCIDENT_NOTIFICATION_RULES,
40 )
41 .relationships(
42 IncidentNotificationRuleCreateDataRelationships::new()
43 .incident_type(RelationshipToIncidentType::new(
44 RelationshipToIncidentTypeData::new(
45 "00000000-0000-0000-0000-000000000000".to_string(),
46 IncidentTypeType::INCIDENT_TYPES,
47 ),
48 ))
49 .notification_template(RelationshipToIncidentNotificationTemplate::new(
50 RelationshipToIncidentNotificationTemplateData::new(
51 Uuid::parse_str("00000000-0000-0000-0000-000000000001")
52 .expect("invalid UUID"),
53 IncidentNotificationTemplateType::NOTIFICATION_TEMPLATES,
54 ),
55 )),
56 ),
57 );
58 let mut configuration = datadog::Configuration::new();
59 configuration.set_unstable_operation_enabled("v2.UpdateIncidentNotificationRule", true);
60 let api = IncidentsAPI::with_config(configuration);
61 let resp = api
62 .update_incident_notification_rule(
63 Uuid::parse_str("00000000-0000-0000-0000-000000000001").expect("invalid UUID"),
64 body,
65 UpdateIncidentNotificationRuleOptionalParams::default(),
66 )
67 .await;
68 if let Ok(value) = resp {
69 println!("{:#?}", value);
70 } else {
71 println!("{:#?}", resp.unwrap_err());
72 }
73}