
     jfO                         d dl Z ddlmZmZ ddlm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 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dS )    N   )AsyncClientWrapperSyncClientWrapper)RequestOptions   )AsyncRawScimClientRawScimClient)EmptyResponse)ResourceTypesResponse)SchemasResponse)	ScimEmail)ScimName)ScimUser)ScimUsersListResponse)ServiceProviderConfig.c                   8   e Zd ZdefdZedefd            Zdddej	        e
         defdZdddej	        e
         defd	Zdddej	        e
         defd
Zddddddej	        e         dej	        e         dej	        e         dej	        e
         def
dZeeedddededej	        ej        e                  dej	        e         dej	        e         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efdZdS )
ScimClientclient_wrapperc                0    t          |          | _        d S N)r   )r	   _raw_clientselfr   s     b/lsinfo/ai/hellotax_ai/base_platform/venv/lib/python3.11/site-packages/langfuse/api/scim/client.py__init__zScimClient.__init__   s    (GGG    returnc                     | j         S )z
        Retrieves a raw implementation of this client that returns raw responses.

        Returns
        -------
        RawScimClient
        r   r   s    r   with_raw_responsezScimClient.with_raw_response        r   Nrequest_optionsr$   c                F    | j                             |          }|j        S )a  
        Get SCIM Service Provider Configuration (requires organization-scoped API key)

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

        Returns
        -------
        ServiceProviderConfig

        Examples
        --------
        from langfuse import LangfuseAPI

        client = LangfuseAPI(
            x_langfuse_sdk_name="YOUR_X_LANGFUSE_SDK_NAME",
            x_langfuse_sdk_version="YOUR_X_LANGFUSE_SDK_VERSION",
            x_langfuse_public_key="YOUR_X_LANGFUSE_PUBLIC_KEY",
            username="YOUR_USERNAME",
            password="YOUR_PASSWORD",
            base_url="https://yourhost.com/path/to/api",
        )
        client.scim.get_service_provider_config()
        r#   r   get_service_provider_configdatar   r$   	_responses      r   r'   z&ScimClient.get_service_provider_config$   s/    : $@@+ A 
 
	 ~r   c                F    | j                             |          }|j        S )a  
        Get SCIM Resource Types (requires organization-scoped API key)

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

        Returns
        -------
        ResourceTypesResponse

        Examples
        --------
        from langfuse import LangfuseAPI

        client = LangfuseAPI(
            x_langfuse_sdk_name="YOUR_X_LANGFUSE_SDK_NAME",
            x_langfuse_sdk_version="YOUR_X_LANGFUSE_SDK_VERSION",
            x_langfuse_public_key="YOUR_X_LANGFUSE_PUBLIC_KEY",
            username="YOUR_USERNAME",
            password="YOUR_PASSWORD",
            base_url="https://yourhost.com/path/to/api",
        )
        client.scim.get_resource_types()
        r#   r   get_resource_typesr(   r)   s      r   r-   zScimClient.get_resource_typesF   s%    : $777XX	~r   c                F    | j                             |          }|j        S )a  
        Get SCIM Schemas (requires organization-scoped API key)

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

        Returns
        -------
        SchemasResponse

        Examples
        --------
        from langfuse import LangfuseAPI

        client = LangfuseAPI(
            x_langfuse_sdk_name="YOUR_X_LANGFUSE_SDK_NAME",
            x_langfuse_sdk_version="YOUR_X_LANGFUSE_SDK_VERSION",
            x_langfuse_public_key="YOUR_X_LANGFUSE_PUBLIC_KEY",
            username="YOUR_USERNAME",
            password="YOUR_PASSWORD",
            base_url="https://yourhost.com/path/to/api",
        )
        client.scim.get_schemas()
        r#   r   get_schemasr(   r)   s      r   r0   zScimClient.get_schemasf   s%    : $000QQ	~r   filterstart_indexcountr$   r2   r3   r4   c                L    | j                             ||||          }|j        S )a0  
        List users in the organization (requires organization-scoped API key)

        Parameters
        ----------
        filter : typing.Optional[str]
            Filter expression (e.g. userName eq "value")

        start_index : typing.Optional[int]
            1-based index of the first result to return (default 1)

        count : typing.Optional[int]
            Maximum number of results to return (default 100)

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

        Returns
        -------
        ScimUsersListResponse

        Examples
        --------
        from langfuse import LangfuseAPI

        client = LangfuseAPI(
            x_langfuse_sdk_name="YOUR_X_LANGFUSE_SDK_NAME",
            x_langfuse_sdk_version="YOUR_X_LANGFUSE_SDK_VERSION",
            x_langfuse_public_key="YOUR_X_LANGFUSE_PUBLIC_KEY",
            username="YOUR_USERNAME",
            password="YOUR_PASSWORD",
            base_url="https://yourhost.com/path/to/api",
        )
        client.scim.list_users()
        r1   r   
