# @generated by mypy-protobuf.  Do not edit manually!
import sys
from typing import (
    Iterable as typing___Iterable,
    Optional as typing___Optional,
    Text as typing___Text,
    overload as typing___overload,
)

from google.protobuf.descriptor import (
    Descriptor as google___protobuf___descriptor___Descriptor,
    FileDescriptor as google___protobuf___descriptor___FileDescriptor,
)
from google.protobuf.internal.containers import (
    RepeatedCompositeFieldContainer as google___protobuf___internal___containers___RepeatedCompositeFieldContainer,
    RepeatedScalarFieldContainer as google___protobuf___internal___containers___RepeatedScalarFieldContainer,
)
from google.protobuf.message import Message as google___protobuf___message___Message
from typing_extensions import Literal as typing_extensions___Literal

from google.ads.google_ads.v6.proto.common.asset_types_pb2 import (
    BookOnGoogleAsset as google___ads___googleads___v6___common___asset_types_pb2___BookOnGoogleAsset,
    ImageAsset as google___ads___googleads___v6___common___asset_types_pb2___ImageAsset,
    LeadFormAsset as google___ads___googleads___v6___common___asset_types_pb2___LeadFormAsset,
    MediaBundleAsset as google___ads___googleads___v6___common___asset_types_pb2___MediaBundleAsset,
    TextAsset as google___ads___googleads___v6___common___asset_types_pb2___TextAsset,
    YoutubeVideoAsset as google___ads___googleads___v6___common___asset_types_pb2___YoutubeVideoAsset,
)
from google.ads.google_ads.v6.proto.common.policy_pb2 import (
    PolicyTopicEntry as google___ads___googleads___v6___common___policy_pb2___PolicyTopicEntry,
)
from google.ads.google_ads.v6.proto.enums.asset_type_pb2 import (
    AssetTypeEnum as google___ads___googleads___v6___enums___asset_type_pb2___AssetTypeEnum,
)
from google.ads.google_ads.v6.proto.enums.policy_approval_status_pb2 import (
    PolicyApprovalStatusEnum as google___ads___googleads___v6___enums___policy_approval_status_pb2___PolicyApprovalStatusEnum,
)
from google.ads.google_ads.v6.proto.enums.policy_review_status_pb2 import (
    PolicyReviewStatusEnum as google___ads___googleads___v6___enums___policy_review_status_pb2___PolicyReviewStatusEnum,
)

builtin___bool = bool
builtin___bytes = bytes
builtin___float = float
builtin___int = int

DESCRIPTOR: google___protobuf___descriptor___FileDescriptor = ...

