Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .stats.yml
Original file line number Diff line number Diff line change
@@ -1 +1 @@
configured_endpoints: 158
configured_endpoints: 167
49 changes: 49 additions & 0 deletions api.md
Original file line number Diff line number Diff line change
Expand Up @@ -337,6 +337,29 @@ Methods:
- <code title="post /broadcasts/{broadcastId}/schedule">client.broadcasts.<a href="./src/courier/resources/broadcasts.py">schedule</a>(broadcast_id, \*\*<a href="src/courier/types/broadcast_schedule_params.py">params</a>) -> <a href="./src/courier/types/broadcast.py">Broadcast</a></code>
- <code title="post /broadcasts/{broadcastId}/send">client.broadcasts.<a href="./src/courier/resources/broadcasts.py">send</a>(broadcast_id, \*\*<a href="src/courier/types/broadcast_send_params.py">params</a>) -> <a href="./src/courier/types/broadcast.py">Broadcast</a></code>

# Previews

Types:

```python
from courier.types import (
CreateDeviceSetRequest,
DeviceSet,
DeviceSetListResponse,
PreviewDevice,
PreviewDeviceListResponse,
)
```

Methods:

- <code title="delete /previews/device-sets/{deviceSetId}">client.previews.<a href="./src/courier/resources/previews.py">archive_device_set</a>(device_set_id) -> <a href="./src/courier/types/device_set.py">DeviceSet</a></code>
- <code title="post /previews/device-sets">client.previews.<a href="./src/courier/resources/previews.py">create_device_set</a>(\*\*<a href="src/courier/types/preview_create_device_set_params.py">params</a>) -> <a href="./src/courier/types/device_set.py">DeviceSet</a></code>
- <code title="get /previews/device-sets">client.previews.<a href="./src/courier/resources/previews.py">list_device_sets</a>() -> <a href="./src/courier/types/device_set_list_response.py">DeviceSetListResponse</a></code>
- <code title="get /previews/devices">client.previews.<a href="./src/courier/resources/previews.py">list_devices</a>() -> <a href="./src/courier/types/preview_device_list_response.py">PreviewDeviceListResponse</a></code>
- <code title="get /previews/device-sets/{deviceSetId}">client.previews.<a href="./src/courier/resources/previews.py">retrieve_device_set</a>(device_set_id) -> <a href="./src/courier/types/device_set.py">DeviceSet</a></code>
- <code title="put /previews/device-sets/{deviceSetId}">client.previews.<a href="./src/courier/resources/previews.py">update_device_set</a>(device_set_id, \*\*<a href="src/courier/types/preview_update_device_set_params.py">params</a>) -> <a href="./src/courier/types/device_set.py">DeviceSet</a></code>

# Bulk

Types:
Expand Down Expand Up @@ -548,6 +571,32 @@ Methods:
- <code title="get /notifications/{id}/{submissionId}/checks">client.notifications.checks.<a href="./src/courier/resources/notifications/checks.py">list</a>(submission_id, \*, id) -> <a href="./src/courier/types/notifications/check_list_response.py">CheckListResponse</a></code>
- <code title="delete /notifications/{id}/{submissionId}/checks">client.notifications.checks.<a href="./src/courier/resources/notifications/checks.py">delete</a>(submission_id, \*, id) -> None</code>

## Previews

### Runs

Types:

```python
from courier.types.notifications.previews import (
CreatePreviewRunRequest,
PreviewResult,
PreviewResultFailureReason,
PreviewResultStatus,
PreviewRun,
PreviewRunDetail,
PreviewRunFailureReason,
PreviewRunListResponse,
PreviewRunStatus,
)
```

Methods:

