# @generated by generate_proto_mypy_stubs.py.  Do not edit!
import sys
from google.ads.google_ads.v1.proto.enums.affiliate_location_feed_relationship_type_pb2 import (
    AffiliateLocationFeedRelationshipTypeEnum as google___ads___googleads___v1___enums___affiliate_location_feed_relationship_type_pb2___AffiliateLocationFeedRelationshipTypeEnum,
)

from google.ads.google_ads.v1.proto.enums.feed_attribute_type_pb2 import (
    FeedAttributeTypeEnum as google___ads___googleads___v1___enums___feed_attribute_type_pb2___FeedAttributeTypeEnum,
)

from google.ads.google_ads.v1.proto.enums.feed_origin_pb2 import (
    FeedOriginEnum as google___ads___googleads___v1___enums___feed_origin_pb2___FeedOriginEnum,
)

from google.ads.google_ads.v1.proto.enums.feed_status_pb2 import (
    FeedStatusEnum as google___ads___googleads___v1___enums___feed_status_pb2___FeedStatusEnum,
)

from google.protobuf.descriptor import (
    Descriptor as google___protobuf___descriptor___Descriptor,
    EnumDescriptor as google___protobuf___descriptor___EnumDescriptor,
)

from google.protobuf.internal.containers import (
    RepeatedCompositeFieldContainer as google___protobuf___internal___containers___RepeatedCompositeFieldContainer,
)

from google.protobuf.message import (
    Message as google___protobuf___message___Message,
)

from google.protobuf.wrappers_pb2 import (
    BoolValue as google___protobuf___wrappers_pb2___BoolValue,
    Int64Value as google___protobuf___wrappers_pb2___Int64Value,
    StringValue as google___protobuf___wrappers_pb2___StringValue,
)

from typing import (
    Iterable as typing___Iterable,
    List as typing___List,
    Optional as typing___Optional,
    Text as typing___Text,
    Tuple as typing___Tuple,
    cast as typing___cast,
)

from typing_extensions import (
    Literal as typing_extensions___Literal,
)


