from google.protobuf.internal import containers as _containers
from google.protobuf import descriptor as _descriptor
from google.protobuf import message as _message
from typing import ClassVar as _ClassVar, Iterable as _Iterable, Mapping as _Mapping, Optional as _Optional, Union as _Union

DESCRIPTOR: _descriptor.FileDescriptor

class GetActionMappingsRequest(_message.Message):
    __slots__ = ("enabled_only",)
    ENABLED_ONLY_FIELD_NUMBER: _ClassVar[int]
    enabled_only: bool
    def __init__(self, enabled_only: bool = ...) -> None: ...

class GetActionMappingRequest(_message.Message):
    __slots__ = ("id",)
    ID_FIELD_NUMBER: _ClassVar[int]
    id: str
    def __init__(self, id: _Optional[str] = ...) -> None: ...

class ActionMapping(_message.Message):
    __slots__ = ("id", "name", "description", "input_action", "output_actions", "enabled", "execution_count", "last_executed", "created_at", "updated_at")
    ID_FIELD_NUMBER: _ClassVar[int]
    NAME_FIELD_NUMBER: _ClassVar[int]
    DESCRIPTION_FIELD_NUMBER: _ClassVar[int]
    INPUT_ACTION_FIELD_NUMBER: _ClassVar[int]
    OUTPUT_ACTIONS_FIELD_NUMBER: _ClassVar[int]
    ENABLED_FIELD_NUMBER: _ClassVar[int]
    EXECUTION_COUNT_FIELD_NUMBER: _ClassVar[int]
    LAST_EXECUTED_FIELD_NUMBER: _ClassVar[int]
    CREATED_AT_FIELD_NUMBER: _ClassVar[int]
    UPDATED_AT_FIELD_NUMBER: _ClassVar[int]
    id: str
    name: str
    description: str
    input_action: str
    output_actions: _containers.RepeatedScalarFieldContainer[str]
    enabled: bool
    execution_count: int
    last_executed: str
    created_at: str
    updated_at: str
    def __init__(self, id: _Optional[str] = ..., name: _Optional[str] = ..., description: _Optional[str] = ..., input_action: _Optional[str] = ..., output_actions: _Optional[_Iterable[str]] = ..., enabled: bool = ..., execution_count: _Optional[int] = ..., last_executed: _Optional[str] = ..., created_at: _Optional[str] = ..., updated_at: _Optional[str] = ...) -> None: ...

class ActionMappingResponse(_message.Message):
    __slots__ = ("mapping",)
    MAPPING_FIELD_NUMBER: _ClassVar[int]
    mapping: ActionMapping
    def __init__(self, mapping: _Optional[_Union[ActionMapping, _Mapping]] = ...) -> None: ...

class GetActionMappingsResponse(_message.Message):
    __slots__ = ("mappings", "total_count", "enabled_count", "disabled_count")
    MAPPINGS_FIELD_NUMBER: _ClassVar[int]
    TOTAL_COUNT_FIELD_NUMBER: _ClassVar[int]
    ENABLED_COUNT_FIELD_NUMBER: _ClassVar[int]
    DISABLED_COUNT_FIELD_NUMBER: _ClassVar[int]
    mappings: _containers.RepeatedCompositeFieldContainer[ActionMapping]
    total_count: int
    enabled_count: int
    disabled_count: int
    def __init__(self, mappings: _Optional[_Iterable[_Union[ActionMapping, _Mapping]]] = ..., total_count: _Optional[int] = ..., enabled_count: _Optional[int] = ..., disabled_count: _Optional[int] = ...) -> None: ...
