Skip to content

Commit 032a5bc

Browse files
api-clients-generation-pipeline[bot]ci.datadog-api-spec
andauthored
Make dns port be string and number (#734)
Co-authored-by: ci.datadog-api-spec <[email protected]>
1 parent 6f3abd0 commit 032a5bc

File tree

6 files changed

+80
-9
lines changed

6 files changed

+80
-9
lines changed

.apigentools-info

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,13 @@
44
"spec_versions": {
55
"v1": {
66
"apigentools_version": "1.6.6",
7-
"regenerated": "2025-06-24 13:19:19.818164",
8-
"spec_repo_commit": "8772660e"
7+
"regenerated": "2025-06-25 11:39:37.419068",
8+
"spec_repo_commit": "5d86661b"
99
},
1010
"v2": {
1111
"apigentools_version": "1.6.6",
12-
"regenerated": "2025-06-24 13:19:19.835947",
13-
"spec_repo_commit": "8772660e"
12+
"regenerated": "2025-06-25 11:39:37.437815",
13+
"spec_repo_commit": "5d86661b"
1414
}
1515
}
1616
}

.generator/schemas/v1/openapi.yaml

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17201,8 +17201,8 @@ components:
1720117201
description: DNS server to use for DNS tests.
1720217202
type: string
1720317203
dnsServerPort:
17204+
$ref: '#/components/schemas/SyntheticsTestRequestDNSServerPort'
1720417205
description: DNS server port to use for DNS tests.
17205-
type: string
1720617206
files:
1720717207
description: Files to be used as part of the request in the test. Only valid
1720817208
if `bodyType` is `multipart/form-data`.
@@ -17356,6 +17356,15 @@ components:
1735617356
description: Date of update of the certificate or key, ISO format.
1735717357
type: string
1735817358
type: object
17359+
SyntheticsTestRequestDNSServerPort:
17360+
description: DNS server port to use for DNS tests.
17361+
oneOf:
17362+
- $ref: '#/components/schemas/SyntheticsTestRequestNumericalDNSServerPort'
17363+
- $ref: '#/components/schemas/SyntheticsTestRequestVariableDNSServerPort'
17364+
SyntheticsTestRequestNumericalDNSServerPort:
17365+
description: Integer DNS server port number to use when performing the test.
17366+
format: int64
17367+
type: integer
1735917368
SyntheticsTestRequestNumericalPort:
1736017369
description: Integer Port number to use when performing the test.
1736117370
format: int64
@@ -17377,6 +17386,10 @@ components:
1737717386
required:
1737817387
- url
1737917388
type: object
17389+
SyntheticsTestRequestVariableDNSServerPort:
17390+
description: String DNS server port number to use when performing the test.
17391+
Supports templated variables.
17392+
type: string
1738017393
SyntheticsTestRequestVariablePort:
1738117394
description: String Port number to use when performing the test. Supports templated
1738217395
variables.

examples/v1_synthetics_CreateSyntheticsAPITest_1279271422.rs

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ use datadog_api_client::datadogV1::model::SyntheticsTestOptions;
2929
use datadog_api_client::datadogV1::model::SyntheticsTestOptionsHTTPVersion;
3030
use datadog_api_client::datadogV1::model::SyntheticsTestOptionsRetry;
3131
use datadog_api_client::datadogV1::model::SyntheticsTestRequest;
32+
use datadog_api_client::datadogV1::model::SyntheticsTestRequestDNSServerPort;
3233
use datadog_api_client::datadogV1::model::SyntheticsTestRequestPort;
3334
use datadog_api_client::datadogV1::model::SyntheticsVariableParser;
3435
use std::collections::BTreeMap;
@@ -186,7 +187,12 @@ async fn main() {
186187
"DNS step".to_string(),
187188
SyntheticsTestRequest::new()
188189
.dns_server("8.8.8.8".to_string())
189-
.dns_server_port("53".to_string())
190+
.dns_server_port(
191+
SyntheticsTestRequestDNSServerPort
192+
::SyntheticsTestRequestVariableDNSServerPort(
193+
"53".to_string(),
194+
),
195+
)
190196
.host("troisdizaines.com".to_string()),
191197
SyntheticsAPITestStepSubtype::DNS,
192198
)

