v2_cloud_cost_management_CreateCostGCPUsageCostConfig/
v2_cloud-cost-management_CreateCostGCPUsageCostConfig.rs

1// Create Google Cloud Usage Cost config returns "OK" response
2use datadog_api_client::datadog;
3use datadog_api_client::datadogV2::api_cloud_cost_management::CloudCostManagementAPI;
4use datadog_api_client::datadogV2::model::GCPUsageCostConfigPostData;
5use datadog_api_client::datadogV2::model::GCPUsageCostConfigPostRequest;
6use datadog_api_client::datadogV2::model::GCPUsageCostConfigPostRequestAttributes;
7use datadog_api_client::datadogV2::model::GCPUsageCostConfigPostRequestType;
8
9#[tokio::main]
10async fn main() {
11    let body = GCPUsageCostConfigPostRequest::new(
12        GCPUsageCostConfigPostData::new(
13            GCPUsageCostConfigPostRequestType::GCP_USAGE_COST_CONFIG_POST_REQUEST,
14        )
15        .attributes(
16            GCPUsageCostConfigPostRequestAttributes::new(
17                "123456_A123BC_12AB34".to_string(),
18                "dd-cost-bucket".to_string(),
19                "billing".to_string(),
20                "dd-cloud-cost-report".to_string(),
21                "dd-ccm-gcp-integration@my-environment.iam.gserviceaccount.com".to_string(),
22            )
23            .export_prefix("datadog_cloud_cost_usage_export".to_string()),
24        ),
25    );
26    let configuration = datadog::Configuration::new();
27    let api = CloudCostManagementAPI::with_config(configuration);
28    let resp = api.create_cost_gcp_usage_cost_config(body).await;
29    if let Ok(value) = resp {
30        println!("{:#?}", value);
31    } else {
32        println!("{:#?}", resp.unwrap_err());
33    }
34}