Skip to content

Commit 70a1dff

Browse files
api-clients-generation-pipeline[bot]skarimoci.datadog-api-spec
authored
Add Datasets API to Open API Spec (#2503)
* updated review context * no immutable * Regenerate client from commit 36ebfd8 of spec repo --------- Co-authored-by: skarimo <[email protected]> Co-authored-by: ci.datadog-api-spec <[email protected]>
1 parent 6c06ac3 commit 70a1dff

24 files changed

+1560
-2
lines changed

.generated-info

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
{
2+
"spec_repo_commit": "36ebfd8",
3+
"generated": "2025-07-14 17:54:40.252"
4+
}

.generator/schemas/v2/openapi.yaml

Lines changed: 256 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -288,6 +288,14 @@ components:
288288
required: true
289289
schema:
290290
type: string
291+
DatasetID:
292+
description: The ID of a defined dataset.
293+
example: 0879ce27-29a1-481f-a12e-bc2a48ec9ae1
294+
in: path
295+
name: dataset_id
296+
required: true
297+
schema:
298+
type: string
291299
EntityID:
292300
description: UUID or Entity Ref.
293301
in: path
@@ -12178,6 +12186,85 @@ components:
1217812186
required:
1217912187
- databaseMonitoringTrigger
1218012188
type: object
12189+
Dataset:
12190+
description: Dataset object.
12191+
properties:
12192+
attributes:
12193+
$ref: '#/components/schemas/DatasetAttributes'
12194+
id:
12195+
description: Unique identifier for the dataset.
12196+
example: 123e4567-e89b-12d3-a456-426614174000
12197+
type: string
12198+
type:
12199+
description: Resource type, always "dataset".
12200+
example: dataset
12201+
type: string
12202+
required:
12203+
- type
12204+
- attributes
12205+
type: object
12206+
DatasetAttributes:
12207+
description: Dataset metadata and configuration(s).
12208+
properties:
12209+
created_at:
12210+
description: Timestamp when the dataset was created.
12211+
format: date-time
12212+
nullable: true
12213+
type: string
12214+
created_by:
12215+
description: Unique ID of the user who created the dataset.
12216+
format: uuid
12217+
type: string
12218+
name:
12219+
description: Name of the dataset.
12220+
example: Security Audit Dataset
12221+
type: string
12222+
principals:
12223+
description: List of access principals, formatted as `principal_type:id`.
12224+
Principal can be 'team' or 'role'.
12225+
example:
12226+
- role:86245fce-0a4e-11f0-92bd-da7ad0900002
12227+
items:
12228+
example: role:86245fce-0a4e-11f0-92bd-da7ad0900002
12229+
type: string
12230+
type: array
12231+
product_filters:
12232+
description: List of product-specific filters.
12233+
items:
12234+
$ref: '#/components/schemas/FiltersPerProduct'
12235+
type: array
12236+
required:
12237+
- name
12238+
- product_filters
12239+
- principals
12240+
type: object
12241+
DatasetCreateRequest:
12242+
description: Create request for a dataset.
12243+
properties:
12244+
data:
12245+
$ref: '#/components/schemas/Dataset'
12246+
required:
12247+
- data
12248+
type: object
12249+
DatasetResponseMulti:
12250+
description: Response containing a list of datasets.
12251+
properties:
12252+
data:
12253+
description: The list of datasets returned in response.
12254+
items:
12255+
$ref: '#/components/schemas/Dataset'
12256+
type: array
12257+
required:
12258+
- data
12259+
type: object
12260+
DatasetResponseSingle:
12261+
description: Response containing a single dataset object.
12262+
properties:
12263+
data:
12264+
$ref: '#/components/schemas/Dataset'
12265+
required:
12266+
- data
12267+
type: object
1218112268
Date:
1218212269
description: Date as Unix timestamp in milliseconds.
1218312270
example: 1722439510282
@@ -15636,6 +15723,38 @@ components:
1563615723
$ref: '#/components/schemas/FastlyServiceData'
1563715724
type: array
1563815725
type: object
15726+
FiltersPerProduct:
15727+
description: Product-specific filters for the dataset.
15728+
properties:
15729+
filters:
15730+
description: 'Defines the list of tag-based filters used to restrict access
15731+
to telemetry data for a specific product.
15732+
15733+
These filters act as access control rules. Each filter must follow the
15734+
tag query syntax used by
15735+
15736+
Datadog (such as `@tag.key:value`), and only one tag or attribute may
15737+
be used to define the access strategy
15738+
15739+
per telemetry type.'
15740+
example:
15741+
- '@application.id:ABCD'
15742+
items:
15743+
example: '@application.id:ABCD'
15744+
type: string
15745+
type: array
15746+
product:
15747+
description: 'Name of the product the dataset is for. Possible values are
15748+
''apm'', ''rum'', ''synthetics'',
15749+
15750+
''metrics'', ''logs'', ''sd_repoinfo'', ''error_tracking'', ''cloud_cost'',
15751+
and ''ml_obs''.'
15752+
example: logs
15753+
type: string
15754+
required:
15755+
- product
15756+
- filters
15757+
type: object
1563915758
Finding:
1564015759
description: A single finding without the message and resource configuration.
1564115760
properties:
@@ -47544,6 +47663,135 @@ paths:
4754447663
tags:
4754547664
- Dashboard Lists
4754647665
x-codegen-request-body-name: body
47666+
/api/v2/datasets:
47667+
get:
47668+
description: Get all datasets that have been configured for an organization.
47669+
operationId: GetAllDatasets
47670+
responses:
47671+
'200':
47672+
content:
47673+
application/json:
47674+
schema:
47675+
$ref: '#/components/schemas/DatasetResponseMulti'
47676+
description: OK
47677+
'403':
47678+
$ref: '#/components/responses/NotAuthorizedResponse'
47679+
'429':
47680+
$ref: '#/components/responses/TooManyRequestsResponse'
47681+
security:
47682+
- apiKeyAuth: []
47683+
appKeyAuth: []
47684+
- AuthZ: []
47685+
summary: Get all datasets
47686+
tags:
47687+
- Datasets
47688+
x-permission:
47689+
operator: OPEN
47690+
permissions: []
47691+
post:
47692+
description: Create a dataset with the configurations in the request.
47693+
operationId: CreateDataset
47694+
requestBody:
47695+
content:
47696+
application/json:
47697+
example:
47698+
data:
47699+
attributes:
47700+
name: Test RUM Dataset
47701+
principals:
47702+
- role:23bacb30-1c59-11f0-a596-da7ad0900002
47703+
product_filters:
47704+
- filters:
47705+
- '@application.id:application_123'
47706+
product: rum
47707+
type: dataset
47708+
schema:
47709+
$ref: '#/components/schemas/DatasetCreateRequest'
47710+
description: Dataset payload
47711+
required: true
47712+
responses:
47713+
'200':
47714+
content:
47715+
application/json:
47716+
schema:
47717+
$ref: '#/components/schemas/DatasetResponseSingle'
47718+
description: OK
47719+
'400':
47720+
$ref: '#/components/responses/BadRequestResponse'
47721+
'403':
47722+
$ref: '#/components/responses/NotAuthorizedResponse'
47723+
'409':
47724+
$ref: '#/components/responses/ConflictResponse'
47725+
'429':
47726+
$ref: '#/components/responses/TooManyRequestsResponse'
47727+
security:
47728+
- apiKeyAuth: []
47729+
appKeyAuth: []
47730+
- AuthZ: []
47731+
summary: Create a dataset
47732+
tags:
47733+
- Datasets
47734+
x-codegen-request-body-name: body
47735+
x-permission:
47736+
operator: OPEN
47737+
permissions: []
47738+
/api/v2/datasets/{dataset_id}:
47739+
delete:
47740+
description: Deletes the dataset associated with the ID.
47741+
operationId: DeleteDataset
47742+
parameters:
47743+
- $ref: '#/components/parameters/DatasetID'
47744+
responses:
47745+
'204':
47746+
description: No Content
47747+
'400':
47748+
$ref: '#/components/responses/BadRequestResponse'
47749+
'403':
47750+
$ref: '#/components/responses/NotAuthorizedResponse'
47751+
'404':
47752+
$ref: '#/components/responses/NotFoundResponse'
47753+
'429':
47754+
$ref: '#/components/responses/TooManyRequestsResponse'
47755+
security:
47756+
- apiKeyAuth: []
47757+
appKeyAuth: []
47758+
- AuthZ: []
47759+
summary: Delete a dataset
47760+
tags:
47761+
- Datasets
47762+
x-permission:
47763+
operator: OPEN
47764+
permissions: []
47765+
get:
47766+
description: Retrieves the dataset associated with the ID.
47767+
operationId: GetDataset
47768+
parameters:
47769+
- $ref: '#/components/parameters/DatasetID'
47770+
responses:
47771+
'200':
47772+
content:
47773+
application/json:
47774+
schema:
47775+
$ref: '#/components/schemas/DatasetResponseSingle'
47776+
description: OK
47777+
'400':
47778+
$ref: '#/components/responses/BadRequestResponse'
47779+
'403':
47780+
$ref: '#/components/responses/NotAuthorizedResponse'
47781+
'404':
47782+
$ref: '#/components/responses/NotFoundResponse'
47783+
'429':
47784+
$ref: '#/components/responses/TooManyRequestsResponse'
47785+
security:
47786+
- apiKeyAuth: []
47787+
appKeyAuth: []
47788+
- AuthZ: []
47789+
summary: Get a single dataset by ID
47790+
tags:
47791+
- Datasets
47792+
x-permission:
47793+
operator: OPEN
47794+
permissions: []
4754747795
/api/v2/deletion/data/{product}:
4754847796
post:
4754947797
description: Creates a data deletion request by providing a query and a timeframe
@@ -65102,6 +65350,14 @@ tags:
6510265350
the allowed products. It's currently enabled for Logs and RUM and depends on `logs_delete_data`
6510365351
and `rum_delete_data` permissions respectively.
6510465352
name: Data Deletion
65353+
- description: 'Data Access Controls in Datadog is a feature that allows administrators
65354+
and access managers to regulate
65355+
65356+
access to sensitive data. By defining Restricted Datasets, you can ensure that
65357+
only specific teams or roles can
65358+
65359+
view certain types of telemetry (for example, logs, traces, metrics, and RUM data).'
65360+
name: Datasets
6510565361
- description: 'Configure your Datadog Email Domain Allowlist directly through the
6510665362
Datadog API.
6510765363

.github/workflows/approval_status.yml

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
name: Send PR Approval Status
2+
3+
permissions:
4+
contents: read
5+
pull-requests: write
6+
7+
on:
8+
pull_request:
9+
branches:
10+
- v2
11+
types: ["review_requested", "synchronize", "opened", "reopened"]
12+
pull_request_review:
13+
types:
14+
- submitted
15+
- dismissed
16+
17+
jobs:
18+
send_status:
19+
runs-on: ubuntu-latest
20+
if: >
21+
github.event.pull_request.draft == false &&
22+
!contains(github.event.pull_request.labels.*.name, 'ci/skip') &&
23+
!contains(github.event.pull_request.head.ref, 'datadog-api-spec/v2/test/') &&
24+
contains(github.event.pull_request.head.ref, 'datadog-api-spec/v2/generated')
25+
steps:
26+
- name: Get GitHub App token
27+
id: get_token
28+
uses: actions/create-github-app-token@v1
29+
with:
30+
app-id: ${{ secrets.PIPELINE_GITHUB_APP_ID }}
31+
private-key: ${{ secrets.PIPELINE_GITHUB_APP_PRIVATE_KEY }}
32+
repositories: datadog-api-spec
33+
- name: Get pull request number
34+
id: get_pr_number
35+
run: |
36+
spec_pr=$(echo "${{ github.event.pull_request.head.ref }}" | sed 's/.*generated\/\([0-9]*\).*/\1/')
37+
echo "spec_pr=${spec_pr}" >> $GITHUB_OUTPUT
38+
- name: Post PR review status check
39+
uses: DataDog/github-actions/post-review-status@65b4875f33ad773d7ba4b005a2cb5f35020295f3
40+
with:
41+
github-token: ${{ steps.get_token.outputs.token }}
42+
repo: datadog-api-spec
43+
context: datadog-api-client-typescript/v2
44+
pull-request: ${{ steps.get_pr_number.outputs.spec_pr }}

.pre-commit-config.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,14 +9,14 @@ repos:
99
- id: lint
1010
name: Lint
1111
language: node
12-
entry: bash -c "COREPACK_ENABLE_DOWNLOAD_PROMPT=0 corepack enable && yarn install && yarn lint:fix"
12+
entry: bash -c "COREPACK_ENABLE_DOWNLOAD_PROMPT=0 corepack enable && yarn install --no-immutable && yarn lint:fix"
1313
stages: [manual]
1414
pass_filenames: false
1515
language_version: "22.15.0"
1616
- id: format
1717
name: Format code
1818
language: node
19-
entry: bash -c "COREPACK_ENABLE_DOWNLOAD_PROMPT=0 corepack enable && yarn install && yarn format"
19+
entry: bash -c "COREPACK_ENABLE_DOWNLOAD_PROMPT=0 corepack enable && yarn install --no-immutable && yarn format"
2020
stages: [manual]
2121
pass_filenames: false
2222
language_version: "22.15.0"

0 commit comments

Comments
 (0)