- <code title="post /notifications/{id}/previews/runs">client.notifications.previews.runs.<a href="./src/courier/resources/notifications/previews/runs.py">create</a>(id, \*\*<a href="src/courier/types/notifications/previews/run_create_params.py">params</a>) -> <a href="./src/courier/types/notifications/previews/preview_run.py">PreviewRun</a></code>
- <code title="get /notifications/{id}/previews/runs/{previewRunId}">client.notifications.previews.runs.<a href="./src/courier/resources/notifications/previews/runs.py">retrieve</a>(preview_run_id, \*, id) -> <a href="./src/courier/types/notifications/previews/preview_run_detail.py">PreviewRunDetail</a></code>
- <code title="get /notifications/{id}/previews/runs">client.notifications.previews.runs.<a href="./src/courier/resources/notifications/previews/runs.py">list</a>(id, \*\*<a href="src/courier/types/notifications/previews/run_list_params.py">params</a>) -> <a href="./src/courier/types/notifications/previews/preview_run_list_response.py">PreviewRunListResponse</a></code>

# RoutingStrategies

Types:
Expand Down
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[project]
name = "trycourier"
version = "9.10.0"
version = "9.9.0"
description = "The official Python library for the Courier API"
dynamic = ["readme"]
license = "Apache-2.0"
Expand Down
56 changes: 56 additions & 0 deletions src/courier/_client.py
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,7 @@
tenants,
journeys,
messages,
previews,
profiles,
requests,
audiences,
Expand All @@ -65,6 +66,7 @@
from .resources.brands import BrandsResource, AsyncBrandsResource
from .resources.inbound import InboundResource, AsyncInboundResource
from .resources.messages import MessagesResource, AsyncMessagesResource
from .resources.previews import PreviewsResource, AsyncPreviewsResource
from .resources.requests import RequestsResource, AsyncRequestsResource
from .resources.audiences import AudiencesResource, AsyncAudiencesResource
from .resources.broadcasts import BroadcastsResource, AsyncBroadcastsResource
Expand Down Expand Up @@ -222,6 +224,15 @@ def broadcasts(self) -> BroadcastsResource:

return BroadcastsResource(self)

@cached_property
def previews(self) -> PreviewsResource:
"""
Render a template's email content on real email clients and read back the screenshots, so you can check how it looks before you send it.
"""
from .resources.previews import PreviewsResource

return PreviewsResource(self)

@cached_property
def bulk(self) -> BulkResource:
from .resources.bulk import BulkResource
Expand Down Expand Up @@ -586,6 +597,15 @@ def broadcasts(self) -> AsyncBroadcastsResource:

return AsyncBroadcastsResource(self)

@cached_property
def previews(self) -> AsyncPreviewsResource:
"""
Render a template's email content on real email clients and read back the screenshots, so you can check how it looks before you send it.
"""
from .resources.previews import AsyncPreviewsResource

return AsyncPreviewsResource(self)

@cached_property
def bulk(self) -> AsyncBulkResource:
from .resources.bulk import AsyncBulkResource
Expand Down Expand Up @@ -892,6 +912,15 @@ def broadcasts(self) -> broadcasts.BroadcastsResourceWithRawResponse:

return BroadcastsResourceWithRawResponse(self._client.broadcasts)

@cached_property
def previews(self) -> previews.PreviewsResourceWithRawResponse:
"""
Render a template's email content on real email clients and read back the screenshots, so you can check how it looks before you send it.
"""
from .resources.previews import PreviewsResourceWithRawResponse

return PreviewsResourceWithRawResponse(self._client.previews)

@cached_property
def bulk(self) -> bulk.BulkResourceWithRawResponse:
from .resources.bulk import BulkResourceWithRawResponse
Expand Down Expand Up @@ -1086,6 +1115,15 @@ def broadcasts(self) -> broadcasts.AsyncBroadcastsResourceWithRawResponse:

return AsyncBroadcastsResourceWithRawResponse(self._client.broadcasts)

@cached_property
def previews(self) -> previews.AsyncPreviewsResourceWithRawResponse:
"""
Render a template's email content on real email clients and read back the screenshots, so you can check how it looks before you send it.
"""
from .resources.previews import AsyncPreviewsResourceWithRawResponse

return AsyncPreviewsResourceWithRawResponse(self._client.previews)

@cached_property
def bulk(self) -> bulk.AsyncBulkResourceWithRawResponse:
from .resources.bulk import AsyncBulkResourceWithRawResponse
Expand Down Expand Up @@ -1280,6 +1318,15 @@ def broadcasts(self) -> broadcasts.BroadcastsResourceWithStreamingResponse:

