Skip to content
Merged
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
8 changes: 4 additions & 4 deletions .apigentools-info
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,13 @@
"spec_versions": {
"v1": {
"apigentools_version": "1.6.6",
"regenerated": "2025-06-17 14:56:00.539225",
"spec_repo_commit": "b359fdcc"
"regenerated": "2025-06-17 18:21:57.470118",
"spec_repo_commit": "b1a1c000"
},
"v2": {
"apigentools_version": "1.6.6",
"regenerated": "2025-06-17 14:56:00.555372",
"spec_repo_commit": "b359fdcc"
"regenerated": "2025-06-17 18:21:57.486359",
"spec_repo_commit": "b1a1c000"
}
}
}
18 changes: 18 additions & 0 deletions .generator/schemas/v2/openapi.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -35002,6 +35002,11 @@ components:
items:
$ref: '#/components/schemas/SensitiveDataScannerProduct'
type: array
samplings:
description: List of sampling rates per product type.
items:
$ref: '#/components/schemas/SensitiveDataScannerSamplings'
type: array
type: object
SensitiveDataScannerGroupCreate:
description: Data related to the creation of a group.
Expand Down Expand Up @@ -35433,6 +35438,19 @@ components:
meta:
$ref: '#/components/schemas/SensitiveDataScannerMetaVersionOnly'
type: object
SensitiveDataScannerSamplings:
description: Sampling configurations for the Scanning Group.
properties:
product:
$ref: '#/components/schemas/SensitiveDataScannerProduct'
rate:
description: Rate at which data in product type will be scanned, as a percentage.
example: 100.0
format: double
maximum: 100.0
minimum: 0.0
type: number
type: object
SensitiveDataScannerStandardPattern:
description: Data containing the standard pattern id.
properties:
Expand Down
2 changes: 2 additions & 0 deletions src/datadogV2/model/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -4332,6 +4332,8 @@ pub mod model_sensitive_data_scanner_filter;
pub use self::model_sensitive_data_scanner_filter::SensitiveDataScannerFilter;
pub mod model_sensitive_data_scanner_product;
pub use self::model_sensitive_data_scanner_product::SensitiveDataScannerProduct;
pub mod model_sensitive_data_scanner_samplings;
pub use self::model_sensitive_data_scanner_samplings::SensitiveDataScannerSamplings;
pub mod model_sensitive_data_scanner_group_relationships;
pub use self::model_sensitive_data_scanner_group_relationships::SensitiveDataScannerGroupRelationships;
pub mod model_sensitive_data_scanner_configuration_data;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,9 @@ pub struct SensitiveDataScannerGroupAttributes {
/// List of products the scanning group applies.
#[serde(rename = "product_list")]
pub product_list: Option<Vec<crate::datadogV2::model::SensitiveDataScannerProduct>>,
/// List of sampling rates per product type.
#[serde(rename = "samplings")]
pub samplings: Option<Vec<crate::datadogV2::model::SensitiveDataScannerSamplings>>,
#[serde(flatten)]
pub additional_properties: std::collections::BTreeMap<String, serde_json::Value>,
#[serde(skip)]
Expand All @@ -41,6 +44,7 @@ impl SensitiveDataScannerGroupAttributes {
is_enabled: None,
name: None,
product_list: None,
samplings: None,
additional_properties: std::collections::BTreeMap::new(),
_unparsed: false,
}
Expand Down Expand Up @@ -74,6 +78,14 @@ impl SensitiveDataScannerGroupAttributes {
self
}

pub fn samplings(
mut self,
value: Vec<crate::datadogV2::model::SensitiveDataScannerSamplings>,
) -> Self {
self.samplings = Some(value);
self
}

pub fn additional_properties(
mut self,
value: std::collections::BTreeMap<String, serde_json::Value>,
Expand Down Expand Up @@ -113,6 +125,9 @@ impl<'de> Deserialize<'de> for SensitiveDataScannerGroupAttributes {
let mut product_list: Option<
Vec<crate::datadogV2::model::SensitiveDataScannerProduct>,
> = None;
let mut samplings: Option<
Vec<crate::datadogV2::model::SensitiveDataScannerSamplings>,
> = None;
let mut additional_properties: std::collections::BTreeMap<
String,
serde_json::Value,
Expand Down Expand Up @@ -153,6 +168,12 @@ impl<'de> Deserialize<'de> for SensitiveDataScannerGroupAttributes {
product_list =
Some(serde_json::from_value(v).map_err(M::Error::custom)?);
}
"samplings" => {
if v.is_null() {
continue;
}
samplings = Some(serde_json::from_value(v).map_err(M::Error::custom)?);
}
&_ => {
if let Ok(value) = serde_json::from_value(v.clone()) {
additional_properties.insert(k, value);
Expand All @@ -167,6 +188,7 @@ impl<'de> Deserialize<'de> for SensitiveDataScannerGroupAttributes {
is_enabled,
name,
product_list,
samplings,
additional_properties,
_unparsed,
};
Expand Down
131 changes: 131 additions & 0 deletions src/datadogV2/model/model_sensitive_data_scanner_samplings.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,131 @@
// Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License.
// This product includes software developed at Datadog (https://www.datadoghq.com/).
// Copyright 2019-Present Datadog, Inc.
use serde::de::{Error, MapAccess, Visitor};
use serde::{Deserialize, Deserializer, Serialize};
use serde_with::skip_serializing_none;
use std::fmt::{self, Formatter};

/// Sampling configurations for the Scanning Group.
#[non_exhaustive]
#[skip_serializing_none]
#[derive(Clone, Debug, PartialEq, Serialize)]
pub struct SensitiveDataScannerSamplings {
/// Datadog product onto which Sensitive Data Scanner can be activated.
#[serde(rename = "product")]
pub product: Option<crate::datadogV2::model::SensitiveDataScannerProduct>,
/// Rate at which data in product type will be scanned, as a percentage.
#[serde(rename = "rate")]
pub rate: Option<f64>,
#[serde(flatten)]
pub additional_properties: std::collections::BTreeMap<String, serde_json::Value>,
#[serde(skip)]
#[serde(default)]
pub(crate) _unparsed: bool,
}

impl SensitiveDataScannerSamplings {
pub fn new() -> SensitiveDataScannerSamplings {
SensitiveDataScannerSamplings {
product: None,
rate: None,
additional_properties: std::collections::BTreeMap::new(),
_unparsed: false,
}
}

pub fn product(mut self, value: crate::datadogV2::model::SensitiveDataScannerProduct) -> Self {
self.product = Some(value);
self
}

pub fn rate(mut self, value: f64) -> Self {
self.rate = Some(value);
self
}

pub fn additional_properties(
mut self,
value: std::collections::BTreeMap<String, serde_json::Value>,
) -> Self {
self.additional_properties = value;
self
}
}

impl Default for SensitiveDataScannerSamplings {
fn default() -> Self {
Self::new()
}
}

impl<'de> Deserialize<'de> for SensitiveDataScannerSamplings {
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
where
D: Deserializer<'de>,
{
struct SensitiveDataScannerSamplingsVisitor;
impl<'a> Visitor<'a> for SensitiveDataScannerSamplingsVisitor {
type Value = SensitiveDataScannerSamplings;

fn expecting(&self, f: &mut Formatter<'_>) -> fmt::Result {
f.write_str("a mapping")
}

fn visit_map<M>(self, mut map: M) -> Result<Self::Value, M::Error>
where
M: MapAccess<'a>,
{
let mut product: Option<crate::datadogV2::model::SensitiveDataScannerProduct> =
None;
let mut rate: Option<f64> = None;
let mut additional_properties: std::collections::BTreeMap<
String,
serde_json::Value,
> = std::collections::BTreeMap::new();
let mut _unparsed = false;

while let Some((k, v)) = map.next_entry::<String, serde_json::Value>()? {
match k.as_str() {
"product" => {
if v.is_null() {
continue;
}
product = Some(serde_json::from_value(v).map_err(M::Error::custom)?);
if let Some(ref _product) = product {
match _product {
crate::datadogV2::model::SensitiveDataScannerProduct::UnparsedObject(_product) => {
_unparsed = true;
},
_ => {}
}
}
}
"rate" => {
if v.is_null() {
continue;
}
rate = Some(serde_json::from_value(v).map_err(M::Error::custom)?);
}
&_ => {
if let Ok(value) = serde_json::from_value(v.clone()) {
additional_properties.insert(k, value);
}
}
}
}

let content = SensitiveDataScannerSamplings {
product,
rate,
additional_properties,
_unparsed,
};

Ok(content)
}
}

deserializer.deserialize_any(SensitiveDataScannerSamplingsVisitor)
}
}
Original file line number Diff line number Diff line change
@@ -1 +1 @@
2022-12-15T14:50:52.745Z
2025-05-30T17:17:05.785Z

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
@@ -1 +1 @@
2024-01-04T13:51:03.802Z
2025-05-30T17:17:07.743Z

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
@@ -1 +1 @@
2022-12-09T09:52:52.562Z
2025-05-30T17:17:09.412Z

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
@@ -1 +1 @@
2023-01-24T13:12:15.106Z
2025-05-30T17:17:10.839Z

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
@@ -1 +1 @@
2022-12-09T09:52:58.706Z
2025-05-30T17:17:12.782Z

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
@@ -1 +1 @@
2022-12-09T09:53:00.584Z
2025-05-30T17:17:14.127Z

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
@@ -1 +1 @@
2022-12-09T09:50:06.977Z
2025-06-02T15:33:38.909Z
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
},
"response": {
"body": {
"string": "{\"meta\":{\"count_limit\":100,\"version\":1186,\"group_count_limit\":20,\"is_pci_compliant\":false,\"has_highlight_enabled\":true},\"data\":{\"relationships\":{\"groups\":{\"data\":[]}},\"attributes\":{},\"type\":\"sensitive_data_scanner_configuration\",\"id\":\"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87\"}}\n",
"string": "{\"data\":{\"id\":\"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87\",\"attributes\":{},\"type\":\"sensitive_data_scanner_configuration\",\"relationships\":{\"groups\":{\"data\":[]}}},\"meta\":{\"version\":274826,\"count_limit\":100,\"group_count_limit\":20,\"is_pci_compliant\":false,\"has_highlight_enabled\":true,\"has_multi_pass_enabled\":true,\"has_cascading_enabled\":false,\"is_configuration_superseded\":false,\"is_float_sampling_rate_enabled\":false,\"min_sampling_rate\":10.0}}\n",
"encoding": null
},
"headers": {
Expand All @@ -26,12 +26,12 @@
"message": "OK"
}
},
"recorded_at": "Fri, 09 Dec 2022 09:50:06 GMT"
"recorded_at": "Mon, 02 Jun 2025 15:33:38 GMT"
},
{
"request": {
"body": {
"string": "{\"data\":{\"attributes\":{\"filter\":{\"query\":\"*\"},\"is_enabled\":false,\"name\":\"my-test-group\",\"product_list\":[\"logs\"]},\"relationships\":{\"configuration\":{\"data\":{\"id\":\"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87\",\"type\":\"sensitive_data_scanner_configuration\"}},\"rules\":{\"data\":[]}},\"type\":\"sensitive_data_scanner_group\"},\"meta\":{}}",
"string": "{\"data\":{\"attributes\":{\"filter\":{\"query\":\"*\"},\"is_enabled\":false,\"name\":\"my-test-group\",\"product_list\":[\"logs\"],\"samplings\":[{\"product\":\"logs\",\"rate\":100}]},\"relationships\":{\"configuration\":{\"data\":{\"id\":\"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87\",\"type\":\"sensitive_data_scanner_configuration\"}},\"rules\":{\"data\":[]}},\"type\":\"sensitive_data_scanner_group\"},\"meta\":{}}",
"encoding": null
},
"headers": {
Expand All @@ -47,7 +47,7 @@
},
"response": {
"body": {
"string": "{\"meta\":{\"version\":1187},\"data\":{\"relationships\":{\"rules\":{\"data\":[]},\"configuration\":{\"data\":{\"type\":\"sensitive_data_scanner_configuration\",\"id\":\"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87\"}}},\"attributes\":{\"is_enabled\":false,\"filter\":{\"query\":\"*\"},\"product_list\":[\"logs\"],\"name\":\"my-test-group\"},\"type\":\"sensitive_data_scanner_group\",\"id\":\"SHPTnSshQWWXLuF3pQhLPA\"}}\n",
"string": "{\"data\":{\"id\":\"24716cf9-9589-41fe-bc85-7df26a9483a9\",\"attributes\":{\"name\":\"my-test-group\",\"is_enabled\":false,\"filter\":{\"query\":\"*\"},\"product_list\":[\"logs\"],\"samplings\":[{\"product\":\"logs\",\"rate\":100.0}]},\"type\":\"sensitive_data_scanner_group\",\"relationships\":{\"configuration\":{\"data\":{\"id\":\"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87\",\"type\":\"sensitive_data_scanner_configuration\"}},\"rules\":{\"data\":[]}}},\"meta\":{\"version\":274827}}\n",
"encoding": null
},
"headers": {
Expand All @@ -60,12 +60,12 @@
"message": "OK"
}
},
"recorded_at": "Fri, 09 Dec 2022 09:50:06 GMT"
"recorded_at": "Mon, 02 Jun 2025 15:33:38 GMT"
},
{
"request": {
"body": {
"string": "{\"data\":{\"id\":\"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87\",\"relationships\":{\"groups\":{\"data\":[{\"id\":\"SHPTnSshQWWXLuF3pQhLPA\",\"type\":\"sensitive_data_scanner_group\"}]}},\"type\":\"sensitive_data_scanner_configuration\"},\"meta\":{}}",
"string": "{\"data\":{\"id\":\"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87\",\"relationships\":{\"groups\":{\"data\":[{\"id\":\"24716cf9-9589-41fe-bc85-7df26a9483a9\",\"type\":\"sensitive_data_scanner_group\"}]}},\"type\":\"sensitive_data_scanner_configuration\"},\"meta\":{}}",
"encoding": null
},
"headers": {
Expand All @@ -81,7 +81,7 @@
},
"response": {
"body": {
"string": "{\"meta\":{\"count_limit\":100,\"version\":1188,\"group_count_limit\":20,\"is_pci_compliant\":false,\"has_highlight_enabled\":true}}\n",
"string": "{\"meta\":{\"version\":274828,\"count_limit\":100,\"group_count_limit\":20,\"is_pci_compliant\":false,\"has_highlight_enabled\":true,\"has_multi_pass_enabled\":false,\"has_cascading_enabled\":false,\"is_configuration_superseded\":false,\"is_float_sampling_rate_enabled\":false,\"min_sampling_rate\":0.0}}\n",
"encoding": null
},
"headers": {
Expand All @@ -94,7 +94,7 @@
"message": "OK"
}
},
"recorded_at": "Fri, 09 Dec 2022 09:50:06 GMT"
"recorded_at": "Mon, 02 Jun 2025 15:33:38 GMT"
},
{
"request": {
Expand All @@ -111,11 +111,11 @@
]
},
"method": "delete",
"uri": "https://api.datadoghq.com/api/v2/sensitive-data-scanner/config/groups/SHPTnSshQWWXLuF3pQhLPA"
"uri": "https://api.datadoghq.com/api/v2/sensitive-data-scanner/config/groups/24716cf9-9589-41fe-bc85-7df26a9483a9"
},
"response": {
"body": {
"string": "{\"meta\":{\"version\":1189}}\n",
"string": "{\"meta\":{\"version\":274829}}\n",
"encoding": null
},
"headers": {
Expand All @@ -128,7 +128,7 @@
"message": "OK"
}
},
"recorded_at": "Fri, 09 Dec 2022 09:50:06 GMT"
"recorded_at": "Mon, 02 Jun 2025 15:33:38 GMT"
}
],
"recorded_with": "VCR 6.0.0"
Expand Down
Original file line number Diff line number Diff line change
@@ -1 +1 @@
2022-12-09T09:53:03.595Z
2025-05-30T17:17:15.446Z

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
@@ -1 +1 @@
2023-01-24T13:12:17.344Z
2025-05-30T17:17:16.805Z

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
@@ -1 +1 @@
2024-01-04T13:51:06.530Z
2025-05-30T17:17:18.819Z
Loading
Loading