Skip to content

Commit 19a6e28

Browse files
api-clients-generation-pipeline[bot]ci.datadog-api-spec
andauthored
Add enum Dataset type to Dataset API spec (#847)
Co-authored-by: ci.datadog-api-spec <[email protected]>
1 parent c0d486c commit 19a6e28

File tree

8 files changed

+95
-18
lines changed

8 files changed

+95
-18
lines changed

.generated-info

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
{
2-
"spec_repo_commit": "c38287b",
3-
"generated": "2025-08-15 18:58:44.539"
2+
"spec_repo_commit": "7851858",
3+
"generated": "2025-08-18 14:52:37.919"
44
}

.generator/schemas/v2/openapi.yaml

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13258,9 +13258,7 @@ components:
1325813258
attributes:
1325913259
$ref: '#/components/schemas/DatasetAttributesRequest'
1326013260
type:
13261-
description: Resource type, always "dataset".
13262-
example: dataset
13263-
type: string
13261+
$ref: '#/components/schemas/DatasetType'
1326413262
required:
1326513263
- type
1326613264
- attributes
@@ -13282,9 +13280,7 @@ components:
1328213280
example: 123e4567-e89b-12d3-a456-426614174000
1328313281
type: string
1328413282
type:
13285-
description: Resource type, always "dataset".
13286-
example: dataset
13287-
type: string
13283+
$ref: '#/components/schemas/DatasetType'
1328813284
type: object
1328913285
DatasetResponseMulti:
1329013286
description: Response containing a list of datasets.
@@ -13301,6 +13297,15 @@ components:
1330113297
data:
1330213298
$ref: '#/components/schemas/DatasetResponse'
1330313299
type: object
13300+
DatasetType:
13301+
default: dataset
13302+
description: Resource type, always set to `dataset`.
13303+
enum:
13304+
- dataset
13305+
example: dataset
13306+
type: string
13307+
x-enum-varnames:
13308+
- DATASET
1330413309
DatasetUpdateRequest:
1330513310
description: Edit request for a dataset.
1330613311
properties:

examples/v2_datasets_CreateDataset.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ use datadog_api_client::datadogV2::api_datasets::DatasetsAPI;
44
use datadog_api_client::datadogV2::model::DatasetAttributesRequest;
55
use datadog_api_client::datadogV2::model::DatasetCreateRequest;
66
use datadog_api_client::datadogV2::model::DatasetRequest;
7+
use datadog_api_client::datadogV2::model::DatasetType;
78
use datadog_api_client::datadogV2::model::FiltersPerProduct;
89

910
#[tokio::main]
@@ -17,7 +18,7 @@ async fn main() {
1718
"metrics".to_string(),
1819
)],
1920
),
20-
"dataset".to_string(),
21+
DatasetType::DATASET,
2122
));
2223
let mut configuration = datadog::Configuration::new();
2324
configuration.set_unstable_operation_enabled("v2.CreateDataset", true);

examples/v2_datasets_UpdateDataset.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ use datadog_api_client::datadog;
33
use datadog_api_client::datadogV2::api_datasets::DatasetsAPI;
44
use datadog_api_client::datadogV2::model::DatasetAttributesRequest;
55
use datadog_api_client::datadogV2::model::DatasetRequest;
6+
use datadog_api_client::datadogV2::model::DatasetType;
67
use datadog_api_client::datadogV2::model::DatasetUpdateRequest;
78
use datadog_api_client::datadogV2::model::FiltersPerProduct;
89

@@ -19,7 +20,7 @@ async fn main() {
1920
"metrics".to_string(),
2021
)],
2122
),
22-
"dataset".to_string(),
23+
DatasetType::DATASET,
2324
));
2425
let mut configuration = datadog::Configuration::new();
2526
configuration.set_unstable_operation_enabled("v2.UpdateDataset", true);

src/datadogV2/model/mod.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1724,6 +1724,8 @@ pub mod model_dataset_attributes_response;
17241724
pub use self::model_dataset_attributes_response::DatasetAttributesResponse;
17251725
pub mod model_filters_per_product;
17261726
pub use self::model_filters_per_product::FiltersPerProduct;
1727+
pub mod model_dataset_type;
1728+
pub use self::model_dataset_type::DatasetType;
17271729
pub mod model_dataset_create_request;
17281730
pub use self::model_dataset_create_request::DatasetCreateRequest;
17291731
pub mod model_dataset_request;

