Skip to content

Commit 519404b

Browse files
feat(api): added new unset preferences methods
1 parent 6cd8630 commit 519404b

6 files changed

Lines changed: 436 additions & 2 deletions

File tree

.stats.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
configured_endpoints: 90
1+
configured_endpoints: 92
22
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/knock%2Fknock-f7658bcdf4b85c3c7b283f0dc216e7eb425d4ff258674fa79f6caa0eeb340b5e.yml
33
openapi_spec_hash: c80f2985521f9fc3cb931940915e6a99
4-
config_hash: 32503026a45db991d0d102f25af40a77
4+
config_hash: a3056fe062e62c7ca4d3931ccf3f6d06

api.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,7 @@ Methods:
8484
- <code title="put /v1/users/{user_id}/channel_data/{channel_id}">client.users.<a href="./src/knockapi/resources/users/users.py">set_channel_data</a>(user_id, channel_id, \*\*<a href="src/knockapi/types/user_set_channel_data_params.py">params</a>) -> <a href="./src/knockapi/types/recipients/channel_data.py">ChannelData</a></code>
8585
- <code title="put /v1/users/{user_id}/preferences/{id}">client.users.<a href="./src/knockapi/resources/users/users.py">set_preferences</a>(user_id, id, \*\*<a href="src/knockapi/types/user_set_preferences_params.py">params</a>) -> <a href="./src/knockapi/types/recipients/preference_set.py">PreferenceSet</a></code>
8686
- <code title="delete /v1/users/{user_id}/channel_data/{channel_id}">client.users.<a href="./src/knockapi/resources/users/users.py">unset_channel_data</a>(user_id, channel_id) -> None</code>
87+
- <code title="delete /v1/users/{user_id}/preferences/{id}">client.users.<a href="./src/knockapi/resources/users/users.py">unset_preferences</a>(user_id, id) -> None</code>
8788

8889
## Feeds
8990

@@ -157,6 +158,7 @@ Methods:
157158
- <code title="put /v1/objects/{collection}/{object_id}/channel_data/{channel_id}">client.objects.<a href="./src/knockapi/resources/objects/objects.py">set_channel_data</a>(collection, object_id, channel_id, \*\*<a href="src/knockapi/types/object_set_channel_data_params.py">params</a>) -> <a href="./src/knockapi/types/recipients/channel_data.py">ChannelData</a></code>
158159
- <code title="put /v1/objects/{collection}/{object_id}/preferences/{id}">client.objects.<a href="./src/knockapi/resources/objects/objects.py">set_preferences</a>(collection, object_id, id, \*\*<a href="src/knockapi/types/object_set_preferences_params.py">params</a>) -> <a href="./src/knockapi/types/recipients/preference_set.py">PreferenceSet</a></code>
159160
- <code title="delete /v1/objects/{collection}/{object_id}/channel_data/{channel_id}">client.objects.<a href="./src/knockapi/resources/objects/objects.py">unset_channel_data</a>(collection, object_id, channel_id) -> None</code>
161+
- <code title="delete /v1/objects/{collection}/{object_id}/preferences/{id}">client.objects.<a href="./src/knockapi/resources/objects/objects.py">unset_preferences</a>(collection, object_id, id) -> None</code>
160162

161163
## Bulk
162164

src/knockapi/resources/objects/objects.py

Lines changed: 116 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1004,6 +1004,58 @@ def unset_channel_data(
10041004
cast_to=NoneType,
10051005
)
10061006

1007+
def unset_preferences(
1008+
self,
1009+
collection: str,
1010+
object_id: str,
1011+
id: str,
1012+
*,
1013+
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
1014+
# The extra values given here take precedence over values defined on the client or passed to this method.
1015+
extra_headers: Headers | None = None,
1016+
extra_query: Query | None = None,
1017+
extra_body: Body | None = None,
1018+
timeout: float | httpx.Timeout | None | NotGiven = not_given,
1019+
idempotency_key: str | None = None,
1020+
) -> None:
1021+
"""
1022+
Unsets the preference set for the object, removing it entirely.
1023+
1024+
Args:
1025+
extra_headers: Send extra headers
1026+
1027+
extra_query: Add additional query parameters to the request
1028+
1029+
extra_body: Add additional JSON properties to the request
1030+
1031+
timeout: Override the client-level default timeout for this request, in seconds
1032+
1033+
idempotency_key: Specify a custom idempotency key for this request
1034+
"""
1035+
if not collection:
1036+
raise ValueError(f"Expected a non-empty value for `collection` but received {collection!r}")
1037+
if not object_id:
1038+
raise ValueError(f"Expected a non-empty value for `object_id` but received {object_id!r}")
1039+
if not id:
1040+
raise ValueError(f"Expected a non-empty value for `id` but received {id!r}")
1041+
extra_headers = {"Accept": "*/*", **(extra_headers or {})}
1042+
return self._delete(
1043+
path_template(
1044+
"/v1/objects/{collection}/{object_id}/preferences/{id}",
1045+
collection=collection,
1046+
object_id=object_id,
1047+
id=id,
1048+
),
1049+
options=make_request_options(
1050+
extra_headers=extra_headers,
1051+
extra_query=extra_query,
1052+
extra_body=extra_body,
1053+
timeout=timeout,
1054+
idempotency_key=idempotency_key,
1055+
),
1056+
cast_to=NoneType,
1057+
)
1058+
10071059

