# -*- coding: utf-8 -*-
# Generated by https://github.com/connectrpc/connect-python.  DO NOT EDIT!
# source: chatto/api/v1/account.proto

from collections.abc import AsyncGenerator, AsyncIterator, Iterable, Iterator, Mapping
from typing import Protocol

from connectrpc.client import ConnectClient, ConnectClientSync
from connectrpc.code import Code
from connectrpc.compression import Compression
from connectrpc.errors import ConnectError
from connectrpc.interceptor import Interceptor, InterceptorSync
from connectrpc.method import IdempotencyLevel, MethodInfo
from connectrpc.request import Headers, RequestContext
from connectrpc.server import ConnectASGIApplication, ConnectWSGIApplication, Endpoint, EndpointSync
import chatto.api.v1.account_pb2 as chatto_dot_api_dot_v1_dot_account__pb2
import chatto.api.v1.external_identities_pb2 as chatto_dot_api_dot_v1_dot_external__identities__pb2
import chatto.api.v1.presence_pb2 as chatto_dot_api_dot_v1_dot_presence__pb2
import chatto.api.v1.user_status_pb2 as chatto_dot_api_dot_v1_dot_user__status__pb2


class MyAccountService(Protocol):
    async def update_profile(self, request: chatto_dot_api_dot_v1_dot_account__pb2.UpdateProfileRequest, ctx: RequestContext) -> chatto_dot_api_dot_v1_dot_account__pb2.UpdateProfileResponse:
        raise ConnectError(Code.UNIMPLEMENTED, "Not implemented")

    async def upload_avatar(self, request: chatto_dot_api_dot_v1_dot_account__pb2.UploadAvatarRequest, ctx: RequestContext) -> chatto_dot_api_dot_v1_dot_account__pb2.UploadAvatarResponse:
        raise ConnectError(Code.UNIMPLEMENTED, "Not implemented")

    async def delete_avatar(self, request: chatto_dot_api_dot_v1_dot_account__pb2.DeleteAvatarRequest, ctx: RequestContext) -> chatto_dot_api_dot_v1_dot_account__pb2.DeleteAvatarResponse:
        raise ConnectError(Code.UNIMPLEMENTED, "Not implemented")

    async def update_password(self, request: chatto_dot_api_dot_v1_dot_account__pb2.UpdatePasswordRequest, ctx: RequestContext) -> chatto_dot_api_dot_v1_dot_account__pb2.UpdatePasswordResponse:
        raise ConnectError(Code.UNIMPLEMENTED, "Not implemented")

    async def update_settings(self, request: chatto_dot_api_dot_v1_dot_account__pb2.UpdateSettingsRequest, ctx: RequestContext) -> chatto_dot_api_dot_v1_dot_account__pb2.UpdateSettingsResponse:
        raise ConnectError(Code.UNIMPLEMENTED, "Not implemented")

    async def list_external_identities(self, request: chatto_dot_api_dot_v1_dot_external__identities__pb2.ListExternalIdentitiesRequest, ctx: RequestContext) -> chatto_dot_api_dot_v1_dot_external__identities__pb2.ListExternalIdentitiesResponse:
        raise ConnectError(Code.UNIMPLEMENTED, "Not implemented")

    async def start_external_identity_link(self, request: chatto_dot_api_dot_v1_dot_external__identities__pb2.StartExternalIdentityLinkRequest, ctx: RequestContext) -> chatto_dot_api_dot_v1_dot_external__identities__pb2.StartExternalIdentityLinkResponse:
        raise ConnectError(Code.UNIMPLEMENTED, "Not implemented")

    async def disconnect_external_identity(self, request: chatto_dot_api_dot_v1_dot_external__identities__pb2.DisconnectExternalIdentityRequest, ctx: RequestContext) -> chatto_dot_api_dot_v1_dot_external__identities__pb2.DisconnectExternalIdentityResponse:
        raise ConnectError(Code.UNIMPLEMENTED, "Not implemented")

    async def update_presence(self, request: chatto_dot_api_dot_v1_dot_presence__pb2.UpdatePresenceRequest, ctx: RequestContext) -> chatto_dot_api_dot_v1_dot_presence__pb2.UpdatePresenceResponse:
        raise ConnectError(Code.UNIMPLEMENTED, "Not implemented")

    async def update_custom_status(self, request: chatto_dot_api_dot_v1_dot_user__status__pb2.UpdateCustomStatusRequest, ctx: RequestContext) -> chatto_dot_api_dot_v1_dot_user__status__pb2.UpdateCustomStatusResponse:
        raise ConnectError(Code.UNIMPLEMENTED, "Not implemented")

    async def delete_custom_status(self, request: chatto_dot_api_dot_v1_dot_user__status__pb2.DeleteCustomStatusRequest, ctx: RequestContext) -> chatto_dot_api_dot_v1_dot_user__status__pb2.DeleteCustomStatusResponse:
        raise ConnectError(Code.UNIMPLEMENTED, "Not implemented")

    async def request_account_deletion(self, request: chatto_dot_api_dot_v1_dot_account__pb2.RequestAccountDeletionRequest, ctx: RequestContext) -> chatto_dot_api_dot_v1_dot_account__pb2.RequestAccountDeletionResponse:
        raise ConnectError(Code.UNIMPLEMENTED, "Not implemented")

    async def delete_my_account(self, request: chatto_dot_api_dot_v1_dot_account__pb2.DeleteMyAccountRequest, ctx: RequestContext) -> chatto_dot_api_dot_v1_dot_account__pb2.DeleteMyAccountResponse:
        raise ConnectError(Code.UNIMPLEMENTED, "Not implemented")


