Skip to content

Commit 847d3a4

Browse files
api-clients-generation-pipeline[bot]ci.datadog-api-spec
andauthored
Support schema version parameter in Get and List Service Definition endpoints (#1460)
Co-authored-by: ci.datadog-api-spec <[email protected]>
1 parent d710444 commit 847d3a4

13 files changed

+446
-370
lines changed

.apigentools-info

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,13 @@
44
"spec_versions": {
55
"v1": {
66
"apigentools_version": "1.6.4",
7-
"regenerated": "2023-05-11 14:31:13.499049",
8-
"spec_repo_commit": "b6d2ec34"
7+
"regenerated": "2023-05-12 13:13:08.052638",
8+
"spec_repo_commit": "9eca3996"
99
},
1010
"v2": {
1111
"apigentools_version": "1.6.4",
12-
"regenerated": "2023-05-11 14:31:13.516351",
13-
"spec_repo_commit": "b6d2ec34"
12+
"regenerated": "2023-05-12 13:13:08.068754",
13+
"spec_repo_commit": "9eca3996"
1414
}
1515
}
1616
}

.generator/schemas/v2/openapi.yaml

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -377,6 +377,13 @@ components:
377377
required: true
378378
schema:
379379
type: string
380+
SchemaVersion:
381+
description: The schema version desired in the response.
382+
in: query
383+
name: schema_version
384+
required: false
385+
schema:
386+
$ref: '#/components/schemas/ServiceDefinitionSchemaVersions'
380387
SecurityFilterID:
381388
description: The ID of the security filter.
382389
in: path
@@ -12502,6 +12509,17 @@ components:
1250212509
- $ref: '#/components/schemas/ServiceDefinitionV2'
1250312510
- $ref: '#/components/schemas/ServiceDefinitionV2Dot1'
1250412511
type: object
12512+
ServiceDefinitionSchemaVersions:
12513+
description: Schema versions
12514+
enum:
12515+
- v1
12516+
- v2
12517+
- v2.1
12518+
type: string
12519+
x-enum-varnames:
12520+
- V1
12521+
- V2
12522+
- V2_1
1250512523
ServiceDefinitionV1:
1250612524
deprecated: true
1250712525
description: Deprecated - Service definition V1 for providing additional service
@@ -22234,6 +22252,7 @@ paths:
2223422252
parameters:
2223522253
- $ref: '#/components/parameters/PageSize'
2223622254
- $ref: '#/components/parameters/PageNumber'
22255+
- $ref: '#/components/parameters/SchemaVersion'
2223722256
responses:
2223822257
'200':
2223922258
content:
@@ -22306,6 +22325,7 @@ paths:
2230622325
operationId: GetServiceDefinition
2230722326
parameters:
2230822327
- $ref: '#/components/parameters/ServiceName'
22328+
- $ref: '#/components/parameters/SchemaVersion'
2230922329
responses:
2231022330
'200':
2231122331
content:

docs/datadog_api_client.v2.model.rst

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5664,6 +5664,13 @@ service\_definition\_schema
56645664
:members:
56655665
:show-inheritance:
56665666

5667+
service\_definition\_schema\_versions
5668+
-------------------------------------
5669+
5670+
.. automodule:: datadog_api_client.v2.model.service_definition_schema_versions
5671+
:members:
5672+
:show-inheritance:
5673+
56675674
service\_definition\_v1
56685675
-----------------------
56695676

examples/v2/service-definition/GetServiceDefinition.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,14 @@
44

55
from datadog_api_client import ApiClient, Configuration
66
from datadog_api_client.v2.api.service_definition_api import ServiceDefinitionApi
7+
from datadog_api_client.v2.model.service_definition_schema_versions import ServiceDefinitionSchemaVersions
78

89
configuration = Configuration()
910
with ApiClient(configuration) as api_client:
1011
api_instance = ServiceDefinitionApi(api_client)
1112
response = api_instance.get_service_definition(
1213
service_name="service-definition-test",
14+
schema_version=ServiceDefinitionSchemaVersions.V2_1,
1315
)
1416

1517
print(response)

examples/v2/service-definition/ListServiceDefinitions.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,13 @@
44

55
from datadog_api_client import ApiClient, Configuration
66
from datadog_api_client.v2.api.service_definition_api import ServiceDefinitionApi
7+
from datadog_api_client.v2.model.service_definition_schema_versions import ServiceDefinitionSchemaVersions
78

89
configuration = Configuration()
910
with ApiClient(configuration) as api_client:
1011
api_instance = ServiceDefinitionApi(api_client)
11-
response = api_instance.list_service_definitions()
12+
response = api_instance.list_service_definitions(
13+
schema_version=ServiceDefinitionSchemaVersions.V2_1,
14+
)
1215

1316
print(response)

