
    ]j                        d dl mZ 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mZ ej                  rdd	lmZmZ dd
lmZmZ  ej(                  ej*                  d      Z G d d      Z G d d      Zy)    )annotationsN   )AsyncClientWrapperSyncClientWrapper)RequestOptions)ProjectMember   )AsyncRawMembersClientRawMembersClient)AsyncBulkClient
BulkClient)AsyncPaginatedClientPaginatedClient.c                  b    e Zd Zd	dZed
d       ZddddZddddZed        Zed        Z	y)MembersClientc               P    t        |      | _        || _        d | _        d | _        y Nclient_wrapper)r   _raw_client_client_wrapper_bulk
_paginatedselfr   s     R/root/env/lib/python3.12/site-packages/label_studio_sdk/projects/members/client.py__init__zMembersClient.__init__   s%    +>J-26
<@    c                    | j                   S )z
        Retrieves a raw implementation of this client that returns raw responses.

        Returns
        -------
        RawMembersClient
        r   r   s    r   with_raw_responsezMembersClient.with_raw_response        r   Nrequest_optionsc               V    | 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>
        Add a member to a specific project.

        Parameters
        ----------
        id : int

        user : int

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

        Returns
        -------
        ProjectMember


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

        client = LabelStudio(
            api_key="YOUR_API_KEY",
        )
        client.projects.members.add(
            id=1,
            user=1,
        )
        userr%   r   adddatar   idr(   r%   	_responses        r   r*   zMembersClient.add%   s,    H $$(($(X	~~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>
        Remove a member from a specific project.

        Parameters
        ----------
        id : int

        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.projects.members.remove(
            id=1,
        )
        r$   r   remover+   r   r-   r%   r.   s       r   r1   zMembersClient.removeL   s*    @ $$++B+P	~~r   c                n    | j                   ddlm}  || j                        | _         | j                   S )Nr	   )r   r   )r   bulk.clientr   r   )r   r   s     r   bulkzMembersClient.bulko   s+    ::/#43G3GHDJzzr   c                n    | j                   ddlm}  || j                        | _         | j                   S )Nr	   )r   r   )r   paginated.clientr   r   )r   r   s     r   	paginatedzMembersClient.paginatedw   s+    ??"9-T=Q=QRDOr   )r   r   )returnr   r-   intr(   r;   r%   typing.Optional[RequestOptions]r9   r   r-   r;   r%   r<   r9   None
__name__
__module____qualname__r   propertyr"   r*   r1   r5   r8    r   r   r   r      s^    A     ]a %N UY !F    r   r   c                  p    e Zd Zd	dZed
d       Zdd	 	 	 	 	 	 	 ddZddddZed        Zed        Z	y)AsyncMembersClientc               P    t        |      | _        || _        d | _        d | _        y r   )r
   r   r   r   r   r   s     r   r   zAsyncMembersClient.__init__   s%    0O-7;
AEr   c                    | j                   S )z
        Retrieves a raw implementation of this client that returns raw responses.

        Returns
        -------
        AsyncRawMembersClient
        r    r!   s    r   r"   z$AsyncMembersClient.with_raw_response   r#   r   Nr$   c               r   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>
        Add a member to a specific project.

        Parameters
        ----------
        id : int

        user : int

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

        Returns
        -------
        ProjectMember


        Examples
        --------
        import asyncio

        from label_studio_sdk import AsyncLabelStudio

        client = AsyncLabelStudio(
            api_key="YOUR_API_KEY",
        )


        async def main() -> None:
            await client.projects.members.add(
                id=1,
                user=1,
            )


        asyncio.run(main())
        r'   Nr)   r,   s        r   r*   zAsyncMembersClient.add   s9     \ **..ro.^^	~~ _s   "757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>
        Remove a member from a specific project.

        Parameters
        ----------
        id : int

        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.projects.members.remove(
                id=1,
            )


        asyncio.run(main())
        r$   Nr0   r2   s       r   r1   zAsyncMembersClient.remove   s7     P **11"o1VV	~~ Ws   !646c                n    | j                   ddlm}  || j                        | _         | j                   S )Nr	   )r   r   )r   r4   r   r   )r   r   s     r   r5   zAsyncMembersClient.bulk   s+    ::4(8L8LMDJzzr   c                n    | j                   ddlm}  || j                        | _         | j                   S )Nr	   )r   r   )r   r7   r   r   )r   r   s     r   r8   zAsyncMembersClient.paginated   s+    ??">2$BVBVWDOr   )r   r   )r9   r
   r:   r=   r?   rD   r   r   rF   rF      s~    F     Y]// #/6U/	/b [_ )V    r   rF   )
__future__r   typingcore.client_wrapperr   r   core.request_optionsr   types.project_memberr   
raw_clientr
   r   TYPE_CHECKINGr4   r   r   r7   r   r   castAnyOMITr   rF   rD   r   r   <module>rW      sW    #  H 2 1 ?	8Gv{{6::s#j jZ| |r   