"""
@generated by mypy-protobuf.  Do not edit manually!
isort:skip_file
"""
import builtins
import google.ads.google_ads.v5.proto.enums.matching_function_context_type_pb2
import google.ads.google_ads.v5.proto.enums.matching_function_operator_pb2
import google.protobuf.descriptor
import google.protobuf.internal.containers
import google.protobuf.message
import google.protobuf.wrappers_pb2
import typing
import typing_extensions

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

class MatchingFunction(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    FUNCTION_STRING_FIELD_NUMBER: builtins.int
    OPERATOR_FIELD_NUMBER: builtins.int
    LEFT_OPERANDS_FIELD_NUMBER: builtins.int
    RIGHT_OPERANDS_FIELD_NUMBER: builtins.int
    operator: google.ads.google_ads.v5.proto.enums.matching_function_operator_pb2.MatchingFunctionOperatorEnum.MatchingFunctionOperator.V = (
        ...
    )
    @property
    def function_string(self) -> google.protobuf.wrappers_pb2.StringValue: ...
    @property
    def left_operands(
        self,
    ) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[
        global___Operand
    ]: ...
    @property
    def right_operands(
        self,
    ) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[
        global___Operand
    ]: ...
    def __init__(
        self,
        *,
        function_string: typing.Optional[
            google.protobuf.wrappers_pb2.StringValue
        ] = ...,
        operator: google.ads.google_ads.v5.proto.enums.matching_function_operator_pb2.MatchingFunctionOperatorEnum.MatchingFunctionOperator.V = ...,
        left_operands: typing.Optional[typing.Iterable[global___Operand]] = ...,
        right_operands: typing.Optional[typing.Iterable[global___Operand]] = ...,
    ) -> None: ...
    def HasField(
        self,
        field_name: typing_extensions.Literal["function_string", b"function_string"],
    ) -> builtins.bool: ...
    def ClearField(
        self,
        field_name: typing_extensions.Literal[
            "function_string",
            b"function_string",
            "left_operands",
            b"left_operands",
            "operator",
            b"operator",
            "right_operands",
            b"right_operands",
        ],
    ) -> None: ...

global___MatchingFunction = MatchingFunction

class Operand(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    class ConstantOperand(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
        STRING_VALUE_FIELD_NUMBER: builtins.int
        LONG_VALUE_FIELD_NUMBER: builtins.int
        BOOLEAN_VALUE_FIELD_NUMBER: builtins.int
        DOUBLE_VALUE_FIELD_NUMBER: builtins.int
        @property
        def string_value(self) -> google.protobuf.wrappers_pb2.StringValue: ...
        @property
        def long_value(self) -> google.protobuf.wrappers_pb2.Int64Value: ...
        @property
        def boolean_value(self) -> google.protobuf.wrappers_pb2.BoolValue: ...
        @property
        def double_value(self) -> google.protobuf.wrappers_pb2.DoubleValue: ...
        def __init__(
            self,
            *,
            string_value: typing.Optional[
                google.protobuf.wrappers_pb2.StringValue
            ] = ...,
            long_value: typing.Optional[google.protobuf.wrappers_pb2.Int64Value] = ...,
            boolean_value: typing.Optional[
                google.protobuf.wrappers_pb2.BoolValue
            ] = ...,
            double_value: typing.Optional[
                google.protobuf.wrappers_pb2.DoubleValue
            ] = ...,
        ) -> None: ...
        def HasField(
            self,
            field_name: typing_extensions.Literal[
                "boolean_value",
                b"boolean_value",
                "constant_operand_value",
                b"constant_operand_value",
                "double_value",
                b"double_value",
                "long_value",
                b"long_value",
                "string_value",
                b"string_value",
            ],
        ) -> builtins.bool: ...
        def ClearField(
            self,
            field_name: typing_extensions.Literal[
                "boolean_value",
                b"boolean_value",
                "constant_operand_value",
                b"constant_operand_value",
                "double_value",
                b"double_value",
                "long_value",
                b"long_value",
                "string_value",
                b"string_value",
            ],
        ) -> None: ...
        def WhichOneof(
            self,
            oneof_group: typing_extensions.Literal[
                "constant_operand_value", b"constant_operand_value"
            ],
        ) -> typing_extensions.Literal[
            "string_value", "long_value", "boolean_value", "double_value"
        ]: ...
    class FeedAttributeOperand(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
        FEED_ID_FIELD_NUMBER: builtins.int
        FEED_ATTRIBUTE_ID_FIELD_NUMBER: builtins.int
        @property
        def feed_id(self) -> google.protobuf.wrappers_pb2.Int64Value: ...
        @property
        def feed_attribute_id(self) -> google.protobuf.wrappers_pb2.Int64Value: ...
        def __init__(
            self,
            *,
            feed_id: typing.Optional[google.protobuf.wrappers_pb2.Int64Value] = ...,
            feed_attribute_id: typing.Optional[
                google.protobuf.wrappers_pb2.Int64Value
            ] = ...,
        ) -> None: ...
        def HasField(
            self,
            field_name: typing_extensions.Literal[
                "feed_attribute_id", b"feed_attribute_id", "feed_id", b"feed_id"
            ],
        ) -> builtins.bool: ...
        def ClearField(
            self,
            field_name: typing_extensions.Literal[
                "feed_attribute_id", b"feed_attribute_id", "feed_id", b"feed_id"
            ],
        ) -> None: ...
    class FunctionOperand(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
        MATCHING_FUNCTION_FIELD_NUMBER: builtins.int
        @property
        def matching_function(self) -> global___MatchingFunction: ...
        def __init__(
            self,
            *,
            matching_function: typing.Optional[global___MatchingFunction] = ...,
        ) -> None: ...
        def HasField(
            self,
            field_name: typing_extensions.Literal[
                "matching_function", b"matching_function"
            ],
        ) -> builtins.bool: ...
        def ClearField(
            self,
            field_name: typing_extensions.Literal[
                "matching_function", b"matching_function"
            ],
        ) -> None: ...
    class RequestContextOperand(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
        CONTEXT_TYPE_FIELD_NUMBER: builtins.int
        context_type: google.ads.google_ads.v5.proto.enums.matching_function_context_type_pb2.MatchingFunctionContextTypeEnum.MatchingFunctionContextType.V = (
            ...
        )
        def __init__(
            self,
            *,
            context_type: google.ads.google_ads.v5.proto.enums.matching_function_context_type_pb2.MatchingFunctionContextTypeEnum.MatchingFunctionContextType.V = ...,
        ) -> None: ...
        def ClearField(
            self, field_name: typing_extensions.Literal["context_type", b"context_type"]
        ) -> None: ...
    CONSTANT_OPERAND_FIELD_NUMBER: builtins.int
    FEED_ATTRIBUTE_OPERAND_FIELD_NUMBER: builtins.int
    FUNCTION_OPERAND_FIELD_NUMBER: builtins.int
    REQUEST_CONTEXT_OPERAND_FIELD_NUMBER: builtins.int
    @property
    def constant_operand(self) -> global___Operand.ConstantOperand: ...
    @property
    def feed_attribute_operand(self) -> global___Operand.FeedAttributeOperand: ...
    @property
    def function_operand(self) -> global___Operand.FunctionOperand: ...
    @property
    def request_context_operand(self) -> global___Operand.RequestContextOperand: ...
    def __init__(
        self,
        *,
        constant_operand: typing.Optional[global___Operand.ConstantOperand] = ...,
        feed_attribute_operand: typing.Optional[
            global___Operand.FeedAttributeOperand
        ] = ...,
        function_operand: typing.Optional[global___Operand.FunctionOperand] = ...,
        request_context_operand: typing.Optional[
            global___Operand.RequestContextOperand
        ] = ...,
    ) -> None: ...
    def HasField(
        self,
        field_name: typing_extensions.Literal[
            "constant_operand",
            b"constant_operand",
            "feed_attribute_operand",
            b"feed_attribute_operand",
            "function_argument_operand",
            b"function_argument_operand",
            "function_operand",
            b"function_operand",
            "request_context_operand",
            b"request_context_operand",
        ],
    ) -> builtins.bool: ...
    def ClearField(
        self,
        field_name: typing_extensions.Literal[
            "constant_operand",
            b"constant_operand",
            "feed_attribute_operand",
            b"feed_attribute_operand",
            "function_argument_operand",
            b"function_argument_operand",
            "function_operand",
            b"function_operand",
            "request_context_operand",
            b"request_context_operand",
        ],
    ) -> None: ...
    def WhichOneof(
        self,
        oneof_group: typing_extensions.Literal[
            "function_argument_operand", b"function_argument_operand"
        ],
    ) -> typing_extensions.Literal[
        "constant_operand",
        "feed_attribute_operand",
        "function_operand",
        "request_context_operand",
    ]: ...

global___Operand = Operand
