diff --git a/.generator/schemas/v2/openapi.yaml b/.generator/schemas/v2/openapi.yaml index 128bce58ba..72ecdf2a8d 100644 --- a/.generator/schemas/v2/openapi.yaml +++ b/.generator/schemas/v2/openapi.yaml @@ -49256,18 +49256,6 @@ components: meta: $ref: '#/components/schemas/ResponseMetaAttributes' type: object - SecurityMonitoringPaginatedSuppressionsResponse: - description: Response object containing the available suppression rules with - pagination metadata. - properties: - data: - description: A list of suppressions objects. - items: - $ref: '#/components/schemas/SecurityMonitoringSuppression' - type: array - meta: - $ref: '#/components/schemas/SecurityMonitoringSuppressionsMeta' - type: object SecurityMonitoringReferenceTable: description: Reference tables used in the queries. properties: @@ -51417,31 +51405,6 @@ components: data: $ref: '#/components/schemas/SecurityMonitoringSuppression' type: object - SecurityMonitoringSuppressionSort: - description: The sort parameters used for querying suppression rules. - enum: - - name - - start_date - - expiration_date - - update_date - - enabled - - -name - - -start_date - - -expiration_date - - -update_date - - -enabled - type: string - x-enum-varnames: - - NAME - - START_DATE - - EXPIRATION_DATE - - UPDATE_DATE - - ENABLED - - NAME_DESCENDING - - START_DATE_DESCENDING - - EXPIRATION_DATE_DESCENDING - - UPDATE_DATE_DESCENDING - - ENABLED_DESCENDING SecurityMonitoringSuppressionType: default: suppressions description: The type of the resource. The value should always be `suppressions`. @@ -51537,31 +51500,6 @@ components: required: - data type: object - SecurityMonitoringSuppressionsMeta: - description: Metadata for the suppression list response. - properties: - page: - $ref: '#/components/schemas/SecurityMonitoringSuppressionsPageMeta' - type: object - SecurityMonitoringSuppressionsPageMeta: - description: Pagination metadata. - properties: - pageNumber: - description: Current page number. - example: 0 - format: int64 - type: integer - pageSize: - description: Current page size. - example: 2 - format: int64 - type: integer - totalCount: - description: Total count of suppressions. - example: 2 - format: int64 - type: integer - type: object SecurityMonitoringSuppressionsResponse: description: Response object containing the available suppression rules. properties: @@ -85732,29 +85670,12 @@ paths: required: false schema: type: string - - description: Attribute used to sort the list of suppression rules. Prefix - with `-` to sort in descending order. - in: query - name: sort - required: false - schema: - $ref: '#/components/schemas/SecurityMonitoringSuppressionSort' - - description: Size for a given page. Use `-1` to return all items. - in: query - name: page[size] - required: false - schema: - default: -1 - example: 10 - format: int64 - type: integer - - $ref: '#/components/parameters/PageNumber' responses: '200': content: application/json: schema: - $ref: '#/components/schemas/SecurityMonitoringPaginatedSuppressionsResponse' + $ref: '#/components/schemas/SecurityMonitoringSuppressionsResponse' description: OK '403': $ref: '#/components/responses/NotAuthorizedResponse' @@ -86786,7 +86707,7 @@ paths: $ref: '#/components/schemas/SensitiveDataScannerGroupCreateRequest' required: true responses: - '200': + '201': content: application/json: schema: @@ -86928,7 +86849,7 @@ paths: $ref: '#/components/schemas/SensitiveDataScannerRuleCreateRequest' required: true responses: - '200': + '201': content: application/json: schema: diff --git a/docs/datadog_api_client.v2.model.rst b/docs/datadog_api_client.v2.model.rst index e4ab16db9b..c237bd315d 100644 --- a/docs/datadog_api_client.v2.model.rst +++ b/docs/datadog_api_client.v2.model.rst @@ -21739,13 +21739,6 @@ datadog\_api\_client.v2.model.security\_monitoring\_list\_rules\_response module :members: :show-inheritance: -datadog\_api\_client.v2.model.security\_monitoring\_paginated\_suppressions\_response module --------------------------------------------------------------------------------------------- - -.. automodule:: datadog_api_client.v2.model.security_monitoring_paginated_suppressions_response - :members: - :show-inheritance: - datadog\_api\_client.v2.model.security\_monitoring\_reference\_table module --------------------------------------------------------------------------- @@ -22383,13 +22376,6 @@ datadog\_api\_client.v2.model.security\_monitoring\_suppression\_response module :members: :show-inheritance: -datadog\_api\_client.v2.model.security\_monitoring\_suppression\_sort module ----------------------------------------------------------------------------- - -.. automodule:: datadog_api_client.v2.model.security_monitoring_suppression_sort - :members: - :show-inheritance: - datadog\_api\_client.v2.model.security\_monitoring\_suppression\_type module ---------------------------------------------------------------------------- @@ -22418,20 +22404,6 @@ datadog\_api\_client.v2.model.security\_monitoring\_suppression\_update\_request :members: :show-inheritance: -datadog\_api\_client.v2.model.security\_monitoring\_suppressions\_meta module ------------------------------------------------------------------------------ - -.. automodule:: datadog_api_client.v2.model.security_monitoring_suppressions_meta - :members: - :show-inheritance: - -datadog\_api\_client.v2.model.security\_monitoring\_suppressions\_page\_meta module ------------------------------------------------------------------------------------ - -.. automodule:: datadog_api_client.v2.model.security_monitoring_suppressions_page_meta - :members: - :show-inheritance: - datadog\_api\_client.v2.model.security\_monitoring\_suppressions\_response module --------------------------------------------------------------------------------- diff --git a/examples/v2/security-monitoring/ListSecurityMonitoringSuppressions_1315707136.py b/examples/v2/security-monitoring/ListSecurityMonitoringSuppressions_1315707136.py deleted file mode 100644 index 2c0dabeea2..0000000000 --- a/examples/v2/security-monitoring/ListSecurityMonitoringSuppressions_1315707136.py +++ /dev/null @@ -1,24 +0,0 @@ -""" -Get all suppression rules returns "OK" response with sort ascending -""" - -from os import environ -from datadog_api_client import ApiClient, Configuration -from datadog_api_client.v2.api.security_monitoring_api import SecurityMonitoringApi -from datadog_api_client.v2.model.security_monitoring_suppression_sort import SecurityMonitoringSuppressionSort - -# there is a valid "suppression" in the system -SUPPRESSION_DATA_ID = environ["SUPPRESSION_DATA_ID"] - -# there is a valid "suppression2" in the system -SUPPRESSION2_DATA_ID = environ["SUPPRESSION2_DATA_ID"] - -configuration = Configuration() -with ApiClient(configuration) as api_client: - api_instance = SecurityMonitoringApi(api_client) - response = api_instance.list_security_monitoring_suppressions( - query="id:3dd-0uc-h1s OR id:886e6c3e-e543-049c-ee1b-56a1110295c0", - sort=SecurityMonitoringSuppressionSort.NAME, - ) - - print(response) diff --git a/examples/v2/security-monitoring/ListSecurityMonitoringSuppressions_1741429096.py b/examples/v2/security-monitoring/ListSecurityMonitoringSuppressions_1741429096.py deleted file mode 100644 index e191bc1787..0000000000 --- a/examples/v2/security-monitoring/ListSecurityMonitoringSuppressions_1741429096.py +++ /dev/null @@ -1,24 +0,0 @@ -""" -Get all suppression rules returns "OK" response with sort descending -""" - -from os import environ -from datadog_api_client import ApiClient, Configuration -from datadog_api_client.v2.api.security_monitoring_api import SecurityMonitoringApi -from datadog_api_client.v2.model.security_monitoring_suppression_sort import SecurityMonitoringSuppressionSort - -# there is a valid "suppression" in the system -SUPPRESSION_DATA_ID = environ["SUPPRESSION_DATA_ID"] - -# there is a valid "suppression2" in the system -SUPPRESSION2_DATA_ID = environ["SUPPRESSION2_DATA_ID"] - -configuration = Configuration() -with ApiClient(configuration) as api_client: - api_instance = SecurityMonitoringApi(api_client) - response = api_instance.list_security_monitoring_suppressions( - query="id:3dd-0uc-h1s OR id:886e6c3e-e543-049c-ee1b-56a1110295c0", - sort=SecurityMonitoringSuppressionSort.NAME_DESCENDING, - ) - - print(response) diff --git a/examples/v2/security-monitoring/ListSecurityMonitoringSuppressions_3985905558.py b/examples/v2/security-monitoring/ListSecurityMonitoringSuppressions_3985905558.py deleted file mode 100644 index c038f600a5..0000000000 --- a/examples/v2/security-monitoring/ListSecurityMonitoringSuppressions_3985905558.py +++ /dev/null @@ -1,24 +0,0 @@ -""" -Get all suppression rules returns "OK" response with pagination -""" - -from os import environ -from datadog_api_client import ApiClient, Configuration -from datadog_api_client.v2.api.security_monitoring_api import SecurityMonitoringApi - -# there is a valid "suppression" in the system -SUPPRESSION_DATA_ID = environ["SUPPRESSION_DATA_ID"] - -# there is a valid "suppression2" in the system -SUPPRESSION2_DATA_ID = environ["SUPPRESSION2_DATA_ID"] - -configuration = Configuration() -with ApiClient(configuration) as api_client: - api_instance = SecurityMonitoringApi(api_client) - response = api_instance.list_security_monitoring_suppressions( - query="id:3dd-0uc-h1s OR id:886e6c3e-e543-049c-ee1b-56a1110295c0", - page_size=1, - page_number=0, - ) - - print(response) diff --git a/src/datadog_api_client/v2/api/security_monitoring_api.py b/src/datadog_api_client/v2/api/security_monitoring_api.py index 1905f89201..5f23e8da82 100644 --- a/src/datadog_api_client/v2/api/security_monitoring_api.py +++ b/src/datadog_api_client/v2/api/security_monitoring_api.py @@ -80,15 +80,11 @@ from datadog_api_client.v2.model.security_filter_response import SecurityFilterResponse from datadog_api_client.v2.model.security_filter_create_request import SecurityFilterCreateRequest from datadog_api_client.v2.model.security_filter_update_request import SecurityFilterUpdateRequest -from datadog_api_client.v2.model.security_monitoring_paginated_suppressions_response import ( - SecurityMonitoringPaginatedSuppressionsResponse, -) -from datadog_api_client.v2.model.security_monitoring_suppression_sort import SecurityMonitoringSuppressionSort +from datadog_api_client.v2.model.security_monitoring_suppressions_response import SecurityMonitoringSuppressionsResponse from datadog_api_client.v2.model.security_monitoring_suppression_response import SecurityMonitoringSuppressionResponse from datadog_api_client.v2.model.security_monitoring_suppression_create_request import ( SecurityMonitoringSuppressionCreateRequest, ) -from datadog_api_client.v2.model.security_monitoring_suppressions_response import SecurityMonitoringSuppressionsResponse from datadog_api_client.v2.model.security_monitoring_rule_create_payload import SecurityMonitoringRuleCreatePayload from datadog_api_client.v2.model.security_monitoring_standard_rule_create_payload import ( SecurityMonitoringStandardRuleCreatePayload, @@ -1767,7 +1763,7 @@ def __init__(self, api_client=None): self._list_security_monitoring_suppressions_endpoint = _Endpoint( settings={ - "response_type": (SecurityMonitoringPaginatedSuppressionsResponse,), + "response_type": (SecurityMonitoringSuppressionsResponse,), "auth": ["apiKeyAuth", "appKeyAuth", "AuthZ"], "endpoint_path": "/api/v2/security_monitoring/configuration/suppressions", "operation_id": "list_security_monitoring_suppressions", @@ -1780,21 +1776,6 @@ def __init__(self, api_client=None): "attribute": "query", "location": "query", }, - "sort": { - "openapi_types": (SecurityMonitoringSuppressionSort,), - "attribute": "sort", - "location": "query", - }, - "page_size": { - "openapi_types": (int,), - "attribute": "page[size]", - "location": "query", - }, - "page_number": { - "openapi_types": (int,), - "attribute": "page[number]", - "location": "query", - }, }, headers_map={ "accept": ["application/json"], @@ -4354,37 +4335,19 @@ def list_security_monitoring_suppressions( self, *, query: Union[str, UnsetType] = unset, - sort: Union[SecurityMonitoringSuppressionSort, UnsetType] = unset, - page_size: Union[int, UnsetType] = unset, - page_number: Union[int, UnsetType] = unset, - ) -> SecurityMonitoringPaginatedSuppressionsResponse: + ) -> SecurityMonitoringSuppressionsResponse: """Get all suppression rules. Get the list of all suppression rules. :param query: Query string. :type query: str, optional - :param sort: Attribute used to sort the list of suppression rules. Prefix with ``-`` to sort in descending order. - :type sort: SecurityMonitoringSuppressionSort, optional - :param page_size: Size for a given page. Use ``-1`` to return all items. - :type page_size: int, optional - :param page_number: Specific page number to return. - :type page_number: int, optional - :rtype: SecurityMonitoringPaginatedSuppressionsResponse + :rtype: SecurityMonitoringSuppressionsResponse """ kwargs: Dict[str, Any] = {} if query is not unset: kwargs["query"] = query - if sort is not unset: - kwargs["sort"] = sort - - if page_size is not unset: - kwargs["page_size"] = page_size - - if page_number is not unset: - kwargs["page_number"] = page_number - return self._list_security_monitoring_suppressions_endpoint.call_with_http_info(**kwargs) def list_threat_hunting_jobs( diff --git a/src/datadog_api_client/v2/model/security_monitoring_paginated_suppressions_response.py b/src/datadog_api_client/v2/model/security_monitoring_paginated_suppressions_response.py deleted file mode 100644 index 6b583d8ed0..0000000000 --- a/src/datadog_api_client/v2/model/security_monitoring_paginated_suppressions_response.py +++ /dev/null @@ -1,56 +0,0 @@ -# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. -# This product includes software developed at Datadog (https://www.datadoghq.com/). -# Copyright 2019-Present Datadog, Inc. -from __future__ import annotations - -from typing import List, Union, TYPE_CHECKING - -from datadog_api_client.model_utils import ( - ModelNormal, - cached_property, - unset, - UnsetType, -) - - -if TYPE_CHECKING: - from datadog_api_client.v2.model.security_monitoring_suppression import SecurityMonitoringSuppression - from datadog_api_client.v2.model.security_monitoring_suppressions_meta import SecurityMonitoringSuppressionsMeta - - -class SecurityMonitoringPaginatedSuppressionsResponse(ModelNormal): - @cached_property - def openapi_types(_): - from datadog_api_client.v2.model.security_monitoring_suppression import SecurityMonitoringSuppression - from datadog_api_client.v2.model.security_monitoring_suppressions_meta import SecurityMonitoringSuppressionsMeta - - return { - "data": ([SecurityMonitoringSuppression],), - "meta": (SecurityMonitoringSuppressionsMeta,), - } - - attribute_map = { - "data": "data", - "meta": "meta", - } - - def __init__( - self_, - data: Union[List[SecurityMonitoringSuppression], UnsetType] = unset, - meta: Union[SecurityMonitoringSuppressionsMeta, UnsetType] = unset, - **kwargs, - ): - """ - Response object containing the available suppression rules with pagination metadata. - - :param data: A list of suppressions objects. - :type data: [SecurityMonitoringSuppression], optional - - :param meta: Metadata for the suppression list response. - :type meta: SecurityMonitoringSuppressionsMeta, optional - """ - if data is not unset: - kwargs["data"] = data - if meta is not unset: - kwargs["meta"] = meta - super().__init__(kwargs) diff --git a/src/datadog_api_client/v2/model/security_monitoring_suppression_sort.py b/src/datadog_api_client/v2/model/security_monitoring_suppression_sort.py deleted file mode 100644 index 86a162c776..0000000000 --- a/src/datadog_api_client/v2/model/security_monitoring_suppression_sort.py +++ /dev/null @@ -1,62 +0,0 @@ -# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. -# This product includes software developed at Datadog (https://www.datadoghq.com/). -# Copyright 2019-Present Datadog, Inc. -from __future__ import annotations - - -from datadog_api_client.model_utils import ( - ModelSimple, - cached_property, -) - -from typing import ClassVar - - -class SecurityMonitoringSuppressionSort(ModelSimple): - """ - The sort parameters used for querying suppression rules. - - :param value: Must be one of ["name", "start_date", "expiration_date", "update_date", "enabled", "-name", "-start_date", "-expiration_date", "-update_date", "-enabled"]. - :type value: str - """ - - allowed_values = { - "name", - "start_date", - "expiration_date", - "update_date", - "enabled", - "-name", - "-start_date", - "-expiration_date", - "-update_date", - "-enabled", - } - NAME: ClassVar["SecurityMonitoringSuppressionSort"] - START_DATE: ClassVar["SecurityMonitoringSuppressionSort"] - EXPIRATION_DATE: ClassVar["SecurityMonitoringSuppressionSort"] - UPDATE_DATE: ClassVar["SecurityMonitoringSuppressionSort"] - ENABLED: ClassVar["SecurityMonitoringSuppressionSort"] - NAME_DESCENDING: ClassVar["SecurityMonitoringSuppressionSort"] - START_DATE_DESCENDING: ClassVar["SecurityMonitoringSuppressionSort"] - EXPIRATION_DATE_DESCENDING: ClassVar["SecurityMonitoringSuppressionSort"] - UPDATE_DATE_DESCENDING: ClassVar["SecurityMonitoringSuppressionSort"] - ENABLED_DESCENDING: ClassVar["SecurityMonitoringSuppressionSort"] - - @cached_property - def openapi_types(_): - return { - "value": (str,), - } - - -SecurityMonitoringSuppressionSort.NAME = SecurityMonitoringSuppressionSort("name") -SecurityMonitoringSuppressionSort.START_DATE = SecurityMonitoringSuppressionSort("start_date") -SecurityMonitoringSuppressionSort.EXPIRATION_DATE = SecurityMonitoringSuppressionSort("expiration_date") -SecurityMonitoringSuppressionSort.UPDATE_DATE = SecurityMonitoringSuppressionSort("update_date") -SecurityMonitoringSuppressionSort.ENABLED = SecurityMonitoringSuppressionSort("enabled") -SecurityMonitoringSuppressionSort.NAME_DESCENDING = SecurityMonitoringSuppressionSort("-name") -SecurityMonitoringSuppressionSort.START_DATE_DESCENDING = SecurityMonitoringSuppressionSort("-start_date") -SecurityMonitoringSuppressionSort.EXPIRATION_DATE_DESCENDING = SecurityMonitoringSuppressionSort("-expiration_date") -SecurityMonitoringSuppressionSort.UPDATE_DATE_DESCENDING = SecurityMonitoringSuppressionSort("-update_date") -SecurityMonitoringSuppressionSort.ENABLED_DESCENDING = SecurityMonitoringSuppressionSort("-enabled") diff --git a/src/datadog_api_client/v2/model/security_monitoring_suppressions_meta.py b/src/datadog_api_client/v2/model/security_monitoring_suppressions_meta.py deleted file mode 100644 index de6b75a34b..0000000000 --- a/src/datadog_api_client/v2/model/security_monitoring_suppressions_meta.py +++ /dev/null @@ -1,46 +0,0 @@ -# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. -# This product includes software developed at Datadog (https://www.datadoghq.com/). -# Copyright 2019-Present Datadog, Inc. -from __future__ import annotations - -from typing import Union, TYPE_CHECKING - -from datadog_api_client.model_utils import ( - ModelNormal, - cached_property, - unset, - UnsetType, -) - - -if TYPE_CHECKING: - from datadog_api_client.v2.model.security_monitoring_suppressions_page_meta import ( - SecurityMonitoringSuppressionsPageMeta, - ) - - -class SecurityMonitoringSuppressionsMeta(ModelNormal): - @cached_property - def openapi_types(_): - from datadog_api_client.v2.model.security_monitoring_suppressions_page_meta import ( - SecurityMonitoringSuppressionsPageMeta, - ) - - return { - "page": (SecurityMonitoringSuppressionsPageMeta,), - } - - attribute_map = { - "page": "page", - } - - def __init__(self_, page: Union[SecurityMonitoringSuppressionsPageMeta, UnsetType] = unset, **kwargs): - """ - Metadata for the suppression list response. - - :param page: Pagination metadata. - :type page: SecurityMonitoringSuppressionsPageMeta, optional - """ - if page is not unset: - kwargs["page"] = page - super().__init__(kwargs) diff --git a/src/datadog_api_client/v2/model/security_monitoring_suppressions_page_meta.py b/src/datadog_api_client/v2/model/security_monitoring_suppressions_page_meta.py deleted file mode 100644 index 6d769253cc..0000000000 --- a/src/datadog_api_client/v2/model/security_monitoring_suppressions_page_meta.py +++ /dev/null @@ -1,56 +0,0 @@ -# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. -# This product includes software developed at Datadog (https://www.datadoghq.com/). -# Copyright 2019-Present Datadog, Inc. -from __future__ import annotations - -from typing import Union - -from datadog_api_client.model_utils import ( - ModelNormal, - cached_property, - unset, - UnsetType, -) - - -class SecurityMonitoringSuppressionsPageMeta(ModelNormal): - @cached_property - def openapi_types(_): - return { - "page_number": (int,), - "page_size": (int,), - "total_count": (int,), - } - - attribute_map = { - "page_number": "pageNumber", - "page_size": "pageSize", - "total_count": "totalCount", - } - - def __init__( - self_, - page_number: Union[int, UnsetType] = unset, - page_size: Union[int, UnsetType] = unset, - total_count: Union[int, UnsetType] = unset, - **kwargs, - ): - """ - Pagination metadata. - - :param page_number: Current page number. - :type page_number: int, optional - - :param page_size: Current page size. - :type page_size: int, optional - - :param total_count: Total count of suppressions. - :type total_count: int, optional - """ - if page_number is not unset: - kwargs["page_number"] = page_number - if page_size is not unset: - kwargs["page_size"] = page_size - if total_count is not unset: - kwargs["total_count"] = total_count - super().__init__(kwargs) diff --git a/src/datadog_api_client/v2/models/__init__.py b/src/datadog_api_client/v2/models/__init__.py index 19cabdd42d..f0255dfa30 100644 --- a/src/datadog_api_client/v2/models/__init__.py +++ b/src/datadog_api_client/v2/models/__init__.py @@ -4380,9 +4380,6 @@ from datadog_api_client.v2.model.security_monitoring_filter import SecurityMonitoringFilter from datadog_api_client.v2.model.security_monitoring_filter_action import SecurityMonitoringFilterAction from datadog_api_client.v2.model.security_monitoring_list_rules_response import SecurityMonitoringListRulesResponse -from datadog_api_client.v2.model.security_monitoring_paginated_suppressions_response import ( - SecurityMonitoringPaginatedSuppressionsResponse, -) from datadog_api_client.v2.model.security_monitoring_reference_table import SecurityMonitoringReferenceTable from datadog_api_client.v2.model.security_monitoring_rule_anomaly_detection_options import ( SecurityMonitoringRuleAnomalyDetectionOptions, @@ -4566,7 +4563,6 @@ SecurityMonitoringSuppressionCreateRequest, ) from datadog_api_client.v2.model.security_monitoring_suppression_response import SecurityMonitoringSuppressionResponse -from datadog_api_client.v2.model.security_monitoring_suppression_sort import SecurityMonitoringSuppressionSort from datadog_api_client.v2.model.security_monitoring_suppression_type import SecurityMonitoringSuppressionType from datadog_api_client.v2.model.security_monitoring_suppression_update_attributes import ( SecurityMonitoringSuppressionUpdateAttributes, @@ -4577,10 +4573,6 @@ from datadog_api_client.v2.model.security_monitoring_suppression_update_request import ( SecurityMonitoringSuppressionUpdateRequest, ) -from datadog_api_client.v2.model.security_monitoring_suppressions_meta import SecurityMonitoringSuppressionsMeta -from datadog_api_client.v2.model.security_monitoring_suppressions_page_meta import ( - SecurityMonitoringSuppressionsPageMeta, -) from datadog_api_client.v2.model.security_monitoring_suppressions_response import SecurityMonitoringSuppressionsResponse from datadog_api_client.v2.model.security_monitoring_third_party_root_query import SecurityMonitoringThirdPartyRootQuery from datadog_api_client.v2.model.security_monitoring_third_party_rule_case import SecurityMonitoringThirdPartyRuleCase @@ -8490,7 +8482,6 @@ "SecurityMonitoringFilter", "SecurityMonitoringFilterAction", "SecurityMonitoringListRulesResponse", - "SecurityMonitoringPaginatedSuppressionsResponse", "SecurityMonitoringReferenceTable", "SecurityMonitoringRuleAnomalyDetectionOptions", "SecurityMonitoringRuleAnomalyDetectionOptionsBucketDuration", @@ -8582,13 +8573,10 @@ "SecurityMonitoringSuppressionCreateData", "SecurityMonitoringSuppressionCreateRequest", "SecurityMonitoringSuppressionResponse", - "SecurityMonitoringSuppressionSort", "SecurityMonitoringSuppressionType", "SecurityMonitoringSuppressionUpdateAttributes", "SecurityMonitoringSuppressionUpdateData", "SecurityMonitoringSuppressionUpdateRequest", - "SecurityMonitoringSuppressionsMeta", - "SecurityMonitoringSuppressionsPageMeta", "SecurityMonitoringSuppressionsResponse", "SecurityMonitoringThirdPartyRootQuery", "SecurityMonitoringThirdPartyRuleCase", 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_a_suppression_rule_returns_ok_response.frozen b/tests/v2/cassettes/test_scenarios/test_delete_a_suppression_rule_returns_ok_response.frozen index ec35b85885..3f3e3c99f2 100644 --- a/tests/v2/cassettes/test_scenarios/test_delete_a_suppression_rule_returns_ok_response.frozen +++ b/tests/v2/cassettes/test_scenarios/test_delete_a_suppression_rule_returns_ok_response.frozen @@ -1 +1 @@ -2026-01-14T17:29:03.168Z \ No newline at end of file +2025-11-07T12:27:26.759Z \ No newline at end of file diff --git a/tests/v2/cassettes/test_scenarios/test_delete_a_suppression_rule_returns_ok_response.yaml b/tests/v2/cassettes/test_scenarios/test_delete_a_suppression_rule_returns_ok_response.yaml index 28d2d9c6f5..a3ce9d669a 100644 --- a/tests/v2/cassettes/test_scenarios/test_delete_a_suppression_rule_returns_ok_response.yaml +++ b/tests/v2/cassettes/test_scenarios/test_delete_a_suppression_rule_returns_ok_response.yaml @@ -1,7 +1,6 @@ interactions: - request: - body: '{"data":{"attributes":{"description":"Test-Delete_a_suppression_rule_returns_OK_response-1768411743","enabled":true,"name":"suppression - Test-Delete_a_suppression_rule_returns_OK_response-1768411743","rule_query":"source:cloudtrail","suppression_query":"env:test","tags":["technique:T1110-brute-force","source:cloudtrail"]},"type":"suppressions"}}' + body: '{"data":{"attributes":{"description":"Test-Delete_a_suppression_rule_returns_OK_response-1762518446","enabled":true,"name":"Test-Delete_a_suppression_rule_returns_OK_response-1762518446","rule_query":"source:cloudtrail","suppression_query":"env:test","tags":["technique:T1110-brute-force","source:cloudtrail"]},"type":"suppressions"}}' headers: accept: - application/json @@ -11,9 +10,8 @@ interactions: uri: https://api.datadoghq.com/api/v2/security_monitoring/configuration/suppressions response: body: - string: '{"data":{"id":"itm-ljs-0qw","type":"suppressions","attributes":{"creation_date":1768411744411,"creator":{"handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","name":"CI - Account"},"data_exclusion_query":"","description":"Test-Delete_a_suppression_rule_returns_OK_response-1768411743","editable":true,"enabled":true,"name":"suppression - Test-Delete_a_suppression_rule_returns_OK_response-1768411743","rule_query":"source:cloudtrail","suppression_query":"env:test","tags":["source:cloudtrail","technique:T1110-brute-force"],"update_date":1768411744411,"updater":{"handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","name":"CI + string: '{"data":{"id":"uea-lab-big","type":"suppressions","attributes":{"creation_date":1762518447002,"creator":{"handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","name":"CI + Account"},"data_exclusion_query":"","description":"Test-Delete_a_suppression_rule_returns_OK_response-1762518446","editable":true,"enabled":true,"name":"Test-Delete_a_suppression_rule_returns_OK_response-1762518446","rule_query":"source:cloudtrail","suppression_query":"env:test","tags":["source:cloudtrail","technique:T1110-brute-force"],"update_date":1762518447002,"updater":{"handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","name":"CI Account"},"version":1}}}' headers: content-type: @@ -27,7 +25,7 @@ interactions: accept: - '*/*' method: DELETE - uri: https://api.datadoghq.com/api/v2/security_monitoring/configuration/suppressions/itm-ljs-0qw + uri: https://api.datadoghq.com/api/v2/security_monitoring/configuration/suppressions/uea-lab-big response: body: string: '' @@ -41,10 +39,10 @@ interactions: accept: - '*/*' method: DELETE - uri: https://api.datadoghq.com/api/v2/security_monitoring/configuration/suppressions/itm-ljs-0qw + uri: https://api.datadoghq.com/api/v2/security_monitoring/configuration/suppressions/uea-lab-big response: body: - string: '{"errors":["not_found(Suppression with ID itm-ljs-0qw not found)"]}' + string: '{"errors":["not_found(Suppression with ID uea-lab-big not found)"]}' headers: content-type: - application/json 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_get_a_suppression_rule_returns_ok_response.frozen b/tests/v2/cassettes/test_scenarios/test_get_a_suppression_rule_returns_ok_response.frozen index 16f1a15edd..a93a4d20e7 100644 --- a/tests/v2/cassettes/test_scenarios/test_get_a_suppression_rule_returns_ok_response.frozen +++ b/tests/v2/cassettes/test_scenarios/test_get_a_suppression_rule_returns_ok_response.frozen @@ -1 +1 @@ -2026-01-14T17:29:04.856Z \ No newline at end of file +2025-11-07T12:27:27.654Z \ No newline at end of file diff --git a/tests/v2/cassettes/test_scenarios/test_get_a_suppression_rule_returns_ok_response.yaml b/tests/v2/cassettes/test_scenarios/test_get_a_suppression_rule_returns_ok_response.yaml index 38dd28e4b5..407dc4e26c 100644 --- a/tests/v2/cassettes/test_scenarios/test_get_a_suppression_rule_returns_ok_response.yaml +++ b/tests/v2/cassettes/test_scenarios/test_get_a_suppression_rule_returns_ok_response.yaml @@ -1,7 +1,6 @@ interactions: - request: - body: '{"data":{"attributes":{"description":"Test-Get_a_suppression_rule_returns_OK_response-1768411744","enabled":true,"name":"suppression - Test-Get_a_suppression_rule_returns_OK_response-1768411744","rule_query":"source:cloudtrail","suppression_query":"env:test","tags":["technique:T1110-brute-force","source:cloudtrail"]},"type":"suppressions"}}' + body: '{"data":{"attributes":{"description":"Test-Get_a_suppression_rule_returns_OK_response-1762518447","enabled":true,"name":"Test-Get_a_suppression_rule_returns_OK_response-1762518447","rule_query":"source:cloudtrail","suppression_query":"env:test","tags":["technique:T1110-brute-force","source:cloudtrail"]},"type":"suppressions"}}' headers: accept: - application/json @@ -11,9 +10,8 @@ interactions: uri: https://api.datadoghq.com/api/v2/security_monitoring/configuration/suppressions response: body: - string: '{"data":{"id":"xno-kwg-8df","type":"suppressions","attributes":{"creation_date":1768411744987,"creator":{"handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","name":"CI - Account"},"data_exclusion_query":"","description":"Test-Get_a_suppression_rule_returns_OK_response-1768411744","editable":true,"enabled":true,"name":"suppression - Test-Get_a_suppression_rule_returns_OK_response-1768411744","rule_query":"source:cloudtrail","suppression_query":"env:test","tags":["source:cloudtrail","technique:T1110-brute-force"],"update_date":1768411744987,"updater":{"handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","name":"CI + string: '{"data":{"id":"ylq-igi-icg","type":"suppressions","attributes":{"creation_date":1762518447901,"creator":{"handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","name":"CI + Account"},"data_exclusion_query":"","description":"Test-Get_a_suppression_rule_returns_OK_response-1762518447","editable":true,"enabled":true,"name":"Test-Get_a_suppression_rule_returns_OK_response-1762518447","rule_query":"source:cloudtrail","suppression_query":"env:test","tags":["source:cloudtrail","technique:T1110-brute-force"],"update_date":1762518447901,"updater":{"handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","name":"CI Account"},"version":1}}}' headers: content-type: @@ -27,12 +25,11 @@ interactions: accept: - application/json method: GET - uri: https://api.datadoghq.com/api/v2/security_monitoring/configuration/suppressions/xno-kwg-8df + uri: https://api.datadoghq.com/api/v2/security_monitoring/configuration/suppressions/ylq-igi-icg response: body: - string: '{"data":{"id":"xno-kwg-8df","type":"suppressions","attributes":{"creation_date":1768411744987,"creator":{"handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","name":"CI - Account"},"data_exclusion_query":"","description":"Test-Get_a_suppression_rule_returns_OK_response-1768411744","editable":true,"enabled":true,"name":"suppression - Test-Get_a_suppression_rule_returns_OK_response-1768411744","rule_query":"source:cloudtrail","suppression_query":"env:test","tags":["source:cloudtrail","technique:T1110-brute-force"],"update_date":1768411744987,"updater":{"handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","name":"CI + string: '{"data":{"id":"ylq-igi-icg","type":"suppressions","attributes":{"creation_date":1762518447901,"creator":{"handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","name":"CI + Account"},"data_exclusion_query":"","description":"Test-Get_a_suppression_rule_returns_OK_response-1762518447","editable":true,"enabled":true,"name":"Test-Get_a_suppression_rule_returns_OK_response-1762518447","rule_query":"source:cloudtrail","suppression_query":"env:test","tags":["source:cloudtrail","technique:T1110-brute-force"],"update_date":1762518447901,"updater":{"handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","name":"CI Account"},"version":1}}}' headers: content-type: @@ -46,7 +43,7 @@ interactions: accept: - '*/*' method: DELETE - uri: https://api.datadoghq.com/api/v2/security_monitoring/configuration/suppressions/xno-kwg-8df + uri: https://api.datadoghq.com/api/v2/security_monitoring/configuration/suppressions/ylq-igi-icg response: body: string: '' diff --git a/tests/v2/cassettes/test_scenarios/test_get_a_suppressions_version_history_returns_ok_response.frozen b/tests/v2/cassettes/test_scenarios/test_get_a_suppressions_version_history_returns_ok_response.frozen index 6691326413..d0d5ccec31 100644 --- a/tests/v2/cassettes/test_scenarios/test_get_a_suppressions_version_history_returns_ok_response.frozen +++ b/tests/v2/cassettes/test_scenarios/test_get_a_suppressions_version_history_returns_ok_response.frozen @@ -1 +1 @@ -2026-01-14T17:29:05.317Z \ No newline at end of file +2025-11-26T13:33:06.482Z \ No newline at end of file diff --git a/tests/v2/cassettes/test_scenarios/test_get_a_suppressions_version_history_returns_ok_response.yaml b/tests/v2/cassettes/test_scenarios/test_get_a_suppressions_version_history_returns_ok_response.yaml index ec1c652445..44a5caea94 100644 --- a/tests/v2/cassettes/test_scenarios/test_get_a_suppressions_version_history_returns_ok_response.yaml +++ b/tests/v2/cassettes/test_scenarios/test_get_a_suppressions_version_history_returns_ok_response.yaml @@ -1,7 +1,6 @@ interactions: - request: - body: '{"data":{"attributes":{"description":"Test-Get_a_suppression_s_version_history_returns_OK_response-1768411745","enabled":true,"name":"suppression - Test-Get_a_suppression_s_version_history_returns_OK_response-1768411745","rule_query":"source:cloudtrail","suppression_query":"env:test","tags":["technique:T1110-brute-force","source:cloudtrail"]},"type":"suppressions"}}' + body: '{"data":{"attributes":{"description":"Test-Get_a_suppression_s_version_history_returns_OK_response-1764163986","enabled":true,"name":"Test-Get_a_suppression_s_version_history_returns_OK_response-1764163986","rule_query":"source:cloudtrail","suppression_query":"env:test","tags":["technique:T1110-brute-force","source:cloudtrail"]},"type":"suppressions"}}' headers: accept: - application/json @@ -11,10 +10,7 @@ interactions: uri: https://api.datadoghq.com/api/v2/security_monitoring/configuration/suppressions response: body: - string: '{"data":{"id":"sro-unv-k08","type":"suppressions","attributes":{"creation_date":1768411745430,"creator":{"handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","name":"CI - Account"},"data_exclusion_query":"","description":"Test-Get_a_suppression_s_version_history_returns_OK_response-1768411745","editable":true,"enabled":true,"name":"suppression - Test-Get_a_suppression_s_version_history_returns_OK_response-1768411745","rule_query":"source:cloudtrail","suppression_query":"env:test","tags":["source:cloudtrail","technique:T1110-brute-force"],"update_date":1768411745430,"updater":{"handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","name":"CI - Account"},"version":1}}}' + string: '{"data":{"id":"456-piv-74h","type":"suppressions","attributes":{"creation_date":1764163986851,"creator":{"handle":"frog@datadoghq.com","name":"frog"},"data_exclusion_query":"","description":"Test-Get_a_suppression_s_version_history_returns_OK_response-1764163986","editable":true,"enabled":true,"name":"Test-Get_a_suppression_s_version_history_returns_OK_response-1764163986","rule_query":"source:cloudtrail","suppression_query":"env:test","tags":["source:cloudtrail","technique:T1110-brute-force"],"update_date":1764163986851,"updater":{"handle":"frog@datadoghq.com","name":"frog"},"version":1}}}' headers: content-type: - application/vnd.api+json @@ -27,13 +23,10 @@ interactions: accept: - application/json method: GET - uri: https://api.datadoghq.com/api/v2/security_monitoring/configuration/suppressions/sro-unv-k08/version_history + uri: https://api.datadoghq.com/api/v2/security_monitoring/configuration/suppressions/456-piv-74h/version_history response: body: - string: '{"data":{"id":"sro-unv-k08","type":"suppression_version_history","attributes":{"count":1,"data":{"1":{"suppression":{"id":"sro-unv-k08","name":"suppression - Test-Get_a_suppression_s_version_history_returns_OK_response-1768411745","enabled":true,"description":"Test-Get_a_suppression_s_version_history_returns_OK_response-1768411745","rule_query":"source:cloudtrail","suppression_query":"env:test","data_exclusion_query":"","version":1,"creator":{"handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","name":"CI - Account"},"updater":{"handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","name":"CI - Account"},"creation_date":1768411745430,"update_date":1768411745430,"editable":true,"tags":["source:cloudtrail","technique:T1110-brute-force"]},"changes":[]}}}}}' + string: '{"data":{"id":"456-piv-74h","type":"suppression_version_history","attributes":{"count":1,"data":{"1":{"suppression":{"id":"456-piv-74h","name":"Test-Get_a_suppression_s_version_history_returns_OK_response-1764163986","enabled":true,"description":"Test-Get_a_suppression_s_version_history_returns_OK_response-1764163986","rule_query":"source:cloudtrail","suppression_query":"env:test","data_exclusion_query":"","version":1,"creator":{"handle":"frog@datadoghq.com","name":"frog"},"updater":{"handle":"frog@datadoghq.com","name":"frog"},"creation_date":1764163986851,"update_date":1764163986851,"editable":true,"tags":["source:cloudtrail","technique:T1110-brute-force"]},"changes":[]}}}}}' headers: content-type: - application/vnd.api+json @@ -46,7 +39,7 @@ interactions: accept: - '*/*' method: DELETE - uri: https://api.datadoghq.com/api/v2/security_monitoring/configuration/suppressions/sro-unv-k08 + uri: https://api.datadoghq.com/api/v2/security_monitoring/configuration/suppressions/456-piv-74h response: body: string: '' diff --git a/tests/v2/cassettes/test_scenarios/test_get_all_suppression_rules_returns_ok_response_with_pagination.frozen b/tests/v2/cassettes/test_scenarios/test_get_all_suppression_rules_returns_ok_response_with_pagination.frozen deleted file mode 100644 index 23cdf460db..0000000000 --- a/tests/v2/cassettes/test_scenarios/test_get_all_suppression_rules_returns_ok_response_with_pagination.frozen +++ /dev/null @@ -1 +0,0 @@ -2026-01-14T17:12:28.523Z \ No newline at end of file diff --git a/tests/v2/cassettes/test_scenarios/test_get_all_suppression_rules_returns_ok_response_with_pagination.yaml b/tests/v2/cassettes/test_scenarios/test_get_all_suppression_rules_returns_ok_response_with_pagination.yaml deleted file mode 100644 index 4d4d98c984..0000000000 --- a/tests/v2/cassettes/test_scenarios/test_get_all_suppression_rules_returns_ok_response_with_pagination.yaml +++ /dev/null @@ -1,87 +0,0 @@ -interactions: -- request: - body: '{"data":{"attributes":{"description":"Test-Get_all_suppression_rules_returns_OK_response_with_pagination-1768410748","enabled":true,"name":"suppression - Test-Get_all_suppression_rules_returns_OK_response_with_pagination-1768410748","rule_query":"source:cloudtrail","suppression_query":"env:test","tags":["technique:T1110-brute-force","source:cloudtrail"]},"type":"suppressions"}}' - headers: - accept: - - application/json - content-type: - - application/json - method: POST - uri: https://api.datadoghq.com/api/v2/security_monitoring/configuration/suppressions - response: - body: - string: '{"data":{"id":"fgz-hyr-ibu","type":"suppressions","attributes":{"creation_date":1768410748883,"creator":{"handle":"frog@datadoghq.com","name":"frog"},"data_exclusion_query":"","description":"Test-Get_all_suppression_rules_returns_OK_response_with_pagination-1768410748","editable":true,"enabled":true,"name":"suppression - Test-Get_all_suppression_rules_returns_OK_response_with_pagination-1768410748","rule_query":"source:cloudtrail","suppression_query":"env:test","tags":["source:cloudtrail","technique:T1110-brute-force"],"update_date":1768410748883,"updater":{"handle":"frog@datadoghq.com","name":"frog"},"version":1}}}' - headers: - content-type: - - application/vnd.api+json - status: - code: 200 - message: OK -- request: - body: '{"data":{"attributes":{"description":"Test-Get_all_suppression_rules_returns_OK_response_with_pagination-1768410748","enabled":true,"name":"suppression2 - Test-Get_all_suppression_rules_returns_OK_response_with_pagination-1768410748","rule_query":"source:cloudtrail","suppression_query":"env:test","tags":["technique:T1110-brute-force","source:cloudtrail"]},"type":"suppressions"}}' - headers: - accept: - - application/json - content-type: - - application/json - method: POST - uri: https://api.datadoghq.com/api/v2/security_monitoring/configuration/suppressions - response: - body: - string: '{"data":{"id":"lgh-7no-380","type":"suppressions","attributes":{"creation_date":1768410749324,"creator":{"handle":"frog@datadoghq.com","name":"frog"},"data_exclusion_query":"","description":"Test-Get_all_suppression_rules_returns_OK_response_with_pagination-1768410748","editable":true,"enabled":true,"name":"suppression2 - Test-Get_all_suppression_rules_returns_OK_response_with_pagination-1768410748","rule_query":"source:cloudtrail","suppression_query":"env:test","tags":["source:cloudtrail","technique:T1110-brute-force"],"update_date":1768410749324,"updater":{"handle":"frog@datadoghq.com","name":"frog"},"version":1}}}' - headers: - content-type: - - application/vnd.api+json - status: - code: 200 - message: OK -- request: - body: null - headers: - accept: - - application/json - method: GET - uri: https://api.datadoghq.com/api/v2/security_monitoring/configuration/suppressions?page%5Bsize%5D=1&page%5Bnumber%5D=0&query=id%3Afgz-hyr-ibu%20OR%20id%3Algh-7no-380 - response: - body: - string: '{"data":[{"id":"fgz-hyr-ibu","type":"suppressions","attributes":{"creation_date":1768410748883,"creator":{"handle":"frog@datadoghq.com","name":"frog"},"data_exclusion_query":"","description":"Test-Get_all_suppression_rules_returns_OK_response_with_pagination-1768410748","editable":true,"enabled":true,"name":"suppression - Test-Get_all_suppression_rules_returns_OK_response_with_pagination-1768410748","rule_query":"source:cloudtrail","suppression_query":"env:test","tags":["source:cloudtrail","technique:T1110-brute-force"],"update_date":1768410748883,"updater":{"handle":"frog@datadoghq.com","name":"frog"},"version":1}}],"meta":{"page":{"totalCount":2,"pageSize":1,"pageNumber":0}}}' - headers: - content-type: - - application/vnd.api+json - status: - code: 200 - message: OK -- request: - body: null - headers: - accept: - - '*/*' - method: DELETE - uri: https://api.datadoghq.com/api/v2/security_monitoring/configuration/suppressions/lgh-7no-380 - response: - body: - string: '' - headers: {} - status: - code: 204 - message: No Content -- request: - body: null - headers: - accept: - - '*/*' - method: DELETE - uri: https://api.datadoghq.com/api/v2/security_monitoring/configuration/suppressions/fgz-hyr-ibu - response: - body: - string: '' - headers: {} - status: - code: 204 - message: No Content -version: 1 diff --git a/tests/v2/cassettes/test_scenarios/test_get_all_suppression_rules_returns_ok_response_with_sort_ascending.frozen b/tests/v2/cassettes/test_scenarios/test_get_all_suppression_rules_returns_ok_response_with_sort_ascending.frozen deleted file mode 100644 index 89bfc8cd8e..0000000000 --- a/tests/v2/cassettes/test_scenarios/test_get_all_suppression_rules_returns_ok_response_with_sort_ascending.frozen +++ /dev/null @@ -1 +0,0 @@ -2026-01-14T17:12:30.925Z \ No newline at end of file diff --git a/tests/v2/cassettes/test_scenarios/test_get_all_suppression_rules_returns_ok_response_with_sort_ascending.yaml b/tests/v2/cassettes/test_scenarios/test_get_all_suppression_rules_returns_ok_response_with_sort_ascending.yaml deleted file mode 100644 index 285c415343..0000000000 --- a/tests/v2/cassettes/test_scenarios/test_get_all_suppression_rules_returns_ok_response_with_sort_ascending.yaml +++ /dev/null @@ -1,88 +0,0 @@ -interactions: -- request: - body: '{"data":{"attributes":{"description":"Test-Get_all_suppression_rules_returns_OK_response_with_sort_ascending-1768410750","enabled":true,"name":"suppression - Test-Get_all_suppression_rules_returns_OK_response_with_sort_ascending-1768410750","rule_query":"source:cloudtrail","suppression_query":"env:test","tags":["technique:T1110-brute-force","source:cloudtrail"]},"type":"suppressions"}}' - headers: - accept: - - application/json - content-type: - - application/json - method: POST - uri: https://api.datadoghq.com/api/v2/security_monitoring/configuration/suppressions - response: - body: - string: '{"data":{"id":"5cq-vnw-eza","type":"suppressions","attributes":{"creation_date":1768410751276,"creator":{"handle":"frog@datadoghq.com","name":"frog"},"data_exclusion_query":"","description":"Test-Get_all_suppression_rules_returns_OK_response_with_sort_ascending-1768410750","editable":true,"enabled":true,"name":"suppression - Test-Get_all_suppression_rules_returns_OK_response_with_sort_ascending-1768410750","rule_query":"source:cloudtrail","suppression_query":"env:test","tags":["source:cloudtrail","technique:T1110-brute-force"],"update_date":1768410751276,"updater":{"handle":"frog@datadoghq.com","name":"frog"},"version":1}}}' - headers: - content-type: - - application/vnd.api+json - status: - code: 200 - message: OK -- request: - body: '{"data":{"attributes":{"description":"Test-Get_all_suppression_rules_returns_OK_response_with_sort_ascending-1768410750","enabled":true,"name":"suppression2 - Test-Get_all_suppression_rules_returns_OK_response_with_sort_ascending-1768410750","rule_query":"source:cloudtrail","suppression_query":"env:test","tags":["technique:T1110-brute-force","source:cloudtrail"]},"type":"suppressions"}}' - headers: - accept: - - application/json - content-type: - - application/json - method: POST - uri: https://api.datadoghq.com/api/v2/security_monitoring/configuration/suppressions - response: - body: - string: '{"data":{"id":"fuu-xxd-kjd","type":"suppressions","attributes":{"creation_date":1768410751710,"creator":{"handle":"frog@datadoghq.com","name":"frog"},"data_exclusion_query":"","description":"Test-Get_all_suppression_rules_returns_OK_response_with_sort_ascending-1768410750","editable":true,"enabled":true,"name":"suppression2 - Test-Get_all_suppression_rules_returns_OK_response_with_sort_ascending-1768410750","rule_query":"source:cloudtrail","suppression_query":"env:test","tags":["source:cloudtrail","technique:T1110-brute-force"],"update_date":1768410751710,"updater":{"handle":"frog@datadoghq.com","name":"frog"},"version":1}}}' - headers: - content-type: - - application/vnd.api+json - status: - code: 200 - message: OK -- request: - body: null - headers: - accept: - - application/json - method: GET - uri: https://api.datadoghq.com/api/v2/security_monitoring/configuration/suppressions?sort=name&query=id%3A5cq-vnw-eza%20OR%20id%3Afuu-xxd-kjd - response: - body: - string: '{"data":[{"id":"5cq-vnw-eza","type":"suppressions","attributes":{"creation_date":1768410751276,"creator":{"handle":"frog@datadoghq.com","name":"frog"},"data_exclusion_query":"","description":"Test-Get_all_suppression_rules_returns_OK_response_with_sort_ascending-1768410750","editable":true,"enabled":true,"name":"suppression - Test-Get_all_suppression_rules_returns_OK_response_with_sort_ascending-1768410750","rule_query":"source:cloudtrail","suppression_query":"env:test","tags":["source:cloudtrail","technique:T1110-brute-force"],"update_date":1768410751276,"updater":{"handle":"frog@datadoghq.com","name":"frog"},"version":1}},{"id":"fuu-xxd-kjd","type":"suppressions","attributes":{"creation_date":1768410751710,"creator":{"handle":"frog@datadoghq.com","name":"frog"},"data_exclusion_query":"","description":"Test-Get_all_suppression_rules_returns_OK_response_with_sort_ascending-1768410750","editable":true,"enabled":true,"name":"suppression2 - Test-Get_all_suppression_rules_returns_OK_response_with_sort_ascending-1768410750","rule_query":"source:cloudtrail","suppression_query":"env:test","tags":["source:cloudtrail","technique:T1110-brute-force"],"update_date":1768410751710,"updater":{"handle":"frog@datadoghq.com","name":"frog"},"version":1}}],"meta":{"page":{"totalCount":2,"pageSize":2,"pageNumber":0}}}' - headers: - content-type: - - application/vnd.api+json - status: - code: 200 - message: OK -- request: - body: null - headers: - accept: - - '*/*' - method: DELETE - uri: https://api.datadoghq.com/api/v2/security_monitoring/configuration/suppressions/fuu-xxd-kjd - response: - body: - string: '' - headers: {} - status: - code: 204 - message: No Content -- request: - body: null - headers: - accept: - - '*/*' - method: DELETE - uri: https://api.datadoghq.com/api/v2/security_monitoring/configuration/suppressions/5cq-vnw-eza - response: - body: - string: '' - headers: {} - status: - code: 204 - message: No Content -version: 1 diff --git a/tests/v2/cassettes/test_scenarios/test_get_all_suppression_rules_returns_ok_response_with_sort_descending.frozen b/tests/v2/cassettes/test_scenarios/test_get_all_suppression_rules_returns_ok_response_with_sort_descending.frozen deleted file mode 100644 index d184a46ea0..0000000000 --- a/tests/v2/cassettes/test_scenarios/test_get_all_suppression_rules_returns_ok_response_with_sort_descending.frozen +++ /dev/null @@ -1 +0,0 @@ -2026-01-14T17:12:33.088Z \ No newline at end of file diff --git a/tests/v2/cassettes/test_scenarios/test_get_all_suppression_rules_returns_ok_response_with_sort_descending.yaml b/tests/v2/cassettes/test_scenarios/test_get_all_suppression_rules_returns_ok_response_with_sort_descending.yaml deleted file mode 100644 index 0b935052c1..0000000000 --- a/tests/v2/cassettes/test_scenarios/test_get_all_suppression_rules_returns_ok_response_with_sort_descending.yaml +++ /dev/null @@ -1,88 +0,0 @@ -interactions: -- request: - body: '{"data":{"attributes":{"description":"Test-Get_all_suppression_rules_returns_OK_response_with_sort_descending-1768410753","enabled":true,"name":"suppression - Test-Get_all_suppression_rules_returns_OK_response_with_sort_descending-1768410753","rule_query":"source:cloudtrail","suppression_query":"env:test","tags":["technique:T1110-brute-force","source:cloudtrail"]},"type":"suppressions"}}' - headers: - accept: - - application/json - content-type: - - application/json - method: POST - uri: https://api.datadoghq.com/api/v2/security_monitoring/configuration/suppressions - response: - body: - string: '{"data":{"id":"osw-qyf-tqn","type":"suppressions","attributes":{"creation_date":1768410753455,"creator":{"handle":"frog@datadoghq.com","name":"frog"},"data_exclusion_query":"","description":"Test-Get_all_suppression_rules_returns_OK_response_with_sort_descending-1768410753","editable":true,"enabled":true,"name":"suppression - Test-Get_all_suppression_rules_returns_OK_response_with_sort_descending-1768410753","rule_query":"source:cloudtrail","suppression_query":"env:test","tags":["source:cloudtrail","technique:T1110-brute-force"],"update_date":1768410753455,"updater":{"handle":"frog@datadoghq.com","name":"frog"},"version":1}}}' - headers: - content-type: - - application/vnd.api+json - status: - code: 200 - message: OK -- request: - body: '{"data":{"attributes":{"description":"Test-Get_all_suppression_rules_returns_OK_response_with_sort_descending-1768410753","enabled":true,"name":"suppression2 - Test-Get_all_suppression_rules_returns_OK_response_with_sort_descending-1768410753","rule_query":"source:cloudtrail","suppression_query":"env:test","tags":["technique:T1110-brute-force","source:cloudtrail"]},"type":"suppressions"}}' - headers: - accept: - - application/json - content-type: - - application/json - method: POST - uri: https://api.datadoghq.com/api/v2/security_monitoring/configuration/suppressions - response: - body: - string: '{"data":{"id":"pe9-gdi-ee2","type":"suppressions","attributes":{"creation_date":1768410753872,"creator":{"handle":"frog@datadoghq.com","name":"frog"},"data_exclusion_query":"","description":"Test-Get_all_suppression_rules_returns_OK_response_with_sort_descending-1768410753","editable":true,"enabled":true,"name":"suppression2 - Test-Get_all_suppression_rules_returns_OK_response_with_sort_descending-1768410753","rule_query":"source:cloudtrail","suppression_query":"env:test","tags":["source:cloudtrail","technique:T1110-brute-force"],"update_date":1768410753872,"updater":{"handle":"frog@datadoghq.com","name":"frog"},"version":1}}}' - headers: - content-type: - - application/vnd.api+json - status: - code: 200 - message: OK -- request: - body: null - headers: - accept: - - application/json - method: GET - uri: https://api.datadoghq.com/api/v2/security_monitoring/configuration/suppressions?sort=-name&query=id%3Aosw-qyf-tqn%20OR%20id%3Ape9-gdi-ee2 - response: - body: - string: '{"data":[{"id":"pe9-gdi-ee2","type":"suppressions","attributes":{"creation_date":1768410753872,"creator":{"handle":"frog@datadoghq.com","name":"frog"},"data_exclusion_query":"","description":"Test-Get_all_suppression_rules_returns_OK_response_with_sort_descending-1768410753","editable":true,"enabled":true,"name":"suppression2 - Test-Get_all_suppression_rules_returns_OK_response_with_sort_descending-1768410753","rule_query":"source:cloudtrail","suppression_query":"env:test","tags":["source:cloudtrail","technique:T1110-brute-force"],"update_date":1768410753872,"updater":{"handle":"frog@datadoghq.com","name":"frog"},"version":1}},{"id":"osw-qyf-tqn","type":"suppressions","attributes":{"creation_date":1768410753455,"creator":{"handle":"frog@datadoghq.com","name":"frog"},"data_exclusion_query":"","description":"Test-Get_all_suppression_rules_returns_OK_response_with_sort_descending-1768410753","editable":true,"enabled":true,"name":"suppression - Test-Get_all_suppression_rules_returns_OK_response_with_sort_descending-1768410753","rule_query":"source:cloudtrail","suppression_query":"env:test","tags":["source:cloudtrail","technique:T1110-brute-force"],"update_date":1768410753455,"updater":{"handle":"frog@datadoghq.com","name":"frog"},"version":1}}],"meta":{"page":{"totalCount":2,"pageSize":2,"pageNumber":0}}}' - headers: - content-type: - - application/vnd.api+json - status: - code: 200 - message: OK -- request: - body: null - headers: - accept: - - '*/*' - method: DELETE - uri: https://api.datadoghq.com/api/v2/security_monitoring/configuration/suppressions/pe9-gdi-ee2 - response: - body: - string: '' - headers: {} - status: - code: 204 - message: No Content -- request: - body: null - headers: - accept: - - '*/*' - method: DELETE - uri: https://api.datadoghq.com/api/v2/security_monitoring/configuration/suppressions/osw-qyf-tqn - response: - body: - string: '' - headers: {} - status: - code: 204 - message: No Content -version: 1 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_a_suppression_rule_returns_ok_response.frozen b/tests/v2/cassettes/test_scenarios/test_update_a_suppression_rule_returns_ok_response.frozen index e05f55dd71..8839a50677 100644 --- a/tests/v2/cassettes/test_scenarios/test_update_a_suppression_rule_returns_ok_response.frozen +++ b/tests/v2/cassettes/test_scenarios/test_update_a_suppression_rule_returns_ok_response.frozen @@ -1 +1 @@ -2026-01-14T17:29:05.825Z \ No newline at end of file +2025-11-07T12:27:28.613Z \ No newline at end of file diff --git a/tests/v2/cassettes/test_scenarios/test_update_a_suppression_rule_returns_ok_response.yaml b/tests/v2/cassettes/test_scenarios/test_update_a_suppression_rule_returns_ok_response.yaml index c25bee2e9c..aaa585f339 100644 --- a/tests/v2/cassettes/test_scenarios/test_update_a_suppression_rule_returns_ok_response.yaml +++ b/tests/v2/cassettes/test_scenarios/test_update_a_suppression_rule_returns_ok_response.yaml @@ -1,7 +1,6 @@ interactions: - request: - body: '{"data":{"attributes":{"description":"Test-Update_a_suppression_rule_returns_OK_response-1768411745","enabled":true,"name":"suppression - Test-Update_a_suppression_rule_returns_OK_response-1768411745","rule_query":"source:cloudtrail","suppression_query":"env:test","tags":["technique:T1110-brute-force","source:cloudtrail"]},"type":"suppressions"}}' + body: '{"data":{"attributes":{"description":"Test-Update_a_suppression_rule_returns_OK_response-1762518448","enabled":true,"name":"Test-Update_a_suppression_rule_returns_OK_response-1762518448","rule_query":"source:cloudtrail","suppression_query":"env:test","tags":["technique:T1110-brute-force","source:cloudtrail"]},"type":"suppressions"}}' headers: accept: - application/json @@ -11,9 +10,8 @@ interactions: uri: https://api.datadoghq.com/api/v2/security_monitoring/configuration/suppressions response: body: - string: '{"data":{"id":"ucv-bpf-4bc","type":"suppressions","attributes":{"creation_date":1768411745950,"creator":{"handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","name":"CI - Account"},"data_exclusion_query":"","description":"Test-Update_a_suppression_rule_returns_OK_response-1768411745","editable":true,"enabled":true,"name":"suppression - Test-Update_a_suppression_rule_returns_OK_response-1768411745","rule_query":"source:cloudtrail","suppression_query":"env:test","tags":["source:cloudtrail","technique:T1110-brute-force"],"update_date":1768411745950,"updater":{"handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","name":"CI + string: '{"data":{"id":"uqt-hh6-qbq","type":"suppressions","attributes":{"creation_date":1762518448839,"creator":{"handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","name":"CI + Account"},"data_exclusion_query":"","description":"Test-Update_a_suppression_rule_returns_OK_response-1762518448","editable":true,"enabled":true,"name":"Test-Update_a_suppression_rule_returns_OK_response-1762518448","rule_query":"source:cloudtrail","suppression_query":"env:test","tags":["source:cloudtrail","technique:T1110-brute-force"],"update_date":1762518448839,"updater":{"handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","name":"CI Account"},"version":1}}}' headers: content-type: @@ -29,13 +27,12 @@ interactions: content-type: - application/json method: PATCH - uri: https://api.datadoghq.com/api/v2/security_monitoring/configuration/suppressions/ucv-bpf-4bc + uri: https://api.datadoghq.com/api/v2/security_monitoring/configuration/suppressions/uqt-hh6-qbq response: body: - string: '{"data":{"id":"ucv-bpf-4bc","type":"suppressions","attributes":{"creation_date":1768411745950,"creator":{"handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","name":"CI - Account"},"data_exclusion_query":"","description":"Test-Update_a_suppression_rule_returns_OK_response-1768411745","editable":true,"enabled":true,"name":"suppression - Test-Update_a_suppression_rule_returns_OK_response-1768411745","rule_query":"source:cloudtrail","suppression_query":"env:staging - status:low","tags":["source:cloudtrail","technique:T1110-brute-force"],"update_date":1768411746111,"updater":{"handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","name":"CI + string: '{"data":{"id":"uqt-hh6-qbq","type":"suppressions","attributes":{"creation_date":1762518448839,"creator":{"handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","name":"CI + Account"},"data_exclusion_query":"","description":"Test-Update_a_suppression_rule_returns_OK_response-1762518448","editable":true,"enabled":true,"name":"Test-Update_a_suppression_rule_returns_OK_response-1762518448","rule_query":"source:cloudtrail","suppression_query":"env:staging + status:low","tags":["source:cloudtrail","technique:T1110-brute-force"],"update_date":1762518449150,"updater":{"handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","name":"CI Account"},"version":2}}}' headers: content-type: @@ -49,7 +46,7 @@ interactions: accept: - '*/*' method: DELETE - uri: https://api.datadoghq.com/api/v2/security_monitoring/configuration/suppressions/ucv-bpf-4bc + uri: https://api.datadoghq.com/api/v2/security_monitoring/configuration/suppressions/uqt-hh6-qbq response: body: string: '' 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/given.json b/tests/v2/features/given.json index 9d69fd33f2..c717223ca7 100644 --- a/tests/v2/features/given.json +++ b/tests/v2/features/given.json @@ -1035,7 +1035,7 @@ "parameters": [ { "name": "body", - "value": "{\n \"data\": {\n \"type\": \"suppressions\",\n \"attributes\": {\n \"enabled\": true,\n \"name\": \"suppression {{ unique }}\",\n \"description\": \"{{ unique }}\",\n \"rule_query\": \"source:cloudtrail\",\n \"suppression_query\": \"env:test\",\n \"tags\": [\"technique:T1110-brute-force\", \"source:cloudtrail\"]\n }\n }\n}" + "value": "{\n \"data\": {\n \"type\": \"suppressions\",\n \"attributes\": {\n \"enabled\": true,\n \"name\": \"{{ unique }}\",\n \"description\": \"{{ unique }}\",\n \"rule_query\": \"source:cloudtrail\",\n \"suppression_query\": \"env:test\",\n \"tags\": [\"technique:T1110-brute-force\", \"source:cloudtrail\"]\n }\n }\n}" } ], "step": "there is a valid \"suppression\" in the system", @@ -1043,18 +1043,6 @@ "tag": "Security Monitoring", "operationId": "CreateSecurityMonitoringSuppression" }, - { - "parameters": [ - { - "name": "body", - "value": "{\n \"data\": {\n \"type\": \"suppressions\",\n \"attributes\": {\n \"enabled\": true,\n \"name\": \"suppression2 {{ unique }}\",\n \"description\": \"{{ unique }}\",\n \"rule_query\": \"source:cloudtrail\",\n \"suppression_query\": \"env:test\",\n \"tags\": [\"technique:T1110-brute-force\", \"source:cloudtrail\"]\n }\n }\n}" - } - ], - "step": "there is a valid \"suppression2\" in the system", - "key": "suppression2", - "tag": "Security Monitoring", - "operationId": "CreateSecurityMonitoringSuppression" - }, { "parameters": [ { diff --git a/tests/v2/features/security_monitoring.feature b/tests/v2/features/security_monitoring.feature index 60e9df68bb..2a6c599c30 100644 --- a/tests/v2/features/security_monitoring.feature +++ b/tests/v2/features/security_monitoring.feature @@ -1124,40 +1124,6 @@ Feature: Security Monitoring When the request is sent Then the response status is 200 OK - @team:DataDog/k9-cloud-security-platform - Scenario: Get all suppression rules returns "OK" response with pagination - Given new "ListSecurityMonitoringSuppressions" request - And there is a valid "suppression" in the system - And there is a valid "suppression2" in the system - And request contains "page[size]" parameter with value 1 - And request contains "page[number]" parameter with value 0 - And request contains "query" parameter with value "id:{{ suppression.data.id }} OR id:{{ suppression2.data.id }}" - When the request is sent - Then the response status is 200 OK - And the response "data" has length 1 - - @team:DataDog/k9-cloud-security-platform - Scenario: Get all suppression rules returns "OK" response with sort ascending - Given new "ListSecurityMonitoringSuppressions" request - And there is a valid "suppression" in the system - And there is a valid "suppression2" in the system - And request contains "sort" parameter with value "name" - And request contains "query" parameter with value "id:{{ suppression.data.id }} OR id:{{ suppression2.data.id }}" - When the request is sent - Then the response status is 200 OK - And the response "data[0].attributes.name" is equal to "suppression {{ unique }}" - - @team:DataDog/k9-cloud-security-platform - Scenario: Get all suppression rules returns "OK" response with sort descending - Given new "ListSecurityMonitoringSuppressions" request - And there is a valid "suppression" in the system - And there is a valid "suppression2" in the system - And request contains "sort" parameter with value "-name" - And request contains "query" parameter with value "id:{{ suppression.data.id }} OR id:{{ suppression2.data.id }}" - When the request is sent - Then the response status is 200 OK - And the response "data[0].attributes.name" is equal to "suppression2 {{ unique }}" - @skip @team:DataDog/k9-cloud-security-platform Scenario: Get critical assets affecting a specific rule returns "Not Found" response Given new "GetCriticalAssetsAffectingRule" request 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