"""
@generated by mypy-protobuf.  Do not edit manually!
isort:skip_file
"""
import builtins
import google.protobuf.descriptor
import google.protobuf.internal.containers
import google.protobuf.message
import google.protobuf.struct_pb2
import google.protobuf.timestamp_pb2
import typing
import typing_extensions

DESCRIPTOR: google.protobuf.descriptor.FileDescriptor

class Logic(google.protobuf.message.Message):
    """
    Rules messages which are required for rules based workflows

    """
    DESCRIPTOR: google.protobuf.descriptor.Descriptor
    ACTION_TYPE_FIELD_NUMBER: builtins.int
    ACTION_DATA_FIELD_NUMBER: builtins.int
    EXTRA_FIELD_NUMBER: builtins.int
    JSON_LOGIC_FIELD_NUMBER: builtins.int
    action_type: typing.Text
    """this is provided so we can continue adding different types of rules"""

    @property
    def action_data(self) -> google.protobuf.struct_pb2.Struct:
        """this is response provided by the server"""
        pass
    @property
    def extra(self) -> google.protobuf.struct_pb2.Struct:
        """Anything else that needs to be sent to the client is added here"""
        pass
    @property
    def json_logic(self) -> google.protobuf.struct_pb2.Struct:
        """This is the the final json logic for action"""
        pass
    def __init__(self,
        *,
        action_type: typing.Text = ...,
        action_data: typing.Optional[google.protobuf.struct_pb2.Struct] = ...,
        extra: typing.Optional[google.protobuf.struct_pb2.Struct] = ...,
        json_logic: typing.Optional[google.protobuf.struct_pb2.Struct] = ...,
        ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["action_data",b"action_data","extra",b"extra","json_logic",b"json_logic"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["action_data",b"action_data","action_type",b"action_type","extra",b"extra","json_logic",b"json_logic"]) -> None: ...
global___Logic = Logic

class InitRuleRequest(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor
    WORKSPACE_ID_FIELD_NUMBER: builtins.int
    PROJECT_ID_FIELD_NUMBER: builtins.int
    RULE_NAME_FIELD_NUMBER: builtins.int
    LOGIC_FIELD_NUMBER: builtins.int
    workspace_id: typing.Text
    project_id: typing.Text
    rule_name: typing.Text
    @property
    def logic(self) -> global___Logic: ...
    def __init__(self,
        *,
        workspace_id: typing.Text = ...,
        project_id: typing.Text = ...,
        rule_name: typing.Text = ...,
        logic: typing.Optional[global___Logic] = ...,
        ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["logic",b"logic"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["logic",b"logic","project_id",b"project_id","rule_name",b"rule_name","workspace_id",b"workspace_id"]) -> None: ...
global___InitRuleRequest = InitRuleRequest

class Rule(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor
    WORKSPACE_ID_FIELD_NUMBER: builtins.int
    PROJECT_ID_FIELD_NUMBER: builtins.int
    ID_FIELD_NUMBER: builtins.int
    RULE_NAME_FIELD_NUMBER: builtins.int
    CREATED_AT_FIELD_NUMBER: builtins.int
    UPDATED_AT_FIELD_NUMBER: builtins.int
    IS_DEACTIVATED_FIELD_NUMBER: builtins.int
    LOGIC_FIELD_NUMBER: builtins.int
    UPDATE_KEYS_FIELD_NUMBER: builtins.int
    workspace_id: typing.Text
    project_id: typing.Text
    id: typing.Text
    rule_name: typing.Text
    @property
    def created_at(self) -> google.protobuf.timestamp_pb2.Timestamp: ...
    @property
    def updated_at(self) -> google.protobuf.timestamp_pb2.Timestamp: ...
    is_deactivated: builtins.bool
    @property
    def logic(self) -> global___Logic: ...
    @property
    def update_keys(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[typing.Text]:
        """the keys that are updated in the rule_data"""
        pass
    def __init__(self,
        *,
        workspace_id: typing.Text = ...,
        project_id: typing.Text = ...,
        id: typing.Text = ...,
        rule_name: typing.Text = ...,
        created_at: typing.Optional[google.protobuf.timestamp_pb2.Timestamp] = ...,
        updated_at: typing.Optional[google.protobuf.timestamp_pb2.Timestamp] = ...,
        is_deactivated: builtins.bool = ...,
        logic: typing.Optional[global___Logic] = ...,
        update_keys: typing.Optional[typing.Iterable[typing.Text]] = ...,
        ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["created_at",b"created_at","logic",b"logic","updated_at",b"updated_at"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["created_at",b"created_at","id",b"id","is_deactivated",b"is_deactivated","logic",b"logic","project_id",b"project_id","rule_name",b"rule_name","update_keys",b"update_keys","updated_at",b"updated_at","workspace_id",b"workspace_id"]) -> None: ...
global___Rule = Rule

class RulesList(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor
    WORKSPACE_ID_FIELD_NUMBER: builtins.int
    PROJECT_ID_FIELD_NUMBER: builtins.int
    RULES_FIELD_NUMBER: builtins.int
    workspace_id: typing.Text
    project_id: typing.Text
    @property
    def rules(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Rule]:
        """server will blindly put the rules and send it back"""
        pass
    def __init__(self,
        *,
        workspace_id: typing.Text = ...,
        project_id: typing.Text = ...,
        rules: typing.Optional[typing.Iterable[global___Rule]] = ...,
        ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["project_id",b"project_id","rules",b"rules","workspace_id",b"workspace_id"]) -> None: ...
global___RulesList = RulesList

class RuleBuilder(google.protobuf.message.Message):
    """the purpose of this message is to help the FE in creating the UI"""
    DESCRIPTOR: google.protobuf.descriptor.Descriptor
    WORKSPACE_ID_FIELD_NUMBER: builtins.int
    PROJECT_ID_FIELD_NUMBER: builtins.int
    LOGIC_FIELD_NUMBER: builtins.int
    workspace_id: typing.Text
    project_id: typing.Text
    @property
    def logic(self) -> global___Logic: ...
    def __init__(self,
        *,
        workspace_id: typing.Text = ...,
        project_id: typing.Text = ...,
        logic: typing.Optional[global___Logic] = ...,
        ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["logic",b"logic"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["logic",b"logic","project_id",b"project_id","workspace_id",b"workspace_id"]) -> None: ...
global___RuleBuilder = RuleBuilder