class Feed(google___protobuf___message___Message):
    DESCRIPTOR: google___protobuf___descriptor___Descriptor = ...
    class PlacesLocationFeedData(google___protobuf___message___Message):
        DESCRIPTOR: google___protobuf___descriptor___Descriptor = ...
        class OAuthInfo(google___protobuf___message___Message):
            DESCRIPTOR: google___protobuf___descriptor___Descriptor = ...

            @property
            def http_method(self) -> google___protobuf___wrappers_pb2___StringValue: ...

            @property
            def http_request_url(self) -> google___protobuf___wrappers_pb2___StringValue: ...

            @property
            def http_authorization_header(self) -> google___protobuf___wrappers_pb2___StringValue: ...

            def __init__(self,
                *,
                http_method : typing___Optional[google___protobuf___wrappers_pb2___StringValue] = None,
                http_request_url : typing___Optional[google___protobuf___wrappers_pb2___StringValue] = None,
                http_authorization_header : typing___Optional[google___protobuf___wrappers_pb2___StringValue] = None,
                ) -> None: ...
            @classmethod
            def FromString(cls, s: bytes) -> Feed.PlacesLocationFeedData.OAuthInfo: ...
            def MergeFrom(self, other_msg: google___protobuf___message___Message) -> None: ...
            def CopyFrom(self, other_msg: google___protobuf___message___Message) -> None: ...
            if sys.version_info >= (3,):
                def HasField(self, field_name: typing_extensions___Literal[u"http_authorization_header",u"http_method",u"http_request_url"]) -> bool: ...
                def ClearField(self, field_name: typing_extensions___Literal[u"http_authorization_header",u"http_method",u"http_request_url"]) -> None: ...
            else:
                def HasField(self, field_name: typing_extensions___Literal[u"http_authorization_header",b"http_authorization_header",u"http_method",b"http_method",u"http_request_url",b"http_request_url"]) -> bool: ...
                def ClearField(self, field_name: typing_extensions___Literal[u"http_authorization_header",b"http_authorization_header",u"http_method",b"http_method",u"http_request_url",b"http_request_url"]) -> None: ...


        @property
        def oauth_info(self) -> Feed.PlacesLocationFeedData.OAuthInfo: ...

        @property
        def email_address(self) -> google___protobuf___wrappers_pb2___StringValue: ...

        @property
        def business_account_id(self) -> google___protobuf___wrappers_pb2___StringValue: ...

        @property
        def business_name_filter(self) -> google___protobuf___wrappers_pb2___StringValue: ...

        @property
        def category_filters(self) -> google___protobuf___internal___containers___RepeatedCompositeFieldContainer[google___protobuf___wrappers_pb2___StringValue]: ...

        @property
        def label_filters(self) -> google___protobuf___internal___containers___RepeatedCompositeFieldContainer[google___protobuf___wrappers_pb2___StringValue]: ...

        def __init__(self,
            *,
            oauth_info : typing___Optional[Feed.PlacesLocationFeedData.OAuthInfo] = None,
            email_address : typing___Optional[google___protobuf___wrappers_pb2___StringValue] = None,
            business_account_id : typing___Optional[google___protobuf___wrappers_pb2___StringValue] = None,
            business_name_filter : typing___Optional[google___protobuf___wrappers_pb2___StringValue] = None,
            category_filters : typing___Optional[typing___Iterable[google___protobuf___wrappers_pb2___StringValue]] = None,
            label_filters : typing___Optional[typing___Iterable[google___protobuf___wrappers_pb2___StringValue]] = None,
            ) -> None: ...
        @classmethod
        def FromString(cls, s: bytes) -> Feed.PlacesLocationFeedData: ...
        def MergeFrom(self, other_msg: google___protobuf___message___Message) -> None: ...
        def CopyFrom(self, other_msg: google___protobuf___message___Message) -> None: ...
        if sys.version_info >= (3,):
            def HasField(self, field_name: typing_extensions___Literal[u"business_account_id",u"business_name_filter",u"email_address",u"oauth_info"]) -> bool: ...
            def ClearField(self, field_name: typing_extensions___Literal[u"business_account_id",u"business_name_filter",u"category_filters",u"email_address",u"label_filters",u"oauth_info"]) -> None: ...
        else:
            def HasField(self, field_name: typing_extensions___Literal[u"business_account_id",b"business_account_id",u"business_name_filter",b"business_name_filter",u"email_address",b"email_address",u"oauth_info",b"oauth_info"]) -> bool: ...
            def ClearField(self, field_name: typing_extensions___Literal[u"business_account_id",b"business_account_id",u"business_name_filter",b"business_name_filter",u"category_filters",b"category_filters",u"email_address",b"email_address",u"label_filters",b"label_filters",u"oauth_info",b"oauth_info"]) -> None: ...

    class AffiliateLocationFeedData(google___protobuf___message___Message):
        DESCRIPTOR: google___protobuf___descriptor___Descriptor = ...
        relationship_type = ... # type: google___ads___googleads___v1___enums___affiliate_location_feed_relationship_type_pb2___AffiliateLocationFeedRelationshipTypeEnum.AffiliateLocationFeedRelationshipType

        @property
        def chain_ids(self) -> google___protobuf___internal___containers___RepeatedCompositeFieldContainer[google___protobuf___wrappers_pb2___Int64Value]: ...

        def __init__(self,
            *,
            chain_ids : typing___Optional[typing___Iterable[google___protobuf___wrappers_pb2___Int64Value]] = None,
            relationship_type : typing___Optional[google___ads___googleads___v1___enums___affiliate_location_feed_relationship_type_pb2___AffiliateLocationFeedRelationshipTypeEnum.AffiliateLocationFeedRelationshipType] = None,
            ) -> None: ...
        @classmethod
        def FromString(cls, s: bytes) -> Feed.AffiliateLocationFeedData: ...
        def MergeFrom(self, other_msg: google___protobuf___message___Message) -> None: ...
        def CopyFrom(self, other_msg: google___protobuf___message___Message) -> None: ...
        if sys.version_info >= (3,):
            def ClearField(self, field_name: typing_extensions___Literal[u"chain_ids",u"relationship_type"]) -> None: ...
        else:
            def ClearField(self, field_name: typing_extensions___Literal[u"chain_ids",b"chain_ids",u"relationship_type",b"relationship_type"]) -> None: ...

    resource_name = ... # type: typing___Text
    origin = ... # type: google___ads___googleads___v1___enums___feed_origin_pb2___FeedOriginEnum.FeedOrigin
    status = ... # type: google___ads___googleads___v1___enums___feed_status_pb2___FeedStatusEnum.FeedStatus

    @property
    def id(self) -> google___protobuf___wrappers_pb2___Int64Value: ...

    @property
    def name(self) -> google___protobuf___wrappers_pb2___StringValue: ...

    @property
    def attributes(self) -> google___protobuf___internal___containers___RepeatedCompositeFieldContainer[FeedAttribute]: ...

    @property
    def attribute_operations(self) -> google___protobuf___internal___containers___RepeatedCompositeFieldContainer[FeedAttributeOperation]: ...

    @property
    def places_location_feed_data(self) -> Feed.PlacesLocationFeedData: ...

    @property
    def affiliate_location_feed_data(self) -> Feed.AffiliateLocationFeedData: ...

    def __init__(self,
        *,
        resource_name : typing___Optional[typing___Text] = None,
        id : typing___Optional[google___protobuf___wrappers_pb2___Int64Value] = None,
        name : typing___Optional[google___protobuf___wrappers_pb2___StringValue] = None,
        attributes : typing___Optional[typing___Iterable[FeedAttribute]] = None,
        attribute_operations : typing___Optional[typing___Iterable[FeedAttributeOperation]] = None,
        origin : typing___Optional[google___ads___googleads___v1___enums___feed_origin_pb2___FeedOriginEnum.FeedOrigin] = None,
        status : typing___Optional[google___ads___googleads___v1___enums___feed_status_pb2___FeedStatusEnum.FeedStatus] = None,
        places_location_feed_data : typing___Optional[Feed.PlacesLocationFeedData] = None,
        affiliate_location_feed_data : typing___Optional[Feed.AffiliateLocationFeedData] = None,
        ) -> None: ...
    @classmethod
    def FromString(cls, s: bytes) -> Feed: ...
    def MergeFrom(self, other_msg: google___protobuf___message___Message) -> None: ...
    def CopyFrom(self, other_msg: google___protobuf___message___Message) -> None: ...
    if sys.version_info >= (3,):
        def HasField(self, field_name: typing_extensions___Literal[u"affiliate_location_feed_data",u"id",u"name",u"places_location_feed_data",u"system_feed_generation_data"]) -> bool: ...
        def ClearField(self, field_name: typing_extensions___Literal[u"affiliate_location_feed_data",u"attribute_operations",u"attributes",u"id",u"name",u"origin",u"places_location_feed_data",u"resource_name",u"status",u"system_feed_generation_data"]) -> None: ...
    else:
        def HasField(self, field_name: typing_extensions___Literal[u"affiliate_location_feed_data",b"affiliate_location_feed_data",u"id",b"id",u"name",b"name",u"places_location_feed_data",b"places_location_feed_data",u"system_feed_generation_data",b"system_feed_generation_data"]) -> bool: ...
        def ClearField(self, field_name: typing_extensions___Literal[u"affiliate_location_feed_data",b"affiliate_location_feed_data",u"attribute_operations",b"attribute_operations",u"attributes",b"attributes",u"id",b"id",u"name",b"name",u"origin",b"origin",u"places_location_feed_data",b"places_location_feed_data",u"resource_name",b"resource_name",u"status",b"status",u"system_feed_generation_data",b"system_feed_generation_data"]) -> None: ...
    def WhichOneof(self, oneof_group: typing_extensions___Literal[u"system_feed_generation_data",b"system_feed_generation_data"]) -> typing_extensions___Literal["places_location_feed_data","affiliate_location_feed_data"]: ...

