# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from __future__ import annotations import httpx from ..._types import Body, Query, Headers, NotGiven, not_given from ..._utils import path_template from ..._compat import cached_property from ..._resource import SyncAPIResource, AsyncAPIResource from ..._response import ( to_raw_response_wrapper, to_streamed_response_wrapper, async_to_raw_response_wrapper, async_to_streamed_response_wrapper, ) from ..._base_client import make_request_options from ...types.agent.session_check_redirect_response import SessionCheckRedirectResponse __all__ = ["SessionsResource", "AsyncSessionsResource"] class SessionsResource(SyncAPIResource): """Operations for running and managing cloud agents""" @cached_property def with_raw_response(self) -> SessionsResourceWithRawResponse: """ This property can be used as a prefix for any HTTP method call to return the raw response object instead of the parsed content. For more information, see https://www.github.com/warpdotdev/oz-sdk-python#accessing-raw-response-data-eg-headers """ return SessionsResourceWithRawResponse(self) @cached_property def with_streaming_response(self) -> SessionsResourceWithStreamingResponse: """ An alternative to `.with_raw_response` that doesn't eagerly read the response body. For more information, see https://www.github.com/warpdotdev/oz-sdk-python#with_streaming_response """ return SessionsResourceWithStreamingResponse(self) def check_redirect( self, session_uuid: str, *, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, extra_query: Query | None = None, extra_body: Body | None = None, timeout: float | httpx.Timeout | None | NotGiven = not_given, ) -> SessionCheckRedirectResponse: """ Check whether a shared session should redirect to a conversation transcript. Returns a conversation_id if the agent sandbox has finished and conversation data is available, or an empty object if no redirect is needed. This endpoint is public (no authentication required) so that anonymous viewers can resolve a publicly-shared session link before signing in. Access to the underlying conversation transcript is still gated by conversation link-sharing. Args: extra_headers: Send extra headers extra_query: Add additional query parameters to the request extra_body: Add additional JSON properties to the request timeout: Override the client-level default timeout for this request, in seconds """ if not session_uuid: raise ValueError(f"Expected a non-empty value for `session_uuid` but received {session_uuid!r}") return self._get( path_template("/agent/sessions/{session_uuid}/redirect", session_uuid=session_uuid), options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout, security={}, ), cast_to=SessionCheckRedirectResponse, ) class AsyncSessionsResource(AsyncAPIResource): """Operations for running and managing cloud agents""" @cached_property def with_raw_response(self) -> AsyncSessionsResourceWithRawResponse: """ This property can be used as a prefix for any HTTP method call to return the raw response object instead of the parsed content. For more information, see https://www.github.com/warpdotdev/oz-sdk-python#accessing-raw-response-data-eg-headers """ return AsyncSessionsResourceWithRawResponse(self) @cached_property def with_streaming_response(self) -> AsyncSessionsResourceWithStreamingResponse: """ An alternative to `.with_raw_response` that doesn't eagerly read the response body. For more information, see https://www.github.com/warpdotdev/oz-sdk-python#with_streaming_response """ return AsyncSessionsResourceWithStreamingResponse(self) async def check_redirect( self, session_uuid: str, *, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, extra_query: Query | None = None, extra_body: Body | None = None, timeout: float | httpx.Timeout | None | NotGiven = not_given, ) -> SessionCheckRedirectResponse: """ Check whether a shared session should redirect to a conversation transcript. Returns a conversation_id if the agent sandbox has finished and conversation data is available, or an empty object if no redirect is needed. This endpoint is public (no authentication required) so that anonymous viewers can resolve a publicly-shared session link before signing in. Access to the underlying conversation transcript is still gated by conversation link-sharing. Args: extra_headers: Send extra headers extra_query: Add additional query parameters to the request extra_body: Add additional JSON properties to the request timeout: Override the client-level default timeout for this request, in seconds """ if not session_uuid: raise ValueError(f"Expected a non-empty value for `session_uuid` but received {session_uuid!r}") return await self._get( path_template("/agent/sessions/{session_uuid}/redirect", session_uuid=session_uuid), options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout, security={}, ), cast_to=SessionCheckRedirectResponse, ) class SessionsResourceWithRawResponse: def __init__(self, sessions: SessionsResource) -> None: self._sessions = sessions self.check_redirect = to_raw_response_wrapper( sessions.check_redirect, ) class AsyncSessionsResourceWithRawResponse: def __init__(self, sessions: AsyncSessionsResource) -> None: self._sessions = sessions self.check_redirect = async_to_raw_response_wrapper( sessions.check_redirect, ) class SessionsResourceWithStreamingResponse: def __init__(self, sessions: SessionsResource) -> None: self._sessions = sessions self.check_redirect = to_streamed_response_wrapper( sessions.check_redirect, ) class AsyncSessionsResourceWithStreamingResponse: def __init__(self, sessions: AsyncSessionsResource) -> None: self._sessions = sessions self.check_redirect = async_to_streamed_response_wrapper( sessions.check_redirect, )