"""
@generated by mypy-protobuf.  Do not edit manually!
isort:skip_file
"""
import builtins
import google.ads.google_ads.v6.proto.enums.change_client_type_pb2
import google.ads.google_ads.v6.proto.enums.change_event_resource_type_pb2
import google.ads.google_ads.v6.proto.enums.resource_change_operation_pb2
import google.ads.google_ads.v6.proto.resources.ad_group_ad_pb2
import google.ads.google_ads.v6.proto.resources.ad_group_bid_modifier_pb2
import google.ads.google_ads.v6.proto.resources.ad_group_criterion_pb2
import google.ads.google_ads.v6.proto.resources.ad_group_feed_pb2
import google.ads.google_ads.v6.proto.resources.ad_group_pb2
import google.ads.google_ads.v6.proto.resources.ad_pb2
import google.ads.google_ads.v6.proto.resources.campaign_budget_pb2
import google.ads.google_ads.v6.proto.resources.campaign_criterion_pb2
import google.ads.google_ads.v6.proto.resources.campaign_feed_pb2
import google.ads.google_ads.v6.proto.resources.campaign_pb2
import google.ads.google_ads.v6.proto.resources.feed_item_pb2
import google.ads.google_ads.v6.proto.resources.feed_pb2
import google.protobuf.descriptor
import google.protobuf.field_mask_pb2
import google.protobuf.message
import typing
import typing_extensions

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