class MyAccountServiceASGIApplication(ConnectASGIApplication[MyAccountService]):
    def __init__(self, service: MyAccountService | AsyncGenerator[MyAccountService], *, interceptors: Iterable[Interceptor]=(), read_max_bytes: int | None = None, compressions: Iterable[Compression] | None = None) -> None:
        super().__init__(
            service=service,
            endpoints=lambda svc: {
                "/chatto.api.v1.MyAccountService/UpdateProfile": Endpoint.unary(
                    method=MethodInfo(
                        name="UpdateProfile",
                        service_name="chatto.api.v1.MyAccountService",
                        input=chatto_dot_api_dot_v1_dot_account__pb2.UpdateProfileRequest,
                        output=chatto_dot_api_dot_v1_dot_account__pb2.UpdateProfileResponse,
                        idempotency_level=IdempotencyLevel.UNKNOWN,
                    ),
                    function=svc.update_profile,
                ),
                "/chatto.api.v1.MyAccountService/UploadAvatar": Endpoint.unary(
                    method=MethodInfo(
                        name="UploadAvatar",
                        service_name="chatto.api.v1.MyAccountService",
                        input=chatto_dot_api_dot_v1_dot_account__pb2.UploadAvatarRequest,
                        output=chatto_dot_api_dot_v1_dot_account__pb2.UploadAvatarResponse,
                        idempotency_level=IdempotencyLevel.UNKNOWN,
                    ),
                    function=svc.upload_avatar,
                ),
                "/chatto.api.v1.MyAccountService/DeleteAvatar": Endpoint.unary(
                    method=MethodInfo(
                        name="DeleteAvatar",
                        service_name="chatto.api.v1.MyAccountService",
                        input=chatto_dot_api_dot_v1_dot_account__pb2.DeleteAvatarRequest,
                        output=chatto_dot_api_dot_v1_dot_account__pb2.DeleteAvatarResponse,
                        idempotency_level=IdempotencyLevel.UNKNOWN,
                    ),
                    function=svc.delete_avatar,
                ),
                "/chatto.api.v1.MyAccountService/UpdatePassword": Endpoint.unary(
                    method=MethodInfo(
                        name="UpdatePassword",
                        service_name="chatto.api.v1.MyAccountService",
                        input=chatto_dot_api_dot_v1_dot_account__pb2.UpdatePasswordRequest,
                        output=chatto_dot_api_dot_v1_dot_account__pb2.UpdatePasswordResponse,
                        idempotency_level=IdempotencyLevel.UNKNOWN,
                    ),
                    function=svc.update_password,
                ),
                "/chatto.api.v1.MyAccountService/UpdateSettings": Endpoint.unary(
                    method=MethodInfo(
                        name="UpdateSettings",
                        service_name="chatto.api.v1.MyAccountService",
                        input=chatto_dot_api_dot_v1_dot_account__pb2.UpdateSettingsRequest,
                        output=chatto_dot_api_dot_v1_dot_account__pb2.UpdateSettingsResponse,
                        idempotency_level=IdempotencyLevel.UNKNOWN,
                    ),
                    function=svc.update_settings,
                ),
                "/chatto.api.v1.MyAccountService/ListExternalIdentities": Endpoint.unary(
                    method=MethodInfo(
                        name="ListExternalIdentities",
                        service_name="chatto.api.v1.MyAccountService",
                        input=chatto_dot_api_dot_v1_dot_external__identities__pb2.ListExternalIdentitiesRequest,
                        output=chatto_dot_api_dot_v1_dot_external__identities__pb2.ListExternalIdentitiesResponse,
                        idempotency_level=IdempotencyLevel.UNKNOWN,
                    ),
                    function=svc.list_external_identities,
                ),
                "/chatto.api.v1.MyAccountService/StartExternalIdentityLink": Endpoint.unary(
                    method=MethodInfo(
                        name="StartExternalIdentityLink",
                        service_name="chatto.api.v1.MyAccountService",
                        input=chatto_dot_api_dot_v1_dot_external__identities__pb2.StartExternalIdentityLinkRequest,
                        output=chatto_dot_api_dot_v1_dot_external__identities__pb2.StartExternalIdentityLinkResponse,
                        idempotency_level=IdempotencyLevel.UNKNOWN,
                    ),
                    function=svc.start_external_identity_link,
                ),
                "/chatto.api.v1.MyAccountService/DisconnectExternalIdentity": Endpoint.unary(
                    method=MethodInfo(
                        name="DisconnectExternalIdentity",
                        service_name="chatto.api.v1.MyAccountService",
                        input=chatto_dot_api_dot_v1_dot_external__identities__pb2.DisconnectExternalIdentityRequest,
                        output=chatto_dot_api_dot_v1_dot_external__identities__pb2.DisconnectExternalIdentityResponse,
                        idempotency_level=IdempotencyLevel.UNKNOWN,
                    ),
                    function=svc.disconnect_external_identity,
                ),
                "/chatto.api.v1.MyAccountService/UpdatePresence": Endpoint.unary(
                    method=MethodInfo(
                        name="UpdatePresence",
                        service_name="chatto.api.v1.MyAccountService",
                        input=chatto_dot_api_dot_v1_dot_presence__pb2.UpdatePresenceRequest,
                        output=chatto_dot_api_dot_v1_dot_presence__pb2.UpdatePresenceResponse,
                        idempotency_level=IdempotencyLevel.UNKNOWN,
                    ),
                    function=svc.update_presence,
                ),
                "/chatto.api.v1.MyAccountService/UpdateCustomStatus": Endpoint.unary(
                    method=MethodInfo(
                        name="UpdateCustomStatus",
                        service_name="chatto.api.v1.MyAccountService",
                        input=chatto_dot_api_dot_v1_dot_user__status__pb2.UpdateCustomStatusRequest,
                        output=chatto_dot_api_dot_v1_dot_user__status__pb2.UpdateCustomStatusResponse,
                        idempotency_level=IdempotencyLevel.UNKNOWN,
                    ),
                    function=svc.update_custom_status,
                ),
                "/chatto.api.v1.MyAccountService/DeleteCustomStatus": Endpoint.unary(
                    method=MethodInfo(
                        name="DeleteCustomStatus",
                        service_name="chatto.api.v1.MyAccountService",
                        input=chatto_dot_api_dot_v1_dot_user__status__pb2.DeleteCustomStatusRequest,
                        output=chatto_dot_api_dot_v1_dot_user__status__pb2.DeleteCustomStatusResponse,
                        idempotency_level=IdempotencyLevel.UNKNOWN,
                    ),
                    function=svc.delete_custom_status,
                ),
                "/chatto.api.v1.MyAccountService/RequestAccountDeletion": Endpoint.unary(
                    method=MethodInfo(
                        name="RequestAccountDeletion",
                        service_name="chatto.api.v1.MyAccountService",
                        input=chatto_dot_api_dot_v1_dot_account__pb2.RequestAccountDeletionRequest,
                        output=chatto_dot_api_dot_v1_dot_account__pb2.RequestAccountDeletionResponse,
                        idempotency_level=IdempotencyLevel.UNKNOWN,
                    ),
                    function=svc.request_account_deletion,
                ),
                "/chatto.api.v1.MyAccountService/DeleteMyAccount": Endpoint.unary(
                    method=MethodInfo(
                        name="DeleteMyAccount",
                        service_name="chatto.api.v1.MyAccountService",
                        input=chatto_dot_api_dot_v1_dot_account__pb2.DeleteMyAccountRequest,
                        output=chatto_dot_api_dot_v1_dot_account__pb2.DeleteMyAccountResponse,
                        idempotency_level=IdempotencyLevel.UNKNOWN,
                    ),
                    function=svc.delete_my_account,
                ),
            },
            interceptors=interceptors,
            read_max_bytes=read_max_bytes,
            compressions=compressions,
        )

    @property
    def path(self) -> str:
        """Returns the URL path to mount the application to when serving multiple applications."""
        return "/chatto.api.v1.MyAccountService"


