Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 24 additions & 0 deletions .generator/schemas/v2/openapi.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -17596,6 +17596,18 @@ components:
CustomCostListResponseMeta:
description: Meta for the response from the List Custom Costs endpoints.
properties:
count_by_status:
additionalProperties:
format: int64
type: integer
description: Number of Custom Costs files per status.
type: object
providers:
description: List of available providers.
items:
description: A provider name.
type: string
type: array
total_filtered_count:
description: Number of Custom Costs files returned by the List Custom Costs endpoint
format: int64
Expand Down Expand Up @@ -83201,6 +83213,18 @@ paths:
name: filter[status]
schema:
type: string
- description: Filter files by name with case-insensitive substring matching.
in: query
name: filter[name]
schema:
type: string
- description: Filter by provider.
in: query
name: filter[provider]
schema:
items:
type: string
type: array
- description: Sort key with optional descending prefix
in: query
name: sort
Expand Down
26 changes: 26 additions & 0 deletions src/datadogV2/api/api_cloud_cost_management.rs
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,10 @@ pub struct ListCustomCostsFilesOptionalParams {
pub page_size: Option<i64>,
/// Filter by file status
pub filter_status: Option<String>,
/// Filter files by name with case-insensitive substring matching.
pub filter_name: Option<String>,
/// Filter by provider.
pub filter_provider: Option<Vec<String>>,
/// Sort key with optional descending prefix
pub sort: Option<String>,
}
Expand All @@ -40,6 +44,16 @@ impl ListCustomCostsFilesOptionalParams {
self.filter_status = Some(value);
self
}
/// Filter files by name with case-insensitive substring matching.
pub fn filter_name(mut self, value: String) -> Self {
self.filter_name = Some(value);
self
}
/// Filter by provider.
pub fn filter_provider(mut self, value: Vec<String>) -> Self {
self.filter_provider = Some(value);
self
}
/// Sort key with optional descending prefix
pub fn sort(mut self, value: String) -> Self {
self.sort = Some(value);
Expand Down Expand Up @@ -3183,6 +3197,8 @@ impl CloudCostManagementAPI {
let page_number = params.page_number;
let page_size = params.page_size;
let filter_status = params.filter_status;
let filter_name = params.filter_name;
let filter_provider = params.filter_provider;
let sort = params.sort;

let local_client = &self.client;
Expand All @@ -3206,6 +3222,16 @@ impl CloudCostManagementAPI {
local_req_builder =
local_req_builder.query(&[("filter[status]", &local_query_param.to_string())]);
};
if let Some(ref local_query_param) = filter_name {
local_req_builder =
local_req_builder.query(&[("filter[name]", &local_query_param.to_string())]);
};
if let Some(ref local) = filter_provider {
for param in local {
local_req_builder =
local_req_builder.query(&[("filter[provider]", &param.to_string())]);
}
};
if let Some(ref local_query_param) = sort {
local_req_builder =
local_req_builder.query(&[("sort", &local_query_param.to_string())]);
Expand Down
35 changes: 35 additions & 0 deletions src/datadogV2/model/model_custom_cost_list_response_meta.rs
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,12 @@ use std::fmt::{self, Formatter};
#[skip_serializing_none]
#[derive(Clone, Debug, PartialEq, Serialize)]
pub struct CustomCostListResponseMeta {
/// Number of Custom Costs files per status.
#[serde(rename = "count_by_status")]
pub count_by_status: Option<std::collections::BTreeMap<String, i64>>,
/// List of available providers.
#[serde(rename = "providers")]
pub providers: Option<Vec<String>>,
/// Number of Custom Costs files returned by the List Custom Costs endpoint
#[serde(rename = "total_filtered_count")]
pub total_filtered_count: Option<i64>,
Expand All @@ -27,13 +33,25 @@ pub struct CustomCostListResponseMeta {
impl CustomCostListResponseMeta {
pub fn new() -> CustomCostListResponseMeta {
CustomCostListResponseMeta {
count_by_status: None,
providers: None,
total_filtered_count: None,
version: None,
additional_properties: std::collections::BTreeMap::new(),
_unparsed: false,
}
}

pub fn count_by_status(mut self, value: std::collections::BTreeMap<String, i64>) -> Self {
self.count_by_status = Some(value);
self
}

pub fn providers(mut self, value: Vec<String>) -> Self {
self.providers = Some(value);
self
}

pub fn total_filtered_count(mut self, value: i64) -> Self {
self.total_filtered_count = Some(value);
self
Expand Down Expand Up @@ -76,6 +94,8 @@ impl<'de> Deserialize<'de> for CustomCostListResponseMeta {
where
M: MapAccess<'a>,
{
let mut count_by_status: Option<std::collections::BTreeMap<String, i64>> = None;
let mut providers: Option<Vec<String>> = None;
let mut total_filtered_count: Option<i64> = None;
let mut version: Option<String> = None;
let mut additional_properties: std::collections::BTreeMap<
Expand All @@ -86,6 +106,19 @@ impl<'de> Deserialize<'de> for CustomCostListResponseMeta {

while let Some((k, v)) = map.next_entry::<String, serde_json::Value>()? {
match k.as_str() {
"count_by_status" => {
if v.is_null() {
continue;
}
count_by_status =
Some(serde_json::from_value(v).map_err(M::Error::custom)?);
}
"providers" => {
if v.is_null() {
continue;
}
providers = Some(serde_json::from_value(v).map_err(M::Error::custom)?);
}
"total_filtered_count" => {
if v.is_null() {
continue;
Expand All @@ -108,6 +141,8 @@ impl<'de> Deserialize<'de> for CustomCostListResponseMeta {
}

let content = CustomCostListResponseMeta {
count_by_status,
providers,
total_filtered_count,
version,
additional_properties,
Expand Down
8 changes: 8 additions & 0 deletions tests/scenarios/function_mappings.rs
Original file line number Diff line number Diff line change
Expand Up @@ -22637,6 +22637,12 @@ fn test_v2_list_custom_costs_files(world: &mut DatadogWorld, _parameters: &HashM
let filter_status = _parameters
.get("filter[status]")
.and_then(|param| Some(serde_json::from_value(param.clone()).unwrap()));
let filter_name = _parameters
.get("filter[name]")
.and_then(|param| Some(serde_json::from_value(param.clone()).unwrap()));
let filter_provider = _parameters
.get("filter[provider]")
.and_then(|param| Some(serde_json::from_value(param.clone()).unwrap()));
let sort = _parameters
.get("sort")
.and_then(|param| Some(serde_json::from_value(param.clone()).unwrap()));
Expand All @@ -22645,6 +22651,8 @@ fn test_v2_list_custom_costs_files(world: &mut DatadogWorld, _parameters: &HashM
params.page_number = page_number;
params.page_size = page_size;
params.filter_status = filter_status;
params.filter_name = filter_name;
params.filter_provider = filter_provider;
params.sort = sort;
let response = match block_on(api.list_custom_costs_files_with_http_info(params)) {
Ok(response) => response,
Expand Down
Loading