10081060
class AsyncObjectsResource(AsyncAPIResource):
10091061
"""An object represents a resource in your system that you want to map into Knock."""
@@ -1953,6 +2005,58 @@ async def unset_channel_data(
19532005
cast_to=NoneType,
19542006
)
19552007

2008+
async def unset_preferences(
2009+
self,
2010+
collection: str,
2011+
object_id: str,
2012+
id: str,
2013+
*,
2014+
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
2015+
# The extra values given here take precedence over values defined on the client or passed to this method.
2016+
extra_headers: Headers | None = None,
2017+
extra_query: Query | None = None,
2018+
extra_body: Body | None = None,
2019+
timeout: float | httpx.Timeout | None | NotGiven = not_given,
2020+
idempotency_key: str | None = None,
2021+
) -> None:
2022+
"""
2023+
Unsets the preference set for the object, removing it entirely.
2024+
2025+
Args:
2026+
extra_headers: Send extra headers
2027+
2028+
extra_query: Add additional query parameters to the request
2029+
2030+
extra_body: Add additional JSON properties to the request
2031+
2032+
timeout: Override the client-level default timeout for this request, in seconds
2033+
2034+
idempotency_key: Specify a custom idempotency key for this request
2035+
"""
2036+
if not collection:
2037+
raise ValueError(f"Expected a non-empty value for `collection` but received {collection!r}")
2038+
if not object_id:
2039+
raise ValueError(f"Expected a non-empty value for `object_id` but received {object_id!r}")
2040+
if not id:
2041+
raise ValueError(f"Expected a non-empty value for `id` but received {id!r}")
2042+
extra_headers = {"Accept": "*/*", **(extra_headers or {})}
2043+
return await self._delete(
2044+
path_template(
2045+
"/v1/objects/{collection}/{object_id}/preferences/{id}",
2046+
collection=collection,
2047+
object_id=object_id,
2048+
id=id,
2049+
),
2050+
options=make_request_options(
2051+
extra_headers=extra_headers,
2052+
extra_query=extra_query,
2053+
extra_body=extra_body,
2054+
timeout=timeout,
2055+
idempotency_key=idempotency_key,
2056+
),
2057+
cast_to=NoneType,
2058+
)
2059+
19562060

19572061
class ObjectsResourceWithRawResponse:
19582062
def __init__(self, objects: ObjectsResource) -> None:
@@ -2003,6 +2107,9 @@ def __init__(self, objects: ObjectsResource) -> None:
20032107
self.unset_channel_data = to_raw_response_wrapper(
20042108
objects.unset_channel_data,
20052109
)
2110+
self.unset_preferences = to_raw_response_wrapper(
2111+
objects.unset_preferences,
2112+
)
20062113

20072114
@cached_property
20082115
def bulk(self) -> BulkResourceWithRawResponse:
@@ -2061,6 +2168,9 @@ def __init__(self, objects: AsyncObjectsResource) -> None:
20612168
self.unset_channel_data = async_to_raw_response_wrapper(
20622169
objects.unset_channel_data,
20632170
)
2171+
self.unset_preferences = async_to_raw_response_wrapper(
2172+
objects.unset_preferences,
2173+
)
20642174

20652175
@cached_property
20662176
def bulk(self) -> AsyncBulkResourceWithRawResponse:
@@ -2119,6 +2229,9 @@ def __init__(self, objects: ObjectsResource) -> None:
21192229
self.unset_channel_data = to_streamed_response_wrapper(
21202230
objects.unset_channel_data,
21212231
)
2232+
self.unset_preferences = to_streamed_response_wrapper(
2233+
objects.unset_preferences,
2234+
)
21222235

21232236
@cached_property
21242237
def bulk(self) -> BulkResourceWithStreamingResponse:
@@ -2177,6 +2290,9 @@ def __init__(self, objects: AsyncObjectsResource) -> None:
21772290
self.unset_channel_data = async_to_streamed_response_wrapper(
21782291
objects.unset_channel_data,
21792292
)
2293+
self.unset_preferences = async_to_streamed_response_wrapper(
2294+
objects.unset_preferences,
2295+
)
21802296

21812297
@cached_property
21822298
def bulk(self) -> AsyncBulkResourceWithStreamingResponse:

src/knockapi/resources/users/users.py

Lines changed: 100 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -903,6 +903,50 @@ def unset_channel_data(
903903
cast_to=NoneType,
904904
)
905905