class ChangeEvent(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    class ChangedResource(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
        AD_FIELD_NUMBER: builtins.int
        AD_GROUP_FIELD_NUMBER: builtins.int
        AD_GROUP_CRITERION_FIELD_NUMBER: builtins.int
        CAMPAIGN_FIELD_NUMBER: builtins.int
        CAMPAIGN_BUDGET_FIELD_NUMBER: builtins.int
        AD_GROUP_BID_MODIFIER_FIELD_NUMBER: builtins.int
        CAMPAIGN_CRITERION_FIELD_NUMBER: builtins.int
        FEED_FIELD_NUMBER: builtins.int
        FEED_ITEM_FIELD_NUMBER: builtins.int
        CAMPAIGN_FEED_FIELD_NUMBER: builtins.int
        AD_GROUP_FEED_FIELD_NUMBER: builtins.int
        AD_GROUP_AD_FIELD_NUMBER: builtins.int
        @property
        def ad(self) -> google.ads.google_ads.v6.proto.resources.ad_pb2.Ad: ...
        @property
        def ad_group(
            self,
        ) -> google.ads.google_ads.v6.proto.resources.ad_group_pb2.AdGroup: ...
        @property
        def ad_group_criterion(
            self,
        ) -> google.ads.google_ads.v6.proto.resources.ad_group_criterion_pb2.AdGroupCriterion: ...
        @property
        def campaign(
            self,
        ) -> google.ads.google_ads.v6.proto.resources.campaign_pb2.Campaign: ...
        @property
        def campaign_budget(
            self,
        ) -> google.ads.google_ads.v6.proto.resources.campaign_budget_pb2.CampaignBudget: ...
        @property
        def ad_group_bid_modifier(
            self,
        ) -> google.ads.google_ads.v6.proto.resources.ad_group_bid_modifier_pb2.AdGroupBidModifier: ...
        @property
        def campaign_criterion(
            self,
        ) -> google.ads.google_ads.v6.proto.resources.campaign_criterion_pb2.CampaignCriterion: ...
        @property
        def feed(self) -> google.ads.google_ads.v6.proto.resources.feed_pb2.Feed: ...
        @property
        def feed_item(
            self,
        ) -> google.ads.google_ads.v6.proto.resources.feed_item_pb2.FeedItem: ...
        @property
        def campaign_feed(
            self,
        ) -> google.ads.google_ads.v6.proto.resources.campaign_feed_pb2.CampaignFeed: ...
        @property
        def ad_group_feed(
            self,
        ) -> google.ads.google_ads.v6.proto.resources.ad_group_feed_pb2.AdGroupFeed: ...
        @property
        def ad_group_ad(
            self,
        ) -> google.ads.google_ads.v6.proto.resources.ad_group_ad_pb2.AdGroupAd: ...
        def __init__(
            self,
            *,
            ad: typing.Optional[
                google.ads.google_ads.v6.proto.resources.ad_pb2.Ad
            ] = ...,
            ad_group: typing.Optional[
                google.ads.google_ads.v6.proto.resources.ad_group_pb2.AdGroup
            ] = ...,
            ad_group_criterion: typing.Optional[
                google.ads.google_ads.v6.proto.resources.ad_group_criterion_pb2.AdGroupCriterion
            ] = ...,
            campaign: typing.Optional[
                google.ads.google_ads.v6.proto.resources.campaign_pb2.Campaign
            ] = ...,
            campaign_budget: typing.Optional[
                google.ads.google_ads.v6.proto.resources.campaign_budget_pb2.CampaignBudget
            ] = ...,
            ad_group_bid_modifier: typing.Optional[
                google.ads.google_ads.v6.proto.resources.ad_group_bid_modifier_pb2.AdGroupBidModifier
            ] = ...,
            campaign_criterion: typing.Optional[
                google.ads.google_ads.v6.proto.resources.campaign_criterion_pb2.CampaignCriterion
            ] = ...,
            feed: typing.Optional[
                google.ads.google_ads.v6.proto.resources.feed_pb2.Feed
            ] = ...,
            feed_item: typing.Optional[
                google.ads.google_ads.v6.proto.resources.feed_item_pb2.FeedItem
            ] = ...,
            campaign_feed: typing.Optional[
                google.ads.google_ads.v6.proto.resources.campaign_feed_pb2.CampaignFeed
            ] = ...,
            ad_group_feed: typing.Optional[
                google.ads.google_ads.v6.proto.resources.ad_group_feed_pb2.AdGroupFeed
            ] = ...,
            ad_group_ad: typing.Optional[
                google.ads.google_ads.v6.proto.resources.ad_group_ad_pb2.AdGroupAd
            ] = ...,
        ) -> None: ...
        def HasField(
            self,
            field_name: typing_extensions.Literal[
                "ad",
                b"ad",
                "ad_group",
                b"ad_group",
                "ad_group_ad",
                b"ad_group_ad",
                "ad_group_bid_modifier",
                b"ad_group_bid_modifier",
                "ad_group_criterion",
                b"ad_group_criterion",
                "ad_group_feed",
                b"ad_group_feed",
                "campaign",
                b"campaign",
                "campaign_budget",
                b"campaign_budget",
                "campaign_criterion",
                b"campaign_criterion",
                "campaign_feed",
                b"campaign_feed",
                "feed",
                b"feed",
                "feed_item",
                b"feed_item",
            ],
        ) -> builtins.bool: ...
        def ClearField(
            self,
            field_name: typing_extensions.Literal[
                "ad",
                b"ad",
                "ad_group",
                b"ad_group",
                "ad_group_ad",
                b"ad_group_ad",
                "ad_group_bid_modifier",
                b"ad_group_bid_modifier",
                "ad_group_criterion",
                b"ad_group_criterion",
                "ad_group_feed",
                b"ad_group_feed",
                "campaign",
                b"campaign",
                "campaign_budget",
                b"campaign_budget",
                "campaign_criterion",
                b"campaign_criterion",
                "campaign_feed",
                b"campaign_feed",
                "feed",
                b"feed",
                "feed_item",
                b"feed_item",
            ],
        ) -> None: ...
    RESOURCE_NAME_FIELD_NUMBER: builtins.int
    CHANGE_DATE_TIME_FIELD_NUMBER: builtins.int
    CHANGE_RESOURCE_TYPE_FIELD_NUMBER: builtins.int
    CHANGE_RESOURCE_NAME_FIELD_NUMBER: builtins.int
    CLIENT_TYPE_FIELD_NUMBER: builtins.int
    USER_EMAIL_FIELD_NUMBER: builtins.int
    OLD_RESOURCE_FIELD_NUMBER: builtins.int
    NEW_RESOURCE_FIELD_NUMBER: builtins.int
    RESOURCE_CHANGE_OPERATION_FIELD_NUMBER: builtins.int
    CHANGED_FIELDS_FIELD_NUMBER: builtins.int
    CAMPAIGN_FIELD_NUMBER: builtins.int
    AD_GROUP_FIELD_NUMBER: builtins.int
    FEED_FIELD_NUMBER: builtins.int
    FEED_ITEM_FIELD_NUMBER: builtins.int
    resource_name: typing.Text = ...
    change_date_time: typing.Text = ...
    change_resource_type: google.ads.google_ads.v6.proto.enums.change_event_resource_type_pb2.ChangeEventResourceTypeEnum.ChangeEventResourceType.V = (
        ...
    )
    change_resource_name: typing.Text = ...
    client_type: google.ads.google_ads.v6.proto.enums.change_client_type_pb2.ChangeClientTypeEnum.ChangeClientType.V = (
        ...
    )
    user_email: typing.Text = ...
    resource_change_operation: google.ads.google_ads.v6.proto.enums.resource_change_operation_pb2.ResourceChangeOperationEnum.ResourceChangeOperation.V = (
        ...
    )
    campaign: typing.Text = ...
    ad_group: typing.Text = ...
    feed: typing.Text = ...
    feed_item: typing.Text = ...
    @property
    def old_resource(self) -> global___ChangeEvent.ChangedResource: ...
    @property
    def new_resource(self) -> global___ChangeEvent.ChangedResource: ...
    @property
    def changed_fields(self) -> google.protobuf.field_mask_pb2.FieldMask: ...
    def __init__(
        self,
        *,
        resource_name: typing.Text = ...,
        change_date_time: typing.Text = ...,
        change_resource_type: google.ads.google_ads.v6.proto.enums.change_event_resource_type_pb2.ChangeEventResourceTypeEnum.ChangeEventResourceType.V = ...,
        change_resource_name: typing.Text = ...,
        client_type: google.ads.google_ads.v6.proto.enums.change_client_type_pb2.ChangeClientTypeEnum.ChangeClientType.V = ...,
        user_email: typing.Text = ...,
        old_resource: typing.Optional[global___ChangeEvent.ChangedResource] = ...,
        new_resource: typing.Optional[global___ChangeEvent.ChangedResource] = ...,
        resource_change_operation: google.ads.google_ads.v6.proto.enums.resource_change_operation_pb2.ResourceChangeOperationEnum.ResourceChangeOperation.V = ...,
        changed_fields: typing.Optional[google.protobuf.field_mask_pb2.FieldMask] = ...,
        campaign: typing.Text = ...,
        ad_group: typing.Text = ...,
        feed: typing.Text = ...,
        feed_item: typing.Text = ...,
    ) -> None: ...
    def HasField(
        self,
        field_name: typing_extensions.Literal[
            "changed_fields",
            b"changed_fields",
            "new_resource",
            b"new_resource",
            "old_resource",
            b"old_resource",
        ],
    ) -> builtins.bool: ...
    def ClearField(
        self,
        field_name: typing_extensions.Literal[
            "ad_group",
            b"ad_group",
            "campaign",
            b"campaign",
            "change_date_time",
            b"change_date_time",
            "change_resource_name",
            b"change_resource_name",
            "change_resource_type",
            b"change_resource_type",
            "changed_fields",
            b"changed_fields",
            "client_type",
            b"client_type",
            "feed",
            b"feed",
            "feed_item",
            b"feed_item",
            "new_resource",
            b"new_resource",
            "old_resource",
            b"old_resource",
            "resource_change_operation",
            b"resource_change_operation",
            "resource_name",
            b"resource_name",
            "user_email",
            b"user_email",
        ],
    ) -> None: ...

global___ChangeEvent = ChangeEvent
