"""
@generated by mypy-protobuf.  Do not edit manually!
isort:skip_file
"""
import builtins
import google.ads.google_ads.v6.proto.common.dates_pb2
import google.ads.google_ads.v6.proto.enums.invoice_type_pb2
import google.protobuf.descriptor
import google.protobuf.internal.containers
import google.protobuf.message
import typing
import typing_extensions

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

class Invoice(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    class AccountBudgetSummary(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
        CUSTOMER_FIELD_NUMBER: builtins.int
        CUSTOMER_DESCRIPTIVE_NAME_FIELD_NUMBER: builtins.int
        ACCOUNT_BUDGET_FIELD_NUMBER: builtins.int
        ACCOUNT_BUDGET_NAME_FIELD_NUMBER: builtins.int
        PURCHASE_ORDER_NUMBER_FIELD_NUMBER: builtins.int
        SUBTOTAL_AMOUNT_MICROS_FIELD_NUMBER: builtins.int
        TAX_AMOUNT_MICROS_FIELD_NUMBER: builtins.int
        TOTAL_AMOUNT_MICROS_FIELD_NUMBER: builtins.int
        BILLABLE_ACTIVITY_DATE_RANGE_FIELD_NUMBER: builtins.int
        customer: typing.Text = ...
        customer_descriptive_name: typing.Text = ...
        account_budget: typing.Text = ...
        account_budget_name: typing.Text = ...
        purchase_order_number: typing.Text = ...
        subtotal_amount_micros: builtins.int = ...
        tax_amount_micros: builtins.int = ...
        total_amount_micros: builtins.int = ...
        @property
        def billable_activity_date_range(
            self,
        ) -> google.ads.google_ads.v6.proto.common.dates_pb2.DateRange: ...
        def __init__(
            self,
            *,
            customer: typing.Text = ...,
            customer_descriptive_name: typing.Text = ...,
            account_budget: typing.Text = ...,
            account_budget_name: typing.Text = ...,
            purchase_order_number: typing.Text = ...,
            subtotal_amount_micros: builtins.int = ...,
            tax_amount_micros: builtins.int = ...,
            total_amount_micros: builtins.int = ...,
            billable_activity_date_range: typing.Optional[
                google.ads.google_ads.v6.proto.common.dates_pb2.DateRange
            ] = ...,
        ) -> None: ...
        def HasField(
            self,
            field_name: typing_extensions.Literal[
                "_account_budget",
                b"_account_budget",
                "_account_budget_name",
                b"_account_budget_name",
                "_customer",
                b"_customer",
                "_customer_descriptive_name",
                b"_customer_descriptive_name",
                "_purchase_order_number",
                b"_purchase_order_number",
                "_subtotal_amount_micros",
                b"_subtotal_amount_micros",
                "_tax_amount_micros",
                b"_tax_amount_micros",
                "_total_amount_micros",
                b"_total_amount_micros",
                "account_budget",
                b"account_budget",
                "account_budget_name",
                b"account_budget_name",
                "billable_activity_date_range",
                b"billable_activity_date_range",
                "customer",
                b"customer",
                "customer_descriptive_name",
                b"customer_descriptive_name",
                "purchase_order_number",
                b"purchase_order_number",
                "subtotal_amount_micros",
                b"subtotal_amount_micros",
                "tax_amount_micros",
                b"tax_amount_micros",
                "total_amount_micros",
                b"total_amount_micros",
            ],
        ) -> builtins.bool: ...
        def ClearField(
            self,
            field_name: typing_extensions.Literal[
                "_account_budget",
                b"_account_budget",
                "_account_budget_name",
                b"_account_budget_name",
                "_customer",
                b"_customer",
                "_customer_descriptive_name",
                b"_customer_descriptive_name",
                "_purchase_order_number",
                b"_purchase_order_number",
                "_subtotal_amount_micros",
                b"_subtotal_amount_micros",
                "_tax_amount_micros",
                b"_tax_amount_micros",
                "_total_amount_micros",
                b"_total_amount_micros",
                "account_budget",
                b"account_budget",
                "account_budget_name",
                b"account_budget_name",
                "billable_activity_date_range",
                b"billable_activity_date_range",
                "customer",
                b"customer",
                "customer_descriptive_name",
                b"customer_descriptive_name",
                "purchase_order_number",
                b"purchase_order_number",
                "subtotal_amount_micros",
                b"subtotal_amount_micros",
                "tax_amount_micros",
                b"tax_amount_micros",
                "total_amount_micros",
                b"total_amount_micros",
            ],
        ) -> None: ...
        @typing.overload
        def WhichOneof(
            self,
            oneof_group: typing_extensions.Literal[
                "_account_budget", b"_account_budget"
            ],
        ) -> typing_extensions.Literal["account_budget"]: ...
        @typing.overload
        def WhichOneof(
            self,
            oneof_group: typing_extensions.Literal[
                "_account_budget_name", b"_account_budget_name"
            ],
        ) -> typing_extensions.Literal["account_budget_name"]: ...
        @typing.overload
        def WhichOneof(
            self, oneof_group: typing_extensions.Literal["_customer", b"_customer"]
        ) -> typing_extensions.Literal["customer"]: ...
        @typing.overload
        def WhichOneof(
            self,
            oneof_group: typing_extensions.Literal[
                "_customer_descriptive_name", b"_customer_descriptive_name"
            ],
        ) -> typing_extensions.Literal["customer_descriptive_name"]: ...
        @typing.overload
        def WhichOneof(
            self,
            oneof_group: typing_extensions.Literal[
                "_purchase_order_number", b"_purchase_order_number"
            ],
        ) -> typing_extensions.Literal["purchase_order_number"]: ...
        @typing.overload
        def WhichOneof(
            self,
            oneof_group: typing_extensions.Literal[
                "_subtotal_amount_micros", b"_subtotal_amount_micros"
            ],
        ) -> typing_extensions.Literal["subtotal_amount_micros"]: ...
        @typing.overload
        def WhichOneof(
            self,
            oneof_group: typing_extensions.Literal[
                "_tax_amount_micros", b"_tax_amount_micros"
            ],
        ) -> typing_extensions.Literal["tax_amount_micros"]: ...
        @typing.overload
        def WhichOneof(
            self,
            oneof_group: typing_extensions.Literal[
                "_total_amount_micros", b"_total_amount_micros"
            ],
        ) -> typing_extensions.Literal["total_amount_micros"]: ...
    RESOURCE_NAME_FIELD_NUMBER: builtins.int
    ID_FIELD_NUMBER: builtins.int
    TYPE_FIELD_NUMBER: builtins.int
    BILLING_SETUP_FIELD_NUMBER: builtins.int
    PAYMENTS_ACCOUNT_ID_FIELD_NUMBER: builtins.int
    PAYMENTS_PROFILE_ID_FIELD_NUMBER: builtins.int
    ISSUE_DATE_FIELD_NUMBER: builtins.int
    DUE_DATE_FIELD_NUMBER: builtins.int
    SERVICE_DATE_RANGE_FIELD_NUMBER: builtins.int
    CURRENCY_CODE_FIELD_NUMBER: builtins.int
    ADJUSTMENTS_SUBTOTAL_AMOUNT_MICROS_FIELD_NUMBER: builtins.int
    ADJUSTMENTS_TAX_AMOUNT_MICROS_FIELD_NUMBER: builtins.int
    ADJUSTMENTS_TOTAL_AMOUNT_MICROS_FIELD_NUMBER: builtins.int
    REGULATORY_COSTS_SUBTOTAL_AMOUNT_MICROS_FIELD_NUMBER: builtins.int
    REGULATORY_COSTS_TAX_AMOUNT_MICROS_FIELD_NUMBER: builtins.int
    REGULATORY_COSTS_TOTAL_AMOUNT_MICROS_FIELD_NUMBER: builtins.int
    SUBTOTAL_AMOUNT_MICROS_FIELD_NUMBER: builtins.int
    TAX_AMOUNT_MICROS_FIELD_NUMBER: builtins.int
    TOTAL_AMOUNT_MICROS_FIELD_NUMBER: builtins.int
    CORRECTED_INVOICE_FIELD_NUMBER: builtins.int
    REPLACED_INVOICES_FIELD_NUMBER: builtins.int
    PDF_URL_FIELD_NUMBER: builtins.int
    ACCOUNT_BUDGET_SUMMARIES_FIELD_NUMBER: builtins.int
    resource_name: typing.Text = ...
    id: typing.Text = ...
    type: google.ads.google_ads.v6.proto.enums.invoice_type_pb2.InvoiceTypeEnum.InvoiceType.V = (
        ...
    )
    billing_setup: typing.Text = ...
    payments_account_id: typing.Text = ...
    payments_profile_id: typing.Text = ...
    issue_date: typing.Text = ...
    due_date: typing.Text = ...
    currency_code: typing.Text = ...
    adjustments_subtotal_amount_micros: builtins.int = ...
    adjustments_tax_amount_micros: builtins.int = ...
    adjustments_total_amount_micros: builtins.int = ...
    regulatory_costs_subtotal_amount_micros: builtins.int = ...
    regulatory_costs_tax_amount_micros: builtins.int = ...
    regulatory_costs_total_amount_micros: builtins.int = ...
    subtotal_amount_micros: builtins.int = ...
    tax_amount_micros: builtins.int = ...
    total_amount_micros: builtins.int = ...
    corrected_invoice: typing.Text = ...
    replaced_invoices: google.protobuf.internal.containers.RepeatedScalarFieldContainer[
        typing.Text
    ] = ...
    pdf_url: typing.Text = ...
    @property
    def service_date_range(
        self,
    ) -> google.ads.google_ads.v6.proto.common.dates_pb2.DateRange: ...
    @property
    def account_budget_summaries(
        self,
    ) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[
        global___Invoice.AccountBudgetSummary
    ]: ...
    def __init__(
        self,
        *,
        resource_name: typing.Text = ...,
        id: typing.Text = ...,
        type: google.ads.google_ads.v6.proto.enums.invoice_type_pb2.InvoiceTypeEnum.InvoiceType.V = ...,
        billing_setup: typing.Text = ...,
        payments_account_id: typing.Text = ...,
        payments_profile_id: typing.Text = ...,
        issue_date: typing.Text = ...,
        due_date: typing.Text = ...,
        service_date_range: typing.Optional[
            google.ads.google_ads.v6.proto.common.dates_pb2.DateRange
        ] = ...,
        currency_code: typing.Text = ...,
        adjustments_subtotal_amount_micros: builtins.int = ...,
        adjustments_tax_amount_micros: builtins.int = ...,
        adjustments_total_amount_micros: builtins.int = ...,
        regulatory_costs_subtotal_amount_micros: builtins.int = ...,
        regulatory_costs_tax_amount_micros: builtins.int = ...,
        regulatory_costs_total_amount_micros: builtins.int = ...,
        subtotal_amount_micros: builtins.int = ...,
        tax_amount_micros: builtins.int = ...,
        total_amount_micros: builtins.int = ...,
        corrected_invoice: typing.Text = ...,
        replaced_invoices: typing.Optional[typing.Iterable[typing.Text]] = ...,
        pdf_url: typing.Text = ...,
        account_budget_summaries: typing.Optional[
            typing.Iterable[global___Invoice.AccountBudgetSummary]
        ] = ...,
    ) -> None: ...
    def HasField(
        self,
        field_name: typing_extensions.Literal[
            "_billing_setup",
            b"_billing_setup",
            "_corrected_invoice",
            b"_corrected_invoice",
            "_currency_code",
            b"_currency_code",
            "_due_date",
            b"_due_date",
            "_id",
            b"_id",
            "_issue_date",
            b"_issue_date",
            "_payments_account_id",
            b"_payments_account_id",
            "_payments_profile_id",
            b"_payments_profile_id",
            "_pdf_url",
            b"_pdf_url",
            "_subtotal_amount_micros",
            b"_subtotal_amount_micros",
            "_tax_amount_micros",
            b"_tax_amount_micros",
            "_total_amount_micros",
            b"_total_amount_micros",
            "billing_setup",
            b"billing_setup",
            "corrected_invoice",
            b"corrected_invoice",
            "currency_code",
            b"currency_code",
            "due_date",
            b"due_date",
            "id",
            b"id",
            "issue_date",
            b"issue_date",
            "payments_account_id",
            b"payments_account_id",
            "payments_profile_id",
            b"payments_profile_id",
            "pdf_url",
            b"pdf_url",
            "service_date_range",
            b"service_date_range",
            "subtotal_amount_micros",
            b"subtotal_amount_micros",
            "tax_amount_micros",
            b"tax_amount_micros",
            "total_amount_micros",
            b"total_amount_micros",
        ],
    ) -> builtins.bool: ...
    def ClearField(
        self,
        field_name: typing_extensions.Literal[
            "_billing_setup",
            b"_billing_setup",
            "_corrected_invoice",
            b"_corrected_invoice",
            "_currency_code",
            b"_currency_code",
            "_due_date",
            b"_due_date",
            "_id",
            b"_id",
            "_issue_date",
            b"_issue_date",
            "_payments_account_id",
            b"_payments_account_id",
            "_payments_profile_id",
            b"_payments_profile_id",
            "_pdf_url",
            b"_pdf_url",
            "_subtotal_amount_micros",
            b"_subtotal_amount_micros",
            "_tax_amount_micros",
            b"_tax_amount_micros",
            "_total_amount_micros",
            b"_total_amount_micros",
            "account_budget_summaries",
            b"account_budget_summaries",
            "adjustments_subtotal_amount_micros",
            b"adjustments_subtotal_amount_micros",
            "adjustments_tax_amount_micros",
            b"adjustments_tax_amount_micros",
            "adjustments_total_amount_micros",
            b"adjustments_total_amount_micros",
            "billing_setup",
            b"billing_setup",
            "corrected_invoice",
            b"corrected_invoice",
            "currency_code",
            b"currency_code",
            "due_date",
            b"due_date",
            "id",
            b"id",
            "issue_date",
            b"issue_date",
            "payments_account_id",
            b"payments_account_id",
            "payments_profile_id",
            b"payments_profile_id",
            "pdf_url",
            b"pdf_url",
            "regulatory_costs_subtotal_amount_micros",
            b"regulatory_costs_subtotal_amount_micros",
            "regulatory_costs_tax_amount_micros",
            b"regulatory_costs_tax_amount_micros",
            "regulatory_costs_total_amount_micros",
            b"regulatory_costs_total_amount_micros",
            "replaced_invoices",
            b"replaced_invoices",
            "resource_name",
            b"resource_name",
            "service_date_range",
            b"service_date_range",
            "subtotal_amount_micros",
            b"subtotal_amount_micros",
            "tax_amount_micros",
            b"tax_amount_micros",
            "total_amount_micros",
            b"total_amount_micros",
            "type",
            b"type",
        ],
    ) -> None: ...
    @typing.overload
    def WhichOneof(
        self,
        oneof_group: typing_extensions.Literal["_billing_setup", b"_billing_setup"],
    ) -> typing_extensions.Literal["billing_setup"]: ...
    @typing.overload
    def WhichOneof(
        self,
        oneof_group: typing_extensions.Literal[
            "_corrected_invoice", b"_corrected_invoice"
        ],
    ) -> typing_extensions.Literal["corrected_invoice"]: ...
    @typing.overload
    def WhichOneof(
        self,
        oneof_group: typing_extensions.Literal["_currency_code", b"_currency_code"],
    ) -> typing_extensions.Literal["currency_code"]: ...
    @typing.overload
    def WhichOneof(
        self, oneof_group: typing_extensions.Literal["_due_date", b"_due_date"]
    ) -> typing_extensions.Literal["due_date"]: ...
    @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["_issue_date", b"_issue_date"]
    ) -> typing_extensions.Literal["issue_date"]: ...
    @typing.overload
    def WhichOneof(
        self,
        oneof_group: typing_extensions.Literal[
            "_payments_account_id", b"_payments_account_id"
        ],
    ) -> typing_extensions.Literal["payments_account_id"]: ...
    @typing.overload
    def WhichOneof(
        self,
        oneof_group: typing_extensions.Literal[
            "_payments_profile_id", b"_payments_profile_id"
        ],
    ) -> typing_extensions.Literal["payments_profile_id"]: ...
    @typing.overload
    def WhichOneof(
        self, oneof_group: typing_extensions.Literal["_pdf_url", b"_pdf_url"]
    ) -> typing_extensions.Literal["pdf_url"]: ...
    @typing.overload
    def WhichOneof(
        self,
        oneof_group: typing_extensions.Literal[
            "_subtotal_amount_micros", b"_subtotal_amount_micros"
        ],
    ) -> typing_extensions.Literal["subtotal_amount_micros"]: ...
    @typing.overload
    def WhichOneof(
        self,
        oneof_group: typing_extensions.Literal[
            "_tax_amount_micros", b"_tax_amount_micros"
        ],
    ) -> typing_extensions.Literal["tax_amount_micros"]: ...
    @typing.overload
    def WhichOneof(
        self,
        oneof_group: typing_extensions.Literal[
            "_total_amount_micros", b"_total_amount_micros"
        ],
    ) -> typing_extensions.Literal["total_amount_micros"]: ...

global___Invoice = Invoice