src/datadog_api_client/v2/api/service_definition_api.py

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
unset,
1616
)
1717
from datadog_api_client.v2.model.service_definitions_list_response import ServiceDefinitionsListResponse
18+
from datadog_api_client.v2.model.service_definition_schema_versions import ServiceDefinitionSchemaVersions
1819
from datadog_api_client.v2.model.service_definition_data import ServiceDefinitionData
1920
from datadog_api_client.v2.model.service_definition_create_response import ServiceDefinitionCreateResponse
2021
from datadog_api_client.v2.model.service_definitions_create_request import ServiceDefinitionsCreateRequest
@@ -96,6 +97,11 @@ def __init__(self, api_client=None):
9697
"attribute": "service_name",
9798
"location": "path",
9899
},
100+
"schema_version": {
101+
"openapi_types": (ServiceDefinitionSchemaVersions,),
102+
"attribute": "schema_version",
103+
"location": "query",
104+
},
99105
},
100106
headers_map={
101107
"accept": ["application/json"],
@@ -125,6 +131,11 @@ def __init__(self, api_client=None):
125131
"attribute": "page[number]",
126132
"location": "query",
127133
},
134+
"schema_version": {
135+
"openapi_types": (ServiceDefinitionSchemaVersions,),
136+
"attribute": "schema_version",
137+
"location": "query",
138+
},
128139
},
129140
headers_map={
130141
"accept": ["application/json"],
@@ -170,25 +181,33 @@ def delete_service_definition(
170181
def get_service_definition(
171182
self,
172183
service_name: str,
184+
*,
185+
schema_version: Union[ServiceDefinitionSchemaVersions, UnsetType] = unset,
173186
) -> ServiceDefinitionGetResponse:
174187
"""Get a single service definition.
175188
176189
Get a single service definition from the Datadog Service Catalog.
177190
178191
:param service_name: The name of the service.
179192
:type service_name: str
193+
:param schema_version: The schema version desired in the response.
194+
:type schema_version: ServiceDefinitionSchemaVersions, optional
180195
:rtype: ServiceDefinitionGetResponse
181196
"""
182197
kwargs: Dict[str, Any] = {}
183198
kwargs["service_name"] = service_name
184199

200+
if schema_version is not unset:
201+
kwargs["schema_version"] = schema_version
202+
185203
return self._get_service_definition_endpoint.call_with_http_info(**kwargs)
186204

187205
def list_service_definitions(
188206
self,
189207
*,
190208
page_size: Union[int, UnsetType] = unset,
191209
page_number: Union[int, UnsetType] = unset,
210+
schema_version: Union[ServiceDefinitionSchemaVersions, UnsetType] = unset,
192211
) -> ServiceDefinitionsListResponse:
193212
"""Get all service definitions.
194213
@@ -198,6 +217,8 @@ def list_service_definitions(
198217
:type page_size: int, optional
199218
:param page_number: Specific page number to return.
200219
:type page_number: int, optional
220+
:param schema_version: The schema version desired in the response.
221+
:type schema_version: ServiceDefinitionSchemaVersions, optional
201222
:rtype: ServiceDefinitionsListResponse
202223
"""
203224
kwargs: Dict[str, Any] = {}
@@ -207,13 +228,17 @@ def list_service_definitions(
207228
if page_number is not unset:
208229
kwargs["page_number"] = page_number
209230

231+
if schema_version is not unset:
232+
kwargs["schema_version"] = schema_version
233+
210234
return self._list_service_definitions_endpoint.call_with_http_info(**kwargs)
211235

212236
def list_service_definitions_with_pagination(
213237
self,
214238
*,
215239
page_size: Union[int, UnsetType] = unset,
216240
page_number: Union[int, UnsetType] = unset,
241+
schema_version: Union[ServiceDefinitionSchemaVersions, UnsetType] = unset,
217242
) -> collections.abc.Iterable[ServiceDefinitionData]:
218243
"""Get all service definitions.
219244
@@ -223,6 +248,8 @@ def list_service_definitions_with_pagination(
223248
:type page_size: int, optional
224249
:param page_number: Specific page number to return.
225250
:type page_number: int, optional
251+
:param schema_version: The schema version desired in the response.
252+
:type schema_version: ServiceDefinitionSchemaVersions, optional
226253
227254
:return: A generator of paginated results.
228255
:rtype: collections.abc.Iterable[ServiceDefinitionData]
@@ -234,6 +261,9 @@ def list_service_definitions_with_pagination(
234261
if page_number is not unset:
235262
kwargs["page_number"] = page_number
236263

264+
if schema_version is not unset:
265+
kwargs["schema_version"] = schema_version
266+
237267
local_page_size = get_attribute_from_path(kwargs, "page_size", 10)
238268
endpoint = self._list_service_definitions_endpoint
239269
set_attribute_from_path(kwargs, "page_size", local_page_size, endpoint.params_map)
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
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 ServiceDefinitionSchemaVersions(ModelSimple):
16+
"""
17+
Schema versions
18+
19+
:param value: Must be one of ["v1", "v2", "v2.1"].
20+
:type value: str
21+
"""
22+
23+
allowed_values = {
24+
"v1",
25+
"v2",
26+
"v2.1",
27+
}
28+
V1: ClassVar["ServiceDefinitionSchemaVersions"]
29+
V2: ClassVar["ServiceDefinitionSchemaVersions"]
30+
V2_1: ClassVar["ServiceDefinitionSchemaVersions"]
31+
32+
@cached_property
33+
def openapi_types(_):
34+
return {
35+
"value": (str,),
36+
}
37+
38+
39+
ServiceDefinitionSchemaVersions.V1 = ServiceDefinitionSchemaVersions("v1")
40+
ServiceDefinitionSchemaVersions.V2 = ServiceDefinitionSchemaVersions("v2")
41+
ServiceDefinitionSchemaVersions.V2_1 = ServiceDefinitionSchemaVersions("v2.1")

src/datadog_api_client/v2/models/__init__.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1007,6 +1007,7 @@
10071007
from datadog_api_client.v2.model.service_definition_get_response import ServiceDefinitionGetResponse
10081008
from datadog_api_client.v2.model.service_definition_meta import ServiceDefinitionMeta
10091009
from datadog_api_client.v2.model.service_definition_schema import ServiceDefinitionSchema
1010+
from datadog_api_client.v2.model.service_definition_schema_versions import ServiceDefinitionSchemaVersions
10101011
from datadog_api_client.v2.model.service_definition_v1 import ServiceDefinitionV1
10111012
from datadog_api_client.v2.model.service_definition_v1_contact import ServiceDefinitionV1Contact
10121013
from datadog_api_client.v2.model.service_definition_v1_info import ServiceDefinitionV1Info
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
2022-11-14T18:09:34.511Z
1+
2023-05-11T21:16:09.344Z

tests/v2/cassettes/test_scenarios/test_get_a_single_service_definition_returns_ok_response.yaml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,13 @@ interactions:
55
accept:
66
- application/json
77
method: GET
8-
uri: https://api.datadoghq.com/api/v2/services/definitions/service-definition-test
8+
uri: https://api.datadoghq.com/api/v2/services/definitions/service-definition-test?schema_version=v2.1
99
response:
1010
body:
11-
string: '{"data":{"type":"service-definition","id":"77ae46b484fcfd92dc568170b1c534fe","attributes":{"meta":{"last-modified-time":"2022-11-14T18:03:35Z","github-html-url":"","ingestion-source":"api","warnings":[],"ingested-schema-version":"v2"},"schema":{"schema-version":"v2","dd-service":"service-definition-test","dd-team":"my-team","team":"super-team","contacts":[{"name":"Team
12-
Email","type":"email","contact":"[email protected]"}],"links":[{"name":"Runbook","type":"runbook","url":"https://my-runbook"}],"repos":[{"name":"Source
13-
Code","provider":"GitHub","url":"https://github.com/DataDog/schema"}],"docs":[{"name":"Architecture","provider":"google
14-
drive","url":"https://gdrive/mydoc"}],"tags":["service:tag","my:tag"],"integrations":{"pagerduty":"https://my-org.pagerduty.com/service-directory/PMyService","opsgenie":{"service-url":"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000","region":"US"}},"extensions":{"myorgextension":"extensionvalue"}}}}}
11+
string: '{"data":{"type":"service-definition","id":"77ae46b484fcfd92dc568170b1c534fe","attributes":{"meta":{"last-modified-time":"2023-04-18T16:19:17Z","github-html-url":"","ingestion-source":"api","origin":"unknown","origin-detail":"","warnings":[],"ingested-schema-version":"v2"},"schema":{"schema-version":"v2.1","dd-service":"service-definition-test","team":"my-team","contacts":[{"name":"Team
12+
Email","type":"email","contact":"[email protected]"}],"links":[{"name":"Runbook","type":"runbook","url":"https://my-runbook"},{"name":"Source
13+
Code","type":"repo","provider":"GitHub","url":"https://github.com/DataDog/schema"},{"name":"Architecture","type":"doc","provider":"google
14+
drive","url":"https://gdrive/mydoc"}],"tags":["service:tag","my:tag"],"integrations":{"pagerduty":{"service-url":"https://my-org.pagerduty.com/service-directory/PMyService"},"opsgenie":{"service-url":"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000","region":"US"}},"extensions":{"myorgextension":"extensionvalue"}}}}}
1515
1616
'
1717
headers:

0 commit comments

Comments
 (0)