"""
@generated by mypy-protobuf.  Do not edit manually!
isort:skip_file
"""

import builtins
import collections.abc
import typing

import google.protobuf.descriptor
import google.protobuf.internal.containers
import google.protobuf.message
import tensorflow.core.framework.tensor_pb2
import tensorflow.core.framework.tensor_shape_pb2
import tensorflow.core.framework.types_pb2

DESCRIPTOR: google.protobuf.descriptor.FileDescriptor

@typing.final
class AttrValue(google.protobuf.message.Message):
    """Protocol buffer representing the value for an attr used to configure an Op.
    Comment indicates the corresponding attr type.  Only the field matching the
    attr type may be filled.
    """

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    @typing.final
    class ListValue(google.protobuf.message.Message):
        """LINT.IfChange"""

        DESCRIPTOR: google.protobuf.descriptor.Descriptor

        S_FIELD_NUMBER: builtins.int
        I_FIELD_NUMBER: builtins.int
        F_FIELD_NUMBER: builtins.int
        B_FIELD_NUMBER: builtins.int
        TYPE_FIELD_NUMBER: builtins.int
        SHAPE_FIELD_NUMBER: builtins.int
        TENSOR_FIELD_NUMBER: builtins.int
        FUNC_FIELD_NUMBER: builtins.int
        @property
        def s(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.bytes]:
            """ "list(string)" """

        @property
        def i(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]:
            """ "list(int)" """

        @property
        def f(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.float]:
            """ "list(float)" """

        @property
        def b(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.bool]:
            """ "list(bool)" """

        @property
        def type(
            self,
        ) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[
            tensorflow.core.framework.types_pb2.DataType.ValueType
        ]:
            """ "list(type)" """

        @property
        def shape(
            self,
        ) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[
            tensorflow.core.framework.tensor_shape_pb2.TensorShapeProto
        ]:
            """ "list(shape)" """

        @property
        def tensor(
            self,
        ) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[
            tensorflow.core.framework.tensor_pb2.TensorProto
        ]:
            """ "list(tensor)" """

        @property
        def func(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___NameAttrList]:
            """ "list(attr)" """

        def __init__(
            self,
            *,
            s: collections.abc.Iterable[builtins.bytes] | None = ...,
            i: collections.abc.Iterable[builtins.int] | None = ...,
            f: collections.abc.Iterable[builtins.float] | None = ...,
            b: collections.abc.Iterable[builtins.bool] | None = ...,
            type: collections.abc.Iterable[tensorflow.core.framework.types_pb2.DataType.ValueType] | None = ...,
            shape: collections.abc.Iterable[tensorflow.core.framework.tensor_shape_pb2.TensorShapeProto] | None = ...,
            tensor: collections.abc.Iterable[tensorflow.core.framework.tensor_pb2.TensorProto] | None = ...,
            func: collections.abc.Iterable[global___NameAttrList] | None = ...,
        ) -> None: ...
        def ClearField(
            self,
            field_name: typing.Literal[
                "b",
                b"b",
                "f",
                b"f",
                "func",
                b"func",
                "i",
                b"i",
                "s",
                b"s",
                "shape",
                b"shape",
                "tensor",
                b"tensor",
                "type",
                b"type",
            ],
        ) -> None: ...

    S_FIELD_NUMBER: builtins.int
    I_FIELD_NUMBER: builtins.int
    F_FIELD_NUMBER: builtins.int
    B_FIELD_NUMBER: builtins.int
    TYPE_FIELD_NUMBER: builtins.int
    SHAPE_FIELD_NUMBER: builtins.int
    TENSOR_FIELD_NUMBER: builtins.int
    LIST_FIELD_NUMBER: builtins.int
    FUNC_FIELD_NUMBER: builtins.int
    PLACEHOLDER_FIELD_NUMBER: builtins.int
    s: builtins.bytes
    """"string" """
    i: builtins.int
    """"int" """
    f: builtins.float
    """"float" """
    b: builtins.bool
    """"bool" """
    type: tensorflow.core.framework.types_pb2.DataType.ValueType
    """"type" """
    placeholder: builtins.str
    """This is a placeholder only used in nodes defined inside a
    function.  It indicates the attr value will be supplied when
    the function is instantiated.  For example, let us suppose a
    node "N" in function "FN". "N" has an attr "A" with value
    placeholder = "foo". When FN is instantiated with attr "foo"
    set to "bar", the instantiated node N's attr A will have been
    given the value "bar".
    """
    @property
    def shape(self) -> tensorflow.core.framework.tensor_shape_pb2.TensorShapeProto:
        """ "shape" """

    @property
    def tensor(self) -> tensorflow.core.framework.tensor_pb2.TensorProto:
        """ "tensor" """

    @property
    def list(self) -> global___AttrValue.ListValue:
        """any "list(...)" """

    @property
    def func(self) -> global___NameAttrList:
        """ "func" represents a function. func.name is a function's name or
        a primitive op's name. func.attr.first is the name of an attr
        defined for that function. func.attr.second is the value for
        that attr in the instantiation.
        """

    def __init__(
        self,
        *,
        s: builtins.bytes | None = ...,
        i: builtins.int | None = ...,
        f: builtins.float | None = ...,
        b: builtins.bool | None = ...,
        type: tensorflow.core.framework.types_pb2.DataType.ValueType | None = ...,
        shape: tensorflow.core.framework.tensor_shape_pb2.TensorShapeProto | None = ...,
        tensor: tensorflow.core.framework.tensor_pb2.TensorProto | None = ...,
        list: global___AttrValue.ListValue | None = ...,
        func: global___NameAttrList | None = ...,
        placeholder: builtins.str | None = ...,
    ) -> None: ...
    def HasField(
        self,
        field_name: typing.Literal[
            "b",
            b"b",
            "f",
            b"f",
            "func",
            b"func",
            "i",
            b"i",
            "list",
            b"list",
            "placeholder",
            b"placeholder",
            "s",
            b"s",
            "shape",
            b"shape",
            "tensor",
            b"tensor",
            "type",
            b"type",
            "value",
            b"value",
        ],
    ) -> builtins.bool: ...
    def ClearField(
        self,
        field_name: typing.Literal[
            "b",
            b"b",
            "f",
            b"f",
            "func",
            b"func",
            "i",
            b"i",
            "list",
            b"list",
            "placeholder",
            b"placeholder",
            "s",
            b"s",
            "shape",
            b"shape",
            "tensor",
            b"tensor",
            "type",
            b"type",
            "value",
            b"value",
        ],
    ) -> None: ...
    def WhichOneof(
        self, oneof_group: typing.Literal["value", b"value"]
    ) -> typing.Literal["s", "i", "f", "b", "type", "shape", "tensor", "list", "func", "placeholder"] | None: ...

