# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT!
"""Client and server classes corresponding to protobuf-defined services."""
import grpc
import warnings

from google.protobuf import empty_pb2 as google_dot_protobuf_dot_empty__pb2
from truffle.infer import model_pb2 as truffle_dot_infer_dot_model__pb2
from truffle.os import app_info_pb2 as truffle_dot_os_dot_app__info__pb2
from truffle.os import app_requests_pb2 as truffle_dot_os_dot_app__requests__pb2
from truffle.os import classification_pb2 as truffle_dot_os_dot_classification__pb2
from truffle.os import client_session_pb2 as truffle_dot_os_dot_client__session__pb2
from truffle.os import client_user_pb2 as truffle_dot_os_dot_client__user__pb2
from truffle.os import generate_request_pb2 as truffle_dot_os_dot_generate__request__pb2
from truffle.os import hardware_control_pb2 as truffle_dot_os_dot_hardware__control__pb2
from truffle.os import hardware_network_pb2 as truffle_dot_os_dot_hardware__network__pb2
from truffle.os import hardware_stats_pb2 as truffle_dot_os_dot_hardware__stats__pb2
from truffle.os import notification_pb2 as truffle_dot_os_dot_notification__pb2
from truffle.os import search_pb2 as truffle_dot_os_dot_search__pb2
from truffle.os import system_info_pb2 as truffle_dot_os_dot_system__info__pb2
from truffle.os import system_settings_pb2 as truffle_dot_os_dot_system__settings__pb2
from truffle.os import task_actions_pb2 as truffle_dot_os_dot_task__actions__pb2
from truffle.os import task_pb2 as truffle_dot_os_dot_task__pb2
from truffle.os import task_queries_pb2 as truffle_dot_os_dot_task__queries__pb2
from truffle.os import task_user_response_pb2 as truffle_dot_os_dot_task__user__response__pb2

GRPC_GENERATED_VERSION = '1.72.0'
GRPC_VERSION = grpc.__version__
_version_not_supported = False

try:
    from grpc._utilities import first_version_is_lower
    _version_not_supported = first_version_is_lower(GRPC_VERSION, GRPC_GENERATED_VERSION)
except ImportError:
    _version_not_supported = True

if _version_not_supported:
    raise RuntimeError(
        f'The grpc package installed is at version {GRPC_VERSION},'
        + f' but the generated code in truffle/os/truffleos_pb2_grpc.py depends on'
        + f' grpcio>={GRPC_GENERATED_VERSION}.'
        + f' Please upgrade your grpc module to grpcio>={GRPC_GENERATED_VERSION}'
        + f' or downgrade your generated code using grpcio-tools<={GRPC_VERSION}.'
    )


