Skip to content

Commit 85b6c8a

Browse files
author
ci.datadog-api-spec
committed
Regenerate client from commit 07f8772 of spec repo
1 parent 4895fb3 commit 85b6c8a

16 files changed

+593
-47
lines changed

.generated-info

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
{
2-
"spec_repo_commit": "d02c8a3",
3-
"generated": "2025-08-08 12:07:20.979"
2+
"spec_repo_commit": "07f8772",
3+
"generated": "2025-08-11 21:19:54.357"
44
}

.generator/schemas/v2/openapi.yaml

Lines changed: 127 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42273,6 +42273,68 @@ components:
4227342273
urgency:
4227442274
$ref: '#/components/schemas/Urgency'
4227542275
type: object
42276+
TeamSyncAttributes:
42277+
description: Team sync attributes.
42278+
properties:
42279+
source:
42280+
$ref: '#/components/schemas/TeamSyncAttributesSource'
42281+
type:
42282+
$ref: '#/components/schemas/TeamSyncAttributesType'
42283+
required:
42284+
- source
42285+
- type
42286+
type: object
42287+
TeamSyncAttributesSource:
42288+
description: The external source platform for team synchronization. Only "github"
42289+
is supported.
42290+
enum:
42291+
- github
42292+
example: github
42293+
type: string
42294+
x-enum-varnames:
42295+
- GITHUB
42296+
TeamSyncAttributesType:
42297+
description: The type of synchronization operation. Only "link" is supported,
42298+
which links existing teams by matching names.
42299+
enum:
42300+
- link
42301+
example: link
42302+
type: string
42303+
x-enum-varnames:
42304+
- LINK
42305+
TeamSyncBulkType:
42306+
description: Team sync bulk type.
42307+
enum:
42308+
- team_sync_bulk
42309+
example: team_sync_bulk
42310+
type: string
42311+
x-enum-varnames:
42312+
- TEAM_SYNC_BULK
42313+
TeamSyncData:
42314+
description: Team sync data.
42315+
properties:
42316+
attributes:
42317+
$ref: '#/components/schemas/TeamSyncAttributes'
42318+
type:
42319+
$ref: '#/components/schemas/TeamSyncBulkType'
42320+
required:
42321+
- attributes
42322+
- type
42323+
type: object
42324+
TeamSyncRequest:
42325+
description: Team sync request.
42326+
example:
42327+
data:
42328+
attributes:
42329+
source: github
42330+
type: link
42331+
type: team_sync_bulk
42332+
properties:
42333+
data:
42334+
$ref: '#/components/schemas/TeamSyncData'
42335+
required:
42336+
- data
42337+
type: object
4227642338
TeamTarget:
4227742339
description: Represents a team target for an escalation policy step, including
4227842340
the team's ID and resource type.
@@ -65313,6 +65375,71 @@ paths:
6531365375
permissions:
6531465376
- teams_read
6531565377
- teams_manage
65378+
/api/v2/team/sync:
65379+
post:
65380+
description: 'This endpoint attempts to link your existing Datadog teams with
65381+
GitHub teams by matching their names.
65382+
65383+
It evaluates all current Datadog teams and compares them against teams in
65384+
the GitHub organization
65385+
65386+
connected to your Datadog account, based on Datadog Team handle and GitHub
65387+
Team slug
65388+
65389+
(lowercased and kebab-cased).
65390+
65391+
65392+
This operation is read-only on the GitHub side, no teams will be modified
65393+
or created.
65394+
65395+
65396+
[A GitHub organization must be connected to your Datadog account](https://docs.datadoghq.com/integrations/github/),
65397+
65398+
and the GitHub App integrated with Datadog must have the `Members Read` permission.
65399+
Matching is performed by comparing the Datadog team handle to the GitHub team
65400+
slug
65401+
65402+
using a normalized exact match; case is ignored and spaces are removed. No
65403+
modifications are made
65404+
65405+
to teams in GitHub. This will not create new Teams in Datadog.'
65406+
operationId: SyncTeams
65407+
requestBody:
65408+
content:
65409+
application/json:
65410+
schema:
65411+
$ref: '#/components/schemas/TeamSyncRequest'
65412+
required: true
65413+
responses:
65414+
'200':
65415+
description: OK
65416+
'403':
65417+
$ref: '#/components/responses/ForbiddenResponse'
65418+
'429':
65419+
$ref: '#/components/responses/TooManyRequestsResponse'
65420+
'500':
65421+
content:
65422+
application/json:
65423+
schema:
65424+
$ref: '#/components/schemas/APIErrorResponse'
65425+
description: Internal Server Error - Unexpected error during linking.
65426+
security:
65427+
- apiKeyAuth: []
65428+
appKeyAuth: []
65429+
- AuthZ:
65430+
- teams_manage
65431+
summary: Link Teams with GitHub Teams
65432+
tags:
65433+
- Teams
65434+
x-codegen-request-body-name: body
65435+
x-permission:
65436+
operator: AND
65437+
permissions:
65438+
- teams_manage
65439+
x-unstable: '**Note**: This endpoint is in Preview. To request access, fill
65440+
out this [form](https://www.datadoghq.com/product-preview/github-integration-for-teams/).
65441+
65442+
If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/).'
6531665443
/api/v2/team/{super_team_id}/member_teams:
6531765444
get:
6531865445
description: Get all member teams.

docs/datadog_api_client.v2.model.rst

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18785,6 +18785,48 @@ datadog\_api\_client.v2.model.team\_routing\_rules\_request\_rule module
1878518785
:members:
1878618786
:show-inheritance:
1878718787

18788+
datadog\_api\_client.v2.model.team\_sync\_attributes module
18789+
-----------------------------------------------------------
18790+
18791+
.. automodule:: datadog_api_client.v2.model.team_sync_attributes
18792+
:members:
18793+
:show-inheritance:
18794+
18795+
datadog\_api\_client.v2.model.team\_sync\_attributes\_source module
18796+
-------------------------------------------------------------------
18797+
18798+
.. automodule:: datadog_api_client.v2.model.team_sync_attributes_source
18799+
:members:
18800+
:show-inheritance:
18801+
18802+
datadog\_api\_client.v2.model.team\_sync\_attributes\_type module
18803+
-----------------------------------------------------------------
18804+
18805+
.. automodule:: datadog_api_client.v2.model.team_sync_attributes_type
18806+
:members:
18807+
:show-inheritance:
18808+
18809+
datadog\_api\_client.v2.model.team\_sync\_bulk\_type module
18810+
-----------------------------------------------------------
18811+
18812+
.. automodule:: datadog_api_client.v2.model.team_sync_bulk_type
18813+
:members:
18814+
:show-inheritance:
18815+
18816+
datadog\_api\_client.v2.model.team\_sync\_data module
18817+
-----------------------------------------------------
18818+
18819+
.. automodule:: datadog_api_client.v2.model.team_sync_data
18820+
:members:
18821+
:show-inheritance:
18822+
18823+
datadog\_api\_client.v2.model.team\_sync\_request module
18824+
--------------------------------------------------------
18825+
18826+
.. automodule:: datadog_api_client.v2.model.team_sync_request
18827+
:members:
18828+
:show-inheritance:
18829+
1878818830
datadog\_api\_client.v2.model.team\_target module
1878918831
-------------------------------------------------
1879018832

examples/v2/teams/SyncTeams.py

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
"""
2+
Link Teams with GitHub Teams returns "OK" response
3+
"""
4+
5+
from datadog_api_client import ApiClient, Configuration
6+
from datadog_api_client.v2.api.teams_api import TeamsApi
7+
from datadog_api_client.v2.model.team_sync_attributes import TeamSyncAttributes
8+
from datadog_api_client.v2.model.team_sync_attributes_source import TeamSyncAttributesSource
9+
from datadog_api_client.v2.model.team_sync_attributes_type import TeamSyncAttributesType
10+
from datadog_api_client.v2.model.team_sync_bulk_type import TeamSyncBulkType
11+
from datadog_api_client.v2.model.team_sync_data import TeamSyncData
12+
from datadog_api_client.v2.model.team_sync_request import TeamSyncRequest
13+
14+
body = TeamSyncRequest(
15+
data=TeamSyncData(
16+
attributes=TeamSyncAttributes(
17+
source=TeamSyncAttributesSource.GITHUB,
18+
type=TeamSyncAttributesType.LINK,
19+
),
20+
type=TeamSyncBulkType.TEAM_SYNC_BULK,
21+
),
22+
)
23+
24+
configuration = Configuration()
25+
configuration.unstable_operations["sync_teams"] = True
26+
with ApiClient(configuration) as api_client:
27+
api_instance = TeamsApi(api_client)
28+
api_instance.sync_teams(body=body)
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
"""
2+
Sync teams returns "OK" response
3+
"""
4+
5+
from datadog_api_client import ApiClient, Configuration
6+
from datadog_api_client.v2.api.teams_api import TeamsApi
7+
from datadog_api_client.v2.model.team_sync_attributes import TeamSyncAttributes
8+
from datadog_api_client.v2.model.team_sync_attributes_source import TeamSyncAttributesSource
9+
from datadog_api_client.v2.model.team_sync_attributes_type import TeamSyncAttributesType
10+
from datadog_api_client.v2.model.team_sync_bulk_type import TeamSyncBulkType
11+
from datadog_api_client.v2.model.team_sync_data import TeamSyncData
12+
from datadog_api_client.v2.model.team_sync_request import TeamSyncRequest
13+
14+
body = TeamSyncRequest(
15+
data=TeamSyncData(
16+
attributes=TeamSyncAttributes(
17+
source=TeamSyncAttributesSource.GITHUB,
18+
type=TeamSyncAttributesType.LINK,
19+
),
20+
type=TeamSyncBulkType.TEAM_SYNC_BULK,
21+
),
22+
)
23+
24+
configuration = Configuration()
25+
with ApiClient(configuration) as api_client:
26+
api_instance = TeamsApi(api_client)
27+
api_instance.sync_teams(body=body)

src/datadog_api_client/configuration.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -324,6 +324,7 @@ def __init__(
324324
"v2.add_member_team": False,
325325
"v2.list_member_teams": False,
326326
"v2.remove_member_team": False,
327+
"v2.sync_teams": False,
327328
"v2.create_incident_team": False,
328329
"v2.delete_incident_team": False,
329330
"v2.get_incident_team": False,

src/datadog_api_client/v2/api/teams_api.py

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
from datadog_api_client.v2.model.team import Team
2222
from datadog_api_client.v2.model.team_response import TeamResponse
2323
from datadog_api_client.v2.model.team_create_request import TeamCreateRequest
24+
from datadog_api_client.v2.model.team_sync_request import TeamSyncRequest
2425
from datadog_api_client.v2.model.add_member_team_request import AddMemberTeamRequest
2526
from datadog_api_client.v2.model.team_update_request import TeamUpdateRequest
2627
from datadog_api_client.v2.model.team_links_response import TeamLinksResponse
@@ -512,6 +513,26 @@ def __init__(self, api_client=None):
512513
api_client=api_client,
513514
)
514515

516+
self._sync_teams_endpoint = _Endpoint(
517+
settings={
518+
"response_type": None,
519+
"auth": ["apiKeyAuth", "appKeyAuth", "AuthZ"],
520+
"endpoint_path": "/api/v2/team/sync",
521+
"operation_id": "sync_teams",
522+
"http_method": "POST",
523+
"version": "v2",
524+
},
525+
params_map={
526+
"body": {
527+
"required": True,
528+
"openapi_types": (TeamSyncRequest,),
529+
"location": "body",
530+
},
531+
},
532+
headers_map={"accept": ["*/*"], "content_type": ["application/json"]},
533+
api_client=api_client,
534+
)
535+
515536
self._update_team_endpoint = _Endpoint(
516537
settings={
517538
"response_type": (TeamResponse,),
@@ -1191,6 +1212,32 @@ def remove_member_team(
11911212

11921213
return self._remove_member_team_endpoint.call_with_http_info(**kwargs)
11931214

1215+
def sync_teams(
1216+
self,
1217+
body: TeamSyncRequest,
1218+
) -> None:
1219+
"""Link Teams with GitHub Teams.
1220+
1221+
This endpoint attempts to link your existing Datadog teams with GitHub teams by matching their names.
1222+
It evaluates all current Datadog teams and compares them against teams in the GitHub organization
1223+
connected to your Datadog account, based on Datadog Team handle and GitHub Team slug
1224+
(lowercased and kebab-cased).
1225+
1226+
This operation is read-only on the GitHub side, no teams will be modified or created.
1227+
1228+
`A GitHub organization must be connected to your Datadog account <https://docs.datadoghq.com/integrations/github/>`_ ,
1229+
and the GitHub App integrated with Datadog must have the ``Members Read`` permission. Matching is performed by comparing the Datadog team handle to the GitHub team slug
1230+
using a normalized exact match; case is ignored and spaces are removed. No modifications are made
1231+
to teams in GitHub. This will not create new Teams in Datadog.
1232+
1233+
:type body: TeamSyncRequest
1234+
:rtype: None
1235+
"""
1236+
kwargs: Dict[str, Any] = {}
1237+
kwargs["body"] = body
1238+
1239+
return self._sync_teams_endpoint.call_with_http_info(**kwargs)
1240+
11941241
def update_team(
11951242
self,
11961243
team_id: str,
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
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.team_sync_attributes_source import TeamSyncAttributesSource
16+
from datadog_api_client.v2.model.team_sync_attributes_type import TeamSyncAttributesType
17+
18+
19+
class TeamSyncAttributes(ModelNormal):
20+
@cached_property
21+
def openapi_types(_):
22+
from datadog_api_client.v2.model.team_sync_attributes_source import TeamSyncAttributesSource
23+
from datadog_api_client.v2.model.team_sync_attributes_type import TeamSyncAttributesType
24+
25+
return {
26+
"source": (TeamSyncAttributesSource,),
27+
"type": (TeamSyncAttributesType,),
28+
}
29+
30+
attribute_map = {
31+
"source": "source",
32+
"type": "type",
33+
}
34+
35+
def __init__(self_, source: TeamSyncAttributesSource, type: TeamSyncAttributesType, **kwargs):
36+
"""
37+
Team sync attributes.
38+
39+
:param source: The external source platform for team synchronization. Only "github" is supported.
40+
:type source: TeamSyncAttributesSource
41+
42+
:param type: The type of synchronization operation. Only "link" is supported, which links existing teams by matching names.
43+
:type type: TeamSyncAttributesType
44+
"""
45+
super().__init__(kwargs)
46+
47+
self_.source = source
48+
self_.type = type

0 commit comments

Comments
 (0)