class MyAccountServiceClient(ConnectClient):
    async def update_profile(
        self,
        request: chatto_dot_api_dot_v1_dot_account__pb2.UpdateProfileRequest,
        *,
        headers: Headers | Mapping[str, str] | None = None,
        timeout_ms: int | None = None,
    ) -> chatto_dot_api_dot_v1_dot_account__pb2.UpdateProfileResponse:
        return await self.execute_unary(
            request=request,
            method=MethodInfo(
                name="UpdateProfile",
                service_name="chatto.api.v1.MyAccountService",
                input=chatto_dot_api_dot_v1_dot_account__pb2.UpdateProfileRequest,
                output=chatto_dot_api_dot_v1_dot_account__pb2.UpdateProfileResponse,
                idempotency_level=IdempotencyLevel.UNKNOWN,
            ),
            headers=headers,
            timeout_ms=timeout_ms,
        )

    async def upload_avatar(
        self,
        request: chatto_dot_api_dot_v1_dot_account__pb2.UploadAvatarRequest,
        *,
        headers: Headers | Mapping[str, str] | None = None,
        timeout_ms: int | None = None,
    ) -> chatto_dot_api_dot_v1_dot_account__pb2.UploadAvatarResponse:
        return await self.execute_unary(
            request=request,
            method=MethodInfo(
                name="UploadAvatar",
                service_name="chatto.api.v1.MyAccountService",
                input=chatto_dot_api_dot_v1_dot_account__pb2.UploadAvatarRequest,
                output=chatto_dot_api_dot_v1_dot_account__pb2.UploadAvatarResponse,
                idempotency_level=IdempotencyLevel.UNKNOWN,
            ),
            headers=headers,
            timeout_ms=timeout_ms,
        )

    async def delete_avatar(
        self,
        request: chatto_dot_api_dot_v1_dot_account__pb2.DeleteAvatarRequest,
        *,
        headers: Headers | Mapping[str, str] | None = None,
        timeout_ms: int | None = None,
    ) -> chatto_dot_api_dot_v1_dot_account__pb2.DeleteAvatarResponse:
        return await self.execute_unary(
            request=request,
            method=MethodInfo(
                name="DeleteAvatar",
                service_name="chatto.api.v1.MyAccountService",
                input=chatto_dot_api_dot_v1_dot_account__pb2.DeleteAvatarRequest,
                output=chatto_dot_api_dot_v1_dot_account__pb2.DeleteAvatarResponse,
                idempotency_level=IdempotencyLevel.UNKNOWN,
            ),
            headers=headers,
            timeout_ms=timeout_ms,
        )

    async def update_password(
        self,
        request: chatto_dot_api_dot_v1_dot_account__pb2.UpdatePasswordRequest,
        *,
        headers: Headers | Mapping[str, str] | None = None,
        timeout_ms: int | None = None,
    ) -> chatto_dot_api_dot_v1_dot_account__pb2.UpdatePasswordResponse:
        return await self.execute_unary(
            request=request,
            method=MethodInfo(
                name="UpdatePassword",
                service_name="chatto.api.v1.MyAccountService",
                input=chatto_dot_api_dot_v1_dot_account__pb2.UpdatePasswordRequest,
                output=chatto_dot_api_dot_v1_dot_account__pb2.UpdatePasswordResponse,
                idempotency_level=IdempotencyLevel.UNKNOWN,
            ),
            headers=headers,
            timeout_ms=timeout_ms,
        )

    async def update_settings(
        self,
        request: chatto_dot_api_dot_v1_dot_account__pb2.UpdateSettingsRequest,
        *,
        headers: Headers | Mapping[str, str] | None = None,
        timeout_ms: int | None = None,
    ) -> chatto_dot_api_dot_v1_dot_account__pb2.UpdateSettingsResponse:
        return await self.execute_unary(
            request=request,
            method=MethodInfo(
                name="UpdateSettings",
                service_name="chatto.api.v1.MyAccountService",
                input=chatto_dot_api_dot_v1_dot_account__pb2.UpdateSettingsRequest,
                output=chatto_dot_api_dot_v1_dot_account__pb2.UpdateSettingsResponse,
                idempotency_level=IdempotencyLevel.UNKNOWN,
            ),
            headers=headers,
            timeout_ms=timeout_ms,
        )

    async def list_external_identities(
        self,
        request: chatto_dot_api_dot_v1_dot_external__identities__pb2.ListExternalIdentitiesRequest,
        *,
        headers: Headers | Mapping[str, str] | None = None,
        timeout_ms: int | None = None,
    ) -> chatto_dot_api_dot_v1_dot_external__identities__pb2.ListExternalIdentitiesResponse:
        return await self.execute_unary(
            request=request,
            method=MethodInfo(
                name="ListExternalIdentities",
                service_name="chatto.api.v1.MyAccountService",
                input=chatto_dot_api_dot_v1_dot_external__identities__pb2.ListExternalIdentitiesRequest,
                output=chatto_dot_api_dot_v1_dot_external__identities__pb2.ListExternalIdentitiesResponse,
                idempotency_level=IdempotencyLevel.UNKNOWN,
            ),
            headers=headers,
            timeout_ms=timeout_ms,
        )

    async def start_external_identity_link(
        self,
        request: chatto_dot_api_dot_v1_dot_external__identities__pb2.StartExternalIdentityLinkRequest,
        *,
        headers: Headers | Mapping[str, str] | None = None,
        timeout_ms: int | None = None,
    ) -> chatto_dot_api_dot_v1_dot_external__identities__pb2.StartExternalIdentityLinkResponse:
        return await self.execute_unary(
            request=request,
            method=MethodInfo(
                name="StartExternalIdentityLink",
                service_name="chatto.api.v1.MyAccountService",
                input=chatto_dot_api_dot_v1_dot_external__identities__pb2.StartExternalIdentityLinkRequest,
                output=chatto_dot_api_dot_v1_dot_external__identities__pb2.StartExternalIdentityLinkResponse,
                idempotency_level=IdempotencyLevel.UNKNOWN,
            ),
            headers=headers,
            timeout_ms=timeout_ms,
        )

    async def disconnect_external_identity(
        self,
        request: chatto_dot_api_dot_v1_dot_external__identities__pb2.DisconnectExternalIdentityRequest,
        *,
        headers: Headers | Mapping[str, str] | None = None,
        timeout_ms: int | None = None,
    ) -> chatto_dot_api_dot_v1_dot_external__identities__pb2.DisconnectExternalIdentityResponse:
        return await self.execute_unary(
            request=request,
            method=MethodInfo(
                name="DisconnectExternalIdentity",
                service_name="chatto.api.v1.MyAccountService",
                input=chatto_dot_api_dot_v1_dot_external__identities__pb2.DisconnectExternalIdentityRequest,
                output=chatto_dot_api_dot_v1_dot_external__identities__pb2.DisconnectExternalIdentityResponse,
                idempotency_level=IdempotencyLevel.UNKNOWN,
            ),
            headers=headers,
            timeout_ms=timeout_ms,
        )

    async def update_presence(
        self,
        request: chatto_dot_api_dot_v1_dot_presence__pb2.UpdatePresenceRequest,
        *,
        headers: Headers | Mapping[str, str] | None = None,
        timeout_ms: int | None = None,
    ) -> chatto_dot_api_dot_v1_dot_presence__pb2.UpdatePresenceResponse:
        return await self.execute_unary(
            request=request,
            method=MethodInfo(
                name="UpdatePresence",
                service_name="chatto.api.v1.MyAccountService",
                input=chatto_dot_api_dot_v1_dot_presence__pb2.UpdatePresenceRequest,
                output=chatto_dot_api_dot_v1_dot_presence__pb2.UpdatePresenceResponse,
                idempotency_level=IdempotencyLevel.UNKNOWN,
            ),
            headers=headers,
            timeout_ms=timeout_ms,
        )

    async def update_custom_status(
        self,
        request: chatto_dot_api_dot_v1_dot_user__status__pb2.UpdateCustomStatusRequest,
        *,
        headers: Headers | Mapping[str, str] | None = None,
        timeout_ms: int | None = None,
    ) -> chatto_dot_api_dot_v1_dot_user__status__pb2.UpdateCustomStatusResponse:
        return await self.execute_unary(
            request=request,
            method=MethodInfo(
                name="UpdateCustomStatus",
                service_name="chatto.api.v1.MyAccountService",
                input=chatto_dot_api_dot_v1_dot_user__status__pb2.UpdateCustomStatusRequest,
                output=chatto_dot_api_dot_v1_dot_user__status__pb2.UpdateCustomStatusResponse,
                idempotency_level=IdempotencyLevel.UNKNOWN,
            ),
            headers=headers,
            timeout_ms=timeout_ms,
        )

    async def delete_custom_status(
        self,
        request: chatto_dot_api_dot_v1_dot_user__status__pb2.DeleteCustomStatusRequest,
        *,
        headers: Headers | Mapping[str, str] | None = None,
        timeout_ms: int | None = None,
    ) -> chatto_dot_api_dot_v1_dot_user__status__pb2.DeleteCustomStatusResponse:
        return await self.execute_unary(
            request=request,
            method=MethodInfo(
                name="DeleteCustomStatus",
                service_name="chatto.api.v1.MyAccountService",
                input=chatto_dot_api_dot_v1_dot_user__status__pb2.DeleteCustomStatusRequest,
                output=chatto_dot_api_dot_v1_dot_user__status__pb2.DeleteCustomStatusResponse,
                idempotency_level=IdempotencyLevel.UNKNOWN,
            ),
            headers=headers,
            timeout_ms=timeout_ms,
        )

    async def request_account_deletion(
        self,
        request: chatto_dot_api_dot_v1_dot_account__pb2.RequestAccountDeletionRequest,
        *,
        headers: Headers | Mapping[str, str] | None = None,
        timeout_ms: int | None = None,
    ) -> chatto_dot_api_dot_v1_dot_account__pb2.RequestAccountDeletionResponse:
        return await self.execute_unary(
            request=request,
            method=MethodInfo(
                name="RequestAccountDeletion",
                service_name="chatto.api.v1.MyAccountService",
                input=chatto_dot_api_dot_v1_dot_account__pb2.RequestAccountDeletionRequest,
                output=chatto_dot_api_dot_v1_dot_account__pb2.RequestAccountDeletionResponse,
                idempotency_level=IdempotencyLevel.UNKNOWN,
            ),
            headers=headers,
            timeout_ms=timeout_ms,
        )

    async def delete_my_account(
        self,
        request: chatto_dot_api_dot_v1_dot_account__pb2.DeleteMyAccountRequest,
        *,
        headers: Headers | Mapping[str, str] | None = None,
        timeout_ms: int | None = None,
    ) -> chatto_dot_api_dot_v1_dot_account__pb2.DeleteMyAccountResponse:
        return await self.execute_unary(
            request=request,
            method=MethodInfo(
                name="DeleteMyAccount",
                service_name="chatto.api.v1.MyAccountService",
                input=chatto_dot_api_dot_v1_dot_account__pb2.DeleteMyAccountRequest,
                output=chatto_dot_api_dot_v1_dot_account__pb2.DeleteMyAccountResponse,
                idempotency_level=IdempotencyLevel.UNKNOWN,
            ),
            headers=headers,
            timeout_ms=timeout_ms,
        )