class TruffleOSStub(object):
    """
    The primary client interface with the Truffle, allowing for apps, tasks, settings, etc. to be used and managed
    All methods besides the two register new user/session rpcs are authenticated behind the session token, acquired by RegisterNewUser or RegisterNewSession

    """

    def __init__(self, channel):
        """Constructor.

        Args:
            channel: A grpc.Channel.
        """
        self.Client_RegisterNewUser = channel.unary_unary(
                '/truffle.os.TruffleOS/Client_RegisterNewUser',
                request_serializer=truffle_dot_os_dot_client__user__pb2.RegisterNewUserRequest.SerializeToString,
                response_deserializer=truffle_dot_os_dot_client__user__pb2.RegisterNewUserResponse.FromString,
                _registered_method=True)
        self.Client_RegisterNewSession = channel.unary_unary(
                '/truffle.os.TruffleOS/Client_RegisterNewSession',
                request_serializer=truffle_dot_os_dot_client__session__pb2.RegisterNewSessionRequest.SerializeToString,
                response_deserializer=truffle_dot_os_dot_client__session__pb2.RegisterNewSessionResponse.FromString,
                _registered_method=True)
        self.Client_UserIDForToken = channel.unary_unary(
                '/truffle.os.TruffleOS/Client_UserIDForToken',
                request_serializer=truffle_dot_os_dot_client__user__pb2.UserIDForTokenRequest.SerializeToString,
                response_deserializer=truffle_dot_os_dot_client__user__pb2.UserIDForTokenResponse.FromString,
                _registered_method=True)
        self.Client_VerifyNewSessionRegistration = channel.unary_unary(
                '/truffle.os.TruffleOS/Client_VerifyNewSessionRegistration',
                request_serializer=truffle_dot_os_dot_client__session__pb2.VerifyNewSessionRequest.SerializeToString,
                response_deserializer=truffle_dot_os_dot_client__session__pb2.NewSessionStatus.FromString,
                _registered_method=True)
        self.Client_GetUserRecoveryCodes = channel.unary_unary(
                '/truffle.os.TruffleOS/Client_GetUserRecoveryCodes',
                request_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
                response_deserializer=truffle_dot_os_dot_client__session__pb2.UserRecoveryCodes.FromString,
                _registered_method=True)
        self.ClassifyPrompt = channel.unary_unary(
                '/truffle.os.TruffleOS/ClassifyPrompt',
                request_serializer=truffle_dot_os_dot_classification__pb2.ClassifyRequest.SerializeToString,
                response_deserializer=truffle_dot_os_dot_classification__pb2.ClassifyResponse.FromString,
                _registered_method=True)
        self.Search = channel.unary_unary(
                '/truffle.os.TruffleOS/Search',
                request_serializer=truffle_dot_os_dot_search__pb2.SearchRequest.SerializeToString,
                response_deserializer=truffle_dot_os_dot_search__pb2.SearchResponse.FromString,
                _registered_method=True)
        self.LLM_Generate = channel.unary_unary(
                '/truffle.os.TruffleOS/LLM_Generate',
                request_serializer=truffle_dot_os_dot_generate__request__pb2.GenerateRequest.SerializeToString,
                response_deserializer=truffle_dot_os_dot_generate__request__pb2.GenerateResponse.FromString,
                _registered_method=True)
        self.SubscribeToNotifications = channel.unary_stream(
                '/truffle.os.TruffleOS/SubscribeToNotifications',
                request_serializer=truffle_dot_os_dot_notification__pb2.SubscribeToNotificationsRequest.SerializeToString,
                response_deserializer=truffle_dot_os_dot_notification__pb2.Notification.FromString,
                _registered_method=True)
        self.Hardware_GetStats = channel.unary_unary(
                '/truffle.os.TruffleOS/Hardware_GetStats',
                request_serializer=truffle_dot_os_dot_hardware__stats__pb2.HardwareStatsRequest.SerializeToString,
                response_deserializer=truffle_dot_os_dot_hardware__stats__pb2.HardwareStats.FromString,
                _registered_method=True)
        self.Hardware_PowerControl = channel.unary_unary(
                '/truffle.os.TruffleOS/Hardware_PowerControl',
                request_serializer=truffle_dot_os_dot_hardware__control__pb2.HardwarePowerControlRequest.SerializeToString,
                response_deserializer=truffle_dot_os_dot_hardware__control__pb2.HardwarePowerControlResponse.FromString,
                _registered_method=True)
        self.Hardware_GetKnownNetworks = channel.unary_unary(
                '/truffle.os.TruffleOS/Hardware_GetKnownNetworks',
                request_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
                response_deserializer=truffle_dot_os_dot_hardware__network__pb2.HardwareKnownNetworksList.FromString,
                _registered_method=True)
        self.Hardware_ModifyKnownNetwork = channel.unary_unary(
                '/truffle.os.TruffleOS/Hardware_ModifyKnownNetwork',
                request_serializer=truffle_dot_os_dot_hardware__network__pb2.HardwareModifyKnownNetworkRequest.SerializeToString,
                response_deserializer=truffle_dot_os_dot_hardware__network__pb2.HardwareKnownNetworksList.FromString,
                _registered_method=True)
        self.System_GetSettings = channel.unary_unary(
                '/truffle.os.TruffleOS/System_GetSettings',
                request_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
                response_deserializer=truffle_dot_os_dot_system__settings__pb2.SystemSettings.FromString,
                _registered_method=True)
        self.System_SetSettings = channel.unary_unary(
                '/truffle.os.TruffleOS/System_SetSettings',
                request_serializer=truffle_dot_os_dot_system__settings__pb2.SystemSettings.SerializeToString,
                response_deserializer=truffle_dot_os_dot_system__settings__pb2.SystemSettings.FromString,
                _registered_method=True)
        self.System_GetInfo = channel.unary_unary(
                '/truffle.os.TruffleOS/System_GetInfo',
                request_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
                response_deserializer=truffle_dot_os_dot_system__info__pb2.SystemInfo.FromString,
                _registered_method=True)
        self.Models_GetList = channel.unary_unary(
                '/truffle.os.TruffleOS/Models_GetList',
                request_serializer=truffle_dot_infer_dot_model__pb2.GetModelListRequest.SerializeToString,
                response_deserializer=truffle_dot_infer_dot_model__pb2.ModelList.FromString,
                _registered_method=True)
        self.Models_GetOne = channel.unary_unary(
                '/truffle.os.TruffleOS/Models_GetOne',
                request_serializer=truffle_dot_infer_dot_model__pb2.GetModelRequest.SerializeToString,
                response_deserializer=truffle_dot_infer_dot_model__pb2.Model.FromString,
                _registered_method=True)
        self.App_GetListOfAllApps = channel.unary_unary(
                '/truffle.os.TruffleOS/App_GetListOfAllApps',
                request_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
                response_deserializer=truffle_dot_os_dot_app__requests__pb2.AppInfoList.FromString,
                _registered_method=True)
        self.App_GetApps = channel.unary_stream(
                '/truffle.os.TruffleOS/App_GetApps',
                request_serializer=truffle_dot_os_dot_app__requests__pb2.GetAppsRequest.SerializeToString,
                response_deserializer=truffle_dot_os_dot_app__info__pb2.AppInfo.FromString,
                _registered_method=True)
        self.App_GetOneApp = channel.unary_unary(
                '/truffle.os.TruffleOS/App_GetOneApp',
                request_serializer=truffle_dot_os_dot_app__requests__pb2.GetOneAppRequest.SerializeToString,
                response_deserializer=truffle_dot_os_dot_app__info__pb2.AppInfo.FromString,
                _registered_method=True)
        self.App_Install = channel.unary_unary(
                '/truffle.os.TruffleOS/App_Install',
                request_serializer=truffle_dot_os_dot_app__requests__pb2.AppInstallRequest.SerializeToString,
                response_deserializer=truffle_dot_os_dot_app__requests__pb2.AppInstallResponse.FromString,
                _registered_method=True)
        self.App_Uninstall = channel.unary_unary(
                '/truffle.os.TruffleOS/App_Uninstall',
                request_serializer=truffle_dot_os_dot_app__requests__pb2.GetOneAppRequest.SerializeToString,
                response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
                _registered_method=True)
        self.Task_OpenTask = channel.unary_stream(
                '/truffle.os.TruffleOS/Task_OpenTask',
                request_serializer=truffle_dot_os_dot_task__actions__pb2.OpenTaskRequest.SerializeToString,
                response_deserializer=truffle_dot_os_dot_task__pb2.TaskStreamUpdate.FromString,
                _registered_method=True)
        self.Task_GetListOfAllTasks = channel.unary_unary(
                '/truffle.os.TruffleOS/Task_GetListOfAllTasks',
                request_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
                response_deserializer=truffle_dot_os_dot_task__pb2.TasksList.FromString,
                _registered_method=True)
        self.Task_GetTasks = channel.unary_stream(
                '/truffle.os.TruffleOS/Task_GetTasks',
                request_serializer=truffle_dot_os_dot_task__queries__pb2.GetTasksRequest.SerializeToString,
                response_deserializer=truffle_dot_os_dot_task__pb2.Task.FromString,
                _registered_method=True)
        self.Task_GetOneTask = channel.unary_unary(
                '/truffle.os.TruffleOS/Task_GetOneTask',
                request_serializer=truffle_dot_os_dot_task__queries__pb2.GetOneTaskRequest.SerializeToString,
                response_deserializer=truffle_dot_os_dot_task__pb2.Task.FromString,
                _registered_method=True)
        self.Task_GetTaskNodes = channel.unary_stream(
                '/truffle.os.TruffleOS/Task_GetTaskNodes',
                request_serializer=truffle_dot_os_dot_task__queries__pb2.GetTaskNodesRequest.SerializeToString,
                response_deserializer=truffle_dot_os_dot_task__pb2.TaskNode.FromString,
                _registered_method=True)
        self.Task_GetSingleTaskNode = channel.unary_unary(
                '/truffle.os.TruffleOS/Task_GetSingleTaskNode',
                request_serializer=truffle_dot_os_dot_task__queries__pb2.GetTaskNodesRequest.SerializeToString,
                response_deserializer=truffle_dot_os_dot_task__pb2.TaskNode.FromString,
                _registered_method=True)
        self.Task_InterruptTask = channel.unary_unary(
                '/truffle.os.TruffleOS/Task_InterruptTask',
                request_serializer=truffle_dot_os_dot_task__actions__pb2.InterruptTaskRequest.SerializeToString,
                response_deserializer=truffle_dot_os_dot_task__actions__pb2.TaskActionResponse.FromString,
                _registered_method=True)
        self.Task_RespondToTask = channel.unary_unary(
                '/truffle.os.TruffleOS/Task_RespondToTask',
                request_serializer=truffle_dot_os_dot_task__user__response__pb2.RespondToTaskRequest.SerializeToString,
                response_deserializer=truffle_dot_os_dot_task__actions__pb2.TaskActionResponse.FromString,
                _registered_method=True)
        self.Task_SetIsPerpetual = channel.unary_unary(
                '/truffle.os.TruffleOS/Task_SetIsPerpetual',
                request_serializer=truffle_dot_os_dot_task__actions__pb2.SetIsPerpetualRequest.SerializeToString,
                response_deserializer=truffle_dot_os_dot_task__actions__pb2.SetIsPerpetualResult.FromString,
                _registered_method=True)


