"""
@generated by mypy-protobuf.  Do not edit manually!
isort:skip_file
"""
import builtins
import flyteidl.core.types_pb2
import google.protobuf.descriptor
import google.protobuf.duration_pb2
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 Primitive(google.protobuf.message.Message):
    """Primitive Types"""
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    INTEGER_FIELD_NUMBER: builtins.int
    FLOAT_VALUE_FIELD_NUMBER: builtins.int
    STRING_VALUE_FIELD_NUMBER: builtins.int
    BOOLEAN_FIELD_NUMBER: builtins.int
    DATETIME_FIELD_NUMBER: builtins.int
    DURATION_FIELD_NUMBER: builtins.int
    integer: builtins.int = ...
    float_value: builtins.float = ...
    string_value: typing.Text = ...
    boolean: builtins.bool = ...
    @property
    def datetime(self) -> google.protobuf.timestamp_pb2.Timestamp: ...
    @property
    def duration(self) -> google.protobuf.duration_pb2.Duration: ...
    def __init__(self,
        *,
        integer : builtins.int = ...,
        float_value : builtins.float = ...,
        string_value : typing.Text = ...,
        boolean : builtins.bool = ...,
        datetime : typing.Optional[google.protobuf.timestamp_pb2.Timestamp] = ...,
        duration : typing.Optional[google.protobuf.duration_pb2.Duration] = ...,
        ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal[u"boolean",b"boolean",u"datetime",b"datetime",u"duration",b"duration",u"float_value",b"float_value",u"integer",b"integer",u"string_value",b"string_value",u"value",b"value"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"boolean",b"boolean",u"datetime",b"datetime",u"duration",b"duration",u"float_value",b"float_value",u"integer",b"integer",u"string_value",b"string_value",u"value",b"value"]) -> None: ...
    def WhichOneof(self, oneof_group: typing_extensions.Literal[u"value",b"value"]) -> typing.Optional[typing_extensions.Literal["integer","float_value","string_value","boolean","datetime","duration"]]: ...
global___Primitive = Primitive

class Void(google.protobuf.message.Message):
    """Used to denote a nil/null/None assignment to a scalar value. The underlying LiteralType for Void is intentionally
    undefined since it can be assigned to a scalar of any LiteralType.
    """
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    def __init__(self,
        ) -> None: ...
global___Void = Void

class Blob(google.protobuf.message.Message):
    """Refers to an offloaded set of files. It encapsulates the type of the store and a unique uri for where the data is.
    There are no restrictions on how the uri is formatted since it will depend on how to interact with the store.
    """
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    METADATA_FIELD_NUMBER: builtins.int
    URI_FIELD_NUMBER: builtins.int
    @property
    def metadata(self) -> global___BlobMetadata: ...
    uri: typing.Text = ...
    def __init__(self,
        *,
        metadata : typing.Optional[global___BlobMetadata] = ...,
        uri : typing.Text = ...,
        ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal[u"metadata",b"metadata"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"metadata",b"metadata",u"uri",b"uri"]) -> None: ...
global___Blob = Blob

class BlobMetadata(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    TYPE_FIELD_NUMBER: builtins.int
    @property
    def type(self) -> flyteidl.core.types_pb2.BlobType: ...
    def __init__(self,
        *,
        type : typing.Optional[flyteidl.core.types_pb2.BlobType] = ...,
        ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal[u"type",b"type"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"type",b"type"]) -> None: ...
global___BlobMetadata = BlobMetadata

class Binary(google.protobuf.message.Message):
    """A simple byte array with a tag to help different parts of the system communicate about what is in the byte array.
    It's strongly advisable that consumers of this type define a unique tag and validate the tag before parsing the data.
    """
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    VALUE_FIELD_NUMBER: builtins.int
    TAG_FIELD_NUMBER: builtins.int
    value: builtins.bytes = ...
    tag: typing.Text = ...
    def __init__(self,
        *,
        value : builtins.bytes = ...,
        tag : typing.Text = ...,
        ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"tag",b"tag",u"value",b"value"]) -> None: ...
