v2_incidents_UpdateIncidentIntegration/
v2_incidents_UpdateIncidentIntegration.rs

1// Update an existing incident integration metadata returns "OK" 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::IncidentIntegrationMetadataMetadata;
6use datadog_api_client::datadogV2::model::IncidentIntegrationMetadataPatchData;
7use datadog_api_client::datadogV2::model::IncidentIntegrationMetadataPatchRequest;
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
17    // the "incident" has an "incident_integration_metadata"
18    let incident_integration_metadata_data_id =
19        std::env::var("INCIDENT_INTEGRATION_METADATA_DATA_ID").unwrap();
20    let body =
21        IncidentIntegrationMetadataPatchRequest::new(IncidentIntegrationMetadataPatchData::new(
22            IncidentIntegrationMetadataAttributes::new(
23                1,
24                IncidentIntegrationMetadataMetadata::SlackIntegrationMetadata(Box::new(
25                    SlackIntegrationMetadata::new(vec![SlackIntegrationMetadataChannelItem::new(
26                        "C0123456789".to_string(),
27                        "#updated-channel-name".to_string(),
28                        "https://slack.com/app_redirect?channel=C0123456789&team=T01234567"
29                            .to_string(),
30                    )
31                    .team_id("T01234567".to_string())]),
32                )),
33            )
34            .incident_id(incident_data_id.clone()),
35            IncidentIntegrationMetadataType::INCIDENT_INTEGRATIONS,
36        ));
37    let mut configuration = datadog::Configuration::new();
38    configuration.set_unstable_operation_enabled("v2.UpdateIncidentIntegration", true);
39    let api = IncidentsAPI::with_config(configuration);
40    let resp = api
41        .update_incident_integration(
42            incident_data_id.clone(),
43            incident_integration_metadata_data_id.clone(),
44            body,
45        )
46        .await;
47    if let Ok(value) = resp {
48        println!("{:#?}", value);
49    } else {
50        println!("{:#?}", resp.unwrap_err());
51    }
52}