
    ]ji                         d dl Z ddlmZmZ ddlmZ ddlmZ ddlm	Z	 ddl
mZ dd	lmZmZ dd
lmZ  e j"                  e j$                  d      Z G d d      Z G d d      Zy)    N   )AsyncClientWrapperSyncClientWrapper)RequestOptions)ModelProviderConnection)ProviderEnum)	ScopeEnum   )AsyncRawModelProvidersClientRawModelProvidersClient).ListModelProviderChoicesModelProvidersResponse.c                      e Zd ZdefdZedefd       Zddddej                  e
   dej                  e   dej                  e   fd	Zeeeeeeeeeeeedd
dej                  e
   dej                  e
   dej                  e   dej                  e
   dej                  e
   dej                  e
   dej                  e
   dej                  e
   dej                  e
   dej                  e   dej                  e   dej                  e   dej                  e   defdZdddej                  e   defdZddde
dej                  e   defdZddde
dej                  e   ddfdZeeeeeeeeeeeedd
de
dej                  e
   dej                  e
   dej                  e   dej                  e
   dej                  e
   dej                  e
   dej                  e
   dej                  e
   dej                  e
   dej                  e   dej                  e   dej                  e   dej                  e   defdZy)ModelProvidersClientclient_wrapperc                &    t        |      | _        y N)r   )r   _raw_clientselfr   s     Q/root/env/lib/python3.12/site-packages/label_studio_sdk/model_providers/client.py__init__zModelProvidersClient.__init__   s    2.Q    returnc                     | j                   S )z
        Retrieves a raw implementation of this client that returns raw responses.

        Returns
        -------
        RawModelProvidersClient
        r   r   s    r   with_raw_responsez&ModelProvidersClient.with_raw_response        r   Norderingrequest_optionsr    r!   c                T    | j                   j                  ||      }|j                  S )a8  
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        List all model provider connections.

        Parameters
        ----------
        ordering : typing.Optional[str]
            Which field to use when ordering the results.

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

        Returns
        -------
        typing.List[ModelProviderConnection]


        Examples
        --------
        from label_studio_sdk import LabelStudio

        client = LabelStudio(
            api_key="YOUR_API_KEY",
        )
        client.model_providers.list()
        r   r   listdatar   r    r!   	_responses       r   r$   zModelProvidersClient.list    s*    D $$))8_)]	~~r   api_key
auth_tokenbudget_alert_thresholdcached_available_modelsdeployment_nameendpointgoogle_application_credentialsgoogle_locationgoogle_project_idis_internalproviderscoper!   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   c                j    | j                   j                  |||||||||	|
|||      }|j                  S )a  
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Create a new model provider connection.

        Parameters
        ----------
        api_key : typing.Optional[str]
            Model provider API key

        auth_token : typing.Optional[str]
            Model provider Auth token

        budget_alert_threshold : typing.Optional[float]
            Budget alert threshold for the given provider connection

        cached_available_models : typing.Optional[str]
            List of available models from the provider

        deployment_name : typing.Optional[str]
            Azure OpenAI deployment name

        endpoint : typing.Optional[str]
            Azure OpenAI endpoint

        google_application_credentials : typing.Optional[str]
            The content of GOOGLE_APPLICATION_CREDENTIALS json file

        google_location : typing.Optional[str]
            Google project location

        google_project_id : typing.Optional[str]
            Google project ID

        is_internal : typing.Optional[bool]
            Whether the model provider connection is internal, not visible to the user

        provider : typing.Optional[ProviderEnum]

        scope : typing.Optional[ScopeEnum]

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

        Returns
        -------
        ModelProviderConnection


        Examples
        --------
        from label_studio_sdk import LabelStudio

        client = LabelStudio(
            api_key="YOUR_API_KEY",
        )
        client.model_providers.create()
        r(   r   creater%   r   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r!   r'   s                  r   r7   zModelProvidersClient.createE   sS    ^ $$++!#9$;++I+/#+ , 
	 ~~r   r!   c                R    | j                   j                  |      }|j                  S )a$  
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        List all possible model provider choices

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

        Returns
        -------
        ListModelProviderChoicesModelProvidersResponse
            List of model provider choices

        Examples
        --------
        from label_studio_sdk import LabelStudio

        client = LabelStudio(
            api_key="YOUR_API_KEY",
        )
        client.model_providers.list_model_provider_choices()
        r9   r   list_model_provider_choicesr%   r   r!   r'   s      r   r<   z0ModelProvidersClient.list_model_provider_choices   s(    > $$@@Q`@a	~~r   idc                T    | j                   j                  ||      }|j                  S )a  
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Retrieve a specific model provider connection.

        Parameters
        ----------
        id : str

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

        Returns
        -------
        ModelProviderConnection


        Examples
        --------
        from label_studio_sdk import LabelStudio

        client = LabelStudio(
            api_key="YOUR_API_KEY",
        )
        client.model_providers.get(
            id="id",
        )
        r9   r   getr%   r   r>   r!   r'   s       r   rA   zModelProvidersClient.get   s*    B $$((_(M	~~r   c                T    | j                   j                  ||      }|j                  S )a  
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Delete a model provider connection by ID

        Parameters
        ----------
        id : str

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

        Returns
        -------
        None

        Examples
        --------
        from label_studio_sdk import LabelStudio

        client = LabelStudio(
            api_key="YOUR_API_KEY",
        )
        client.model_providers.delete(
            id="id",
        )
        r9   r   deleter%   rB   s       r   rE   zModelProvidersClient.delete   s*    @ $$++B+P	~~r   c                l    | j                   j                  |||||||||	|
