v2_cloud_cost_management_UpsertBudget/
v2_cloud-cost-management_UpsertBudget.rs1use 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}