"""
@generated by mypy-protobuf.  Do not edit manually!
isort:skip_file
"""
import builtins
import google.protobuf.descriptor
import google.protobuf.descriptor_pb2
import google.protobuf.internal.extension_dict
import google.protobuf.message
import sys

if sys.version_info >= (3, 8):
    import typing as typing_extensions
else:
    import typing_extensions

DESCRIPTOR: google.protobuf.descriptor.FileDescriptor

@typing_extensions.final
class FieldOptions(google.protobuf.message.Message):
    """*
    This is a meta message which is not supposed to be shared but used to define database-related properties.
    These properties will be evaluated by the protoc converter plugins to determine -- for instance -- the mongoDB schema required to store and retrieve a decorated message.
    @author: Alexander Neumann <alneuman@techfak.uni-bielefeld.de>
    """

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    INDEX_FIELD_NUMBER: builtins.int
    UNIQUE_FIELD_NUMBER: builtins.int
    DEFAULT_FIELD_NUMBER: builtins.int
    MATCH_FIELD_NUMBER: builtins.int
    MIN_FIELD_NUMBER: builtins.int
    IMMUTABLE_FIELD_NUMBER: builtins.int
    AUTO_INDEX_FIELD_NUMBER: builtins.int
    index: builtins.bool
    """/ marks the field as index; NOTE: unused; use 'unique' instead"""
    unique: builtins.bool
    """/ interprete field as key for the schema; will generate approriate helper functions to retrieve documents"""
    default: builtins.str
    """/ define default value for an (optional) field"""
    match: builtins.str
    """/ regex for data validation; NOTE: unused"""
    min: builtins.str
    """/ minimal value for a field; NOTE: unused"""
    immutable: builtins.bool
    """/ mark a field as unchangeable; NOTE: unused"""
    auto_index: builtins.bool
    """/ increase the index automatically; NOTE: unused"""
    def __init__(
        self,
        *,
        index: builtins.bool = ...,
        unique: builtins.bool = ...,
        default: builtins.str = ...,
        match: builtins.str = ...,
        min: builtins.str = ...,
        immutable: builtins.bool = ...,
        auto_index: builtins.bool = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["auto_index", b"auto_index", "default", b"default", "immutable", b"immutable", "index", b"index", "match", b"match", "min", b"min", "unique", b"unique"]) -> None: ...

global___FieldOptions = FieldOptions

SCHEMA_FIELD_NUMBER: builtins.int
SCHEMA_DEFINITION_FIELD_NUMBER: builtins.int
schema: google.protobuf.internal.extension_dict._ExtensionFieldDescriptor[google.protobuf.descriptor_pb2.FieldOptions, global___FieldOptions]
schema_definition: google.protobuf.internal.extension_dict._ExtensionFieldDescriptor[google.protobuf.descriptor_pb2.MessageOptions, builtins.bool]