class FeedAttribute(google___protobuf___message___Message):
    DESCRIPTOR: google___protobuf___descriptor___Descriptor = ...
    type = ... # type: google___ads___googleads___v1___enums___feed_attribute_type_pb2___FeedAttributeTypeEnum.FeedAttributeType

    @property
    def id(self) -> google___protobuf___wrappers_pb2___Int64Value: ...

    @property
    def name(self) -> google___protobuf___wrappers_pb2___StringValue: ...

    @property
    def is_part_of_key(self) -> google___protobuf___wrappers_pb2___BoolValue: ...

    def __init__(self,
        *,
        id : typing___Optional[google___protobuf___wrappers_pb2___Int64Value] = None,
        name : typing___Optional[google___protobuf___wrappers_pb2___StringValue] = None,
        type : typing___Optional[google___ads___googleads___v1___enums___feed_attribute_type_pb2___FeedAttributeTypeEnum.FeedAttributeType] = None,
        is_part_of_key : typing___Optional[google___protobuf___wrappers_pb2___BoolValue] = None,
        ) -> None: ...
    @classmethod
    def FromString(cls, s: bytes) -> FeedAttribute: ...
    def MergeFrom(self, other_msg: google___protobuf___message___Message) -> None: ...
    def CopyFrom(self, other_msg: google___protobuf___message___Message) -> None: ...
    if sys.version_info >= (3,):
        def HasField(self, field_name: typing_extensions___Literal[u"id",u"is_part_of_key",u"name"]) -> bool: ...
        def ClearField(self, field_name: typing_extensions___Literal[u"id",u"is_part_of_key",u"name",u"type"]) -> None: ...
    else:
        def HasField(self, field_name: typing_extensions___Literal[u"id",b"id",u"is_part_of_key",b"is_part_of_key",u"name",b"name"]) -> bool: ...
        def ClearField(self, field_name: typing_extensions___Literal[u"id",b"id",u"is_part_of_key",b"is_part_of_key",u"name",b"name",u"type",b"type"]) -> None: ...

