22
33from __future__ import annotations
44
5+ from typing import List
6+ from typing_extensions import Literal
7+
58import httpx
69
710from ..._types import Body , Omit , Query , Headers , NotGiven , omit , not_given
1518 async_to_streamed_response_wrapper ,
1619)
1720from ..._streaming import Stream , AsyncStream
18- from ..._base_client import make_request_options
19- from ...types .browsers import telemetry_stream_params
21+ from ...pagination import SyncOffsetPagination , AsyncOffsetPagination
22+ from ..._base_client import AsyncPaginator , make_request_options
23+ from ...types .browsers import telemetry_events_params , telemetry_stream_params
24+ from ...types .browsers .telemetry_events_response import TelemetryEventsResponse
2025from ...types .browsers .telemetry_stream_response import TelemetryStreamResponse
2126
2227__all__ = ["TelemetryResource" , "AsyncTelemetryResource" ]
@@ -44,6 +49,91 @@ def with_streaming_response(self) -> TelemetryResourceWithStreamingResponse:
4449 """
4550 return TelemetryResourceWithStreamingResponse (self )
4651
52+ def events (
53+ self ,
54+ id : str ,
55+ * ,
56+ category : List [
57+ Literal [
58+ "console" ,
59+ "network" ,
60+ "page" ,
61+ "interaction" ,
62+ "control" ,
63+ "connection" ,
64+ "system" ,
65+ "screenshot" ,
66+ "captcha" ,
67+ "monitor" ,
68+ ]
69+ ]
70+ | Omit = omit ,
71+ limit : int | Omit = omit ,
72+ offset : int | Omit = omit ,
73+ since : str | Omit = omit ,
74+ until : str | Omit = omit ,
75+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
76+ # The extra values given here take precedence over values defined on the client or passed to this method.
77+ extra_headers : Headers | None = None ,
78+ extra_query : Query | None = None ,
79+ extra_body : Body | None = None ,
80+ timeout : float | httpx .Timeout | None | NotGiven = not_given ,
81+ ) -> SyncOffsetPagination [TelemetryEventsResponse ]:
82+ """
83+ Reads a page of telemetry events for the browser session in ascending sequence
84+ order. To page through results, pass the X-Next-Offset value from the previous
85+ response as offset and repeat while X-Has-More is true. Returns an empty list
86+ when telemetry data is unavailable.
87+
88+ Args:
89+ category: Restrict results to these event categories. Repeat the parameter for multiple
90+ values.
91+
92+ limit: Maximum number of events per page. Defaults to 20.
93+
94+ offset: Opaque pagination cursor: pass the X-Next-Offset value from the previous
95+ response to fetch the next page. When set, paging continues from this cursor and
96+ since is ignored, while until still bounds the page. It is not an event's seq
97+ field, so do not derive it from the response body.
98+
99+ since: Start of the window: an RFC-3339 timestamp, or a duration like 5m meaning that
100+ long ago. Defaults to 5m. Ignored when offset is set.
101+
102+ until: End of the window (exclusive): an RFC-3339 timestamp, or a duration like 5m
103+ meaning that long ago.
104+
105+ extra_headers: Send extra headers
106+
107+ extra_query: Add additional query parameters to the request
108+
109+ extra_body: Add additional JSON properties to the request
110+
111+ timeout: Override the client-level default timeout for this request, in seconds
112+ """
113+ if not id :
114+ raise ValueError (f"Expected a non-empty value for `id` but received { id !r} " )
115+ return self ._get_api_list (
116+ path_template ("/browsers/{id}/telemetry/events" , id = id ),
117+ page = SyncOffsetPagination [TelemetryEventsResponse ],
118+ options = make_request_options (
119+ extra_headers = extra_headers ,
120+ extra_query = extra_query ,
121+ extra_body = extra_body ,
122+ timeout = timeout ,
123+ query = maybe_transform (
124+ {
125+ "category" : category ,
126+ "limit" : limit ,
127+ "offset" : offset ,
128+ "since" : since ,
129+ "until" : until ,
130+ },
131+ telemetry_events_params .TelemetryEventsParams ,
132+ ),
133+ ),
134+ model = TelemetryEventsResponse ,
135+ )
136+
47137 def stream (
48138 self ,
49139 id : str ,
@@ -123,6 +213,91 @@ def with_streaming_response(self) -> AsyncTelemetryResourceWithStreamingResponse
123213 """
124214 return AsyncTelemetryResourceWithStreamingResponse (self )
125215
216+ def events (
217+ self ,
218+ id : str ,
219+ * ,
220+ category : List [
221+ Literal [
222+ "console" ,
223+ "network" ,
224+ "page" ,
225+ "interaction" ,
226+ "control" ,
227+ "connection" ,
228+ "system" ,
229+ "screenshot" ,
230+ "captcha" ,
231+ "monitor" ,
232+ ]
233+ ]
234+ | Omit = omit ,
235+ limit : int | Omit = omit ,
236+ offset : int | Omit = omit ,
237+ since : str | Omit = omit ,
238+ until : str | Omit = omit ,
239+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
240+ # The extra values given here take precedence over values defined on the client or passed to this method.
241+ extra_headers : Headers | None = None ,
242+ extra_query : Query | None = None ,
243+ extra_body : Body | None = None ,
244+ timeout : float | httpx .Timeout | None | NotGiven = not_given ,
245+ ) -> AsyncPaginator [TelemetryEventsResponse , AsyncOffsetPagination [TelemetryEventsResponse ]]:
246+ """
247+ Reads a page of telemetry events for the browser session in ascending sequence
248+ order. To page through results, pass the X-Next-Offset value from the previous
249+ response as offset and repeat while X-Has-More is true. Returns an empty list
250+ when telemetry data is unavailable.
251+
252+ Args:
253+ category: Restrict results to these event categories. Repeat the parameter for multiple
254+ values.
255+
256+ limit: Maximum number of events per page. Defaults to 20.
257+
258+ offset: Opaque pagination cursor: pass the X-Next-Offset value from the previous
259+ response to fetch the next page. When set, paging continues from this cursor and
260+ since is ignored, while until still bounds the page. It is not an event's seq
261+ field, so do not derive it from the response body.
262+
263+ since: Start of the window: an RFC-3339 timestamp, or a duration like 5m meaning that
264+ long ago. Defaults to 5m. Ignored when offset is set.
265+
266+ until: End of the window (exclusive): an RFC-3339 timestamp, or a duration like 5m
267+ meaning that long ago.
268+
269+ extra_headers: Send extra headers
270+
271+ extra_query: Add additional query parameters to the request
272+
273+ extra_body: Add additional JSON properties to the request
274+
275+ timeout: Override the client-level default timeout for this request, in seconds
276+ """
277+ if not id :
278+ raise ValueError (f"Expected a non-empty value for `id` but received { id !r} " )
279+ return self ._get_api_list (
280+ path_template ("/browsers/{id}/telemetry/events" , id = id ),
281+ page = AsyncOffsetPagination [TelemetryEventsResponse ],
282+ options = make_request_options (
283+ extra_headers = extra_headers ,
284+ extra_query = extra_query ,
285+ extra_body = extra_body ,
286+ timeout = timeout ,
287+ query = maybe_transform (
288+ {
289+ "category" : category ,
290+ "limit" : limit ,
291+ "offset" : offset ,
292+ "since" : since ,
293+ "until" : until ,
294+ },
295+ telemetry_events_params .TelemetryEventsParams ,
296+ ),
297+ ),
298+ model = TelemetryEventsResponse ,
299+ )
300+
126301 async def stream (
127302 self ,
128303 id : str ,
@@ -184,6 +359,9 @@ class TelemetryResourceWithRawResponse:
184359 def __init__ (self , telemetry : TelemetryResource ) -> None :
185360 self ._telemetry = telemetry
186361
362+ self .events = to_raw_response_wrapper (
363+ telemetry .events ,
364+ )
187365 self .stream = to_raw_response_wrapper (
188366 telemetry .stream ,
189367 )
@@ -193,6 +371,9 @@ class AsyncTelemetryResourceWithRawResponse:
193371 def __init__ (self , telemetry : AsyncTelemetryResource ) -> None :
194372 self ._telemetry = telemetry
195373
374+ self .events = async_to_raw_response_wrapper (
375+ telemetry .events ,
376+ )
196377 self .stream = async_to_raw_response_wrapper (
197378 telemetry .stream ,
198379 )
@@ -202,6 +383,9 @@ class TelemetryResourceWithStreamingResponse:
202383 def __init__ (self , telemetry : TelemetryResource ) -> None :
203384 self ._telemetry = telemetry
204385
386+ self .events = to_streamed_response_wrapper (
387+ telemetry .events ,
388+ )
205389 self .stream = to_streamed_response_wrapper (
206390 telemetry .stream ,
207391 )
@@ -211,6 +395,9 @@ class AsyncTelemetryResourceWithStreamingResponse:
211395 def __init__ (self , telemetry : AsyncTelemetryResource ) -> None :
212396 self ._telemetry = telemetry
213397
398+ self .events = async_to_streamed_response_wrapper (
399+ telemetry .events ,
400+ )
214401 self .stream = async_to_streamed_response_wrapper (
215402 telemetry .stream ,
216403 )
0 commit comments