# 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 gRPC service for interacting with the Truffle. It provides
    methods for managing apps, tasks, users, and system settings. All methods,

    except for user and session creation, are authenticated using a
    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 gRPC service for interacting with the Truffle. It provides
    methods for managing apps, tasks, users, and system settings. All methods,

    except for user and session creation, are authenticated using a
    session token. Acquired by RegisterNewUser or RegisterNewSession

    """

    def Client_RegisterNewUser(self, request, context):
        """NOAUTH. Registers a new user and returns a user ID and a session token.
        This token must be used by client in authorization headers for all subsequent 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. Creates a new session for an existing user and returns a
        session token. This token must be used by client in authorization headers for all subsequent requests.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def Client_UserIDForToken(self, request, context):
        """Retrieves the user ID associated with a given session token. Intended for
        debugging. Returns an empty response if the token is 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):
        """Confirms a new session creation. This should be called by an already authenticated client to approve or deny a new session creation request from another device. 
        Returns a status (success or failure via grpc code) indicating if the session is allowed to be created.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def Client_GetUserRecoveryCodes(self, request, context):
        """Generates and returns a new set of recovery codes for the user. Using
        this RPC invalidates and replaces any previously issued codes.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def ClassifyPrompt(self, request, context):
        """Classifies an input prompt to determine the most appropriate app to
        handle it. Can also be used for other tasks like spam detection.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def Search(self, request, context):
        """Performs a search across tasks based on a query string and returns a list
        of matching results.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def LLM_Generate(self, request, context):
        """A simplified, one-shot convenience method for interacting with an LLM.
        Ideal for simple UI-related text generation, like generating titles or
        summaries. For more advanced features, use the `InferenceService`.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def SubscribeToNotifications(self, request, context):
        """Subscribes to a stream of real-time notifications from the server, such
        as task updates and app installation progress. Client is expected to 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):
        """Retrieves a snapshot of the current hardware statistics. These stats are
        also pushed periodically via the notification stream if active.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def Hardware_PowerControl(self, request, context):
        """Sends a power control command to the hardware, such as reboot or shutdown.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def Hardware_GetKnownNetworks(self, request, context):
        """Retrieves a list of all known networks (wifi, bluetooth) on the device.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def Hardware_ModifyKnownNetwork(self, request, context):
        """Modifies a known network (e.g., delete, disconnect). If `uuid` is empty,
        the action applies 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):
        """Retrieves the current system settings, including hardware and
        task-related configurations.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def System_SetSettings(self, request, context):
        """Updates the system settings (hardware settings, task settings, etc). Only the fields that are set in the request
        will be modified. Returns the complete, updated settings configuration. Empty values are ignored.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def System_GetInfo(self, request, context):
        """Retrieves read-only information about the system, including hardware
        details, 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):
        """Retrieves a list of models available for use in tasks.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def Models_GetOne(self, request, context):
        """Retrieves detailed information (name, description, etc. ) about a specific model by its ID.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def App_GetListOfAllApps(self, request, context):
        """Retrieves a basic list of all installed apps, excluding detailed data like
        icons and tools. For complete data, use `App_GetApps`. This is best suited 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):
        """Streams detailed information for apps given list of specified app IDs. An optional
        field mask can be used to limit the returned data.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def App_GetOneApp(self, request, context):
        """Retrieves information for a single app by its ID, excluding large data
        fields like icons and blobs.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def App_Install(self, request, context):
        """Installs or updates an app.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def App_Uninstall(self, request, context):
        """Uninstalls an app by its ID. This action also removes all associated
        tasks. Clients are expected to refresh their data after this operation. No response, only returns success or failure via grpc codes.
        """
        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 is expected to send OpenTaskRequest with either a target existing task or information 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):
        """Retrieves a list of all tasks.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def Task_GetTasks(self, request, context):
        """Retrieves a list of tasks based on a query (list all tasks, get tasks from a specific app etc.) and streams the results back
        to the client.
        """
        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):
        """Streams the nodes of a specified task. The response can be filtered by
        node ID and can use field masks to limit the returned data, ore 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):
        """Retrieves a single task node (no streaming only a single response) by its ID.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def Task_InterruptTask(self, request, context):
        """Interrupts a running task, pausing its execution and triggering respond
        to user. The task will not resume until the 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 task 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 gRPC service for interacting with the Truffle. It provides
    methods for managing apps, tasks, users, and system settings. All methods,

    except for user and session creation, are authenticated using a
    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)
