diff --git a/.generator/schemas/v2/openapi.yaml b/.generator/schemas/v2/openapi.yaml index ea8f0cd3e16..f81a6b9a642 100644 --- a/.generator/schemas/v2/openapi.yaml +++ b/.generator/schemas/v2/openapi.yaml @@ -19695,7 +19695,7 @@ components: properties: name: description: Name of the dataset. - example: "Security Audit Dataset" + example: "Security Audit DAC" type: string principals: description: |- @@ -19731,7 +19731,7 @@ components: type: string name: description: Name of the dataset. - example: "Security Audit Dataset" + example: "Security Audit DAC" type: string principals: description: |- @@ -81697,16 +81697,13 @@ paths: appKeyAuth: [] - AuthZ: - user_access_read - summary: Get all datasets + summary: Get all Data Access Control datasets tags: - - Datasets + - Data Access Controls "x-permission": operator: OR permissions: - user_access_read - x-unstable: |- - **Note: Data Access is in preview. If you have any feedback, - contact [Datadog support](https://docs.datadoghq.com/help/).** post: description: |- Create a dataset with the configurations in the request. @@ -81749,17 +81746,14 @@ paths: appKeyAuth: [] - AuthZ: - user_access_manage - summary: Create a dataset + summary: Create a Data Access Control dataset tags: - - Datasets + - Data Access Controls x-codegen-request-body-name: body x-permission: operator: OR permissions: - user_access_manage - x-unstable: |- - **Note: Data Access is in preview. If you have any feedback, - contact [Datadog support](https://docs.datadoghq.com/help/).** /api/v2/datasets/{dataset_id}: delete: description: Deletes the dataset associated with the ID. @@ -81782,16 +81776,13 @@ paths: appKeyAuth: [] - AuthZ: - user_access_manage - summary: Delete a dataset + summary: Delete a Data Access Control dataset tags: - - Datasets + - Data Access Controls "x-permission": operator: OR permissions: - user_access_manage - x-unstable: |- - **Note: Data Access is in preview. If you have any feedback, - contact [Datadog support](https://docs.datadoghq.com/help/).** get: description: Retrieves the dataset associated with the ID. operationId: GetDataset @@ -81817,15 +81808,12 @@ paths: appKeyAuth: [] - AuthZ: - user_access_read - summary: Get a single dataset by ID + summary: Get a Data Access Control dataset by ID tags: - - Datasets + - Data Access Controls "x-permission": operator: OPEN permissions: [] - x-unstable: |- - **Note: Data Access is in preview. If you have any feedback, - contact [Datadog support](https://docs.datadoghq.com/help/).** put: description: |- Edits the dataset associated with the ID. @@ -81859,17 +81847,14 @@ paths: appKeyAuth: [] - AuthZ: - user_access_manage - summary: Edit a dataset + summary: Edit a Data Access Control dataset tags: - - Datasets + - Data Access Controls x-codegen-request-body-name: body "x-permission": operator: OR permissions: - user_access_manage - x-unstable: |- - **Note: Data Access is in preview. If you have any feedback, - contact [Datadog support](https://docs.datadoghq.com/help/).** /api/v2/deletion/data/{product}: post: description: Creates a data deletion request by providing a query and a timeframe targeting the proper data. @@ -111625,13 +111610,16 @@ tags: organization. name: Dashboard Lists - description: |- - The Data Deletion API allows the user to target and delete data from the allowed products. It's currently enabled for Logs and RUM and depends on `logs_delete_data` and `rum_delete_data` permissions respectively. - name: Data Deletion - - description: |- - Data Access Controls in Datadog is a feature that allows administrators and access managers to regulate + Manage [Data Access Controls](https://docs.datadoghq.com/account_management/rbac/data_access/) + programmatically using Datasets. + + Data Access Controls in Datadog 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). - name: Datasets + name: Data Access Controls + - description: |- + The Data Deletion API allows the user to target and delete data from the allowed products. It's currently enabled for Logs and RUM and depends on `logs_delete_data` and `rum_delete_data` permissions respectively. + name: Data Deletion - description: |- Manage Deployment Gates using this API to reduce the likelihood and impact of incidents caused by deployments. See the [Deployment Gates documentation](https://docs.datadoghq.com/deployment_gates/) for more information. name: Deployment Gates diff --git a/examples/v2/datasets/CreateDataset.java b/examples/v2/data-access-controls/CreateDataset.java similarity index 79% rename from examples/v2/datasets/CreateDataset.java rename to examples/v2/data-access-controls/CreateDataset.java index 6bfa37c9296..6e47cb7e115 100644 --- a/examples/v2/datasets/CreateDataset.java +++ b/examples/v2/data-access-controls/CreateDataset.java @@ -1,8 +1,8 @@ -// Create a dataset returns "OK" response +// Create a Data Access Control dataset returns "OK" response import com.datadog.api.client.ApiClient; import com.datadog.api.client.ApiException; -import com.datadog.api.client.v2.api.DatasetsApi; +import com.datadog.api.client.v2.api.DataAccessControlsApi; import com.datadog.api.client.v2.model.DatasetAttributesRequest; import com.datadog.api.client.v2.model.DatasetCreateRequest; import com.datadog.api.client.v2.model.DatasetRequest; @@ -14,8 +14,7 @@ public class Example { public static void main(String[] args) { ApiClient defaultClient = ApiClient.getDefaultApiClient(); - defaultClient.setUnstableOperationEnabled("v2.createDataset", true); - DatasetsApi apiInstance = new DatasetsApi(defaultClient); + DataAccessControlsApi apiInstance = new DataAccessControlsApi(defaultClient); DatasetCreateRequest body = new DatasetCreateRequest() @@ -23,7 +22,7 @@ public static void main(String[] args) { new DatasetRequest() .attributes( new DatasetAttributesRequest() - .name("Security Audit Dataset") + .name("Security Audit DAC") .principals( Collections.singletonList( "role:94172442-be03-11e9-a77a-3b7612558ac1")) @@ -31,14 +30,14 @@ public static void main(String[] args) { Collections.singletonList( new FiltersPerProduct() .filters(Collections.singletonList("@application.id:ABCD")) - .product("metrics")))) + .product("logs")))) .type(DatasetType.DATASET)); try { DatasetResponseSingle result = apiInstance.createDataset(body); System.out.println(result); } catch (ApiException e) { - System.err.println("Exception when calling DatasetsApi#createDataset"); + System.err.println("Exception when calling DataAccessControlsApi#createDataset"); System.err.println("Status code: " + e.getCode()); System.err.println("Reason: " + e.getResponseBody()); System.err.println("Response headers: " + e.getResponseHeaders()); diff --git a/examples/v2/datasets/DeleteDataset.java b/examples/v2/data-access-controls/DeleteDataset.java similarity index 67% rename from examples/v2/datasets/DeleteDataset.java rename to examples/v2/data-access-controls/DeleteDataset.java index db56c8cfadf..bebdcb1a6b4 100644 --- a/examples/v2/datasets/DeleteDataset.java +++ b/examples/v2/data-access-controls/DeleteDataset.java @@ -1,14 +1,13 @@ -// Delete a dataset returns "No Content" response +// Delete a Data Access Control dataset returns "No Content" response import com.datadog.api.client.ApiClient; import com.datadog.api.client.ApiException; -import com.datadog.api.client.v2.api.DatasetsApi; +import com.datadog.api.client.v2.api.DataAccessControlsApi; public class Example { public static void main(String[] args) { ApiClient defaultClient = ApiClient.getDefaultApiClient(); - defaultClient.setUnstableOperationEnabled("v2.deleteDataset", true); - DatasetsApi apiInstance = new DatasetsApi(defaultClient); + DataAccessControlsApi apiInstance = new DataAccessControlsApi(defaultClient); // there is a valid "dataset" in the system String DATASET_DATA_ID = System.getenv("DATASET_DATA_ID"); @@ -16,7 +15,7 @@ public static void main(String[] args) { try { apiInstance.deleteDataset(DATASET_DATA_ID); } catch (ApiException e) { - System.err.println("Exception when calling DatasetsApi#deleteDataset"); + System.err.println("Exception when calling DataAccessControlsApi#deleteDataset"); System.err.println("Status code: " + e.getCode()); System.err.println("Reason: " + e.getResponseBody()); System.err.println("Response headers: " + e.getResponseHeaders()); diff --git a/examples/v2/datasets/GetAllDatasets.java b/examples/v2/data-access-controls/GetAllDatasets.java similarity index 67% rename from examples/v2/datasets/GetAllDatasets.java rename to examples/v2/data-access-controls/GetAllDatasets.java index 78b96f32548..a3776f1b15b 100644 --- a/examples/v2/datasets/GetAllDatasets.java +++ b/examples/v2/data-access-controls/GetAllDatasets.java @@ -1,21 +1,20 @@ -// Get all datasets returns "OK" response +// Get all Data Access Control datasets returns "OK" response import com.datadog.api.client.ApiClient; import com.datadog.api.client.ApiException; -import com.datadog.api.client.v2.api.DatasetsApi; +import com.datadog.api.client.v2.api.DataAccessControlsApi; import com.datadog.api.client.v2.model.DatasetResponseMulti; public class Example { public static void main(String[] args) { ApiClient defaultClient = ApiClient.getDefaultApiClient(); - defaultClient.setUnstableOperationEnabled("v2.getAllDatasets", true); - DatasetsApi apiInstance = new DatasetsApi(defaultClient); + DataAccessControlsApi apiInstance = new DataAccessControlsApi(defaultClient); try { DatasetResponseMulti result = apiInstance.getAllDatasets(); System.out.println(result); } catch (ApiException e) { - System.err.println("Exception when calling DatasetsApi#getAllDatasets"); + System.err.println("Exception when calling DataAccessControlsApi#getAllDatasets"); System.err.println("Status code: " + e.getCode()); System.err.println("Reason: " + e.getResponseBody()); System.err.println("Response headers: " + e.getResponseHeaders()); diff --git a/examples/v2/datasets/GetDataset.java b/examples/v2/data-access-controls/GetDataset.java similarity index 71% rename from examples/v2/datasets/GetDataset.java rename to examples/v2/data-access-controls/GetDataset.java index 5825ca87c28..9fe40cb88ac 100644 --- a/examples/v2/datasets/GetDataset.java +++ b/examples/v2/data-access-controls/GetDataset.java @@ -1,15 +1,14 @@ -// Get a single dataset by ID returns "OK" response +// Get a Data Access Control dataset by ID returns "OK" response import com.datadog.api.client.ApiClient; import com.datadog.api.client.ApiException; -import com.datadog.api.client.v2.api.DatasetsApi; +import com.datadog.api.client.v2.api.DataAccessControlsApi; import com.datadog.api.client.v2.model.DatasetResponseSingle; public class Example { public static void main(String[] args) { ApiClient defaultClient = ApiClient.getDefaultApiClient(); - defaultClient.setUnstableOperationEnabled("v2.getDataset", true); - DatasetsApi apiInstance = new DatasetsApi(defaultClient); + DataAccessControlsApi apiInstance = new DataAccessControlsApi(defaultClient); // there is a valid "dataset" in the system String DATASET_DATA_ID = System.getenv("DATASET_DATA_ID"); @@ -18,7 +17,7 @@ public static void main(String[] args) { DatasetResponseSingle result = apiInstance.getDataset(DATASET_DATA_ID); System.out.println(result); } catch (ApiException e) { - System.err.println("Exception when calling DatasetsApi#getDataset"); + System.err.println("Exception when calling DataAccessControlsApi#getDataset"); System.err.println("Status code: " + e.getCode()); System.err.println("Reason: " + e.getResponseBody()); System.err.println("Response headers: " + e.getResponseHeaders()); diff --git a/examples/v2/datasets/UpdateDataset.java b/examples/v2/data-access-controls/UpdateDataset.java similarity index 80% rename from examples/v2/datasets/UpdateDataset.java rename to examples/v2/data-access-controls/UpdateDataset.java index a64fc25c96c..84a512a281f 100644 --- a/examples/v2/datasets/UpdateDataset.java +++ b/examples/v2/data-access-controls/UpdateDataset.java @@ -1,8 +1,8 @@ -// Edit a dataset returns "OK" response +// Edit a Data Access Control dataset returns "OK" response import com.datadog.api.client.ApiClient; import com.datadog.api.client.ApiException; -import com.datadog.api.client.v2.api.DatasetsApi; +import com.datadog.api.client.v2.api.DataAccessControlsApi; import com.datadog.api.client.v2.model.DatasetAttributesRequest; import com.datadog.api.client.v2.model.DatasetRequest; import com.datadog.api.client.v2.model.DatasetResponseSingle; @@ -14,8 +14,7 @@ public class Example { public static void main(String[] args) { ApiClient defaultClient = ApiClient.getDefaultApiClient(); - defaultClient.setUnstableOperationEnabled("v2.updateDataset", true); - DatasetsApi apiInstance = new DatasetsApi(defaultClient); + DataAccessControlsApi apiInstance = new DataAccessControlsApi(defaultClient); // there is a valid "dataset" in the system String DATASET_DATA_ID = System.getenv("DATASET_DATA_ID"); @@ -26,7 +25,7 @@ public static void main(String[] args) { new DatasetRequest() .attributes( new DatasetAttributesRequest() - .name("Security Audit Dataset") + .name("Security Audit DAC") .principals( Collections.singletonList( "role:94172442-be03-11e9-a77a-3b7612558ac1")) @@ -34,14 +33,14 @@ public static void main(String[] args) { Collections.singletonList( new FiltersPerProduct() .filters(Collections.singletonList("@application.id:1234")) - .product("metrics")))) + .product("logs")))) .type(DatasetType.DATASET)); try { DatasetResponseSingle result = apiInstance.updateDataset(DATASET_DATA_ID, body); System.out.println(result); } catch (ApiException e) { - System.err.println("Exception when calling DatasetsApi#updateDataset"); + System.err.println("Exception when calling DataAccessControlsApi#updateDataset"); System.err.println("Status code: " + e.getCode()); System.err.println("Reason: " + e.getResponseBody()); System.err.println("Response headers: " + e.getResponseHeaders()); diff --git a/src/main/java/com/datadog/api/client/ApiClient.java b/src/main/java/com/datadog/api/client/ApiClient.java index 03d15246b69..4f7f69d9031 100644 --- a/src/main/java/com/datadog/api/client/ApiClient.java +++ b/src/main/java/com/datadog/api/client/ApiClient.java @@ -815,11 +815,6 @@ public class ApiClient { put("v2.searchSecurityMonitoringHistsignals", false); put("v2.getCodeCoverageBranchSummary", false); put("v2.getCodeCoverageCommitSummary", false); - put("v2.createDataset", false); - put("v2.deleteDataset", false); - put("v2.getAllDatasets", false); - put("v2.getDataset", false); - put("v2.updateDataset", false); put("v2.cancelDataDeletionRequest", false); put("v2.createDataDeletionRequest", false); put("v2.getDataDeletionRequests", false); diff --git a/src/main/java/com/datadog/api/client/v2/api/DatasetsApi.java b/src/main/java/com/datadog/api/client/v2/api/DataAccessControlsApi.java similarity index 81% rename from src/main/java/com/datadog/api/client/v2/api/DatasetsApi.java rename to src/main/java/com/datadog/api/client/v2/api/DataAccessControlsApi.java index 36dfd338a83..8504b634285 100644 --- a/src/main/java/com/datadog/api/client/v2/api/DatasetsApi.java +++ b/src/main/java/com/datadog/api/client/v2/api/DataAccessControlsApi.java @@ -17,14 +17,14 @@ @jakarta.annotation.Generated( value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") -public class DatasetsApi { +public class DataAccessControlsApi { private ApiClient apiClient; - public DatasetsApi() { + public DataAccessControlsApi() { this(ApiClient.getDefaultApiClient()); } - public DatasetsApi(ApiClient apiClient) { + public DataAccessControlsApi(ApiClient apiClient) { this.apiClient = apiClient; } @@ -47,7 +47,7 @@ public void setApiClient(ApiClient apiClient) { } /** - * Create a dataset. + * Create a Data Access Control dataset. * *

See {@link #createDatasetWithHttpInfo}. * @@ -60,7 +60,7 @@ public DatasetResponseSingle createDataset(DatasetCreateRequest body) throws Api } /** - * Create a dataset. + * Create a Data Access Control dataset. * *

See {@link #createDatasetWithHttpInfoAsync}. * @@ -94,13 +94,6 @@ public CompletableFuture createDatasetAsync(DatasetCreate */ public ApiResponse createDatasetWithHttpInfo(DatasetCreateRequest body) throws ApiException { - // Check if unstable operation is enabled - String operationId = "createDataset"; - if (apiClient.isUnstableOperationEnabled("v2." + operationId)) { - apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId)); - } else { - throw new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId)); - } Object localVarPostBody = body; // verify the required parameter 'body' is set @@ -115,7 +108,7 @@ public ApiResponse createDatasetWithHttpInfo(DatasetCreat Invocation.Builder builder = apiClient.createBuilder( - "v2.DatasetsApi.createDataset", + "v2.DataAccessControlsApi.createDataset", localVarPath, new ArrayList(), localVarHeaderParams, @@ -134,7 +127,7 @@ public ApiResponse createDatasetWithHttpInfo(DatasetCreat } /** - * Create a dataset. + * Create a Data Access Control dataset. * *

See {@link #createDatasetWithHttpInfo}. * @@ -143,16 +136,6 @@ public ApiResponse createDatasetWithHttpInfo(DatasetCreat */ public CompletableFuture> createDatasetWithHttpInfoAsync( DatasetCreateRequest body) { - // Check if unstable operation is enabled - String operationId = "createDataset"; - if (apiClient.isUnstableOperationEnabled("v2." + operationId)) { - apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId)); - } else { - CompletableFuture> result = new CompletableFuture<>(); - result.completeExceptionally( - new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId))); - return result; - } Object localVarPostBody = body; // verify the required parameter 'body' is set @@ -172,7 +155,7 @@ public CompletableFuture> createDatasetWithHt try { builder = apiClient.createBuilder( - "v2.DatasetsApi.createDataset", + "v2.DataAccessControlsApi.createDataset", localVarPath, new ArrayList(), localVarHeaderParams, @@ -196,7 +179,7 @@ public CompletableFuture> createDatasetWithHt } /** - * Delete a dataset. + * Delete a Data Access Control dataset. * *

See {@link #deleteDatasetWithHttpInfo}. * @@ -208,7 +191,7 @@ public void deleteDataset(String datasetId) throws ApiException { } /** - * Delete a dataset. + * Delete a Data Access Control dataset. * *

See {@link #deleteDatasetWithHttpInfoAsync}. * @@ -241,13 +224,6 @@ public CompletableFuture deleteDatasetAsync(String datasetId) { * */ public ApiResponse deleteDatasetWithHttpInfo(String datasetId) throws ApiException { - // Check if unstable operation is enabled - String operationId = "deleteDataset"; - if (apiClient.isUnstableOperationEnabled("v2." + operationId)) { - apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId)); - } else { - throw new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId)); - } Object localVarPostBody = null; // verify the required parameter 'datasetId' is set @@ -264,7 +240,7 @@ public ApiResponse deleteDatasetWithHttpInfo(String datasetId) throws ApiE Invocation.Builder builder = apiClient.createBuilder( - "v2.DatasetsApi.deleteDataset", + "v2.DataAccessControlsApi.deleteDataset", localVarPath, new ArrayList(), localVarHeaderParams, @@ -283,7 +259,7 @@ public ApiResponse deleteDatasetWithHttpInfo(String datasetId) throws ApiE } /** - * Delete a dataset. + * Delete a Data Access Control dataset. * *

See {@link #deleteDatasetWithHttpInfo}. * @@ -291,16 +267,6 @@ public ApiResponse deleteDatasetWithHttpInfo(String datasetId) throws ApiE * @return CompletableFuture<ApiResponse<Void>> */ public CompletableFuture> deleteDatasetWithHttpInfoAsync(String datasetId) { - // Check if unstable operation is enabled - String operationId = "deleteDataset"; - if (apiClient.isUnstableOperationEnabled("v2." + operationId)) { - apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId)); - } else { - CompletableFuture> result = new CompletableFuture<>(); - result.completeExceptionally( - new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId))); - return result; - } Object localVarPostBody = null; // verify the required parameter 'datasetId' is set @@ -322,7 +288,7 @@ public CompletableFuture> deleteDatasetWithHttpInfoAsync(Strin try { builder = apiClient.createBuilder( - "v2.DatasetsApi.deleteDataset", + "v2.DataAccessControlsApi.deleteDataset", localVarPath, new ArrayList(), localVarHeaderParams, @@ -346,7 +312,7 @@ public CompletableFuture> deleteDatasetWithHttpInfoAsync(Strin } /** - * Get all datasets. + * Get all Data Access Control datasets. * *

See {@link #getAllDatasetsWithHttpInfo}. * @@ -358,7 +324,7 @@ public DatasetResponseMulti getAllDatasets() throws ApiException { } /** - * Get all datasets. + * Get all Data Access Control datasets. * *

See {@link #getAllDatasetsWithHttpInfoAsync}. * @@ -387,13 +353,6 @@ public CompletableFuture getAllDatasetsAsync() { * */ public ApiResponse getAllDatasetsWithHttpInfo() throws ApiException { - // Check if unstable operation is enabled - String operationId = "getAllDatasets"; - if (apiClient.isUnstableOperationEnabled("v2." + operationId)) { - apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId)); - } else { - throw new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId)); - } Object localVarPostBody = null; // create path and map variables String localVarPath = "/api/v2/datasets"; @@ -402,7 +361,7 @@ public ApiResponse getAllDatasetsWithHttpInfo() throws Api Invocation.Builder builder = apiClient.createBuilder( - "v2.DatasetsApi.getAllDatasets", + "v2.DataAccessControlsApi.getAllDatasets", localVarPath, new ArrayList(), localVarHeaderParams, @@ -421,23 +380,13 @@ public ApiResponse getAllDatasetsWithHttpInfo() throws Api } /** - * Get all datasets. + * Get all Data Access Control datasets. * *

See {@link #getAllDatasetsWithHttpInfo}. * * @return CompletableFuture<ApiResponse<DatasetResponseMulti>> */ public CompletableFuture> getAllDatasetsWithHttpInfoAsync() { - // Check if unstable operation is enabled - String operationId = "getAllDatasets"; - if (apiClient.isUnstableOperationEnabled("v2." + operationId)) { - apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId)); - } else { - CompletableFuture> result = new CompletableFuture<>(); - result.completeExceptionally( - new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId))); - return result; - } Object localVarPostBody = null; // create path and map variables String localVarPath = "/api/v2/datasets"; @@ -448,7 +397,7 @@ public CompletableFuture> getAllDatasetsWithHt try { builder = apiClient.createBuilder( - "v2.DatasetsApi.getAllDatasets", + "v2.DataAccessControlsApi.getAllDatasets", localVarPath, new ArrayList(), localVarHeaderParams, @@ -472,7 +421,7 @@ public CompletableFuture> getAllDatasetsWithHt } /** - * Get a single dataset by ID. + * Get a Data Access Control dataset by ID. * *

See {@link #getDatasetWithHttpInfo}. * @@ -485,7 +434,7 @@ public DatasetResponseSingle getDataset(String datasetId) throws ApiException { } /** - * Get a single dataset by ID. + * Get a Data Access Control dataset by ID. * *

See {@link #getDatasetWithHttpInfoAsync}. * @@ -519,13 +468,6 @@ public CompletableFuture getDatasetAsync(String datasetId */ public ApiResponse getDatasetWithHttpInfo(String datasetId) throws ApiException { - // Check if unstable operation is enabled - String operationId = "getDataset"; - if (apiClient.isUnstableOperationEnabled("v2." + operationId)) { - apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId)); - } else { - throw new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId)); - } Object localVarPostBody = null; // verify the required parameter 'datasetId' is set @@ -542,7 +484,7 @@ public ApiResponse getDatasetWithHttpInfo(String datasetI Invocation.Builder builder = apiClient.createBuilder( - "v2.DatasetsApi.getDataset", + "v2.DataAccessControlsApi.getDataset", localVarPath, new ArrayList(), localVarHeaderParams, @@ -561,7 +503,7 @@ public ApiResponse getDatasetWithHttpInfo(String datasetI } /** - * Get a single dataset by ID. + * Get a Data Access Control dataset by ID. * *

See {@link #getDatasetWithHttpInfo}. * @@ -570,16 +512,6 @@ public ApiResponse getDatasetWithHttpInfo(String datasetI */ public CompletableFuture> getDatasetWithHttpInfoAsync( String datasetId) { - // Check if unstable operation is enabled - String operationId = "getDataset"; - if (apiClient.isUnstableOperationEnabled("v2." + operationId)) { - apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId)); - } else { - CompletableFuture> result = new CompletableFuture<>(); - result.completeExceptionally( - new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId))); - return result; - } Object localVarPostBody = null; // verify the required parameter 'datasetId' is set @@ -601,7 +533,7 @@ public CompletableFuture> getDatasetWithHttpI try { builder = apiClient.createBuilder( - "v2.DatasetsApi.getDataset", + "v2.DataAccessControlsApi.getDataset", localVarPath, new ArrayList(), localVarHeaderParams, @@ -625,7 +557,7 @@ public CompletableFuture> getDatasetWithHttpI } /** - * Edit a dataset. + * Edit a Data Access Control dataset. * *

See {@link #updateDatasetWithHttpInfo}. * @@ -640,7 +572,7 @@ public DatasetResponseSingle updateDataset(String datasetId, DatasetUpdateReques } /** - * Edit a dataset. + * Edit a Data Access Control dataset. * *

See {@link #updateDatasetWithHttpInfoAsync}. * @@ -677,13 +609,6 @@ public CompletableFuture updateDatasetAsync( */ public ApiResponse updateDatasetWithHttpInfo( String datasetId, DatasetUpdateRequest body) throws ApiException { - // Check if unstable operation is enabled - String operationId = "updateDataset"; - if (apiClient.isUnstableOperationEnabled("v2." + operationId)) { - apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId)); - } else { - throw new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId)); - } Object localVarPostBody = body; // verify the required parameter 'datasetId' is set @@ -706,7 +631,7 @@ public ApiResponse updateDatasetWithHttpInfo( Invocation.Builder builder = apiClient.createBuilder( - "v2.DatasetsApi.updateDataset", + "v2.DataAccessControlsApi.updateDataset", localVarPath, new ArrayList(), localVarHeaderParams, @@ -725,7 +650,7 @@ public ApiResponse updateDatasetWithHttpInfo( } /** - * Edit a dataset. + * Edit a Data Access Control dataset. * *

See {@link #updateDatasetWithHttpInfo}. * @@ -735,16 +660,6 @@ public ApiResponse updateDatasetWithHttpInfo( */ public CompletableFuture> updateDatasetWithHttpInfoAsync( String datasetId, DatasetUpdateRequest body) { - // Check if unstable operation is enabled - String operationId = "updateDataset"; - if (apiClient.isUnstableOperationEnabled("v2." + operationId)) { - apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId)); - } else { - CompletableFuture> result = new CompletableFuture<>(); - result.completeExceptionally( - new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId))); - return result; - } Object localVarPostBody = body; // verify the required parameter 'datasetId' is set @@ -775,7 +690,7 @@ public CompletableFuture> updateDatasetWithHt try { builder = apiClient.createBuilder( - "v2.DatasetsApi.updateDataset", + "v2.DataAccessControlsApi.updateDataset", localVarPath, new ArrayList(), localVarHeaderParams, diff --git a/src/test/resources/cassettes/features/v2/Create_a_Data_Access_Control_dataset_returns_Bad_Request_response.freeze b/src/test/resources/cassettes/features/v2/Create_a_Data_Access_Control_dataset_returns_Bad_Request_response.freeze new file mode 100644 index 00000000000..8e484e34924 --- /dev/null +++ b/src/test/resources/cassettes/features/v2/Create_a_Data_Access_Control_dataset_returns_Bad_Request_response.freeze @@ -0,0 +1 @@ +2026-03-26T21:30:07.702Z \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Create_a_dataset_returns_Bad_Request_response.json b/src/test/resources/cassettes/features/v2/Create_a_Data_Access_Control_dataset_returns_Bad_Request_response.json similarity index 100% rename from src/test/resources/cassettes/features/v2/Create_a_dataset_returns_Bad_Request_response.json rename to src/test/resources/cassettes/features/v2/Create_a_Data_Access_Control_dataset_returns_Bad_Request_response.json diff --git a/src/test/resources/cassettes/features/v2/Create_a_Data_Access_Control_dataset_returns_Conflict_response.freeze b/src/test/resources/cassettes/features/v2/Create_a_Data_Access_Control_dataset_returns_Conflict_response.freeze new file mode 100644 index 00000000000..9a41e0cd8bb --- /dev/null +++ b/src/test/resources/cassettes/features/v2/Create_a_Data_Access_Control_dataset_returns_Conflict_response.freeze @@ -0,0 +1 @@ +2026-03-26T21:30:08.373Z \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Create_a_dataset_returns_Conflict_response.json b/src/test/resources/cassettes/features/v2/Create_a_Data_Access_Control_dataset_returns_Conflict_response.json similarity index 61% rename from src/test/resources/cassettes/features/v2/Create_a_dataset_returns_Conflict_response.json rename to src/test/resources/cassettes/features/v2/Create_a_Data_Access_Control_dataset_returns_Conflict_response.json index 75586923584..145de209d66 100644 --- a/src/test/resources/cassettes/features/v2/Create_a_dataset_returns_Conflict_response.json +++ b/src/test/resources/cassettes/features/v2/Create_a_Data_Access_Control_dataset_returns_Conflict_response.json @@ -3,7 +3,7 @@ "httpRequest": { "body": { "type": "JSON", - "json": "{\"data\":{\"attributes\":{\"name\":\"Security Audit Dataset\",\"principals\":[\"role:94172442-be03-11e9-a77a-3b7612558ac1\"],\"product_filters\":[{\"filters\":[\"@application.id:ABCD\"],\"product\":\"metrics\"}]},\"type\":\"dataset\"}}" + "json": "{\"data\":{\"attributes\":{\"name\":\"Security Audit DAC\",\"principals\":[\"role:94172442-be03-11e9-a77a-3b7612558ac1\"],\"product_filters\":[{\"filters\":[\"@application.id:ABCD\"],\"product\":\"logs\"}]},\"type\":\"dataset\"}}" }, "headers": {}, "method": "POST", @@ -12,7 +12,7 @@ "secure": true }, "httpResponse": { - "body": "{\"data\":{\"type\":\"dataset\",\"id\":\"7cbada94-7d01-4e73-8c74-ea70fb3b3088\",\"attributes\":{\"name\":\"Security Audit Dataset\",\"product_filters\":[{\"product\":\"metrics\",\"filters\":[\"@application.id:ABCD\"]}],\"principals\":[\"role:94172442-be03-11e9-a77a-3b7612558ac1\"]}}}\n", + "body": "{\"data\":{\"type\":\"dataset\",\"id\":\"fc61b4b4-d05a-4cba-b109-0d123141056e\",\"attributes\":{\"name\":\"Security Audit DAC\",\"product_filters\":[{\"product\":\"logs\",\"filters\":[\"@application.id:ABCD\"]}],\"principals\":[\"role:94172442-be03-11e9-a77a-3b7612558ac1\"]}}}\n", "headers": { "Content-Type": [ "application/json" @@ -27,13 +27,13 @@ "timeToLive": { "unlimited": true }, - "id": "32c558cf-4a2e-f914-f443-ab94000addcb" + "id": "9afbe4de-1a01-2167-93a5-958a7f6a808d" }, { "httpRequest": { "body": { "type": "JSON", - "json": "{\"data\":{\"attributes\":{\"name\":\"Security Audit Dataset\",\"principals\":[\"role:94172442-be03-11e9-a77a-3b7612558ac1\"],\"product_filters\":[{\"filters\":[\"@application.id:ABCD\"],\"product\":\"metrics\"}]},\"type\":\"dataset\"}}" + "json": "{\"data\":{\"attributes\":{\"name\":\"Security Audit DAC\",\"principals\":[\"role:94172442-be03-11e9-a77a-3b7612558ac1\"],\"product_filters\":[{\"filters\":[\"@application.id:ABCD\"],\"product\":\"logs\"}]},\"type\":\"dataset\"}}" }, "headers": {}, "method": "POST", @@ -42,7 +42,7 @@ "secure": true }, "httpResponse": { - "body": "{\"errors\":[\"Invalid request: [DatasetNameConflict] dataset with name \\\"Security Audit Dataset\\\" already exists\"]}\n", + "body": "{\"errors\":[\"Invalid request: [DatasetNameConflict] dataset with name \\\"Security Audit DAC\\\" already exists\"]}\n", "headers": { "Content-Type": [ "application/json" @@ -57,13 +57,13 @@ "timeToLive": { "unlimited": true }, - "id": "32c558cf-4a2e-f914-f443-ab94000addcc" + "id": "9afbe4de-1a01-2167-93a5-958a7f6a808e" }, { "httpRequest": { "headers": {}, "method": "DELETE", - "path": "/api/v2/datasets/7cbada94-7d01-4e73-8c74-ea70fb3b3088", + "path": "/api/v2/datasets/fc61b4b4-d05a-4cba-b109-0d123141056e", "keepAlive": false, "secure": true }, @@ -82,6 +82,6 @@ "timeToLive": { "unlimited": true }, - "id": "f569dd34-ba2b-185c-e332-0a771e7e15c2" + "id": "7b7b60d3-c568-c775-3c0a-34c20939b781" } ] \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Create_a_Data_Access_Control_dataset_returns_OK_response.freeze b/src/test/resources/cassettes/features/v2/Create_a_Data_Access_Control_dataset_returns_OK_response.freeze new file mode 100644 index 00000000000..378b341dba1 --- /dev/null +++ b/src/test/resources/cassettes/features/v2/Create_a_Data_Access_Control_dataset_returns_OK_response.freeze @@ -0,0 +1 @@ +2026-03-26T21:30:09.140Z \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Create_a_dataset_returns_OK_response.json b/src/test/resources/cassettes/features/v2/Create_a_Data_Access_Control_dataset_returns_OK_response.json similarity index 59% rename from src/test/resources/cassettes/features/v2/Create_a_dataset_returns_OK_response.json rename to src/test/resources/cassettes/features/v2/Create_a_Data_Access_Control_dataset_returns_OK_response.json index 3f9206673d4..5470a274415 100644 --- a/src/test/resources/cassettes/features/v2/Create_a_dataset_returns_OK_response.json +++ b/src/test/resources/cassettes/features/v2/Create_a_Data_Access_Control_dataset_returns_OK_response.json @@ -3,7 +3,7 @@ "httpRequest": { "body": { "type": "JSON", - "json": "{\"data\":{\"attributes\":{\"name\":\"Security Audit Dataset\",\"principals\":[\"role:94172442-be03-11e9-a77a-3b7612558ac1\"],\"product_filters\":[{\"filters\":[\"@application.id:ABCD\"],\"product\":\"metrics\"}]},\"type\":\"dataset\"}}" + "json": "{\"data\":{\"attributes\":{\"name\":\"Security Audit DAC\",\"principals\":[\"role:94172442-be03-11e9-a77a-3b7612558ac1\"],\"product_filters\":[{\"filters\":[\"@application.id:ABCD\"],\"product\":\"logs\"}]},\"type\":\"dataset\"}}" }, "headers": {}, "method": "POST", @@ -12,7 +12,7 @@ "secure": true }, "httpResponse": { - "body": "{\"data\":{\"type\":\"dataset\",\"id\":\"86f67664-8b7b-49ae-b671-919ebe11886c\",\"attributes\":{\"name\":\"Security Audit Dataset\",\"product_filters\":[{\"product\":\"metrics\",\"filters\":[\"@application.id:ABCD\"]}],\"principals\":[\"role:94172442-be03-11e9-a77a-3b7612558ac1\"]}}}\n", + "body": "{\"data\":{\"type\":\"dataset\",\"id\":\"badc1f6e-ad2e-46f3-91bb-63af60d40b43\",\"attributes\":{\"name\":\"Security Audit DAC\",\"product_filters\":[{\"product\":\"logs\",\"filters\":[\"@application.id:ABCD\"]}],\"principals\":[\"role:94172442-be03-11e9-a77a-3b7612558ac1\"]}}}\n", "headers": { "Content-Type": [ "application/json" @@ -27,13 +27,13 @@ "timeToLive": { "unlimited": true }, - "id": "32c558cf-4a2e-f914-f443-ab94000addce" + "id": "9afbe4de-1a01-2167-93a5-958a7f6a8091" }, { "httpRequest": { "headers": {}, "method": "DELETE", - "path": "/api/v2/datasets/86f67664-8b7b-49ae-b671-919ebe11886c", + "path": "/api/v2/datasets/badc1f6e-ad2e-46f3-91bb-63af60d40b43", "keepAlive": false, "secure": true }, @@ -52,6 +52,6 @@ "timeToLive": { "unlimited": true }, - "id": "e15cf984-73c5-d05e-382b-a27da41631f3" + "id": "c29199a6-e3ef-4bc3-be2b-0dbc8b4ac123" } ] \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Create_a_dataset_returns_Bad_Request_response.freeze b/src/test/resources/cassettes/features/v2/Create_a_dataset_returns_Bad_Request_response.freeze deleted file mode 100644 index 71929eb2a5f..00000000000 --- a/src/test/resources/cassettes/features/v2/Create_a_dataset_returns_Bad_Request_response.freeze +++ /dev/null @@ -1 +0,0 @@ -2025-07-29T20:35:57.144Z \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Create_a_dataset_returns_Conflict_response.freeze b/src/test/resources/cassettes/features/v2/Create_a_dataset_returns_Conflict_response.freeze deleted file mode 100644 index f6e462458c6..00000000000 --- a/src/test/resources/cassettes/features/v2/Create_a_dataset_returns_Conflict_response.freeze +++ /dev/null @@ -1 +0,0 @@ -2025-07-29T20:35:57.324Z \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Create_a_dataset_returns_OK_response.freeze b/src/test/resources/cassettes/features/v2/Create_a_dataset_returns_OK_response.freeze deleted file mode 100644 index a11869c8f1a..00000000000 --- a/src/test/resources/cassettes/features/v2/Create_a_dataset_returns_OK_response.freeze +++ /dev/null @@ -1 +0,0 @@ -2025-07-29T20:35:57.839Z \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Delete_a_Data_Access_Control_dataset_returns_Bad_Request_response.freeze b/src/test/resources/cassettes/features/v2/Delete_a_Data_Access_Control_dataset_returns_Bad_Request_response.freeze new file mode 100644 index 00000000000..b6342441bde --- /dev/null +++ b/src/test/resources/cassettes/features/v2/Delete_a_Data_Access_Control_dataset_returns_Bad_Request_response.freeze @@ -0,0 +1 @@ +2026-03-26T21:30:09.647Z \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Delete_a_dataset_returns_Bad_Request_response.json b/src/test/resources/cassettes/features/v2/Delete_a_Data_Access_Control_dataset_returns_Bad_Request_response.json similarity index 100% rename from src/test/resources/cassettes/features/v2/Delete_a_dataset_returns_Bad_Request_response.json rename to src/test/resources/cassettes/features/v2/Delete_a_Data_Access_Control_dataset_returns_Bad_Request_response.json diff --git a/src/test/resources/cassettes/features/v2/Delete_a_Data_Access_Control_dataset_returns_No_Content_response.freeze b/src/test/resources/cassettes/features/v2/Delete_a_Data_Access_Control_dataset_returns_No_Content_response.freeze new file mode 100644 index 00000000000..9a9aa648abd --- /dev/null +++ b/src/test/resources/cassettes/features/v2/Delete_a_Data_Access_Control_dataset_returns_No_Content_response.freeze @@ -0,0 +1 @@ +2026-03-26T21:30:09.887Z \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Delete_a_dataset_returns_No_Content_response.json b/src/test/resources/cassettes/features/v2/Delete_a_Data_Access_Control_dataset_returns_No_Content_response.json similarity index 63% rename from src/test/resources/cassettes/features/v2/Delete_a_dataset_returns_No_Content_response.json rename to src/test/resources/cassettes/features/v2/Delete_a_Data_Access_Control_dataset_returns_No_Content_response.json index 76d59841326..679421d636e 100644 --- a/src/test/resources/cassettes/features/v2/Delete_a_dataset_returns_No_Content_response.json +++ b/src/test/resources/cassettes/features/v2/Delete_a_Data_Access_Control_dataset_returns_No_Content_response.json @@ -3,7 +3,7 @@ "httpRequest": { "body": { "type": "JSON", - "json": "{\"data\":{\"attributes\":{\"name\":\"Security Audit Dataset\",\"principals\":[\"role:94172442-be03-11e9-a77a-3b7612558ac1\"],\"product_filters\":[{\"filters\":[\"@application.id:ABCD\"],\"product\":\"metrics\"}]},\"type\":\"dataset\"}}" + "json": "{\"data\":{\"attributes\":{\"name\":\"Security Audit DAC\",\"principals\":[\"role:94172442-be03-11e9-a77a-3b7612558ac1\"],\"product_filters\":[{\"filters\":[\"@application.id:ABCD\"],\"product\":\"logs\"}]},\"type\":\"dataset\"}}" }, "headers": {}, "method": "POST", @@ -12,7 +12,7 @@ "secure": true }, "httpResponse": { - "body": "{\"data\":{\"type\":\"dataset\",\"id\":\"60ee6562-48f5-455f-bdb4-fd3f5f899978\",\"attributes\":{\"name\":\"Security Audit Dataset\",\"product_filters\":[{\"product\":\"metrics\",\"filters\":[\"@application.id:ABCD\"]}],\"principals\":[\"role:94172442-be03-11e9-a77a-3b7612558ac1\"]}}}\n", + "body": "{\"data\":{\"type\":\"dataset\",\"id\":\"d7eacc0a-68a8-4511-8a9e-81c275a3cfc4\",\"attributes\":{\"name\":\"Security Audit DAC\",\"product_filters\":[{\"product\":\"logs\",\"filters\":[\"@application.id:ABCD\"]}],\"principals\":[\"role:94172442-be03-11e9-a77a-3b7612558ac1\"]}}}\n", "headers": { "Content-Type": [ "application/json" @@ -27,13 +27,13 @@ "timeToLive": { "unlimited": true }, - "id": "32c558cf-4a2e-f914-f443-ab94000addcf" + "id": "9afbe4de-1a01-2167-93a5-958a7f6a8092" }, { "httpRequest": { "headers": {}, "method": "DELETE", - "path": "/api/v2/datasets/60ee6562-48f5-455f-bdb4-fd3f5f899978", + "path": "/api/v2/datasets/d7eacc0a-68a8-4511-8a9e-81c275a3cfc4", "keepAlive": false, "secure": true }, @@ -52,18 +52,18 @@ "timeToLive": { "unlimited": true }, - "id": "e6d82f13-5ad3-4466-edde-778425f3614b" + "id": "25f5bfcd-a85b-825f-1295-2b7da296afdb" }, { "httpRequest": { "headers": {}, "method": "DELETE", - "path": "/api/v2/datasets/60ee6562-48f5-455f-bdb4-fd3f5f899978", + "path": "/api/v2/datasets/d7eacc0a-68a8-4511-8a9e-81c275a3cfc4", "keepAlive": false, "secure": true }, "httpResponse": { - "body": "{\"errors\":[\"Invalid request: [DatasetNotFound] dataset \\\"60ee6562-48f5-455f-bdb4-fd3f5f899978\\\" not found\"]}\n", + "body": "{\"errors\":[\"Invalid request: [DatasetNotFound] dataset \\\"d7eacc0a-68a8-4511-8a9e-81c275a3cfc4\\\" not found\"]}\n", "headers": { "Content-Type": [ "application/json" @@ -78,6 +78,6 @@ "timeToLive": { "unlimited": true }, - "id": "e6d82f13-5ad3-4466-edde-778425f3614c" + "id": "25f5bfcd-a85b-825f-1295-2b7da296afdc" } ] \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Delete_a_Data_Access_Control_dataset_returns_Not_Found_response.freeze b/src/test/resources/cassettes/features/v2/Delete_a_Data_Access_Control_dataset_returns_Not_Found_response.freeze new file mode 100644 index 00000000000..e5a588edcfd --- /dev/null +++ b/src/test/resources/cassettes/features/v2/Delete_a_Data_Access_Control_dataset_returns_Not_Found_response.freeze @@ -0,0 +1 @@ +2026-03-26T21:30:10.625Z \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Delete_a_dataset_returns_Not_Found_response.json b/src/test/resources/cassettes/features/v2/Delete_a_Data_Access_Control_dataset_returns_Not_Found_response.json similarity index 88% rename from src/test/resources/cassettes/features/v2/Delete_a_dataset_returns_Not_Found_response.json rename to src/test/resources/cassettes/features/v2/Delete_a_Data_Access_Control_dataset_returns_Not_Found_response.json index c66ade533fb..98795cb7808 100644 --- a/src/test/resources/cassettes/features/v2/Delete_a_dataset_returns_Not_Found_response.json +++ b/src/test/resources/cassettes/features/v2/Delete_a_Data_Access_Control_dataset_returns_Not_Found_response.json @@ -8,7 +8,7 @@ "secure": true }, "httpResponse": { - "body": "{\"errors\":[\"Invalid request: [DatasetNotFound] dataset \\\"00000000-0000-0000-0000-000000000000\\\" not found\"]}\n", + "body": "{\"errors\":[\"Invalid request: [DatasetNotFound] failed to fetch dataset \\\"00000000-0000-0000-0000-000000000000\\\"\"]}\n", "headers": { "Content-Type": [ "application/json" diff --git a/src/test/resources/cassettes/features/v2/Delete_a_dataset_returns_Bad_Request_response.freeze b/src/test/resources/cassettes/features/v2/Delete_a_dataset_returns_Bad_Request_response.freeze deleted file mode 100644 index 5c83b1435b5..00000000000 --- a/src/test/resources/cassettes/features/v2/Delete_a_dataset_returns_Bad_Request_response.freeze +++ /dev/null @@ -1 +0,0 @@ -2025-07-29T20:35:58.251Z \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Delete_a_dataset_returns_No_Content_response.freeze b/src/test/resources/cassettes/features/v2/Delete_a_dataset_returns_No_Content_response.freeze deleted file mode 100644 index 3f1f084a921..00000000000 --- a/src/test/resources/cassettes/features/v2/Delete_a_dataset_returns_No_Content_response.freeze +++ /dev/null @@ -1 +0,0 @@ -2025-07-29T20:35:58.429Z \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Delete_a_dataset_returns_Not_Found_response.freeze b/src/test/resources/cassettes/features/v2/Delete_a_dataset_returns_Not_Found_response.freeze deleted file mode 100644 index a6e2fb84649..00000000000 --- a/src/test/resources/cassettes/features/v2/Delete_a_dataset_returns_Not_Found_response.freeze +++ /dev/null @@ -1 +0,0 @@ -2025-07-29T20:35:58.996Z \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Edit_a_Data_Access_Control_dataset_returns_Bad_Request_response.freeze b/src/test/resources/cassettes/features/v2/Edit_a_Data_Access_Control_dataset_returns_Bad_Request_response.freeze new file mode 100644 index 00000000000..e29881736bc --- /dev/null +++ b/src/test/resources/cassettes/features/v2/Edit_a_Data_Access_Control_dataset_returns_Bad_Request_response.freeze @@ -0,0 +1 @@ +2026-03-26T21:30:10.839Z \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Edit_a_dataset_returns_Bad_Request_response.json b/src/test/resources/cassettes/features/v2/Edit_a_Data_Access_Control_dataset_returns_Bad_Request_response.json similarity index 100% rename from src/test/resources/cassettes/features/v2/Edit_a_dataset_returns_Bad_Request_response.json rename to src/test/resources/cassettes/features/v2/Edit_a_Data_Access_Control_dataset_returns_Bad_Request_response.json diff --git a/src/test/resources/cassettes/features/v2/Edit_a_Data_Access_Control_dataset_returns_OK_response.freeze b/src/test/resources/cassettes/features/v2/Edit_a_Data_Access_Control_dataset_returns_OK_response.freeze new file mode 100644 index 00000000000..6946ee33624 --- /dev/null +++ b/src/test/resources/cassettes/features/v2/Edit_a_Data_Access_Control_dataset_returns_OK_response.freeze @@ -0,0 +1 @@ +2026-03-26T21:30:11.049Z \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Edit_a_dataset_returns_OK_response.json b/src/test/resources/cassettes/features/v2/Edit_a_Data_Access_Control_dataset_returns_OK_response.json similarity index 53% rename from src/test/resources/cassettes/features/v2/Edit_a_dataset_returns_OK_response.json rename to src/test/resources/cassettes/features/v2/Edit_a_Data_Access_Control_dataset_returns_OK_response.json index 75a40d06c1c..e926cda15f2 100644 --- a/src/test/resources/cassettes/features/v2/Edit_a_dataset_returns_OK_response.json +++ b/src/test/resources/cassettes/features/v2/Edit_a_Data_Access_Control_dataset_returns_OK_response.json @@ -3,7 +3,7 @@ "httpRequest": { "body": { "type": "JSON", - "json": "{\"data\":{\"attributes\":{\"name\":\"Security Audit Dataset\",\"principals\":[\"role:94172442-be03-11e9-a77a-3b7612558ac1\"],\"product_filters\":[{\"filters\":[\"@application.id:ABCD\"],\"product\":\"metrics\"}]},\"type\":\"dataset\"}}" + "json": "{\"data\":{\"attributes\":{\"name\":\"Security Audit DAC\",\"principals\":[\"role:94172442-be03-11e9-a77a-3b7612558ac1\"],\"product_filters\":[{\"filters\":[\"@application.id:ABCD\"],\"product\":\"logs\"}]},\"type\":\"dataset\"}}" }, "headers": {}, "method": "POST", @@ -12,7 +12,7 @@ "secure": true }, "httpResponse": { - "body": "{\"data\":{\"type\":\"dataset\",\"id\":\"2bf848a1-b18a-4602-8348-814a53862c52\",\"attributes\":{\"name\":\"Security Audit Dataset\",\"product_filters\":[{\"product\":\"metrics\",\"filters\":[\"@application.id:ABCD\"]}],\"principals\":[\"role:94172442-be03-11e9-a77a-3b7612558ac1\"]}}}\n", + "body": "{\"data\":{\"type\":\"dataset\",\"id\":\"be869093-c62b-4ed1-87e8-7fb047e65f3d\",\"attributes\":{\"name\":\"Security Audit DAC\",\"product_filters\":[{\"product\":\"logs\",\"filters\":[\"@application.id:ABCD\"]}],\"principals\":[\"role:94172442-be03-11e9-a77a-3b7612558ac1\"]}}}\n", "headers": { "Content-Type": [ "application/json" @@ -27,22 +27,22 @@ "timeToLive": { "unlimited": true }, - "id": "32c558cf-4a2e-f914-f443-ab94000addc9" + "id": "9afbe4de-1a01-2167-93a5-958a7f6a808f" }, { "httpRequest": { "body": { "type": "JSON", - "json": "{\"data\":{\"attributes\":{\"name\":\"Security Audit Dataset\",\"principals\":[\"role:94172442-be03-11e9-a77a-3b7612558ac1\"],\"product_filters\":[{\"filters\":[\"@application.id:1234\"],\"product\":\"metrics\"}]},\"type\":\"dataset\"}}" + "json": "{\"data\":{\"attributes\":{\"name\":\"Security Audit DAC\",\"principals\":[\"role:94172442-be03-11e9-a77a-3b7612558ac1\"],\"product_filters\":[{\"filters\":[\"@application.id:1234\"],\"product\":\"logs\"}]},\"type\":\"dataset\"}}" }, "headers": {}, "method": "PUT", - "path": "/api/v2/datasets/2bf848a1-b18a-4602-8348-814a53862c52", + "path": "/api/v2/datasets/be869093-c62b-4ed1-87e8-7fb047e65f3d", "keepAlive": false, "secure": true }, "httpResponse": { - "body": "{\"data\":{\"type\":\"dataset\",\"id\":\"2bf848a1-b18a-4602-8348-814a53862c52\",\"attributes\":{\"name\":\"Security Audit Dataset\",\"product_filters\":[{\"product\":\"metrics\",\"filters\":[\"@application.id:1234\"]}],\"principals\":[\"role:94172442-be03-11e9-a77a-3b7612558ac1\"]}}}\n", + "body": "{\"data\":{\"type\":\"dataset\",\"id\":\"be869093-c62b-4ed1-87e8-7fb047e65f3d\",\"attributes\":{\"name\":\"Security Audit DAC\",\"product_filters\":[{\"product\":\"logs\",\"filters\":[\"@application.id:1234\"]}],\"principals\":[\"role:94172442-be03-11e9-a77a-3b7612558ac1\"]}}}\n", "headers": { "Content-Type": [ "application/json" @@ -57,13 +57,13 @@ "timeToLive": { "unlimited": true }, - "id": "3dd90d49-9042-50c7-d2c0-d10377768bbb" + "id": "bf306df6-80a5-c1e0-43af-4d4fdf158b3c" }, { "httpRequest": { "headers": {}, "method": "DELETE", - "path": "/api/v2/datasets/2bf848a1-b18a-4602-8348-814a53862c52", + "path": "/api/v2/datasets/be869093-c62b-4ed1-87e8-7fb047e65f3d", "keepAlive": false, "secure": true }, @@ -82,6 +82,6 @@ "timeToLive": { "unlimited": true }, - "id": "20213939-3ba1-8fe0-e52d-054b00f716c1" + "id": "d68a6e1f-6217-53ed-2b26-9ca980f863d6" } ] \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Edit_a_dataset_returns_Bad_Request_response.freeze b/src/test/resources/cassettes/features/v2/Edit_a_dataset_returns_Bad_Request_response.freeze deleted file mode 100644 index cdc3a3a57aa..00000000000 --- a/src/test/resources/cassettes/features/v2/Edit_a_dataset_returns_Bad_Request_response.freeze +++ /dev/null @@ -1 +0,0 @@ -2025-07-29T20:35:59.180Z \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Edit_a_dataset_returns_OK_response.freeze b/src/test/resources/cassettes/features/v2/Edit_a_dataset_returns_OK_response.freeze deleted file mode 100644 index 89c4ccef775..00000000000 --- a/src/test/resources/cassettes/features/v2/Edit_a_dataset_returns_OK_response.freeze +++ /dev/null @@ -1 +0,0 @@ -2025-07-29T20:35:59.399Z \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Get_a_Data_Access_Control_dataset_by_ID_returns_Bad_Request_response.freeze b/src/test/resources/cassettes/features/v2/Get_a_Data_Access_Control_dataset_by_ID_returns_Bad_Request_response.freeze new file mode 100644 index 00000000000..82b40ccbcf2 --- /dev/null +++ b/src/test/resources/cassettes/features/v2/Get_a_Data_Access_Control_dataset_by_ID_returns_Bad_Request_response.freeze @@ -0,0 +1 @@ +2026-03-26T21:30:11.869Z \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Get_a_single_dataset_by_ID_returns_Bad_Request_response.json b/src/test/resources/cassettes/features/v2/Get_a_Data_Access_Control_dataset_by_ID_returns_Bad_Request_response.json similarity index 100% rename from src/test/resources/cassettes/features/v2/Get_a_single_dataset_by_ID_returns_Bad_Request_response.json rename to src/test/resources/cassettes/features/v2/Get_a_Data_Access_Control_dataset_by_ID_returns_Bad_Request_response.json diff --git a/src/test/resources/cassettes/features/v2/Get_a_Data_Access_Control_dataset_by_ID_returns_OK_response.freeze b/src/test/resources/cassettes/features/v2/Get_a_Data_Access_Control_dataset_by_ID_returns_OK_response.freeze new file mode 100644 index 00000000000..4679a0ae389 --- /dev/null +++ b/src/test/resources/cassettes/features/v2/Get_a_Data_Access_Control_dataset_by_ID_returns_OK_response.freeze @@ -0,0 +1 @@ +2026-03-26T21:30:12.094Z \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Get_a_single_dataset_by_ID_returns_OK_response.json b/src/test/resources/cassettes/features/v2/Get_a_Data_Access_Control_dataset_by_ID_returns_OK_response.json similarity index 55% rename from src/test/resources/cassettes/features/v2/Get_a_single_dataset_by_ID_returns_OK_response.json rename to src/test/resources/cassettes/features/v2/Get_a_Data_Access_Control_dataset_by_ID_returns_OK_response.json index a3aed5c194a..43b8e008c09 100644 --- a/src/test/resources/cassettes/features/v2/Get_a_single_dataset_by_ID_returns_OK_response.json +++ b/src/test/resources/cassettes/features/v2/Get_a_Data_Access_Control_dataset_by_ID_returns_OK_response.json @@ -3,7 +3,7 @@ "httpRequest": { "body": { "type": "JSON", - "json": "{\"data\":{\"attributes\":{\"name\":\"Security Audit Dataset\",\"principals\":[\"role:94172442-be03-11e9-a77a-3b7612558ac1\"],\"product_filters\":[{\"filters\":[\"@application.id:ABCD\"],\"product\":\"metrics\"}]},\"type\":\"dataset\"}}" + "json": "{\"data\":{\"attributes\":{\"name\":\"Security Audit DAC\",\"principals\":[\"role:94172442-be03-11e9-a77a-3b7612558ac1\"],\"product_filters\":[{\"filters\":[\"@application.id:ABCD\"],\"product\":\"logs\"}]},\"type\":\"dataset\"}}" }, "headers": {}, "method": "POST", @@ -12,7 +12,7 @@ "secure": true }, "httpResponse": { - "body": "{\"data\":{\"type\":\"dataset\",\"id\":\"9e576299-3cc1-4145-8aad-67a1ab914829\",\"attributes\":{\"name\":\"Security Audit Dataset\",\"product_filters\":[{\"product\":\"metrics\",\"filters\":[\"@application.id:ABCD\"]}],\"principals\":[\"role:94172442-be03-11e9-a77a-3b7612558ac1\"]}}}\n", + "body": "{\"data\":{\"type\":\"dataset\",\"id\":\"ad02f467-8bdc-42d6-85b5-d538508741bc\",\"attributes\":{\"name\":\"Security Audit DAC\",\"product_filters\":[{\"product\":\"logs\",\"filters\":[\"@application.id:ABCD\"]}],\"principals\":[\"role:94172442-be03-11e9-a77a-3b7612558ac1\"]}}}\n", "headers": { "Content-Type": [ "application/json" @@ -27,18 +27,18 @@ "timeToLive": { "unlimited": true }, - "id": "32c558cf-4a2e-f914-f443-ab94000addcd" + "id": "9afbe4de-1a01-2167-93a5-958a7f6a8090" }, { "httpRequest": { "headers": {}, "method": "GET", - "path": "/api/v2/datasets/9e576299-3cc1-4145-8aad-67a1ab914829", + "path": "/api/v2/datasets/ad02f467-8bdc-42d6-85b5-d538508741bc", "keepAlive": false, "secure": true }, "httpResponse": { - "body": "{\"data\":{\"type\":\"dataset\",\"id\":\"9e576299-3cc1-4145-8aad-67a1ab914829\",\"attributes\":{\"name\":\"Security Audit Dataset\",\"product_filters\":[{\"product\":\"metrics\",\"filters\":[\"@application.id:ABCD\"]}],\"principals\":[\"role:94172442-be03-11e9-a77a-3b7612558ac1\"]}}}\n", + "body": "{\"data\":{\"type\":\"dataset\",\"id\":\"ad02f467-8bdc-42d6-85b5-d538508741bc\",\"attributes\":{\"name\":\"Security Audit DAC\",\"product_filters\":[{\"product\":\"logs\",\"filters\":[\"@application.id:ABCD\"]}],\"principals\":[\"role:94172442-be03-11e9-a77a-3b7612558ac1\"]}}}\n", "headers": { "Content-Type": [ "application/json" @@ -53,13 +53,13 @@ "timeToLive": { "unlimited": true }, - "id": "5f6432cf-6e61-c956-e2a5-7822c9c7a3ac" + "id": "fe1a484f-d6c5-d882-32b3-a96cdcf8c7d1" }, { "httpRequest": { "headers": {}, "method": "DELETE", - "path": "/api/v2/datasets/9e576299-3cc1-4145-8aad-67a1ab914829", + "path": "/api/v2/datasets/ad02f467-8bdc-42d6-85b5-d538508741bc", "keepAlive": false, "secure": true }, @@ -78,6 +78,6 @@ "timeToLive": { "unlimited": true }, - "id": "347efd06-18b8-98bd-c9c7-745a1d2f53cf" + "id": "ea381fb6-be6a-e0e2-1127-3919bcf9279c" } ] \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Get_a_single_dataset_by_ID_returns_Bad_Request_response.freeze b/src/test/resources/cassettes/features/v2/Get_a_single_dataset_by_ID_returns_Bad_Request_response.freeze deleted file mode 100644 index f1b51544443..00000000000 --- a/src/test/resources/cassettes/features/v2/Get_a_single_dataset_by_ID_returns_Bad_Request_response.freeze +++ /dev/null @@ -1 +0,0 @@ -2025-07-29T20:36:00.009Z \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Get_a_single_dataset_by_ID_returns_OK_response.freeze b/src/test/resources/cassettes/features/v2/Get_a_single_dataset_by_ID_returns_OK_response.freeze deleted file mode 100644 index e339d721db2..00000000000 --- a/src/test/resources/cassettes/features/v2/Get_a_single_dataset_by_ID_returns_OK_response.freeze +++ /dev/null @@ -1 +0,0 @@ -2025-07-29T20:36:00.186Z \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Get_all_Data_Access_Control_datasets_returns_OK_response.freeze b/src/test/resources/cassettes/features/v2/Get_all_Data_Access_Control_datasets_returns_OK_response.freeze new file mode 100644 index 00000000000..2ae057fd77f --- /dev/null +++ b/src/test/resources/cassettes/features/v2/Get_all_Data_Access_Control_datasets_returns_OK_response.freeze @@ -0,0 +1 @@ +2026-03-26T21:30:12.747Z \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Get_all_Data_Access_Control_datasets_returns_OK_response.json b/src/test/resources/cassettes/features/v2/Get_all_Data_Access_Control_datasets_returns_OK_response.json new file mode 100644 index 00000000000..b2cac52e818 --- /dev/null +++ b/src/test/resources/cassettes/features/v2/Get_all_Data_Access_Control_datasets_returns_OK_response.json @@ -0,0 +1,83 @@ +[ + { + "httpRequest": { + "body": { + "type": "JSON", + "json": "{\"data\":{\"attributes\":{\"name\":\"Security Audit DAC\",\"principals\":[\"role:94172442-be03-11e9-a77a-3b7612558ac1\"],\"product_filters\":[{\"filters\":[\"@application.id:ABCD\"],\"product\":\"logs\"}]},\"type\":\"dataset\"}}" + }, + "headers": {}, + "method": "POST", + "path": "/api/v2/datasets", + "keepAlive": false, + "secure": true + }, + "httpResponse": { + "body": "{\"data\":{\"type\":\"dataset\",\"id\":\"2e6e3a20-1ada-4a78-b583-d08fe4e3e8ea\",\"attributes\":{\"name\":\"Security Audit DAC\",\"product_filters\":[{\"product\":\"logs\",\"filters\":[\"@application.id:ABCD\"]}],\"principals\":[\"role:94172442-be03-11e9-a77a-3b7612558ac1\"]}}}\n", + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "statusCode": 200, + "reasonPhrase": "OK" + }, + "times": { + "remainingTimes": 1 + }, + "timeToLive": { + "unlimited": true + }, + "id": "9afbe4de-1a01-2167-93a5-958a7f6a8093" + }, + { + "httpRequest": { + "headers": {}, + "method": "GET", + "path": "/api/v2/datasets", + "keepAlive": false, + "secure": true + }, + "httpResponse": { + "body": "{\"data\":[{\"type\":\"dataset\",\"id\":\"98648aa9-bf46-45b5-af42-b8466a42108c\",\"attributes\":{\"name\":\"HR Dataset\",\"product_filters\":[{\"product\":\"rum\",\"filters\":[\"@application.id:123\"]}],\"principals\":[\"role:94172442-be03-11e9-a77a-3b7612558ac1\"],\"created_by\":\"5fc21484-7314-11f0-86cc-a2f12af268bf\",\"created_at\":\"2025-08-27T15:05:18.148596Z\"}},{\"type\":\"dataset\",\"id\":\"2e6e3a20-1ada-4a78-b583-d08fe4e3e8ea\",\"attributes\":{\"name\":\"Security Audit DAC\",\"product_filters\":[{\"product\":\"logs\",\"filters\":[\"@application.id:ABCD\"]}],\"principals\":[\"role:94172442-be03-11e9-a77a-3b7612558ac1\"],\"created_by\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"created_at\":\"2026-03-26T21:30:12.944938Z\"}},{\"type\":\"dataset\",\"id\":\"9559049b-bcbc-420d-9f33-38c426cf1541\",\"attributes\":{\"name\":\"Security Audit Dataset\",\"product_filters\":[{\"product\":\"metrics\",\"filters\":[\"@application.id:ABCD\"]}],\"principals\":[\"role:94172442-be03-11e9-a77a-3b7612558ac1\"],\"created_by\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"created_at\":\"2025-07-31T17:26:56.804551Z\"}},{\"type\":\"dataset\",\"id\":\"ce9d9376-61bd-437f-93cc-43b5f754c92d\",\"attributes\":{\"name\":\"tf-test-Update-1773232609-updated\",\"product_filters\":[{\"product\":\"apm\",\"filters\":[\"service:test\"]},{\"product\":\"rum\",\"filters\":[\"@application.id:ce9843b0-7a45-453c-a831-55dd15f85141\"]}],\"principals\":[\"role:94172442-be03-11e9-a77a-3b7612558ac1\",\"team:4ca6f4c0-88e4-4d42-b7bd-dea73da5c59e\"],\"created_by\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"created_at\":\"2026-03-11T12:36:50.541349Z\"}}]}\n", + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "statusCode": 200, + "reasonPhrase": "OK" + }, + "times": { + "remainingTimes": 1 + }, + "timeToLive": { + "unlimited": true + }, + "id": "c38493f7-b33f-3354-897c-e07393c8ebdf" + }, + { + "httpRequest": { + "headers": {}, + "method": "DELETE", + "path": "/api/v2/datasets/2e6e3a20-1ada-4a78-b583-d08fe4e3e8ea", + "keepAlive": false, + "secure": true + }, + "httpResponse": { + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "statusCode": 204, + "reasonPhrase": "No Content" + }, + "times": { + "remainingTimes": 1 + }, + "timeToLive": { + "unlimited": true + }, + "id": "8637430b-a929-622c-3a43-bc994905da50" + } +] \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Get_all_datasets_returns_OK_response.freeze b/src/test/resources/cassettes/features/v2/Get_all_datasets_returns_OK_response.freeze deleted file mode 100644 index 7db64cb6bc1..00000000000 --- a/src/test/resources/cassettes/features/v2/Get_all_datasets_returns_OK_response.freeze +++ /dev/null @@ -1 +0,0 @@ -2025-07-29T20:36:00.713Z \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Get_all_datasets_returns_OK_response.json b/src/test/resources/cassettes/features/v2/Get_all_datasets_returns_OK_response.json deleted file mode 100644 index f6443799769..00000000000 --- a/src/test/resources/cassettes/features/v2/Get_all_datasets_returns_OK_response.json +++ /dev/null @@ -1,83 +0,0 @@ -[ - { - "httpRequest": { - "body": { - "type": "JSON", - "json": "{\"data\":{\"attributes\":{\"name\":\"Security Audit Dataset\",\"principals\":[\"role:94172442-be03-11e9-a77a-3b7612558ac1\"],\"product_filters\":[{\"filters\":[\"@application.id:ABCD\"],\"product\":\"metrics\"}]},\"type\":\"dataset\"}}" - }, - "headers": {}, - "method": "POST", - "path": "/api/v2/datasets", - "keepAlive": false, - "secure": true - }, - "httpResponse": { - "body": "{\"data\":{\"type\":\"dataset\",\"id\":\"b0f617b4-affb-4411-970a-2c157933514c\",\"attributes\":{\"name\":\"Security Audit Dataset\",\"product_filters\":[{\"product\":\"metrics\",\"filters\":[\"@application.id:ABCD\"]}],\"principals\":[\"role:94172442-be03-11e9-a77a-3b7612558ac1\"]}}}\n", - "headers": { - "Content-Type": [ - "application/json" - ] - }, - "statusCode": 200, - "reasonPhrase": "OK" - }, - "times": { - "remainingTimes": 1 - }, - "timeToLive": { - "unlimited": true - }, - "id": "32c558cf-4a2e-f914-f443-ab94000addca" - }, - { - "httpRequest": { - "headers": {}, - "method": "GET", - "path": "/api/v2/datasets", - "keepAlive": false, - "secure": true - }, - "httpResponse": { - "body": "{\"data\":[{\"type\":\"dataset\",\"id\":\"b0f617b4-affb-4411-970a-2c157933514c\",\"attributes\":{\"name\":\"Security Audit Dataset\",\"product_filters\":[{\"product\":\"metrics\",\"filters\":[\"@application.id:ABCD\"]}],\"principals\":[\"role:94172442-be03-11e9-a77a-3b7612558ac1\"],\"created_by\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"created_at\":\"2025-07-29T20:36:00.94442Z\"}}]}\n", - "headers": { - "Content-Type": [ - "application/json" - ] - }, - "statusCode": 200, - "reasonPhrase": "OK" - }, - "times": { - "remainingTimes": 1 - }, - "timeToLive": { - "unlimited": true - }, - "id": "c38493f7-b33f-3354-897c-e07393c8ebdf" - }, - { - "httpRequest": { - "headers": {}, - "method": "DELETE", - "path": "/api/v2/datasets/b0f617b4-affb-4411-970a-2c157933514c", - "keepAlive": false, - "secure": true - }, - "httpResponse": { - "headers": { - "Content-Type": [ - "application/json" - ] - }, - "statusCode": 204, - "reasonPhrase": "No Content" - }, - "times": { - "remainingTimes": 1 - }, - "timeToLive": { - "unlimited": true - }, - "id": "c45d6552-7feb-2f60-bba6-55c4c2d537ff" - } -] \ No newline at end of file diff --git a/src/test/resources/com/datadog/api/client/v2/api/datasets.feature b/src/test/resources/com/datadog/api/client/v2/api/data_access_controls.feature similarity index 60% rename from src/test/resources/com/datadog/api/client/v2/api/datasets.feature rename to src/test/resources/com/datadog/api/client/v2/api/data_access_controls.feature index 2e089dd0181..d98e2a182aa 100644 --- a/src/test/resources/com/datadog/api/client/v2/api/datasets.feature +++ b/src/test/resources/com/datadog/api/client/v2/api/data_access_controls.feature @@ -1,123 +1,112 @@ -@endpoint(datasets) @endpoint(datasets-v2) -Feature: Datasets - 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). +@endpoint(data-access-controls) @endpoint(data-access-controls-v2) +Feature: Data Access Controls + Manage [Data Access + Controls](https://docs.datadoghq.com/account_management/rbac/data_access/) + programmatically using Datasets. Data Access Controls in Datadog 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). Background: Given a valid "apiKeyAuth" key in the system And a valid "appKeyAuth" key in the system - And an instance of "Datasets" API + And an instance of "DataAccessControls" API @skip-go @skip-java @skip-python @skip-ruby @skip-rust @skip-terraform-config @skip-typescript @skip-validation @team:DataDog/aaa-granular-access - Scenario: Create a dataset returns "Bad Request" response + Scenario: Create a Data Access Control dataset returns "Bad Request" response Given new "CreateDataset" request - And operation "CreateDataset" enabled And body with value {"test": "bad_request"} When the request is sent Then the response status is 400 Bad Request @skip-terraform-config @team:DataDog/aaa-granular-access - Scenario: Create a dataset returns "Conflict" response + Scenario: Create a Data Access Control dataset returns "Conflict" response Given there is a valid "dataset" in the system - And operation "CreateDataset" enabled And new "CreateDataset" request - And body with value {"data": {"attributes": {"name": "Security Audit Dataset", "principals": ["role:94172442-be03-11e9-a77a-3b7612558ac1"], "product_filters": [{"filters": ["@application.id:ABCD"], "product": "metrics"}]}, "type": "dataset"}} + And body with value {"data": {"attributes": {"name": "Security Audit DAC", "principals": ["role:94172442-be03-11e9-a77a-3b7612558ac1"], "product_filters": [{"filters": ["@application.id:ABCD"], "product": "logs"}]}, "type": "dataset"}} When the request is sent Then the response status is 409 Conflict @skip-terraform-config @team:DataDog/aaa-granular-access - Scenario: Create a dataset returns "OK" response + Scenario: Create a Data Access Control dataset returns "OK" response Given new "CreateDataset" request - And operation "CreateDataset" enabled - And body with value {"data": {"attributes": {"name": "Security Audit Dataset", "principals": ["role:94172442-be03-11e9-a77a-3b7612558ac1"], "product_filters": [{"filters": ["@application.id:ABCD"], "product": "metrics"}]}, "type": "dataset"}} + And body with value {"data": {"attributes": {"name": "Security Audit DAC", "principals": ["role:94172442-be03-11e9-a77a-3b7612558ac1"], "product_filters": [{"filters": ["@application.id:ABCD"], "product": "logs"}]}, "type": "dataset"}} When the request is sent Then the response status is 200 OK @skip-terraform-config @team:DataDog/aaa-granular-access - Scenario: Delete a dataset returns "Bad Request" response + Scenario: Delete a Data Access Control dataset returns "Bad Request" response Given new "DeleteDataset" request - And operation "DeleteDataset" enabled And request contains "dataset_id" parameter with value "malformed_id" When the request is sent Then the response status is 400 Bad Request @skip-terraform-config @team:DataDog/aaa-granular-access - Scenario: Delete a dataset returns "No Content" response + Scenario: Delete a Data Access Control dataset returns "No Content" response Given there is a valid "dataset" in the system - And operation "DeleteDataset" enabled And new "DeleteDataset" request And request contains "dataset_id" parameter from "dataset.data.id" When the request is sent Then the response status is 204 No Content @skip-terraform-config @team:DataDog/aaa-granular-access - Scenario: Delete a dataset returns "Not Found" response + Scenario: Delete a Data Access Control dataset returns "Not Found" response Given new "DeleteDataset" request - And operation "DeleteDataset" enabled And request contains "dataset_id" parameter with value "00000000-0000-0000-0000-000000000000" When the request is sent Then the response status is 404 Not Found @skip-go @skip-java @skip-python @skip-ruby @skip-rust @skip-terraform-config @skip-typescript @skip-validation @team:DataDog/aaa-granular-access - Scenario: Edit a dataset returns "Bad Request" response + Scenario: Edit a Data Access Control dataset returns "Bad Request" response Given new "UpdateDataset" request - And operation "UpdateDataset" enabled And request contains "dataset_id" parameter with value "malformed_id" When the request is sent Then the response status is 400 Bad Request @skip @skip-terraform-config @team:DataDog/aaa-granular-access - Scenario: Edit a dataset returns "Not Found" response + Scenario: Edit a Data Access Control dataset returns "Not Found" response Given there is a valid "dataset" in the system - And operation "UpdateDataset" enabled And new "UpdateDataset" request And request contains "dataset_id" parameter from "dataset.data.id" - And body with value {"data": {"attributes": {"name": "Security Audit Dataset", "principals": ["role:94172442-be03-11e9-a77a-3b7612558ac1"], "product_filters": [{"filters": ["@application.id:1234"], "product": "metrics"}]}, "type": "dataset"}} + And body with value {"data": {"attributes": {"name": "Security Audit DAC", "principals": ["role:94172442-be03-11e9-a77a-3b7612558ac1"], "product_filters": [{"filters": ["@application.id:1234"], "product": "logs"}]}, "type": "dataset"}} When the request is sent Then the response status is 404 Not Found @skip-terraform-config @team:DataDog/aaa-granular-access - Scenario: Edit a dataset returns "OK" response + Scenario: Edit a Data Access Control dataset returns "OK" response Given there is a valid "dataset" in the system - And operation "UpdateDataset" enabled And new "UpdateDataset" request And request contains "dataset_id" parameter from "dataset.data.id" - And body with value {"data": {"attributes": {"name": "Security Audit Dataset", "principals": ["role:94172442-be03-11e9-a77a-3b7612558ac1"], "product_filters": [{"filters": ["@application.id:1234"], "product": "metrics"}]}, "type": "dataset"}} + And body with value {"data": {"attributes": {"name": "Security Audit DAC", "principals": ["role:94172442-be03-11e9-a77a-3b7612558ac1"], "product_filters": [{"filters": ["@application.id:1234"], "product": "logs"}]}, "type": "dataset"}} When the request is sent Then the response status is 200 OK @skip-terraform-config @team:DataDog/aaa-granular-access - Scenario: Get a single dataset by ID returns "Bad Request" response + Scenario: Get a Data Access Control dataset by ID returns "Bad Request" response Given new "GetDataset" request - And operation "GetDataset" enabled And request contains "dataset_id" parameter with value "malformed_id" When the request is sent Then the response status is 400 Bad Request @skip @skip-terraform-config @team:DataDog/aaa-granular-access - Scenario: Get a single dataset by ID returns "Not Found" response - Given operation "GetDataset" enabled - And new "GetDataset" request + Scenario: Get a Data Access Control dataset by ID returns "Not Found" response + Given new "GetDataset" request And request contains "dataset_id" parameter with value "00000000-0000-0000-0000-000000000000" When the request is sent Then the response status is 404 Not Found @skip-terraform-config @team:DataDog/aaa-granular-access - Scenario: Get a single dataset by ID returns "OK" response + Scenario: Get a Data Access Control dataset by ID returns "OK" response Given there is a valid "dataset" in the system - And operation "GetDataset" enabled And new "GetDataset" request And request contains "dataset_id" parameter from "dataset.data.id" When the request is sent Then the response status is 200 OK @skip-terraform-config @team:DataDog/aaa-granular-access - Scenario: Get all datasets returns "OK" response + Scenario: Get all Data Access Control datasets returns "OK" response Given there is a valid "dataset" in the system - And operation "GetAllDatasets" enabled And new "GetAllDatasets" request When the request is sent Then the response status is 200 OK diff --git a/src/test/resources/com/datadog/api/client/v2/api/given.json b/src/test/resources/com/datadog/api/client/v2/api/given.json index 6c42beffa17..af604e258cd 100644 --- a/src/test/resources/com/datadog/api/client/v2/api/given.json +++ b/src/test/resources/com/datadog/api/client/v2/api/given.json @@ -352,12 +352,12 @@ { "name": "body", "origin": "request", - "value": "{\n \"data\": {\n \"attributes\": {\n \"name\": \"Security Audit Dataset\",\n \"principals\": [\n \"role:94172442-be03-11e9-a77a-3b7612558ac1\"\n ],\n \"product_filters\": [\n {\n \"filters\": [\n \"@application.id:ABCD\"\n ],\n \"product\": \"metrics\"\n }\n ]\n },\n \"type\": \"dataset\"\n }\n}" + "value": "{\n \"data\": {\n \"attributes\": {\n \"name\": \"Security Audit DAC\",\n \"principals\": [\n \"role:94172442-be03-11e9-a77a-3b7612558ac1\"\n ],\n \"product_filters\": [\n {\n \"filters\": [\n \"@application.id:ABCD\"\n ],\n \"product\": \"logs\"\n }\n ]\n },\n \"type\": \"dataset\"\n }\n}" } ], "step": "there is a valid \"dataset\" in the system", "key": "dataset", - "tag": "Datasets", + "tag": "Data Access Controls", "operationId": "CreateDataset" }, { diff --git a/src/test/resources/com/datadog/api/client/v2/api/undo.json b/src/test/resources/com/datadog/api/client/v2/api/undo.json index dcdc0219f9c..fd5768703de 100644 --- a/src/test/resources/com/datadog/api/client/v2/api/undo.json +++ b/src/test/resources/com/datadog/api/client/v2/api/undo.json @@ -1471,13 +1471,13 @@ } }, "GetAllDatasets": { - "tag": "Datasets", + "tag": "Data Access Controls", "undo": { "type": "safe" } }, "CreateDataset": { - "tag": "Datasets", + "tag": "Data Access Controls", "undo": { "operationId": "DeleteDataset", "parameters": [ @@ -1490,19 +1490,19 @@ } }, "DeleteDataset": { - "tag": "Datasets", + "tag": "Data Access Controls", "undo": { "type": "idempotent" } }, "GetDataset": { - "tag": "Datasets", + "tag": "Data Access Controls", "undo": { "type": "safe" } }, "UpdateDataset": { - "tag": "Datasets", + "tag": "Data Access Controls", "undo": { "type": "idempotent" }