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

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

class Variable(google.protobuf.message.Message):
    """Defines a strongly typed variable."""
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    TYPE_FIELD_NUMBER: builtins.int
    DESCRIPTION_FIELD_NUMBER: builtins.int
    @property
    def type(self) -> flyteidl.core.types_pb2.LiteralType:
        """Variable literal type."""
        pass
    description: typing.Text = ...
    """+optional string describing input variable"""

    def __init__(self,
        *,
        type : typing.Optional[flyteidl.core.types_pb2.LiteralType] = ...,
        description : typing.Text = ...,
        ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal[u"type",b"type"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"description",b"description",u"type",b"type"]) -> None: ...
global___Variable = Variable

class VariableMap(google.protobuf.message.Message):
    """A map of Variables"""
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    class VariablesEntry(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
        KEY_FIELD_NUMBER: builtins.int
        VALUE_FIELD_NUMBER: builtins.int
        key: typing.Text = ...
        @property
        def value(self) -> global___Variable: ...
        def __init__(self,
            *,
            key : typing.Text = ...,
            value : typing.Optional[global___Variable] = ...,
            ) -> None: ...
        def HasField(self, field_name: typing_extensions.Literal[u"value",b"value"]) -> builtins.bool: ...
        def ClearField(self, field_name: typing_extensions.Literal[u"key",b"key",u"value",b"value"]) -> None: ...

    VARIABLES_FIELD_NUMBER: builtins.int
    @property
    def variables(self) -> google.protobuf.internal.containers.MessageMap[typing.Text, global___Variable]:
        """Defines a map of variable names to variables."""
        pass
    def __init__(self,
        *,
        variables : typing.Optional[typing.Mapping[typing.Text, global___Variable]] = ...,
        ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"variables",b"variables"]) -> None: ...
global___VariableMap = VariableMap

class TypedInterface(google.protobuf.message.Message):
    """Defines strongly typed inputs and outputs."""
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    INPUTS_FIELD_NUMBER: builtins.int
    OUTPUTS_FIELD_NUMBER: builtins.int
    @property
    def inputs(self) -> global___VariableMap: ...
    @property
    def outputs(self) -> global___VariableMap: ...
    def __init__(self,
        *,
        inputs : typing.Optional[global___VariableMap] = ...,
        outputs : typing.Optional[global___VariableMap] = ...,
        ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal[u"inputs",b"inputs",u"outputs",b"outputs"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"inputs",b"inputs",u"outputs",b"outputs"]) -> None: ...
global___TypedInterface = TypedInterface

class Parameter(google.protobuf.message.Message):
    """A parameter is used as input to a launch plan and has
    the special ability to have a default value or mark itself as required.
    """
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    VAR_FIELD_NUMBER: builtins.int
    DEFAULT_FIELD_NUMBER: builtins.int
    REQUIRED_FIELD_NUMBER: builtins.int
    @property
    def var(self) -> global___Variable:
        """+required Variable. Defines the type of the variable backing this parameter."""
        pass
    @property
    def default(self) -> flyteidl.core.literals_pb2.Literal:
        """Defines a default value that has to match the variable type defined."""
        pass
    required: builtins.bool = ...
    """+optional, is this value required to be filled."""

    def __init__(self,
        *,
        var : typing.Optional[global___Variable] = ...,
        default : typing.Optional[flyteidl.core.literals_pb2.Literal] = ...,
        required : builtins.bool = ...,
        ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal[u"behavior",b"behavior",u"default",b"default",u"required",b"required",u"var",b"var"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"behavior",b"behavior",u"default",b"default",u"required",b"required",u"var",b"var"]) -> None: ...
    def WhichOneof(self, oneof_group: typing_extensions.Literal[u"behavior",b"behavior"]) -> typing.Optional[typing_extensions.Literal["default","required"]]: ...
global___Parameter = Parameter

class ParameterMap(google.protobuf.message.Message):
    """A map of Parameters."""
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    class ParametersEntry(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
        KEY_FIELD_NUMBER: builtins.int
        VALUE_FIELD_NUMBER: builtins.int
        key: typing.Text = ...
        @property
        def value(self) -> global___Parameter: ...
        def __init__(self,
            *,
            key : typing.Text = ...,
            value : typing.Optional[global___Parameter] = ...,
            ) -> None: ...
        def HasField(self, field_name: typing_extensions.Literal[u"value",b"value"]) -> builtins.bool: ...
        def ClearField(self, field_name: typing_extensions.Literal[u"key",b"key",u"value",b"value"]) -> None: ...

    PARAMETERS_FIELD_NUMBER: builtins.int
    @property
    def parameters(self) -> google.protobuf.internal.containers.MessageMap[typing.Text, global___Parameter]:
        """Defines a map of parameter names to parameters."""
        pass
    def __init__(self,
        *,
        parameters : typing.Optional[typing.Mapping[typing.Text, global___Parameter]] = ...,
        ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"parameters",b"parameters"]) -> None: ...
global___ParameterMap = ParameterMap
