v2_case_management_CreateCase/
v2_case-management_CreateCase.rs

1// Create a case returns "CREATED" response
2use datadog_api_client::datadog;
3use datadog_api_client::datadogV2::api_case_management::CaseManagementAPI;
4use datadog_api_client::datadogV2::model::CaseCreate;
5use datadog_api_client::datadogV2::model::CaseCreateAttributes;
6use datadog_api_client::datadogV2::model::CaseCreateRelationships;
7use datadog_api_client::datadogV2::model::CaseCreateRequest;
8use datadog_api_client::datadogV2::model::CasePriority;
9use datadog_api_client::datadogV2::model::CaseResourceType;
10use datadog_api_client::datadogV2::model::NullableUserRelationship;
11use datadog_api_client::datadogV2::model::NullableUserRelationshipData;
12use datadog_api_client::datadogV2::model::ProjectRelationship;
13use datadog_api_client::datadogV2::model::ProjectRelationshipData;
14use datadog_api_client::datadogV2::model::ProjectResourceType;
15use datadog_api_client::datadogV2::model::UserResourceType;
16
17#[tokio::main]
18async fn main() {
19    // there is a valid "user" in the system
20    let user_data_id = std::env::var("USER_DATA_ID").unwrap();
21    let body = CaseCreateRequest::new(
22        CaseCreate::new(
23            CaseCreateAttributes::new(
24                "Security breach investigation in 0cfbc5cbc676ee71".to_string(),
25                "00000000-0000-0000-0000-000000000001".to_string(),
26            )
27            .priority(CasePriority::NOT_DEFINED),
28            CaseResourceType::CASE,
29        )
30        .relationships(
31            CaseCreateRelationships::new(ProjectRelationship::new(ProjectRelationshipData::new(
32                "d4bbe1af-f36e-42f1-87c1-493ca35c320e".to_string(),
33                ProjectResourceType::PROJECT,
34            )))
35            .assignee(Some(NullableUserRelationship::new(Some(
36                NullableUserRelationshipData::new(user_data_id.clone(), UserResourceType::USER),
37            )))),
38        ),
39    );
40    let configuration = datadog::Configuration::new();
41    let api = CaseManagementAPI::with_config(configuration);
42    let resp = api.create_case(body).await;
43    if let Ok(value) = resp {
44        println!("{:#?}", value);
45    } else {
46        println!("{:#?}", resp.unwrap_err());
47    }
48}