v2_cloud_cost_management_UpsertBudget/
v2_cloud-cost-management_UpsertBudget.rs

1// Create or update a budget returns "OK" response
2use datadog_api_client::datadog;
3use datadog_api_client::datadogV2::api_cloud_cost_management::CloudCostManagementAPI;
4use datadog_api_client::datadogV2::model::BudgetAttributes;
5use datadog_api_client::datadogV2::model::BudgetEntry;
6use datadog_api_client::datadogV2::model::BudgetWithEntries;
7use datadog_api_client::datadogV2::model::BudgetWithEntriesData;
8use datadog_api_client::datadogV2::model::TagFilter;
9
10#[tokio::main]
11async fn main() {
12    let body = BudgetWithEntries::new().data(
13        BudgetWithEntriesData::new()
14            .attributes(
15                BudgetAttributes::new()
16                    .created_at(1738258683590)
17                    .created_by("00000000-0a0a-0a0a-aaa0-00000000000a".to_string())
18                    .end_month(202502)
19                    .entries(vec![BudgetEntry::new()
20                        .amount(500.0 as f64)
21                        .month(202501)
22                        .tag_filters(vec![TagFilter::new()
23                            .tag_key("service".to_string())
24                            .tag_value("ec2".to_string())])])
25                    .metrics_query("aws.cost.amortized{service:ec2} by {service}".to_string())
26                    .name("my budget".to_string())
27                    .org_id(123)
28                    .start_month(202501)
29                    .total_amount(1000.0 as f64)
30                    .updated_at(1738258683590)
31                    .updated_by("00000000-0a0a-0a0a-aaa0-00000000000a".to_string()),
32            )
33            .id("00000000-0a0a-0a0a-aaa0-00000000000a".to_string()),
34    );
35    let configuration = datadog::Configuration::new();
36    let api = CloudCostManagementAPI::with_config(configuration);
37    let resp = api.upsert_budget(body).await;
38    if let Ok(value) = resp {
39        println!("{:#?}", value);
40    } else {
41        println!("{:#?}", resp.unwrap_err());
42    }
43}