Skip to content

Commit 3d1f80e

Browse files
author
ci.datadog-api-spec
committed
Regenerate client from commit 6fe9b33 of spec repo
1 parent 52a7477 commit 3d1f80e

23 files changed

Lines changed: 1686 additions & 0 deletions

.generator/schemas/v2/openapi.yaml

Lines changed: 381 additions & 0 deletions
Large diffs are not rendered by default.

docs/datadog_api_client.v2.api.rst

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -277,6 +277,13 @@ datadog\_api\_client.v2.api.downtimes\_api module
277277
:members:
278278
:show-inheritance:
279279

280+
datadog\_api\_client.v2.api.email\_transport\_api module
281+
--------------------------------------------------------
282+
283+
.. automodule:: datadog_api_client.v2.api.email_transport_api
284+
:members:
285+
:show-inheritance:
286+
280287
datadog\_api\_client.v2.api.entity\_risk\_scores\_api module
281288
------------------------------------------------------------
282289

docs/datadog_api_client.v2.model.rst

Lines changed: 91 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35018,6 +35018,97 @@ datadog\_api\_client.v2.model.token\_type module
3501835018
:members:
3501935019
:show-inheritance:
3502035020

35021+
datadog\_api\_client.v2.model.transport\_webhook\_log module
35022+
------------------------------------------------------------
35023+
35024+
.. automodule:: datadog_api_client.v2.model.transport_webhook_log
35025+
:members:
35026+
:show-inheritance:
35027+
35028+
datadog\_api\_client.v2.model.transport\_webhook\_log\_attributes module
35029+
------------------------------------------------------------------------
35030+
35031+
.. automodule:: datadog_api_client.v2.model.transport_webhook_log_attributes
35032+
:members:
35033+
:show-inheritance:
35034+
35035+
datadog\_api\_client.v2.model.transport\_webhook\_log\_email module
35036+
-------------------------------------------------------------------
35037+
35038+
.. automodule:: datadog_api_client.v2.model.transport_webhook_log_email
35039+
:members:
35040+
:show-inheritance:
35041+
35042+
datadog\_api\_client.v2.model.transport\_webhook\_log\_ip\_attribute module
35043+
---------------------------------------------------------------------------
35044+
35045+
.. automodule:: datadog_api_client.v2.model.transport_webhook_log_ip_attribute
35046+
:members:
35047+
:show-inheritance:
35048+
35049+
datadog\_api\_client.v2.model.transport\_webhook\_log\_message module
35050+
---------------------------------------------------------------------
35051+
35052+
.. automodule:: datadog_api_client.v2.model.transport_webhook_log_message
35053+
:members:
35054+
:show-inheritance:
35055+
35056+
datadog\_api\_client.v2.model.transport\_webhook\_log\_message\_auth module
35057+
---------------------------------------------------------------------------
35058+
35059+
.. automodule:: datadog_api_client.v2.model.transport_webhook_log_message_auth
35060+
:members:
35061+
:show-inheritance:
35062+
35063+
datadog\_api\_client.v2.model.transport\_webhook\_log\_message\_custom\_args module
35064+
-----------------------------------------------------------------------------------
35065+
35066+
.. automodule:: datadog_api_client.v2.model.transport_webhook_log_message_custom_args
35067+
:members:
35068+
:show-inheritance:
35069+
35070+
datadog\_api\_client.v2.model.transport\_webhook\_log\_message\_id module
35071+
-------------------------------------------------------------------------
35072+
35073+
.. automodule:: datadog_api_client.v2.model.transport_webhook_log_message_id
35074+
:members:
35075+
:show-inheritance:
35076+
35077+
datadog\_api\_client.v2.model.transport\_webhook\_log\_message\_response module
35078+
-------------------------------------------------------------------------------
35079+
35080+
.. automodule:: datadog_api_client.v2.model.transport_webhook_log_message_response
35081+
:members:
35082+
:show-inheritance:
35083+
35084+
datadog\_api\_client.v2.model.transport\_webhook\_log\_message\_timestamp module
35085+
--------------------------------------------------------------------------------
35086+
35087+
.. automodule:: datadog_api_client.v2.model.transport_webhook_log_message_timestamp
35088+
:members:
35089+
:show-inheritance:
35090+
35091+
datadog\_api\_client.v2.model.transport\_webhook\_log\_network module
35092+
---------------------------------------------------------------------
35093+
35094+
.. automodule:: datadog_api_client.v2.model.transport_webhook_log_network
35095+
:members:
35096+
:show-inheritance:
35097+
35098+
datadog\_api\_client.v2.model.transport\_webhook\_log\_network\_ip module
35099+
-------------------------------------------------------------------------
35100+
35101+
.. automodule:: datadog_api_client.v2.model.transport_webhook_log_network_ip
35102+
:members:
35103+
:show-inheritance:
35104+
35105+
datadog\_api\_client.v2.model.transport\_webhook\_log\_org\_metadata module
35106+
---------------------------------------------------------------------------
35107+
35108+
.. automodule:: datadog_api_client.v2.model.transport_webhook_log_org_metadata
35109+
:members:
35110+
:show-inheritance:
35111+
3502135112
datadog\_api\_client.v2.model.trigger module
3502235113
--------------------------------------------
3502335114