list_usersr(   r   r2   r3   r4   r$   r*   s         r   r7   zScimClient.list_users   s8    V $//#+	 0 
 
	 ~r   emailsactivepasswordr$   	user_namenamer:   r;   r<   c                P    | j                             ||||||          }|j        S )a  
        Create a new user in the organization (requires organization-scoped API key)

        Parameters
        ----------
        user_name : str
            User's email address (required)

        name : ScimName
            User's name information

        emails : typing.Optional[typing.Sequence[ScimEmail]]
            User's email addresses

        active : typing.Optional[bool]
            Whether the user is active

        password : typing.Optional[str]
            Initial password for the user

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

        Returns
        -------
        ScimUser

        Examples
        --------
        from langfuse import LangfuseAPI
        from langfuse.scim import ScimName

        client = LangfuseAPI(
            x_langfuse_sdk_name="YOUR_X_LANGFUSE_SDK_NAME",
            x_langfuse_sdk_version="YOUR_X_LANGFUSE_SDK_VERSION",
            x_langfuse_public_key="YOUR_X_LANGFUSE_PUBLIC_KEY",
            username="YOUR_USERNAME",
            password="YOUR_PASSWORD",
            base_url="https://yourhost.com/path/to/api",
        )
        client.scim.create_user(
            user_name="userName",
            name=ScimName(),
        )
        r=   r>   r:   r;   r<   r$   r   create_userr(   r   r=   r>   r:   r;   r<   r$   r*   s           r   rB   zScimClient.create_user   s>    n $00+ 1 
 
	 ~r   user_idc                H    | j                             ||          }|j        S )a&  
        Get a specific user by ID (requires organization-scoped API key)

        Parameters
        ----------
        user_id : str

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

        Returns
        -------
        ScimUser

        Examples
        --------
        from langfuse import LangfuseAPI

        client = LangfuseAPI(
            x_langfuse_sdk_name="YOUR_X_LANGFUSE_SDK_NAME",
            x_langfuse_sdk_version="YOUR_X_LANGFUSE_SDK_VERSION",
            x_langfuse_public_key="YOUR_X_LANGFUSE_PUBLIC_KEY",
            username="YOUR_USERNAME",
            password="YOUR_PASSWORD",
            base_url="https://yourhost.com/path/to/api",
        )
        client.scim.get_user(
            user_id="userId",
        )
        r#   r   get_userr(   r   rD   r$   r*   s       r   rG   zScimClient.get_user   s(    B $--g-WW	~r   c                H    | j                             ||          }|j        S )a  
        Remove a user from the organization (requires organization-scoped API key). Note that this only removes the user from the organization but does not delete the user entity itself.

        Parameters
        ----------
        user_id : str

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

        Returns
        -------
        EmptyResponse

        Examples
        --------
        from langfuse import LangfuseAPI

        client = LangfuseAPI(
            x_langfuse_sdk_name="YOUR_X_LANGFUSE_SDK_NAME",
            x_langfuse_sdk_version="YOUR_X_LANGFUSE_SDK_VERSION",
            x_langfuse_public_key="YOUR_X_LANGFUSE_PUBLIC_KEY",
            username="YOUR_USERNAME",
            password="YOUR_PASSWORD",
            base_url="https://yourhost.com/path/to/api",
        )
        client.scim.delete_user(
            user_id="userId",
        )
        r#   r   delete_userr(   rH   s       r   rK   zScimClient.delete_user  s1    B $00_ 1 
 
	 ~r   )__name__
__module____qualname__r   r   propertyr	   r!   typingOptionalr   r   r'   r   r-   r   r0   strintr   r7   OMITr   Sequencer   boolr   rB   rG   r
   rK    r   r   r   r      s       H*; H H H H  =       X  EI     "(/."A 	       F EI  "(/."A	   B EI  "(/."A	   F (,,0&*;?1 1 1 $1 _S)	1
 s#1  81 
1 1 1 1p ?C(,)-;?? ? ? ? 	?
 	 :;? %? /#&?  8? 
? ? ? ?D SW" " ""060O"	" " " "J SW$ $ $$060O$	$ $ $ $ $ $r   r   c                   8   e Zd ZdefdZedefd            Zdddej	        e
         defdZdddej	        e
         defd	Zdddej	        e
         defd
Zddddddej	        e         dej	        e         dej	        e         dej	        e
         def