||||      }|j                  S )a>  
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Update a specific model provider connection by ID.

        Parameters
        ----------
        id : str

        api_key : typing.Optional[str]
            Model provider API key

        auth_token : typing.Optional[str]
            Model provider Auth token

        budget_alert_threshold : typing.Optional[float]
            Budget alert threshold for the given provider connection

        cached_available_models : typing.Optional[str]
            List of available models from the provider

        deployment_name : typing.Optional[str]
            Azure OpenAI deployment name

        endpoint : typing.Optional[str]
            Azure OpenAI endpoint

        google_application_credentials : typing.Optional[str]
            The content of GOOGLE_APPLICATION_CREDENTIALS json file

        google_location : typing.Optional[str]
            Google project location

        google_project_id : typing.Optional[str]
            Google project ID

        is_internal : typing.Optional[bool]
            Whether the model provider connection is internal, not visible to the user

        provider : typing.Optional[ProviderEnum]

        scope : typing.Optional[ScopeEnum]

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

        Returns
        -------
        ModelProviderConnection


        Examples
        --------
        from label_studio_sdk import LabelStudio

        client = LabelStudio(
            api_key="YOUR_API_KEY",
        )
        client.model_providers.update(
            id="id",
        )
        r(   r   updater%   r   r>   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r!   r'   s                   r   rH   zModelProvidersClient.update  sV    h $$++!#9$;++I+/#+ , 
	  ~~r   )__name__
__module____qualname__r   r   propertyr   r   typingOptionalstrr   Listr   r$   OMITfloatboolr   r	   r7   r   r<   rA   rE   rH    r   r   r   r      st   R*; R  #:     37ko#!??3/#IOYgIh#	,	-#P )-+/9=8<04)-?C0426-126,0;?^ %^ OOC(	^
 !' 6^ "(!5^  -^ //#&^ )/(<^  -^ "??3/^ __T*^ //,/^ y)^  8^  