906+
def unset_preferences(
907+
self,
908+
user_id: str,
909+
id: str,
910+
*,
911+
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
912+
# The extra values given here take precedence over values defined on the client or passed to this method.
913+
extra_headers: Headers | None = None,
914+
extra_query: Query | None = None,
915+
extra_body: Body | None = None,
916+
timeout: float | httpx.Timeout | None | NotGiven = not_given,
917+
idempotency_key: str | None = None,
918+
) -> None:
919+
"""
920+
Unsets the preference set for the user, removing it entirely.
921+
922+
Args:
923+
extra_headers: Send extra headers
924+
925+
extra_query: Add additional query parameters to the request
926+
927+
extra_body: Add additional JSON properties to the request
928+
929+
timeout: Override the client-level default timeout for this request, in seconds
930+
931+
idempotency_key: Specify a custom idempotency key for this request
932+
"""
933+
if not user_id:
934+
raise ValueError(f"Expected a non-empty value for `user_id` but received {user_id!r}")
935+
if not id:
936+
raise ValueError(f"Expected a non-empty value for `id` but received {id!r}")
937+
extra_headers = {"Accept": "*/*", **(extra_headers or {})}
938+
return self._delete(
939+
path_template("/v1/users/{user_id}/preferences/{id}", user_id=user_id, id=id),
940+
options=make_request_options(
941+
extra_headers=extra_headers,
942+
extra_query=extra_query,
943+
extra_body=extra_body,
944+
timeout=timeout,
945+
idempotency_key=idempotency_key,
946+
),
947+
cast_to=NoneType,
948+
)
949+
906950

907951
class AsyncUsersResource(AsyncAPIResource):
908952
"""A user is an individual from your system, represented in Knock.
@@ -1739,6 +1783,50 @@ async def unset_channel_data(
17391783
cast_to=NoneType,
17401784
)
17411785

1786+
async def unset_preferences(
1787+
self,
1788+
user_id: str,
1789+
id: str,
1790+
*,
1791+
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
1792+
# The extra values given here take precedence over values defined on the client or passed to this method.
1793+
extra_headers: Headers | None = None,
1794+
extra_query: Query | None = None,
1795+
extra_body: Body | None = None,
1796+
timeout: float | httpx.Timeout | None | NotGiven = not_given,
1797+
idempotency_key: str | None = None,
1798+
) -> None:
1799+
"""
1800+
Unsets the preference set for the user, removing it entirely.
1801+
1802+
Args:
1803+
extra_headers: Send extra headers
1804+
1805+
extra_query: Add additional query parameters to the request
1806+
1807+
extra_body: Add additional JSON properties to the request
1808+
1809+
timeout: Override the client-level default timeout for this request, in seconds
1810+
1811+
idempotency_key: Specify a custom idempotency key for this request
1812+
"""
1813+
if not user_id:
1814+
raise ValueError(f"Expected a non-empty value for `user_id` but received {user_id!r}")
1815+
if not id:
1816+
raise ValueError(f"Expected a non-empty value for `id` but received {id!r}")
1817+
extra_headers = {"Accept": "*/*", **(extra_headers or {})}
1818+
return await self._delete(
1819+
path_template("/v1/users/{user_id}/preferences/{id}", user_id=user_id, id=id),
1820+
options=make_request_options(
1821+
extra_headers=extra_headers,
1822+
extra_query=extra_query,
1823+
extra_body=extra_body,
1824+
timeout=timeout,
1825+
idempotency_key=idempotency_key,
1826+
),
1827+
cast_to=NoneType,
1828+
)
1829+
17421830

17431831
class UsersResourceWithRawResponse:
17441832
def __init__(self, users: UsersResource) -> None:
@@ -1786,6 +1874,9 @@ def __init__(self, users: UsersResource) -> None:
17861874
self.unset_channel_data = to_raw_response_wrapper(
17871875
users.unset_channel_data,
17881876
)
1877+
self.unset_preferences = to_raw_response_wrapper(
1878+
users.unset_preferences,
1879+
)
17891880

17901881
@cached_property
17911882
def feeds(self) -> FeedsResourceWithRawResponse:
@@ -1857,6 +1948,9 @@ def __init__(self, users: AsyncUsersResource) -> None:
18571948
self.unset_channel_data = async_to_raw_response_wrapper(
18581949
users.unset_channel_data,
18591950
)
1951+
self.unset_preferences = async_to_raw_response_wrapper(
1952+
users.unset_preferences,
1953+
)
18601954

18611955
@cached_property
18621956
def feeds(self) -> AsyncFeedsResourceWithRawResponse:
@@ -1928,6 +2022,9 @@ def __init__(self, users: UsersResource) -> None:
19282022
self.unset_channel_data = to_streamed_response_wrapper(
19292023
users.unset_channel_data,
19302024
)
2025+
self.unset_preferences = to_streamed_response_wrapper(
2026+
users.unset_preferences,
2027+
)
19312028

19322029
@cached_property
19332030
def feeds(self) -> FeedsResourceWithStreamingResponse:
@@ -1999,6 +2096,9 @@ def __init__(self, users: AsyncUsersResource) -> None:
19992096
self.unset_channel_data = async_to_streamed_response_wrapper(
20002097
users.unset_channel_data,
20012098
)
2099+
self.unset_preferences = async_to_streamed_response_wrapper(
2100+
users.unset_preferences,
2101+
)
20022102

20032103
@cached_property
20042104
def feeds(self) -> AsyncFeedsResourceWithStreamingResponse:

0 commit comments

Comments
 (0)