class TruffleOSServicer(object):
    """
    The primary client interface with the Truffle, allowing for apps, tasks, settings, etc. to be used and managed
    All methods besides the two register new user/session rpcs are authenticated behind the session token, acquired by RegisterNewUser or RegisterNewSession

    """

    def Client_RegisterNewUser(self, request, context):
        """NOAUTH. register a new user, returns user id and token, client must use this token in auth headers for all other requests
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def Client_RegisterNewSession(self, request, context):
        """NOAUTH. register a new session for an existing user, returns token, client must use this token in auth headers for all other requests
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def Client_UserIDForToken(self, request, context):
        """get user id for a session token, for debugging purposes, returns empty if not found
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def Client_VerifyNewSessionRegistration(self, request, context):
        """verify a new session registration, called by the other device to allow or deny the request, no response, just success or failure via grpc codes
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def Client_GetUserRecoveryCodes(self, request, context):
        """get user recovery codes, used for recovery of account access, burns previous stored codes
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def ClassifyPrompt(self, request, context):
        """classify a prompt, returns a classification response with the result, can be used for spam detection, etc
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def Search(self, request, context):
        """search for a query, returns a list of search results, can be used for searching tasks
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def LLM_Generate(self, request, context):
        """simple one-shot llm convenience api, use full infer service for more. can be used for generating titles, descriptions, etc for UI
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def SubscribeToNotifications(self, request, context):
        """subscribe to notifications, like task has result, app installed, etc, returns a stream of notifications, client should handle them as they come in
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def Hardware_GetStats(self, request, context):
        """get hardware stats, like usage and temps for cpu, gpu, memory, disk, etc, these are periodically sent as well
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def Hardware_PowerControl(self, request, context):
        """power control request, like shutdown, reboot, etc
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def Hardware_GetKnownNetworks(self, request, context):
        """get list of known networks, like wifi networks, bluetooth devices, etc
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def Hardware_ModifyKnownNetwork(self, request, context):
        """modify known network, like delete, disconnect, toggle enabled state, etc, empty uuid means apply to all networks, returns empty on success or failure via grpc codes
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def System_GetSettings(self, request, context):
        """get system settings, like hardware settings, task settings, etc
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def System_SetSettings(self, request, context):
        """set system settings, like hardware settings, task settings, etc, empty values are ignored, so only set what you want to change, returns new settings after applying
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def System_GetInfo(self, request, context):
        """get applicable system info, like hardware info, cloud info, firmware version, etc
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def Models_GetList(self, request, context):
        """get list of available models to run tasks with - note: using infer type for now, may change
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def Models_GetOne(self, request, context):
        """get info about a specific model, like name, description, etc from list  - note: using infer type for now, may change
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def App_GetListOfAllApps(self, request, context):
        """skips icons, tools and returns basic app list, recommended to use streaming instead, this is for simple clients
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def App_GetApps(self, request, context):
        """streaming returns apps by list of ids, applying field mask if provided
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def App_GetOneApp(self, request, context):
        """returns app by id, without icons/large blobs
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def App_Install(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def App_Uninstall(self, request, context):
        """uninstalls app by id, no response, just success or failure via grpc codes. all tasks for the app are also removed, so client should refresh everything after this
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def Task_OpenTask(self, request, context):
        """opens a task stream, client should send OpenTaskRequest with either a target existing task or info to make a new one, and then will receive TaskUpdate messages with updates on the task
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def Task_GetListOfAllTasks(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def Task_GetTasks(self, request, context):
        """get tasks by query, like all tasks, or tasks for a specific app, etc, streaming response
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def Task_GetOneTask(self, request, context):
        """get task by id, no streaming, just one task response
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def Task_GetTaskNodes(self, request, context):
        """get nodes for a task, streaming response, can filter by node ids and masks, or get all nodes for the task
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def Task_GetSingleTaskNode(self, request, context):
        """get a single node by id, no streaming, just one node response
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def Task_InterruptTask(self, request, context):
        """Task Action, interrupts/pauses a task, triggers a respond to user and task will not resume until user responds
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def Task_RespondToTask(self, request, context):
        """provide the reply from a user for a node with a pending user response, along with any uploaded files
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def Task_SetIsPerpetual(self, request, context):
        """toggles the agent user response for a task, like locking or unlocking the task for user responses
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')


