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
37 changes: 37 additions & 0 deletions .generator/schemas/v2/openapi.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -52069,6 +52069,8 @@ components:
maximum: 5
minimum: 1
type: integer
suppressions:
$ref: '#/components/schemas/SensitiveDataScannerSuppressions'
tags:
description: List of tags.
items:
Expand Down Expand Up @@ -52290,6 +52292,41 @@ components:
type:
$ref: '#/components/schemas/SensitiveDataScannerStandardPatternType'
type: object
SensitiveDataScannerSuppressions:
description: 'Object describing the suppressions for a rule. There are three
types of suppressions, `starts_with`, `ends_with`, and `exact_match`.

Suppressed matches are not obfuscated, counted in metrics, or displayed in
the Findings page.'
properties:
ends_with:
description: List of strings to use for suppression of matches ending with
these strings.
example:
- '@example.com'
- example.com
items:
type: string
type: array
exact_match:
description: List of strings to use for suppression of matches exactly matching
these strings.
example:
- admin@example.com
- user@example.com
items:
type: string
type: array
starts_with:
description: List of strings to use for suppression of matches starting
with these strings.
example:
- admin
- user
items:
type: string
type: array
type: object
SensitiveDataScannerTextReplacement:
description: Object describing how the scanned event will be replaced.
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 @@ -6434,6 +6434,8 @@ pub mod model_sensitive_data_scanner_rule_attributes;
pub use self::model_sensitive_data_scanner_rule_attributes::SensitiveDataScannerRuleAttributes;
pub mod model_sensitive_data_scanner_included_keyword_configuration;
pub use self::model_sensitive_data_scanner_included_keyword_configuration::SensitiveDataScannerIncludedKeywordConfiguration;
pub mod model_sensitive_data_scanner_suppressions;
pub use self::model_sensitive_data_scanner_suppressions::SensitiveDataScannerSuppressions;
pub mod model_sensitive_data_scanner_text_replacement;
pub use self::model_sensitive_data_scanner_text_replacement::SensitiveDataScannerTextReplacement;
pub mod model_sensitive_data_scanner_text_replacement_type;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,10 @@ pub struct SensitiveDataScannerRuleAttributes {
/// Integer from 1 (high) to 5 (low) indicating rule issue severity.
#[serde(rename = "priority")]
pub priority: Option<i64>,
/// Object describing the suppressions for a rule. There are three types of suppressions, `starts_with`, `ends_with`, and `exact_match`.
/// Suppressed matches are not obfuscated, counted in metrics, or displayed in the Findings page.
#[serde(rename = "suppressions")]
pub suppressions: Option<crate::datadogV2::model::SensitiveDataScannerSuppressions>,
/// List of tags.
#[serde(rename = "tags")]
pub tags: Option<Vec<String>>,
Expand All @@ -64,6 +68,7 @@ impl SensitiveDataScannerRuleAttributes {
namespaces: None,
pattern: None,
priority: None,
suppressions: None,
tags: None,
text_replacement: None,
additional_properties: std::collections::BTreeMap::new(),
Expand Down Expand Up @@ -114,6 +119,14 @@ impl SensitiveDataScannerRuleAttributes {
self
}

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

pub fn tags(mut self, value: Vec<String>) -> Self {
self.tags = Some(value);
self
Expand Down Expand Up @@ -169,6 +182,9 @@ impl<'de> Deserialize<'de> for SensitiveDataScannerRuleAttributes {
let mut namespaces: Option<Vec<String>> = None;
let mut pattern: Option<String> = None;
let mut priority: Option<i64> = None;
let mut suppressions: Option<
crate::datadogV2::model::SensitiveDataScannerSuppressions,
> = None;
let mut tags: Option<Vec<String>> = None;
let mut text_replacement: Option<
crate::datadogV2::model::SensitiveDataScannerTextReplacement,
Expand Down Expand Up @@ -232,6 +248,13 @@ impl<'de> Deserialize<'de> for SensitiveDataScannerRuleAttributes {
}
priority = Some(serde_json::from_value(v).map_err(M::Error::custom)?);
}
"suppressions" => {
if v.is_null() {
continue;
}
suppressions =
Some(serde_json::from_value(v).map_err(M::Error::custom)?);
}
"tags" => {
if v.is_null() {
continue;
Expand Down Expand Up @@ -262,6 +285,7 @@ impl<'de> Deserialize<'de> for SensitiveDataScannerRuleAttributes {
namespaces,
pattern,
priority,
suppressions,
tags,
text_replacement,
additional_properties,
Expand Down
142 changes: 142 additions & 0 deletions src/datadogV2/model/model_sensitive_data_scanner_suppressions.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,142 @@
// 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};

/// Object describing the suppressions for a rule. There are three types of suppressions, `starts_with`, `ends_with`, and `exact_match`.
/// Suppressed matches are not obfuscated, counted in metrics, or displayed in the Findings page.
#[non_exhaustive]
#[skip_serializing_none]
#[derive(Clone, Debug, PartialEq, Serialize)]
pub struct SensitiveDataScannerSuppressions {
/// List of strings to use for suppression of matches ending with these strings.
#[serde(rename = "ends_with")]
pub ends_with: Option<Vec<String>>,
/// List of strings to use for suppression of matches exactly matching these strings.
#[serde(rename = "exact_match")]
pub exact_match: Option<Vec<String>>,
/// List of strings to use for suppression of matches starting with these strings.
#[serde(rename = "starts_with")]
pub starts_with: Option<Vec<String>>,
#[serde(flatten)]
pub additional_properties: std::collections::BTreeMap<String, serde_json::Value>,
#[serde(skip)]
#[serde(default)]
pub(crate) _unparsed: bool,
}

impl SensitiveDataScannerSuppressions {
pub fn new() -> SensitiveDataScannerSuppressions {
SensitiveDataScannerSuppressions {
ends_with: None,
exact_match: None,
starts_with: None,
additional_properties: std::collections::BTreeMap::new(),
_unparsed: false,
}
}

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

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

pub fn starts_with(mut self, value: Vec<String>) -> Self {
self.starts_with = 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 SensitiveDataScannerSuppressions {
fn default() -> Self {
Self::new()
}
}

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

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 ends_with: Option<Vec<String>> = None;
let mut exact_match: Option<Vec<String>> = None;
let mut starts_with: Option<Vec<String>> = 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() {
"ends_with" => {
if v.is_null() {
continue;
}
ends_with = Some(serde_json::from_value(v).map_err(M::Error::custom)?);
}
"exact_match" => {
if v.is_null() {
continue;
}
exact_match =
Some(serde_json::from_value(v).map_err(M::Error::custom)?);
}
"starts_with" => {
if v.is_null() {
continue;
}
starts_with =
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 = SensitiveDataScannerSuppressions {
ends_with,
exact_match,
starts_with,
additional_properties,
_unparsed,
};

Ok(content)
}
}

deserializer.deserialize_any(SensitiveDataScannerSuppressionsVisitor)
}
}
Original file line number Diff line number Diff line change
@@ -1 +1 @@
2022-12-09T09:52:45.850Z
2026-01-15T19:26:36.689Z
Original file line number Diff line number Diff line change
Expand Up @@ -9,29 +9,29 @@
]
},
"method": "get",
"uri": "https://api.datadoghq.com/api/v2/sensitive-data-scanner/config"
"uri": "https://frog.datadoghq.com/api/v2/sensitive-data-scanner/config"
},
"response": {
"body": {
"string": "{\"meta\":{\"count_limit\":100,\"version\":1189,\"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\":{\"attributes\":{},\"id\":\"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87\",\"relationships\":{\"groups\":{\"data\":[{\"id\":\"d2665de8-b577-4d71-b1b8-4355b1aaf2c6\",\"type\":\"sensitive_data_scanner_group\"},{\"id\":\"ec9a039b-523c-4b48-af30-62bb2838610f\",\"type\":\"sensitive_data_scanner_group\"},{\"id\":\"83b2d015-c3e1-47bb-aef0-15763bc7ae1f\",\"type\":\"sensitive_data_scanner_group\"},{\"id\":\"d9ff2a5f-698a-4743-a80a-e669fd23a3a9\",\"type\":\"sensitive_data_scanner_group\"},{\"id\":\"b6088534-c2a8-4ae1-8bdb-b3923199caf3\",\"type\":\"sensitive_data_scanner_group\"}]}},\"type\":\"sensitive_data_scanner_configuration\"},\"included\":[{\"attributes\":{\"description\":\"\",\"filter\":{\"query\":\"*\"},\"is_enabled\":false,\"name\":\"Test-Typescript-Create_Scanning_Group_returns_OK_response-1766488603\",\"product_list\":[\"logs\"],\"samplings\":[]},\"id\":\"d2665de8-b577-4d71-b1b8-4355b1aaf2c6\",\"relationships\":{\"configuration\":{\"data\":{\"id\":\"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87\",\"type\":\"sensitive_data_scanner_configuration\"}},\"rules\":{\"data\":[]}},\"type\":\"sensitive_data_scanner_group\"},{\"attributes\":{\"description\":\"\",\"filter\":{\"query\":\"*\"},\"is_enabled\":false,\"name\":\"my-test-group\",\"product_list\":[\"logs\"],\"samplings\":[{\"product\":\"logs\",\"rate\":100}]},\"id\":\"ec9a039b-523c-4b48-af30-62bb2838610f\",\"relationships\":{\"configuration\":{\"data\":{\"id\":\"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87\",\"type\":\"sensitive_data_scanner_configuration\"}},\"rules\":{\"data\":[]}},\"type\":\"sensitive_data_scanner_group\"},{\"attributes\":{\"description\":\"\",\"filter\":{\"query\":\"*\"},\"is_enabled\":false,\"name\":\"my-test-group\",\"product_list\":[\"logs\"],\"samplings\":[{\"product\":\"logs\",\"rate\":100}]},\"id\":\"83b2d015-c3e1-47bb-aef0-15763bc7ae1f\",\"relationships\":{\"configuration\":{\"data\":{\"id\":\"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87\",\"type\":\"sensitive_data_scanner_configuration\"}},\"rules\":{\"data\":[]}},\"type\":\"sensitive_data_scanner_group\"},{\"attributes\":{\"description\":\"\",\"filter\":{\"query\":\"*\"},\"is_enabled\":false,\"name\":\"my-test-group\",\"product_list\":[\"logs\"],\"samplings\":[{\"product\":\"logs\",\"rate\":100}]},\"id\":\"d9ff2a5f-698a-4743-a80a-e669fd23a3a9\",\"relationships\":{\"configuration\":{\"data\":{\"id\":\"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87\",\"type\":\"sensitive_data_scanner_configuration\"}},\"rules\":{\"data\":[]}},\"type\":\"sensitive_data_scanner_group\"},{\"attributes\":{\"description\":\"\",\"filter\":{\"query\":\"*\"},\"is_enabled\":false,\"name\":\"my-test-group\",\"product_list\":[\"logs\"],\"samplings\":[{\"product\":\"logs\",\"rate\":100}]},\"id\":\"b6088534-c2a8-4ae1-8bdb-b3923199caf3\",\"relationships\":{\"configuration\":{\"data\":{\"id\":\"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87\",\"type\":\"sensitive_data_scanner_configuration\"}},\"rules\":{\"data\":[]}},\"type\":\"sensitive_data_scanner_group\"}],\"meta\":{\"count_limit\":500,\"group_count_limit\":20,\"has_cascading_enabled\":false,\"has_highlight_enabled\":true,\"has_multi_pass_enabled\":true,\"is_configuration_superseded\":false,\"is_float_sampling_rate_enabled\":false,\"is_pci_compliant\":false,\"min_sampling_rate\":10,\"version\":275775}}",
"encoding": null
},
"headers": {
"Content-Type": [
"application/json"
"application/vnd.api+json"
]
},
"status": {
"code": 200,
"message": "OK"
}
},
"recorded_at": "Fri, 09 Dec 2022 09:52:45 GMT"
"recorded_at": "Thu, 15 Jan 2026 19:26:36 GMT"
},
{
"request": {
"body": {
"string": "{\"data\":{\"attributes\":{\"filter\":{\"query\":\"*\"},\"is_enabled\":false,\"name\":\"Test-Create_Scanning_Group_returns_OK_response-1670579565\",\"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\":\"Test-Create_Scanning_Group_returns_OK_response-1768505196\",\"product_list\":[\"logs\"]},\"relationships\":{\"configuration\":{\"data\":{\"id\":\"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87\",\"type\":\"sensitive_data_scanner_configuration\"}},\"rules\":{\"data\":[]}},\"type\":\"sensitive_data_scanner_group\"},\"meta\":{}}",
"encoding": null
},
"headers": {
Expand All @@ -43,24 +43,24 @@
]
},
"method": "post",
"uri": "https://api.datadoghq.com/api/v2/sensitive-data-scanner/config/groups"
"uri": "https://frog.datadoghq.com/api/v2/sensitive-data-scanner/config/groups"
},
"response": {
"body": {
"string": "{\"meta\":{\"version\":1190},\"data\":{\"relationships\":{\"rules\":{\"data\":[]},\"configuration\":{\"data\":{\"type\":\"sensitive_data_scanner_configuration\",\"id\":\"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87\"}}},\"attributes\":{\"is_enabled\":false,\"filter\":{\"query\":\"*\"},\"product_list\":[\"logs\"],\"name\":\"Test-Create_Scanning_Group_returns_OK_response-1670579565\"},\"type\":\"sensitive_data_scanner_group\",\"id\":\"RJDd4r3FQ2CpbYFQIL1KIA\"}}\n",
"string": "{\"data\":{\"id\":\"e6722da9-8d8d-4646-adff-f6a6795e5091\",\"type\":\"sensitive_data_scanner_group\",\"attributes\":{\"description\":\"\",\"filter\":{\"query\":\"*\"},\"is_enabled\":false,\"name\":\"Test-Create_Scanning_Group_returns_OK_response-1768505196\",\"product_list\":[\"logs\"],\"samplings\":[]},\"relationships\":{\"configuration\":{\"data\":{\"id\":\"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87\",\"type\":\"sensitive_data_scanner_configuration\"}},\"rules\":{\"data\":[]}}},\"meta\":{\"version\":275776}}",
"encoding": null
},
"headers": {
"Content-Type": [
"application/json"
"application/vnd.api+json"
]
},
"status": {
"code": 200,
"message": "OK"
"code": 201,
"message": "Created"
}
},
"recorded_at": "Fri, 09 Dec 2022 09:52:45 GMT"
"recorded_at": "Thu, 15 Jan 2026 19:26:36 GMT"
},
{
"request": {
Expand All @@ -77,24 +77,24 @@
]
},
"method": "delete",
"uri": "https://api.datadoghq.com/api/v2/sensitive-data-scanner/config/groups/RJDd4r3FQ2CpbYFQIL1KIA"
"uri": "https://frog.datadoghq.com/api/v2/sensitive-data-scanner/config/groups/e6722da9-8d8d-4646-adff-f6a6795e5091"
},
"response": {
"body": {
"string": "{\"meta\":{\"version\":1191}}\n",
"string": "{\"meta\":{\"version\":275777}}",
"encoding": null
},
"headers": {
"Content-Type": [
"application/json"
"application/vnd.api+json"
]
},
"status": {
"code": 200,
"message": "OK"
}
},
"recorded_at": "Fri, 09 Dec 2022 09:52:45 GMT"
"recorded_at": "Thu, 15 Jan 2026 19:26:36 GMT"
}
],
"recorded_with": "VCR 6.0.0"
Expand Down
Original file line number Diff line number Diff line change
@@ -1 +1 @@
2025-05-30T17:17:05.785Z
2026-01-15T19:26:38.008Z

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
@@ -1 +1 @@
2025-05-30T17:17:07.743Z
2026-01-15T19:26:39.695Z

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
@@ -1 +1 @@
2025-08-26T20:31:44.042Z
2026-01-15T19:26:41.821Z
Loading
Loading