Skip to content

Commit b16edde

Browse files
api-clients-generation-pipeline[bot]ci.datadog-api-spec
andauthored
Add new endpoint for listing rules for a gate (#2966)
Co-authored-by: ci.datadog-api-spec <packages@datadoghq.com>
1 parent 50cf60e commit b16edde

14 files changed

+444
-0
lines changed

.generator/schemas/v2/openapi.yaml

Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17075,6 +17075,12 @@ components:
1707517075
required:
1707617076
- id
1707717077
type: object
17078+
DeploymentGateRulesResponse:
17079+
description: Response for a deployment gate rules.
17080+
properties:
17081+
data:
17082+
$ref: '#/components/schemas/ListDeploymentRuleResponseData'
17083+
type: object
1707817084
DeploymentMetadata:
1707917085
description: Metadata object containing the publication creation information.
1708017086
properties:
@@ -30199,6 +30205,37 @@ components:
3019930205
type: string
3020030206
x-enum-varnames:
3020130207
- LIST_CONNECTIONS_RESPONSE
30208+
ListDeploymentRuleResponseData:
30209+
description: Data for a list of deployment rules.
30210+
properties:
30211+
attributes:
30212+
$ref: '#/components/schemas/ListDeploymentRulesResponseDataAttributes'
30213+
id:
30214+
description: Unique identifier of the deployment rule.
30215+
example: 1111-2222-3333-4444-555566667777
30216+
type: string
30217+
type:
30218+
$ref: '#/components/schemas/ListDeploymentRulesDataType'
30219+
required:
30220+
- type
30221+
- attributes
30222+
- id
30223+
type: object
30224+
ListDeploymentRulesDataType:
30225+
description: List deployment rule resource type.
30226+
enum:
30227+
- list_deployment_rules
30228+
example: list_deployment_rules
30229+
type: string
30230+
x-enum-varnames:
30231+
- LIST_DEPLOYMENT_RULES
30232+
ListDeploymentRulesResponseDataAttributes:
30233+
properties:
30234+
rules:
30235+
items:
30236+
$ref: '#/components/schemas/DeploymentRuleResponseDataAttributes'
30237+
type: array
30238+
type: object
3020230239
ListDevicesResponse:
3020330240
description: List devices response.
3020430241
properties:
@@ -66236,6 +66273,50 @@ paths:
6623666273

6623766274
If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/).'
6623866275
/api/v2/deployment_gates/{gate_id}/rules:
66276+
get:
66277+
description: Endpoint to get rules for a deployment gate.
66278+
operationId: GetDeploymentGateRules
66279+
parameters:
66280+
- description: The ID of the deployment gate.
66281+
in: path
66282+
name: gate_id
66283+
required: true
66284+
schema:
66285+
type: string
66286+
responses:
66287+
'200':
66288+
content:
66289+
application/json:
66290+
schema:
66291+
$ref: '#/components/schemas/DeploymentGateRulesResponse'
66292+
description: OK
66293+
'400':
66294+
$ref: '#/components/responses/HTTPCDGatesBadRequestResponse'
66295+
'401':
66296+
$ref: '#/components/responses/UnauthorizedResponse'
66297+
'403':
66298+
$ref: '#/components/responses/ForbiddenResponse'
66299+
'429':
66300+
$ref: '#/components/responses/TooManyRequestsResponse'
66301+
'500':
66302+
content:
66303+
application/json:
66304+
schema:
66305+
$ref: '#/components/schemas/HTTPCIAppErrors'
66306+
description: Internal Server Error
66307+
security:
66308+
- apiKeyAuth: []
66309+
appKeyAuth: []
66310+
summary: Get rules for a deployment gate
66311+
tags:
66312+
- Deployment Gates
66313+
x-permission:
66314+
operator: OR
66315+
permissions:
66316+
- deployment_gates_read
66317+
x-unstable: '**Note**: This endpoint is in preview and may be subject to change.
66318+
66319+
If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/).'
6623966320
post:
6624066321
description: Endpoint to create a deployment rule. A gate for the rule must
6624166322
already exist.

docs/datadog_api_client.v2.model.rst

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6850,6 +6850,13 @@ datadog\_api\_client.v2.model.deployment\_gate\_response\_data\_attributes\_upda
68506850
:members:
68516851
:show-inheritance:
68526852

6853+
datadog\_api\_client.v2.model.deployment\_gate\_rules\_response module
6854+
----------------------------------------------------------------------
6855+
6856+
.. automodule:: datadog_api_client.v2.model.deployment_gate_rules_response
6857+
:members:
6858+
:show-inheritance:
6859+
68536860
datadog\_api\_client.v2.model.deployment\_metadata module
68546861
---------------------------------------------------------
68556862

