"""
@generated by mypy-protobuf.  Do not edit manually!
isort:skip_file
"""
import builtins
import google.ads.google_ads.v5.proto.common.dates_pb2
import google.ads.google_ads.v5.proto.enums.invoice_type_pb2
import google.protobuf.descriptor
import google.protobuf.internal.containers
import google.protobuf.message
import google.protobuf.wrappers_pb2
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
        @property
        def customer(self) -> google.protobuf.wrappers_pb2.StringValue: ...
        @property
        def customer_descriptive_name(
            self,
        ) -> google.protobuf.wrappers_pb2.StringValue: ...
        @property
        def account_budget(self) -> google.protobuf.wrappers_pb2.StringValue: ...
        @property
        def account_budget_name(self) -> google.protobuf.wrappers_pb2.StringValue: ...
        @property
        def purchase_order_number(self) -> google.protobuf.wrappers_pb2.StringValue: ...
        @property
        def subtotal_amount_micros(self) -> google.protobuf.wrappers_pb2.Int64Value: ...
        @property
        def tax_amount_micros(self) -> google.protobuf.wrappers_pb2.Int64Value: ...
        @property
        def total_amount_micros(self) -> google.protobuf.wrappers_pb2.Int64Value: ...
        @property
        def billable_activity_date_range(
            self,
        ) -> google.ads.google_ads.v5.proto.common.dates_pb2.DateRange: ...
        def __init__(
            self,
            *,
            customer: typing.Optional[google.protobuf.wrappers_pb2.StringValue] = ...,
            customer_descriptive_name: typing.Optional[
                google.protobuf.wrappers_pb2.StringValue
            ] = ...,
            account_budget: typing.Optional[
                google.protobuf.wrappers_pb2.StringValue
            ] = ...,
            account_budget_name: typing.Optional[
                google.protobuf.wrappers_pb2.StringValue
            ] = ...,
            purchase_order_number: typing.Optional[
                google.protobuf.wrappers_pb2.StringValue
            ] = ...,
            subtotal_amount_micros: typing.Optional[
                google.protobuf.wrappers_pb2.Int64Value
            ] = ...,
            tax_amount_micros: typing.Optional[
                google.protobuf.wrappers_pb2.Int64Value
            ] = ...,
            total_amount_micros: typing.Optional[
                google.protobuf.wrappers_pb2.Int64Value
            ] = ...,
            billable_activity_date_range: typing.Optional[
                google.ads.google_ads.v5.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",
                "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",
                "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: ...
    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
    INVOICE_LEVEL_ADJUSTMENTS_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 = ...
    type: google.ads.google_ads.v5.proto.enums.invoice_type_pb2.InvoiceTypeEnum.InvoiceType.V = (
        ...
    )
    @property
    def id(self) -> google.protobuf.wrappers_pb2.StringValue: ...
    @property
    def billing_setup(self) -> google.protobuf.wrappers_pb2.StringValue: ...
    @property
    def payments_account_id(self) -> google.protobuf.wrappers_pb2.StringValue: ...
    @property
    def payments_profile_id(self) -> google.protobuf.wrappers_pb2.StringValue: ...
    @property
    def issue_date(self) -> google.protobuf.wrappers_pb2.StringValue: ...
    @property
    def due_date(self) -> google.protobuf.wrappers_pb2.StringValue: ...
    @property
    def service_date_range(
        self,
    ) -> google.ads.google_ads.v5.proto.common.dates_pb2.DateRange: ...
    @property
    def currency_code(self) -> google.protobuf.wrappers_pb2.StringValue: ...
    @property
    def invoice_level_adjustments_micros(
        self,
    ) -> google.protobuf.wrappers_pb2.Int64Value: ...
    @property
    def subtotal_amount_micros(self) -> google.protobuf.wrappers_pb2.Int64Value: ...
    @property
    def tax_amount_micros(self) -> google.protobuf.wrappers_pb2.Int64Value: ...
    @property
    def total_amount_micros(self) -> google.protobuf.wrappers_pb2.Int64Value: ...
    @property
    def corrected_invoice(self) -> google.protobuf.wrappers_pb2.StringValue: ...
    @property
    def replaced_invoices(
        self,
    ) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[
        google.protobuf.wrappers_pb2.StringValue
    ]: ...
    @property
    def pdf_url(self) -> google.protobuf.wrappers_pb2.StringValue: ...
    @property
    def account_budget_summaries(
        self,
    ) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[
        global___Invoice.AccountBudgetSummary
    ]: ...
    def __init__(
        self,
        *,
        resource_name: typing.Text = ...,
        id: typing.Optional[google.protobuf.wrappers_pb2.StringValue] = ...,
        type: google.ads.google_ads.v5.proto.enums.invoice_type_pb2.InvoiceTypeEnum.InvoiceType.V = ...,
        billing_setup: typing.Optional[google.protobuf.wrappers_pb2.StringValue] = ...,
        payments_account_id: typing.Optional[
            google.protobuf.wrappers_pb2.StringValue
        ] = ...,
        payments_profile_id: typing.Optional[
            google.protobuf.wrappers_pb2.StringValue
        ] = ...,
        issue_date: typing.Optional[google.protobuf.wrappers_pb2.StringValue] = ...,
        due_date: typing.Optional[google.protobuf.wrappers_pb2.StringValue] = ...,
        service_date_range: typing.Optional[
            google.ads.google_ads.v5.proto.common.dates_pb2.DateRange
        ] = ...,
        currency_code: typing.Optional[google.protobuf.wrappers_pb2.StringValue] = ...,
        invoice_level_adjustments_micros: typing.Optional[
            google.protobuf.wrappers_pb2.Int64Value
        ] = ...,
        subtotal_amount_micros: typing.Optional[
            google.protobuf.wrappers_pb2.Int64Value
        ] = ...,
        tax_amount_micros: typing.Optional[
            google.protobuf.wrappers_pb2.Int64Value
        ] = ...,
        total_amount_micros: typing.Optional[
            google.protobuf.wrappers_pb2.Int64Value
        ] = ...,
        corrected_invoice: typing.Optional[
            google.protobuf.wrappers_pb2.StringValue
        ] = ...,
        replaced_invoices: typing.Optional[
            typing.Iterable[google.protobuf.wrappers_pb2.StringValue]
        ] = ...,
        pdf_url: typing.Optional[google.protobuf.wrappers_pb2.StringValue] = ...,
        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",
            "invoice_level_adjustments_micros",
            b"invoice_level_adjustments_micros",
            "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[
            "account_budget_summaries",
            b"account_budget_summaries",
            "billing_setup",
            b"billing_setup",
            "corrected_invoice",
            b"corrected_invoice",
            "currency_code",
            b"currency_code",
            "due_date",
            b"due_date",
            "id",
            b"id",
            "invoice_level_adjustments_micros",
            b"invoice_level_adjustments_micros",
            "issue_date",
            b"issue_date",
            "payments_account_id",
            b"payments_account_id",
            "payments_profile_id",
            b"payments_profile_id",
            "pdf_url",
            b"pdf_url",
            "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: ...

global___Invoice = Invoice
