diff --git a/.release-please-manifest.json b/.release-please-manifest.json
index 821a1fc..c6500a3 100644
--- a/.release-please-manifest.json
+++ b/.release-please-manifest.json
@@ -1,3 +1,3 @@
{
- ".": "7.23.0"
+ ".": "7.24.0"
}
\ No newline at end of file
diff --git a/.stats.yml b/.stats.yml
index 29ea7c7..06502c4 100644
--- a/.stats.yml
+++ b/.stats.yml
@@ -1,4 +1,4 @@
-configured_endpoints: 147
-openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/courier/courier-ca32540df5bca42c8113de4004e7751b74bb440e3d73267e7cbad84dd3c3e82a.yml
-openapi_spec_hash: 5576c8cf8e5be1f250b5dd1eb6d30571
-config_hash: c6cefb51165221f01d442a42ac4a13b9
+configured_endpoints: 145
+openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/courier/courier-b4485f5c4897c26d52a46aeb39b8a22415bcd529b0ad326fd43a30d7fadf1376.yml
+openapi_spec_hash: db619c8991994dc8016fc4327f6917a2
+config_hash: 3eb0070d128aef7a6da16173f7050177
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 112e207..f03333e 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,14 @@
# Changelog
+## 7.24.0 (2026-07-30)
+
+Full Changelog: [v7.23.0...v7.24.0](https://github.com/trycourier/courier-python/compare/v7.23.0...v7.24.0)
+
+### Features
+
+* spec: remove inbox message delete/restore endpoints for now (C-19268) ([#182](https://github.com/trycourier/courier-python/issues/182)) ([dfdc63d](https://github.com/trycourier/courier-python/commit/dfdc63d3d184091ddc3f81a851aa156d43f6b61e))
+* spec: reorder API reference sections to match the Studio nav ([#180](https://github.com/trycourier/courier-python/issues/180)) ([044758a](https://github.com/trycourier/courier-python/commit/044758a95673f15a0a7b01b3021ff0359ef6c5bd))
+
## 7.23.0 (2026-07-29)
Full Changelog: [v7.22.0...v7.23.0](https://github.com/trycourier/courier-python/compare/v7.22.0...v7.23.0)
diff --git a/api.md b/api.md
index 4603c9d..856a963 100644
--- a/api.md
+++ b/api.md
@@ -385,15 +385,6 @@ Methods:
- client.lists.subscriptions.subscribe_user(user_id, \*, list_id, \*\*params) -> None
- client.lists.subscriptions.unsubscribe_user(user_id, \*, list_id) -> None
-# Inbox
-
-## Messages
-
-Methods:
-
-- client.inbox.messages.delete(message_id) -> None
-- client.inbox.messages.restore(message_id) -> None
-
# Messages
Types:
diff --git a/pyproject.toml b/pyproject.toml
index 1b672bf..fad6e6c 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -1,6 +1,6 @@
[project]
name = "trycourier"
-version = "7.23.0"
+version = "7.24.0"
description = "The official Python library for the Courier API"
dynamic = ["readme"]
license = "Apache-2.0"
diff --git a/src/courier/_client.py b/src/courier/_client.py
index b6797bf..f548a44 100644
--- a/src/courier/_client.py
+++ b/src/courier/_client.py
@@ -38,7 +38,6 @@
from .resources import (
auth,
send,
- inbox,
lists,
users,
brands,
@@ -67,7 +66,6 @@
from .resources.requests import RequestsResource, AsyncRequestsResource
from .resources.audiences import AudiencesResource, AsyncAudiencesResource
from .resources.broadcasts import BroadcastsResource, AsyncBroadcastsResource
- from .resources.inbox.inbox import InboxResource, AsyncInboxResource
from .resources.lists.lists import ListsResource, AsyncListsResource
from .resources.users.users import UsersResource, AsyncUsersResource
from .resources.audit_events import AuditEventsResource, AsyncAuditEventsResource
@@ -215,6 +213,9 @@ def journeys(self) -> JourneysResource:
@cached_property
def broadcasts(self) -> BroadcastsResource:
+ """
+ Create a one-off send to a list or audience, author its content, then send it immediately or schedule it for later.
+ """
from .resources.broadcasts import BroadcastsResource
return BroadcastsResource(self)
@@ -252,12 +253,6 @@ def lists(self) -> ListsResource:
return ListsResource(self)
- @cached_property
- def inbox(self) -> InboxResource:
- from .resources.inbox import InboxResource
-
- return InboxResource(self)
-
@cached_property
def messages(self) -> MessagesResource:
"""
@@ -576,6 +571,9 @@ def journeys(self) -> AsyncJourneysResource:
@cached_property
def broadcasts(self) -> AsyncBroadcastsResource:
+ """
+ Create a one-off send to a list or audience, author its content, then send it immediately or schedule it for later.
+ """
from .resources.broadcasts import AsyncBroadcastsResource
return AsyncBroadcastsResource(self)
@@ -613,12 +611,6 @@ def lists(self) -> AsyncListsResource:
return AsyncListsResource(self)
- @cached_property
- def inbox(self) -> AsyncInboxResource:
- from .resources.inbox import AsyncInboxResource
-
- return AsyncInboxResource(self)
-
@cached_property
def messages(self) -> AsyncMessagesResource:
"""
@@ -879,6 +871,9 @@ def journeys(self) -> journeys.JourneysResourceWithRawResponse:
@cached_property
def broadcasts(self) -> broadcasts.BroadcastsResourceWithRawResponse:
+ """
+ Create a one-off send to a list or audience, author its content, then send it immediately or schedule it for later.
+ """
from .resources.broadcasts import BroadcastsResourceWithRawResponse
return BroadcastsResourceWithRawResponse(self._client.broadcasts)
@@ -916,12 +911,6 @@ def lists(self) -> lists.ListsResourceWithRawResponse:
return ListsResourceWithRawResponse(self._client.lists)
- @cached_property
- def inbox(self) -> inbox.InboxResourceWithRawResponse:
- from .resources.inbox import InboxResourceWithRawResponse
-
- return InboxResourceWithRawResponse(self._client.inbox)
-
@cached_property
def messages(self) -> messages.MessagesResourceWithRawResponse:
"""
@@ -1070,6 +1059,9 @@ def journeys(self) -> journeys.AsyncJourneysResourceWithRawResponse:
@cached_property
def broadcasts(self) -> broadcasts.AsyncBroadcastsResourceWithRawResponse:
+ """
+ Create a one-off send to a list or audience, author its content, then send it immediately or schedule it for later.
+ """
from .resources.broadcasts import AsyncBroadcastsResourceWithRawResponse
return AsyncBroadcastsResourceWithRawResponse(self._client.broadcasts)
@@ -1107,12 +1099,6 @@ def lists(self) -> lists.AsyncListsResourceWithRawResponse:
return AsyncListsResourceWithRawResponse(self._client.lists)
- @cached_property
- def inbox(self) -> inbox.AsyncInboxResourceWithRawResponse:
- from .resources.inbox import AsyncInboxResourceWithRawResponse
-
- return AsyncInboxResourceWithRawResponse(self._client.inbox)
-
@cached_property
def messages(self) -> messages.AsyncMessagesResourceWithRawResponse:
"""
@@ -1261,6 +1247,9 @@ def journeys(self) -> journeys.JourneysResourceWithStreamingResponse:
@cached_property
def broadcasts(self) -> broadcasts.BroadcastsResourceWithStreamingResponse:
+ """
+ Create a one-off send to a list or audience, author its content, then send it immediately or schedule it for later.
+ """
from .resources.broadcasts import BroadcastsResourceWithStreamingResponse
return BroadcastsResourceWithStreamingResponse(self._client.broadcasts)
@@ -1298,12 +1287,6 @@ def lists(self) -> lists.ListsResourceWithStreamingResponse:
return ListsResourceWithStreamingResponse(self._client.lists)
- @cached_property
- def inbox(self) -> inbox.InboxResourceWithStreamingResponse:
- from .resources.inbox import InboxResourceWithStreamingResponse
-
- return InboxResourceWithStreamingResponse(self._client.inbox)
-
@cached_property
def messages(self) -> messages.MessagesResourceWithStreamingResponse:
"""
@@ -1452,6 +1435,9 @@ def journeys(self) -> journeys.AsyncJourneysResourceWithStreamingResponse:
@cached_property
def broadcasts(self) -> broadcasts.AsyncBroadcastsResourceWithStreamingResponse:
+ """
+ Create a one-off send to a list or audience, author its content, then send it immediately or schedule it for later.
+ """
from .resources.broadcasts import AsyncBroadcastsResourceWithStreamingResponse
return AsyncBroadcastsResourceWithStreamingResponse(self._client.broadcasts)
@@ -1489,12 +1475,6 @@ def lists(self) -> lists.AsyncListsResourceWithStreamingResponse:
return AsyncListsResourceWithStreamingResponse(self._client.lists)
- @cached_property
- def inbox(self) -> inbox.AsyncInboxResourceWithStreamingResponse:
- from .resources.inbox import AsyncInboxResourceWithStreamingResponse
-
- return AsyncInboxResourceWithStreamingResponse(self._client.inbox)
-
@cached_property
def messages(self) -> messages.AsyncMessagesResourceWithStreamingResponse:
"""
diff --git a/src/courier/_version.py b/src/courier/_version.py
index 3bba92e..dd757ad 100644
--- a/src/courier/_version.py
+++ b/src/courier/_version.py
@@ -1,4 +1,4 @@
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
__title__ = "courier"
-__version__ = "7.23.0" # x-release-please-version
+__version__ = "7.24.0" # x-release-please-version
diff --git a/src/courier/resources/__init__.py b/src/courier/resources/__init__.py
index 1528692..036149d 100644
--- a/src/courier/resources/__init__.py
+++ b/src/courier/resources/__init__.py
@@ -16,14 +16,6 @@
SendResourceWithStreamingResponse,
AsyncSendResourceWithStreamingResponse,
)
-from .inbox import (
- InboxResource,
- AsyncInboxResource,
- InboxResourceWithRawResponse,
- AsyncInboxResourceWithRawResponse,
- InboxResourceWithStreamingResponse,
- AsyncInboxResourceWithStreamingResponse,
-)
from .lists import (
ListsResource,
AsyncListsResource,
@@ -250,12 +242,6 @@
"AsyncListsResourceWithRawResponse",
"ListsResourceWithStreamingResponse",
"AsyncListsResourceWithStreamingResponse",
- "InboxResource",
- "AsyncInboxResource",
- "InboxResourceWithRawResponse",
- "AsyncInboxResourceWithRawResponse",
- "InboxResourceWithStreamingResponse",
- "AsyncInboxResourceWithStreamingResponse",
"MessagesResource",
"AsyncMessagesResource",
"MessagesResourceWithRawResponse",
diff --git a/src/courier/resources/broadcasts.py b/src/courier/resources/broadcasts.py
index 0465e10..aa55c88 100644
--- a/src/courier/resources/broadcasts.py
+++ b/src/courier/resources/broadcasts.py
@@ -38,6 +38,10 @@
class BroadcastsResource(SyncAPIResource):
+ """
+ Create a one-off send to a list or audience, author its content, then send it immediately or schedule it for later.
+ """
+
@cached_property
def with_raw_response(self) -> BroadcastsResourceWithRawResponse:
"""
@@ -529,6 +533,10 @@ def send(
class AsyncBroadcastsResource(AsyncAPIResource):
+ """
+ Create a one-off send to a list or audience, author its content, then send it immediately or schedule it for later.
+ """
+
@cached_property
def with_raw_response(self) -> AsyncBroadcastsResourceWithRawResponse:
"""
diff --git a/src/courier/resources/inbox/__init__.py b/src/courier/resources/inbox/__init__.py
deleted file mode 100644
index 13574c1..0000000
--- a/src/courier/resources/inbox/__init__.py
+++ /dev/null
@@ -1,33 +0,0 @@
-# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
-
-from .inbox import (
- InboxResource,
- AsyncInboxResource,
- InboxResourceWithRawResponse,
- AsyncInboxResourceWithRawResponse,
- InboxResourceWithStreamingResponse,
- AsyncInboxResourceWithStreamingResponse,
-)
-from .messages import (
- MessagesResource,
- AsyncMessagesResource,
- MessagesResourceWithRawResponse,
- AsyncMessagesResourceWithRawResponse,
- MessagesResourceWithStreamingResponse,
- AsyncMessagesResourceWithStreamingResponse,
-)
-
-__all__ = [
- "MessagesResource",
- "AsyncMessagesResource",
- "MessagesResourceWithRawResponse",
- "AsyncMessagesResourceWithRawResponse",
- "MessagesResourceWithStreamingResponse",
- "AsyncMessagesResourceWithStreamingResponse",
- "InboxResource",
- "AsyncInboxResource",
- "InboxResourceWithRawResponse",
- "AsyncInboxResourceWithRawResponse",
- "InboxResourceWithStreamingResponse",
- "AsyncInboxResourceWithStreamingResponse",
-]
diff --git a/src/courier/resources/inbox/inbox.py b/src/courier/resources/inbox/inbox.py
deleted file mode 100644
index 4ab7084..0000000
--- a/src/courier/resources/inbox/inbox.py
+++ /dev/null
@@ -1,108 +0,0 @@
-# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
-
-from __future__ import annotations
-
-from .messages import (
- MessagesResource,
- AsyncMessagesResource,
- MessagesResourceWithRawResponse,
- AsyncMessagesResourceWithRawResponse,
- MessagesResourceWithStreamingResponse,
- AsyncMessagesResourceWithStreamingResponse,
-)
-from ..._compat import cached_property
-from ..._resource import SyncAPIResource, AsyncAPIResource
-
-__all__ = ["InboxResource", "AsyncInboxResource"]
-
-
-class InboxResource(SyncAPIResource):
- @cached_property
- def messages(self) -> MessagesResource:
- """Manage the messages in a user's in-app inbox."""
- return MessagesResource(self._client)
-
- @cached_property
- def with_raw_response(self) -> InboxResourceWithRawResponse:
- """
- This property can be used as a prefix for any HTTP method call to return
- the raw response object instead of the parsed content.
-
- For more information, see https://www.github.com/trycourier/courier-python#accessing-raw-response-data-eg-headers
- """
- return InboxResourceWithRawResponse(self)
-
- @cached_property
- def with_streaming_response(self) -> InboxResourceWithStreamingResponse:
- """
- An alternative to `.with_raw_response` that doesn't eagerly read the response body.
-
- For more information, see https://www.github.com/trycourier/courier-python#with_streaming_response
- """
- return InboxResourceWithStreamingResponse(self)
-
-
-class AsyncInboxResource(AsyncAPIResource):
- @cached_property
- def messages(self) -> AsyncMessagesResource:
- """Manage the messages in a user's in-app inbox."""
- return AsyncMessagesResource(self._client)
-
- @cached_property
- def with_raw_response(self) -> AsyncInboxResourceWithRawResponse:
- """
- This property can be used as a prefix for any HTTP method call to return
- the raw response object instead of the parsed content.
-
- For more information, see https://www.github.com/trycourier/courier-python#accessing-raw-response-data-eg-headers
- """
- return AsyncInboxResourceWithRawResponse(self)
-
- @cached_property
- def with_streaming_response(self) -> AsyncInboxResourceWithStreamingResponse:
- """
- An alternative to `.with_raw_response` that doesn't eagerly read the response body.
-
- For more information, see https://www.github.com/trycourier/courier-python#with_streaming_response
- """
- return AsyncInboxResourceWithStreamingResponse(self)
-
-
-class InboxResourceWithRawResponse:
- def __init__(self, inbox: InboxResource) -> None:
- self._inbox = inbox
-
- @cached_property
- def messages(self) -> MessagesResourceWithRawResponse:
- """Manage the messages in a user's in-app inbox."""
- return MessagesResourceWithRawResponse(self._inbox.messages)
-
-
-class AsyncInboxResourceWithRawResponse:
- def __init__(self, inbox: AsyncInboxResource) -> None:
- self._inbox = inbox
-
- @cached_property
- def messages(self) -> AsyncMessagesResourceWithRawResponse:
- """Manage the messages in a user's in-app inbox."""
- return AsyncMessagesResourceWithRawResponse(self._inbox.messages)
-
-
-class InboxResourceWithStreamingResponse:
- def __init__(self, inbox: InboxResource) -> None:
- self._inbox = inbox
-
- @cached_property
- def messages(self) -> MessagesResourceWithStreamingResponse:
- """Manage the messages in a user's in-app inbox."""
- return MessagesResourceWithStreamingResponse(self._inbox.messages)
-
-
-class AsyncInboxResourceWithStreamingResponse:
- def __init__(self, inbox: AsyncInboxResource) -> None:
- self._inbox = inbox
-
- @cached_property
- def messages(self) -> AsyncMessagesResourceWithStreamingResponse:
- """Manage the messages in a user's in-app inbox."""
- return AsyncMessagesResourceWithStreamingResponse(self._inbox.messages)
diff --git a/src/courier/resources/inbox/messages.py b/src/courier/resources/inbox/messages.py
deleted file mode 100644
index 75bf3da..0000000
--- a/src/courier/resources/inbox/messages.py
+++ /dev/null
@@ -1,253 +0,0 @@
-# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
-
-from __future__ import annotations
-
-import httpx
-
-from ..._types import Body, Query, Headers, NoneType, NotGiven, not_given
-from ..._utils import path_template
-from ..._compat import cached_property
-from ..._resource import SyncAPIResource, AsyncAPIResource
-from ..._response import (
- to_raw_response_wrapper,
- to_streamed_response_wrapper,
- async_to_raw_response_wrapper,
- async_to_streamed_response_wrapper,
-)
-from ..._base_client import make_request_options
-
-__all__ = ["MessagesResource", "AsyncMessagesResource"]
-
-
-class MessagesResource(SyncAPIResource):
- """Manage the messages in a user's in-app inbox."""
-
- @cached_property
- def with_raw_response(self) -> MessagesResourceWithRawResponse:
- """
- This property can be used as a prefix for any HTTP method call to return
- the raw response object instead of the parsed content.
-
- For more information, see https://www.github.com/trycourier/courier-python#accessing-raw-response-data-eg-headers
- """
- return MessagesResourceWithRawResponse(self)
-
- @cached_property
- def with_streaming_response(self) -> MessagesResourceWithStreamingResponse:
- """
- An alternative to `.with_raw_response` that doesn't eagerly read the response body.
-
- For more information, see https://www.github.com/trycourier/courier-python#with_streaming_response
- """
- return MessagesResourceWithStreamingResponse(self)
-
- def delete(
- self,
- message_id: str,
- *,
- # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
- # The extra values given here take precedence over values defined on the client or passed to this method.
- extra_headers: Headers | None = None,
- extra_query: Query | None = None,
- extra_body: Body | None = None,
- timeout: float | httpx.Timeout | None | NotGiven = not_given,
- ) -> None:
- """Delete a user's inbox message.
-
- The message is removed from every inbox read (it
- stops appearing in the recipient's Inbox); it can be restored.
-
- Args:
- extra_headers: Send extra headers
-
- extra_query: Add additional query parameters to the request
-
- extra_body: Add additional JSON properties to the request
-
- timeout: Override the client-level default timeout for this request, in seconds
- """
- if not message_id:
- raise ValueError(f"Expected a non-empty value for `message_id` but received {message_id!r}")
- extra_headers = {"Accept": "*/*", **(extra_headers or {})}
- return self._delete(
- path_template("/inbox/messages/{message_id}", message_id=message_id),
- options=make_request_options(
- extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
- ),
- cast_to=NoneType,
- )
-
- def restore(
- self,
- message_id: str,
- *,
- # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
- # The extra values given here take precedence over values defined on the client or passed to this method.
- extra_headers: Headers | None = None,
- extra_query: Query | None = None,
- extra_body: Body | None = None,
- timeout: float | httpx.Timeout | None | NotGiven = not_given,
- ) -> None:
- """
- Restore a previously deleted inbox message.
-
- Args:
- extra_headers: Send extra headers
-
- extra_query: Add additional query parameters to the request
-
- extra_body: Add additional JSON properties to the request
-
- timeout: Override the client-level default timeout for this request, in seconds
- """
- if not message_id:
- raise ValueError(f"Expected a non-empty value for `message_id` but received {message_id!r}")
- extra_headers = {"Accept": "*/*", **(extra_headers or {})}
- return self._put(
- path_template("/inbox/messages/{message_id}/restore", message_id=message_id),
- options=make_request_options(
- extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
- ),
- cast_to=NoneType,
- )
-
-
-class AsyncMessagesResource(AsyncAPIResource):
- """Manage the messages in a user's in-app inbox."""
-
- @cached_property
- def with_raw_response(self) -> AsyncMessagesResourceWithRawResponse:
- """
- This property can be used as a prefix for any HTTP method call to return
- the raw response object instead of the parsed content.
-
- For more information, see https://www.github.com/trycourier/courier-python#accessing-raw-response-data-eg-headers
- """
- return AsyncMessagesResourceWithRawResponse(self)
-
- @cached_property
- def with_streaming_response(self) -> AsyncMessagesResourceWithStreamingResponse:
- """
- An alternative to `.with_raw_response` that doesn't eagerly read the response body.
-
- For more information, see https://www.github.com/trycourier/courier-python#with_streaming_response
- """
- return AsyncMessagesResourceWithStreamingResponse(self)
-
- async def delete(
- self,
- message_id: str,
- *,
- # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
- # The extra values given here take precedence over values defined on the client or passed to this method.
- extra_headers: Headers | None = None,
- extra_query: Query | None = None,
- extra_body: Body | None = None,
- timeout: float | httpx.Timeout | None | NotGiven = not_given,
- ) -> None:
- """Delete a user's inbox message.
-
- The message is removed from every inbox read (it
- stops appearing in the recipient's Inbox); it can be restored.
-
- Args:
- extra_headers: Send extra headers
-
- extra_query: Add additional query parameters to the request
-
- extra_body: Add additional JSON properties to the request
-
- timeout: Override the client-level default timeout for this request, in seconds
- """
- if not message_id:
- raise ValueError(f"Expected a non-empty value for `message_id` but received {message_id!r}")
- extra_headers = {"Accept": "*/*", **(extra_headers or {})}
- return await self._delete(
- path_template("/inbox/messages/{message_id}", message_id=message_id),
- options=make_request_options(
- extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
- ),
- cast_to=NoneType,
- )
-
- async def restore(
- self,
- message_id: str,
- *,
- # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
- # The extra values given here take precedence over values defined on the client or passed to this method.
- extra_headers: Headers | None = None,
- extra_query: Query | None = None,
- extra_body: Body | None = None,
- timeout: float | httpx.Timeout | None | NotGiven = not_given,
- ) -> None:
- """
- Restore a previously deleted inbox message.
-
- Args:
- extra_headers: Send extra headers
-
- extra_query: Add additional query parameters to the request
-
- extra_body: Add additional JSON properties to the request
-
- timeout: Override the client-level default timeout for this request, in seconds
- """
- if not message_id:
- raise ValueError(f"Expected a non-empty value for `message_id` but received {message_id!r}")
- extra_headers = {"Accept": "*/*", **(extra_headers or {})}
- return await self._put(
- path_template("/inbox/messages/{message_id}/restore", message_id=message_id),
- options=make_request_options(
- extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
- ),
- cast_to=NoneType,
- )
-
-
-class MessagesResourceWithRawResponse:
- def __init__(self, messages: MessagesResource) -> None:
- self._messages = messages
-
- self.delete = to_raw_response_wrapper(
- messages.delete,
- )
- self.restore = to_raw_response_wrapper(
- messages.restore,
- )
-
-
-class AsyncMessagesResourceWithRawResponse:
- def __init__(self, messages: AsyncMessagesResource) -> None:
- self._messages = messages
-
- self.delete = async_to_raw_response_wrapper(
- messages.delete,
- )
- self.restore = async_to_raw_response_wrapper(
- messages.restore,
- )
-
-
-class MessagesResourceWithStreamingResponse:
- def __init__(self, messages: MessagesResource) -> None:
- self._messages = messages
-
- self.delete = to_streamed_response_wrapper(
- messages.delete,
- )
- self.restore = to_streamed_response_wrapper(
- messages.restore,
- )
-
-
-class AsyncMessagesResourceWithStreamingResponse:
- def __init__(self, messages: AsyncMessagesResource) -> None:
- self._messages = messages
-
- self.delete = async_to_streamed_response_wrapper(
- messages.delete,
- )
- self.restore = async_to_streamed_response_wrapper(
- messages.restore,
- )
diff --git a/src/courier/types/inbox/__init__.py b/src/courier/types/inbox/__init__.py
deleted file mode 100644
index f8ee8b1..0000000
--- a/src/courier/types/inbox/__init__.py
+++ /dev/null
@@ -1,3 +0,0 @@
-# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
-
-from __future__ import annotations
diff --git a/tests/api_resources/inbox/__init__.py b/tests/api_resources/inbox/__init__.py
deleted file mode 100644
index fd8019a..0000000
--- a/tests/api_resources/inbox/__init__.py
+++ /dev/null
@@ -1 +0,0 @@
-# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
diff --git a/tests/api_resources/inbox/test_messages.py b/tests/api_resources/inbox/test_messages.py
deleted file mode 100644
index 129fbfe..0000000
--- a/tests/api_resources/inbox/test_messages.py
+++ /dev/null
@@ -1,190 +0,0 @@
-# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
-
-from __future__ import annotations
-
-import os
-from typing import Any, cast
-
-import pytest
-
-from courier import Courier, AsyncCourier
-
-base_url = os.environ.get("TEST_API_BASE_URL", "http://127.0.0.1:4010")
-
-
-class TestMessages:
- parametrize = pytest.mark.parametrize("client", [False, True], indirect=True, ids=["loose", "strict"])
-
- @pytest.mark.skip(reason="Mock server tests are disabled")
- @parametrize
- def test_method_delete(self, client: Courier) -> None:
- message = client.inbox.messages.delete(
- "message_id",
- )
- assert message is None
-
- @pytest.mark.skip(reason="Mock server tests are disabled")
- @parametrize
- def test_raw_response_delete(self, client: Courier) -> None:
- response = client.inbox.messages.with_raw_response.delete(
- "message_id",
- )
-
- assert response.is_closed is True
- assert response.http_request.headers.get("X-Stainless-Lang") == "python"
- message = response.parse()
- assert message is None
-
- @pytest.mark.skip(reason="Mock server tests are disabled")
- @parametrize
- def test_streaming_response_delete(self, client: Courier) -> None:
- with client.inbox.messages.with_streaming_response.delete(
- "message_id",
- ) as response:
- assert not response.is_closed
- assert response.http_request.headers.get("X-Stainless-Lang") == "python"
-
- message = response.parse()
- assert message is None
-
- assert cast(Any, response.is_closed) is True
-
- @pytest.mark.skip(reason="Mock server tests are disabled")
- @parametrize
- def test_path_params_delete(self, client: Courier) -> None:
- with pytest.raises(ValueError, match=r"Expected a non-empty value for `message_id` but received ''"):
- client.inbox.messages.with_raw_response.delete(
- "",
- )
-
- @pytest.mark.skip(reason="Mock server tests are disabled")
- @parametrize
- def test_method_restore(self, client: Courier) -> None:
- message = client.inbox.messages.restore(
- "message_id",
- )
- assert message is None
-
- @pytest.mark.skip(reason="Mock server tests are disabled")
- @parametrize
- def test_raw_response_restore(self, client: Courier) -> None:
- response = client.inbox.messages.with_raw_response.restore(
- "message_id",
- )
-
- assert response.is_closed is True
- assert response.http_request.headers.get("X-Stainless-Lang") == "python"
- message = response.parse()
- assert message is None
-
- @pytest.mark.skip(reason="Mock server tests are disabled")
- @parametrize
- def test_streaming_response_restore(self, client: Courier) -> None:
- with client.inbox.messages.with_streaming_response.restore(
- "message_id",
- ) as response:
- assert not response.is_closed
- assert response.http_request.headers.get("X-Stainless-Lang") == "python"
-
- message = response.parse()
- assert message is None
-
- assert cast(Any, response.is_closed) is True
-
- @pytest.mark.skip(reason="Mock server tests are disabled")
- @parametrize
- def test_path_params_restore(self, client: Courier) -> None:
- with pytest.raises(ValueError, match=r"Expected a non-empty value for `message_id` but received ''"):
- client.inbox.messages.with_raw_response.restore(
- "",
- )
-
-
-class TestAsyncMessages:
- parametrize = pytest.mark.parametrize(
- "async_client", [False, True, {"http_client": "aiohttp"}], indirect=True, ids=["loose", "strict", "aiohttp"]
- )
-
- @pytest.mark.skip(reason="Mock server tests are disabled")
- @parametrize
- async def test_method_delete(self, async_client: AsyncCourier) -> None:
- message = await async_client.inbox.messages.delete(
- "message_id",
- )
- assert message is None
-
- @pytest.mark.skip(reason="Mock server tests are disabled")
- @parametrize
- async def test_raw_response_delete(self, async_client: AsyncCourier) -> None:
- response = await async_client.inbox.messages.with_raw_response.delete(
- "message_id",
- )
-
- assert response.is_closed is True
- assert response.http_request.headers.get("X-Stainless-Lang") == "python"
- message = await response.parse()
- assert message is None
-
- @pytest.mark.skip(reason="Mock server tests are disabled")
- @parametrize
- async def test_streaming_response_delete(self, async_client: AsyncCourier) -> None:
- async with async_client.inbox.messages.with_streaming_response.delete(
- "message_id",
- ) as response:
- assert not response.is_closed
- assert response.http_request.headers.get("X-Stainless-Lang") == "python"
-
- message = await response.parse()
- assert message is None
-
- assert cast(Any, response.is_closed) is True
-
- @pytest.mark.skip(reason="Mock server tests are disabled")
- @parametrize
- async def test_path_params_delete(self, async_client: AsyncCourier) -> None:
- with pytest.raises(ValueError, match=r"Expected a non-empty value for `message_id` but received ''"):
- await async_client.inbox.messages.with_raw_response.delete(
- "",
- )
-
- @pytest.mark.skip(reason="Mock server tests are disabled")
- @parametrize
- async def test_method_restore(self, async_client: AsyncCourier) -> None:
- message = await async_client.inbox.messages.restore(
- "message_id",
- )
- assert message is None
-
- @pytest.mark.skip(reason="Mock server tests are disabled")
- @parametrize
- async def test_raw_response_restore(self, async_client: AsyncCourier) -> None:
- response = await async_client.inbox.messages.with_raw_response.restore(
- "message_id",
- )
-
- assert response.is_closed is True
- assert response.http_request.headers.get("X-Stainless-Lang") == "python"
- message = await response.parse()
- assert message is None
-
- @pytest.mark.skip(reason="Mock server tests are disabled")
- @parametrize
- async def test_streaming_response_restore(self, async_client: AsyncCourier) -> None:
- async with async_client.inbox.messages.with_streaming_response.restore(
- "message_id",
- ) as response:
- assert not response.is_closed
- assert response.http_request.headers.get("X-Stainless-Lang") == "python"
-
- message = await response.parse()
- assert message is None
-
- assert cast(Any, response.is_closed) is True
-
- @pytest.mark.skip(reason="Mock server tests are disabled")
- @parametrize
- async def test_path_params_restore(self, async_client: AsyncCourier) -> None:
- with pytest.raises(ValueError, match=r"Expected a non-empty value for `message_id` but received ''"):
- await async_client.inbox.messages.with_raw_response.restore(
- "",
- )