global___Binary = Binary

class Schema(google.protobuf.message.Message):
    """A strongly typed schema that defines the interface of data retrieved from the underlying storage medium."""
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    URI_FIELD_NUMBER: builtins.int
    TYPE_FIELD_NUMBER: builtins.int
    uri: typing.Text = ...
    @property
    def type(self) -> flyteidl.core.types_pb2.SchemaType: ...
    def __init__(self,
        *,
        uri : typing.Text = ...,
        type : typing.Optional[flyteidl.core.types_pb2.SchemaType] = ...,
        ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal[u"type",b"type"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"type",b"type",u"uri",b"uri"]) -> None: ...
global___Schema = Schema

class Scalar(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    PRIMITIVE_FIELD_NUMBER: builtins.int
    BLOB_FIELD_NUMBER: builtins.int
    BINARY_FIELD_NUMBER: builtins.int
    SCHEMA_FIELD_NUMBER: builtins.int
    NONE_TYPE_FIELD_NUMBER: builtins.int
    ERROR_FIELD_NUMBER: builtins.int
    GENERIC_FIELD_NUMBER: builtins.int
    @property
    def primitive(self) -> global___Primitive: ...
    @property
    def blob(self) -> global___Blob: ...
    @property
    def binary(self) -> global___Binary: ...
    @property
    def schema(self) -> global___Schema: ...
    @property
    def none_type(self) -> global___Void: ...
    @property
    def error(self) -> flyteidl.core.types_pb2.Error: ...
    @property
    def generic(self) -> google.protobuf.struct_pb2.Struct: ...
    def __init__(self,
        *,
        primitive : typing.Optional[global___Primitive] = ...,
        blob : typing.Optional[global___Blob] = ...,
        binary : typing.Optional[global___Binary] = ...,
        schema : typing.Optional[global___Schema] = ...,
        none_type : typing.Optional[global___Void] = ...,
        error : typing.Optional[flyteidl.core.types_pb2.Error] = ...,
        generic : typing.Optional[google.protobuf.struct_pb2.Struct] = ...,
        ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal[u"binary",b"binary",u"blob",b"blob",u"error",b"error",u"generic",b"generic",u"none_type",b"none_type",u"primitive",b"primitive",u"schema",b"schema",u"value",b"value"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"binary",b"binary",u"blob",b"blob",u"error",b"error",u"generic",b"generic",u"none_type",b"none_type",u"primitive",b"primitive",u"schema",b"schema",u"value",b"value"]) -> None: ...
    def WhichOneof(self, oneof_group: typing_extensions.Literal[u"value",b"value"]) -> typing.Optional[typing_extensions.Literal["primitive","blob","binary","schema","none_type","error","generic"]]: ...
global___Scalar = Scalar

class LiteralRecord(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    class LiteralRecordField(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
        NAME_FIELD_NUMBER: builtins.int
        VALUE_FIELD_NUMBER: builtins.int
        name: typing.Text = ...
        @property
        def value(self) -> global___Literal: ...
        def __init__(self,
            *,
            name : typing.Text = ...,
            value : typing.Optional[global___Literal] = ...,
            ) -> None: ...
        def HasField(self, field_name: typing_extensions.Literal[u"value",b"value"]) -> builtins.bool: ...
        def ClearField(self, field_name: typing_extensions.Literal[u"name",b"name",u"value",b"value"]) -> None: ...

    FIELDS_FIELD_NUMBER: builtins.int
    @property
    def fields(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___LiteralRecord.LiteralRecordField]: ...
    def __init__(self,
        *,
        fields : typing.Optional[typing.Iterable[global___LiteralRecord.LiteralRecordField]] = ...,
        ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"fields",b"fields"]) -> None: ...
global___LiteralRecord = LiteralRecord

class Literal(google.protobuf.message.Message):
    """A simple value. This supports any level of nesting (e.g. array of array of array of Blobs) as well as simple primitives."""
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    SCALAR_FIELD_NUMBER: builtins.int
    COLLECTION_FIELD_NUMBER: builtins.int
    MAP_FIELD_NUMBER: builtins.int
    RECORD_FIELD_NUMBER: builtins.int
    @property
    def scalar(self) -> global___Scalar:
        """A simple value."""
        pass
    @property
    def collection(self) -> global___LiteralCollection:
        """A collection of literals to allow nesting."""
        pass
    @property
    def map(self) -> global___LiteralMap:
        """A map of strings to literals."""
        pass
    @property
    def record(self) -> global___LiteralRecord: ...
    def __init__(self,
        *,
        scalar : typing.Optional[global___Scalar] = ...,
        collection : typing.Optional[global___LiteralCollection] = ...,
        map : typing.Optional[global___LiteralMap] = ...,
        record : typing.Optional[global___LiteralRecord] = ...,
        ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal[u"collection",b"collection",u"map",b"map",u"record",b"record",u"scalar",b"scalar",u"value",b"value"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"collection",b"collection",u"map",b"map",u"record",b"record",u"scalar",b"scalar",u"value",b"value"]) -> None: ...
    def WhichOneof(self, oneof_group: typing_extensions.Literal[u"value",b"value"]) -> typing.Optional[typing_extensions.Literal["scalar","collection","map","record"]]: ...
global___Literal = Literal

class LiteralCollection(google.protobuf.message.Message):
    """A collection of literals. This is a workaround since oneofs in proto messages cannot contain a repeated field."""
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    LITERALS_FIELD_NUMBER: builtins.int
    @property
    def literals(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Literal]: ...
    def __init__(self,
        *,
        literals : typing.Optional[typing.Iterable[global___Literal]] = ...,
        ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"literals",b"literals"]) -> None: ...
global___LiteralCollection = LiteralCollection

class LiteralMap(google.protobuf.message.Message):
    """A map of literals. This is a workaround since oneofs in proto messages cannot contain a repeated field."""
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    class LiteralsEntry(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___Literal: ...
        def __init__(self,
            *,
            key : typing.Text = ...,
            value : typing.Optional[global___Literal] = ...,
            ) -> 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: ...

    LITERALS_FIELD_NUMBER: builtins.int
    @property
    def literals(self) -> google.protobuf.internal.containers.MessageMap[typing.Text, global___Literal]: ...
    def __init__(self,
        *,
        literals : typing.Optional[typing.Mapping[typing.Text, global___Literal]] = ...,
        ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"literals",b"literals"]) -> None: ...
global___LiteralMap = LiteralMap

class BindingDataCollection(google.protobuf.message.Message):
    """A collection of BindingData items."""
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    BINDINGS_FIELD_NUMBER: builtins.int
    @property
    def bindings(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___BindingData]: ...
    def __init__(self,
        *,
        bindings : typing.Optional[typing.Iterable[global___BindingData]] = ...,
        ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"bindings",b"bindings"]) -> None: ...
