Assign or unassign security findings.
You can assign up to 100 security findings per request. Set assignee_id to the unique identifier of the Datadog user you want to assign the findings to. Omit assignee_id (or set it to null) to unassign the findings. Per-finding warnings and failures are returned in the response meta object.
This endpoint requires
any
of the following permissions:
Per-finding warnings and failures produced while processing the bulk assignee request.
failures
[object]
Findings that could not be assigned or unassigned.
detail [required]
string
Human-readable explanation of the outcome.
finding_id [required]
string
Unique identifier of the security finding.
status [required]
int32
HTTP-like status code describing the outcome for this finding.
title [required]
string
Short label describing the outcome for this finding.
warnings
[object]
Findings for which the assignment succeeded but a non-critical error occurred during processing.
detail [required]
string
Human-readable explanation of the outcome.
finding_id [required]
string
Unique identifier of the security finding.
status [required]
int32
HTTP-like status code describing the outcome for this finding.
title [required]
string
Short label describing the outcome for this finding.
{"data":{"attributes":{"assignee_id":"f315bdaf-9ee7-4808-a9c1-99c15bf0f4d0"},"id":"00000000-0000-0000-0000-000000000001","type":"assignee"},"meta":{"failures":[{"detail":"failed to update finding assignee","finding_id":"ZGVmLTAwcC1pZXJ-aS0wZjhjNjMyZDNmMzRlZTgzNw==","status":500,"title":"Internal Server Error"}],"warnings":[{"detail":"failed to update finding assignee","finding_id":"ZGVmLTAwcC1pZXJ-aS0wZjhjNjMyZDNmMzRlZTgzNw==","status":500,"title":"Internal Server Error"}]}}
DD_SITE="datadoghq.comus3.datadoghq.comus5.datadoghq.comdatadoghq.euap1.datadoghq.comap2.datadoghq.comuk1.datadoghq.comddog-gov.comus2.ddog-gov.com"DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>"python3"example.py"
# Assign or unassign security findings returns "Accepted" responserequire"datadog_api_client"DatadogAPIClient.configuredo|config|config.access_token=ENV["DD_BEARER_TOKEN"]config.unstable_operations["v2.update_findings_assignee".to_sym]=trueendapi_instance=DatadogAPIClient::V2::SecurityMonitoringAPI.newbody=DatadogAPIClient::V2::AssigneeRequest.new({data:DatadogAPIClient::V2::AssigneeRequestData.new({attributes:DatadogAPIClient::V2::AssigneeRequestDataAttributes.new({assignee_id:"f315bdaf-9ee7-4808-a9c1-99c15bf0f4d0",}),id:"00000000-0000-0000-0000-000000000001",relationships:DatadogAPIClient::V2::AssigneeRequestDataRelationships.new({findings:DatadogAPIClient::V2::Findings.new({data:[DatadogAPIClient::V2::FindingData.new({id:"ZGVmLTAwcC1pZXJ-aS0wZjhjNjMyZDNmMzRlZTgzNw==",type:DatadogAPIClient::V2::FindingDataType::FINDINGS,}),],}),}),type:DatadogAPIClient::V2::AssigneeDataType::ASSIGNEE,}),})papi_instance.update_findings_assignee(body)
DD_SITE="datadoghq.comus3.datadoghq.comus5.datadoghq.comdatadoghq.euap1.datadoghq.comap2.datadoghq.comuk1.datadoghq.comddog-gov.comus2.ddog-gov.com"DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>"rb"example.rb"
// Assign or unassign security findings returns "Accepted" responsepackagemainimport("context""encoding/json""fmt""os""github.com/DataDog/datadog-api-client-go/v2/api/datadog""github.com/DataDog/datadog-api-client-go/v2/api/datadogV2")funcmain(){body:=datadogV2.AssigneeRequest{Data:datadogV2.AssigneeRequestData{Attributes:&datadogV2.AssigneeRequestDataAttributes{AssigneeId:datadog.PtrString("f315bdaf-9ee7-4808-a9c1-99c15bf0f4d0"),},Id:datadog.PtrString("00000000-0000-0000-0000-000000000001"),Relationships:datadogV2.AssigneeRequestDataRelationships{Findings:datadogV2.Findings{Data:[]datadogV2.FindingData{{Id:"ZGVmLTAwcC1pZXJ-aS0wZjhjNjMyZDNmMzRlZTgzNw==",Type:datadogV2.FINDINGDATATYPE_FINDINGS,},},},},Type:datadogV2.ASSIGNEEDATATYPE_ASSIGNEE,},}ctx:=datadog.NewDefaultContext(context.Background())ctx=context.WithValue(ctx,datadog.ContextAccessToken,os.Getenv("DD_BEARER_TOKEN"))configuration:=datadog.NewConfiguration()configuration.SetUnstableOperationEnabled("v2.UpdateFindingsAssignee",true)apiClient:=datadog.NewAPIClient(configuration)api:=datadogV2.NewSecurityMonitoringApi(apiClient)resp,r,err:=api.UpdateFindingsAssignee(ctx,body)iferr!=nil{fmt.Fprintf(os.Stderr,"Error when calling `SecurityMonitoringApi.UpdateFindingsAssignee`: %v\n",err)fmt.Fprintf(os.Stderr,"Full HTTP response: %v\n",r)}responseContent,_:=json.MarshalIndent(resp,""," ")fmt.Fprintf(os.Stdout,"Response from `SecurityMonitoringApi.UpdateFindingsAssignee`:\n%s\n",responseContent)}
DD_SITE="datadoghq.comus3.datadoghq.comus5.datadoghq.comdatadoghq.euap1.datadoghq.comap2.datadoghq.comuk1.datadoghq.comddog-gov.comus2.ddog-gov.com"DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>"go run"main.go"
// Assign or unassign security findings returns "Accepted" responseimportcom.datadog.api.client.ApiClient;importcom.datadog.api.client.ApiException;importcom.datadog.api.client.v2.api.SecurityMonitoringApi;importcom.datadog.api.client.v2.model.AssigneeDataType;importcom.datadog.api.client.v2.model.AssigneeRequest;importcom.datadog.api.client.v2.model.AssigneeRequestData;importcom.datadog.api.client.v2.model.AssigneeRequestDataAttributes;importcom.datadog.api.client.v2.model.AssigneeRequestDataRelationships;importcom.datadog.api.client.v2.model.AssigneeResponse;importcom.datadog.api.client.v2.model.FindingData;importcom.datadog.api.client.v2.model.FindingDataType;importcom.datadog.api.client.v2.model.Findings;importjava.util.Collections;publicclassExample{publicstaticvoidmain(String[]args){ApiClientdefaultClient=ApiClient.getDefaultApiClient();defaultClient.setAccessToken(System.getenv("DD_BEARER_TOKEN"));defaultClient.setUnstableOperationEnabled("v2.updateFindingsAssignee",true);SecurityMonitoringApiapiInstance=newSecurityMonitoringApi(defaultClient);AssigneeRequestbody=newAssigneeRequest().data(newAssigneeRequestData().attributes(newAssigneeRequestDataAttributes().assigneeId("f315bdaf-9ee7-4808-a9c1-99c15bf0f4d0")).id("00000000-0000-0000-0000-000000000001").relationships(newAssigneeRequestDataRelationships().findings(newFindings().data(Collections.singletonList(newFindingData().id("ZGVmLTAwcC1pZXJ-aS0wZjhjNjMyZDNmMzRlZTgzNw==").type(FindingDataType.FINDINGS))))).type(AssigneeDataType.ASSIGNEE));try{AssigneeResponseresult=apiInstance.updateFindingsAssignee(body);System.out.println(result);}catch(ApiExceptione){System.err.println("Exception when calling SecurityMonitoringApi#updateFindingsAssignee");System.err.println("Status code: "+e.getCode());System.err.println("Reason: "+e.getResponseBody());System.err.println("Response headers: "+e.getResponseHeaders());e.printStackTrace();}}}
DD_SITE="datadoghq.comus3.datadoghq.comus5.datadoghq.comdatadoghq.euap1.datadoghq.comap2.datadoghq.comuk1.datadoghq.comddog-gov.comus2.ddog-gov.com"DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>"java"Example.java"
// Assign or unassign security findings returns "Accepted" response
usedatadog_api_client::datadog;usedatadog_api_client::datadogV2::api_security_monitoring::SecurityMonitoringAPI;usedatadog_api_client::datadogV2::model::AssigneeDataType;usedatadog_api_client::datadogV2::model::AssigneeRequest;usedatadog_api_client::datadogV2::model::AssigneeRequestData;usedatadog_api_client::datadogV2::model::AssigneeRequestDataAttributes;usedatadog_api_client::datadogV2::model::AssigneeRequestDataRelationships;usedatadog_api_client::datadogV2::model::FindingData;usedatadog_api_client::datadogV2::model::FindingDataType;usedatadog_api_client::datadogV2::model::Findings;#[tokio::main]asyncfnmain(){letbody=AssigneeRequest::new(AssigneeRequestData::new(AssigneeRequestDataRelationships::new(Findings::new().data(vec![FindingData::new("ZGVmLTAwcC1pZXJ-aS0wZjhjNjMyZDNmMzRlZTgzNw==".to_string(),FindingDataType::FINDINGS,)])),AssigneeDataType::ASSIGNEE,).attributes(AssigneeRequestDataAttributes::new().assignee_id("f315bdaf-9ee7-4808-a9c1-99c15bf0f4d0".to_string()),).id("00000000-0000-0000-0000-000000000001".to_string()),);letmutconfiguration=datadog::Configuration::new();configuration.set_unstable_operation_enabled("v2.UpdateFindingsAssignee",true);letapi=SecurityMonitoringAPI::with_config(configuration);letresp=api.update_findings_assignee(body).await;ifletOk(value)=resp{println!("{:#?}",value);}else{println!("{:#?}",resp.unwrap_err());}}
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
/**
* Assign or unassign security findings returns "Accepted" response
*/import{client,v2}from"@datadog/datadog-api-client";constconfiguration=client.createConfiguration({authMethods:{AuthZ:{accessToken: process.env.DD_BEARER_TOKENasstring,},},});configuration.unstableOperations["v2.updateFindingsAssignee"]=true;constapiInstance=newv2.SecurityMonitoringApi(configuration);constparams: v2.SecurityMonitoringApiUpdateFindingsAssigneeRequest={body:{data:{attributes:{assigneeId:"f315bdaf-9ee7-4808-a9c1-99c15bf0f4d0",},id:"00000000-0000-0000-0000-000000000001",relationships:{findings:{data:[{id:"ZGVmLTAwcC1pZXJ-aS0wZjhjNjMyZDNmMzRlZTgzNw==",type:"findings",},],},},type:"assignee",},},};apiInstance.updateFindingsAssignee(params).then((data: v2.AssigneeResponse)=>{console.log("API called successfully. Returned data: "+JSON.stringify(data));}).catch((error: any)=>console.error(error));
DD_SITE="datadoghq.comus3.datadoghq.comus5.datadoghq.comdatadoghq.euap1.datadoghq.comap2.datadoghq.comuk1.datadoghq.comddog-gov.comus2.ddog-gov.com"DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>"tsc"example.ts"
Request a personalized demo
Get Started with Datadog
Ask AI
AI-generated responses may be inaccurate. Verify important info.