return BroadcastsResourceWithStreamingResponse(self._client.broadcasts)

@cached_property
def previews(self) -> previews.PreviewsResourceWithStreamingResponse:
"""
Render a template's email content on real email clients and read back the screenshots, so you can check how it looks before you send it.
"""
from .resources.previews import PreviewsResourceWithStreamingResponse

return PreviewsResourceWithStreamingResponse(self._client.previews)

@cached_property
def bulk(self) -> bulk.BulkResourceWithStreamingResponse:
from .resources.bulk import BulkResourceWithStreamingResponse
Expand Down Expand Up @@ -1474,6 +1521,15 @@ def broadcasts(self) -> broadcasts.AsyncBroadcastsResourceWithStreamingResponse:

return AsyncBroadcastsResourceWithStreamingResponse(self._client.broadcasts)

@cached_property
def previews(self) -> previews.AsyncPreviewsResourceWithStreamingResponse:
"""
Render a template's email content on real email clients and read back the screenshots, so you can check how it looks before you send it.
"""
from .resources.previews import AsyncPreviewsResourceWithStreamingResponse

return AsyncPreviewsResourceWithStreamingResponse(self._client.previews)

@cached_property
def bulk(self) -> bulk.AsyncBulkResourceWithStreamingResponse:
from .resources.bulk import AsyncBulkResourceWithStreamingResponse
Expand Down
2 changes: 1 addition & 1 deletion src/courier/_version.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.

__title__ = "courier"
__version__ = "9.10.0" # x-release-please-version
__version__ = "9.9.0" # x-release-please-version
14 changes: 14 additions & 0 deletions src/courier/resources/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -88,6 +88,14 @@
MessagesResourceWithStreamingResponse,
AsyncMessagesResourceWithStreamingResponse,
)
from .previews import (
PreviewsResource,
AsyncPreviewsResource,
PreviewsResourceWithRawResponse,
AsyncPreviewsResourceWithRawResponse,
PreviewsResourceWithStreamingResponse,
AsyncPreviewsResourceWithStreamingResponse,
)
from .profiles import (
ProfilesResource,
AsyncProfilesResource,
Expand Down Expand Up @@ -226,6 +234,12 @@
"AsyncBroadcastsResourceWithRawResponse",
"BroadcastsResourceWithStreamingResponse",
"AsyncBroadcastsResourceWithStreamingResponse",
"PreviewsResource",
"AsyncPreviewsResource",
"PreviewsResourceWithRawResponse",
"AsyncPreviewsResourceWithRawResponse",
"PreviewsResourceWithStreamingResponse",
"AsyncPreviewsResourceWithStreamingResponse",
"BulkResource",
"AsyncBulkResource",
"BulkResourceWithRawResponse",
Expand Down
14 changes: 14 additions & 0 deletions src/courier/resources/notifications/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,14 @@
ChecksResourceWithStreamingResponse,
AsyncChecksResourceWithStreamingResponse,
)
from .previews import (
PreviewsResource,
AsyncPreviewsResource,
PreviewsResourceWithRawResponse,
AsyncPreviewsResourceWithRawResponse,
PreviewsResourceWithStreamingResponse,
AsyncPreviewsResourceWithStreamingResponse,
)
from .notifications import (
NotificationsResource,
AsyncNotificationsResource,
Expand All @@ -24,6 +32,12 @@
"AsyncChecksResourceWithRawResponse",
"ChecksResourceWithStreamingResponse",
"AsyncChecksResourceWithStreamingResponse",
"PreviewsResource",
"AsyncPreviewsResource",
"PreviewsResourceWithRawResponse",
"AsyncPreviewsResourceWithRawResponse",
"PreviewsResourceWithStreamingResponse",
"AsyncPreviewsResourceWithStreamingResponse",
"NotificationsResource",
"AsyncNotificationsResource",
"NotificationsResourceWithRawResponse",
Expand Down
32 changes: 32 additions & 0 deletions src/courier/resources/notifications/notifications.py
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,14 @@
async_to_streamed_response_wrapper,
)
from ..._base_client import make_request_options
from .previews.previews import (
PreviewsResource,
AsyncPreviewsResource,
PreviewsResourceWithRawResponse,
AsyncPreviewsResourceWithRawResponse,
PreviewsResourceWithStreamingResponse,
AsyncPreviewsResourceWithStreamingResponse,
)
from ...types.notification_list_response import NotificationListResponse
from ...types.notification_template_state import NotificationTemplateState
from ...types.notification_metrics_response import NotificationMetricsResponse
Expand All @@ -65,6 +73,10 @@ def checks(self) -> ChecksResource:
"""
return ChecksResource(self._client)

@cached_property
def previews(self) -> PreviewsResource:
return PreviewsResource(self._client)

@cached_property
def with_raw_response(self) -> NotificationsResourceWithRawResponse:
"""
Expand Down Expand Up @@ -747,6 +759,10 @@ def checks(self) -> AsyncChecksResource:
"""
return AsyncChecksResource(self._client)

@cached_property
def previews(self) -> AsyncPreviewsResource:
return AsyncPreviewsResource(self._client)

@cached_property
def with_raw_response(self) -> AsyncNotificationsResourceWithRawResponse:
"""
Expand Down Expand Up @@ -1469,6 +1485,10 @@ def checks(self) -> ChecksResourceWithRawResponse:
"""
return ChecksResourceWithRawResponse(self._notifications.checks)

@cached_property
def previews(self) -> PreviewsResourceWithRawResponse:
return PreviewsResourceWithRawResponse(self._notifications.previews)


class AsyncNotificationsResourceWithRawResponse:
def __init__(self, notifications: AsyncNotificationsResource) -> None:
Expand Down Expand Up @@ -1518,6 +1538,10 @@ def checks(self) -> AsyncChecksResourceWithRawResponse:
"""
return AsyncChecksResourceWithRawResponse(self._notifications.checks)