!!^B EI "(//."A 	7 D RV "c "v~/N "Zq "H UY ! !&//.2Q !]a !N )-+/9=8<04)-?C0426-126,0;?!dd %	d
 OOC(d !' 6d "(!5d  -d //#&d )/(<d  -d "??3/d __T*d //,/d y)d   8!d" 
!#dr   r   c                      e Zd ZdefdZedefd       Zddddej                  e
   dej                  e   dej                  e   fd	Zeeeeeeeeeeeedd
dej                  e
   dej                  e
   dej                  e   dej                  e
   dej                  e
   dej                  e
   dej                  e
   dej                  e
   dej                  e
   dej                  e   dej                  e   dej                  e   dej                  e   defdZdddej                  e   defdZddde
dej                  e   defdZddde
dej                  e   ddfdZeeeeeeeeeeeedd
de
dej                  e
   dej                  e
   dej                  e   dej                  e
   dej                  e
   dej                  e
   dej                  e
   dej                  e
   dej                  e
   dej                  e   dej                  e   dej                  e   dej                  e   defdZy)AsyncModelProvidersClientr   c                &    t        |      | _        y r   )r   r   r   s     r   r   z"AsyncModelProvidersClient.__init__v  s    7~Vr   r   c                     | j                   S )z
        Retrieves a raw implementation of this client that returns raw responses.

        Returns
        -------
        AsyncRawModelProvidersClient
        r   r   s    r   r   z+AsyncModelProvidersClient.with_raw_responsey  r   r   Nr   r    r!   c                p   K   | j                   j                  ||       d{   }|j                  S 7 w)a  
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        List all model provider connections.

        Parameters
        ----------
        ordering : typing.Optional[str]
            Which field to use when ordering the results.

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

        Returns
        -------
        typing.List[ModelProviderConnection]


        Examples
        --------
        import asyncio

        from label_studio_sdk import AsyncLabelStudio

        client = AsyncLabelStudio(
            api_key="YOUR_API_KEY",
        )


        async def main() -> None:
            await client.model_providers.list()


        asyncio.run(main())
        r   Nr#   r&   s       r   r$   zAsyncModelProvidersClient.list  s8     T **//Sb/cc	~~ d   !646r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   c                   K   | j                   j                  |||||||||	|
