#[non_exhaustive]pub struct SensitiveDataScannerTextReplacement {
pub number_of_chars: Option<i64>,
pub replacement_string: Option<String>,
pub should_save_match: Option<bool>,
pub type_: Option<SensitiveDataScannerTextReplacementType>,
pub additional_properties: BTreeMap<String, Value>,
/* private fields */
}
Expand description
Object describing how the scanned event will be replaced.
Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Struct { .. }
syntax; cannot be matched against without a wildcard ..
; and struct update syntax will not work.number_of_chars: Option<i64>
Required if type == ‘partial_replacement_from_beginning’ or ‘partial_replacement_from_end’. It must be > 0.
replacement_string: Option<String>
Required if type == ‘replacement_string’.
should_save_match: Option<bool>
Only valid when type == replacement_string
. When enabled, matches can be unmasked in logs by users with ‘Data Scanner Unmask’ permission. As a security best practice, avoid masking for highly-sensitive, long-lived data.
type_: Option<SensitiveDataScannerTextReplacementType>
Type of the replacement text. None means no replacement. hash means the data will be stubbed. replacement_string means that one can chose a text to replace the data. partial_replacement_from_beginning allows a user to partially replace the data from the beginning, and partial_replacement_from_end on the other hand, allows to replace data from the end.
additional_properties: BTreeMap<String, Value>
Implementations§
Source§impl SensitiveDataScannerTextReplacement
impl SensitiveDataScannerTextReplacement
Sourcepub fn new() -> SensitiveDataScannerTextReplacement
pub fn new() -> SensitiveDataScannerTextReplacement
Examples found in repository?
14async fn main() {
15 // the "scanning_group" has a "scanning_rule"
16 let rule_data_id = std::env::var("RULE_DATA_ID").unwrap();
17 let body = SensitiveDataScannerRuleUpdateRequest::new(
18 SensitiveDataScannerRuleUpdate::new()
19 .attributes(
20 SensitiveDataScannerRuleAttributes::new()
21 .included_keyword_configuration(
22 SensitiveDataScannerIncludedKeywordConfiguration::new(
23 35,
24 vec!["credit card".to_string(), "cc".to_string()],
25 ),
26 )
27 .is_enabled(true)
28 .name("Example-Sensitive-Data-Scanner".to_string())
29 .pattern("pattern".to_string())
30 .priority(5)
31 .tags(vec!["sensitive_data:true".to_string()])
32 .text_replacement(
33 SensitiveDataScannerTextReplacement::new()
34 .type_(SensitiveDataScannerTextReplacementType::NONE),
35 ),
36 )
37 .id(rule_data_id.clone())
38 .type_(SensitiveDataScannerRuleType::SENSITIVE_DATA_SCANNER_RULE),
39 SensitiveDataScannerMetaVersionOnly::new(),
40 );
41 let configuration = datadog::Configuration::new();
42 let api = SensitiveDataScannerAPI::with_config(configuration);
43 let resp = api.update_scanning_rule(rule_data_id.clone(), body).await;
44 if let Ok(value) = resp {
45 println!("{:#?}", value);
46 } else {
47 println!("{:#?}", resp.unwrap_err());
48 }
49}
More examples
17async fn main() {
18 // there is a valid "scanning_group" in the system
19 let group_data_id = std::env::var("GROUP_DATA_ID").unwrap();
20 let body = SensitiveDataScannerRuleCreateRequest::new(
21 SensitiveDataScannerRuleCreate::new(
22 SensitiveDataScannerRuleAttributes::new()
23 .is_enabled(true)
24 .name("Example-Sensitive-Data-Scanner".to_string())
25 .pattern("pattern".to_string())
26 .priority(1)
27 .tags(vec!["sensitive_data:true".to_string()])
28 .text_replacement(
29 SensitiveDataScannerTextReplacement::new()
30 .replacement_string("REDACTED".to_string())
31 .should_save_match(true)
32 .type_(SensitiveDataScannerTextReplacementType::REPLACEMENT_STRING),
33 ),
34 SensitiveDataScannerRuleRelationships::new().group(
35 SensitiveDataScannerGroupData::new().data(
36 SensitiveDataScannerGroup::new()
37 .id(group_data_id.clone())
38 .type_(SensitiveDataScannerGroupType::SENSITIVE_DATA_SCANNER_GROUP),
39 ),
40 ),
41 SensitiveDataScannerRuleType::SENSITIVE_DATA_SCANNER_RULE,
42 ),
43 SensitiveDataScannerMetaVersionOnly::new(),
44 );
45 let configuration = datadog::Configuration::new();
46 let api = SensitiveDataScannerAPI::with_config(configuration);
47 let resp = api.create_scanning_rule(body).await;
48 if let Ok(value) = resp {
49 println!("{:#?}", value);
50 } else {
51 println!("{:#?}", resp.unwrap_err());
52 }
53}
18async fn main() {
19 // there is a valid "scanning_group" in the system
20 let group_data_id = std::env::var("GROUP_DATA_ID").unwrap();
21 let body = SensitiveDataScannerRuleCreateRequest::new(
22 SensitiveDataScannerRuleCreate::new(
23 SensitiveDataScannerRuleAttributes::new()
24 .excluded_namespaces(vec!["admin.name".to_string()])
25 .included_keyword_configuration(
26 SensitiveDataScannerIncludedKeywordConfiguration::new(
27 35,
28 vec!["credit card".to_string()],
29 ),
30 )
31 .is_enabled(true)
32 .name("Example-Sensitive-Data-Scanner".to_string())
33 .namespaces(vec!["admin".to_string()])
34 .pattern("pattern".to_string())
35 .priority(1)
36 .tags(vec!["sensitive_data:true".to_string()])
37 .text_replacement(
38 SensitiveDataScannerTextReplacement::new()
39 .type_(SensitiveDataScannerTextReplacementType::NONE),
40 ),
41 SensitiveDataScannerRuleRelationships::new().group(
42 SensitiveDataScannerGroupData::new().data(
43 SensitiveDataScannerGroup::new()
44 .id(group_data_id.clone())
45 .type_(SensitiveDataScannerGroupType::SENSITIVE_DATA_SCANNER_GROUP),
46 ),
47 ),
48 SensitiveDataScannerRuleType::SENSITIVE_DATA_SCANNER_RULE,
49 ),
50 SensitiveDataScannerMetaVersionOnly::new(),
51 );
52 let configuration = datadog::Configuration::new();
53 let api = SensitiveDataScannerAPI::with_config(configuration);
54 let resp = api.create_scanning_rule(body).await;
55 if let Ok(value) = resp {
56 println!("{:#?}", value);
57 } else {
58 println!("{:#?}", resp.unwrap_err());
59 }
60}
pub fn number_of_chars(self, value: i64) -> Self
Sourcepub fn replacement_string(self, value: String) -> Self
pub fn replacement_string(self, value: String) -> Self
Examples found in repository?
17async fn main() {
18 // there is a valid "scanning_group" in the system
19 let group_data_id = std::env::var("GROUP_DATA_ID").unwrap();
20 let body = SensitiveDataScannerRuleCreateRequest::new(
21 SensitiveDataScannerRuleCreate::new(
22 SensitiveDataScannerRuleAttributes::new()
23 .is_enabled(true)
24 .name("Example-Sensitive-Data-Scanner".to_string())
25 .pattern("pattern".to_string())
26 .priority(1)
27 .tags(vec!["sensitive_data:true".to_string()])
28 .text_replacement(
29 SensitiveDataScannerTextReplacement::new()
30 .replacement_string("REDACTED".to_string())
31 .should_save_match(true)
32 .type_(SensitiveDataScannerTextReplacementType::REPLACEMENT_STRING),
33 ),
34 SensitiveDataScannerRuleRelationships::new().group(
35 SensitiveDataScannerGroupData::new().data(
36 SensitiveDataScannerGroup::new()
37 .id(group_data_id.clone())
38 .type_(SensitiveDataScannerGroupType::SENSITIVE_DATA_SCANNER_GROUP),
39 ),
40 ),
41 SensitiveDataScannerRuleType::SENSITIVE_DATA_SCANNER_RULE,
42 ),
43 SensitiveDataScannerMetaVersionOnly::new(),
44 );
45 let configuration = datadog::Configuration::new();
46 let api = SensitiveDataScannerAPI::with_config(configuration);
47 let resp = api.create_scanning_rule(body).await;
48 if let Ok(value) = resp {
49 println!("{:#?}", value);
50 } else {
51 println!("{:#?}", resp.unwrap_err());
52 }
53}
Sourcepub fn should_save_match(self, value: bool) -> Self
pub fn should_save_match(self, value: bool) -> Self
Examples found in repository?
17async fn main() {
18 // there is a valid "scanning_group" in the system
19 let group_data_id = std::env::var("GROUP_DATA_ID").unwrap();
20 let body = SensitiveDataScannerRuleCreateRequest::new(
21 SensitiveDataScannerRuleCreate::new(
22 SensitiveDataScannerRuleAttributes::new()
23 .is_enabled(true)
24 .name("Example-Sensitive-Data-Scanner".to_string())
25 .pattern("pattern".to_string())
26 .priority(1)
27 .tags(vec!["sensitive_data:true".to_string()])
28 .text_replacement(
29 SensitiveDataScannerTextReplacement::new()
30 .replacement_string("REDACTED".to_string())
31 .should_save_match(true)
32 .type_(SensitiveDataScannerTextReplacementType::REPLACEMENT_STRING),
33 ),
34 SensitiveDataScannerRuleRelationships::new().group(
35 SensitiveDataScannerGroupData::new().data(
36 SensitiveDataScannerGroup::new()
37 .id(group_data_id.clone())
38 .type_(SensitiveDataScannerGroupType::SENSITIVE_DATA_SCANNER_GROUP),
39 ),
40 ),
41 SensitiveDataScannerRuleType::SENSITIVE_DATA_SCANNER_RULE,
42 ),
43 SensitiveDataScannerMetaVersionOnly::new(),
44 );
45 let configuration = datadog::Configuration::new();
46 let api = SensitiveDataScannerAPI::with_config(configuration);
47 let resp = api.create_scanning_rule(body).await;
48 if let Ok(value) = resp {
49 println!("{:#?}", value);
50 } else {
51 println!("{:#?}", resp.unwrap_err());
52 }
53}
Sourcepub fn type_(self, value: SensitiveDataScannerTextReplacementType) -> Self
pub fn type_(self, value: SensitiveDataScannerTextReplacementType) -> Self
Examples found in repository?
14async fn main() {
15 // the "scanning_group" has a "scanning_rule"
16 let rule_data_id = std::env::var("RULE_DATA_ID").unwrap();
17 let body = SensitiveDataScannerRuleUpdateRequest::new(
18 SensitiveDataScannerRuleUpdate::new()
19 .attributes(
20 SensitiveDataScannerRuleAttributes::new()
21 .included_keyword_configuration(
22 SensitiveDataScannerIncludedKeywordConfiguration::new(
23 35,
24 vec!["credit card".to_string(), "cc".to_string()],
25 ),
26 )
27 .is_enabled(true)
28 .name("Example-Sensitive-Data-Scanner".to_string())
29 .pattern("pattern".to_string())
30 .priority(5)
31 .tags(vec!["sensitive_data:true".to_string()])
32 .text_replacement(
33 SensitiveDataScannerTextReplacement::new()
34 .type_(SensitiveDataScannerTextReplacementType::NONE),
35 ),
36 )
37 .id(rule_data_id.clone())
38 .type_(SensitiveDataScannerRuleType::SENSITIVE_DATA_SCANNER_RULE),
39 SensitiveDataScannerMetaVersionOnly::new(),
40 );
41 let configuration = datadog::Configuration::new();
42 let api = SensitiveDataScannerAPI::with_config(configuration);
43 let resp = api.update_scanning_rule(rule_data_id.clone(), body).await;
44 if let Ok(value) = resp {
45 println!("{:#?}", value);
46 } else {
47 println!("{:#?}", resp.unwrap_err());
48 }
49}
More examples
17async fn main() {
18 // there is a valid "scanning_group" in the system
19 let group_data_id = std::env::var("GROUP_DATA_ID").unwrap();
20 let body = SensitiveDataScannerRuleCreateRequest::new(
21 SensitiveDataScannerRuleCreate::new(
22 SensitiveDataScannerRuleAttributes::new()
23 .is_enabled(true)
24 .name("Example-Sensitive-Data-Scanner".to_string())
25 .pattern("pattern".to_string())
26 .priority(1)
27 .tags(vec!["sensitive_data:true".to_string()])
28 .text_replacement(
29 SensitiveDataScannerTextReplacement::new()
30 .replacement_string("REDACTED".to_string())
31 .should_save_match(true)
32 .type_(SensitiveDataScannerTextReplacementType::REPLACEMENT_STRING),
33 ),
34 SensitiveDataScannerRuleRelationships::new().group(
35 SensitiveDataScannerGroupData::new().data(
36 SensitiveDataScannerGroup::new()
37 .id(group_data_id.clone())
38 .type_(SensitiveDataScannerGroupType::SENSITIVE_DATA_SCANNER_GROUP),
39 ),
40 ),
41 SensitiveDataScannerRuleType::SENSITIVE_DATA_SCANNER_RULE,
42 ),
43 SensitiveDataScannerMetaVersionOnly::new(),
44 );
45 let configuration = datadog::Configuration::new();
46 let api = SensitiveDataScannerAPI::with_config(configuration);
47 let resp = api.create_scanning_rule(body).await;
48 if let Ok(value) = resp {
49 println!("{:#?}", value);
50 } else {
51 println!("{:#?}", resp.unwrap_err());
52 }
53}
18async fn main() {
19 // there is a valid "scanning_group" in the system
20 let group_data_id = std::env::var("GROUP_DATA_ID").unwrap();
21 let body = SensitiveDataScannerRuleCreateRequest::new(
22 SensitiveDataScannerRuleCreate::new(
23 SensitiveDataScannerRuleAttributes::new()
24 .excluded_namespaces(vec!["admin.name".to_string()])
25 .included_keyword_configuration(
26 SensitiveDataScannerIncludedKeywordConfiguration::new(
27 35,
28 vec!["credit card".to_string()],
29 ),
30 )
31 .is_enabled(true)
32 .name("Example-Sensitive-Data-Scanner".to_string())
33 .namespaces(vec!["admin".to_string()])
34 .pattern("pattern".to_string())
35 .priority(1)
36 .tags(vec!["sensitive_data:true".to_string()])
37 .text_replacement(
38 SensitiveDataScannerTextReplacement::new()
39 .type_(SensitiveDataScannerTextReplacementType::NONE),
40 ),
41 SensitiveDataScannerRuleRelationships::new().group(
42 SensitiveDataScannerGroupData::new().data(
43 SensitiveDataScannerGroup::new()
44 .id(group_data_id.clone())
45 .type_(SensitiveDataScannerGroupType::SENSITIVE_DATA_SCANNER_GROUP),
46 ),
47 ),
48 SensitiveDataScannerRuleType::SENSITIVE_DATA_SCANNER_RULE,
49 ),
50 SensitiveDataScannerMetaVersionOnly::new(),
51 );
52 let configuration = datadog::Configuration::new();
53 let api = SensitiveDataScannerAPI::with_config(configuration);
54 let resp = api.create_scanning_rule(body).await;
55 if let Ok(value) = resp {
56 println!("{:#?}", value);
57 } else {
58 println!("{:#?}", resp.unwrap_err());
59 }
60}
pub fn additional_properties(self, value: BTreeMap<String, Value>) -> Self
Trait Implementations§
Source§impl Clone for SensitiveDataScannerTextReplacement
impl Clone for SensitiveDataScannerTextReplacement
Source§fn clone(&self) -> SensitiveDataScannerTextReplacement
fn clone(&self) -> SensitiveDataScannerTextReplacement
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moreSource§impl<'de> Deserialize<'de> for SensitiveDataScannerTextReplacement
impl<'de> Deserialize<'de> for SensitiveDataScannerTextReplacement
Source§fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>where
D: Deserializer<'de>,
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>where
D: Deserializer<'de>,
Source§impl PartialEq for SensitiveDataScannerTextReplacement
impl PartialEq for SensitiveDataScannerTextReplacement
Source§fn eq(&self, other: &SensitiveDataScannerTextReplacement) -> bool
fn eq(&self, other: &SensitiveDataScannerTextReplacement) -> bool
self
and other
values to be equal, and is used by ==
.