
    ]j                         d dl Z d dlmZ ddlmZ ddlmZmZ ddlm	Z	m
Z
 ddlmZ ddlmZ dd	lmZ  e j"                  e j$                  d
      Z G d d      Z G d d      Zy)    N)JSONDecodeError   )ApiError)AsyncClientWrapperSyncClientWrapper)AsyncHttpResponseHttpResponse)RequestOptions)construct_type)SessionTimeoutPolicy.c            
           e Zd ZdefdZdddej                  e   dee	   fdZ
eeddd	ej                  e   d
ej                  e   dej                  e   dee	   fdZy)RawSessionPolicyClientclient_wrapperc                    || _         y N_client_wrapperselfr   s     T/root/env/lib/python3.12/site-packages/label_studio_sdk/session_policy/raw_client.py__init__zRawSessionPolicyClient.__init__   
    -    Nrequest_optionsr   returnc                   | j                   j                  j                  dd|      }	 d|j                  cxk  rdk  rGn nDt	        j
                  t        t        t        |j                                     }t        ||      S |j                         }t        |j                  t        |j                        |      # t        $ r6 t        |j                  t        |j                        |j                        w xY w)	a2  
        Retrieve session timeout policy for the currently active organization.

        Parameters
        ----------
        request_options : typing.Optional[RequestOptions]
            Request-specific configuration.

        Returns
        -------
        HttpResponse[SessionTimeoutPolicy]

        api/session-policy/GETmethodr      ,  type_object_responsedatastatus_codeheadersbody)r   httpx_clientrequestr+   typingcastr   r   jsonr	   r   r   dictr,   textr   r   	_response_data_response_jsons        r   getzRawSessionPolicyClient.get   s     ((55==!+ > 
	
	ti++1c1("2 ) 0 $YUCC&^^-N 9#8#8$yGXGXBY`noo  	ty'<'<d9K\K\F]dmdrdrss	ts   AC C ?D max_session_agemax_time_between_activityr   r;   r<   c                   | j                   j                  j                  dd||dddi|t              }	 d|j                  cxk  rdk  rGn nDt        j                  t        t        t        |j                         	            }t        ||
      S |j                         }t        |j                  t        |j                        |      # t        $ r6 t        |j                  t        |j                        |j                        w xY w)a?  
        Update session timeout policy for the currently active organization.

        Parameters
        ----------
        max_session_age : typing.Optional[int]
            Number of minutes that a session can be active before needing to re-login

        max_time_between_activity : typing.Optional[int]
            Number of minutes that a session stays active without any activity

        request_options : typing.Optional[RequestOptions]
            Request-specific configuration.

        Returns
        -------
        HttpResponse[SessionTimeoutPolicy]

        r   PATCHr;   r<   content-typeapplication/jsonr!   r2   r,   r   omitr"   r#   r$   r'   r*   )r   r.   r/   OMITr+   r0   r1   r   r   r2   r	   r   r   r3   r,   r4   r   r;   r<   r   r6   r7   r8   s          r   updatezRawSessionPolicyClient.update7   s   4 ((55==!#2-F
  2 , > 
		ti++1c1("2 ) 0 $YUCC&^^-N 9#8#8$yGXGXBY`noo  	ty'<'<d9K\K\F]dmdrdrss	ts   AC C ?D)__name__
__module____qualname__r   r   r0   Optionalr
   r	   r   r9   rD   intrF    r   r   r   r      s    .*; . IM  pfoon&E  pQ]^rQs  pJ 15:>;?4p  -4p $*??3#7	4p
  84p 
*	+4pr   r   c            
           e Zd ZdefdZdddej                  e   dee	   fdZ
eeddd	ej                  e   d
ej                  e   dej                  e   dee	   fdZy)AsyncRawSessionPolicyClientr   c                    || _         y r   r   r   s     r   r   z$AsyncRawSessionPolicyClient.__init__o   r   r   Nr   r   r   c                "  K   | j                   j                  j                  dd|       d{   }	 d|j                  cxk  rdk  rGn nDt	        j
                  t        t        t        |j                                     }t        ||      S |j                         }t        |j                  t        |j                        |	      7 # t        $ r6 t        |j                  t        |j                        |j                  	      w xY ww)
a7  
        Retrieve session timeout policy for the currently active organization.

        Parameters
        ----------
        request_options : typing.Optional[RequestOptions]
            Request-specific configuration.

        Returns
        -------
        AsyncHttpResponse[SessionTimeoutPolicy]

        r   r   r    Nr"   r#   r$   r'   r*   )r   r.   r/   r+   r0   r1   r   r   r2   r   r   r   r3   r,   r4   r5   s        r   r9   zAsyncRawSessionPolicyClient.getr   s       ..;;CC!+ D 
 
	
	ti++1c1("2 ) 0 ))%HH&^^-N 9#8#8$yGXGXBY`noo%
   	ty'<'<d9K\K\F]dmdrdrss	ts3   ,DCDAC DC  ,D?DDr:   r;   r<   c                :  K   | j                   j                  j                  dd||dddi|t               d{   }	 d|j                  cxk  rd	k  rGn nDt        j                  t        t        t        |j                         
            }t        ||      S |j                         }t        |j                  t        |j                        |      7 # t        $ r6 t        |j                  t        |j                        |j                        w xY ww)aD  
        Update session timeout policy for the currently active organization.

        Parameters
        ----------
        max_session_age : typing.Optional[int]
            Number of minutes that a session can be active before needing to re-login

        max_time_between_activity : typing.Optional[int]
            Number of minutes that a session stays active without any activity

        request_options : typing.Optional[RequestOptions]
            Request-specific configuration.

        Returns
        -------
        AsyncHttpResponse[SessionTimeoutPolicy]

        r   r>   r?   r@   rA   rB   Nr"   r#   r$   r'   r*   )r   r.   r/   rD   r+   r0   r1   r   r   r2   r   r   r   r3   r,   r4   rE   s          r   rF   z"AsyncRawSessionPolicyClient.update   s    4 ..;;CC!#2-F
  2 , D 
 
		ti++1c1("2 ) 0 ))%HH&^^-N 9#8#8$yGXGXBY`noo5
0  	ty'<'<d9K\K\F]dmdrdrss	ts4   8DCD AC DC ,,D?DD)rG   rH   rI   r   r   r0   rJ   r
   r   r   r9   rD   rK   rF   rL   r   r   rN   rN   n   s    .*< . EI"p"(//."A"p	/	0"pN 15:>;?4p  -4p $*??3#7	4p
  84p 
/	04pr   rN   )r0   json.decoderr   core.api_errorr   core.client_wrapperr   r   core.http_responser   r	   core.request_optionsr
   core.unchecked_base_modelr   types.session_timeout_policyr   r1   AnyrD   r   rN   rL   r   r   <module>rZ      sT     ( % G @ 1 6 ? v{{6::s#Zp Zpz\p \pr   