
    ]jf-                        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 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)WorkspaceMemberCreate)WorkspaceMemberList   )AsyncRawMembersClientRawMembersClient)AsyncBulkClient
BulkClient)AsyncPaginatedClientPaginatedClient.c                      e Zd ZddZedd       Zdd	 	 	 	 	 ddZe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     T/root/env/lib/python3.12/site-packages/label_studio_sdk/workspaces/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               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>
        Get a list of all members in a specific workspace.

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

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

        Returns
        -------
        typing.List[WorkspaceMemberList]
            A list of workspace memberships

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

        client = LabelStudio(
            api_key="YOUR_API_KEY",
        )
        client.workspaces.members.list(
            id=1,
        )
        r%   r   listdatar   idr&   	_responses       r   r)   zMembersClient.list&   s*    F $$))"o)N	~~r   	workspacer&   c               X    | j                   j                  ||||      }|j                  S )ay  
        <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 new workspace member by user ID.

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

        user : int
            User ID

        workspace : typing.Optional[int]
            Workspace ID

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

        Returns
        -------
        WorkspaceMemberCreate


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

        client = LabelStudio(
            api_key="YOUR_API_KEY",
        )
        client.workspaces.members.create(
            id=1,
            user=1,
        )
        userr/   r&   r   creater*   r   r,   r2   r/   r&   r-   s         r   r4   zMembersClient.createL   s/    ^ $$++BTY`o+p	~~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 specific member by ID from a workspace. This endpoint expects an object like `{"user_id": 123}`.

        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.workspaces.members.delete(
            id=1,
        )
        r%   r   deleter*   r+   s       r   r8   zMembersClient.delete~   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.bulk   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.paginated   s+    ??"9-T=Q=QRDOr   )r   r   )returnr   r,   intr&   typing.Optional[RequestOptions]r?   z typing.List[WorkspaceMemberList]
r,   rA   r2   rA   r/   ztyping.Optional[int]r&   rB   r?   r   r,   rA   r&   rB   r?   None__name__
__module____qualname__r   propertyr#   r)   OMITr4   r8   r;   r>    r   r   r   r      s    A     NR$$+J$	)$V +/;?00 	0
 (0 90 
0d UY !F    r   r   c                      e Zd ZddZedd       Zdd	 	 	 	 	 ddZe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               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>
        Get a list of all members in a specific workspace.

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

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

        Returns
        -------
        typing.List[WorkspaceMemberList]
            A list of workspace memberships

        Examples
        --------
        import asyncio

        from label_studio_sdk import AsyncLabelStudio

        client = AsyncLabelStudio(
            api_key="YOUR_API_KEY",
        )


        async def main() -> None:
            await client.workspaces.members.list(
                id=1,
            )


        asyncio.run(main())
        r%   Nr(   r+   s       r   r)   zAsyncMembersClient.list   s7     V **//O/TT	~~ U   !646r.   c               t   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 new workspace member by user ID.

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

        user : int
            User ID

        workspace : typing.Optional[int]
            Workspace ID

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

        Returns
        -------
        WorkspaceMemberCreate


        Examples
        --------
        import asyncio

        from label_studio_sdk import AsyncLabelStudio

        client = AsyncLabelStudio(
            api_key="YOUR_API_KEY",
        )


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


        asyncio.run(main())
        r1   Nr3   r5   s         r   r4   zAsyncMembersClient.create   s<     n **11"49fu1vv	~~ ws   #868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 specific member by ID from a workspace. This endpoint expects an object like `{"user_id": 123}`.

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


        asyncio.run(main())
        r%   Nr7   r+   s       r   r8   zAsyncMembersClient.delete,  s7     P **11"o1VV	~~ WrR   c                n    | j                   ddlm}  || j                        | _         | j                   S )Nr
   )r   r   )r   r:   r   r   )r   r   s     r   r;   zAsyncMembersClient.bulkW  s+    ::4(8L8LMDJzzr   c                n    | j                   ddlm}  || j                        | _         | j                   S )Nr
   )r   r   )r   r=   r   r   )r   r   s     r   r>   zAsyncMembersClient.paginated_  s+    ??">2$BVBVWDOr   )r   r   )r?   r   r@   rC   rD   rF   rL   r   r   rN   rN      s    F     NR,,+J,	),f +/;?88 	8
 (8 98 
8t [_ )V    r   rN   )
__future__r   typingcore.client_wrapperr   r   core.request_optionsr   types.workspace_member_creater   types.workspace_member_listr	   
raw_clientr   r   TYPE_CHECKINGr:   r   r   r=   r   r   castAnyrK   r   rN   rL   r   r   <module>ra      sZ    #  H 2 B > ?	8Gv{{6::s#[ [|s sr   