v2_sensitive_data_scanner_CreateScanningRule_502667299/
v2_sensitive-data-scanner_CreateScanningRule_502667299.rs1use datadog_api_client::datadog;
3use datadog_api_client::datadogV2::api_sensitive_data_scanner::SensitiveDataScannerAPI;
4use datadog_api_client::datadogV2::model::SensitiveDataScannerGroup;
5use datadog_api_client::datadogV2::model::SensitiveDataScannerGroupData;
6use datadog_api_client::datadogV2::model::SensitiveDataScannerGroupType;
7use datadog_api_client::datadogV2::model::SensitiveDataScannerMetaVersionOnly;
8use datadog_api_client::datadogV2::model::SensitiveDataScannerRuleAttributes;
9use datadog_api_client::datadogV2::model::SensitiveDataScannerRuleCreate;
10use datadog_api_client::datadogV2::model::SensitiveDataScannerRuleCreateRequest;
11use datadog_api_client::datadogV2::model::SensitiveDataScannerRuleRelationships;
12use datadog_api_client::datadogV2::model::SensitiveDataScannerRuleType;
13use datadog_api_client::datadogV2::model::SensitiveDataScannerTextReplacement;
14use datadog_api_client::datadogV2::model::SensitiveDataScannerTextReplacementType;
15
16#[tokio::main]
17async fn main() {
18    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}