global___AttrValue = AttrValue

@typing.final
class NameAttrList(google.protobuf.message.Message):
    """A list of attr names and their values. The whole list is attached
    with a string name.  E.g., MatMul[T=float].
    """

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    @typing.final
    class AttrEntry(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor

        KEY_FIELD_NUMBER: builtins.int
        VALUE_FIELD_NUMBER: builtins.int
        key: builtins.str
        @property
        def value(self) -> global___AttrValue: ...
        def __init__(self, *, key: builtins.str | None = ..., value: global___AttrValue | None = ...) -> None: ...
        def HasField(self, field_name: typing.Literal["value", b"value"]) -> builtins.bool: ...
        def ClearField(self, field_name: typing.Literal["key", b"key", "value", b"value"]) -> None: ...

    NAME_FIELD_NUMBER: builtins.int
    ATTR_FIELD_NUMBER: builtins.int
    name: builtins.str
    @property
    def attr(self) -> google.protobuf.internal.containers.MessageMap[builtins.str, global___AttrValue]: ...
    def __init__(
        self, *, name: builtins.str | None = ..., attr: collections.abc.Mapping[builtins.str, global___AttrValue] | None = ...
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["attr", b"attr", "name", b"name"]) -> None: ...

global___NameAttrList = NameAttrList