class MyAccountServiceSync(Protocol):
    def update_profile(self, request: chatto_dot_api_dot_v1_dot_account__pb2.UpdateProfileRequest, ctx: RequestContext) -> chatto_dot_api_dot_v1_dot_account__pb2.UpdateProfileResponse:
        raise ConnectError(Code.UNIMPLEMENTED, "Not implemented")
    def upload_avatar(self, request: chatto_dot_api_dot_v1_dot_account__pb2.UploadAvatarRequest, ctx: RequestContext) -> chatto_dot_api_dot_v1_dot_account__pb2.UploadAvatarResponse:
        raise ConnectError(Code.UNIMPLEMENTED, "Not implemented")
    def delete_avatar(self, request: chatto_dot_api_dot_v1_dot_account__pb2.DeleteAvatarRequest, ctx: RequestContext) -> chatto_dot_api_dot_v1_dot_account__pb2.DeleteAvatarResponse:
        raise ConnectError(Code.UNIMPLEMENTED, "Not implemented")
    def update_password(self, request: chatto_dot_api_dot_v1_dot_account__pb2.UpdatePasswordRequest, ctx: RequestContext) -> chatto_dot_api_dot_v1_dot_account__pb2.UpdatePasswordResponse:
        raise ConnectError(Code.UNIMPLEMENTED, "Not implemented")
    def update_settings(self, request: chatto_dot_api_dot_v1_dot_account__pb2.UpdateSettingsRequest, ctx: RequestContext) -> chatto_dot_api_dot_v1_dot_account__pb2.UpdateSettingsResponse:
        raise ConnectError(Code.UNIMPLEMENTED, "Not implemented")
    def list_external_identities(self, request: chatto_dot_api_dot_v1_dot_external__identities__pb2.ListExternalIdentitiesRequest, ctx: RequestContext) -> chatto_dot_api_dot_v1_dot_external__identities__pb2.ListExternalIdentitiesResponse:
        raise ConnectError(Code.UNIMPLEMENTED, "Not implemented")
    def start_external_identity_link(self, request: chatto_dot_api_dot_v1_dot_external__identities__pb2.StartExternalIdentityLinkRequest, ctx: RequestContext) -> chatto_dot_api_dot_v1_dot_external__identities__pb2.StartExternalIdentityLinkResponse:
        raise ConnectError(Code.UNIMPLEMENTED, "Not implemented")
    def disconnect_external_identity(self, request: chatto_dot_api_dot_v1_dot_external__identities__pb2.DisconnectExternalIdentityRequest, ctx: RequestContext) -> chatto_dot_api_dot_v1_dot_external__identities__pb2.DisconnectExternalIdentityResponse:
        raise ConnectError(Code.UNIMPLEMENTED, "Not implemented")
    def update_presence(self, request: chatto_dot_api_dot_v1_dot_presence__pb2.UpdatePresenceRequest, ctx: RequestContext) -> chatto_dot_api_dot_v1_dot_presence__pb2.UpdatePresenceResponse:
        raise ConnectError(Code.UNIMPLEMENTED, "Not implemented")
    def update_custom_status(self, request: chatto_dot_api_dot_v1_dot_user__status__pb2.UpdateCustomStatusRequest, ctx: RequestContext) -> chatto_dot_api_dot_v1_dot_user__status__pb2.UpdateCustomStatusResponse:
        raise ConnectError(Code.UNIMPLEMENTED, "Not implemented")
    def delete_custom_status(self, request: chatto_dot_api_dot_v1_dot_user__status__pb2.DeleteCustomStatusRequest, ctx: RequestContext) -> chatto_dot_api_dot_v1_dot_user__status__pb2.DeleteCustomStatusResponse:
        raise ConnectError(Code.UNIMPLEMENTED, "Not implemented")
    def request_account_deletion(self, request: chatto_dot_api_dot_v1_dot_account__pb2.RequestAccountDeletionRequest, ctx: RequestContext) -> chatto_dot_api_dot_v1_dot_account__pb2.RequestAccountDeletionResponse:
        raise ConnectError(Code.UNIMPLEMENTED, "Not implemented")
    def delete_my_account(self, request: chatto_dot_api_dot_v1_dot_account__pb2.DeleteMyAccountRequest, ctx: RequestContext) -> chatto_dot_api_dot_v1_dot_account__pb2.DeleteMyAccountResponse:
        raise ConnectError(Code.UNIMPLEMENTED, "Not implemented")