@cached_property
def previews(self) -> AsyncPreviewsResourceWithRawResponse:
return AsyncPreviewsResourceWithRawResponse(self._notifications.previews)


class NotificationsResourceWithStreamingResponse:
def __init__(self, notifications: NotificationsResource) -> None:
Expand Down Expand Up @@ -1567,6 +1591,10 @@ def checks(self) -> ChecksResourceWithStreamingResponse:
"""
return ChecksResourceWithStreamingResponse(self._notifications.checks)

@cached_property
def previews(self) -> PreviewsResourceWithStreamingResponse:
return PreviewsResourceWithStreamingResponse(self._notifications.previews)


class AsyncNotificationsResourceWithStreamingResponse:
def __init__(self, notifications: AsyncNotificationsResource) -> None:
Expand Down Expand Up @@ -1615,3 +1643,7 @@ def checks(self) -> AsyncChecksResourceWithStreamingResponse:
Create, update, version, publish, and localize notification templates and their content.
"""
return AsyncChecksResourceWithStreamingResponse(self._notifications.checks)

@cached_property
def previews(self) -> AsyncPreviewsResourceWithStreamingResponse:
return AsyncPreviewsResourceWithStreamingResponse(self._notifications.previews)
33 changes: 33 additions & 0 deletions src/courier/resources/notifications/previews/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.

from .runs import (
RunsResource,
AsyncRunsResource,
RunsResourceWithRawResponse,
AsyncRunsResourceWithRawResponse,
RunsResourceWithStreamingResponse,
AsyncRunsResourceWithStreamingResponse,
)
from .previews import (
PreviewsResource,
AsyncPreviewsResource,
PreviewsResourceWithRawResponse,
AsyncPreviewsResourceWithRawResponse,
PreviewsResourceWithStreamingResponse,
AsyncPreviewsResourceWithStreamingResponse,
)

__all__ = [
"RunsResource",
"AsyncRunsResource",
"RunsResourceWithRawResponse",
"AsyncRunsResourceWithRawResponse",
"RunsResourceWithStreamingResponse",
"AsyncRunsResourceWithStreamingResponse",
"PreviewsResource",
"AsyncPreviewsResource",
"PreviewsResourceWithRawResponse",
"AsyncPreviewsResourceWithRawResponse",
"PreviewsResourceWithStreamingResponse",
"AsyncPreviewsResourceWithStreamingResponse",
]
Loading
Loading