class Asset(google___protobuf___message___Message):
    DESCRIPTOR: google___protobuf___descriptor___Descriptor = ...
    resource_name: typing___Text = ...
    id: builtin___int = ...
    name: typing___Text = ...
    type: google___ads___googleads___v6___enums___asset_type_pb2___AssetTypeEnum.AssetTypeValue = ...
    final_urls: google___protobuf___internal___containers___RepeatedScalarFieldContainer[
        typing___Text
    ] = ...
    @property
    def policy_summary(self) -> type___AssetPolicySummary: ...
    @property
    def youtube_video_asset(
        self,
    ) -> google___ads___googleads___v6___common___asset_types_pb2___YoutubeVideoAsset: ...
    @property
    def media_bundle_asset(
        self,
    ) -> google___ads___googleads___v6___common___asset_types_pb2___MediaBundleAsset: ...
    @property
    def image_asset(
        self,
    ) -> google___ads___googleads___v6___common___asset_types_pb2___ImageAsset: ...
    @property
    def text_asset(
        self,
    ) -> google___ads___googleads___v6___common___asset_types_pb2___TextAsset: ...
    @property
    def lead_form_asset(
        self,
    ) -> google___ads___googleads___v6___common___asset_types_pb2___LeadFormAsset: ...
    @property
    def book_on_google_asset(
        self,
    ) -> google___ads___googleads___v6___common___asset_types_pb2___BookOnGoogleAsset: ...
    def __init__(
        self,
        *,
        resource_name: typing___Optional[typing___Text] = None,
        id: typing___Optional[builtin___int] = None,
        name: typing___Optional[typing___Text] = None,
        type: typing___Optional[
            google___ads___googleads___v6___enums___asset_type_pb2___AssetTypeEnum.AssetTypeValue
        ] = None,
        final_urls: typing___Optional[typing___Iterable[typing___Text]] = None,
        policy_summary: typing___Optional[type___AssetPolicySummary] = None,
        youtube_video_asset: typing___Optional[
            google___ads___googleads___v6___common___asset_types_pb2___YoutubeVideoAsset
        ] = None,
        media_bundle_asset: typing___Optional[
            google___ads___googleads___v6___common___asset_types_pb2___MediaBundleAsset
        ] = None,
        image_asset: typing___Optional[
            google___ads___googleads___v6___common___asset_types_pb2___ImageAsset
        ] = None,
        text_asset: typing___Optional[
            google___ads___googleads___v6___common___asset_types_pb2___TextAsset
        ] = None,
        lead_form_asset: typing___Optional[
            google___ads___googleads___v6___common___asset_types_pb2___LeadFormAsset
        ] = None,
        book_on_google_asset: typing___Optional[
            google___ads___googleads___v6___common___asset_types_pb2___BookOnGoogleAsset
        ] = None,
    ) -> None: ...
    def HasField(
        self,
        field_name: typing_extensions___Literal[
            "_id",
            b"_id",
            "_name",
            b"_name",
            "asset_data",
            b"asset_data",
            "book_on_google_asset",
            b"book_on_google_asset",
            "id",
            b"id",
            "image_asset",
            b"image_asset",
            "lead_form_asset",
            b"lead_form_asset",
            "media_bundle_asset",
            b"media_bundle_asset",
            "name",
            b"name",
            "policy_summary",
            b"policy_summary",
            "text_asset",
            b"text_asset",
            "youtube_video_asset",
            b"youtube_video_asset",
        ],
    ) -> builtin___bool: ...
    def ClearField(
        self,
        field_name: typing_extensions___Literal[
            "_id",
            b"_id",
            "_name",
            b"_name",
            "asset_data",
            b"asset_data",
            "book_on_google_asset",
            b"book_on_google_asset",
            "final_urls",
            b"final_urls",
            "id",
            b"id",
            "image_asset",
            b"image_asset",
            "lead_form_asset",
            b"lead_form_asset",
            "media_bundle_asset",
            b"media_bundle_asset",
            "name",
            b"name",
            "policy_summary",
            b"policy_summary",
            "resource_name",
            b"resource_name",
            "text_asset",
            b"text_asset",
            "type",
            b"type",
            "youtube_video_asset",
            b"youtube_video_asset",
        ],
    ) -> None: ...
    @typing___overload
    def WhichOneof(
        self, oneof_group: typing_extensions___Literal["_id", b"_id"]
    ) -> typing_extensions___Literal["id"]: ...
    @typing___overload
    def WhichOneof(
        self, oneof_group: typing_extensions___Literal["_name", b"_name"]
    ) -> typing_extensions___Literal["name"]: ...
    @typing___overload
    def WhichOneof(
        self, oneof_group: typing_extensions___Literal["asset_data", b"asset_data"]
    ) -> typing_extensions___Literal[
        "youtube_video_asset",
        "media_bundle_asset",
        "image_asset",
        "text_asset",
        "lead_form_asset",
        "book_on_google_asset",
    ]: ...

type___Asset = Asset

class AssetPolicySummary(google___protobuf___message___Message):
    DESCRIPTOR: google___protobuf___descriptor___Descriptor = ...
    review_status: google___ads___googleads___v6___enums___policy_review_status_pb2___PolicyReviewStatusEnum.PolicyReviewStatusValue = ...
    approval_status: google___ads___googleads___v6___enums___policy_approval_status_pb2___PolicyApprovalStatusEnum.PolicyApprovalStatusValue = ...
    @property
    def policy_topic_entries(
        self,
    ) -> google___protobuf___internal___containers___RepeatedCompositeFieldContainer[
        google___ads___googleads___v6___common___policy_pb2___PolicyTopicEntry
    ]: ...
    def __init__(
        self,
        *,
        policy_topic_entries: typing___Optional[
            typing___Iterable[
                google___ads___googleads___v6___common___policy_pb2___PolicyTopicEntry
            ]
        ] = None,
        review_status: typing___Optional[
            google___ads___googleads___v6___enums___policy_review_status_pb2___PolicyReviewStatusEnum.PolicyReviewStatusValue
        ] = None,
        approval_status: typing___Optional[
            google___ads___googleads___v6___enums___policy_approval_status_pb2___PolicyApprovalStatusEnum.PolicyApprovalStatusValue
        ] = None,
    ) -> None: ...
    def ClearField(
        self,
        field_name: typing_extensions___Literal[
            "approval_status",
            b"approval_status",
            "policy_topic_entries",
            b"policy_topic_entries",
            "review_status",
            b"review_status",
        ],
    ) -> None: ...

type___AssetPolicySummary = AssetPolicySummary
