|
| 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) |
0 commit comments