class MyAccountServiceWSGIApplication(ConnectWSGIApplication):
    def __init__(self, service: MyAccountServiceSync, interceptors: Iterable[InterceptorSync]=(), read_max_bytes: int | None = None, compressions: Iterable[Compression] | None = None) -> None:
        super().__init__(
            endpoints={
                "/chatto.api.v1.MyAccountService/UpdateProfile": EndpointSync.unary(
                    method=MethodInfo(
                        name="UpdateProfile",
                        service_name="chatto.api.v1.MyAccountService",
                        input=chatto_dot_api_dot_v1_dot_account__pb2.UpdateProfileRequest,
                        output=chatto_dot_api_dot_v1_dot_account__pb2.UpdateProfileResponse,
                        idempotency_level=IdempotencyLevel.UNKNOWN,
                    ),
                    function=service.update_profile,
                ),
                "/chatto.api.v1.MyAccountService/UploadAvatar": EndpointSync.unary(
                    method=MethodInfo(
                        name="UploadAvatar",
                        service_name="chatto.api.v1.MyAccountService",
                        input=chatto_dot_api_dot_v1_dot_account__pb2.UploadAvatarRequest,
                        output=chatto_dot_api_dot_v1_dot_account__pb2.UploadAvatarResponse,
                        idempotency_level=IdempotencyLevel.UNKNOWN,
                    ),
                    function=service.upload_avatar,
                ),
                "/chatto.api.v1.MyAccountService/DeleteAvatar": EndpointSync.unary(
                    method=MethodInfo(
                        name="DeleteAvatar",
                        service_name="chatto.api.v1.MyAccountService",
                        input=chatto_dot_api_dot_v1_dot_account__pb2.DeleteAvatarRequest,
                        output=chatto_dot_api_dot_v1_dot_account__pb2.DeleteAvatarResponse,
                        idempotency_level=IdempotencyLevel.UNKNOWN,
                    ),
                    function=service.delete_avatar,
                ),
                "/chatto.api.v1.MyAccountService/UpdatePassword": EndpointSync.unary(
                    method=MethodInfo(
                        name="UpdatePassword",
                        service_name="chatto.api.v1.MyAccountService",
                        input=chatto_dot_api_dot_v1_dot_account__pb2.UpdatePasswordRequest,
                        output=chatto_dot_api_dot_v1_dot_account__pb2.UpdatePasswordResponse,
                        idempotency_level=IdempotencyLevel.UNKNOWN,
                    ),
                    function=service.update_password,
                ),
                "/chatto.api.v1.MyAccountService/UpdateSettings": EndpointSync.unary(
                    method=MethodInfo(
                        name="UpdateSettings",
                        service_name="chatto.api.v1.MyAccountService",
                        input=chatto_dot_api_dot_v1_dot_account__pb2.UpdateSettingsRequest,
                        output=chatto_dot_api_dot_v1_dot_account__pb2.UpdateSettingsResponse,
                        idempotency_level=IdempotencyLevel.UNKNOWN,
                    ),
                    function=service.update_settings,
                ),
                "/chatto.api.v1.MyAccountService/ListExternalIdentities": EndpointSync.unary(
                    method=MethodInfo(
                        name="ListExternalIdentities",
                        service_name="chatto.api.v1.MyAccountService",
                        input=chatto_dot_api_dot_v1_dot_external__identities__pb2.ListExternalIdentitiesRequest,
                        output=chatto_dot_api_dot_v1_dot_external__identities__pb2.ListExternalIdentitiesResponse,
                        idempotency_level=IdempotencyLevel.UNKNOWN,
                    ),
                    function=service.list_external_identities,
                ),
                "/chatto.api.v1.MyAccountService/StartExternalIdentityLink": EndpointSync.unary(
                    method=MethodInfo(
                        name="StartExternalIdentityLink",
                        service_name="chatto.api.v1.MyAccountService",
                        input=chatto_dot_api_dot_v1_dot_external__identities__pb2.StartExternalIdentityLinkRequest,
                        output=chatto_dot_api_dot_v1_dot_external__identities__pb2.StartExternalIdentityLinkResponse,
                        idempotency_level=IdempotencyLevel.UNKNOWN,
                    ),
                    function=service.start_external_identity_link,
                ),
                "/chatto.api.v1.MyAccountService/DisconnectExternalIdentity": EndpointSync.unary(
                    method=MethodInfo(
                        name="DisconnectExternalIdentity",
                        service_name="chatto.api.v1.MyAccountService",
                        input=chatto_dot_api_dot_v1_dot_external__identities__pb2.DisconnectExternalIdentityRequest,
                        output=chatto_dot_api_dot_v1_dot_external__identities__pb2.DisconnectExternalIdentityResponse,
                        idempotency_level=IdempotencyLevel.UNKNOWN,
                    ),
                    function=service.disconnect_external_identity,
                ),
                "/chatto.api.v1.MyAccountService/UpdatePresence": EndpointSync.unary(
                    method=MethodInfo(
                        name="UpdatePresence",
                        service_name="chatto.api.v1.MyAccountService",
                        input=chatto_dot_api_dot_v1_dot_presence__pb2.UpdatePresenceRequest,
                        output=chatto_dot_api_dot_v1_dot_presence__pb2.UpdatePresenceResponse,
                        idempotency_level=IdempotencyLevel.UNKNOWN,
                    ),
                    function=service.update_presence,
                ),
                "/chatto.api.v1.MyAccountService/UpdateCustomStatus": EndpointSync.unary(
                    method=MethodInfo(
                        name="UpdateCustomStatus",
                        service_name="chatto.api.v1.MyAccountService",
                        input=chatto_dot_api_dot_v1_dot_user__status__pb2.UpdateCustomStatusRequest,
                        output=chatto_dot_api_dot_v1_dot_user__status__pb2.UpdateCustomStatusResponse,
                        idempotency_level=IdempotencyLevel.UNKNOWN,
                    ),
                    function=service.update_custom_status,
                ),
                "/chatto.api.v1.MyAccountService/DeleteCustomStatus": EndpointSync.unary(
                    method=MethodInfo(
                        name="DeleteCustomStatus",
                        service_name="chatto.api.v1.MyAccountService",
                        input=chatto_dot_api_dot_v1_dot_user__status__pb2.DeleteCustomStatusRequest,
                        output=chatto_dot_api_dot_v1_dot_user__status__pb2.DeleteCustomStatusResponse,
                        idempotency_level=IdempotencyLevel.UNKNOWN,
                    ),
                    function=service.delete_custom_status,
                ),
                "/chatto.api.v1.MyAccountService/RequestAccountDeletion": EndpointSync.unary(
                    method=MethodInfo(
                        name="RequestAccountDeletion",
                        service_name="chatto.api.v1.MyAccountService",
                        input=chatto_dot_api_dot_v1_dot_account__pb2.RequestAccountDeletionRequest,
                        output=chatto_dot_api_dot_v1_dot_account__pb2.RequestAccountDeletionResponse,
                        idempotency_level=IdempotencyLevel.UNKNOWN,
                    ),
                    function=service.request_account_deletion,
                ),
                "/chatto.api.v1.MyAccountService/DeleteMyAccount": EndpointSync.unary(
                    method=MethodInfo(
                        name="DeleteMyAccount",
                        service_name="chatto.api.v1.MyAccountService",
                        input=chatto_dot_api_dot_v1_dot_account__pb2.DeleteMyAccountRequest,
                        output=chatto_dot_api_dot_v1_dot_account__pb2.DeleteMyAccountResponse,
                        idempotency_level=IdempotencyLevel.UNKNOWN,
                    ),
                    function=service.delete_my_account,
                ),
            },
            interceptors=interceptors,
            read_max_bytes=read_max_bytes,
            compressions=compressions,
        )

    @property
    def path(self) -> str:
        """Returns the URL path to mount the application to when serving multiple applications."""
        return "/chatto.api.v1.MyAccountService"


