2020from .._base_client import make_request_options
2121from ..types .contact_list_response import ContactListResponse
2222from ..types .api_response_of_contact import APIResponseOfContact
23+ from ..types .api_response_of_contact_message_summary import APIResponseOfContactMessageSummary
2324
2425__all__ = ["ContactsResource" , "AsyncContactsResource" ]
2526
@@ -310,6 +311,44 @@ def delete(
310311 cast_to = NoneType ,
311312 )
312313
314+ def retrieve_message_summary (
315+ self ,
316+ contact_id : str ,
317+ * ,
318+ x_profile_id : str | Omit = omit ,
319+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
320+ # The extra values given here take precedence over values defined on the client or passed to this method.
321+ extra_headers : Headers | None = None ,
322+ extra_query : Query | None = None ,
323+ extra_body : Body | None = None ,
324+ timeout : float | httpx .Timeout | None | NotGiven = not_given ,
325+ ) -> APIResponseOfContactMessageSummary :
326+ """
327+ Returns aggregate message counts, time bounds, channels used, and per-channel
328+ success/fail scores (each as a percentage 0-100 of messages on that channel) for
329+ one of your contacts. Successful terminal states: SENT/DELIVERED/READ for
330+ outbound, RECEIVED for inbound. Fail: FAILED.
331+
332+ Args:
333+ extra_headers: Send extra headers
334+
335+ extra_query: Add additional query parameters to the request
336+
337+ extra_body: Add additional JSON properties to the request
338+
339+ timeout: Override the client-level default timeout for this request, in seconds
340+ """
341+ if not contact_id :
342+ raise ValueError (f"Expected a non-empty value for `contact_id` but received { contact_id !r} " )
343+ extra_headers = {** strip_not_given ({"x-profile-id" : x_profile_id }), ** (extra_headers or {})}
344+ return self ._get (
345+ path_template ("/v3/contacts/{contact_id}/message-summary" , contact_id = contact_id ),
346+ options = make_request_options (
347+ extra_headers = extra_headers , extra_query = extra_query , extra_body = extra_body , timeout = timeout
348+ ),
349+ cast_to = APIResponseOfContactMessageSummary ,
350+ )
351+
313352
314353class AsyncContactsResource (AsyncAPIResource ):
315354 """Create, update, and manage customer contact lists"""
@@ -597,6 +636,44 @@ async def delete(
597636 cast_to = NoneType ,
598637 )
599638
639+ async def retrieve_message_summary (
640+ self ,
641+ contact_id : str ,
642+ * ,
643+ x_profile_id : str | Omit = omit ,
644+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
645+ # The extra values given here take precedence over values defined on the client or passed to this method.
646+ extra_headers : Headers | None = None ,
647+ extra_query : Query | None = None ,
648+ extra_body : Body | None = None ,
649+ timeout : float | httpx .Timeout | None | NotGiven = not_given ,
650+ ) -> APIResponseOfContactMessageSummary :
651+ """
652+ Returns aggregate message counts, time bounds, channels used, and per-channel
653+ success/fail scores (each as a percentage 0-100 of messages on that channel) for
654+ one of your contacts. Successful terminal states: SENT/DELIVERED/READ for
655+ outbound, RECEIVED for inbound. Fail: FAILED.
656+
657+ Args:
658+ extra_headers: Send extra headers
659+
660+ extra_query: Add additional query parameters to the request
661+
662+ extra_body: Add additional JSON properties to the request
663+
664+ timeout: Override the client-level default timeout for this request, in seconds
665+ """
666+ if not contact_id :
667+ raise ValueError (f"Expected a non-empty value for `contact_id` but received { contact_id !r} " )
668+ extra_headers = {** strip_not_given ({"x-profile-id" : x_profile_id }), ** (extra_headers or {})}
669+ return await self ._get (
670+ path_template ("/v3/contacts/{contact_id}/message-summary" , contact_id = contact_id ),
671+ options = make_request_options (
672+ extra_headers = extra_headers , extra_query = extra_query , extra_body = extra_body , timeout = timeout
673+ ),
674+ cast_to = APIResponseOfContactMessageSummary ,
675+ )
676+
600677
601678class ContactsResourceWithRawResponse :
602679 def __init__ (self , contacts : ContactsResource ) -> None :
@@ -617,6 +694,9 @@ def __init__(self, contacts: ContactsResource) -> None:
617694 self .delete = to_raw_response_wrapper (
618695 contacts .delete ,
619696 )
697+ self .retrieve_message_summary = to_raw_response_wrapper (
698+ contacts .retrieve_message_summary ,
699+ )
620700
621701
622702class AsyncContactsResourceWithRawResponse :
@@ -638,6 +718,9 @@ def __init__(self, contacts: AsyncContactsResource) -> None:
638718 self .delete = async_to_raw_response_wrapper (
639719 contacts .delete ,
640720 )
721+ self .retrieve_message_summary = async_to_raw_response_wrapper (
722+ contacts .retrieve_message_summary ,
723+ )
641724
642725
643726class ContactsResourceWithStreamingResponse :
@@ -659,6 +742,9 @@ def __init__(self, contacts: ContactsResource) -> None:
659742 self .delete = to_streamed_response_wrapper (
660743 contacts .delete ,
661744 )
745+ self .retrieve_message_summary = to_streamed_response_wrapper (
746+ contacts .retrieve_message_summary ,
747+ )
662748
663749
664750class AsyncContactsResourceWithStreamingResponse :
@@ -680,3 +766,6 @@ def __init__(self, contacts: AsyncContactsResource) -> None:
680766 self .delete = async_to_streamed_response_wrapper (
681767 contacts .delete ,
682768 )
769+ self .retrieve_message_summary = async_to_streamed_response_wrapper (
770+ contacts .retrieve_message_summary ,
771+ )
0 commit comments