Lines changed: 105 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,105 @@
1+
"""
2+
Ingest email transport webhook events returns "No Content" response
3+
"""
4+
5+
from datadog_api_client import ApiClient, Configuration
6+
from datadog_api_client.v2.api.email_transport_api import EmailTransportApi
7+
from datadog_api_client.v2.model.transport_webhook_log import TransportWebhookLog
8+
from datadog_api_client.v2.model.transport_webhook_log_attributes import TransportWebhookLogAttributes
9+
from datadog_api_client.v2.model.transport_webhook_log_email import TransportWebhookLogEmail
10+
from datadog_api_client.v2.model.transport_webhook_log_ip_attribute import TransportWebhookLogIpAttribute
11+
from datadog_api_client.v2.model.transport_webhook_log_message import TransportWebhookLogMessage
12+
from datadog_api_client.v2.model.transport_webhook_log_message_auth import TransportWebhookLogMessageAuth
13+
from datadog_api_client.v2.model.transport_webhook_log_message_custom_args import TransportWebhookLogMessageCustomArgs
14+
from datadog_api_client.v2.model.transport_webhook_log_message_id import TransportWebhookLogMessageId
15+
from datadog_api_client.v2.model.transport_webhook_log_message_response import TransportWebhookLogMessageResponse
16+
from datadog_api_client.v2.model.transport_webhook_log_message_timestamp import TransportWebhookLogMessageTimestamp
17+
from datadog_api_client.v2.model.transport_webhook_log_network import TransportWebhookLogNetwork
18+
from datadog_api_client.v2.model.transport_webhook_log_network_ip import TransportWebhookLogNetworkIp
19+
from datadog_api_client.v2.model.transport_webhook_log_org_metadata import TransportWebhookLogOrgMetadata
20+
from datetime import datetime
21+
from dateutil.tz import tzutc
22+
23+
body = [
24+
TransportWebhookLog(
25+
attributes=TransportWebhookLogAttributes(
26+
category=[
27+
"transactional",
28+
],
29+
email=TransportWebhookLogEmail(
30+
address="user@example.com",
31+
domain="example.com",
32+
subject="[Monitor Alert] CPU usage is high",
33+
type=[
34+
"transactional",
35+
],
36+
),
37+
email_id="abc123-def456",
38+
email_type_display_name="Monitor Alert",
39+
message=TransportWebhookLogMessage(
40+
auth=TransportWebhookLogMessageAuth(
41+
delivered_with_tls="TLSv1.2",
42+
),
43+
custom_args=TransportWebhookLogMessageCustomArgs(
44+
email_id="abc123-def456",
45+
email_type_display_name="Monitor Alert",
46+
org_uuid="8dee7c38-00cb-11ea-a77b-8b5a08d3b091",
47+
queue_time="2024-01-15T10:29:00Z",
48+
subject="[Monitor Alert] CPU usage is high",
49+
),
50+
id=TransportWebhookLogMessageId(
51+
message_id="<message-id@example.com>",
52+
smtp_id="<abc123@mail.example.com>",
53+
transport_event_id="evt_abc123",
54+
),
55+
name="delivered",
56+
response=TransportWebhookLogMessageResponse(
57+
enhanced_smtp_code="2.0.0",
58+
reason="250 2.0.0 OK",
59+
smtp_code="250",
60+
),
61+
sender_ip="192.168.1.1",
62+
timestamp=TransportWebhookLogMessageTimestamp(
63+
event_timestamp=1705312200.0,
64+
lifetime=3.2,
65+
queue_time=1.5,
66+
scheduled_time=1705312190.0,
67+
),
68+
),
69+
network=TransportWebhookLogNetwork(
70+
ip=TransportWebhookLogNetworkIp(
71+
attributes=[
72+
TransportWebhookLogIpAttribute(
73+
ip="192.168.1.1",
74+
source=[
75+
"sendgrid",
76+
],
77+
),
78+
],
79+
list=[
80+
"192.168.1.1",
81+
],
82+
),
83+
),
84+
org=1234,
85+
org_metadata=TransportWebhookLogOrgMetadata(),
86+
org_uuid="8dee7c38-00cb-11ea-a77b-8b5a08d3b091",
87+
queue_time="2024-01-15T10:29:00Z",
88+
subject="[Monitor Alert] CPU usage is high",
89+
useragent="Mozilla/5.0",
90+
),
91+
date=datetime(2024, 1, 15, 10, 30, tzinfo=tzutc()),
92+
log_id="AQAAAZPHnBT0TwJAdgAAAABBWlBIblVlNEFBQ0dFMmVkYTFDSnRR",
93+
source="sendgrid",
94+
status="info",
95+
tags=[
96+
"env:production",
97+
],
98+
),
99+
]
100+
101+
configuration = Configuration()
102+
configuration.unstable_operations["create_email_transport_webhook_intake"] = True
103+
with ApiClient(configuration) as api_client:
104+
api_instance = EmailTransportApi(api_client)
105+
api_instance.create_email_transport_webhook_intake(body=body)

