Detach security findings from their case

DELETE https://api.ap1.datadoghq.com/api/v2/security/findings/caseshttps://api.ap2.datadoghq.com/api/v2/security/findings/caseshttps://api.datadoghq.eu/api/v2/security/findings/caseshttps://api.ddog-gov.com/api/v2/security/findings/caseshttps://api.us2.ddog-gov.com/api/v2/security/findings/caseshttps://api.uk1.datadoghq.com/api/v2/security/findings/caseshttps://api.datadoghq.com/api/v2/security/findings/caseshttps://api.us3.datadoghq.com/api/v2/security/findings/caseshttps://api.us5.datadoghq.com/api/v2/security/findings/cases

Présentation

Dissocier les résultats de sécurité de leur cas. Cette opération dissocie les résultats de sécurité de leurs cas associés sans supprimer les cas eux-mêmes. Vous pouvez dissocier des résultats de sécurité de plusieurs cas différents en une seule requête, avec une limite de 50 résultats de sécurité par requête. Les résultats de sécurité qui ne sont actuellement associés à aucun cas seront ignorés. This endpoint requires any of the following permissions:

  • security_monitoring_findings_write
  • appsec_vm_write

  • Requête

    Body Data (required)

    Expand All

    Champ

    Type

    Description

    data

    object

    Data for detaching security findings from their case.

    relationships

    object

    Relationships detaching security findings from their case.

    findings [required]

    object

    Security findings to detach from their case.

    data

    [object]

    Array of security finding data objects.

    id [required]

    string

    Unique identifier of the security finding.

    type [required]

    enum

    Security findings resource type. Allowed enum values: findings

    default: findings

    type [required]

    enum

    Cases resource type. Allowed enum values: cases

    default: cases

    {
      "data": {
        "relationships": {
          "findings": {
            "data": [
              {
                "id": "YzM2MTFjYzcyNmY0Zjg4MTAxZmRlNjQ1MWU1ZGQwYzR-YzI5NzE5Y2Y4MzU4ZjliNzhkNjYxNTY0ODIzZDQ2YTM=",
                "type": "findings"
              }
            ]
          }
        },
        "type": "cases"
      }
    }

    Réponse

    No Content

    Bad Request

    API error response.

    Expand All

    Champ

    Type

    Description

    errors [required]

    [string]

    A list of errors.

    {
      "errors": [
        "Bad Request"
      ]
    }

    Not Found

    API error response.

    Expand All

    Champ

    Type

    Description

    errors [required]

    [string]

    A list of errors.

    {
      "errors": [
        "Bad Request"
      ]
    }

    Too many requests

    API error response.

    Expand All

    Champ

    Type

    Description

    errors [required]

    [string]

    A list of errors.

    {
      "errors": [
        "Bad Request"
      ]
    }

    Exemple de code

                              ## default
    # 
    
    # Curl command
    curl -X DELETE "https://api.ap1.datadoghq.com"https://api.ap2.datadoghq.com"https://api.datadoghq.eu"https://api.ddog-gov.com"https://api.us2.ddog-gov.com"https://api.uk1.datadoghq.com"https://api.datadoghq.com"https://api.us3.datadoghq.com"https://api.us5.datadoghq.com/api/v2/security/findings/cases" \ -H "Content-Type: application/json" \ -H "DD-API-KEY: ${DD_API_KEY}" \ -H "DD-APPLICATION-KEY: ${DD_APP_KEY}" \ -d @- << EOF { "data": { "relationships": { "findings": { "data": [ { "id": "ZGVmLTAwcC1pZXJ-aS0wZjhjNjMyZDNmMzRlZTgzNw==", "type": "findings" } ] } }, "type": "cases" } } EOF
    // Detach security findings from their case returns "No Content" response
    
    package main
    
    import (
    	"context"
    	"fmt"
    	"os"
    
    	"github.com/DataDog/datadog-api-client-go/v2/api/datadog"
    	"github.com/DataDog/datadog-api-client-go/v2/api/datadogV2"
    )
    
    func main() {
    	body := datadogV2.DetachCaseRequest{
    		Data: &datadogV2.DetachCaseRequestData{
    			Relationships: &datadogV2.DetachCaseRequestDataRelationships{
    				Findings: datadogV2.Findings{
    					Data: []datadogV2.FindingData{
    						{
    							Id:   "YzM2MTFjYzcyNmY0Zjg4MTAxZmRlNjQ1MWU1ZGQwYzR-YzI5NzE5Y2Y4MzU4ZjliNzhkNjYxNTY0ODIzZDQ2YTM=",
    							Type: datadogV2.FINDINGDATATYPE_FINDINGS,
    						},
    					},
    				},
    			},
    			Type: datadogV2.CASEDATATYPE_CASES,
    		},
    	}
    	ctx := datadog.NewDefaultContext(context.Background())
    	configuration := datadog.NewConfiguration()
    	apiClient := datadog.NewAPIClient(configuration)
    	api := datadogV2.NewSecurityMonitoringApi(apiClient)
    	r, err := api.DetachCase(ctx, body)
    
    	if err != nil {
    		fmt.Fprintf(os.Stderr, "Error when calling `SecurityMonitoringApi.DetachCase`: %v\n", err)
    		fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
    	}
    }
    

    Instructions

    First install the library and its dependencies and then save the example to main.go and run following commands:

        
    DD_SITE="datadoghq.comus3.datadoghq.comus5.datadoghq.comdatadoghq.euap1.datadoghq.comap2.datadoghq.comuk1.datadoghq.comddog-gov.comus2.ddog-gov.com" DD_API_KEY="<DD_API_KEY>" DD_APP_KEY="<DD_APP_KEY>" go run "main.go"
    // Detach security findings from their case returns "No Content" response
    
    import com.datadog.api.client.ApiClient;
    import com.datadog.api.client.ApiException;
    import com.datadog.api.client.v2.api.SecurityMonitoringApi;
    import com.datadog.api.client.v2.model.CaseDataType;
    import com.datadog.api.client.v2.model.DetachCaseRequest;
    import com.datadog.api.client.v2.model.DetachCaseRequestData;
    import com.datadog.api.client.v2.model.DetachCaseRequestDataRelationships;
    import com.datadog.api.client.v2.model.FindingData;
    import com.datadog.api.client.v2.model.FindingDataType;
    import com.datadog.api.client.v2.model.Findings;
    import java.util.Collections;
    
    public class Example {
      public static void main(String[] args) {
        ApiClient defaultClient = ApiClient.getDefaultApiClient();
        SecurityMonitoringApi apiInstance = new SecurityMonitoringApi(defaultClient);
    
        DetachCaseRequest body =
            new DetachCaseRequest()
                .data(
                    new DetachCaseRequestData()
                        .relationships(
                            new DetachCaseRequestDataRelationships()
                                .findings(
                                    new Findings()
                                        .data(
                                            Collections.singletonList(
                                                new FindingData()
                                                    .id(
                                                        "YzM2MTFjYzcyNmY0Zjg4MTAxZmRlNjQ1MWU1ZGQwYzR-YzI5NzE5Y2Y4MzU4ZjliNzhkNjYxNTY0ODIzZDQ2YTM=")
                                                    .type(FindingDataType.FINDINGS)))))
                        .type(CaseDataType.CASES));
    
        try {
          apiInstance.detachCase(body);
        } catch (ApiException e) {
          System.err.println("Exception when calling SecurityMonitoringApi#detachCase");
          System.err.println("Status code: " + e.getCode());
          System.err.println("Reason: " + e.getResponseBody());
          System.err.println("Response headers: " + e.getResponseHeaders());
          e.printStackTrace();
        }
      }
    }
    

    Instructions

    First install the library and its dependencies and then save the example to Example.java and run following commands:

        
    DD_SITE="datadoghq.comus3.datadoghq.comus5.datadoghq.comdatadoghq.euap1.datadoghq.comap2.datadoghq.comuk1.datadoghq.comddog-gov.comus2.ddog-gov.com" DD_API_KEY="<DD_API_KEY>" DD_APP_KEY="<DD_APP_KEY>" java "Example.java"
    """
    Detach security findings from their case returns "No Content" response
    """
    
    from datadog_api_client import ApiClient, Configuration
    from datadog_api_client.v2.api.security_monitoring_api import SecurityMonitoringApi
    from datadog_api_client.v2.model.case_data_type import CaseDataType
    from datadog_api_client.v2.model.detach_case_request import DetachCaseRequest
    from datadog_api_client.v2.model.detach_case_request_data import DetachCaseRequestData
    from datadog_api_client.v2.model.detach_case_request_data_relationships import DetachCaseRequestDataRelationships
    from datadog_api_client.v2.model.finding_data import FindingData
    from datadog_api_client.v2.model.finding_data_type import FindingDataType
    from datadog_api_client.v2.model.findings import Findings
    
    body = DetachCaseRequest(
        data=DetachCaseRequestData(
            relationships=DetachCaseRequestDataRelationships(
                findings=Findings(
                    data=[
                        FindingData(
                            id="YzM2MTFjYzcyNmY0Zjg4MTAxZmRlNjQ1MWU1ZGQwYzR-YzI5NzE5Y2Y4MzU4ZjliNzhkNjYxNTY0ODIzZDQ2YTM=",
                            type=FindingDataType.FINDINGS,
                        ),
                    ],
                ),
            ),
            type=CaseDataType.CASES,
        ),
    )
    
    configuration = Configuration()
    with ApiClient(configuration) as api_client:
        api_instance = SecurityMonitoringApi(api_client)
        api_instance.detach_case(body=body)
    

    Instructions

    First install the library and its dependencies and then save the example to example.py and run following commands:

        
    DD_SITE="datadoghq.comus3.datadoghq.comus5.datadoghq.comdatadoghq.euap1.datadoghq.comap2.datadoghq.comuk1.datadoghq.comddog-gov.comus2.ddog-gov.com" DD_API_KEY="<DD_API_KEY>" DD_APP_KEY="<DD_APP_KEY>" python3 "example.py"
    # Detach security findings from their case returns "No Content" response
    
    require "datadog_api_client"
    api_instance = DatadogAPIClient::V2::SecurityMonitoringAPI.new
    
    body = DatadogAPIClient::V2::DetachCaseRequest.new({
      data: DatadogAPIClient::V2::DetachCaseRequestData.new({
        relationships: DatadogAPIClient::V2::DetachCaseRequestDataRelationships.new({
          findings: DatadogAPIClient::V2::Findings.new({
            data: [
              DatadogAPIClient::V2::FindingData.new({
                id: "YzM2MTFjYzcyNmY0Zjg4MTAxZmRlNjQ1MWU1ZGQwYzR-YzI5NzE5Y2Y4MzU4ZjliNzhkNjYxNTY0ODIzZDQ2YTM=",
                type: DatadogAPIClient::V2::FindingDataType::FINDINGS,
              }),
            ],
          }),
        }),
        type: DatadogAPIClient::V2::CaseDataType::CASES,
      }),
    })
    api_instance.detach_case(body)
    

    Instructions

    First install the library and its dependencies and then save the example to example.rb and run following commands:

        
    DD_SITE="datadoghq.comus3.datadoghq.comus5.datadoghq.comdatadoghq.euap1.datadoghq.comap2.datadoghq.comuk1.datadoghq.comddog-gov.comus2.ddog-gov.com" DD_API_KEY="<DD_API_KEY>" DD_APP_KEY="<DD_APP_KEY>" rb "example.rb"
    // Detach security findings from their case returns "No Content" response
    use datadog_api_client::datadog;
    use datadog_api_client::datadogV2::api_security_monitoring::SecurityMonitoringAPI;
    use datadog_api_client::datadogV2::model::CaseDataType;
    use datadog_api_client::datadogV2::model::DetachCaseRequest;
    use datadog_api_client::datadogV2::model::DetachCaseRequestData;
    use datadog_api_client::datadogV2::model::DetachCaseRequestDataRelationships;
    use datadog_api_client::datadogV2::model::FindingData;
    use datadog_api_client::datadogV2::model::FindingDataType;
    use datadog_api_client::datadogV2::model::Findings;
    
    #[tokio::main]
    async fn main() {
        let body =
            DetachCaseRequest
            ::new().data(
                DetachCaseRequestData::new(
                    CaseDataType::CASES,
                ).relationships(
                    DetachCaseRequestDataRelationships::new(
                        Findings
                        ::new().data(
                            vec![
                                FindingData::new(
                                    "YzM2MTFjYzcyNmY0Zjg4MTAxZmRlNjQ1MWU1ZGQwYzR-YzI5NzE5Y2Y4MzU4ZjliNzhkNjYxNTY0ODIzZDQ2YTM=".to_string(),
                                    FindingDataType::FINDINGS,
                                )
                            ],
                        ),
                    ),
                ),
            );
        let configuration = datadog::Configuration::new();
        let api = SecurityMonitoringAPI::with_config(configuration);
        let resp = api.detach_case(body).await;
        if let Ok(value) = resp {
            println!("{:#?}", value);
        } else {
            println!("{:#?}", resp.unwrap_err());
        }
    }
    

    Instructions

    First install the library and its dependencies and then save the example to src/main.rs and run following commands:

        
    DD_SITE="datadoghq.comus3.datadoghq.comus5.datadoghq.comdatadoghq.euap1.datadoghq.comap2.datadoghq.comuk1.datadoghq.comddog-gov.comus2.ddog-gov.com" DD_API_KEY="<DD_API_KEY>" DD_APP_KEY="<DD_APP_KEY>" cargo run
    /**
     * Detach security findings from their case returns "No Content" response
     */
    
    import { client, v2 } from "@datadog/datadog-api-client";
    
    const configuration = client.createConfiguration();
    const apiInstance = new v2.SecurityMonitoringApi(configuration);
    
    const params: v2.SecurityMonitoringApiDetachCaseRequest = {
      body: {
        data: {
          relationships: {
            findings: {
              data: [
                {
                  id: "YzM2MTFjYzcyNmY0Zjg4MTAxZmRlNjQ1MWU1ZGQwYzR-YzI5NzE5Y2Y4MzU4ZjliNzhkNjYxNTY0ODIzZDQ2YTM=",
                  type: "findings",
                },
              ],
            },
          },
          type: "cases",
        },
      },
    };
    
    apiInstance
      .detachCase(params)
      .then((data: any) => {
        console.log(
          "API called successfully. Returned data: " + JSON.stringify(data)
        );
      })
      .catch((error: any) => console.error(error));
    

    Instructions

    First install the library and its dependencies and then save the example to example.ts and run following commands:

        
    DD_SITE="datadoghq.comus3.datadoghq.comus5.datadoghq.comdatadoghq.euap1.datadoghq.comap2.datadoghq.comuk1.datadoghq.comddog-gov.comus2.ddog-gov.com" DD_API_KEY="<DD_API_KEY>" DD_APP_KEY="<DD_APP_KEY>" tsc "example.ts"