global___BindingDataCollection = BindingDataCollection

class BindingDataMap(google.protobuf.message.Message):
    """A map of BindingData items."""
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    class BindingsEntry(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___BindingData: ...
        def __init__(self,
            *,
            key : typing.Text = ...,
            value : typing.Optional[global___BindingData] = ...,
            ) -> 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: ...

    BINDINGS_FIELD_NUMBER: builtins.int
    @property
    def bindings(self) -> google.protobuf.internal.containers.MessageMap[typing.Text, global___BindingData]: ...
    def __init__(self,
        *,
        bindings : typing.Optional[typing.Mapping[typing.Text, global___BindingData]] = ...,
        ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"bindings",b"bindings"]) -> None: ...
global___BindingDataMap = BindingDataMap

class BindingRecord(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    class BindingRecordField(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
        NAME_FIELD_NUMBER: builtins.int
        VALUE_FIELD_NUMBER: builtins.int
        name: typing.Text = ...
        @property
        def value(self) -> global___BindingData: ...
        def __init__(self,
            *,
            name : typing.Text = ...,
            value : typing.Optional[global___BindingData] = ...,
            ) -> None: ...
        def HasField(self, field_name: typing_extensions.Literal[u"value",b"value"]) -> builtins.bool: ...
        def ClearField(self, field_name: typing_extensions.Literal[u"name",b"name",u"value",b"value"]) -> None: ...

    FIELDS_FIELD_NUMBER: builtins.int
    @property
    def fields(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___BindingRecord.BindingRecordField]: ...
    def __init__(self,
        *,
        fields : typing.Optional[typing.Iterable[global___BindingRecord.BindingRecordField]] = ...,
        ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"fields",b"fields"]) -> None: ...
global___BindingRecord = BindingRecord

class BindingData(google.protobuf.message.Message):
    """Specifies either a simple value or a reference to another output."""
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    SCALAR_FIELD_NUMBER: builtins.int
    COLLECTION_FIELD_NUMBER: builtins.int
    PROMISE_FIELD_NUMBER: builtins.int
    MAP_FIELD_NUMBER: builtins.int
    RECORD_FIELD_NUMBER: builtins.int
    @property
    def scalar(self) -> global___Scalar:
        """A simple scalar value."""
        pass
    @property
    def collection(self) -> global___BindingDataCollection:
        """A collection of binding data. This allows nesting of binding data to any number
        of levels.
        """
        pass
    @property
    def promise(self) -> flyteidl.core.types_pb2.OutputReference:
        """References an output promised by another node."""
        pass
    @property
    def map(self) -> global___BindingDataMap:
        """A map of bindings. The key is always a string."""
        pass
    @property
    def record(self) -> global___BindingRecord: ...
    def __init__(self,
        *,
        scalar : typing.Optional[global___Scalar] = ...,
        collection : typing.Optional[global___BindingDataCollection] = ...,
        promise : typing.Optional[flyteidl.core.types_pb2.OutputReference] = ...,
        map : typing.Optional[global___BindingDataMap] = ...,
        record : typing.Optional[global___BindingRecord] = ...,
        ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal[u"collection",b"collection",u"map",b"map",u"promise",b"promise",u"record",b"record",u"scalar",b"scalar",u"value",b"value"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"collection",b"collection",u"map",b"map",u"promise",b"promise",u"record",b"record",u"scalar",b"scalar",u"value",b"value"]) -> None: ...
    def WhichOneof(self, oneof_group: typing_extensions.Literal[u"value",b"value"]) -> typing.Optional[typing_extensions.Literal["scalar","collection","promise","map","record"]]: ...
global___BindingData = BindingData

class Binding(google.protobuf.message.Message):
    """An input/output binding of a variable to either static value or a node output."""
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    VAR_FIELD_NUMBER: builtins.int
    BINDING_FIELD_NUMBER: builtins.int
    var: typing.Text = ...
    """Variable name must match an input/output variable of the node."""

    @property
    def binding(self) -> global___BindingData:
        """Data to use to bind this variable."""
        pass
    def __init__(self,
        *,
        var : typing.Text = ...,
        binding : typing.Optional[global___BindingData] = ...,
        ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal[u"binding",b"binding"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"binding",b"binding",u"var",b"var"]) -> None: ...
global___Binding = Binding

class KeyValuePair(google.protobuf.message.Message):
    """A generic key value pair."""
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    KEY_FIELD_NUMBER: builtins.int
    VALUE_FIELD_NUMBER: builtins.int
    key: typing.Text = ...
    """required."""

    value: typing.Text = ...
    """+optional."""

    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: ...
global___KeyValuePair = KeyValuePair

class RetryStrategy(google.protobuf.message.Message):
    """Retry strategy associated with an executable unit."""
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    RETRIES_FIELD_NUMBER: builtins.int
    retries: builtins.int = ...
    """Number of retries. Retries will be consumed when the job fails with a recoverable error.
    The number of retries must be less than or equals to 10.
    """

    def __init__(self,
        *,
        retries : builtins.int = ...,
        ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"retries",b"retries"]) -> None: ...
global___RetryStrategy = RetryStrategy
