Skip to content

Commit 6284f82

Browse files
api-clients-generation-pipeline[bot]ci.datadog-api-spec
andauthored
Add Row Update Endpoints to Reference Tables API spec (#1031)
Co-authored-by: ci.datadog-api-spec <[email protected]>
1 parent 1638c53 commit 6284f82

13 files changed

+1150
-2
lines changed

.generator/schemas/v2/openapi.yaml

Lines changed: 149 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6900,6 +6900,72 @@ components:
69006900
required:
69016901
- data
69026902
type: object
6903+
BatchDeleteRowsRequestArray:
6904+
description: The request body for deleting multiple rows from a reference table.
6905+
properties:
6906+
data:
6907+
items:
6908+
$ref: '#/components/schemas/BatchDeleteRowsRequestData'
6909+
maxItems: 200
6910+
type: array
6911+
required:
6912+
- data
6913+
type: object
6914+
BatchDeleteRowsRequestData:
6915+
description: Row resource containing a single row identifier for deletion.
6916+
properties:
6917+
id:
6918+
example: primary_key_value
6919+
type: string
6920+
type:
6921+
$ref: '#/components/schemas/TableRowResourceDataType'
6922+
required:
6923+
- type
6924+
- id
6925+
type: object
6926+
BatchUpsertRowsRequestArray:
6927+
description: The request body for creating or updating multiple rows into a
6928+
reference table.
6929+
properties:
6930+
data:
6931+
items:
6932+
$ref: '#/components/schemas/BatchUpsertRowsRequestData'
6933+
maxItems: 200
6934+
type: array
6935+
required:
6936+
- data
6937+
type: object
6938+
BatchUpsertRowsRequestData:
6939+
description: Row resource containing a single row identifier and its column
6940+
values.
6941+
properties:
6942+
attributes:
6943+
$ref: '#/components/schemas/BatchUpsertRowsRequestDataAttributes'
6944+
id:
6945+
example: primary_key_value
6946+
type: string
6947+
type:
6948+
$ref: '#/components/schemas/TableRowResourceDataType'
6949+
required:
6950+
- type
6951+
- id
6952+
type: object
6953+
BatchUpsertRowsRequestDataAttributes:
6954+
description: Attributes containing row data values for row creation or update
6955+
operations.
6956+
properties:
6957+
values:
6958+
additionalProperties:
6959+
x-required-field: true
6960+
description: Key-value pairs representing row data, where keys are field
6961+
names from the schema.
6962+
example:
6963+
example_key_value: primary_key_value
6964+
name: row_name
6965+
type: object
6966+
required:
6967+
- values
6968+
type: object
69036969
BillConfig:
69046970
description: Bill config.
69056971
properties:
@@ -76823,6 +76889,47 @@ paths:
7682376889
tags:
7682476890
- Reference Tables
7682576891
/api/v2/reference-tables/tables/{id}/rows:
76892+
delete:
76893+
description: Delete multiple rows from a Reference Table by their primary key
76894+
values.
76895+
operationId: DeleteRows
76896+
parameters:
76897+
- description: Unique identifier of the reference table to delete rows from
76898+
in: path
76899+
name: id
76900+
required: true
76901+
schema:
76902+
type: string
76903+
requestBody:
76904+
content:
76905+
application/json:
76906+
schema:
76907+
$ref: '#/components/schemas/BatchDeleteRowsRequestArray'
76908+
required: true
76909+
responses:
76910+
'200':
76911+
description: Rows deleted successfully
76912+
'400':
76913+
$ref: '#/components/responses/BadRequestResponse'
76914+
'403':
76915+
$ref: '#/components/responses/ForbiddenResponse'
76916+
'404':
76917+
$ref: '#/components/responses/NotFoundResponse'
76918+
'429':
76919+
$ref: '#/components/responses/TooManyRequestsResponse'
76920+
'500':
76921+
content:
76922+
application/json:
76923+
schema:
76924+
$ref: '#/components/schemas/APIErrorResponse'
76925+
description: Internal Server Error
76926+
security:
76927+
- apiKeyAuth: []
76928+
appKeyAuth: []
76929+
- AuthZ: []
76930+
summary: Delete rows
76931+
tags:
76932+
- Reference Tables
7682676933
get:
7682776934
description: Get reference table rows by their primary key values.
7682876935
operationId: GetRowsByID
@@ -76867,6 +76974,48 @@ paths:
7686776974
summary: Get rows by id
7686876975
tags:
7686976976
- Reference Tables
76977+
post:
76978+
description: Create or update rows in a Reference Table by their primary key
76979+
values. If a row with the specified primary key exists, it is updated; otherwise,
76980+
a new row is created.
76981+
operationId: UpsertRows
76982+
parameters:
76983+
- description: Unique identifier of the reference table to upsert rows into
76984+
in: path
76985+
name: id
76986+
required: true
76987+
schema:
76988+
type: string
76989+
requestBody:
76990+
content:
76991+
application/json:
76992+
schema:
76993+
$ref: '#/components/schemas/BatchUpsertRowsRequestArray'
76994+
required: true
76995+
responses:
76996+
'200':
76997+
description: Rows created or updated successfully
76998+
'400':
76999+
$ref: '#/components/responses/BadRequestResponse'
77000+
'403':
77001+
$ref: '#/components/responses/ForbiddenResponse'
77002+
'404':
77003+
$ref: '#/components/responses/NotFoundResponse'
77004+
'429':
77005+
$ref: '#/components/responses/TooManyRequestsResponse'
77006+
'500':
77007+
content:
77008+
application/json:
77009+
schema:
77010+
$ref: '#/components/schemas/APIErrorResponse'
77011+
description: Internal Server Error
77012+
security:
77013+
- apiKeyAuth: []
77014+
appKeyAuth: []
77015+
- AuthZ: []
77016+
summary: Upsert rows
77017+
tags:
77018+
- Reference Tables
7687077019
/api/v2/reference-tables/uploads:
7687177020
post:
7687277021
description: Create a reference table upload for bulk data ingestion
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
// Delete rows returns "Rows deleted successfully" response
2+
use datadog_api_client::datadog;
3+
use datadog_api_client::datadogV2::api_reference_tables::ReferenceTablesAPI;
4+
use datadog_api_client::datadogV2::model::BatchDeleteRowsRequestArray;
5+
use datadog_api_client::datadogV2::model::BatchDeleteRowsRequestData;
6+
use datadog_api_client::datadogV2::model::TableRowResourceDataType;
7+
8+
#[tokio::main]
9+
async fn main() {
10+
let body = BatchDeleteRowsRequestArray::new(vec![BatchDeleteRowsRequestData::new(
11+
"primary_key_value".to_string(),
12+
TableRowResourceDataType::ROW,
13+
)]);
14+
let configuration = datadog::Configuration::new();
15+
let api = ReferenceTablesAPI::with_config(configuration);
16+
let resp = api.delete_rows("id".to_string(), body).await;
17+
if let Ok(value) = resp {
18+
println!("{:#?}", value);
19+
} else {
20+
println!("{:#?}", resp.unwrap_err());
21+
}
22+
}
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
// Upsert rows returns "Rows created or updated successfully" response
2+
use datadog_api_client::datadog;
3+
use datadog_api_client::datadogV2::api_reference_tables::ReferenceTablesAPI;
4+
use datadog_api_client::datadogV2::model::BatchUpsertRowsRequestArray;
5+
use datadog_api_client::datadogV2::model::BatchUpsertRowsRequestData;
6+
use datadog_api_client::datadogV2::model::BatchUpsertRowsRequestDataAttributes;
7+
use datadog_api_client::datadogV2::model::TableRowResourceDataType;
8+
use serde_json::Value;
9+
use std::collections::BTreeMap;
10+
11+
#[tokio::main]
12+
async fn main() {
13+
let body = BatchUpsertRowsRequestArray::new(vec![BatchUpsertRowsRequestData::new(
14+
"primary_key_value".to_string(),
15+
TableRowResourceDataType::ROW,
16+
)
17+
.attributes(BatchUpsertRowsRequestDataAttributes::new(BTreeMap::from([
18+
(
19+
"example_key_value".to_string(),
20+
Value::from("primary_key_value"),
21+
),
22+
("name".to_string(), Value::from("row_name")),
23+
])))]);
24+
let configuration = datadog::Configuration::new();
25+
let api = ReferenceTablesAPI::with_config(configuration);
26+
let resp = api.upsert_rows("id".to_string(), body).await;
27+
if let Ok(value) = resp {
28+
println!("{:#?}", value);
29+
} else {
30+
println!("{:#?}", resp.unwrap_err());
31+
}
32+
}

0 commit comments

Comments
 (0)