Data Access Controls in Datadog is a feature that allows administrators and access managers to regulate
access to sensitive data. By defining Restricted Datasets, you can ensure that only specific teams or roles can
view certain types of telemetry (for example, logs, traces, metrics, and RUM data).
List of access principals, formatted as principal_type:id. Principal can be 'team' or 'role'.
product_filters [required]
[object]
List of product-specific filters.
filters [required]
[string]
Defines the list of tag-based filters used to restrict access to telemetry data for a specific product.
These filters act as access control rules. Each filter must follow the tag query syntax used by
Datadog (such as @tag.key:value), and only one tag or attribute may be used to define the access strategy
per telemetry type.
product [required]
string
Name of the product the dataset is for. Possible values are 'apm', 'rum', 'synthetics',
'metrics', 'logs', 'sd_repoinfo', 'error_tracking', 'cloud_cost', and 'ml_obs'.
List of access principals, formatted as principal_type:id. Principal can be 'team' or 'role'.
product_filters [required]
[object]
List of product-specific filters.
filters [required]
[string]
Defines the list of tag-based filters used to restrict access to telemetry data for a specific product.
These filters act as access control rules. Each filter must follow the tag query syntax used by
Datadog (such as @tag.key:value), and only one tag or attribute may be used to define the access strategy
per telemetry type.
product [required]
string
Name of the product the dataset is for. Possible values are 'apm', 'rum', 'synthetics',
'metrics', 'logs', 'sd_repoinfo', 'error_tracking', 'cloud_cost', and 'ml_obs'.
DD_SITE="datadoghq.comus3.datadoghq.comus5.datadoghq.comdatadoghq.euap1.datadoghq.comap2.datadoghq.comddog-gov.com"DD_API_KEY="<DD_API_KEY>"DD_APP_KEY="<DD_APP_KEY>"cargo run
/**
* Create a dataset returns "OK" response
*/import{client,v2}from"@datadog/datadog-api-client";constconfiguration=client.createConfiguration();constapiInstance=newv2.DatasetsApi(configuration);constparams: v2.DatasetsApiCreateDatasetRequest={body:{data:{attributes:{createdAt: undefined,name:"Security Audit Dataset",principals:["role:86245fce-0a4e-11f0-92bd-da7ad0900002"],productFilters:[{filters:["@application.id:ABCD"],product:"logs",},],},id:"123e4567-e89b-12d3-a456-426614174000",type:"dataset",},},};apiInstance.createDataset(params).then((data: v2.DatasetResponseSingle)=>{console.log("API called successfully. Returned data: "+JSON.stringify(data));}).catch((error: any)=>console.error(error));
List of access principals, formatted as principal_type:id. Principal can be 'team' or 'role'.
product_filters [required]
[object]
List of product-specific filters.
filters [required]
[string]
Defines the list of tag-based filters used to restrict access to telemetry data for a specific product.
These filters act as access control rules. Each filter must follow the tag query syntax used by
Datadog (such as @tag.key:value), and only one tag or attribute may be used to define the access strategy
per telemetry type.
product [required]
string
Name of the product the dataset is for. Possible values are 'apm', 'rum', 'synthetics',
'metrics', 'logs', 'sd_repoinfo', 'error_tracking', 'cloud_cost', and 'ml_obs'.
"""
Get a single dataset by ID returns "OK" response
"""fromdatadog_api_clientimportApiClient,Configurationfromdatadog_api_client.v2.api.datasets_apiimportDatasetsApiconfiguration=Configuration()withApiClient(configuration)asapi_client:api_instance=DatasetsApi(api_client)response=api_instance.get_dataset(dataset_id="dataset_id",)print(response)
# Get a single dataset by ID returns "OK" responserequire"datadog_api_client"api_instance=DatadogAPIClient::V2::DatasetsAPI.newpapi_instance.get_dataset("dataset_id")
// Get a single dataset by ID returns "OK" response
packagemainimport("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(){ctx:=datadog.NewDefaultContext(context.Background())configuration:=datadog.NewConfiguration()apiClient:=datadog.NewAPIClient(configuration)api:=datadogV2.NewDatasetsApi(apiClient)resp,r,err:=api.GetDataset(ctx,"dataset_id")iferr!=nil{fmt.Fprintf(os.Stderr,"Error when calling `DatasetsApi.GetDataset`: %v\n",err)fmt.Fprintf(os.Stderr,"Full HTTP response: %v\n",r)}responseContent,_:=json.MarshalIndent(resp,""," ")fmt.Fprintf(os.Stdout,"Response from `DatasetsApi.GetDataset`:\n%s\n",responseContent)}
// Get a single dataset by ID returns "OK" responseimportcom.datadog.api.client.ApiClient;importcom.datadog.api.client.ApiException;importcom.datadog.api.client.v2.api.DatasetsApi;importcom.datadog.api.client.v2.model.DatasetResponseSingle;publicclassExample{publicstaticvoidmain(String[]args){ApiClientdefaultClient=ApiClient.getDefaultApiClient();DatasetsApiapiInstance=newDatasetsApi(defaultClient);try{DatasetResponseSingleresult=apiInstance.getDataset("dataset_id");System.out.println(result);}catch(ApiExceptione){System.err.println("Exception when calling DatasetsApi#getDataset");System.err.println("Status code: "+e.getCode());System.err.println("Reason: "+e.getResponseBody());System.err.println("Response headers: "+e.getResponseHeaders());e.printStackTrace();}}}
// Get a single dataset by ID returns "OK" response
usedatadog_api_client::datadog;usedatadog_api_client::datadogV2::api_datasets::DatasetsAPI;#[tokio::main]asyncfnmain(){letconfiguration=datadog::Configuration::new();letapi=DatasetsAPI::with_config(configuration);letresp=api.get_dataset("dataset_id".to_string()).await;ifletOk(value)=resp{println!("{:#?}",value);}else{println!("{:#?}",resp.unwrap_err());}}
DD_SITE="datadoghq.comus3.datadoghq.comus5.datadoghq.comdatadoghq.euap1.datadoghq.comap2.datadoghq.comddog-gov.com"DD_API_KEY="<DD_API_KEY>"DD_APP_KEY="<DD_APP_KEY>"cargo run
/**
* Get a single dataset by ID returns "OK" response
*/import{client,v2}from"@datadog/datadog-api-client";constconfiguration=client.createConfiguration();constapiInstance=newv2.DatasetsApi(configuration);constparams: v2.DatasetsApiGetDatasetRequest={datasetId:"dataset_id",};apiInstance.getDataset(params).then((data: v2.DatasetResponseSingle)=>{console.log("API called successfully. Returned data: "+JSON.stringify(data));}).catch((error: any)=>console.error(error));
List of access principals, formatted as principal_type:id. Principal can be 'team' or 'role'.
product_filters [required]
[object]
List of product-specific filters.
filters [required]
[string]
Defines the list of tag-based filters used to restrict access to telemetry data for a specific product.
These filters act as access control rules. Each filter must follow the tag query syntax used by
Datadog (such as @tag.key:value), and only one tag or attribute may be used to define the access strategy
per telemetry type.
product [required]
string
Name of the product the dataset is for. Possible values are 'apm', 'rum', 'synthetics',
'metrics', 'logs', 'sd_repoinfo', 'error_tracking', 'cloud_cost', and 'ml_obs'.
"""
Get all datasets returns "OK" response
"""fromdatadog_api_clientimportApiClient,Configurationfromdatadog_api_client.v2.api.datasets_apiimportDatasetsApiconfiguration=Configuration()withApiClient(configuration)asapi_client:api_instance=DatasetsApi(api_client)response=api_instance.get_all_datasets()print(response)
// Get all datasets returns "OK" response
packagemainimport("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(){ctx:=datadog.NewDefaultContext(context.Background())configuration:=datadog.NewConfiguration()apiClient:=datadog.NewAPIClient(configuration)api:=datadogV2.NewDatasetsApi(apiClient)resp,r,err:=api.GetAllDatasets(ctx)iferr!=nil{fmt.Fprintf(os.Stderr,"Error when calling `DatasetsApi.GetAllDatasets`: %v\n",err)fmt.Fprintf(os.Stderr,"Full HTTP response: %v\n",r)}responseContent,_:=json.MarshalIndent(resp,""," ")fmt.Fprintf(os.Stdout,"Response from `DatasetsApi.GetAllDatasets`:\n%s\n",responseContent)}
// Get all datasets returns "OK" responseimportcom.datadog.api.client.ApiClient;importcom.datadog.api.client.ApiException;importcom.datadog.api.client.v2.api.DatasetsApi;importcom.datadog.api.client.v2.model.DatasetResponseMulti;publicclassExample{publicstaticvoidmain(String[]args){ApiClientdefaultClient=ApiClient.getDefaultApiClient();DatasetsApiapiInstance=newDatasetsApi(defaultClient);try{DatasetResponseMultiresult=apiInstance.getAllDatasets();System.out.println(result);}catch(ApiExceptione){System.err.println("Exception when calling DatasetsApi#getAllDatasets");System.err.println("Status code: "+e.getCode());System.err.println("Reason: "+e.getResponseBody());System.err.println("Response headers: "+e.getResponseHeaders());e.printStackTrace();}}}
// Get all datasets returns "OK" response
usedatadog_api_client::datadog;usedatadog_api_client::datadogV2::api_datasets::DatasetsAPI;#[tokio::main]asyncfnmain(){letconfiguration=datadog::Configuration::new();letapi=DatasetsAPI::with_config(configuration);letresp=api.get_all_datasets().await;ifletOk(value)=resp{println!("{:#?}",value);}else{println!("{:#?}",resp.unwrap_err());}}
DD_SITE="datadoghq.comus3.datadoghq.comus5.datadoghq.comdatadoghq.euap1.datadoghq.comap2.datadoghq.comddog-gov.com"DD_API_KEY="<DD_API_KEY>"DD_APP_KEY="<DD_APP_KEY>"cargo run
/**
* Get all datasets returns "OK" response
*/import{client,v2}from"@datadog/datadog-api-client";constconfiguration=client.createConfiguration();constapiInstance=newv2.DatasetsApi(configuration);apiInstance.getAllDatasets().then((data: v2.DatasetResponseMulti)=>{console.log("API called successfully. Returned data: "+JSON.stringify(data));}).catch((error: any)=>console.error(error));
"""
Delete a dataset returns "No Content" response
"""fromdatadog_api_clientimportApiClient,Configurationfromdatadog_api_client.v2.api.datasets_apiimportDatasetsApiconfiguration=Configuration()withApiClient(configuration)asapi_client:api_instance=DatasetsApi(api_client)api_instance.delete_dataset(dataset_id="dataset_id",)
# Delete a dataset returns "No Content" responserequire"datadog_api_client"api_instance=DatadogAPIClient::V2::DatasetsAPI.newapi_instance.delete_dataset("dataset_id")
// Delete a dataset returns "No Content" response
usedatadog_api_client::datadog;usedatadog_api_client::datadogV2::api_datasets::DatasetsAPI;#[tokio::main]asyncfnmain(){letconfiguration=datadog::Configuration::new();letapi=DatasetsAPI::with_config(configuration);letresp=api.delete_dataset("dataset_id".to_string()).await;ifletOk(value)=resp{println!("{:#?}",value);}else{println!("{:#?}",resp.unwrap_err());}}
DD_SITE="datadoghq.comus3.datadoghq.comus5.datadoghq.comdatadoghq.euap1.datadoghq.comap2.datadoghq.comddog-gov.com"DD_API_KEY="<DD_API_KEY>"DD_APP_KEY="<DD_APP_KEY>"cargo run
/**
* Delete a dataset returns "No Content" response
*/import{client,v2}from"@datadog/datadog-api-client";constconfiguration=client.createConfiguration();constapiInstance=newv2.DatasetsApi(configuration);constparams: v2.DatasetsApiDeleteDatasetRequest={datasetId:"dataset_id",};apiInstance.deleteDataset(params).then((data: any)=>{console.log("API called successfully. Returned data: "+JSON.stringify(data));}).catch((error: any)=>console.error(error));