src/datadogV2/model/model_dataset_request.rs

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,9 @@ pub struct DatasetRequest {
2424
/// Dataset metadata and configurations.
2525
#[serde(rename = "attributes")]
2626
pub attributes: crate::datadogV2::model::DatasetAttributesRequest,
27-
/// Resource type, always "dataset".
27+
/// Resource type, always set to `dataset`.
2828
#[serde(rename = "type")]
29-
pub type_: String,
29+
pub type_: crate::datadogV2::model::DatasetType,
3030
#[serde(flatten)]
3131
pub additional_properties: std::collections::BTreeMap<String, serde_json::Value>,
3232
#[serde(skip)]
@@ -37,7 +37,7 @@ pub struct DatasetRequest {
3737
impl DatasetRequest {
3838
pub fn new(
3939
attributes: crate::datadogV2::model::DatasetAttributesRequest,
40-
type_: String,
40+
type_: crate::datadogV2::model::DatasetType,
4141
) -> DatasetRequest {
4242
DatasetRequest {
4343
attributes,
@@ -75,7 +75,7 @@ impl<'de> Deserialize<'de> for DatasetRequest {
7575
{
7676
let mut attributes: Option<crate::datadogV2::model::DatasetAttributesRequest> =
7777
None;
78-
let mut type_: Option<String> = None;
78+
let mut type_: Option<crate::datadogV2::model::DatasetType> = None;
7979
let mut additional_properties: std::collections::BTreeMap<
8080
String,
8181
serde_json::Value,
@@ -89,6 +89,16 @@ impl<'de> Deserialize<'de> for DatasetRequest {
8989
}
9090
"type" => {
9191
type_ = Some(serde_json::from_value(v).map_err(M::Error::custom)?);
92+
if let Some(ref _type_) = type_ {
93+
match _type_ {
94+
crate::datadogV2::model::DatasetType::UnparsedObject(
95+
_type_,
96+
) => {
97+
_unparsed = true;
98+
}
99+
_ => {}
100+
}
101+
}
92102
}
93103
&_ => {
94104
if let Ok(value) = serde_json::from_value(v.clone()) {

src/datadogV2/model/model_dataset_response.rs

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -27,9 +27,9 @@ pub struct DatasetResponse {
2727
/// Unique identifier for the dataset.
2828
#[serde(rename = "id")]
2929
pub id: Option<String>,
30-
/// Resource type, always "dataset".
30+
/// Resource type, always set to `dataset`.
3131
#[serde(rename = "type")]
32-
pub type_: Option<String>,
32+
pub type_: Option<crate::datadogV2::model::DatasetType>,
3333
#[serde(flatten)]
3434
pub additional_properties: std::collections::BTreeMap<String, serde_json::Value>,
3535
#[serde(skip)]
@@ -58,7 +58,7 @@ impl DatasetResponse {
5858
self
5959
}
6060

61-
pub fn type_(mut self, value: String) -> Self {
61+
pub fn type_(mut self, value: crate::datadogV2::model::DatasetType) -> Self {
6262
self.type_ = Some(value);
6363
self
6464
}
@@ -98,7 +98,7 @@ impl<'de> Deserialize<'de> for DatasetResponse {
9898
let mut attributes: Option<crate::datadogV2::model::DatasetAttributesResponse> =
9999
None;
100100
let mut id: Option<String> = None;
101-
let mut type_: Option<String> = None;
101+
let mut type_: Option<crate::datadogV2::model::DatasetType> = None;
102102
let mut additional_properties: std::collections::BTreeMap<
103103
String,
104104
serde_json::Value,
@@ -124,6 +124,16 @@ impl<'de> Deserialize<'de> for DatasetResponse {
124124
continue;
125125
}
126126
type_ = Some(serde_json::from_value(v).map_err(M::Error::custom)?);
127+
if let Some(ref _type_) = type_ {
128+
match _type_ {
129+
crate::datadogV2::model::DatasetType::UnparsedObject(
130+
_type_,
131+
) => {
132+
_unparsed = true;
133+
}
134+
_ => {}
135+
}
136+
}
127137
}
128138
&_ => {
129139
if let Ok(value) = serde_json::from_value(v.clone()) {
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
// Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License.
2+
// This product includes software developed at Datadog (https://www.datadoghq.com/).
3+
// Copyright 2019-Present Datadog, Inc.
4+
5+
use serde::{Deserialize, Deserializer, Serialize, Serializer};
6+
7+
#[non_exhaustive]
8+
#[derive(Clone, Debug, Eq, PartialEq)]
9+
pub enum DatasetType {
10+
DATASET,
11+
UnparsedObject(crate::datadog::UnparsedObject),
12+
}
13+
14+
impl ToString for DatasetType {
15+
fn to_string(&self) -> String {
16+
match self {
17+
Self::DATASET => String::from("dataset"),
18+
Self::UnparsedObject(v) => v.value.to_string(),
19+
}
20+
}
21+
}
22+
23+
impl Serialize for DatasetType {
24+
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
25+
where
26+
S: Serializer,
27+
{
28+
match self {
29+
Self::UnparsedObject(v) => v.serialize(serializer),
30+
_ => serializer.serialize_str(self.to_string().as_str()),
31+
}
32+
}
33+
}
34+
35+
impl<'de> Deserialize<'de> for DatasetType {
36+
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
37+
where
38+
D: Deserializer<'de>,
39+
{
40+
let s: String = String::deserialize(deserializer)?;
41+
Ok(match s.as_str() {
42+
"dataset" => Self::DATASET,
43+
_ => Self::UnparsedObject(crate::datadog::UnparsedObject {
44+
value: serde_json::Value::String(s.into()),
45+
}),
46+
})
47+
}
48+
}

0 commit comments

Comments
 (0)