From 11f6fc8988e87e9acfb7d79a513e67f5bf957a29 Mon Sep 17 00:00:00 2001 From: "ci.datadog-api-spec" Date: Thu, 22 Jan 2026 10:59:36 +0000 Subject: [PATCH] Regenerate client from commit 2c69f89 of spec repo --- .generator/schemas/v2/openapi.yaml | 4 +- ..._scanning_group_returns_ok_response.frozen | 2 +- ...te_scanning_group_returns_ok_response.yaml | 26 +-- ...g_rule_returns_bad_request_response.frozen | 2 +- ...ing_rule_returns_bad_request_response.yaml | 123 ++--------- ...e_scanning_rule_returns_ok_response.frozen | 2 +- ...ate_scanning_rule_returns_ok_response.yaml | 135 ++---------- ...ould_save_match_returns_ok_response.frozen | 2 +- ...should_save_match_returns_ok_response.yaml | 44 ++-- ..._scanning_group_returns_ok_response.frozen | 2 +- ...te_scanning_group_returns_ok_response.yaml | 122 ++-------- ...e_scanning_rule_returns_ok_response.frozen | 2 +- ...ete_scanning_rule_returns_ok_response.yaml | 142 ++---------- ...scanning_groups_returns_ok_response.frozen | 2 +- ...t_scanning_groups_returns_ok_response.yaml | 208 +----------------- ...groups_returns_bad_request_response.frozen | 2 +- ...r_groups_returns_bad_request_response.yaml | 123 ++--------- ..._reorder_groups_returns_ok_response.frozen | 2 +- ...st_reorder_groups_returns_ok_response.yaml | 42 ++-- ..._scanning_group_returns_ok_response.frozen | 2 +- ...te_scanning_group_returns_ok_response.yaml | 123 ++--------- ...g_rule_returns_bad_request_response.frozen | 2 +- ...ing_rule_returns_bad_request_response.yaml | 145 ++---------- ...e_scanning_rule_returns_ok_response.frozen | 2 +- ...ate_scanning_rule_returns_ok_response.yaml | 143 ++---------- .../features/sensitive_data_scanner.feature | 9 +- 26 files changed, 216 insertions(+), 1197 deletions(-) diff --git a/.generator/schemas/v2/openapi.yaml b/.generator/schemas/v2/openapi.yaml index 39f6901f1a..8b27794738 100644 --- a/.generator/schemas/v2/openapi.yaml +++ b/.generator/schemas/v2/openapi.yaml @@ -89979,7 +89979,7 @@ paths: $ref: '#/components/schemas/SensitiveDataScannerGroupCreateRequest' required: true responses: - '200': + '201': content: application/json: schema: @@ -90121,7 +90121,7 @@ paths: $ref: '#/components/schemas/SensitiveDataScannerRuleCreateRequest' required: true responses: - '200': + '201': content: application/json: schema: diff --git a/tests/v2/cassettes/test_scenarios/test_create_scanning_group_returns_ok_response.frozen b/tests/v2/cassettes/test_scenarios/test_create_scanning_group_returns_ok_response.frozen index 53d5a36390..ea87314c85 100644 --- a/tests/v2/cassettes/test_scenarios/test_create_scanning_group_returns_ok_response.frozen +++ b/tests/v2/cassettes/test_scenarios/test_create_scanning_group_returns_ok_response.frozen @@ -1 +1 @@ -2022-12-09T09:52:45.850Z \ No newline at end of file +2026-01-19T13:11:03.221Z \ No newline at end of file diff --git a/tests/v2/cassettes/test_scenarios/test_create_scanning_group_returns_ok_response.yaml b/tests/v2/cassettes/test_scenarios/test_create_scanning_group_returns_ok_response.yaml index c9afcf6797..c558c9f679 100644 --- a/tests/v2/cassettes/test_scenarios/test_create_scanning_group_returns_ok_response.yaml +++ b/tests/v2/cassettes/test_scenarios/test_create_scanning_group_returns_ok_response.yaml @@ -8,17 +8,15 @@ interactions: uri: https://api.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"}} - - ' + string: '{"data":{"attributes":{},"id":"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87","relationships":{"groups":{"data":[]}},"type":"sensitive_data_scanner_configuration"},"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,"rule_count_limit":500,"version":277985}}' headers: content-type: - - application/json + - application/vnd.api+json status: code: 200 message: OK - request: - body: '{"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":{}}' + body: '{"data":{"attributes":{"filter":{"query":"*"},"is_enabled":false,"name":"Test-Create_Scanning_Group_returns_OK_response-1768828263","product_list":["logs"]},"relationships":{"configuration":{"data":{"id":"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87","type":"sensitive_data_scanner_configuration"}},"rules":{"data":[]}},"type":"sensitive_data_scanner_group"},"meta":{}}' headers: accept: - application/json @@ -28,15 +26,13 @@ interactions: uri: https://api.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"}} - - ' + string: '{"data":{"id":"b9c899da-45e7-47d6-ae95-8372577923e5","type":"sensitive_data_scanner_group","attributes":{"description":"","filter":{"query":"*"},"is_enabled":false,"name":"Test-Create_Scanning_Group_returns_OK_response-1768828263","product_list":["logs"],"samplings":[]},"relationships":{"configuration":{"data":{"id":"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87","type":"sensitive_data_scanner_configuration"}},"rules":{"data":[]}}},"meta":{"version":277986}}' headers: content-type: - - application/json + - application/vnd.api+json status: - code: 200 - message: OK + code: 201 + message: Created - request: body: '{"meta":{}}' headers: @@ -45,15 +41,13 @@ interactions: content-type: - application/json method: DELETE - uri: https://api.datadoghq.com/api/v2/sensitive-data-scanner/config/groups/RJDd4r3FQ2CpbYFQIL1KIA + uri: https://api.datadoghq.com/api/v2/sensitive-data-scanner/config/groups/b9c899da-45e7-47d6-ae95-8372577923e5 response: body: - string: '{"meta":{"version":1191}} - - ' + string: '{"meta":{"version":277987}}' headers: content-type: - - application/json + - application/vnd.api+json status: code: 200 message: OK diff --git a/tests/v2/cassettes/test_scenarios/test_create_scanning_rule_returns_bad_request_response.frozen b/tests/v2/cassettes/test_scenarios/test_create_scanning_rule_returns_bad_request_response.frozen index 9337592174..36c0a72242 100644 --- a/tests/v2/cassettes/test_scenarios/test_create_scanning_rule_returns_bad_request_response.frozen +++ b/tests/v2/cassettes/test_scenarios/test_create_scanning_rule_returns_bad_request_response.frozen @@ -1 +1 @@ -2025-05-30T17:17:05.785Z \ No newline at end of file +2026-01-19T13:11:04.324Z \ No newline at end of file diff --git a/tests/v2/cassettes/test_scenarios/test_create_scanning_rule_returns_bad_request_response.yaml b/tests/v2/cassettes/test_scenarios/test_create_scanning_rule_returns_bad_request_response.yaml index 624d9db939..a97e1a091e 100644 --- a/tests/v2/cassettes/test_scenarios/test_create_scanning_rule_returns_bad_request_response.yaml +++ b/tests/v2/cassettes/test_scenarios/test_create_scanning_rule_returns_bad_request_response.yaml @@ -8,101 +8,10 @@ interactions: uri: https://api.datadoghq.com/api/v2/sensitive-data-scanner/config response: body: - string: '{"data":{"id":"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87","attributes":{},"type":"sensitive_data_scanner_configuration","relationships":{"groups":{"data":[{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"},{"id":"0QvFjxASTxK2VgAIXOgGnQ","type":"sensitive_data_scanner_group"},{"id":"5a142739-d4a5-4d9e-bc20-a4fd77bb8db0","type":"sensitive_data_scanner_group"}]}}},"meta":{"version":274556,"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},"included":[{"id":"xdfyyx1FSzqEaNwOpqhsFw","attributes":{"name":"my-test-group","is_enabled":false,"filter":{"query":"*"},"product_list":["logs"],"samplings":[]},"type":"sensitive_data_scanner_group","relationships":{"configuration":{"data":{"id":"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87","type":"sensitive_data_scanner_configuration"}},"rules":{"data":[{"id":"5991e227-d611-4b56-afef-4992b5104755","type":"sensitive_data_scanner_rule"},{"id":"e28f1169-ba43-46ea-aa9e-a0f97a2fc830","type":"sensitive_data_scanner_rule"},{"id":"55318894-77ad-4b18-bc2d-562e388effe8","type":"sensitive_data_scanner_rule"},{"id":"7511ac78-b433-42e0-b291-eac394e1ae06","type":"sensitive_data_scanner_rule"},{"id":"47edb1c1-c841-48b0-bb84-9909485e1737","type":"sensitive_data_scanner_rule"},{"id":"1b4415eb-6e91-441a-b1bf-2a3cb7b9724b","type":"sensitive_data_scanner_rule"},{"id":"442c7cc0-2843-46f3-aedf-a027bcf8a22b","type":"sensitive_data_scanner_rule"},{"id":"dd7b34e8-c1d6-4ab0-bf4f-bb38809a1f43","type":"sensitive_data_scanner_rule"},{"id":"145bbddb-c4ca-49d0-92dd-a7774ceb1eb4","type":"sensitive_data_scanner_rule"},{"id":"2b2a4801-4f97-49c0-b6a3-e06d2f808c13","type":"sensitive_data_scanner_rule"},{"id":"175b62d2-fc94-4919-aa35-3d501849885c","type":"sensitive_data_scanner_rule"},{"id":"d75637b3-ef47-46a7-8f8f-1ce99134d827","type":"sensitive_data_scanner_rule"},{"id":"6678e2b9-7b6d-4020-a6a1-e392d5d4e838","type":"sensitive_data_scanner_rule"},{"id":"6837bea8-0c0e-4ee7-bd6c-6371cbca52bb","type":"sensitive_data_scanner_rule"},{"id":"f4fec54d-63c3-4151-8cc0-d925743124ff","type":"sensitive_data_scanner_rule"},{"id":"4724117a-668a-4a97-84e8-9f7d7cac0ab2","type":"sensitive_data_scanner_rule"},{"id":"70fbcc56-415b-42a2-96b0-53958f6024ba","type":"sensitive_data_scanner_rule"}]}}},{"id":"5991e227-d611-4b56-afef-4992b5104755","attributes":{"name":"HTTP - Basic Authentication Header Scanner","namespaces":[],"excluded_namespaces":[],"text_replacement":{"type":"none"},"tags":["sensitive_data_category:network_and_device_info","sensitive_data:basic_auth"],"labels":["domain:network","compliance:pci","compliance:gdpr","compliance:hipaa"],"is_enabled":true,"description":"Matches - the Authorization header of an HTTP request that uses the Basic authentication - scheme. It specifically looks for the Authorization keyword, followed by the - Basic keyword and a base64-encoded string.\n\nExamples of matching formats:\n- - `Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==`\n- `Authorization: Basic - Yml0c0FJOmhlbHAgbWU=`\n","priority":4,"included_keyword_configuration":{"keywords":[],"use_recommended_keywords":true,"character_count":30}},"type":"sensitive_data_scanner_rule","relationships":{"standard_pattern":{"data":{"id":"9d7756e343cefa22a5c098e1092590f806eb5446","type":"sensitive_data_scanner_standard_pattern"}},"group":{"data":{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"}}}},{"id":"e28f1169-ba43-46ea-aa9e-a0f97a2fc830","attributes":{"name":"HTTP - Cookie Scanner","namespaces":[],"excluded_namespaces":[],"text_replacement":{"type":"none"},"tags":["sensitive_data_category:network_and_device_info","sensitive_data:cookie"],"labels":["domain:network","compliance:pci","compliance:gdpr","compliance:hipaa"],"is_enabled":true,"description":"Matches - the Set-Cookie header of an HTTP response. It captures the cookie name-value - pairs and any optional attributes that are separated by semicolons.\n\nExamples - of matching formats:\n- `Set-Cookie: sessionid=123456; HttpOnly; Secure`\n- - `Set-Cookie: username=JohnDoe`\n","priority":4,"included_keyword_configuration":{"keywords":["cookie"],"use_recommended_keywords":true,"character_count":30}},"type":"sensitive_data_scanner_rule","relationships":{"standard_pattern":{"data":{"id":"34574e54c3e67a8a26d7070f331d83ae933d2730","type":"sensitive_data_scanner_standard_pattern"}},"group":{"data":{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"}}}},{"id":"55318894-77ad-4b18-bc2d-562e388effe8","attributes":{"name":"HTTP(S) - URL Scanner","namespaces":[],"excluded_namespaces":[],"text_replacement":{"type":"none"},"tags":["sensitive_data_category:url","sensitive_data:http_url"],"labels":["domain:network","compliance:pci","compliance:gdpr","compliance:hipaa"],"is_enabled":true,"description":"Matches - a sequence of characters representing a HTTP(S) URL.\n\nExamples of matching - formats:\n- `https://www.example.com/questions/3456/my-document?key1=value1&key2=value2`\n- - `http://example.com/%E5%BC%95%E3%81%8D%E5%89%B2%E3%82%8A.html`\n- `http://xn--fsqu00a.xn--3lr804guic/`\n","priority":4,"included_keyword_configuration":{"keywords":[],"use_recommended_keywords":true,"character_count":30}},"type":"sensitive_data_scanner_rule","relationships":{"standard_pattern":{"data":{"id":"aLQt_DX_T8S1MaWS82eoNQ","type":"sensitive_data_scanner_standard_pattern"}},"group":{"data":{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"}}}},{"id":"7511ac78-b433-42e0-b291-eac394e1ae06","attributes":{"name":"Canadian - Social Insurance Number Scanner","namespaces":[],"excluded_namespaces":[],"text_replacement":{"type":"none"},"tags":["sensitive_data_category:pii","sensitive_data:canadian_sin"],"labels":["domain:pii","compliance:gdpr"],"is_enabled":true,"description":"Matches - sequence of characters representing a Canadian Social Insurance Number (SIN), - which is composed of three digits separated by hyphens.\n\nExamples of matching - formats:\n- `123-456-789`\n- `456-789-123`\n","priority":4,"included_keyword_configuration":{"keywords":["canadian","canadian - insurance number","canadian social insurance","insurance number","number","sin","social","social - insurance"],"use_recommended_keywords":true,"character_count":30}},"type":"sensitive_data_scanner_rule","relationships":{"standard_pattern":{"data":{"id":"450239afc250a19799b6c03dc0e16fd6a4b2a1af","type":"sensitive_data_scanner_standard_pattern"}},"group":{"data":{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"}}}},{"id":"47edb1c1-c841-48b0-bb84-9909485e1737","attributes":{"name":"Chinese - Identity Card Number Scanner","namespaces":[],"excluded_namespaces":[],"text_replacement":{"type":"none"},"tags":["sensitive_data_category:pii","sensitive_data:chinese_id"],"labels":["domain:pii","compliance:gdpr"],"is_enabled":true,"description":"Matches - a sequence of characters representing a Chinese Identity Card Number format, - which consists of a single non-zero digit, followed by exactly 5 additional - digits, followed by a sequence of 7 to 18 digits. Matches are validated via - a checksum.\n\nExamples of matching formats:\n- `Chinese identity card number: - 320321197408094019`\n- `national id: 320321197408094019`\n","priority":4,"included_keyword_configuration":{"keywords":["national - id","resident identity","identity number","identification number","identity - card number","national identification number"],"use_recommended_keywords":true,"character_count":30}},"type":"sensitive_data_scanner_rule","relationships":{"standard_pattern":{"data":{"id":"4kEyzAP6fUEF83rWsEIZEx","type":"sensitive_data_scanner_standard_pattern"}},"group":{"data":{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"}}}},{"id":"1b4415eb-6e91-441a-b1bf-2a3cb7b9724b","attributes":{"name":"Chinese - Passport Scanner","namespaces":[],"excluded_namespaces":[],"text_replacement":{"type":"none"},"tags":["sensitive_data_category:pii","sensitive_data:chinese_passport"],"labels":["domain:pii","compliance:gdpr"],"is_enabled":true,"description":"Matches - a sequence of characters representing a Chinese passport number in a 9-character - format with 1 or 2 letters that can be D,DE,S,SE,G or E, and 7 or 8 digits.\n\nExamples - of matching formats:\n- `E01234567`\n- `G01234567`\n","priority":4,"included_keyword_configuration":{"keywords":["passport","travel - document"],"use_recommended_keywords":true,"character_count":30}},"type":"sensitive_data_scanner_rule","relationships":{"standard_pattern":{"data":{"id":"8Wld3kT1UyCfVGmO3Ok69R","type":"sensitive_data_scanner_standard_pattern"}},"group":{"data":{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"}}}},{"id":"442c7cc0-2843-46f3-aedf-a027bcf8a22b","attributes":{"name":"Chinese - Phone Number Scanner","namespaces":[],"excluded_namespaces":[],"text_replacement":{"type":"none"},"tags":["sensitive_data_category:pii","sensitive_data:chinese_phone_number"],"labels":["domain:pii","compliance:gdpr"],"is_enabled":true,"description":"Matches - a sequence of characters representing a Chinese phone number in a 11-character - format with the first digit being 1, the second digit being 3, 5, or 8, and - then exactly 9 additional digits.\n\nExamples of matching formats:\n- `18652313817`\n- - `+86 18552313817`\n","priority":4,"included_keyword_configuration":{"keywords":["mobile","phone","cell"],"use_recommended_keywords":true,"character_count":30}},"type":"sensitive_data_scanner_rule","relationships":{"standard_pattern":{"data":{"id":"V7sb5Px24c0n9yPwV72glH","type":"sensitive_data_scanner_standard_pattern"}},"group":{"data":{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"}}}},{"id":"dd7b34e8-c1d6-4ab0-bf4f-bb38809a1f43","attributes":{"name":"France - Social Security Number Scanner (INSEE/NIR)","namespaces":[],"excluded_namespaces":[],"text_replacement":{"type":"none"},"tags":["sensitive_data_category:pii","sensitive_data:france_nir"],"labels":["domain:pii","compliance:gdpr"],"is_enabled":true,"description":"Matches - a sequence of characters representing a France social security number (INSEE/NIR) - in a 9-digit format with optional delimiters after the 3rd and 5th digit. - Matches are validated via a checksum.\n\nExamples of matching formats:\n- - `1-51-02-46102-043-25`\n- `151024610204325`\n","priority":4,"included_keyword_configuration":{"keywords":["social - security","insee","nir"],"use_recommended_keywords":true,"character_count":30}},"type":"sensitive_data_scanner_rule","relationships":{"standard_pattern":{"data":{"id":"QiVm1XhY7GjzrSNrJ5IICB","type":"sensitive_data_scanner_standard_pattern"}},"group":{"data":{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"}}}},{"id":"145bbddb-c4ca-49d0-92dd-a7774ceb1eb4","attributes":{"name":"IPv4 - Address Scanner","namespaces":[],"excluded_namespaces":[],"text_replacement":{"type":"none"},"tags":["sensitive_data_category:ip_address","sensitive_data:ipv4_address"],"labels":["domain:network","compliance:gdpr","compliance:hipaa"],"is_enabled":true,"description":"Matches - a sequence of characters representing an IPv4 Address.\n\nExamples of matching - formats:\n- `127.0.0.1`\n- `172.16.254.1`\n","priority":4,"included_keyword_configuration":{"keywords":[],"use_recommended_keywords":true,"character_count":30}},"type":"sensitive_data_scanner_rule","relationships":{"standard_pattern":{"data":{"id":"aDA3jUjSSLOezHV2y-Rn_w","type":"sensitive_data_scanner_standard_pattern"}},"group":{"data":{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"}}}},{"id":"2b2a4801-4f97-49c0-b6a3-e06d2f808c13","attributes":{"name":"IPv6 - Address Scanner","namespaces":[],"excluded_namespaces":[],"text_replacement":{"type":"none"},"tags":["sensitive_data_category:ip_address","sensitive_data:ipv6_address"],"labels":["domain:network","compliance:gdpr","compliance:hipaa"],"is_enabled":true,"description":"Matches - a sequence of characters representing an IPv6 Address.\n\nExamples of matching - formats:\n- `2001:0db8:0000:0000:0000:ff00:0042:8329`\n- `0000:0000:0000:0000:0000:0000:0000:0001`\n","priority":4,"included_keyword_configuration":{"keywords":[],"use_recommended_keywords":true,"character_count":30}},"type":"sensitive_data_scanner_rule","relationships":{"standard_pattern":{"data":{"id":"s3sEZP5fSTGSPLPS853VeQ","type":"sensitive_data_scanner_standard_pattern"}},"group":{"data":{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"}}}},{"id":"175b62d2-fc94-4919-aa35-3d501849885c","attributes":{"name":"Standard - Email Address Scanner","namespaces":[],"excluded_namespaces":[],"text_replacement":{"type":"none"},"tags":["sensitive_data:email_address","sensitive_data_category:email_address"],"labels":["domain:pii","compliance:hipaa","compliance:gdpr"],"is_enabled":true,"description":"Matches - a sequence of characters representing standard email address using an official - top-level domain.\n\nExamples of matching formats:\n- `simple@example.com`\n- - `simple%40example.com`\n- `very.common@example.com`\n- `x@example.com`\n- - `long.email-address-with-hyphens@and.subdomains.example.com`\n- `user.name+tag+sorting@example.com`\n- - `name/surname@example.com`\n- `mailhost!username@example.org`\n- `user%example.com@example.org`\n- - `user-@example.org`\n","priority":4,"included_keyword_configuration":{"keywords":[],"use_recommended_keywords":true,"character_count":30}},"type":"sensitive_data_scanner_rule","relationships":{"standard_pattern":{"data":{"id":"PuXiVTCkTHOtj0Yad1ppsw","type":"sensitive_data_scanner_standard_pattern"}},"group":{"data":{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"}}}},{"id":"d75637b3-ef47-46a7-8f8f-1ce99134d827","attributes":{"name":"Standard - MAC Address Scanner","namespaces":[],"excluded_namespaces":[],"text_replacement":{"type":"none"},"tags":["sensitive_data:mac_address","sensitive_data_category:mac_address"],"labels":["domain:network","compliance:gdpr","compliance:hipaa"],"is_enabled":true,"description":"Matches - a sequence of characters representing a MAC address.\n\nExamples of matching - formats:\n- `FF:FF:FF:FF:FF:FF`\n- `FF-FF-FF-FF-FF-FF`\n","priority":4,"included_keyword_configuration":{"keywords":[],"use_recommended_keywords":true,"character_count":30}},"type":"sensitive_data_scanner_rule","relationships":{"standard_pattern":{"data":{"id":"uRLVpXXTRxmCg4M93hfLiA","type":"sensitive_data_scanner_standard_pattern"}},"group":{"data":{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"}}}},{"id":"6678e2b9-7b6d-4020-a6a1-e392d5d4e838","attributes":{"name":"UK - National Health Service Number Scanner","namespaces":[],"excluded_namespaces":[],"text_replacement":{"type":"none"},"tags":["sensitive_data_category:pii","sensitive_data:uk_nhs"],"labels":["compliance:gdpr","domain:pii"],"is_enabled":true,"description":"Matches - a sequence of characters representing a UK national health service number - (NHS) in a 10-digit format with optional space delimiters. Matches are validated - via a checksum.\n\nExamples of matching formats:\n- `National Health Number: - 907 784 4449`\n- `NHS: 1234567881`\n","priority":4,"included_keyword_configuration":{"keywords":["national - health number","nhs"],"use_recommended_keywords":true,"character_count":30}},"type":"sensitive_data_scanner_rule","relationships":{"standard_pattern":{"data":{"id":"rJ9DeXT0G7oESwbGWGMW82","type":"sensitive_data_scanner_standard_pattern"}},"group":{"data":{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"}}}},{"id":"6837bea8-0c0e-4ee7-bd6c-6371cbca52bb","attributes":{"name":"UK - National Insurance Number Scanner","namespaces":[],"excluded_namespaces":[],"text_replacement":{"type":"none"},"tags":["sensitive_data_category:pii","sensitive_data:uk_nin"],"labels":["domain:pii","compliance:gdpr"],"is_enabled":true,"description":"Matches - sequence of characters representing a UK National Insurance Number (NIN), - which is composed of two uppercase letters, six digits, and an optional uppercase - letter.\n\nExamples of matching formats:\n- `AB123456C`\n- `XY654321A`\n- - `GH987654`\n","priority":4,"included_keyword_configuration":{"keywords":["insurance","national","ni","nin"],"use_recommended_keywords":true,"character_count":30}},"type":"sensitive_data_scanner_rule","relationships":{"standard_pattern":{"data":{"id":"de0899e0cbaaa812bb624cf04c912071012f616d","type":"sensitive_data_scanner_standard_pattern"}},"group":{"data":{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"}}}},{"id":"f4fec54d-63c3-4151-8cc0-d925743124ff","attributes":{"name":"US - Individual Taxpayer Identification Number Scanner (ITIN)","namespaces":[],"excluded_namespaces":[],"text_replacement":{"type":"none"},"tags":["sensitive_data_category:pii","sensitive_data:us_itin"],"labels":["domain:pii","compliance:hipaa","compliance:gdpr"],"is_enabled":true,"description":"Matches - a sequence of characters representing a US ITIN number in a 9-digit format - with optional delimiters after the 3rd and 5th digit.\n\nExamples of matching - formats:\n- `927 70 5828`\n- `993-77 0690`\n","priority":4,"included_keyword_configuration":{"keywords":["i.t.i.n.","individual - taxpayer","itin"],"use_recommended_keywords":true,"character_count":30}},"type":"sensitive_data_scanner_rule","relationships":{"standard_pattern":{"data":{"id":"eC0YxRYEz27UOrfQ7sM3Bx","type":"sensitive_data_scanner_standard_pattern"}},"group":{"data":{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"}}}},{"id":"4724117a-668a-4a97-84e8-9f7d7cac0ab2","attributes":{"name":"US - Passport Scanner","namespaces":[],"excluded_namespaces":[],"text_replacement":{"type":"none"},"tags":["sensitive_data_category:pii","sensitive_data:passport_number"],"labels":["domain:pii","compliance:gdpr","compliance:hipaa"],"is_enabled":true,"description":"Matches - sequence of characters representing a US passport number, which is composed - 9 alphanumeric characters.\n\nExamples of matching formats:\n- `E00007734`\n- - `C03004786`\n","priority":4,"included_keyword_configuration":{"keywords":["passport","passport_"],"use_recommended_keywords":true,"character_count":30}},"type":"sensitive_data_scanner_rule","relationships":{"standard_pattern":{"data":{"id":"d962f7ddb3f55041e39195a60ff79d4814a7c331","type":"sensitive_data_scanner_standard_pattern"}},"group":{"data":{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"}}}},{"id":"70fbcc56-415b-42a2-96b0-53958f6024ba","attributes":{"name":"US - Social Security Number Scanner","namespaces":[],"excluded_namespaces":[],"text_replacement":{"type":"none"},"tags":["sensitive_data_category:pii","sensitive_data:us_ssn"],"labels":["domain:pii","compliance:hipaa","compliance:gdpr"],"is_enabled":true,"description":"Matches - a sequence of characters representing a US Social Security number in a 9-digit - format.\n\nExamples of matching formats:\n- `555-12-3456`\n- `456789012`\n","priority":4,"included_keyword_configuration":{"keywords":["ssn","social - security"],"use_recommended_keywords":true,"character_count":30}},"type":"sensitive_data_scanner_rule","relationships":{"standard_pattern":{"data":{"id":"PIIXqwUljp4BaqIHDBBLNn","type":"sensitive_data_scanner_standard_pattern"}},"group":{"data":{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"}}}},{"id":"0QvFjxASTxK2VgAIXOgGnQ","attributes":{"name":"my - group","is_enabled":true,"filter":{"query":"*"},"product_list":["logs"],"description":"","samplings":[]},"type":"sensitive_data_scanner_group","relationships":{"configuration":{"data":{"id":"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87","type":"sensitive_data_scanner_configuration"}},"rules":{"data":[{"id":"M4PLjvGWR7CMz6XlCjAadA","type":"sensitive_data_scanner_rule"}]}}},{"id":"M4PLjvGWR7CMz6XlCjAadA","attributes":{"name":"tf-TestAccDatadogSensitiveDataScannerRule_DefaultTags-local-1721743568","namespaces":[],"excluded_namespaces":["username"],"pattern":"regex","text_replacement":{"type":"none"},"tags":["sensitive_data:true","default_key:default_value"],"labels":[],"is_enabled":true,"description":"a - description"},"type":"sensitive_data_scanner_rule","relationships":{"group":{"data":{"id":"0QvFjxASTxK2VgAIXOgGnQ","type":"sensitive_data_scanner_group"}}}},{"id":"5a142739-d4a5-4d9e-bc20-a4fd77bb8db0","attributes":{"name":"Thibault - Terraform test","is_enabled":false,"filter":{"query":"service:my-service"},"product_list":["apm"],"description":"A - relevant description","samplings":[]},"type":"sensitive_data_scanner_group","relationships":{"configuration":{"data":{"id":"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87","type":"sensitive_data_scanner_configuration"}},"rules":{"data":[]}}}]} - - ' + string: '{"data":{"attributes":{},"id":"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87","relationships":{"groups":{"data":[]}},"type":"sensitive_data_scanner_configuration"},"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,"rule_count_limit":500,"version":277987}}' headers: content-type: - - application/json + - application/vnd.api+json status: code: 200 message: OK @@ -117,17 +26,15 @@ interactions: uri: https://api.datadoghq.com/api/v2/sensitive-data-scanner/config/groups response: body: - string: '{"data":{"id":"ebd98a70-4d09-45aa-99d7-5123d3a829ef","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":274557}} - - ' + string: '{"data":{"id":"bd80b15d-a3e1-4e4a-af44-ae29bf8816f8","type":"sensitive_data_scanner_group","attributes":{"description":"","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":[]}}},"meta":{"version":277988}}' headers: content-type: - - application/json + - application/vnd.api+json status: - code: 200 - message: OK + code: 201 + message: Created - request: - body: '{"data":{"attributes":{"is_enabled":true,"pattern":"pattern","tags":["sensitive_data:true"],"text_replacement":{"type":"none"}},"relationships":{"group":{"data":{"id":"ebd98a70-4d09-45aa-99d7-5123d3a829ef","type":"sensitive_data_scanner_group"}}},"type":"sensitive_data_scanner_rule"},"meta":{}}' + body: '{"data":{"attributes":{"is_enabled":true,"pattern":"pattern","tags":["sensitive_data:true"],"text_replacement":{"type":"none"}},"relationships":{"group":{"data":{"id":"bd80b15d-a3e1-4e4a-af44-ae29bf8816f8","type":"sensitive_data_scanner_group"}}},"type":"sensitive_data_scanner_rule"},"meta":{}}' headers: accept: - application/json @@ -137,13 +44,11 @@ interactions: uri: https://api.datadoghq.com/api/v2/sensitive-data-scanner/config/rules response: body: - string: '{"errors":["input_validation_error(Field ''data.attributes.name'' is - invalid: field ''data.attributes.name'' is required)"]} - - ' + string: '{"errors":[{"title":"Generic Error","detail":"rule name should not + be blank"}]}' headers: content-type: - - application/json + - application/vnd.api+json status: code: 400 message: Bad Request @@ -155,15 +60,13 @@ interactions: content-type: - application/json method: DELETE - uri: https://api.datadoghq.com/api/v2/sensitive-data-scanner/config/groups/ebd98a70-4d09-45aa-99d7-5123d3a829ef + uri: https://api.datadoghq.com/api/v2/sensitive-data-scanner/config/groups/bd80b15d-a3e1-4e4a-af44-ae29bf8816f8 response: body: - string: '{"meta":{"version":274558}} - - ' + string: '{"meta":{"version":277989}}' headers: content-type: - - application/json + - application/vnd.api+json status: code: 200 message: OK diff --git a/tests/v2/cassettes/test_scenarios/test_create_scanning_rule_returns_ok_response.frozen b/tests/v2/cassettes/test_scenarios/test_create_scanning_rule_returns_ok_response.frozen index e3a1411fc4..54eb686bb7 100644 --- a/tests/v2/cassettes/test_scenarios/test_create_scanning_rule_returns_ok_response.frozen +++ b/tests/v2/cassettes/test_scenarios/test_create_scanning_rule_returns_ok_response.frozen @@ -1 +1 @@ -2025-05-30T17:17:07.743Z \ No newline at end of file +2026-01-19T13:11:06.289Z \ No newline at end of file diff --git a/tests/v2/cassettes/test_scenarios/test_create_scanning_rule_returns_ok_response.yaml b/tests/v2/cassettes/test_scenarios/test_create_scanning_rule_returns_ok_response.yaml index 935cf9149b..161172684f 100644 --- a/tests/v2/cassettes/test_scenarios/test_create_scanning_rule_returns_ok_response.yaml +++ b/tests/v2/cassettes/test_scenarios/test_create_scanning_rule_returns_ok_response.yaml @@ -8,101 +8,10 @@ interactions: uri: https://api.datadoghq.com/api/v2/sensitive-data-scanner/config response: body: - string: '{"data":{"id":"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87","attributes":{},"type":"sensitive_data_scanner_configuration","relationships":{"groups":{"data":[{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"},{"id":"0QvFjxASTxK2VgAIXOgGnQ","type":"sensitive_data_scanner_group"},{"id":"5a142739-d4a5-4d9e-bc20-a4fd77bb8db0","type":"sensitive_data_scanner_group"}]}}},"meta":{"version":274558,"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},"included":[{"id":"xdfyyx1FSzqEaNwOpqhsFw","attributes":{"name":"my-test-group","is_enabled":false,"filter":{"query":"*"},"product_list":["logs"],"samplings":[]},"type":"sensitive_data_scanner_group","relationships":{"configuration":{"data":{"id":"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87","type":"sensitive_data_scanner_configuration"}},"rules":{"data":[{"id":"5991e227-d611-4b56-afef-4992b5104755","type":"sensitive_data_scanner_rule"},{"id":"e28f1169-ba43-46ea-aa9e-a0f97a2fc830","type":"sensitive_data_scanner_rule"},{"id":"55318894-77ad-4b18-bc2d-562e388effe8","type":"sensitive_data_scanner_rule"},{"id":"7511ac78-b433-42e0-b291-eac394e1ae06","type":"sensitive_data_scanner_rule"},{"id":"47edb1c1-c841-48b0-bb84-9909485e1737","type":"sensitive_data_scanner_rule"},{"id":"1b4415eb-6e91-441a-b1bf-2a3cb7b9724b","type":"sensitive_data_scanner_rule"},{"id":"442c7cc0-2843-46f3-aedf-a027bcf8a22b","type":"sensitive_data_scanner_rule"},{"id":"dd7b34e8-c1d6-4ab0-bf4f-bb38809a1f43","type":"sensitive_data_scanner_rule"},{"id":"145bbddb-c4ca-49d0-92dd-a7774ceb1eb4","type":"sensitive_data_scanner_rule"},{"id":"2b2a4801-4f97-49c0-b6a3-e06d2f808c13","type":"sensitive_data_scanner_rule"},{"id":"175b62d2-fc94-4919-aa35-3d501849885c","type":"sensitive_data_scanner_rule"},{"id":"d75637b3-ef47-46a7-8f8f-1ce99134d827","type":"sensitive_data_scanner_rule"},{"id":"6678e2b9-7b6d-4020-a6a1-e392d5d4e838","type":"sensitive_data_scanner_rule"},{"id":"6837bea8-0c0e-4ee7-bd6c-6371cbca52bb","type":"sensitive_data_scanner_rule"},{"id":"f4fec54d-63c3-4151-8cc0-d925743124ff","type":"sensitive_data_scanner_rule"},{"id":"4724117a-668a-4a97-84e8-9f7d7cac0ab2","type":"sensitive_data_scanner_rule"},{"id":"70fbcc56-415b-42a2-96b0-53958f6024ba","type":"sensitive_data_scanner_rule"}]}}},{"id":"5991e227-d611-4b56-afef-4992b5104755","attributes":{"name":"HTTP - Basic Authentication Header Scanner","namespaces":[],"excluded_namespaces":[],"text_replacement":{"type":"none"},"tags":["sensitive_data_category:network_and_device_info","sensitive_data:basic_auth"],"labels":["domain:network","compliance:pci","compliance:gdpr","compliance:hipaa"],"is_enabled":true,"description":"Matches - the Authorization header of an HTTP request that uses the Basic authentication - scheme. It specifically looks for the Authorization keyword, followed by the - Basic keyword and a base64-encoded string.\n\nExamples of matching formats:\n- - `Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==`\n- `Authorization: Basic - Yml0c0FJOmhlbHAgbWU=`\n","priority":4,"included_keyword_configuration":{"keywords":[],"use_recommended_keywords":true,"character_count":30}},"type":"sensitive_data_scanner_rule","relationships":{"standard_pattern":{"data":{"id":"9d7756e343cefa22a5c098e1092590f806eb5446","type":"sensitive_data_scanner_standard_pattern"}},"group":{"data":{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"}}}},{"id":"e28f1169-ba43-46ea-aa9e-a0f97a2fc830","attributes":{"name":"HTTP - Cookie Scanner","namespaces":[],"excluded_namespaces":[],"text_replacement":{"type":"none"},"tags":["sensitive_data_category:network_and_device_info","sensitive_data:cookie"],"labels":["domain:network","compliance:pci","compliance:gdpr","compliance:hipaa"],"is_enabled":true,"description":"Matches - the Set-Cookie header of an HTTP response. It captures the cookie name-value - pairs and any optional attributes that are separated by semicolons.\n\nExamples - of matching formats:\n- `Set-Cookie: sessionid=123456; HttpOnly; Secure`\n- - `Set-Cookie: username=JohnDoe`\n","priority":4,"included_keyword_configuration":{"keywords":["cookie"],"use_recommended_keywords":true,"character_count":30}},"type":"sensitive_data_scanner_rule","relationships":{"standard_pattern":{"data":{"id":"34574e54c3e67a8a26d7070f331d83ae933d2730","type":"sensitive_data_scanner_standard_pattern"}},"group":{"data":{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"}}}},{"id":"55318894-77ad-4b18-bc2d-562e388effe8","attributes":{"name":"HTTP(S) - URL Scanner","namespaces":[],"excluded_namespaces":[],"text_replacement":{"type":"none"},"tags":["sensitive_data_category:url","sensitive_data:http_url"],"labels":["domain:network","compliance:pci","compliance:gdpr","compliance:hipaa"],"is_enabled":true,"description":"Matches - a sequence of characters representing a HTTP(S) URL.\n\nExamples of matching - formats:\n- `https://www.example.com/questions/3456/my-document?key1=value1&key2=value2`\n- - `http://example.com/%E5%BC%95%E3%81%8D%E5%89%B2%E3%82%8A.html`\n- `http://xn--fsqu00a.xn--3lr804guic/`\n","priority":4,"included_keyword_configuration":{"keywords":[],"use_recommended_keywords":true,"character_count":30}},"type":"sensitive_data_scanner_rule","relationships":{"standard_pattern":{"data":{"id":"aLQt_DX_T8S1MaWS82eoNQ","type":"sensitive_data_scanner_standard_pattern"}},"group":{"data":{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"}}}},{"id":"7511ac78-b433-42e0-b291-eac394e1ae06","attributes":{"name":"Canadian - Social Insurance Number Scanner","namespaces":[],"excluded_namespaces":[],"text_replacement":{"type":"none"},"tags":["sensitive_data_category:pii","sensitive_data:canadian_sin"],"labels":["domain:pii","compliance:gdpr"],"is_enabled":true,"description":"Matches - sequence of characters representing a Canadian Social Insurance Number (SIN), - which is composed of three digits separated by hyphens.\n\nExamples of matching - formats:\n- `123-456-789`\n- `456-789-123`\n","priority":4,"included_keyword_configuration":{"keywords":["canadian","canadian - insurance number","canadian social insurance","insurance number","number","sin","social","social - insurance"],"use_recommended_keywords":true,"character_count":30}},"type":"sensitive_data_scanner_rule","relationships":{"standard_pattern":{"data":{"id":"450239afc250a19799b6c03dc0e16fd6a4b2a1af","type":"sensitive_data_scanner_standard_pattern"}},"group":{"data":{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"}}}},{"id":"47edb1c1-c841-48b0-bb84-9909485e1737","attributes":{"name":"Chinese - Identity Card Number Scanner","namespaces":[],"excluded_namespaces":[],"text_replacement":{"type":"none"},"tags":["sensitive_data_category:pii","sensitive_data:chinese_id"],"labels":["domain:pii","compliance:gdpr"],"is_enabled":true,"description":"Matches - a sequence of characters representing a Chinese Identity Card Number format, - which consists of a single non-zero digit, followed by exactly 5 additional - digits, followed by a sequence of 7 to 18 digits. Matches are validated via - a checksum.\n\nExamples of matching formats:\n- `Chinese identity card number: - 320321197408094019`\n- `national id: 320321197408094019`\n","priority":4,"included_keyword_configuration":{"keywords":["national - id","resident identity","identity number","identification number","identity - card number","national identification number"],"use_recommended_keywords":true,"character_count":30}},"type":"sensitive_data_scanner_rule","relationships":{"standard_pattern":{"data":{"id":"4kEyzAP6fUEF83rWsEIZEx","type":"sensitive_data_scanner_standard_pattern"}},"group":{"data":{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"}}}},{"id":"1b4415eb-6e91-441a-b1bf-2a3cb7b9724b","attributes":{"name":"Chinese - Passport Scanner","namespaces":[],"excluded_namespaces":[],"text_replacement":{"type":"none"},"tags":["sensitive_data_category:pii","sensitive_data:chinese_passport"],"labels":["domain:pii","compliance:gdpr"],"is_enabled":true,"description":"Matches - a sequence of characters representing a Chinese passport number in a 9-character - format with 1 or 2 letters that can be D,DE,S,SE,G or E, and 7 or 8 digits.\n\nExamples - of matching formats:\n- `E01234567`\n- `G01234567`\n","priority":4,"included_keyword_configuration":{"keywords":["passport","travel - document"],"use_recommended_keywords":true,"character_count":30}},"type":"sensitive_data_scanner_rule","relationships":{"standard_pattern":{"data":{"id":"8Wld3kT1UyCfVGmO3Ok69R","type":"sensitive_data_scanner_standard_pattern"}},"group":{"data":{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"}}}},{"id":"442c7cc0-2843-46f3-aedf-a027bcf8a22b","attributes":{"name":"Chinese - Phone Number Scanner","namespaces":[],"excluded_namespaces":[],"text_replacement":{"type":"none"},"tags":["sensitive_data_category:pii","sensitive_data:chinese_phone_number"],"labels":["domain:pii","compliance:gdpr"],"is_enabled":true,"description":"Matches - a sequence of characters representing a Chinese phone number in a 11-character - format with the first digit being 1, the second digit being 3, 5, or 8, and - then exactly 9 additional digits.\n\nExamples of matching formats:\n- `18652313817`\n- - `+86 18552313817`\n","priority":4,"included_keyword_configuration":{"keywords":["mobile","phone","cell"],"use_recommended_keywords":true,"character_count":30}},"type":"sensitive_data_scanner_rule","relationships":{"standard_pattern":{"data":{"id":"V7sb5Px24c0n9yPwV72glH","type":"sensitive_data_scanner_standard_pattern"}},"group":{"data":{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"}}}},{"id":"dd7b34e8-c1d6-4ab0-bf4f-bb38809a1f43","attributes":{"name":"France - Social Security Number Scanner (INSEE/NIR)","namespaces":[],"excluded_namespaces":[],"text_replacement":{"type":"none"},"tags":["sensitive_data_category:pii","sensitive_data:france_nir"],"labels":["domain:pii","compliance:gdpr"],"is_enabled":true,"description":"Matches - a sequence of characters representing a France social security number (INSEE/NIR) - in a 9-digit format with optional delimiters after the 3rd and 5th digit. - Matches are validated via a checksum.\n\nExamples of matching formats:\n- - `1-51-02-46102-043-25`\n- `151024610204325`\n","priority":4,"included_keyword_configuration":{"keywords":["social - security","insee","nir"],"use_recommended_keywords":true,"character_count":30}},"type":"sensitive_data_scanner_rule","relationships":{"standard_pattern":{"data":{"id":"QiVm1XhY7GjzrSNrJ5IICB","type":"sensitive_data_scanner_standard_pattern"}},"group":{"data":{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"}}}},{"id":"145bbddb-c4ca-49d0-92dd-a7774ceb1eb4","attributes":{"name":"IPv4 - Address Scanner","namespaces":[],"excluded_namespaces":[],"text_replacement":{"type":"none"},"tags":["sensitive_data_category:ip_address","sensitive_data:ipv4_address"],"labels":["domain:network","compliance:gdpr","compliance:hipaa"],"is_enabled":true,"description":"Matches - a sequence of characters representing an IPv4 Address.\n\nExamples of matching - formats:\n- `127.0.0.1`\n- `172.16.254.1`\n","priority":4,"included_keyword_configuration":{"keywords":[],"use_recommended_keywords":true,"character_count":30}},"type":"sensitive_data_scanner_rule","relationships":{"standard_pattern":{"data":{"id":"aDA3jUjSSLOezHV2y-Rn_w","type":"sensitive_data_scanner_standard_pattern"}},"group":{"data":{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"}}}},{"id":"2b2a4801-4f97-49c0-b6a3-e06d2f808c13","attributes":{"name":"IPv6 - Address Scanner","namespaces":[],"excluded_namespaces":[],"text_replacement":{"type":"none"},"tags":["sensitive_data_category:ip_address","sensitive_data:ipv6_address"],"labels":["domain:network","compliance:gdpr","compliance:hipaa"],"is_enabled":true,"description":"Matches - a sequence of characters representing an IPv6 Address.\n\nExamples of matching - formats:\n- `2001:0db8:0000:0000:0000:ff00:0042:8329`\n- `0000:0000:0000:0000:0000:0000:0000:0001`\n","priority":4,"included_keyword_configuration":{"keywords":[],"use_recommended_keywords":true,"character_count":30}},"type":"sensitive_data_scanner_rule","relationships":{"standard_pattern":{"data":{"id":"s3sEZP5fSTGSPLPS853VeQ","type":"sensitive_data_scanner_standard_pattern"}},"group":{"data":{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"}}}},{"id":"175b62d2-fc94-4919-aa35-3d501849885c","attributes":{"name":"Standard - Email Address Scanner","namespaces":[],"excluded_namespaces":[],"text_replacement":{"type":"none"},"tags":["sensitive_data:email_address","sensitive_data_category:email_address"],"labels":["domain:pii","compliance:hipaa","compliance:gdpr"],"is_enabled":true,"description":"Matches - a sequence of characters representing standard email address using an official - top-level domain.\n\nExamples of matching formats:\n- `simple@example.com`\n- - `simple%40example.com`\n- `very.common@example.com`\n- `x@example.com`\n- - `long.email-address-with-hyphens@and.subdomains.example.com`\n- `user.name+tag+sorting@example.com`\n- - `name/surname@example.com`\n- `mailhost!username@example.org`\n- `user%example.com@example.org`\n- - `user-@example.org`\n","priority":4,"included_keyword_configuration":{"keywords":[],"use_recommended_keywords":true,"character_count":30}},"type":"sensitive_data_scanner_rule","relationships":{"standard_pattern":{"data":{"id":"PuXiVTCkTHOtj0Yad1ppsw","type":"sensitive_data_scanner_standard_pattern"}},"group":{"data":{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"}}}},{"id":"d75637b3-ef47-46a7-8f8f-1ce99134d827","attributes":{"name":"Standard - MAC Address Scanner","namespaces":[],"excluded_namespaces":[],"text_replacement":{"type":"none"},"tags":["sensitive_data:mac_address","sensitive_data_category:mac_address"],"labels":["domain:network","compliance:gdpr","compliance:hipaa"],"is_enabled":true,"description":"Matches - a sequence of characters representing a MAC address.\n\nExamples of matching - formats:\n- `FF:FF:FF:FF:FF:FF`\n- `FF-FF-FF-FF-FF-FF`\n","priority":4,"included_keyword_configuration":{"keywords":[],"use_recommended_keywords":true,"character_count":30}},"type":"sensitive_data_scanner_rule","relationships":{"standard_pattern":{"data":{"id":"uRLVpXXTRxmCg4M93hfLiA","type":"sensitive_data_scanner_standard_pattern"}},"group":{"data":{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"}}}},{"id":"6678e2b9-7b6d-4020-a6a1-e392d5d4e838","attributes":{"name":"UK - National Health Service Number Scanner","namespaces":[],"excluded_namespaces":[],"text_replacement":{"type":"none"},"tags":["sensitive_data_category:pii","sensitive_data:uk_nhs"],"labels":["compliance:gdpr","domain:pii"],"is_enabled":true,"description":"Matches - a sequence of characters representing a UK national health service number - (NHS) in a 10-digit format with optional space delimiters. Matches are validated - via a checksum.\n\nExamples of matching formats:\n- `National Health Number: - 907 784 4449`\n- `NHS: 1234567881`\n","priority":4,"included_keyword_configuration":{"keywords":["national - health number","nhs"],"use_recommended_keywords":true,"character_count":30}},"type":"sensitive_data_scanner_rule","relationships":{"standard_pattern":{"data":{"id":"rJ9DeXT0G7oESwbGWGMW82","type":"sensitive_data_scanner_standard_pattern"}},"group":{"data":{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"}}}},{"id":"6837bea8-0c0e-4ee7-bd6c-6371cbca52bb","attributes":{"name":"UK - National Insurance Number Scanner","namespaces":[],"excluded_namespaces":[],"text_replacement":{"type":"none"},"tags":["sensitive_data_category:pii","sensitive_data:uk_nin"],"labels":["domain:pii","compliance:gdpr"],"is_enabled":true,"description":"Matches - sequence of characters representing a UK National Insurance Number (NIN), - which is composed of two uppercase letters, six digits, and an optional uppercase - letter.\n\nExamples of matching formats:\n- `AB123456C`\n- `XY654321A`\n- - `GH987654`\n","priority":4,"included_keyword_configuration":{"keywords":["insurance","national","ni","nin"],"use_recommended_keywords":true,"character_count":30}},"type":"sensitive_data_scanner_rule","relationships":{"standard_pattern":{"data":{"id":"de0899e0cbaaa812bb624cf04c912071012f616d","type":"sensitive_data_scanner_standard_pattern"}},"group":{"data":{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"}}}},{"id":"f4fec54d-63c3-4151-8cc0-d925743124ff","attributes":{"name":"US - Individual Taxpayer Identification Number Scanner (ITIN)","namespaces":[],"excluded_namespaces":[],"text_replacement":{"type":"none"},"tags":["sensitive_data_category:pii","sensitive_data:us_itin"],"labels":["domain:pii","compliance:hipaa","compliance:gdpr"],"is_enabled":true,"description":"Matches - a sequence of characters representing a US ITIN number in a 9-digit format - with optional delimiters after the 3rd and 5th digit.\n\nExamples of matching - formats:\n- `927 70 5828`\n- `993-77 0690`\n","priority":4,"included_keyword_configuration":{"keywords":["i.t.i.n.","individual - taxpayer","itin"],"use_recommended_keywords":true,"character_count":30}},"type":"sensitive_data_scanner_rule","relationships":{"standard_pattern":{"data":{"id":"eC0YxRYEz27UOrfQ7sM3Bx","type":"sensitive_data_scanner_standard_pattern"}},"group":{"data":{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"}}}},{"id":"4724117a-668a-4a97-84e8-9f7d7cac0ab2","attributes":{"name":"US - Passport Scanner","namespaces":[],"excluded_namespaces":[],"text_replacement":{"type":"none"},"tags":["sensitive_data_category:pii","sensitive_data:passport_number"],"labels":["domain:pii","compliance:gdpr","compliance:hipaa"],"is_enabled":true,"description":"Matches - sequence of characters representing a US passport number, which is composed - 9 alphanumeric characters.\n\nExamples of matching formats:\n- `E00007734`\n- - `C03004786`\n","priority":4,"included_keyword_configuration":{"keywords":["passport","passport_"],"use_recommended_keywords":true,"character_count":30}},"type":"sensitive_data_scanner_rule","relationships":{"standard_pattern":{"data":{"id":"d962f7ddb3f55041e39195a60ff79d4814a7c331","type":"sensitive_data_scanner_standard_pattern"}},"group":{"data":{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"}}}},{"id":"70fbcc56-415b-42a2-96b0-53958f6024ba","attributes":{"name":"US - Social Security Number Scanner","namespaces":[],"excluded_namespaces":[],"text_replacement":{"type":"none"},"tags":["sensitive_data_category:pii","sensitive_data:us_ssn"],"labels":["domain:pii","compliance:hipaa","compliance:gdpr"],"is_enabled":true,"description":"Matches - a sequence of characters representing a US Social Security number in a 9-digit - format.\n\nExamples of matching formats:\n- `555-12-3456`\n- `456789012`\n","priority":4,"included_keyword_configuration":{"keywords":["ssn","social - security"],"use_recommended_keywords":true,"character_count":30}},"type":"sensitive_data_scanner_rule","relationships":{"standard_pattern":{"data":{"id":"PIIXqwUljp4BaqIHDBBLNn","type":"sensitive_data_scanner_standard_pattern"}},"group":{"data":{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"}}}},{"id":"0QvFjxASTxK2VgAIXOgGnQ","attributes":{"name":"my - group","is_enabled":true,"filter":{"query":"*"},"product_list":["logs"],"description":"","samplings":[]},"type":"sensitive_data_scanner_group","relationships":{"configuration":{"data":{"id":"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87","type":"sensitive_data_scanner_configuration"}},"rules":{"data":[{"id":"M4PLjvGWR7CMz6XlCjAadA","type":"sensitive_data_scanner_rule"}]}}},{"id":"M4PLjvGWR7CMz6XlCjAadA","attributes":{"name":"tf-TestAccDatadogSensitiveDataScannerRule_DefaultTags-local-1721743568","namespaces":[],"excluded_namespaces":["username"],"pattern":"regex","text_replacement":{"type":"none"},"tags":["sensitive_data:true","default_key:default_value"],"labels":[],"is_enabled":true,"description":"a - description"},"type":"sensitive_data_scanner_rule","relationships":{"group":{"data":{"id":"0QvFjxASTxK2VgAIXOgGnQ","type":"sensitive_data_scanner_group"}}}},{"id":"5a142739-d4a5-4d9e-bc20-a4fd77bb8db0","attributes":{"name":"Thibault - Terraform test","is_enabled":false,"filter":{"query":"service:my-service"},"product_list":["apm"],"description":"A - relevant description","samplings":[]},"type":"sensitive_data_scanner_group","relationships":{"configuration":{"data":{"id":"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87","type":"sensitive_data_scanner_configuration"}},"rules":{"data":[]}}}]} - - ' + string: '{"data":{"attributes":{},"id":"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87","relationships":{"groups":{"data":[]}},"type":"sensitive_data_scanner_configuration"},"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,"rule_count_limit":500,"version":277989}}' headers: content-type: - - application/json + - application/vnd.api+json status: code: 200 message: OK @@ -117,18 +26,16 @@ interactions: uri: https://api.datadoghq.com/api/v2/sensitive-data-scanner/config/groups response: body: - string: '{"data":{"id":"b494211c-c9a4-4eae-9411-c27299fd4dcf","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":274559}} - - ' + string: '{"data":{"id":"e08a29f3-f7b2-4e32-af1f-f19ece1a12b3","type":"sensitive_data_scanner_group","attributes":{"description":"","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":[]}}},"meta":{"version":277990}}' headers: content-type: - - application/json + - application/vnd.api+json status: - code: 200 - message: OK + code: 201 + message: Created - request: body: '{"data":{"attributes":{"excluded_namespaces":["admin.name"],"included_keyword_configuration":{"character_count":35,"keywords":["credit - card"]},"is_enabled":true,"name":"Test-Create_Scanning_Rule_returns_OK_response-1748625427","namespaces":["admin"],"pattern":"pattern","priority":1,"tags":["sensitive_data:true"],"text_replacement":{"type":"none"}},"relationships":{"group":{"data":{"id":"b494211c-c9a4-4eae-9411-c27299fd4dcf","type":"sensitive_data_scanner_group"}}},"type":"sensitive_data_scanner_rule"},"meta":{}}' + card"]},"is_enabled":true,"name":"Test-Create_Scanning_Rule_returns_OK_response-1768828266","namespaces":["admin"],"pattern":"pattern","priority":1,"tags":["sensitive_data:true"],"text_replacement":{"type":"none"}},"relationships":{"group":{"data":{"id":"e08a29f3-f7b2-4e32-af1f-f19ece1a12b3","type":"sensitive_data_scanner_group"}}},"type":"sensitive_data_scanner_rule"},"meta":{}}' headers: accept: - application/json @@ -138,16 +45,14 @@ interactions: uri: https://api.datadoghq.com/api/v2/sensitive-data-scanner/config/rules response: body: - string: '{"data":{"id":"4fddb9c6-bca6-410f-a83b-57102588788b","attributes":{"name":"Test-Create_Scanning_Rule_returns_OK_response-1748625427","namespaces":["admin"],"excluded_namespaces":["admin.name"],"pattern":"pattern","text_replacement":{"type":"none"},"tags":["sensitive_data:true"],"labels":[],"is_enabled":true,"priority":1,"included_keyword_configuration":{"keywords":["credit - card"],"character_count":35}},"type":"sensitive_data_scanner_rule","relationships":{"group":{"data":{"id":"b494211c-c9a4-4eae-9411-c27299fd4dcf","type":"sensitive_data_scanner_group"}}}},"meta":{"version":274560}} - - ' + string: '{"data":{"id":"b86c065a-c185-41b7-a24b-718480129c1a","type":"sensitive_data_scanner_rule","attributes":{"excluded_namespaces":["admin.name"],"included_keyword_configuration":{"keywords":["credit + card"],"character_count":35},"is_enabled":true,"labels":[],"name":"Test-Create_Scanning_Rule_returns_OK_response-1768828266","namespaces":["admin"],"pattern":"pattern","priority":1,"tags":["sensitive_data:true"],"text_replacement":{"type":"none"}},"relationships":{"group":{"data":{"id":"e08a29f3-f7b2-4e32-af1f-f19ece1a12b3","type":"sensitive_data_scanner_group"}}}},"meta":{"version":277991}}' headers: content-type: - - application/json + - application/vnd.api+json status: - code: 200 - message: OK + code: 201 + message: Created - request: body: '{"meta":{}}' headers: @@ -156,15 +61,13 @@ interactions: content-type: - application/json method: DELETE - uri: https://api.datadoghq.com/api/v2/sensitive-data-scanner/config/rules/4fddb9c6-bca6-410f-a83b-57102588788b + uri: https://api.datadoghq.com/api/v2/sensitive-data-scanner/config/rules/b86c065a-c185-41b7-a24b-718480129c1a response: body: - string: '{"meta":{"version":274561}} - - ' + string: '{"meta":{"version":277992}}' headers: content-type: - - application/json + - application/vnd.api+json status: code: 200 message: OK @@ -176,15 +79,13 @@ interactions: content-type: - application/json method: DELETE - uri: https://api.datadoghq.com/api/v2/sensitive-data-scanner/config/groups/b494211c-c9a4-4eae-9411-c27299fd4dcf + uri: https://api.datadoghq.com/api/v2/sensitive-data-scanner/config/groups/e08a29f3-f7b2-4e32-af1f-f19ece1a12b3 response: body: - string: '{"meta":{"version":274562}} - - ' + string: '{"meta":{"version":277993}}' headers: content-type: - - application/json + - application/vnd.api+json status: code: 200 message: OK diff --git a/tests/v2/cassettes/test_scenarios/test_create_scanning_rule_with_should_save_match_returns_ok_response.frozen b/tests/v2/cassettes/test_scenarios/test_create_scanning_rule_with_should_save_match_returns_ok_response.frozen index 5834759fc6..27127dc5de 100644 --- a/tests/v2/cassettes/test_scenarios/test_create_scanning_rule_with_should_save_match_returns_ok_response.frozen +++ b/tests/v2/cassettes/test_scenarios/test_create_scanning_rule_with_should_save_match_returns_ok_response.frozen @@ -1 +1 @@ -2025-08-26T20:31:44.042Z \ No newline at end of file +2026-01-19T13:11:08.516Z \ No newline at end of file diff --git a/tests/v2/cassettes/test_scenarios/test_create_scanning_rule_with_should_save_match_returns_ok_response.yaml b/tests/v2/cassettes/test_scenarios/test_create_scanning_rule_with_should_save_match_returns_ok_response.yaml index e72eac6978..bfb7d7a0c0 100644 --- a/tests/v2/cassettes/test_scenarios/test_create_scanning_rule_with_should_save_match_returns_ok_response.yaml +++ b/tests/v2/cassettes/test_scenarios/test_create_scanning_rule_with_should_save_match_returns_ok_response.yaml @@ -8,12 +8,10 @@ interactions: uri: https://api.datadoghq.com/api/v2/sensitive-data-scanner/config response: body: - string: '{"data":{"id":"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87","attributes":{},"type":"sensitive_data_scanner_configuration","relationships":{"groups":{"data":[]}}},"meta":{"version":275277,"count_limit":250,"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}} - - ' + string: '{"data":{"attributes":{},"id":"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87","relationships":{"groups":{"data":[]}},"type":"sensitive_data_scanner_configuration"},"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,"rule_count_limit":500,"version":277993}}' headers: content-type: - - application/json + - application/vnd.api+json status: code: 200 message: OK @@ -28,17 +26,15 @@ interactions: uri: https://api.datadoghq.com/api/v2/sensitive-data-scanner/config/groups response: body: - string: '{"data":{"id":"18cc2267-f3cc-4c15-917d-d3efb15deb03","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":275278}} - - ' + string: '{"data":{"id":"966a1ab3-056d-4af9-a205-68e570e54c85","type":"sensitive_data_scanner_group","attributes":{"description":"","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":[]}}},"meta":{"version":277994}}' headers: content-type: - - application/json + - application/vnd.api+json status: - code: 200 - message: OK + code: 201 + message: Created - request: - body: '{"data":{"attributes":{"is_enabled":true,"name":"Test-Create_Scanning_Rule_with_should_save_match_returns_OK_response-1756240304","pattern":"pattern","priority":1,"tags":["sensitive_data:true"],"text_replacement":{"replacement_string":"REDACTED","should_save_match":true,"type":"replacement_string"}},"relationships":{"group":{"data":{"id":"18cc2267-f3cc-4c15-917d-d3efb15deb03","type":"sensitive_data_scanner_group"}}},"type":"sensitive_data_scanner_rule"},"meta":{}}' + body: '{"data":{"attributes":{"is_enabled":true,"name":"Test-Create_Scanning_Rule_with_should_save_match_returns_OK_response-1768828268","pattern":"pattern","priority":1,"tags":["sensitive_data:true"],"text_replacement":{"replacement_string":"REDACTED","should_save_match":true,"type":"replacement_string"}},"relationships":{"group":{"data":{"id":"966a1ab3-056d-4af9-a205-68e570e54c85","type":"sensitive_data_scanner_group"}}},"type":"sensitive_data_scanner_rule"},"meta":{}}' headers: accept: - application/json @@ -48,15 +44,13 @@ interactions: uri: https://api.datadoghq.com/api/v2/sensitive-data-scanner/config/rules response: body: - string: '{"data":{"id":"0e517b8a-04c1-4ae0-b57b-22b8e081190c","attributes":{"name":"Test-Create_Scanning_Rule_with_should_save_match_returns_OK_response-1756240304","namespaces":[],"excluded_namespaces":[],"pattern":"pattern","text_replacement":{"replacement_string":"REDACTED","should_save_match":true,"type":"replacement_string"},"tags":["sensitive_data:true"],"labels":[],"is_enabled":true,"priority":1},"type":"sensitive_data_scanner_rule","relationships":{"group":{"data":{"id":"18cc2267-f3cc-4c15-917d-d3efb15deb03","type":"sensitive_data_scanner_group"}}}},"meta":{"version":275279}} - - ' + string: '{"data":{"id":"55dfd131-7ae1-4021-be59-4e4824eccc6f","type":"sensitive_data_scanner_rule","attributes":{"excluded_namespaces":[],"is_enabled":true,"labels":[],"name":"Test-Create_Scanning_Rule_with_should_save_match_returns_OK_response-1768828268","namespaces":[],"pattern":"pattern","priority":1,"tags":["sensitive_data:true"],"text_replacement":{"type":"replacement_string","replacement_string":"REDACTED","should_save_match":true}},"relationships":{"group":{"data":{"id":"966a1ab3-056d-4af9-a205-68e570e54c85","type":"sensitive_data_scanner_group"}}}},"meta":{"version":277995}}' headers: content-type: - - application/json + - application/vnd.api+json status: - code: 200 - message: OK + code: 201 + message: Created - request: body: '{"meta":{}}' headers: @@ -65,15 +59,13 @@ interactions: content-type: - application/json method: DELETE - uri: https://api.datadoghq.com/api/v2/sensitive-data-scanner/config/rules/0e517b8a-04c1-4ae0-b57b-22b8e081190c + uri: https://api.datadoghq.com/api/v2/sensitive-data-scanner/config/rules/55dfd131-7ae1-4021-be59-4e4824eccc6f response: body: - string: '{"meta":{"version":275280}} - - ' + string: '{"meta":{"version":277996}}' headers: content-type: - - application/json + - application/vnd.api+json status: code: 200 message: OK @@ -85,15 +77,13 @@ interactions: content-type: - application/json method: DELETE - uri: https://api.datadoghq.com/api/v2/sensitive-data-scanner/config/groups/18cc2267-f3cc-4c15-917d-d3efb15deb03 + uri: https://api.datadoghq.com/api/v2/sensitive-data-scanner/config/groups/966a1ab3-056d-4af9-a205-68e570e54c85 response: body: - string: '{"meta":{"version":275281}} - - ' + string: '{"meta":{"version":277997}}' headers: content-type: - - application/json + - application/vnd.api+json status: code: 200 message: OK diff --git a/tests/v2/cassettes/test_scenarios/test_delete_scanning_group_returns_ok_response.frozen b/tests/v2/cassettes/test_scenarios/test_delete_scanning_group_returns_ok_response.frozen index 505f0d6399..a788485a28 100644 --- a/tests/v2/cassettes/test_scenarios/test_delete_scanning_group_returns_ok_response.frozen +++ b/tests/v2/cassettes/test_scenarios/test_delete_scanning_group_returns_ok_response.frozen @@ -1 +1 @@ -2025-05-30T17:17:09.412Z \ No newline at end of file +2026-01-19T13:11:10.959Z \ No newline at end of file diff --git a/tests/v2/cassettes/test_scenarios/test_delete_scanning_group_returns_ok_response.yaml b/tests/v2/cassettes/test_scenarios/test_delete_scanning_group_returns_ok_response.yaml index 6448d09217..b78edf68f0 100644 --- a/tests/v2/cassettes/test_scenarios/test_delete_scanning_group_returns_ok_response.yaml +++ b/tests/v2/cassettes/test_scenarios/test_delete_scanning_group_returns_ok_response.yaml @@ -8,101 +8,10 @@ interactions: uri: https://api.datadoghq.com/api/v2/sensitive-data-scanner/config response: body: - string: '{"data":{"id":"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87","attributes":{},"type":"sensitive_data_scanner_configuration","relationships":{"groups":{"data":[{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"},{"id":"0QvFjxASTxK2VgAIXOgGnQ","type":"sensitive_data_scanner_group"},{"id":"5a142739-d4a5-4d9e-bc20-a4fd77bb8db0","type":"sensitive_data_scanner_group"}]}}},"meta":{"version":274562,"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},"included":[{"id":"xdfyyx1FSzqEaNwOpqhsFw","attributes":{"name":"my-test-group","is_enabled":false,"filter":{"query":"*"},"product_list":["logs"],"samplings":[]},"type":"sensitive_data_scanner_group","relationships":{"configuration":{"data":{"id":"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87","type":"sensitive_data_scanner_configuration"}},"rules":{"data":[{"id":"5991e227-d611-4b56-afef-4992b5104755","type":"sensitive_data_scanner_rule"},{"id":"e28f1169-ba43-46ea-aa9e-a0f97a2fc830","type":"sensitive_data_scanner_rule"},{"id":"55318894-77ad-4b18-bc2d-562e388effe8","type":"sensitive_data_scanner_rule"},{"id":"7511ac78-b433-42e0-b291-eac394e1ae06","type":"sensitive_data_scanner_rule"},{"id":"47edb1c1-c841-48b0-bb84-9909485e1737","type":"sensitive_data_scanner_rule"},{"id":"1b4415eb-6e91-441a-b1bf-2a3cb7b9724b","type":"sensitive_data_scanner_rule"},{"id":"442c7cc0-2843-46f3-aedf-a027bcf8a22b","type":"sensitive_data_scanner_rule"},{"id":"dd7b34e8-c1d6-4ab0-bf4f-bb38809a1f43","type":"sensitive_data_scanner_rule"},{"id":"145bbddb-c4ca-49d0-92dd-a7774ceb1eb4","type":"sensitive_data_scanner_rule"},{"id":"2b2a4801-4f97-49c0-b6a3-e06d2f808c13","type":"sensitive_data_scanner_rule"},{"id":"175b62d2-fc94-4919-aa35-3d501849885c","type":"sensitive_data_scanner_rule"},{"id":"d75637b3-ef47-46a7-8f8f-1ce99134d827","type":"sensitive_data_scanner_rule"},{"id":"6678e2b9-7b6d-4020-a6a1-e392d5d4e838","type":"sensitive_data_scanner_rule"},{"id":"6837bea8-0c0e-4ee7-bd6c-6371cbca52bb","type":"sensitive_data_scanner_rule"},{"id":"f4fec54d-63c3-4151-8cc0-d925743124ff","type":"sensitive_data_scanner_rule"},{"id":"4724117a-668a-4a97-84e8-9f7d7cac0ab2","type":"sensitive_data_scanner_rule"},{"id":"70fbcc56-415b-42a2-96b0-53958f6024ba","type":"sensitive_data_scanner_rule"}]}}},{"id":"5991e227-d611-4b56-afef-4992b5104755","attributes":{"name":"HTTP - Basic Authentication Header Scanner","namespaces":[],"excluded_namespaces":[],"text_replacement":{"type":"none"},"tags":["sensitive_data_category:network_and_device_info","sensitive_data:basic_auth"],"labels":["domain:network","compliance:pci","compliance:gdpr","compliance:hipaa"],"is_enabled":true,"description":"Matches - the Authorization header of an HTTP request that uses the Basic authentication - scheme. It specifically looks for the Authorization keyword, followed by the - Basic keyword and a base64-encoded string.\n\nExamples of matching formats:\n- - `Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==`\n- `Authorization: Basic - Yml0c0FJOmhlbHAgbWU=`\n","priority":4,"included_keyword_configuration":{"keywords":[],"use_recommended_keywords":true,"character_count":30}},"type":"sensitive_data_scanner_rule","relationships":{"standard_pattern":{"data":{"id":"9d7756e343cefa22a5c098e1092590f806eb5446","type":"sensitive_data_scanner_standard_pattern"}},"group":{"data":{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"}}}},{"id":"e28f1169-ba43-46ea-aa9e-a0f97a2fc830","attributes":{"name":"HTTP - Cookie Scanner","namespaces":[],"excluded_namespaces":[],"text_replacement":{"type":"none"},"tags":["sensitive_data_category:network_and_device_info","sensitive_data:cookie"],"labels":["domain:network","compliance:pci","compliance:gdpr","compliance:hipaa"],"is_enabled":true,"description":"Matches - the Set-Cookie header of an HTTP response. It captures the cookie name-value - pairs and any optional attributes that are separated by semicolons.\n\nExamples - of matching formats:\n- `Set-Cookie: sessionid=123456; HttpOnly; Secure`\n- - `Set-Cookie: username=JohnDoe`\n","priority":4,"included_keyword_configuration":{"keywords":["cookie"],"use_recommended_keywords":true,"character_count":30}},"type":"sensitive_data_scanner_rule","relationships":{"standard_pattern":{"data":{"id":"34574e54c3e67a8a26d7070f331d83ae933d2730","type":"sensitive_data_scanner_standard_pattern"}},"group":{"data":{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"}}}},{"id":"55318894-77ad-4b18-bc2d-562e388effe8","attributes":{"name":"HTTP(S) - URL Scanner","namespaces":[],"excluded_namespaces":[],"text_replacement":{"type":"none"},"tags":["sensitive_data_category:url","sensitive_data:http_url"],"labels":["domain:network","compliance:pci","compliance:gdpr","compliance:hipaa"],"is_enabled":true,"description":"Matches - a sequence of characters representing a HTTP(S) URL.\n\nExamples of matching - formats:\n- `https://www.example.com/questions/3456/my-document?key1=value1&key2=value2`\n- - `http://example.com/%E5%BC%95%E3%81%8D%E5%89%B2%E3%82%8A.html`\n- `http://xn--fsqu00a.xn--3lr804guic/`\n","priority":4,"included_keyword_configuration":{"keywords":[],"use_recommended_keywords":true,"character_count":30}},"type":"sensitive_data_scanner_rule","relationships":{"standard_pattern":{"data":{"id":"aLQt_DX_T8S1MaWS82eoNQ","type":"sensitive_data_scanner_standard_pattern"}},"group":{"data":{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"}}}},{"id":"7511ac78-b433-42e0-b291-eac394e1ae06","attributes":{"name":"Canadian - Social Insurance Number Scanner","namespaces":[],"excluded_namespaces":[],"text_replacement":{"type":"none"},"tags":["sensitive_data_category:pii","sensitive_data:canadian_sin"],"labels":["domain:pii","compliance:gdpr"],"is_enabled":true,"description":"Matches - sequence of characters representing a Canadian Social Insurance Number (SIN), - which is composed of three digits separated by hyphens.\n\nExamples of matching - formats:\n- `123-456-789`\n- `456-789-123`\n","priority":4,"included_keyword_configuration":{"keywords":["canadian","canadian - insurance number","canadian social insurance","insurance number","number","sin","social","social - insurance"],"use_recommended_keywords":true,"character_count":30}},"type":"sensitive_data_scanner_rule","relationships":{"standard_pattern":{"data":{"id":"450239afc250a19799b6c03dc0e16fd6a4b2a1af","type":"sensitive_data_scanner_standard_pattern"}},"group":{"data":{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"}}}},{"id":"47edb1c1-c841-48b0-bb84-9909485e1737","attributes":{"name":"Chinese - Identity Card Number Scanner","namespaces":[],"excluded_namespaces":[],"text_replacement":{"type":"none"},"tags":["sensitive_data_category:pii","sensitive_data:chinese_id"],"labels":["domain:pii","compliance:gdpr"],"is_enabled":true,"description":"Matches - a sequence of characters representing a Chinese Identity Card Number format, - which consists of a single non-zero digit, followed by exactly 5 additional - digits, followed by a sequence of 7 to 18 digits. Matches are validated via - a checksum.\n\nExamples of matching formats:\n- `Chinese identity card number: - 320321197408094019`\n- `national id: 320321197408094019`\n","priority":4,"included_keyword_configuration":{"keywords":["national - id","resident identity","identity number","identification number","identity - card number","national identification number"],"use_recommended_keywords":true,"character_count":30}},"type":"sensitive_data_scanner_rule","relationships":{"standard_pattern":{"data":{"id":"4kEyzAP6fUEF83rWsEIZEx","type":"sensitive_data_scanner_standard_pattern"}},"group":{"data":{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"}}}},{"id":"1b4415eb-6e91-441a-b1bf-2a3cb7b9724b","attributes":{"name":"Chinese - Passport Scanner","namespaces":[],"excluded_namespaces":[],"text_replacement":{"type":"none"},"tags":["sensitive_data_category:pii","sensitive_data:chinese_passport"],"labels":["domain:pii","compliance:gdpr"],"is_enabled":true,"description":"Matches - a sequence of characters representing a Chinese passport number in a 9-character - format with 1 or 2 letters that can be D,DE,S,SE,G or E, and 7 or 8 digits.\n\nExamples - of matching formats:\n- `E01234567`\n- `G01234567`\n","priority":4,"included_keyword_configuration":{"keywords":["passport","travel - document"],"use_recommended_keywords":true,"character_count":30}},"type":"sensitive_data_scanner_rule","relationships":{"standard_pattern":{"data":{"id":"8Wld3kT1UyCfVGmO3Ok69R","type":"sensitive_data_scanner_standard_pattern"}},"group":{"data":{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"}}}},{"id":"442c7cc0-2843-46f3-aedf-a027bcf8a22b","attributes":{"name":"Chinese - Phone Number Scanner","namespaces":[],"excluded_namespaces":[],"text_replacement":{"type":"none"},"tags":["sensitive_data_category:pii","sensitive_data:chinese_phone_number"],"labels":["domain:pii","compliance:gdpr"],"is_enabled":true,"description":"Matches - a sequence of characters representing a Chinese phone number in a 11-character - format with the first digit being 1, the second digit being 3, 5, or 8, and - then exactly 9 additional digits.\n\nExamples of matching formats:\n- `18652313817`\n- - `+86 18552313817`\n","priority":4,"included_keyword_configuration":{"keywords":["mobile","phone","cell"],"use_recommended_keywords":true,"character_count":30}},"type":"sensitive_data_scanner_rule","relationships":{"standard_pattern":{"data":{"id":"V7sb5Px24c0n9yPwV72glH","type":"sensitive_data_scanner_standard_pattern"}},"group":{"data":{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"}}}},{"id":"dd7b34e8-c1d6-4ab0-bf4f-bb38809a1f43","attributes":{"name":"France - Social Security Number Scanner (INSEE/NIR)","namespaces":[],"excluded_namespaces":[],"text_replacement":{"type":"none"},"tags":["sensitive_data_category:pii","sensitive_data:france_nir"],"labels":["domain:pii","compliance:gdpr"],"is_enabled":true,"description":"Matches - a sequence of characters representing a France social security number (INSEE/NIR) - in a 9-digit format with optional delimiters after the 3rd and 5th digit. - Matches are validated via a checksum.\n\nExamples of matching formats:\n- - `1-51-02-46102-043-25`\n- `151024610204325`\n","priority":4,"included_keyword_configuration":{"keywords":["social - security","insee","nir"],"use_recommended_keywords":true,"character_count":30}},"type":"sensitive_data_scanner_rule","relationships":{"standard_pattern":{"data":{"id":"QiVm1XhY7GjzrSNrJ5IICB","type":"sensitive_data_scanner_standard_pattern"}},"group":{"data":{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"}}}},{"id":"145bbddb-c4ca-49d0-92dd-a7774ceb1eb4","attributes":{"name":"IPv4 - Address Scanner","namespaces":[],"excluded_namespaces":[],"text_replacement":{"type":"none"},"tags":["sensitive_data_category:ip_address","sensitive_data:ipv4_address"],"labels":["domain:network","compliance:gdpr","compliance:hipaa"],"is_enabled":true,"description":"Matches - a sequence of characters representing an IPv4 Address.\n\nExamples of matching - formats:\n- `127.0.0.1`\n- `172.16.254.1`\n","priority":4,"included_keyword_configuration":{"keywords":[],"use_recommended_keywords":true,"character_count":30}},"type":"sensitive_data_scanner_rule","relationships":{"standard_pattern":{"data":{"id":"aDA3jUjSSLOezHV2y-Rn_w","type":"sensitive_data_scanner_standard_pattern"}},"group":{"data":{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"}}}},{"id":"2b2a4801-4f97-49c0-b6a3-e06d2f808c13","attributes":{"name":"IPv6 - Address Scanner","namespaces":[],"excluded_namespaces":[],"text_replacement":{"type":"none"},"tags":["sensitive_data_category:ip_address","sensitive_data:ipv6_address"],"labels":["domain:network","compliance:gdpr","compliance:hipaa"],"is_enabled":true,"description":"Matches - a sequence of characters representing an IPv6 Address.\n\nExamples of matching - formats:\n- `2001:0db8:0000:0000:0000:ff00:0042:8329`\n- `0000:0000:0000:0000:0000:0000:0000:0001`\n","priority":4,"included_keyword_configuration":{"keywords":[],"use_recommended_keywords":true,"character_count":30}},"type":"sensitive_data_scanner_rule","relationships":{"standard_pattern":{"data":{"id":"s3sEZP5fSTGSPLPS853VeQ","type":"sensitive_data_scanner_standard_pattern"}},"group":{"data":{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"}}}},{"id":"175b62d2-fc94-4919-aa35-3d501849885c","attributes":{"name":"Standard - Email Address Scanner","namespaces":[],"excluded_namespaces":[],"text_replacement":{"type":"none"},"tags":["sensitive_data:email_address","sensitive_data_category:email_address"],"labels":["domain:pii","compliance:hipaa","compliance:gdpr"],"is_enabled":true,"description":"Matches - a sequence of characters representing standard email address using an official - top-level domain.\n\nExamples of matching formats:\n- `simple@example.com`\n- - `simple%40example.com`\n- `very.common@example.com`\n- `x@example.com`\n- - `long.email-address-with-hyphens@and.subdomains.example.com`\n- `user.name+tag+sorting@example.com`\n- - `name/surname@example.com`\n- `mailhost!username@example.org`\n- `user%example.com@example.org`\n- - `user-@example.org`\n","priority":4,"included_keyword_configuration":{"keywords":[],"use_recommended_keywords":true,"character_count":30}},"type":"sensitive_data_scanner_rule","relationships":{"standard_pattern":{"data":{"id":"PuXiVTCkTHOtj0Yad1ppsw","type":"sensitive_data_scanner_standard_pattern"}},"group":{"data":{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"}}}},{"id":"d75637b3-ef47-46a7-8f8f-1ce99134d827","attributes":{"name":"Standard - MAC Address Scanner","namespaces":[],"excluded_namespaces":[],"text_replacement":{"type":"none"},"tags":["sensitive_data:mac_address","sensitive_data_category:mac_address"],"labels":["domain:network","compliance:gdpr","compliance:hipaa"],"is_enabled":true,"description":"Matches - a sequence of characters representing a MAC address.\n\nExamples of matching - formats:\n- `FF:FF:FF:FF:FF:FF`\n- `FF-FF-FF-FF-FF-FF`\n","priority":4,"included_keyword_configuration":{"keywords":[],"use_recommended_keywords":true,"character_count":30}},"type":"sensitive_data_scanner_rule","relationships":{"standard_pattern":{"data":{"id":"uRLVpXXTRxmCg4M93hfLiA","type":"sensitive_data_scanner_standard_pattern"}},"group":{"data":{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"}}}},{"id":"6678e2b9-7b6d-4020-a6a1-e392d5d4e838","attributes":{"name":"UK - National Health Service Number Scanner","namespaces":[],"excluded_namespaces":[],"text_replacement":{"type":"none"},"tags":["sensitive_data_category:pii","sensitive_data:uk_nhs"],"labels":["compliance:gdpr","domain:pii"],"is_enabled":true,"description":"Matches - a sequence of characters representing a UK national health service number - (NHS) in a 10-digit format with optional space delimiters. Matches are validated - via a checksum.\n\nExamples of matching formats:\n- `National Health Number: - 907 784 4449`\n- `NHS: 1234567881`\n","priority":4,"included_keyword_configuration":{"keywords":["national - health number","nhs"],"use_recommended_keywords":true,"character_count":30}},"type":"sensitive_data_scanner_rule","relationships":{"standard_pattern":{"data":{"id":"rJ9DeXT0G7oESwbGWGMW82","type":"sensitive_data_scanner_standard_pattern"}},"group":{"data":{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"}}}},{"id":"6837bea8-0c0e-4ee7-bd6c-6371cbca52bb","attributes":{"name":"UK - National Insurance Number Scanner","namespaces":[],"excluded_namespaces":[],"text_replacement":{"type":"none"},"tags":["sensitive_data_category:pii","sensitive_data:uk_nin"],"labels":["domain:pii","compliance:gdpr"],"is_enabled":true,"description":"Matches - sequence of characters representing a UK National Insurance Number (NIN), - which is composed of two uppercase letters, six digits, and an optional uppercase - letter.\n\nExamples of matching formats:\n- `AB123456C`\n- `XY654321A`\n- - `GH987654`\n","priority":4,"included_keyword_configuration":{"keywords":["insurance","national","ni","nin"],"use_recommended_keywords":true,"character_count":30}},"type":"sensitive_data_scanner_rule","relationships":{"standard_pattern":{"data":{"id":"de0899e0cbaaa812bb624cf04c912071012f616d","type":"sensitive_data_scanner_standard_pattern"}},"group":{"data":{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"}}}},{"id":"f4fec54d-63c3-4151-8cc0-d925743124ff","attributes":{"name":"US - Individual Taxpayer Identification Number Scanner (ITIN)","namespaces":[],"excluded_namespaces":[],"text_replacement":{"type":"none"},"tags":["sensitive_data_category:pii","sensitive_data:us_itin"],"labels":["domain:pii","compliance:hipaa","compliance:gdpr"],"is_enabled":true,"description":"Matches - a sequence of characters representing a US ITIN number in a 9-digit format - with optional delimiters after the 3rd and 5th digit.\n\nExamples of matching - formats:\n- `927 70 5828`\n- `993-77 0690`\n","priority":4,"included_keyword_configuration":{"keywords":["i.t.i.n.","individual - taxpayer","itin"],"use_recommended_keywords":true,"character_count":30}},"type":"sensitive_data_scanner_rule","relationships":{"standard_pattern":{"data":{"id":"eC0YxRYEz27UOrfQ7sM3Bx","type":"sensitive_data_scanner_standard_pattern"}},"group":{"data":{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"}}}},{"id":"4724117a-668a-4a97-84e8-9f7d7cac0ab2","attributes":{"name":"US - Passport Scanner","namespaces":[],"excluded_namespaces":[],"text_replacement":{"type":"none"},"tags":["sensitive_data_category:pii","sensitive_data:passport_number"],"labels":["domain:pii","compliance:gdpr","compliance:hipaa"],"is_enabled":true,"description":"Matches - sequence of characters representing a US passport number, which is composed - 9 alphanumeric characters.\n\nExamples of matching formats:\n- `E00007734`\n- - `C03004786`\n","priority":4,"included_keyword_configuration":{"keywords":["passport","passport_"],"use_recommended_keywords":true,"character_count":30}},"type":"sensitive_data_scanner_rule","relationships":{"standard_pattern":{"data":{"id":"d962f7ddb3f55041e39195a60ff79d4814a7c331","type":"sensitive_data_scanner_standard_pattern"}},"group":{"data":{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"}}}},{"id":"70fbcc56-415b-42a2-96b0-53958f6024ba","attributes":{"name":"US - Social Security Number Scanner","namespaces":[],"excluded_namespaces":[],"text_replacement":{"type":"none"},"tags":["sensitive_data_category:pii","sensitive_data:us_ssn"],"labels":["domain:pii","compliance:hipaa","compliance:gdpr"],"is_enabled":true,"description":"Matches - a sequence of characters representing a US Social Security number in a 9-digit - format.\n\nExamples of matching formats:\n- `555-12-3456`\n- `456789012`\n","priority":4,"included_keyword_configuration":{"keywords":["ssn","social - security"],"use_recommended_keywords":true,"character_count":30}},"type":"sensitive_data_scanner_rule","relationships":{"standard_pattern":{"data":{"id":"PIIXqwUljp4BaqIHDBBLNn","type":"sensitive_data_scanner_standard_pattern"}},"group":{"data":{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"}}}},{"id":"0QvFjxASTxK2VgAIXOgGnQ","attributes":{"name":"my - group","is_enabled":true,"filter":{"query":"*"},"product_list":["logs"],"description":"","samplings":[]},"type":"sensitive_data_scanner_group","relationships":{"configuration":{"data":{"id":"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87","type":"sensitive_data_scanner_configuration"}},"rules":{"data":[{"id":"M4PLjvGWR7CMz6XlCjAadA","type":"sensitive_data_scanner_rule"}]}}},{"id":"M4PLjvGWR7CMz6XlCjAadA","attributes":{"name":"tf-TestAccDatadogSensitiveDataScannerRule_DefaultTags-local-1721743568","namespaces":[],"excluded_namespaces":["username"],"pattern":"regex","text_replacement":{"type":"none"},"tags":["sensitive_data:true","default_key:default_value"],"labels":[],"is_enabled":true,"description":"a - description"},"type":"sensitive_data_scanner_rule","relationships":{"group":{"data":{"id":"0QvFjxASTxK2VgAIXOgGnQ","type":"sensitive_data_scanner_group"}}}},{"id":"5a142739-d4a5-4d9e-bc20-a4fd77bb8db0","attributes":{"name":"Thibault - Terraform test","is_enabled":false,"filter":{"query":"service:my-service"},"product_list":["apm"],"description":"A - relevant description","samplings":[]},"type":"sensitive_data_scanner_group","relationships":{"configuration":{"data":{"id":"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87","type":"sensitive_data_scanner_configuration"}},"rules":{"data":[]}}}]} - - ' + string: '{"data":{"attributes":{},"id":"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87","relationships":{"groups":{"data":[]}},"type":"sensitive_data_scanner_configuration"},"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,"rule_count_limit":500,"version":277997}}' headers: content-type: - - application/json + - application/vnd.api+json status: code: 200 message: OK @@ -117,15 +26,13 @@ interactions: uri: https://api.datadoghq.com/api/v2/sensitive-data-scanner/config/groups response: body: - string: '{"data":{"id":"e560ae10-dbbe-48cd-9e89-358707cb287c","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":274563}} - - ' + string: '{"data":{"id":"80bca3a7-5ddc-4e3e-a56f-4cefe4352897","type":"sensitive_data_scanner_group","attributes":{"description":"","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":[]}}},"meta":{"version":277998}}' headers: content-type: - - application/json + - application/vnd.api+json status: - code: 200 - message: OK + code: 201 + message: Created - request: body: '{"meta":{}}' headers: @@ -134,15 +41,13 @@ interactions: content-type: - application/json method: DELETE - uri: https://api.datadoghq.com/api/v2/sensitive-data-scanner/config/groups/e560ae10-dbbe-48cd-9e89-358707cb287c + uri: https://api.datadoghq.com/api/v2/sensitive-data-scanner/config/groups/80bca3a7-5ddc-4e3e-a56f-4cefe4352897 response: body: - string: '{"meta":{"version":274564}} - - ' + string: '{"meta":{"version":277999}}' headers: content-type: - - application/json + - application/vnd.api+json status: code: 200 message: OK @@ -154,15 +59,14 @@ interactions: content-type: - application/json method: DELETE - uri: https://api.datadoghq.com/api/v2/sensitive-data-scanner/config/groups/e560ae10-dbbe-48cd-9e89-358707cb287c + uri: https://api.datadoghq.com/api/v2/sensitive-data-scanner/config/groups/80bca3a7-5ddc-4e3e-a56f-4cefe4352897 response: body: - string: '{"errors":["The requested scanning group was not found"]} - - ' + string: '{"errors":[{"status":"404","code":"Not Found","title":"Not Found","detail":"scanning + group could not be found"}]}' headers: content-type: - - application/json + - application/vnd.api+json status: code: 404 message: Not Found diff --git a/tests/v2/cassettes/test_scenarios/test_delete_scanning_rule_returns_ok_response.frozen b/tests/v2/cassettes/test_scenarios/test_delete_scanning_rule_returns_ok_response.frozen index cc12976afe..d127bf52e6 100644 --- a/tests/v2/cassettes/test_scenarios/test_delete_scanning_rule_returns_ok_response.frozen +++ b/tests/v2/cassettes/test_scenarios/test_delete_scanning_rule_returns_ok_response.frozen @@ -1 +1 @@ -2025-05-30T17:17:10.839Z \ No newline at end of file +2026-01-19T13:11:12.858Z \ No newline at end of file diff --git a/tests/v2/cassettes/test_scenarios/test_delete_scanning_rule_returns_ok_response.yaml b/tests/v2/cassettes/test_scenarios/test_delete_scanning_rule_returns_ok_response.yaml index 2e701dcd7e..9e35015b1d 100644 --- a/tests/v2/cassettes/test_scenarios/test_delete_scanning_rule_returns_ok_response.yaml +++ b/tests/v2/cassettes/test_scenarios/test_delete_scanning_rule_returns_ok_response.yaml @@ -8,101 +8,10 @@ interactions: uri: https://api.datadoghq.com/api/v2/sensitive-data-scanner/config response: body: - string: '{"data":{"id":"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87","attributes":{},"type":"sensitive_data_scanner_configuration","relationships":{"groups":{"data":[{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"},{"id":"0QvFjxASTxK2VgAIXOgGnQ","type":"sensitive_data_scanner_group"},{"id":"5a142739-d4a5-4d9e-bc20-a4fd77bb8db0","type":"sensitive_data_scanner_group"}]}}},"meta":{"version":274564,"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},"included":[{"id":"xdfyyx1FSzqEaNwOpqhsFw","attributes":{"name":"my-test-group","is_enabled":false,"filter":{"query":"*"},"product_list":["logs"],"samplings":[]},"type":"sensitive_data_scanner_group","relationships":{"configuration":{"data":{"id":"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87","type":"sensitive_data_scanner_configuration"}},"rules":{"data":[{"id":"5991e227-d611-4b56-afef-4992b5104755","type":"sensitive_data_scanner_rule"},{"id":"e28f1169-ba43-46ea-aa9e-a0f97a2fc830","type":"sensitive_data_scanner_rule"},{"id":"55318894-77ad-4b18-bc2d-562e388effe8","type":"sensitive_data_scanner_rule"},{"id":"7511ac78-b433-42e0-b291-eac394e1ae06","type":"sensitive_data_scanner_rule"},{"id":"47edb1c1-c841-48b0-bb84-9909485e1737","type":"sensitive_data_scanner_rule"},{"id":"1b4415eb-6e91-441a-b1bf-2a3cb7b9724b","type":"sensitive_data_scanner_rule"},{"id":"442c7cc0-2843-46f3-aedf-a027bcf8a22b","type":"sensitive_data_scanner_rule"},{"id":"dd7b34e8-c1d6-4ab0-bf4f-bb38809a1f43","type":"sensitive_data_scanner_rule"},{"id":"145bbddb-c4ca-49d0-92dd-a7774ceb1eb4","type":"sensitive_data_scanner_rule"},{"id":"2b2a4801-4f97-49c0-b6a3-e06d2f808c13","type":"sensitive_data_scanner_rule"},{"id":"175b62d2-fc94-4919-aa35-3d501849885c","type":"sensitive_data_scanner_rule"},{"id":"d75637b3-ef47-46a7-8f8f-1ce99134d827","type":"sensitive_data_scanner_rule"},{"id":"6678e2b9-7b6d-4020-a6a1-e392d5d4e838","type":"sensitive_data_scanner_rule"},{"id":"6837bea8-0c0e-4ee7-bd6c-6371cbca52bb","type":"sensitive_data_scanner_rule"},{"id":"f4fec54d-63c3-4151-8cc0-d925743124ff","type":"sensitive_data_scanner_rule"},{"id":"4724117a-668a-4a97-84e8-9f7d7cac0ab2","type":"sensitive_data_scanner_rule"},{"id":"70fbcc56-415b-42a2-96b0-53958f6024ba","type":"sensitive_data_scanner_rule"}]}}},{"id":"5991e227-d611-4b56-afef-4992b5104755","attributes":{"name":"HTTP - Basic Authentication Header Scanner","namespaces":[],"excluded_namespaces":[],"text_replacement":{"type":"none"},"tags":["sensitive_data_category:network_and_device_info","sensitive_data:basic_auth"],"labels":["domain:network","compliance:pci","compliance:gdpr","compliance:hipaa"],"is_enabled":true,"description":"Matches - the Authorization header of an HTTP request that uses the Basic authentication - scheme. It specifically looks for the Authorization keyword, followed by the - Basic keyword and a base64-encoded string.\n\nExamples of matching formats:\n- - `Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==`\n- `Authorization: Basic - Yml0c0FJOmhlbHAgbWU=`\n","priority":4,"included_keyword_configuration":{"keywords":[],"use_recommended_keywords":true,"character_count":30}},"type":"sensitive_data_scanner_rule","relationships":{"standard_pattern":{"data":{"id":"9d7756e343cefa22a5c098e1092590f806eb5446","type":"sensitive_data_scanner_standard_pattern"}},"group":{"data":{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"}}}},{"id":"e28f1169-ba43-46ea-aa9e-a0f97a2fc830","attributes":{"name":"HTTP - Cookie Scanner","namespaces":[],"excluded_namespaces":[],"text_replacement":{"type":"none"},"tags":["sensitive_data_category:network_and_device_info","sensitive_data:cookie"],"labels":["domain:network","compliance:pci","compliance:gdpr","compliance:hipaa"],"is_enabled":true,"description":"Matches - the Set-Cookie header of an HTTP response. It captures the cookie name-value - pairs and any optional attributes that are separated by semicolons.\n\nExamples - of matching formats:\n- `Set-Cookie: sessionid=123456; HttpOnly; Secure`\n- - `Set-Cookie: username=JohnDoe`\n","priority":4,"included_keyword_configuration":{"keywords":["cookie"],"use_recommended_keywords":true,"character_count":30}},"type":"sensitive_data_scanner_rule","relationships":{"standard_pattern":{"data":{"id":"34574e54c3e67a8a26d7070f331d83ae933d2730","type":"sensitive_data_scanner_standard_pattern"}},"group":{"data":{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"}}}},{"id":"55318894-77ad-4b18-bc2d-562e388effe8","attributes":{"name":"HTTP(S) - URL Scanner","namespaces":[],"excluded_namespaces":[],"text_replacement":{"type":"none"},"tags":["sensitive_data_category:url","sensitive_data:http_url"],"labels":["domain:network","compliance:pci","compliance:gdpr","compliance:hipaa"],"is_enabled":true,"description":"Matches - a sequence of characters representing a HTTP(S) URL.\n\nExamples of matching - formats:\n- `https://www.example.com/questions/3456/my-document?key1=value1&key2=value2`\n- - `http://example.com/%E5%BC%95%E3%81%8D%E5%89%B2%E3%82%8A.html`\n- `http://xn--fsqu00a.xn--3lr804guic/`\n","priority":4,"included_keyword_configuration":{"keywords":[],"use_recommended_keywords":true,"character_count":30}},"type":"sensitive_data_scanner_rule","relationships":{"standard_pattern":{"data":{"id":"aLQt_DX_T8S1MaWS82eoNQ","type":"sensitive_data_scanner_standard_pattern"}},"group":{"data":{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"}}}},{"id":"7511ac78-b433-42e0-b291-eac394e1ae06","attributes":{"name":"Canadian - Social Insurance Number Scanner","namespaces":[],"excluded_namespaces":[],"text_replacement":{"type":"none"},"tags":["sensitive_data_category:pii","sensitive_data:canadian_sin"],"labels":["domain:pii","compliance:gdpr"],"is_enabled":true,"description":"Matches - sequence of characters representing a Canadian Social Insurance Number (SIN), - which is composed of three digits separated by hyphens.\n\nExamples of matching - formats:\n- `123-456-789`\n- `456-789-123`\n","priority":4,"included_keyword_configuration":{"keywords":["canadian","canadian - insurance number","canadian social insurance","insurance number","number","sin","social","social - insurance"],"use_recommended_keywords":true,"character_count":30}},"type":"sensitive_data_scanner_rule","relationships":{"standard_pattern":{"data":{"id":"450239afc250a19799b6c03dc0e16fd6a4b2a1af","type":"sensitive_data_scanner_standard_pattern"}},"group":{"data":{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"}}}},{"id":"47edb1c1-c841-48b0-bb84-9909485e1737","attributes":{"name":"Chinese - Identity Card Number Scanner","namespaces":[],"excluded_namespaces":[],"text_replacement":{"type":"none"},"tags":["sensitive_data_category:pii","sensitive_data:chinese_id"],"labels":["domain:pii","compliance:gdpr"],"is_enabled":true,"description":"Matches - a sequence of characters representing a Chinese Identity Card Number format, - which consists of a single non-zero digit, followed by exactly 5 additional - digits, followed by a sequence of 7 to 18 digits. Matches are validated via - a checksum.\n\nExamples of matching formats:\n- `Chinese identity card number: - 320321197408094019`\n- `national id: 320321197408094019`\n","priority":4,"included_keyword_configuration":{"keywords":["national - id","resident identity","identity number","identification number","identity - card number","national identification number"],"use_recommended_keywords":true,"character_count":30}},"type":"sensitive_data_scanner_rule","relationships":{"standard_pattern":{"data":{"id":"4kEyzAP6fUEF83rWsEIZEx","type":"sensitive_data_scanner_standard_pattern"}},"group":{"data":{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"}}}},{"id":"1b4415eb-6e91-441a-b1bf-2a3cb7b9724b","attributes":{"name":"Chinese - Passport Scanner","namespaces":[],"excluded_namespaces":[],"text_replacement":{"type":"none"},"tags":["sensitive_data_category:pii","sensitive_data:chinese_passport"],"labels":["domain:pii","compliance:gdpr"],"is_enabled":true,"description":"Matches - a sequence of characters representing a Chinese passport number in a 9-character - format with 1 or 2 letters that can be D,DE,S,SE,G or E, and 7 or 8 digits.\n\nExamples - of matching formats:\n- `E01234567`\n- `G01234567`\n","priority":4,"included_keyword_configuration":{"keywords":["passport","travel - document"],"use_recommended_keywords":true,"character_count":30}},"type":"sensitive_data_scanner_rule","relationships":{"standard_pattern":{"data":{"id":"8Wld3kT1UyCfVGmO3Ok69R","type":"sensitive_data_scanner_standard_pattern"}},"group":{"data":{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"}}}},{"id":"442c7cc0-2843-46f3-aedf-a027bcf8a22b","attributes":{"name":"Chinese - Phone Number Scanner","namespaces":[],"excluded_namespaces":[],"text_replacement":{"type":"none"},"tags":["sensitive_data_category:pii","sensitive_data:chinese_phone_number"],"labels":["domain:pii","compliance:gdpr"],"is_enabled":true,"description":"Matches - a sequence of characters representing a Chinese phone number in a 11-character - format with the first digit being 1, the second digit being 3, 5, or 8, and - then exactly 9 additional digits.\n\nExamples of matching formats:\n- `18652313817`\n- - `+86 18552313817`\n","priority":4,"included_keyword_configuration":{"keywords":["mobile","phone","cell"],"use_recommended_keywords":true,"character_count":30}},"type":"sensitive_data_scanner_rule","relationships":{"standard_pattern":{"data":{"id":"V7sb5Px24c0n9yPwV72glH","type":"sensitive_data_scanner_standard_pattern"}},"group":{"data":{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"}}}},{"id":"dd7b34e8-c1d6-4ab0-bf4f-bb38809a1f43","attributes":{"name":"France - Social Security Number Scanner (INSEE/NIR)","namespaces":[],"excluded_namespaces":[],"text_replacement":{"type":"none"},"tags":["sensitive_data_category:pii","sensitive_data:france_nir"],"labels":["domain:pii","compliance:gdpr"],"is_enabled":true,"description":"Matches - a sequence of characters representing a France social security number (INSEE/NIR) - in a 9-digit format with optional delimiters after the 3rd and 5th digit. - Matches are validated via a checksum.\n\nExamples of matching formats:\n- - `1-51-02-46102-043-25`\n- `151024610204325`\n","priority":4,"included_keyword_configuration":{"keywords":["social - security","insee","nir"],"use_recommended_keywords":true,"character_count":30}},"type":"sensitive_data_scanner_rule","relationships":{"standard_pattern":{"data":{"id":"QiVm1XhY7GjzrSNrJ5IICB","type":"sensitive_data_scanner_standard_pattern"}},"group":{"data":{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"}}}},{"id":"145bbddb-c4ca-49d0-92dd-a7774ceb1eb4","attributes":{"name":"IPv4 - Address Scanner","namespaces":[],"excluded_namespaces":[],"text_replacement":{"type":"none"},"tags":["sensitive_data_category:ip_address","sensitive_data:ipv4_address"],"labels":["domain:network","compliance:gdpr","compliance:hipaa"],"is_enabled":true,"description":"Matches - a sequence of characters representing an IPv4 Address.\n\nExamples of matching - formats:\n- `127.0.0.1`\n- `172.16.254.1`\n","priority":4,"included_keyword_configuration":{"keywords":[],"use_recommended_keywords":true,"character_count":30}},"type":"sensitive_data_scanner_rule","relationships":{"standard_pattern":{"data":{"id":"aDA3jUjSSLOezHV2y-Rn_w","type":"sensitive_data_scanner_standard_pattern"}},"group":{"data":{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"}}}},{"id":"2b2a4801-4f97-49c0-b6a3-e06d2f808c13","attributes":{"name":"IPv6 - Address Scanner","namespaces":[],"excluded_namespaces":[],"text_replacement":{"type":"none"},"tags":["sensitive_data_category:ip_address","sensitive_data:ipv6_address"],"labels":["domain:network","compliance:gdpr","compliance:hipaa"],"is_enabled":true,"description":"Matches - a sequence of characters representing an IPv6 Address.\n\nExamples of matching - formats:\n- `2001:0db8:0000:0000:0000:ff00:0042:8329`\n- `0000:0000:0000:0000:0000:0000:0000:0001`\n","priority":4,"included_keyword_configuration":{"keywords":[],"use_recommended_keywords":true,"character_count":30}},"type":"sensitive_data_scanner_rule","relationships":{"standard_pattern":{"data":{"id":"s3sEZP5fSTGSPLPS853VeQ","type":"sensitive_data_scanner_standard_pattern"}},"group":{"data":{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"}}}},{"id":"175b62d2-fc94-4919-aa35-3d501849885c","attributes":{"name":"Standard - Email Address Scanner","namespaces":[],"excluded_namespaces":[],"text_replacement":{"type":"none"},"tags":["sensitive_data:email_address","sensitive_data_category:email_address"],"labels":["domain:pii","compliance:hipaa","compliance:gdpr"],"is_enabled":true,"description":"Matches - a sequence of characters representing standard email address using an official - top-level domain.\n\nExamples of matching formats:\n- `simple@example.com`\n- - `simple%40example.com`\n- `very.common@example.com`\n- `x@example.com`\n- - `long.email-address-with-hyphens@and.subdomains.example.com`\n- `user.name+tag+sorting@example.com`\n- - `name/surname@example.com`\n- `mailhost!username@example.org`\n- `user%example.com@example.org`\n- - `user-@example.org`\n","priority":4,"included_keyword_configuration":{"keywords":[],"use_recommended_keywords":true,"character_count":30}},"type":"sensitive_data_scanner_rule","relationships":{"standard_pattern":{"data":{"id":"PuXiVTCkTHOtj0Yad1ppsw","type":"sensitive_data_scanner_standard_pattern"}},"group":{"data":{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"}}}},{"id":"d75637b3-ef47-46a7-8f8f-1ce99134d827","attributes":{"name":"Standard - MAC Address Scanner","namespaces":[],"excluded_namespaces":[],"text_replacement":{"type":"none"},"tags":["sensitive_data:mac_address","sensitive_data_category:mac_address"],"labels":["domain:network","compliance:gdpr","compliance:hipaa"],"is_enabled":true,"description":"Matches - a sequence of characters representing a MAC address.\n\nExamples of matching - formats:\n- `FF:FF:FF:FF:FF:FF`\n- `FF-FF-FF-FF-FF-FF`\n","priority":4,"included_keyword_configuration":{"keywords":[],"use_recommended_keywords":true,"character_count":30}},"type":"sensitive_data_scanner_rule","relationships":{"standard_pattern":{"data":{"id":"uRLVpXXTRxmCg4M93hfLiA","type":"sensitive_data_scanner_standard_pattern"}},"group":{"data":{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"}}}},{"id":"6678e2b9-7b6d-4020-a6a1-e392d5d4e838","attributes":{"name":"UK - National Health Service Number Scanner","namespaces":[],"excluded_namespaces":[],"text_replacement":{"type":"none"},"tags":["sensitive_data_category:pii","sensitive_data:uk_nhs"],"labels":["compliance:gdpr","domain:pii"],"is_enabled":true,"description":"Matches - a sequence of characters representing a UK national health service number - (NHS) in a 10-digit format with optional space delimiters. Matches are validated - via a checksum.\n\nExamples of matching formats:\n- `National Health Number: - 907 784 4449`\n- `NHS: 1234567881`\n","priority":4,"included_keyword_configuration":{"keywords":["national - health number","nhs"],"use_recommended_keywords":true,"character_count":30}},"type":"sensitive_data_scanner_rule","relationships":{"standard_pattern":{"data":{"id":"rJ9DeXT0G7oESwbGWGMW82","type":"sensitive_data_scanner_standard_pattern"}},"group":{"data":{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"}}}},{"id":"6837bea8-0c0e-4ee7-bd6c-6371cbca52bb","attributes":{"name":"UK - National Insurance Number Scanner","namespaces":[],"excluded_namespaces":[],"text_replacement":{"type":"none"},"tags":["sensitive_data_category:pii","sensitive_data:uk_nin"],"labels":["domain:pii","compliance:gdpr"],"is_enabled":true,"description":"Matches - sequence of characters representing a UK National Insurance Number (NIN), - which is composed of two uppercase letters, six digits, and an optional uppercase - letter.\n\nExamples of matching formats:\n- `AB123456C`\n- `XY654321A`\n- - `GH987654`\n","priority":4,"included_keyword_configuration":{"keywords":["insurance","national","ni","nin"],"use_recommended_keywords":true,"character_count":30}},"type":"sensitive_data_scanner_rule","relationships":{"standard_pattern":{"data":{"id":"de0899e0cbaaa812bb624cf04c912071012f616d","type":"sensitive_data_scanner_standard_pattern"}},"group":{"data":{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"}}}},{"id":"f4fec54d-63c3-4151-8cc0-d925743124ff","attributes":{"name":"US - Individual Taxpayer Identification Number Scanner (ITIN)","namespaces":[],"excluded_namespaces":[],"text_replacement":{"type":"none"},"tags":["sensitive_data_category:pii","sensitive_data:us_itin"],"labels":["domain:pii","compliance:hipaa","compliance:gdpr"],"is_enabled":true,"description":"Matches - a sequence of characters representing a US ITIN number in a 9-digit format - with optional delimiters after the 3rd and 5th digit.\n\nExamples of matching - formats:\n- `927 70 5828`\n- `993-77 0690`\n","priority":4,"included_keyword_configuration":{"keywords":["i.t.i.n.","individual - taxpayer","itin"],"use_recommended_keywords":true,"character_count":30}},"type":"sensitive_data_scanner_rule","relationships":{"standard_pattern":{"data":{"id":"eC0YxRYEz27UOrfQ7sM3Bx","type":"sensitive_data_scanner_standard_pattern"}},"group":{"data":{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"}}}},{"id":"4724117a-668a-4a97-84e8-9f7d7cac0ab2","attributes":{"name":"US - Passport Scanner","namespaces":[],"excluded_namespaces":[],"text_replacement":{"type":"none"},"tags":["sensitive_data_category:pii","sensitive_data:passport_number"],"labels":["domain:pii","compliance:gdpr","compliance:hipaa"],"is_enabled":true,"description":"Matches - sequence of characters representing a US passport number, which is composed - 9 alphanumeric characters.\n\nExamples of matching formats:\n- `E00007734`\n- - `C03004786`\n","priority":4,"included_keyword_configuration":{"keywords":["passport","passport_"],"use_recommended_keywords":true,"character_count":30}},"type":"sensitive_data_scanner_rule","relationships":{"standard_pattern":{"data":{"id":"d962f7ddb3f55041e39195a60ff79d4814a7c331","type":"sensitive_data_scanner_standard_pattern"}},"group":{"data":{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"}}}},{"id":"70fbcc56-415b-42a2-96b0-53958f6024ba","attributes":{"name":"US - Social Security Number Scanner","namespaces":[],"excluded_namespaces":[],"text_replacement":{"type":"none"},"tags":["sensitive_data_category:pii","sensitive_data:us_ssn"],"labels":["domain:pii","compliance:hipaa","compliance:gdpr"],"is_enabled":true,"description":"Matches - a sequence of characters representing a US Social Security number in a 9-digit - format.\n\nExamples of matching formats:\n- `555-12-3456`\n- `456789012`\n","priority":4,"included_keyword_configuration":{"keywords":["ssn","social - security"],"use_recommended_keywords":true,"character_count":30}},"type":"sensitive_data_scanner_rule","relationships":{"standard_pattern":{"data":{"id":"PIIXqwUljp4BaqIHDBBLNn","type":"sensitive_data_scanner_standard_pattern"}},"group":{"data":{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"}}}},{"id":"0QvFjxASTxK2VgAIXOgGnQ","attributes":{"name":"my - group","is_enabled":true,"filter":{"query":"*"},"product_list":["logs"],"description":"","samplings":[]},"type":"sensitive_data_scanner_group","relationships":{"configuration":{"data":{"id":"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87","type":"sensitive_data_scanner_configuration"}},"rules":{"data":[{"id":"M4PLjvGWR7CMz6XlCjAadA","type":"sensitive_data_scanner_rule"}]}}},{"id":"M4PLjvGWR7CMz6XlCjAadA","attributes":{"name":"tf-TestAccDatadogSensitiveDataScannerRule_DefaultTags-local-1721743568","namespaces":[],"excluded_namespaces":["username"],"pattern":"regex","text_replacement":{"type":"none"},"tags":["sensitive_data:true","default_key:default_value"],"labels":[],"is_enabled":true,"description":"a - description"},"type":"sensitive_data_scanner_rule","relationships":{"group":{"data":{"id":"0QvFjxASTxK2VgAIXOgGnQ","type":"sensitive_data_scanner_group"}}}},{"id":"5a142739-d4a5-4d9e-bc20-a4fd77bb8db0","attributes":{"name":"Thibault - Terraform test","is_enabled":false,"filter":{"query":"service:my-service"},"product_list":["apm"],"description":"A - relevant description","samplings":[]},"type":"sensitive_data_scanner_group","relationships":{"configuration":{"data":{"id":"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87","type":"sensitive_data_scanner_configuration"}},"rules":{"data":[]}}}]} - - ' + string: '{"data":{"attributes":{},"id":"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87","relationships":{"groups":{"data":[]}},"type":"sensitive_data_scanner_configuration"},"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,"rule_count_limit":500,"version":277999}}' headers: content-type: - - application/json + - application/vnd.api+json status: code: 200 message: OK @@ -117,17 +26,15 @@ interactions: uri: https://api.datadoghq.com/api/v2/sensitive-data-scanner/config/groups response: body: - string: '{"data":{"id":"6543c741-cc7b-44ff-860c-dace29aa5013","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":274565}} - - ' + string: '{"data":{"id":"3a1a28eb-b310-4160-a442-3641c9dbc6cd","type":"sensitive_data_scanner_group","attributes":{"description":"","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":[]}}},"meta":{"version":278000}}' headers: content-type: - - application/json + - application/vnd.api+json status: - code: 200 - message: OK + code: 201 + message: Created - request: - body: '{"data":{"attributes":{"is_enabled":true,"name":"Test-Delete_Scanning_Rule_returns_OK_response-1748625430","namespaces":["admin.email"],"pattern":"pattern","tags":["sensitive_data:true"],"text_replacement":{"type":"none"}},"relationships":{"group":{"data":{"id":"6543c741-cc7b-44ff-860c-dace29aa5013","type":"sensitive_data_scanner_group"}}},"type":"sensitive_data_scanner_rule"},"meta":{}}' + body: '{"data":{"attributes":{"is_enabled":true,"name":"Test-Delete_Scanning_Rule_returns_OK_response-1768828272","namespaces":["admin.email"],"pattern":"pattern","tags":["sensitive_data:true"],"text_replacement":{"type":"none"}},"relationships":{"group":{"data":{"id":"3a1a28eb-b310-4160-a442-3641c9dbc6cd","type":"sensitive_data_scanner_group"}}},"type":"sensitive_data_scanner_rule"},"meta":{}}' headers: accept: - application/json @@ -137,15 +44,13 @@ interactions: uri: https://api.datadoghq.com/api/v2/sensitive-data-scanner/config/rules response: body: - string: '{"data":{"id":"219cea0c-9825-4b1f-b0d1-e838ea904b7d","attributes":{"name":"Test-Delete_Scanning_Rule_returns_OK_response-1748625430","namespaces":["admin.email"],"excluded_namespaces":[],"pattern":"pattern","text_replacement":{"type":"none"},"tags":["sensitive_data:true"],"labels":[],"is_enabled":true},"type":"sensitive_data_scanner_rule","relationships":{"group":{"data":{"id":"6543c741-cc7b-44ff-860c-dace29aa5013","type":"sensitive_data_scanner_group"}}}},"meta":{"version":274566}} - - ' + string: '{"data":{"id":"6aed2005-0134-49ec-93f2-5c5e8eeb92d0","type":"sensitive_data_scanner_rule","attributes":{"excluded_namespaces":[],"is_enabled":true,"labels":[],"name":"Test-Delete_Scanning_Rule_returns_OK_response-1768828272","namespaces":["admin.email"],"pattern":"pattern","tags":["sensitive_data:true"],"text_replacement":{"type":"none"}},"relationships":{"group":{"data":{"id":"3a1a28eb-b310-4160-a442-3641c9dbc6cd","type":"sensitive_data_scanner_group"}}}},"meta":{"version":278001}}' headers: content-type: - - application/json + - application/vnd.api+json status: - code: 200 - message: OK + code: 201 + message: Created - request: body: '{"meta":{}}' headers: @@ -154,15 +59,13 @@ interactions: content-type: - application/json method: DELETE - uri: https://api.datadoghq.com/api/v2/sensitive-data-scanner/config/rules/219cea0c-9825-4b1f-b0d1-e838ea904b7d + uri: https://api.datadoghq.com/api/v2/sensitive-data-scanner/config/rules/6aed2005-0134-49ec-93f2-5c5e8eeb92d0 response: body: - string: '{"meta":{"version":274567}} - - ' + string: '{"meta":{"version":278002}}' headers: content-type: - - application/json + - application/vnd.api+json status: code: 200 message: OK @@ -174,15 +77,14 @@ interactions: content-type: - application/json method: DELETE - uri: https://api.datadoghq.com/api/v2/sensitive-data-scanner/config/rules/219cea0c-9825-4b1f-b0d1-e838ea904b7d + uri: https://api.datadoghq.com/api/v2/sensitive-data-scanner/config/rules/6aed2005-0134-49ec-93f2-5c5e8eeb92d0 response: body: - string: '{"errors":["The requested scanning rule was not found"]} - - ' + string: '{"errors":[{"status":"404","code":"Not Found","title":"Not Found","detail":"scanning + rule could not be found"}]}' headers: content-type: - - application/json + - application/vnd.api+json status: code: 404 message: Not Found @@ -194,15 +96,13 @@ interactions: content-type: - application/json method: DELETE - uri: https://api.datadoghq.com/api/v2/sensitive-data-scanner/config/groups/6543c741-cc7b-44ff-860c-dace29aa5013 + uri: https://api.datadoghq.com/api/v2/sensitive-data-scanner/config/groups/3a1a28eb-b310-4160-a442-3641c9dbc6cd response: body: - string: '{"meta":{"version":274568}} - - ' + string: '{"meta":{"version":278003}}' headers: content-type: - - application/json + - application/vnd.api+json status: code: 200 message: OK diff --git a/tests/v2/cassettes/test_scenarios/test_list_scanning_groups_returns_ok_response.frozen b/tests/v2/cassettes/test_scenarios/test_list_scanning_groups_returns_ok_response.frozen index 579206d5ad..29c952c646 100644 --- a/tests/v2/cassettes/test_scenarios/test_list_scanning_groups_returns_ok_response.frozen +++ b/tests/v2/cassettes/test_scenarios/test_list_scanning_groups_returns_ok_response.frozen @@ -1 +1 @@ -2025-05-30T17:17:12.782Z \ No newline at end of file +2026-01-19T13:11:15.597Z \ No newline at end of file diff --git a/tests/v2/cassettes/test_scenarios/test_list_scanning_groups_returns_ok_response.yaml b/tests/v2/cassettes/test_scenarios/test_list_scanning_groups_returns_ok_response.yaml index fe23ad251d..44eb320291 100644 --- a/tests/v2/cassettes/test_scenarios/test_list_scanning_groups_returns_ok_response.yaml +++ b/tests/v2/cassettes/test_scenarios/test_list_scanning_groups_returns_ok_response.yaml @@ -8,101 +8,10 @@ interactions: uri: https://api.datadoghq.com/api/v2/sensitive-data-scanner/config response: body: - string: '{"data":{"id":"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87","attributes":{},"type":"sensitive_data_scanner_configuration","relationships":{"groups":{"data":[{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"},{"id":"0QvFjxASTxK2VgAIXOgGnQ","type":"sensitive_data_scanner_group"},{"id":"5a142739-d4a5-4d9e-bc20-a4fd77bb8db0","type":"sensitive_data_scanner_group"}]}}},"meta":{"version":274568,"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},"included":[{"id":"xdfyyx1FSzqEaNwOpqhsFw","attributes":{"name":"my-test-group","is_enabled":false,"filter":{"query":"*"},"product_list":["logs"],"samplings":[]},"type":"sensitive_data_scanner_group","relationships":{"configuration":{"data":{"id":"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87","type":"sensitive_data_scanner_configuration"}},"rules":{"data":[{"id":"5991e227-d611-4b56-afef-4992b5104755","type":"sensitive_data_scanner_rule"},{"id":"e28f1169-ba43-46ea-aa9e-a0f97a2fc830","type":"sensitive_data_scanner_rule"},{"id":"55318894-77ad-4b18-bc2d-562e388effe8","type":"sensitive_data_scanner_rule"},{"id":"7511ac78-b433-42e0-b291-eac394e1ae06","type":"sensitive_data_scanner_rule"},{"id":"47edb1c1-c841-48b0-bb84-9909485e1737","type":"sensitive_data_scanner_rule"},{"id":"1b4415eb-6e91-441a-b1bf-2a3cb7b9724b","type":"sensitive_data_scanner_rule"},{"id":"442c7cc0-2843-46f3-aedf-a027bcf8a22b","type":"sensitive_data_scanner_rule"},{"id":"dd7b34e8-c1d6-4ab0-bf4f-bb38809a1f43","type":"sensitive_data_scanner_rule"},{"id":"145bbddb-c4ca-49d0-92dd-a7774ceb1eb4","type":"sensitive_data_scanner_rule"},{"id":"2b2a4801-4f97-49c0-b6a3-e06d2f808c13","type":"sensitive_data_scanner_rule"},{"id":"175b62d2-fc94-4919-aa35-3d501849885c","type":"sensitive_data_scanner_rule"},{"id":"d75637b3-ef47-46a7-8f8f-1ce99134d827","type":"sensitive_data_scanner_rule"},{"id":"6678e2b9-7b6d-4020-a6a1-e392d5d4e838","type":"sensitive_data_scanner_rule"},{"id":"6837bea8-0c0e-4ee7-bd6c-6371cbca52bb","type":"sensitive_data_scanner_rule"},{"id":"f4fec54d-63c3-4151-8cc0-d925743124ff","type":"sensitive_data_scanner_rule"},{"id":"4724117a-668a-4a97-84e8-9f7d7cac0ab2","type":"sensitive_data_scanner_rule"},{"id":"70fbcc56-415b-42a2-96b0-53958f6024ba","type":"sensitive_data_scanner_rule"}]}}},{"id":"5991e227-d611-4b56-afef-4992b5104755","attributes":{"name":"HTTP - Basic Authentication Header Scanner","namespaces":[],"excluded_namespaces":[],"text_replacement":{"type":"none"},"tags":["sensitive_data_category:network_and_device_info","sensitive_data:basic_auth"],"labels":["domain:network","compliance:pci","compliance:gdpr","compliance:hipaa"],"is_enabled":true,"description":"Matches - the Authorization header of an HTTP request that uses the Basic authentication - scheme. It specifically looks for the Authorization keyword, followed by the - Basic keyword and a base64-encoded string.\n\nExamples of matching formats:\n- - `Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==`\n- `Authorization: Basic - Yml0c0FJOmhlbHAgbWU=`\n","priority":4,"included_keyword_configuration":{"keywords":[],"use_recommended_keywords":true,"character_count":30}},"type":"sensitive_data_scanner_rule","relationships":{"standard_pattern":{"data":{"id":"9d7756e343cefa22a5c098e1092590f806eb5446","type":"sensitive_data_scanner_standard_pattern"}},"group":{"data":{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"}}}},{"id":"e28f1169-ba43-46ea-aa9e-a0f97a2fc830","attributes":{"name":"HTTP - Cookie Scanner","namespaces":[],"excluded_namespaces":[],"text_replacement":{"type":"none"},"tags":["sensitive_data_category:network_and_device_info","sensitive_data:cookie"],"labels":["domain:network","compliance:pci","compliance:gdpr","compliance:hipaa"],"is_enabled":true,"description":"Matches - the Set-Cookie header of an HTTP response. It captures the cookie name-value - pairs and any optional attributes that are separated by semicolons.\n\nExamples - of matching formats:\n- `Set-Cookie: sessionid=123456; HttpOnly; Secure`\n- - `Set-Cookie: username=JohnDoe`\n","priority":4,"included_keyword_configuration":{"keywords":["cookie"],"use_recommended_keywords":true,"character_count":30}},"type":"sensitive_data_scanner_rule","relationships":{"standard_pattern":{"data":{"id":"34574e54c3e67a8a26d7070f331d83ae933d2730","type":"sensitive_data_scanner_standard_pattern"}},"group":{"data":{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"}}}},{"id":"55318894-77ad-4b18-bc2d-562e388effe8","attributes":{"name":"HTTP(S) - URL Scanner","namespaces":[],"excluded_namespaces":[],"text_replacement":{"type":"none"},"tags":["sensitive_data_category:url","sensitive_data:http_url"],"labels":["domain:network","compliance:pci","compliance:gdpr","compliance:hipaa"],"is_enabled":true,"description":"Matches - a sequence of characters representing a HTTP(S) URL.\n\nExamples of matching - formats:\n- `https://www.example.com/questions/3456/my-document?key1=value1&key2=value2`\n- - `http://example.com/%E5%BC%95%E3%81%8D%E5%89%B2%E3%82%8A.html`\n- `http://xn--fsqu00a.xn--3lr804guic/`\n","priority":4,"included_keyword_configuration":{"keywords":[],"use_recommended_keywords":true,"character_count":30}},"type":"sensitive_data_scanner_rule","relationships":{"standard_pattern":{"data":{"id":"aLQt_DX_T8S1MaWS82eoNQ","type":"sensitive_data_scanner_standard_pattern"}},"group":{"data":{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"}}}},{"id":"7511ac78-b433-42e0-b291-eac394e1ae06","attributes":{"name":"Canadian - Social Insurance Number Scanner","namespaces":[],"excluded_namespaces":[],"text_replacement":{"type":"none"},"tags":["sensitive_data_category:pii","sensitive_data:canadian_sin"],"labels":["domain:pii","compliance:gdpr"],"is_enabled":true,"description":"Matches - sequence of characters representing a Canadian Social Insurance Number (SIN), - which is composed of three digits separated by hyphens.\n\nExamples of matching - formats:\n- `123-456-789`\n- `456-789-123`\n","priority":4,"included_keyword_configuration":{"keywords":["canadian","canadian - insurance number","canadian social insurance","insurance number","number","sin","social","social - insurance"],"use_recommended_keywords":true,"character_count":30}},"type":"sensitive_data_scanner_rule","relationships":{"standard_pattern":{"data":{"id":"450239afc250a19799b6c03dc0e16fd6a4b2a1af","type":"sensitive_data_scanner_standard_pattern"}},"group":{"data":{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"}}}},{"id":"47edb1c1-c841-48b0-bb84-9909485e1737","attributes":{"name":"Chinese - Identity Card Number Scanner","namespaces":[],"excluded_namespaces":[],"text_replacement":{"type":"none"},"tags":["sensitive_data_category:pii","sensitive_data:chinese_id"],"labels":["domain:pii","compliance:gdpr"],"is_enabled":true,"description":"Matches - a sequence of characters representing a Chinese Identity Card Number format, - which consists of a single non-zero digit, followed by exactly 5 additional - digits, followed by a sequence of 7 to 18 digits. Matches are validated via - a checksum.\n\nExamples of matching formats:\n- `Chinese identity card number: - 320321197408094019`\n- `national id: 320321197408094019`\n","priority":4,"included_keyword_configuration":{"keywords":["national - id","resident identity","identity number","identification number","identity - card number","national identification number"],"use_recommended_keywords":true,"character_count":30}},"type":"sensitive_data_scanner_rule","relationships":{"standard_pattern":{"data":{"id":"4kEyzAP6fUEF83rWsEIZEx","type":"sensitive_data_scanner_standard_pattern"}},"group":{"data":{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"}}}},{"id":"1b4415eb-6e91-441a-b1bf-2a3cb7b9724b","attributes":{"name":"Chinese - Passport Scanner","namespaces":[],"excluded_namespaces":[],"text_replacement":{"type":"none"},"tags":["sensitive_data_category:pii","sensitive_data:chinese_passport"],"labels":["domain:pii","compliance:gdpr"],"is_enabled":true,"description":"Matches - a sequence of characters representing a Chinese passport number in a 9-character - format with 1 or 2 letters that can be D,DE,S,SE,G or E, and 7 or 8 digits.\n\nExamples - of matching formats:\n- `E01234567`\n- `G01234567`\n","priority":4,"included_keyword_configuration":{"keywords":["passport","travel - document"],"use_recommended_keywords":true,"character_count":30}},"type":"sensitive_data_scanner_rule","relationships":{"standard_pattern":{"data":{"id":"8Wld3kT1UyCfVGmO3Ok69R","type":"sensitive_data_scanner_standard_pattern"}},"group":{"data":{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"}}}},{"id":"442c7cc0-2843-46f3-aedf-a027bcf8a22b","attributes":{"name":"Chinese - Phone Number Scanner","namespaces":[],"excluded_namespaces":[],"text_replacement":{"type":"none"},"tags":["sensitive_data_category:pii","sensitive_data:chinese_phone_number"],"labels":["domain:pii","compliance:gdpr"],"is_enabled":true,"description":"Matches - a sequence of characters representing a Chinese phone number in a 11-character - format with the first digit being 1, the second digit being 3, 5, or 8, and - then exactly 9 additional digits.\n\nExamples of matching formats:\n- `18652313817`\n- - `+86 18552313817`\n","priority":4,"included_keyword_configuration":{"keywords":["mobile","phone","cell"],"use_recommended_keywords":true,"character_count":30}},"type":"sensitive_data_scanner_rule","relationships":{"standard_pattern":{"data":{"id":"V7sb5Px24c0n9yPwV72glH","type":"sensitive_data_scanner_standard_pattern"}},"group":{"data":{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"}}}},{"id":"dd7b34e8-c1d6-4ab0-bf4f-bb38809a1f43","attributes":{"name":"France - Social Security Number Scanner (INSEE/NIR)","namespaces":[],"excluded_namespaces":[],"text_replacement":{"type":"none"},"tags":["sensitive_data_category:pii","sensitive_data:france_nir"],"labels":["domain:pii","compliance:gdpr"],"is_enabled":true,"description":"Matches - a sequence of characters representing a France social security number (INSEE/NIR) - in a 9-digit format with optional delimiters after the 3rd and 5th digit. - Matches are validated via a checksum.\n\nExamples of matching formats:\n- - `1-51-02-46102-043-25`\n- `151024610204325`\n","priority":4,"included_keyword_configuration":{"keywords":["social - security","insee","nir"],"use_recommended_keywords":true,"character_count":30}},"type":"sensitive_data_scanner_rule","relationships":{"standard_pattern":{"data":{"id":"QiVm1XhY7GjzrSNrJ5IICB","type":"sensitive_data_scanner_standard_pattern"}},"group":{"data":{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"}}}},{"id":"145bbddb-c4ca-49d0-92dd-a7774ceb1eb4","attributes":{"name":"IPv4 - Address Scanner","namespaces":[],"excluded_namespaces":[],"text_replacement":{"type":"none"},"tags":["sensitive_data_category:ip_address","sensitive_data:ipv4_address"],"labels":["domain:network","compliance:gdpr","compliance:hipaa"],"is_enabled":true,"description":"Matches - a sequence of characters representing an IPv4 Address.\n\nExamples of matching - formats:\n- `127.0.0.1`\n- `172.16.254.1`\n","priority":4,"included_keyword_configuration":{"keywords":[],"use_recommended_keywords":true,"character_count":30}},"type":"sensitive_data_scanner_rule","relationships":{"standard_pattern":{"data":{"id":"aDA3jUjSSLOezHV2y-Rn_w","type":"sensitive_data_scanner_standard_pattern"}},"group":{"data":{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"}}}},{"id":"2b2a4801-4f97-49c0-b6a3-e06d2f808c13","attributes":{"name":"IPv6 - Address Scanner","namespaces":[],"excluded_namespaces":[],"text_replacement":{"type":"none"},"tags":["sensitive_data_category:ip_address","sensitive_data:ipv6_address"],"labels":["domain:network","compliance:gdpr","compliance:hipaa"],"is_enabled":true,"description":"Matches - a sequence of characters representing an IPv6 Address.\n\nExamples of matching - formats:\n- `2001:0db8:0000:0000:0000:ff00:0042:8329`\n- `0000:0000:0000:0000:0000:0000:0000:0001`\n","priority":4,"included_keyword_configuration":{"keywords":[],"use_recommended_keywords":true,"character_count":30}},"type":"sensitive_data_scanner_rule","relationships":{"standard_pattern":{"data":{"id":"s3sEZP5fSTGSPLPS853VeQ","type":"sensitive_data_scanner_standard_pattern"}},"group":{"data":{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"}}}},{"id":"175b62d2-fc94-4919-aa35-3d501849885c","attributes":{"name":"Standard - Email Address Scanner","namespaces":[],"excluded_namespaces":[],"text_replacement":{"type":"none"},"tags":["sensitive_data:email_address","sensitive_data_category:email_address"],"labels":["domain:pii","compliance:hipaa","compliance:gdpr"],"is_enabled":true,"description":"Matches - a sequence of characters representing standard email address using an official - top-level domain.\n\nExamples of matching formats:\n- `simple@example.com`\n- - `simple%40example.com`\n- `very.common@example.com`\n- `x@example.com`\n- - `long.email-address-with-hyphens@and.subdomains.example.com`\n- `user.name+tag+sorting@example.com`\n- - `name/surname@example.com`\n- `mailhost!username@example.org`\n- `user%example.com@example.org`\n- - `user-@example.org`\n","priority":4,"included_keyword_configuration":{"keywords":[],"use_recommended_keywords":true,"character_count":30}},"type":"sensitive_data_scanner_rule","relationships":{"standard_pattern":{"data":{"id":"PuXiVTCkTHOtj0Yad1ppsw","type":"sensitive_data_scanner_standard_pattern"}},"group":{"data":{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"}}}},{"id":"d75637b3-ef47-46a7-8f8f-1ce99134d827","attributes":{"name":"Standard - MAC Address Scanner","namespaces":[],"excluded_namespaces":[],"text_replacement":{"type":"none"},"tags":["sensitive_data:mac_address","sensitive_data_category:mac_address"],"labels":["domain:network","compliance:gdpr","compliance:hipaa"],"is_enabled":true,"description":"Matches - a sequence of characters representing a MAC address.\n\nExamples of matching - formats:\n- `FF:FF:FF:FF:FF:FF`\n- `FF-FF-FF-FF-FF-FF`\n","priority":4,"included_keyword_configuration":{"keywords":[],"use_recommended_keywords":true,"character_count":30}},"type":"sensitive_data_scanner_rule","relationships":{"standard_pattern":{"data":{"id":"uRLVpXXTRxmCg4M93hfLiA","type":"sensitive_data_scanner_standard_pattern"}},"group":{"data":{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"}}}},{"id":"6678e2b9-7b6d-4020-a6a1-e392d5d4e838","attributes":{"name":"UK - National Health Service Number Scanner","namespaces":[],"excluded_namespaces":[],"text_replacement":{"type":"none"},"tags":["sensitive_data_category:pii","sensitive_data:uk_nhs"],"labels":["compliance:gdpr","domain:pii"],"is_enabled":true,"description":"Matches - a sequence of characters representing a UK national health service number - (NHS) in a 10-digit format with optional space delimiters. Matches are validated - via a checksum.\n\nExamples of matching formats:\n- `National Health Number: - 907 784 4449`\n- `NHS: 1234567881`\n","priority":4,"included_keyword_configuration":{"keywords":["national - health number","nhs"],"use_recommended_keywords":true,"character_count":30}},"type":"sensitive_data_scanner_rule","relationships":{"standard_pattern":{"data":{"id":"rJ9DeXT0G7oESwbGWGMW82","type":"sensitive_data_scanner_standard_pattern"}},"group":{"data":{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"}}}},{"id":"6837bea8-0c0e-4ee7-bd6c-6371cbca52bb","attributes":{"name":"UK - National Insurance Number Scanner","namespaces":[],"excluded_namespaces":[],"text_replacement":{"type":"none"},"tags":["sensitive_data_category:pii","sensitive_data:uk_nin"],"labels":["domain:pii","compliance:gdpr"],"is_enabled":true,"description":"Matches - sequence of characters representing a UK National Insurance Number (NIN), - which is composed of two uppercase letters, six digits, and an optional uppercase - letter.\n\nExamples of matching formats:\n- `AB123456C`\n- `XY654321A`\n- - `GH987654`\n","priority":4,"included_keyword_configuration":{"keywords":["insurance","national","ni","nin"],"use_recommended_keywords":true,"character_count":30}},"type":"sensitive_data_scanner_rule","relationships":{"standard_pattern":{"data":{"id":"de0899e0cbaaa812bb624cf04c912071012f616d","type":"sensitive_data_scanner_standard_pattern"}},"group":{"data":{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"}}}},{"id":"f4fec54d-63c3-4151-8cc0-d925743124ff","attributes":{"name":"US - Individual Taxpayer Identification Number Scanner (ITIN)","namespaces":[],"excluded_namespaces":[],"text_replacement":{"type":"none"},"tags":["sensitive_data_category:pii","sensitive_data:us_itin"],"labels":["domain:pii","compliance:hipaa","compliance:gdpr"],"is_enabled":true,"description":"Matches - a sequence of characters representing a US ITIN number in a 9-digit format - with optional delimiters after the 3rd and 5th digit.\n\nExamples of matching - formats:\n- `927 70 5828`\n- `993-77 0690`\n","priority":4,"included_keyword_configuration":{"keywords":["i.t.i.n.","individual - taxpayer","itin"],"use_recommended_keywords":true,"character_count":30}},"type":"sensitive_data_scanner_rule","relationships":{"standard_pattern":{"data":{"id":"eC0YxRYEz27UOrfQ7sM3Bx","type":"sensitive_data_scanner_standard_pattern"}},"group":{"data":{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"}}}},{"id":"4724117a-668a-4a97-84e8-9f7d7cac0ab2","attributes":{"name":"US - Passport Scanner","namespaces":[],"excluded_namespaces":[],"text_replacement":{"type":"none"},"tags":["sensitive_data_category:pii","sensitive_data:passport_number"],"labels":["domain:pii","compliance:gdpr","compliance:hipaa"],"is_enabled":true,"description":"Matches - sequence of characters representing a US passport number, which is composed - 9 alphanumeric characters.\n\nExamples of matching formats:\n- `E00007734`\n- - `C03004786`\n","priority":4,"included_keyword_configuration":{"keywords":["passport","passport_"],"use_recommended_keywords":true,"character_count":30}},"type":"sensitive_data_scanner_rule","relationships":{"standard_pattern":{"data":{"id":"d962f7ddb3f55041e39195a60ff79d4814a7c331","type":"sensitive_data_scanner_standard_pattern"}},"group":{"data":{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"}}}},{"id":"70fbcc56-415b-42a2-96b0-53958f6024ba","attributes":{"name":"US - Social Security Number Scanner","namespaces":[],"excluded_namespaces":[],"text_replacement":{"type":"none"},"tags":["sensitive_data_category:pii","sensitive_data:us_ssn"],"labels":["domain:pii","compliance:hipaa","compliance:gdpr"],"is_enabled":true,"description":"Matches - a sequence of characters representing a US Social Security number in a 9-digit - format.\n\nExamples of matching formats:\n- `555-12-3456`\n- `456789012`\n","priority":4,"included_keyword_configuration":{"keywords":["ssn","social - security"],"use_recommended_keywords":true,"character_count":30}},"type":"sensitive_data_scanner_rule","relationships":{"standard_pattern":{"data":{"id":"PIIXqwUljp4BaqIHDBBLNn","type":"sensitive_data_scanner_standard_pattern"}},"group":{"data":{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"}}}},{"id":"0QvFjxASTxK2VgAIXOgGnQ","attributes":{"name":"my - group","is_enabled":true,"filter":{"query":"*"},"product_list":["logs"],"description":"","samplings":[]},"type":"sensitive_data_scanner_group","relationships":{"configuration":{"data":{"id":"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87","type":"sensitive_data_scanner_configuration"}},"rules":{"data":[{"id":"M4PLjvGWR7CMz6XlCjAadA","type":"sensitive_data_scanner_rule"}]}}},{"id":"M4PLjvGWR7CMz6XlCjAadA","attributes":{"name":"tf-TestAccDatadogSensitiveDataScannerRule_DefaultTags-local-1721743568","namespaces":[],"excluded_namespaces":["username"],"pattern":"regex","text_replacement":{"type":"none"},"tags":["sensitive_data:true","default_key:default_value"],"labels":[],"is_enabled":true,"description":"a - description"},"type":"sensitive_data_scanner_rule","relationships":{"group":{"data":{"id":"0QvFjxASTxK2VgAIXOgGnQ","type":"sensitive_data_scanner_group"}}}},{"id":"5a142739-d4a5-4d9e-bc20-a4fd77bb8db0","attributes":{"name":"Thibault - Terraform test","is_enabled":false,"filter":{"query":"service:my-service"},"product_list":["apm"],"description":"A - relevant description","samplings":[]},"type":"sensitive_data_scanner_group","relationships":{"configuration":{"data":{"id":"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87","type":"sensitive_data_scanner_configuration"}},"rules":{"data":[]}}}]} - - ' + string: '{"data":{"attributes":{},"id":"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87","relationships":{"groups":{"data":[]}},"type":"sensitive_data_scanner_configuration"},"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,"rule_count_limit":500,"version":278003}}' headers: content-type: - - application/json + - application/vnd.api+json status: code: 200 message: OK @@ -117,15 +26,13 @@ interactions: uri: https://api.datadoghq.com/api/v2/sensitive-data-scanner/config/groups response: body: - string: '{"data":{"id":"28119817-f6fe-428d-b308-74518e8b9de2","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":274569}} - - ' + string: '{"data":{"id":"c0df76e1-ba56-4c93-a655-d97fbca1c35b","type":"sensitive_data_scanner_group","attributes":{"description":"","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":[]}}},"meta":{"version":278004}}' headers: content-type: - - application/json + - application/vnd.api+json status: - code: 200 - message: OK + code: 201 + message: Created - request: body: null headers: @@ -135,101 +42,10 @@ interactions: uri: https://api.datadoghq.com/api/v2/sensitive-data-scanner/config response: body: - string: '{"data":{"id":"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87","attributes":{},"type":"sensitive_data_scanner_configuration","relationships":{"groups":{"data":[{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"},{"id":"0QvFjxASTxK2VgAIXOgGnQ","type":"sensitive_data_scanner_group"},{"id":"5a142739-d4a5-4d9e-bc20-a4fd77bb8db0","type":"sensitive_data_scanner_group"},{"id":"28119817-f6fe-428d-b308-74518e8b9de2","type":"sensitive_data_scanner_group"}]}}},"meta":{"version":274569,"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},"included":[{"id":"xdfyyx1FSzqEaNwOpqhsFw","attributes":{"name":"my-test-group","is_enabled":false,"filter":{"query":"*"},"product_list":["logs"],"samplings":[]},"type":"sensitive_data_scanner_group","relationships":{"configuration":{"data":{"id":"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87","type":"sensitive_data_scanner_configuration"}},"rules":{"data":[{"id":"5991e227-d611-4b56-afef-4992b5104755","type":"sensitive_data_scanner_rule"},{"id":"e28f1169-ba43-46ea-aa9e-a0f97a2fc830","type":"sensitive_data_scanner_rule"},{"id":"55318894-77ad-4b18-bc2d-562e388effe8","type":"sensitive_data_scanner_rule"},{"id":"7511ac78-b433-42e0-b291-eac394e1ae06","type":"sensitive_data_scanner_rule"},{"id":"47edb1c1-c841-48b0-bb84-9909485e1737","type":"sensitive_data_scanner_rule"},{"id":"1b4415eb-6e91-441a-b1bf-2a3cb7b9724b","type":"sensitive_data_scanner_rule"},{"id":"442c7cc0-2843-46f3-aedf-a027bcf8a22b","type":"sensitive_data_scanner_rule"},{"id":"dd7b34e8-c1d6-4ab0-bf4f-bb38809a1f43","type":"sensitive_data_scanner_rule"},{"id":"145bbddb-c4ca-49d0-92dd-a7774ceb1eb4","type":"sensitive_data_scanner_rule"},{"id":"2b2a4801-4f97-49c0-b6a3-e06d2f808c13","type":"sensitive_data_scanner_rule"},{"id":"175b62d2-fc94-4919-aa35-3d501849885c","type":"sensitive_data_scanner_rule"},{"id":"d75637b3-ef47-46a7-8f8f-1ce99134d827","type":"sensitive_data_scanner_rule"},{"id":"6678e2b9-7b6d-4020-a6a1-e392d5d4e838","type":"sensitive_data_scanner_rule"},{"id":"6837bea8-0c0e-4ee7-bd6c-6371cbca52bb","type":"sensitive_data_scanner_rule"},{"id":"f4fec54d-63c3-4151-8cc0-d925743124ff","type":"sensitive_data_scanner_rule"},{"id":"4724117a-668a-4a97-84e8-9f7d7cac0ab2","type":"sensitive_data_scanner_rule"},{"id":"70fbcc56-415b-42a2-96b0-53958f6024ba","type":"sensitive_data_scanner_rule"}]}}},{"id":"5991e227-d611-4b56-afef-4992b5104755","attributes":{"name":"HTTP - Basic Authentication Header Scanner","namespaces":[],"excluded_namespaces":[],"text_replacement":{"type":"none"},"tags":["sensitive_data_category:network_and_device_info","sensitive_data:basic_auth"],"labels":["domain:network","compliance:pci","compliance:gdpr","compliance:hipaa"],"is_enabled":true,"description":"Matches - the Authorization header of an HTTP request that uses the Basic authentication - scheme. It specifically looks for the Authorization keyword, followed by the - Basic keyword and a base64-encoded string.\n\nExamples of matching formats:\n- - `Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==`\n- `Authorization: Basic - Yml0c0FJOmhlbHAgbWU=`\n","priority":4,"included_keyword_configuration":{"keywords":[],"use_recommended_keywords":true,"character_count":30}},"type":"sensitive_data_scanner_rule","relationships":{"standard_pattern":{"data":{"id":"9d7756e343cefa22a5c098e1092590f806eb5446","type":"sensitive_data_scanner_standard_pattern"}},"group":{"data":{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"}}}},{"id":"e28f1169-ba43-46ea-aa9e-a0f97a2fc830","attributes":{"name":"HTTP - Cookie Scanner","namespaces":[],"excluded_namespaces":[],"text_replacement":{"type":"none"},"tags":["sensitive_data_category:network_and_device_info","sensitive_data:cookie"],"labels":["domain:network","compliance:pci","compliance:gdpr","compliance:hipaa"],"is_enabled":true,"description":"Matches - the Set-Cookie header of an HTTP response. It captures the cookie name-value - pairs and any optional attributes that are separated by semicolons.\n\nExamples - of matching formats:\n- `Set-Cookie: sessionid=123456; HttpOnly; Secure`\n- - `Set-Cookie: username=JohnDoe`\n","priority":4,"included_keyword_configuration":{"keywords":["cookie"],"use_recommended_keywords":true,"character_count":30}},"type":"sensitive_data_scanner_rule","relationships":{"standard_pattern":{"data":{"id":"34574e54c3e67a8a26d7070f331d83ae933d2730","type":"sensitive_data_scanner_standard_pattern"}},"group":{"data":{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"}}}},{"id":"55318894-77ad-4b18-bc2d-562e388effe8","attributes":{"name":"HTTP(S) - URL Scanner","namespaces":[],"excluded_namespaces":[],"text_replacement":{"type":"none"},"tags":["sensitive_data_category:url","sensitive_data:http_url"],"labels":["domain:network","compliance:pci","compliance:gdpr","compliance:hipaa"],"is_enabled":true,"description":"Matches - a sequence of characters representing a HTTP(S) URL.\n\nExamples of matching - formats:\n- `https://www.example.com/questions/3456/my-document?key1=value1&key2=value2`\n- - `http://example.com/%E5%BC%95%E3%81%8D%E5%89%B2%E3%82%8A.html`\n- `http://xn--fsqu00a.xn--3lr804guic/`\n","priority":4,"included_keyword_configuration":{"keywords":[],"use_recommended_keywords":true,"character_count":30}},"type":"sensitive_data_scanner_rule","relationships":{"standard_pattern":{"data":{"id":"aLQt_DX_T8S1MaWS82eoNQ","type":"sensitive_data_scanner_standard_pattern"}},"group":{"data":{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"}}}},{"id":"7511ac78-b433-42e0-b291-eac394e1ae06","attributes":{"name":"Canadian - Social Insurance Number Scanner","namespaces":[],"excluded_namespaces":[],"text_replacement":{"type":"none"},"tags":["sensitive_data_category:pii","sensitive_data:canadian_sin"],"labels":["domain:pii","compliance:gdpr"],"is_enabled":true,"description":"Matches - sequence of characters representing a Canadian Social Insurance Number (SIN), - which is composed of three digits separated by hyphens.\n\nExamples of matching - formats:\n- `123-456-789`\n- `456-789-123`\n","priority":4,"included_keyword_configuration":{"keywords":["canadian","canadian - insurance number","canadian social insurance","insurance number","number","sin","social","social - insurance"],"use_recommended_keywords":true,"character_count":30}},"type":"sensitive_data_scanner_rule","relationships":{"standard_pattern":{"data":{"id":"450239afc250a19799b6c03dc0e16fd6a4b2a1af","type":"sensitive_data_scanner_standard_pattern"}},"group":{"data":{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"}}}},{"id":"47edb1c1-c841-48b0-bb84-9909485e1737","attributes":{"name":"Chinese - Identity Card Number Scanner","namespaces":[],"excluded_namespaces":[],"text_replacement":{"type":"none"},"tags":["sensitive_data_category:pii","sensitive_data:chinese_id"],"labels":["domain:pii","compliance:gdpr"],"is_enabled":true,"description":"Matches - a sequence of characters representing a Chinese Identity Card Number format, - which consists of a single non-zero digit, followed by exactly 5 additional - digits, followed by a sequence of 7 to 18 digits. Matches are validated via - a checksum.\n\nExamples of matching formats:\n- `Chinese identity card number: - 320321197408094019`\n- `national id: 320321197408094019`\n","priority":4,"included_keyword_configuration":{"keywords":["national - id","resident identity","identity number","identification number","identity - card number","national identification number"],"use_recommended_keywords":true,"character_count":30}},"type":"sensitive_data_scanner_rule","relationships":{"standard_pattern":{"data":{"id":"4kEyzAP6fUEF83rWsEIZEx","type":"sensitive_data_scanner_standard_pattern"}},"group":{"data":{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"}}}},{"id":"1b4415eb-6e91-441a-b1bf-2a3cb7b9724b","attributes":{"name":"Chinese - Passport Scanner","namespaces":[],"excluded_namespaces":[],"text_replacement":{"type":"none"},"tags":["sensitive_data_category:pii","sensitive_data:chinese_passport"],"labels":["domain:pii","compliance:gdpr"],"is_enabled":true,"description":"Matches - a sequence of characters representing a Chinese passport number in a 9-character - format with 1 or 2 letters that can be D,DE,S,SE,G or E, and 7 or 8 digits.\n\nExamples - of matching formats:\n- `E01234567`\n- `G01234567`\n","priority":4,"included_keyword_configuration":{"keywords":["passport","travel - document"],"use_recommended_keywords":true,"character_count":30}},"type":"sensitive_data_scanner_rule","relationships":{"standard_pattern":{"data":{"id":"8Wld3kT1UyCfVGmO3Ok69R","type":"sensitive_data_scanner_standard_pattern"}},"group":{"data":{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"}}}},{"id":"442c7cc0-2843-46f3-aedf-a027bcf8a22b","attributes":{"name":"Chinese - Phone Number Scanner","namespaces":[],"excluded_namespaces":[],"text_replacement":{"type":"none"},"tags":["sensitive_data_category:pii","sensitive_data:chinese_phone_number"],"labels":["domain:pii","compliance:gdpr"],"is_enabled":true,"description":"Matches - a sequence of characters representing a Chinese phone number in a 11-character - format with the first digit being 1, the second digit being 3, 5, or 8, and - then exactly 9 additional digits.\n\nExamples of matching formats:\n- `18652313817`\n- - `+86 18552313817`\n","priority":4,"included_keyword_configuration":{"keywords":["mobile","phone","cell"],"use_recommended_keywords":true,"character_count":30}},"type":"sensitive_data_scanner_rule","relationships":{"standard_pattern":{"data":{"id":"V7sb5Px24c0n9yPwV72glH","type":"sensitive_data_scanner_standard_pattern"}},"group":{"data":{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"}}}},{"id":"dd7b34e8-c1d6-4ab0-bf4f-bb38809a1f43","attributes":{"name":"France - Social Security Number Scanner (INSEE/NIR)","namespaces":[],"excluded_namespaces":[],"text_replacement":{"type":"none"},"tags":["sensitive_data_category:pii","sensitive_data:france_nir"],"labels":["domain:pii","compliance:gdpr"],"is_enabled":true,"description":"Matches - a sequence of characters representing a France social security number (INSEE/NIR) - in a 9-digit format with optional delimiters after the 3rd and 5th digit. - Matches are validated via a checksum.\n\nExamples of matching formats:\n- - `1-51-02-46102-043-25`\n- `151024610204325`\n","priority":4,"included_keyword_configuration":{"keywords":["social - security","insee","nir"],"use_recommended_keywords":true,"character_count":30}},"type":"sensitive_data_scanner_rule","relationships":{"standard_pattern":{"data":{"id":"QiVm1XhY7GjzrSNrJ5IICB","type":"sensitive_data_scanner_standard_pattern"}},"group":{"data":{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"}}}},{"id":"145bbddb-c4ca-49d0-92dd-a7774ceb1eb4","attributes":{"name":"IPv4 - Address Scanner","namespaces":[],"excluded_namespaces":[],"text_replacement":{"type":"none"},"tags":["sensitive_data_category:ip_address","sensitive_data:ipv4_address"],"labels":["domain:network","compliance:gdpr","compliance:hipaa"],"is_enabled":true,"description":"Matches - a sequence of characters representing an IPv4 Address.\n\nExamples of matching - formats:\n- `127.0.0.1`\n- `172.16.254.1`\n","priority":4,"included_keyword_configuration":{"keywords":[],"use_recommended_keywords":true,"character_count":30}},"type":"sensitive_data_scanner_rule","relationships":{"standard_pattern":{"data":{"id":"aDA3jUjSSLOezHV2y-Rn_w","type":"sensitive_data_scanner_standard_pattern"}},"group":{"data":{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"}}}},{"id":"2b2a4801-4f97-49c0-b6a3-e06d2f808c13","attributes":{"name":"IPv6 - Address Scanner","namespaces":[],"excluded_namespaces":[],"text_replacement":{"type":"none"},"tags":["sensitive_data_category:ip_address","sensitive_data:ipv6_address"],"labels":["domain:network","compliance:gdpr","compliance:hipaa"],"is_enabled":true,"description":"Matches - a sequence of characters representing an IPv6 Address.\n\nExamples of matching - formats:\n- `2001:0db8:0000:0000:0000:ff00:0042:8329`\n- `0000:0000:0000:0000:0000:0000:0000:0001`\n","priority":4,"included_keyword_configuration":{"keywords":[],"use_recommended_keywords":true,"character_count":30}},"type":"sensitive_data_scanner_rule","relationships":{"standard_pattern":{"data":{"id":"s3sEZP5fSTGSPLPS853VeQ","type":"sensitive_data_scanner_standard_pattern"}},"group":{"data":{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"}}}},{"id":"175b62d2-fc94-4919-aa35-3d501849885c","attributes":{"name":"Standard - Email Address Scanner","namespaces":[],"excluded_namespaces":[],"text_replacement":{"type":"none"},"tags":["sensitive_data:email_address","sensitive_data_category:email_address"],"labels":["domain:pii","compliance:hipaa","compliance:gdpr"],"is_enabled":true,"description":"Matches - a sequence of characters representing standard email address using an official - top-level domain.\n\nExamples of matching formats:\n- `simple@example.com`\n- - `simple%40example.com`\n- `very.common@example.com`\n- `x@example.com`\n- - `long.email-address-with-hyphens@and.subdomains.example.com`\n- `user.name+tag+sorting@example.com`\n- - `name/surname@example.com`\n- `mailhost!username@example.org`\n- `user%example.com@example.org`\n- - `user-@example.org`\n","priority":4,"included_keyword_configuration":{"keywords":[],"use_recommended_keywords":true,"character_count":30}},"type":"sensitive_data_scanner_rule","relationships":{"standard_pattern":{"data":{"id":"PuXiVTCkTHOtj0Yad1ppsw","type":"sensitive_data_scanner_standard_pattern"}},"group":{"data":{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"}}}},{"id":"d75637b3-ef47-46a7-8f8f-1ce99134d827","attributes":{"name":"Standard - MAC Address Scanner","namespaces":[],"excluded_namespaces":[],"text_replacement":{"type":"none"},"tags":["sensitive_data:mac_address","sensitive_data_category:mac_address"],"labels":["domain:network","compliance:gdpr","compliance:hipaa"],"is_enabled":true,"description":"Matches - a sequence of characters representing a MAC address.\n\nExamples of matching - formats:\n- `FF:FF:FF:FF:FF:FF`\n- `FF-FF-FF-FF-FF-FF`\n","priority":4,"included_keyword_configuration":{"keywords":[],"use_recommended_keywords":true,"character_count":30}},"type":"sensitive_data_scanner_rule","relationships":{"standard_pattern":{"data":{"id":"uRLVpXXTRxmCg4M93hfLiA","type":"sensitive_data_scanner_standard_pattern"}},"group":{"data":{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"}}}},{"id":"6678e2b9-7b6d-4020-a6a1-e392d5d4e838","attributes":{"name":"UK - National Health Service Number Scanner","namespaces":[],"excluded_namespaces":[],"text_replacement":{"type":"none"},"tags":["sensitive_data_category:pii","sensitive_data:uk_nhs"],"labels":["compliance:gdpr","domain:pii"],"is_enabled":true,"description":"Matches - a sequence of characters representing a UK national health service number - (NHS) in a 10-digit format with optional space delimiters. Matches are validated - via a checksum.\n\nExamples of matching formats:\n- `National Health Number: - 907 784 4449`\n- `NHS: 1234567881`\n","priority":4,"included_keyword_configuration":{"keywords":["national - health number","nhs"],"use_recommended_keywords":true,"character_count":30}},"type":"sensitive_data_scanner_rule","relationships":{"standard_pattern":{"data":{"id":"rJ9DeXT0G7oESwbGWGMW82","type":"sensitive_data_scanner_standard_pattern"}},"group":{"data":{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"}}}},{"id":"6837bea8-0c0e-4ee7-bd6c-6371cbca52bb","attributes":{"name":"UK - National Insurance Number Scanner","namespaces":[],"excluded_namespaces":[],"text_replacement":{"type":"none"},"tags":["sensitive_data_category:pii","sensitive_data:uk_nin"],"labels":["domain:pii","compliance:gdpr"],"is_enabled":true,"description":"Matches - sequence of characters representing a UK National Insurance Number (NIN), - which is composed of two uppercase letters, six digits, and an optional uppercase - letter.\n\nExamples of matching formats:\n- `AB123456C`\n- `XY654321A`\n- - `GH987654`\n","priority":4,"included_keyword_configuration":{"keywords":["insurance","national","ni","nin"],"use_recommended_keywords":true,"character_count":30}},"type":"sensitive_data_scanner_rule","relationships":{"standard_pattern":{"data":{"id":"de0899e0cbaaa812bb624cf04c912071012f616d","type":"sensitive_data_scanner_standard_pattern"}},"group":{"data":{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"}}}},{"id":"f4fec54d-63c3-4151-8cc0-d925743124ff","attributes":{"name":"US - Individual Taxpayer Identification Number Scanner (ITIN)","namespaces":[],"excluded_namespaces":[],"text_replacement":{"type":"none"},"tags":["sensitive_data_category:pii","sensitive_data:us_itin"],"labels":["domain:pii","compliance:hipaa","compliance:gdpr"],"is_enabled":true,"description":"Matches - a sequence of characters representing a US ITIN number in a 9-digit format - with optional delimiters after the 3rd and 5th digit.\n\nExamples of matching - formats:\n- `927 70 5828`\n- `993-77 0690`\n","priority":4,"included_keyword_configuration":{"keywords":["i.t.i.n.","individual - taxpayer","itin"],"use_recommended_keywords":true,"character_count":30}},"type":"sensitive_data_scanner_rule","relationships":{"standard_pattern":{"data":{"id":"eC0YxRYEz27UOrfQ7sM3Bx","type":"sensitive_data_scanner_standard_pattern"}},"group":{"data":{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"}}}},{"id":"4724117a-668a-4a97-84e8-9f7d7cac0ab2","attributes":{"name":"US - Passport Scanner","namespaces":[],"excluded_namespaces":[],"text_replacement":{"type":"none"},"tags":["sensitive_data_category:pii","sensitive_data:passport_number"],"labels":["domain:pii","compliance:gdpr","compliance:hipaa"],"is_enabled":true,"description":"Matches - sequence of characters representing a US passport number, which is composed - 9 alphanumeric characters.\n\nExamples of matching formats:\n- `E00007734`\n- - `C03004786`\n","priority":4,"included_keyword_configuration":{"keywords":["passport","passport_"],"use_recommended_keywords":true,"character_count":30}},"type":"sensitive_data_scanner_rule","relationships":{"standard_pattern":{"data":{"id":"d962f7ddb3f55041e39195a60ff79d4814a7c331","type":"sensitive_data_scanner_standard_pattern"}},"group":{"data":{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"}}}},{"id":"70fbcc56-415b-42a2-96b0-53958f6024ba","attributes":{"name":"US - Social Security Number Scanner","namespaces":[],"excluded_namespaces":[],"text_replacement":{"type":"none"},"tags":["sensitive_data_category:pii","sensitive_data:us_ssn"],"labels":["domain:pii","compliance:hipaa","compliance:gdpr"],"is_enabled":true,"description":"Matches - a sequence of characters representing a US Social Security number in a 9-digit - format.\n\nExamples of matching formats:\n- `555-12-3456`\n- `456789012`\n","priority":4,"included_keyword_configuration":{"keywords":["ssn","social - security"],"use_recommended_keywords":true,"character_count":30}},"type":"sensitive_data_scanner_rule","relationships":{"standard_pattern":{"data":{"id":"PIIXqwUljp4BaqIHDBBLNn","type":"sensitive_data_scanner_standard_pattern"}},"group":{"data":{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"}}}},{"id":"0QvFjxASTxK2VgAIXOgGnQ","attributes":{"name":"my - group","is_enabled":true,"filter":{"query":"*"},"product_list":["logs"],"description":"","samplings":[]},"type":"sensitive_data_scanner_group","relationships":{"configuration":{"data":{"id":"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87","type":"sensitive_data_scanner_configuration"}},"rules":{"data":[{"id":"M4PLjvGWR7CMz6XlCjAadA","type":"sensitive_data_scanner_rule"}]}}},{"id":"M4PLjvGWR7CMz6XlCjAadA","attributes":{"name":"tf-TestAccDatadogSensitiveDataScannerRule_DefaultTags-local-1721743568","namespaces":[],"excluded_namespaces":["username"],"pattern":"regex","text_replacement":{"type":"none"},"tags":["sensitive_data:true","default_key:default_value"],"labels":[],"is_enabled":true,"description":"a - description"},"type":"sensitive_data_scanner_rule","relationships":{"group":{"data":{"id":"0QvFjxASTxK2VgAIXOgGnQ","type":"sensitive_data_scanner_group"}}}},{"id":"5a142739-d4a5-4d9e-bc20-a4fd77bb8db0","attributes":{"name":"Thibault - Terraform test","is_enabled":false,"filter":{"query":"service:my-service"},"product_list":["apm"],"description":"A - relevant description","samplings":[]},"type":"sensitive_data_scanner_group","relationships":{"configuration":{"data":{"id":"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87","type":"sensitive_data_scanner_configuration"}},"rules":{"data":[]}}},{"id":"28119817-f6fe-428d-b308-74518e8b9de2","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":[]}}}]} - - ' + string: '{"data":{"attributes":{},"id":"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87","relationships":{"groups":{"data":[{"id":"c0df76e1-ba56-4c93-a655-d97fbca1c35b","type":"sensitive_data_scanner_group"}]}},"type":"sensitive_data_scanner_configuration"},"included":[{"attributes":{"description":"","filter":{"query":"*"},"is_enabled":false,"name":"my-test-group","product_list":["logs"],"samplings":[{"product":"logs","rate":100}]},"id":"c0df76e1-ba56-4c93-a655-d97fbca1c35b","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,"rule_count_limit":500,"version":278004}}' headers: content-type: - - application/json + - application/vnd.api+json status: code: 200 message: OK @@ -241,15 +57,13 @@ interactions: content-type: - application/json method: DELETE - uri: https://api.datadoghq.com/api/v2/sensitive-data-scanner/config/groups/28119817-f6fe-428d-b308-74518e8b9de2 + uri: https://api.datadoghq.com/api/v2/sensitive-data-scanner/config/groups/c0df76e1-ba56-4c93-a655-d97fbca1c35b response: body: - string: '{"meta":{"version":274570}} - - ' + string: '{"meta":{"version":278005}}' headers: content-type: - - application/json + - application/vnd.api+json status: code: 200 message: OK diff --git a/tests/v2/cassettes/test_scenarios/test_reorder_groups_returns_bad_request_response.frozen b/tests/v2/cassettes/test_scenarios/test_reorder_groups_returns_bad_request_response.frozen index 6969cf9e68..840c910baf 100644 --- a/tests/v2/cassettes/test_scenarios/test_reorder_groups_returns_bad_request_response.frozen +++ b/tests/v2/cassettes/test_scenarios/test_reorder_groups_returns_bad_request_response.frozen @@ -1 +1 @@ -2025-05-30T17:17:14.127Z \ No newline at end of file +2026-01-19T13:11:17.545Z \ No newline at end of file diff --git a/tests/v2/cassettes/test_scenarios/test_reorder_groups_returns_bad_request_response.yaml b/tests/v2/cassettes/test_scenarios/test_reorder_groups_returns_bad_request_response.yaml index e5c546477e..b2bc8ef593 100644 --- a/tests/v2/cassettes/test_scenarios/test_reorder_groups_returns_bad_request_response.yaml +++ b/tests/v2/cassettes/test_scenarios/test_reorder_groups_returns_bad_request_response.yaml @@ -8,101 +8,10 @@ interactions: uri: https://api.datadoghq.com/api/v2/sensitive-data-scanner/config response: body: - string: '{"data":{"id":"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87","attributes":{},"type":"sensitive_data_scanner_configuration","relationships":{"groups":{"data":[{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"},{"id":"0QvFjxASTxK2VgAIXOgGnQ","type":"sensitive_data_scanner_group"},{"id":"5a142739-d4a5-4d9e-bc20-a4fd77bb8db0","type":"sensitive_data_scanner_group"}]}}},"meta":{"version":274570,"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},"included":[{"id":"xdfyyx1FSzqEaNwOpqhsFw","attributes":{"name":"my-test-group","is_enabled":false,"filter":{"query":"*"},"product_list":["logs"],"samplings":[]},"type":"sensitive_data_scanner_group","relationships":{"configuration":{"data":{"id":"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87","type":"sensitive_data_scanner_configuration"}},"rules":{"data":[{"id":"5991e227-d611-4b56-afef-4992b5104755","type":"sensitive_data_scanner_rule"},{"id":"e28f1169-ba43-46ea-aa9e-a0f97a2fc830","type":"sensitive_data_scanner_rule"},{"id":"55318894-77ad-4b18-bc2d-562e388effe8","type":"sensitive_data_scanner_rule"},{"id":"7511ac78-b433-42e0-b291-eac394e1ae06","type":"sensitive_data_scanner_rule"},{"id":"47edb1c1-c841-48b0-bb84-9909485e1737","type":"sensitive_data_scanner_rule"},{"id":"1b4415eb-6e91-441a-b1bf-2a3cb7b9724b","type":"sensitive_data_scanner_rule"},{"id":"442c7cc0-2843-46f3-aedf-a027bcf8a22b","type":"sensitive_data_scanner_rule"},{"id":"dd7b34e8-c1d6-4ab0-bf4f-bb38809a1f43","type":"sensitive_data_scanner_rule"},{"id":"145bbddb-c4ca-49d0-92dd-a7774ceb1eb4","type":"sensitive_data_scanner_rule"},{"id":"2b2a4801-4f97-49c0-b6a3-e06d2f808c13","type":"sensitive_data_scanner_rule"},{"id":"175b62d2-fc94-4919-aa35-3d501849885c","type":"sensitive_data_scanner_rule"},{"id":"d75637b3-ef47-46a7-8f8f-1ce99134d827","type":"sensitive_data_scanner_rule"},{"id":"6678e2b9-7b6d-4020-a6a1-e392d5d4e838","type":"sensitive_data_scanner_rule"},{"id":"6837bea8-0c0e-4ee7-bd6c-6371cbca52bb","type":"sensitive_data_scanner_rule"},{"id":"f4fec54d-63c3-4151-8cc0-d925743124ff","type":"sensitive_data_scanner_rule"},{"id":"4724117a-668a-4a97-84e8-9f7d7cac0ab2","type":"sensitive_data_scanner_rule"},{"id":"70fbcc56-415b-42a2-96b0-53958f6024ba","type":"sensitive_data_scanner_rule"}]}}},{"id":"5991e227-d611-4b56-afef-4992b5104755","attributes":{"name":"HTTP - Basic Authentication Header Scanner","namespaces":[],"excluded_namespaces":[],"text_replacement":{"type":"none"},"tags":["sensitive_data_category:network_and_device_info","sensitive_data:basic_auth"],"labels":["domain:network","compliance:pci","compliance:gdpr","compliance:hipaa"],"is_enabled":true,"description":"Matches - the Authorization header of an HTTP request that uses the Basic authentication - scheme. It specifically looks for the Authorization keyword, followed by the - Basic keyword and a base64-encoded string.\n\nExamples of matching formats:\n- - `Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==`\n- `Authorization: Basic - Yml0c0FJOmhlbHAgbWU=`\n","priority":4,"included_keyword_configuration":{"keywords":[],"use_recommended_keywords":true,"character_count":30}},"type":"sensitive_data_scanner_rule","relationships":{"standard_pattern":{"data":{"id":"9d7756e343cefa22a5c098e1092590f806eb5446","type":"sensitive_data_scanner_standard_pattern"}},"group":{"data":{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"}}}},{"id":"e28f1169-ba43-46ea-aa9e-a0f97a2fc830","attributes":{"name":"HTTP - Cookie Scanner","namespaces":[],"excluded_namespaces":[],"text_replacement":{"type":"none"},"tags":["sensitive_data_category:network_and_device_info","sensitive_data:cookie"],"labels":["domain:network","compliance:pci","compliance:gdpr","compliance:hipaa"],"is_enabled":true,"description":"Matches - the Set-Cookie header of an HTTP response. It captures the cookie name-value - pairs and any optional attributes that are separated by semicolons.\n\nExamples - of matching formats:\n- `Set-Cookie: sessionid=123456; HttpOnly; Secure`\n- - `Set-Cookie: username=JohnDoe`\n","priority":4,"included_keyword_configuration":{"keywords":["cookie"],"use_recommended_keywords":true,"character_count":30}},"type":"sensitive_data_scanner_rule","relationships":{"standard_pattern":{"data":{"id":"34574e54c3e67a8a26d7070f331d83ae933d2730","type":"sensitive_data_scanner_standard_pattern"}},"group":{"data":{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"}}}},{"id":"55318894-77ad-4b18-bc2d-562e388effe8","attributes":{"name":"HTTP(S) - URL Scanner","namespaces":[],"excluded_namespaces":[],"text_replacement":{"type":"none"},"tags":["sensitive_data_category:url","sensitive_data:http_url"],"labels":["domain:network","compliance:pci","compliance:gdpr","compliance:hipaa"],"is_enabled":true,"description":"Matches - a sequence of characters representing a HTTP(S) URL.\n\nExamples of matching - formats:\n- `https://www.example.com/questions/3456/my-document?key1=value1&key2=value2`\n- - `http://example.com/%E5%BC%95%E3%81%8D%E5%89%B2%E3%82%8A.html`\n- `http://xn--fsqu00a.xn--3lr804guic/`\n","priority":4,"included_keyword_configuration":{"keywords":[],"use_recommended_keywords":true,"character_count":30}},"type":"sensitive_data_scanner_rule","relationships":{"standard_pattern":{"data":{"id":"aLQt_DX_T8S1MaWS82eoNQ","type":"sensitive_data_scanner_standard_pattern"}},"group":{"data":{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"}}}},{"id":"7511ac78-b433-42e0-b291-eac394e1ae06","attributes":{"name":"Canadian - Social Insurance Number Scanner","namespaces":[],"excluded_namespaces":[],"text_replacement":{"type":"none"},"tags":["sensitive_data_category:pii","sensitive_data:canadian_sin"],"labels":["domain:pii","compliance:gdpr"],"is_enabled":true,"description":"Matches - sequence of characters representing a Canadian Social Insurance Number (SIN), - which is composed of three digits separated by hyphens.\n\nExamples of matching - formats:\n- `123-456-789`\n- `456-789-123`\n","priority":4,"included_keyword_configuration":{"keywords":["canadian","canadian - insurance number","canadian social insurance","insurance number","number","sin","social","social - insurance"],"use_recommended_keywords":true,"character_count":30}},"type":"sensitive_data_scanner_rule","relationships":{"standard_pattern":{"data":{"id":"450239afc250a19799b6c03dc0e16fd6a4b2a1af","type":"sensitive_data_scanner_standard_pattern"}},"group":{"data":{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"}}}},{"id":"47edb1c1-c841-48b0-bb84-9909485e1737","attributes":{"name":"Chinese - Identity Card Number Scanner","namespaces":[],"excluded_namespaces":[],"text_replacement":{"type":"none"},"tags":["sensitive_data_category:pii","sensitive_data:chinese_id"],"labels":["domain:pii","compliance:gdpr"],"is_enabled":true,"description":"Matches - a sequence of characters representing a Chinese Identity Card Number format, - which consists of a single non-zero digit, followed by exactly 5 additional - digits, followed by a sequence of 7 to 18 digits. Matches are validated via - a checksum.\n\nExamples of matching formats:\n- `Chinese identity card number: - 320321197408094019`\n- `national id: 320321197408094019`\n","priority":4,"included_keyword_configuration":{"keywords":["national - id","resident identity","identity number","identification number","identity - card number","national identification number"],"use_recommended_keywords":true,"character_count":30}},"type":"sensitive_data_scanner_rule","relationships":{"standard_pattern":{"data":{"id":"4kEyzAP6fUEF83rWsEIZEx","type":"sensitive_data_scanner_standard_pattern"}},"group":{"data":{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"}}}},{"id":"1b4415eb-6e91-441a-b1bf-2a3cb7b9724b","attributes":{"name":"Chinese - Passport Scanner","namespaces":[],"excluded_namespaces":[],"text_replacement":{"type":"none"},"tags":["sensitive_data_category:pii","sensitive_data:chinese_passport"],"labels":["domain:pii","compliance:gdpr"],"is_enabled":true,"description":"Matches - a sequence of characters representing a Chinese passport number in a 9-character - format with 1 or 2 letters that can be D,DE,S,SE,G or E, and 7 or 8 digits.\n\nExamples - of matching formats:\n- `E01234567`\n- `G01234567`\n","priority":4,"included_keyword_configuration":{"keywords":["passport","travel - document"],"use_recommended_keywords":true,"character_count":30}},"type":"sensitive_data_scanner_rule","relationships":{"standard_pattern":{"data":{"id":"8Wld3kT1UyCfVGmO3Ok69R","type":"sensitive_data_scanner_standard_pattern"}},"group":{"data":{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"}}}},{"id":"442c7cc0-2843-46f3-aedf-a027bcf8a22b","attributes":{"name":"Chinese - Phone Number Scanner","namespaces":[],"excluded_namespaces":[],"text_replacement":{"type":"none"},"tags":["sensitive_data_category:pii","sensitive_data:chinese_phone_number"],"labels":["domain:pii","compliance:gdpr"],"is_enabled":true,"description":"Matches - a sequence of characters representing a Chinese phone number in a 11-character - format with the first digit being 1, the second digit being 3, 5, or 8, and - then exactly 9 additional digits.\n\nExamples of matching formats:\n- `18652313817`\n- - `+86 18552313817`\n","priority":4,"included_keyword_configuration":{"keywords":["mobile","phone","cell"],"use_recommended_keywords":true,"character_count":30}},"type":"sensitive_data_scanner_rule","relationships":{"standard_pattern":{"data":{"id":"V7sb5Px24c0n9yPwV72glH","type":"sensitive_data_scanner_standard_pattern"}},"group":{"data":{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"}}}},{"id":"dd7b34e8-c1d6-4ab0-bf4f-bb38809a1f43","attributes":{"name":"France - Social Security Number Scanner (INSEE/NIR)","namespaces":[],"excluded_namespaces":[],"text_replacement":{"type":"none"},"tags":["sensitive_data_category:pii","sensitive_data:france_nir"],"labels":["domain:pii","compliance:gdpr"],"is_enabled":true,"description":"Matches - a sequence of characters representing a France social security number (INSEE/NIR) - in a 9-digit format with optional delimiters after the 3rd and 5th digit. - Matches are validated via a checksum.\n\nExamples of matching formats:\n- - `1-51-02-46102-043-25`\n- `151024610204325`\n","priority":4,"included_keyword_configuration":{"keywords":["social - security","insee","nir"],"use_recommended_keywords":true,"character_count":30}},"type":"sensitive_data_scanner_rule","relationships":{"standard_pattern":{"data":{"id":"QiVm1XhY7GjzrSNrJ5IICB","type":"sensitive_data_scanner_standard_pattern"}},"group":{"data":{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"}}}},{"id":"145bbddb-c4ca-49d0-92dd-a7774ceb1eb4","attributes":{"name":"IPv4 - Address Scanner","namespaces":[],"excluded_namespaces":[],"text_replacement":{"type":"none"},"tags":["sensitive_data_category:ip_address","sensitive_data:ipv4_address"],"labels":["domain:network","compliance:gdpr","compliance:hipaa"],"is_enabled":true,"description":"Matches - a sequence of characters representing an IPv4 Address.\n\nExamples of matching - formats:\n- `127.0.0.1`\n- `172.16.254.1`\n","priority":4,"included_keyword_configuration":{"keywords":[],"use_recommended_keywords":true,"character_count":30}},"type":"sensitive_data_scanner_rule","relationships":{"standard_pattern":{"data":{"id":"aDA3jUjSSLOezHV2y-Rn_w","type":"sensitive_data_scanner_standard_pattern"}},"group":{"data":{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"}}}},{"id":"2b2a4801-4f97-49c0-b6a3-e06d2f808c13","attributes":{"name":"IPv6 - Address Scanner","namespaces":[],"excluded_namespaces":[],"text_replacement":{"type":"none"},"tags":["sensitive_data_category:ip_address","sensitive_data:ipv6_address"],"labels":["domain:network","compliance:gdpr","compliance:hipaa"],"is_enabled":true,"description":"Matches - a sequence of characters representing an IPv6 Address.\n\nExamples of matching - formats:\n- `2001:0db8:0000:0000:0000:ff00:0042:8329`\n- `0000:0000:0000:0000:0000:0000:0000:0001`\n","priority":4,"included_keyword_configuration":{"keywords":[],"use_recommended_keywords":true,"character_count":30}},"type":"sensitive_data_scanner_rule","relationships":{"standard_pattern":{"data":{"id":"s3sEZP5fSTGSPLPS853VeQ","type":"sensitive_data_scanner_standard_pattern"}},"group":{"data":{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"}}}},{"id":"175b62d2-fc94-4919-aa35-3d501849885c","attributes":{"name":"Standard - Email Address Scanner","namespaces":[],"excluded_namespaces":[],"text_replacement":{"type":"none"},"tags":["sensitive_data:email_address","sensitive_data_category:email_address"],"labels":["domain:pii","compliance:hipaa","compliance:gdpr"],"is_enabled":true,"description":"Matches - a sequence of characters representing standard email address using an official - top-level domain.\n\nExamples of matching formats:\n- `simple@example.com`\n- - `simple%40example.com`\n- `very.common@example.com`\n- `x@example.com`\n- - `long.email-address-with-hyphens@and.subdomains.example.com`\n- `user.name+tag+sorting@example.com`\n- - `name/surname@example.com`\n- `mailhost!username@example.org`\n- `user%example.com@example.org`\n- - `user-@example.org`\n","priority":4,"included_keyword_configuration":{"keywords":[],"use_recommended_keywords":true,"character_count":30}},"type":"sensitive_data_scanner_rule","relationships":{"standard_pattern":{"data":{"id":"PuXiVTCkTHOtj0Yad1ppsw","type":"sensitive_data_scanner_standard_pattern"}},"group":{"data":{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"}}}},{"id":"d75637b3-ef47-46a7-8f8f-1ce99134d827","attributes":{"name":"Standard - MAC Address Scanner","namespaces":[],"excluded_namespaces":[],"text_replacement":{"type":"none"},"tags":["sensitive_data:mac_address","sensitive_data_category:mac_address"],"labels":["domain:network","compliance:gdpr","compliance:hipaa"],"is_enabled":true,"description":"Matches - a sequence of characters representing a MAC address.\n\nExamples of matching - formats:\n- `FF:FF:FF:FF:FF:FF`\n- `FF-FF-FF-FF-FF-FF`\n","priority":4,"included_keyword_configuration":{"keywords":[],"use_recommended_keywords":true,"character_count":30}},"type":"sensitive_data_scanner_rule","relationships":{"standard_pattern":{"data":{"id":"uRLVpXXTRxmCg4M93hfLiA","type":"sensitive_data_scanner_standard_pattern"}},"group":{"data":{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"}}}},{"id":"6678e2b9-7b6d-4020-a6a1-e392d5d4e838","attributes":{"name":"UK - National Health Service Number Scanner","namespaces":[],"excluded_namespaces":[],"text_replacement":{"type":"none"},"tags":["sensitive_data_category:pii","sensitive_data:uk_nhs"],"labels":["compliance:gdpr","domain:pii"],"is_enabled":true,"description":"Matches - a sequence of characters representing a UK national health service number - (NHS) in a 10-digit format with optional space delimiters. Matches are validated - via a checksum.\n\nExamples of matching formats:\n- `National Health Number: - 907 784 4449`\n- `NHS: 1234567881`\n","priority":4,"included_keyword_configuration":{"keywords":["national - health number","nhs"],"use_recommended_keywords":true,"character_count":30}},"type":"sensitive_data_scanner_rule","relationships":{"standard_pattern":{"data":{"id":"rJ9DeXT0G7oESwbGWGMW82","type":"sensitive_data_scanner_standard_pattern"}},"group":{"data":{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"}}}},{"id":"6837bea8-0c0e-4ee7-bd6c-6371cbca52bb","attributes":{"name":"UK - National Insurance Number Scanner","namespaces":[],"excluded_namespaces":[],"text_replacement":{"type":"none"},"tags":["sensitive_data_category:pii","sensitive_data:uk_nin"],"labels":["domain:pii","compliance:gdpr"],"is_enabled":true,"description":"Matches - sequence of characters representing a UK National Insurance Number (NIN), - which is composed of two uppercase letters, six digits, and an optional uppercase - letter.\n\nExamples of matching formats:\n- `AB123456C`\n- `XY654321A`\n- - `GH987654`\n","priority":4,"included_keyword_configuration":{"keywords":["insurance","national","ni","nin"],"use_recommended_keywords":true,"character_count":30}},"type":"sensitive_data_scanner_rule","relationships":{"standard_pattern":{"data":{"id":"de0899e0cbaaa812bb624cf04c912071012f616d","type":"sensitive_data_scanner_standard_pattern"}},"group":{"data":{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"}}}},{"id":"f4fec54d-63c3-4151-8cc0-d925743124ff","attributes":{"name":"US - Individual Taxpayer Identification Number Scanner (ITIN)","namespaces":[],"excluded_namespaces":[],"text_replacement":{"type":"none"},"tags":["sensitive_data_category:pii","sensitive_data:us_itin"],"labels":["domain:pii","compliance:hipaa","compliance:gdpr"],"is_enabled":true,"description":"Matches - a sequence of characters representing a US ITIN number in a 9-digit format - with optional delimiters after the 3rd and 5th digit.\n\nExamples of matching - formats:\n- `927 70 5828`\n- `993-77 0690`\n","priority":4,"included_keyword_configuration":{"keywords":["i.t.i.n.","individual - taxpayer","itin"],"use_recommended_keywords":true,"character_count":30}},"type":"sensitive_data_scanner_rule","relationships":{"standard_pattern":{"data":{"id":"eC0YxRYEz27UOrfQ7sM3Bx","type":"sensitive_data_scanner_standard_pattern"}},"group":{"data":{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"}}}},{"id":"4724117a-668a-4a97-84e8-9f7d7cac0ab2","attributes":{"name":"US - Passport Scanner","namespaces":[],"excluded_namespaces":[],"text_replacement":{"type":"none"},"tags":["sensitive_data_category:pii","sensitive_data:passport_number"],"labels":["domain:pii","compliance:gdpr","compliance:hipaa"],"is_enabled":true,"description":"Matches - sequence of characters representing a US passport number, which is composed - 9 alphanumeric characters.\n\nExamples of matching formats:\n- `E00007734`\n- - `C03004786`\n","priority":4,"included_keyword_configuration":{"keywords":["passport","passport_"],"use_recommended_keywords":true,"character_count":30}},"type":"sensitive_data_scanner_rule","relationships":{"standard_pattern":{"data":{"id":"d962f7ddb3f55041e39195a60ff79d4814a7c331","type":"sensitive_data_scanner_standard_pattern"}},"group":{"data":{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"}}}},{"id":"70fbcc56-415b-42a2-96b0-53958f6024ba","attributes":{"name":"US - Social Security Number Scanner","namespaces":[],"excluded_namespaces":[],"text_replacement":{"type":"none"},"tags":["sensitive_data_category:pii","sensitive_data:us_ssn"],"labels":["domain:pii","compliance:hipaa","compliance:gdpr"],"is_enabled":true,"description":"Matches - a sequence of characters representing a US Social Security number in a 9-digit - format.\n\nExamples of matching formats:\n- `555-12-3456`\n- `456789012`\n","priority":4,"included_keyword_configuration":{"keywords":["ssn","social - security"],"use_recommended_keywords":true,"character_count":30}},"type":"sensitive_data_scanner_rule","relationships":{"standard_pattern":{"data":{"id":"PIIXqwUljp4BaqIHDBBLNn","type":"sensitive_data_scanner_standard_pattern"}},"group":{"data":{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"}}}},{"id":"0QvFjxASTxK2VgAIXOgGnQ","attributes":{"name":"my - group","is_enabled":true,"filter":{"query":"*"},"product_list":["logs"],"description":"","samplings":[]},"type":"sensitive_data_scanner_group","relationships":{"configuration":{"data":{"id":"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87","type":"sensitive_data_scanner_configuration"}},"rules":{"data":[{"id":"M4PLjvGWR7CMz6XlCjAadA","type":"sensitive_data_scanner_rule"}]}}},{"id":"M4PLjvGWR7CMz6XlCjAadA","attributes":{"name":"tf-TestAccDatadogSensitiveDataScannerRule_DefaultTags-local-1721743568","namespaces":[],"excluded_namespaces":["username"],"pattern":"regex","text_replacement":{"type":"none"},"tags":["sensitive_data:true","default_key:default_value"],"labels":[],"is_enabled":true,"description":"a - description"},"type":"sensitive_data_scanner_rule","relationships":{"group":{"data":{"id":"0QvFjxASTxK2VgAIXOgGnQ","type":"sensitive_data_scanner_group"}}}},{"id":"5a142739-d4a5-4d9e-bc20-a4fd77bb8db0","attributes":{"name":"Thibault - Terraform test","is_enabled":false,"filter":{"query":"service:my-service"},"product_list":["apm"],"description":"A - relevant description","samplings":[]},"type":"sensitive_data_scanner_group","relationships":{"configuration":{"data":{"id":"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87","type":"sensitive_data_scanner_configuration"}},"rules":{"data":[]}}}]} - - ' + string: '{"data":{"attributes":{},"id":"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87","relationships":{"groups":{"data":[]}},"type":"sensitive_data_scanner_configuration"},"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,"rule_count_limit":500,"version":278005}}' headers: content-type: - - application/json + - application/vnd.api+json status: code: 200 message: OK @@ -117,17 +26,15 @@ interactions: uri: https://api.datadoghq.com/api/v2/sensitive-data-scanner/config/groups response: body: - string: '{"data":{"id":"4eeaf9f0-4e3c-4850-9a5b-5a596ee634f7","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":274571}} - - ' + string: '{"data":{"id":"0558174c-d6af-4846-8954-35785f06837e","type":"sensitive_data_scanner_group","attributes":{"description":"","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":[]}}},"meta":{"version":278006}}' headers: content-type: - - application/json + - application/vnd.api+json status: - code: 200 - message: OK + code: 201 + message: Created - request: - body: '{"data":{"id":"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87","relationships":{"groups":{"data":[{"id":"Test-Reorder_Groups_returns_Bad_Request_response-1748625434","type":"sensitive_data_scanner_group"}]}},"type":"sensitive_data_scanner_configuration"},"meta":{}}' + body: '{"data":{"id":"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87","relationships":{"groups":{"data":[{"id":"Test-Reorder_Groups_returns_Bad_Request_response-1768828277","type":"sensitive_data_scanner_group"}]}},"type":"sensitive_data_scanner_configuration"},"meta":{}}' headers: accept: - application/json @@ -137,13 +44,11 @@ interactions: uri: https://api.datadoghq.com/api/v2/sensitive-data-scanner/config response: body: - string: '{"errors":["invalid_argument(Pipelines to reorder do not match current - pipelines)"]} - - ' + string: '{"errors":[{"status":"400","title":"Bad Request","detail":"invalid_argument(Scanning + group IDs to reorder do not match current group IDs)"}]}' headers: content-type: - - application/json + - application/vnd.api+json status: code: 400 message: Bad Request @@ -155,15 +60,13 @@ interactions: content-type: - application/json method: DELETE - uri: https://api.datadoghq.com/api/v2/sensitive-data-scanner/config/groups/4eeaf9f0-4e3c-4850-9a5b-5a596ee634f7 + uri: https://api.datadoghq.com/api/v2/sensitive-data-scanner/config/groups/0558174c-d6af-4846-8954-35785f06837e response: body: - string: '{"meta":{"version":274572}} - - ' + string: '{"meta":{"version":278007}}' headers: content-type: - - application/json + - application/vnd.api+json status: code: 200 message: OK diff --git a/tests/v2/cassettes/test_scenarios/test_reorder_groups_returns_ok_response.frozen b/tests/v2/cassettes/test_scenarios/test_reorder_groups_returns_ok_response.frozen index da1e86a21a..7740f686d7 100644 --- a/tests/v2/cassettes/test_scenarios/test_reorder_groups_returns_ok_response.frozen +++ b/tests/v2/cassettes/test_scenarios/test_reorder_groups_returns_ok_response.frozen @@ -1 +1 @@ -2025-06-02T15:33:38.909Z \ No newline at end of file +2026-01-19T13:11:19.414Z \ No newline at end of file diff --git a/tests/v2/cassettes/test_scenarios/test_reorder_groups_returns_ok_response.yaml b/tests/v2/cassettes/test_scenarios/test_reorder_groups_returns_ok_response.yaml index a7966252aa..e40ddf555f 100644 --- a/tests/v2/cassettes/test_scenarios/test_reorder_groups_returns_ok_response.yaml +++ b/tests/v2/cassettes/test_scenarios/test_reorder_groups_returns_ok_response.yaml @@ -8,12 +8,10 @@ interactions: uri: https://api.datadoghq.com/api/v2/sensitive-data-scanner/config response: body: - 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}} - - ' + string: '{"data":{"attributes":{},"id":"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87","relationships":{"groups":{"data":[]}},"type":"sensitive_data_scanner_configuration"},"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,"rule_count_limit":500,"version":278007}}' headers: content-type: - - application/json + - application/vnd.api+json status: code: 200 message: OK @@ -28,17 +26,31 @@ interactions: uri: https://api.datadoghq.com/api/v2/sensitive-data-scanner/config/groups response: body: - 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}} - - ' + string: '{"data":{"id":"a796feff-a0cc-4a9f-8c61-16c4d5e44964","type":"sensitive_data_scanner_group","attributes":{"description":"","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":[]}}},"meta":{"version":278008}}' headers: content-type: + - application/vnd.api+json + status: + code: 201 + message: Created +- request: + body: null + headers: + accept: - application/json + method: GET + uri: https://api.datadoghq.com/api/v2/sensitive-data-scanner/config + response: + body: + string: '{"data":{"attributes":{},"id":"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87","relationships":{"groups":{"data":[{"id":"a796feff-a0cc-4a9f-8c61-16c4d5e44964","type":"sensitive_data_scanner_group"}]}},"type":"sensitive_data_scanner_configuration"},"included":[{"attributes":{"description":"","filter":{"query":"*"},"is_enabled":false,"name":"my-test-group","product_list":["logs"],"samplings":[{"product":"logs","rate":100}]},"id":"a796feff-a0cc-4a9f-8c61-16c4d5e44964","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,"rule_count_limit":500,"version":278008}}' + headers: + content-type: + - application/vnd.api+json status: code: 200 message: OK - request: - body: '{"data":{"id":"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87","relationships":{"groups":{"data":[{"id":"24716cf9-9589-41fe-bc85-7df26a9483a9","type":"sensitive_data_scanner_group"}]}},"type":"sensitive_data_scanner_configuration"},"meta":{}}' + body: '{"data":{"id":"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87","relationships":{"groups":{"data":[{"id":"a796feff-a0cc-4a9f-8c61-16c4d5e44964","type":"sensitive_data_scanner_group"}]}},"type":"sensitive_data_scanner_configuration"},"meta":{}}' headers: accept: - application/json @@ -48,12 +60,10 @@ interactions: uri: https://api.datadoghq.com/api/v2/sensitive-data-scanner/config response: body: - 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}} - - ' + string: '{"meta":{"count_limit":500,"group_count_limit":20,"has_cascading_enabled":false,"has_highlight_enabled":true,"has_multi_pass_enabled":false,"is_configuration_superseded":false,"is_float_sampling_rate_enabled":false,"is_pci_compliant":false,"min_sampling_rate":0,"rule_count_limit":0,"version":278009}}' headers: content-type: - - application/json + - application/vnd.api+json status: code: 200 message: OK @@ -65,15 +75,13 @@ interactions: content-type: - application/json method: DELETE - uri: https://api.datadoghq.com/api/v2/sensitive-data-scanner/config/groups/24716cf9-9589-41fe-bc85-7df26a9483a9 + uri: https://api.datadoghq.com/api/v2/sensitive-data-scanner/config/groups/a796feff-a0cc-4a9f-8c61-16c4d5e44964 response: body: - string: '{"meta":{"version":274829}} - - ' + string: '{"meta":{"version":278010}}' headers: content-type: - - application/json + - application/vnd.api+json status: code: 200 message: OK diff --git a/tests/v2/cassettes/test_scenarios/test_update_scanning_group_returns_ok_response.frozen b/tests/v2/cassettes/test_scenarios/test_update_scanning_group_returns_ok_response.frozen index ae3e7c4c63..acb225bd52 100644 --- a/tests/v2/cassettes/test_scenarios/test_update_scanning_group_returns_ok_response.frozen +++ b/tests/v2/cassettes/test_scenarios/test_update_scanning_group_returns_ok_response.frozen @@ -1 +1 @@ -2025-05-30T17:17:15.446Z \ No newline at end of file +2026-01-19T13:11:21.712Z \ No newline at end of file diff --git a/tests/v2/cassettes/test_scenarios/test_update_scanning_group_returns_ok_response.yaml b/tests/v2/cassettes/test_scenarios/test_update_scanning_group_returns_ok_response.yaml index 21cfdb3497..2a49022ae3 100644 --- a/tests/v2/cassettes/test_scenarios/test_update_scanning_group_returns_ok_response.yaml +++ b/tests/v2/cassettes/test_scenarios/test_update_scanning_group_returns_ok_response.yaml @@ -8,101 +8,10 @@ interactions: uri: https://api.datadoghq.com/api/v2/sensitive-data-scanner/config response: body: - string: '{"data":{"id":"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87","attributes":{},"type":"sensitive_data_scanner_configuration","relationships":{"groups":{"data":[{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"},{"id":"0QvFjxASTxK2VgAIXOgGnQ","type":"sensitive_data_scanner_group"},{"id":"5a142739-d4a5-4d9e-bc20-a4fd77bb8db0","type":"sensitive_data_scanner_group"}]}}},"meta":{"version":274572,"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},"included":[{"id":"xdfyyx1FSzqEaNwOpqhsFw","attributes":{"name":"my-test-group","is_enabled":false,"filter":{"query":"*"},"product_list":["logs"],"samplings":[]},"type":"sensitive_data_scanner_group","relationships":{"configuration":{"data":{"id":"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87","type":"sensitive_data_scanner_configuration"}},"rules":{"data":[{"id":"5991e227-d611-4b56-afef-4992b5104755","type":"sensitive_data_scanner_rule"},{"id":"e28f1169-ba43-46ea-aa9e-a0f97a2fc830","type":"sensitive_data_scanner_rule"},{"id":"55318894-77ad-4b18-bc2d-562e388effe8","type":"sensitive_data_scanner_rule"},{"id":"7511ac78-b433-42e0-b291-eac394e1ae06","type":"sensitive_data_scanner_rule"},{"id":"47edb1c1-c841-48b0-bb84-9909485e1737","type":"sensitive_data_scanner_rule"},{"id":"1b4415eb-6e91-441a-b1bf-2a3cb7b9724b","type":"sensitive_data_scanner_rule"},{"id":"442c7cc0-2843-46f3-aedf-a027bcf8a22b","type":"sensitive_data_scanner_rule"},{"id":"dd7b34e8-c1d6-4ab0-bf4f-bb38809a1f43","type":"sensitive_data_scanner_rule"},{"id":"145bbddb-c4ca-49d0-92dd-a7774ceb1eb4","type":"sensitive_data_scanner_rule"},{"id":"2b2a4801-4f97-49c0-b6a3-e06d2f808c13","type":"sensitive_data_scanner_rule"},{"id":"175b62d2-fc94-4919-aa35-3d501849885c","type":"sensitive_data_scanner_rule"},{"id":"d75637b3-ef47-46a7-8f8f-1ce99134d827","type":"sensitive_data_scanner_rule"},{"id":"6678e2b9-7b6d-4020-a6a1-e392d5d4e838","type":"sensitive_data_scanner_rule"},{"id":"6837bea8-0c0e-4ee7-bd6c-6371cbca52bb","type":"sensitive_data_scanner_rule"},{"id":"f4fec54d-63c3-4151-8cc0-d925743124ff","type":"sensitive_data_scanner_rule"},{"id":"4724117a-668a-4a97-84e8-9f7d7cac0ab2","type":"sensitive_data_scanner_rule"},{"id":"70fbcc56-415b-42a2-96b0-53958f6024ba","type":"sensitive_data_scanner_rule"}]}}},{"id":"5991e227-d611-4b56-afef-4992b5104755","attributes":{"name":"HTTP - Basic Authentication Header Scanner","namespaces":[],"excluded_namespaces":[],"text_replacement":{"type":"none"},"tags":["sensitive_data_category:network_and_device_info","sensitive_data:basic_auth"],"labels":["domain:network","compliance:pci","compliance:gdpr","compliance:hipaa"],"is_enabled":true,"description":"Matches - the Authorization header of an HTTP request that uses the Basic authentication - scheme. It specifically looks for the Authorization keyword, followed by the - Basic keyword and a base64-encoded string.\n\nExamples of matching formats:\n- - `Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==`\n- `Authorization: Basic - Yml0c0FJOmhlbHAgbWU=`\n","priority":4,"included_keyword_configuration":{"keywords":[],"use_recommended_keywords":true,"character_count":30}},"type":"sensitive_data_scanner_rule","relationships":{"standard_pattern":{"data":{"id":"9d7756e343cefa22a5c098e1092590f806eb5446","type":"sensitive_data_scanner_standard_pattern"}},"group":{"data":{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"}}}},{"id":"e28f1169-ba43-46ea-aa9e-a0f97a2fc830","attributes":{"name":"HTTP - Cookie Scanner","namespaces":[],"excluded_namespaces":[],"text_replacement":{"type":"none"},"tags":["sensitive_data_category:network_and_device_info","sensitive_data:cookie"],"labels":["domain:network","compliance:pci","compliance:gdpr","compliance:hipaa"],"is_enabled":true,"description":"Matches - the Set-Cookie header of an HTTP response. It captures the cookie name-value - pairs and any optional attributes that are separated by semicolons.\n\nExamples - of matching formats:\n- `Set-Cookie: sessionid=123456; HttpOnly; Secure`\n- - `Set-Cookie: username=JohnDoe`\n","priority":4,"included_keyword_configuration":{"keywords":["cookie"],"use_recommended_keywords":true,"character_count":30}},"type":"sensitive_data_scanner_rule","relationships":{"standard_pattern":{"data":{"id":"34574e54c3e67a8a26d7070f331d83ae933d2730","type":"sensitive_data_scanner_standard_pattern"}},"group":{"data":{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"}}}},{"id":"55318894-77ad-4b18-bc2d-562e388effe8","attributes":{"name":"HTTP(S) - URL Scanner","namespaces":[],"excluded_namespaces":[],"text_replacement":{"type":"none"},"tags":["sensitive_data_category:url","sensitive_data:http_url"],"labels":["domain:network","compliance:pci","compliance:gdpr","compliance:hipaa"],"is_enabled":true,"description":"Matches - a sequence of characters representing a HTTP(S) URL.\n\nExamples of matching - formats:\n- `https://www.example.com/questions/3456/my-document?key1=value1&key2=value2`\n- - `http://example.com/%E5%BC%95%E3%81%8D%E5%89%B2%E3%82%8A.html`\n- `http://xn--fsqu00a.xn--3lr804guic/`\n","priority":4,"included_keyword_configuration":{"keywords":[],"use_recommended_keywords":true,"character_count":30}},"type":"sensitive_data_scanner_rule","relationships":{"standard_pattern":{"data":{"id":"aLQt_DX_T8S1MaWS82eoNQ","type":"sensitive_data_scanner_standard_pattern"}},"group":{"data":{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"}}}},{"id":"7511ac78-b433-42e0-b291-eac394e1ae06","attributes":{"name":"Canadian - Social Insurance Number Scanner","namespaces":[],"excluded_namespaces":[],"text_replacement":{"type":"none"},"tags":["sensitive_data_category:pii","sensitive_data:canadian_sin"],"labels":["domain:pii","compliance:gdpr"],"is_enabled":true,"description":"Matches - sequence of characters representing a Canadian Social Insurance Number (SIN), - which is composed of three digits separated by hyphens.\n\nExamples of matching - formats:\n- `123-456-789`\n- `456-789-123`\n","priority":4,"included_keyword_configuration":{"keywords":["canadian","canadian - insurance number","canadian social insurance","insurance number","number","sin","social","social - insurance"],"use_recommended_keywords":true,"character_count":30}},"type":"sensitive_data_scanner_rule","relationships":{"standard_pattern":{"data":{"id":"450239afc250a19799b6c03dc0e16fd6a4b2a1af","type":"sensitive_data_scanner_standard_pattern"}},"group":{"data":{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"}}}},{"id":"47edb1c1-c841-48b0-bb84-9909485e1737","attributes":{"name":"Chinese - Identity Card Number Scanner","namespaces":[],"excluded_namespaces":[],"text_replacement":{"type":"none"},"tags":["sensitive_data_category:pii","sensitive_data:chinese_id"],"labels":["domain:pii","compliance:gdpr"],"is_enabled":true,"description":"Matches - a sequence of characters representing a Chinese Identity Card Number format, - which consists of a single non-zero digit, followed by exactly 5 additional - digits, followed by a sequence of 7 to 18 digits. Matches are validated via - a checksum.\n\nExamples of matching formats:\n- `Chinese identity card number: - 320321197408094019`\n- `national id: 320321197408094019`\n","priority":4,"included_keyword_configuration":{"keywords":["national - id","resident identity","identity number","identification number","identity - card number","national identification number"],"use_recommended_keywords":true,"character_count":30}},"type":"sensitive_data_scanner_rule","relationships":{"standard_pattern":{"data":{"id":"4kEyzAP6fUEF83rWsEIZEx","type":"sensitive_data_scanner_standard_pattern"}},"group":{"data":{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"}}}},{"id":"1b4415eb-6e91-441a-b1bf-2a3cb7b9724b","attributes":{"name":"Chinese - Passport Scanner","namespaces":[],"excluded_namespaces":[],"text_replacement":{"type":"none"},"tags":["sensitive_data_category:pii","sensitive_data:chinese_passport"],"labels":["domain:pii","compliance:gdpr"],"is_enabled":true,"description":"Matches - a sequence of characters representing a Chinese passport number in a 9-character - format with 1 or 2 letters that can be D,DE,S,SE,G or E, and 7 or 8 digits.\n\nExamples - of matching formats:\n- `E01234567`\n- `G01234567`\n","priority":4,"included_keyword_configuration":{"keywords":["passport","travel - document"],"use_recommended_keywords":true,"character_count":30}},"type":"sensitive_data_scanner_rule","relationships":{"standard_pattern":{"data":{"id":"8Wld3kT1UyCfVGmO3Ok69R","type":"sensitive_data_scanner_standard_pattern"}},"group":{"data":{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"}}}},{"id":"442c7cc0-2843-46f3-aedf-a027bcf8a22b","attributes":{"name":"Chinese - Phone Number Scanner","namespaces":[],"excluded_namespaces":[],"text_replacement":{"type":"none"},"tags":["sensitive_data_category:pii","sensitive_data:chinese_phone_number"],"labels":["domain:pii","compliance:gdpr"],"is_enabled":true,"description":"Matches - a sequence of characters representing a Chinese phone number in a 11-character - format with the first digit being 1, the second digit being 3, 5, or 8, and - then exactly 9 additional digits.\n\nExamples of matching formats:\n- `18652313817`\n- - `+86 18552313817`\n","priority":4,"included_keyword_configuration":{"keywords":["mobile","phone","cell"],"use_recommended_keywords":true,"character_count":30}},"type":"sensitive_data_scanner_rule","relationships":{"standard_pattern":{"data":{"id":"V7sb5Px24c0n9yPwV72glH","type":"sensitive_data_scanner_standard_pattern"}},"group":{"data":{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"}}}},{"id":"dd7b34e8-c1d6-4ab0-bf4f-bb38809a1f43","attributes":{"name":"France - Social Security Number Scanner (INSEE/NIR)","namespaces":[],"excluded_namespaces":[],"text_replacement":{"type":"none"},"tags":["sensitive_data_category:pii","sensitive_data:france_nir"],"labels":["domain:pii","compliance:gdpr"],"is_enabled":true,"description":"Matches - a sequence of characters representing a France social security number (INSEE/NIR) - in a 9-digit format with optional delimiters after the 3rd and 5th digit. - Matches are validated via a checksum.\n\nExamples of matching formats:\n- - `1-51-02-46102-043-25`\n- `151024610204325`\n","priority":4,"included_keyword_configuration":{"keywords":["social - security","insee","nir"],"use_recommended_keywords":true,"character_count":30}},"type":"sensitive_data_scanner_rule","relationships":{"standard_pattern":{"data":{"id":"QiVm1XhY7GjzrSNrJ5IICB","type":"sensitive_data_scanner_standard_pattern"}},"group":{"data":{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"}}}},{"id":"145bbddb-c4ca-49d0-92dd-a7774ceb1eb4","attributes":{"name":"IPv4 - Address Scanner","namespaces":[],"excluded_namespaces":[],"text_replacement":{"type":"none"},"tags":["sensitive_data_category:ip_address","sensitive_data:ipv4_address"],"labels":["domain:network","compliance:gdpr","compliance:hipaa"],"is_enabled":true,"description":"Matches - a sequence of characters representing an IPv4 Address.\n\nExamples of matching - formats:\n- `127.0.0.1`\n- `172.16.254.1`\n","priority":4,"included_keyword_configuration":{"keywords":[],"use_recommended_keywords":true,"character_count":30}},"type":"sensitive_data_scanner_rule","relationships":{"standard_pattern":{"data":{"id":"aDA3jUjSSLOezHV2y-Rn_w","type":"sensitive_data_scanner_standard_pattern"}},"group":{"data":{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"}}}},{"id":"2b2a4801-4f97-49c0-b6a3-e06d2f808c13","attributes":{"name":"IPv6 - Address Scanner","namespaces":[],"excluded_namespaces":[],"text_replacement":{"type":"none"},"tags":["sensitive_data_category:ip_address","sensitive_data:ipv6_address"],"labels":["domain:network","compliance:gdpr","compliance:hipaa"],"is_enabled":true,"description":"Matches - a sequence of characters representing an IPv6 Address.\n\nExamples of matching - formats:\n- `2001:0db8:0000:0000:0000:ff00:0042:8329`\n- `0000:0000:0000:0000:0000:0000:0000:0001`\n","priority":4,"included_keyword_configuration":{"keywords":[],"use_recommended_keywords":true,"character_count":30}},"type":"sensitive_data_scanner_rule","relationships":{"standard_pattern":{"data":{"id":"s3sEZP5fSTGSPLPS853VeQ","type":"sensitive_data_scanner_standard_pattern"}},"group":{"data":{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"}}}},{"id":"175b62d2-fc94-4919-aa35-3d501849885c","attributes":{"name":"Standard - Email Address Scanner","namespaces":[],"excluded_namespaces":[],"text_replacement":{"type":"none"},"tags":["sensitive_data:email_address","sensitive_data_category:email_address"],"labels":["domain:pii","compliance:hipaa","compliance:gdpr"],"is_enabled":true,"description":"Matches - a sequence of characters representing standard email address using an official - top-level domain.\n\nExamples of matching formats:\n- `simple@example.com`\n- - `simple%40example.com`\n- `very.common@example.com`\n- `x@example.com`\n- - `long.email-address-with-hyphens@and.subdomains.example.com`\n- `user.name+tag+sorting@example.com`\n- - `name/surname@example.com`\n- `mailhost!username@example.org`\n- `user%example.com@example.org`\n- - `user-@example.org`\n","priority":4,"included_keyword_configuration":{"keywords":[],"use_recommended_keywords":true,"character_count":30}},"type":"sensitive_data_scanner_rule","relationships":{"standard_pattern":{"data":{"id":"PuXiVTCkTHOtj0Yad1ppsw","type":"sensitive_data_scanner_standard_pattern"}},"group":{"data":{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"}}}},{"id":"d75637b3-ef47-46a7-8f8f-1ce99134d827","attributes":{"name":"Standard - MAC Address Scanner","namespaces":[],"excluded_namespaces":[],"text_replacement":{"type":"none"},"tags":["sensitive_data:mac_address","sensitive_data_category:mac_address"],"labels":["domain:network","compliance:gdpr","compliance:hipaa"],"is_enabled":true,"description":"Matches - a sequence of characters representing a MAC address.\n\nExamples of matching - formats:\n- `FF:FF:FF:FF:FF:FF`\n- `FF-FF-FF-FF-FF-FF`\n","priority":4,"included_keyword_configuration":{"keywords":[],"use_recommended_keywords":true,"character_count":30}},"type":"sensitive_data_scanner_rule","relationships":{"standard_pattern":{"data":{"id":"uRLVpXXTRxmCg4M93hfLiA","type":"sensitive_data_scanner_standard_pattern"}},"group":{"data":{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"}}}},{"id":"6678e2b9-7b6d-4020-a6a1-e392d5d4e838","attributes":{"name":"UK - National Health Service Number Scanner","namespaces":[],"excluded_namespaces":[],"text_replacement":{"type":"none"},"tags":["sensitive_data_category:pii","sensitive_data:uk_nhs"],"labels":["compliance:gdpr","domain:pii"],"is_enabled":true,"description":"Matches - a sequence of characters representing a UK national health service number - (NHS) in a 10-digit format with optional space delimiters. Matches are validated - via a checksum.\n\nExamples of matching formats:\n- `National Health Number: - 907 784 4449`\n- `NHS: 1234567881`\n","priority":4,"included_keyword_configuration":{"keywords":["national - health number","nhs"],"use_recommended_keywords":true,"character_count":30}},"type":"sensitive_data_scanner_rule","relationships":{"standard_pattern":{"data":{"id":"rJ9DeXT0G7oESwbGWGMW82","type":"sensitive_data_scanner_standard_pattern"}},"group":{"data":{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"}}}},{"id":"6837bea8-0c0e-4ee7-bd6c-6371cbca52bb","attributes":{"name":"UK - National Insurance Number Scanner","namespaces":[],"excluded_namespaces":[],"text_replacement":{"type":"none"},"tags":["sensitive_data_category:pii","sensitive_data:uk_nin"],"labels":["domain:pii","compliance:gdpr"],"is_enabled":true,"description":"Matches - sequence of characters representing a UK National Insurance Number (NIN), - which is composed of two uppercase letters, six digits, and an optional uppercase - letter.\n\nExamples of matching formats:\n- `AB123456C`\n- `XY654321A`\n- - `GH987654`\n","priority":4,"included_keyword_configuration":{"keywords":["insurance","national","ni","nin"],"use_recommended_keywords":true,"character_count":30}},"type":"sensitive_data_scanner_rule","relationships":{"standard_pattern":{"data":{"id":"de0899e0cbaaa812bb624cf04c912071012f616d","type":"sensitive_data_scanner_standard_pattern"}},"group":{"data":{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"}}}},{"id":"f4fec54d-63c3-4151-8cc0-d925743124ff","attributes":{"name":"US - Individual Taxpayer Identification Number Scanner (ITIN)","namespaces":[],"excluded_namespaces":[],"text_replacement":{"type":"none"},"tags":["sensitive_data_category:pii","sensitive_data:us_itin"],"labels":["domain:pii","compliance:hipaa","compliance:gdpr"],"is_enabled":true,"description":"Matches - a sequence of characters representing a US ITIN number in a 9-digit format - with optional delimiters after the 3rd and 5th digit.\n\nExamples of matching - formats:\n- `927 70 5828`\n- `993-77 0690`\n","priority":4,"included_keyword_configuration":{"keywords":["i.t.i.n.","individual - taxpayer","itin"],"use_recommended_keywords":true,"character_count":30}},"type":"sensitive_data_scanner_rule","relationships":{"standard_pattern":{"data":{"id":"eC0YxRYEz27UOrfQ7sM3Bx","type":"sensitive_data_scanner_standard_pattern"}},"group":{"data":{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"}}}},{"id":"4724117a-668a-4a97-84e8-9f7d7cac0ab2","attributes":{"name":"US - Passport Scanner","namespaces":[],"excluded_namespaces":[],"text_replacement":{"type":"none"},"tags":["sensitive_data_category:pii","sensitive_data:passport_number"],"labels":["domain:pii","compliance:gdpr","compliance:hipaa"],"is_enabled":true,"description":"Matches - sequence of characters representing a US passport number, which is composed - 9 alphanumeric characters.\n\nExamples of matching formats:\n- `E00007734`\n- - `C03004786`\n","priority":4,"included_keyword_configuration":{"keywords":["passport","passport_"],"use_recommended_keywords":true,"character_count":30}},"type":"sensitive_data_scanner_rule","relationships":{"standard_pattern":{"data":{"id":"d962f7ddb3f55041e39195a60ff79d4814a7c331","type":"sensitive_data_scanner_standard_pattern"}},"group":{"data":{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"}}}},{"id":"70fbcc56-415b-42a2-96b0-53958f6024ba","attributes":{"name":"US - Social Security Number Scanner","namespaces":[],"excluded_namespaces":[],"text_replacement":{"type":"none"},"tags":["sensitive_data_category:pii","sensitive_data:us_ssn"],"labels":["domain:pii","compliance:hipaa","compliance:gdpr"],"is_enabled":true,"description":"Matches - a sequence of characters representing a US Social Security number in a 9-digit - format.\n\nExamples of matching formats:\n- `555-12-3456`\n- `456789012`\n","priority":4,"included_keyword_configuration":{"keywords":["ssn","social - security"],"use_recommended_keywords":true,"character_count":30}},"type":"sensitive_data_scanner_rule","relationships":{"standard_pattern":{"data":{"id":"PIIXqwUljp4BaqIHDBBLNn","type":"sensitive_data_scanner_standard_pattern"}},"group":{"data":{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"}}}},{"id":"0QvFjxASTxK2VgAIXOgGnQ","attributes":{"name":"my - group","is_enabled":true,"filter":{"query":"*"},"product_list":["logs"],"description":"","samplings":[]},"type":"sensitive_data_scanner_group","relationships":{"configuration":{"data":{"id":"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87","type":"sensitive_data_scanner_configuration"}},"rules":{"data":[{"id":"M4PLjvGWR7CMz6XlCjAadA","type":"sensitive_data_scanner_rule"}]}}},{"id":"M4PLjvGWR7CMz6XlCjAadA","attributes":{"name":"tf-TestAccDatadogSensitiveDataScannerRule_DefaultTags-local-1721743568","namespaces":[],"excluded_namespaces":["username"],"pattern":"regex","text_replacement":{"type":"none"},"tags":["sensitive_data:true","default_key:default_value"],"labels":[],"is_enabled":true,"description":"a - description"},"type":"sensitive_data_scanner_rule","relationships":{"group":{"data":{"id":"0QvFjxASTxK2VgAIXOgGnQ","type":"sensitive_data_scanner_group"}}}},{"id":"5a142739-d4a5-4d9e-bc20-a4fd77bb8db0","attributes":{"name":"Thibault - Terraform test","is_enabled":false,"filter":{"query":"service:my-service"},"product_list":["apm"],"description":"A - relevant description","samplings":[]},"type":"sensitive_data_scanner_group","relationships":{"configuration":{"data":{"id":"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87","type":"sensitive_data_scanner_configuration"}},"rules":{"data":[]}}}]} - - ' + string: '{"data":{"attributes":{},"id":"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87","relationships":{"groups":{"data":[]}},"type":"sensitive_data_scanner_configuration"},"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,"rule_count_limit":500,"version":278010}}' headers: content-type: - - application/json + - application/vnd.api+json status: code: 200 message: OK @@ -117,32 +26,28 @@ interactions: uri: https://api.datadoghq.com/api/v2/sensitive-data-scanner/config/groups response: body: - string: '{"data":{"id":"6274c155-446e-4cae-aae3-dd700ee02952","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":274573}} - - ' + string: '{"data":{"id":"1fd9bd81-fd37-4aeb-b194-fd8ba909850b","type":"sensitive_data_scanner_group","attributes":{"description":"","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":[]}}},"meta":{"version":278011}}' headers: content-type: - - application/json + - application/vnd.api+json status: - code: 200 - message: OK + code: 201 + message: Created - request: - body: '{"data":{"attributes":{"filter":{"query":"*"},"is_enabled":false,"name":"Test-Update_Scanning_Group_returns_OK_response-1748625435","product_list":["logs"]},"id":"6274c155-446e-4cae-aae3-dd700ee02952","relationships":{"configuration":{"data":{"id":"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87","type":"sensitive_data_scanner_configuration"}},"rules":{"data":[]}},"type":"sensitive_data_scanner_group"},"meta":{}}' + body: '{"data":{"attributes":{"filter":{"query":"*"},"is_enabled":false,"name":"Test-Update_Scanning_Group_returns_OK_response-1768828281","product_list":["logs"]},"id":"1fd9bd81-fd37-4aeb-b194-fd8ba909850b","relationships":{"configuration":{"data":{"id":"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87","type":"sensitive_data_scanner_configuration"}},"rules":{"data":[]}},"type":"sensitive_data_scanner_group"},"meta":{}}' headers: accept: - application/json content-type: - application/json method: PATCH - uri: https://api.datadoghq.com/api/v2/sensitive-data-scanner/config/groups/6274c155-446e-4cae-aae3-dd700ee02952 + uri: https://api.datadoghq.com/api/v2/sensitive-data-scanner/config/groups/1fd9bd81-fd37-4aeb-b194-fd8ba909850b response: body: - string: '{"meta":{"version":274574}} - - ' + string: '{"meta":{"version":278012}}' headers: content-type: - - application/json + - application/vnd.api+json status: code: 200 message: OK @@ -154,15 +59,13 @@ interactions: content-type: - application/json method: DELETE - uri: https://api.datadoghq.com/api/v2/sensitive-data-scanner/config/groups/6274c155-446e-4cae-aae3-dd700ee02952 + uri: https://api.datadoghq.com/api/v2/sensitive-data-scanner/config/groups/1fd9bd81-fd37-4aeb-b194-fd8ba909850b response: body: - string: '{"meta":{"version":274575}} - - ' + string: '{"meta":{"version":278013}}' headers: content-type: - - application/json + - application/vnd.api+json status: code: 200 message: OK diff --git a/tests/v2/cassettes/test_scenarios/test_update_scanning_rule_returns_bad_request_response.frozen b/tests/v2/cassettes/test_scenarios/test_update_scanning_rule_returns_bad_request_response.frozen index 0a240b3a21..1d88391dc5 100644 --- a/tests/v2/cassettes/test_scenarios/test_update_scanning_rule_returns_bad_request_response.frozen +++ b/tests/v2/cassettes/test_scenarios/test_update_scanning_rule_returns_bad_request_response.frozen @@ -1 +1 @@ -2025-05-30T17:17:16.805Z \ No newline at end of file +2026-01-19T13:11:23.526Z \ No newline at end of file diff --git a/tests/v2/cassettes/test_scenarios/test_update_scanning_rule_returns_bad_request_response.yaml b/tests/v2/cassettes/test_scenarios/test_update_scanning_rule_returns_bad_request_response.yaml index c489d5dbb4..c536009b14 100644 --- a/tests/v2/cassettes/test_scenarios/test_update_scanning_rule_returns_bad_request_response.yaml +++ b/tests/v2/cassettes/test_scenarios/test_update_scanning_rule_returns_bad_request_response.yaml @@ -8,101 +8,10 @@ interactions: uri: https://api.datadoghq.com/api/v2/sensitive-data-scanner/config response: body: - string: '{"data":{"id":"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87","attributes":{},"type":"sensitive_data_scanner_configuration","relationships":{"groups":{"data":[{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"},{"id":"0QvFjxASTxK2VgAIXOgGnQ","type":"sensitive_data_scanner_group"},{"id":"5a142739-d4a5-4d9e-bc20-a4fd77bb8db0","type":"sensitive_data_scanner_group"}]}}},"meta":{"version":274575,"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},"included":[{"id":"xdfyyx1FSzqEaNwOpqhsFw","attributes":{"name":"my-test-group","is_enabled":false,"filter":{"query":"*"},"product_list":["logs"],"samplings":[]},"type":"sensitive_data_scanner_group","relationships":{"configuration":{"data":{"id":"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87","type":"sensitive_data_scanner_configuration"}},"rules":{"data":[{"id":"5991e227-d611-4b56-afef-4992b5104755","type":"sensitive_data_scanner_rule"},{"id":"e28f1169-ba43-46ea-aa9e-a0f97a2fc830","type":"sensitive_data_scanner_rule"},{"id":"55318894-77ad-4b18-bc2d-562e388effe8","type":"sensitive_data_scanner_rule"},{"id":"7511ac78-b433-42e0-b291-eac394e1ae06","type":"sensitive_data_scanner_rule"},{"id":"47edb1c1-c841-48b0-bb84-9909485e1737","type":"sensitive_data_scanner_rule"},{"id":"1b4415eb-6e91-441a-b1bf-2a3cb7b9724b","type":"sensitive_data_scanner_rule"},{"id":"442c7cc0-2843-46f3-aedf-a027bcf8a22b","type":"sensitive_data_scanner_rule"},{"id":"dd7b34e8-c1d6-4ab0-bf4f-bb38809a1f43","type":"sensitive_data_scanner_rule"},{"id":"145bbddb-c4ca-49d0-92dd-a7774ceb1eb4","type":"sensitive_data_scanner_rule"},{"id":"2b2a4801-4f97-49c0-b6a3-e06d2f808c13","type":"sensitive_data_scanner_rule"},{"id":"175b62d2-fc94-4919-aa35-3d501849885c","type":"sensitive_data_scanner_rule"},{"id":"d75637b3-ef47-46a7-8f8f-1ce99134d827","type":"sensitive_data_scanner_rule"},{"id":"6678e2b9-7b6d-4020-a6a1-e392d5d4e838","type":"sensitive_data_scanner_rule"},{"id":"6837bea8-0c0e-4ee7-bd6c-6371cbca52bb","type":"sensitive_data_scanner_rule"},{"id":"f4fec54d-63c3-4151-8cc0-d925743124ff","type":"sensitive_data_scanner_rule"},{"id":"4724117a-668a-4a97-84e8-9f7d7cac0ab2","type":"sensitive_data_scanner_rule"},{"id":"70fbcc56-415b-42a2-96b0-53958f6024ba","type":"sensitive_data_scanner_rule"}]}}},{"id":"5991e227-d611-4b56-afef-4992b5104755","attributes":{"name":"HTTP - Basic Authentication Header Scanner","namespaces":[],"excluded_namespaces":[],"text_replacement":{"type":"none"},"tags":["sensitive_data_category:network_and_device_info","sensitive_data:basic_auth"],"labels":["domain:network","compliance:pci","compliance:gdpr","compliance:hipaa"],"is_enabled":true,"description":"Matches - the Authorization header of an HTTP request that uses the Basic authentication - scheme. It specifically looks for the Authorization keyword, followed by the - Basic keyword and a base64-encoded string.\n\nExamples of matching formats:\n- - `Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==`\n- `Authorization: Basic - Yml0c0FJOmhlbHAgbWU=`\n","priority":4,"included_keyword_configuration":{"keywords":[],"use_recommended_keywords":true,"character_count":30}},"type":"sensitive_data_scanner_rule","relationships":{"standard_pattern":{"data":{"id":"9d7756e343cefa22a5c098e1092590f806eb5446","type":"sensitive_data_scanner_standard_pattern"}},"group":{"data":{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"}}}},{"id":"e28f1169-ba43-46ea-aa9e-a0f97a2fc830","attributes":{"name":"HTTP - Cookie Scanner","namespaces":[],"excluded_namespaces":[],"text_replacement":{"type":"none"},"tags":["sensitive_data_category:network_and_device_info","sensitive_data:cookie"],"labels":["domain:network","compliance:pci","compliance:gdpr","compliance:hipaa"],"is_enabled":true,"description":"Matches - the Set-Cookie header of an HTTP response. It captures the cookie name-value - pairs and any optional attributes that are separated by semicolons.\n\nExamples - of matching formats:\n- `Set-Cookie: sessionid=123456; HttpOnly; Secure`\n- - `Set-Cookie: username=JohnDoe`\n","priority":4,"included_keyword_configuration":{"keywords":["cookie"],"use_recommended_keywords":true,"character_count":30}},"type":"sensitive_data_scanner_rule","relationships":{"standard_pattern":{"data":{"id":"34574e54c3e67a8a26d7070f331d83ae933d2730","type":"sensitive_data_scanner_standard_pattern"}},"group":{"data":{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"}}}},{"id":"55318894-77ad-4b18-bc2d-562e388effe8","attributes":{"name":"HTTP(S) - URL Scanner","namespaces":[],"excluded_namespaces":[],"text_replacement":{"type":"none"},"tags":["sensitive_data_category:url","sensitive_data:http_url"],"labels":["domain:network","compliance:pci","compliance:gdpr","compliance:hipaa"],"is_enabled":true,"description":"Matches - a sequence of characters representing a HTTP(S) URL.\n\nExamples of matching - formats:\n- `https://www.example.com/questions/3456/my-document?key1=value1&key2=value2`\n- - `http://example.com/%E5%BC%95%E3%81%8D%E5%89%B2%E3%82%8A.html`\n- `http://xn--fsqu00a.xn--3lr804guic/`\n","priority":4,"included_keyword_configuration":{"keywords":[],"use_recommended_keywords":true,"character_count":30}},"type":"sensitive_data_scanner_rule","relationships":{"standard_pattern":{"data":{"id":"aLQt_DX_T8S1MaWS82eoNQ","type":"sensitive_data_scanner_standard_pattern"}},"group":{"data":{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"}}}},{"id":"7511ac78-b433-42e0-b291-eac394e1ae06","attributes":{"name":"Canadian - Social Insurance Number Scanner","namespaces":[],"excluded_namespaces":[],"text_replacement":{"type":"none"},"tags":["sensitive_data_category:pii","sensitive_data:canadian_sin"],"labels":["domain:pii","compliance:gdpr"],"is_enabled":true,"description":"Matches - sequence of characters representing a Canadian Social Insurance Number (SIN), - which is composed of three digits separated by hyphens.\n\nExamples of matching - formats:\n- `123-456-789`\n- `456-789-123`\n","priority":4,"included_keyword_configuration":{"keywords":["canadian","canadian - insurance number","canadian social insurance","insurance number","number","sin","social","social - insurance"],"use_recommended_keywords":true,"character_count":30}},"type":"sensitive_data_scanner_rule","relationships":{"standard_pattern":{"data":{"id":"450239afc250a19799b6c03dc0e16fd6a4b2a1af","type":"sensitive_data_scanner_standard_pattern"}},"group":{"data":{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"}}}},{"id":"47edb1c1-c841-48b0-bb84-9909485e1737","attributes":{"name":"Chinese - Identity Card Number Scanner","namespaces":[],"excluded_namespaces":[],"text_replacement":{"type":"none"},"tags":["sensitive_data_category:pii","sensitive_data:chinese_id"],"labels":["domain:pii","compliance:gdpr"],"is_enabled":true,"description":"Matches - a sequence of characters representing a Chinese Identity Card Number format, - which consists of a single non-zero digit, followed by exactly 5 additional - digits, followed by a sequence of 7 to 18 digits. Matches are validated via - a checksum.\n\nExamples of matching formats:\n- `Chinese identity card number: - 320321197408094019`\n- `national id: 320321197408094019`\n","priority":4,"included_keyword_configuration":{"keywords":["national - id","resident identity","identity number","identification number","identity - card number","national identification number"],"use_recommended_keywords":true,"character_count":30}},"type":"sensitive_data_scanner_rule","relationships":{"standard_pattern":{"data":{"id":"4kEyzAP6fUEF83rWsEIZEx","type":"sensitive_data_scanner_standard_pattern"}},"group":{"data":{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"}}}},{"id":"1b4415eb-6e91-441a-b1bf-2a3cb7b9724b","attributes":{"name":"Chinese - Passport Scanner","namespaces":[],"excluded_namespaces":[],"text_replacement":{"type":"none"},"tags":["sensitive_data_category:pii","sensitive_data:chinese_passport"],"labels":["domain:pii","compliance:gdpr"],"is_enabled":true,"description":"Matches - a sequence of characters representing a Chinese passport number in a 9-character - format with 1 or 2 letters that can be D,DE,S,SE,G or E, and 7 or 8 digits.\n\nExamples - of matching formats:\n- `E01234567`\n- `G01234567`\n","priority":4,"included_keyword_configuration":{"keywords":["passport","travel - document"],"use_recommended_keywords":true,"character_count":30}},"type":"sensitive_data_scanner_rule","relationships":{"standard_pattern":{"data":{"id":"8Wld3kT1UyCfVGmO3Ok69R","type":"sensitive_data_scanner_standard_pattern"}},"group":{"data":{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"}}}},{"id":"442c7cc0-2843-46f3-aedf-a027bcf8a22b","attributes":{"name":"Chinese - Phone Number Scanner","namespaces":[],"excluded_namespaces":[],"text_replacement":{"type":"none"},"tags":["sensitive_data_category:pii","sensitive_data:chinese_phone_number"],"labels":["domain:pii","compliance:gdpr"],"is_enabled":true,"description":"Matches - a sequence of characters representing a Chinese phone number in a 11-character - format with the first digit being 1, the second digit being 3, 5, or 8, and - then exactly 9 additional digits.\n\nExamples of matching formats:\n- `18652313817`\n- - `+86 18552313817`\n","priority":4,"included_keyword_configuration":{"keywords":["mobile","phone","cell"],"use_recommended_keywords":true,"character_count":30}},"type":"sensitive_data_scanner_rule","relationships":{"standard_pattern":{"data":{"id":"V7sb5Px24c0n9yPwV72glH","type":"sensitive_data_scanner_standard_pattern"}},"group":{"data":{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"}}}},{"id":"dd7b34e8-c1d6-4ab0-bf4f-bb38809a1f43","attributes":{"name":"France - Social Security Number Scanner (INSEE/NIR)","namespaces":[],"excluded_namespaces":[],"text_replacement":{"type":"none"},"tags":["sensitive_data_category:pii","sensitive_data:france_nir"],"labels":["domain:pii","compliance:gdpr"],"is_enabled":true,"description":"Matches - a sequence of characters representing a France social security number (INSEE/NIR) - in a 9-digit format with optional delimiters after the 3rd and 5th digit. - Matches are validated via a checksum.\n\nExamples of matching formats:\n- - `1-51-02-46102-043-25`\n- `151024610204325`\n","priority":4,"included_keyword_configuration":{"keywords":["social - security","insee","nir"],"use_recommended_keywords":true,"character_count":30}},"type":"sensitive_data_scanner_rule","relationships":{"standard_pattern":{"data":{"id":"QiVm1XhY7GjzrSNrJ5IICB","type":"sensitive_data_scanner_standard_pattern"}},"group":{"data":{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"}}}},{"id":"145bbddb-c4ca-49d0-92dd-a7774ceb1eb4","attributes":{"name":"IPv4 - Address Scanner","namespaces":[],"excluded_namespaces":[],"text_replacement":{"type":"none"},"tags":["sensitive_data_category:ip_address","sensitive_data:ipv4_address"],"labels":["domain:network","compliance:gdpr","compliance:hipaa"],"is_enabled":true,"description":"Matches - a sequence of characters representing an IPv4 Address.\n\nExamples of matching - formats:\n- `127.0.0.1`\n- `172.16.254.1`\n","priority":4,"included_keyword_configuration":{"keywords":[],"use_recommended_keywords":true,"character_count":30}},"type":"sensitive_data_scanner_rule","relationships":{"standard_pattern":{"data":{"id":"aDA3jUjSSLOezHV2y-Rn_w","type":"sensitive_data_scanner_standard_pattern"}},"group":{"data":{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"}}}},{"id":"2b2a4801-4f97-49c0-b6a3-e06d2f808c13","attributes":{"name":"IPv6 - Address Scanner","namespaces":[],"excluded_namespaces":[],"text_replacement":{"type":"none"},"tags":["sensitive_data_category:ip_address","sensitive_data:ipv6_address"],"labels":["domain:network","compliance:gdpr","compliance:hipaa"],"is_enabled":true,"description":"Matches - a sequence of characters representing an IPv6 Address.\n\nExamples of matching - formats:\n- `2001:0db8:0000:0000:0000:ff00:0042:8329`\n- `0000:0000:0000:0000:0000:0000:0000:0001`\n","priority":4,"included_keyword_configuration":{"keywords":[],"use_recommended_keywords":true,"character_count":30}},"type":"sensitive_data_scanner_rule","relationships":{"standard_pattern":{"data":{"id":"s3sEZP5fSTGSPLPS853VeQ","type":"sensitive_data_scanner_standard_pattern"}},"group":{"data":{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"}}}},{"id":"175b62d2-fc94-4919-aa35-3d501849885c","attributes":{"name":"Standard - Email Address Scanner","namespaces":[],"excluded_namespaces":[],"text_replacement":{"type":"none"},"tags":["sensitive_data:email_address","sensitive_data_category:email_address"],"labels":["domain:pii","compliance:hipaa","compliance:gdpr"],"is_enabled":true,"description":"Matches - a sequence of characters representing standard email address using an official - top-level domain.\n\nExamples of matching formats:\n- `simple@example.com`\n- - `simple%40example.com`\n- `very.common@example.com`\n- `x@example.com`\n- - `long.email-address-with-hyphens@and.subdomains.example.com`\n- `user.name+tag+sorting@example.com`\n- - `name/surname@example.com`\n- `mailhost!username@example.org`\n- `user%example.com@example.org`\n- - `user-@example.org`\n","priority":4,"included_keyword_configuration":{"keywords":[],"use_recommended_keywords":true,"character_count":30}},"type":"sensitive_data_scanner_rule","relationships":{"standard_pattern":{"data":{"id":"PuXiVTCkTHOtj0Yad1ppsw","type":"sensitive_data_scanner_standard_pattern"}},"group":{"data":{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"}}}},{"id":"d75637b3-ef47-46a7-8f8f-1ce99134d827","attributes":{"name":"Standard - MAC Address Scanner","namespaces":[],"excluded_namespaces":[],"text_replacement":{"type":"none"},"tags":["sensitive_data:mac_address","sensitive_data_category:mac_address"],"labels":["domain:network","compliance:gdpr","compliance:hipaa"],"is_enabled":true,"description":"Matches - a sequence of characters representing a MAC address.\n\nExamples of matching - formats:\n- `FF:FF:FF:FF:FF:FF`\n- `FF-FF-FF-FF-FF-FF`\n","priority":4,"included_keyword_configuration":{"keywords":[],"use_recommended_keywords":true,"character_count":30}},"type":"sensitive_data_scanner_rule","relationships":{"standard_pattern":{"data":{"id":"uRLVpXXTRxmCg4M93hfLiA","type":"sensitive_data_scanner_standard_pattern"}},"group":{"data":{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"}}}},{"id":"6678e2b9-7b6d-4020-a6a1-e392d5d4e838","attributes":{"name":"UK - National Health Service Number Scanner","namespaces":[],"excluded_namespaces":[],"text_replacement":{"type":"none"},"tags":["sensitive_data_category:pii","sensitive_data:uk_nhs"],"labels":["compliance:gdpr","domain:pii"],"is_enabled":true,"description":"Matches - a sequence of characters representing a UK national health service number - (NHS) in a 10-digit format with optional space delimiters. Matches are validated - via a checksum.\n\nExamples of matching formats:\n- `National Health Number: - 907 784 4449`\n- `NHS: 1234567881`\n","priority":4,"included_keyword_configuration":{"keywords":["national - health number","nhs"],"use_recommended_keywords":true,"character_count":30}},"type":"sensitive_data_scanner_rule","relationships":{"standard_pattern":{"data":{"id":"rJ9DeXT0G7oESwbGWGMW82","type":"sensitive_data_scanner_standard_pattern"}},"group":{"data":{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"}}}},{"id":"6837bea8-0c0e-4ee7-bd6c-6371cbca52bb","attributes":{"name":"UK - National Insurance Number Scanner","namespaces":[],"excluded_namespaces":[],"text_replacement":{"type":"none"},"tags":["sensitive_data_category:pii","sensitive_data:uk_nin"],"labels":["domain:pii","compliance:gdpr"],"is_enabled":true,"description":"Matches - sequence of characters representing a UK National Insurance Number (NIN), - which is composed of two uppercase letters, six digits, and an optional uppercase - letter.\n\nExamples of matching formats:\n- `AB123456C`\n- `XY654321A`\n- - `GH987654`\n","priority":4,"included_keyword_configuration":{"keywords":["insurance","national","ni","nin"],"use_recommended_keywords":true,"character_count":30}},"type":"sensitive_data_scanner_rule","relationships":{"standard_pattern":{"data":{"id":"de0899e0cbaaa812bb624cf04c912071012f616d","type":"sensitive_data_scanner_standard_pattern"}},"group":{"data":{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"}}}},{"id":"f4fec54d-63c3-4151-8cc0-d925743124ff","attributes":{"name":"US - Individual Taxpayer Identification Number Scanner (ITIN)","namespaces":[],"excluded_namespaces":[],"text_replacement":{"type":"none"},"tags":["sensitive_data_category:pii","sensitive_data:us_itin"],"labels":["domain:pii","compliance:hipaa","compliance:gdpr"],"is_enabled":true,"description":"Matches - a sequence of characters representing a US ITIN number in a 9-digit format - with optional delimiters after the 3rd and 5th digit.\n\nExamples of matching - formats:\n- `927 70 5828`\n- `993-77 0690`\n","priority":4,"included_keyword_configuration":{"keywords":["i.t.i.n.","individual - taxpayer","itin"],"use_recommended_keywords":true,"character_count":30}},"type":"sensitive_data_scanner_rule","relationships":{"standard_pattern":{"data":{"id":"eC0YxRYEz27UOrfQ7sM3Bx","type":"sensitive_data_scanner_standard_pattern"}},"group":{"data":{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"}}}},{"id":"4724117a-668a-4a97-84e8-9f7d7cac0ab2","attributes":{"name":"US - Passport Scanner","namespaces":[],"excluded_namespaces":[],"text_replacement":{"type":"none"},"tags":["sensitive_data_category:pii","sensitive_data:passport_number"],"labels":["domain:pii","compliance:gdpr","compliance:hipaa"],"is_enabled":true,"description":"Matches - sequence of characters representing a US passport number, which is composed - 9 alphanumeric characters.\n\nExamples of matching formats:\n- `E00007734`\n- - `C03004786`\n","priority":4,"included_keyword_configuration":{"keywords":["passport","passport_"],"use_recommended_keywords":true,"character_count":30}},"type":"sensitive_data_scanner_rule","relationships":{"standard_pattern":{"data":{"id":"d962f7ddb3f55041e39195a60ff79d4814a7c331","type":"sensitive_data_scanner_standard_pattern"}},"group":{"data":{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"}}}},{"id":"70fbcc56-415b-42a2-96b0-53958f6024ba","attributes":{"name":"US - Social Security Number Scanner","namespaces":[],"excluded_namespaces":[],"text_replacement":{"type":"none"},"tags":["sensitive_data_category:pii","sensitive_data:us_ssn"],"labels":["domain:pii","compliance:hipaa","compliance:gdpr"],"is_enabled":true,"description":"Matches - a sequence of characters representing a US Social Security number in a 9-digit - format.\n\nExamples of matching formats:\n- `555-12-3456`\n- `456789012`\n","priority":4,"included_keyword_configuration":{"keywords":["ssn","social - security"],"use_recommended_keywords":true,"character_count":30}},"type":"sensitive_data_scanner_rule","relationships":{"standard_pattern":{"data":{"id":"PIIXqwUljp4BaqIHDBBLNn","type":"sensitive_data_scanner_standard_pattern"}},"group":{"data":{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"}}}},{"id":"0QvFjxASTxK2VgAIXOgGnQ","attributes":{"name":"my - group","is_enabled":true,"filter":{"query":"*"},"product_list":["logs"],"description":"","samplings":[]},"type":"sensitive_data_scanner_group","relationships":{"configuration":{"data":{"id":"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87","type":"sensitive_data_scanner_configuration"}},"rules":{"data":[{"id":"M4PLjvGWR7CMz6XlCjAadA","type":"sensitive_data_scanner_rule"}]}}},{"id":"M4PLjvGWR7CMz6XlCjAadA","attributes":{"name":"tf-TestAccDatadogSensitiveDataScannerRule_DefaultTags-local-1721743568","namespaces":[],"excluded_namespaces":["username"],"pattern":"regex","text_replacement":{"type":"none"},"tags":["sensitive_data:true","default_key:default_value"],"labels":[],"is_enabled":true,"description":"a - description"},"type":"sensitive_data_scanner_rule","relationships":{"group":{"data":{"id":"0QvFjxASTxK2VgAIXOgGnQ","type":"sensitive_data_scanner_group"}}}},{"id":"5a142739-d4a5-4d9e-bc20-a4fd77bb8db0","attributes":{"name":"Thibault - Terraform test","is_enabled":false,"filter":{"query":"service:my-service"},"product_list":["apm"],"description":"A - relevant description","samplings":[]},"type":"sensitive_data_scanner_group","relationships":{"configuration":{"data":{"id":"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87","type":"sensitive_data_scanner_configuration"}},"rules":{"data":[]}}}]} - - ' + string: '{"data":{"attributes":{},"id":"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87","relationships":{"groups":{"data":[]}},"type":"sensitive_data_scanner_configuration"},"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,"rule_count_limit":500,"version":278013}}' headers: content-type: - - application/json + - application/vnd.api+json status: code: 200 message: OK @@ -117,17 +26,15 @@ interactions: uri: https://api.datadoghq.com/api/v2/sensitive-data-scanner/config/groups response: body: - string: '{"data":{"id":"b2dd122b-89cf-489d-af76-f896a34ba958","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":274576}} - - ' + string: '{"data":{"id":"87305833-8ff5-46ee-a5ff-53706a123088","type":"sensitive_data_scanner_group","attributes":{"description":"","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":[]}}},"meta":{"version":278014}}' headers: content-type: - - application/json + - application/vnd.api+json status: - code: 200 - message: OK + code: 201 + message: Created - request: - body: '{"data":{"attributes":{"is_enabled":true,"name":"Test-Update_Scanning_Rule_returns_Bad_Request_response-1748625436","namespaces":["admin.email"],"pattern":"pattern","tags":["sensitive_data:true"],"text_replacement":{"type":"none"}},"relationships":{"group":{"data":{"id":"b2dd122b-89cf-489d-af76-f896a34ba958","type":"sensitive_data_scanner_group"}}},"type":"sensitive_data_scanner_rule"},"meta":{}}' + body: '{"data":{"attributes":{"is_enabled":true,"name":"Test-Update_Scanning_Rule_returns_Bad_Request_response-1768828283","namespaces":["admin.email"],"pattern":"pattern","tags":["sensitive_data:true"],"text_replacement":{"type":"none"}},"relationships":{"group":{"data":{"id":"87305833-8ff5-46ee-a5ff-53706a123088","type":"sensitive_data_scanner_group"}}},"type":"sensitive_data_scanner_rule"},"meta":{}}' headers: accept: - application/json @@ -137,33 +44,29 @@ interactions: uri: https://api.datadoghq.com/api/v2/sensitive-data-scanner/config/rules response: body: - string: '{"data":{"id":"a2e1ebb2-65a9-4c80-83dd-729e0112de33","attributes":{"name":"Test-Update_Scanning_Rule_returns_Bad_Request_response-1748625436","namespaces":["admin.email"],"excluded_namespaces":[],"pattern":"pattern","text_replacement":{"type":"none"},"tags":["sensitive_data:true"],"labels":[],"is_enabled":true},"type":"sensitive_data_scanner_rule","relationships":{"group":{"data":{"id":"b2dd122b-89cf-489d-af76-f896a34ba958","type":"sensitive_data_scanner_group"}}}},"meta":{"version":274577}} - - ' + string: '{"data":{"id":"d66bec9f-9df8-4142-b437-86d372e52bab","type":"sensitive_data_scanner_rule","attributes":{"excluded_namespaces":[],"is_enabled":true,"labels":[],"name":"Test-Update_Scanning_Rule_returns_Bad_Request_response-1768828283","namespaces":["admin.email"],"pattern":"pattern","tags":["sensitive_data:true"],"text_replacement":{"type":"none"}},"relationships":{"group":{"data":{"id":"87305833-8ff5-46ee-a5ff-53706a123088","type":"sensitive_data_scanner_group"}}}},"meta":{"version":278015}}' headers: content-type: - - application/json + - application/vnd.api+json status: - code: 200 - message: OK + code: 201 + message: Created - request: - body: '{"data":{"attributes":{"is_enabled":true,"name":"Test-Update_Scanning_Rule_returns_Bad_Request_response-1748625436","pattern":"pattern","tags":["sensitive_data:true"],"text_replacement":{"type":"none"}},"relationships":{"group":{"data":{"id":"b2dd122b-89cf-489d-af76-f896a34ba958","type":"sensitive_data_scanner_group"}}},"type":"sensitive_data_scanner_rule"},"meta":{}}' + body: '{"data":{"attributes":{"is_enabled":true,"name":"Test-Update_Scanning_Rule_returns_Bad_Request_response-1768828283","pattern":"pattern","tags":["sensitive_data:true"],"text_replacement":{"type":"none"}},"relationships":{"group":{"data":{"id":"87305833-8ff5-46ee-a5ff-53706a123088","type":"sensitive_data_scanner_group"}}}},"meta":{}}' headers: accept: - application/json content-type: - application/json method: PATCH - uri: https://api.datadoghq.com/api/v2/sensitive-data-scanner/config/rules/a2e1ebb2-65a9-4c80-83dd-729e0112de33 + uri: https://api.datadoghq.com/api/v2/sensitive-data-scanner/config/rules/d66bec9f-9df8-4142-b437-86d372e52bab response: body: - string: '{"errors":["input_validation_error(Field ''data.id'' is invalid: field - ''data.id'' is required)"]} - - ' + string: '{"errors":[{"status":"400","title":"Bad Request","detail":"got type + \"\" expected one of \"sensitive_data_scanner_rule\""}]}' headers: content-type: - - application/json + - application/vnd.api+json status: code: 400 message: Bad Request @@ -175,15 +78,13 @@ interactions: content-type: - application/json method: DELETE - uri: https://api.datadoghq.com/api/v2/sensitive-data-scanner/config/rules/a2e1ebb2-65a9-4c80-83dd-729e0112de33 + uri: https://api.datadoghq.com/api/v2/sensitive-data-scanner/config/rules/d66bec9f-9df8-4142-b437-86d372e52bab response: body: - string: '{"meta":{"version":274578}} - - ' + string: '{"meta":{"version":278016}}' headers: content-type: - - application/json + - application/vnd.api+json status: code: 200 message: OK @@ -195,15 +96,13 @@ interactions: content-type: - application/json method: DELETE - uri: https://api.datadoghq.com/api/v2/sensitive-data-scanner/config/groups/b2dd122b-89cf-489d-af76-f896a34ba958 + uri: https://api.datadoghq.com/api/v2/sensitive-data-scanner/config/groups/87305833-8ff5-46ee-a5ff-53706a123088 response: body: - string: '{"meta":{"version":274579}} - - ' + string: '{"meta":{"version":278017}}' headers: content-type: - - application/json + - application/vnd.api+json status: code: 200 message: OK diff --git a/tests/v2/cassettes/test_scenarios/test_update_scanning_rule_returns_ok_response.frozen b/tests/v2/cassettes/test_scenarios/test_update_scanning_rule_returns_ok_response.frozen index 330ab22eeb..8842dc3c7f 100644 --- a/tests/v2/cassettes/test_scenarios/test_update_scanning_rule_returns_ok_response.frozen +++ b/tests/v2/cassettes/test_scenarios/test_update_scanning_rule_returns_ok_response.frozen @@ -1 +1 @@ -2025-05-30T17:17:18.819Z \ No newline at end of file +2026-01-19T13:11:26.353Z \ No newline at end of file diff --git a/tests/v2/cassettes/test_scenarios/test_update_scanning_rule_returns_ok_response.yaml b/tests/v2/cassettes/test_scenarios/test_update_scanning_rule_returns_ok_response.yaml index 3cf50b1e84..29cfc596c2 100644 --- a/tests/v2/cassettes/test_scenarios/test_update_scanning_rule_returns_ok_response.yaml +++ b/tests/v2/cassettes/test_scenarios/test_update_scanning_rule_returns_ok_response.yaml @@ -8,101 +8,10 @@ interactions: uri: https://api.datadoghq.com/api/v2/sensitive-data-scanner/config response: body: - string: '{"data":{"id":"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87","attributes":{},"type":"sensitive_data_scanner_configuration","relationships":{"groups":{"data":[{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"},{"id":"0QvFjxASTxK2VgAIXOgGnQ","type":"sensitive_data_scanner_group"},{"id":"5a142739-d4a5-4d9e-bc20-a4fd77bb8db0","type":"sensitive_data_scanner_group"}]}}},"meta":{"version":274579,"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},"included":[{"id":"xdfyyx1FSzqEaNwOpqhsFw","attributes":{"name":"my-test-group","is_enabled":false,"filter":{"query":"*"},"product_list":["logs"],"samplings":[]},"type":"sensitive_data_scanner_group","relationships":{"configuration":{"data":{"id":"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87","type":"sensitive_data_scanner_configuration"}},"rules":{"data":[{"id":"5991e227-d611-4b56-afef-4992b5104755","type":"sensitive_data_scanner_rule"},{"id":"e28f1169-ba43-46ea-aa9e-a0f97a2fc830","type":"sensitive_data_scanner_rule"},{"id":"55318894-77ad-4b18-bc2d-562e388effe8","type":"sensitive_data_scanner_rule"},{"id":"7511ac78-b433-42e0-b291-eac394e1ae06","type":"sensitive_data_scanner_rule"},{"id":"47edb1c1-c841-48b0-bb84-9909485e1737","type":"sensitive_data_scanner_rule"},{"id":"1b4415eb-6e91-441a-b1bf-2a3cb7b9724b","type":"sensitive_data_scanner_rule"},{"id":"442c7cc0-2843-46f3-aedf-a027bcf8a22b","type":"sensitive_data_scanner_rule"},{"id":"dd7b34e8-c1d6-4ab0-bf4f-bb38809a1f43","type":"sensitive_data_scanner_rule"},{"id":"145bbddb-c4ca-49d0-92dd-a7774ceb1eb4","type":"sensitive_data_scanner_rule"},{"id":"2b2a4801-4f97-49c0-b6a3-e06d2f808c13","type":"sensitive_data_scanner_rule"},{"id":"175b62d2-fc94-4919-aa35-3d501849885c","type":"sensitive_data_scanner_rule"},{"id":"d75637b3-ef47-46a7-8f8f-1ce99134d827","type":"sensitive_data_scanner_rule"},{"id":"6678e2b9-7b6d-4020-a6a1-e392d5d4e838","type":"sensitive_data_scanner_rule"},{"id":"6837bea8-0c0e-4ee7-bd6c-6371cbca52bb","type":"sensitive_data_scanner_rule"},{"id":"f4fec54d-63c3-4151-8cc0-d925743124ff","type":"sensitive_data_scanner_rule"},{"id":"4724117a-668a-4a97-84e8-9f7d7cac0ab2","type":"sensitive_data_scanner_rule"},{"id":"70fbcc56-415b-42a2-96b0-53958f6024ba","type":"sensitive_data_scanner_rule"}]}}},{"id":"5991e227-d611-4b56-afef-4992b5104755","attributes":{"name":"HTTP - Basic Authentication Header Scanner","namespaces":[],"excluded_namespaces":[],"text_replacement":{"type":"none"},"tags":["sensitive_data_category:network_and_device_info","sensitive_data:basic_auth"],"labels":["domain:network","compliance:pci","compliance:gdpr","compliance:hipaa"],"is_enabled":true,"description":"Matches - the Authorization header of an HTTP request that uses the Basic authentication - scheme. It specifically looks for the Authorization keyword, followed by the - Basic keyword and a base64-encoded string.\n\nExamples of matching formats:\n- - `Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==`\n- `Authorization: Basic - Yml0c0FJOmhlbHAgbWU=`\n","priority":4,"included_keyword_configuration":{"keywords":[],"use_recommended_keywords":true,"character_count":30}},"type":"sensitive_data_scanner_rule","relationships":{"standard_pattern":{"data":{"id":"9d7756e343cefa22a5c098e1092590f806eb5446","type":"sensitive_data_scanner_standard_pattern"}},"group":{"data":{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"}}}},{"id":"e28f1169-ba43-46ea-aa9e-a0f97a2fc830","attributes":{"name":"HTTP - Cookie Scanner","namespaces":[],"excluded_namespaces":[],"text_replacement":{"type":"none"},"tags":["sensitive_data_category:network_and_device_info","sensitive_data:cookie"],"labels":["domain:network","compliance:pci","compliance:gdpr","compliance:hipaa"],"is_enabled":true,"description":"Matches - the Set-Cookie header of an HTTP response. It captures the cookie name-value - pairs and any optional attributes that are separated by semicolons.\n\nExamples - of matching formats:\n- `Set-Cookie: sessionid=123456; HttpOnly; Secure`\n- - `Set-Cookie: username=JohnDoe`\n","priority":4,"included_keyword_configuration":{"keywords":["cookie"],"use_recommended_keywords":true,"character_count":30}},"type":"sensitive_data_scanner_rule","relationships":{"standard_pattern":{"data":{"id":"34574e54c3e67a8a26d7070f331d83ae933d2730","type":"sensitive_data_scanner_standard_pattern"}},"group":{"data":{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"}}}},{"id":"55318894-77ad-4b18-bc2d-562e388effe8","attributes":{"name":"HTTP(S) - URL Scanner","namespaces":[],"excluded_namespaces":[],"text_replacement":{"type":"none"},"tags":["sensitive_data_category:url","sensitive_data:http_url"],"labels":["domain:network","compliance:pci","compliance:gdpr","compliance:hipaa"],"is_enabled":true,"description":"Matches - a sequence of characters representing a HTTP(S) URL.\n\nExamples of matching - formats:\n- `https://www.example.com/questions/3456/my-document?key1=value1&key2=value2`\n- - `http://example.com/%E5%BC%95%E3%81%8D%E5%89%B2%E3%82%8A.html`\n- `http://xn--fsqu00a.xn--3lr804guic/`\n","priority":4,"included_keyword_configuration":{"keywords":[],"use_recommended_keywords":true,"character_count":30}},"type":"sensitive_data_scanner_rule","relationships":{"standard_pattern":{"data":{"id":"aLQt_DX_T8S1MaWS82eoNQ","type":"sensitive_data_scanner_standard_pattern"}},"group":{"data":{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"}}}},{"id":"7511ac78-b433-42e0-b291-eac394e1ae06","attributes":{"name":"Canadian - Social Insurance Number Scanner","namespaces":[],"excluded_namespaces":[],"text_replacement":{"type":"none"},"tags":["sensitive_data_category:pii","sensitive_data:canadian_sin"],"labels":["domain:pii","compliance:gdpr"],"is_enabled":true,"description":"Matches - sequence of characters representing a Canadian Social Insurance Number (SIN), - which is composed of three digits separated by hyphens.\n\nExamples of matching - formats:\n- `123-456-789`\n- `456-789-123`\n","priority":4,"included_keyword_configuration":{"keywords":["canadian","canadian - insurance number","canadian social insurance","insurance number","number","sin","social","social - insurance"],"use_recommended_keywords":true,"character_count":30}},"type":"sensitive_data_scanner_rule","relationships":{"standard_pattern":{"data":{"id":"450239afc250a19799b6c03dc0e16fd6a4b2a1af","type":"sensitive_data_scanner_standard_pattern"}},"group":{"data":{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"}}}},{"id":"47edb1c1-c841-48b0-bb84-9909485e1737","attributes":{"name":"Chinese - Identity Card Number Scanner","namespaces":[],"excluded_namespaces":[],"text_replacement":{"type":"none"},"tags":["sensitive_data_category:pii","sensitive_data:chinese_id"],"labels":["domain:pii","compliance:gdpr"],"is_enabled":true,"description":"Matches - a sequence of characters representing a Chinese Identity Card Number format, - which consists of a single non-zero digit, followed by exactly 5 additional - digits, followed by a sequence of 7 to 18 digits. Matches are validated via - a checksum.\n\nExamples of matching formats:\n- `Chinese identity card number: - 320321197408094019`\n- `national id: 320321197408094019`\n","priority":4,"included_keyword_configuration":{"keywords":["national - id","resident identity","identity number","identification number","identity - card number","national identification number"],"use_recommended_keywords":true,"character_count":30}},"type":"sensitive_data_scanner_rule","relationships":{"standard_pattern":{"data":{"id":"4kEyzAP6fUEF83rWsEIZEx","type":"sensitive_data_scanner_standard_pattern"}},"group":{"data":{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"}}}},{"id":"1b4415eb-6e91-441a-b1bf-2a3cb7b9724b","attributes":{"name":"Chinese - Passport Scanner","namespaces":[],"excluded_namespaces":[],"text_replacement":{"type":"none"},"tags":["sensitive_data_category:pii","sensitive_data:chinese_passport"],"labels":["domain:pii","compliance:gdpr"],"is_enabled":true,"description":"Matches - a sequence of characters representing a Chinese passport number in a 9-character - format with 1 or 2 letters that can be D,DE,S,SE,G or E, and 7 or 8 digits.\n\nExamples - of matching formats:\n- `E01234567`\n- `G01234567`\n","priority":4,"included_keyword_configuration":{"keywords":["passport","travel - document"],"use_recommended_keywords":true,"character_count":30}},"type":"sensitive_data_scanner_rule","relationships":{"standard_pattern":{"data":{"id":"8Wld3kT1UyCfVGmO3Ok69R","type":"sensitive_data_scanner_standard_pattern"}},"group":{"data":{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"}}}},{"id":"442c7cc0-2843-46f3-aedf-a027bcf8a22b","attributes":{"name":"Chinese - Phone Number Scanner","namespaces":[],"excluded_namespaces":[],"text_replacement":{"type":"none"},"tags":["sensitive_data_category:pii","sensitive_data:chinese_phone_number"],"labels":["domain:pii","compliance:gdpr"],"is_enabled":true,"description":"Matches - a sequence of characters representing a Chinese phone number in a 11-character - format with the first digit being 1, the second digit being 3, 5, or 8, and - then exactly 9 additional digits.\n\nExamples of matching formats:\n- `18652313817`\n- - `+86 18552313817`\n","priority":4,"included_keyword_configuration":{"keywords":["mobile","phone","cell"],"use_recommended_keywords":true,"character_count":30}},"type":"sensitive_data_scanner_rule","relationships":{"standard_pattern":{"data":{"id":"V7sb5Px24c0n9yPwV72glH","type":"sensitive_data_scanner_standard_pattern"}},"group":{"data":{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"}}}},{"id":"dd7b34e8-c1d6-4ab0-bf4f-bb38809a1f43","attributes":{"name":"France - Social Security Number Scanner (INSEE/NIR)","namespaces":[],"excluded_namespaces":[],"text_replacement":{"type":"none"},"tags":["sensitive_data_category:pii","sensitive_data:france_nir"],"labels":["domain:pii","compliance:gdpr"],"is_enabled":true,"description":"Matches - a sequence of characters representing a France social security number (INSEE/NIR) - in a 9-digit format with optional delimiters after the 3rd and 5th digit. - Matches are validated via a checksum.\n\nExamples of matching formats:\n- - `1-51-02-46102-043-25`\n- `151024610204325`\n","priority":4,"included_keyword_configuration":{"keywords":["social - security","insee","nir"],"use_recommended_keywords":true,"character_count":30}},"type":"sensitive_data_scanner_rule","relationships":{"standard_pattern":{"data":{"id":"QiVm1XhY7GjzrSNrJ5IICB","type":"sensitive_data_scanner_standard_pattern"}},"group":{"data":{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"}}}},{"id":"145bbddb-c4ca-49d0-92dd-a7774ceb1eb4","attributes":{"name":"IPv4 - Address Scanner","namespaces":[],"excluded_namespaces":[],"text_replacement":{"type":"none"},"tags":["sensitive_data_category:ip_address","sensitive_data:ipv4_address"],"labels":["domain:network","compliance:gdpr","compliance:hipaa"],"is_enabled":true,"description":"Matches - a sequence of characters representing an IPv4 Address.\n\nExamples of matching - formats:\n- `127.0.0.1`\n- `172.16.254.1`\n","priority":4,"included_keyword_configuration":{"keywords":[],"use_recommended_keywords":true,"character_count":30}},"type":"sensitive_data_scanner_rule","relationships":{"standard_pattern":{"data":{"id":"aDA3jUjSSLOezHV2y-Rn_w","type":"sensitive_data_scanner_standard_pattern"}},"group":{"data":{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"}}}},{"id":"2b2a4801-4f97-49c0-b6a3-e06d2f808c13","attributes":{"name":"IPv6 - Address Scanner","namespaces":[],"excluded_namespaces":[],"text_replacement":{"type":"none"},"tags":["sensitive_data_category:ip_address","sensitive_data:ipv6_address"],"labels":["domain:network","compliance:gdpr","compliance:hipaa"],"is_enabled":true,"description":"Matches - a sequence of characters representing an IPv6 Address.\n\nExamples of matching - formats:\n- `2001:0db8:0000:0000:0000:ff00:0042:8329`\n- `0000:0000:0000:0000:0000:0000:0000:0001`\n","priority":4,"included_keyword_configuration":{"keywords":[],"use_recommended_keywords":true,"character_count":30}},"type":"sensitive_data_scanner_rule","relationships":{"standard_pattern":{"data":{"id":"s3sEZP5fSTGSPLPS853VeQ","type":"sensitive_data_scanner_standard_pattern"}},"group":{"data":{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"}}}},{"id":"175b62d2-fc94-4919-aa35-3d501849885c","attributes":{"name":"Standard - Email Address Scanner","namespaces":[],"excluded_namespaces":[],"text_replacement":{"type":"none"},"tags":["sensitive_data:email_address","sensitive_data_category:email_address"],"labels":["domain:pii","compliance:hipaa","compliance:gdpr"],"is_enabled":true,"description":"Matches - a sequence of characters representing standard email address using an official - top-level domain.\n\nExamples of matching formats:\n- `simple@example.com`\n- - `simple%40example.com`\n- `very.common@example.com`\n- `x@example.com`\n- - `long.email-address-with-hyphens@and.subdomains.example.com`\n- `user.name+tag+sorting@example.com`\n- - `name/surname@example.com`\n- `mailhost!username@example.org`\n- `user%example.com@example.org`\n- - `user-@example.org`\n","priority":4,"included_keyword_configuration":{"keywords":[],"use_recommended_keywords":true,"character_count":30}},"type":"sensitive_data_scanner_rule","relationships":{"standard_pattern":{"data":{"id":"PuXiVTCkTHOtj0Yad1ppsw","type":"sensitive_data_scanner_standard_pattern"}},"group":{"data":{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"}}}},{"id":"d75637b3-ef47-46a7-8f8f-1ce99134d827","attributes":{"name":"Standard - MAC Address Scanner","namespaces":[],"excluded_namespaces":[],"text_replacement":{"type":"none"},"tags":["sensitive_data:mac_address","sensitive_data_category:mac_address"],"labels":["domain:network","compliance:gdpr","compliance:hipaa"],"is_enabled":true,"description":"Matches - a sequence of characters representing a MAC address.\n\nExamples of matching - formats:\n- `FF:FF:FF:FF:FF:FF`\n- `FF-FF-FF-FF-FF-FF`\n","priority":4,"included_keyword_configuration":{"keywords":[],"use_recommended_keywords":true,"character_count":30}},"type":"sensitive_data_scanner_rule","relationships":{"standard_pattern":{"data":{"id":"uRLVpXXTRxmCg4M93hfLiA","type":"sensitive_data_scanner_standard_pattern"}},"group":{"data":{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"}}}},{"id":"6678e2b9-7b6d-4020-a6a1-e392d5d4e838","attributes":{"name":"UK - National Health Service Number Scanner","namespaces":[],"excluded_namespaces":[],"text_replacement":{"type":"none"},"tags":["sensitive_data_category:pii","sensitive_data:uk_nhs"],"labels":["compliance:gdpr","domain:pii"],"is_enabled":true,"description":"Matches - a sequence of characters representing a UK national health service number - (NHS) in a 10-digit format with optional space delimiters. Matches are validated - via a checksum.\n\nExamples of matching formats:\n- `National Health Number: - 907 784 4449`\n- `NHS: 1234567881`\n","priority":4,"included_keyword_configuration":{"keywords":["national - health number","nhs"],"use_recommended_keywords":true,"character_count":30}},"type":"sensitive_data_scanner_rule","relationships":{"standard_pattern":{"data":{"id":"rJ9DeXT0G7oESwbGWGMW82","type":"sensitive_data_scanner_standard_pattern"}},"group":{"data":{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"}}}},{"id":"6837bea8-0c0e-4ee7-bd6c-6371cbca52bb","attributes":{"name":"UK - National Insurance Number Scanner","namespaces":[],"excluded_namespaces":[],"text_replacement":{"type":"none"},"tags":["sensitive_data_category:pii","sensitive_data:uk_nin"],"labels":["domain:pii","compliance:gdpr"],"is_enabled":true,"description":"Matches - sequence of characters representing a UK National Insurance Number (NIN), - which is composed of two uppercase letters, six digits, and an optional uppercase - letter.\n\nExamples of matching formats:\n- `AB123456C`\n- `XY654321A`\n- - `GH987654`\n","priority":4,"included_keyword_configuration":{"keywords":["insurance","national","ni","nin"],"use_recommended_keywords":true,"character_count":30}},"type":"sensitive_data_scanner_rule","relationships":{"standard_pattern":{"data":{"id":"de0899e0cbaaa812bb624cf04c912071012f616d","type":"sensitive_data_scanner_standard_pattern"}},"group":{"data":{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"}}}},{"id":"f4fec54d-63c3-4151-8cc0-d925743124ff","attributes":{"name":"US - Individual Taxpayer Identification Number Scanner (ITIN)","namespaces":[],"excluded_namespaces":[],"text_replacement":{"type":"none"},"tags":["sensitive_data_category:pii","sensitive_data:us_itin"],"labels":["domain:pii","compliance:hipaa","compliance:gdpr"],"is_enabled":true,"description":"Matches - a sequence of characters representing a US ITIN number in a 9-digit format - with optional delimiters after the 3rd and 5th digit.\n\nExamples of matching - formats:\n- `927 70 5828`\n- `993-77 0690`\n","priority":4,"included_keyword_configuration":{"keywords":["i.t.i.n.","individual - taxpayer","itin"],"use_recommended_keywords":true,"character_count":30}},"type":"sensitive_data_scanner_rule","relationships":{"standard_pattern":{"data":{"id":"eC0YxRYEz27UOrfQ7sM3Bx","type":"sensitive_data_scanner_standard_pattern"}},"group":{"data":{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"}}}},{"id":"4724117a-668a-4a97-84e8-9f7d7cac0ab2","attributes":{"name":"US - Passport Scanner","namespaces":[],"excluded_namespaces":[],"text_replacement":{"type":"none"},"tags":["sensitive_data_category:pii","sensitive_data:passport_number"],"labels":["domain:pii","compliance:gdpr","compliance:hipaa"],"is_enabled":true,"description":"Matches - sequence of characters representing a US passport number, which is composed - 9 alphanumeric characters.\n\nExamples of matching formats:\n- `E00007734`\n- - `C03004786`\n","priority":4,"included_keyword_configuration":{"keywords":["passport","passport_"],"use_recommended_keywords":true,"character_count":30}},"type":"sensitive_data_scanner_rule","relationships":{"standard_pattern":{"data":{"id":"d962f7ddb3f55041e39195a60ff79d4814a7c331","type":"sensitive_data_scanner_standard_pattern"}},"group":{"data":{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"}}}},{"id":"70fbcc56-415b-42a2-96b0-53958f6024ba","attributes":{"name":"US - Social Security Number Scanner","namespaces":[],"excluded_namespaces":[],"text_replacement":{"type":"none"},"tags":["sensitive_data_category:pii","sensitive_data:us_ssn"],"labels":["domain:pii","compliance:hipaa","compliance:gdpr"],"is_enabled":true,"description":"Matches - a sequence of characters representing a US Social Security number in a 9-digit - format.\n\nExamples of matching formats:\n- `555-12-3456`\n- `456789012`\n","priority":4,"included_keyword_configuration":{"keywords":["ssn","social - security"],"use_recommended_keywords":true,"character_count":30}},"type":"sensitive_data_scanner_rule","relationships":{"standard_pattern":{"data":{"id":"PIIXqwUljp4BaqIHDBBLNn","type":"sensitive_data_scanner_standard_pattern"}},"group":{"data":{"id":"xdfyyx1FSzqEaNwOpqhsFw","type":"sensitive_data_scanner_group"}}}},{"id":"0QvFjxASTxK2VgAIXOgGnQ","attributes":{"name":"my - group","is_enabled":true,"filter":{"query":"*"},"product_list":["logs"],"description":"","samplings":[]},"type":"sensitive_data_scanner_group","relationships":{"configuration":{"data":{"id":"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87","type":"sensitive_data_scanner_configuration"}},"rules":{"data":[{"id":"M4PLjvGWR7CMz6XlCjAadA","type":"sensitive_data_scanner_rule"}]}}},{"id":"M4PLjvGWR7CMz6XlCjAadA","attributes":{"name":"tf-TestAccDatadogSensitiveDataScannerRule_DefaultTags-local-1721743568","namespaces":[],"excluded_namespaces":["username"],"pattern":"regex","text_replacement":{"type":"none"},"tags":["sensitive_data:true","default_key:default_value"],"labels":[],"is_enabled":true,"description":"a - description"},"type":"sensitive_data_scanner_rule","relationships":{"group":{"data":{"id":"0QvFjxASTxK2VgAIXOgGnQ","type":"sensitive_data_scanner_group"}}}},{"id":"5a142739-d4a5-4d9e-bc20-a4fd77bb8db0","attributes":{"name":"Thibault - Terraform test","is_enabled":false,"filter":{"query":"service:my-service"},"product_list":["apm"],"description":"A - relevant description","samplings":[]},"type":"sensitive_data_scanner_group","relationships":{"configuration":{"data":{"id":"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87","type":"sensitive_data_scanner_configuration"}},"rules":{"data":[]}}}]} - - ' + string: '{"data":{"attributes":{},"id":"7957915c634d4dcb581fa154157f5ad9c2947f50be632fb5599862069f4d2d87","relationships":{"groups":{"data":[]}},"type":"sensitive_data_scanner_configuration"},"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,"rule_count_limit":500,"version":278017}}' headers: content-type: - - application/json + - application/vnd.api+json status: code: 200 message: OK @@ -117,17 +26,15 @@ interactions: uri: https://api.datadoghq.com/api/v2/sensitive-data-scanner/config/groups response: body: - string: '{"data":{"id":"db67c3ee-db9b-417c-8d62-f2c6fc0f1c4b","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":274580}} - - ' + string: '{"data":{"id":"3ad08396-bb28-49b6-bb0b-3743eec0b822","type":"sensitive_data_scanner_group","attributes":{"description":"","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":[]}}},"meta":{"version":278018}}' headers: content-type: - - application/json + - application/vnd.api+json status: - code: 200 - message: OK + code: 201 + message: Created - request: - body: '{"data":{"attributes":{"is_enabled":true,"name":"Test-Update_Scanning_Rule_returns_OK_response-1748625438","namespaces":["admin.email"],"pattern":"pattern","tags":["sensitive_data:true"],"text_replacement":{"type":"none"}},"relationships":{"group":{"data":{"id":"db67c3ee-db9b-417c-8d62-f2c6fc0f1c4b","type":"sensitive_data_scanner_group"}}},"type":"sensitive_data_scanner_rule"},"meta":{}}' + body: '{"data":{"attributes":{"is_enabled":true,"name":"Test-Update_Scanning_Rule_returns_OK_response-1768828286","namespaces":["admin.email"],"pattern":"pattern","tags":["sensitive_data:true"],"text_replacement":{"type":"none"}},"relationships":{"group":{"data":{"id":"3ad08396-bb28-49b6-bb0b-3743eec0b822","type":"sensitive_data_scanner_group"}}},"type":"sensitive_data_scanner_rule"},"meta":{}}' headers: accept: - application/json @@ -137,33 +44,29 @@ interactions: uri: https://api.datadoghq.com/api/v2/sensitive-data-scanner/config/rules response: body: - string: '{"data":{"id":"16dbce89-9c13-4924-a4ff-b5d6e1b3ce20","attributes":{"name":"Test-Update_Scanning_Rule_returns_OK_response-1748625438","namespaces":["admin.email"],"excluded_namespaces":[],"pattern":"pattern","text_replacement":{"type":"none"},"tags":["sensitive_data:true"],"labels":[],"is_enabled":true},"type":"sensitive_data_scanner_rule","relationships":{"group":{"data":{"id":"db67c3ee-db9b-417c-8d62-f2c6fc0f1c4b","type":"sensitive_data_scanner_group"}}}},"meta":{"version":274581}} - - ' + string: '{"data":{"id":"ab1051c8-0c7a-4974-b994-4f850b8f0306","type":"sensitive_data_scanner_rule","attributes":{"excluded_namespaces":[],"is_enabled":true,"labels":[],"name":"Test-Update_Scanning_Rule_returns_OK_response-1768828286","namespaces":["admin.email"],"pattern":"pattern","tags":["sensitive_data:true"],"text_replacement":{"type":"none"}},"relationships":{"group":{"data":{"id":"3ad08396-bb28-49b6-bb0b-3743eec0b822","type":"sensitive_data_scanner_group"}}}},"meta":{"version":278019}}' headers: content-type: - - application/json + - application/vnd.api+json status: - code: 200 - message: OK + code: 201 + message: Created - request: body: '{"data":{"attributes":{"included_keyword_configuration":{"character_count":35,"keywords":["credit - card","cc"]},"is_enabled":true,"name":"Test-Update_Scanning_Rule_returns_OK_response-1748625438","pattern":"pattern","priority":5,"tags":["sensitive_data:true"],"text_replacement":{"type":"none"}},"id":"16dbce89-9c13-4924-a4ff-b5d6e1b3ce20","type":"sensitive_data_scanner_rule"},"meta":{}}' + card","cc"]},"is_enabled":true,"name":"Test-Update_Scanning_Rule_returns_OK_response-1768828286","pattern":"pattern","priority":5,"tags":["sensitive_data:true"],"text_replacement":{"type":"none"}},"id":"ab1051c8-0c7a-4974-b994-4f850b8f0306","type":"sensitive_data_scanner_rule"},"meta":{}}' headers: accept: - application/json content-type: - application/json method: PATCH - uri: https://api.datadoghq.com/api/v2/sensitive-data-scanner/config/rules/16dbce89-9c13-4924-a4ff-b5d6e1b3ce20 + uri: https://api.datadoghq.com/api/v2/sensitive-data-scanner/config/rules/ab1051c8-0c7a-4974-b994-4f850b8f0306 response: body: - string: '{"meta":{"version":274582}} - - ' + string: '{"meta":{"version":278020}}' headers: content-type: - - application/json + - application/vnd.api+json status: code: 200 message: OK @@ -175,15 +78,13 @@ interactions: content-type: - application/json method: DELETE - uri: https://api.datadoghq.com/api/v2/sensitive-data-scanner/config/rules/16dbce89-9c13-4924-a4ff-b5d6e1b3ce20 + uri: https://api.datadoghq.com/api/v2/sensitive-data-scanner/config/rules/ab1051c8-0c7a-4974-b994-4f850b8f0306 response: body: - string: '{"meta":{"version":274583}} - - ' + string: '{"meta":{"version":278021}}' headers: content-type: - - application/json + - application/vnd.api+json status: code: 200 message: OK @@ -195,15 +96,13 @@ interactions: content-type: - application/json method: DELETE - uri: https://api.datadoghq.com/api/v2/sensitive-data-scanner/config/groups/db67c3ee-db9b-417c-8d62-f2c6fc0f1c4b + uri: https://api.datadoghq.com/api/v2/sensitive-data-scanner/config/groups/3ad08396-bb28-49b6-bb0b-3743eec0b822 response: body: - string: '{"meta":{"version":274584}} - - ' + string: '{"meta":{"version":278022}}' headers: content-type: - - application/json + - application/vnd.api+json status: code: 200 message: OK diff --git a/tests/v2/features/sensitive_data_scanner.feature b/tests/v2/features/sensitive_data_scanner.feature index 4516e16103..d4b0d41f82 100644 --- a/tests/v2/features/sensitive_data_scanner.feature +++ b/tests/v2/features/sensitive_data_scanner.feature @@ -23,7 +23,7 @@ Feature: Sensitive Data Scanner And new "CreateScanningGroup" request And body with value {"meta":{},"data":{"type":"sensitive_data_scanner_group","attributes":{"name":"{{ unique }}","is_enabled":false,"product_list":["logs"],"filter":{"query":"*"}},"relationships":{"configuration":{"data":{"type":"sensitive_data_scanner_configuration","id":"{{ configuration.data.id }}"}},"rules":{"data":[]}}}} When the request is sent - Then the response status is 200 OK + Then the response status is 201 OK And the response "data.type" is equal to "sensitive_data_scanner_group" And the response "data.attributes.name" is equal to "{{ unique }}" @@ -43,7 +43,7 @@ Feature: Sensitive Data Scanner And new "CreateScanningRule" request And body with value {"meta":{},"data":{"type":"sensitive_data_scanner_rule","attributes":{"name":"{{ unique }}","pattern":"pattern", "namespaces": ["admin"], "excluded_namespaces": ["admin.name"], "text_replacement":{"type":"none"},"tags":["sensitive_data:true"],"is_enabled":true,"priority":1,"included_keyword_configuration":{"keywords":["credit card"],"character_count":35}},"relationships":{"group":{"data":{"type":"{{ group.data.type }}","id":"{{ group.data.id }}"}}}}} When the request is sent - Then the response status is 200 OK + Then the response status is 201 OK And the response "data.type" is equal to "sensitive_data_scanner_rule" And the response "data.attributes.name" is equal to "{{ unique }}" And the response "data.attributes.pattern" is equal to "pattern" @@ -57,7 +57,7 @@ Feature: Sensitive Data Scanner And new "CreateScanningRule" request And body with value {"meta":{},"data":{"type":"sensitive_data_scanner_rule","attributes":{"name":"{{ unique }}","pattern":"pattern","text_replacement":{"type":"replacement_string","replacement_string":"REDACTED","should_save_match":true},"tags":["sensitive_data:true"],"is_enabled":true,"priority":1},"relationships":{"group":{"data":{"type":"{{ group.data.type }}","id":"{{ group.data.id }}"}}}}} When the request is sent - Then the response status is 200 OK + Then the response status is 201 OK And the response "data.type" is equal to "sensitive_data_scanner_rule" And the response "data.attributes.name" is equal to "{{ unique }}" @@ -154,6 +154,7 @@ Feature: Sensitive Data Scanner Scenario: Reorder Groups returns "OK" response Given a valid "configuration" in the system And there is a valid "scanning_group" in the system + And a valid "configuration" in the system And new "ReorderScanningGroups" request And body with value {"data": {"relationships": {"groups": {"data": [{"type": "sensitive_data_scanner_group", "id": "{{ group.data.id }}"}]}}, "type": "sensitive_data_scanner_configuration", "id": "{{ configuration.data.id }}"}, "meta": {}} When the request is sent @@ -192,7 +193,7 @@ Feature: Sensitive Data Scanner And the "scanning_group" has a "scanning_rule" And new "UpdateScanningRule" request And request contains "rule_id" parameter from "rule.data.id" - And body with value {"meta":{},"data":{"type":"sensitive_data_scanner_rule","attributes":{"name":"{{ unique }}","pattern":"pattern","text_replacement":{"type":"none"},"tags":["sensitive_data:true"],"is_enabled":true},"relationships":{"group":{"data":{"type":"{{ group.data.type }}","id":"{{ group.data.id }}"}}}}} + And body with value {"meta":{},"data":{"attributes":{"name":"{{ unique }}","pattern":"pattern","text_replacement":{"type":"none"},"tags":["sensitive_data:true"],"is_enabled":true},"relationships":{"group":{"data":{"type":"{{ group.data.type }}","id":"{{ group.data.id }}"}}}}} When the request is sent Then the response status is 400 Bad Request