
    ]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)LsejwtSettings.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d
ej                  e   dej                  e   dej                  e   dee	   f
dZy)RawJwtSettingsClientclient_wrapperc                    || _         y N_client_wrapperselfr   s     R/root/env/lib/python3.12/site-packages/label_studio_sdk/jwt_settings/raw_client.py__init__zRawJwtSettingsClient.__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)	a"  
        Retrieve JWT settings for the currently active organization.

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

        Returns
        -------
        HttpResponse[LsejwtSettings]

        api/jwt/settings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RawJwtSettingsClient.get   s     ((55==+ > 
	
	ti++1c1"", ) 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 api_tokens_enabledlegacy_api_tokens_enabledr   api_token_ttl_daysr;   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 JWT settings for the currently active organization.

        Parameters
        ----------
        api_token_ttl_days : int

        api_tokens_enabled : typing.Optional[bool]
            Enable JWT API token authentication for this organization

        legacy_api_tokens_enabled : typing.Optional[bool]
            Enable legacy API token authentication for this organization

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

        Returns
        -------
        HttpResponse[LsejwtSettings]

        r   POSTr=   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<   r   r6   r7   r8   s           r   updatezRawJwtSettingsClient.update7   s   : ((55==&8&8-F  2 , > 
		ti++1c1"", ) 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   rE   intboolrG    r   r   r   r      s    .*; . IM  pfoon&E  pQ]^lQm  pL 59;?;?8p  8p #OOD1	8p
 $*??4#88p  88p 
n	%8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d
ej                  e   dej                  e   dej                  e   dee	   f
dZy)AsyncRawJwtSettingsClientr   c                    || _         y r   r   r   s     r   r   z"AsyncRawJwtSettingsClient.__init__s   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)
a'  
        Retrieve JWT settings for the currently active organization.

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

        Returns
        -------
        AsyncHttpResponse[LsejwtSettings]

        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AsyncRawJwtSettingsClient.getv   s       ..;;CC+ D 
 
	
	ti++1c1"", ) 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;   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)aE  
        Update JWT settings for the currently active organization.

        Parameters
        ----------
        api_token_ttl_days : int

        api_tokens_enabled : typing.Optional[bool]
            Enable JWT API token authentication for this organization

        legacy_api_tokens_enabled : typing.Optional[bool]
            Enable legacy API token authentication for this organization

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

        Returns
        -------
        AsyncHttpResponse[LsejwtSettings]

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