def add_TruffleOSServicer_to_server(servicer, server):
    rpc_method_handlers = {
            'Client_RegisterNewUser': grpc.unary_unary_rpc_method_handler(
                    servicer.Client_RegisterNewUser,
                    request_deserializer=truffle_dot_os_dot_client__user__pb2.RegisterNewUserRequest.FromString,
                    response_serializer=truffle_dot_os_dot_client__user__pb2.RegisterNewUserResponse.SerializeToString,
            ),
            'Client_RegisterNewSession': grpc.unary_unary_rpc_method_handler(
                    servicer.Client_RegisterNewSession,
                    request_deserializer=truffle_dot_os_dot_client__session__pb2.RegisterNewSessionRequest.FromString,
                    response_serializer=truffle_dot_os_dot_client__session__pb2.RegisterNewSessionResponse.SerializeToString,
            ),
            'Client_UserIDForToken': grpc.unary_unary_rpc_method_handler(
                    servicer.Client_UserIDForToken,
                    request_deserializer=truffle_dot_os_dot_client__user__pb2.UserIDForTokenRequest.FromString,
                    response_serializer=truffle_dot_os_dot_client__user__pb2.UserIDForTokenResponse.SerializeToString,
            ),
            'Client_VerifyNewSessionRegistration': grpc.unary_unary_rpc_method_handler(
                    servicer.Client_VerifyNewSessionRegistration,
                    request_deserializer=truffle_dot_os_dot_client__session__pb2.VerifyNewSessionRequest.FromString,
                    response_serializer=truffle_dot_os_dot_client__session__pb2.NewSessionStatus.SerializeToString,
            ),
            'Client_GetUserRecoveryCodes': grpc.unary_unary_rpc_method_handler(
                    servicer.Client_GetUserRecoveryCodes,
                    request_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
                    response_serializer=truffle_dot_os_dot_client__session__pb2.UserRecoveryCodes.SerializeToString,
            ),
            'ClassifyPrompt': grpc.unary_unary_rpc_method_handler(
                    servicer.ClassifyPrompt,
                    request_deserializer=truffle_dot_os_dot_classification__pb2.ClassifyRequest.FromString,
                    response_serializer=truffle_dot_os_dot_classification__pb2.ClassifyResponse.SerializeToString,
            ),
            'Search': grpc.unary_unary_rpc_method_handler(
                    servicer.Search,
                    request_deserializer=truffle_dot_os_dot_search__pb2.SearchRequest.FromString,
                    response_serializer=truffle_dot_os_dot_search__pb2.SearchResponse.SerializeToString,
            ),
            'LLM_Generate': grpc.unary_unary_rpc_method_handler(
                    servicer.LLM_Generate,
                    request_deserializer=truffle_dot_os_dot_generate__request__pb2.GenerateRequest.FromString,
                    response_serializer=truffle_dot_os_dot_generate__request__pb2.GenerateResponse.SerializeToString,
            ),
            'SubscribeToNotifications': grpc.unary_stream_rpc_method_handler(
                    servicer.SubscribeToNotifications,
                    request_deserializer=truffle_dot_os_dot_notification__pb2.SubscribeToNotificationsRequest.FromString,
                    response_serializer=truffle_dot_os_dot_notification__pb2.Notification.SerializeToString,
            ),
            'Hardware_GetStats': grpc.unary_unary_rpc_method_handler(
                    servicer.Hardware_GetStats,
                    request_deserializer=truffle_dot_os_dot_hardware__stats__pb2.HardwareStatsRequest.FromString,
                    response_serializer=truffle_dot_os_dot_hardware__stats__pb2.HardwareStats.SerializeToString,
            ),
            'Hardware_PowerControl': grpc.unary_unary_rpc_method_handler(
                    servicer.Hardware_PowerControl,
                    request_deserializer=truffle_dot_os_dot_hardware__control__pb2.HardwarePowerControlRequest.FromString,
                    response_serializer=truffle_dot_os_dot_hardware__control__pb2.HardwarePowerControlResponse.SerializeToString,
            ),
            'Hardware_GetKnownNetworks': grpc.unary_unary_rpc_method_handler(
                    servicer.Hardware_GetKnownNetworks,
                    request_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
                    response_serializer=truffle_dot_os_dot_hardware__network__pb2.HardwareKnownNetworksList.SerializeToString,
            ),
            'Hardware_ModifyKnownNetwork': grpc.unary_unary_rpc_method_handler(
                    servicer.Hardware_ModifyKnownNetwork,
                    request_deserializer=truffle_dot_os_dot_hardware__network__pb2.HardwareModifyKnownNetworkRequest.FromString,
                    response_serializer=truffle_dot_os_dot_hardware__network__pb2.HardwareKnownNetworksList.SerializeToString,
            ),
            'System_GetSettings': grpc.unary_unary_rpc_method_handler(
                    servicer.System_GetSettings,
                    request_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
                    response_serializer=truffle_dot_os_dot_system__settings__pb2.SystemSettings.SerializeToString,
            ),
            'System_SetSettings': grpc.unary_unary_rpc_method_handler(
                    servicer.System_SetSettings,
                    request_deserializer=truffle_dot_os_dot_system__settings__pb2.SystemSettings.FromString,
                    response_serializer=truffle_dot_os_dot_system__settings__pb2.SystemSettings.SerializeToString,
            ),
            'System_GetInfo': grpc.unary_unary_rpc_method_handler(
                    servicer.System_GetInfo,
                    request_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
                    response_serializer=truffle_dot_os_dot_system__info__pb2.SystemInfo.SerializeToString,
            ),
            'Models_GetList': grpc.unary_unary_rpc_method_handler(
                    servicer.Models_GetList,
                    request_deserializer=truffle_dot_infer_dot_model__pb2.GetModelListRequest.FromString,
                    response_serializer=truffle_dot_infer_dot_model__pb2.ModelList.SerializeToString,
            ),
            'Models_GetOne': grpc.unary_unary_rpc_method_handler(
                    servicer.Models_GetOne,
                    request_deserializer=truffle_dot_infer_dot_model__pb2.GetModelRequest.FromString,
                    response_serializer=truffle_dot_infer_dot_model__pb2.Model.SerializeToString,
            ),
            'App_GetListOfAllApps': grpc.unary_unary_rpc_method_handler(
                    servicer.App_GetListOfAllApps,
                    request_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
                    response_serializer=truffle_dot_os_dot_app__requests__pb2.AppInfoList.SerializeToString,
            ),
            'App_GetApps': grpc.unary_stream_rpc_method_handler(
                    servicer.App_GetApps,
                    request_deserializer=truffle_dot_os_dot_app__requests__pb2.GetAppsRequest.FromString,
                    response_serializer=truffle_dot_os_dot_app__info__pb2.AppInfo.SerializeToString,
            ),
            'App_GetOneApp': grpc.unary_unary_rpc_method_handler(
                    servicer.App_GetOneApp,
                    request_deserializer=truffle_dot_os_dot_app__requests__pb2.GetOneAppRequest.FromString,
                    response_serializer=truffle_dot_os_dot_app__info__pb2.AppInfo.SerializeToString,
            ),
            'App_Install': grpc.unary_unary_rpc_method_handler(
                    servicer.App_Install,
                    request_deserializer=truffle_dot_os_dot_app__requests__pb2.AppInstallRequest.FromString,
                    response_serializer=truffle_dot_os_dot_app__requests__pb2.AppInstallResponse.SerializeToString,
            ),
            'App_Uninstall': grpc.unary_unary_rpc_method_handler(
                    servicer.App_Uninstall,
                    request_deserializer=truffle_dot_os_dot_app__requests__pb2.GetOneAppRequest.FromString,
                    response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
            ),
            'Task_OpenTask': grpc.unary_stream_rpc_method_handler(
                    servicer.Task_OpenTask,
                    request_deserializer=truffle_dot_os_dot_task__actions__pb2.OpenTaskRequest.FromString,
                    response_serializer=truffle_dot_os_dot_task__pb2.TaskStreamUpdate.SerializeToString,
            ),
            'Task_GetListOfAllTasks': grpc.unary_unary_rpc_method_handler(
                    servicer.Task_GetListOfAllTasks,
                    request_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
                    response_serializer=truffle_dot_os_dot_task__pb2.TasksList.SerializeToString,
            ),
            'Task_GetTasks': grpc.unary_stream_rpc_method_handler(
                    servicer.Task_GetTasks,
                    request_deserializer=truffle_dot_os_dot_task__queries__pb2.GetTasksRequest.FromString,
                    response_serializer=truffle_dot_os_dot_task__pb2.Task.SerializeToString,
            ),
            'Task_GetOneTask': grpc.unary_unary_rpc_method_handler(
                    servicer.Task_GetOneTask,
                    request_deserializer=truffle_dot_os_dot_task__queries__pb2.GetOneTaskRequest.FromString,
                    response_serializer=truffle_dot_os_dot_task__pb2.Task.SerializeToString,
            ),
            'Task_GetTaskNodes': grpc.unary_stream_rpc_method_handler(
                    servicer.Task_GetTaskNodes,
                    request_deserializer=truffle_dot_os_dot_task__queries__pb2.GetTaskNodesRequest.FromString,
                    response_serializer=truffle_dot_os_dot_task__pb2.TaskNode.SerializeToString,
            ),
            'Task_GetSingleTaskNode': grpc.unary_unary_rpc_method_handler(
                    servicer.Task_GetSingleTaskNode,
                    request_deserializer=truffle_dot_os_dot_task__queries__pb2.GetTaskNodesRequest.FromString,
                    response_serializer=truffle_dot_os_dot_task__pb2.TaskNode.SerializeToString,
            ),
            'Task_InterruptTask': grpc.unary_unary_rpc_method_handler(
                    servicer.Task_InterruptTask,
                    request_deserializer=truffle_dot_os_dot_task__actions__pb2.InterruptTaskRequest.FromString,
                    response_serializer=truffle_dot_os_dot_task__actions__pb2.TaskActionResponse.SerializeToString,
            ),
            'Task_RespondToTask': grpc.unary_unary_rpc_method_handler(
                    servicer.Task_RespondToTask,
                    request_deserializer=truffle_dot_os_dot_task__user__response__pb2.RespondToTaskRequest.FromString,
                    response_serializer=truffle_dot_os_dot_task__actions__pb2.TaskActionResponse.SerializeToString,
            ),
            'Task_SetIsPerpetual': grpc.unary_unary_rpc_method_handler(
                    servicer.Task_SetIsPerpetual,
                    request_deserializer=truffle_dot_os_dot_task__actions__pb2.SetIsPerpetualRequest.FromString,
                    response_serializer=truffle_dot_os_dot_task__actions__pb2.SetIsPerpetualResult.SerializeToString,
            ),
    }
    generic_handler = grpc.method_handlers_generic_handler(
            'truffle.os.TruffleOS', rpc_method_handlers)
    server.add_generic_rpc_handlers((generic_handler,))
    server.add_registered_method_handlers('truffle.os.TruffleOS', rpc_method_handlers)


 # This class is part of an EXPERIMENTAL API.
