5454from ...types .queues import queue_edit_params , queue_create_params , queue_update_params
5555from ...types .queues .queue import Queue
5656from ...types .queues .queue_delete_response import QueueDeleteResponse
57+ from ...types .queues .queue_get_metrics_response import QueueGetMetricsResponse
5758
5859__all__ = ["QueuesResource" , "AsyncQueuesResource" ]
5960
@@ -364,6 +365,52 @@ def get(
364365 cast_to = cast (Type [Optional [Queue ]], ResultWrapper [Queue ]),
365366 )
366367
368+ def get_metrics (
369+ self ,
370+ queue_id : str ,
371+ * ,
372+ account_id : str ,
373+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
374+ # The extra values given here take precedence over values defined on the client or passed to this method.
375+ extra_headers : Headers | None = None ,
376+ extra_query : Query | None = None ,
377+ extra_body : Body | None = None ,
378+ timeout : float | httpx .Timeout | None | NotGiven = not_given ,
379+ ) -> Optional [QueueGetMetricsResponse ]:
380+ """Return best-effort metrics for a queue.
381+
382+ Values may be approximate due to the
383+ distributed nature of queues.
384+
385+ Args:
386+ account_id: A Resource identifier.
387+
388+ queue_id: A Resource identifier.
389+
390+ extra_headers: Send extra headers
391+
392+ extra_query: Add additional query parameters to the request
393+
394+ extra_body: Add additional JSON properties to the request
395+
396+ timeout: Override the client-level default timeout for this request, in seconds
397+ """
398+ if not account_id :
399+ raise ValueError (f"Expected a non-empty value for `account_id` but received { account_id !r} " )
400+ if not queue_id :
401+ raise ValueError (f"Expected a non-empty value for `queue_id` but received { queue_id !r} " )
402+ return self ._get (
403+ path_template ("/accounts/{account_id}/queues/{queue_id}/metrics" , account_id = account_id , queue_id = queue_id ),
404+ options = make_request_options (
405+ extra_headers = extra_headers ,
406+ extra_query = extra_query ,
407+ extra_body = extra_body ,
408+ timeout = timeout ,
409+ post_parser = ResultWrapper [Optional [QueueGetMetricsResponse ]]._unwrapper ,
410+ ),
411+ cast_to = cast (Type [Optional [QueueGetMetricsResponse ]], ResultWrapper [QueueGetMetricsResponse ]),
412+ )
413+
367414
368415class AsyncQueuesResource (AsyncAPIResource ):
369416 @cached_property
@@ -671,6 +718,52 @@ async def get(
671718 cast_to = cast (Type [Optional [Queue ]], ResultWrapper [Queue ]),
672719 )
673720
721+ async def get_metrics (
722+ self ,
723+ queue_id : str ,
724+ * ,
725+ account_id : str ,
726+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
727+ # The extra values given here take precedence over values defined on the client or passed to this method.
728+ extra_headers : Headers | None = None ,
729+ extra_query : Query | None = None ,
730+ extra_body : Body | None = None ,
731+ timeout : float | httpx .Timeout | None | NotGiven = not_given ,
732+ ) -> Optional [QueueGetMetricsResponse ]:
733+ """Return best-effort metrics for a queue.
734+
735+ Values may be approximate due to the
736+ distributed nature of queues.
737+
738+ Args:
739+ account_id: A Resource identifier.
740+
741+ queue_id: A Resource identifier.
742+
743+ extra_headers: Send extra headers
744+
745+ extra_query: Add additional query parameters to the request
746+
747+ extra_body: Add additional JSON properties to the request
748+
749+ timeout: Override the client-level default timeout for this request, in seconds
750+ """
751+ if not account_id :
752+ raise ValueError (f"Expected a non-empty value for `account_id` but received { account_id !r} " )
753+ if not queue_id :
754+ raise ValueError (f"Expected a non-empty value for `queue_id` but received { queue_id !r} " )
755+ return await self ._get (
756+ path_template ("/accounts/{account_id}/queues/{queue_id}/metrics" , account_id = account_id , queue_id = queue_id ),
757+ options = make_request_options (
758+ extra_headers = extra_headers ,
759+ extra_query = extra_query ,
760+ extra_body = extra_body ,
761+ timeout = timeout ,
762+ post_parser = ResultWrapper [Optional [QueueGetMetricsResponse ]]._unwrapper ,
763+ ),
764+ cast_to = cast (Type [Optional [QueueGetMetricsResponse ]], ResultWrapper [QueueGetMetricsResponse ]),
765+ )
766+
674767
675768class QueuesResourceWithRawResponse :
676769 def __init__ (self , queues : QueuesResource ) -> None :
@@ -694,6 +787,9 @@ def __init__(self, queues: QueuesResource) -> None:
694787 self .get = to_raw_response_wrapper (
695788 queues .get ,
696789 )
790+ self .get_metrics = to_raw_response_wrapper (
791+ queues .get_metrics ,
792+ )
697793
698794 @cached_property
699795 def messages (self ) -> MessagesResourceWithRawResponse :
@@ -734,6 +830,9 @@ def __init__(self, queues: AsyncQueuesResource) -> None:
734830 self .get = async_to_raw_response_wrapper (
735831 queues .get ,
736832 )
833+ self .get_metrics = async_to_raw_response_wrapper (
834+ queues .get_metrics ,
835+ )
737836
738837 @cached_property
739838 def messages (self ) -> AsyncMessagesResourceWithRawResponse :
@@ -774,6 +873,9 @@ def __init__(self, queues: QueuesResource) -> None:
774873 self .get = to_streamed_response_wrapper (
775874 queues .get ,
776875 )
876+ self .get_metrics = to_streamed_response_wrapper (
877+ queues .get_metrics ,
878+ )
777879
778880 @cached_property
779881 def messages (self ) -> MessagesResourceWithStreamingResponse :
@@ -814,6 +916,9 @@ def __init__(self, queues: AsyncQueuesResource) -> None:
814916 self .get = async_to_streamed_response_wrapper (
815917 queues .get ,
816918 )
919+ self .get_metrics = async_to_streamed_response_wrapper (
920+ queues .get_metrics ,
921+ )
817922
818923 @cached_property
819924 def messages (self ) -> AsyncMessagesResourceWithStreamingResponse :
0 commit comments