src/datadogV1/model/mod.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1424,6 +1424,8 @@ pub mod model_synthetics_test_request_certificate;
14241424
pub use self::model_synthetics_test_request_certificate::SyntheticsTestRequestCertificate;
14251425
pub mod model_synthetics_test_request_certificate_item;
14261426
pub use self::model_synthetics_test_request_certificate_item::SyntheticsTestRequestCertificateItem;
1427+
pub mod model_synthetics_test_request_dns_server_port;
1428+
pub use self::model_synthetics_test_request_dns_server_port::SyntheticsTestRequestDNSServerPort;
14271429
pub mod model_synthetics_test_request_body_file;
14281430
pub use self::model_synthetics_test_request_body_file::SyntheticsTestRequestBodyFile;
14291431
pub mod model_synthetics_test_options_http_version;

src/datadogV1/model/model_synthetics_test_request.rs

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ pub struct SyntheticsTestRequest {
4646
pub dns_server: Option<String>,
4747
/// DNS server port to use for DNS tests.
4848
#[serde(rename = "dnsServerPort")]
49-
pub dns_server_port: Option<String>,
49+
pub dns_server_port: Option<crate::datadogV1::model::SyntheticsTestRequestDNSServerPort>,
5050
/// Files to be used as part of the request in the test. Only valid if `bodyType` is `multipart/form-data`.
5151
#[serde(rename = "files")]
5252
pub files: Option<Vec<crate::datadogV1::model::SyntheticsTestRequestBodyFile>>,
@@ -221,7 +221,10 @@ impl SyntheticsTestRequest {
221221
self
222222
}
223223

224-
pub fn dns_server_port(mut self, value: String) -> Self {
224+
pub fn dns_server_port(
225+
mut self,
226+
value: crate::datadogV1::model::SyntheticsTestRequestDNSServerPort,
227+
) -> Self {
225228
self.dns_server_port = Some(value);
226229
self
227230
}
@@ -383,7 +386,9 @@ impl<'de> Deserialize<'de> for SyntheticsTestRequest {
383386
let mut compressed_json_descriptor: Option<String> = None;
384387
let mut compressed_proto_file: Option<String> = None;
385388
let mut dns_server: Option<String> = None;
386-
let mut dns_server_port: Option<String> = None;
389+
let mut dns_server_port: Option<
390+
crate::datadogV1::model::SyntheticsTestRequestDNSServerPort,
391+
> = None;
387392
let mut files: Option<Vec<crate::datadogV1::model::SyntheticsTestRequestBodyFile>> =
388393
None;
389394
let mut follow_redirects: Option<bool> = None;
@@ -518,6 +523,14 @@ impl<'de> Deserialize<'de> for SyntheticsTestRequest {
518523
}
519524
dns_server_port =
520525
Some(serde_json::from_value(v).map_err(M::Error::custom)?);
526+
if let Some(ref _dns_server_port) = dns_server_port {
527+
match _dns_server_port {
528+
crate::datadogV1::model::SyntheticsTestRequestDNSServerPort::UnparsedObject(_dns_server_port) => {
529+
_unparsed = true;
530+
},
531+
_ => {}
532+
}
533+
}
521534
}
522535
"files" => {
523536
if v.is_null() {
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
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+
use serde::{Deserialize, Deserializer, Serialize};
5+
6+
/// DNS server port to use for DNS tests.
7+
#[non_exhaustive]
8+
#[derive(Clone, Debug, PartialEq, Serialize)]
9+
#[serde(untagged)]
10+
pub enum SyntheticsTestRequestDNSServerPort {
11+
SyntheticsTestRequestNumericalDNSServerPort(i64),
12+
SyntheticsTestRequestVariableDNSServerPort(String),
13+
UnparsedObject(crate::datadog::UnparsedObject),
14+
}
15+
16+
impl<'de> Deserialize<'de> for SyntheticsTestRequestDNSServerPort {
17+
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
18+
where
19+
D: Deserializer<'de>,
20+
{
21+
let value: serde_json::Value = Deserialize::deserialize(deserializer)?;
22+
if let Ok(_v) = serde_json::from_value::<i64>(value.clone()) {
23+
return Ok(
24+
SyntheticsTestRequestDNSServerPort::SyntheticsTestRequestNumericalDNSServerPort(_v),
25+
);
26+
}
27+
if let Ok(_v) = serde_json::from_value::<String>(value.clone()) {
28+
return Ok(
29+
SyntheticsTestRequestDNSServerPort::SyntheticsTestRequestVariableDNSServerPort(_v),
30+
);
31+
}
32+
33+
return Ok(SyntheticsTestRequestDNSServerPort::UnparsedObject(
34+
crate::datadog::UnparsedObject { value },
35+
));
36+
}
37+
}

0 commit comments

Comments
 (0)