dZeeedddededej	        ej        e                  dej	        e         dej	        e         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efdZdS )AsyncScimClientr   c                0    t          |          | _        d S r   )r   r   r   s     r   r   zAsyncScimClient.__init__F  s    -^LLLr   r   c                     | j         S )z
        Retrieves a raw implementation of this client that returns raw responses.

        Returns
        -------
        AsyncRawScimClient
        r   r    s    r   r!   z!AsyncScimClient.with_raw_responseI  r"   r   Nr#   r$   c                V   K   | j                             |           d{V }|j        S )a  
        Get SCIM Service Provider Configuration (requires organization-scoped API key)

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

        Returns
        -------
        ServiceProviderConfig

        Examples
        --------
        import asyncio

        from langfuse import AsyncLangfuseAPI

        client = AsyncLangfuseAPI(
            x_langfuse_sdk_name="YOUR_X_LANGFUSE_SDK_NAME",
            x_langfuse_sdk_version="YOUR_X_LANGFUSE_SDK_VERSION",
            x_langfuse_public_key="YOUR_X_LANGFUSE_PUBLIC_KEY",
            username="YOUR_USERNAME",
            password="YOUR_PASSWORD",
            base_url="https://yourhost.com/path/to/api",
        )


        async def main() -> None:
            await client.scim.get_service_provider_config()


        asyncio.run(main())
        r#   Nr&   r)   s      r   r'   z+AsyncScimClient.get_service_provider_configT  sR      J *FF+ G 
 
 
 
 
 
 
 
	 ~r   c                V   K   | j                             |           d{V }|j        S )ak  
        Get SCIM Resource Types (requires organization-scoped API key)

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

        Returns
        -------
        ResourceTypesResponse

        Examples
        --------
        import asyncio

        from langfuse import AsyncLangfuseAPI

        client = AsyncLangfuseAPI(
            x_langfuse_sdk_name="YOUR_X_LANGFUSE_SDK_NAME",
            x_langfuse_sdk_version="YOUR_X_LANGFUSE_SDK_VERSION",
            x_langfuse_public_key="YOUR_X_LANGFUSE_PUBLIC_KEY",
            username="YOUR_USERNAME",
            password="YOUR_PASSWORD",
            base_url="https://yourhost.com/path/to/api",
        )


        async def main() -> None:
            await client.scim.get_resource_types()


        asyncio.run(main())
        r#   Nr,   r)   s      r   r-   z"AsyncScimClient.get_resource_types~  sQ      J *==+ > 
 
 
 
 
 
 
 
	 ~r   c                V   K   | j                             |           d{V }|j        S )aW  
        Get SCIM Schemas (requires organization-scoped API key)

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

        Returns
        -------
        SchemasResponse

        Examples
        --------
        import asyncio

        from langfuse import AsyncLangfuseAPI

        client = AsyncLangfuseAPI(
            x_langfuse_sdk_name="YOUR_X_LANGFUSE_SDK_NAME",
            x_langfuse_sdk_version="YOUR_X_LANGFUSE_SDK_VERSION",
            x_langfuse_public_key="YOUR_X_LANGFUSE_PUBLIC_KEY",
            username="YOUR_USERNAME",
            password="YOUR_PASSWORD",
            base_url="https://yourhost.com/path/to/api",
        )


        async def main() -> None:
            await client.scim.get_schemas()


        asyncio.run(main())
        r#   Nr/   r)   s      r   r0   zAsyncScimClient.get_schemas  s<      J *666WWWWWWWW	~r   r1   r2   r3   r4   c                \   K   | j                             ||||           d{V }|j        S )a  
        List users in the organization (requires organization-scoped API key)

        Parameters
        ----------
        filter : typing.Optional[str]
            Filter expression (e.g. userName eq "value")

        start_index : typing.Optional[int]
            1-based index of the first result to return (default 1)

        count : typing.Optional[int]
            Maximum number of results to return (default 100)

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

        Returns
        -------
        ScimUsersListResponse

        Examples
        --------
        import asyncio

        from langfuse import AsyncLangfuseAPI

        client = AsyncLangfuseAPI(
            x_langfuse_sdk_name="YOUR_X_LANGFUSE_SDK_NAME",
            x_langfuse_sdk_version="YOUR_X_LANGFUSE_SDK_VERSION",
            x_langfuse_public_key="YOUR_X_LANGFUSE_PUBLIC_KEY",
            username="YOUR_USERNAME",
            password="YOUR_PASSWORD",
            base_url="https://yourhost.com/path/to/api",
        )


        async def main() -> None:
            await client.scim.list_users()


        asyncio.run(main())
        r1   Nr6   r8   s         r   r7   zAsyncScimClient.list_users  sZ      f *55#+	 6 
 
 
 
 
 
 
 
	 ~r   r9   r=   r>   r:   r;   r<   c                `   K   | j                             ||||||           d{V }|j        S )ai  
        Create a new user in the organization (requires organization-scoped API key)

        Parameters
        ----------
        user_name : str
            User's email address (required)

        name : ScimName
            User's name information

        emails : typing.Optional[typing.Sequence[ScimEmail]]
            User's email addresses

        active : typing.Optional[bool]
            Whether the user is active

        password : typing.Optional[str]
            Initial password for the user

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

        Returns
        -------
        ScimUser

        Examples
        --------
        import asyncio

        from langfuse import AsyncLangfuseAPI
        from langfuse.scim import ScimName

        client = AsyncLangfuseAPI(
            x_langfuse_sdk_name="YOUR_X_LANGFUSE_SDK_NAME",
            x_langfuse_sdk_version="YOUR_X_LANGFUSE_SDK_VERSION",
            x_langfuse_public_key="YOUR_X_LANGFUSE_PUBLIC_KEY",
            username="YOUR_USERNAME",
            password="YOUR_PASSWORD",
            base_url="https://yourhost.com/path/to/api",
        )


        async def main() -> None:
            await client.scim.create_user(
                user_name="userName",
                name=ScimName(),
            )


        asyncio.run(main())
        r@   NrA   rC   s           r   rB   zAsyncScimClient.create_user  s`      ~ *66+ 7 
 
 
 
 
 
 
 
	 ~r   rD   c                X   K   | j                             ||           d{V }|j        S )a  
        Get a specific user by ID (requires organization-scoped API key)

        Parameters
        ----------
        user_id : str

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

        Returns
        -------
        ScimUser

        Examples
        --------
        import asyncio

        from langfuse import AsyncLangfuseAPI

        client = AsyncLangfuseAPI(
            x_langfuse_sdk_name="YOUR_X_LANGFUSE_SDK_NAME",
            x_langfuse_sdk_version="YOUR_X_LANGFUSE_SDK_VERSION",
            x_langfuse_public_key="YOUR_X_LANGFUSE_PUBLIC_KEY",
            username="YOUR_USERNAME",
            password="YOUR_PASSWORD",
            base_url="https://yourhost.com/path/to/api",
        )


        async def main() -> None:
            await client.scim.get_user(
                user_id="userId",
            )


        asyncio.run(main())
        r#   NrF   rH   s       r   rG   zAsyncScimClient.get_userT  sS      R *33_ 4 
 
 
 
 
 
 
 
	 ~r   c                X   K   | j                             ||           d{V }|j        S )a  
        Remove a user from the organization (requires organization-scoped API key). Note that this only removes the user from the organization but does not delete the user entity itself.

        Parameters
        ----------
        user_id : str

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

        Returns
        -------
        EmptyResponse

        Examples
        --------
        import asyncio

        from langfuse import AsyncLangfuseAPI

        client = AsyncLangfuseAPI(
            x_langfuse_sdk_name="YOUR_X_LANGFUSE_SDK_NAME",
            x_langfuse_sdk_version="YOUR_X_LANGFUSE_SDK_VERSION",
            x_langfuse_public_key="YOUR_X_LANGFUSE_PUBLIC_KEY",
            username="YOUR_USERNAME",
            password="YOUR_PASSWORD",
            base_url="https://yourhost.com/path/to/api",
        )


        async def main() -> None:
            await client.scim.delete_user(
                user_id="userId",
            )


        asyncio.run(main())
        r#   NrJ   rH   s       r   rK   zAsyncScimClient.delete_user  sS      R *66_ 7 
 
 
 
 
 
 
 
	 ~r   )rL   rM   rN   r   r   rO   r   r!   rP   rQ   r   r   r'   r   r-   r   r0   rR   rS   r   r7   rT   r   rU   r   rV   r   rB   rG   r
   rK   rW   r   r   rY   rY   E  s       M*< M M M M  #5       X  EI( ( ("(/."A(	( ( ( (V EI( ( ("(/."A(	( ( ( (V EI& & &"(/."A&	& & & &V (,,0&*;?9 9 9 $9 _S)	9
 s#9  89 
9 9 9 9@ ?C(,)-;?G G G G 	G
 	 :;G %G /#&G  8G 
G G G GT SW, , ,,060O,	, , , ,^ SW, , ,,060O,	, , , , , ,r   rY   )rP   core.client_wrapperr   r   core.request_optionsr   
raw_clientr   r	   types.empty_responser
   types.resource_types_responser   types.schemas_responser   types.scim_emailr   types.scim_namer   types.scim_userr   types.scim_users_list_responser   types.service_provider_configr   castAnyrT   r   rY   rW   r   r   <module>rp      sf    G G G G G G G G 1 1 1 1 1 1 9 9 9 9 9 9 9 9 / / / / / / @ @ @ @ @ @ 3 3 3 3 3 3 ' ' ' ' ' ' % % % % % % % % % % % % A A A A A A @ @ @ @ @ @ v{6:s##m m m m m m m m`	i i i i i i i i i ir   