Skip to content

Commit 82856d6

Browse files
api-clients-generation-pipeline[bot]ci.datadog-api-spec
andauthored
Add BulkDeleteDatastoreItems to Datastore API spec (#2863)
Co-authored-by: ci.datadog-api-spec <[email protected]>
1 parent 5a26905 commit 82856d6

18 files changed

+663
-2
lines changed

.generator/schemas/v2/openapi.yaml

Lines changed: 102 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6553,6 +6553,46 @@ components:
65536553
description: The type of the object, must be `budget`.
65546554
type: string
65556555
type: object
6556+
BulkDeleteAppsDatastoreItemsRequest:
6557+
description: Request to delete items from a datastore.
6558+
properties:
6559+
data:
6560+
$ref: '#/components/schemas/BulkDeleteAppsDatastoreItemsRequestData'
6561+
type: object
6562+
BulkDeleteAppsDatastoreItemsRequestData:
6563+
description: Data wrapper containing the data needed to delete items from a
6564+
datastore.
6565+
properties:
6566+
attributes:
6567+
$ref: '#/components/schemas/BulkDeleteAppsDatastoreItemsRequestDataAttributes'
6568+
id:
6569+
description: ID for the datastore of the items to delete.
6570+
type: string
6571+
type:
6572+
$ref: '#/components/schemas/BulkDeleteAppsDatastoreItemsRequestDataType'
6573+
required:
6574+
- type
6575+
type: object
6576+
BulkDeleteAppsDatastoreItemsRequestDataAttributes:
6577+
description: Attributes of request data to delete items from a datastore.
6578+
properties:
6579+
item_keys:
6580+
description: List of primary keys identifying items to delete from datastore.
6581+
Up to 100 items can be deleted in a single request.
6582+
items:
6583+
type: string
6584+
maxItems: 100
6585+
type: array
6586+
type: object
6587+
BulkDeleteAppsDatastoreItemsRequestDataType:
6588+
default: items
6589+
description: Items resource type.
6590+
enum:
6591+
- items
6592+
example: items
6593+
type: string
6594+
x-enum-varnames:
6595+
- ITEMS
65566596
BulkMuteFindingsRequest:
65576597
description: The new bulk mute finding request.
65586598
properties:
@@ -14869,6 +14909,17 @@ components:
1486914909
data:
1487014910
$ref: '#/components/schemas/DeleteAppsDatastoreItemResponseData'
1487114911
type: object
14912+
DeleteAppsDatastoreItemResponseArray:
14913+
description: The definition of `DeleteAppsDatastoreItemResponseArray` object.
14914+
properties:
14915+
data:
14916+
description: The `DeleteAppsDatastoreItemResponseArray` `data`.
14917+
items:
14918+
$ref: '#/components/schemas/DeleteAppsDatastoreItemResponseData'
14919+
type: array
14920+
required:
14921+
- data
14922+
type: object
1487214923
DeleteAppsDatastoreItemResponseData:
1487314924
description: Data containing the identifier of the datastore item that was successfully
1487414925
deleted.
@@ -51257,6 +51308,57 @@ paths:
5125751308
permissions:
5125851309
- apps_datastore_write
5125951310
/api/v2/actions-datastores/{datastore_id}/items/bulk:
51311+
delete:
51312+
description: Deletes multiple items from a datastore by their keys in a single
51313+
operation.
51314+
operationId: BulkDeleteDatastoreItems
51315+
parameters:
51316+
- description: The ID of the datastore.
51317+
in: path
51318+
name: datastore_id
51319+
required: true
51320+
schema:
51321+
type: string
51322+
requestBody:
51323+
content:
51324+
application/json:
51325+
schema:
51326+
$ref: '#/components/schemas/BulkDeleteAppsDatastoreItemsRequest'
51327+
required: true
51328+
responses:
51329+
'200':
51330+
content:
51331+
application/json:
51332+
schema:
51333+
$ref: '#/components/schemas/DeleteAppsDatastoreItemResponseArray'
51334+
description: OK
51335+
'400':
51336+
content:
51337+
application/json:
51338+
schema:
51339+
$ref: '#/components/schemas/JSONAPIErrorResponse'
51340+
description: Bad Request
51341+
'404':
51342+
content:
51343+
application/json:
51344+
schema:
51345+
$ref: '#/components/schemas/JSONAPIErrorResponse'
51346+
description: Not Found
51347+
'429':
51348+
$ref: '#/components/responses/TooManyRequestsResponse'
51349+
'500':
51350+
content:
51351+
application/json:
51352+
schema:
51353+
$ref: '#/components/schemas/JSONAPIErrorResponse'
51354+
description: Internal Server Error
51355+
summary: Bulk delete datastore items
51356+
tags:
51357+
- Actions Datastores
51358+
x-permission:
51359+
operator: OR
51360+
permissions:
51361+
- apps_datastore_write
5126051362
post:
5126151363
description: Creates or replaces multiple items in a datastore by their keys
5126251364
in a single operation.

docs/datadog_api_client.v2.model.rst

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2398,6 +2398,34 @@ datadog\_api\_client.v2.model.budget\_with\_entries\_data module
23982398
:members:
23992399
:show-inheritance:
24002400

2401+
datadog\_api\_client.v2.model.bulk\_delete\_apps\_datastore\_items\_request module
2402+
----------------------------------------------------------------------------------
2403+
2404+
.. automodule:: datadog_api_client.v2.model.bulk_delete_apps_datastore_items_request
2405+
:members:
2406+
:show-inheritance:
2407+
2408+
datadog\_api\_client.v2.model.bulk\_delete\_apps\_datastore\_items\_request\_data module
2409+
----------------------------------------------------------------------------------------
2410+
2411+
.. automodule:: datadog_api_client.v2.model.bulk_delete_apps_datastore_items_request_data
2412+
:members:
2413+
:show-inheritance:
2414+
2415+
datadog\_api\_client.v2.model.bulk\_delete\_apps\_datastore\_items\_request\_data\_attributes module
2416+
----------------------------------------------------------------------------------------------------
2417+
2418+
.. automodule:: datadog_api_client.v2.model.bulk_delete_apps_datastore_items_request_data_attributes
2419+
:members:
2420+
:show-inheritance:
2421+
2422+
datadog\_api\_client.v2.model.bulk\_delete\_apps\_datastore\_items\_request\_data\_type module
2423+
----------------------------------------------------------------------------------------------
2424+
2425+
.. automodule:: datadog_api_client.v2.model.bulk_delete_apps_datastore_items_request_data_type
2426+
:members:
2427+
:show-inheritance:
2428+
24012429
datadog\_api\_client.v2.model.bulk\_mute\_findings\_request module
24022430
------------------------------------------------------------------
24032431

@@ -5856,6 +5884,13 @@ datadog\_api\_client.v2.model.delete\_apps\_datastore\_item\_response module
58565884
:members:
58575885
:show-inheritance:
58585886

5887+
datadog\_api\_client.v2.model.delete\_apps\_datastore\_item\_response\_array module
5888+
-----------------------------------------------------------------------------------
5889+
5890+
.. automodule:: datadog_api_client.v2.model.delete_apps_datastore_item_response_array
5891+
:members:
5892+
:show-inheritance:
5893+
58595894
datadog\_api\_client.v2.model.delete\_apps\_datastore\_item\_response\_data module
58605895
----------------------------------------------------------------------------------
58615896

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
"""
2+
Bulk delete datastore items returns "OK" response
3+
"""
4+
5+
from os import environ
6+
from datadog_api_client import ApiClient, Configuration
7+
from datadog_api_client.v2.api.actions_datastores_api import ActionsDatastoresApi
8+
from datadog_api_client.v2.model.bulk_delete_apps_datastore_items_request import BulkDeleteAppsDatastoreItemsRequest
9+
from datadog_api_client.v2.model.bulk_delete_apps_datastore_items_request_data import (
10+
BulkDeleteAppsDatastoreItemsRequestData,
11+
)
12+
from datadog_api_client.v2.model.bulk_delete_apps_datastore_items_request_data_attributes import (
13+
BulkDeleteAppsDatastoreItemsRequestDataAttributes,
14+
)
15+
from datadog_api_client.v2.model.bulk_delete_apps_datastore_items_request_data_type import (
16+
BulkDeleteAppsDatastoreItemsRequestDataType,
17+
)
18+
19+
# there is a valid "datastore" in the system
20+
DATASTORE_DATA_ID = environ["DATASTORE_DATA_ID"]
21+
22+
body = BulkDeleteAppsDatastoreItemsRequest(
23+
data=BulkDeleteAppsDatastoreItemsRequestData(
24+
attributes=BulkDeleteAppsDatastoreItemsRequestDataAttributes(
25+
item_keys=[
26+
"test-key",
27+
],
28+
),
29+
type=BulkDeleteAppsDatastoreItemsRequestDataType.ITEMS,
30+
),
31+
)
32+
33+
configuration = Configuration()
34+
with ApiClient(configuration) as api_client:
35+
api_instance = ActionsDatastoresApi(api_client)
36+
response = api_instance.bulk_delete_datastore_items(datastore_id=DATASTORE_DATA_ID, body=body)
37+
38+
print(response)

src/datadog_api_client/v2/api/actions_datastores_api.py

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@
2121
from datadog_api_client.v2.model.item_api_payload_array import ItemApiPayloadArray
2222
from datadog_api_client.v2.model.item_api_payload import ItemApiPayload
2323
from datadog_api_client.v2.model.update_apps_datastore_item_request import UpdateAppsDatastoreItemRequest
24+
from datadog_api_client.v2.model.delete_apps_datastore_item_response_array import DeleteAppsDatastoreItemResponseArray
25+
from datadog_api_client.v2.model.bulk_delete_apps_datastore_items_request import BulkDeleteAppsDatastoreItemsRequest
2426
from datadog_api_client.v2.model.put_apps_datastore_item_response_array import PutAppsDatastoreItemResponseArray
2527
from datadog_api_client.v2.model.bulk_put_apps_datastore_items_request import BulkPutAppsDatastoreItemsRequest
2628

@@ -36,6 +38,32 @@ def __init__(self, api_client=None):
3638
api_client = ApiClient(Configuration())
3739
self.api_client = api_client
3840

41+
self._bulk_delete_datastore_items_endpoint = _Endpoint(
42+
settings={
43+
"response_type": (DeleteAppsDatastoreItemResponseArray,),
44+
"auth": ["apiKeyAuth", "appKeyAuth"],
45+
"endpoint_path": "/api/v2/actions-datastores/{datastore_id}/items/bulk",
46+
"operation_id": "bulk_delete_datastore_items",
47+
"http_method": "DELETE",
48+
"version": "v2",
49+
},
50+
params_map={
51+
"datastore_id": {
52+
"required": True,
53+
"openapi_types": (str,),
54+
"attribute": "datastore_id",
55+
"location": "path",
56+
},
57+
"body": {
58+
"required": True,
59+
"openapi_types": (BulkDeleteAppsDatastoreItemsRequest,),
60+
"location": "body",
61+
},
62+
},
63+
headers_map={"accept": ["application/json"], "content_type": ["application/json"]},
64+
api_client=api_client,
65+
)
66+
3967
self._bulk_write_datastore_items_endpoint = _Endpoint(
4068
settings={
4169
"response_type": (PutAppsDatastoreItemResponseArray,),
@@ -277,6 +305,27 @@ def __init__(self, api_client=None):
277305
api_client=api_client,
278306
)
279307

308+
def bulk_delete_datastore_items(
309+
self,
310+
datastore_id: str,
311+
body: BulkDeleteAppsDatastoreItemsRequest,
312+
) -> DeleteAppsDatastoreItemResponseArray:
313+
"""Bulk delete datastore items.
314+
315+
Deletes multiple items from a datastore by their keys in a single operation.
316+
317+
:param datastore_id: The ID of the datastore.
318+
:type datastore_id: str
319+
:type body: BulkDeleteAppsDatastoreItemsRequest
320+
:rtype: DeleteAppsDatastoreItemResponseArray
321+
"""
322+
kwargs: Dict[str, Any] = {}
323+
kwargs["datastore_id"] = datastore_id
324+
325+
kwargs["body"] = body
326+
327+
return self._bulk_delete_datastore_items_endpoint.call_with_http_info(**kwargs)
328+
280329
def bulk_write_datastore_items(
281330
self,
282331
datastore_id: str,
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License.
2+
# This product includes software developed at Datadog (https://www.datadoghq.com/).
3+
# Copyright 2019-Present Datadog, Inc.
4+
from __future__ import annotations
5+
6+
from typing import Union, TYPE_CHECKING
7+
8+
from datadog_api_client.model_utils import (
9+
ModelNormal,
10+
cached_property,
11+
unset,
12+
UnsetType,
13+
)
14+
15+
16+
if TYPE_CHECKING:
17+
from datadog_api_client.v2.model.bulk_delete_apps_datastore_items_request_data import (
18+
BulkDeleteAppsDatastoreItemsRequestData,
19+
)
20+
21+
22+
class BulkDeleteAppsDatastoreItemsRequest(ModelNormal):
23+
@cached_property
24+
def openapi_types(_):
25+
from datadog_api_client.v2.model.bulk_delete_apps_datastore_items_request_data import (
26+
BulkDeleteAppsDatastoreItemsRequestData,
27+
)
28+
29+
return {
30+
"data": (BulkDeleteAppsDatastoreItemsRequestData,),
31+
}
32+
33+
attribute_map = {
34+
"data": "data",
35+
}
36+
37+
def __init__(self_, data: Union[BulkDeleteAppsDatastoreItemsRequestData, UnsetType] = unset, **kwargs):
38+
"""
39+
Request to delete items from a datastore.
40+
41+
:param data: Data wrapper containing the data needed to delete items from a datastore.
42+
:type data: BulkDeleteAppsDatastoreItemsRequestData, optional
43+
"""
44+
if data is not unset:
45+
kwargs["data"] = data
46+
super().__init__(kwargs)

0 commit comments

Comments
 (0)