Skip to content

Commit 1229026

Browse files
api-clients-generation-pipeline[bot]ci.datadog-api-spec
andauthored
Add pagination and sorting parameters on suppression list (#3080)
Co-authored-by: ci.datadog-api-spec <packages@datadoghq.com>
1 parent 95fc9fd commit 1229026

File tree

27 files changed

+811
-36
lines changed

27 files changed

+811
-36
lines changed

.generator/schemas/v2/openapi.yaml

Lines changed: 80 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49256,6 +49256,18 @@ components:
4925649256
meta:
4925749257
$ref: '#/components/schemas/ResponseMetaAttributes'
4925849258
type: object
49259+
SecurityMonitoringPaginatedSuppressionsResponse:
49260+
description: Response object containing the available suppression rules with
49261+
pagination metadata.
49262+
properties:
49263+
data:
49264+
description: A list of suppressions objects.
49265+
items:
49266+
$ref: '#/components/schemas/SecurityMonitoringSuppression'
49267+
type: array
49268+
meta:
49269+
$ref: '#/components/schemas/SecurityMonitoringSuppressionsMeta'
49270+
type: object
4925949271
SecurityMonitoringReferenceTable:
4926049272
description: Reference tables used in the queries.
4926149273
properties:
@@ -51405,6 +51417,31 @@ components:
5140551417
data:
5140651418
$ref: '#/components/schemas/SecurityMonitoringSuppression'
5140751419
type: object
51420+
SecurityMonitoringSuppressionSort:
51421+
description: The sort parameters used for querying suppression rules.
51422+
enum:
51423+
- name
51424+
- start_date
51425+
- expiration_date
51426+
- update_date
51427+
- enabled
51428+
- -name
51429+
- -start_date
51430+
- -expiration_date
51431+
- -update_date
51432+
- -enabled
51433+
type: string
51434+
x-enum-varnames:
51435+
- NAME
51436+
- START_DATE
51437+
- EXPIRATION_DATE
51438+
- UPDATE_DATE
51439+
- ENABLED
51440+
- NAME_DESCENDING
51441+
- START_DATE_DESCENDING
51442+
- EXPIRATION_DATE_DESCENDING
51443+
- UPDATE_DATE_DESCENDING
51444+
- ENABLED_DESCENDING
5140851445
SecurityMonitoringSuppressionType:
5140951446
default: suppressions
5141051447
description: The type of the resource. The value should always be `suppressions`.
@@ -51500,6 +51537,31 @@ components:
5150051537
required:
5150151538
- data
5150251539
type: object
51540+
SecurityMonitoringSuppressionsMeta:
51541+
description: Metadata for the suppression list response.
51542+
properties:
51543+
page:
51544+
$ref: '#/components/schemas/SecurityMonitoringSuppressionsPageMeta'
51545+
type: object
51546+
SecurityMonitoringSuppressionsPageMeta:
51547+
description: Pagination metadata.
51548+
properties:
51549+
pageNumber:
51550+
description: Current page number.
51551+
example: 0
51552+
format: int64
51553+
type: integer
51554+
pageSize:
51555+
description: Current page size.
51556+
example: 2
51557+
format: int64
51558+
type: integer
51559+
totalCount:
51560+
description: Total count of suppressions.
51561+
example: 2
51562+
format: int64
51563+
type: integer
51564+
type: object
5150351565
SecurityMonitoringSuppressionsResponse:
5150451566
description: Response object containing the available suppression rules.
5150551567
properties:
@@ -85670,12 +85732,29 @@ paths:
8567085732
required: false
8567185733
schema:
8567285734
type: string
85735+
- description: Attribute used to sort the list of suppression rules. Prefix
85736+
with `-` to sort in descending order.
85737+
in: query
85738+
name: sort
85739+
required: false
85740+
schema:
85741+
$ref: '#/components/schemas/SecurityMonitoringSuppressionSort'
85742+
- description: Size for a given page. Use `-1` to return all items.
85743+
in: query
85744+
name: page[size]
85745+
required: false
85746+
schema:
85747+
default: -1
85748+
example: 10
85749+
format: int64
85750+
type: integer
85751+
- $ref: '#/components/parameters/PageNumber'
8567385752
responses:
8567485753
'200':
8567585754
content:
8567685755
application/json:
8567785756
schema:
85678-
$ref: '#/components/schemas/SecurityMonitoringSuppressionsResponse'
85757+
$ref: '#/components/schemas/SecurityMonitoringPaginatedSuppressionsResponse'
8567985758
description: OK
8568085759
'403':
8568185760
$ref: '#/components/responses/NotAuthorizedResponse'

docs/datadog_api_client.v2.model.rst

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21739,6 +21739,13 @@ datadog\_api\_client.v2.model.security\_monitoring\_list\_rules\_response module
2173921739
:members:
2174021740
:show-inheritance:
2174121741

21742+
datadog\_api\_client.v2.model.security\_monitoring\_paginated\_suppressions\_response module
21743+
--------------------------------------------------------------------------------------------
21744+
21745+
.. automodule:: datadog_api_client.v2.model.security_monitoring_paginated_suppressions_response
21746+
:members:
21747+
:show-inheritance:
21748+
2174221749
datadog\_api\_client.v2.model.security\_monitoring\_reference\_table module
2174321750
---------------------------------------------------------------------------
2174421751

@@ -22376,6 +22383,13 @@ datadog\_api\_client.v2.model.security\_monitoring\_suppression\_response module
2237622383
:members:
2237722384
:show-inheritance:
2237822385

22386+
datadog\_api\_client.v2.model.security\_monitoring\_suppression\_sort module
22387+
----------------------------------------------------------------------------
22388+
22389+
.. automodule:: datadog_api_client.v2.model.security_monitoring_suppression_sort
22390+
:members:
22391+
:show-inheritance:
22392+
2237922393
datadog\_api\_client.v2.model.security\_monitoring\_suppression\_type module
2238022394
----------------------------------------------------------------------------
2238122395

@@ -22404,6 +22418,20 @@ datadog\_api\_client.v2.model.security\_monitoring\_suppression\_update\_request
2240422418
:members:
2240522419
:show-inheritance:
2240622420

22421+
datadog\_api\_client.v2.model.security\_monitoring\_suppressions\_meta module
22422+
-----------------------------------------------------------------------------
22423+
22424+
.. automodule:: datadog_api_client.v2.model.security_monitoring_suppressions_meta
22425+
:members:
22426+
:show-inheritance:
22427+
22428+
datadog\_api\_client.v2.model.security\_monitoring\_suppressions\_page\_meta module
22429+
-----------------------------------------------------------------------------------
22430+
22431+
.. automodule:: datadog_api_client.v2.model.security_monitoring_suppressions_page_meta
22432+
:members:
22433+
:show-inheritance:
22434+
2240722435
datadog\_api\_client.v2.model.security\_monitoring\_suppressions\_response module
2240822436
---------------------------------------------------------------------------------
2240922437

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
"""
2+
Get all suppression rules returns "OK" response with sort ascending
3+
"""
4+
5+
from os import environ
6+
from datadog_api_client import ApiClient, Configuration
7+
from datadog_api_client.v2.api.security_monitoring_api import SecurityMonitoringApi
8+
from datadog_api_client.v2.model.security_monitoring_suppression_sort import SecurityMonitoringSuppressionSort
9+
10+
# there is a valid "suppression" in the system
11+
SUPPRESSION_DATA_ID = environ["SUPPRESSION_DATA_ID"]
12+
13+
# there is a valid "suppression2" in the system
14+
SUPPRESSION2_DATA_ID = environ["SUPPRESSION2_DATA_ID"]
15+
16+
configuration = Configuration()
17+
with ApiClient(configuration) as api_client:
18+
api_instance = SecurityMonitoringApi(api_client)
19+
response = api_instance.list_security_monitoring_suppressions(
20+
query="id:3dd-0uc-h1s OR id:886e6c3e-e543-049c-ee1b-56a1110295c0",
21+
sort=SecurityMonitoringSuppressionSort.NAME,
22+
)
23+
24+
print(response)
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
"""
2+
Get all suppression rules returns "OK" response with sort descending
3+
"""
4+
5+
from os import environ
6+
from datadog_api_client import ApiClient, Configuration
7+
from datadog_api_client.v2.api.security_monitoring_api import SecurityMonitoringApi
8+
from datadog_api_client.v2.model.security_monitoring_suppression_sort import SecurityMonitoringSuppressionSort
9+
10+
# there is a valid "suppression" in the system
11+
SUPPRESSION_DATA_ID = environ["SUPPRESSION_DATA_ID"]
12+
13+
# there is a valid "suppression2" in the system
14+
SUPPRESSION2_DATA_ID = environ["SUPPRESSION2_DATA_ID"]
15+
16+
configuration = Configuration()
17+
with ApiClient(configuration) as api_client:
18+
api_instance = SecurityMonitoringApi(api_client)
19+
response = api_instance.list_security_monitoring_suppressions(
20+
query="id:3dd-0uc-h1s OR id:886e6c3e-e543-049c-ee1b-56a1110295c0",
21+
sort=SecurityMonitoringSuppressionSort.NAME_DESCENDING,
22+
)
23+
24+
print(response)
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
"""
2+
Get all suppression rules returns "OK" response with pagination
3+
"""
4+
5+
from os import environ
6+
from datadog_api_client import ApiClient, Configuration
7+
from datadog_api_client.v2.api.security_monitoring_api import SecurityMonitoringApi
8+
9+
# there is a valid "suppression" in the system
10+
SUPPRESSION_DATA_ID = environ["SUPPRESSION_DATA_ID"]
11+
12+
# there is a valid "suppression2" in the system
13+
SUPPRESSION2_DATA_ID = environ["SUPPRESSION2_DATA_ID"]
14+
15+
configuration = Configuration()
16+
with ApiClient(configuration) as api_client:
17+
api_instance = SecurityMonitoringApi(api_client)
18+
response = api_instance.list_security_monitoring_suppressions(
19+
query="id:3dd-0uc-h1s OR id:886e6c3e-e543-049c-ee1b-56a1110295c0",
20+
page_size=1,
21+
page_number=0,
22+
)
23+
24+
print(response)

src/datadog_api_client/v2/api/security_monitoring_api.py

Lines changed: 41 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -80,11 +80,15 @@
8080
from datadog_api_client.v2.model.security_filter_response import SecurityFilterResponse
8181
from datadog_api_client.v2.model.security_filter_create_request import SecurityFilterCreateRequest
8282
from datadog_api_client.v2.model.security_filter_update_request import SecurityFilterUpdateRequest
83-
from datadog_api_client.v2.model.security_monitoring_suppressions_response import SecurityMonitoringSuppressionsResponse
83+
from datadog_api_client.v2.model.security_monitoring_paginated_suppressions_response import (
84+
SecurityMonitoringPaginatedSuppressionsResponse,
85+
)
86+
from datadog_api_client.v2.model.security_monitoring_suppression_sort import SecurityMonitoringSuppressionSort
8487
from datadog_api_client.v2.model.security_monitoring_suppression_response import SecurityMonitoringSuppressionResponse
8588
from datadog_api_client.v2.model.security_monitoring_suppression_create_request import (
8689
SecurityMonitoringSuppressionCreateRequest,
8790
)
91+
from datadog_api_client.v2.model.security_monitoring_suppressions_response import SecurityMonitoringSuppressionsResponse
8892
from datadog_api_client.v2.model.security_monitoring_rule_create_payload import SecurityMonitoringRuleCreatePayload
8993
from datadog_api_client.v2.model.security_monitoring_standard_rule_create_payload import (
9094
SecurityMonitoringStandardRuleCreatePayload,
@@ -1763,7 +1767,7 @@ def __init__(self, api_client=None):
17631767

17641768
self._list_security_monitoring_suppressions_endpoint = _Endpoint(
17651769
settings={
1766-
"response_type": (SecurityMonitoringSuppressionsResponse,),
1770+
"response_type": (SecurityMonitoringPaginatedSuppressionsResponse,),
17671771
"auth": ["apiKeyAuth", "appKeyAuth", "AuthZ"],
17681772
"endpoint_path": "/api/v2/security_monitoring/configuration/suppressions",
17691773
"operation_id": "list_security_monitoring_suppressions",
@@ -1776,6 +1780,21 @@ def __init__(self, api_client=None):
17761780
"attribute": "query",
17771781
"location": "query",
17781782
},
1783+
"sort": {
1784+
"openapi_types": (SecurityMonitoringSuppressionSort,),
1785+
"attribute": "sort",
1786+
"location": "query",
1787+
},
1788+
"page_size": {
1789+
"openapi_types": (int,),
1790+
"attribute": "page[size]",
1791+
"location": "query",
1792+
},
1793+
"page_number": {
1794+
"openapi_types": (int,),
1795+
"attribute": "page[number]",
1796+
"location": "query",
1797+
},
17791798
},
17801799
headers_map={
17811800
"accept": ["application/json"],
@@ -4335,19 +4354,37 @@ def list_security_monitoring_suppressions(
43354354
self,
43364355
*,
43374356
query: Union[str, UnsetType] = unset,
4338-
) -> SecurityMonitoringSuppressionsResponse:
4357+
sort: Union[SecurityMonitoringSuppressionSort, UnsetType] = unset,
4358+
page_size: Union[int, UnsetType] = unset,
4359+
page_number: Union[int, UnsetType] = unset,
4360+
) -> SecurityMonitoringPaginatedSuppressionsResponse:
43394361
"""Get all suppression rules.
43404362
43414363
Get the list of all suppression rules.
43424364
43434365
:param query: Query string.
43444366
:type query: str, optional
4345-
:rtype: SecurityMonitoringSuppressionsResponse
4367+
:param sort: Attribute used to sort the list of suppression rules. Prefix with ``-`` to sort in descending order.
4368+
:type sort: SecurityMonitoringSuppressionSort, optional
4369+
:param page_size: Size for a given page. Use ``-1`` to return all items.
4370+
:type page_size: int, optional
4371+
:param page_number: Specific page number to return.
4372+
:type page_number: int, optional
4373+
:rtype: SecurityMonitoringPaginatedSuppressionsResponse
43464374
"""
43474375
kwargs: Dict[str, Any] = {}
43484376
if query is not unset:
43494377
kwargs["query"] = query
43504378

4379+
if sort is not unset:
4380+
kwargs["sort"] = sort
4381+
4382+
if page_size is not unset:
4383+
kwargs["page_size"] = page_size
4384+
4385+
if page_number is not unset:
4386+
kwargs["page_number"] = page_number
4387+
43514388
return self._list_security_monitoring_suppressions_endpoint.call_with_http_info(**kwargs)
43524389

43534390
def list_threat_hunting_jobs(
Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
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 List, 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.security_monitoring_suppression import SecurityMonitoringSuppression
18+
from datadog_api_client.v2.model.security_monitoring_suppressions_meta import SecurityMonitoringSuppressionsMeta
19+
20+
21+
class SecurityMonitoringPaginatedSuppressionsResponse(ModelNormal):
22+
@cached_property
23+
def openapi_types(_):
24+
from datadog_api_client.v2.model.security_monitoring_suppression import SecurityMonitoringSuppression
25+
from datadog_api_client.v2.model.security_monitoring_suppressions_meta import SecurityMonitoringSuppressionsMeta
26+
27+
return {
28+
"data": ([SecurityMonitoringSuppression],),
29+
"meta": (SecurityMonitoringSuppressionsMeta,),
30+
}
31+
32+
attribute_map = {
33+
"data": "data",
34+
"meta": "meta",
35+
}
36+
37+
def __init__(
38+
self_,
39+
data: Union[List[SecurityMonitoringSuppression], UnsetType] = unset,
40+
meta: Union[SecurityMonitoringSuppressionsMeta, UnsetType] = unset,
41+
**kwargs,
42+
):
43+
"""
44+
Response object containing the available suppression rules with pagination metadata.
45+
46+
:param data: A list of suppressions objects.
47+
:type data: [SecurityMonitoringSuppression], optional
48+
49+
:param meta: Metadata for the suppression list response.
50+
:type meta: SecurityMonitoringSuppressionsMeta, optional
51+
"""
52+
if data is not unset:
53+
kwargs["data"] = data
54+
if meta is not unset:
55+
kwargs["meta"] = meta
56+
super().__init__(kwargs)

0 commit comments

Comments
 (0)