"""
@generated by mypy-protobuf.  Do not edit manually!
isort:skip_file
"""
import builtins
import google.ads.google_ads.v5.proto.common.criteria_pb2
import google.ads.google_ads.v5.proto.enums.criterion_type_pb2
import google.protobuf.descriptor
import google.protobuf.message
import typing
import typing_extensions

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

class SharedCriterion(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    RESOURCE_NAME_FIELD_NUMBER: builtins.int
    SHARED_SET_FIELD_NUMBER: builtins.int
    CRITERION_ID_FIELD_NUMBER: builtins.int
    TYPE_FIELD_NUMBER: builtins.int
    KEYWORD_FIELD_NUMBER: builtins.int
    YOUTUBE_VIDEO_FIELD_NUMBER: builtins.int
    YOUTUBE_CHANNEL_FIELD_NUMBER: builtins.int
    PLACEMENT_FIELD_NUMBER: builtins.int
    MOBILE_APP_CATEGORY_FIELD_NUMBER: builtins.int
    MOBILE_APPLICATION_FIELD_NUMBER: builtins.int
    resource_name: typing.Text = ...
    shared_set: typing.Text = ...
    criterion_id: builtins.int = ...
    type: google.ads.google_ads.v5.proto.enums.criterion_type_pb2.CriterionTypeEnum.CriterionType.V = (
        ...
    )
    @property
    def keyword(
        self,
    ) -> google.ads.google_ads.v5.proto.common.criteria_pb2.KeywordInfo: ...
    @property
    def youtube_video(
        self,
    ) -> google.ads.google_ads.v5.proto.common.criteria_pb2.YouTubeVideoInfo: ...
    @property
    def youtube_channel(
        self,
    ) -> google.ads.google_ads.v5.proto.common.criteria_pb2.YouTubeChannelInfo: ...
    @property
    def placement(
        self,
    ) -> google.ads.google_ads.v5.proto.common.criteria_pb2.PlacementInfo: ...
    @property
    def mobile_app_category(
        self,
    ) -> google.ads.google_ads.v5.proto.common.criteria_pb2.MobileAppCategoryInfo: ...
    @property
    def mobile_application(
        self,
    ) -> google.ads.google_ads.v5.proto.common.criteria_pb2.MobileApplicationInfo: ...
    def __init__(
        self,
        *,
        resource_name: typing.Text = ...,
        shared_set: typing.Text = ...,
        criterion_id: builtins.int = ...,
        type: google.ads.google_ads.v5.proto.enums.criterion_type_pb2.CriterionTypeEnum.CriterionType.V = ...,
        keyword: typing.Optional[
            google.ads.google_ads.v5.proto.common.criteria_pb2.KeywordInfo
        ] = ...,
        youtube_video: typing.Optional[
            google.ads.google_ads.v5.proto.common.criteria_pb2.YouTubeVideoInfo
        ] = ...,
        youtube_channel: typing.Optional[
            google.ads.google_ads.v5.proto.common.criteria_pb2.YouTubeChannelInfo
        ] = ...,
        placement: typing.Optional[
            google.ads.google_ads.v5.proto.common.criteria_pb2.PlacementInfo
        ] = ...,
        mobile_app_category: typing.Optional[
            google.ads.google_ads.v5.proto.common.criteria_pb2.MobileAppCategoryInfo
        ] = ...,
        mobile_application: typing.Optional[
            google.ads.google_ads.v5.proto.common.criteria_pb2.MobileApplicationInfo
        ] = ...,
    ) -> None: ...
    def HasField(
        self,
        field_name: typing_extensions.Literal[
            "_criterion_id",
            b"_criterion_id",
            "_shared_set",
            b"_shared_set",
            "criterion",
            b"criterion",
            "criterion_id",
            b"criterion_id",
            "keyword",
            b"keyword",
            "mobile_app_category",
            b"mobile_app_category",
            "mobile_application",
            b"mobile_application",
            "placement",
            b"placement",
            "shared_set",
            b"shared_set",
            "youtube_channel",
            b"youtube_channel",
            "youtube_video",
            b"youtube_video",
        ],
    ) -> builtins.bool: ...
    def ClearField(
        self,
        field_name: typing_extensions.Literal[
            "_criterion_id",
            b"_criterion_id",
            "_shared_set",
            b"_shared_set",
            "criterion",
            b"criterion",
            "criterion_id",
            b"criterion_id",
            "keyword",
            b"keyword",
            "mobile_app_category",
            b"mobile_app_category",
            "mobile_application",
            b"mobile_application",
            "placement",
            b"placement",
            "resource_name",
            b"resource_name",
            "shared_set",
            b"shared_set",
            "type",
            b"type",
            "youtube_channel",
            b"youtube_channel",
            "youtube_video",
            b"youtube_video",
        ],
    ) -> None: ...
    @typing.overload
    def WhichOneof(
        self, oneof_group: typing_extensions.Literal["_criterion_id", b"_criterion_id"]
    ) -> typing_extensions.Literal["criterion_id"]: ...
    @typing.overload
    def WhichOneof(
        self, oneof_group: typing_extensions.Literal["_shared_set", b"_shared_set"]
    ) -> typing_extensions.Literal["shared_set"]: ...
    @typing.overload
    def WhichOneof(
        self, oneof_group: typing_extensions.Literal["criterion", b"criterion"]
    ) -> typing_extensions.Literal[
        "keyword",
        "youtube_video",
        "youtube_channel",
        "placement",
        "mobile_app_category",
        "mobile_application",
    ]: ...

global___SharedCriterion = SharedCriterion