src/datadog_api_client/configuration.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -375,6 +375,7 @@ def __init__(
375375
"v2.trigger_deployment_gates_evaluation": False,
376376
"v2.update_deployment_gate": False,
377377
"v2.update_deployment_rule": False,
378+
"v2.create_email_transport_webhook_intake": False,
378379
"v2.create_hamr_org_connection": False,
379380
"v2.get_hamr_org_connection": False,
380381
"v2.create_global_incident_handle": False,
Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
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 Any, Dict, List
7+
8+
from datadog_api_client.api_client import ApiClient, Endpoint as _Endpoint
9+
from datadog_api_client.configuration import Configuration
10+
from datadog_api_client.v2.model.transport_webhook_log import TransportWebhookLog
11+
12+
13+
class EmailTransportApi:
14+
"""
15+
Endpoints for receiving email transport webhook events for audit trail processing.
16+
"""
17+
18+
def __init__(self, api_client=None):
19+
if api_client is None:
20+
api_client = ApiClient(Configuration())
21+
self.api_client = api_client
22+
23+
self._create_email_transport_webhook_intake_endpoint = _Endpoint(
24+
settings={
25+
"response_type": None,
26+
"auth": ["apiKeyAuth", "appKeyAuth"],
27+
"endpoint_path": "/api/v2/email/transport/webhook_intake",
28+
"operation_id": "create_email_transport_webhook_intake",
29+
"http_method": "POST",
30+
"version": "v2",
31+
},
32+
params_map={
33+
"body": {
34+
"required": True,
35+
"openapi_types": ([TransportWebhookLog],),
36+
"location": "body",
37+
"collection_format": "multi",
38+
},
39+
},
40+
headers_map={"accept": ["*/*"], "content_type": ["application/json"]},
41+
api_client=api_client,
42+
)
43+
44+
def create_email_transport_webhook_intake(
45+
self,
46+
body: List[TransportWebhookLog],
47+
) -> None:
48+
"""Ingest email transport webhook events.
49+
50+
Receives a batch of email transport webhook log events and emits an audit trail entry
51+
for each event with a final delivery status (delivered, dropped, or bounced).
52+
Only authorized organizations can submit events.
53+
54+
:type body: [TransportWebhookLog]
55+
:rtype: None
56+
"""
57+
kwargs: Dict[str, Any] = {}
58+
kwargs["body"] = body
59+
60+
return self._create_email_transport_webhook_intake_endpoint.call_with_http_info(**kwargs)

src/datadog_api_client/v2/apis/__init__.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@
3737
from datadog_api_client.v2.api.deployment_gates_api import DeploymentGatesApi
3838
from datadog_api_client.v2.api.domain_allowlist_api import DomainAllowlistApi
3939
from datadog_api_client.v2.api.downtimes_api import DowntimesApi
40+
from datadog_api_client.v2.api.email_transport_api import EmailTransportApi
4041
from datadog_api_client.v2.api.entity_risk_scores_api import EntityRiskScoresApi
4142
from datadog_api_client.v2.api.error_tracking_api import ErrorTrackingApi
4243
from datadog_api_client.v2.api.events_api import EventsApi
@@ -149,6 +150,7 @@
149150
"DeploymentGatesApi",
150151
"DomainAllowlistApi",
151152
"DowntimesApi",
153+
"EmailTransportApi",
152154
"EntityRiskScoresApi",
153155
"ErrorTrackingApi",
154156
"EventsApi",
Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
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, TYPE_CHECKING
7+
8+
from datadog_api_client.model_utils import (
9+
ModelNormal,
10+
cached_property,
11+
datetime,
12+
)
13+
14+
15+
if TYPE_CHECKING:
16+
from datadog_api_client.v2.model.transport_webhook_log_attributes import TransportWebhookLogAttributes
17+
18+
19+
class TransportWebhookLog(ModelNormal):
20+
@cached_property
21+
def openapi_types(_):
22+
from datadog_api_client.v2.model.transport_webhook_log_attributes import TransportWebhookLogAttributes
23+
24+
return {
25+
"attributes": (TransportWebhookLogAttributes,),
26+
"date": (datetime,),
27+
"log_id": (str,),
28+
"source": (str,),
29+
"status": (str,),
30+
"tags": ([str],),
31+
}
32+
33+
attribute_map = {
34+
"attributes": "attributes",
35+
"date": "date",
36+
"log_id": "log_id",
37+
"source": "source",
38+
"status": "status",
39+
"tags": "tags",
40+
}
41+
42+
def __init__(
43+
self_,
44+
attributes: TransportWebhookLogAttributes,
45+
date: datetime,
46+
log_id: str,
47+
source: str,
48+
status: str,
49+
tags: List[str],
50+
**kwargs,
51+
):
52+
"""
53+
A single email transport webhook log event.
54+
55+
:param attributes: Top-level attributes for the webhook log event, including delivery status, recipient details, and provider metadata.
56+
:type attributes: TransportWebhookLogAttributes
57+
58+
:param date: The ISO 8601 timestamp of the event.
59+
:type date: datetime
60+
61+
:param log_id: The unique log event identifier.
62+
:type log_id: str
63+
64+
:param source: The email transport provider.
65+
:type source: str
66+
67+
:param status: The log status level.
68+
:type status: str
69+
70+
:param tags: A list of tags associated with the event.
71+
:type tags: [str]
72+
"""
73+
super().__init__(kwargs)
74+
75+
self_.attributes = attributes
76+
self_.date = date
77+
self_.log_id = log_id
78+
self_.source = source
79+
self_.status = status
80+
self_.tags = tags

0 commit comments

Comments
 (0)