class TruffleOS(object):
    """
    The primary client interface with the Truffle, allowing for apps, tasks, settings, etc. to be used and managed
    All methods besides the two register new user/session rpcs are authenticated behind the session token, acquired by RegisterNewUser or RegisterNewSession

    """

    @staticmethod
    def Client_RegisterNewUser(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(
            request,
            target,
            '/truffle.os.TruffleOS/Client_RegisterNewUser',
            truffle_dot_os_dot_client__user__pb2.RegisterNewUserRequest.SerializeToString,
            truffle_dot_os_dot_client__user__pb2.RegisterNewUserResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def Client_RegisterNewSession(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(
            request,
            target,
            '/truffle.os.TruffleOS/Client_RegisterNewSession',
            truffle_dot_os_dot_client__session__pb2.RegisterNewSessionRequest.SerializeToString,
            truffle_dot_os_dot_client__session__pb2.RegisterNewSessionResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def Client_UserIDForToken(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(
            request,
            target,
            '/truffle.os.TruffleOS/Client_UserIDForToken',
            truffle_dot_os_dot_client__user__pb2.UserIDForTokenRequest.SerializeToString,
            truffle_dot_os_dot_client__user__pb2.UserIDForTokenResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def Client_VerifyNewSessionRegistration(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(
            request,
            target,
            '/truffle.os.TruffleOS/Client_VerifyNewSessionRegistration',
            truffle_dot_os_dot_client__session__pb2.VerifyNewSessionRequest.SerializeToString,
            truffle_dot_os_dot_client__session__pb2.NewSessionStatus.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def Client_GetUserRecoveryCodes(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(
            request,
            target,
            '/truffle.os.TruffleOS/Client_GetUserRecoveryCodes',
            google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
            truffle_dot_os_dot_client__session__pb2.UserRecoveryCodes.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def ClassifyPrompt(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(
            request,
            target,
            '/truffle.os.TruffleOS/ClassifyPrompt',
            truffle_dot_os_dot_classification__pb2.ClassifyRequest.SerializeToString,
            truffle_dot_os_dot_classification__pb2.ClassifyResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def Search(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(
            request,
            target,
            '/truffle.os.TruffleOS/Search',
            truffle_dot_os_dot_search__pb2.SearchRequest.SerializeToString,
            truffle_dot_os_dot_search__pb2.SearchResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def LLM_Generate(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(
            request,
            target,
            '/truffle.os.TruffleOS/LLM_Generate',
            truffle_dot_os_dot_generate__request__pb2.GenerateRequest.SerializeToString,
            truffle_dot_os_dot_generate__request__pb2.GenerateResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def SubscribeToNotifications(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_stream(
            request,
            target,
            '/truffle.os.TruffleOS/SubscribeToNotifications',
            truffle_dot_os_dot_notification__pb2.SubscribeToNotificationsRequest.SerializeToString,
            truffle_dot_os_dot_notification__pb2.Notification.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def Hardware_GetStats(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(
            request,
            target,
            '/truffle.os.TruffleOS/Hardware_GetStats',
            truffle_dot_os_dot_hardware__stats__pb2.HardwareStatsRequest.SerializeToString,
            truffle_dot_os_dot_hardware__stats__pb2.HardwareStats.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def Hardware_PowerControl(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(
            request,
            target,
            '/truffle.os.TruffleOS/Hardware_PowerControl',
            truffle_dot_os_dot_hardware__control__pb2.HardwarePowerControlRequest.SerializeToString,
            truffle_dot_os_dot_hardware__control__pb2.HardwarePowerControlResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def Hardware_GetKnownNetworks(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(
            request,
            target,
            '/truffle.os.TruffleOS/Hardware_GetKnownNetworks',
            google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
            truffle_dot_os_dot_hardware__network__pb2.HardwareKnownNetworksList.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def Hardware_ModifyKnownNetwork(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(
            request,
            target,
            '/truffle.os.TruffleOS/Hardware_ModifyKnownNetwork',
            truffle_dot_os_dot_hardware__network__pb2.HardwareModifyKnownNetworkRequest.SerializeToString,
            truffle_dot_os_dot_hardware__network__pb2.HardwareKnownNetworksList.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def System_GetSettings(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(
            request,
            target,
            '/truffle.os.TruffleOS/System_GetSettings',
            google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
            truffle_dot_os_dot_system__settings__pb2.SystemSettings.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def System_SetSettings(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(
            request,
            target,
            '/truffle.os.TruffleOS/System_SetSettings',
            truffle_dot_os_dot_system__settings__pb2.SystemSettings.SerializeToString,
            truffle_dot_os_dot_system__settings__pb2.SystemSettings.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def System_GetInfo(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(
            request,
            target,
            '/truffle.os.TruffleOS/System_GetInfo',
            google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
            truffle_dot_os_dot_system__info__pb2.SystemInfo.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def Models_GetList(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(
            request,
            target,
            '/truffle.os.TruffleOS/Models_GetList',
            truffle_dot_infer_dot_model__pb2.GetModelListRequest.SerializeToString,
            truffle_dot_infer_dot_model__pb2.ModelList.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def Models_GetOne(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(
            request,
            target,
            '/truffle.os.TruffleOS/Models_GetOne',
            truffle_dot_infer_dot_model__pb2.GetModelRequest.SerializeToString,
            truffle_dot_infer_dot_model__pb2.Model.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def App_GetListOfAllApps(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(
            request,
            target,
            '/truffle.os.TruffleOS/App_GetListOfAllApps',
            google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
            truffle_dot_os_dot_app__requests__pb2.AppInfoList.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def App_GetApps(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_stream(
            request,
            target,
            '/truffle.os.TruffleOS/App_GetApps',
            truffle_dot_os_dot_app__requests__pb2.GetAppsRequest.SerializeToString,
            truffle_dot_os_dot_app__info__pb2.AppInfo.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def App_GetOneApp(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(
            request,
            target,
            '/truffle.os.TruffleOS/App_GetOneApp',
            truffle_dot_os_dot_app__requests__pb2.GetOneAppRequest.SerializeToString,
            truffle_dot_os_dot_app__info__pb2.AppInfo.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def App_Install(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(
            request,
            target,
            '/truffle.os.TruffleOS/App_Install',
            truffle_dot_os_dot_app__requests__pb2.AppInstallRequest.SerializeToString,
            truffle_dot_os_dot_app__requests__pb2.AppInstallResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def App_Uninstall(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(
            request,
            target,
            '/truffle.os.TruffleOS/App_Uninstall',
            truffle_dot_os_dot_app__requests__pb2.GetOneAppRequest.SerializeToString,
            google_dot_protobuf_dot_empty__pb2.Empty.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def Task_OpenTask(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_stream(
            request,
            target,
            '/truffle.os.TruffleOS/Task_OpenTask',
            truffle_dot_os_dot_task__actions__pb2.OpenTaskRequest.SerializeToString,
            truffle_dot_os_dot_task__pb2.TaskStreamUpdate.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def Task_GetListOfAllTasks(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(
            request,
            target,
            '/truffle.os.TruffleOS/Task_GetListOfAllTasks',
            google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
            truffle_dot_os_dot_task__pb2.TasksList.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def Task_GetTasks(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_stream(
            request,
            target,
            '/truffle.os.TruffleOS/Task_GetTasks',
            truffle_dot_os_dot_task__queries__pb2.GetTasksRequest.SerializeToString,
            truffle_dot_os_dot_task__pb2.Task.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def Task_GetOneTask(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(
            request,
            target,
            '/truffle.os.TruffleOS/Task_GetOneTask',
            truffle_dot_os_dot_task__queries__pb2.GetOneTaskRequest.SerializeToString,
            truffle_dot_os_dot_task__pb2.Task.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def Task_GetTaskNodes(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_stream(
            request,
            target,
            '/truffle.os.TruffleOS/Task_GetTaskNodes',
            truffle_dot_os_dot_task__queries__pb2.GetTaskNodesRequest.SerializeToString,
            truffle_dot_os_dot_task__pb2.TaskNode.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def Task_GetSingleTaskNode(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(
            request,
            target,
            '/truffle.os.TruffleOS/Task_GetSingleTaskNode',
            truffle_dot_os_dot_task__queries__pb2.GetTaskNodesRequest.SerializeToString,
            truffle_dot_os_dot_task__pb2.TaskNode.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def Task_InterruptTask(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(
            request,
            target,
            '/truffle.os.TruffleOS/Task_InterruptTask',
            truffle_dot_os_dot_task__actions__pb2.InterruptTaskRequest.SerializeToString,
            truffle_dot_os_dot_task__actions__pb2.TaskActionResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def Task_RespondToTask(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(
            request,
            target,
            '/truffle.os.TruffleOS/Task_RespondToTask',
            truffle_dot_os_dot_task__user__response__pb2.RespondToTaskRequest.SerializeToString,
            truffle_dot_os_dot_task__actions__pb2.TaskActionResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def Task_SetIsPerpetual(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(
            request,
            target,
            '/truffle.os.TruffleOS/Task_SetIsPerpetual',
            truffle_dot_os_dot_task__actions__pb2.SetIsPerpetualRequest.SerializeToString,
            truffle_dot_os_dot_task__actions__pb2.SetIsPerpetualResult.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)
