66
77import httpx
88
9- from ..._types import Body , Omit , Query , Headers , NotGiven , omit , not_given
9+ from ..._types import Body , Omit , Query , Headers , NoneType , NotGiven , omit , not_given
1010from ..._utils import path_template , maybe_transform , async_maybe_transform
1111from ..._compat import cached_property
1212from ..._resource import SyncAPIResource , AsyncAPIResource
1818)
1919from ...types .users import (
2020 preference_retrieve_params ,
21+ preference_delete_topic_params ,
2122 preference_retrieve_topic_params ,
2223 preference_update_or_create_topic_params ,
2324)
@@ -89,6 +90,54 @@ def retrieve(
8990 cast_to = PreferenceRetrieveResponse ,
9091 )
9192
93+ def delete_topic (
94+ self ,
95+ topic_id : str ,
96+ * ,
97+ user_id : str ,
98+ tenant_id : Optional [str ] | Omit = omit ,
99+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
100+ # The extra values given here take precedence over values defined on the client or passed to this method.
101+ extra_headers : Headers | None = None ,
102+ extra_query : Query | None = None ,
103+ extra_body : Body | None = None ,
104+ timeout : float | httpx .Timeout | None | NotGiven = not_given ,
105+ ) -> None :
106+ """
107+ Remove a user's preferences for a specific subscription topic, resetting the
108+ topic to its effective default. This operation is idempotent: deleting a
109+ preference that does not exist succeeds with no error.
110+
111+ Args:
112+ tenant_id: Delete the preferences of a user for this specific tenant context.
113+
114+ extra_headers: Send extra headers
115+
116+ extra_query: Add additional query parameters to the request
117+
118+ extra_body: Add additional JSON properties to the request
119+
120+ timeout: Override the client-level default timeout for this request, in seconds
121+ """
122+ if not user_id :
123+ raise ValueError (f"Expected a non-empty value for `user_id` but received { user_id !r} " )
124+ if not topic_id :
125+ raise ValueError (f"Expected a non-empty value for `topic_id` but received { topic_id !r} " )
126+ extra_headers = {"Accept" : "*/*" , ** (extra_headers or {})}
127+ return self ._delete (
128+ path_template ("/users/{user_id}/preferences/{topic_id}" , user_id = user_id , topic_id = topic_id ),
129+ options = make_request_options (
130+ extra_headers = extra_headers ,
131+ extra_query = extra_query ,
132+ extra_body = extra_body ,
133+ timeout = timeout ,
134+ query = maybe_transform (
135+ {"tenant_id" : tenant_id }, preference_delete_topic_params .PreferenceDeleteTopicParams
136+ ),
137+ ),
138+ cast_to = NoneType ,
139+ )
140+
92141 def retrieve_topic (
93142 self ,
94143 topic_id : str ,
@@ -247,6 +296,54 @@ async def retrieve(
247296 cast_to = PreferenceRetrieveResponse ,
248297 )
249298
299+ async def delete_topic (
300+ self ,
301+ topic_id : str ,
302+ * ,
303+ user_id : str ,
304+ tenant_id : Optional [str ] | Omit = omit ,
305+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
306+ # The extra values given here take precedence over values defined on the client or passed to this method.
307+ extra_headers : Headers | None = None ,
308+ extra_query : Query | None = None ,
309+ extra_body : Body | None = None ,
310+ timeout : float | httpx .Timeout | None | NotGiven = not_given ,
311+ ) -> None :
312+ """
313+ Remove a user's preferences for a specific subscription topic, resetting the
314+ topic to its effective default. This operation is idempotent: deleting a
315+ preference that does not exist succeeds with no error.
316+
317+ Args:
318+ tenant_id: Delete the preferences of a user for this specific tenant context.
319+
320+ extra_headers: Send extra headers
321+
322+ extra_query: Add additional query parameters to the request
323+
324+ extra_body: Add additional JSON properties to the request
325+
326+ timeout: Override the client-level default timeout for this request, in seconds
327+ """
328+ if not user_id :
329+ raise ValueError (f"Expected a non-empty value for `user_id` but received { user_id !r} " )
330+ if not topic_id :
331+ raise ValueError (f"Expected a non-empty value for `topic_id` but received { topic_id !r} " )
332+ extra_headers = {"Accept" : "*/*" , ** (extra_headers or {})}
333+ return await self ._delete (
334+ path_template ("/users/{user_id}/preferences/{topic_id}" , user_id = user_id , topic_id = topic_id ),
335+ options = make_request_options (
336+ extra_headers = extra_headers ,
337+ extra_query = extra_query ,
338+ extra_body = extra_body ,
339+ timeout = timeout ,
340+ query = await async_maybe_transform (
341+ {"tenant_id" : tenant_id }, preference_delete_topic_params .PreferenceDeleteTopicParams
342+ ),
343+ ),
344+ cast_to = NoneType ,
345+ )
346+
250347 async def retrieve_topic (
251348 self ,
252349 topic_id : str ,
@@ -350,6 +447,9 @@ def __init__(self, preferences: PreferencesResource) -> None:
350447 self .retrieve = to_raw_response_wrapper (
351448 preferences .retrieve ,
352449 )
450+ self .delete_topic = to_raw_response_wrapper (
451+ preferences .delete_topic ,
452+ )
353453 self .retrieve_topic = to_raw_response_wrapper (
354454 preferences .retrieve_topic ,
355455 )
@@ -365,6 +465,9 @@ def __init__(self, preferences: AsyncPreferencesResource) -> None:
365465 self .retrieve = async_to_raw_response_wrapper (
366466 preferences .retrieve ,
367467 )
468+ self .delete_topic = async_to_raw_response_wrapper (
469+ preferences .delete_topic ,
470+ )
368471 self .retrieve_topic = async_to_raw_response_wrapper (
369472 preferences .retrieve_topic ,
370473 )
@@ -380,6 +483,9 @@ def __init__(self, preferences: PreferencesResource) -> None:
380483 self .retrieve = to_streamed_response_wrapper (
381484 preferences .retrieve ,
382485 )
486+ self .delete_topic = to_streamed_response_wrapper (
487+ preferences .delete_topic ,
488+ )
383489 self .retrieve_topic = to_streamed_response_wrapper (
384490 preferences .retrieve_topic ,
385491 )
@@ -395,6 +501,9 @@ def __init__(self, preferences: AsyncPreferencesResource) -> None:
395501 self .retrieve = async_to_streamed_response_wrapper (
396502 preferences .retrieve ,
397503 )
504+ self .delete_topic = async_to_streamed_response_wrapper (
505+ preferences .delete_topic ,
506+ )
398507 self .retrieve_topic = async_to_streamed_response_wrapper (
399508 preferences .retrieve_topic ,
400509 )
0 commit comments