"""
@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.internal.enum_type_wrapper
import google.protobuf.message
import typing
import typing_extensions

DESCRIPTOR: google.protobuf.descriptor.FileDescriptor = ...

class ConstraintKind(_ConstraintKind, metaclass=_ConstraintKindEnumTypeWrapper):
    pass
class _ConstraintKind:
    V = typing.NewType('V', builtins.int)
class _ConstraintKindEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_ConstraintKind.V], builtins.type):
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor = ...
    SYNTHETIC = ConstraintKind.V(0)
    DP = ConstraintKind.V(1)
    PUBLIC = ConstraintKind.V(2)
    PEP = ConstraintKind.V(3)

SYNTHETIC = ConstraintKind.V(0)
DP = ConstraintKind.V(1)
PUBLIC = ConstraintKind.V(2)
PEP = ConstraintKind.V(3)
global___ConstraintKind = ConstraintKind


class VariantConstraint(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    class PropertiesEntry(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
        KEY_FIELD_NUMBER: builtins.int
        VALUE_FIELD_NUMBER: builtins.int
        key: typing.Text = ...
        value: typing.Text = ...
        def __init__(self,
            *,
            key : typing.Text = ...,
            value : typing.Text = ...,
            ) -> None: ...
        def ClearField(self, field_name: typing_extensions.Literal[u"key",b"key",u"value",b"value"]) -> None: ...

    UUID_FIELD_NUMBER: builtins.int
    DATASPEC_FIELD_NUMBER: builtins.int
    CONSTRAINT_KIND_FIELD_NUMBER: builtins.int
    REQUIRED_CONTEXT_FIELD_NUMBER: builtins.int
    PROPERTIES_FIELD_NUMBER: builtins.int
    uuid: typing.Text = ...
    dataspec: typing.Text = ...
    constraint_kind: global___ConstraintKind.V = ...
    @property
    def required_context(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[typing.Text]: ...
    @property
    def properties(self) -> google.protobuf.internal.containers.ScalarMap[typing.Text, typing.Text]: ...
    def __init__(self,
        *,
        uuid : typing.Text = ...,
        dataspec : typing.Text = ...,
        constraint_kind : global___ConstraintKind.V = ...,
        required_context : typing.Optional[typing.Iterable[typing.Text]] = ...,
        properties : typing.Optional[typing.Mapping[typing.Text, typing.Text]] = ...,
        ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"constraint_kind",b"constraint_kind",u"dataspec",b"dataspec",u"properties",b"properties",u"required_context",b"required_context",u"uuid",b"uuid"]) -> None: ...
global___VariantConstraint = VariantConstraint
