v2_incidents_CreateIncidentIntegration/
v2_incidents_CreateIncidentIntegration.rs

1// Create an incident integration metadata returns "CREATED" response
2use datadog_api_client::datadog;
3use datadog_api_client::datadogV2::api_incidents::IncidentsAPI;
4use datadog_api_client::datadogV2::model::IncidentIntegrationMetadataAttributes;
5use datadog_api_client::datadogV2::model::IncidentIntegrationMetadataCreateData;
6use datadog_api_client::datadogV2::model::IncidentIntegrationMetadataCreateRequest;
7use datadog_api_client::datadogV2::model::IncidentIntegrationMetadataMetadata;
8use datadog_api_client::datadogV2::model::IncidentIntegrationMetadataType;
9use datadog_api_client::datadogV2::model::SlackIntegrationMetadata;
10use datadog_api_client::datadogV2::model::SlackIntegrationMetadataChannelItem;
11
12#[tokio::main]
13async fn main() {
14    // there is a valid "incident" in the system
15    let incident_data_id = std::env::var("INCIDENT_DATA_ID").unwrap();
16    let body =
17        IncidentIntegrationMetadataCreateRequest::new(IncidentIntegrationMetadataCreateData::new(
18            IncidentIntegrationMetadataAttributes::new(
19                1,
20                IncidentIntegrationMetadataMetadata::SlackIntegrationMetadata(Box::new(
21                    SlackIntegrationMetadata::new(vec![SlackIntegrationMetadataChannelItem::new(
22                        "C0123456789".to_string(),
23                        "#new-channel".to_string(),
24                        "https://slack.com/app_redirect?channel=C0123456789&team=T01234567"
25                            .to_string(),
26                    )
27                    .team_id("T01234567".to_string())]),
28                )),
29            )
30            .incident_id(incident_data_id.clone()),
31            IncidentIntegrationMetadataType::INCIDENT_INTEGRATIONS,
32        ));
33    let mut configuration = datadog::Configuration::new();
34    configuration.set_unstable_operation_enabled("v2.CreateIncidentIntegration", true);
35    let api = IncidentsAPI::with_config(configuration);
36    let resp = api
37        .create_incident_integration(incident_data_id.clone(), body)
38        .await;
39    if let Ok(value) = resp {
40        println!("{:#?}", value);
41    } else {
42        println!("{:#?}", resp.unwrap_err());
43    }
44}