@@ -12933,6 +12940,27 @@ datadog\_api\_client.v2.model.list\_connections\_response\_data\_type module
1293312940
:members:
1293412941
:show-inheritance:
1293512942

12943+
datadog\_api\_client.v2.model.list\_deployment\_rule\_response\_data module
12944+
---------------------------------------------------------------------------
12945+
12946+
.. automodule:: datadog_api_client.v2.model.list_deployment_rule_response_data
12947+
:members:
12948+
:show-inheritance:
12949+
12950+
datadog\_api\_client.v2.model.list\_deployment\_rules\_data\_type module
12951+
------------------------------------------------------------------------
12952+
12953+
.. automodule:: datadog_api_client.v2.model.list_deployment_rules_data_type
12954+
:members:
12955+
:show-inheritance:
12956+
12957+
datadog\_api\_client.v2.model.list\_deployment\_rules\_response\_data\_attributes module
12958+
----------------------------------------------------------------------------------------
12959+
12960+
.. automodule:: datadog_api_client.v2.model.list_deployment_rules_response_data_attributes
12961+
:members:
12962+
:show-inheritance:
12963+
1293612964
datadog\_api\_client.v2.model.list\_devices\_response module
1293712965
------------------------------------------------------------
1293812966

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
"""
2+
Get rules for a deployment gate 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.deployment_gates_api import DeploymentGatesApi
8+
9+
# there is a valid "deployment_gate" in the system
10+
DEPLOYMENT_GATE_DATA_ID = environ["DEPLOYMENT_GATE_DATA_ID"]
11+
12+
configuration = Configuration()
13+
configuration.unstable_operations["get_deployment_gate_rules"] = True
14+
with ApiClient(configuration) as api_client:
15+
api_instance = DeploymentGatesApi(api_client)
16+
response = api_instance.get_deployment_gate_rules(
17+
gate_id=DEPLOYMENT_GATE_DATA_ID,
18+
)
19+
20+
print(response)

src/datadog_api_client/configuration.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -302,6 +302,7 @@ def __init__(
302302
"v2.delete_deployment_gate": False,
303303
"v2.delete_deployment_rule": False,
304304
"v2.get_deployment_gate": False,
305+
"v2.get_deployment_gate_rules": False,
305306
"v2.get_deployment_rule": False,
306307
"v2.update_deployment_gate": False,
307308
"v2.update_deployment_rule": False,

src/datadog_api_client/v2/api/deployment_gates_api.py

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
from datadog_api_client.configuration import Configuration
1010
from datadog_api_client.v2.model.deployment_gate_response import DeploymentGateResponse
1111
from datadog_api_client.v2.model.create_deployment_gate_params import CreateDeploymentGateParams
12+
from datadog_api_client.v2.model.deployment_gate_rules_response import DeploymentGateRulesResponse
1213
from datadog_api_client.v2.model.deployment_rule_response import DeploymentRuleResponse
1314
from datadog_api_client.v2.model.create_deployment_rule_params import CreateDeploymentRuleParams
1415
from datadog_api_client.v2.model.update_deployment_rule_params import UpdateDeploymentRuleParams
@@ -146,6 +147,29 @@ def __init__(self, api_client=None):
146147
api_client=api_client,
147148
)
148149

150+
self._get_deployment_gate_rules_endpoint = _Endpoint(
151+
settings={
152+
"response_type": (DeploymentGateRulesResponse,),
153+
"auth": ["apiKeyAuth", "appKeyAuth"],
154+
"endpoint_path": "/api/v2/deployment_gates/{gate_id}/rules",
155+
"operation_id": "get_deployment_gate_rules",
156+
"http_method": "GET",
157+
"version": "v2",
158+
},
159+
params_map={
160+
"gate_id": {
161+
"required": True,
162+
"openapi_types": (str,),
163+
"attribute": "gate_id",
164+
"location": "path",
165+
},
166+
},
167+
headers_map={
168+
"accept": ["application/json"],
169+
},
170+
api_client=api_client,
171+
)
172+
149173
self._get_deployment_rule_endpoint = _Endpoint(
150174
settings={
151175
"response_type": (DeploymentRuleResponse,),
@@ -326,6 +350,23 @@ def get_deployment_gate(
326350

327351
return self._get_deployment_gate_endpoint.call_with_http_info(**kwargs)
328352

353+
def get_deployment_gate_rules(
354+
self,
355+
gate_id: str,
356+
) -> DeploymentGateRulesResponse:
357+
"""Get rules for a deployment gate.
358+
359+
Endpoint to get rules for a deployment gate.
360+
361+
:param gate_id: The ID of the deployment gate.
362+
:type gate_id: str
363+
:rtype: DeploymentGateRulesResponse
364+
"""
365+
kwargs: Dict[str, Any] = {}
366+
kwargs["gate_id"] = gate_id
367+
368+
return self._get_deployment_gate_rules_endpoint.call_with_http_info(**kwargs)
369+
329370
def get_deployment_rule(
330371
self,
331372
gate_id: str,
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
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.list_deployment_rule_response_data import ListDeploymentRuleResponseData
18+
19+
20+
class DeploymentGateRulesResponse(ModelNormal):
21+
@cached_property
22+
def openapi_types(_):
23+
from datadog_api_client.v2.model.list_deployment_rule_response_data import ListDeploymentRuleResponseData
24+
25+
return {
26+
"data": (ListDeploymentRuleResponseData,),
27+
}
28+
29+
attribute_map = {
30+
"data": "data",
31+
}
32+
33+
def __init__(self_, data: Union[ListDeploymentRuleResponseData, UnsetType] = unset, **kwargs):
34+
"""
35+
Response for a deployment gate rules.
36+
37+
:param data: Data for a list of deployment rules.
38+
:type data: ListDeploymentRuleResponseData, optional
39+
"""
40+
if data is not unset:
41+
kwargs["data"] = data
42+
super().__init__(kwargs)
Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
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 TYPE_CHECKING
7+
8+
from datadog_api_client.model_utils import (
9+
ModelNormal,
10+
cached_property,
11+
)
12+
13+
14+
if TYPE_CHECKING:
15+
from datadog_api_client.v2.model.list_deployment_rules_response_data_attributes import (
16+
ListDeploymentRulesResponseDataAttributes,
17+
)
18+
from datadog_api_client.v2.model.list_deployment_rules_data_type import ListDeploymentRulesDataType
19+
20+
21+
class ListDeploymentRuleResponseData(ModelNormal):
22+
@cached_property
23+
def openapi_types(_):
24+
from datadog_api_client.v2.model.list_deployment_rules_response_data_attributes import (
25+
ListDeploymentRulesResponseDataAttributes,
26+
)
27+
from datadog_api_client.v2.model.list_deployment_rules_data_type import ListDeploymentRulesDataType
28+
29+
return {
30+
"attributes": (ListDeploymentRulesResponseDataAttributes,),
31+
"id": (str,),
32+
"type": (ListDeploymentRulesDataType,),
33+
}
34+
35+
attribute_map = {
36+
"attributes": "attributes",
37+
"id": "id",
38+
"type": "type",
39+
}
40+
41+
def __init__(
42+
self_,
43+
attributes: ListDeploymentRulesResponseDataAttributes,
44+
id: str,
45+
type: ListDeploymentRulesDataType,
46+
**kwargs,
47+
):
48+
"""
49+
Data for a list of deployment rules.
50+
51+
:param attributes:
52+
:type attributes: ListDeploymentRulesResponseDataAttributes
53+
54+
:param id: Unique identifier of the deployment rule.
55+
:type id: str
56+
57+
:param type: List deployment rule resource type.
58+
:type type: ListDeploymentRulesDataType
59+
"""
60+
super().__init__(kwargs)
61+
62+
self_.attributes = attributes
63+
self_.id = id
64+
self_.type = type
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
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+
7+
from datadog_api_client.model_utils import (
8+
ModelSimple,
9+
cached_property,
10+
)
11+
12+
from typing import ClassVar
13+
14+
15+
class ListDeploymentRulesDataType(ModelSimple):
16+
"""
17+
List deployment rule resource type.
18+
19+
:param value: If omitted defaults to "list_deployment_rules". Must be one of ["list_deployment_rules"].
20+
:type value: str
21+
"""
22+
23+
allowed_values = {
24+
"list_deployment_rules",
25+
}
26+
LIST_DEPLOYMENT_RULES: ClassVar["ListDeploymentRulesDataType"]
27+
28+
@cached_property
29+
def openapi_types(_):
30+
return {
31+
"value": (str,),
32+
}
33+
34+
35+
ListDeploymentRulesDataType.LIST_DEPLOYMENT_RULES = ListDeploymentRulesDataType("list_deployment_rules")

0 commit comments

Comments
 (0)