class MyAccountServiceClientSync(ConnectClientSync):
    def update_profile(
        self,
        request: chatto_dot_api_dot_v1_dot_account__pb2.UpdateProfileRequest,
        *,
        headers: Headers | Mapping[str, str] | None = None,
        timeout_ms: int | None = None,
    ) -> chatto_dot_api_dot_v1_dot_account__pb2.UpdateProfileResponse:
        return self.execute_unary(
            request=request,
            method=MethodInfo(
                name="UpdateProfile",
                service_name="chatto.api.v1.MyAccountService",
                input=chatto_dot_api_dot_v1_dot_account__pb2.UpdateProfileRequest,
                output=chatto_dot_api_dot_v1_dot_account__pb2.UpdateProfileResponse,
                idempotency_level=IdempotencyLevel.UNKNOWN,
            ),
            headers=headers,
            timeout_ms=timeout_ms,
        )

    def upload_avatar(
        self,
        request: chatto_dot_api_dot_v1_dot_account__pb2.UploadAvatarRequest,
        *,
        headers: Headers | Mapping[str, str] | None = None,
        timeout_ms: int | None = None,
    ) -> chatto_dot_api_dot_v1_dot_account__pb2.UploadAvatarResponse:
        return self.execute_unary(
            request=request,
            method=MethodInfo(
                name="UploadAvatar",
                service_name="chatto.api.v1.MyAccountService",
                input=chatto_dot_api_dot_v1_dot_account__pb2.UploadAvatarRequest,
                output=chatto_dot_api_dot_v1_dot_account__pb2.UploadAvatarResponse,
                idempotency_level=IdempotencyLevel.UNKNOWN,
            ),
            headers=headers,
            timeout_ms=timeout_ms,
        )

    def delete_avatar(
        self,
        request: chatto_dot_api_dot_v1_dot_account__pb2.DeleteAvatarRequest,
        *,
        headers: Headers | Mapping[str, str] | None = None,
        timeout_ms: int | None = None,
    ) -> chatto_dot_api_dot_v1_dot_account__pb2.DeleteAvatarResponse:
        return self.execute_unary(
            request=request,
            method=MethodInfo(
                name="DeleteAvatar",
                service_name="chatto.api.v1.MyAccountService",
                input=chatto_dot_api_dot_v1_dot_account__pb2.DeleteAvatarRequest,
                output=chatto_dot_api_dot_v1_dot_account__pb2.DeleteAvatarResponse,
                idempotency_level=IdempotencyLevel.UNKNOWN,
            ),
            headers=headers,
            timeout_ms=timeout_ms,
        )

    def update_password(
        self,
        request: chatto_dot_api_dot_v1_dot_account__pb2.UpdatePasswordRequest,
        *,
        headers: Headers | Mapping[str, str] | None = None,
        timeout_ms: int | None = None,
    ) -> chatto_dot_api_dot_v1_dot_account__pb2.UpdatePasswordResponse:
        return self.execute_unary(
            request=request,
            method=MethodInfo(
                name="UpdatePassword",
                service_name="chatto.api.v1.MyAccountService",
                input=chatto_dot_api_dot_v1_dot_account__pb2.UpdatePasswordRequest,
                output=chatto_dot_api_dot_v1_dot_account__pb2.UpdatePasswordResponse,
                idempotency_level=IdempotencyLevel.UNKNOWN,
            ),
            headers=headers,
            timeout_ms=timeout_ms,
        )

    def update_settings(
        self,
        request: chatto_dot_api_dot_v1_dot_account__pb2.UpdateSettingsRequest,
        *,
        headers: Headers | Mapping[str, str] | None = None,
        timeout_ms: int | None = None,
    ) -> chatto_dot_api_dot_v1_dot_account__pb2.UpdateSettingsResponse:
        return self.execute_unary(
            request=request,
            method=MethodInfo(
                name="UpdateSettings",
                service_name="chatto.api.v1.MyAccountService",
                input=chatto_dot_api_dot_v1_dot_account__pb2.UpdateSettingsRequest,
                output=chatto_dot_api_dot_v1_dot_account__pb2.UpdateSettingsResponse,
                idempotency_level=IdempotencyLevel.UNKNOWN,
            ),
            headers=headers,
            timeout_ms=timeout_ms,
        )

    def list_external_identities(
        self,
        request: chatto_dot_api_dot_v1_dot_external__identities__pb2.ListExternalIdentitiesRequest,
        *,
        headers: Headers | Mapping[str, str] | None = None,
        timeout_ms: int | None = None,
    ) -> chatto_dot_api_dot_v1_dot_external__identities__pb2.ListExternalIdentitiesResponse:
        return self.execute_unary(
            request=request,
            method=MethodInfo(
                name="ListExternalIdentities",
                service_name="chatto.api.v1.MyAccountService",
                input=chatto_dot_api_dot_v1_dot_external__identities__pb2.ListExternalIdentitiesRequest,
                output=chatto_dot_api_dot_v1_dot_external__identities__pb2.ListExternalIdentitiesResponse,
                idempotency_level=IdempotencyLevel.UNKNOWN,
            ),
            headers=headers,
            timeout_ms=timeout_ms,
        )

    def start_external_identity_link(
        self,
        request: chatto_dot_api_dot_v1_dot_external__identities__pb2.StartExternalIdentityLinkRequest,
        *,
        headers: Headers | Mapping[str, str] | None = None,
        timeout_ms: int | None = None,
    ) -> chatto_dot_api_dot_v1_dot_external__identities__pb2.StartExternalIdentityLinkResponse:
        return self.execute_unary(
            request=request,
            method=MethodInfo(
                name="StartExternalIdentityLink",
                service_name="chatto.api.v1.MyAccountService",
                input=chatto_dot_api_dot_v1_dot_external__identities__pb2.StartExternalIdentityLinkRequest,
                output=chatto_dot_api_dot_v1_dot_external__identities__pb2.StartExternalIdentityLinkResponse,
                idempotency_level=IdempotencyLevel.UNKNOWN,
            ),
            headers=headers,
            timeout_ms=timeout_ms,
        )

    def disconnect_external_identity(
        self,
        request: chatto_dot_api_dot_v1_dot_external__identities__pb2.DisconnectExternalIdentityRequest,
        *,
        headers: Headers | Mapping[str, str] | None = None,
        timeout_ms: int | None = None,
    ) -> chatto_dot_api_dot_v1_dot_external__identities__pb2.DisconnectExternalIdentityResponse:
        return self.execute_unary(
            request=request,
            method=MethodInfo(
                name="DisconnectExternalIdentity",
                service_name="chatto.api.v1.MyAccountService",
                input=chatto_dot_api_dot_v1_dot_external__identities__pb2.DisconnectExternalIdentityRequest,
                output=chatto_dot_api_dot_v1_dot_external__identities__pb2.DisconnectExternalIdentityResponse,
                idempotency_level=IdempotencyLevel.UNKNOWN,
            ),
            headers=headers,
            timeout_ms=timeout_ms,
        )

    def update_presence(
        self,
        request: chatto_dot_api_dot_v1_dot_presence__pb2.UpdatePresenceRequest,
        *,
        headers: Headers | Mapping[str, str] | None = None,
        timeout_ms: int | None = None,
    ) -> chatto_dot_api_dot_v1_dot_presence__pb2.UpdatePresenceResponse:
        return self.execute_unary(
            request=request,
            method=MethodInfo(
                name="UpdatePresence",
                service_name="chatto.api.v1.MyAccountService",
                input=chatto_dot_api_dot_v1_dot_presence__pb2.UpdatePresenceRequest,
                output=chatto_dot_api_dot_v1_dot_presence__pb2.UpdatePresenceResponse,
                idempotency_level=IdempotencyLevel.UNKNOWN,
            ),
            headers=headers,
            timeout_ms=timeout_ms,
        )

    def update_custom_status(
        self,
        request: chatto_dot_api_dot_v1_dot_user__status__pb2.UpdateCustomStatusRequest,
        *,
        headers: Headers | Mapping[str, str] | None = None,
        timeout_ms: int | None = None,
    ) -> chatto_dot_api_dot_v1_dot_user__status__pb2.UpdateCustomStatusResponse:
        return self.execute_unary(
            request=request,
            method=MethodInfo(
                name="UpdateCustomStatus",
                service_name="chatto.api.v1.MyAccountService",
                input=chatto_dot_api_dot_v1_dot_user__status__pb2.UpdateCustomStatusRequest,
                output=chatto_dot_api_dot_v1_dot_user__status__pb2.UpdateCustomStatusResponse,
                idempotency_level=IdempotencyLevel.UNKNOWN,
            ),
            headers=headers,
            timeout_ms=timeout_ms,
        )

    def delete_custom_status(
        self,
        request: chatto_dot_api_dot_v1_dot_user__status__pb2.DeleteCustomStatusRequest,
        *,
        headers: Headers | Mapping[str, str] | None = None,
        timeout_ms: int | None = None,
    ) -> chatto_dot_api_dot_v1_dot_user__status__pb2.DeleteCustomStatusResponse:
        return self.execute_unary(
            request=request,
            method=MethodInfo(
                name="DeleteCustomStatus",
                service_name="chatto.api.v1.MyAccountService",
                input=chatto_dot_api_dot_v1_dot_user__status__pb2.DeleteCustomStatusRequest,
                output=chatto_dot_api_dot_v1_dot_user__status__pb2.DeleteCustomStatusResponse,
                idempotency_level=IdempotencyLevel.UNKNOWN,
            ),
            headers=headers,
            timeout_ms=timeout_ms,
        )

    def request_account_deletion(
        self,
        request: chatto_dot_api_dot_v1_dot_account__pb2.RequestAccountDeletionRequest,
        *,
        headers: Headers | Mapping[str, str] | None = None,
        timeout_ms: int | None = None,
    ) -> chatto_dot_api_dot_v1_dot_account__pb2.RequestAccountDeletionResponse:
        return self.execute_unary(
            request=request,
            method=MethodInfo(
                name="RequestAccountDeletion",
                service_name="chatto.api.v1.MyAccountService",
                input=chatto_dot_api_dot_v1_dot_account__pb2.RequestAccountDeletionRequest,
                output=chatto_dot_api_dot_v1_dot_account__pb2.RequestAccountDeletionResponse,
                idempotency_level=IdempotencyLevel.UNKNOWN,
            ),
            headers=headers,
            timeout_ms=timeout_ms,
        )

    def delete_my_account(
        self,
        request: chatto_dot_api_dot_v1_dot_account__pb2.DeleteMyAccountRequest,
        *,
        headers: Headers | Mapping[str, str] | None = None,
        timeout_ms: int | None = None,
    ) -> chatto_dot_api_dot_v1_dot_account__pb2.DeleteMyAccountResponse:
        return self.execute_unary(
            request=request,
            method=MethodInfo(
                name="DeleteMyAccount",
                service_name="chatto.api.v1.MyAccountService",
                input=chatto_dot_api_dot_v1_dot_account__pb2.DeleteMyAccountRequest,
                output=chatto_dot_api_dot_v1_dot_account__pb2.DeleteMyAccountResponse,
                idempotency_level=IdempotencyLevel.UNKNOWN,
            ),
            headers=headers,
            timeout_ms=timeout_ms,
        )