class FeedAttributeOperation(google___protobuf___message___Message):
    DESCRIPTOR: google___protobuf___descriptor___Descriptor = ...
    class Operator(int):
        DESCRIPTOR: google___protobuf___descriptor___EnumDescriptor = ...
        @classmethod
        def Name(cls, number: int) -> str: ...
        @classmethod
        def Value(cls, name: str) -> FeedAttributeOperation.Operator: ...
        @classmethod
        def keys(cls) -> typing___List[str]: ...
        @classmethod
        def values(cls) -> typing___List[FeedAttributeOperation.Operator]: ...
        @classmethod
        def items(cls) -> typing___List[typing___Tuple[str, FeedAttributeOperation.Operator]]: ...
        UNSPECIFIED = typing___cast(FeedAttributeOperation.Operator, 0)
        UNKNOWN = typing___cast(FeedAttributeOperation.Operator, 1)
        ADD = typing___cast(FeedAttributeOperation.Operator, 2)
    UNSPECIFIED = typing___cast(FeedAttributeOperation.Operator, 0)
    UNKNOWN = typing___cast(FeedAttributeOperation.Operator, 1)
    ADD = typing___cast(FeedAttributeOperation.Operator, 2)

    operator = ... # type: FeedAttributeOperation.Operator

    @property
    def value(self) -> FeedAttribute: ...

    def __init__(self,
        *,
        operator : typing___Optional[FeedAttributeOperation.Operator] = None,
        value : typing___Optional[FeedAttribute] = None,
        ) -> None: ...
    @classmethod
    def FromString(cls, s: bytes) -> FeedAttributeOperation: ...
    def MergeFrom(self, other_msg: google___protobuf___message___Message) -> None: ...
    def CopyFrom(self, other_msg: google___protobuf___message___Message) -> None: ...
    if sys.version_info >= (3,):
        def HasField(self, field_name: typing_extensions___Literal[u"value"]) -> bool: ...
        def ClearField(self, field_name: typing_extensions___Literal[u"operator",u"value"]) -> None: ...
    else:
        def HasField(self, field_name: typing_extensions___Literal[u"value",b"value"]) -> bool: ...
        def ClearField(self, field_name: typing_extensions___Literal[u"operator",b"operator",u"value",b"value"]) -> None: ...