|||       d{   }|j                  S 7 w)aq  
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Create a new model provider connection.

        Parameters
        ----------
        api_key : typing.Optional[str]
            Model provider API key

        auth_token : typing.Optional[str]
            Model provider Auth token

        budget_alert_threshold : typing.Optional[float]
            Budget alert threshold for the given provider connection

        cached_available_models : typing.Optional[str]
            List of available models from the provider

        deployment_name : typing.Optional[str]
            Azure OpenAI deployment name

        endpoint : typing.Optional[str]
            Azure OpenAI endpoint

        google_application_credentials : typing.Optional[str]
            The content of GOOGLE_APPLICATION_CREDENTIALS json file

        google_location : typing.Optional[str]
            Google project location

        google_project_id : typing.Optional[str]
            Google project ID

        is_internal : typing.Optional[bool]
            Whether the model provider connection is internal, not visible to the user

        provider : typing.Optional[ProviderEnum]

        scope : typing.Optional[ScopeEnum]

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

        Returns
        -------
        ModelProviderConnection


        Examples
        --------
        import asyncio

        from label_studio_sdk import AsyncLabelStudio

        client = AsyncLabelStudio(
            api_key="YOUR_API_KEY",
        )


        async def main() -> None:
            await client.model_providers.create()


        asyncio.run(main())
        r(   Nr6   r8   s                  r   r7   z AsyncModelProvidersClient.create  sa     n **11!#9$;++I+/#+ 2 
 
	 ~~
s   ,A?Ar9   c                n   K   | j                   j                  |       d{   }|j                  S 7 w)a  
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        List all possible model provider choices

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

        Returns
        -------
        ListModelProviderChoicesModelProvidersResponse
            List of model provider choices

        Examples
        --------
        import asyncio

        from label_studio_sdk import AsyncLabelStudio

        client = AsyncLabelStudio(
            api_key="YOUR_API_KEY",
        )


        async def main() -> None:
            await client.model_providers.list_model_provider_choices()


        asyncio.run(main())
        r9   Nr;   r=   s      r   r<   z5AsyncModelProvidersClient.list_model_provider_choices  s6     N **FFWfFgg	~~ hs    535r>   c                p   K   | j                   j                  ||       d{   }|j                  S 7 w)aw  
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Retrieve a specific model provider connection.

        Parameters
        ----------
        id : str

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

        Returns
        -------
        ModelProviderConnection


        Examples
        --------
        import asyncio

        from label_studio_sdk import AsyncLabelStudio

        client = AsyncLabelStudio(
            api_key="YOUR_API_KEY",
        )


        async def main() -> None:
            await client.model_providers.get(
                id="id",
            )


        asyncio.run(main())
        r9   Nr@   rB   s       r   rA   zAsyncModelProvidersClient.getC  s7     R **..r?.SS	~~ Tr[   c                p   K   | j                   j                  ||       d{   }|j                  S 7 w)a`  
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Delete a model provider connection by ID

        Parameters
        ----------
        id : str

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

        Returns
        -------
        None

        Examples
        --------
        import asyncio

        from label_studio_sdk import AsyncLabelStudio

        client = AsyncLabelStudio(
            api_key="YOUR_API_KEY",
        )


        async def main() -> None:
            await client.model_providers.delete(
                id="id",
            )


        asyncio.run(main())
        r9   NrD   rB   s       r   rE   z AsyncModelProvidersClient.deleteo  s7     P **11"o1VV	~~ Wr[   c                   K   | j                   j                  |||||||||	|
||||       d{   }|j                  S 7 w)a  
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Update a specific model provider connection by ID.

        Parameters
        ----------
        id : str

        api_key : typing.Optional[str]
            Model provider API key

        auth_token : typing.Optional[str]
            Model provider Auth token

        budget_alert_threshold : typing.Optional[float]
            Budget alert threshold for the given provider connection

        cached_available_models : typing.Optional[str]
            List of available models from the provider

        deployment_name : typing.Optional[str]
            Azure OpenAI deployment name

        endpoint : typing.Optional[str]
            Azure OpenAI endpoint

        google_application_credentials : typing.Optional[str]
            The content of GOOGLE_APPLICATION_CREDENTIALS json file

        google_location : typing.Optional[str]
            Google project location

        google_project_id : typing.Optional[str]
            Google project ID

        is_internal : typing.Optional[bool]
            Whether the model provider connection is internal, not visible to the user

        provider : typing.Optional[ProviderEnum]

        scope : typing.Optional[ScopeEnum]

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

        Returns
        -------
        ModelProviderConnection


        Examples
        --------
        import asyncio

        from label_studio_sdk import AsyncLabelStudio

        client = AsyncLabelStudio(
            api_key="YOUR_API_KEY",
        )


        async def main() -> None:
            await client.model_providers.update(
                id="id",
            )


        asyncio.run(main())
        r(   NrG   rI   s                   r   rH   z AsyncModelProvidersClient.update  sd     x **11!#9$;++I+/#+ 2 
 
	  ~~!
s   -AA A)rJ   rK   rL   r   r   rM   r   r   rN   rO   rP   r   rQ   r   r$   rR   rS   rT   r   r	   r7   r   r<   rA   rE   rH   rU   r   r   rW   rW   u  st   W*< W  #?     37ko+!??3/+IOYgIh+	,	-+` )-+/9=8<04)-?C0426-126,0;?f %f OOC(	f
 !' 6f "(!5f  -f //#&f )/(<f  -f "??3/f __T*f //,/f y)f  8f  
!!fR EI("(//."A(	7(T X\ *C *V__^5T *`w *X [_ )s )8W )cg )^ )-+/9=8<04)-?C0426-126,0;?!ll %	l
 OOC(l !' 6l "(!5l  -l //#&l )/(<l  -l "??3/l __T*l //,/l y)l   8!l" 
!#lr   rW   )rN   core.client_wrapperr   r   core.request_optionsr   types.model_provider_connectionr   types.provider_enumr   types.scope_enumr	   
raw_clientr   r   :types.list_model_provider_choices_model_providers_responser   castAnyrR   r   rW   rU   r   r   <module>rj      sP     G 1 E . ( M v v{{6::s#a aHQ Qr   